From 89d05a1d74d8258154cf5a5e381298a26ae7bbf3 Mon Sep 17 00:00:00 2001 From: xioayue Date: Wed, 21 Jun 2023 10:36:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .browserslistrc | 3 - .env | 3 - .eslintrc.js | 75 - .gitattributes | 1 - .gitignore | 2 +- .prettierrc | 5 - .travis.yml | 7 - FETCH_HEAD | 0 README.md | 199 +- babel.config.js | 27 +- config/plugin.config.js | 46 - config/themePluginConfig.js | 115 - jest.config.js | 23 - jsconfig.json | 11 - package-lock.json | 11913 +++++++ package.json | 94 +- postcss.config.js | 5 - public/config.js | 7 - public/favicon.ico | Bin 0 -> 4286 bytes public/index.html | 25 +- .../static/UEditor/dialogs/anchor/anchor.html | 40 - .../UEditor/dialogs/attachment/attachment.css | 681 - .../dialogs/attachment/attachment.html | 60 - .../UEditor/dialogs/attachment/attachment.js | 760 - .../attachment/fileTypeImages/icon_chm.gif | Bin 923 -> 0 bytes .../fileTypeImages/icon_default.png | Bin 841 -> 0 bytes .../attachment/fileTypeImages/icon_doc.gif | Bin 1012 -> 0 bytes .../attachment/fileTypeImages/icon_exe.gif | Bin 949 -> 0 bytes .../attachment/fileTypeImages/icon_jpg.gif | Bin 950 -> 0 bytes .../attachment/fileTypeImages/icon_mp3.gif | Bin 986 -> 0 bytes .../attachment/fileTypeImages/icon_mv.gif | Bin 1001 -> 0 bytes .../attachment/fileTypeImages/icon_pdf.gif | Bin 996 -> 0 bytes .../attachment/fileTypeImages/icon_ppt.gif | Bin 1001 -> 0 bytes .../attachment/fileTypeImages/icon_psd.gif | Bin 1009 -> 0 bytes .../attachment/fileTypeImages/icon_rar.gif | Bin 1007 -> 0 bytes .../attachment/fileTypeImages/icon_txt.gif | Bin 970 -> 0 bytes .../attachment/fileTypeImages/icon_xls.gif | Bin 1005 -> 0 bytes .../dialogs/attachment/images/alignicon.gif | Bin 1051 -> 0 bytes .../dialogs/attachment/images/alignicon.png | Bin 3714 -> 0 bytes .../UEditor/dialogs/attachment/images/bg.png | Bin 2810 -> 0 bytes .../dialogs/attachment/images/file-icons.gif | Bin 20097 -> 0 bytes .../dialogs/attachment/images/file-icons.png | Bin 44070 -> 0 bytes .../dialogs/attachment/images/icons.gif | Bin 453 -> 0 bytes .../dialogs/attachment/images/icons.png | Bin 2678 -> 0 bytes .../dialogs/attachment/images/image.png | Bin 1672 -> 0 bytes .../dialogs/attachment/images/progress.png | Bin 1269 -> 0 bytes .../dialogs/attachment/images/success.gif | Bin 445 -> 0 bytes .../dialogs/attachment/images/success.png | Bin 1621 -> 0 bytes .../UEditor/dialogs/background/background.css | 94 - .../dialogs/background/background.html | 56 - .../UEditor/dialogs/background/background.js | 376 - .../UEditor/dialogs/background/images/bg.png | Bin 2810 -> 0 bytes .../dialogs/background/images/success.png | Bin 1621 -> 0 bytes .../UEditor/dialogs/charts/chart.config.js | 65 - .../static/UEditor/dialogs/charts/charts.css | 165 - .../static/UEditor/dialogs/charts/charts.html | 89 - .../static/UEditor/dialogs/charts/charts.js | 519 - .../UEditor/dialogs/charts/images/charts0.png | Bin 25306 -> 0 bytes .../UEditor/dialogs/charts/images/charts1.png | Bin 19263 -> 0 bytes .../UEditor/dialogs/charts/images/charts2.png | Bin 23016 -> 0 bytes .../UEditor/dialogs/charts/images/charts3.png | Bin 7823 -> 0 bytes .../UEditor/dialogs/charts/images/charts4.png | Bin 8344 -> 0 bytes .../UEditor/dialogs/charts/images/charts5.png | Bin 47084 -> 0 bytes .../UEditor/dialogs/emotion/emotion.css | 43 - .../UEditor/dialogs/emotion/emotion.html | 54 - .../static/UEditor/dialogs/emotion/emotion.js | 186 - .../UEditor/dialogs/emotion/images/0.gif | Bin 43 -> 0 bytes .../UEditor/dialogs/emotion/images/bface.gif | Bin 27167 -> 0 bytes .../UEditor/dialogs/emotion/images/cface.gif | Bin 8603 -> 0 bytes .../UEditor/dialogs/emotion/images/fface.gif | Bin 18479 -> 0 bytes .../dialogs/emotion/images/jxface2.gif | Bin 40706 -> 0 bytes .../emotion/images/neweditor-tab-bg.png | Bin 216 -> 0 bytes .../UEditor/dialogs/emotion/images/tface.gif | Bin 19805 -> 0 bytes .../UEditor/dialogs/emotion/images/wface.gif | Bin 49850 -> 0 bytes .../UEditor/dialogs/emotion/images/yface.gif | Bin 28409 -> 0 bytes public/static/UEditor/dialogs/gmap/gmap.html | 89 - public/static/UEditor/dialogs/help/help.css | 7 - public/static/UEditor/dialogs/help/help.html | 82 - public/static/UEditor/dialogs/help/help.js | 56 - public/static/UEditor/dialogs/image/image.css | 894 - .../static/UEditor/dialogs/image/image.html | 120 - public/static/UEditor/dialogs/image/image.js | 1148 - .../dialogs/image/images/alignicon.jpg | Bin 16101 -> 0 bytes .../UEditor/dialogs/image/images/bg.png | Bin 2810 -> 0 bytes .../UEditor/dialogs/image/images/icons.gif | Bin 453 -> 0 bytes .../UEditor/dialogs/image/images/icons.png | Bin 2678 -> 0 bytes .../UEditor/dialogs/image/images/image.png | Bin 1672 -> 0 bytes .../UEditor/dialogs/image/images/progress.png | Bin 1269 -> 0 bytes .../UEditor/dialogs/image/images/success.gif | Bin 445 -> 0 bytes .../UEditor/dialogs/image/images/success.png | Bin 1621 -> 0 bytes .../dialogs/insertframe/insertframe.html | 98 - public/static/UEditor/dialogs/internal.js | 81 - public/static/UEditor/dialogs/link/link.html | 126 - public/static/UEditor/dialogs/map/map.html | 135 - public/static/UEditor/dialogs/map/show.html | 118 - public/static/UEditor/dialogs/music/music.css | 30 - .../static/UEditor/dialogs/music/music.html | 32 - public/static/UEditor/dialogs/music/music.js | 192 - .../UEditor/dialogs/preview/preview.html | 40 - .../UEditor/dialogs/scrawl/images/addimg.png | Bin 628 -> 0 bytes .../UEditor/dialogs/scrawl/images/brush.png | Bin 608 -> 0 bytes .../UEditor/dialogs/scrawl/images/delimg.png | Bin 516 -> 0 bytes .../UEditor/dialogs/scrawl/images/delimgH.png | Bin 578 -> 0 bytes .../UEditor/dialogs/scrawl/images/empty.png | Bin 519 -> 0 bytes .../UEditor/dialogs/scrawl/images/emptyH.png | Bin 657 -> 0 bytes .../UEditor/dialogs/scrawl/images/eraser.png | Bin 43271 -> 0 bytes .../UEditor/dialogs/scrawl/images/redo.png | Bin 454 -> 0 bytes .../UEditor/dialogs/scrawl/images/redoH.png | Bin 536 -> 0 bytes .../UEditor/dialogs/scrawl/images/scale.png | Bin 435 -> 0 bytes .../UEditor/dialogs/scrawl/images/scaleH.png | Bin 330 -> 0 bytes .../UEditor/dialogs/scrawl/images/size.png | Bin 775 -> 0 bytes .../UEditor/dialogs/scrawl/images/undo.png | Bin 444 -> 0 bytes .../UEditor/dialogs/scrawl/images/undoH.png | Bin 511 -> 0 bytes .../static/UEditor/dialogs/scrawl/scrawl.css | 72 - .../static/UEditor/dialogs/scrawl/scrawl.html | 95 - .../static/UEditor/dialogs/scrawl/scrawl.js | 671 - .../dialogs/searchreplace/searchreplace.html | 102 - .../dialogs/searchreplace/searchreplace.js | 164 - .../dialogs/snapscreen/snapscreen.html | 58 - .../UEditor/dialogs/spechars/spechars.html | 21 - .../UEditor/dialogs/spechars/spechars.js | 57 - .../static/UEditor/dialogs/table/dragicon.png | Bin 304 -> 0 bytes .../UEditor/dialogs/table/edittable.css | 84 - .../UEditor/dialogs/table/edittable.html | 64 - .../static/UEditor/dialogs/table/edittable.js | 237 - .../static/UEditor/dialogs/table/edittd.html | 61 - .../static/UEditor/dialogs/table/edittip.html | 33 - .../static/UEditor/dialogs/template/config.js | 42 - .../UEditor/dialogs/template/images/bg.gif | Bin 84 -> 0 bytes .../UEditor/dialogs/template/images/pre0.png | Bin 250 -> 0 bytes .../UEditor/dialogs/template/images/pre1.png | Bin 291 -> 0 bytes .../UEditor/dialogs/template/images/pre2.png | Bin 394 -> 0 bytes .../UEditor/dialogs/template/images/pre3.png | Bin 485 -> 0 bytes .../UEditor/dialogs/template/images/pre4.png | Bin 393 -> 0 bytes .../UEditor/dialogs/template/template.css | 18 - .../UEditor/dialogs/template/template.html | 26 - .../UEditor/dialogs/template/template.js | 53 - .../UEditor/dialogs/video/images/bg.png | Bin 2810 -> 0 bytes .../dialogs/video/images/center_focus.jpg | Bin 11795 -> 0 bytes .../dialogs/video/images/file-icons.gif | Bin 20097 -> 0 bytes .../dialogs/video/images/file-icons.png | Bin 44070 -> 0 bytes .../UEditor/dialogs/video/images/icons.gif | Bin 453 -> 0 bytes .../UEditor/dialogs/video/images/icons.png | Bin 2678 -> 0 bytes .../UEditor/dialogs/video/images/image.png | Bin 1672 -> 0 bytes .../dialogs/video/images/left_focus.jpg | Bin 11423 -> 0 bytes .../dialogs/video/images/none_focus.jpg | Bin 11546 -> 0 bytes .../UEditor/dialogs/video/images/progress.png | Bin 1269 -> 0 bytes .../dialogs/video/images/right_focus.jpg | Bin 11334 -> 0 bytes .../UEditor/dialogs/video/images/success.gif | Bin 445 -> 0 bytes .../UEditor/dialogs/video/images/success.png | Bin 1621 -> 0 bytes public/static/UEditor/dialogs/video/video.css | 635 - .../static/UEditor/dialogs/video/video.html | 86 - public/static/UEditor/dialogs/video/video.js | 797 - .../static/UEditor/dialogs/webapp/webapp.html | 53 - .../UEditor/dialogs/wordimage/tangram.js | 1495 - .../UEditor/dialogs/wordimage/wordimage.html | 111 - .../UEditor/dialogs/wordimage/wordimage.js | 157 - public/static/UEditor/index.html | 175 - public/static/UEditor/lang/en/en.js | 684 - .../UEditor/lang/en/images/addimage.png | Bin 3373 -> 0 bytes .../lang/en/images/alldeletebtnhoverskin.png | Bin 743 -> 0 bytes .../lang/en/images/alldeletebtnupskin.png | Bin 743 -> 0 bytes .../UEditor/lang/en/images/background.png | Bin 3854 -> 0 bytes .../static/UEditor/lang/en/images/button.png | Bin 4929 -> 0 bytes public/static/UEditor/lang/en/images/copy.png | Bin 1222 -> 0 bytes .../UEditor/lang/en/images/deletedisable.png | Bin 649 -> 0 bytes .../UEditor/lang/en/images/deleteenable.png | Bin 664 -> 0 bytes .../UEditor/lang/en/images/listbackground.png | Bin 3750 -> 0 bytes .../UEditor/lang/en/images/localimage.png | Bin 3083 -> 0 bytes .../static/UEditor/lang/en/images/music.png | Bin 91561 -> 0 bytes .../lang/en/images/rotateleftdisable.png | Bin 719 -> 0 bytes .../lang/en/images/rotateleftenable.png | Bin 952 -> 0 bytes .../lang/en/images/rotaterightdisable.png | Bin 754 -> 0 bytes .../lang/en/images/rotaterightenable.png | Bin 1007 -> 0 bytes .../static/UEditor/lang/en/images/upload.png | Bin 3941 -> 0 bytes .../static/UEditor/lang/zh-cn/images/copy.png | Bin 4319 -> 0 bytes .../UEditor/lang/zh-cn/images/localimage.png | Bin 6979 -> 0 bytes .../UEditor/lang/zh-cn/images/music.png | Bin 23106 -> 0 bytes .../UEditor/lang/zh-cn/images/upload.png | Bin 6608 -> 0 bytes public/static/UEditor/lang/zh-cn/zh-cn.js | 669 - public/static/UEditor/php/Uploader.class.php | 372 - public/static/UEditor/php/action_crawler.php | 44 - public/static/UEditor/php/action_list.php | 92 - public/static/UEditor/php/action_upload.php | 66 - public/static/UEditor/php/config.json | 94 - public/static/UEditor/php/controller.php | 59 - .../UEditor/themes/default/css/ueditor.css | 1903 - .../themes/default/css/ueditor.min.css | 8 - .../UEditor/themes/default/dialogbase.css | 100 - .../UEditor/themes/default/images/anchor.gif | Bin 184 -> 0 bytes .../UEditor/themes/default/images/arrow.png | Bin 1173 -> 0 bytes .../themes/default/images/arrow_down.png | Bin 1610 -> 0 bytes .../themes/default/images/arrow_up.png | Bin 1649 -> 0 bytes .../themes/default/images/button-bg.gif | Bin 1114 -> 0 bytes .../themes/default/images/cancelbutton.gif | Bin 1227 -> 0 bytes .../UEditor/themes/default/images/charts.png | Bin 518 -> 0 bytes .../themes/default/images/cursor_h.gif | Bin 253 -> 0 bytes .../themes/default/images/cursor_h.png | Bin 175 -> 0 bytes .../themes/default/images/cursor_v.gif | Bin 370 -> 0 bytes .../themes/default/images/cursor_v.png | Bin 177 -> 0 bytes .../themes/default/images/dialog-title-bg.png | Bin 938 -> 0 bytes .../themes/default/images/filescan.png | Bin 4282 -> 0 bytes .../themes/default/images/highlighted.gif | Bin 111 -> 0 bytes .../themes/default/images/icons-all.gif | Bin 3750 -> 0 bytes .../UEditor/themes/default/images/icons.gif | Bin 20947 -> 0 bytes .../UEditor/themes/default/images/icons.png | Bin 19694 -> 0 bytes .../themes/default/images/loaderror.png | Bin 3209 -> 0 bytes .../UEditor/themes/default/images/loading.gif | Bin 734 -> 0 bytes .../UEditor/themes/default/images/lock.gif | Bin 1062 -> 0 bytes .../default/images/neweditor-tab-bg.png | Bin 216 -> 0 bytes .../themes/default/images/pagebreak.gif | Bin 54 -> 0 bytes .../UEditor/themes/default/images/scale.png | Bin 167 -> 0 bytes .../themes/default/images/sortable.png | Bin 2851 -> 0 bytes .../UEditor/themes/default/images/spacer.gif | Bin 43 -> 0 bytes .../themes/default/images/sparator_v.png | Bin 122 -> 0 bytes .../default/images/table-cell-align.png | Bin 1847 -> 0 bytes .../default/images/tangram-colorpicker.png | Bin 17355 -> 0 bytes .../themes/default/images/toolbar_bg.png | Bin 170 -> 0 bytes .../themes/default/images/unhighlighted.gif | Bin 111 -> 0 bytes .../UEditor/themes/default/images/upload.png | Bin 6608 -> 0 bytes .../themes/default/images/videologo.gif | Bin 1604 -> 0 bytes .../UEditor/themes/default/images/word.gif | Bin 1019 -> 0 bytes .../themes/default/images/wordpaste.png | Bin 6467 -> 0 bytes public/static/UEditor/themes/iframe.css | 21 - .../third-party/SyntaxHighlighter/shCore.js | 3655 -- .../SyntaxHighlighter/shCoreDefault.css | 1 - .../third-party/codemirror/codemirror.css | 104 - .../third-party/codemirror/codemirror.js | 3581 -- .../highcharts/adapters/mootools-adapter.js | 13 - .../adapters/mootools-adapter.src.js | 313 - .../highcharts/adapters/prototype-adapter.js | 15 - .../adapters/prototype-adapter.src.js | 316 - .../adapters/standalone-framework.js | 17 - .../adapters/standalone-framework.src.js | 583 - .../third-party/highcharts/highcharts-more.js | 50 - .../highcharts/highcharts-more.src.js | 2430 -- .../third-party/highcharts/highcharts.js | 283 - .../third-party/highcharts/highcharts.src.js | 16974 --------- .../highcharts/modules/annotations.js | 7 - .../highcharts/modules/annotations.src.js | 401 - .../highcharts/modules/canvas-tools.js | 133 - .../highcharts/modules/canvas-tools.src.js | 3113 -- .../third-party/highcharts/modules/data.js | 17 - .../highcharts/modules/data.src.js | 582 - .../highcharts/modules/drilldown.js | 11 - .../highcharts/modules/drilldown.src.js | 447 - .../highcharts/modules/exporting.js | 22 - .../highcharts/modules/exporting.src.js | 709 - .../third-party/highcharts/modules/funnel.js | 12 - .../highcharts/modules/funnel.src.js | 289 - .../third-party/highcharts/modules/heatmap.js | 1 - .../highcharts/modules/heatmap.src.js | 53 - .../third-party/highcharts/modules/map.js | 27 - .../third-party/highcharts/modules/map.src.js | 1002 - .../highcharts/modules/no-data-to-display.js | 12 - .../modules/no-data-to-display.src.js | 128 - .../highcharts/themes/dark-blue.js | 254 - .../highcharts/themes/dark-green.js | 255 - .../third-party/highcharts/themes/gray.js | 257 - .../third-party/highcharts/themes/grid.js | 103 - .../third-party/highcharts/themes/skies.js | 89 - .../UEditor/third-party/jquery-1.10.2.js | 9789 ----- .../UEditor/third-party/jquery-1.10.2.min.js | 6 - .../UEditor/third-party/jquery-1.10.2.min.map | 1 - .../snapscreen/UEditorSnapscreen.exe | Bin 519936 -> 0 bytes .../UEditor/third-party/video-js/font/vjs.eot | Bin 3536 -> 0 bytes .../UEditor/third-party/video-js/font/vjs.svg | 65 - .../UEditor/third-party/video-js/font/vjs.ttf | Bin 3372 -> 0 bytes .../third-party/video-js/font/vjs.woff | Bin 4228 -> 0 bytes .../UEditor/third-party/video-js/video-js.css | 766 - .../third-party/video-js/video-js.min.css | 5 - .../UEditor/third-party/video-js/video.dev.js | 7108 ---- .../UEditor/third-party/video-js/video.js | 129 - .../third-party/webuploader/webuploader.css | 28 - .../webuploader/webuploader.custom.js | 5670 --- .../webuploader/webuploader.custom.min.js | 2 - .../webuploader/webuploader.flashonly.js | 4176 --- .../webuploader/webuploader.flashonly.min.js | 2 - .../webuploader/webuploader.html5only.js | 5559 --- .../webuploader/webuploader.html5only.min.js | 2 - .../third-party/webuploader/webuploader.js | 6733 ---- .../webuploader/webuploader.min.js | 2 - .../webuploader/webuploader.withoutimage.js | 4593 --- .../webuploader.withoutimage.min.js | 2 - public/static/UEditor/third-party/xss.min.js | 1 - .../zeroclipboard/ZeroClipboard.js | 1256 - .../zeroclipboard/ZeroClipboard.min.js | 9 - public/static/UEditor/ueditor.all.js | 29559 ---------------- public/static/UEditor/ueditor.all.min.js | 18 - public/static/UEditor/ueditor.config.js | 497 - public/static/UEditor/ueditor.parse.js | 1022 - public/static/UEditor/ueditor.parse.min.js | 7 - public/static/getpoint/index.html | 1181 - public/static/img/category/10.png | Bin 75324 -> 0 bytes public/static/img/category/11.png | Bin 42335 -> 0 bytes public/static/img/category/20.png | Bin 39619 -> 0 bytes public/static/img/category/30.png | Bin 43947 -> 0 bytes public/static/img/statistics/ranking/01.png | Bin 2166 -> 0 bytes public/static/img/statistics/ranking/02.png | Bin 2426 -> 0 bytes public/static/img/statistics/ranking/03.png | Bin 2419 -> 0 bytes src/App.vue | 18 +- src/api/home.js | 17 - src/assets/background.jpg | Bin 244652 -> 0 bytes src/assets/icons/app.svg | 1 - src/assets/icons/apps.svg | 1 - src/assets/icons/arrow-right.svg | 1 - src/assets/icons/bx-analyse.svg | 1 - src/assets/icons/content.svg | 1 - src/assets/icons/goods.svg | 1 - src/assets/icons/h5-weixin.svg | 1 - src/assets/icons/h5.svg | 1 - src/assets/icons/home.svg | 1 - src/assets/icons/home/functions/coupon.svg | 1 - src/assets/icons/home/functions/dealer.svg | 1 - src/assets/icons/home/functions/decorate.svg | 1 - src/assets/icons/home/functions/goods.svg | 1 - src/assets/icons/home/functions/order.svg | 1 - src/assets/icons/home/functions/refund.svg | 1 - .../icons/home/functions/statistics.svg | 1 - src/assets/icons/home/functions/user.svg | 1 - .../icons/home/functions/wechat-mini.svg | 1 - src/assets/icons/home/overview/increase.svg | 1 - src/assets/icons/home/overview/sale.svg | 1 - src/assets/icons/home/statistics/consume.svg | 1 - src/assets/icons/home/statistics/goods.svg | 1 - src/assets/icons/home/statistics/order.svg | 1 - src/assets/icons/home/statistics/recharge.svg | 1 - src/assets/icons/home/statistics/user.svg | 1 - src/assets/icons/manage.svg | 1 - src/assets/icons/market.svg | 1 - src/assets/icons/mp-weixin.svg | 1 - src/assets/icons/order.svg | 1 - src/assets/icons/page/components/article.svg | 1 - src/assets/icons/page/components/banner.svg | 1 - src/assets/icons/page/components/bargain.svg | 1 - src/assets/icons/page/components/blank.svg | 1 - src/assets/icons/page/components/coupon.svg | 1 - src/assets/icons/page/components/goods.svg | 1 - src/assets/icons/page/components/groupon.svg | 1 - src/assets/icons/page/components/guide.svg | 1 - src/assets/icons/page/components/hotZone.svg | 1 - src/assets/icons/page/components/image.svg | 1 - .../icons/page/components/imageSingle.svg | 1 - src/assets/icons/page/components/index.js | 28 - src/assets/icons/page/components/navBar.svg | 1 - src/assets/icons/page/components/notice.svg | 1 - .../icons/page/components/officialAccount.svg | 1 - src/assets/icons/page/components/richText.svg | 1 - src/assets/icons/page/components/search.svg | 1 - src/assets/icons/page/components/service.svg | 1 - src/assets/icons/page/components/shop.svg | 1 - src/assets/icons/page/components/special.svg | 1 - src/assets/icons/page/components/video.svg | 1 - src/assets/icons/page/components/window.svg | 1 - src/assets/icons/page/index.js | 10 - src/assets/icons/page/search.svg | 1 - src/assets/icons/page/sharp.svg | 1 - src/assets/icons/page/volume-fill.svg | 4 - src/assets/icons/payment/alipay.svg | 7 - src/assets/icons/payment/balance.svg | 7 - src/assets/icons/payment/wechat.svg | 7 - src/assets/icons/setting.svg | 1 - src/assets/icons/shop.svg | 1 - src/assets/icons/statistics.svg | 1 - src/assets/icons/user.svg | 1 - src/assets/img/circular.png | Bin 2374 -> 0 bytes src/assets/img/default-avatar.png | Bin 2672 -> 0 bytes src/assets/img/phone-top-black.png | Bin 4420 -> 0 bytes src/assets/img/phone-top-white.png | Bin 4108 -> 0 bytes src/assets/logo.png | Bin 0 -> 6849 bytes src/assets/logo.svg | 1 - src/assets/logo_.svg | 29 - src/assets/pageBg.png | Bin 0 -> 295493 bytes src/assets/scss/_variables.scss | 97 + src/assets/scss/index.scss | 108 + src/assets/scss/style.scss | 185 + src/common/flexible.js | 147 + .../echart/bottom/bottomLeftChart.vue | 269 + .../echart/bottom/bottomRightChart.vue | 407 + .../echart/center/centerChartRate.vue | 105 + .../echart/centerLeft2/centreLeft1Chart.vue | 82 + .../echart/centerLeft2/centreLeft2Chart.vue | 203 + .../centreRight2/centreRight2Chart1.vue | 167 + src/config/defaultSettings.js | 26 - src/config/router.config.js | 42 - src/core/bootstrap.js | 28 - src/core/directives/action.js | 38 - src/core/icons.js | 39 - src/core/lazy_use.js | 136 - src/core/use.js | 22 - src/global.less | 350 - src/locales/index.js | 59 - src/locales/lang/en-US.js | 45 - src/locales/lang/zh-CN.js | 22 - src/main.js | 46 +- src/router/README.md | 134 - src/router/generator-routers.js | 180 - src/router/index.js | 25 +- src/store/app-mixin.js | 32 - src/store/device-mixin.js | 11 - src/store/getters.js | 18 - src/store/i18n-mixin.js | 16 - src/store/index.js | 15 +- src/store/modules/app.js | 99 - src/store/modules/async-router.js | 31 - src/store/modules/permission.js | 150 - src/store/modules/user.js | 106 - src/store/mutation-types.js | 24 - src/utils/axios.js | 35 - src/utils/domUtil.js | 21 - src/utils/filter.js | 20 - src/utils/index.js | 34 + src/utils/request.js | 71 - src/utils/resizeMixins.js | 26 + src/utils/routeConvert.js | 30 - src/utils/util.js | 217 - src/utils/utils.less | 302 - src/views/404.vue | 15 - src/views/bottomLeft.vue | 55 + src/views/bottomRight.vue | 62 + src/views/center.vue | 228 + src/views/centerLeft1.vue | 166 + src/views/centerLeft2.vue | 56 + src/views/centerRight1.vue | 72 + src/views/centerRight2.vue | 76 + src/views/exception/403.vue | 18 - src/views/exception/404.vue | 18 - src/views/exception/500.vue | 18 - src/views/index.vue | 137 + src/views/index/Index.vue | 522 - tests/unit/.eslintrc.js | 5 - version.json | 3 - vue.config.js | 135 +- webstorm.config.js | 3 - yarn.lock | 8892 ++--- 435 files changed, 17440 insertions(+), 140368 deletions(-) delete mode 100644 .browserslistrc delete mode 100644 .env delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .prettierrc delete mode 100644 .travis.yml create mode 100644 FETCH_HEAD delete mode 100644 config/plugin.config.js delete mode 100644 config/themePluginConfig.js delete mode 100644 jest.config.js delete mode 100644 jsconfig.json create mode 100644 package-lock.json delete mode 100644 postcss.config.js delete mode 100644 public/config.js create mode 100644 public/favicon.ico delete mode 100644 public/static/UEditor/dialogs/anchor/anchor.html delete mode 100644 public/static/UEditor/dialogs/attachment/attachment.css delete mode 100644 public/static/UEditor/dialogs/attachment/attachment.html delete mode 100644 public/static/UEditor/dialogs/attachment/attachment.js delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_default.png delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif delete mode 100644 public/static/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif delete mode 100644 public/static/UEditor/dialogs/attachment/images/alignicon.gif delete mode 100644 public/static/UEditor/dialogs/attachment/images/alignicon.png delete mode 100644 public/static/UEditor/dialogs/attachment/images/bg.png delete mode 100644 public/static/UEditor/dialogs/attachment/images/file-icons.gif delete mode 100644 public/static/UEditor/dialogs/attachment/images/file-icons.png delete mode 100644 public/static/UEditor/dialogs/attachment/images/icons.gif delete mode 100644 public/static/UEditor/dialogs/attachment/images/icons.png delete mode 100644 public/static/UEditor/dialogs/attachment/images/image.png delete mode 100644 public/static/UEditor/dialogs/attachment/images/progress.png delete mode 100644 public/static/UEditor/dialogs/attachment/images/success.gif delete mode 100644 public/static/UEditor/dialogs/attachment/images/success.png delete mode 100644 public/static/UEditor/dialogs/background/background.css delete mode 100644 public/static/UEditor/dialogs/background/background.html delete mode 100644 public/static/UEditor/dialogs/background/background.js delete mode 100644 public/static/UEditor/dialogs/background/images/bg.png delete mode 100644 public/static/UEditor/dialogs/background/images/success.png delete mode 100644 public/static/UEditor/dialogs/charts/chart.config.js delete mode 100644 public/static/UEditor/dialogs/charts/charts.css delete mode 100644 public/static/UEditor/dialogs/charts/charts.html delete mode 100644 public/static/UEditor/dialogs/charts/charts.js delete mode 100644 public/static/UEditor/dialogs/charts/images/charts0.png delete mode 100644 public/static/UEditor/dialogs/charts/images/charts1.png delete mode 100644 public/static/UEditor/dialogs/charts/images/charts2.png delete mode 100644 public/static/UEditor/dialogs/charts/images/charts3.png delete mode 100644 public/static/UEditor/dialogs/charts/images/charts4.png delete mode 100644 public/static/UEditor/dialogs/charts/images/charts5.png delete mode 100644 public/static/UEditor/dialogs/emotion/emotion.css delete mode 100644 public/static/UEditor/dialogs/emotion/emotion.html delete mode 100644 public/static/UEditor/dialogs/emotion/emotion.js delete mode 100644 public/static/UEditor/dialogs/emotion/images/0.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/bface.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/cface.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/fface.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/jxface2.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/neweditor-tab-bg.png delete mode 100644 public/static/UEditor/dialogs/emotion/images/tface.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/wface.gif delete mode 100644 public/static/UEditor/dialogs/emotion/images/yface.gif delete mode 100644 public/static/UEditor/dialogs/gmap/gmap.html delete mode 100644 public/static/UEditor/dialogs/help/help.css delete mode 100644 public/static/UEditor/dialogs/help/help.html delete mode 100644 public/static/UEditor/dialogs/help/help.js delete mode 100644 public/static/UEditor/dialogs/image/image.css delete mode 100644 public/static/UEditor/dialogs/image/image.html delete mode 100644 public/static/UEditor/dialogs/image/image.js delete mode 100644 public/static/UEditor/dialogs/image/images/alignicon.jpg delete mode 100644 public/static/UEditor/dialogs/image/images/bg.png delete mode 100644 public/static/UEditor/dialogs/image/images/icons.gif delete mode 100644 public/static/UEditor/dialogs/image/images/icons.png delete mode 100644 public/static/UEditor/dialogs/image/images/image.png delete mode 100644 public/static/UEditor/dialogs/image/images/progress.png delete mode 100644 public/static/UEditor/dialogs/image/images/success.gif delete mode 100644 public/static/UEditor/dialogs/image/images/success.png delete mode 100644 public/static/UEditor/dialogs/insertframe/insertframe.html delete mode 100644 public/static/UEditor/dialogs/internal.js delete mode 100644 public/static/UEditor/dialogs/link/link.html delete mode 100644 public/static/UEditor/dialogs/map/map.html delete mode 100644 public/static/UEditor/dialogs/map/show.html delete mode 100644 public/static/UEditor/dialogs/music/music.css delete mode 100644 public/static/UEditor/dialogs/music/music.html delete mode 100644 public/static/UEditor/dialogs/music/music.js delete mode 100644 public/static/UEditor/dialogs/preview/preview.html delete mode 100644 public/static/UEditor/dialogs/scrawl/images/addimg.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/brush.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/delimg.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/delimgH.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/empty.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/emptyH.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/eraser.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/redo.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/redoH.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/scale.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/scaleH.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/size.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/undo.png delete mode 100644 public/static/UEditor/dialogs/scrawl/images/undoH.png delete mode 100644 public/static/UEditor/dialogs/scrawl/scrawl.css delete mode 100644 public/static/UEditor/dialogs/scrawl/scrawl.html delete mode 100644 public/static/UEditor/dialogs/scrawl/scrawl.js delete mode 100644 public/static/UEditor/dialogs/searchreplace/searchreplace.html delete mode 100644 public/static/UEditor/dialogs/searchreplace/searchreplace.js delete mode 100644 public/static/UEditor/dialogs/snapscreen/snapscreen.html delete mode 100644 public/static/UEditor/dialogs/spechars/spechars.html delete mode 100644 public/static/UEditor/dialogs/spechars/spechars.js delete mode 100644 public/static/UEditor/dialogs/table/dragicon.png delete mode 100644 public/static/UEditor/dialogs/table/edittable.css delete mode 100644 public/static/UEditor/dialogs/table/edittable.html delete mode 100644 public/static/UEditor/dialogs/table/edittable.js delete mode 100644 public/static/UEditor/dialogs/table/edittd.html delete mode 100644 public/static/UEditor/dialogs/table/edittip.html delete mode 100644 public/static/UEditor/dialogs/template/config.js delete mode 100644 public/static/UEditor/dialogs/template/images/bg.gif delete mode 100644 public/static/UEditor/dialogs/template/images/pre0.png delete mode 100644 public/static/UEditor/dialogs/template/images/pre1.png delete mode 100644 public/static/UEditor/dialogs/template/images/pre2.png delete mode 100644 public/static/UEditor/dialogs/template/images/pre3.png delete mode 100644 public/static/UEditor/dialogs/template/images/pre4.png delete mode 100644 public/static/UEditor/dialogs/template/template.css delete mode 100644 public/static/UEditor/dialogs/template/template.html delete mode 100644 public/static/UEditor/dialogs/template/template.js delete mode 100644 public/static/UEditor/dialogs/video/images/bg.png delete mode 100644 public/static/UEditor/dialogs/video/images/center_focus.jpg delete mode 100644 public/static/UEditor/dialogs/video/images/file-icons.gif delete mode 100644 public/static/UEditor/dialogs/video/images/file-icons.png delete mode 100644 public/static/UEditor/dialogs/video/images/icons.gif delete mode 100644 public/static/UEditor/dialogs/video/images/icons.png delete mode 100644 public/static/UEditor/dialogs/video/images/image.png delete mode 100644 public/static/UEditor/dialogs/video/images/left_focus.jpg delete mode 100644 public/static/UEditor/dialogs/video/images/none_focus.jpg delete mode 100644 public/static/UEditor/dialogs/video/images/progress.png delete mode 100644 public/static/UEditor/dialogs/video/images/right_focus.jpg delete mode 100644 public/static/UEditor/dialogs/video/images/success.gif delete mode 100644 public/static/UEditor/dialogs/video/images/success.png delete mode 100644 public/static/UEditor/dialogs/video/video.css delete mode 100644 public/static/UEditor/dialogs/video/video.html delete mode 100644 public/static/UEditor/dialogs/video/video.js delete mode 100644 public/static/UEditor/dialogs/webapp/webapp.html delete mode 100644 public/static/UEditor/dialogs/wordimage/tangram.js delete mode 100644 public/static/UEditor/dialogs/wordimage/wordimage.html delete mode 100644 public/static/UEditor/dialogs/wordimage/wordimage.js delete mode 100644 public/static/UEditor/index.html delete mode 100644 public/static/UEditor/lang/en/en.js delete mode 100644 public/static/UEditor/lang/en/images/addimage.png delete mode 100644 public/static/UEditor/lang/en/images/alldeletebtnhoverskin.png delete mode 100644 public/static/UEditor/lang/en/images/alldeletebtnupskin.png delete mode 100644 public/static/UEditor/lang/en/images/background.png delete mode 100644 public/static/UEditor/lang/en/images/button.png delete mode 100644 public/static/UEditor/lang/en/images/copy.png delete mode 100644 public/static/UEditor/lang/en/images/deletedisable.png delete mode 100644 public/static/UEditor/lang/en/images/deleteenable.png delete mode 100644 public/static/UEditor/lang/en/images/listbackground.png delete mode 100644 public/static/UEditor/lang/en/images/localimage.png delete mode 100644 public/static/UEditor/lang/en/images/music.png delete mode 100644 public/static/UEditor/lang/en/images/rotateleftdisable.png delete mode 100644 public/static/UEditor/lang/en/images/rotateleftenable.png delete mode 100644 public/static/UEditor/lang/en/images/rotaterightdisable.png delete mode 100644 public/static/UEditor/lang/en/images/rotaterightenable.png delete mode 100644 public/static/UEditor/lang/en/images/upload.png delete mode 100644 public/static/UEditor/lang/zh-cn/images/copy.png delete mode 100644 public/static/UEditor/lang/zh-cn/images/localimage.png delete mode 100644 public/static/UEditor/lang/zh-cn/images/music.png delete mode 100644 public/static/UEditor/lang/zh-cn/images/upload.png delete mode 100644 public/static/UEditor/lang/zh-cn/zh-cn.js delete mode 100644 public/static/UEditor/php/Uploader.class.php delete mode 100644 public/static/UEditor/php/action_crawler.php delete mode 100644 public/static/UEditor/php/action_list.php delete mode 100644 public/static/UEditor/php/action_upload.php delete mode 100644 public/static/UEditor/php/config.json delete mode 100644 public/static/UEditor/php/controller.php delete mode 100644 public/static/UEditor/themes/default/css/ueditor.css delete mode 100644 public/static/UEditor/themes/default/css/ueditor.min.css delete mode 100644 public/static/UEditor/themes/default/dialogbase.css delete mode 100644 public/static/UEditor/themes/default/images/anchor.gif delete mode 100644 public/static/UEditor/themes/default/images/arrow.png delete mode 100644 public/static/UEditor/themes/default/images/arrow_down.png delete mode 100644 public/static/UEditor/themes/default/images/arrow_up.png delete mode 100644 public/static/UEditor/themes/default/images/button-bg.gif delete mode 100644 public/static/UEditor/themes/default/images/cancelbutton.gif delete mode 100644 public/static/UEditor/themes/default/images/charts.png delete mode 100644 public/static/UEditor/themes/default/images/cursor_h.gif delete mode 100644 public/static/UEditor/themes/default/images/cursor_h.png delete mode 100644 public/static/UEditor/themes/default/images/cursor_v.gif delete mode 100644 public/static/UEditor/themes/default/images/cursor_v.png delete mode 100644 public/static/UEditor/themes/default/images/dialog-title-bg.png delete mode 100644 public/static/UEditor/themes/default/images/filescan.png delete mode 100644 public/static/UEditor/themes/default/images/highlighted.gif delete mode 100644 public/static/UEditor/themes/default/images/icons-all.gif delete mode 100644 public/static/UEditor/themes/default/images/icons.gif delete mode 100644 public/static/UEditor/themes/default/images/icons.png delete mode 100644 public/static/UEditor/themes/default/images/loaderror.png delete mode 100644 public/static/UEditor/themes/default/images/loading.gif delete mode 100644 public/static/UEditor/themes/default/images/lock.gif delete mode 100644 public/static/UEditor/themes/default/images/neweditor-tab-bg.png delete mode 100644 public/static/UEditor/themes/default/images/pagebreak.gif delete mode 100644 public/static/UEditor/themes/default/images/scale.png delete mode 100644 public/static/UEditor/themes/default/images/sortable.png delete mode 100644 public/static/UEditor/themes/default/images/spacer.gif delete mode 100644 public/static/UEditor/themes/default/images/sparator_v.png delete mode 100644 public/static/UEditor/themes/default/images/table-cell-align.png delete mode 100644 public/static/UEditor/themes/default/images/tangram-colorpicker.png delete mode 100644 public/static/UEditor/themes/default/images/toolbar_bg.png delete mode 100644 public/static/UEditor/themes/default/images/unhighlighted.gif delete mode 100644 public/static/UEditor/themes/default/images/upload.png delete mode 100644 public/static/UEditor/themes/default/images/videologo.gif delete mode 100644 public/static/UEditor/themes/default/images/word.gif delete mode 100644 public/static/UEditor/themes/default/images/wordpaste.png delete mode 100644 public/static/UEditor/themes/iframe.css delete mode 100644 public/static/UEditor/third-party/SyntaxHighlighter/shCore.js delete mode 100644 public/static/UEditor/third-party/SyntaxHighlighter/shCoreDefault.css delete mode 100644 public/static/UEditor/third-party/codemirror/codemirror.css delete mode 100644 public/static/UEditor/third-party/codemirror/codemirror.js delete mode 100644 public/static/UEditor/third-party/highcharts/adapters/mootools-adapter.js delete mode 100644 public/static/UEditor/third-party/highcharts/adapters/mootools-adapter.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/adapters/prototype-adapter.js delete mode 100644 public/static/UEditor/third-party/highcharts/adapters/prototype-adapter.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/adapters/standalone-framework.js delete mode 100644 public/static/UEditor/third-party/highcharts/adapters/standalone-framework.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/highcharts-more.js delete mode 100644 public/static/UEditor/third-party/highcharts/highcharts-more.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/highcharts.js delete mode 100644 public/static/UEditor/third-party/highcharts/highcharts.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/annotations.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/annotations.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/canvas-tools.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/canvas-tools.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/data.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/data.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/drilldown.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/drilldown.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/exporting.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/exporting.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/funnel.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/funnel.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/heatmap.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/heatmap.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/map.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/map.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/no-data-to-display.js delete mode 100644 public/static/UEditor/third-party/highcharts/modules/no-data-to-display.src.js delete mode 100644 public/static/UEditor/third-party/highcharts/themes/dark-blue.js delete mode 100644 public/static/UEditor/third-party/highcharts/themes/dark-green.js delete mode 100644 public/static/UEditor/third-party/highcharts/themes/gray.js delete mode 100644 public/static/UEditor/third-party/highcharts/themes/grid.js delete mode 100644 public/static/UEditor/third-party/highcharts/themes/skies.js delete mode 100644 public/static/UEditor/third-party/jquery-1.10.2.js delete mode 100644 public/static/UEditor/third-party/jquery-1.10.2.min.js delete mode 100644 public/static/UEditor/third-party/jquery-1.10.2.min.map delete mode 100644 public/static/UEditor/third-party/snapscreen/UEditorSnapscreen.exe delete mode 100644 public/static/UEditor/third-party/video-js/font/vjs.eot delete mode 100644 public/static/UEditor/third-party/video-js/font/vjs.svg delete mode 100644 public/static/UEditor/third-party/video-js/font/vjs.ttf delete mode 100644 public/static/UEditor/third-party/video-js/font/vjs.woff delete mode 100644 public/static/UEditor/third-party/video-js/video-js.css delete mode 100644 public/static/UEditor/third-party/video-js/video-js.min.css delete mode 100644 public/static/UEditor/third-party/video-js/video.dev.js delete mode 100644 public/static/UEditor/third-party/video-js/video.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.css delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.custom.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.custom.min.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.flashonly.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.flashonly.min.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.html5only.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.html5only.min.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.min.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.withoutimage.js delete mode 100644 public/static/UEditor/third-party/webuploader/webuploader.withoutimage.min.js delete mode 100644 public/static/UEditor/third-party/xss.min.js delete mode 100644 public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.js delete mode 100644 public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.min.js delete mode 100644 public/static/UEditor/ueditor.all.js delete mode 100644 public/static/UEditor/ueditor.all.min.js delete mode 100644 public/static/UEditor/ueditor.config.js delete mode 100644 public/static/UEditor/ueditor.parse.js delete mode 100644 public/static/UEditor/ueditor.parse.min.js delete mode 100644 public/static/getpoint/index.html delete mode 100644 public/static/img/category/10.png delete mode 100644 public/static/img/category/11.png delete mode 100644 public/static/img/category/20.png delete mode 100644 public/static/img/category/30.png delete mode 100644 public/static/img/statistics/ranking/01.png delete mode 100644 public/static/img/statistics/ranking/02.png delete mode 100644 public/static/img/statistics/ranking/03.png delete mode 100644 src/api/home.js delete mode 100644 src/assets/background.jpg delete mode 100644 src/assets/icons/app.svg delete mode 100644 src/assets/icons/apps.svg delete mode 100644 src/assets/icons/arrow-right.svg delete mode 100644 src/assets/icons/bx-analyse.svg delete mode 100644 src/assets/icons/content.svg delete mode 100644 src/assets/icons/goods.svg delete mode 100644 src/assets/icons/h5-weixin.svg delete mode 100644 src/assets/icons/h5.svg delete mode 100644 src/assets/icons/home.svg delete mode 100644 src/assets/icons/home/functions/coupon.svg delete mode 100644 src/assets/icons/home/functions/dealer.svg delete mode 100644 src/assets/icons/home/functions/decorate.svg delete mode 100644 src/assets/icons/home/functions/goods.svg delete mode 100644 src/assets/icons/home/functions/order.svg delete mode 100644 src/assets/icons/home/functions/refund.svg delete mode 100644 src/assets/icons/home/functions/statistics.svg delete mode 100644 src/assets/icons/home/functions/user.svg delete mode 100644 src/assets/icons/home/functions/wechat-mini.svg delete mode 100644 src/assets/icons/home/overview/increase.svg delete mode 100644 src/assets/icons/home/overview/sale.svg delete mode 100644 src/assets/icons/home/statistics/consume.svg delete mode 100644 src/assets/icons/home/statistics/goods.svg delete mode 100644 src/assets/icons/home/statistics/order.svg delete mode 100644 src/assets/icons/home/statistics/recharge.svg delete mode 100644 src/assets/icons/home/statistics/user.svg delete mode 100644 src/assets/icons/manage.svg delete mode 100644 src/assets/icons/market.svg delete mode 100644 src/assets/icons/mp-weixin.svg delete mode 100644 src/assets/icons/order.svg delete mode 100644 src/assets/icons/page/components/article.svg delete mode 100644 src/assets/icons/page/components/banner.svg delete mode 100644 src/assets/icons/page/components/bargain.svg delete mode 100644 src/assets/icons/page/components/blank.svg delete mode 100644 src/assets/icons/page/components/coupon.svg delete mode 100644 src/assets/icons/page/components/goods.svg delete mode 100644 src/assets/icons/page/components/groupon.svg delete mode 100644 src/assets/icons/page/components/guide.svg delete mode 100644 src/assets/icons/page/components/hotZone.svg delete mode 100644 src/assets/icons/page/components/image.svg delete mode 100644 src/assets/icons/page/components/imageSingle.svg delete mode 100644 src/assets/icons/page/components/index.js delete mode 100644 src/assets/icons/page/components/navBar.svg delete mode 100644 src/assets/icons/page/components/notice.svg delete mode 100644 src/assets/icons/page/components/officialAccount.svg delete mode 100644 src/assets/icons/page/components/richText.svg delete mode 100644 src/assets/icons/page/components/search.svg delete mode 100644 src/assets/icons/page/components/service.svg delete mode 100644 src/assets/icons/page/components/shop.svg delete mode 100644 src/assets/icons/page/components/special.svg delete mode 100644 src/assets/icons/page/components/video.svg delete mode 100644 src/assets/icons/page/components/window.svg delete mode 100644 src/assets/icons/page/index.js delete mode 100644 src/assets/icons/page/search.svg delete mode 100644 src/assets/icons/page/sharp.svg delete mode 100644 src/assets/icons/page/volume-fill.svg delete mode 100644 src/assets/icons/payment/alipay.svg delete mode 100644 src/assets/icons/payment/balance.svg delete mode 100644 src/assets/icons/payment/wechat.svg delete mode 100644 src/assets/icons/setting.svg delete mode 100644 src/assets/icons/shop.svg delete mode 100644 src/assets/icons/statistics.svg delete mode 100644 src/assets/icons/user.svg delete mode 100644 src/assets/img/circular.png delete mode 100644 src/assets/img/default-avatar.png delete mode 100644 src/assets/img/phone-top-black.png delete mode 100644 src/assets/img/phone-top-white.png create mode 100644 src/assets/logo.png delete mode 100644 src/assets/logo.svg delete mode 100644 src/assets/logo_.svg create mode 100644 src/assets/pageBg.png create mode 100644 src/assets/scss/_variables.scss create mode 100644 src/assets/scss/index.scss create mode 100644 src/assets/scss/style.scss create mode 100644 src/common/flexible.js create mode 100644 src/components/echart/bottom/bottomLeftChart.vue create mode 100644 src/components/echart/bottom/bottomRightChart.vue create mode 100644 src/components/echart/center/centerChartRate.vue create mode 100644 src/components/echart/centerLeft2/centreLeft1Chart.vue create mode 100644 src/components/echart/centerLeft2/centreLeft2Chart.vue create mode 100644 src/components/echart/centreRight2/centreRight2Chart1.vue delete mode 100644 src/config/defaultSettings.js delete mode 100644 src/config/router.config.js delete mode 100644 src/core/bootstrap.js delete mode 100644 src/core/directives/action.js delete mode 100644 src/core/icons.js delete mode 100644 src/core/lazy_use.js delete mode 100644 src/core/use.js delete mode 100644 src/global.less delete mode 100644 src/locales/index.js delete mode 100644 src/locales/lang/en-US.js delete mode 100644 src/locales/lang/zh-CN.js delete mode 100644 src/router/README.md delete mode 100644 src/router/generator-routers.js delete mode 100644 src/store/app-mixin.js delete mode 100644 src/store/device-mixin.js delete mode 100644 src/store/getters.js delete mode 100644 src/store/i18n-mixin.js delete mode 100644 src/store/modules/app.js delete mode 100644 src/store/modules/async-router.js delete mode 100644 src/store/modules/permission.js delete mode 100644 src/store/modules/user.js delete mode 100644 src/store/mutation-types.js delete mode 100644 src/utils/axios.js delete mode 100644 src/utils/domUtil.js delete mode 100644 src/utils/filter.js create mode 100644 src/utils/index.js delete mode 100644 src/utils/request.js create mode 100644 src/utils/resizeMixins.js delete mode 100644 src/utils/routeConvert.js delete mode 100644 src/utils/util.js delete mode 100644 src/utils/utils.less delete mode 100644 src/views/404.vue create mode 100644 src/views/bottomLeft.vue create mode 100644 src/views/bottomRight.vue create mode 100644 src/views/center.vue create mode 100644 src/views/centerLeft1.vue create mode 100644 src/views/centerLeft2.vue create mode 100644 src/views/centerRight1.vue create mode 100644 src/views/centerRight2.vue delete mode 100644 src/views/exception/403.vue delete mode 100644 src/views/exception/404.vue delete mode 100644 src/views/exception/500.vue create mode 100644 src/views/index.vue delete mode 100644 src/views/index/Index.vue delete mode 100644 tests/unit/.eslintrc.js delete mode 100644 version.json delete mode 100644 webstorm.config.js diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index 8f96043..0000000 --- a/.browserslistrc +++ /dev/null @@ -1,3 +0,0 @@ -> 1% -last 2 versions -not ie <= 10 diff --git a/.env b/.env deleted file mode 100644 index b5c472a..0000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -NODE_ENV=production -VUE_APP_PREVIEW=false -VUE_APP_API_BASE_URL=/api \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5bece06..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = { - root: true, - env: { - node: true - }, - 'extends': [ - 'plugin:vue/strongly-recommended', - '@vue/standard' - ], - rules: { - 'no-console': 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'generator-star-spacing': 'off', - 'no-mixed-operators': 0, - 'vue/max-attributes-per-line': [ - 2, - { - 'singleline': 5, - 'multiline': { - 'max': 1, - 'allowFirstLine': false - } - } - ], - 'vue/attribute-hyphenation': 0, - 'vue/html-self-closing': 0, - 'vue/component-name-in-template-casing': 0, - 'vue/html-closing-bracket-spacing': 0, - 'vue/singleline-html-element-content-newline': 0, - 'vue/no-unused-components': 0, - 'vue/multiline-html-element-content-newline': 0, - 'vue/no-use-v-if-with-v-for': 0, - 'vue/html-closing-bracket-newline': 0, - 'vue/no-parsing-error': 0, - 'no-tabs': 0, - 'quotes': [ - 2, - 'single', - { - 'avoidEscape': true, - 'allowTemplateLiterals': true - } - ], - 'semi': [ - 2, - 'never', - { - 'beforeStatementContinuationChars': 'never' - } - ], - 'no-delete-var': 2, - 'prefer-const': [ - 2, - { - 'ignoreReadBeforeAssign': false - } - ], - 'template-curly-spacing': 'off', - 'indent': 'off' - }, - parserOptions: { - parser: 'babel-eslint' - }, - overrides: [ - { - files: [ - '**/__tests__/*.{j,t}s?(x)', - '**/tests/unit/**/*.spec.{j,t}s?(x)' - ], - env: { - jest: true - } - } - ] -} diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index e507319..0000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -public/* linguist-vendored \ No newline at end of file diff --git a/.gitignore b/.gitignore index 185e663..a0dddc6 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,4 @@ yarn-error.log* *.ntvs* *.njsproj *.sln -*.sw* +*.sw? diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index cbe842a..0000000 --- a/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "printWidth": 120, - "semi": false, - "singleQuote": true -} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a08bfcb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -node_js: - - 10.15.0 -cache: yarn -script: - - yarn - - yarn run lint --no-fix && yarn run build diff --git a/FETCH_HEAD b/FETCH_HEAD new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 992016e..d5dc6a3 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,189 @@ +## 一、项目描述 +- 一个基于 vue、datav、Echart 框架的 " **数据大屏项目** ",通过 vue 组件实现数据动态刷新渲染,内部图表可实现自由替换。部分图表使用 DataV 自带组件,可进行更改,详情请点击下方 DataV 文档。 +- 项目需要全屏展示(按 F11)。 +- 项目部分区域使用了全局注册方式,增加了打包体积,在实际运用中请使用**按需引入**。 +- 拉取项目之后,建议按照自己的功能区域重命名文件,现以简单的位置进行区分。 +- 项目环境:vue-cli-3.0、webpack-4.0、npm-6.13、node-v12.16。 +- 请拉取 master 分支的代码,其余是开发分支。 -项目简述 ----- +友情链接: -基于 [Ant Design Pro](https://pro.ant.design/) 实现的 [萤火商城V2.0-store端] +1. [DataV 官方文档(建议使用之前先浏览)](http://datav.jiaminghi.com/guide/) +2. [echarts 实例](https://www.echartsjs.com/examples/zh/index.html),[echarts 官方文档](https://www.echartsjs.com/zh/option.html#title) +3. [Vue 官方文档](https://cn.vuejs.org/v2/guide/instance.html) +4. [项目 gitee 地址(国内速度快)](https://gitee.com/zhufei_yao/study_hard) -环境和依赖 ----- +项目展示 +![项目展示](https://images.gitee.com/uploads/images/2020/0411/221307_0f8af2e7_4964818.gif '20200411_221020.gif') -- node — v18.12.1 -- yarn — v8.19.2 -- npm — v1.22.19 +## 二、主要文件介绍 -- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design Of Vue 实现 +| 文件 | 作用/功能 | +| ------------------- | --------------------------------------------------- | +| main.js | 主目录文件,引入Echart/DataV等文件 | +| utils | 工具函数与 mixins 函数等 | +| views/ index.vue | 项目主结构 | +| views/其余文件 | 界面各个区域组件(按照位置来命名)ajax 接口请求位置 | +| assets | 静态资源目录,放置 logo 与背景图片 | +| assets / style.scss | 通用 CSS 文件,全局项目快捷样式调节 | +| assets / index.scss | Index 界面的 CSS 文件 | +| components/echart | 所有 echart 图表(按照位置来命名) | +| common/flexible.js | flexible 插件代码(适配屏幕尺寸,定制化修改) | +## 三、使用介绍 -项目运行和发布 ----- +1. **如何启动项目** -- 修改配置文件 -``` -1. 打开文件:/public/config.js -2. 修改服务端API信息 -``` + 需要提前安装好`nodejs`与`npm`,下载项目后在项目主目录下运行`npm/cnpm install`拉取依赖包,然后使用 `vue-cli` 或者直接使用命令`npm run serve`,就可以启动项目,启动项目后需要手动全屏(按 F11)。 -- 安装依赖 -``` -yarn config set ignore-engines true -yarn install -``` +2. **如何请求数据** + + 现在的项目未使用前后端数据请求,建议使用 axios 进行数据请求,在 main.js 位置进行全局配置,在 views/xx.vue 文件里进行前后端数据请求。 -- 开发模式运行 +- axios 的 main.js 配置参考范例(因人而异) + +```js +import axios from 'axios'; + +//把方法放到vue的原型上,这样就可以全局使用了 +Vue.prototype.$http = axios.create({ + //设置20秒超时时间 + timeout: 20000, + baseURL: 'http://172.0.0.1:80080', //这里写后端地址 +}); ``` -yarn serve + +- 在 vue 页面中调用 axios 方法并通过 props 传给 echarts 图表子组件 + +```js +export default { + data() { + ListDataSelf:[] + }, + mounted() { + this.fetchList(); //获取数据 + }, + methods: { + async fetchList(){ + const { code,listData }= await this.$http.get("xx/xx/xx"x); + if(code === 200){ + this.ListDataSelf= listData; + } + } + } + } ``` -- 编译项目 +3. **如何动态渲染图表** + + 在`components/echart`下的文件,比如`drawPie()`是渲染函数,`echartData`是需要动态渲染的数据,当外界通过`props`传入新数据,我们可以使用`watch()`方法去监听,一但数据变化就调用`this.drawPie()`并触发内部的`.setOption`函数,重新渲染一次图表。 + +```js +//这里是子组件内部 + +props: ["listData"], +watch: { + listData(newValue) { + this.echartData= newValue; + this.drawPie(); + }, + }, +methods: { + drawPie() { + ..... + '渲染节点名称'.setOption(option); + } + } ``` -yarn build + +4. **如何复用图表组件** + + 因为 Echart 图表是根据`id/class`去获取 Dom 节点并进行渲染的,所以我们只要传入唯一的 id 值与需要的数据就可以进行复用。如中间部分的`任务通过率与任务达标率`组件就是采用复用的方式。 + +如:在调用处`views/center.vue`里去定义好数据并传入组件(项目里的所有`id`都不能重复!!!) + +```js +//组件调用 +今日任务通过率 + + +今日任务达标率 + + +... +import centerChart from "@/components/echart/center/centerChartRate"; + +data() { + return { + rate: [ + { + id: "centerRate1", + tips: 60, + ... + }, + { + id: "centerRate2", + tips: 40, + colorData: { + ... + } + } + ] + } +} ``` -- 发布项目 +然后在复用的组件`components/echart/center/centerChartRate`里进行接收并在用到的地方赋值。 + +5. **如何更换边框** + + 边框是使用了 DataV 自带的组件,只需要去 views 目录下去寻找对应的位置去查找并替换就可以,具体的种类请去 DavaV 官网查看 + 如: + +```html + + + ``` -将编译完成的所有文件,复制替换到商城后端项目的/public/store目录下 + +6. **如何更换图表** + + 直接进入 `components/echart` 下的文件修改成你要的 echarts 模样,可以去[echarts 官方社区](https://gallery.echartsjs.com/explore.html#sort=rank~timeframe=all~author=all)里面查看案例。 + +7. **Mixins 注入的问题** + + 使用 mixins 注入解决了图表重复书写响应式适配的代码,如果要更换(新增)图形,需要将`echarts.init()`函数赋值给`this.chart`,然后 mixins 才会自动帮你注入响应式功能。 + +8. **屏幕适配问题** + + 本项目借助了 flexible 插件,通过改变 rem 的值来进行适配,原设计为 1920px。 ,适配区间为:1366px ~ 2560px,本项目有根据实际情况进行源文件的更改,小屏幕(如:宽为 1366px)需要自己舍弃部分动态组件进行适配,如'动态文字变换组件'会影响布局,需要手动换成一般节点, + +```js +// flexible文件位置: `common/flexible.js`,修改部分如下 +function refreshRem() { + var width = docEl.getBoundingClientRect().width; + // 最小1366px,最大适配2560px + if (width / dpr < 1366) { + width = 1366 * dpr; + } else if (width / dpr > 2560) { + width = 2560 * dpr; + } + // 原项目是1920px我设置成24等份,这样1rem就是80px + var rem = width / 24; + docEl.style.fontSize = rem + 'px'; + flexible.rem = win.rem = rem; +} ``` -## 浏览器兼容 +## 四、更新情况 + +1. 增加了 Echart 组件复用的功能,如:中间任务达标率的两个百分比图使用的是同一个组件。 +2. 修复了头部右侧的图案条不对称的问题。 +3. 修复屏幕适配问题,更换了所有的尺寸单位,统一使用 rem。 +4. 使用 Mixins 注入图表响应式代码。 +5. vue-awesome 改成按需引入的方式 -Modern browsers and IE10. +## 五、其余 -| IE / Edge
IE / Edge | Firefox
Firefox | Chrome
Chrome | Safari
Safari | Opera
Opera | -| --- | --- | --- | --- | --- | -| IE10, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions | +这个项目是个人的作品,难免会有问题和 BUG,如果有问题请进行评论,我也会尽力去更新,自己也在前端学习的路上,欢迎交流,非常感谢! diff --git a/babel.config.js b/babel.config.js index 82bd474..e955840 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,28 +1,5 @@ -const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV) - -const plugins = [] -if (IS_PROD) { - plugins.push('transform-remove-console') -} - plugins.push('transform-class-properties') -// lazy load ant-design-vue -// if your use import on Demand, Use this code -plugins.push(['import', { - 'libraryName': 'ant-design-vue', - 'libraryDirectory': 'es', - 'style': true // `style: true` 会加载 less 文件 -}]) - module.exports = { presets: [ - '@vue/cli-plugin-babel/preset', - [ - '@babel/preset-env', - { - 'useBuiltIns': 'entry', - 'corejs': 3 - } - ] - ], - plugins + '@vue/cli-plugin-babel/preset' + ] } diff --git a/config/plugin.config.js b/config/plugin.config.js deleted file mode 100644 index 2ad9b19..0000000 --- a/config/plugin.config.js +++ /dev/null @@ -1,46 +0,0 @@ -const ThemeColorReplacer = require('webpack-theme-color-replacer') -const generate = require('@ant-design/colors/lib/generate').default - -const getAntdSerials = (color) => { - // 淡化(即less的tint) - const lightens = new Array(9).fill().map((t, i) => { - return ThemeColorReplacer.varyColor.lighten(color, i / 10) - }) - const colorPalettes = generate(color) - const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',') - return lightens.concat(colorPalettes).concat(rgb) -} - -const themePluginOption = { - fileName: 'css/theme-colors-[contenthash:8].css', - matchColors: getAntdSerials('#1890ff'), // 主色系列 - // 改变样式选择器,解决样式覆盖问题 - changeSelector (selector) { - switch (selector) { - case '.ant-calendar-today .ant-calendar-date': - return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector - case '.ant-btn:focus,.ant-btn:hover': - return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)' - case '.ant-btn.active,.ant-btn:active': - return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)' - case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': - case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon': - return ':not(.ant-steps-item-process)' + selector - case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': - case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': - return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' - case '.ant-menu-horizontal > .ant-menu-item-selected > a': - case '.ant-menu-horizontal>.ant-menu-item-selected>a': - return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a' - case '.ant-menu-horizontal > .ant-menu-item > a:hover': - case '.ant-menu-horizontal>.ant-menu-item>a:hover': - return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover' - default : - return selector - } - } -} - -const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption) - -module.exports = createThemeColorReplacerPlugin diff --git a/config/themePluginConfig.js b/config/themePluginConfig.js deleted file mode 100644 index d35ef8b..0000000 --- a/config/themePluginConfig.js +++ /dev/null @@ -1,115 +0,0 @@ -export default { - theme: [ - { - key: 'dark', - fileName: 'dark.css', - theme: 'dark' - }, - { - key: '#F5222D', - fileName: '#F5222D.css', - modifyVars: { - '@primary-color': '#F5222D' - } - }, - { - key: '#FA541C', - fileName: '#FA541C.css', - modifyVars: { - '@primary-color': '#FA541C' - } - }, - { - key: '#FAAD14', - fileName: '#FAAD14.css', - modifyVars: { - '@primary-color': '#FAAD14' - } - }, - { - key: '#13C2C2', - fileName: '#13C2C2.css', - modifyVars: { - '@primary-color': '#13C2C2' - } - }, - { - key: '#52C41A', - fileName: '#52C41A.css', - modifyVars: { - '@primary-color': '#52C41A' - } - }, - { - key: '#2F54EB', - fileName: '#2F54EB.css', - modifyVars: { - '@primary-color': '#2F54EB' - } - }, - { - key: '#722ED1', - fileName: '#722ED1.css', - modifyVars: { - '@primary-color': '#722ED1' - } - }, - - { - key: '#F5222D', - theme: 'dark', - fileName: 'dark-#F5222D.css', - modifyVars: { - '@primary-color': '#F5222D' - } - }, - { - key: '#FA541C', - theme: 'dark', - fileName: 'dark-#FA541C.css', - modifyVars: { - '@primary-color': '#FA541C' - } - }, - { - key: '#FAAD14', - theme: 'dark', - fileName: 'dark-#FAAD14.css', - modifyVars: { - '@primary-color': '#FAAD14' - } - }, - { - key: '#13C2C2', - theme: 'dark', - fileName: 'dark-#13C2C2.css', - modifyVars: { - '@primary-color': '#13C2C2' - } - }, - { - key: '#52C41A', - theme: 'dark', - fileName: 'dark-#52C41A.css', - modifyVars: { - '@primary-color': '#52C41A' - } - }, - { - key: '#2F54EB', - theme: 'dark', - fileName: 'dark-#2F54EB.css', - modifyVars: { - '@primary-color': '#2F54EB' - } - }, - { - key: '#722ED1', - theme: 'dark', - fileName: 'dark-#722ED1.css', - modifyVars: { - '@primary-color': '#722ED1' - } - } - ] -} diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 29fee32..0000000 --- a/jest.config.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - moduleFileExtensions: [ - 'js', - 'jsx', - 'json', - 'vue' - ], - transform: { - '^.+\\.vue$': 'vue-jest', - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', - '^.+\\.jsx?$': 'babel-jest' - }, - moduleNameMapper: { - '^@/(.*)$': '/src/$1' - }, - snapshotSerializers: [ - 'jest-serializer-vue' - ], - testMatch: [ - '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' - ], - testURL: 'http://localhost/' -} diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 1bd0da4..0000000 --- a/jsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "es6", - "baseUrl": ".", - "paths": { - "@/*": ["src/*"] - } - }, - "exclude": ["node_modules", "dist"], - "include": ["src/**/*"] -} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4188efc --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11913 @@ +{ + "name": "big-screen-vue-datav", + "version": "1.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz?cache=0&sync_timestamp=1578953126105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.8.3.tgz", + "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.8.6.tgz", + "integrity": "sha1-fuqg36F+UMfZwIMlFe7gm1bwTjU=", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.8.7.tgz", + "integrity": "sha1-tpAX0iHM3rIDFFrp2iadcs8QLzs=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.7", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.7", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.8.8", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.8.8.tgz", + "integrity": "sha1-zc1YyqtzCDTO6e6ttynoM7Yl2j4=", + "dev": true, + "requires": { + "@babel/types": "^7.8.7", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha1-yECXpCegYaxWocMOv1S3si0kFQM=", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.8.7.tgz", + "integrity": "sha1-KKJ5wubGIqYjPaVIEn+YB1EyTKs=", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.8.7.tgz", + "integrity": "sha1-2sHuoVnA5L1G4wm1obBKZrU8Hd4=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.9.1", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.6.tgz?cache=0&sync_timestamp=1582806122669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.8.6.tgz", + "integrity": "sha1-JDpbRuL48PZ03BOHYx62souFHeA=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.8", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha1-XYQYC1iPVgt4ZO+u6okkPlgxIIc=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz", + "integrity": "sha1-oGVcrVRRw3YLcm66h18c2PqgLBU=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha1-pyjcW06J4w/C38fQT6KKkwZT+YI=", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz", + "integrity": "sha1-7utmWgGx8RBo6fuGrVahyxqCTMo=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz?cache=0&sync_timestamp=1578951938166&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.8.3.tgz", + "integrity": "sha1-uJS5R70AQ4HOY+odufCFR+kgq9U=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz?cache=0&sync_timestamp=1578951939517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz", + "integrity": "sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.8.6.tgz", + "integrity": "sha1-ahO17srcNWkgRwc6ZOQpd7l2VKQ=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.8.6", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz?cache=0&sync_timestamp=1578951937431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz?cache=0&sync_timestamp=1578951938163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.8.3.tgz", + "integrity": "sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU=", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz?cache=0&sync_timestamp=1582806117667&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.8.6.tgz", + "integrity": "sha1-Wtp0T9WtcyA78dZ0WaJ9y6Z+/8g=", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz", + "integrity": "sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4=", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha1-ManzAHD5E2inGCzwX4MXgQZfx6k=", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz", + "integrity": "sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.8.4.tgz", + "integrity": "sha1-dU6z7nJ8Fl4KJA1sIH3nxFXzb3M=", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.8.3.tgz?cache=0&sync_timestamp=1578951935730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.8.3.tgz", + "integrity": "sha1-KPFz0EIj6qpZvB1Dmjg25tEmV5c=", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.8", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.8.tgz", + "integrity": "sha1-TDt8422zfgYpvh8NUKVx0vhvbNQ=", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.8.3.tgz?cache=0&sync_timestamp=1578953962040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha1-XgZlSvXNBLYIkVqtqbKmeIAERk4=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.8.3.tgz?cache=0&sync_timestamp=1578953963051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.8.3.tgz", + "integrity": "sha1-IVaGCrZcWr8GjD9nBCGEBBBmVD4=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-decorators": "^7.8.3" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha1-OMT+VVdEgm6X4q6TCw+0zAfmYFQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-5FciU/3u1lzd7s/as/kor+sv1dI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-61rjZhGN3KZ77Vg7U9dVTK2ZUbs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha1-rhCzIUyyX3rbHzvIe6QsoQt+JUM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha1-7jqV6QzcBP6M2S7DJ5+gF9aKDR0=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.8", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.8.3.tgz?cache=0&sync_timestamp=1578953928175&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.8.3.tgz", + "integrity": "sha1-jSwVqfGvYksAJflhaCqdU9MAG9o=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.8.3.tgz?cache=0&sync_timestamp=1578953929606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha1-UhsGyDxASA8eWLT9M7kuzrHW6pQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.8.3.tgz?cache=0&sync_timestamp=1578951935611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha1-Os3s5pXmsTqvV/wpHRqACVDHE5E=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.8.3.tgz?cache=0&sync_timestamp=1578951935848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.8.3.tgz?cache=0&sync_timestamp=1578951934748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha1-Q37sW3mbWFIHIISzrl72boNJ6KM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.8.3.tgz?cache=0&sync_timestamp=1578951934401&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.8.6.tgz?cache=0&sync_timestamp=1582806124133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.8.6.tgz", + "integrity": "sha1-d1NER6R3y+WZWuSu4+OfvICQxG0=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.8.3.tgz?cache=0&sync_timestamp=1578951933993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha1-ltDSi3985OtbEguy4OlDNDyG+Bs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.8.8.tgz", + "integrity": "sha1-+tsryOkMyvVljeb41NIv9icqL0s=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha1-w8bsXuYSXGmTxcvKINyGIanqem4=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.8.3.tgz?cache=0&sync_timestamp=1578951935457&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha1-WBptf1aXDga/UVYM1k9elHtw17c=", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.8.6.tgz", + "integrity": "sha1-oFG9G0AsYa+Xon/1G0aDIcfCoIU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz?cache=0&sync_timestamp=1578951935103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.8.3.tgz", + "integrity": "sha1-rvI5gj2RmU7Hto5VGTUl1229XcE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.8.3.tgz?cache=0&sync_timestamp=1578951935289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha1-lj/tS2IKx8v2Apx1VCQCn6OkBBA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha1-ZWBtRGFrUCJedvVXjzPFaKC4dqU=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha1-3yUXBuwzG9BYo0vdcmE5FfgpKKU=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha1-2LvyIsHb42YfRA8vAMFum7fQ1CA=", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha1-WS1XjOBsUvW5iwL5E9ZT/+lyZho=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.8.3.tgz?cache=0&sync_timestamp=1578960811276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.8.3.tgz", + "integrity": "sha1-67ah56hv+paFi9asAQLWWUQmFyU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.8.8.tgz", + "integrity": "sha1-A4HeRmyF1UBFZSQ2YMRJZFlSXa8=", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.8.7", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha1-MxlDANhTnB7SjGKtUIe6OAe5gmM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha1-Xkag3KK+4a2ChesFJ+arycN2cvg=", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.8.3.tgz?cache=0&sync_timestamp=1578951936369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha1-mgY1rE5mXSmxYoN908xQdF398fU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.8.3.tgz?cache=0&sync_timestamp=1578953949970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.8.3.tgz", + "integrity": "sha1-wBU7wKU3XrwfFZHLfuoiOt6p8Wk=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.8.3.tgz?cache=0&sync_timestamp=1578951936720&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha1-7eQGIxXOCq+KZXqSCFjxovNfxBI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha1-DO8247pz5cVyc+/7GC9GuRoeyq0=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.8.7.tgz", + "integrity": "sha1-H8fYnH910tcMK2do3mwuBJs8uds=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.7", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/runtime": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.8.7.tgz", + "integrity": "sha1-j+/OmALbVIgbpZ+Quyhxm0mWMk0=", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz", + "integrity": "sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.8.6", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.8.6.tgz", + "integrity": "sha1-rP4MZOHNmRs+MuroE6brVklUtf8=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.7", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.8.7.tgz", + "integrity": "sha1-H8lynhrLsjN9W2l3pjl5tIGfXR0=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1584145510980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz?cache=0&sync_timestamp=1578129161086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz", + "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz", + "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz", + "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz?cache=0&sync_timestamp=1578129901832&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz", + "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + } + }, + "@jiaminghi/bezier-curve": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz", + "integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "@jiaminghi/c-render": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@jiaminghi/c-render/-/c-render-0.4.3.tgz", + "integrity": "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==", + "requires": { + "@babel/runtime": "^7.5.5", + "@jiaminghi/bezier-curve": "*", + "@jiaminghi/color": "*", + "@jiaminghi/transition": "*" + } + }, + "@jiaminghi/charts": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@jiaminghi/charts/-/charts-0.2.12.tgz", + "integrity": "sha512-M++pdGrvazODF+27ROyn/jVwChFX8+4Tja0X3ibfye9EOO/ktzN+iMae0PIBSwW1F6X1diwldVYpfgSmXXJMMg==", + "requires": { + "@babel/runtime": "^7.5.5", + "@jiaminghi/c-render": "*" + } + }, + "@jiaminghi/color": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jiaminghi/color/-/color-0.1.1.tgz", + "integrity": "sha512-M09+Sb5HGqVim0zo+nG5gU1v+6gXT8ptr0BZR6dMGt83XmCJgnZtO8s7llTW4hLFFFM5co6geZvTekqLpSPAAQ==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "@jiaminghi/data-view": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@jiaminghi/data-view/-/data-view-2.7.3.tgz", + "integrity": "sha512-3dxFJkaGKogUMzAkJBBMOvD9sXGFwHNByyM7IiLBSO8Hb0a5Aa6IQ8cfu+0X2r+irLw2Ty5KDmoarc9GTxfHoQ==", + "requires": { + "@babel/runtime": "^7.5.5", + "@jiaminghi/charts": "*" + } + }, + "@jiaminghi/transition": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@jiaminghi/transition/-/transition-1.1.11.tgz", + "integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", + "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz", + "integrity": "sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA=", + "dev": true + }, + "@types/echarts": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@types/echarts/-/echarts-4.4.3.tgz", + "integrity": "sha512-HmDmg9hDJQC5KOpNOeVgcaBM+emDiduNyCCHVInDrVVfLDVPuK4fSSISy39kn1HqPa1hYDQ96FIGEhjRNGHhPA==", + "requires": { + "@types/zrender": "*" + } + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz", + "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz", + "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "dev": true + }, + "@types/node": { + "version": "13.9.1", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-13.9.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.9.1.tgz", + "integrity": "sha1-lvYG+M1n+wGIR9m2HpOZfave/HI=", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1580843285870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", + "dev": true + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz?cache=0&sync_timestamp=1580864636491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.2.tgz", + "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=", + "dev": true + }, + "@types/zrender": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/zrender/-/zrender-4.0.0.tgz", + "integrity": "sha512-s89GOIeKFiod2KSqHkfd2rzx+T2DVu7ihZCBEBnhFrzvQPUmzvDSBot9Fi1DfMQm9Odg+rTqoMGC38RvrwJK2w==" + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", + "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.1.2.tgz", + "integrity": "sha1-wKPm78Ai515CR7RIqPxrhvA+kcA=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-app": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.2.3.tgz", + "integrity": "sha1-YIssn3ymd+eTgzZi/HJ/+RN6mjU=", + "dev": true, + "requires": { + "@babel/core": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.8.3", + "@babel/preset-env": "^7.8.4", + "@babel/runtime": "^7.8.4", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.0", + "core-js": "^3.6.4", + "core-js-compat": "^3.6.4" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz?cache=0&sync_timestamp=1573270721644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.1.2.tgz", + "integrity": "sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA=", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-sugar-functional-vue": "^1.1.2", + "@vue/babel-sugar-inject-h": "^1.1.2", + "@vue/babel-sugar-v-model": "^1.1.2", + "@vue/babel-sugar-v-on": "^1.1.2" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.1.2.tgz", + "integrity": "sha1-9+JPugnm8e5wEEVgqICAV1VfGpo=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.1.2.tgz", + "integrity": "sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.2.tgz", + "integrity": "sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.2.tgz?cache=0&sync_timestamp=1573270721318&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-on%2Fdownload%2F%40vue%2Fbabel-sugar-v-on-1.1.2.tgz", + "integrity": "sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "camelcase": "^5.0.0" + } + }, + "@vue/cli-overlay": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.2.3.tgz", + "integrity": "sha1-/CbS1I/hieSNGFkQ/5JDNQl4lRU=", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.2.3.tgz", + "integrity": "sha1-hjN5USb014xRe/+aJTkinJ4MjbQ=", + "dev": true, + "requires": { + "@babel/core": "^7.8.4", + "@vue/babel-preset-app": "^4.2.3", + "@vue/cli-shared-utils": "^4.2.3", + "babel-loader": "^8.0.6", + "cache-loader": "^4.1.0", + "thread-loader": "^2.1.3", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-eslint": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.2.3.tgz", + "integrity": "sha1-KnDfmaqmBpehOJPpQDShOG8xw+4=", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^4.2.3", + "eslint-loader": "^2.1.2", + "globby": "^9.2.0", + "inquirer": "^6.3.1", + "webpack": "^4.0.0", + "yorkie": "^2.0.0" + } + }, + "@vue/cli-plugin-router": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.2.3.tgz", + "integrity": "sha1-xkWU5+fiC6dscSYvKDthmfWv1GM=", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^4.2.3" + } + }, + "@vue/cli-plugin-vuex": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.2.3.tgz?cache=0&sync_timestamp=1582814209000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.2.3.tgz", + "integrity": "sha1-qh2Ogk3YK4cYwMQOOQbDTM11JRY=", + "dev": true + }, + "@vue/cli-service": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.2.3.tgz?cache=0&sync_timestamp=1582814210405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.2.3.tgz", + "integrity": "sha1-qruO3+pdu1nfW0JGT4dhWLQ90GU=", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@vue/cli-overlay": "^4.2.3", + "@vue/cli-plugin-router": "^4.2.3", + "@vue/cli-plugin-vuex": "^4.2.3", + "@vue/cli-shared-utils": "^4.2.3", + "@vue/component-compiler-utils": "^3.0.2", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^7.1.0", + "acorn-walk": "^7.0.0", + "address": "^1.1.2", + "autoprefixer": "^9.7.4", + "browserslist": "^4.8.6", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.1.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.4.2", + "cssnano": "^4.1.10", + "current-script-polyfill": "^1.0.0", + "debug": "^4.1.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.0", + "pnp-webpack-plugin": "^1.6.0", + "portfinder": "^1.0.25", + "postcss-loader": "^3.0.0", + "ssri": "^7.1.0", + "terser-webpack-plugin": "^2.3.4", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.8.3", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.6.0", + "webpack-chain": "^6.3.1", + "webpack-dev-server": "^3.10.2", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.1.1.tgz", + "integrity": "sha1-41Zo3gtALzWd5RXFSCoaufiaab8=", + "dev": true + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1581989720458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.2.tgz?cache=0&sync_timestamp=1581565511672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.0.2.tgz", + "integrity": "sha1-BKGsvyIiHh1u9DVZ9D4FqQ27Q5I=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "terser-webpack-plugin": { + "version": "2.3.5", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.5.tgz", + "integrity": "sha1-WtlxrM5cUXRAuoc+pPCWh94vSoE=", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", + "schema-utils": "^2.6.4", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" + } + } + } + }, + "@vue/cli-shared-utils": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.2.3.tgz", + "integrity": "sha1-E2RkUswlsKtopXy1LKwnmDzuOaQ=", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.87.0", + "request-promise-native": "^1.0.8", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.1.1.tgz", + "integrity": "sha1-1O+PgCkmdARK1iEeM2owLk0qZXU=", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz", + "integrity": "sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo=", + "dev": true + }, + "@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", + "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz?cache=0&sync_timestamp=1580599461432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.8.5.tgz", + "integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.8.5.tgz", + "integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.8.5.tgz", + "integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.8.5.tgz", + "integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz", + "integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz?cache=0&sync_timestamp=1580599471846&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.8.5.tgz", + "integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz", + "integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz?cache=0&sync_timestamp=1580600708901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz?cache=0&sync_timestamp=1580599464343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.8.5.tgz", + "integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.8.5.tgz", + "integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.8.5.tgz", + "integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.8.5.tgz", + "integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz?cache=0&sync_timestamp=1580599461044&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.8.5.tgz", + "integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz?cache=0&sync_timestamp=1580600714947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.8.5.tgz", + "integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz?cache=0&sync_timestamp=1580600719192&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.8.5.tgz", + "integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz?cache=0&sync_timestamp=1580599463057&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.8.5.tgz", + "integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.8.5.tgz", + "integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz?cache=0&sync_timestamp=1580600723640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.8.5.tgz", + "integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", + "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", + "dev": true + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz", + "integrity": "sha1-TGYGkXPW/daO2FI5/CViJhgrLr4=", + "dev": true + }, + "acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.1.1.tgz", + "integrity": "sha1-NF8N/61cc15zc9L+yaECPmpEuD4=", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", + "dev": true + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz", + "integrity": "sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA=", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.0.tgz?cache=0&sync_timestamp=1582379551272&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.0.tgz", + "integrity": "sha1-BtYLlth7hFSlrauobnhU2mKdtLc=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz", + "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.1.1.tgz", + "integrity": "sha1-j1wnMao1owkpIhuwZA7tZRdeyE4=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1571657259891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", + "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz", + "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", + "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "dev": true + }, + "autoprefixer": { + "version": "9.7.4", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.7.4.tgz", + "integrity": "sha1-+L8+BnB9BH8GQdh67oz7F0sqU3g=", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "caniuse-lite": "^1.0.30001020", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.26", + "postcss-value-parser": "^4.0.2" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz", + "integrity": "sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4=", + "dev": true + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1582676223200&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz", + "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-loader": { + "version": "8.0.6", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz", + "integrity": "sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs=", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "pify": "^4.0.1" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", + "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.9.1", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.9.1.tgz?cache=0&sync_timestamp=1582936992308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.9.1.tgz", + "integrity": "sha1-Af+5yjGhrvdngSj8aiJTMWqnKHw=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001030", + "electron-to-chromium": "^1.3.363", + "node-releases": "^1.1.50" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1583524719295&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", + "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "dev": true + }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz", + "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + }, + "cacache": { + "version": "12.0.3", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.3.tgz?cache=0&sync_timestamp=1581989720458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.3.tgz", + "integrity": "sha1-vpmruk4b9d9GHNWiwQcfxDJXM5A=", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz", + "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=", + "dev": true, + "requires": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.2.tgz?cache=0&sync_timestamp=1581565511672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.0.2.tgz", + "integrity": "sha1-BKGsvyIiHh1u9DVZ9D4FqQ27Q5I=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1576748709736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001035", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001035.tgz", + "integrity": "sha1-K7U7iqRxay7QjgiNTcgWpf4Imh4=", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "dev": true + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", + "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&sync_timestamp=1581474805672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz", + "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz", + "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz?cache=0&sync_timestamp=1573948719956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.4.tgz", + "integrity": "sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis=", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "highlight.js": "^9.6.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^5.1.1", + "yargs": "^15.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.2.0.tgz", + "integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=", + "dev": true + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "clipboardy": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.2.0.tgz", + "integrity": "sha1-aB4q9JWSS8ru0VnbMofvWl9NLuE=", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.1.1.tgz", + "integrity": "sha1-ShwVLUKd89RBZpSY4khtNZbrrx0=", + "dev": true + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1573943292170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz", + "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz", + "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz", + "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", + "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-browserify%2Fdownload%2Fconsole-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.1.tgz", + "integrity": "sha1-VIGgPeoRI9iKmIxv+LeCRyFPC4g=", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&sync_timestamp=1581697613983&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.4.tgz?cache=0&sync_timestamp=1578957006406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.4.tgz", + "integrity": "sha1-RAqDU2tFgRS5yyrBWAujd9xHBkc=" + }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.4.tgz?cache=0&sync_timestamp=1578957208980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.4.tgz", + "integrity": "sha1-k4R2Vp67bNqA0zm88Zn65PFv/xc=", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1572710682964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", + "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.4.2.tgz", + "integrity": "sha1-0/2zNYtD8jO3hQHF7XscbaYTMgI=", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.23", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.1.1", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.2", + "schema-utils": "^2.6.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1573341911322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", + "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "css-what": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz", + "integrity": "sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE=", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "dev": true + }, + "csso": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.0.2.tgz", + "integrity": "sha1-5fgas6Vrju+38Aks5yeTKfRU3j0=", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.37" + } + }, + "current-script-polyfill": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/current-script-polyfill/download/current-script-polyfill-1.0.0.tgz", + "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz", + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "dev": true + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.1.tgz", + "integrity": "sha1-CrVihuD3wk4VPQTMKqAn5DqaXRQ=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1576749091315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz", + "integrity": "sha1-ASA83JJZf5uQkGfD5lbMH008Tck=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&sync_timestamp=1577053500910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&sync_timestamp=1581697613983&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1573447907918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz", + "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1575879298649&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz", + "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", + "dev": true + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", + "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "echarts": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.6.0.tgz", + "integrity": "sha512-xKkcr6v9UVOSF+PMuj7Ngt3bnzLwN1sSXWCvpvX+jYb3mePYsZnABq7wGkPac/m0nV653uGHXoHK8DCKCprdNg==", + "requires": { + "zrender": "4.2.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.376", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.376.tgz", + "integrity": "sha1-fLe1IFVkoGyPjs++gyy9R6EiS7E=", + "dev": true + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz", + "integrity": "sha1-BcVnjXFzwEnYykM1UiJKSV0ON2I=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz", + "integrity": "sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz", + "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", + "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.4.tgz?cache=0&sync_timestamp=1579624493239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.4.tgz", + "integrity": "sha1-467fGXBrIOfCWUw1/A1XYFp54YQ=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz", + "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz?cache=0&sync_timestamp=1583733678016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.11.0.tgz", + "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.0.0.tgz", + "integrity": "sha1-6HyIh8c+jR7ITxylkWRcNYv8j7k=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.0.tgz", + "integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz", + "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.1.0.tgz", + "integrity": "sha1-EpigGFmIPhfHJkuChwrhA0+S3Sk=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + } + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1583733678016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "dev": true + } + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.2.1.tgz", + "integrity": "sha1-KLnBLaVAV68IReKmEScBova/gzc=", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-plugin-vue": { + "version": "6.2.2", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz?cache=0&sync_timestamp=1584178049037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-6.2.2.tgz", + "integrity": "sha1-J/7NmjokeJsPER7N1UCp5WGY4P4=", + "dev": true, + "requires": { + "natural-compare": "^1.4.0", + "semver": "^5.6.0", + "vue-eslint-parser": "^7.0.0" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz", + "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI=", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.1.1.tgz", + "integrity": "sha1-41Zo3gtALzWd5RXFSCoaufiaab8=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true + }, + "esquery": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.1.0.tgz", + "integrity": "sha1-xcC2bzg+dlZAT4azEzTXJSTt20g=", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", + "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz", + "integrity": "sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs=", + "dev": true + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz", + "integrity": "sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749091315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&sync_timestamp=1571657269358&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz", + "integrity": "sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ=", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1582318661510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", + "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz", + "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", + "dev": true, + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&sync_timestamp=1582340569604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", + "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz", + "integrity": "sha1-aeV8qo8OrLwoHS4stFjUb9tEngg=", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.10.0.tgz?cache=0&sync_timestamp=1580082237027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.10.0.tgz", + "integrity": "sha1-AfUmOu6SHGpU+5Fmfwj0FVzhaes=", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628575109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.11.tgz?cache=0&sync_timestamp=1580708699417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.11.tgz", + "integrity": "sha1-Z79X9HWPAu3oj7KhcS/vTRU1i+M=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "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, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "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.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "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 + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz", + "integrity": "sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573078121947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz", + "integrity": "sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz", + "integrity": "sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz", + "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, + "highlight.js": { + "version": "9.18.1", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz", + "integrity": "sha1-7SGqAB/mJSuxCj121HVzxlOf4Tw=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "dev": true + } + } + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1579207239037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz?cache=0&sync_timestamp=1572714277347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.18.0", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz", + "integrity": "sha1-2+VfY+daNH2389mZdPJpKjFKajo=", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1584192392477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1582588506861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584198662293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1579333981154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz", + "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", + "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz", + "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1583983247512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz", + "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", + "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz", + "integrity": "sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729165697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", + "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-svg%2Fdownload%2Fis-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "javascript-stringify": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz?cache=0&sync_timestamp=1572948916758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz", + "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", + "dev": true + }, + "jest-worker": { + "version": "25.1.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.1.0.tgz?cache=0&sync_timestamp=1579655017974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.1.0.tgz", + "integrity": "sha1-ddA4utb99Y66DS7Bg1hWxJfjkHo=", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-message": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", + "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "dev": true + }, + "js-queue": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", + "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "dev": true, + "requires": { + "easy-stack": "^1.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.1.tgz", + "integrity": "sha1-gbbLBOm6SW8ccAXQe0NoomOPkLY=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + }, + "launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", + "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + } + }, + "launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", + "dev": true, + "requires": { + "launch-editor": "^2.2.1" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz", + "integrity": "sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/levenary/download/levenary-1.1.1.tgz", + "integrity": "sha1-hCqe6Y0gdap/ru2+MmeekgX0b3c=", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "loader-fs-cache": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz", + "integrity": "sha1-VM7fa3J+F3n9jwEgXwX26IcG8IY=", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz", + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.6.7", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.7.tgz", + "integrity": "sha1-s+A0IzGIxouIn1uGJBUwb1ZeLFY=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", + "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1581565511672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", + "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz", + "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.3.0.tgz", + "integrity": "sha1-WzZu6DsvFYLEj4fkfPGpNSEDyoE=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", + "dev": true + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281104943&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz", + "integrity": "sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg=", + "dev": true + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282585871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz", + "integrity": "sha1-nJIfwJt+FJpl39wNpNIJlyALCgY=", + "dev": true, + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1576856499989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", + "dev": true + }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz", + "integrity": "sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU=", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.2.tgz", + "integrity": "sha1-PctrtKVG4ylpx61xDyx5qGq7qTo=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&sync_timestamp=1579899671093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz", + "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", + "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz", + "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576721537540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz", + "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=", + "dev": true + }, + "node-ipc": { + "version": "9.1.1", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", + "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.52", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.52.tgz?cache=0&sync_timestamp=1584043354902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.52.tgz", + "integrity": "sha1-vP/uPgp1jpLkTs+uzQpHVUsLy6k=", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1577053500910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz?cache=0&sync_timestamp=1581061562193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-hash%2Fdownload%2Fobject-hash-1.3.1.tgz", + "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=", + "dev": true + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz", + "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=", + "dev": true + }, + "object-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.0.2.tgz?cache=0&sync_timestamp=1576479681769&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.0.2.tgz", + "integrity": "sha1-a4DrhP5FFJj2UAeYLwNaW0Re3sQ=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", + "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz", + "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1573078174520&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz", + "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1572521210242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz?cache=0&sync_timestamp=1576721509342&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz", + "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz", + "integrity": "sha1-c+URTJhtFD76NxLU6iTbmkJm9g8=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5-htmlparser2-tree-adapter%2Fdownload%2Fparse5-htmlparser2-tree-adapter-5.1.1.tgz", + "integrity": "sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw=", + "dev": true, + "requires": { + "parse5": "^5.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&sync_timestamp=1581697613983&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", + "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&sync_timestamp=1581697613983&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.25", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.25.tgz", + "integrity": "sha1-JU/TN/+6hp9LnTftwpgFnLTTXso=", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.27.tgz?cache=0&sync_timestamp=1581994853208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.27.tgz", + "integrity": "sha1-zGfNxrDao3UQW3xCSoVWc0X8VNk=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582014221563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz", + "integrity": "sha1-UE780AjKAnMSBWiweSsWzc3oqsE=", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", + "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha1-6KZWG+kUqvPAUodjd1JMqQ27eRU=", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } + }, + "postcss-modules-scope": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.1.1.tgz?cache=0&sync_timestamp=1574936987092&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.1.1.tgz", + "integrity": "sha1-M9T8lGYC616TVcQWXWihBydonbo=", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz", + "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz", + "integrity": "sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw=", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.3.tgz?cache=0&sync_timestamp=1582065311556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.0.3.tgz", + "integrity": "sha1-ZR/0WTqp7ajV0NZlk6JBeurrMl0=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz?cache=0&sync_timestamp=1582528781064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz", + "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.7.0.tgz?cache=0&sync_timestamp=1577538558975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.7.0.tgz", + "integrity": "sha1-8cTEeo75cWfepda79IFtc26ISjw=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", + "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1575629866543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz", + "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz?cache=0&sync_timestamp=1584052481783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz", + "integrity": "sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc=" + }, + "regenerator-transform": { + "version": "0.14.3", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.3.tgz", + "integrity": "sha1-VK6/8u9YwK5h5pWtG5qdZZlf/3g=", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", + "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "dev": true + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz", + "integrity": "sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg=", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz", + "integrity": "sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw=", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz", + "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz?cache=0&sync_timestamp=1573341911322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz", + "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", + "dev": true + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.3.tgz", + "integrity": "sha1-6aPAgbUTgN/qZ3M2Bh/qh5qCnuk=", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.8.tgz?cache=0&sync_timestamp=1572829683581&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest-promise-native%2Fdownload%2Frequest-promise-native-1.0.8.tgz", + "integrity": "sha1-pFW5YLgm5E4r+Jma9k3/K/5YyzY=", + "dev": true, + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.15.1.tgz?cache=0&sync_timestamp=1580943346382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.15.1.tgz", + "integrity": "sha1-J73N7/6vLWJEuVuw+fS0ZTRR8+g=", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.0.tgz", + "integrity": "sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", + "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, + "sass": { + "version": "1.26.3", + "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.26.3.tgz", + "integrity": "sha1-QS31RIYUO3a1plzfdWnob0Rln0Y=", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz", + "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "dev": true + }, + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.6.5.tgz", + "integrity": "sha1-x1jwp+YkJjBz05binNQKoQEVLYo=", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz", + "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=", + "dev": true, + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&sync_timestamp=1581860503528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz", + "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE=", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", + "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz", + "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", + "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "dev": true + } + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz", + "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", + "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz", + "integrity": "sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", + "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", + "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", + "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", + "dev": true + }, + "spdy": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.1.tgz", + "integrity": "sha1-bxLtHF236k8k67i4m6WMh8CCV/I=", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", + "dev": true + }, + "stackframe": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.1.1.tgz?cache=0&sync_timestamp=1578260297790&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.1.1.tgz", + "integrity": "sha1-/+8KMxixtgw7WFZJiaylZgcp7HE=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", + "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", + "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz?cache=0&sync_timestamp=1576147168429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-shift%2Fdownload%2Fstream-shift-1.0.1.tgz", + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.1.tgz?cache=0&sync_timestamp=1576706744979&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimleft%2Fdownload%2Fstring.prototype.trimleft-2.1.1.tgz", + "integrity": "sha1-m9uKxqvW1gKxek7TIYcNL43O/HQ=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.1.tgz?cache=0&sync_timestamp=1576706745939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimright%2Fdownload%2Fstring.prototype.trimright-2.1.1.tgz", + "integrity": "sha1-RAMUsVmWyGbOigNBiU1FGGIAxdk=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.0.1.tgz", + "integrity": "sha1-hXE5dakfuHvxswXMp3OV5A0qZKc=", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433263159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "dev": true + }, + "terser": { + "version": "4.6.6", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.6.6.tgz?cache=0&sync_timestamp=1583252322857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.6.6.tgz", + "integrity": "sha1-2iOC5sr734YgXoL7mhFb1mTVSGM=", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw=", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz", + "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", + "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz", + "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550317222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz?cache=0&sync_timestamp=1574984066913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoposort%2Fdownload%2Ftoposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", + "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", + "dev": true + }, + "ts-pnp": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.1.6.tgz", + "integrity": "sha1-OJokOW1CWg0xYultK0Y4kA/cKJo=", + "dev": true + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.11.1.tgz", + "integrity": "sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364252466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1583733678016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945910569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583530825899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz", + "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1574768466952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", + "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", + "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", + "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&sync_timestamp=1579207239037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz", + "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.1.0.tgz", + "integrity": "sha1-4U3jezGm0ZT1aQ1n78Tn9vxqsw4=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", + "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870717730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "dev": true + }, + "vue": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz?cache=0&sync_timestamp=1583528900332&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.11.tgz", + "integrity": "sha1-dllNh31LEiNEBuhONSdcbVFBJcU=" + }, + "vue-awesome": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vue-awesome/-/vue-awesome-4.0.2.tgz", + "integrity": "sha512-TE9hVwyVrGnBetO/MJwZ/7qLO6Vgr/WrDtIA7vwNryoLdA2jfRcKRw29KacpU5xj3wzZhHfYJ2xJLxfirhmH5Q==", + "requires": { + "nanoid": "^2.1.6" + } + }, + "vue-eslint-parser": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.0.0.tgz?cache=0&sync_timestamp=1573306368916&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.0.0.tgz", + "integrity": "sha1-pO0mafhxed7dBq/dhzasuzo4ZNY=", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "lodash": "^4.17.15" + }, + "dependencies": { + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.0.0.tgz", + "integrity": "sha1-6HyIh8c+jR7ITxylkWRcNYv8j7k=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", + "dev": true + }, + "vue-loader": { + "version": "15.9.0", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.0.tgz?cache=0&sync_timestamp=1581493732642&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.0.tgz", + "integrity": "sha1-XUsDeKRgYYj8g+WH7SPJS8OhCZg=", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "vue-router": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.1.6.tgz?cache=0&sync_timestamp=1584203224109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.1.6.tgz", + "integrity": "sha1-RfWjo4Q+MXAsBh3YKTk1VOQyj4k=" + }, + "vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz", + "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "vue-template-compiler": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz?cache=0&sync_timestamp=1576267127911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.11.tgz", + "integrity": "sha1-wEcE749JixUxMAGJk+VjCdRpgIA=", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", + "dev": true + }, + "vuex": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-3.1.3.tgz", + "integrity": "sha1-8q1z4/tzaRaYs4yT9m5Y4meUcYA=" + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz", + "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "4.42.0", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.42.0.tgz?cache=0&sync_timestamp=1583166824580&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.42.0.tgz", + "integrity": "sha1-uQFjXdYXk5HZB0CmPJP3bzmIPrg=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.6.1.tgz", + "integrity": "sha1-vbY3wjBEJPL7/5qVDHvkKoOa5zs=", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.1.1.tgz", + "integrity": "sha1-41Zo3gtALzWd5RXFSCoaufiaab8=", + "dev": true + } + } + }, + "webpack-chain": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.4.0.tgz?cache=0&sync_timestamp=1580740851884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.4.0.tgz", + "integrity": "sha1-IvCye2qbye48uk+eZRPPZjlANOI=", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.10.3", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.3.tgz", + "integrity": "sha1-81lFA2gT5X71gsJCDve0cOFNOvA=", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.6", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz?cache=0&sync_timestamp=1573943292170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", + "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz", + "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz?cache=0&sync_timestamp=1584343291771&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-11.1.1.tgz", + "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz", + "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz", + "integrity": "sha1-otTg1PTxFvHmKX66WLBdQwEA6fk=", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", + "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.3.1.tgz", + "integrity": "sha1-lQW0cnY5Y+VK/mAUitJ6MwgY6Ys=", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.1", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.1.tgz?cache=0&sync_timestamp=1584343291771&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.1.tgz", + "integrity": "sha1-v3QHuRVCf8dg/LvMxsgrTw/8vTc=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz", + "integrity": "sha1-kkEZEtQ1IU4SxRwq4Qk+VLa7g9k=", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1576749091315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "zrender": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.2.0.tgz", + "integrity": "sha512-YJ9hxt5uFincYYU3KK31+Ce+B6PJmYYK0Q9fQ6jOUAoC/VHbe4kCKAPkxKeT7jGTxrK5wYu18R0TLGqj2zbEOA==" + } + } +} diff --git a/package.json b/package.json index a93d238..46cc9ea 100644 --- a/package.json +++ b/package.json @@ -1,65 +1,49 @@ { - "name": "vue-antd-pro", - "version": "3.0.0", + "name": "big-screen-vue-datav", + "version": "1.0.1", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", - "test:unit": "vue-cli-service test:unit", - "lint": "vue-cli-service lint", - "build:preview": "vue-cli-service build --mode preview", - "lint:nofix": "vue-cli-service lint --no-fix" + "lint": "vue-cli-service lint" }, "dependencies": { - "@antv/data-set": "^0.10.2", - "ant-design-vue": "1.7.8", - "axios": "^0.19.0", - "core-js": "^3.1.2", - "echarts": "^4.9.0", - "lodash.clonedeep": "^4.5.0", - "lodash.get": "^4.4.2", - "lodash.pick": "^4.4.0", - "md5": "^2.2.1", - "moment": "^2.27.0", - "nprogress": "^0.2.0", - "store": "^2.0.12", - "vcolorpicker": "^1.0.3", - "viser-vue": "^2.4.6", - "vue": "^2.6.10", - "vue-clipboard2": "^0.2.1", - "vue-container-query": "^0.1.0", - "vue-copy-to-clipboard": "^1.0.3", - "vue-i18n": "^8.17.4", - "vue-router": "^3.1.2", - "vue-svg-component-runtime": "^1.0.1", - "vue-ueditor-wrap": "^2.4.4", - "vuedraggable": "^2.24.0", - "vuex": "^3.1.1" + "@jiaminghi/data-view": "^2.7.3", + "@types/echarts": "^4.4.3", + "core-js": "^3.6.4", + "echarts": "^4.6.0", + "vue": "^2.6.11", + "vue-awesome": "^4.0.2", + "vue-router": "^3.1.5", + "vuex": "^3.1.2" }, "devDependencies": { - "@ant-design/colors": "^3.2.1", - "@vue/cli-plugin-babel": "^4.0.4", - "@vue/cli-plugin-eslint": "^4.0.4", - "@vue/cli-plugin-router": "^4.0.4", - "@vue/cli-plugin-unit-jest": "^4.0.4", - "@vue/cli-plugin-vuex": "^4.0.4", - "@vue/cli-service": "^4.0.4", - "@vue/eslint-config-standard": "^4.0.0", - "@vue/test-utils": "^1.0.0-beta.29", - "babel-eslint": "^10.0.1", - "babel-plugin-import": "^1.12.2", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-remove-console": "^6.9.4", - "eslint": "^5.16.0", - "eslint-plugin-html": "^5.0.0", - "eslint-plugin-vue": "^5.2.3", - "git-revision-webpack-plugin": "^3.0.6", - "less": "^3.0.4", - "less-loader": "^5.0.0", - "opencollective": "^1.0.3", - "opencollective-postinstall": "^2.0.2", - "vue-svg-icon-loader": "^2.1.1", - "vue-template-compiler": "^2.6.10", - "webpack-theme-color-replacer": "^1.3.12" - } + "@vue/cli-plugin-babel": "^4.2.0", + "@vue/cli-plugin-eslint": "^4.2.0", + "@vue/cli-service": "^4.2.0", + "babel-eslint": "^10.0.3", + "eslint": "^6.7.2", + "eslint-plugin-vue": "^6.1.2", + "sass": "^1.25.0", + "sass-loader": "^8.0.2", + "vue-template-compiler": "^2.6.11" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] } diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 961986e..0000000 --- a/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/public/config.js b/public/config.js deleted file mode 100644 index 972b8e3..0000000 --- a/public/config.js +++ /dev/null @@ -1,7 +0,0 @@ -window.publicConfig = { - // 系统名称 - APP_NAME: '宝安区公共文化体育服务中心智慧显示屏', - // 必填: api地址, 换成自己的域名即可 - // BASE_API: '../index.php?s=/store' - BASE_API: 'http://yoshop2-feel.cn/index.php?s=/store' -} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index 44d362e..4123528 100644 --- a/public/index.html +++ b/public/index.html @@ -1,32 +1,17 @@ - + - 商家管理中心 - - - <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %> - - <% } %> + + <%= htmlWebpackPlugin.options.title %> -
-
-
- -
-
-
- - - <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %> - - <% } %> +
diff --git a/public/static/UEditor/dialogs/anchor/anchor.html b/public/static/UEditor/dialogs/anchor/anchor.html deleted file mode 100644 index f277847..0000000 --- a/public/static/UEditor/dialogs/anchor/anchor.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - -
- -
- - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/attachment/attachment.css b/public/static/UEditor/dialogs/attachment/attachment.css deleted file mode 100644 index 548b428..0000000 --- a/public/static/UEditor/dialogs/attachment/attachment.css +++ /dev/null @@ -1,681 +0,0 @@ -@charset "utf-8"; -/* dialog样式 */ -.wrapper { - zoom: 1; - width: 630px; - *width: 626px; - height: 380px; - margin: 0 auto; - padding: 10px; - position: relative; - font-family: sans-serif; -} - -/*tab样式框大小*/ -.tabhead { - float:left; -} -.tabbody { - width: 100%; - height: 346px; - position: relative; - clear: both; -} - -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} - -.tabbody .panel.focus { - width: 100%; - height: 346px; - display: block; -} - -/* 上传附件 */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} - -.tabbody #upload.panel.focus { - width: 100%; - height: 346px; - display: block; - clip: auto; -} - -#upload .queueList { - margin: 0; - width: 100%; - height: 100%; - position: absolute; - overflow: hidden; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 172px; - padding-top: 150px; - text-align: center; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *top: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 300px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 9px 0 0 9px; - *margin: 6px 0 0 6px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} -#upload .filelist li p.imgWrap.notimage { - margin-top: 0; - width: 111px; - height: 111px; - border: 1px #eeeeee solid; -} -#upload .filelist li p.imgWrap.notimage i.file-preview { - margin-top: 15px; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background-image: url(./images/success.gif) \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - - -/* 图片管理样式 */ -#online { - width: 100%; - height: 336px; - padding: 10px 0 0 0; -} -#online #fileList{ - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; -} -#online ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#online li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 0 0 9px 9px; - *margin: 0 0 6px 6px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#online li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#online li img { - cursor: pointer; -} -#online li div.file-wrapper { - cursor: pointer; - position: absolute; - display: block; - width: 111px; - height: 111px; - border: 1px solid #eee; - background: url("./images/bg.png") repeat; -} -#online li div span.file-title{ - display: block; - padding: 0 3px; - margin: 3px 0 0 0; - font-size: 12px; - height: 13px; - color: #555555; - text-align: center; - width: 107px; - white-space: nowrap; - word-break: break-all; - overflow: hidden; - text-overflow: ellipsis; -} -#online li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#online li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#online li.selected .icon { - background-image: url(images/success.png); - background-image: url(images/success.gif) \9; - background-position: 75px 75px; -} -#online li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} - - -/* 在线文件的文件预览图标 */ -i.file-preview { - display: block; - margin: 10px auto; - width: 70px; - height: 70px; - background-image: url("./images/file-icons.png"); - background-image: url("./images/file-icons.gif") \9; - background-position: -140px center; - background-repeat: no-repeat; -} -i.file-preview.file-type-dir{ - background-position: 0 center; -} -i.file-preview.file-type-file{ - background-position: -140px center; -} -i.file-preview.file-type-filelist{ - background-position: -210px center; -} -i.file-preview.file-type-zip, -i.file-preview.file-type-rar, -i.file-preview.file-type-7z, -i.file-preview.file-type-tar, -i.file-preview.file-type-gz, -i.file-preview.file-type-bz2{ - background-position: -280px center; -} -i.file-preview.file-type-xls, -i.file-preview.file-type-xlsx{ - background-position: -350px center; -} -i.file-preview.file-type-doc, -i.file-preview.file-type-docx{ - background-position: -420px center; -} -i.file-preview.file-type-ppt, -i.file-preview.file-type-pptx{ - background-position: -490px center; -} -i.file-preview.file-type-vsd{ - background-position: -560px center; -} -i.file-preview.file-type-pdf{ - background-position: -630px center; -} -i.file-preview.file-type-txt, -i.file-preview.file-type-md, -i.file-preview.file-type-json, -i.file-preview.file-type-htm, -i.file-preview.file-type-xml, -i.file-preview.file-type-html, -i.file-preview.file-type-js, -i.file-preview.file-type-css, -i.file-preview.file-type-php, -i.file-preview.file-type-jsp, -i.file-preview.file-type-asp{ - background-position: -700px center; -} -i.file-preview.file-type-apk{ - background-position: -770px center; -} -i.file-preview.file-type-exe{ - background-position: -840px center; -} -i.file-preview.file-type-ipa{ - background-position: -910px center; -} -i.file-preview.file-type-mp4, -i.file-preview.file-type-swf, -i.file-preview.file-type-mkv, -i.file-preview.file-type-avi, -i.file-preview.file-type-flv, -i.file-preview.file-type-mov, -i.file-preview.file-type-mpg, -i.file-preview.file-type-mpeg, -i.file-preview.file-type-ogv, -i.file-preview.file-type-webm, -i.file-preview.file-type-rm, -i.file-preview.file-type-rmvb{ - background-position: -980px center; -} -i.file-preview.file-type-ogg, -i.file-preview.file-type-wav, -i.file-preview.file-type-wmv, -i.file-preview.file-type-mid, -i.file-preview.file-type-mp3{ - background-position: -1050px center; -} -i.file-preview.file-type-jpg, -i.file-preview.file-type-jpeg, -i.file-preview.file-type-gif, -i.file-preview.file-type-bmp, -i.file-preview.file-type-png, -i.file-preview.file-type-psd{ - background-position: -140px center; -} \ No newline at end of file diff --git a/public/static/UEditor/dialogs/attachment/attachment.html b/public/static/UEditor/dialogs/attachment/attachment.html deleted file mode 100644 index 2ae9282..0000000 --- a/public/static/UEditor/dialogs/attachment/attachment.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - ueditor图片对话框 - - - - - - - - - - - - - - -
-
- - -
-
- -
-
-
-
- 0% - -
-
-
-
-
-
-
-
-
-
-
-
    -
  • -
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/attachment/attachment.js b/public/static/UEditor/dialogs/attachment/attachment.js deleted file mode 100644 index bb2557f..0000000 --- a/public/static/UEditor/dialogs/attachment/attachment.js +++ /dev/null @@ -1,760 +0,0 @@ -/** - * User: Jinqn - * Date: 14-04-08 - * Time: 下午16:34 - * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 - */ - -(function () { - - var uploadFile, - onlineFile; - - window.onload = function () { - initTabs(); - initButtons(); - }; - - /* 初始化tab标签 */ - function initTabs() { - var tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - setTabFocus(target.getAttribute('data-content-id')); - }); - } - - setTabFocus('upload'); - } - - /* 初始化tabbody */ - function setTabFocus(id) { - if(!id) return; - var i, bodyId, tabs = $G('tabhead').children; - for (i = 0; i < tabs.length; i++) { - bodyId = tabs[i].getAttribute('data-content-id') - if (bodyId == id) { - domUtils.addClass(tabs[i], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - } else { - domUtils.removeClasses(tabs[i], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - switch (id) { - case 'upload': - uploadFile = uploadFile || new UploadFile('queueList'); - break; - case 'online': - onlineFile = onlineFile || new OnlineFile('fileList'); - break; - } - } - - /* 初始化onok事件 */ - function initButtons() { - - dialog.onok = function () { - var list = [], id, tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - if (domUtils.hasClass(tabs[i], 'focus')) { - id = tabs[i].getAttribute('data-content-id'); - break; - } - } - - switch (id) { - case 'upload': - list = uploadFile.getInsertList(); - var count = uploadFile.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } - break; - case 'online': - list = onlineFile.getInsertList(); - break; - } - - editor.execCommand('insertfile', list); - }; - } - - - /* 上传附件 */ - function UploadFile(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadFile.prototype = { - init: function () { - this.fileList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')), - fileMaxSize = editor.getOpt('fileMaxSize'), - acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('fileActionName')) { - $('#filePickerReady').after($('
').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('fileFieldName'), - duplicate: true, - fileSingleSizeLimit: fileMaxSize, - compress: false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { - $wrap.empty().addClass('notimage').append('' + - '' + file.name + ''); - } else { - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - _this.fileList.push(json); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - getInsertList: function () { - var i, link, data, list = [], - prefix = editor.getOpt('fileUrlPrefix'); - for (i = 0; i < this.fileList.length; i++) { - data = this.fileList[i]; - link = data.url; - list.push({ - title: data.original || link.substr(link.lastIndexOf('/') + 1), - url: prefix + link - }); - } - return list; - } - }; - - - /* 在线附件 */ - function OnlineFile(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineFile.prototype = { - init: function () { - this.initContainer(); - this.initEvents(); - this.initData(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('fileList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getFileData(); - } - }); - /* 选中图片 */ - domUtils.on(this.list, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('fileManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getFileData(); - }, - /* 向后台拉取图片列表数据 */ - getFileData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), { - timeout: 100000, - data: utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - method: 'get', - onsuccess: function (r) { - try { - var json = eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - onerror: function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, filetype, preview, icon, _this = this, - urlPrefix = editor.getOpt('fileManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - icon = document.createElement('span'); - filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1); - - if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) { - preview = document.createElement('img'); - domUtils.on(preview, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - }; - })(preview)); - preview.width = 113; - preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - } else { - var ic = document.createElement('i'), - textSpan = document.createElement('span'); - textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1); - preview = document.createElement('div'); - preview.appendChild(ic); - preview.appendChild(textSpan); - domUtils.addClass(preview, 'file-wrapper'); - domUtils.addClass(textSpan, 'file-title'); - domUtils.addClass(ic, 'file-type-' + filetype); - domUtils.addClass(ic, 'file-preview'); - } - domUtils.addClass(icon, 'icon'); - item.setAttribute('data-url', urlPrefix + list[i].url); - if (list[i].original) { - item.setAttribute('data-title', list[i].original); - } - - item.appendChild(preview); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = []; - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var url = lis[i].getAttribute('data-url'); - var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1); - list.push({ - title: title, - url: url - }); - } - } - return list; - } - }; - - -})(); \ No newline at end of file diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif deleted file mode 100644 index 9ca4fb6a23c7ed528374426575c3e7f67730cfb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmcJOy=xR;49270U`4Q~ICz36hzbru@Ut$0C6w

    O|E|nVb+VhLPxFEtyI^j`FqLyNd0EWpleq^){o+_2ylTHaqGF zO<^H5(sh%@qktPU&w(pp9-3Gs((CnPZEbBZ81Rip*?#=*AAA0G)`@(VL$#^?6S8qi z-Vg0MaQMyXC!K9~zh3K)&rGar-!b{?e)rh3&E1`oQ)AtaFLu8>vh-!*#^>7|90SDQAhmyv(gsfKv~ diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_default.png b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_default.png deleted file mode 100644 index 50ac1cb1654c147225f6c99f98fa820d8b1d47d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 841 zcmV-P1GfB$P)co5FHFQKPb3$yKB3yz3uJ2{(i*w{Y&32Y&5pHX#fNS%^lB?7Jx7e!!R@$ zW0V*MWri^ri!cCJuK&9D^Ig~)02-}VrVlRsat{^*C5gDx3qnV6$+=~+!PF21FkmZ@ z8b~H%=~Nv3aQ@;fylx>sluRWqyg8GMN5*##@7VOdNHQ%N3Cf&vJG&}(BO_ z0GI~5dh^d~zu)gPH#)1!5T+sR()iww-#)pz`cI)Sn%1`>N($3(G-m*$wuS~`$(U{O z3G;I( z%j~rr>P1P%W??GsP=NTpKmX&MwYt}DZ~eRS;O_04GsmW;j~~@ibUGeLsHM{BJj|YC8%N`o7<+Z@C+_!oGc#1Cx`LO0hUGI$B7llhKIN?RNhM@52iI TG@H!B00000NkvXXu0mjfSaX$T diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif deleted file mode 100644 index 206fede4ee7495c3d4fa8dbbb76425e23566e9cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcmW+#T};hk7=Mn8YGYk-BW7+*XP!uF(_J6BXv?Neo2k~53o+@FE|ATt^)Y4hQe0@P zSYMk?afGon-bF^G(&-43w{{O_}gnhA@5fnj7M8-aCj50=y zVPnWvS{tp57Ngl{vQ4FpQbvhUY!um9(MFUJF~Ua3uCg|)42xklOh7WE4Jkunhz+3t zHlTrpWlWRhu}^6&TC>(YQGFd~m#uKGjDYE`Ri%LWZD&tI*hU=i4-s$()c}KNsKh9AfEd_-1{T@mY#TKmi;xWx{y>Y0S(uP3>_P>aLM((F zku(B;E{r2+xJ8u612VCVIG_oJ;Sj0;2GQ7rEa(6+umMf>M0Of&)Odu8AxQWGEh;Aa zaoAj)d)uaSLL0Ml6+7z$ZBuu$v#U-V_6Uwci{yy5H*s`WUt=M+p zn)~SevRiXicW3`B{d+b3x9iEs+fRYf&nr{kgLA)De=Y{eT~yySb+dP(rDxFpb)})X z_j>E&!pg?wKmecq_T{xM7^R)ifIlLFD0GNA!!9O99O)|$T@5?_qRt;vFf&kn_)FW? z_`GnRYjoh$4o~IE$IRoKH*V=YJ>#wBrOt`{dF~IT+>(|Pf8s;e(6dXaz8IS9e|j*t z=3Q*=kAlHxo(+-b@~2-GW_ZFWttoKza)`U8q34AEw<{?<%ICf3>%N_l-tOzE_U8}Q z7oYS!sEM2(ic1;U<#{}~=FT^Xy5lXG?+$z3UwdQvQQ7pP6mQ9-w=|Y>&o0$8Wu0G{ isn`^mx;yvvmFWdDjr#c zLa{?BIQR=Hso)@-gFi5$h(?e?1}9O3!1?a`KX}6zj=OvJ-n-BDNC6L6Km!tBLTo}4 zi^J?j?#VEBbr*N!T4rW$>LzYT7A&f{s;jsnNwHVVMP0-N6NB+4N|K{}~ZKoJoX!9fm} zBM(~o#KEm(O)!!sOVVPE zi-}EWVsRKLD07CIi5XHK*D_Nz6;q^KvS3lvL`*>SB*k8X8pJ?(^n)}xO*^QcB&d+A z2}aUn$yV~Ua!;X@Eadx`Qv~8*!H*R z1Jb}XTM)URaq3M_BZ+<>;dB>fia`oDqncq{}&s`b$QtO-@+w}C? z;Nq!~gPU6~Dz(9{-TvCj!(Htg`{x(uCg+CR6V+R1T7A<43$vfP-MtrguipE)w!F3Z LqusxL9gh72jO~@^ diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif deleted file mode 100644 index b351a1f2a294cd0f8e145e20c2c455a38cad2001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 986 zcmW+#OGuPa6h7I6wK1usMoI`3X2DsMWI-EEY2_v@7Zr3CQ7Q#xDA5CHkz|Fbmn^6$ zdu+7Vn5dzZIN3$9%xdyg;HxyPQD@YdxqbJ)yTdu>d!7H!$V}gndN`J1DL`cG)5a)c z#27Y)Y^Al)%4ji~jV9Yv+9+j|7{x}BofU0F84)9FgzPG7!^*H2X2S#|L)wrsB!<`! z3Sa{oSXjn1Sswe8)}l3QO_mmwQd)^ttQA=mXo}JzT38ENQJ7_=Sv0d|f<~-rQkp~) zYXU1&0}P^}60*<(F|Yv*EG&~XWNSQ8ij^Yk545O6l&})AcA)}I7R9WX;2xqdt4I{F zBG^M7kcn-?0sjyIhfobLh=xjxLI;R}4QODIP0qGaFXe8ekBOO~`@{5Ca>~WKU$L(MF9&xEO+jKhUCL zvLA=d)w#EAIw!O-J6Ex@PS7@WCp)|9#9@!%IJ8KPXnPY!hXr<^@j2j12oIh>6$*ux zmKHCUe`={p) zzwLH7IG43C5ubkIf@>L!QZh8)kBB8&*+5TM#qX_8Xe$_MO>#wd-P&_}=vih>^_H5o zg)25>S3JtEd6gfXvF(myC5ih_CjpcNI+~ z1pOIXrw&{QB)mA-kn*SH)JW$*yOgGMLYik+JFZE diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif deleted file mode 100644 index 26019b099d96b382a549fa383bd81315cd6d295c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmW+#TS!$=5S_p%q=$ihRGNrTSo%=|Wl4e&+5@B?2{ojLOjtg`N-j#~hfj#Gq+|;c z1QiB~BHGowB$g7jg(4^`Me}B48Di?a>h-!?`^?{*nOU>entf7Fq$C_VA4Xy1Co(p) zG0GS*hK(VcX>GJJT8w6+$rhD1N*N_au~B4uMH^8@#0VQ9JIdOyGAxGKFagPsHlz%R zAvS~r*nkEWhS5!Sj}4`@Xw6!aU5iX9twbx?{nprb}BStkT zO`?f4VJlbz45Yylv{1uhU;`Rh7$z&o<_J-Wl_IMTYmtd4VI^ecf(42!idiv1JxHNf zktkwCkOx0N6VtE*`auE;!5Uy74VGvH4=e^Ypn*l!Ia@}KU=gxLLLb&5V-_a(3b|l` zq7VzgM>q`wzzgj#8fsxB`~Xc%!wztQU?>D@fPpk7K?^*v7}$U&dm`J7GI9jrVlWc= zuofAUeH_+T=iavHoY30rT*dY}MqAe%@9d~!hdqL$&>}gc?M)mW7TAHtbHJ5g9yDRq z>S{0;TyY}M*Vot6)8lr#T`pI4`I8-K72A??<5Dl2EUe#KI(V?&yF0V`db_uxXX^Rz z{QI%#(Z9>f%S*wPz|x|BVSa9Ic6KEYSoHh-KA&&Fe)u^#IX*TvFficpcse>dT3TA_ z>guYhs_^uqmqOM+D8+#T{)jN5^@G%z>rH7pmwaOa4-`fm zE=u|sx$)W6D9^QNYQOk2Ei$$y(D*5)bJOYc8&k)--#thlPjXH4*Z#?Ajc?BX_V%)O z-Hhrk`u?>s=KkG>N6UP#n-Uv}+Y;`Tt<9{xw0UQ5$-=Lp($B3;TPuST`-(SY?4K+P X4d%*-doJfz=*#Bpp_0z7a!ULUk{Ai+ diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif deleted file mode 100644 index bbb65c837dea9a6c28d6209ca1b1140a37988423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmW+#OGuPa6h47kZE6CejXiWDMGNUrrnSm4q(vaKDU@n)7n&%QMHv`Ts}dJNaY1Jm z1%)xttY%cue2lg@;j0pL1`5YVHoj^e%{0#KyZ>4JhjY$%zVAEtzgSgyy6lFFT$Cg- zHpCchj53CeA)AR9(MFUJHbSmT8mbqSu|M|C@L*ViDFS?Nuiguuo7lr0!NGr zX(1)VLf8t{00U{T1TECC7}$UY7KX_RvN=L&&03SyhqcI*(u%brD;F$KWTlxk6V!tg zdNnCctO@eq2WVm%c0fN!Kp|KI45Yylt>A&hzy>t1$U0}s$Pug*StFqjYmqT4Cin`u zV1c3{Rs;3ry4U%$;nF- zrBbn2EEn{ief)z6-Jp;EBfd`ky_8jVeTK&hz2O8aFtv^S73*9B2zWtF;HMPE?f}2k=uA(oM PSLc_Xzst?bp)>yhr3M#0 diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif deleted file mode 100644 index ccb26fbebdff5521eab7418d22e99fbae6c1d08c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmW+#TS$~q5FViig{X~sv5e>~C`M52PqY*C`39biRR&OdL%%zX2G-<*@4v2#=EF&o(^Or%XH zt)_scWI{;6Qjn1g7AUfi%#sP} zK?=Q+gd~;(dGG@?F%3JQA0(gc0k$hWT1#y8Q>U^EiJ(_cNaAO=Ed9XQ}e*ob1A$rqR0<`46gx0%!XIm#cEx9b24x9#1v-6J4L2;{%(Yx0E;vP_|dsDD=Bqr6K zlHm7+$8t;U2TSW-{OnCS>CRfYv7yHk`q$jys&5*5AI!X%Ro!^Ls4C>TvM3?g5=?S; dtLf~)4_`YgyED9bxo14v@(;Dvr3@ER+J8}<4t)Rs diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif deleted file mode 100644 index 2e8743a2705b98b9c546c28c97fe724dd4668b16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmW+#T}V|y5FX8kBEk#Si<*%J5ovK9!7{1n!IT1pEV7cg5JRb%rl^$FgQNr{MG-7& zA`xU1A_`tmEGaW%)l9|mH^r2+ydDOkN^7H)(PA_kO}44DQOYPWij5*WE82)MB1YH<*;Uqtm0>Z=h6zZ9v>|0k46z{; zzy>t1u#9Q4JoYKAMQhfYEG;Ufv=XgYE3zuk6s1M9uokkSFw07_XlBg>jab#BG>InG z1Xid97(_!QWT6LQU;`RhSSD-8)_9^6D@E2HXiU9wr2Ei%NyMkpF_J&`0YLK7n!ypd%%@ko>=}l@3A-fW=Hs`+liI4{u!_R zJ@o-MCR`=o!|wiwC~n{V@aK+;)v;~|ifp4t6BC)6X zNY-$)^uNy?@fJ-lrA;-xIvblk5|a^9wr8sK+EnAE)Y`6)xT`ZQ_lBpVDtf99_0~L{ z=}wQmmDtrA(ebGEQ;{!hVQw(_Nqo)eoe7sa%4^;g4K8%`{k=aLSLzy1U$>H7*_tKo z?hDH)jF-g$H!2(mEu+l^ml1h9)R3{_R zN+{4&BvL7dheA~CWs)UwOqF5B!RW`y}SP8Q*0ZGURX(1)VLMVU@ zXkcL((`0$<)5a)c*ch_3sI)d(8O=tMRe`3`Mk%A%D6*n3%i6Fq%!UaXv1&*gQij+N zSfLtV5Dk@(g&v534QOCtnXDmO<0-9KYqI`8i%Kc2SSzx2p#n`-nprc!Jw#zvlhVYR zU=MjfCbkg={6hpBLN&l38Y(dg9Uulapn*j;Ion2!$4Ze668=DoidiusSJ;ILG!?NT z`cdZNvdhFbs!K4KRqtCS*Yeh=C1gvL~|BXrsm>Tns_NA81iA z*^k5K>fGBlofF!aovYYcCup0xlbv04;;=_>99kqtw7rR=!vZ_d_#AL0ga=QcT3T8< z<=R-i>3I9ihKoM2lSwUuoqZ$2BQrmK#>X8XzYq$FpIcabGw!|J+&@0~jgD6Rn*IHD zYU*J_gIA>EUC-4U*8(b%5;IQ(N3L1D-lx5b+S*z!r;vBaQ?%dj<&*o3m6bEy-Cgzd z%gf7Nuh;E%eU|NsNa*$rtBcF| zyk*2Qx4ovf+`S`nruXcsh=cR3xoPb?(_#u%q!dP%WtCUfMD^y5?XF6Her}@Ud*@JN zR#JAj$JM;zL)wdit+9jteY2rawR5d!2K?9E8$Mq`ciulptVrE=A*%YMZ*gr`TuJ|{ z(z2$eFL}wMSGG+Dq$lSUuPlpR9NA3ywWC9IrH}KT<}duqn4ccJzBi_D;`Bu5K&ybF0xCVru0xy zLa>Ldm34nuFN?9hw?M?7)Rv5bKzH}sb=_Uxp7)#Ed^7XR^E~r@SFc?;bGE0MnyE}= zT^MWCTCtX`C6^gvjanntur=h0YOJbNvC3A-^@_2gR>TThAvem#vRW3)Y?**$$yicL zVu>vw0XCq4g<*7)+v7rw5o6dGa%+*P8Wp2#lpG5bMU99NHbRaRdRYyNVKz+Qh*3jo zNDQ$dYz1q8fizfx7HU`wY(N7G!{h|H93iT#N=_fvA`?+z6>@UH0!0>ORwk$iDfB9d z5-UL-`~Xc%!w%>N2`B_>fPpkvq7^)_7}$UY7CGl!899PQ$QcQJSc{BVnBXhqf(42~ zECe6nGz zR(E#l^?I#Vt4>c($K&x>EH*eeSSXZoxnJ}13)SlO_I9OSt5&wk<&sy(Z+eA7F`uuY zP^nb5w(z-JDwRCXD;765Hda?wve|4VlS!x3sZ=VNOePYEXf!%8F%gMG!r^c*7{t>* zQrW!=Lg@rJ;E!k~Y8)rqpWD-SyM1VBq23t_FUFtz{Mx?sD0C|jZ2C9Sbm)4^Oz+y? z)NEU5?fiq>-2Lw#Pj*iB{YZA*d>J~N?LXc*G#V&$2YN3)-Dis(c-P&AvG|vcl}Pm7 ha8EkcUOioGJ2wXc!R{Rj722e<$L diff --git a/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif b/public/static/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif deleted file mode 100644 index e86c1c6631b34ecd605b655baf3d7b1ae643d014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmW+#Sx8n<5S~OS9}KaFd{U%W$zY07N%BQgM2kWK39;Zvw5XMcSs{ptw3ukd!DvAW zOUSa^MRP$(k0NGD>TjW9qHS6!zy3LW=bpD=X1;Cijg5;r5T52w{na(1=w-+K@8DhQJEd z0E1|#ge>$x3~WFH3(I5;*&0u2&03T72U=80X~kNRwF?z!veL|&3GN{ZvznA9)&zUV z12VCVIN%>5;1H?-2GLN7QRo0MumKG$vdP&tYCKkoY>@B=T2#!63Aw^9RG_Jd6(L6? zjR2qv;|LmV5he0~Ol%_#Xo6ulgld36G&Ug%IzS9;K$AU@okklq9^qmL68=DoiphQ) zHdp7~w&|SE#_U|h&N@Nc)Sc|?suPDjg5%I4Iil@N932+efyU>6D&6#&)VjN>|V zv-8~R>nCf{GTvkb-3s1$HZb}{bVgT3@w?(fB~dl5>apdK*}q@9UF`{1qs)Bgsw~gR z=r5V~h#Q}Nh}(M$j8Z5x;E(Vp+SX66eUHZ;aWxlg`{dh`oKe|bG})HBk$k7J>&nXF znW?~}na0bDp}hrOKKbvIaHygA>osR74c^g{8LV9&?8bPWVl?=6FUHC(Dw~C1%a`M-0X^ zUTDZ(=qbF}x@WkhBY(X3Lqp?a*Tv5PRVfK4D#P2o2A&MKE9$~CZ}>dh(HH(8{nF#G b^xlfyQ$tzRM+;I8wp1>Sze?TeO_BcrMy(F| diff --git a/public/static/UEditor/dialogs/attachment/images/alignicon.gif b/public/static/UEditor/dialogs/attachment/images/alignicon.gif deleted file mode 100644 index 005a5ac65a3ddc9cdac037abdb5fe92267155a0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 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 diff --git a/public/static/UEditor/dialogs/attachment/images/file-icons.png b/public/static/UEditor/dialogs/attachment/images/file-icons.png deleted file mode 100644 index 3ff82c8c488f53a7aff67fbe39742e3321183eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44070 zcmZ^KWl-E~*!AM>P>MrwcXtZK-6>A7;_lYs?(XjHUK|#8celk|zJ1<*pUvFaWG0i$ zZgMU==WLjgf+PweJ|X}BK#`UbR{;Q^4Z+7h;9z&iwcDQzbJ014~A4FZs! z`4s>_l(+o;T}jEp&e_h%!p@#l`ulfMdq+DnOKVdAzmRmnE#@0+#a$%isY~5P&oqNeW1j4uGM0 zfC>X-ZyzAHQsf&GbZ<3;zjia5B&2^A48S#7D;7<}5a6FC#xM>b<$(lzC&rq9B9(*6 zWtr{SE;FzXYL$Wj^a7J6QegB4jBshu%@Fp#Wu|11V@VxB z$xR{y0Qk={|2}wxV~-B^cMi>ttU-5!`5#tScHe}^uD3oqBO##y=n7MyRfB_rMJW4W zh+3B(tFoVfRSkf}*0Ub_8bYoP;;ga^-?2yu3v(ue>NAtDme1*LIb7t3CR&?ozj z-FAfU1NiL6n&%b3AzdV`s<+_pyMvLfYqd)B5fEC8)%Nj-{9`!C?>(A!W|yN*mjNgI zS}Uwo>6`qpN1IBVIN4~@F6N0J+cin@J3@jR3ZODru~(rPt_f(}>w5_S8G))b>k1I@ zy=9EVM~VZWn{%*vJOTg-JnfAf6jQS1SsK{13ab z7d7)AQD-kMq!FyR2r@;l0J<3LzCR&i-q&PNJhfiFW$30_DEwTE^d0oZf2=$xN86aX z0cZBOu!di=`@VJtBS4Fez+)Ma@r7a-M=yVygvU*bhW=(G#S!mcNO}^At^93p#IX>v zOzd}@o)q~Fqa!wNl&;82?Aiz^TliaerzC4)K)o{5Jfw?ATPX>C_)xCXj57zCo_}(_ z)eL?kv7mo*e#wmNv5PanCp_B3e})y+EONz2H!?)RFiZ=dYWR!EfflDm45tZ^7Pl)7 zL2tGZ2%Z8m!XN7#UOy1M&-zbntfZEl*7s7%bMi*ac6d#Mzk#fM)ZY?H6&oo%F`ozA zjrr>o26eeQIaGDAqKo{k(iKXS1D^HYV z&%>98^5y7A+vK_`F{_4@VR5*mQ%+=j`3@{(ELfOMw=}nWv|v7QZb#VoODvHxoib~6 z40m#L^7qaS86_Cy@353H4W1RA7hcKN7Ch!Oxnh{Pl(Z2wmL)cVH1kxnR6BJox(7OM zoVYQ}B)%k#B;TZ?ay4})b>Rh%awN41b+ih74WHs4>J3VJWeD?MDi+F!)H}+!swY+4 zRAQ8-lnn~H4c`B}n4r`L2mQzmmMTy)X&J(cBKtDLW_qn9w&=E?rxXKd(H=KoQ7|K2K;24p z8DhT2>5eO8R%u6QT*!mwVsTse9k z&AX6km2K3$(z*5)6;vdVIVcms6)~K=n(PgPNtRE3tW4Dq((ur@*I25QUerBfII~&Q zv{oX}%s|fI%K$c)R%KKTxMtXFVeewc(9Y7{tJ_4J866qxRVz008{>k5J{7O>Oc?~Ddi{bR(YvchtzC!ly{wXqlD^y6 zBW8V9eQo{ME@H)oOsecf7Mqc^fuGx5Krcf+AwkoZ$rC7{AtA^d&zz9%;_h!-g5Bi4 zi@s^TaBtbK{4c=wn5Ui{kDD*o3NVHc{~!(^x&rV68lbG8NTAc8i{Ln6qF_2;nURHX z#E=nCv`HKj?0Ru;2%b&Y*UcHyXK=>gvv70>URcJdrIGZ& zv%&B4{ly|!@rTP0JA$GLy+<5gd>i?#yoUJVX64k1!wMsBVrF7yfeMOcawGi`OAAel zq8UAX0?NL}q0JaULde+TKKZlL?HZ1Cklai`qe`_B>K8fYQhN8FUw^u{N_9!;%(HKq zeVjg%BmMc}-4$D_)LPrH-0H4sBgetBZ6RVy|`!9FPt63kQ1+YH(U1?WK zMg8Wt$NEjQ%HP?dqVM#7G&z#W5=Viy)pt5=COAe(ztlm$Qx<+|_|f4e8C2R=mR3L2 z{%Aei)l@K8@V@u3SzXy)y$&5}pXk9q>aAjLuRW#XyvhFc{)w$Lzm|LWGbs=HS-u{Z zO2z`4T*169&~aoz7Lh)YWOvJ_FNk%|#ATQ>Ml(A%i$?JJdH+wsUdgYL>?{Rg!TGdx zk4L$;G%G!2y)N_bQ`y3}&X;m629Kk+n@2HvSDp5E-yV(EC|hK!1gixleeK_Oq-uWJ zotZuYFEjw2Cs?lo`StM8|9FKDNJjURQUy*ArVhP{SU{n}_CRD_W1kHpWpkeyk{amfYpALLOn zStKL`DEM7Bza|rQO6p6nrpA0VK0VHyDvq|^cVA_vwBDAlke(x^da6CjZXH1tWi@=m zQ2W+!7fBk;o5+XK?aYhGaLKgdqtKD}#~brw;O#5rYz{lP z+axuSQjrG$JShPH|Gxmh^Cx(J0sy$M005_k003Vq0Dx;3Z!q`+0LW9778g}>Up>!q z%OqA`818X9JXv!~I4^#bp$o+HlteG2h5Qo^BVl{OZ~WH1JfHK(hG9m1m#ofNC7fMOo#WHM)(*226BPQ zaDC!@gNgYF}!A`uuC>TWxPZHV#!u5FBMP#9J^f4_MCmzH-Q z+(+T2mSZHryXo&f?X0YcLvv`#GDg~8iY-+%G=?lovbeVSUdt2Q!hOxM-=EjBCi`yd zAKpDD-2hMf&CL7j#4_4fZwIL}eHR-CjOKIY!e7*Lo)?9epSK@x&kpDZdv0?`?zc;u z@k+W9lan1^PD&mtvWv{Ut4bZW+8#pP0)+tSOv25_^~?ruK~O)Kp)NEhJwX!^DereU zz%5o!Z9Q%6H5?*?W2#Nq>_~}ofFqa978DqUr|$6 zXZ3kO9vd5b>L>BdxfMhpQK)&| zGB3FJ=Lj%!Eq;U-lQ4YK``O zObWhQH(xCOqa7xhN>CJ@NGr)6>sJ(*@$&23xy|)LPY-76&&95{Ld*K}NxtDtdWSL` z`X#DX6$(Mo(WLK!zg)&F=YE;IzF5eQclNa5irB zxviEL`_%#Kee`H*N<&iie(Q}v$sLab$-0-%8$mHWjZx)#dAma{9A{%XyWwTeh5_8) zI4!aPV#lrCNu;|qO71E>Nk*TPzOo4-6AWD3m0bu=5YxPJQyeYHV&M=OB`I%d=ua|1&%51A@JT(ZSPI z+QZz|tWe-B5}V@~0|FC>MG)!|#UL;xv~-S%aea5-uyMo`liB4HE-!8USiTCp45%uu zb$gtBnd2Bg@@KCLC?JC~83LsKO8^1pYL!J`#$o9?anxJ87Fs)n1Sk{G(+OJq2$}3q z0GGWyftR9ldKT3xaG{t`rbB*fq%w=X1u(xLEm&1^Wvi3-Gs0TD>xnN``Ky}fJG*<( zRwTLm5)^n3=9TZ`6IH$ji<+CmMMXtr50m)4O;}a89frzha9xNq0-I*J{PNMrF8U^kN+K9C7Pp5zDV+I~Esd3d>XnZ&^q6&+BU%;`H1 zxn!trdi&_HK9)dGL-{3%si~=}De3D+5ATIRF`>s}A_b`-B4|k!s*HY8V#>z7Rr#|` z$lIvnsH>}MB}>p?JG!{KW?xN{qrv_Cw{2k8difGFaA7o}A`t_@;xRx%Lrr*8M5`ji zecQ_1VN-(*eskoB2xIkIIpIToP_qctfugQ!vY*G<^B@00hyfCkig!^@(Wu+Zy_&VW z#^E}KIWCLZmHJ)n%%Lc+8LK~V04Ca0$ruoM4)e;A^4<4~KMk}S%qB*;H=O4VKRBA* zdR{kt=A>m5_`pvaQORW)u#liA)OG?i__(<_%JJ*=q2bSG9c9$)vFGa1x>stSi2SC+ zZp3V3W5dC5o^i8m5>wT6Jwy*fOVIpRDHI6SwFkoHQf1Voh}OJxy{YVbk3=)x5u8(_w3s# z;ZK!ZE1K7o86nhz`m|wUFYEWFC4H}brIqmjV|u&`i+;`}U8g54etcgqJfk$6&kQ(1 z0=S=M04$-~v?*|*a9h8ID}WQnWu0F{9`3UrW zd=)m@8n$lG%9-|15GY{y_d&{0 z1jlR17#XhS$`VFG1c>Azh?YdoU^I{ydiM?9)w6-q@A3IL_Qk~o=ymX-#bA12;rVaP z#$AvdL|)#p!7w0I3}yaYm0*57pMY^O4N?yiBwKcOfssfVfxC0<$tqvrxb-olsQbdy zaQ;#9picnzD|i5C#NlAK5~%jaex4LF%uxGF2#N2Lc+1*5=oQrSS%9nWzSIBip{$T! zzFD19XRZdNCQ0ZpFi-Nf4QJQ+e3(J)dy|l}E(F_$+~fW7>{g=aD~VB>R*PF0M48n5 zd!d}SW!({2VYO5(c;9|jy~c)}{3WI!FqzRa33q za9H>OxivU81=30ZpE?;#mSvWQGa9;s?8W_DOzn0j3?hm9T|Sn|XVY$*HiV}ra6J&Q z^}6{O?frH=9D*H)H?bExXI6+ON~hKIdm#~A5bqCg4ZN@S32a-9fJ(=QBDFX`HdYgi zz~cWwF#a*z@LzfEeoN->410UMV~B=Kt|QaPhR>ZIw{4d%QxpM-x@<11$i7$oKSRaO z2e=V~n3aZjLA)Ub?>Cy69*f$%Q@8G2-q%Pud)zIX|K_GDA$mz@vhvS7%S^Q|y_e1g zUnSsd>1mmJ@(UXi%gf6Phh-0CR#go1&p(sGKQ+F}80WJj4X9y84198t79a)uw0H_s zfKHgGa|L`+Q&Uz}7WMM#sAf1T&iS}W(PRdP9HsD6&*vKZvemvZL~0&~IIB(-FFFl5 z_Bq1`ZzW5sE&>Zv5ntYHi)7j!Xf;m%T?FcW6}stu z?5Z*7b@LNVW$oIB1*0I|>zZd3lZ>;aSyffFzuU*_o;*gt@k6ucWnqcA^QuqP%F3#R z@(Z2F>Q}}h3d}I%(ips|{{SI|@mGr>xi(FjIOb^Uam(*>*js4pbO5ea%&EgpaMovf zSw@UHE>)B#^W)!j_v_{BF@GBoN^%!+L!$AVZYJTUpD5w4vgd0>TZe`D`74m$XNd5Y z3tD<@mlnsy#9>v(^SHTCKT*#+qx!-EFTH-F1;p0VD(=&yo1eI3NY~}P$9tu~o4e5a zNyYP96u13BQqD+M@hnI6%l>d_dF6i2r%n{`z(o;UhGMh$-E65%By`7TUzg_;v7`L;)DQY!U5SSk4cFcSAt#4uFjQ|sZ4x4+;+?DSQfScf<5;qb9nSd$i) zm6hF@kbFKp^lMZLfOaF8eFH_2mFZ#ql>@@dpy`SW+B(aqC+_!0eGt`xWiUwt(WS`4 zjU+H;2SS}op&%k@zZBKaSyT{e0pb6$I9OdoKilsWjbn+yql>u*$mH&1LDnJ2=XN-I z`;t`I*vv01=AZH19!=FeyuNR(w!6^xUi7;P!vRE^tXJx#g>pbsUXPdW0#|FSQonwQ zrq29gNAN;;5RZST_kO+!^X>Um>~I5pyeTzNQp2+s$E<@9F)s^yrAGh{{qa`g_kMQU zUcHqJD9()d(Zc^uzDo3HP0RxC#Bv%G<73@RI{vRTrJJeLiIG?`0ZbT5aft1FO)oY{ zr=r)a&b)N(_*|QwzGB_paogodoHE<>0g;@Yo!JqVce^#N$^^Ko9X-B&-t|JEdFz9r zAMlHRj2iAIKfbgVt=U(&=zpktX;2JM#YkjBdQY1XPxcV#_v^QlMP}>Jwmt8U4%1TL zAeEMt#WK%wp>q2?&@WcVO21tnRi(PUuki~Y`M5GaUop9DKW-lyBac3y7H$jL=y1D@ z`g}LrwCVxnBbAm{?}FQd{PJ?o=gBO7l9)Z@!9QOPz~$n1m#~r!S6Mk?&sL1QL(&M1 z&04IK7;7%s?sR1RQlrB;87@a0GwPsHyaLX5%|C1tu(jNSt7-X~Dw>)h#g?n}2f)w! zJHOA@tUX1Z9fD;ebtwH2+yjWcn$$njoQWK>xC`az%}Kr@2mzrXmhkfZRdDDu>zizl zNvbE7D>9`OqEXEUp1Fm8>|3>%zV5hN?_7C@fe4iqzrK3ba1#B|XA832)J#*Ur*@dm zYP=-t)gPdF^)9r;Z?E3FeX+2#{mw5gOPs-Fqf@nZ@$mxA#yBt^Ja^l`K z!QlU1{b={;j_wclaSw3Y@A zyS$!Pru>o~SE;j{zp1M)c)y<+=m%xpb0hhWV);5RvzBDts7PC;aT)bNJL?%aJ+%{B zY2oI^lghmT4(uXAFefxFFyRYh`* z*2g6e8%J)CcMTviyg+)EjWAR;PokT~e%?bjkI)oKogD!0dP(9!8d;3X8MR>j*$xd~ zz$TI!*i`yd7Y8spZyi>z(5O4ydQCm|^U|v3T?N3_D(kfj%dc%lQyj;}wzs#B7F+t- z^arD0KHZY)b5UcxS*XSoBRK2zAKlNcuBXE)$!GC3Egm@fnA{#t4A}$J;0n&)ij5C7 zJ$+6zi9F{qaN4V5mVG|<+P0i@SKy}gs`X#7`&o`H?D{op>h@zLMos35)t%=ULz$S$vc zx-K`$lIpELY7IQjvpY)PcT+;-nGJk3wOI{7HR&x+rHD4r_w_GDN3Az{NS+I_V%$tA zNG-$Py`qCmSR+oMED75$k24|`Wl#5Xtg2(Iw%pIET8x7ZnIx8h5a#sKS&fA)1p{!y zQ3TvW{`^~E7Z$k>Dus;zuK+4TI+mWIqNK@cCZ_JY`bIZM!$HBgNxs*ONCM%2HQSE< z2Q%gH6{jz?b|BkHVG!ZR)o@2?dHI;fKabnPn?dHykr=-_)z!5N7X=S(7$n^4?Y`To zJb>T*%k3gu1BJ^Remjhx&FA}Xx05@UJ?oOv(w3_parUY5 z8Qe3=%Tjt5`_F};?)_cI=Gm9m-MY%kl)tU4l%1h4ta||LsOqiKPhIfPV*bS{rQZ=l zM}JUeey##ReO93B^5D>-s}soYq9L^4%K2~ay0)bIW1z`uNyzy)FC@Dk&_IE606|{0 zT+2ad@JtbSm|xP>&77zAok>3?qEs3BQGw~RSX@eF@neVTps5BYOnkY=Pgv$pVt=f* zR-^)0Ge&7y`wJ*cv`7ywwjA}!Vly4H?q{jqYIP{kkURRh&t7aQ=y?-HjjHDVJ3R5G z;%upg#M=M2T;|_eO36+nT@E`gQ&Urqn4X)L3^`$ItYV{?&DH+Ptg7BuM~HL-pS>t< zhTN^3e~Ixcc~$)kK&rIFq-QTULpcenikK{Z0>`Et(HY4b&!G`&>re^uE=ZO#gqn;l zueA_e=Hx_p-ueg3uphL*+oD>u_lw-q!9>RaqYL^;floyG?{A<8-$LsPyF zvVBGb!>K$T_*IPZnO+ZRZzq>MET%HqvH7D3ttUu1N69~ZMSb4&0RloK^cuwd>N&0P z%)Tc;UB?r+n+MjMrvY$pRlXZ1Ni2Jr!)8PE-)&rmED7D-5IDHF>TT9ETrZau6cy2Y z{Sb&_LL9KD_9?0+cHUL0JJt!tfb@IYvRH-#?^=DRsePzC-_j;V@WOwYb30y=|3#tr zhgYy$O&YZ1bnOuZofp8AJEx+Sn8fNbh7E4DopxoJyPVH3Bnht_U}MS3+yFlU8uKkN zB-^eE#2EO~hHq?;dM|2n#|#26E(b!PL$LC`Ucr+G)@~)ow^IpXA&;vwrOX*8k|B>VZ z77C>k4hM|u&Ne;I7+Jq2Y`LXl-`>x#RW|+#^%GvA;uQMKk=)-%sfbj?9Cnhfc47cB zj0pvyx32RUk`@xn9`gDd&r`kb3AJu;48T29x;K7#EG`*tkam8;KX zyG}y`@W$PPF-c{c06q*=Tri++y*{6IzGAMm6}GTVdWMYYd(O$S>azr!7ESQUkoa)e ztz@%L(r8gRbS`_w+pIK(@BW<*43>2(K!=)@1!uV;(<1rd%hz=>4`4SagkW}zqS@(! zzBoIO!*wV$eDf&K_2-}J)X7U9o6J;_%=n<8qkzcoK|`_KiL@Nq_f14NE6JYkt&165 zk+47UY_pIXiS7^ZUh_lNb9b)JiYprI`;vWLAIQX^K)kQWs0JQ1pHD~M$1{0Tf`dJo z1U?1VpO1R>AI;K)QwZ$d2wT=~kXCgr?!U`VxC;=Yfv;ik^*hSZ>ilIn=~Q7=4juq< z_Hcz?aWc5qdShglc&!guy+6ISO6nYhm-IhZemyTHe>pun^RU{3O;5*XMGo6KDyXW0 z>1Sb)|7*b!Xe9IT(9)Bq9ymv^&0ZTJ_);tmgzsSqKYFKaS10hEewDS zfs2$8`A#dQN1#iZg+>J-Y)T9qAkMs!4c2##A=$thLEFGaRCC-kXQCmk+xJ5N!DhsOXjB}Oyj=>pm)cn;|YeK#}3x#?o1b_keH^Yxs{ z7JLmDenBOs4;)z>o*{XWy?IO*?#wawd+cuXX&a*eWOXOgYLE;9I-wRMRhW&ijDCfX z27Ne7-?(kpcU;tyH5{{rnS{Nk9fYVb>*?uff;PK497sJ`+5LmDSxoNRK|h5(a+hAR zOuN0`dDq?VwY86;esq0JmSD;$;|g&zb6MwSPrl~lZ;(4Fh$+4RGN@W0GkjTIa3M-5 zMr+eAH1bcL9S_>_LGgdJ)5&gPK5FxLxG&1SF2Ywg?FzwK1w=+`dY;&hAt_8S!DgO< zc=idu6T5@jGxro&O)=NP_S%MuyCc7YO)OPkf1X@)eX*kVDKigszB&0gE#%(7_8byl zJ623HnwJ;#YTN%yvVX}BVgMj&J3BkqTFz0?(b2W;e#gDNsj$0RPsg>iu{=CyS3H_> z+Zt{>nRCh(w!Hae`}B77v@+#8y4lJtYYDFJU#hofBbW~*g`a7ubK*Nd_s?&-k7-uV z@1V>5L0p?yRSSF|nqWM*B&7JgUHEe7nfGU$&2SLKEJbV`!O3sWxa%?!7R9{8tX7$Bc*(LyD!9lL}%-nBMhsMWqV*3IA<2e|9dg|v@;ft(4T6{l2DGh*X=fSx)d{|SAV_t}d{tTKXDFC-< zY#&|{Kbf;k26bIUCQ+@_=*k~2ilRXp9ahxC!(;KC5|AE9=rXT7EO0-s+LBi6f%-SL zd`3zFj(ta)-LHmA+Zi-k0H|xRZRVyLR$*a_KkZcZ#*r2CM z@W|&V{^E8Lwp$o$nHL=}#3q-RbV@MUX@!7h&@RNQ>~cAk&M}NwA~#-1ZXlRulNT#U zJ%*Tf(3Aq6SV(5TVWjHhbjxHYYo-^}X;^4V=IBi{d2o~2R#Rgd-F{yE$Ht@R~q?;S?ZD)h$Ej{(~s+<{<+?yfsgL_Ib1JkxDrG^3R*C(Cy=O| z2lzn|V> zD;U)GOvuhA_Vo00-wmVIsxyY+cRk+@C6C@tSM-VW6S{&Y;Bxoaf;qZ5Tk{2me@6pq zOUlcm(ABx768U?t0eS+@25 zFj?h5DmoN^a{|!u)EoKuNa=C5)&COqm0B)?3qf8rwH$>KJ3gAHa@P?VHyz4d`kfby z>!)Gs0I3eF1Mu*~Qux+VMk$ILz|?EwvWsNfi&G`Zy^3Csv_mK1Nq3zR{kPmQ_ZKfs zC}+O$#E7Aw)^#a`C8;x+V*s-R1WOp_%f5-9yV4(Kubg+?Ri{HZOi#OUZB#}CyRS)c z$)3=ihVfd4kp7|vZ{@6NNG~(+y;8I%m#2r5!W$A4n4+|U>nl!xR8|vw9GnAaNQh4T z8oQI(qK2iapO1ob9K!D(k3GV6T@{)&Ops}~aDl#o=!q#fFiJ$P^Qwv)zta!B*dXXk zP0^A;d>;CX-Pi0^d&4r0wrB_xWfZe)&!7VPhcciigyBcO<*;Ji%CW=_bE0sM8`AP+ z$URh>Fu7SiFBO}jw>uV~ysj*$|NL^pg%KhJppSo!xK^oxn&b^yBe0>JZhI0Hvmz;s^eL{V}p- z^?Fhx6z_S$s^s~=fBLfH(UtvEE{%ie{;S9Ea6WaX4|F#pkgr3y*Nwp}|4e7{eenFO zN{;nD@<*4rJQgDypy75|A0a1fA7IG#h@(0+e{HI!p7f|Q$${MN)yq7L(x%VQFCL~3 zNR1S_39utZ>E$)hPG|;^81M?%7}(w40rkV*r0T)c8aW?7zn!(6-4v3-y(!@sXYxM5 zcgHC1=hIQ{L=^=hgF?+0!pz z&N;SnUe}LWcY+C6k$04L(mb^t~=zI;uK!8TjvLx<9)>P8*y#eS6nnR^s{<3Lb)KBk0nx&d-mWxCWQ( zSTsyfrmPD7)JN!(c#cCKbaLYBwY4dTvj6Z4Z`zm>%6kT7uHEGA2_Z2l$w(_h6sm|% zxi1omA=(2Daw5*1F9kO;A&`3xif-^d{`28Ta`jqrahEH7#*{x@30{%6PY^=JoXnY@ zK_Lx1qp;I;5-rqGnRM0EFMbUwq(MvFq~nd1pyhQJ2_%&)w>;PmkPfsh<57%s{3U_^ z8=Z=uP_}F*40h%RUT zow0tW$72?}c{HK!YZ8aPj8G`L=@g6N8> zeL-GZ8I|UTB_xyOUj5PMjhBK8F~c!g$xdEU=e-=Y`43$joGZlkDl)#0k4;~L2Zy&h zFgM~P4klXCXSygu^+$db@$wWN{1_iG9-e|r{B_B0{G+Ej#V+4qegGKX=)!rEAnX&a zMG>r0Yw@5AV94~vTu@gBN20e-j`?UjCDLNG-Ye93Vv;41vJmrEAlt>%PTRv{y>PyurV0F{Hi#$Spk2 zYbL#R=gHM3s~(c5AHpsxrYWWiZi`-aOjoE33?Xpi<~_b>!Y?m_-jA{;nZh~mFM_;& z)ccYKJ*Z>>}(4+({V2$x1vh_l#YYazOH`C#od=09l>k@v@-%Isxfp-)-V^ z?@#+cK3c9`5$$tYR$?0={_SWV(gVrkAM!nq+BmPzf-H$}^~C6-17l9tegjTJ=n>

    *vGSxI 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 diff --git a/public/static/UEditor/dialogs/attachment/images/icons.gif b/public/static/UEditor/dialogs/attachment/images/icons.gif deleted file mode 100644 index 78459dea7b12ccbeec81d19ecdab22b1658e93b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmZ?wbhEHbbY#$A*vtR||Ns9FJNP^N(4UCIf1{56|NHmvpFe+o|NadW2g{=nia%Kx z85lSjbU>mYGZarn*x(aH@fLZq!wgUiaA+%BrQuMGlI(3v}$4ket=c%G-JG_a6@d zUMtW1Dv_dMk(#;&JDULU);6IIt*+RD80Beh(v#{r8-@JE7rOMyrKZ@`PM+5- zK4PEn@UifH&1a7opNKNDvAy~H((Lt@PiCLrh`sqL^yyzFM}*_N9gV+*y1bvCcd{tw zP+atQ`ojjtR_?nOH&4iCw(0v^v}@~SfpwBi-JHA%0-p_?kEd#ga=ENn_|&M5?L?$c z!i1+jT>6R+ul!uQ+^$n$Hm~o7%Nb0wJ#GK7NE~>4aE?#6+>{R=oUZeJnouMg`B^J) rUi3;Xl^IQMkE|4#X6EZ{`gBG$ultcLuMHMNRKNMR>qv$%6N5DXx{1lO diff --git a/public/static/UEditor/dialogs/attachment/images/icons.png b/public/static/UEditor/dialogs/attachment/images/icons.png deleted file mode 100644 index 12e4700163ac87fa38ae3d92a2c39d0fb4690fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2678 zcmbVOX;>5I79PY3QcMF;v=DTJ2Cao`KoWu|Aqfy6h(IyOQj#!`2w6-5AW&qm{A@Vn47?^n2aU%})k0wvK3C07Okv?vJ=0$Cz%3={xy zqf~pe&}INI6bOSj3J%+s%9n_++yxtKqDTs(0bujiL@Ada3n@Sz6eAS7+30KQY(Qa@ zo6SyVHl8h|Ljs}qUKtd)*Dr{_HCwk^{ks>P(^% z$>3j?4eU)86-^Cbc>d)J9=X{F6bdO7hf^w*SfwLYB8$NhTwGihIEX|C*up`s5-Yfg z4r00OA_D`G^JPM*LMRb~3yfTzBwpcW14sHc1(B4^{+n1V|4S%XGF&28iX&k0IFV=} zuQ%3mMF8}lF#ge69;A{&xBy5liI?%={fM?*1jE|>yQ2j|I2!79nGoI-ZX83xj~78= z1&iTk1FvACgi%yHfdZ>YcEXd1coKy`pb&{P3YkJCkmxiDok&~c_(v?PIup$-B z5`{!AkVrv#APL;a=JJK&g^3RrHt21>3`izSfTBEQ5)t@DVXE*SA|O%d45o(%o=Ey% znZLzG{XeSV;9zhI* z*~k0Z^G~&Z-c7Xw#U+Dr?Cg&42yA(9*^$glv(nbKwok8JbGh^2fn9ZV^^MlnECDr% zb8Rs8C8IoDeQzNCoR;2}!wUCvRMpV!J9E|5P56qVSBFh4T0Y;2i6|=%vhzEOZ^qncd+?}N_bX*{ znIC?`)c7~$4FQSwzwzCOojcU0H=er9Th5iEB3DIX5_dF9pacXTJI>B~>68qESsvP2=ichF(pvo+k4SU)M~s z3+?sA#l_+!^_(ni$K3hWpYvO@(V>(R7s{iDO6K~mgMjhb#~a;iLRMs%6Morxqp@)+ zJ11v+j#Q)R8@*bY-^NRurddL=!0Kz49SxqGJ&)t#ALNBh9UchxYqVgy=FS2Q)2-GG zBd14SCdB|xCIa#W@6`ozw2tq(*SqVL6m(b4BgGYUcz8H7tm5RY4LjVYtB#yD%WIiL z^ok2`{E08ble_h+YjPxp-p^aDd8axLc2xNv4I44|GNGnPPd*e)aneY2alYqb9*45qn=`wHT|PE1MH)jbikTfENQ(LU04R%o4GX7X;)Jz~k@;+*h@ujN~uo%_H2Vt#)9-SuZ8 zD(`znx@z1*Fc?})4yp3{yMwz%f3p3^_`td}jYgB*JZ<~5{o^*n97-MLN`u1+WP=og zG~N;$va+wQFMG^R<8tg!zbtv)zmj%$*=6~JHf{#PVsN6mpPUoW!COmjHa8>BpFe-| zviJ7wsWesFOw!q|0Zmd!GK3nK4i|YKKmE;d9H9tD?#s9pU3R==t>dhsJ`NpNT6t@# z>bvSrv*xK&x%1B=UMGzB-BC7Vw2ftZ@0X$v&Y840W1O8Q6#!^1lgqc)kL(yB)Le=8 z=T=v)?T?7Ey|HH4%EB;>|Af=wc|K2&Wo#TaFw`-{JDys3#>dB}&&TIO#g8>AVApU$ zt=rXe@74BHRaNmELusolZfLdI$M(mvG@O(Dz4?yH_d|!{EIB#j0Rtzj`|*uIYILgq ztW8PmrPs*^+){hCug`mGw|PnDebMsUP`H=IzTQ4QV{GIFucdh)Jw4siba)hSNtxXH z<2!>gR4NgL3iX`KelH{#*9jjIIct8zmJ`on8|gx>n+4xbJ{ci_{515Ueb%M z_d;CG<=vC_{(f=;@|oKWby1nsZbV)PaPKK@(zYTx7wEe1W*3B_g@$xR${3`=9{n z^jx{5(=Foe&%s~(I@!H?NRo?N70XHp3J$g$LnK`+9O&;)_SPBXc|eDW1uGJ2lQU?? z(3=`x>_4uiufh3t9_?yDa8SXgm1%3n5UqP~Dx+6k>B=WpjNSD0C$ny$TjRe?G_AmISp9T7R8oQndf>2sl4f z*Q+)Z)u<0zW)SlFM=k911pK9m9=J$kKII$NfP=n8d9 z_5R=XSPzxewWHyWjb|>hqTEDBdpM&qYK*jR3}fpN>&FrOc8Nw01u7#{_#oBA;+Qag z98vNrKKd&}z6#EjbJU=q-&*=dcaJp(ISHq7v%_OxSG{XiR(gB)=^pEQUR|QJs_=g6 z0z4yL6Rn)4v zv)yNtNTj)n2&tMFwZy-gMkf07%J%iduo#zV@n|#ww?G(766w)+7*H6YEwCDf^l94~ z;7}6D-rJzj;#%bzP=^|skPXAM8chV7L<(JLH9@*07zg6vEe0fv@uKDu12E{r7#sLX zw$dbl6AcmDF*tgAlt#BbNf)ALtPBT2tso&_gmDP48j}$-XboeG>w?7Gw#{My;}AS4 zj4@$Kt5g9J6oUailNX?4b2xxNz~lt-1p#5{RT#D%e}kcq`%vTaA20xFgN4>cO6(Pmr?|Lb=~ zVY4R91hdqz8BM`-#KR?c*-Du}2?j$rifK?ZdFmEbi71Ym6HyZ&i537pN=RowY#YAg z45boOAZ8pwbg)7i#vnA927?~tOJt%Tb|9C-W%D^4880|QAQ8)WQofuMEEaJjQ(P&k zOEJO-KE>7l%jJEPYYT(XL{yf-m?0I`%Q4glj2{{_%;1I13uFtpaz3HQo7u|*S3iT7 zNv`0dToz%5WqaEHJoVHTkssT1I=IAQI{Gj|s zLrABQMF5Sm8=zAjTlVMGdII}WHeGsvSex8>aPW*~dEN^00n4|U<+`F)0+VSYbQ~WV z?F%~8cr8%bc)qMXNq@X|msi$rCx(p8ocoxvx95hP+ww7tVLzn=Dw}7u}%eHk8iyK22DPh{^tP z;8yePo+0GIiepheWjSKe7i~Cr%%6U%^FRaT+&;zKWI;yr)=Htb`;H~Dtv3>QdomZO zx?7%U#21`hX#U}z&+kj(Dq>0t3fzD1{LAk;=X>(P~1p?y-g&qe1}@0io|o5x=H z{k~yG;hpr+z9nb%C)FKYW7g36$AgPzSF1B*L3P7~x01H!jfYh9zSJYpH-vWSwGS*0 z9k5wfq^Y87ZYAwKPqD=-7B9#ulJ4(Z?b}N2rRFd6tR&}rUQ;I@OUoYF_>%W{SBSG; zOJyu`iA??nIWcheW%Lt#9#xJy!m>d^1>^7*Xzr3{YHG7TH`UuA+7(^ zqh7~c*~n7gqt4%h2dR`(bxr1l4`SNv%@iD(L0l(bA7m-!EPjeb=C diff --git a/public/static/UEditor/dialogs/attachment/images/progress.png b/public/static/UEditor/dialogs/attachment/images/progress.png deleted file mode 100644 index 717c4865c90a959c6a0e9ad1af9c777d900a2e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1269 zcmeAS@N?(olHy`uVBq!ia0vp^f8U}fi7AzZCsS=07??9MLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW^@CE2 z^Gl18f$@>14ATq@JNy=b6armi>cVAJd5X6R;MWawh(V&G(G=xXffXz1o@ zX=ZL{;B08&Z0-!x>zP+vl9-pA3bQv8XfIT+GhV$`&PAz-CHX}m`T04p6cCV+Uy@&( zkzb(T9Bihb;hUJ8nFkWk1Vs?Uzb>gonPsUdZbkXI3g8g7%EaOV0~10%hv-cqC)D(T zj?o7t52WM*69T3|5EGvGfgE`DNzDW1nId53*cQ_-&cMK^?CIhdQgN$ga=rIq1A(^5 zYKwg&`wo`WvF`u>{iFU|`!+wz>b#B?t8F4hxRm$~lz-tTH#6E8xZnKlv%`YRwvA{oKseqmK8(Gfx|> z#)dT+Zy!CGH{+89Q&m{rC!PyyIjq?Y9m+ziHPqr6qxfF`+2Qt=-KQ=fE8_j%1#Y2} z>NffN)P;AQIhrE)QQzeqbFS^A8(M1XGuQqTO<=fcH+M~2lzlL$Ao6teb6Mw<&;$U? C61Fb@ diff --git a/public/static/UEditor/dialogs/attachment/images/success.gif b/public/static/UEditor/dialogs/attachment/images/success.gif deleted file mode 100644 index 8d4f3112b9d1df2147ed3b67d9736163dedd11e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmZ?wbhEHb)L_tHxXJ(m|NsC0{`>#WKmY&!`~ULm|4%>v3rzVXIOUh{)L$ageu+>2 zB{Acd%*pZwE#>TlQSztb-KopJH+%!_|l-~7Ag*59?a z{_c7B@6_{ur(gU#_wwKE_y6vG`1j=VzZYNsfBgCX$DjXizW@L859r4KV8@~pia%Kx z85k@WbU+dyKQXY~a+p)#p(E9QVoA}-BeJtDJbfs+R&065YSGzOop#2q7tzUUTK@E- z1Qpqe*fm*b*T-Fam_8!ZPiJg?eRTb9ku+5;xVnw>Wr$>Ce}(b zvq{bgY~#~oR8Cparp&0%zbdUw!o*Z6ds70hP&$teqekA&7*16-748@%Mnl0vSqU6+ zOpICr!NSHY@7SLk+rBLP3&#jWP!Xxbb jiN%_{Rv%uKKTTNF#>acL^G5)OtDBg<-IWs>91PX~W`xy? diff --git a/public/static/UEditor/dialogs/attachment/images/success.png b/public/static/UEditor/dialogs/attachment/images/success.png deleted file mode 100644 index 94f968dc8fd3c7ca8f6cb599d006ef3f23b62c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1621 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#?>2=9ZF3nBND}m`vLFhHXsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6rPIL(9V zO~LIJBb<8mfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u(vXbonl~MI_~M>7*cWT z%njcRVMh`65C6~Q2yI{K`NBQQh9heAinXE1(JfB=Ul%M;Ke#x6g%L8^f5l4Te zj&BcK1znDIyZS2~eC7F3K+}tVTa$=u*HTU0W4>0#`+Qf%|GkyBERBs#$Y}P@k7@U2 zd#*XsYr~WGeCA1uSK>2HTD)g9mP}Xrpg$+`K&8dx2JS~bjCx(hj5}1;-8qn2_>|?> zp{d+2q{I0hbQS!U-jOut`kSEi+IhQJGmBl4O%se*W?OGKZ0Mp?XmGnRgezL^8vCJ4 z#-ek9(R&%4!h+;oXA~Mtbyie=u#0PDiI#!iX`%2?^@kRL8ma*r6?+*}W4e|_8~J&& z+-+*Ub3{dDcAIF|!MTDz0#78qKYeaeVU$wDOOs3cR=e5FZ*O2e-6xc{Uu=$;!s>*M z>nZ|V>zUp8-oE6^wXjV+_UOvuE&SORr`;3hnBKu~e3rzlY@NRjD|5Ui2t>^@Ve7jy z)2vT>u1vesjJgG`f;l_n`FmbR~b^~{VzXB}7CdU_pt>lO9l=E;X#4<2bZu32r~J^e^%TSISQ_Qm$= z7d{rOo2%^RUGseJkpn9(MWszUQdl(i&RN5PBgZ0d#S7ZipShU3W`>Nsy6C#pCD*KW zyxHW%b?m|pr;dF;L$saa#oaeO`u=>jkXTjl9*cLEvOD!Jdr4ooKJW9gY7?D{e?uM^ z`_}E4`0yR0boA=9>3>WXzUH{&pDfpZ;_2xb=j*pKsk#WyD%J#5t{1#azeB z4SJq8H2*dJVX$xugZHVh{7U`u4@oM|quz5j-hRJi{qwh1k5uNqu`W>3HJG&Y^R}6R z$Gq-HPue$sd${oT*XKO8zN>Oe_%K^bZNm3^-vf7@5X# - - - - - - - -

    -
    - - -
    -
    -
    -
    - -
    -
    - - -
    -
    -
    - : -
    -
    -
    -
    -
    - -
    -
    - : -
    -
    - :x:px  y:px -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - - diff --git a/public/static/UEditor/dialogs/background/background.js b/public/static/UEditor/dialogs/background/background.js deleted file mode 100644 index 9a4a131..0000000 --- a/public/static/UEditor/dialogs/background/background.js +++ /dev/null @@ -1,376 +0,0 @@ -(function () { - - var onlineImage, - backupStyle = editor.queryCommandValue('background'); - - window.onload = function () { - initTabs(); - initColorSelector(); - }; - - /* 初始化tab标签 */ - function initTabs(){ - var tabs = $G('tabHeads').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - for (var j = 0; j < tabs.length; j++) { - if(tabs[j] == target){ - tabs[j].className = "focus"; - var contentId = tabs[j].getAttribute('data-content-id'); - $G(contentId).style.display = "block"; - if(contentId == 'imgManager') { - initImagePanel(); - } - }else { - tabs[j].className = ""; - $G(tabs[j].getAttribute('data-content-id')).style.display = "none"; - } - } - }); - } - } - - /* 初始化颜色设置 */ - function initColorSelector () { - var obj = editor.queryCommandValue('background'); - if (obj) { - var color = obj['background-color'], - repeat = obj['background-repeat'] || 'repeat', - image = obj['background-image'] || '', - position = obj['background-position'] || 'center center', - pos = position.split(' '), - x = parseInt(pos[0]) || 0, - y = parseInt(pos[1]) || 0; - - if(repeat == 'no-repeat' && (x || y)) repeat = 'self'; - - image = image.match(/url[\s]*\(([^\)]*)\)/); - image = image ? image[1]:''; - updateFormState('colored', color, image, repeat, x, y); - } else { - updateFormState(); - } - - var updateHandler = function () { - updateFormState(); - updateBackground(); - } - domUtils.on($G('nocolorRadio'), 'click', updateBackground); - domUtils.on($G('coloredRadio'), 'click', updateHandler); - domUtils.on($G('url'), 'keyup', function(){ - if($G('url').value && $G('alignment').style.display == "none") { - utils.each($G('repeatType').children, function(item){ - item.selected = ('repeat' == item.getAttribute('value') ? 'selected':false); - }); - } - updateHandler(); - }); - domUtils.on($G('repeatType'), 'change', updateHandler); - domUtils.on($G('x'), 'keyup', updateBackground); - domUtils.on($G('y'), 'keyup', updateBackground); - - initColorPicker(); - } - - /* 初始化颜色选择器 */ - function initColorPicker() { - var me = editor, - cp = $G("colorPicker"); - - /* 生成颜色选择器ui对象 */ - var popup = new UE.ui.Popup({ - content: new UE.ui.ColorPicker({ - noColorText: me.getLang("clearColor"), - editor: me, - onpickcolor: function (t, color) { - updateFormState('colored', color); - updateBackground(); - UE.ui.Popup.postHide(); - }, - onpicknocolor: function (t, color) { - updateFormState('colored', 'transparent'); - updateBackground(); - UE.ui.Popup.postHide(); - } - }), - editor: me, - onhide: function () { - } - }); - - /* 设置颜色选择器 */ - domUtils.on(cp, "click", function () { - popup.showAnchor(this); - }); - domUtils.on(document, 'mousedown', function (evt) { - var el = evt.target || evt.srcElement; - UE.ui.Popup.postHide(el); - }); - domUtils.on(window, 'scroll', function () { - UE.ui.Popup.postHide(); - }); - } - - /* 初始化在线图片列表 */ - function initImagePanel() { - onlineImage = onlineImage || new OnlineImage('imageList'); - } - - /* 更新背景色设置面板 */ - function updateFormState (radio, color, url, align, x, y) { - var nocolorRadio = $G('nocolorRadio'), - coloredRadio = $G('coloredRadio'); - - if(radio) { - nocolorRadio.checked = (radio == 'colored' ? false:'checked'); - coloredRadio.checked = (radio == 'colored' ? 'checked':false); - } - if(color) { - domUtils.setStyle($G("colorPicker"), "background-color", color); - } - - if(url && /^\//.test(url)) { - var a = document.createElement('a'); - a.href = url; - browser.ie && (a.href = a.href); - url = browser.ie ? a.href:(a.protocol + '//' + a.host + a.pathname + a.search + a.hash); - } - - if(url || url === '') { - $G('url').value = url; - } - if(align) { - utils.each($G('repeatType').children, function(item){ - item.selected = (align == item.getAttribute('value') ? 'selected':false); - }); - } - if(x || y) { - $G('x').value = parseInt(x) || 0; - $G('y').value = parseInt(y) || 0; - } - - $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '':'none'; - $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '':'none'; - } - - /* 更新背景颜色 */ - function updateBackground () { - if ($G('coloredRadio').checked) { - var color = domUtils.getStyle($G("colorPicker"), "background-color"), - bgimg = $G("url").value, - align = $G("repeatType").value, - backgroundObj = { - "background-repeat": "no-repeat", - "background-position": "center center" - }; - - if (color) backgroundObj["background-color"] = color; - if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')'; - if (align == 'self') { - backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px"; - } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') { - backgroundObj["background-repeat"] = align; - } - - editor.execCommand('background', backgroundObj); - } else { - editor.execCommand('background', null); - } - } - - - /* 在线图片 */ - function OnlineImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineImage.prototype = { - init: function () { - this.reset(); - this.initEvents(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.id = 'imageListUl'; - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('imageList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getImageData(); - } - }); - /* 选中图片 */ - domUtils.on(this.container, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode, - nodes = $G('imageListUl').childNodes; - - if (li.tagName.toLowerCase() == 'li') { - updateFormState('nocolor', null, ''); - for (var i = 0, node; node = nodes[i++];) { - if (node == li && !domUtils.hasClass(node, 'selected')) { - domUtils.addClass(node, 'selected'); - updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat'); - } else { - domUtils.removeClasses(node, 'selected'); - } - } - updateBackground(); - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('imageManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getImageData(); - }, - /* 重置界面 */ - reset: function() { - this.initContainer(); - this.initData(); - }, - /* 向后台拉取图片列表数据 */ - getImageData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), - isJsonp = utils.isCrossDomainUrl(url); - ajax.request(url, { - 'timeout': 100000, - 'dataType': isJsonp ? 'jsonp':'', - 'data': utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - 'method': 'get', - 'onsuccess': function (r) { - try { - var json = isJsonp ? r:eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - 'onerror': function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, icon, _this = this, - urlPrefix = editor.getOpt('imageManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - img = document.createElement('img'); - icon = document.createElement('span'); - - domUtils.on(img, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - } - })(img)); - img.width = 113; - img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - img.setAttribute('_src', urlPrefix + list[i].url); - domUtils.addClass(icon, 'icon'); - - item.appendChild(img); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = [], align = getAlign(); - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var img = lis[i].firstChild, - src = img.getAttribute('_src'); - list.push({ - src: src, - _src: src, - floatStyle: align - }); - } - - } - return list; - } - }; - - dialog.onok = function () { - updateBackground(); - editor.fireEvent('saveScene'); - }; - dialog.oncancel = function () { - editor.execCommand('background', backupStyle); - }; - -})(); \ No newline at end of file diff --git a/public/static/UEditor/dialogs/background/images/bg.png b/public/static/UEditor/dialogs/background/images/bg.png deleted file mode 100644 index 580be0a01dff4c70c72f78a3f40186660ee8eee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810 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'+ this.point.name +': '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %'; - } - } - } - } - } -]; diff --git a/public/static/UEditor/dialogs/charts/charts.css b/public/static/UEditor/dialogs/charts/charts.css deleted file mode 100644 index ac3c764..0000000 --- a/public/static/UEditor/dialogs/charts/charts.css +++ /dev/null @@ -1,165 +0,0 @@ -html, body { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow-x: hidden; -} - -.main { - width: 100%; - overflow: hidden; -} - -.table-view { - height: 100%; - float: left; - margin: 20px; - width: 40%; -} - -.table-view .table-container { - width: 100%; - margin-bottom: 50px; - overflow: scroll; -} - -.table-view th { - padding: 5px 10px; - background-color: #F7F7F7; -} - -.table-view td { - width: 50px; - text-align: center; - padding:0; -} - -.table-container input { - width: 40px; - padding: 5px; - border: none; - outline: none; -} - -.table-view caption { - font-size: 18px; - text-align: left; -} - -.charts-view { - /*margin-left: 49%!important;*/ - width: 50%; - margin-left: 49%; - height: 400px; -} - -.charts-container { - border-left: 1px solid #c3c3c3; -} - -.charts-format fieldset { - padding-left: 20px; - margin-bottom: 50px; -} - -.charts-format legend { - padding-left: 10px; - padding-right: 10px; -} - -.format-item-container { - padding: 20px; -} - -.format-item-container label { - display: block; - margin: 10px 0; -} - -.charts-format .data-item { - border: 1px solid black; - outline: none; - padding: 2px 3px; -} - -/* 图表类型 */ - -.charts-type { - margin-top: 50px; - height: 300px; -} - -.scroll-view { - border: 1px solid #c3c3c3; - border-left: none; - border-right: none; - overflow: hidden; -} - -.scroll-container { - margin: 20px; - width: 100%; - overflow: hidden; -} - -.scroll-bed { - width: 10000px; - _margin-top: 20px; - -webkit-transition: margin-left .5s ease; - -moz-transition: margin-left .5s ease; - transition: margin-left .5s ease; -} - -.view-box { - display: inline-block; - *display: inline; - *zoom: 1; - margin-right: 20px; - border: 2px solid white; - line-height: 0; - overflow: hidden; - cursor: pointer; -} - -.view-box img { - border: 1px solid #cecece; -} - -.view-box.selected { - border-color: #7274A7; -} - -.button-container { - margin-bottom: 20px; - text-align: center; -} - -.button-container a { - display: inline-block; - width: 100px; - height: 25px; - line-height: 25px; - border: 1px solid #c2ccd1; - margin-right: 30px; - text-decoration: none; - color: black; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; -} - -.button-container a:HOVER { - background: #fcfcfc; -} - -.button-container a:ACTIVE { - border-top-color: #c2ccd1; - box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1); -} - -.edui-charts-not-data { - height: 100px; - line-height: 100px; - text-align: center; -} \ No newline at end of file diff --git a/public/static/UEditor/dialogs/charts/charts.html b/public/static/UEditor/dialogs/charts/charts.html deleted file mode 100644 index 70e2314..0000000 --- a/public/static/UEditor/dialogs/charts/charts.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - chart - - - - - -
    -
    -

    -
    -

    -
    -
    -
    - -
    - - -
    -
    -
    -
    - -
    - - - - -
    -
    -
    - -
    - -

    -
    -
    -
    - -
    - -

    -
    -
    -
    -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/charts/charts.js b/public/static/UEditor/dialogs/charts/charts.js deleted file mode 100644 index 37344fd..0000000 --- a/public/static/UEditor/dialogs/charts/charts.js +++ /dev/null @@ -1,519 +0,0 @@ -/* - * 图片转换对话框脚本 - **/ - -var tableData = [], - //编辑器页面table - editorTable = null, - chartsConfig = window.typeConfig, - resizeTimer = null, - //初始默认图表类型 - currentChartType = 0; - -window.onload = function () { - - editorTable = domUtils.findParentByTagName( editor.selection.getRange().startContainer, 'table', true); - - //未找到表格, 显示错误页面 - if ( !editorTable ) { - document.body.innerHTML = "
    未找到数据
    "; - return; - } - - //初始化图表类型选择 - initChartsTypeView(); - renderTable( editorTable ); - initEvent(); - initUserConfig( editorTable.getAttribute( "data-chart" ) ); - $( "#scrollBed .view-box:eq("+ currentChartType +")" ).trigger( "click" ); - updateViewType( currentChartType ); - - dialog.addListener( "resize", function () { - - if ( resizeTimer != null ) { - window.clearTimeout( resizeTimer ); - } - - resizeTimer = window.setTimeout( function () { - - resizeTimer = null; - - renderCharts(); - - }, 500 ); - - } ); - -}; - -function initChartsTypeView () { - - var contents = []; - - for ( var i = 0, len = chartsConfig.length; i
    ' ); - - } - - $( "#scrollBed" ).html( contents.join( "" ) ); - -} - -//渲染table, 以便用户修改数据 -function renderTable ( table ) { - - var tableHtml = []; - - //构造数据 - for ( var i = 0, row; row = table.rows[ i ]; i++ ) { - - tableData[ i ] = []; - tableHtml[ i ] = []; - - for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) { - - var value = getCellValue( cell ); - - if ( i > 0 && j > 0 ) { - value = +value; - } - - if ( i === 0 || j === 0 ) { - tableHtml[ i ].push( ''+ value +'' ); - } else { - tableHtml[ i ].push( '' ); - } - - tableData[ i ][ j ] = value; - - } - - tableHtml[ i ] = tableHtml[ i ].join( "" ); - - } - - //draw 表格 - $( "#tableContainer" ).html( ''+ tableHtml.join( "" ) +'
    ' ); - -} - -/* - * 根据表格已有的图表属性初始化当前图表属性 - */ -function initUserConfig ( config ) { - - var parsedConfig = {}; - - if ( !config ) { - return; - } - - config = config.split( ";" ); - - $.each( config, function ( index, item ) { - - item = item.split( ":" ); - parsedConfig[ item[ 0 ] ] = item[ 1 ]; - - } ); - - setUserConfig( parsedConfig ); - -} - -function initEvent () { - - var cacheValue = null, - //图表类型数 - typeViewCount = chartsConfig.length- 1, - $chartsTypeViewBox = $( '#scrollBed .view-box' ); - - $( ".charts-format" ).delegate( ".format-ctrl", "change", function () { - - renderCharts(); - - } ) - - $( ".table-view" ).delegate( ".data-item", "focus", function () { - - cacheValue = this.value; - - } ).delegate( ".data-item", "blur", function () { - - if ( this.value !== cacheValue ) { - renderCharts(); - } - - cacheValue = null; - - } ); - - $( "#buttonContainer" ).delegate( "a", "click", function (e) { - - e.preventDefault(); - - if ( this.getAttribute( "data-title" ) === 'prev' ) { - - if ( currentChartType > 0 ) { - currentChartType--; - updateViewType( currentChartType ); - } - - } else { - - if ( currentChartType < typeViewCount ) { - currentChartType++; - updateViewType( currentChartType ); - } - - } - - } ); - - //图表类型变化 - $( '#scrollBed' ).delegate( ".view-box", "click", function (e) { - - var index = $( this ).attr( "data-chart-type" ); - $chartsTypeViewBox.removeClass( "selected" ); - $( $chartsTypeViewBox[ index ] ).addClass( "selected" ); - - currentChartType = index | 0; - - //饼图, 禁用部分配置 - if ( currentChartType === chartsConfig.length - 1 ) { - - disableNotPieConfig(); - - //启用完整配置 - } else { - - enableNotPieConfig(); - - } - - renderCharts(); - - } ); - -} - -function renderCharts () { - - var data = collectData(); - - $('#chartsContainer').highcharts( $.extend( {}, chartsConfig[ currentChartType ], { - - credits: { - enabled: false - }, - exporting: { - enabled: false - }, - title: { - text: data.title, - x: -20 //center - }, - subtitle: { - text: data.subTitle, - x: -20 - }, - xAxis: { - title: { - text: data.xTitle - }, - categories: data.categories - }, - yAxis: { - title: { - text: data.yTitle - }, - plotLines: [{ - value: 0, - width: 1, - color: '#808080' - }] - }, - tooltip: { - enabled: true, - valueSuffix: data.suffix - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle', - borderWidth: 1 - }, - series: data.series - - } )); - -} - -function updateViewType ( index ) { - - $( "#scrollBed" ).css( 'marginLeft', -index*324+'px' ); - -} - -function collectData () { - - var form = document.forms[ 'data-form' ], - data = null; - - if ( currentChartType !== chartsConfig.length - 1 ) { - - data = getSeriesAndCategories(); - $.extend( data, getUserConfig() ); - - //饼图数据格式 - } else { - data = getSeriesForPieChart(); - data.title = form[ 'title' ].value; - data.suffix = form[ 'unit' ].value; - } - - return data; - -} - -/** - * 获取用户配置信息 - */ -function getUserConfig () { - - var form = document.forms[ 'data-form' ], - info = { - title: form[ 'title' ].value, - subTitle: form[ 'sub-title' ].value, - xTitle: form[ 'x-title' ].value, - yTitle: form[ 'y-title' ].value, - suffix: form[ 'unit' ].value, - //数据对齐方式 - tableDataFormat: getTableDataFormat (), - //饼图提示文字 - tip: $( "#tipInput" ).val() - }; - - return info; - -} - -function setUserConfig ( config ) { - - var form = document.forms[ 'data-form' ]; - - config.title && ( form[ 'title' ].value = config.title ); - config.subTitle && ( form[ 'sub-title' ].value = config.subTitle ); - config.xTitle && ( form[ 'x-title' ].value = config.xTitle ); - config.yTitle && ( form[ 'y-title' ].value = config.yTitle ); - config.suffix && ( form[ 'unit' ].value = config.suffix ); - config.dataFormat == "-1" && ( form[ 'charts-format' ][ 1 ].checked = true ); - config.tip && ( form[ 'tip' ].value = config.tip ); - currentChartType = config.chartType || 0; - -} - -function getSeriesAndCategories () { - - var form = document.forms[ 'data-form' ], - series = [], - categories = [], - tmp = [], - tableData = getTableData(); - - //反转数据 - if ( getTableDataFormat() === "-1" ) { - - for ( var i = 0, len = tableData.length; i < len; i++ ) { - - for ( var j = 0, jlen = tableData[ i ].length; j < jlen; j++ ) { - - if ( !tmp[ j ] ) { - tmp[ j ] = []; - } - - tmp[ j ][ i ] = tableData[ i ][ j ]; - - } - - } - - tableData = tmp; - - } - - categories = tableData[0].slice( 1 ); - - for ( var i = 1, data; data = tableData[ i ]; i++ ) { - - series.push( { - name: data[ 0 ], - data: data.slice( 1 ) - } ); - - } - - return { - series: series, - categories: categories - }; - -} - -/* - * 获取数据源数据对齐方式 - */ -function getTableDataFormat () { - - var form = document.forms[ 'data-form' ], - items = form['charts-format']; - - return items[ 0 ].checked ? items[ 0 ].value : items[ 1 ].value; - -} - -/* - * 禁用非饼图类型的配置项 - */ -function disableNotPieConfig() { - - updateConfigItem( 'disable' ); - -} - -/* - * 启用非饼图类型的配置项 - */ -function enableNotPieConfig() { - - updateConfigItem( 'enable' ); - -} - -function updateConfigItem ( value ) { - - var table = $( "#showTable" )[ 0 ], - isDisable = value === 'disable' ? true : false; - - //table中的input处理 - for ( var i = 2 , row; row = table.rows[ i ]; i++ ) { - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - $( "input", cell ).attr( "disabled", isDisable ); - - } - - } - - //其他项处理 - $( "input.not-pie-item" ).attr( "disabled", isDisable ); - $( "#tipInput" ).attr( "disabled", !isDisable ) - -} - -/* - * 获取饼图数据 - * 饼图的数据只取第一行的 - **/ -function getSeriesForPieChart () { - - var series = { - type: 'pie', - name: $("#tipInput").val(), - data: [] - }, - tableData = getTableData(); - - - for ( var j = 1, jlen = tableData[ 0 ].length; j < jlen; j++ ) { - - var title = tableData[ 0 ][ j ], - val = tableData[ 1 ][ j ]; - - series.data.push( [ title, val ] ); - - } - - return { - series: [ series ] - }; - -} - -function getTableData () { - - var table = document.getElementById( "showTable" ), - xCount = table.rows[0].cells.length - 1, - values = getTableInputValue(); - - for ( var i = 0, value; value = values[ i ]; i++ ) { - - tableData[ Math.floor( i / xCount ) + 1 ][ i % xCount + 1 ] = values[ i ]; - - } - - return tableData; - -} - -function getTableInputValue () { - - var table = document.getElementById( "showTable" ), - inputs = table.getElementsByTagName( "input" ), - values = []; - - for ( var i = 0, input; input = inputs[ i ]; i++ ) { - values.push( input.value | 0 ); - } - - return values; - -} - -function getCellValue ( cell ) { - - var value = utils.trim( ( cell.innerText || cell.textContent || '' ) ); - - return value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' ); - -} - - -//dialog确认事件 -dialog.onok = function () { - - //收集信息 - var form = document.forms[ 'data-form' ], - info = getUserConfig(); - - //添加图表类型 - info.chartType = currentChartType; - - //同步表格数据到编辑器 - syncTableData(); - - //执行图表命令 - editor.execCommand( 'charts', info ); - -}; - -/* - * 同步图表编辑视图的表格数据到编辑器里的原始表格 - */ -function syncTableData () { - - var tableData = getTableData(); - - for ( var i = 1, row; row = editorTable.rows[ i ]; i++ ) { - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - cell.innerHTML = tableData[ i ] [ j ]; - - } - - } - -} \ No newline at end of file diff --git a/public/static/UEditor/dialogs/charts/images/charts0.png b/public/static/UEditor/dialogs/charts/images/charts0.png deleted file mode 100644 index 9485e5ed8f83888e782eafae6f7505c79671a985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25306 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 diff --git a/public/static/UEditor/dialogs/charts/images/charts2.png b/public/static/UEditor/dialogs/charts/images/charts2.png deleted file mode 100644 index 7c91a39ffac43e0867bec1df89b73e10e0b28c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23016 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 PFatGZEv0+~v#0+BCDM7e diff --git a/public/static/UEditor/dialogs/charts/images/charts4.png b/public/static/UEditor/dialogs/charts/images/charts4.png deleted file mode 100644 index 742006adc9cee3c07b1a390da6991a84d1da99d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8344 zcmb_?cQ~9|*Z#xk1Sf(ZN=^vTTZob|5+O)%h!Qo0;4p;I%jj_=kwouI^g5zP@1l-w zbkV!X=zV^Vyx)7y`~BYYe%JTM_qbeh&DwiEyR5bDwbs2SL`y^E5)~^I005U%A1Y}B z0E7qth)@*7pu{`%lneYId!eqP1Q0I%P_0%Upl!MMCyElFWdi^%KvhZc ziCg04lvzHvWgO@CEs15fH_u;TzW29rT$QJhDjK8scqy)(ZE)@Dm&*3!cP*Y_wQ5&rij}x+gy`~l->5$O@}lAC%a669cf=q& z0C>f-oSv^+pc2 zy62(bw$NC~k-O(!aXutH>8|+V&V8eo+FmQ@!9D3jdG}&3U~SK18IvUEzP+FV-3|*%=})xE zHWAL>%?y0ME8*yMwxL(aIB=HU#cL<-5WHxUP^pVYzN#xV&KWe_IGm;$FlaWcbO`Y)oDv`E{SLp@$TV;=HUBLrgo3HAVJb0}kH3QFc-96peB| z8+d!Z*#{eC^E^4-_G(kFy6xSLskt<ov6KKhbJ9d^2`;*)C?R=DSN{Q(U3L zD<0ULT|X3QrgMOrol(ubspk88W%r9clMe+Y%nWr4y}=H?=3G|61udvJPqbIc_4Z4& z8pc_9h3tIIiB>D|$H%gj*YtD+yD(om811Pfv^XzzAVsp!^sO{#u&&{@L-S?hHbaOmpQ^PfrgHdQws^ zd$fHdUG9CtdzRVtoK_mgS!Z#$hU1vVPv7@+-5f7NEMtas>x}`$9ZT6O&9gs>21UFV zeUb^x1am@}5AH3peg^kW5x!k-TJse@gFMyrIT}~+=$+8h({tIH%wZ#;7iZzS5+h=E zKCZ(Y0hD^5?1K~8Nt;#U%%r$mdvN2<__@}yvfH>Duy%8lR?Yr6+p@?3*t@tm zm2yZqn6993>nt=Y1$q2qwmBgoL7e_)zx@2&I>bIfB?Vb;e>Ec%+&ST}f5nw#Qa~0hDWy{a(RM$9@zQ(#0k~3lJ}PJTHjZ4Ss760c4J0o1ZR8R?dF0R#X9q zeTk1@1<#*Q1N_{OGUf8Z8+1esOdT*GQD_M-3#~d+Gz&8Xa5P6T#m3qe4}zXS45W95 z{9IvK0+J38RQ{V#^JhrAvHZ|BG=Z?-^HJm!lX80IzemksQtTh`RAgW4=nT@JB(7zX z?sqf$wa&ny#ofyt;k*4Cx{6dB{Phe#tTI`uDo?YTqj#zGtn!>6Y|;rQQOT2qtF8-E zL(#Bg-xvrh#xwmkF5P+iQ*jq!qP%GMi8A_^D5bnzmm_Cj1wf=$bA6c@il47ROy=0jkf9WaxTXctV&MtIUp$q$X2ooEU8nfN-; z_j_AYm7w(|2}b}`vAWB1hs*q&z5v%}x*>=YFOV zR4bm(0~)z1i;9ZG@SnH4h=8|$Iev+&x-dBqdn>Z&i}m%J3HDM_QUj*_rHcSy5eViW zK=egRq+bE?I_^lT5L^AD!Y9HcytaB2ityyC@7=axN^EiW+mWljLk1Wz>yhQ&0+Q}H zq;7lbZAIyuuI^2r9j_PGA1x(-yI4Os865H28`h`Z!mMXxahUk@2Ag`U^)GA3WV6;3w{Ax8a6D-byV0>Z7yR}>Z#ySOP-gvDNAvF9c9#flqQV{w^pEwg zfmI_;c|h4JA; zeTTEz^mcTG?b%p~T%1ktqQ1t6yz|;n*bNoC`m_D?cM{WGx2B($TR-WbE*yD%XJgMp zdfF|`#)3ZQ+cvh-3Y;XBvC|7>O_bd&Z`EuWvUlLccN8<-1C_+P{Mw;gTU1mqNjnHf zP+M-*zZY*dS`-mai82w#$^uSC2HvP$7pcK?2VQ2UOd(tiUQY{$o$n%!2y8o$fd@-0 z(=jUSxwZ4L$T7u2B6kx9E=5dK-i>@p?yEt?17Tc_wf@)^jnp1|(bwYKMyPJh!rWc$ zW`BifYf*_{v)EQa$LM@<-2ZHy7X=PMgF}j(jcBB)6|6h1MoydB)>wPdX;TA6zjS(W zEk$X}Sx*{AEzG^UbqA1qz?pr+QIXra+dM&Xhc?i{^$sF$1M@9~C&tn7hSu2C^f5@o zz;1*@eBW2_M5p$HN;I!2Xq`^E-IKaTtMFsYQo(2UJ+6%*D`Bh0NBVr%8!N4?T2wxy zI_1?z{I@CXzXhza4rb13sRolCi_^KQD&kDjlt8yS*$elZWHBIo^*AfitdjexwZjBe zdBz?9#3+7r+_=YT_DGh`dhlwvCSimwVsW);dKX_9?)i{OSkK&pXs94CHe8OSUTOXC z_R}uVnJZQyWk%uZ;XY%3LfC9Pb1u~%6hg& zdzQnom?4fC!?Nfa{#bo5Tqh1h5B`_WhlJTgn6@Z&iy452tB}_09FaE2MUG&2lg(@? zzA(ZFF}^vMh4%8z_kBeNl&yVKPRq2paCFeUohFzuP>0io@$vC;I2dM1SH>;xTtj{@ z=|!He#N7|3-JGfSIoO(dtWTouJXqVi5S>_uJ67huH4-hGlR#$()&y-$zHg6GY*CE6 z|6VKnb+GNO^Aii|aSXiYjj!)u-*gf#HKQJIe7f%IUozmPajm zd8C{6?V?_`XL^44hB$(^@(SomIZmo*!jl?WU`kJ&tZM!6{#dnHEn!PGnMZ@PDD(S% zsmbC^%3)^TPFGj{NbUqliO1J$1WIUuq$dt!of#<`_f)elGh|8mSPwi{vLuVQz+CE- zdRBb>2Ag6h-;8P}TIbb=ut^Ag0>6Y7tFNO2?^7feAKZe<(N zD5)f;mFQJ&X%Lcc3Um5My7N^)frdxU7AR5-RgzMi@mvQqQsOGjz~dG!;F<7kQ|Y>q zBiPtvNm0>tG9mzB{Vn8>ETFOFoE~U+v36`~5ag-OCO>7jZ)-uN)_J%OITni*G5-3c+j2pl6}hf%qn;G$yfIotTAu5m;k0j8 zvP^Ec(I+@2;&arck9ONvkl*(qe8-ps(``oj87}W4mIr)bA*0mGcgTiWLtJ4;#&#uz8{nR|CwB zkUj@>gO;K1$~wqtcU@`C&XRn-IN~!TaJBe0b~%@Pba_q(75!&l44vd-7bz#Hb#Ae2 zY}5{Wtj$Ai91R7TVy#vyJUg>FKYa30U?fZ%$N5oBT30 zE4!=}48A7vDxDyhX*u;g2|vT1Ai!hd*Y)3^h~WgV4e1I92!NsP;5rrHY}4q) z1^9N7N^?@gwzU}eQkCt2)c{~L%Pk3peZ$waqF}4;7&-sBY^=yTB49TAD_tZ>k}>DQ zV>>gIU*O2}D#&(t6h=MQq5&v$guGEs zT!Nm=0N1s>eZO>0fa{U&zTbNkTYg=$W>>~okQ|F*s zmjkwB&p*ju_*fgR4FZtZsA3;Qy#;(xhd-yNI)G8s#m#s;6jR73!}n9702%Z zFs-#(u!~mZU97ig#ll>PrlhuN-f*~|llKak4E*Ka;g}sP{WBt>y^Bi9@g?}o-CvA> z*ajI;ic#=Eczy#>GY2fappl_+gV7MBdwKx{+2W9lnD(m#?a`*Rmt$U_zlw<+n8!eX z$ltK8^PsNuEI9e#`>_m{01`Wv9Y5Ck_otv^vU=_RVUkqM`Gd^?v4zaeh`yWt7(4UB zsJ^ZaIolL;Spf5!r4g;Q(VDHH(OTkta?>WgYjQ5Oeg)A^JwvaAT&zZOzirQi((Q*H z?%>S2g(yph27*gxk0-WAdUgJ5qyacm1su5@gzOnIuR}O`dU5O?IvPIjb>{3ov#I(O zNY$CYtwUXRQz}MsYr!9Lkts@$Iw4UlEieh8#fJ(PSknVj?4cs|WpZf!Ts17t$;U#x zqw5ZE8T?ayjXmW4uZ?{s6uN}mm)Hmyp!H-MUs--g0z`}a=sMO*^b1$*8*6!KC<$92 zCU9{Z>S97P<~6q7+ys>r|Mmp7s`|^|Rc?R?Aj-v8A4pZ~}(EtCp4?+LMEG`39BL5@rwmszr#LiOtoNY~p`|Ny7 zu}QzopZ+(F2NE{)VdN)gli{AqY0CV5ZD57WzTo*tG=hdiEBcw@_tQTxtspLNDTCW& z6zwH5RQXB$Q6Iy=oZr*+<;xofS}v3Tj76v&R(tD~B^Xh<2HAjy?Wun$mzD-bioV!x zjg5}B@4W?pw`FN`=H1k}7Q`ZcKTPachx}%YbHSrlpydQJ#S@Ep$a}otJvVqf0ifo1idiW`?!)XWfrSentkZ7n+PimH8=a zRMW>9r%$j3mKkf_>v@CGvYw1}do#83A11e(KPo_XRzI@KNg?t!?a`pPn!y)RDTqF`0t)4_EKYmSAw0`i^V--s?7k&gZh4XM000 zh-K1Ox2-Q0=AnB$g3T6k-XGt&alAer?^k^HGugNHdsd4?0JW7OStoK?Ai;T{Fd&W_ zxq@BuW| zXuH>ECq$W_=$Y700&Eqc7|82MNBoO!-pNU#kQ2{7# z!^DekZ5Pj*t0X{oUI7aqC9DH3Mghd?8%cnPh+g}JH(q2`tE^06?9^=a3C?rXB7%8* z0E*=sEoY)@#IWodMGx^eiz5xMgCM=3F&oXCwR}BL<7HV-ob~c9G^lf707Bz9t91hd z7Y-*y1`6O=D${}Az)w)v`Q3qRO%+6<)Nxr}kGLjIo311dYs0e8`cL>ellG*VPd4hM z>u&qRhm?u>4vnGpi48MbO2^n+KV)_MnC0;m&<1UFB>!#nlsA`l<9Q%aKh@5BC9M4W z2qS0wj{w8MT14t+J#@=G(E0R)4`fWdY}w>D;9i3P1y9N1d%x=!s}C&p4Bu{a%W3V3 zNjs$W_T!wk74y3ygT;48VZUEzSMaE9m|jl|AtkpO_v3f35 zgxxXH;^dIbW>cW-!A#m?iEK?8B}h-+`U}0c8zhhC&xT#v9Ii6U7-2LP3_Pa_RK0-8 zFa-DivN-K`zz|bW@2uaisMI5yl4K3lNR~g^Ngft>gDK~w|7c1QXAPB-mhK_)@7$cKJ^93VoY7JMAd+#z`=no#4A~A8fdNvnMRo zdoEAdJ-w%Ew43&g(`R?9S|mwE0?{*t^S}mkdaN|CyAGK$C@FLPVQ`9%@c}8bJ&)Rw zWs#Ya9~;?4<|*>$Sr)_~1?7qVCUSPpdH!^2Pf(`=7y`@by8Zc!*_^RDAu0;^5OJbx z?7E38VyV9xhpxN^UU?}AA|0QXoOaGzuYwm`ECl^8!E-9iKU^&dn&4GWW(GdK!gS$~ zqZ3zh8qWjKYV2gJW7pkW8<3w@V;I!#;A{Cz7JBob#XPe(00jnI%0Z>{G)vA zT`pQoI2_;ZS@K6BlwOHDL=ZeudJ+~2el1aMG5F;5YA?Up_nnKK?IRMKF2DBZR_e7J zuB++ic|EifL+IYY!};rj4dG|)(%Mpz7=x>}y5KF>zMadc)oI&d`R$HS(;hF%cbkZD z+IJ})aj*35;P0-TdD!t)1{<0^z+r<+J2{W=CPD?a6oE7(&XoHl=7u!!UonS16^BEW zyq7lV;kC&Yb*XcaQu?}|Yk&DdB2GV)5#IMjGIVGReg8`SLj5c;B9AB$v9n-|)U+YY+@l8wF^r9+AN$U$q<;r^x9vjG?9tEftqzvlUoFt~Ka=Z(5YFd#olv&QACJdWOl^xO9EN7*WsmyFZGEkt zEED&QkEJ6~x3DGVq8F#Xa2;BWI2j__{>A|E$0;avb1vD88C+pOL6U+`-ReD*4d~4E z<>e!|g9Kp`{u`i^dLC?f<6D^%(8N_s-Ek7&6{5wUE-cENt7>V)$liOaaykB@>1a8n zes9DG?3TMwjd$uxu&+CcD)d?$w<)~q_T&3>t!IKTST~;@?O0+G-OrDf6^{EqqVo@D zUdcWnOD#$E+U@}FH^9P{?M>S=F>*Q%Vek{a$VlO$F~w{T?@ z=p!0SejG@Y&DHy86LN8FKEb#UmxD+>@oqK;VDA{EonDb7E&O)rI)Hl6NpiJ^Xj}_n!IxKhNE{iU0rr diff --git a/public/static/UEditor/dialogs/charts/images/charts5.png b/public/static/UEditor/dialogs/charts/images/charts5.png deleted file mode 100644 index c49a29609d8e8f9bdf101e91021d40c1cb3d4175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47084 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'*4h4^s0#X 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 g*Z&=uhxp - - - - - - - - - -
    -
    - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/emotion/emotion.js b/public/static/UEditor/dialogs/emotion/emotion.js deleted file mode 100644 index 6e158a9..0000000 --- a/public/static/UEditor/dialogs/emotion/emotion.js +++ /dev/null @@ -1,186 +0,0 @@ -window.onload = function () { - editor.setOpt({ - emotionLocalization:false - }); - - emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/"; - emotion.SmileyBox = createTabList( emotion.tabNum ); - emotion.tabExist = createArr( emotion.tabNum ); - - initImgName(); - initEvtHandler( "tabHeads" ); -}; - -function initImgName() { - for ( var pro in emotion.SmilmgName ) { - var tempName = emotion.SmilmgName[pro], - tempBox = emotion.SmileyBox[pro], - tempStr = ""; - - if ( tempBox.length ) return; - for ( var i = 1; i <= tempName[1]; i++ ) { - tempStr = tempName[0]; - if ( i < 10 ) tempStr = tempStr + '0'; - tempStr = tempStr + i + '.gif'; - tempBox.push( tempStr ); - } - } -} - -function initEvtHandler( conId ) { - var tabHeads = $G( conId ); - for ( var i = 0, j = 0; i < tabHeads.childNodes.length; i++ ) { - var tabObj = tabHeads.childNodes[i]; - if ( tabObj.nodeType == 1 ) { - domUtils.on( tabObj, "click", (function ( index ) { - return function () { - switchTab( index ); - }; - })( j ) ); - j++; - } - } - switchTab( 0 ); - $G( "tabIconReview" ).style.display = 'none'; -} - -function InsertSmiley( url, evt ) { - var obj = { - src:editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url - }; - obj._src = obj.src; - editor.execCommand( 'insertimage', obj ); - if ( !evt.ctrlKey ) { - dialog.popup.hide(); - } -} - -function switchTab( index ) { - - autoHeight( index ); - if ( emotion.tabExist[index] == 0 ) { - emotion.tabExist[index] = 1; - createTab( 'tab' + index ); - } - //获取呈现元素句柄数组 - var tabHeads = $G( "tabHeads" ).getElementsByTagName( "span" ), - tabBodys = $G( "tabBodys" ).getElementsByTagName( "div" ), - i = 0, L = tabHeads.length; - //隐藏所有呈现元素 - for ( ; i < L; i++ ) { - tabHeads[i].className = ""; - tabBodys[i].style.display = "none"; - } - //显示对应呈现元素 - tabHeads[index].className = "focus"; - tabBodys[index].style.display = "block"; -} - -function autoHeight( index ) { - var iframe = dialog.getDom( "iframe" ), - parent = iframe.parentNode.parentNode; - switch ( index ) { - case 0: - iframe.style.height = "380px"; - parent.style.height = "392px"; - break; - case 1: - iframe.style.height = "220px"; - parent.style.height = "232px"; - break; - case 2: - iframe.style.height = "260px"; - parent.style.height = "272px"; - break; - case 3: - iframe.style.height = "300px"; - parent.style.height = "312px"; - break; - case 4: - iframe.style.height = "140px"; - parent.style.height = "152px"; - break; - case 5: - iframe.style.height = "260px"; - parent.style.height = "272px"; - break; - case 6: - iframe.style.height = "230px"; - parent.style.height = "242px"; - break; - default: - - } -} - - -function createTab( tabName ) { - var faceVersion = "?v=1.1", //版本号 - tab = $G( tabName ), //获取将要生成的Div句柄 - imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径 - positionLine = 11 / 2, //中间数 - iWidth = iHeight = 35, //图片长宽 - iColWidth = 3, //表格剩余空间的显示比例 - tableCss = emotion.imageCss[tabName], - cssOffset = emotion.imageCssOffset[tabName], - textHTML = [''], - i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage, - sUrl, realUrl, posflag, offset, infor; - - for ( ; i < imgNum; ) { - textHTML.push( '' ); - for ( var j = 0; j < imgColNum; j++, i++ ) { - faceImage = emotion.SmileyBox[tabName][i]; - if ( faceImage ) { - sUrl = imagePath + faceImage + faceVersion; - realUrl = imagePath + faceImage; - posflag = j < positionLine ? 0 : 1; - offset = cssOffset * i * (-1) - 1; - infor = emotion.SmileyInfor[tabName][i]; - - textHTML.push( '' ); - } - textHTML.push( '' ); - } - textHTML.push( '
    ' ); - textHTML.push( '' ); - textHTML.push( '' ); - textHTML.push( '' ); - } else { - textHTML.push( '' ); - } - textHTML.push( '
    ' ); - textHTML = textHTML.join( "" ); - tab.innerHTML = textHTML; -} - -function over( td, srcPath, posFlag ) { - td.style.backgroundColor = "#ACCD3C"; - $G( 'faceReview' ).style.backgroundImage = "url(" + srcPath + ")"; - if ( posFlag == 1 ) $G( "tabIconReview" ).className = "show"; - $G( "tabIconReview" ).style.display = 'block'; -} - -function out( td ) { - td.style.backgroundColor = "transparent"; - var tabIconRevew = $G( "tabIconReview" ); - tabIconRevew.className = ""; - tabIconRevew.style.display = 'none'; -} - -function createTabList( tabNum ) { - var obj = {}; - for ( var i = 0; i < tabNum; i++ ) { - obj["tab" + i] = []; - } - return obj; -} - -function createArr( tabNum ) { - var arr = []; - for ( var i = 0; i < tabNum; i++ ) { - arr[i] = 0; - } - return arr; -} - diff --git a/public/static/UEditor/dialogs/emotion/images/0.gif b/public/static/UEditor/dialogs/emotion/images/0.gif deleted file mode 100644 index 6964168b947afc2cf76780a85f43d4f77c257b77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 qcmZ?wbhEHbWMp7uXkcLY4+e@qSs2-Y0y+#p0Fq%~V)9{Rum%7ZDGCMv diff --git a/public/static/UEditor/dialogs/emotion/images/bface.gif b/public/static/UEditor/dialogs/emotion/images/bface.gif deleted file mode 100644 index 14fe618ab58a9d46fee90074386b5581d47b92c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27167 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 diff --git a/public/static/UEditor/dialogs/emotion/images/cface.gif b/public/static/UEditor/dialogs/emotion/images/cface.gif deleted file mode 100644 index bff947f5216a49d8cd7fdd8d4e825808b3d14f6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8603 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 diff --git a/public/static/UEditor/dialogs/emotion/images/fface.gif b/public/static/UEditor/dialogs/emotion/images/fface.gif deleted file mode 100644 index 0d8a6afeb1cb2cc40c5d76f90630d8a9c1323ffe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18479 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 Z1*(9jYzjdPQwkU=rV+{lAZZd106V&Waa;fZ diff --git a/public/static/UEditor/dialogs/emotion/images/jxface2.gif b/public/static/UEditor/dialogs/emotion/images/jxface2.gif deleted file mode 100644 index a959c90f7eb17adc455982b040244fd583eed888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40706 zcmW)ncRUr2_y6y{mwR!!cE-K-cFk<}+T+T#ciE#TBFV^Iwz5M>W=7Gq%Bt?QvWg@m z6;jcgB9!L+eZIf*IDeh?QIMUgJc1z$R8ZQ|Kfb_r_e{Z9w5lq*XQcc z9jVL6+Z7d@0e-Xx^soxJ!g&+_IKmeR_|x)cG)v5|>2%*>(b9OMU6b@q|En{{Mc>Fd zmAqBv=v4OHAng6n6B89pNx4*7QZPUF^6&SRMFNih3@mB5qAAnw?U?%>hx72^!5P}kmX;QMmWJ{1@n2Fw;g#Vtu4MMN(f#!H zXB|_tz)fkBO&l>)6C=DtUUmnTxRQsRw8{4rwUKskKS!E-V3Yyezf=Q#gm%1l#kzM{%aVio9lmP6|zV{ z1>aIGIoEb=%4a$p@b5!lSs=M}SM$_elk9Q7Pd`3|-f`NRs_Yo;XG}(LcK#b)n`mro zc=hFtX1?5;H*e0de0q9%6fTQ6HAO7|U>CR{?Y22qj_J`i2Al)bFf* z%b&fIpP%>d!Fx0s&A40oHE-%GXT_*Sd2V;IxFfr8y!=A<*=c$|4u|{jZRFn({oDOu z#lT}ad9r9O{_DX;*uC7&U-eFzj_4dp{K1_Vu`H_*4oEL+fHy*QC6WZWL|i`n(4p{rUnS@N2ks{X2mo*ZYX7H%|I-8j!2$f`lCWd0 zvV0`lMg5P?;n>>$E)UW-3x-P+LCQwaoA`QjV=E)8jn#r|i*#|G^Zs^wa2wvPaGw1i zRzZ`c|2z}bx~8PnFkb`9*h_IWC$h}5OD{c%@NR2JY+qGNn#aMVyArt$KLv>b&D^dC z3vE&?F;Kv^JG`a$R>JLKw!=nNx#hDQ&gj%jE?s+kXuubtR5(7Hy|`URc$!jY>Ab7MVNQ;8V&Gr&(FwV2RfwG{=fYoxhVN(QR05?( z?8A)q?$mD3!vWocD)5;OTjRS1;l}^2=+6ob{5j;a?pn!wg?HWzd!kWI6kJFR=CQJ( z{M;$N8pRux08KXfxhmodidzj3OFXzwrZ)?@JECT}KAut+&;2y(tZudegrgVgZV{Zf z>lQU~)i->v!UBS5Tn=TxsmuT7wM#6e&>kK{CsS%|;A`~*`b95+4NH_YZ^MTZc18)e zi9Pdro)uzofLn3h7ZOJCL2Q_!gH?ik#C7Du_n&U1{A-yr&sJ#NtjpJ5Zmx}-yY|VO zE)|MxkVJGi`dT%VTusmDbgzcbBp5oP(r64{F|QVWef%Q&>E}*h6I=nXsecH5%kzg^-JTi#qgd&_tt%giqOt#R5{gEGDy*K*`I}~d zM3FT!<=1Zsy}t_GF*E2?@%s>y_W>hfmu9U3bj|ijqU777R4(R{-Em*3NbUz?QvAA( zMg|#Nd0SfvtCkKPDmPDzdtFCc-kyn$O;+#1i`^qC+)ikOZ%qeB!v_#+2Jqj{Pn%ki z=_mbA1535K7FvKRPn03}*DM`VJ{XhqW2eVaT|8s*G|2)zfL41(l!yj+mr5gW>0`>^ z@!a#~_4siakxLdv-$&cytqZ}!2r#q}%2w<>O9)sBM4>DwJo-3!X~A)b@)4@)ZtN-G zA0Xh5Vh>Lu@GOXb2=-TT81LSSnpwg=;#?=Nd6b-dxwT)wT&@*izufVJ6a|U≶_= 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 diff --git a/public/static/UEditor/dialogs/emotion/images/neweditor-tab-bg.png b/public/static/UEditor/dialogs/emotion/images/neweditor-tab-bg.png deleted file mode 100644 index 8f398b0958cdc5136a23b9745becc23a833aa325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^96&72!3HGF`uUCmDVAa<&kznEsNqQI0P;BtJR*x3 z7^L@rFypT63w8qqANLt@XPdKI8X22WQ%mvv4FO#q2N BK}7%n diff --git a/public/static/UEditor/dialogs/emotion/images/tface.gif b/public/static/UEditor/dialogs/emotion/images/tface.gif deleted file mode 100644 index 1354f54b961211fb0253ccbd27a81da5dab5a639..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19805 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
    Q#B)e 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℞!!p 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 Yl`jGz%R9~u(Lcw{+`;~ZL;$@14{R%g2><{9 diff --git a/public/static/UEditor/dialogs/gmap/gmap.html b/public/static/UEditor/dialogs/gmap/gmap.html deleted file mode 100644 index c4cbfe6..0000000 --- a/public/static/UEditor/dialogs/gmap/gmap.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - -
    - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/help/help.css b/public/static/UEditor/dialogs/help/help.css deleted file mode 100644 index 4478475..0000000 --- a/public/static/UEditor/dialogs/help/help.css +++ /dev/null @@ -1,7 +0,0 @@ -.wrapper{width: 370px;margin: 10px auto;zoom: 1;} -.tabbody{height: 360px;} -.tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;} -.tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;} -.tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;} -.tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;} -.tabbody table thead{font-weight: bold;line-height: 25px;} \ No newline at end of file diff --git a/public/static/UEditor/dialogs/help/help.html b/public/static/UEditor/dialogs/help/help.html deleted file mode 100644 index 9e50060..0000000 --- a/public/static/UEditor/dialogs/help/help.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - 帮助 - - - - - -
    -
    - - -
    -
    -
    -

    UEditor

    -

    -

    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ctrl+b
    ctrl+c
    ctrl+x
    ctrl+v
    ctrl+y
    ctrl+z
    ctrl+i
    ctrl+u
    ctrl+a
    shift+enter
    alt+z
    -
    -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/help/help.js b/public/static/UEditor/dialogs/help/help.js deleted file mode 100644 index 9a2272e..0000000 --- a/public/static/UEditor/dialogs/help/help.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午1:06 - * To change this template use File | Settings | File Templates. - */ -/** - * tab点击处理事件 - * @param tabHeads - * @param tabBodys - * @param obj - */ -function clickHandler( tabHeads,tabBodys,obj ) { - //head样式更改 - for ( var k = 0, len = tabHeads.length; k < len; k++ ) { - tabHeads[k].className = ""; - } - obj.className = "focus"; - //body显隐 - var tabSrc = obj.getAttribute( "tabSrc" ); - for ( var j = 0, length = tabBodys.length; j < length; j++ ) { - var body = tabBodys[j], - id = body.getAttribute( "id" ); - body.onclick = function(){ - this.style.zoom = 1; - }; - if ( id != tabSrc ) { - body.style.zIndex = 1; - } else { - body.style.zIndex = 200; - } - } - -} - -/** - * TAB切换 - * @param tabParentId tab的父节点ID或者对象本身 - */ -function switchTab( tabParentId ) { - var tabElements = $G( tabParentId ).children, - tabHeads = tabElements[0].children, - tabBodys = tabElements[1].children; - - for ( var i = 0, length = tabHeads.length; i < length; i++ ) { - var head = tabHeads[i]; - if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); - head.onclick = function () { - clickHandler(tabHeads,tabBodys,this); - } - } -} -switchTab("helptab"); - -document.getElementById('version').innerHTML = parent.UE.version; \ No newline at end of file diff --git a/public/static/UEditor/dialogs/image/image.css b/public/static/UEditor/dialogs/image/image.css deleted file mode 100644 index 52c2295..0000000 --- a/public/static/UEditor/dialogs/image/image.css +++ /dev/null @@ -1,894 +0,0 @@ -@charset "utf-8"; -/* dialog样式 */ -.wrapper { - zoom: 1; - width: 630px; - *width: 626px; - height: 380px; - margin: 0 auto; - padding: 10px; - position: relative; - font-family: sans-serif; -} - -/*tab样式框大小*/ -.tabhead { - float:left; -} -.tabbody { - width: 100%; - height: 346px; - position: relative; - clear: both; -} - -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} - -.tabbody .panel.focus { - width: 100%; - height: 346px; - display: block; -} - -/* 图片对齐方式 */ -.alignBar{ - float:right; - margin-top: 5px; - position: relative; -} - -.alignBar .algnLabel{ - float:left; - height: 20px; - line-height: 20px; -} - -.alignBar #alignIcon{ - zoom:1; - _display: inline; - display: inline-block; - position: relative; -} -.alignBar #alignIcon span{ - float: left; - cursor: pointer; - display: block; - width: 19px; - height: 17px; - margin-right: 3px; - margin-left: 3px; - background-image: url(./images/alignicon.jpg); -} -.alignBar #alignIcon .none-align{ - background-position: 0 -18px; -} -.alignBar #alignIcon .left-align{ - background-position: -20px -18px; -} -.alignBar #alignIcon .right-align{ - background-position: -40px -18px; -} -.alignBar #alignIcon .center-align{ - background-position: -60px -18px; -} -.alignBar #alignIcon .none-align.focus{ - background-position: 0 0; -} -.alignBar #alignIcon .left-align.focus{ - background-position: -20px 0; -} -.alignBar #alignIcon .right-align.focus{ - background-position: -40px 0; -} -.alignBar #alignIcon .center-align.focus{ - background-position: -60px 0; -} - - - - -/* 远程图片样式 */ -#remote { - z-index: 200; -} - -#remote .top{ - width: 100%; - margin-top: 25px; -} -#remote .left{ - display: block; - float: left; - width: 300px; - height:10px; -} -#remote .right{ - display: block; - float: right; - width: 300px; - height:10px; -} -#remote .row{ - margin-left: 20px; - clear: both; - height: 40px; -} - -#remote .row label{ - text-align: center; - width: 50px; - zoom:1; - _display: inline; - display:inline-block; - vertical-align: middle; -} -#remote .row label.algnLabel{ - float: left; - -} - -#remote input.text{ - width: 150px; - padding: 3px 6px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -#remote input.text:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); -} -#remote #url{ - width: 500px; - margin-bottom: 2px; -} -#remote #width, -#remote #height{ - width: 20px; - margin-left: 2px; - margin-right: 2px; -} -#remote #border, -#remote #vhSpace, -#remote #title{ - width: 180px; - margin-right: 5px; -} -#remote #lock{ -} -#remote #lockicon{ - zoom: 1; - _display:inline; - display: inline-block; - width: 20px; - height: 20px; - background: url("../../themes/default/images/lock.gif") -13px -13px no-repeat; - vertical-align: middle; -} -#remote #preview{ - clear: both; - width: 260px; - height: 240px; - z-index: 9999; - margin-top: 10px; - background-color: #eee; - overflow: hidden; -} - -/* 上传图片 */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} - -.tabbody #upload.panel.focus { - width: 100%; - height: 346px; - display: block; - clip: auto; -} - -#upload .queueList { - margin: 0; - width: 100%; - height: 100%; - position: absolute; - overflow: hidden; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 172px; - padding-top: 150px; - text-align: center; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *top: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 300px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; - position: relative; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 9px 0 0 9px; - *margin: 6px 0 0 6px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background: url(./images/success.gif) no-repeat right bottom \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - - -/* 图片管理样式 */ -#online { - width: 100%; - height: 336px; - padding: 10px 0 0 0; -} -#online #imageList{ - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; -} -#online ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#online li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 0 0 9px 9px; - *margin: 0 0 6px 6px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#online li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#online li img { - cursor: pointer; -} -#online li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#online li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#online li.selected .icon { - background-image: url(images/success.png); - background-image: url(images/success.gif)\9; - background-position: 75px 75px; -} -#online li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} - - -/* 图片搜索样式 */ -#search .searchBar { - width: 100%; - height: 30px; - margin: 10px 0 5px 0; - padding: 0; -} - -#search input.text{ - width: 150px; - padding: 3px 6px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -#search input.text:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); -} -#search input.searchTxt { - margin-left:5px; - padding-left: 5px; - background: #FFF; - width: 300px; - *width: 260px; - height: 21px; - line-height: 21px; - float: left; - dislay: block; -} - -#search .searchType { - width: 65px; - height: 28px; - padding:0; - line-height: 28px; - border: 1px solid #d7d7d7; - border-radius: 0; - vertical-align: top; - margin-left: 5px; - float: left; - dislay: block; -} - -#search #searchBtn, -#search #searchReset { - display: inline-block; - margin-bottom: 0; - margin-right: 5px; - padding: 4px 10px; - font-weight: 400; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - font-size: 14px; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: top; - float: right; -} - -#search #searchBtn { - color: white; - border-color: #285e8e; - background-color: #3b97d7; -} -#search #searchReset { - color: #333; - border-color: #ccc; - background-color: #fff; -} -#search #searchBtn:hover { - background-color: #3276b1; -} -#search #searchReset:hover { - background-color: #eee; -} - -#search .msg { - margin-left: 5px; -} - -#search .searchList{ - width: 100%; - height: 300px; - overflow: hidden; - clear: both; -} -#search .searchList ul{ - margin:0; - padding:0; - list-style:none; - clear: both; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - zoom: 1; - position: relative; -} - -#search .searchList li { - list-style:none; - float: left; - display: block; - width: 115px; - margin: 5px 10px 5px 20px; - *margin: 5px 10px 5px 15px; - padding:0; - font-size: 12px; - box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - position: relative; - vertical-align: top; - text-align: center; - overflow: hidden; - cursor: pointer; - filter: alpha(Opacity=100); - -moz-opacity: 1; - opacity: 1; - border: 2px solid #eee; -} - -#search .searchList li.selected { - filter: alpha(Opacity=40); - -moz-opacity: 0.4; - opacity: 0.4; - border: 2px solid #00a0e9; -} - -#search .searchList li p { - background-color: #eee; - margin: 0; - padding: 0; - position: relative; - width:100%; - height:115px; - overflow: hidden; -} - -#search .searchList li p img { - cursor: pointer; - border: 0; -} - -#search .searchList li a { - color: #999; - border-top: 1px solid #F2F2F2; - background: #FAFAFA; - text-align: center; - display: block; - padding: 0 5px; - width: 105px; - height:32px; - line-height:32px; - white-space:nowrap; - text-overflow:ellipsis; - text-decoration: none; - overflow: hidden; - word-break: break-all; -} - -#search .searchList a:hover { - text-decoration: underline; - color: #333; -} -#search .searchList .clearFloat{ - clear: both; -} \ No newline at end of file diff --git a/public/static/UEditor/dialogs/image/image.html b/public/static/UEditor/dialogs/image/image.html deleted file mode 100644 index 08ca022..0000000 --- a/public/static/UEditor/dialogs/image/image.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - ueditor图片对话框 - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    - - -
    -
    -
    -
    - -   px -   px - -
    -
    - - px -
    -
    - - px -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - 0% - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    -
    -
    - - -
    -
    -
    - - - - -
    -
    - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/image/image.js b/public/static/UEditor/dialogs/image/image.js deleted file mode 100644 index 0a59052..0000000 --- a/public/static/UEditor/dialogs/image/image.js +++ /dev/null @@ -1,1148 +0,0 @@ -/** - * User: Jinqn - * Date: 14-04-08 - * Time: 下午16:34 - * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 - */ - -(function () { - - var remoteImage, - uploadImage, - onlineImage, - searchImage; - - window.onload = function () { - initTabs(); - initAlign(); - initButtons(); - }; - - /* 初始化tab标签 */ - function initTabs() { - var tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - setTabFocus(target.getAttribute('data-content-id')); - }); - } - - var img = editor.selection.getRange().getClosedNode(); - if (img && img.tagName && img.tagName.toLowerCase() == 'img') { - setTabFocus('remote'); - } else { - setTabFocus('upload'); - } - } - - /* 初始化tabbody */ - function setTabFocus(id) { - if(!id) return; - var i, bodyId, tabs = $G('tabhead').children; - for (i = 0; i < tabs.length; i++) { - bodyId = tabs[i].getAttribute('data-content-id'); - if (bodyId == id) { - domUtils.addClass(tabs[i], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - } else { - domUtils.removeClasses(tabs[i], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - switch (id) { - case 'remote': - remoteImage = remoteImage || new RemoteImage(); - break; - case 'upload': - setAlign(editor.getOpt('imageInsertAlign')); - uploadImage = uploadImage || new UploadImage('queueList'); - break; - case 'online': - setAlign(editor.getOpt('imageManagerInsertAlign')); - onlineImage = onlineImage || new OnlineImage('imageList'); - onlineImage.reset(); - break; - case 'search': - setAlign(editor.getOpt('imageManagerInsertAlign')); - searchImage = searchImage || new SearchImage(); - break; - } - } - - /* 初始化onok事件 */ - function initButtons() { - - dialog.onok = function () { - var remote = false, list = [], id, tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - if (domUtils.hasClass(tabs[i], 'focus')) { - id = tabs[i].getAttribute('data-content-id'); - break; - } - } - - switch (id) { - case 'remote': - list = remoteImage.getInsertList(); - break; - case 'upload': - list = uploadImage.getInsertList(); - var count = uploadImage.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } - break; - case 'online': - list = onlineImage.getInsertList(); - break; - case 'search': - list = searchImage.getInsertList(); - remote = true; - break; - } - - if(list) { - editor.execCommand('insertimage', list); - remote && editor.fireEvent("catchRemoteImage"); - } - }; - } - - - /* 初始化对其方式的点击事件 */ - function initAlign(){ - /* 点击align图标 */ - domUtils.on($G("alignIcon"), 'click', function(e){ - var target = e.target || e.srcElement; - if(target.className && target.className.indexOf('-align') != -1) { - setAlign(target.getAttribute('data-align')); - } - }); - } - - /* 设置对齐方式 */ - function setAlign(align){ - align = align || 'none'; - var aligns = $G("alignIcon").children; - for(i = 0; i < aligns.length; i++){ - if(aligns[i].getAttribute('data-align') == align) { - domUtils.addClass(aligns[i], 'focus'); - $G("align").value = aligns[i].getAttribute('data-align'); - } else { - domUtils.removeClasses(aligns[i], 'focus'); - } - } - } - /* 获取对齐方式 */ - function getAlign(){ - var align = $G("align").value || 'none'; - return align == 'none' ? '':align; - } - - - /* 在线图片 */ - function RemoteImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - RemoteImage.prototype = { - init: function () { - this.initContainer(); - this.initEvents(); - }, - initContainer: function () { - this.dom = { - 'url': $G('url'), - 'width': $G('width'), - 'height': $G('height'), - 'border': $G('border'), - 'vhSpace': $G('vhSpace'), - 'title': $G('title'), - 'align': $G('align') - }; - var img = editor.selection.getRange().getClosedNode(); - if (img) { - this.setImage(img); - } - }, - initEvents: function () { - var _this = this, - locker = $G('lock'); - - /* 改变url */ - domUtils.on($G("url"), 'keyup', updatePreview); - domUtils.on($G("border"), 'keyup', updatePreview); - domUtils.on($G("title"), 'keyup', updatePreview); - - domUtils.on($G("width"), 'keyup', function(){ - updatePreview(); - if(locker.checked) { - var proportion =locker.getAttribute('data-proportion'); - $G('height').value = Math.round(this.value / proportion); - } else { - _this.updateLocker(); - } - }); - domUtils.on($G("height"), 'keyup', function(){ - updatePreview(); - if(locker.checked) { - var proportion =locker.getAttribute('data-proportion'); - $G('width').value = Math.round(this.value * proportion); - } else { - _this.updateLocker(); - } - }); - domUtils.on($G("lock"), 'change', function(){ - var proportion = parseInt($G("width").value) /parseInt($G("height").value); - locker.setAttribute('data-proportion', proportion); - }); - - function updatePreview(){ - _this.setPreview(); - } - }, - updateLocker: function(){ - var width = $G('width').value, - height = $G('height').value, - locker = $G('lock'); - if(width && height && width == parseInt(width) && height == parseInt(height)) { - locker.disabled = false; - locker.title = ''; - } else { - locker.checked = false; - locker.disabled = 'disabled'; - locker.title = lang.remoteLockError; - } - }, - setImage: function(img){ - /* 不是正常的图片 */ - if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return; - - var wordImgFlag = img.getAttribute("word_img"), - src = wordImgFlag ? wordImgFlag.replace("&", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&", "&")), - align = editor.queryCommandValue("imageFloat"); - - /* 防止onchange事件循环调用 */ - if (src !== $G("url").value) $G("url").value = src; - if(src) { - /* 设置表单内容 */ - $G("width").value = img.width || ''; - $G("height").value = img.height || ''; - $G("border").value = img.getAttribute("border") || '0'; - $G("vhSpace").value = img.getAttribute("vspace") || '0'; - $G("title").value = img.title || img.alt || ''; - setAlign(align); - this.setPreview(); - this.updateLocker(); - } - }, - getData: function(){ - var data = {}; - for(var k in this.dom){ - data[k] = this.dom[k].value; - } - return data; - }, - setPreview: function(){ - var url = $G('url').value, - ow = parseInt($G('width').value, 10) || 0, - oh = parseInt($G('height').value, 10) || 0, - border = parseInt($G('border').value, 10) || 0, - title = $G('title').value, - preview = $G('preview'), - width, - height; - - url = utils.unhtmlForUrl(url); - title = utils.unhtml(title); - - width = ((!ow || !oh) ? preview.offsetWidth:Math.min(ow, preview.offsetWidth)); - width = width+(border*2) > preview.offsetWidth ? width:(preview.offsetWidth - (border*2)); - height = (!ow || !oh) ? '':width*oh/ow; - - if(url) { - preview.innerHTML = ''; - } - }, - getInsertList: function () { - var data = this.getData(); - if(data['url']) { - return [{ - src: data['url'], - _src: data['url'], - width: data['width'] || '', - height: data['height'] || '', - border: data['border'] || '', - floatStyle: data['align'] || '', - vspace: data['vhSpace'] || '', - title: data['title'] || '', - alt: data['title'] || '', - style: "width:" + data['width'] + "px;height:" + data['height'] + "px;" - }]; - } else { - return []; - } - } - }; - - - - /* 上传图片 */ - function UploadImage(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadImage.prototype = { - init: function () { - this.imageList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')), - acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''), - imageMaxSize = editor.getOpt('imageMaxSize'), - imageCompressBorder = editor.getOpt('imageCompressBorder'); - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ' + - '
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('imageActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - accept: { - title: 'Images', - extensions: acceptExtensions, - mimeTypes: 'image/*' - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('imageFieldName'), - duplicate: true, - fileSingleSizeLimit: imageMaxSize, // 默认 2 M - compress: editor.getOpt('imageCompressEnable') ? { - width: imageCompressBorder, - height: imageCompressBorder, - // 图片质量,只有type为`image/jpeg`的时候才有效。 - quality: 90, - // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false. - allowMagnify: false, - // 是否允许裁剪。 - crop: false, - // 是否保留头部meta信息。 - preserveHeaders: true - }:false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - _this.imageList.push(json); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - destroy: function () { - this.$wrap.remove(); - }, - getInsertList: function () { - var i, data, list = [], - align = getAlign(), - prefix = editor.getOpt('imageUrlPrefix'); - for (i = 0; i < this.imageList.length; i++) { - data = this.imageList[i]; - list.push({ - src: prefix + data.url, - _src: prefix + data.url, - title: data.title, - alt: data.original, - floatStyle: align - }); - } - return list; - } - }; - - - /* 在线图片 */ - function OnlineImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineImage.prototype = { - init: function () { - this.reset(); - this.initEvents(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('imageList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getImageData(); - } - }); - /* 选中图片 */ - domUtils.on(this.container, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('imageManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getImageData(); - }, - /* 重置界面 */ - reset: function() { - this.initContainer(); - this.initData(); - }, - /* 向后台拉取图片列表数据 */ - getImageData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), - isJsonp = utils.isCrossDomainUrl(url); - ajax.request(url, { - 'timeout': 100000, - 'dataType': isJsonp ? 'jsonp':'', - 'data': utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - 'method': 'get', - 'onsuccess': function (r) { - try { - var json = isJsonp ? r:eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - 'onerror': function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, icon, _this = this, - urlPrefix = editor.getOpt('imageManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - img = document.createElement('img'); - icon = document.createElement('span'); - - domUtils.on(img, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - } - })(img)); - img.width = 113; - img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - img.setAttribute('_src', urlPrefix + list[i].url); - domUtils.addClass(icon, 'icon'); - - item.appendChild(img); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = [], align = getAlign(); - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var img = lis[i].firstChild, - src = img.getAttribute('_src'); - list.push({ - src: src, - _src: src, - alt: src.substr(src.lastIndexOf('/') + 1), - floatStyle: align - }); - } - - } - return list; - } - }; - - /*搜索图片 */ - function SearchImage() { - this.init(); - } - SearchImage.prototype = { - init: function () { - this.initEvents(); - }, - initEvents: function(){ - var _this = this; - - /* 点击搜索按钮 */ - domUtils.on($G('searchBtn'), 'click', function(){ - var key = $G('searchTxt').value; - if(key && key != lang.searchRemind) { - _this.getImageData(); - } - }); - /* 点击清除妞 */ - domUtils.on($G('searchReset'), 'click', function(){ - $G('searchTxt').value = lang.searchRemind; - $G('searchListUl').innerHTML = ''; - $G('searchType').selectedIndex = 0; - }); - /* 搜索框聚焦 */ - domUtils.on($G('searchTxt'), 'focus', function(){ - var key = $G('searchTxt').value; - if(key && key == lang.searchRemind) { - $G('searchTxt').value = ''; - } - }); - /* 搜索框回车键搜索 */ - domUtils.on($G('searchTxt'), 'keydown', function(e){ - var keyCode = e.keyCode || e.which; - if (keyCode == 13) { - $G('searchBtn').click(); - } - }); - - /* 选中图片 */ - domUtils.on($G('searchList'), 'click', function(e){ - var target = e.target || e.srcElement, - li = target.parentNode.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - encodeToGb2312:function (str){ - if(!str) return ''; - var strOut = "", - z = 'D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9'; - - for (var i = 0; i < str.length; i++) { - var c = str.charAt(i), - code = str.charCodeAt(i); - if (c == " ") strOut += "+"; - else if (code >= 19968 && code <= 40869) { - var index = code - 19968; - strOut += "%" + z.substr(index * 4, 2) + "%" + z.substr(index * 4 + 2, 2); - } else { - strOut += "%" + str.charCodeAt(i).toString(16); - } - } - return strOut; - }, - /* 改变图片大小 */ - scale: function (img, w, h) { - var ow = img.width, - oh = img.height; - - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - }, - getImageData: function(){ - var _this = this, - key = $G('searchTxt').value, - type = $G('searchType').value, - keepOriginName = editor.options.keepOriginName ? "1" : "0", - url = "http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&st=-1&tn=baiduimagejson&istype=2&rn=32&fm=index&pv=&word=" + _this.encodeToGb2312(key) + type + "&keeporiginname=" + keepOriginName + "&" + +new Date; - - $G('searchListUl').innerHTML = lang.searchLoading; - ajax.request(url, { - 'dataType': 'jsonp', - 'charset': 'GB18030', - 'onsuccess':function(json){ - var list = []; - if(json && json.data) { - for(var i = 0; i < json.data.length; i++) { - if(json.data[i].objURL) { - list.push({ - title: json.data[i].fromPageTitleEnc, - src: json.data[i].objURL, - url: json.data[i].fromURL - }); - } - } - } - _this.setList(list); - }, - 'onerror':function(){ - $G('searchListUl').innerHTML = lang.searchRetry; - } - }); - }, - /* 添加图片到列表界面上 */ - setList: function (list) { - var i, item, p, img, link, _this = this, - listUl = $G('searchListUl'); - - listUl.innerHTML = ''; - if(list.length) { - for (i = 0; i < list.length; i++) { - item = document.createElement('li'); - p = document.createElement('p'); - img = document.createElement('img'); - link = document.createElement('a'); - - img.onload = function () { - _this.scale(this, 113, 113); - }; - img.width = 113; - img.setAttribute('src', list[i].src); - - link.href = list[i].url; - link.target = '_blank'; - link.title = list[i].title; - link.innerHTML = list[i].title; - - p.appendChild(img); - item.appendChild(p); - item.appendChild(link); - listUl.appendChild(item); - } - } else { - listUl.innerHTML = lang.searchRetry; - } - }, - getInsertList: function () { - var child, - src, - align = getAlign(), - list = [], - items = $G('searchListUl').children; - for(var i = 0; i < items.length; i++) { - child = items[i].firstChild && items[i].firstChild.firstChild; - if(child.tagName && child.tagName.toLowerCase() == 'img' && domUtils.hasClass(items[i], 'selected')) { - src = child.src; - list.push({ - src: src, - _src: src, - alt: src.substr(src.lastIndexOf('/') + 1), - floatStyle: align - }); - } - } - return list; - } - }; - -})(); diff --git a/public/static/UEditor/dialogs/image/images/alignicon.jpg b/public/static/UEditor/dialogs/image/images/alignicon.jpg deleted file mode 100644 index 754755b1b6e2b37d6090f68b80e91867fdcf1042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16101 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 diff --git a/public/static/UEditor/dialogs/image/images/bg.png b/public/static/UEditor/dialogs/image/images/bg.png deleted file mode 100644 index 580be0a01dff4c70c72f78a3f40186660ee8eee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810 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 diff --git a/public/static/UEditor/dialogs/image/images/icons.png b/public/static/UEditor/dialogs/image/images/icons.png deleted file mode 100644 index 12e4700163ac87fa38ae3d92a2c39d0fb4690fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2678 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 diff --git a/public/static/UEditor/dialogs/image/images/progress.png b/public/static/UEditor/dialogs/image/images/progress.png deleted file mode 100644 index 717c4865c90a959c6a0e9ad1af9c777d900a2e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1269 zcmeAS@N?(olHy`uVBq!ia0vp^f8U}fi7AzZCsS=07??9MLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW^@CE2 z^Gl18f$@>14ATq@JNy=b6armi>cVAJd5X6R;MWawh(V&G(G=xXffXz1o@ zX=ZL{;B08&Z0-!x>zP+vl9-pA3bQv8XfIT+GhV$`&PAz-CHX}m`T04p6cCV+Uy@&( zkzb(T9Bihb;hUJ8nFkWk1Vs?Uzb>gonPsUdZbkXI3g8g7%EaOV0~10%hv-cqC)D(T zj?o7t52WM*69T3|5EGvGfgE`DNzDW1nId53*cQ_-&cMK^?CIhdQgN$ga=rIq1A(^5 zYKwg&`wo`WvF`u>{iFU|`!+wz>b#B?t8F4hxRm$~lz-tTH#6E8xZnKlv%`YRwvA{oKseqmK8(Gfx|> z#)dT+Zy!CGH{+89Q&m{rC!PyyIjq?Y9m+ziHPqr6qxfF`+2Qt=-KQ=fE8_j%1#Y2} z>NffN)P;AQIhrE)QQzeqbFS^A8(M1XGuQqTO<=fcH+M~2lzlL$Ao6teb6Mw<&;$U? C61Fb@ diff --git a/public/static/UEditor/dialogs/image/images/success.gif b/public/static/UEditor/dialogs/image/images/success.gif deleted file mode 100644 index 8d4f3112b9d1df2147ed3b67d9736163dedd11e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmZ?wbhEHb)L_tHxXJ(m|NsC0{`>#WKmY&!`~ULm|4%>v3rzVXIOUh{)L$ageu+>2 zB{Acd%*pZwE#>TlQSztb-KopJH+%!_|l-~7Ag*59?a z{_c7B@6_{ur(gU#_wwKE_y6vG`1j=VzZYNsfBgCX$DjXizW@L859r4KV8@~pia%Kx z85k@WbU+dyKQXY~a+p)#p(E9QVoA}-BeJtDJbfs+R&065YSGzOop#2q7tzUUTK@E- z1Qpqe*fm*b*T-Fam_8!ZPiJg?eRTb9ku+5;xVnw>Wr$>Ce}(b zvq{bgY~#~oR8Cparp&0%zbdUw!o*Z6ds70hP&$teqekA&7*16-748@%Mnl0vSqU6+ zOpICr!NSHY@7SLk+rBLP3&#jWP!Xxbb jiN%_{Rv%uKKTTNF#>acL^G5)OtDBg<-IWs>91PX~W`xy? diff --git a/public/static/UEditor/dialogs/image/images/success.png b/public/static/UEditor/dialogs/image/images/success.png deleted file mode 100644 index 94f968dc8fd3c7ca8f6cb599d006ef3f23b62c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1621 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#?>2=9ZF3nBND}m`vLFhHXsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6rPIL(9V zO~LIJBb<8mfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u(vXbonl~MI_~M>7*cWT z%njcRVMh`65C6~Q2yI{K`NBQQh9heAinXE1(JfB=Ul%M;Ke#x6g%L8^f5l4Te zj&BcK1znDIyZS2~eC7F3K+}tVTa$=u*HTU0W4>0#`+Qf%|GkyBERBs#$Y}P@k7@U2 zd#*XsYr~WGeCA1uSK>2HTD)g9mP}Xrpg$+`K&8dx2JS~bjCx(hj5}1;-8qn2_>|?> zp{d+2q{I0hbQS!U-jOut`kSEi+IhQJGmBl4O%se*W?OGKZ0Mp?XmGnRgezL^8vCJ4 z#-ek9(R&%4!h+;oXA~Mtbyie=u#0PDiI#!iX`%2?^@kRL8ma*r6?+*}W4e|_8~J&& z+-+*Ub3{dDcAIF|!MTDz0#78qKYeaeVU$wDOOs3cR=e5FZ*O2e-6xc{Uu=$;!s>*M z>nZ|V>zUp8-oE6^wXjV+_UOvuE&SORr`;3hnBKu~e3rzlY@NRjD|5Ui2t>^@Ve7jy z)2vT>u1vesjJgG`f;l_n`FmbR~b^~{VzXB}7CdU_pt>lO9l=E;X#4<2bZu32r~J^e^%TSISQ_Qm$= z7d{rOo2%^RUGseJkpn9(MWszUQdl(i&RN5PBgZ0d#S7ZipShU3W`>Nsy6C#pCD*KW zyxHW%b?m|pr;dF;L$saa#oaeO`u=>jkXTjl9*cLEvOD!Jdr4ooKJW9gY7?D{e?uM^ z`_}E4`0yR0boA=9>3>WXzUH{&pDfpZ;_2xb=j*pKsk#WyD%J#5t{1#azeB z4SJq8H2*dJVX$xugZHVh{7U`u4@oM|quz5j-hRJi{qwh1k5uNqu`W>3HJG&Y^R}6R z$Gq-HPue$sd${oT*XKO8zN>Oe_%K^bZNm3^-vf7@5X# - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - - -
    px
    px
    - -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/internal.js b/public/static/UEditor/dialogs/internal.js deleted file mode 100644 index 44dc17f..0000000 --- a/public/static/UEditor/dialogs/internal.js +++ /dev/null @@ -1,81 +0,0 @@ -(function () { - var parent = window.parent; - //dialog对象 - dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )]; - //当前打开dialog的编辑器实例 - editor = dialog.editor; - - UE = parent.UE; - - domUtils = UE.dom.domUtils; - - utils = UE.utils; - - browser = UE.browser; - - ajax = UE.ajax; - - $G = function ( id ) { - return document.getElementById( id ) - }; - //focus元素 - $focus = function ( node ) { - setTimeout( function () { - if ( browser.ie ) { - var r = node.createTextRange(); - r.collapse( false ); - r.select(); - } else { - node.focus() - } - }, 0 ) - }; - utils.loadFile(document,{ - href:editor.options.themePath + editor.options.theme + "/dialogbase.css?cache="+Math.random(), - tag:"link", - type:"text/css", - rel:"stylesheet" - }); - lang = editor.getLang(dialog.className.split( "-" )[2]); - if(lang){ - domUtils.on(window,'load',function () { - - var langImgPath = editor.options.langPath + editor.options.lang + "/images/"; - //针对静态资源 - for ( var i in lang["static"] ) { - var dom = $G( i ); - if(!dom) continue; - var tagName = dom.tagName, - content = lang["static"][i]; - if(content.src){ - //clone - content = utils.extend({},content,false); - content.src = langImgPath + content.src; - } - if(content.style){ - content = utils.extend({},content,false); - content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath) - } - switch ( tagName.toLowerCase() ) { - case "var": - dom.parentNode.replaceChild( document.createTextNode( content ), dom ); - break; - case "select": - var ops = dom.options; - for ( var j = 0, oj; oj = ops[j]; ) { - oj.innerHTML = content.options[j++]; - } - for ( var p in content ) { - p != "options" && dom.setAttribute( p, content[p] ); - } - break; - default : - domUtils.setAttributes( dom, content); - } - } - } ); - } - - -})(); - diff --git a/public/static/UEditor/dialogs/link/link.html b/public/static/UEditor/dialogs/link/link.html deleted file mode 100644 index 55ab4d1..0000000 --- a/public/static/UEditor/dialogs/link/link.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - - diff --git a/public/static/UEditor/dialogs/map/map.html b/public/static/UEditor/dialogs/map/map.html deleted file mode 100644 index e763b8e..0000000 --- a/public/static/UEditor/dialogs/map/map.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - -
    - - - - - - - - - -
    ::
    -
    - -
    - - - - - diff --git a/public/static/UEditor/dialogs/map/show.html b/public/static/UEditor/dialogs/map/show.html deleted file mode 100644 index 329cfeb..0000000 --- a/public/static/UEditor/dialogs/map/show.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - 百度地图API自定义地图 - - - - - - - -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/music/music.css b/public/static/UEditor/dialogs/music/music.css deleted file mode 100644 index 8fb7a94..0000000 --- a/public/static/UEditor/dialogs/music/music.css +++ /dev/null @@ -1,30 +0,0 @@ -.wrapper{margin: 5px 10px;} - -.searchBar{height:30px;padding:7px 0 3px;text-align:center;} -.searchBtn{font-size:13px;height:24px;} - -.resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;} - -.listPanel{overflow: hidden;} -.panelon{display:block;} -.paneloff{display:none} - -.page{width:220px;margin:20px auto;overflow: hidden;} -.pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center} -.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff; - border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;} - -.m-box{width:460px;} -.m-m{float: left;line-height: 20px;height: 20px;} -.m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;} -.m-l{float:left;width:40px; } -.m-t{float:left;width:140px;} -.m-s{float:left;width:110px;} -.m-z{float:left;width:100px;} -.m-try-t{float: left;width: 60px;;} - -.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;} -.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;} - -.loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat} -.empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;} \ No newline at end of file diff --git a/public/static/UEditor/dialogs/music/music.html b/public/static/UEditor/dialogs/music/music.html deleted file mode 100644 index e7ef04f..0000000 --- a/public/static/UEditor/dialogs/music/music.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - 插入音乐 - - - - -
    - -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/music/music.js b/public/static/UEditor/dialogs/music/music.js deleted file mode 100644 index 1c538bf..0000000 --- a/public/static/UEditor/dialogs/music/music.js +++ /dev/null @@ -1,192 +0,0 @@ -function Music() { - this.init(); -} -(function () { - var pages = [], - panels = [], - selectedItem = null; - Music.prototype = { - total:70, - pageSize:10, - dataUrl:"http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common", - playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf", - - init:function () { - var me = this; - domUtils.on($G("J_searchName"), "keyup", function (event) { - var e = window.event || event; - if (e.keyCode == 13) { - me.dosearch(); - } - }); - domUtils.on($G("J_searchBtn"), "click", function () { - me.dosearch(); - }); - }, - callback:function (data) { - var me = this; - me.data = data.song_list; - setTimeout(function () { - $G('J_resultBar').innerHTML = me._renderTemplate(data.song_list); - }, 300); - }, - dosearch:function () { - var me = this; - selectedItem = null; - var key = $G('J_searchName').value; - if (utils.trim(key) == "")return false; - key = encodeURIComponent(key); - me._sent(key); - }, - doselect:function (i) { - var me = this; - if (typeof i == 'object') { - selectedItem = i; - } else if (typeof i == 'number') { - selectedItem = me.data[i]; - } - }, - onpageclick:function (id) { - var me = this; - for (var i = 0; i < pages.length; i++) { - $G(pages[i]).className = 'pageoff'; - $G(panels[i]).className = 'paneloff'; - } - $G('page' + id).className = 'pageon'; - $G('panel' + id).className = 'panelon'; - }, - listenTest:function (elem) { - var me = this, - view = $G('J_preview'), - is_play_action = (elem.className == 'm-try'), - old_trying = me._getTryingElem(); - - if (old_trying) { - old_trying.className = 'm-try'; - view.innerHTML = ''; - } - if (is_play_action) { - elem.className = 'm-trying'; - view.innerHTML = me._buildMusicHtml(me._getUrl(true)); - } - }, - _sent:function (param) { - var me = this; - $G('J_resultBar').innerHTML = '
    '; - - utils.loadFile(document, { - src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(), - tag:"script", - type:"text/javascript", - defer:"defer" - }); - }, - _removeHtml:function (str) { - var reg = /<\s*\/?\s*[^>]*\s*>/gi; - return str.replace(reg, ""); - }, - _getUrl:function (isTryListen) { - var me = this; - var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist=' - + encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra=' - + encodeURIComponent(me._removeHtml(selectedItem.album_title)) - + '&autoPlay='+isTryListen+'' + '&loop=true'; - return me.playerUrl + "?" + param; - }, - _getTryingElem:function () { - var s = $G('J_listPanel').getElementsByTagName('span'); - - for (var i = 0; i < s.length; i++) { - if (s[i].className == 'm-trying') - return s[i]; - } - return null; - }, - _buildMusicHtml:function (playerUrl) { - var html = ' 12) - return s.substring(0, 5) + '...'; - if (!s) s = " "; - return s; - }, - _rebuildData:function (data) { - var me = this, - newData = [], - d = me.pageSize, - itembox; - for (var i = 0; i < data.length; i++) { - if ((i + d) % d == 0) { - itembox = []; - newData.push(itembox) - } - itembox.push(data[i]); - } - return newData; - }, - _renderTemplate:function (data) { - var me = this; - if (data.length == 0)return '
    ' + lang.emptyTxt + '
    '; - data = me._rebuildData(data); - var s = [], p = [], t = []; - s.push('
    '); - p.push('
    '); - for (var i = 0, tmpList; tmpList = data[i++];) { - panels.push('panel' + i); - pages.push('page' + i); - if (i == 1) { - s.push('
    '); - if (data.length != 1) { - t.push('
    ' + (i ) + '
    '); - } - } else { - s.push('
    '); - t.push('
    ' + (i ) + '
    '); - } - s.push('
    '); - s.push('
    ' + lang.chapter + '' + lang.singer - + '' + lang.special + '' + lang.listenTest + '
    '); - for (var j = 0, tmpObj; tmpObj = tmpList[j++];) { - s.push(''); - } - s.push('
    '); - s.push('
    '); - } - t.reverse(); - p.push(t.join('')); - s.push('
    '); - p.push('
    '); - return s.join('') + p.join(''); - }, - exec:function () { - var me = this; - if (selectedItem == null) return; - $G('J_preview').innerHTML = ""; - editor.execCommand('music', { - url:me._getUrl(false), - width:400, - height:95 - }); - } - }; -})(); - - - diff --git a/public/static/UEditor/dialogs/preview/preview.html b/public/static/UEditor/dialogs/preview/preview.html deleted file mode 100644 index f6b433b..0000000 --- a/public/static/UEditor/dialogs/preview/preview.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - -
    - -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/scrawl/images/addimg.png b/public/static/UEditor/dialogs/scrawl/images/addimg.png deleted file mode 100644 index 03a87135bab65fa2633156789ed0f4a906d6c48b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)LlfO?CQ4q&JZ};uuDR(Ob))OTXC`@eBz!@zF z+HgV%Hu^952Y4l=g(2n$i9ae63lhXcqYyM9#DWA|@b(rsk9+f;1wl+yj4;&{^Z8EZ zJ2T2T$4NrJSzdPEvg}xJM?R0MBtb zF(d!&V7bvXOyyt%V+_VxCMVl|G4K0L2`GSu4nDMoTw7VvC?4}634OnCk@;@JLnc3FEH3Q_>)m5edixGKIt7FkHcF4 O0000LlRapYQ51%sn|z5A!;eU>8r+{HJr7$}yPjp=Xw4K1Ua#f7iuXvM4a5!@5mnb6Jy5;4f zq^GClVK^)=CMV^$zAd#p)X9w(bjvTJaV6W6Y< zHElN4Fd9h58CQpMwnbCF0&&|nt--a91jfSjz&XY;RG1F=2?rH8AKl0($O&qx#;_=`eAIGPkrEiZ*t@m5rL2F^2%$?h~iba07-RvG6!+$Z#-hF)* z*wUa-u1NavBOIv|-+OxK963tx@)g|sy&J-7BIJt|`BL~qAQEA|QlZmXAv_UdV92*A z3}9Ln#}*y)LEQe`d0jImLzJL!8vd uXg6z^rfGozG)+U(G#m~GPN$P@*OZ@vE+GjWfY&Ji0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUzf=NU{R5(w?lReA9Q5c8MckvC3CRr4rWH3k}lHF)Du^B`%h=dG6 zguL4*gWaS^NGOSZ`kg^f{XGLc^_;r8yYF+Z`@GZ<;@`(&vA|?9`3kyXJRalQL01fi zLp&Z2WV6|iphH*mdOh6lcNB}ox0FgHl*{E8%(<2hUD0m0al73R4u_FWr%|m|U({+f zG#U+byIr{(BXid2&=t*Q6W8k%I-L%By=@ zm&*kzl?rOL8d|Lu!C(;4XcW0z4*h-~yWI|l!$HRBbc(@XARW4*QmNo{I>BPGNUT;X zoK7cPE*HFBFG8UZX0sXA>ow-{IbyLG;_u=hIe}(G|5Z=0000LlRs}0K@i1%ySKhz{O1fJ$i!Hn&_fERK@ibd zbP=ieOf+<);v-NHQBXy)C?X|I5W=L1LJA~<17{zJ<9KG5!k{1wk%*@njpn`4doyD~ z2uu@pDm37>c6P$IEISwYQmKSH==W(ZE}o0v_2wonsNzFl`^D^kf$u!}LQutt_h<;j zar~DygE3(2IEO&+5CUiji1#=ZK||o}yDIhi33JuKDcl%rWQp=QqMSoVf(}M_9S>Cz zoT{SUv$l2tmn+e19`WG*;h4Z$Tz-aRexA6TaMJJ5+ucP5L)3dz6(_2Uyk~!Jk0eQW z^|DCs>qV~3L9K47-Y79!zJ;+$TrLymKV!r*@*Yt=mC$IUKuQ!vbUH=4-H3MEa`k$j zhnMqIZzgp1JzK3F1=nNY_D=~Sf_Tr$%FJ)(9slx>D9Y%(@ACbV<1iJj6ctqv?-3E) zNCY1O8yiQHJFtexf@?2R{@BJ?i!}ygEd8hVIIh)jS(Xvyay))=@XwvUSz2QG?!rX< zd8>shILEWq)iaM~SSaveeSM-{Y&0;#;gB>(^b diff --git a/public/static/UEditor/dialogs/scrawl/images/empty.png b/public/static/UEditor/dialogs/scrawl/images/empty.png deleted file mode 100644 index 0375196257ac3c859373b3ebebbabe6f16105587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)Ll09-0Q4oZ`x4R&OpbGFo(29U6rOK6a3v&a7 z_DM+WM6pqhRKi!#4G@N6DKtGpus^URVFFJ&)8BN@dnqD#NM-jmudlA&{11>?2dmYJ zq9_;)28>1{cDr5ttSY|V-7%R=l6xQ-X2x_n?EuB!wC#2qd7hIOIeC_oWf>_YHk(bz zMaX$Q9;cHIE-o(@kBWl9lL2S1&UiW;@}sKQ@Am+B1TJ9`@6XQ{M-IY$At_veyCZkh z2#A0HNw}-$pgZDtT-F2Ob2F>OW^-Ac+hlWdQI_N05jzL&!X;$ZZFh;o!GLIH95bB; zNW$DPvl`UcHyv6%9(DgT!0PRm7pMi8VTV70h}zld2%+{!9YE@DjHv&@KO#8t7UG=) zNe~cC4#|6f?iJh}mm_H@6X8y{FD13$rOa5b*F8Xr2vSNfffuvc>}^?=9}+-HBod@% zcfjrE+jln~Z$1J0i1=~@0GiDNLcJQPqF|2002ov JPDHLkV1nZ!(%Jw3 diff --git a/public/static/UEditor/dialogs/scrawl/images/emptyH.png b/public/static/UEditor/dialogs/scrawl/images/emptyH.png deleted file mode 100644 index 838ca723119499465f29e881a745f4d8a051e22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cMyUXw5Z8P6?!9~W&Mteod+EB17cYi1ZuhR-c=YJe)QJao zoqKZj)+^_N)hDk%kM7vxU%SOIZ)HU5u5H`4rB6P*;n@A6IVa_d+Vkc6Z`Cb3f9%S$swHPL zrX0?laV)ZJmtD^C)Jcaf-hX@G%JYPteGa)RpT7ON{^-5+yDx<|?_9t8V%D^yUKQ)t z9lf{e;O)TrtuBRYf*Q8PcI>guUcUO!os-vJoWJvW)22-q?!7sF_4&EmuM_+BN4D;= z&slDtz2el37q(f;)*ZQN z=N^Z=m4&lU_*8HD|Np=0=2?Njpo}XC@(TuXX$KfKp3qYR+O*iy#WAGfR#Jy6Gf%)R z4qpdHXJJo=hVYQC!~KV2MYI-VrJh`QUQ;LM&1;6x#M9b~#Ma7WK4-jqNPV%W#5&yr zqHMw)6OH>XB&SZ@(#H8io2zq2%cn~1gDgj6o15p{xKW{#z;wrkO(^fonRSm08Z|^C z74@VuOY>$h1UKwir)j@Gk;A27;=wb==bbzq+_Gcd9- Y9E)+P-Fqc+HPE>Xp00i_>zopr0P;w4-2eap diff --git a/public/static/UEditor/dialogs/scrawl/images/eraser.png b/public/static/UEditor/dialogs/scrawl/images/eraser.png deleted file mode 100644 index 63e87cecb90ed3ac0e4acbc257c6dddae5311e09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43271 zcmbrm1B_?Ex9>YWZQHhO+qP}n_Ovx^+qP}<*Y>n+_nrBlo0q)g zl~l6#PCivTLP1U(777dM$B!Sdk`f|He_Moq6$0$<761O*@NWa+EF`G{@wfOunEd*C z59uJG>HOmd)Xl#NBvi$c_E*Gl5!G-}wl{NeH*_-nA!uT6WJ(}r>166|?_}*vAgs&+ z*07lO;|ExcgOi%NN7k_Rh7-0Zf^Bdcg~Tc&*^6T#ILYWUMIaS-pi>qVxhh>!r1Bx5 zqhbe9pb4}j8{`Q7zPMiqeBKBB2arRDxjoi+KX>4E<92dY_F9k3^^}YJEWZEe7x`n^ zGyB2*Pk$%9tb=PEx{tLX{riF`|KmSqjXHevsg9r!;_1H*vBxDv?@rWl@Uj&`xm;vm zvF4yVq`{kz-fcm9pKiKkg{ksakY+%CYbQAga~0@j@fVupwkTQ$*pvRgIpKqYFODmt zdh|~`cD$6GIEW>e$KQX00@zyRyWv0bma8|syctE;!qtR7@Se3OeB~@@4Zb!j_=a?% zRs_?f-dgCAY-1z={A%`QZk}!5QE(!xbv_`lhI8oezS8=f7pNf4 zKKPto?*W*6Nte)f2<{8?y;x~_Psc=Id*O_DOv(l59b3Z^akG5qg@91RS?kR#jSwFi zjm3d{x6l5ppMA)PT@!mwbH37Xip?s`#WYcAz?qyw&^ZlSQx_OihN?e6(+Z znbyVue#NvY8$qx<>ZSHx%yD*6vg%8x@Pxd*hB-HkDy8<%g6q3Ik=|hN4ZULic`*eK z>AKPS;!ak<8@*ti2R(7N0@&|-rg)Zblyk@RS0Xe!CxX~<^H02(!C~dm{HR^;uBU+u zmfwL>XX_YSsVACHZ}1fNHhECkOJeKSJ7H6h0LCwrQ<#joF!9nlft)qg5Om+SBZ#&+ zu+}f7DgSw})(%X6coUM9uuFRj-KK{p2htYcgI=fWYznQA)+iy2bb&%naIO26DB~znsxd!bA-NM-^`9f zLGJke7{`3;J$n=4q5bCLJ^RCH+>yP-;LOh4h(&C~*GH1M|D?q?!Owiy!dGrX_$pX# zV{vS3!=piAoy@Zb>W9K;UUL&C#3n;?AIm~}(SW9UvhZ8MJIaS%SZh!XY;LBX8B@J1 zckpjLo4TjLj{yA~!FSzLP+1r;>`{yNmP3O&(2L4NcD-E7U~tM4{;^&NEkSG?XRTP# z{w72b{3pTBRFsQa3sHimTdF@V%GY^o=Rlno)VIObfyVHVs+nX&8_NVD9-Ghc<+(9&lAOSyfj!tL-L+ua-?1%M;QvFx;(P`vL>&I_8&1O3 zT1f0|d*bVFALMWSzbceP%=tflaN*lpt0;S9UHZz}Y_7QR-|vkj+OEk#wF)3_7czU!MCRvp5_H*Bq5t8M^U_p+6)ns#t* zHny=Zy03e#%cr%vc|v^a%I;%fOT{zkmIr||iC7nj9$X3euIg;th9mXy4B-Z`gl%$b z_@dcyH2ES_%VZi}!rmS7ot*fU#GE8n;M$GN%cLF_HA(t>Li7So*4p{a0X~}~YA4BH z0DuADNZc5DJ|$~|WvjE=7BjsL$KB@z?eFg0rdTPMNk_Mt4?R88UuWkLqX(S&bTaQv z#yif&i)Y)S_HGh~dy;&?>Yf~I7{fw^Q_@~(xJU%8x=_|MpLfe-*g`U3lQA}SEFzYJ z!laJDguTExpJu*5+;Ao0q*Omo$tDNI)_{P$5op$N~ctVpb{$NNa)>_DUCA7bxM1w*fnG1uK*6bBUmh#1wmFRQ=Q$i^ifm87d(=$IGh;a6(ho!QK6JW2TT;x zXrPo?G}c_fE4DN_s;`bGID^2 z`#HC!XfP5P6Cnpp!}hTHPaw%k@xV^Q(6bUQ5}SSR+(~f7;;Y~&ezRthTAZPa*jlnR z)Uj8rG~}hB6YB%65MX%%s)-;@Q6u9Qo}D$kSRzQ3qc2!=ovUdm@~Ofcn9`_$yybsV zsIXU$D8XhhVVr6!@&@0&p*&tt@FI>0s5DIp<`bR2s#X&zL(Jd&2(!~lIWiKUsqiR@8)H0EWK%nY~pOak(dxMaw%Aj4`5l5az}PFVEB9 zC=$H#NRLCm#D&xHLuaQL0?aro)(cB3ZEG6CG*+BNJHYH1yh%W3@1T4oZ7@3DNlbuM z6{JiMh?OD_4D>gg7XBQB`q79ZA;cWb>22DkT}**SDTPrJf{-E~eI%D?LaZKPG{Ynm zM+GH^ng(8yNFoc6s<{Ny7E78FmKRc5zfLK9i8W+-eJCjw!~8<<5(hX1?pZiGH)As6 zGm*Ybd6-8uc0J`Y81SskQ0eMoKUAqeT*Ozk#KuJ?F|PUiFb}a-IfteaozWzZ)h_|I{|29U^j zSLb|nWeL!|8?O2H`E zfMR$}=@W3Xy8c~hN2oIVJ>XU64LxCLZfH=-D_IS%khL$m3j}bbxsoFJqWaTp zYjQHf;6CPU79TkS9)$A^rie|ms6lC}1mGId3n6fQeZHmL*@r5aR5fej-FQYkiDXkX zN!hKEb0f13+o}bP$raS`Ui2QG&h5BW+BAdQv)cxoW!m#OF(iVOlJvmBL(_!WO zvMWE`RYE9qWX8Z=C(=d-O1G^8Fd~^GjnE?uD8#q0Z-mVFwa)=w{e0=l02JXmOjR5kH^ z!QK|bq!>xxgMkpu)iG!mdR!X={~`tJA!CJJa#6WIu?^!`MEEIl5lYbdo7NBA>XPh{ z^M3bG`&PH%1BChh;A&7YM9-`zUvE4o{(zt|?pVR!FOiu89R@>@hAD@gVdm9lKLE0w z5h{(=WzyFyx+8u<#q|O$_=3*N&!#KxlyjRA?hUN9ye3+LiJx@ADz!=i3X_pbi<5*g z74djbXHeA`s9@x(i-7iyu#z1jGYignhM16}BO_nLkv4;T#`2;T%+)ZvuG!O3;;^pu}SzMO#jzv z8(k>ig0zNmg*4eMf(2VJ&Mxt5wI7%QY>FT|B&YO-2jh(`bKnR3b_yPH^CQ0c{Cb;o zz>a1i_zuwyJJ$_J3YzawWb}8}9M!P?a8B>f^Q%Fw*N;&}D7*oE&~L51NYK<|6I=tk zXO!C9RPEG!boJt!3?rw-vdtzXJI}+Gslyf0vDHH>Li@Y;q-`ex;(0c2%oa*A#VDyI zD$)$`0_lETFXjWqD9L>B49vxJt|_8&qyigNop}tm1{ut0kb-k@GXxh@CaE3`MQX$W&3#RW;~B_RWeN1v&fW!m{(Jd z`B)(8eHg37!&$y(V+hn0k+lz5diZU#JiH-ub+Cz+U5HCrNwyTMuDGAs8w`zvtsQLXCRW5q&T%`&h9in#lD?U>e}zNJPi zE%kizveaE5YL9r=i(b#wtQ4glIkyf(o+%hY)#*VRXa5F_rxj8~7L7IQNw3Bq6U}Pv zWs+p#-*z|eSeBh?%5JJJc&1p4&Rd_FltZp12ur9CW6oL4Qf#Ay$V8Jj{zk2$L77XE zX0Y_XU2zRT=OdaXuXueqa(*v$*r=XCnkb=SMLFY`uT`aY{GM3ZngI0WrZ$~PVyL^JAJVO zPQX@fGm*jpCVM)hO424i+N)Vn70qZmt7-ZR!X|TULkN``;H>CClB%TgCbh`uQ%e7w z8j{Kk!*L6@e6=r-pAaH%rMU`dO~>6|&B}pPA=tc%2`Xpm(}hQKgqM%Ci%E>F5Ux@! zvT)`-a_A(aoQ%-{xf6+AbBCVjwR77l2Ns~6?OvR$9QWR4RYyBKZllcTq6N`MBPw)*bxoO(ri#s>>u6oK;SV;_sg}j; z`9jCxzHfe>owfUh7S%jj8^uNktCz> z%!tky6&o5|9s}D*&H*2nxzc-21<#_QCj13ITL3{1nINR-Gnm}hOxtbWm{DAU+FL;+dfuHI>X`4?En zNz!Zm3JRXTW)wC~%{qk?jN?PRpcK4?&^$?_fwl(Vt@(v-XB|!+&ctP3e;w{nC?4;g z40DL5M(Z#+jgQr`5L1&9&+-zxk2eq83Qmv`{~NfgoEj4wA9J1^!!K;&CmZ$A_~%PX z+`AB6l^o5}8r_9rZX!v`*?xGKn51thw<0ZrP! zgjD}eZrH?s#rxSYQ&OG(%uW}rqc$+j|4;pw=SK&FlO`m4?>{v;OULQ%e01EDbo0aM zulk=HYLT)36JX?DfPWdm+58KT5tDfcL6C{yhl9=R7Eyoe$>I9(tL~Q>fHeC9cI?&) zor!3nIRt+gjJ>xWXH9!5k3mZ%(C^hdrcwgdUK(GO%VJ;<$l?Rz{} z-uZmRwM4tn{Rhu4o5zmRjA2VzG+l4u3OR|zm+0XSt97Qurn=;#?up4jbxXonQ_}&@ zPpM>X;ZyY#zhVjIg^!7s7Srf&CeLL1o!8-9-=~M0%x?~G;z3J6^2Ks#~(A7l-J%dNPeK7IaCRiC+>?uE2#0X*9)$c$@z zrE8OM51mlW50-h-j5BL^8(rdF!C-Kc_cA)Y6fjI?@l=wir0dK>3sgI7@969UPY0&A zx|`wI9xgCn101Rs28A-BM;DkQ$>%`Ga=2gid$hHW9d%Lkd`l&n4WWgEWET>LOA zJkadMi-VeN@z)2-fSm7disn*RB5zV6Zw-C|@q~oizMp`3Wn6;F+ni(9!(0X}O@y>) zJesSIt?SR2hrR2syW8F*wISgH7NZ0j!j{yYLcbXsMHMeO0^UoUg-)p^fPd-a4#3%d+5WSJpbjVr68Oy`A607cEeeq1dUJ$EyF}_ z{K83~TkDr9Y1*3u!3hL+xUp}hvoV&D*UY0{pHGt3Ei3S^{jN3I8w}TmZBZ9Xo?3(@ zs-K6;(PQ*U+qi`6Ypd#KzI=IVxOxpBag>zg=Wc%{9@oNN+fhY9(FB{OIS`JXk)MnXq&BCK@j5X)X+1@D;z& z##0y;auenCf`2d34m$0P>U&IbwD@GJdsu%_C0lwh>f`zwzqpa^v;Hz=m(#W*iw&T` z8q9UAVsWm&Lv8p%aUP{M^vh8;Q~PPQB5g*O-fnUPh)&=6D*Qh6gTMHgxW7|6L0zSW z875cG`GaL}SZ18EJaSPP%G~8j2M?W4hMEpKl5Sn4>;lr*_jSQ85*Iw==tSu_qxxG_ zk3j1Y=6FzWR1aizlp2DpD1FE8dHMG1fcrcvi$1}4V39Lhpn+ZEYQlK8yj)AH{vhu)3Y4u5s;XbDt%0LJ+ur_z~GkYf@k3$YldKH{&^gw-d zDsJb%$Tl<@$pO(E{rEzRd5Xyho|vX`hnaBN|7GWszUS*TwReQ@%Z))=<`(ZW2R|CM zVMg?81$bv+RvZ1Emi)K<>z@5bKYvXBbHzhF$ZWcgRGoqK5zVBMdGmSvJX26~aioW^ zt~dU16=ADs-tuYEiXbPkQ5Oj;Y1L?R%I;v0X1+cYi6mvSbx)K96tQ%?! zb{a67wCy@2c+m`|TuhRR*y0GF2561WtD81+U z-J1BbQYm>aEnL=a6PhX=y%R$f%N&sM_{h22_7f7+yyp+mr8R z&J6P@g(y0wrr=ezfp2ulK-Qwm=d*U}8X4o&j7aG=vdJr29$ljuz^L{U zAB<1Me5o@B-A;k_D;I z_4-z#ife;{ka-0#z8&rX524$Lqyi+DbZ(aqU^yEGo}%F!eYcTk+Ad85D4janl%sup z)J|#pe=Huz0&R4s1}%$vXj+b*ss%`G)rHpGdua9oV#=Mp0leVP8L+7G)r4H8yhjOg;TVNHG zl%JH`Kfn8b*4PaZU2NK(&sxd7lt0OsdD> z*7ng~7gAr_JQbr>o6zU#vsH4RmfRIV_HTh0;XUOhG)AcVy3oPZ$fgIsu046~8tCOl?81d_l$>_84LyT@Lu%mn924K>kfzyeDmCRbIHU zExN|}o}c#u_Thaw5xM#-Gc0R_P)kQG>ZA~Vk>ema37#fXYAfrwg}a3c4)Dar;6mW(nOIIiQ=$SGL>3YUuj^E0x0di%9(-@h8U?6XuW&g0;-Qi zFWYMF;8h;LHz?}`qA)o5>bdtjtnu}xlM(aiwu1KwkQ*9Bx~2Ty4sCH$U_aNd2okyH+F=`EC)bbgSY+3m zWJUa@H^a7805WZ9+3#c@R+%r>jp0zuYlSSUB85P~56m|8dD|QIdoAx9tKWL)@ZwJ) zX1x&=ZQJYQ;PGAAwx2cti~?>u5IeOC|e;!Y1`SjbOI+sNzbs&hQzZ zcyK+?CZfofFw)lh(E$(Bd zt?n5fGPRBMz%DPBr}__&tQ6ZTY*2-b%O$WjPud)U90o~iSYWqo-tm3!8b;Ozucq0& zdb_?yVHRm0KL^DZjj$4aoL09kmjrdn7p>}b%TruEfzhm<7w|QgtND8#Z!F4V>2=1$ z+hn%cdBeKf+T{xX))|@rdkogChOb`OvDcpNtz)d)#n_&D7dTAZqnZ9Mvsa3TFis`R zHn#R4&`<8#FH11%BDwj2!HS0etR4+Fs-;ROvAi`BcXso!mCrJ-3nW|JY2d)tCDVK` zX3O{FZsf|>M&?eMS;9NFW$6OrCGKLL1g=jEdA5DN3%1fEeU&2hV?88)tqYoboi%~T zT~2!hvenP8x&8(!2M&Is-veo!&T?2fpO-OXwev_&RCfSXXdYSGdFORy(Hu_oIM zsZ5|-Q=E$l3TqaIDdqpiio=xt+GCeY8f^qaCK=NmXF>vb=oD($6j(>l?2QtX2`s1*gRR7J+O?hfR&NZ0ULPfpFXi17&d_MYL>D;UD~60 z+}!di1a%ef$Ld5OKQo>-Uokskws;x#*QF>*?i|(!sFsMbuq8*i^Mv5pZ-+C(fzvhV zs3f;N4q7k{+`WgdhboN-sqYi~ov5-e5s(7b8s3sbb2+Xz*jOoq8QbLt{ z2vrK9Wara)GU=FZ56WyYQmh#j3K>+WBvHc#3YmF>KUBe%$uRlGSwwsznLqIy8S!O+ zedy-Jf5je<$d*Z-YPuHBI4Hea2I7Z#hzj%PM-?fRsX!&ma3?kX|Z z5klVuc%}!Y$21B+3o&4M<*Y^gH)wNaZN7B&?Z3$8{>R@PRe1kDV6*5x$1vmpN>t+X zos)()V$kKAu6W3ya?G(FFG?z0-+ZiOWA{Kj7|Jik7o6LqLdEoE z9}O73s6c5GWqHPiAC;WhX-O}Uz9JKtE4QEP!7t%|&Na0dCUfwFZV-YyAV!$O9hYZn zGq@%XwPB2H^W;Ge%c^Z(JU=%j=tP`jJQYOvO>HQ`G>%tP!ZEdR0OvMAheC=MNH;2@ z`Rk+HR8c@?27-Edjo7U9yjc;A#iO1GgB;eIb2CSK5#nsI7IPh6p$DN_;e%)a=bb41 z2GNU(^1{%KotTAFx4+Dw=Po`1(0)<-@GN6Fr!lI`K$Mk4{`e2mT*?br5IhIQ+MC$q zpaTKQAmznN+Nf4UIY$wVMiZi#I2KhbrC6A!4nZ{2w6xV`ibYKsB}pKW6F=GIn2A^sPS=ksyj6kjg;7iPM2%IYLcdbU0N4KND8cDGZ8E^iQZD+^uFeBz0 z&Vf_o0QHi2un$GG=O5{4h3QB$7okQam!1%{NhgQIn{Fd{Uq4;7ZNR1xul?SuzmGzm zvlas;78hfBY&Is=#2Cq6o5A|fLLR2$R`J90bfLFuD7Yoero}2m$RiVTA>Jtt0Ow%j zg+|^O`@9dYR&plt=o!4(L|qyZsCj^}-W`0F8Cs6TZ%CPgpE3yU-;)~GT0;|6GJP6U z<79W}8{j!}ime|Ep{2}W1+$1DvT9T!&NQ?Fc)SDYcYLLK%*(L9?29vG(=~1?WXKw0 zF<+@hirnUK%$P;kcy)fYrLSA{SNxJG314#p>@Voc)IRzR#h()mv$@n0P}#^e43LpZ zVo!f6UpGX_#ap_i_!3MdXR(*_lPqC8$2XO`)vO)>@>rT-j`SH zV5jt(v2Qi=fiFS?^*LdflOm=ipvp|yq<*`=oN`7J7wg2f=n1*Tz)g?ntP(J52qp;&dIweH*)f9)v!h#IOT<)h}H zpIW@=zIpFQllWhrOngcij!U~O)q0X)5$(KKJ)j|()aWf$cJFxd_VyAjZZOjx4Nk$i zFWzhM0R5Q!t5e>W^d-ozj8NGea#|h$P?joQV|Xkb*LwM|1S)V~B*Z?XHpYX_^{NFj zqL?6w&?N~gCmUF*iO8Pig04EFAy#KE`xN9pERDt@PF<8IbWHGN`b8X`#3zQ250O&w zKZcscaVEjo1^uwR2>BH%X|Y&}xXn&C#e_quX#0`r(?pLvJ(_XbaD_~rv45d8?i3g^ z(<|m3AC+N;YlN3zdI=FT>f2dme_3{;O$)aR`J#>rZ0f|*uBazG?%8`_o91DdhcOeN_&NnHLoJ&V z8}0ZAT}ifCOXqDm4Hi-}W*lN>Sa`=nX7S3wkd3ktU^eQx?b+sPwQjz!yWl^6_vXUnP zI&;Wy6!*mmnj{3_AD#LGRTArD{0mf_^Xez0!_sItcPM_$k6Rfq+@Y#?-M>$vT^4S- zo8A}T?!hkaHW4mxbf;%V@ayLF>BhZH-i~tA*nNxeRoGsHdPiNT+BIn%)F1G1#6iLK3D?*+GK6=& zF?>g$U!M7@k-d?;{-7&c;jVYDafK*6A-zyv%>$^=bkyTqeVbR5di?aQbMFkC?V$ja zq)f3tCCN^c#I2@et#sZsc)rZqDqfR;(IOicrmH1sBD7SBmA@_UBIrPg5f_3DxCR{~ zu%&R{&YzT4P?NIcNJ~=_shQ9|-EDF5m4|NjM+!VLyJ0r6qI6M+TIcK(GcMjVyuC^rIo=>=s!4B}E}jA{lLDJ1 zTrC)oFsbbeNzmxLzpNZ5aHpkkvkg}0T z?J`FsH+5S3e+DLfhzBA09M3q?wr-ch^n2OOeCy??XcnPul_3e&ttt}qwGLD9UYCOl zy|%%~>Y~a{W8yP%6018rGRJ+hHVT}Zh)tJ6u#{5&^kA(Zc>M6mGqc39D139s;3-ei z3CKYI`9cQn0HNiti8O>C%{8B@Iw{rh6)3GHuDeNEc8v{SFrxlD%P*1`aIF%{UPq?lKK%@#rlyP_Gh&LNmsL)1Ycv% zdnoGq&-qu??|s*X!O$OCWG zTC7=3)kCipOAwj=(!FFM9djr_-M|2zQO!ydXB;NNoBi0|c2OYgqOig@Yf&nw}kAb+An-f+PdO=%BVtlXkg|}JfSF>7(Ww+6pQy>+R zSMX6j%t~r02U8ghGCmMjnBtm3sFl{P3%4Ywi>fcuO7(ulwU5alsP{XxWNP(+!2UuA z0@c=F=i=4bk2{RvxC&He$GH)hOcG&!`dekjk<~yJT*p zdJR4LB6sfH%RJa&dQaZ4!*2rX15#!ZLm>2g=2SOyRN!TOi+Olic5zjG+s*yGFV7|Z z8xVX|!vmKY7v&geYS=IIJ-)%--B+G^m^gm6o%(z(GSxmeTssvidr!Ce;V`XN2e>^i zZ(HPt6+^sTVb?%DzxD#Y{c?pjuRZI+(bf*A_;%0QA2=MnzhDZ(jUyDjq4n9OiOq?Q z7*ty8J#Is~NsoTKZt$lLT#8;tMUMH2fZEi8p0eMvPCkg9&fn7=#JuO$mmxQqB5e34 zT+oMqv5fzz@jx~Xe;{tl=l_BLFeXF5W0SW@(MI!U)qn2Rntn)^R<^D5q00SjDYm9ry_^3WA zNyPokhP8|zi3uH!2fO`L;LKv1XU@CLkF~Nzhulc3QW%{%va;zPosxv@c(@Oj;UuPG$$q;rzE8AN7Iy( zlBfQIb=1@2UgP7=ljG3QNqd;-hj0JzV4KN-dPaU!MBtVt-waQva!mNz!tDpB#T(Gxg>E1^9<3U5yU@1z2nQ8{l6?fWVl) zu9}UGNjN|z$OCc4#v^o$Y<%#gvG|B+^A{aONxeXvdY3|CA{{9=g{!+q>?y?FQJ5%V zQB-sE{I%mHSF*Fo;Q|uTOBhl)(>z2;0e`w?7EE{ z)#C-$_7cmGmRPyCl|gw5N4kI4L=sbT{L)%3^WPHaV~c(L!4>Zt0}!WG z6Clr}-ta<-ny3rAQ`Al|pj9$dyDRP(s;G?T%C$U?hKu#|ThHhD_f%PP6zD|n8vM?p zN2_%BP#H0D)P29b+VLwK-LJRlaKpV^MaCgT)J@_G=uI2>eJPaI8f?uRjFksN8xeh#plTPLr&M$v|a5b!cblE?(sD(b9D^{<(70a!KE9;(N4n_~&eAo;tAy;g*JPxV& zsY%YHR>TDU9Q=@ii3v|*m&>aH*o1ZazAN?vS&SO`XVQG|aCYx|cW(mU$Cf_dm-|Ab zheehcO(N;g(}MfbY&vbE)GTCCX|}MJdc@P)HIi?D1b!Y(t~d5g%2SNowN2ZOUNAbs zR%r~oR*4#w3#HF3N8C{wPP_l!Xb5_n?jd6>!F_H)7Tr}@()^Y5)wkbmTxio9Swzb& z7C(s_#D1zW53vPB^d^a$H{B}Rr;zw$2?qQ4eWuJZ)dnYJfq1;O6FS?jx)F3Uz~_)$5goWC1J-Y?80d&tNcld{}o3%eWimG9CMYbZZy zCW9J5@Wl67BW8xKNx87&!u-X|4w!W`TX<7Kd84n0&vuB`ki_1U@5Zg;6FW>b=ssSc z?J-AFYVV=!r}c}OVCj!45A0!fYDBug>MuqtC#Q!H<3){M8e@~q=+t_IR&tH5JV>Wz zohPQG`lh_br%0Jor#>GD(__wYDv-Lgo^q{(bdWYt}m`pV407v7vPBpBj`8GR* zwa)x8Bt&W^YV6~1j&Y5QH9%X<{R}&CjOUP}Bb{lFY?y!+sm$5);W$~1`tj}o+8@Gl zzj58ewe9a?o}F}0>LlaARf;U}1U9+#CV!@5xZ<9i^@=$qFcotdN})oWn+J*}Cdy{% znk5glu?=Om-KYvALqUA=h}_wG&y9#OI&KL0E^zGeahCRa>#b8&9k2M4ZvSFGYs(@` zQ|!Vp#PrddtmqZ~yYqV(!2f**;27G0GmD_yF5J2Q`+>L8KDOhvtNrGAZq)N9$XIiyzuboeCyB7?N)PIUm|4DieN-a<=h?=jr+PdIBCd zCd~_Nv;1Jv9oPEam! z4e{IxENpi_+okByEqS}NRwlz)`fT(e+e7+a-Fb8|Vn$6@ym%3+=GderBX3-5?+DjG z`POPdRDG6CTeJ@uV%;7A>BGk!xtEe7?<#j%RKBsa%LBRJ$)4wN{$5>_2A$7JbsZ4& z)R!+r@U2M3OVWo{u_RvC6|*Ik7@gJ8DYuX)Ge1UzwcUnwwzC$lXg0Z z2fq%B>ZWg(9b6vh6J?&@&pQ<<^Y(DLy(bKJcw7;$*R%Qq)R#ZLE`PG8dzuQ8FaF$5 znz@p1spPN_wq*)T4Sq2@vE5e0%?$T9Q#v#7Z}7q6Oii|$>?Q_EgXPeJ<&5y^5`p=J z8$5s%rU30he{X{sfO-`fSEA))-V0-Q~DuH7+on3~)PBx}qP;xuh^Q zt@+sSs+dY%6Q)GynRJJHFe&+)#~!}Zsl|2~Xo+8=`w8}(!w{C0>6$yidvh~13S4e? zO)sy^NpVrAW}H^-;RtdpS{ii6h28(Sk@Psm*bDFtmH_Q)tW%+jqdL`- zN>_;>sn94_8jeJLVVOg($P>+y!j*yw2!g)^fW14f;y!f9$0Oq#y3{Rv zem(Cvu;Kf$|9LY^Gj?Qfb6|`NYL^0kzF};gt1K&6nY^eGOMWGAZ2&tPDoE>%(aXi1 zK)g|0GAT-orT#dtdYTD~X@2UTbJZPO#syf<>tlW0V`U43r7~{7%cnFW*mBni_){#fa4K!c^RB9gw?QmhjqlIZQbHf z-yR`b81v3%XWZB_$fjk#cWnpHZpCV`I2_9DlD|f{v94DL=qv7aT~Aw0+j#J3TGP5r z;&sc@ZvbqnS`;pb4VH+axBMlBbPrmF(KR)e|Nkkj;GQ( zfp%9P_1B$geFpxlnBTC^{wCOd^EOaxNN(EW~kP(J_M>y`lvW0N=N;! zgJ{&aZP(Kr>MJX)U#y!WVkF@X;%PJM2ElMtp7_o-IWg4oSWjnl*If+0V^+{u@YCyJ zMAu#48o|Tg$7~4lF5!sUfwMOlHtMQuuLKv1WH&?(0aLcCw!YILQETn?1GOy?y=>lP z3Yol8zOpPR3=I5(Xi+EKpJ;ZSy)mEHuD1>*@)l2-Ws&FAzD_^JH`Z2W!w!RYFAWbC z#PVaNSc`1?pG0h_@YqDq&bh7Up41#k9=V?L)~@$(f0R+%&^#yMJ zFPupKSo&)p?>9+eCpc1MfqG{TY+0jD_KZx1vsGLfP7RCR38XQntX@*!Pf(21Q5vfWEN)zcdv=Fgj14I!-N>oIY-a7b~(;&pGSe`ws8kyWT(SwHNFp-#z8CzcYJgCo=<)5LDtjMi%8I?!MG|vp{SlL@m94A^P)<{hzpA(P;sP zpWOau54l_q1K1-ZWSj&bRwH8>8=f>dL|dBt;e#juBiPy0;d(cgwN^IY4@OiiYHDpM zkzG|&9^3CD1IstE<`378WDXAWUttpgPZ*toLt}g}^(-cNwjDR2~M+hzXk3ux{bQhmBv=mroq@u8d`nT6i}#2;CrQ|dIyBHV7DAh zMzcMIC>~wMK@|svx6F#H5oW-u1F&=_YxME^fErQLVn3AM&Vue(@eJYR>Ia8mEU* zUz12(Nn@f0m*XOygr-x2>VGQMy=4MV*ei$Z*p!mns2^WqubyB*a3ep2W;}4xX{cB9 zW1ud38qZa%&*ztRajcel`4Oc>%y4EBxk6&fY{Z}q6R9o{0Fs41>yodM6!EMlU{fi( z2i{hsZ?2P_jcCCW!KNIw~LF3A$T1QSSwcg@)U| z>{g6yfp!OjslXK-d_&$W>AjfQ6%KZCQthK!OkZ#5pO_HjJ^Sq zVFTyPe(;Vgqrl{v>1zc})>+4cP;2y*;-cCYl%^3OEPWieo$_pCXLVEc;b3-i0s@7f zF->htrrcnsqG>HCL+5i#VB%8?h8^$pl3`lYX@*SEk$Mn;>3 z*289wIqT-s`up0FZf1BD{vFvRi{)y;q*nW`b zPpZTD>9?4D!5(?JgLTsR6C4;Wj8{Zipj1s)%>m6jB2r%U-D4@&*^}l3YdleL&sZ)c zb=C(amZ}n=7V;@8^3st$f?)RF~Oz86y4+}=)FG*qWSAR zH0%K-&psy+TSu1Z@EWb#8(N3Pk~ssSNxS2X+A#RoqV4a|Kf?lF?W=SM#>}Y7!azFK zUd{fiXVRErJ~K{h5+!i<UjHsG-jqlU3!%OYuR1Y^Jj!_NQWd7i{>H3fr7`=2 zelYZzMGlL67?X6ZqV#_9;e7n{Gn za-hpftfobk6T&Ww`OX+2-ZFO=OdAupatBho!aKuJq^9g*cPQ=+9=n4!5mU}&yJzr1hgq6hGDM9Po79#+WhpNBA;_t~k{ z{L}x7{Q6U3UY2*~O6PW`a5UrJOVEO{uaPLMnoFH}=*cJevg5kXa3!S_OKhEpV_+4amW4h#8btFuOHjT`o1Td-d?9qR2SK$*O z?JtwazE*eX@Xy5bun;Sjcg!P$X<6(HhbpQipQ(oFNnC`E9L*esGomn0M}P)h7bQx8 zZff}{5Yj(3iE15*QbqYRU1KK>!P_{sfjL_XKu0>q-p;|k!;*;u(W9*xuY;FfsIL*c z8f*YtVC)L}G3!-iSAgR5{$ZZb)E?lK*Td68<))*HB*BPt;y|7=Go4IbSHi9j@xEg> z-Z{e_X+^Yzvd7j*mj4v_zv{$4YewZ-#h=#?B}EEsm0+J5=u$B-vYUbe+jQ-SX8-uCD+C5!nxePPbkvka^!+w<5 zG%_UQ*>1ues_YvCo>&QPGmdy07a!auBso5+f{pFJTC2X-V}}deML`vrLZY9c!L^cB z#6ZRlv4+*3BcExJQAK8?qWqir=!;dFiFnvPfoq`INF8mxE4oRf5e)mI0wIuVx%%hp z&}(PMMUXhR8uod1>`uE$#x>TIO`GvTQh=-s&cPUPvx}Un ztKs9;N#d+H#+92@1-GbqZ3|_e9FJGLZr*jliRiLnOg+wgPE>C%DQ3vlnyA;eeH{doa#HmwMcf|usG5>|^TOr?Ho zP0$rRp9MZ67Gg>FMSqQn43JU0Vv#k)2N4TEfmEvc@Sjl=yL-J|cwl zD5vN?QY$I(2(Ps4U-Ov8M<8B=`J$rn#4Q>VjyC18zYdUE_Ay0EJ@P6x_S#R^z^R|Bmj5=}AeA zj>?Dmwm%?(t7ue}1$WLplgj{kQE(xJmLl-`{ODmZgiBZCsF{o?+iTT~; zjwJ5VW&~Vy=^;yBO+cyLgiGsDRT(vWX6Yk4QjnPL>e&|6GK}_WVS)p~@!qye?gOl{k~he#?T2O*NDc z>aj1{N^-Io`6QQOHvHn;%ExQTic1xWa*Od*4lXd~U)VaPiI1GEU6aCEmY7EkX@=i< z%^DU>>ZG59jd+}tPEnP1?Qy|bIv*iV2{b~ac-%L6x16AT#ZH{)X?)F!uwStl7 z>CphG_$yO8=^F)CE%vufv^A+oW3W!LPorMtBRNflmDA9sk@W9Qvp+L!P|ki);dd
    h>dGcdSlWeEFl}k2MrUUS^bR;=$@vE@GsDa9 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 diff --git a/public/static/UEditor/dialogs/scrawl/images/redoH.png b/public/static/UEditor/dialogs/scrawl/images/redoH.png deleted file mode 100644 index d9f33d38a3d11ce10447830ce409a0890ecad264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)LlRro!K@`S+vst67f)FhPH9;i)IZy=QifsP%Q^7=yx~FIm{DVqJh#8yN2on55 zK6niC-hAJD?=d5!lvD$)D)w6iOxq2aw)?eGO}w=Q({?4W2uyj7_3$nS0b08|CV^$s zcEc4Nn6?`Q=790%;vf4s`J3kd?(rXB%yX=pvVdv3pMkYfEM|mb9T>VsU5&ud zHR{zG?2nRrWd3EgfMHFMKLD%wc#k35+Fxy@XQ-Rrp?E*AqO06&F51~7BhBb9F%{CA zdmJPWQouxT{!<~+LW6%qD0@z^RN@x6tuTZA%{2bb;RZ0`Io4$$5UD%$(J!*|z&Fpa za?fuyZTGrH*P6~!{%Io9+`*3VLY0+{d|s}SVM0@>uRpF)fd0F8hF zgjKx=6b8R6tZy&P{3zz{+r)RSrIc5o-hmLJL6K@zgnPx#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUzF-b&0R5(wyQ*Ba%Fc9qxdXyf4gZLw&GE-Zj!G1tU_|R6xf-Mzw ztkqtHqs45L76*QWA2RbM@MiON_wCZ@{O7ZK+oR9deF10dJg3G9@~FqDz{krMf6sUA zM9%t%Ge#w-z&79UR#oU%de6AjwTpqy2_YI|tk+7Q3^s=6YMHYnLz^_O1&3i+?2mwN&7$-;U#S!Q9m{<3SMoh?w@E00BVyxZ+RCwFLF4JWG!G zOmY$;RtOYQz#3aQ*W5#AiVywHJM`%L@4v^Nzsx*vCin1#lEeQmy!?Oq z<)3F?{!hO2^5n}ed515YeEH$t2cY2pvoHVmpTDyB(*MfC{~Hedzw_aD z|6#-Q0^JY(AHHp1XAM(|igs|-_4sV4KK0;p@m*h1S8U_x=m<-jvZ+JR;{IBr4+&>f zSEaF?oUyAYF85cQWPSYh#i0ycQ4jWf_nW(8?Ylo51`N|SiTvgEn+*yn22WQ%mvv4F FO#t{IsF?r& diff --git a/public/static/UEditor/dialogs/scrawl/images/size.png b/public/static/UEditor/dialogs/scrawl/images/size.png deleted file mode 100644 index 8366845059c94089aef92aa3aeeee79e242732eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 775 zcmeAS@N?(olHy`uVBq!ia0vp^Iv_R&Gmw0`s%8O@k}PqJC<)F_D=AMbN@Z|N$xljE z@XSq2PYp^@^W{ zcO82EKXB&y{MKgq%sz{fI)==3d^r;&6MFPw(_IV71M|xGvv%v3_j2X!dGPP#L^Pja~hhtj9%m4qMKL2y%^Z&`q z=WTfUnlHCkByWLuLg&Z-{~5B^aHX`VrcW0wpCeN?gQ0YF|Ek^0Wm|o-iywUa@%aCL z)%2NBbM`Q#t<@@?!;!p&H+$mBlaI^_YB&B#>#{8s<9mu2JY zGd5l4N$XHbnR5BlcfNx4cmMupDBR$-Y>#a9e1@#m@BaT>^X!XNW-&wBx||KyZ~Xty zRkTzmtwcMm#U?#ZF@LgB=2WKq4bg@9JjHY3ON;;i|F13o-WwPzN)S72Y1Qc%6 zcJYYNXcAOgEAc9NiWcu<*Ig$*&7M7NgR1o_Dx<9^s3W?&d{SwZWC%AQ=Vq^CQZBv#02ZVBfRNMNWq`8qHxO6)(-0}P(7 KelF{r5}E+VpO-NJ diff --git a/public/static/UEditor/dialogs/scrawl/images/undo.png b/public/static/UEditor/dialogs/scrawl/images/undo.png deleted file mode 100644 index 084c7cc73f4058c8084e5ea3ab4e51fd105b7991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmV;t0YmPx#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUzI!Q!9R5(v#U>KAjGc&U&EiH|oEXQSKWlhM*$@yPcSjb6|0imIx zY(ULRYin!&1L^-HX$ETG0XlnEb#?Xs>C>nGudAyA8-k93YSsZ=r-))WP>}=>pQ);< z`afyXB(MQ<=FIuOaN)xL%ayrnkSp|9?S2!GDaj0*gvQ(FlretOfvW z6$E0%n3$MFK-vn3oq^aBh<%|nh;Lrlg%pxVI0RlGdnYDm%@o%7K^0FfxN6OiJOCi zi#RxuqoSN#Tot)WQew-+VO#$I2f6IQORU!0vXfFu4udr_4m%hxc|CaQ+tc&%`}Y0* zp6?@=rpaH1_@`<>2#kh5+8+kyfa~8Vm_`&Qf&1?$uoEc2lIZmeVHg0~PYAMri0Se6 zisfa<1zrI21FQgkJAn`w4d(-ql&7Fh^q1h21YD9xhMb<=^2_=%c1k>YpaK0r=t;rC zt=CtVDk}a`Zc&w=rjAAzFb_055%guKXWR05;yaef&C8{>rA7h90VLo8XqA)a5z{mR zl$UZFi*u7y-#5(Rpt#aUb$tcVwXHUL6R&`FK~-0c!y{7ZV&N?eU3VYvo=oj*?jtLb z0%Y5tQ3JY+q#F9ffd-5m?iOx)5tafl#kIoD<11{3}kbno$;nIA;p5?+| zPj_N{G3Qm3Edm$dw4eYE%Yq5$7Rj9jP5AfU_y|@8ao4ld0UH1S002ovPDHLkV1l6! B+-3j( diff --git a/public/static/UEditor/dialogs/scrawl/scrawl.css b/public/static/UEditor/dialogs/scrawl/scrawl.css deleted file mode 100644 index b18430d..0000000 --- a/public/static/UEditor/dialogs/scrawl/scrawl.css +++ /dev/null @@ -1,72 +0,0 @@ -/*common -*/ -body{margin: 0;} -table{width:100%;} -table td{padding:2px 4px;vertical-align: middle;} -a{text-decoration: none;} -em{font-style: normal;} -.border_style1{border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} -/*module -*/ -.main{margin: 8px;overflow: hidden;} - -.hot{float:left;height:335px;} -.drawBoard{position: relative; cursor: crosshair;} -.brushBorad{position: absolute;left:0;top:0;z-index: 998;} -.picBoard{border: none;text-align: center;line-height: 300px;cursor: default;} -.operateBar{margin-top:10px;font-size:12px;text-align: center;} -.operateBar span{margin-left: 10px;} - -.drawToolbar{float:right;width:110px;height:300px;overflow: hidden;} -.colorBar{margin-top:10px;font-size: 12px;text-align: center;} -.colorBar a{display:block;width: 10px;height: 10px;border:1px solid #1006F1;border-radius: 3px; box-shadow:2px 2px 5px #d3d6da;opacity: 0.3} -.sectionBar{margin-top:15px;font-size: 12px;text-align: center;} -.sectionBar a{display:inline-block;width:10px;height:12px;color: #888;text-indent: -999px;opacity: 0.3} -.size1{background: url('images/size.png') 1px center no-repeat ;} -.size2{background: url('images/size.png') -10px center no-repeat;} -.size3{background: url('images/size.png') -22px center no-repeat;} -.size4{background: url('images/size.png') -35px center no-repeat;} - -.addImgH{position: relative;} -.addImgH_form{position: absolute;left: 18px;top: -1px;width: 75px;height: 21px;opacity: 0;cursor: pointer;} -.addImgH_form input{width: 100%;} -/*scrawl遮罩层 -*/ -.maskLayerNull{display: none;} -.maskLayer{position: absolute;top:0;left:0;width: 100%; height: 100%;opacity: 0.7; - background-color: #fff;text-align:center;font-weight:bold;line-height:300px;z-index: 1000;} -/*btn state -*/ -.previousStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undoH.png');cursor: pointer;} -.previousStepH .text{color:#888;cursor:pointer;} -.previousStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undo.png');cursor:default;} -.previousStep .text{color:#ccc;cursor:default;} - -.nextStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redoH.png');cursor: pointer;} -.nextStepH .text{color:#888;cursor:pointer;} -.nextStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redo.png');cursor:default;} -.nextStep .text{color:#ccc;cursor:default;} - -.clearBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/emptyH.png');cursor: pointer;} -.clearBoardH .text{color:#888;cursor:pointer;} -.clearBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/empty.png');cursor:default;} -.clearBoard .text{color:#ccc;cursor:default;} - -.scaleBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scaleH.png');cursor: pointer;} -.scaleBoardH .text{color:#888;cursor:pointer;} -.scaleBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scale.png');cursor:default;} -.scaleBoard .text{color:#ccc;cursor:default;} - -.removeImgH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimgH.png');cursor: pointer;} -.removeImgH .text{color:#888;cursor:pointer;} -.removeImg .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimg.png');cursor:default;} -.removeImg .text{color:#ccc;cursor:default;} - -.addImgH .icon{vertical-align:top;display: inline-block;width:16px;height:16px;background-image: url('images/addimg.png')} -.addImgH .text{color:#888;cursor:pointer;} -/*icon -*/ -.brushIcon{display: inline-block;width:16px;height:16px;background-image: url('images/brush.png')} -.eraserIcon{display: inline-block;width:16px;height:16px;background-image: url('images/eraser.png')} - - diff --git a/public/static/UEditor/dialogs/scrawl/scrawl.html b/public/static/UEditor/dialogs/scrawl/scrawl.html deleted file mode 100644 index 9371abd..0000000 --- a/public/static/UEditor/dialogs/scrawl/scrawl.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - 1 - 3 - 5 - 7 -
    -
    - - 1 - 3 - 5 - 7 -
    -
    -
    - - -
    - -
    - -
    -
    -
    - - - - -
    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/scrawl/scrawl.js b/public/static/UEditor/dialogs/scrawl/scrawl.js deleted file mode 100644 index e0c005e..0000000 --- a/public/static/UEditor/dialogs/scrawl/scrawl.js +++ /dev/null @@ -1,671 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-5-22 - * Time: 上午11:38 - * To change this template use File | Settings | File Templates. - */ -var scrawl = function (options) { - options && this.initOptions(options); -}; -(function () { - var canvas = $G("J_brushBoard"), - context = canvas.getContext('2d'), - drawStep = [], //undo redo存储 - drawStepIndex = 0; //undo redo指针 - - scrawl.prototype = { - isScrawl:false, //是否涂鸦 - brushWidth:-1, //画笔粗细 - brushColor:"", //画笔颜色 - - initOptions:function (options) { - var me = this; - me.originalState(options);//初始页面状态 - me._buildToolbarColor(options.colorList);//动态生成颜色选择集合 - - me._addBoardListener(options.saveNum);//添加画板处理 - me._addOPerateListener(options.saveNum);//添加undo redo clearBoard处理 - me._addColorBarListener();//添加颜色选择处理 - me._addBrushBarListener();//添加画笔大小处理 - me._addEraserBarListener();//添加橡皮大小处理 - me._addAddImgListener();//添加增添背景图片处理 - me._addRemoveImgListenter();//删除背景图片处理 - me._addScalePicListenter();//添加缩放处理 - me._addClearSelectionListenter();//添加清楚选中状态处理 - - me._originalColorSelect(options.drawBrushColor);//初始化颜色选中 - me._originalBrushSelect(options.drawBrushSize);//初始化画笔选中 - me._clearSelection();//清楚选中状态 - }, - - originalState:function (options) { - var me = this; - - me.brushWidth = options.drawBrushSize;//同步画笔粗细 - me.brushColor = options.drawBrushColor;//同步画笔颜色 - - context.lineWidth = me.brushWidth;//初始画笔大小 - context.strokeStyle = me.brushColor;//初始画笔颜色 - context.fillStyle = "transparent";//初始画布背景颜色 - context.lineCap = "round";//去除锯齿 - context.fill(); - }, - _buildToolbarColor:function (colorList) { - var tmp = null, arr = []; - arr.push(""); - for (var i = 0, color; color = colorList[i++];) { - if ((i - 1) % 5 == 0) { - if (i != 1) { - arr.push(""); - } - arr.push(""); - } - tmp = '#' + color; - arr.push(""); - } - arr.push("
    "); - $G("J_colorBar").innerHTML = arr.join(""); - }, - - _addBoardListener:function (saveNum) { - var me = this, - margin = 0, - startX = -1, - startY = -1, - isMouseDown = false, - isMouseMove = false, - isMouseUp = false, - buttonPress = 0, button, flag = ''; - - margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left")); - drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); - drawStepIndex += 1; - - domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) { - button = browser.webkit ? e.which : buttonPress; - switch (e.type) { - case 'mousedown': - buttonPress = 1; - flag = 1; - isMouseDown = true; - isMouseUp = false; - isMouseMove = false; - me.isScrawl = true; - startX = e.clientX - margin;//10为外边距总和 - startY = e.clientY - margin; - context.beginPath(); - break; - case 'mousemove' : - if (!flag && button == 0) { - return; - } - if (!flag && button) { - startX = e.clientX - margin;//10为外边距总和 - startY = e.clientY - margin; - context.beginPath(); - flag = 1; - } - if (isMouseUp || !isMouseDown) { - return; - } - var endX = e.clientX - margin, - endY = e.clientY - margin; - - context.moveTo(startX, startY); - context.lineTo(endX, endY); - context.stroke(); - startX = endX; - startY = endY; - isMouseMove = true; - break; - case 'mouseup': - buttonPress = 0; - if (!isMouseDown)return; - if (!isMouseMove) { - context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false); - context.fillStyle = context.strokeStyle; - context.fill(); - } - context.closePath(); - me._saveOPerate(saveNum); - isMouseDown = false; - isMouseMove = false; - isMouseUp = true; - startX = -1; - startY = -1; - break; - case 'mouseout': - flag = ''; - buttonPress = 0; - if (button == 1) return; - context.closePath(); - break; - } - }); - }, - _addOPerateListener:function (saveNum) { - var me = this; - domUtils.on($G("J_previousStep"), "click", function () { - if (drawStepIndex > 1) { - drawStepIndex -= 1; - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - context.putImageData(drawStep[drawStepIndex - 1], 0, 0); - me.btn2Highlight("J_nextStep"); - drawStepIndex == 1 && me.btn2disable("J_previousStep"); - } - }); - domUtils.on($G("J_nextStep"), "click", function () { - if (drawStepIndex > 0 && drawStepIndex < drawStep.length) { - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - context.putImageData(drawStep[drawStepIndex], 0, 0); - drawStepIndex += 1; - me.btn2Highlight("J_previousStep"); - drawStepIndex == drawStep.length && me.btn2disable("J_nextStep"); - } - }); - domUtils.on($G("J_clearBoard"), "click", function () { - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - drawStep = []; - me._saveOPerate(saveNum); - drawStepIndex = 1; - me.isScrawl = false; - me.btn2disable("J_previousStep"); - me.btn2disable("J_nextStep"); - me.btn2disable("J_clearBoard"); - }); - }, - _addColorBarListener:function () { - var me = this; - domUtils.on($G("J_colorBar"), "click", function (e) { - var target = me.getTarget(e), - color = target.title; - if (!!color) { - me._addColorSelect(target); - - me.brushColor = color; - context.globalCompositeOperation = "source-over"; - context.lineWidth = me.brushWidth; - context.strokeStyle = color; - } - }); - }, - _addBrushBarListener:function () { - var me = this; - domUtils.on($G("J_brushBar"), "click", function (e) { - var target = me.getTarget(e), - size = browser.ie ? target.innerText : target.text; - if (!!size) { - me._addBESelect(target); - - context.globalCompositeOperation = "source-over"; - context.lineWidth = parseInt(size); - context.strokeStyle = me.brushColor; - me.brushWidth = context.lineWidth; - } - }); - }, - _addEraserBarListener:function () { - var me = this; - domUtils.on($G("J_eraserBar"), "click", function (e) { - var target = me.getTarget(e), - size = browser.ie ? target.innerText : target.text; - if (!!size) { - me._addBESelect(target); - - context.lineWidth = parseInt(size); - context.globalCompositeOperation = "destination-out"; - context.strokeStyle = "#FFF"; - } - }); - }, - _addAddImgListener:function () { - var file = $G("J_imgTxt"); - if (!window.FileReader) { - $G("J_addImg").style.display = 'none'; - $G("J_removeImg").style.display = 'none'; - $G("J_sacleBoard").style.display = 'none'; - } - domUtils.on(file, "change", function (e) { - var frm = file.parentNode; - addMaskLayer(lang.backgroundUploading); - - var target = e.target || e.srcElement, - reader = new FileReader(); - reader.onload = function(evt){ - var target = evt.target || evt.srcElement; - ue_callback(target.result, 'SUCCESS'); - }; - reader.readAsDataURL(target.files[0]); - frm.reset(); - }); - }, - _addRemoveImgListenter:function () { - var me = this; - domUtils.on($G("J_removeImg"), "click", function () { - $G("J_picBoard").innerHTML = ""; - me.btn2disable("J_removeImg"); - me.btn2disable("J_sacleBoard"); - }); - }, - _addScalePicListenter:function () { - domUtils.on($G("J_sacleBoard"), "click", function () { - var picBoard = $G("J_picBoard"), - scaleCon = $G("J_scaleCon"), - img = picBoard.children[0]; - - if (img) { - if (!scaleCon) { - picBoard.style.cssText = "position:relative;z-index:999;"+picBoard.style.cssText; - img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;"; - var scale = new ScaleBoy(); - picBoard.appendChild(scale.init()); - scale.startScale(img); - } else { - if (scaleCon.style.visibility == "visible") { - scaleCon.style.visibility = "hidden"; - picBoard.style.position = ""; - picBoard.style.zIndex = ""; - } else { - scaleCon.style.visibility = "visible"; - picBoard.style.cssText += "position:relative;z-index:999"; - } - } - } - }); - }, - _addClearSelectionListenter:function () { - var doc = document; - domUtils.on(doc, 'mousemove', function (e) { - if (browser.ie && browser.version < 11) - doc.selection.clear(); - else - window.getSelection().removeAllRanges(); - }); - }, - _clearSelection:function () { - var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"]; - for (var i = 0, group; group = list[i++];) { - domUtils.unSelectable($G(group)); - } - }, - - _saveOPerate:function (saveNum) { - var me = this; - if (drawStep.length <= saveNum) { - if(drawStepIndex"); - } - scale.innerHTML = arr.join(""); - return scale; - } - - var rect = [ - //[left, top, width, height] - [1, 1, -1, -1], - [0, 1, 0, -1], - [0, 1, 1, -1], - [1, 0, -1, 0], - [0, 0, 1, 0], - [1, 0, -1, 1], - [0, 0, 0, 1], - [0, 0, 1, 1] - ]; - ScaleBoy.prototype = { - init:function () { - _appendStyle(); - var me = this, - scale = me.dom = _getDom(); - - me.scaleMousemove.fp = me; - domUtils.on(scale, 'mousedown', function (e) { - var target = e.target || e.srcElement; - me.start = {x:e.clientX, y:e.clientY}; - if (target.className.indexOf('hand') != -1) { - me.dir = target.className.replace('hand', ''); - } - domUtils.on(document.body, 'mousemove', me.scaleMousemove); - e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; - }); - domUtils.on(document.body, 'mouseup', function (e) { - if (me.start) { - domUtils.un(document.body, 'mousemove', me.scaleMousemove); - if (me.moved) { - me.updateScaledElement({position:{x:scale.style.left, y:scale.style.top}, size:{w:scale.style.width, h:scale.style.height}}); - } - delete me.start; - delete me.moved; - delete me.dir; - } - }); - return scale; - }, - startScale:function (objElement) { - var me = this, Idom = me.dom; - - Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;'; - me.scalingElement = objElement; - }, - updateScaledElement:function (objStyle) { - var cur = this.scalingElement, - pos = objStyle.position, - size = objStyle.size; - if (pos) { - typeof pos.x != 'undefined' && (cur.style.left = pos.x); - typeof pos.y != 'undefined' && (cur.style.top = pos.y); - } - if (size) { - size.w && (cur.style.width = size.w); - size.h && (cur.style.height = size.h); - } - }, - updateStyleByDir:function (dir, offset) { - var me = this, - dom = me.dom, tmp; - - rect['def'] = [1, 1, 0, 0]; - if (rect[dir][0] != 0) { - tmp = parseInt(dom.style.left) + offset.x; - dom.style.left = me._validScaledProp('left', tmp) + 'px'; - } - if (rect[dir][1] != 0) { - tmp = parseInt(dom.style.top) + offset.y; - dom.style.top = me._validScaledProp('top', tmp) + 'px'; - } - if (rect[dir][2] != 0) { - tmp = dom.clientWidth + rect[dir][2] * offset.x; - dom.style.width = me._validScaledProp('width', tmp) + 'px'; - } - if (rect[dir][3] != 0) { - tmp = dom.clientHeight + rect[dir][3] * offset.y; - dom.style.height = me._validScaledProp('height', tmp) + 'px'; - } - if (dir === 'def') { - me.updateScaledElement({position:{x:dom.style.left, y:dom.style.top}}); - } - }, - scaleMousemove:function (e) { - var me = arguments.callee.fp, - start = me.start, - dir = me.dir || 'def', - offset = {x:e.clientX - start.x, y:e.clientY - start.y}; - - me.updateStyleByDir(dir, offset); - arguments.callee.fp.start = {x:e.clientX, y:e.clientY}; - arguments.callee.fp.moved = 1; - }, - _validScaledProp:function (prop, value) { - var ele = this.dom, - wrap = $G("J_picBoard"); - - value = isNaN(value) ? 0 : value; - switch (prop) { - case 'left': - return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; - case 'top': - return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; - case 'width': - return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; - case 'height': - return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; - } - } - }; -})(); - -//后台回调 -function ue_callback(url, state) { - var doc = document, - picBorard = $G("J_picBoard"), - img = doc.createElement("img"); - - //图片缩放 - function scale(img, max, oWidth, oHeight) { - var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight; - if (ow > max || oh > max) { - if (ow >= oh) { - if (width = ow - max) { - percent = (width / ow).toFixed(2); - img.height = oh - oh * percent; - img.width = max; - } - } else { - if (height = oh - max) { - percent = (height / oh).toFixed(2); - img.width = ow - ow * percent; - img.height = max; - } - } - } - } - - //移除遮罩层 - removeMaskLayer(); - //状态响应 - if (state == "SUCCESS") { - picBorard.innerHTML = ""; - img.onload = function () { - scale(this, 300); - picBorard.appendChild(img); - - var obj = new scrawl(); - obj.btn2Highlight("J_removeImg"); - //trace 2457 - obj.btn2Highlight("J_sacleBoard"); - }; - img.src = url; - } else { - alert(state); - } -} -//去掉遮罩层 -function removeMaskLayer() { - var maskLayer = $G("J_maskLayer"); - maskLayer.className = "maskLayerNull"; - maskLayer.innerHTML = ""; - dialog.buttons[0].setDisabled(false); -} -//添加遮罩层 -function addMaskLayer(html) { - var maskLayer = $G("J_maskLayer"); - dialog.buttons[0].setDisabled(true); - maskLayer.className = "maskLayer"; - maskLayer.innerHTML = html; -} -//执行确认按钮方法 -function exec(scrawlObj) { - if (scrawlObj.isScrawl) { - addMaskLayer(lang.scrawlUpLoading); - var base64 = scrawlObj.getCanvasData(); - if (!!base64) { - var options = { - timeout:100000, - onsuccess:function (xhr) { - if (!scrawlObj.isCancelScrawl) { - var responseObj; - responseObj = eval("(" + xhr.responseText + ")"); - if (responseObj.state == "SUCCESS") { - var imgObj = {}, - url = editor.options.scrawlUrlPrefix + responseObj.url; - imgObj.src = url; - imgObj._src = url; - imgObj.alt = responseObj.original || ''; - imgObj.title = responseObj.title || ''; - editor.execCommand("insertImage", imgObj); - dialog.close(); - } else { - alert(responseObj.state); - } - - } - }, - onerror:function () { - alert(lang.imageError); - dialog.close(); - } - }; - options[editor.getOpt('scrawlFieldName')] = base64; - - var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')), - params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - ajax.request(url, options); - } - } else { - addMaskLayer(lang.noScarwl + "   "); - } -} - diff --git a/public/static/UEditor/dialogs/searchreplace/searchreplace.html b/public/static/UEditor/dialogs/searchreplace/searchreplace.html deleted file mode 100644 index b91f190..0000000 --- a/public/static/UEditor/dialogs/searchreplace/searchreplace.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    :
    - -
    - - -
    -   -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    - -
    - - - - -
    -   -
    - -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/searchreplace/searchreplace.js b/public/static/UEditor/dialogs/searchreplace/searchreplace.js deleted file mode 100644 index 1b52857..0000000 --- a/public/static/UEditor/dialogs/searchreplace/searchreplace.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午12:29 - * To change this template use File | Settings | File Templates. - */ - -//清空上次查选的痕迹 -editor.firstForSR = 0; -editor.currentRangeForSR = null; -//给tab注册切换事件 -/** - * tab点击处理事件 - * @param tabHeads - * @param tabBodys - * @param obj - */ -function clickHandler( tabHeads,tabBodys,obj ) { - //head样式更改 - for ( var k = 0, len = tabHeads.length; k < len; k++ ) { - tabHeads[k].className = ""; - } - obj.className = "focus"; - //body显隐 - var tabSrc = obj.getAttribute( "tabSrc" ); - for ( var j = 0, length = tabBodys.length; j < length; j++ ) { - var body = tabBodys[j], - id = body.getAttribute( "id" ); - if ( id != tabSrc ) { - body.style.zIndex = 1; - } else { - body.style.zIndex = 200; - } - } - -} - -/** - * TAB切换 - * @param tabParentId tab的父节点ID或者对象本身 - */ -function switchTab( tabParentId ) { - var tabElements = $G( tabParentId ).children, - tabHeads = tabElements[0].children, - tabBodys = tabElements[1].children; - - for ( var i = 0, length = tabHeads.length; i < length; i++ ) { - var head = tabHeads[i]; - if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); - head.onclick = function () { - clickHandler(tabHeads,tabBodys,this); - } - } -} -$G('searchtab').onmousedown = function(){ - $G('search-msg').innerHTML = ''; - $G('replace-msg').innerHTML = '' -} -//是否区分大小写 -function getMatchCase(id) { - return $G(id).checked ? true : false; -} -//查找 -$G("nextFindBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase") - }; - if (!frCommond(obj)) { - var bk = editor.selection.getRange().createBookmark(); - $G('search-msg').innerHTML = lang.getEnd; - editor.selection.getRange().moveToBookmark(bk).select(); - - - } -}; -$G("nextReplaceBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt1").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase1") - }; - frCommond(obj); -}; -$G("preFindBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:-1, - casesensitive:getMatchCase("matchCase") - }; - if (!frCommond(obj)) { - $G('search-msg').innerHTML = lang.getStart; - } -}; -$G("preReplaceBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt1").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:-1, - casesensitive:getMatchCase("matchCase1") - }; - frCommond(obj); -}; -//替换 -$G("repalceBtn").onclick = function () { - var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, - replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); - if (!findtxt) { - return false; - } - if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase1"), - replaceStr:replacetxt - }; - frCommond(obj); -}; -//全部替换 -$G("repalceAllBtn").onclick = function () { - var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, - replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); - if (!findtxt) { - return false; - } - if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { - return false; - } - obj = { - searchStr:findtxt, - casesensitive:getMatchCase("matchCase1"), - replaceStr:replacetxt, - all:true - }; - var num = frCommond(obj); - if (num) { - $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num); - } -}; -//执行 -var frCommond = function (obj) { - return editor.execCommand("searchreplace", obj); -}; -switchTab("searchtab"); \ No newline at end of file diff --git a/public/static/UEditor/dialogs/snapscreen/snapscreen.html b/public/static/UEditor/dialogs/snapscreen/snapscreen.html deleted file mode 100644 index cf8209e..0000000 --- a/public/static/UEditor/dialogs/snapscreen/snapscreen.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - -
    -

    -
    -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/spechars/spechars.html b/public/static/UEditor/dialogs/spechars/spechars.html deleted file mode 100644 index 0b5c416..0000000 --- a/public/static/UEditor/dialogs/spechars/spechars.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/spechars/spechars.js b/public/static/UEditor/dialogs/spechars/spechars.js deleted file mode 100644 index f4c155e..0000000 --- a/public/static/UEditor/dialogs/spechars/spechars.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午1:09 - * To change this template use File | Settings | File Templates. - */ -var charsContent = [ - { name:"tsfh", title:lang.tsfh, content:toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞")}, - { name:"lmsz", title:lang.lmsz, content:toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")}, - { name:"szfh", title:lang.szfh, content:toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩")}, - { name:"rwfh", title:lang.rwfh, content:toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ")}, - { name:"xlzm", title:lang.xlzm, content:toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω")}, - { name:"ewzm", title:lang.ewzm, content:toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я")}, - { name:"pyzm", title:lang.pyzm, content:toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")}, - { name:"yyyb", title:lang.yyyb, content:toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,")}, - { name:"zyzf", title:lang.zyzf, content:toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ")} -]; -(function createTab(content) { - for (var i = 0, ci; ci = content[i++];) { - var span = document.createElement("span"); - span.setAttribute("tabSrc", ci.name); - span.innerHTML = ci.title; - if (i == 1)span.className = "focus"; - domUtils.on(span, "click", function () { - var tmps = $G("tabHeads").children; - for (var k = 0, sk; sk = tmps[k++];) { - sk.className = ""; - } - tmps = $G("tabBodys").children; - for (var k = 0, sk; sk = tmps[k++];) { - sk.style.display = "none"; - } - this.className = "focus"; - $G(this.getAttribute("tabSrc")).style.display = ""; - }); - $G("tabHeads").appendChild(span); - domUtils.insertAfter(span, document.createTextNode("\n")); - var div = document.createElement("div"); - div.id = ci.name; - div.style.display = (i == 1) ? "" : "none"; - var cons = ci.content; - for (var j = 0, con; con = cons[j++];) { - var charSpan = document.createElement("span"); - charSpan.innerHTML = con; - domUtils.on(charSpan, "click", function () { - editor.execCommand("insertHTML", this.innerHTML); - dialog.close(); - }); - div.appendChild(charSpan); - } - $G("tabBodys").appendChild(div); - } -})(charsContent); -function toArray(str) { - return str.split(","); -} diff --git a/public/static/UEditor/dialogs/table/dragicon.png b/public/static/UEditor/dialogs/table/dragicon.png deleted file mode 100644 index f26203bf3f0026891fc8374f109724a69eb38b22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)p00001b5ch_0Itp) z=>Px#=t)FDR47x8lCciKP#A@KY2U+Oz-BN?3|$yZoaJ-YrY6>w+wB>;0|AN6r2r z_B6y2bQp%1X$_7DP`QFiq0z;_c3wk<3Lh&$^V;p?#e$PywxH71VT^XlHZ=jml#@|NVkRMLVaC0F_%) zcB=vWe$h}nSjAV$|0D - - - - - - - -
    -
    -
    -

    -
      -
    • - -
    • -
    • - -
    • -
    -
      -
    • - -
    • -
    • - -
    • -
    -
    -
    -
    -

    -
      -
    • - -
    • -
    • - -
    • -
    -
    -
    -
    -

    -
      -
    • - - -
    • -
    -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/table/edittable.js b/public/static/UEditor/dialogs/table/edittable.js deleted file mode 100644 index 11dbee7..0000000 --- a/public/static/UEditor/dialogs/table/edittable.js +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-12-19 - * Time: 下午4:55 - * To change this template use File | Settings | File Templates. - */ -(function () { - var title = $G("J_title"), - titleCol = $G("J_titleCol"), - caption = $G("J_caption"), - sorttable = $G("J_sorttable"), - autoSizeContent = $G("J_autoSizeContent"), - autoSizePage = $G("J_autoSizePage"), - tone = $G("J_tone"), - me, - preview = $G("J_preview"); - - var editTable = function () { - me = this; - me.init(); - }; - editTable.prototype = { - init:function () { - var colorPiker = new UE.ui.ColorPicker({ - editor:editor - }), - colorPop = new UE.ui.Popup({ - editor:editor, - content:colorPiker - }); - - title.checked = editor.queryCommandState("inserttitle") == -1; - titleCol.checked = editor.queryCommandState("inserttitlecol") == -1; - caption.checked = editor.queryCommandState("insertcaption") == -1; - sorttable.checked = editor.queryCommandState("enablesort") == 1; - - var enablesortState = editor.queryCommandState("enablesort"), - disablesortState = editor.queryCommandState("disablesort"); - - sorttable.checked = !!(enablesortState < 0 && disablesortState >=0); - sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0); - sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg:''; - - me.createTable(title.checked, titleCol.checked, caption.checked); - me.setAutoSize(); - me.setColor(me.getColor()); - - domUtils.on(title, "click", me.titleHanler); - domUtils.on(titleCol, "click", me.titleColHanler); - domUtils.on(caption, "click", me.captionHanler); - domUtils.on(sorttable, "click", me.sorttableHanler); - domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler); - domUtils.on(autoSizePage, "click", me.autoSizePageHanler); - - domUtils.on(tone, "click", function () { - colorPop.showAnchor(tone); - }); - domUtils.on(document, 'mousedown', function () { - colorPop.hide(); - }); - colorPiker.addListener("pickcolor", function () { - me.setColor(arguments[1]); - colorPop.hide(); - }); - colorPiker.addListener("picknocolor", function () { - me.setColor(""); - colorPop.hide(); - }); - }, - - createTable:function (hasTitle, hasTitleCol, hasCaption) { - var arr = [], - sortSpan = '^'; - arr.push(""); - if (hasCaption) { - arr.push("") - } - if (hasTitle) { - arr.push(""); - if(hasTitleCol) { arr.push(""); } - for (var j = 0; j < 5; j++) { - arr.push(""); - } - arr.push(""); - } - for (var i = 0; i < 6; i++) { - arr.push(""); - if(hasTitleCol) { arr.push("") } - for (var k = 0; k < 5; k++) { - arr.push("") - } - arr.push(""); - } - arr.push("
    " + lang.captionName + "
    " + lang.titleName + "" + lang.titleName + "
    " + lang.titleName + "" + lang.cellsName + "
    "); - preview.innerHTML = arr.join(""); - this.updateSortSpan(); - }, - titleHanler:function () { - var example = $G("J_example"), - frg=document.createDocumentFragment(), - color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), - colCount = example.rows[0].children.length; - - if (title.checked) { - example.insertRow(0); - for (var i = 0, node; i < colCount; i++) { - node = document.createElement("th"); - node.innerHTML = lang.titleName; - frg.appendChild(node); - } - example.rows[0].appendChild(frg); - - } else { - domUtils.remove(example.rows[0]); - } - me.setColor(color); - me.updateSortSpan(); - }, - titleColHanler:function () { - var example = $G("J_example"), - color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), - colArr = example.rows, - colCount = colArr.length; - - if (titleCol.checked) { - for (var i = 0, node; i < colCount; i++) { - node = document.createElement("th"); - node.innerHTML = lang.titleName; - colArr[i].insertBefore(node, colArr[i].children[0]); - } - } else { - for (var i = 0; i < colCount; i++) { - domUtils.remove(colArr[i].children[0]); - } - } - me.setColor(color); - me.updateSortSpan(); - }, - captionHanler:function () { - var example = $G("J_example"); - if (caption.checked) { - var row = document.createElement('caption'); - row.innerHTML = lang.captionName; - example.insertBefore(row, example.firstChild); - } else { - domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]); - } - }, - sorttableHanler:function(){ - me.updateSortSpan(); - }, - autoSizeContentHanler:function () { - var example = $G("J_example"); - example.removeAttribute("width"); - }, - autoSizePageHanler:function () { - var example = $G("J_example"); - var tds = example.getElementsByTagName(example, "td"); - utils.each(tds, function (td) { - td.removeAttribute("width"); - }); - example.setAttribute('width', '100%'); - }, - updateSortSpan: function(){ - var example = $G("J_example"), - row = example.rows[0]; - - var spans = domUtils.getElementsByTagName(example,"span"); - utils.each(spans,function(span){ - span.parentNode.removeChild(span); - }); - if (sorttable.checked) { - utils.each(row.cells, function(cell, i){ - var span = document.createElement("span"); - span.innerHTML = "^"; - cell.appendChild(span); - }); - } - }, - getColor:function () { - var start = editor.selection.getStart(), color, - cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - color = cell && domUtils.getComputedStyle(cell, "border-color"); - if (!color) color = "#DDDDDD"; - return color; - }, - setColor:function (color) { - var example = $G("J_example"), - arr = domUtils.getElementsByTagName(example, "td").concat( - domUtils.getElementsByTagName(example, "th"), - domUtils.getElementsByTagName(example, "caption") - ); - - tone.value = color; - utils.each(arr, function (node) { - node.style.borderColor = color; - }); - - }, - setAutoSize:function () { - var me = this; - autoSizePage.checked = true; - me.autoSizePageHanler(); - } - }; - - new editTable; - - dialog.onok = function () { - editor.__hasEnterExecCommand = true; - - var checks = { - title:"inserttitle deletetitle", - titleCol:"inserttitlecol deletetitlecol", - caption:"insertcaption deletecaption", - sorttable:"enablesort disablesort" - }; - editor.fireEvent('saveScene'); - for(var i in checks){ - var cmds = checks[i].split(" "), - input = $G("J_" + i); - if(input["checked"]){ - editor.queryCommandState(cmds[0])!=-1 &&editor.execCommand(cmds[0]); - }else{ - editor.queryCommandState(cmds[1])!=-1 &&editor.execCommand(cmds[1]); - } - } - - editor.execCommand("edittable", tone.value); - autoSizeContent.checked ?editor.execCommand('adaptbytext') : ""; - autoSizePage.checked ? editor.execCommand("adaptbywindow") : ""; - editor.fireEvent('saveScene'); - - editor.__hasEnterExecCommand = false; - }; -})(); \ No newline at end of file diff --git a/public/static/UEditor/dialogs/table/edittd.html b/public/static/UEditor/dialogs/table/edittd.html deleted file mode 100644 index 49a52f7..0000000 --- a/public/static/UEditor/dialogs/table/edittd.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - -
    - - -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/table/edittip.html b/public/static/UEditor/dialogs/table/edittip.html deleted file mode 100644 index 954f7bb..0000000 --- a/public/static/UEditor/dialogs/table/edittip.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - 表格删除提示 - - - - -
    -
    - -
    -
    - -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/template/config.js b/public/static/UEditor/dialogs/template/config.js deleted file mode 100644 index 417b8f7..0000000 --- a/public/static/UEditor/dialogs/template/config.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-8-8 - * Time: 下午2:00 - * To change this template use File | Settings | File Templates. - */ -var templates = [ - { - "pre":"pre0.png", - 'title':lang.blank, - 'preHtml':'

     欢迎使用UEditor!

    ', - "html":'

    欢迎使用UEditor!

    ' - - }, - { - "pre":"pre1.png", - 'title':lang.blog, - 'preHtml':'

    深入理解Range

    UEditor二次开发

    什么是Range

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。


    Range能干什么

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。

    ', - "html":'

    [键入文档标题]

    [键入文档副标题]

    [标题 1]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。

    [标题 2]

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。 您还可以使用“开始”选项卡上的其他控件来直接设置文本格式。大多数控件都允许您选择是使用当前主题外观,还是使用某种直接指定的格式。

    [标题 3]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。


    ' - - }, - { - "pre":"pre2.png", - 'title':lang.resume, - 'preHtml':'

    WEB前端开发简历


    联系电话:[键入您的电话]

    电子邮件:[键入您的电子邮件地址]

    家庭住址:[键入您的地址]

    目标职位

    WEB前端研发工程师

    学历

    1. [起止时间] [学校名称] [所学专业] [所获学位]

    工作经验


    ', - "html":'

    [此处键入简历标题]


    【此处插入照片】


    联系电话:[键入您的电话]


    电子邮件:[键入您的电子邮件地址]


    家庭住址:[键入您的地址]


    目标职位

    [此处键入您的期望职位]

    学历

    1. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    2. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    工作经验

    1. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

      2. [键入负责项目] [键入项目简介]

    2. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

    掌握技能

     [这里可以键入您所掌握的技能]

    ' - - }, - { - "pre":"pre3.png", - 'title':lang.richText, - 'preHtml':'

    [此处键入文章标题]

    图文混排方法

    图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文


    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!

    ', - "html":'


    [此处键入文章标题]

    图文混排方法

    1. 图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文本


    2. 图片居右,文字围绕图片排版

    方法:在文字前面插入图片,设置居右对齐,然后即可在左边输入多行文本


    3. 图片居中环绕排版

    方法:亲,这个真心没有办法。。。



    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!


    占位


    占位


    占位


    占位


    占位



    ' - }, - { - "pre":"pre4.png", - 'title':lang.sciPapers, - 'preHtml':'

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的


    ', - 'html':'

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    来个列表瞅瞅:

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的

    这里可以多行

    右边是图片

    绝对没有问题的,不信你也可以试试看


    ' - } -]; \ No newline at end of file diff --git a/public/static/UEditor/dialogs/template/images/bg.gif b/public/static/UEditor/dialogs/template/images/bg.gif deleted file mode 100644 index 8c1d10ad1933e02086e8a1b3c807c7d1e57d51db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84 zcmZ?wbhEHb6kw2GXkcLY|NsA)GiMZkvM_*v4u}BBFfeKN|6H_V+Po~-c70vN1t=1+A%PQ29uxwx4>qZSNmg$Vo0WSSm;`Hl{Ww|6H_V+Po~-c6&>|-aSW-r_2!NtU#o%$i-Y0&su(f8j@G?~f`NtGer^@M zrYdIdrP)2_bk~ELr2i)^H(PkDy?QdpIbuVC@BX&$s!L5iRYqm|O_N&n@I;(N<+i7f+;9Z? Phk?P<)z4*}Q$iB}^elK+ diff --git a/public/static/UEditor/dialogs/template/images/pre2.png b/public/static/UEditor/dialogs/template/images/pre2.png deleted file mode 100644 index 5a55672c1f9c4d41d5b5cf52d76bb2b7e7c6b186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^DM0MT!2~3?K3Qf5q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffi(Px;TbZ+h>KHoj_IVWAxIr&Fiabo)3x94Up%M35SEe^0#X9dS;F-9{&3Ljos=IM}2LB&w>e?K^KZ|9tHA z)W~h}eTfo>R&7s^?LYqdE7+t-Dv4L4H{``lKYf(JYIB0^>jrz9Khf>{)o!mlw-~mt za!)h6<9vO9zW09 gTfg@IqFVdQ&MBb@0QJAA?EnA( diff --git a/public/static/UEditor/dialogs/template/images/pre3.png b/public/static/UEditor/dialogs/template/images/pre3.png deleted file mode 100644 index d852d29f13bcf743e15df824901ab568123a5aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmVTEH>0M4JV5-1QxJ>b$K`ZPMW6ena#ScoGi+aGE}QBI9b2~7O)VofCVgI z0Sj2@r|V8tRYg%8l35(bVHm0eOOPtd@{r7;D7wSi^O|UT7k&b(?|avE4}m2@pKY0^ zX8{XXz`D@ra0V&khG!6NNY4Tm0v50s9T*)L9q3sISir&!aYH5D@CmFqjy=yiBr_3O zu`P1E)qr;HnlAuCCeD2n8T2!dey#!;npC;SpUiv|xYU?E`rwKTr@$H|hS bPXPu1`Qm#ITgjGb00000NkvXXu0mjf8+_C8 diff --git a/public/static/UEditor/dialogs/template/images/pre4.png b/public/static/UEditor/dialogs/template/images/pre4.png deleted file mode 100644 index 0d7bc72ab99fe2c0ed9de1d89fd1c3e82ac3fd43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^DM0MT!2~3?K3Qf5q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfeL+x;TbZ+5xOQzYV@t-I~V=Oc$U@%9?>h?uf)>*!tD zz9*sh?!vZ&M%HQV5wX`#zTA@g`shVPPoZs!AO#y_jv5_v2~@eKa{lwdV71lh?Z-1u+JRxq;OXk;vd$@?2>^GKp!om* diff --git a/public/static/UEditor/dialogs/template/template.css b/public/static/UEditor/dialogs/template/template.css deleted file mode 100644 index 6c1608d..0000000 --- a/public/static/UEditor/dialogs/template/template.css +++ /dev/null @@ -1,18 +0,0 @@ -.wrap{ padding: 5px;font-size: 14px;} -.left{width:425px;float: left;} -.right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;} -.right .pre{height: 332px;overflow-y: auto;} -.right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;} -.right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;} -.right .preitem img{display: block;margin: 0 auto;width:100px;} -.clear{clear: both;} -.top{height:26px;line-height: 26px;padding: 5px;} -.bottom{height:320px;width:100%;margin: 0 auto;} -.transparent{ background: url("images/bg.gif") repeat;} -.bottom table tr td{border:1px dashed #ccc;} -#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;} -.border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} -p{margin: 5px 0} -table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;} -li{clear:both} -ol{padding-left:40px; } \ No newline at end of file diff --git a/public/static/UEditor/dialogs/template/template.html b/public/static/UEditor/dialogs/template/template.html deleted file mode 100644 index d9903a4..0000000 --- a/public/static/UEditor/dialogs/template/template.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - - - - diff --git a/public/static/UEditor/dialogs/template/template.js b/public/static/UEditor/dialogs/template/template.js deleted file mode 100644 index 80a334b..0000000 --- a/public/static/UEditor/dialogs/template/template.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-8-8 - * Time: 下午2:09 - * To change this template use File | Settings | File Templates. - */ -(function () { - var me = editor, - preview = $G( "preview" ), - preitem = $G( "preitem" ), - tmps = templates, - currentTmp; - var initPre = function () { - var str = ""; - for ( var i = 0, tmp; tmp = tmps[i++]; ) { - str += '
    '; - } - preitem.innerHTML = str; - }; - var pre = function ( n ) { - var tmp = tmps[n - 1]; - currentTmp = tmp; - clearItem(); - domUtils.setStyles( preitem.childNodes[n - 1], { - "background-color":"lemonChiffon", - "border":"#ccc 1px solid" - } ); - preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; - }; - var clearItem = function () { - var items = preitem.children; - for ( var i = 0, item; item = items[i++]; ) { - domUtils.setStyles( item, { - "background-color":"", - "border":"white 1px solid" - } ); - } - }; - dialog.onok = function () { - if ( !$G( "issave" ).checked ){ - me.execCommand( "cleardoc" ); - } - var obj = { - html:currentTmp && currentTmp.html - }; - me.execCommand( "template", obj ); - }; - initPre(); - window.pre = pre; - pre(2) - -})(); \ No newline at end of file diff --git a/public/static/UEditor/dialogs/video/images/bg.png b/public/static/UEditor/dialogs/video/images/bg.png deleted file mode 100644 index 580be0a01dff4c70c72f78a3f40186660ee8eee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810 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 Bm*4;Z diff --git a/public/static/UEditor/dialogs/video/images/file-icons.gif b/public/static/UEditor/dialogs/video/images/file-icons.gif deleted file mode 100644 index d8c02c27e242f0584fc6b214f35b4f6d8caec332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20097 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 diff --git a/public/static/UEditor/dialogs/video/images/file-icons.png b/public/static/UEditor/dialogs/video/images/file-icons.png deleted file mode 100644 index 3ff82c8c488f53a7aff67fbe39742e3321183eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44070 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

    *vGSxI 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 diff --git a/public/static/UEditor/dialogs/video/images/icons.gif b/public/static/UEditor/dialogs/video/images/icons.gif deleted file mode 100644 index 78459dea7b12ccbeec81d19ecdab22b1658e93b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmZ?wbhEHbbY#$A*vtR||Ns9FJNP^N(4UCIf1{56|NHmvpFe+o|NadW2g{=nia%Kx z85lSjbU>mYGZarn*x(aH@fLZq!wgUiaA+%BrQuMGlI(3v}$4ket=c%G-JG_a6@d zUMtW1Dv_dMk(#;&JDULU);6IIt*+RD80Beh(v#{r8-@JE7rOMyrKZ@`PM+5- zK4PEn@UifH&1a7opNKNDvAy~H((Lt@PiCLrh`sqL^yyzFM}*_N9gV+*y1bvCcd{tw zP+atQ`ojjtR_?nOH&4iCw(0v^v}@~SfpwBi-JHA%0-p_?kEd#ga=ENn_|&M5?L?$c z!i1+jT>6R+ul!uQ+^$n$Hm~o7%Nb0wJ#GK7NE~>4aE?#6+>{R=oUZeJnouMg`B^J) rUi3;Xl^IQMkE|4#X6EZ{`gBG$ultcLuMHMNRKNMR>qv$%6N5DXx{1lO diff --git a/public/static/UEditor/dialogs/video/images/icons.png b/public/static/UEditor/dialogs/video/images/icons.png deleted file mode 100644 index 12e4700163ac87fa38ae3d92a2c39d0fb4690fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2678 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 diff --git a/public/static/UEditor/dialogs/video/images/left_focus.jpg b/public/static/UEditor/dialogs/video/images/left_focus.jpg deleted file mode 100644 index 7886d276dda2e0aecdae22393eac534ed507babf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11423 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 T+mF>-Zi@@LHB9%bmHhD^k7NPf diff --git a/public/static/UEditor/dialogs/video/images/none_focus.jpg b/public/static/UEditor/dialogs/video/images/none_focus.jpg deleted file mode 100644 index 7c768dcb47aaa289135afd2bd0e8eb0b6ecb7536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11546 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 C61Fb@ diff --git a/public/static/UEditor/dialogs/video/images/right_focus.jpg b/public/static/UEditor/dialogs/video/images/right_focus.jpg deleted file mode 100644 index 173e10d2d91026c7283566993afb2f3a0267ea40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11334 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 diff --git a/public/static/UEditor/dialogs/video/images/success.gif b/public/static/UEditor/dialogs/video/images/success.gif deleted file mode 100644 index 8d4f3112b9d1df2147ed3b67d9736163dedd11e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmZ?wbhEHb)L_tHxXJ(m|NsC0{`>#WKmY&!`~ULm|4%>v3rzVXIOUh{)L$ageu+>2 zB{Acd%*pZwE#>TlQSztb-KopJH+%!_|l-~7Ag*59?a z{_c7B@6_{ur(gU#_wwKE_y6vG`1j=VzZYNsfBgCX$DjXizW@L859r4KV8@~pia%Kx z85k@WbU+dyKQXY~a+p)#p(E9QVoA}-BeJtDJbfs+R&065YSGzOop#2q7tzUUTK@E- z1Qpqe*fm*b*T-Fam_8!ZPiJg?eRTb9ku+5;xVnw>Wr$>Ce}(b zvq{bgY~#~oR8Cparp&0%zbdUw!o*Z6ds70hP&$teqekA&7*16-748@%Mnl0vSqU6+ zOpICr!NSHY@7SLk+rBLP3&#jWP!Xxbb jiN%_{Rv%uKKTTNF#>acL^G5)OtDBg<-IWs>91PX~W`xy? diff --git a/public/static/UEditor/dialogs/video/images/success.png b/public/static/UEditor/dialogs/video/images/success.png deleted file mode 100644 index 94f968dc8fd3c7ca8f6cb599d006ef3f23b62c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1621 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#?>2=9ZF3nBND}m`vLFhHXsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6rPIL(9V zO~LIJBb<8mfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u(vXbonl~MI_~M>7*cWT z%njcRVMh`65C6~Q2yI{K`NBQQh9heAinXE1(JfB=Ul%M;Ke#x6g%L8^f5l4Te zj&BcK1znDIyZS2~eC7F3K+}tVTa$=u*HTU0W4>0#`+Qf%|GkyBERBs#$Y}P@k7@U2 zd#*XsYr~WGeCA1uSK>2HTD)g9mP}Xrpg$+`K&8dx2JS~bjCx(hj5}1;-8qn2_>|?> zp{d+2q{I0hbQS!U-jOut`kSEi+IhQJGmBl4O%se*W?OGKZ0Mp?XmGnRgezL^8vCJ4 z#-ek9(R&%4!h+;oXA~Mtbyie=u#0PDiI#!iX`%2?^@kRL8ma*r6?+*}W4e|_8~J&& z+-+*Ub3{dDcAIF|!MTDz0#78qKYeaeVU$wDOOs3cR=e5FZ*O2e-6xc{Uu=$;!s>*M z>nZ|V>zUp8-oE6^wXjV+_UOvuE&SORr`;3hnBKu~e3rzlY@NRjD|5Ui2t>^@Ve7jy z)2vT>u1vesjJgG`f;l_n`FmbR~b^~{VzXB}7CdU_pt>lO9l=E;X#4<2bZu32r~J^e^%TSISQ_Qm$= z7d{rOo2%^RUGseJkpn9(MWszUQdl(i&RN5PBgZ0d#S7ZipShU3W`>Nsy6C#pCD*KW zyxHW%b?m|pr;dF;L$saa#oaeO`u=>jkXTjl9*cLEvOD!Jdr4ooKJW9gY7?D{e?uM^ z`_}E4`0yR0boA=9>3>WXzUH{&pDfpZ;_2xb=j*pKsk#WyD%J#5t{1#azeB z4SJq8H2*dJVX$xugZHVh{7U`u4@oM|quz5j-hRJi{qwh1k5uNqu`W>3HJG&Y^R}6R z$Gq-HPue$sd${oT*XKO8zN>Oe_%K^bZNm3^-vf7@5X# - - - - - - - - -

    - - - - - - - - - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/video/video.js b/public/static/UEditor/dialogs/video/video.js deleted file mode 100644 index 61c4a7e..0000000 --- a/public/static/UEditor/dialogs/video/video.js +++ /dev/null @@ -1,797 +0,0 @@ -/** - * Created by JetBrains PhpStorm. - * User: taoqili - * Date: 12-2-20 - * Time: 上午11:19 - * To change this template use File | Settings | File Templates. - */ - -(function(){ - - var video = {}, - uploadVideoList = [], - isModifyUploadVideo = false, - uploadFile; - - window.onload = function(){ - $focus($G("videoUrl")); - initTabs(); - initVideo(); - initUpload(); - }; - - /* 初始化tab标签 */ - function initTabs(){ - var tabs = $G('tabHeads').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var j, bodyId, target = e.target || e.srcElement; - for (j = 0; j < tabs.length; j++) { - bodyId = tabs[j].getAttribute('data-content-id'); - if(tabs[j] == target){ - domUtils.addClass(tabs[j], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - }else { - domUtils.removeClasses(tabs[j], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - }); - } - } - - function initVideo(){ - createAlignButton( ["videoFloat", "upload_alignment"] ); - addUrlChangeListener($G("videoUrl")); - addOkListener(); - - //编辑视频时初始化相关信息 - (function(){ - var img = editor.selection.getRange().getClosedNode(),url; - if(img && img.className){ - var hasFakedClass = (img.className == "edui-faked-video"), - hasUploadClass = img.className.indexOf("edui-upload-video")!=-1; - if(hasFakedClass || hasUploadClass) { - $G("videoUrl").value = url = img.getAttribute("_url"); - $G("videoWidth").value = img.width; - $G("videoHeight").value = img.height; - var align = domUtils.getComputedStyle(img,"float"), - parentAlign = domUtils.getComputedStyle(img.parentNode,"text-align"); - updateAlignButton(parentAlign==="center"?"center":align); - } - if(hasUploadClass) { - isModifyUploadVideo = true; - } - } - createPreviewVideo(url); - })(); - } - - /** - * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 - */ - function addOkListener(){ - dialog.onok = function(){ - $G("preview").innerHTML = ""; - var currentTab = findFocus("tabHeads","tabSrc"); - switch(currentTab){ - case "video": - return insertSingle(); - break; - case "videoSearch": - return insertSearch("searchList"); - break; - case "upload": - return insertUpload(); - break; - } - }; - dialog.oncancel = function(){ - $G("preview").innerHTML = ""; - }; - } - - /** - * 依据传入的align值更新按钮信息 - * @param align - */ - function updateAlignButton( align ) { - var aligns = $G( "videoFloat" ).children; - for ( var i = 0, ci; ci = aligns[i++]; ) { - if ( ci.getAttribute( "name" ) == align ) { - if ( ci.className !="focus" ) { - ci.className = "focus"; - } - } else { - if ( ci.className =="focus" ) { - ci.className = ""; - } - } - } - } - - /** - * 将单个视频信息插入编辑器中 - */ - function insertSingle(){ - var width = $G("videoWidth"), - height = $G("videoHeight"), - url=$G('videoUrl').value, - align = findFocus("videoFloat","name"); - if(!url) return false; - if ( !checkNum( [width, height] ) ) return false; - editor.execCommand('insertvideo', { - url: convert_url(url), - width: width.value, - height: height.value, - align: align - }, isModifyUploadVideo ? 'upload':null); - } - - /** - * 将元素id下的所有代表视频的图片插入编辑器中 - * @param id - */ - function insertSearch(id){ - var imgs = domUtils.getElementsByTagName($G(id),"img"), - videoObjs=[]; - for(var i=0,img; img=imgs[i++];){ - if(img.getAttribute("selected")){ - videoObjs.push({ - url:img.getAttribute("ue_video_url"), - width:420, - height:280, - align:"none" - }); - } - } - editor.execCommand('insertvideo',videoObjs); - } - - /** - * 找到id下具有focus类的节点并返回该节点下的某个属性 - * @param id - * @param returnProperty - */ - function findFocus( id, returnProperty ) { - var tabs = $G( id ).children, - property; - for ( var i = 0, ci; ci = tabs[i++]; ) { - if ( ci.className=="focus" ) { - property = ci.getAttribute( returnProperty ); - break; - } - } - return property; - } - function convert_url(url){ - if ( !url ) return ''; - url = utils.trim(url) - .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf') - .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2") - .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1") - .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf") - .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf") - .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf") - .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf") - .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0") - .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1") - .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1") - .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1") - .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1"); - - return url; - } - - /** - * 检测传入的所有input框中输入的长宽是否是正数 - * @param nodes input框集合, - */ - function checkNum( nodes ) { - for ( var i = 0, ci; ci = nodes[i++]; ) { - var value = ci.value; - if ( !isNumber( value ) && value) { - alert( lang.numError ); - ci.value = ""; - ci.focus(); - return false; - } - } - return true; - } - - /** - * 数字判断 - * @param value - */ - function isNumber( value ) { - return /(0|^[1-9]\d*$)/.test( value ); - } - - /** - * 创建图片浮动选择按钮 - * @param ids - */ - function createAlignButton( ids ) { - for ( var i = 0, ci; ci = ids[i++]; ) { - var floatContainer = $G( ci ), - nameMaps = {"none":lang['default'], "left":lang.floatLeft, "right":lang.floatRight, "center":lang.block}; - for ( var j in nameMaps ) { - var div = document.createElement( "div" ); - div.setAttribute( "name", j ); - if ( j == "none" ) div.className="focus"; - div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; - div.setAttribute( "title", nameMaps[j] ); - floatContainer.appendChild( div ); - } - switchSelect( ci ); - } - } - - /** - * 选择切换 - * @param selectParentId - */ - function switchSelect( selectParentId ) { - var selects = $G( selectParentId ).children; - for ( var i = 0, ci; ci = selects[i++]; ) { - domUtils.on( ci, "click", function () { - for ( var j = 0, cj; cj = selects[j++]; ) { - cj.className = ""; - cj.removeAttribute && cj.removeAttribute( "class" ); - } - this.className = "focus"; - } ) - } - } - - /** - * 监听url改变事件 - * @param url - */ - function addUrlChangeListener(url){ - if (browser.ie) { - url.onpropertychange = function () { - createPreviewVideo( this.value ); - } - } else { - url.addEventListener( "input", function () { - createPreviewVideo( this.value ); - }, false ); - } - } - - /** - * 根据url生成视频预览 - * @param url - */ - function createPreviewVideo(url){ - if ( !url )return; - - var conUrl = convert_url(url); - - conUrl = utils.unhtmlForUrl(conUrl); - - $G("preview").innerHTML = '
    '+lang.urlError+'
    '+ - '' + - ''; - } - - - /* 插入上传视频 */ - function insertUpload(){ - var videoObjs=[], - uploadDir = editor.getOpt('videoUrlPrefix'), - width = parseInt($G('upload_width').value, 10) || 420, - height = parseInt($G('upload_height').value, 10) || 280, - align = findFocus("upload_alignment","name") || 'none'; - for(var key in uploadVideoList) { - var file = uploadVideoList[key]; - videoObjs.push({ - url: uploadDir + file.url, - width:width, - height:height, - align:align - }); - } - - var count = uploadFile.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } else { - editor.execCommand('insertvideo', videoObjs, 'upload'); - } - } - - /*初始化上传标签*/ - function initUpload(){ - uploadFile = new UploadFile('queueList'); - } - - - /* 上传附件 */ - function UploadFile(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadFile.prototype = { - init: function () { - this.fileList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')), - fileMaxSize = editor.getOpt('videoMaxSize'), - acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('videoActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('videoFieldName'), - duplicate: true, - fileSingleSizeLimit: fileMaxSize, - compress: false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { - $wrap.empty().addClass('notimage').append('' + - '' + file.name + ''); - } else { - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - uploadVideoList.push({ - 'url': json.url, - 'type': json.type, - 'original':json.original - }); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - refresh: function(){ - this.uploader.refresh(); - } - }; - -})(); diff --git a/public/static/UEditor/dialogs/webapp/webapp.html b/public/static/UEditor/dialogs/webapp/webapp.html deleted file mode 100644 index 1614377..0000000 --- a/public/static/UEditor/dialogs/webapp/webapp.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/wordimage/tangram.js b/public/static/UEditor/dialogs/wordimage/tangram.js deleted file mode 100644 index 2ebd8fd..0000000 --- a/public/static/UEditor/dialogs/wordimage/tangram.js +++ /dev/null @@ -1,1495 +0,0 @@ -// Copyright (c) 2009, Baidu Inc. All rights reserved. -// -// Licensed under the BSD License -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http:// tangram.baidu.com/license.html -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - /** - * @namespace T Tangram七巧板 - * @name T - * @version 1.6.0 -*/ - -/** - * 声明baidu包 - * @author: allstar, erik, meizz, berg - */ -var T, - baidu = T = baidu || {version: "1.5.0"}; -baidu.guid = "$BAIDU$"; -baidu.$$ = window[baidu.guid] = window[baidu.guid] || {global:{}}; - -/** - * 使用flash资源封装的一些功能 - * @namespace baidu.flash - */ -baidu.flash = baidu.flash || {}; - -/** - * 操作dom的方法 - * @namespace baidu.dom - */ -baidu.dom = baidu.dom || {}; - - -/** - * 从文档中获取指定的DOM元素 - * @name baidu.dom.g - * @function - * @grammar baidu.dom.g(id) - * @param {string|HTMLElement} id 元素的id或DOM元素. - * @shortcut g,T.G - * @meta standard - * @see baidu.dom.q - * - * @return {HTMLElement|null} 获取的元素,查找不到时返回null,如果参数不合法,直接返回参数. - */ -baidu.dom.g = function(id) { - if (!id) return null; - if ('string' == typeof id || id instanceof String) { - return document.getElementById(id); - } else if (id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) { - return id; - } - return null; -}; -baidu.g = baidu.G = baidu.dom.g; - - -/** - * 操作数组的方法 - * @namespace baidu.array - */ - -baidu.array = baidu.array || {}; - - -/** - * 遍历数组中所有元素 - * @name baidu.array.each - * @function - * @grammar baidu.array.each(source, iterator[, thisObject]) - * @param {Array} source 需要遍历的数组 - * @param {Function} iterator 对每个数组元素进行调用的函数,该函数有两个参数,第一个为数组元素,第二个为数组索引值,function (item, index)。 - * @param {Object} [thisObject] 函数调用时的this指针,如果没有此参数,默认是当前遍历的数组 - * @remark - * each方法不支持对Object的遍历,对Object的遍历使用baidu.object.each 。 - * @shortcut each - * @meta standard - * - * @returns {Array} 遍历的数组 - */ - -baidu.each = baidu.array.forEach = baidu.array.each = function (source, iterator, thisObject) { - var returnValue, item, i, len = source.length; - - if ('function' == typeof iterator) { - for (i = 0; i < len; i++) { - item = source[i]; - returnValue = iterator.call(thisObject || source, item, i); - - if (returnValue === false) { - break; - } - } - } - return source; -}; - -/** - * 对语言层面的封装,包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。 - * @namespace baidu.lang - */ -baidu.lang = baidu.lang || {}; - - -/** - * 判断目标参数是否为function或Function实例 - * @name baidu.lang.isFunction - * @function - * @grammar baidu.lang.isFunction(source) - * @param {Any} source 目标参数 - * @version 1.2 - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * @meta standard - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isFunction = function (source) { - return '[object Function]' == Object.prototype.toString.call(source); -}; - -/** - * 判断目标参数是否string类型或String对象 - * @name baidu.lang.isString - * @function - * @grammar baidu.lang.isString(source) - * @param {Any} source 目标参数 - * @shortcut isString - * @meta standard - * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isString = function (source) { - return '[object String]' == Object.prototype.toString.call(source); -}; -baidu.isString = baidu.lang.isString; - - -/** - * 判断浏览器类型和特性的属性 - * @namespace baidu.browser - */ -baidu.browser = baidu.browser || {}; - - -/** - * 判断是否为opera浏览器 - * @property opera opera版本号 - * @grammar baidu.browser.opera - * @meta standard - * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome - * @returns {Number} opera版本号 - */ - -/** - * opera 从10开始不是用opera后面的字符串进行版本的判断 - * 在Browser identification最后添加Version + 数字进行版本标识 - * opera后面的数字保持在9.80不变 - */ -baidu.browser.opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ? + ( RegExp["\x246"] || RegExp["\x242"] ) : undefined; - - -/** - * 在目标元素的指定位置插入HTML代码 - * @name baidu.dom.insertHTML - * @function - * @grammar baidu.dom.insertHTML(element, position, html) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @param {string} position 插入html的位置信息,取值为beforeBegin,afterBegin,beforeEnd,afterEnd - * @param {string} html 要插入的html - * @remark - * - * 对于position参数,大小写不敏感
    - * 参数的意思:beforeBegin<span>afterBegin this is span! beforeEnd</span> afterEnd
    - * 此外,如果使用本函数插入带有script标签的HTML字符串,script标签对应的脚本将不会被执行。 - * - * @shortcut insertHTML - * @meta standard - * - * @returns {HTMLElement} 目标元素 - */ -baidu.dom.insertHTML = function (element, position, html) { - element = baidu.dom.g(element); - var range,begin; - if (element.insertAdjacentHTML && !baidu.browser.opera) { - element.insertAdjacentHTML(position, html); - } else { - range = element.ownerDocument.createRange(); - position = position.toUpperCase(); - if (position == 'AFTERBEGIN' || position == 'BEFOREEND') { - range.selectNodeContents(element); - range.collapse(position == 'AFTERBEGIN'); - } else { - begin = position == 'BEFOREBEGIN'; - range[begin ? 'setStartBefore' : 'setEndAfter'](element); - range.collapse(begin); - } - range.insertNode(range.createContextualFragment(html)); - } - return element; -}; - -baidu.insertHTML = baidu.dom.insertHTML; - -/** - * 操作flash对象的方法,包括创建flash对象、获取flash对象以及判断flash插件的版本号 - * @namespace baidu.swf - */ -baidu.swf = baidu.swf || {}; - - -/** - * 浏览器支持的flash插件版本 - * @property version 浏览器支持的flash插件版本 - * @grammar baidu.swf.version - * @return {String} 版本号 - * @meta standard - */ -baidu.swf.version = (function () { - var n = navigator; - if (n.plugins && n.mimeTypes.length) { - var plugin = n.plugins["Shockwave Flash"]; - if (plugin && plugin.description) { - return plugin.description - .replace(/([a-zA-Z]|\s)+/, "") - .replace(/(\s)+r/, ".") + ".0"; - } - } else if (window.ActiveXObject && !window.opera) { - for (var i = 12; i >= 2; i--) { - try { - var c = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.' + i); - if (c) { - var version = c.GetVariable("$version"); - return version.replace(/WIN/g,'').replace(/,/g,'.'); - } - } catch(e) {} - } - } -})(); - -/** - * 操作字符串的方法 - * @namespace baidu.string - */ -baidu.string = baidu.string || {}; - - -/** - * 对目标字符串进行html编码 - * @name baidu.string.encodeHTML - * @function - * @grammar baidu.string.encodeHTML(source) - * @param {string} source 目标字符串 - * @remark - * 编码字符有5个:&<>"' - * @shortcut encodeHTML - * @meta standard - * @see baidu.string.decodeHTML - * - * @returns {string} html编码后的字符串 - */ -baidu.string.encodeHTML = function (source) { - return String(source) - .replace(/&/g,'&') - .replace(//g,'>') - .replace(/"/g, """) - .replace(/'/g, "'"); -}; - -baidu.encodeHTML = baidu.string.encodeHTML; - -/** - * 创建flash对象的html字符串 - * @name baidu.swf.createHTML - * @function - * @grammar baidu.swf.createHTML(options) - * - * @param {Object} options 创建flash的选项参数 - * @param {string} options.id 要创建的flash的标识 - * @param {string} options.url flash文件的url - * @param {String} options.errorMessage 未安装flash player或flash player版本号过低时的提示 - * @param {string} options.ver 最低需要的flash player版本号 - * @param {string} options.width flash的宽度 - * @param {string} options.height flash的高度 - * @param {string} options.align flash的对齐方式,允许值:middle/left/right/top/bottom - * @param {string} options.base 设置用于解析swf文件中的所有相对路径语句的基本目录或URL - * @param {string} options.bgcolor swf文件的背景色 - * @param {string} options.salign 设置缩放的swf文件在由width和height设置定义的区域内的位置。允许值:l/r/t/b/tl/tr/bl/br - * @param {boolean} options.menu 是否显示右键菜单,允许值:true/false - * @param {boolean} options.loop 播放到最后一帧时是否重新播放,允许值: true/false - * @param {boolean} options.play flash是否在浏览器加载时就开始播放。允许值:true/false - * @param {string} options.quality 设置flash播放的画质,允许值:low/medium/high/autolow/autohigh/best - * @param {string} options.scale 设置flash内容如何缩放来适应设置的宽高。允许值:showall/noborder/exactfit - * @param {string} options.wmode 设置flash的显示模式。允许值:window/opaque/transparent - * @param {string} options.allowscriptaccess 设置flash与页面的通信权限。允许值:always/never/sameDomain - * @param {string} options.allownetworking 设置swf文件中允许使用的网络API。允许值:all/internal/none - * @param {boolean} options.allowfullscreen 是否允许flash全屏。允许值:true/false - * @param {boolean} options.seamlesstabbing 允许设置执行无缝跳格,从而使用户能跳出flash应用程序。该参数只能在安装Flash7及更高版本的Windows中使用。允许值:true/false - * @param {boolean} options.devicefont 设置静态文本对象是否以设备字体呈现。允许值:true/false - * @param {boolean} options.swliveconnect 第一次加载flash时浏览器是否应启动Java。允许值:true/false - * @param {Object} options.vars 要传递给flash的参数,支持JSON或string类型。 - * - * @see baidu.swf.create - * @meta standard - * @returns {string} flash对象的html字符串 - */ -baidu.swf.createHTML = function (options) { - options = options || {}; - var version = baidu.swf.version, - needVersion = options['ver'] || '6.0.0', - vUnit1, vUnit2, i, k, len, item, tmpOpt = {}, - encodeHTML = baidu.string.encodeHTML; - for (k in options) { - tmpOpt[k] = options[k]; - } - options = tmpOpt; - if (version) { - version = version.split('.'); - needVersion = needVersion.split('.'); - for (i = 0; i < 3; i++) { - vUnit1 = parseInt(version[i], 10); - vUnit2 = parseInt(needVersion[i], 10); - if (vUnit2 < vUnit1) { - break; - } else if (vUnit2 > vUnit1) { - return ''; - } - } - } else { - return ''; - } - - var vars = options['vars'], - objProperties = ['classid', 'codebase', 'id', 'width', 'height', 'align']; - options['align'] = options['align'] || 'middle'; - options['classid'] = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'; - options['codebase'] = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'; - options['movie'] = options['url'] || ''; - delete options['vars']; - delete options['url']; - if ('string' == typeof vars) { - options['flashvars'] = vars; - } else { - var fvars = []; - for (k in vars) { - item = vars[k]; - fvars.push(k + "=" + encodeURIComponent(item)); - } - options['flashvars'] = fvars.join('&'); - } - var str = [''); - var params = { - 'wmode' : 1, - 'scale' : 1, - 'quality' : 1, - 'play' : 1, - 'loop' : 1, - 'menu' : 1, - 'salign' : 1, - 'bgcolor' : 1, - 'base' : 1, - 'allowscriptaccess' : 1, - 'allownetworking' : 1, - 'allowfullscreen' : 1, - 'seamlesstabbing' : 1, - 'devicefont' : 1, - 'swliveconnect' : 1, - 'flashvars' : 1, - 'movie' : 1 - }; - - for (k in options) { - item = options[k]; - k = k.toLowerCase(); - if (params[k] && (item || item === false || item === 0)) { - str.push(''); - } - } - options['src'] = options['movie']; - options['name'] = options['id']; - delete options['id']; - delete options['movie']; - delete options['classid']; - delete options['codebase']; - options['type'] = 'application/x-shockwave-flash'; - options['pluginspage'] = 'http://www.macromedia.com/go/getflashplayer'; - str.push(''); - - return str.join(''); -}; - - -/** - * 在页面中创建一个flash对象 - * @name baidu.swf.create - * @function - * @grammar baidu.swf.create(options[, container]) - * - * @param {Object} options 创建flash的选项参数 - * @param {string} options.id 要创建的flash的标识 - * @param {string} options.url flash文件的url - * @param {String} options.errorMessage 未安装flash player或flash player版本号过低时的提示 - * @param {string} options.ver 最低需要的flash player版本号 - * @param {string} options.width flash的宽度 - * @param {string} options.height flash的高度 - * @param {string} options.align flash的对齐方式,允许值:middle/left/right/top/bottom - * @param {string} options.base 设置用于解析swf文件中的所有相对路径语句的基本目录或URL - * @param {string} options.bgcolor swf文件的背景色 - * @param {string} options.salign 设置缩放的swf文件在由width和height设置定义的区域内的位置。允许值:l/r/t/b/tl/tr/bl/br - * @param {boolean} options.menu 是否显示右键菜单,允许值:true/false - * @param {boolean} options.loop 播放到最后一帧时是否重新播放,允许值: true/false - * @param {boolean} options.play flash是否在浏览器加载时就开始播放。允许值:true/false - * @param {string} options.quality 设置flash播放的画质,允许值:low/medium/high/autolow/autohigh/best - * @param {string} options.scale 设置flash内容如何缩放来适应设置的宽高。允许值:showall/noborder/exactfit - * @param {string} options.wmode 设置flash的显示模式。允许值:window/opaque/transparent - * @param {string} options.allowscriptaccess 设置flash与页面的通信权限。允许值:always/never/sameDomain - * @param {string} options.allownetworking 设置swf文件中允许使用的网络API。允许值:all/internal/none - * @param {boolean} options.allowfullscreen 是否允许flash全屏。允许值:true/false - * @param {boolean} options.seamlesstabbing 允许设置执行无缝跳格,从而使用户能跳出flash应用程序。该参数只能在安装Flash7及更高版本的Windows中使用。允许值:true/false - * @param {boolean} options.devicefont 设置静态文本对象是否以设备字体呈现。允许值:true/false - * @param {boolean} options.swliveconnect 第一次加载flash时浏览器是否应启动Java。允许值:true/false - * @param {Object} options.vars 要传递给flash的参数,支持JSON或string类型。 - * - * @param {HTMLElement|string} [container] flash对象的父容器元素,不传递该参数时在当前代码位置创建flash对象。 - * @meta standard - * @see baidu.swf.createHTML,baidu.swf.getMovie - */ -baidu.swf.create = function (options, target) { - options = options || {}; - var html = baidu.swf.createHTML(options) - || options['errorMessage'] - || ''; - - if (target && 'string' == typeof target) { - target = document.getElementById(target); - } - baidu.dom.insertHTML( target || document.body ,'beforeEnd',html ); -}; -/** - * 判断是否为ie浏览器 - * @name baidu.browser.ie - * @field - * @grammar baidu.browser.ie - * @returns {Number} IE版本号 - */ -baidu.browser.ie = baidu.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? (document.documentMode || + RegExp['\x241']) : undefined; - -/** - * 移除数组中的项 - * @name baidu.array.remove - * @function - * @grammar baidu.array.remove(source, match) - * @param {Array} source 需要移除项的数组 - * @param {Any} match 要移除的项 - * @meta standard - * @see baidu.array.removeAt - * - * @returns {Array} 移除后的数组 - */ -baidu.array.remove = function (source, match) { - var len = source.length; - - while (len--) { - if (len in source && source[len] === match) { - source.splice(len, 1); - } - } - return source; -}; - -/** - * 判断目标参数是否Array对象 - * @name baidu.lang.isArray - * @function - * @grammar baidu.lang.isArray(source) - * @param {Any} source 目标参数 - * @meta standard - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isArray = function (source) { - return '[object Array]' == Object.prototype.toString.call(source); -}; - - - -/** - * 将一个变量转换成array - * @name baidu.lang.toArray - * @function - * @grammar baidu.lang.toArray(source) - * @param {mix} source 需要转换成array的变量 - * @version 1.3 - * @meta standard - * @returns {array} 转换后的array - */ -baidu.lang.toArray = function (source) { - if (source === null || source === undefined) - return []; - if (baidu.lang.isArray(source)) - return source; - if (typeof source.length !== 'number' || typeof source === 'string' || baidu.lang.isFunction(source)) { - return [source]; - } - if (source.item) { - var l = source.length, array = new Array(l); - while (l--) - array[l] = source[l]; - return array; - } - - return [].slice.call(source); -}; - -/** - * 获得flash对象的实例 - * @name baidu.swf.getMovie - * @function - * @grammar baidu.swf.getMovie(name) - * @param {string} name flash对象的名称 - * @see baidu.swf.create - * @meta standard - * @returns {HTMLElement} flash对象的实例 - */ -baidu.swf.getMovie = function (name) { - var movie = document[name], ret; - return baidu.browser.ie == 9 ? - movie && movie.length ? - (ret = baidu.array.remove(baidu.lang.toArray(movie),function(item){ - return item.tagName.toLowerCase() != "embed"; - })).length == 1 ? ret[0] : ret - : movie - : movie || window[name]; -}; - - -baidu.flash._Base = (function(){ - - var prefix = 'bd__flash__'; - - /** - * 创建一个随机的字符串 - * @private - * @return {String} - */ - function _createString(){ - return prefix + Math.floor(Math.random() * 2147483648).toString(36); - }; - - /** - * 检查flash状态 - * @private - * @param {Object} target flash对象 - * @return {Boolean} - */ - function _checkReady(target){ - if(typeof target !== 'undefined' && typeof target.flashInit !== 'undefined' && target.flashInit()){ - return true; - }else{ - return false; - } - }; - - /** - * 调用之前进行压栈的函数 - * @private - * @param {Array} callQueue 调用队列 - * @param {Object} target flash对象 - * @return {Null} - */ - function _callFn(callQueue, target){ - var result = null; - - callQueue = callQueue.reverse(); - baidu.each(callQueue, function(item){ - result = target.call(item.fnName, item.params); - item.callBack(result); - }); - }; - - /** - * 为传入的匿名函数创建函数名 - * @private - * @param {String|Function} fun 传入的匿名函数或者函数名 - * @return {String} - */ - function _createFunName(fun){ - var name = ''; - - if(baidu.lang.isFunction(fun)){ - name = _createString(); - window[name] = function(){ - fun.apply(window, arguments); - }; - - return name; - }else if(baidu.lang.isString){ - return fun; - } - }; - - /** - * 绘制flash - * @private - * @param {Object} options 创建参数 - * @return {Object} - */ - function _render(options){ - if(!options.id){ - options.id = _createString(); - } - - var container = options.container || ''; - delete(options.container); - - baidu.swf.create(options, container); - - return baidu.swf.getMovie(options.id); - }; - - return function(options, callBack){ - var me = this, - autoRender = (typeof options.autoRender !== 'undefined' ? options.autoRender : true), - createOptions = options.createOptions || {}, - target = null, - isReady = false, - callQueue = [], - timeHandle = null, - callBack = callBack || []; - - /** - * 将flash文件绘制到页面上 - * @public - * @return {Null} - */ - me.render = function(){ - target = _render(createOptions); - - if(callBack.length > 0){ - baidu.each(callBack, function(funName, index){ - callBack[index] = _createFunName(options[funName] || new Function()); - }); - } - me.call('setJSFuncName', [callBack]); - }; - - /** - * 返回flash状态 - * @return {Boolean} - */ - me.isReady = function(){ - return isReady; - }; - - /** - * 调用flash接口的统一入口 - * @param {String} fnName 调用的函数名 - * @param {Array} params 传入的参数组成的数组,若不许要参数,需传入空数组 - * @param {Function} [callBack] 异步调用后将返回值作为参数的调用回调函数,如无返回值,可以不传入此参数 - * @return {Null} - */ - me.call = function(fnName, params, callBack){ - if(!fnName) return null; - callBack = callBack || new Function(); - - var result = null; - - if(isReady){ - result = target.call(fnName, params); - callBack(result); - }else{ - callQueue.push({ - fnName: fnName, - params: params, - callBack: callBack - }); - - (!timeHandle) && (timeHandle = setInterval(_check, 200)); - } - }; - - /** - * 为传入的匿名函数创建函数名 - * @public - * @param {String|Function} fun 传入的匿名函数或者函数名 - * @return {String} - */ - me.createFunName = function(fun){ - return _createFunName(fun); - }; - - /** - * 检查flash是否ready, 并进行调用 - * @private - * @return {Null} - */ - function _check(){ - if(_checkReady(target)){ - clearInterval(timeHandle); - timeHandle = null; - _call(); - - isReady = true; - } - }; - - /** - * 调用之前进行压栈的函数 - * @private - * @return {Null} - */ - function _call(){ - _callFn(callQueue, target); - callQueue = []; - } - - autoRender && me.render(); - }; -})(); - - - -/** - * 创建flash based imageUploader - * @class - * @grammar baidu.flash.imageUploader(options) - * @param {Object} createOptions 创建flash时需要的参数,请参照baidu.swf.create文档 - * @config {Object} vars 创建imageUploader时所需要的参数 - * @config {Number} vars.gridWidth 每一个预览图片所占的宽度,应该为flash寛的整除 - * @config {Number} vars.gridHeight 每一个预览图片所占的高度,应该为flash高的整除 - * @config {Number} vars.picWidth 单张预览图片的宽度 - * @config {Number} vars.picHeight 单张预览图片的高度 - * @config {String} vars.uploadDataFieldName POST请求中图片数据的key,默认值'picdata' - * @config {String} vars.picDescFieldName POST请求中图片描述的key,默认值'picDesc' - * @config {Number} vars.maxSize 文件的最大体积,单位'MB' - * @config {Number} vars.compressSize 上传前如果图片体积超过该值,会先压缩 - * @config {Number} vars.maxNum:32 最大上传多少个文件 - * @config {Number} vars.compressLength 能接受的最大边长,超过该值会等比压缩 - * @config {String} vars.url 上传的url地址 - * @config {Number} vars.mode mode == 0时,是使用滚动条,mode == 1时,拉伸flash, 默认值为0 - * @see baidu.swf.createHTML - * @param {String} backgroundUrl 背景图片路径 - * @param {String} listBacgroundkUrl 布局控件背景 - * @param {String} buttonUrl 按钮图片不背景 - * @param {String|Function} selectFileCallback 选择文件的回调 - * @param {String|Function} exceedFileCallback文件超出限制的最大体积时的回调 - * @param {String|Function} deleteFileCallback 删除文件的回调 - * @param {String|Function} startUploadCallback 开始上传某个文件时的回调 - * @param {String|Function} uploadCompleteCallback 某个文件上传完成的回调 - * @param {String|Function} uploadErrorCallback 某个文件上传失败的回调 - * @param {String|Function} allCompleteCallback 全部上传完成时的回调 - * @param {String|Function} changeFlashHeight 改变Flash的高度,mode==1的时候才有用 - */ -baidu.flash.imageUploader = baidu.flash.imageUploader || function(options){ - - var me = this, - options = options || {}, - _flash = new baidu.flash._Base(options, [ - 'selectFileCallback', - 'exceedFileCallback', - 'deleteFileCallback', - 'startUploadCallback', - 'uploadCompleteCallback', - 'uploadErrorCallback', - 'allCompleteCallback', - 'changeFlashHeight' - ]); - /** - * 开始或回复上传图片 - * @public - * @return {Null} - */ - me.upload = function(){ - _flash.call('upload'); - }; - - /** - * 暂停上传图片 - * @public - * @return {Null} - */ - me.pause = function(){ - _flash.call('pause'); - }; - me.addCustomizedParams = function(index,obj){ - _flash.call('addCustomizedParams',[index,obj]); - } -}; - -/** - * 操作原生对象的方法 - * @namespace baidu.object - */ -baidu.object = baidu.object || {}; - - -/** - * 将源对象的所有属性拷贝到目标对象中 - * @author erik - * @name baidu.object.extend - * @function - * @grammar baidu.object.extend(target, source) - * @param {Object} target 目标对象 - * @param {Object} source 源对象 - * @see baidu.array.merge - * @remark - * -1.目标对象中,与源对象key相同的成员将会被覆盖。
    -2.源对象的prototype成员不会拷贝。 - - * @shortcut extend - * @meta standard - * - * @returns {Object} 目标对象 - */ -baidu.extend = -baidu.object.extend = function (target, source) { - for (var p in source) { - if (source.hasOwnProperty(p)) { - target[p] = source[p]; - } - } - - return target; -}; - - - - - -/** - * 创建flash based fileUploader - * @class - * @grammar baidu.flash.fileUploader(options) - * @param {Object} options - * @config {Object} createOptions 创建flash时需要的参数,请参照baidu.swf.create文档 - * @config {String} createOptions.width - * @config {String} createOptions.height - * @config {Number} maxNum 最大可选文件数 - * @config {Function|String} selectFile - * @config {Function|String} exceedMaxSize - * @config {Function|String} deleteFile - * @config {Function|String} uploadStart - * @config {Function|String} uploadComplete - * @config {Function|String} uploadError - * @config {Function|String} uploadProgress - */ -baidu.flash.fileUploader = baidu.flash.fileUploader || function(options){ - var me = this, - options = options || {}; - - options.createOptions = baidu.extend({ - wmod: 'transparent' - },options.createOptions || {}); - - var _flash = new baidu.flash._Base(options, [ - 'selectFile', - 'exceedMaxSize', - 'deleteFile', - 'uploadStart', - 'uploadComplete', - 'uploadError', - 'uploadProgress' - ]); - - _flash.call('setMaxNum', options.maxNum ? [options.maxNum] : [1]); - - /** - * 设置当鼠标移动到flash上时,是否变成手型 - * @public - * @param {Boolean} isCursor - * @return {Null} - */ - me.setHandCursor = function(isCursor){ - _flash.call('setHandCursor', [isCursor || false]); - }; - - /** - * 设置鼠标相应函数名 - * @param {String|Function} fun - */ - me.setMSFunName = function(fun){ - _flash.call('setMSFunName',[_flash.createFunName(fun)]); - }; - - /** - * 执行上传操作 - * @param {String} url 上传的url - * @param {String} fieldName 上传的表单字段名 - * @param {Object} postData 键值对,上传的POST数据 - * @param {Number|Array|null|-1} [index]上传的文件序列 - * Int值上传该文件 - * Array一次串行上传该序列文件 - * -1/null上传所有文件 - * @return {Null} - */ - me.upload = function(url, fieldName, postData, index){ - - if(typeof url !== 'string' || typeof fieldName !== 'string') return null; - if(typeof index === 'undefined') index = -1; - - _flash.call('upload', [url, fieldName, postData, index]); - }; - - /** - * 取消上传操作 - * @public - * @param {Number|-1} index - */ - me.cancel = function(index){ - if(typeof index === 'undefined') index = -1; - _flash.call('cancel', [index]); - }; - - /** - * 删除文件 - * @public - * @param {Number|Array} [index] 要删除的index,不传则全部删除 - * @param {Function} callBack - * */ - me.deleteFile = function(index, callBack){ - - var callBackAll = function(list){ - callBack && callBack(list); - }; - - if(typeof index === 'undefined'){ - _flash.call('deleteFilesAll', [], callBackAll); - return; - }; - - if(typeof index === 'Number') index = [index]; - index.sort(function(a,b){ - return b-a; - }); - baidu.each(index, function(item){ - _flash.call('deleteFileBy', item, callBackAll); - }); - }; - - /** - * 添加文件类型,支持macType - * @public - * @param {Object|Array[Object]} type {description:String, extention:String} - * @return {Null}; - */ - me.addFileType = function(type){ - var type = type || [[]]; - - if(type instanceof Array) type = [type]; - else type = [[type]]; - _flash.call('addFileTypes', type); - }; - - /** - * 设置文件类型,支持macType - * @public - * @param {Object|Array[Object]} type {description:String, extention:String} - * @return {Null}; - */ - me.setFileType = function(type){ - var type = type || [[]]; - - if(type instanceof Array) type = [type]; - else type = [[type]]; - _flash.call('setFileTypes', type); - }; - - /** - * 设置可选文件的数量限制 - * @public - * @param {Number} num - * @return {Null} - */ - me.setMaxNum = function(num){ - _flash.call('setMaxNum', [num]); - }; - - /** - * 设置可选文件大小限制,以兆M为单位 - * @public - * @param {Number} num,0为无限制 - * @return {Null} - */ - me.setMaxSize = function(num){ - _flash.call('setMaxSize', [num]); - }; - - /** - * @public - */ - me.getFileAll = function(callBack){ - _flash.call('getFileAll', [], callBack); - }; - - /** - * @public - * @param {Number} index - * @param {Function} [callBack] - */ - me.getFileByIndex = function(index, callBack){ - _flash.call('getFileByIndex', [], callBack); - }; - - /** - * @public - * @param {Number} index - * @param {function} [callBack] - */ - me.getStatusByIndex = function(index, callBack){ - _flash.call('getStatusByIndex', [], callBack); - }; -}; - -/** - * 使用动态script标签请求服务器资源,包括由服务器端的回调和浏览器端的回调 - * @namespace baidu.sio - */ -baidu.sio = baidu.sio || {}; - -/** - * - * @param {HTMLElement} src script节点 - * @param {String} url script节点的地址 - * @param {String} [charset] 编码 - */ -baidu.sio._createScriptTag = function(scr, url, charset){ - scr.setAttribute('type', 'text/javascript'); - charset && scr.setAttribute('charset', charset); - scr.setAttribute('src', url); - document.getElementsByTagName('head')[0].appendChild(scr); -}; - -/** - * 删除script的属性,再删除script标签,以解决修复内存泄漏的问题 - * - * @param {HTMLElement} src script节点 - */ -baidu.sio._removeScriptTag = function(scr){ - if (scr.clearAttributes) { - scr.clearAttributes(); - } else { - for (var attr in scr) { - if (scr.hasOwnProperty(attr)) { - delete scr[attr]; - } - } - } - if(scr && scr.parentNode){ - scr.parentNode.removeChild(scr); - } - scr = null; -}; - - -/** - * 通过script标签加载数据,加载完成由浏览器端触发回调 - * @name baidu.sio.callByBrowser - * @function - * @grammar baidu.sio.callByBrowser(url, opt_callback, opt_options) - * @param {string} url 加载数据的url - * @param {Function|string} opt_callback 数据加载结束时调用的函数或函数名 - * @param {Object} opt_options 其他可选项 - * @config {String} [charset] script的字符集 - * @config {Integer} [timeOut] 超时时间,超过这个时间将不再响应本请求,并触发onfailure函数 - * @config {Function} [onfailure] timeOut设定后才生效,到达超时时间时触发本函数 - * @remark - * 1、与callByServer不同,callback参数只支持Function类型,不支持string。 - * 2、如果请求了一个不存在的页面,callback函数在IE/opera下也会被调用,因此使用者需要在onsuccess函数中判断数据是否正确加载。 - * @meta standard - * @see baidu.sio.callByServer - */ -baidu.sio.callByBrowser = function (url, opt_callback, opt_options) { - var scr = document.createElement("SCRIPT"), - scriptLoaded = 0, - options = opt_options || {}, - charset = options['charset'], - callback = opt_callback || function(){}, - timeOut = options['timeOut'] || 0, - timer; - scr.onload = scr.onreadystatechange = function () { - if (scriptLoaded) { - return; - } - - var readyState = scr.readyState; - if ('undefined' == typeof readyState - || readyState == "loaded" - || readyState == "complete") { - scriptLoaded = 1; - try { - callback(); - clearTimeout(timer); - } finally { - scr.onload = scr.onreadystatechange = null; - baidu.sio._removeScriptTag(scr); - } - } - }; - - if( timeOut ){ - timer = setTimeout(function(){ - scr.onload = scr.onreadystatechange = null; - baidu.sio._removeScriptTag(scr); - options.onfailure && options.onfailure(); - }, timeOut); - } - - baidu.sio._createScriptTag(scr, url, charset); -}; - -/** - * 通过script标签加载数据,加载完成由服务器端触发回调 - * @name baidu.sio.callByServer - * @function - * @grammar baidu.sio.callByServer(url, callback[, opt_options]) - * @param {string} url 加载数据的url. - * @param {Function|string} callback 服务器端调用的函数或函数名。如果没有指定本参数,将在URL中寻找options['queryField']做为callback的方法名. - * @param {Object} opt_options 加载数据时的选项. - * @config {string} [charset] script的字符集 - * @config {string} [queryField] 服务器端callback请求字段名,默认为callback - * @config {Integer} [timeOut] 超时时间(单位:ms),超过这个时间将不再响应本请求,并触发onfailure函数 - * @config {Function} [onfailure] timeOut设定后才生效,到达超时时间时触发本函数 - * @remark - * 如果url中已经包含key为“options['queryField']”的query项,将会被替换成callback中参数传递或自动生成的函数名。 - * @meta standard - * @see baidu.sio.callByBrowser - */ -baidu.sio.callByServer = /**@function*/function(url, callback, opt_options) { - var scr = document.createElement('SCRIPT'), - prefix = 'bd__cbs__', - callbackName, - callbackImpl, - options = opt_options || {}, - charset = options['charset'], - queryField = options['queryField'] || 'callback', - timeOut = options['timeOut'] || 0, - timer, - reg = new RegExp('(\\?|&)' + queryField + '=([^&]*)'), - matches; - - if (baidu.lang.isFunction(callback)) { - callbackName = prefix + Math.floor(Math.random() * 2147483648).toString(36); - window[callbackName] = getCallBack(0); - } else if(baidu.lang.isString(callback)){ - callbackName = callback; - } else { - if (matches = reg.exec(url)) { - callbackName = matches[2]; - } - } - - if( timeOut ){ - timer = setTimeout(getCallBack(1), timeOut); - } - url = url.replace(reg, '\x241' + queryField + '=' + callbackName); - - if (url.search(reg) < 0) { - url += (url.indexOf('?') < 0 ? '?' : '&') + queryField + '=' + callbackName; - } - baidu.sio._createScriptTag(scr, url, charset); - - /* - * 返回一个函数,用于立即(挂在window上)或者超时(挂在setTimeout中)时执行 - */ - function getCallBack(onTimeOut){ - /*global callbackName, callback, scr, options;*/ - return function(){ - try { - if( onTimeOut ){ - options.onfailure && options.onfailure(); - }else{ - callback.apply(window, arguments); - clearTimeout(timer); - } - window[callbackName] = null; - delete window[callbackName]; - } catch (exception) { - } finally { - baidu.sio._removeScriptTag(scr); - } - } - } -}; - -/** - * 通过请求一个图片的方式令服务器存储一条日志 - * @function - * @grammar baidu.sio.log(url) - * @param {string} url 要发送的地址. - * @author: int08h,leeight - */ -baidu.sio.log = function(url) { - var img = new Image(), - key = 'tangram_sio_log_' + Math.floor(Math.random() * - 2147483648).toString(36); - window[key] = img; - - img.onload = img.onerror = img.onabort = function() { - img.onload = img.onerror = img.onabort = null; - - window[key] = null; - img = null; - }; - img.src = url; -}; - - - -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json.js - * author: erik - * version: 1.1.0 - * date: 2009/12/02 - */ - - -/** - * 操作json对象的方法 - * @namespace baidu.json - */ -baidu.json = baidu.json || {}; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/parse.js - * author: erik, berg - * version: 1.2 - * date: 2009/11/23 - */ - - - -/** - * 将字符串解析成json对象。注:不会自动祛除空格 - * @name baidu.json.parse - * @function - * @grammar baidu.json.parse(data) - * @param {string} source 需要解析的字符串 - * @remark - * 该方法的实现与ecma-262第五版中规定的JSON.parse不同,暂时只支持传入一个参数。后续会进行功能丰富。 - * @meta standard - * @see baidu.json.stringify,baidu.json.decode - * - * @returns {JSON} 解析结果json对象 - */ -baidu.json.parse = function (data) { - //2010/12/09:更新至不使用原生parse,不检测用户输入是否正确 - return (new Function("return (" + data + ")"))(); -}; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/decode.js - * author: erik, cat - * version: 1.3.4 - * date: 2010/12/23 - */ - - - -/** - * 将字符串解析成json对象,为过时接口,今后会被baidu.json.parse代替 - * @name baidu.json.decode - * @function - * @grammar baidu.json.decode(source) - * @param {string} source 需要解析的字符串 - * @meta out - * @see baidu.json.encode,baidu.json.parse - * - * @returns {JSON} 解析结果json对象 - */ -baidu.json.decode = baidu.json.parse; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/stringify.js - * author: erik - * version: 1.1.0 - * date: 2010/01/11 - */ - - - -/** - * 将json对象序列化 - * @name baidu.json.stringify - * @function - * @grammar baidu.json.stringify(value) - * @param {JSON} value 需要序列化的json对象 - * @remark - * 该方法的实现与ecma-262第五版中规定的JSON.stringify不同,暂时只支持传入一个参数。后续会进行功能丰富。 - * @meta standard - * @see baidu.json.parse,baidu.json.encode - * - * @returns {string} 序列化后的字符串 - */ -baidu.json.stringify = (function () { - /** - * 字符串处理时需要转义的字符表 - * @private - */ - var escapeMap = { - "\b": '\\b', - "\t": '\\t', - "\n": '\\n', - "\f": '\\f', - "\r": '\\r', - '"' : '\\"', - "\\": '\\\\' - }; - - /** - * 字符串序列化 - * @private - */ - function encodeString(source) { - if (/["\\\x00-\x1f]/.test(source)) { - source = source.replace( - /["\\\x00-\x1f]/g, - function (match) { - var c = escapeMap[match]; - if (c) { - return c; - } - c = match.charCodeAt(); - return "\\u00" - + Math.floor(c / 16).toString(16) - + (c % 16).toString(16); - }); - } - return '"' + source + '"'; - } - - /** - * 数组序列化 - * @private - */ - function encodeArray(source) { - var result = ["["], - l = source.length, - preComma, i, item; - - for (i = 0; i < l; i++) { - item = source[i]; - - switch (typeof item) { - case "undefined": - case "function": - case "unknown": - break; - default: - if(preComma) { - result.push(','); - } - result.push(baidu.json.stringify(item)); - preComma = 1; - } - } - result.push("]"); - return result.join(""); - } - - /** - * 处理日期序列化时的补零 - * @private - */ - function pad(source) { - return source < 10 ? '0' + source : source; - } - - /** - * 日期序列化 - * @private - */ - function encodeDate(source){ - return '"' + source.getFullYear() + "-" - + pad(source.getMonth() + 1) + "-" - + pad(source.getDate()) + "T" - + pad(source.getHours()) + ":" - + pad(source.getMinutes()) + ":" - + pad(source.getSeconds()) + '"'; - } - - return function (value) { - switch (typeof value) { - case 'undefined': - return 'undefined'; - - case 'number': - return isFinite(value) ? String(value) : "null"; - - case 'string': - return encodeString(value); - - case 'boolean': - return String(value); - - default: - if (value === null) { - return 'null'; - } else if (value instanceof Array) { - return encodeArray(value); - } else if (value instanceof Date) { - return encodeDate(value); - } else { - var result = ['{'], - encode = baidu.json.stringify, - preComma, - item; - - for (var key in value) { - if (Object.prototype.hasOwnProperty.call(value, key)) { - item = value[key]; - switch (typeof item) { - case 'undefined': - case 'unknown': - case 'function': - break; - default: - if (preComma) { - result.push(','); - } - preComma = 1; - result.push(encode(key) + ':' + encode(item)); - } - } - } - result.push('}'); - return result.join(''); - } - } - }; -})(); -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/encode.js - * author: erik, cat - * version: 1.3.4 - * date: 2010/12/23 - */ - - - -/** - * 将json对象序列化,为过时接口,今后会被baidu.json.stringify代替 - * @name baidu.json.encode - * @function - * @grammar baidu.json.encode(value) - * @param {JSON} value 需要序列化的json对象 - * @meta out - * @see baidu.json.decode,baidu.json.stringify - * - * @returns {string} 序列化后的字符串 - */ -baidu.json.encode = baidu.json.stringify; diff --git a/public/static/UEditor/dialogs/wordimage/wordimage.html b/public/static/UEditor/dialogs/wordimage/wordimage.html deleted file mode 100644 index 6cf6067..0000000 --- a/public/static/UEditor/dialogs/wordimage/wordimage.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    - -
    - : -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/public/static/UEditor/dialogs/wordimage/wordimage.js b/public/static/UEditor/dialogs/wordimage/wordimage.js deleted file mode 100644 index 98f3a22..0000000 --- a/public/static/UEditor/dialogs/wordimage/wordimage.js +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Created by JetBrains PhpStorm. - * User: taoqili - * Date: 12-1-30 - * Time: 下午12:50 - * To change this template use File | Settings | File Templates. - */ - - - -var wordImage = {}; -//(function(){ -var g = baidu.g, - flashObj,flashContainer; - -wordImage.init = function(opt, callbacks) { - showLocalPath("localPath"); - //createCopyButton("clipboard","localPath"); - createFlashUploader(opt, callbacks); - addUploadListener(); - addOkListener(); -}; - -function hideFlash(){ - flashObj = null; - flashContainer.innerHTML = ""; -} -function addOkListener() { - dialog.onok = function() { - if (!imageUrls.length) return; - var urlPrefix = editor.getOpt('imageUrlPrefix'), - images = domUtils.getElementsByTagName(editor.document,"img"); - editor.fireEvent('saveScene'); - for (var i = 0,img; img = images[i++];) { - var src = img.getAttribute("word_img"); - if (!src) continue; - for (var j = 0,url; url = imageUrls[j++];) { - if (src.indexOf(url.original.replace(" ","")) != -1) { - img.src = urlPrefix + url.url; - img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性 - img.setAttribute("title",url.title); - domUtils.removeAttributes(img, ["word_img","style","width","height"]); - editor.fireEvent("selectionchange"); - break; - } - } - } - editor.fireEvent('saveScene'); - hideFlash(); - }; - dialog.oncancel = function(){ - hideFlash(); - } -} - -/** - * 绑定开始上传事件 - */ -function addUploadListener() { - g("upload").onclick = function () { - flashObj.upload(); - this.style.display = "none"; - }; -} - -function showLocalPath(id) { - //单张编辑 - var img = editor.selection.getRange().getClosedNode(); - var images = editor.execCommand('wordimage'); - if(images.length==1 || img && img.tagName == 'IMG'){ - g(id).value = images[0]; - return; - } - var path = images[0]; - var leftSlashIndex = path.lastIndexOf("/")||0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 - rightSlashIndex = path.lastIndexOf("\\")||0, - separater = leftSlashIndex > rightSlashIndex ? "/":"\\" ; - - path = path.substring(0, path.lastIndexOf(separater)+1); - g(id).value = path; -} - -function createFlashUploader(opt, callbacks) { - //由于lang.flashI18n是静态属性,不可以直接进行修改,否则会影响到后续内容 - var i18n = utils.extend({},lang.flashI18n); - //处理图片资源地址的编码,补全等问题 - for(var i in i18n){ - if(!(i in {"lang":1,"uploadingTF":1,"imageTF":1,"textEncoding":1}) && i18n[i]){ - i18n[i] = encodeURIComponent(editor.options.langPath + editor.options.lang + "/images/" + i18n[i]); - } - } - opt = utils.extend(opt,i18n,false); - var option = { - createOptions:{ - id:'flash', - url:opt.flashUrl, - width:opt.width, - height:opt.height, - errorMessage:lang.flashError, - wmode:browser.safari ? 'transparent' : 'window', - ver:'10.0.0', - vars:opt, - container:opt.container - } - }; - - option = extendProperty(callbacks, option); - flashObj = new baidu.flash.imageUploader(option); - flashContainer = $G(opt.container); -} - -function extendProperty(fromObj, toObj) { - for (var i in fromObj) { - if (!toObj[i]) { - toObj[i] = fromObj[i]; - } - } - return toObj; -} - -//})(); - -function getPasteData(id) { - baidu.g("msg").innerHTML = lang.copySuccess + "
    "; - setTimeout(function() { - baidu.g("msg").innerHTML = ""; - }, 5000); - return baidu.g(id).value; -} - -function createCopyButton(id, dataFrom) { - baidu.swf.create({ - id:"copyFlash", - url:"fClipboard_ueditor.swf", - width:"58", - height:"25", - errorMessage:"", - bgColor:"#CBCBCB", - wmode:"transparent", - ver:"10.0.0", - vars:{ - tid:dataFrom - } - }, id - ); - - var clipboard = baidu.swf.getMovie("copyFlash"); - var clipinterval = setInterval(function() { - if (clipboard && clipboard.flashInit) { - clearInterval(clipinterval); - clipboard.setHandCursor(true); - clipboard.setContentFuncName("getPasteData"); - //clipboard.setMEFuncName("mouseEventHandler"); - } - }, 500); -} -createCopyButton("clipboard", "localPath"); \ No newline at end of file diff --git a/public/static/UEditor/index.html b/public/static/UEditor/index.html deleted file mode 100644 index a416418..0000000 --- a/public/static/UEditor/index.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - 完整demo - - - - - - - - - - -
    -

    完整demo

    - -
    -
    -
    - - - - - - - - - - - -
    -
    - - - - - - - -
    - -
    - - -
    - -
    -
    - - -
    - - - - \ No newline at end of file diff --git a/public/static/UEditor/lang/en/en.js b/public/static/UEditor/lang/en/en.js deleted file mode 100644 index c7e22f5..0000000 --- a/public/static/UEditor/lang/en/en.js +++ /dev/null @@ -1,684 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-6-12 - * Time: 下午6:57 - * To change this template use File | Settings | File Templates. - */ -UE.I18N['en'] = { - 'labelMap':{ - 'anchor':'Anchor', 'undo':'Undo', 'redo':'Redo', 'bold':'Bold', 'indent':'Indent', 'snapscreen':'SnapScreen', - 'italic':'Italic', 'underline':'Underline', 'strikethrough':'Strikethrough', 'subscript':'SubScript','fontborder':'text border', - 'superscript':'SuperScript', 'formatmatch':'Format Match', 'source':'Source', 'blockquote':'BlockQuote', - 'pasteplain':'PastePlain', 'selectall':'SelectAll', 'print':'Print', 'preview':'Preview', - 'horizontal':'Horizontal', 'removeformat':'RemoveFormat', 'time':'Time', 'date':'Date', - 'unlink':'Unlink', 'insertrow':'InsertRow', 'insertcol':'InsertCol', 'mergeright':'MergeRight', 'mergedown':'MergeDown', - 'deleterow':'DeleteRow', 'deletecol':'DeleteCol', 'splittorows':'SplitToRows','insertcode':'insert code', - 'splittocols':'SplitToCols', 'splittocells':'SplitToCells','deletecaption':'DeleteCaption','inserttitle':'InsertTitle', - 'mergecells':'MergeCells', 'deletetable':'DeleteTable', 'cleardoc':'Clear', 'insertparagraphbeforetable':"InsertParagraphBeforeTable", - 'fontfamily':'FontFamily', 'fontsize':'FontSize', 'paragraph':'Paragraph','simpleupload':'Single Image','insertimage':'Multi Image','edittable':'Edit Table', 'edittd':'Edit Td','link':'Link', - 'emotion':'Emotion', 'spechars':'Spechars', 'searchreplace':'SearchReplace', 'map':'BaiduMap', 'gmap':'GoogleMap', - 'insertvideo':'Video', 'help':'Help', 'justifyleft':'JustifyLeft', 'justifyright':'JustifyRight', 'justifycenter':'JustifyCenter', - 'justifyjustify':'Justify', 'forecolor':'FontColor', 'backcolor':'BackColor', 'insertorderedlist':'OL', - 'insertunorderedlist':'UL', 'fullscreen':'FullScreen', 'directionalityltr':'EnterFromLeft', 'directionalityrtl':'EnterFromRight', - 'rowspacingtop':'RowSpacingTop', 'rowspacingbottom':'RowSpacingBottom', 'pagebreak':'PageBreak', 'insertframe':'Iframe', 'imagenone':'Default', - 'imageleft':'ImageLeft', 'imageright':'ImageRight', 'attachment':'Attachment', 'imagecenter':'ImageCenter', 'wordimage':'WordImage', - 'lineheight':'LineHeight','edittip':'EditTip','customstyle':'CustomStyle', 'scrawl':'Scrawl', 'autotypeset':'AutoTypeset', - 'webapp':'WebAPP', 'touppercase':'UpperCase', 'tolowercase':'LowerCase','template':'Template','background':'Background','inserttable':'InsertTable', - 'music':'Music', 'charts': 'charts','drafts': 'Load from Drafts' - }, - 'insertorderedlist':{ - 'num':'1,2,3...', - 'num1':'1),2),3)...', - 'num2':'(1),(2),(3)...', - 'cn':'一,二,三....', - 'cn1':'一),二),三)....', - 'cn2':'(一),(二),(三)....', - 'decimal':'1,2,3...', - 'lower-alpha':'a,b,c...', - 'lower-roman':'i,ii,iii...', - 'upper-alpha':'A,B,C...', - 'upper-roman':'I,II,III...' - }, - 'insertunorderedlist':{ - 'circle':'○ Circle', - 'disc':'● Circle dot', - 'square':'■ Rectangle ', - 'dash' :'- Dash', - 'dot' : '。dot' - }, - 'paragraph':{'p':'Paragraph', 'h1':'Title 1', 'h2':'Title 2', 'h3':'Title 3', 'h4':'Title 4', 'h5':'Title 5', 'h6':'Title 6'}, - 'fontfamily':{ - 'songti':'Sim Sun', - 'kaiti':'Sim Kai', - 'heiti':'Sim Hei', - 'lishu':'Sim Li', - 'yahei': 'Microsoft YaHei', - 'andaleMono':'Andale Mono', - 'arial': 'Arial', - 'arialBlack':'Arial Black', - 'comicSansMs':'Comic Sans MS', - 'impact':'Impact', - 'timesNewRoman':'Times New Roman' - }, - 'customstyle':{ - 'tc':'Title center', - 'tl':'Title left', - 'im':'Important', - 'hi':'Highlight' - }, - 'autoupload': { - 'exceedSizeError': 'File Size Exceed', - 'exceedTypeError': 'File Type Not Allow', - 'jsonEncodeError': 'Server Return Format Error', - 'loading':"loading...", - 'loadError':"load error", - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - }, - 'simpleupload':{ - 'exceedSizeError': 'File Size Exceed', - 'exceedTypeError': 'File Type Not Allow', - 'jsonEncodeError': 'Server Return Format Error', - 'loading':"loading...", - 'loadError':"load error", - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - }, - 'elementPathTip':"Path", - 'wordCountTip':"Word Count", - 'wordCountMsg':'{#count} characters entered,{#leave} left. ', - 'wordOverFlowMsg':'The number of characters has exceeded allowable maximum values, the server may refuse to save!', - 'ok':"OK", - 'cancel':"Cancel", - 'closeDialog':"closeDialog", - 'tableDrag':"You must import the file uiUtils.js before drag! ", - 'autofloatMsg':"The plugin AutoFloat depends on EditorUI!", - 'loadconfigError': 'Get server config error.', - 'loadconfigFormatError': 'Server config format error.', - 'loadconfigHttpError': 'Get server config http error.', - 'snapScreen_plugin':{ - 'browserMsg':"Only IE supported!", - 'callBackErrorMsg':"The callback data is wrong,please check the config!", - 'uploadErrorMsg':"Upload error,please check your server environment! " - }, - 'insertcode':{ - 'as3':'ActionScript 3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'CSS', - 'cf':'ColdFusion', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'HTML', - 'java':'Java', - 'jfx':'JavaFX', - 'js':'JavaScript', - 'pl':'Perl', - 'php':'PHP', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'SQL', - 'vb':'Visual Basic', - 'xml':'XML' - }, - 'confirmClear':"Do you confirm to clear the Document?", - 'contextMenu':{ - 'delete':"Delete", - 'selectall':"Select all", - 'deletecode':"Delete Code", - 'cleardoc':"Clear Document", - 'confirmclear':"Do you confirm to clear the Document?", - 'unlink':"Unlink", - 'paragraph':"Paragraph", - 'edittable':"Table property", - 'aligncell':'Align cell', - 'aligntable':'Table alignment', - 'tableleft':'Left float', - 'tablecenter':'Center', - 'tableright':'Right float', - 'aligntd':'Cell alignment', - 'edittd':"Cell property", - 'setbordervisible':'set table edge visible', - 'table':"Table", - 'justifyleft':'Justify Left', - 'justifyright':'Justify Right', - 'justifycenter':'Justify Center', - 'justifyjustify':'Default', - 'deletetable':"Delete table", - 'insertparagraphbefore':"InsertedBeforeLine", - 'insertparagraphafter':'InsertedAfterLine', - 'inserttable':'Insert table', - 'insertcaption':'Insert caption', - 'deletecaption':'Delete Caption', - 'inserttitle':'Insert Title', - 'deletetitle':'Delete Title', - 'inserttitlecol':'Insert Title Col', - 'deletetitlecol':'Delete Title Col', - 'averageDiseRow':'AverageDise Row', - 'averageDisCol':'AverageDis Col', - 'deleterow':"Delete row", - 'deletecol':"Delete col", - 'insertrow':"Insert row", - 'insertcol':"Insert col", - 'insertrownext':'Insert Row Next', - 'insertcolnext':'Insert Col Next', - 'mergeright':"Merge right", - 'mergeleft':"Merge left", - 'mergedown':"Merge down", - 'mergecells':"Merge cells", - 'splittocells':"Split to cells", - 'splittocols':"Split to Cols", - 'splittorows':"Split to Rows", - 'tablesort':'Table sorting', - 'enablesort':'Sorting Enable', - 'disablesort':'Sorting Disable', - 'reversecurrent':'Reverse current', - 'orderbyasc':'Order By ASCII', - 'reversebyasc':'Reverse By ASCII', - 'orderbynum':'Order By Num', - 'reversebynum':'Reverse By Num', - 'borderbk':'Border shading', - 'setcolor':'interlaced color', - 'unsetcolor':'Cancel interlacedcolor', - 'setbackground':'Background interlaced', - 'unsetbackground':'Cancel Bk interlaced', - 'redandblue':'Blue and red', - 'threecolorgradient':'Three-color gradient', - 'copy':"Copy(Ctrl + c)", - 'copymsg':"Browser does not support. Please use 'Ctrl + c' instead!", - 'paste':"Paste(Ctrl + v)", - 'pastemsg':"Browser does not support. Please use 'Ctrl + v' instead!" - }, - 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", - 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!", - 'anthorMsg':"Link", - 'clearColor':'Clear', - 'standardColor':'Standard color', - 'themeColor':'Theme color', - 'property':'Property', - 'default':'Default', - 'modify':'Modify', - 'justifyleft':'Justify Left', - 'justifyright':'Justify Right', - 'justifycenter':'Justify Center', - 'justify':'Default', - 'clear':'Clear', - 'anchorMsg':'Anchor', - 'delete':'Delete', - 'clickToUpload':"Click to upload", - 'unset':'Language hasn\'t been set!', - 't_row':'row', - 't_col':'col', - 'pasteOpt':'Paste Option', - 'pasteSourceFormat':"Keep Source Formatting", - 'tagFormat':'Keep tag', - 'pasteTextFormat':'Keep Text only', - 'more':'More', - 'autoTypeSet':{ - 'mergeLine':"Merge empty line", - 'delLine':"Del empty line", - 'removeFormat':"Remove format", - 'indent':"Indent", - 'alignment':"Alignment", - 'imageFloat':"Image float", - 'removeFontsize':"Remove font size", - 'removeFontFamily':"Remove fontFamily", - 'removeHtml':"Remove redundant HTML code", - 'pasteFilter':"Paste filter", - 'run':"Done", - 'symbol':'Symbol Conversion', - 'bdc2sb':'Full-width to Half-width', - 'tobdc':'Half-width to Full-width' - }, - - 'background':{ - 'static':{ - 'lang_background_normal':'Normal', - 'lang_background_local':'Online', - 'lang_background_set':'Background Set', - 'lang_background_none':'No Background', - 'lang_background_colored':'Colored Background', - 'lang_background_color':'Color Set', - 'lang_background_netimg':'Net-Image', - 'lang_background_align':'Align Type', - 'lang_background_position':'Position', - 'repeatType':{'options':["Center", "Repeat-x", "Repeat-y", "Tile","Custom"]} - }, - 'noUploadImage':"No pictures has been uploaded!", - 'toggleSelect':'Change the active state by click!\n Image Size: ' - }, - //===============dialog i18N======================= - 'insertimage':{ - 'static':{ - 'lang_tab_remote':"Insert", - 'lang_tab_upload':"Local", - 'lang_tab_online':"Manager", - 'lang_tab_search':"Search", - 'lang_input_url':"Address:", - 'lang_input_size':"Size:", - 'lang_input_width':"Width", - 'lang_input_height':"Height", - 'lang_input_border':"Border:", - 'lang_input_vhspace':"Margins:", - 'lang_input_title':"Title:", - 'lang_input_align':'Image Float Style:', - 'lang_imgLoading':"Loading...", - 'lang_start_upload':"Start Upload", - 'lock':{'title':"Lock rate"}, - 'searchType':{'title':"ImageType", 'options':["News", "Wallpaper", "emotions", "photo"]}, - 'searchTxt':{'value':"Enter the search keyword!"}, - 'searchBtn':{'value':"Search"}, - 'searchReset':{'value':"Clear"}, - 'noneAlign':{'title':'None Float'}, - 'leftAlign':{'title':'Left Float'}, - 'rightAlign':{'title':'Right Float'}, - 'centerAlign':{'title':'Center In A Line'} - }, - 'uploadSelectFile':'Select File', - 'uploadAddFile':'Add File', - 'uploadStart':'Start Upload', - 'uploadPause':'Pause Upload', - 'uploadContinue':'Continue Upload', - 'uploadRetry':'Retry Upload', - 'uploadDelete':'Delete', - 'uploadTurnLeft':'Turn Left', - 'uploadTurnRight':'Turn Right', - 'uploadPreview':'Doing Preview', - 'uploadNoPreview':'Can Not Preview', - 'updateStatusReady': 'Selected _ pictures, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ pictures (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize':'File Size Exceed', - 'errorFileType':'File Type Not Allow', - 'errorInterrupt':'File Upload Interrupted', - 'errorUploadRetry':'Upload Error, Please Retry.', - 'errorHttp':'Http Error', - 'errorServerUpload':'Server Result Error.', - 'remoteLockError':"Cannot Lock the Proportion between width and height", - 'numError':"Please enter the correct Num. e.g 123,400", - 'imageUrlError':"The image format may be wrong!", - 'imageLoadError':"Error,please check the network or URL!", - 'searchRemind':"Enter the search keyword!", - 'searchLoading':"Image is loading,please wait...", - 'searchRetry':" Sorry,can't find the image,please try again!" - }, - 'attachment':{ - 'static':{ - 'lang_tab_upload': 'Upload', - 'lang_tab_online': 'Online', - 'lang_start_upload':"Start upload", - 'lang_drop_remind':"You can drop files here, a single maximum of 300 files" - }, - 'uploadSelectFile':'Select File', - 'uploadAddFile':'Add File', - 'uploadStart':'Start Upload', - 'uploadPause':'Pause Upload', - 'uploadContinue':'Continue Upload', - 'uploadRetry':'Retry Upload', - 'uploadDelete':'Delete', - 'uploadTurnLeft':'Turn Left', - 'uploadTurnRight':'Turn Right', - 'uploadPreview':'Doing Preview', - 'updateStatusReady': 'Selected _ files, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize':'File Size Exceed', - 'errorFileType':'File Type Not Allow', - 'errorInterrupt':'File Upload Interrupted', - 'errorUploadRetry':'Upload Error, Please Retry.', - 'errorHttp':'Http Error', - 'errorServerUpload':'Server Result Error.' - }, - - 'insertvideo':{ - 'static':{ - 'lang_tab_insertV':"Video", - 'lang_tab_searchV':"Search", - 'lang_tab_uploadV':"Upload", - 'lang_video_url':" URL ", - 'lang_video_size':"Video Size", - 'lang_videoW':"Width", - 'lang_videoH':"Height", - 'lang_alignment':"Alignment", - 'videoSearchTxt':{'value':"Enter the search keyword!"}, - 'videoType':{'options':["All", "Hot", "Entertainment", "Funny", "Sports", "Science", "variety"]}, - 'videoSearchBtn':{'value':"Search in Baidu"}, - 'videoSearchReset':{'value':"Clear result"}, - - 'lang_input_fileStatus':' No file uploaded!', - 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, - - 'lang_upload_size':"Video Size", - 'lang_upload_width':"Width", - 'lang_upload_height':"Height", - 'lang_upload_alignment':"Alignment", - 'lang_format_advice':"Recommends mp4 format." - }, - 'numError':"Please enter the correct Num. e.g 123,400", - 'floatLeft':"Float left", - 'floatRight':"Float right", - 'default':"Default", - 'block':"Display in block", - 'urlError':"The video url format may be wrong!", - 'loading':"  The video is loading, please wait…", - 'clickToSelect':"Click to select", - 'goToSource':'Visit source video ', - 'noVideo':"    Sorry,can't find the video,please try again!", - - 'browseFiles':'Open files', - 'uploadSuccess':'Upload Successful!', - 'delSuccessFile':'Remove from the success of the queue', - 'delFailSaveFile':'Remove the save failed file', - 'statusPrompt':' file(s) uploaded! ', - 'flashVersionError':'The current Flash version is too low, please update FlashPlayer,then try again!', - 'flashLoadingError':'The Flash failed loading! Please check the path or network state', - 'fileUploadReady':'Wait for uploading...', - 'delUploadQueue':'Remove from the uploading queue ', - 'limitPrompt1':'Can not choose more than single', - 'limitPrompt2':'file(s)!Please choose again!', - 'delFailFile':'Remove failure file', - 'fileSizeLimit':'File size exceeds the limit!', - 'emptyFile':'Can not upload an empty file!', - 'fileTypeError':'File type error!', - 'unknownError':'Unknown error!', - 'fileUploading':'Uploading,please wait...', - 'cancelUpload':'Cancel upload', - 'netError':'Network error', - 'failUpload':'Upload failed', - 'serverIOError':'Server IO error!', - 'noAuthority':'No Permission!', - 'fileNumLimit':'Upload limit to the number', - 'failCheck':'Authentication fails, the upload is skipped!', - 'fileCanceling':'Cancel, please wait...', - 'stopUploading':'Upload has stopped...', - - 'uploadSelectFile':'Select File', - 'uploadAddFile':'Add File', - 'uploadStart':'Start Upload', - 'uploadPause':'Pause Upload', - 'uploadContinue':'Continue Upload', - 'uploadRetry':'Retry Upload', - 'uploadDelete':'Delete', - 'uploadTurnLeft':'Turn Left', - 'uploadTurnRight':'Turn Right', - 'uploadPreview':'Doing Preview', - 'updateStatusReady': 'Selected _ files, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize':'File Size Exceed', - 'errorFileType':'File Type Not Allow', - 'errorInterrupt':'File Upload Interrupted', - 'errorUploadRetry':'Upload Error, Please Retry.', - 'errorHttp':'Http Error', - 'errorServerUpload':'Server Result Error.' - }, - 'webapp':{ - 'tip1':"This function provided by Baidu APP,please apply for baidu APPKey webmaster first!", - 'tip2':"And then open the file ueditor.config.js to set it! ", - 'applyFor':"APPLY FOR", - 'anthorApi':"Baidu API" - }, - 'template':{ - 'static':{ - 'lang_template_bkcolor':'Background Color', - 'lang_template_clear' : 'Keep Content', - 'lang_template_select':'Select Template' - }, - 'blank':"Blank", - 'blog':"Blog", - 'resume':"Resume", - 'richText':"Rich Text", - 'scrPapers':"Scientific Papers" - }, - scrawl:{ - 'static':{ - 'lang_input_previousStep':"Previous", - 'lang_input_nextsStep':"Next", - 'lang_input_clear':'Clear', - 'lang_input_addPic':'AddImage', - 'lang_input_ScalePic':'ScaleImage', - 'lang_input_removePic':'RemoveImage', - 'J_imgTxt':{title:'Add background image'} - }, - 'noScarwl':"No paint, a white paper...", - 'scrawlUpLoading':"Image is uploading, please wait...", - 'continueBtn':"Try again", - 'imageError':"Image failed to load!", - 'backgroundUploading':'Image is uploading,please wait...' - }, - 'music':{ - 'static':{ - 'lang_input_tips':"Input singer/song/album, search you interested in music!", - 'J_searchBtn':{value:'Search songs'} - }, - 'emptyTxt':'Not search to the relevant music results, please change a keyword try.', - 'chapter':'Songs', - 'singer':'Singer', - 'special':'Album', - 'listenTest':'Audition' - }, - anchor:{ - 'static':{ - 'lang_input_anchorName':'Anchor Name:' - } - }, - 'charts':{ - 'static':{ - 'lang_data_source':'Data source:', - 'lang_chart_format': 'Chart format:', - 'lang_data_align': 'Align', - 'lang_chart_align_same': 'Consistent with the X-axis Y-axis', - 'lang_chart_align_reverse': 'X-axis Y-axis opposite', - 'lang_chart_title': 'Title', - 'lang_chart_main_title': 'main title:', - 'lang_chart_sub_title': 'sub title:', - 'lang_chart_x_title': 'X-axis title:', - 'lang_chart_y_title': 'Y-axis title:', - 'lang_chart_tip': 'Prompt', - 'lang_cahrt_tip_prefix': 'prefix:', - 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', - 'lang_chart_data_unit': 'Unit', - 'lang_chart_data_unit_title': 'unit:', - 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', - 'lang_chart_type': 'Chart type:', - 'lang_prev_btn': 'Previous', - 'lang_next_btn': 'Next' - } - }, - emotion:{ - 'static':{ - 'lang_input_choice':'Choice', - 'lang_input_Tuzki':'Tuzki', - 'lang_input_lvdouwa':'LvDouWa', - 'lang_input_BOBO':'BOBO', - 'lang_input_babyCat':'BabyCat', - 'lang_input_bubble':'Bubble', - 'lang_input_youa':'YouA' - } - }, - gmap:{ - 'static':{ - 'lang_input_address':'Address:', - 'lang_input_search':'Search', - 'address':{value:"Beijing"} - }, - searchError:'Unable to locate the address!' - }, - help:{ - 'static':{ - 'lang_input_about':'About', - 'lang_input_shortcuts':'Shortcuts', - 'lang_input_introduction':"UEditor is developed by Baidu Co.ltd. It is lightweight, customizable , focusing on user experience and etc. , UEditor is based on open source BSD license , allowing free use and redistribution.", - 'lang_Txt_shortcuts':'Shortcuts', - 'lang_Txt_func':'Function', - 'lang_Txt_bold':'Bold', - 'lang_Txt_copy':'Copy', - 'lang_Txt_cut':'Cut', - 'lang_Txt_Paste':'Paste', - 'lang_Txt_undo':'Undo', - 'lang_Txt_redo':'Redo', - 'lang_Txt_italic':'Italic', - 'lang_Txt_underline':'Underline', - 'lang_Txt_selectAll':'Select All', - 'lang_Txt_visualEnter':'Submit', - 'lang_Txt_fullscreen':'Fullscreen' - } - }, - insertframe:{ - 'static':{ - 'lang_input_address':'Address:', - 'lang_input_width':'Width:', - 'lang_input_height':'height:', - 'lang_input_isScroll':'Enable scrollbars:', - 'lang_input_frameborder':'Show frame border:', - 'lang_input_alignMode':'Alignment:', - 'align':{title:"Alignment", options:["Default", "Left", "Right", "Center"]} - }, - 'enterAddress':'Please enter an address!' - }, - link:{ - 'static':{ - 'lang_input_text':'Text:', - 'lang_input_url':'URL:', - 'lang_input_title':'Title:', - 'lang_input_target':'open in new window:' - }, - 'validLink':'Supports only effective when a link is selected', - 'httpPrompt':'The hyperlink you enter should start with "http|https|ftp://"!' - }, - map:{ - 'static':{ - lang_city:"City", - lang_address:"Address", - city:{value:"Beijing"}, - lang_search:"Search", - lang_dynamicmap:"Dynamic map" - }, - cityMsg:"Please enter the city name!", - errorMsg:"Can't find the place!" - }, - searchreplace:{ - 'static':{ - lang_tab_search:"Search", - lang_tab_replace:"Replace", - lang_search1:"Search", - lang_search2:"Search", - lang_replace:"Replace", - lang_searchReg:'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', - lang_searchReg1:'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', - lang_case_sensitive1:"Case sense", - lang_case_sensitive2:"Case sense", - nextFindBtn:{value:"Next"}, - preFindBtn:{value:"Preview"}, - nextReplaceBtn:{value:"Next"}, - preReplaceBtn:{value:"Preview"}, - repalceBtn:{value:"Replace"}, - repalceAllBtn:{value:"Replace all"} - }, - getEnd:"Has the search to the bottom!", - getStart:"Has the search to the top!", - countMsg:"Altogether replaced {#count} character(s)!" - }, - snapscreen:{ - 'static':{ - lang_showMsg:"You should install the UEditor screenshots program first!", - lang_download:"Download!", - lang_step1:"Step1:Download the program and then run it", - lang_step2:"Step2:After complete install,try to click the button again" - } - }, - spechars:{ - 'static':{}, - tsfh:"Special", - lmsz:"Roman", - szfh:"Numeral", - rwfh:"Japanese", - xlzm:"The Greek", - ewzm:"Russian", - pyzm:"Phonetic", - yyyb:"English", - zyzf:"Others" - }, - 'edittable':{ - 'static':{ - 'lang_tableStyle':'Table style', - 'lang_insertCaption':'Add table header row', - 'lang_insertTitle':'Add table title row', - 'lang_insertTitleCol':'Add table title col', - 'lang_tableSize':'Automatically adjust table size', - 'lang_autoSizeContent':'Adaptive by form text', - 'lang_orderbycontent':"Table of contents sortable", - 'lang_autoSizePage':'Page width adaptive', - 'lang_example':'Example', - 'lang_borderStyle':'Table Border', - 'lang_color':'Color:' - }, - captionName:'Caption', - titleName:'Title', - cellsName:'text', - errorMsg:'There are merged cells, can not sort.' - }, - 'edittip':{ - 'static':{ - lang_delRow:'Delete entire row', - lang_delCol:'Delete entire col' - } - }, - 'edittd':{ - 'static':{ - lang_tdBkColor:'Background Color:' - } - }, - 'formula':{ - 'static':{ - } - }, - wordimage:{ - 'static':{ - lang_resave:"The re-save step", - uploadBtn:{src:"upload.png", alt:"Upload"}, - clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, - lang_step:" 1. Click top button to copy the url and then open the dialog to paste it. 2. Open after choose photos uploaded process." - }, - fileType:"Image", - flashError:"Flash initialization failed!", - netError:"Network error! Please try again!", - copySuccess:"URL has been copied!", - - 'flashI18n':{ - lang:encodeURI( '{"UploadingState":"totalNum: ${a},uploadComplete: ${b}", "BeforeUpload":"waitingNum: ${a}", "ExceedSize":"Size exceed${a}", "ErrorInPreview":"Preview failed", "DefaultDescription":"Description", "LoadingImage":"Loading..."}' ), - uploadingTF:encodeURI( '{"font":"Arial", "size":12, "color":"0x000", "bold":"true", "italic":"false", "underline":"false"}' ), - imageTF:encodeURI( '{"font":"Arial", "size":11, "color":"red", "bold":"false", "italic":"false", "underline":"false"}' ), - textEncoding:"utf-8", - addImageSkinURL:"addImage.png", - allDeleteBtnUpSkinURL:"allDeleteBtnUpSkin.png", - allDeleteBtnHoverSkinURL:"allDeleteBtnHoverSkin.png", - rotateLeftBtnEnableSkinURL:"rotateLeftEnable.png", - rotateLeftBtnDisableSkinURL:"rotateLeftDisable.png", - rotateRightBtnEnableSkinURL:"rotateRightEnable.png", - rotateRightBtnDisableSkinURL:"rotateRightDisable.png", - deleteBtnEnableSkinURL:"deleteEnable.png", - deleteBtnDisableSkinURL:"deleteDisable.png", - backgroundURL:'', - listBackgroundURL:'', - buttonURL:'button.png' - } - }, - 'autosave': { - 'success':'Local conservation success' - } -}; diff --git a/public/static/UEditor/lang/en/images/addimage.png b/public/static/UEditor/lang/en/images/addimage.png deleted file mode 100644 index 3a2fd17121b9e0d435b2ca082d696c33b9f27b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3373 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 ZzyK$sgmq7P@T33$002ovPDHLkV1jUEUt0hG diff --git a/public/static/UEditor/lang/en/images/alldeletebtnupskin.png b/public/static/UEditor/lang/en/images/alldeletebtnupskin.png deleted file mode 100644 index 61658ce6f10164478ce293c05f1f0485a8fa1fc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 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 P9go0R-$Jhf?tK5Bgo^WU diff --git a/public/static/UEditor/lang/en/images/button.png b/public/static/UEditor/lang/en/images/button.png deleted file mode 100644 index 098874cb1fa85852d77ba9acbb5850c91c341fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4929 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 diff --git a/public/static/UEditor/lang/en/images/deletedisable.png b/public/static/UEditor/lang/en/images/deletedisable.png deleted file mode 100644 index c8ee75094f59f0c1262806fd294d361f30f64f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmV;40(Sk0P)!u-Pc3GOd!YPO+bG=gGoA_gW7h+<&i6W@>CzIUsorkT}tXKy|I-GoR_nf%RY$+yzqrWn_y0c| zycG_I116IRG@DK0sZ-E55u|Ou1fok>7zp9LsHJgReXhe;7C4$VS;)mE^wOWxM5!>w+j7B4b z!(p<+cswRyO2rY#*XuP527_xko|w>=_a0qmu_(~#bP__L5ZG)saJ${)TYOfjR7kAi zYvg9L`EQ38LQ-=rdwc{0EpJ`Z=~U9|_2kw4eh&tN0eJ55 jcWg?)n1^9d$t00000NkvXXu0mjfULPWN diff --git a/public/static/UEditor/lang/en/images/deleteenable.png b/public/static/UEditor/lang/en/images/deleteenable.png deleted file mode 100644 index 26acc883567c5d7fde8de3ba052d7754a5b1c539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 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 F`FAsl-Jbve diff --git a/public/static/UEditor/lang/en/images/localimage.png b/public/static/UEditor/lang/en/images/localimage.png deleted file mode 100644 index 12c8e6aefa8fd16287ac77bbecd7d5b58c3fc837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3083 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 Z1^`gxH94g;riuUn002ovPDHLkV1oEm+S&jB diff --git a/public/static/UEditor/lang/en/images/music.png b/public/static/UEditor/lang/en/images/music.png deleted file mode 100644 index 2f495fe92ffecdce42b74fd57dca2687414711fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91561 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 LNkvXXu0mjf3l)h% diff --git a/public/static/UEditor/lang/en/images/rotateleftdisable.png b/public/static/UEditor/lang/en/images/rotateleftdisable.png deleted file mode 100644 index 741526e0d5e6eb5c30eb0a62c9b1d6d558ed9cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0xVLm}k=YQ<2%m+GNILKMZ4Wj)Eo{6dA(i=1OgO`#k70DYI-BmRjYes)SkU2cI0GZBR;y4N3I~Hh!d`9*7LUg-fQ!ZA17DgvC%W<{o)0F! zU*`EmuKGZYN~Kcs0v3uoolcs~W&&`zTnccgjDVT|^mshtI#kAIIINifC7$1T{?yd~ z`f398$nzJ^&xXUj%I~;@1tb~>YHqh%0jWR{cz-&b2!6()Y&M(t%#{JqZzlB@o&~uo zRdFYN7<*g3d>y0SFTSsu}||KmrzxrzXV}0f4+Nl`U`wo^<=3%s|h|0ur}Z0m~6a z)9IA5+3a~Uyo=N{O{`Z26ni!(U6x=a31615Uq6I}2cZ-|0a2}1X+EF7+lbqaCbL*9 zVjpaCBO8zeF31Bljb43c1B|5gdMy+K1i&JZ2&owiAH&aRFjxU~zu$k$sq`Wh)qB?* z7JdW}ya?6MP#9CN2390Mab0C5lljw}edEbwzR6l%S5ujn*P2rK!bg5RKf!pHvr45x zq@5Lg56Rlp|dF?<); zZnrB`Ycv`HPI*-K+S{`L4RzyPXZYcl&002ovPDHLkV1lL= BGwT2V diff --git a/public/static/UEditor/lang/en/images/rotateleftenable.png b/public/static/UEditor/lang/en/images/rotateleftenable.png deleted file mode 100644 index e164ddbd62a232f3a89826158c9795f6c082cc89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmV;p14sOcP)B{+A~4pJXZ}t_3ogEQ=EtDt@NW=ovC^1YY3D0f#y*iY)MG5<8F z!|f{@kKz7^5#8k3NZf?c9K_t5iFB?APcn|7{XXn#Ybhtak0o(qW)4fuAr!0vET4{< zSc+h47GQ*Qo%FCG#zDtxKn;d}ii3LDciA+S|Xdhl! zB4Tth6pKaVi#F1YAvCEHTFJM^bUHnP0sSYFPoVrcDQm)w^;g8!)bGBFx|JW?%CGA- z&{PEjJ5@v`9|31h11Z`(8l4W74acX!rYt{M#7D#XGmFrJ8p1{(Q)@sv8@F2OUzvR1 zx9$d0kvWXM{tBEwN0$R4YNDW*#-^%Df&-Q6zoW#Uu@ZDmhS%$@-$mxZRD^B@1aSM_ zhL@++3|_o?ixNDPXhWAA>})fj>w5hzGPAR@B4aE>&p+Mbf*>$imMuk5EW2c0000?hzPCHlRk++nh`E3!rKF3htnTQ@ z$gI|MU8lEVHuFTg-PR|Q2`!gP+H5wYX&N~k4)SU74-bY78_Ii7=yw!+~9z)9EC?-%tI1pNtpOgTWwx zYc~hmYPIxUug9z{77N<%_sk-|f_a_y+;xqv4+oe^KHq!n0!Sli2@LjQ?eJI-PQw!5kz2kP;{i1#vW)J3m7@ilvOQx*+0gD21yWM29TG_#>*)V5x3eEte0rs!7XTfq- zNpDVBe^HqJA^?xgte(JHEEaB201ADoR;^a);o$)-i`fNGNCD$l*jUkV&ZOJ#g6-=H z48;P#aDbi7X5{nvH~?d$9K9Fo01LT5x392A!Cv-)3}9cydREAx^dDF>`_*d2002m8 z7y1N?u~>`?4DAa45ev4jw7ek*Sw2XA4L&zdS z9A4&}t`&psbm3W({))<)8k1Mzq-LMgHh4P0I-QOV5C8-H!ohO6T&8$D&Va$Z(UY0s zOeS;lL%|{kl3A%;S#MlC&Amg&cpiN1r-rvC| zuQ1Fer=aUPn>g6re+%A~4HxgfoyFs_jfT}hvT2|~buTAFG7cgsM5)fELnz*RfYsA+ z%+JjZfW5eCXjGl)8+s)4P|lCQu*F>n-SXLP{rpv`@{BNE{IcsI8B@_npSvh)X*hNpW_TLgr2`Ju@0bJqvCruO={o6E(Z3`5{jw@Hv`M-m z=H><1m4WE;;`c%mkz)x|ObZEnAD_J*B%s8ej2PcmwhgRZado>%)jtid7zm=SE zQ*F%`{_{RP6wdfheSj59}E|h^E{{P*E_)R6H^3NW^13gC8C>dV0CgKv@POF4dxfvY6kSFwxaNHki&!>3-Y^~4kn%F>oC=IgN4BfYTUZZWo z4NgH0Fff*Y6!1`OQEtkV%qBhmGZEnCEqwT{hG--_gp%$=?(C?C;zb^jm66PHQ4|^R zkb*cmi1NcmKm&YfVi#crNDyF;_V&?5G diff --git a/public/static/UEditor/lang/en/images/upload.png b/public/static/UEditor/lang/en/images/upload.png deleted file mode 100644 index 7bb15b3d6d6799504cf7093a1600bd7ece0d9ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3941 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 diff --git a/public/static/UEditor/lang/zh-cn/images/copy.png b/public/static/UEditor/lang/zh-cn/images/copy.png deleted file mode 100644 index b2536aac72e763b9a872b507462458ecb96990f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4319 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 N002ovPDHLkV1nv#UQ7T0 diff --git a/public/static/UEditor/lang/zh-cn/images/localimage.png b/public/static/UEditor/lang/zh-cn/images/localimage.png deleted file mode 100644 index 7303c364318b6ac27dc4a8ae6717124d8dafaff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6979 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 O0000字数超出最大允许值,服务器可能拒绝保存!', - 'ok':"确认", - 'cancel':"取消", - 'closeDialog':"关闭对话框", - 'tableDrag':"表格拖动必须引入uiUtils.js文件!", - 'autofloatMsg':"工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", - 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', - 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', - 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', - 'snapScreen_plugin':{ - 'browserMsg':"仅支持IE浏览器!", - 'callBackErrorMsg':"服务器返回数据有误,请检查配置项之后重试。", - 'uploadErrorMsg':"截图上传失败,请检查服务器端环境! " - }, - 'insertcode':{ - 'as3':'ActionScript 3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'CSS', - 'cf':'ColdFusion', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'HTML', - 'java':'Java', - 'jfx':'JavaFX', - 'js':'JavaScript', - 'pl':'Perl', - 'php':'PHP', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'SQL', - 'vb':'Visual Basic', - 'xml':'XML' - }, - 'confirmClear':"确定清空当前文档么?", - 'contextMenu':{ - 'delete':"删除", - 'selectall':"全选", - 'deletecode':"删除代码", - 'cleardoc':"清空文档", - 'confirmclear':"确定清空当前文档么?", - 'unlink':"删除超链接", - 'paragraph':"段落格式", - 'edittable':"表格属性", - 'aligntd':"单元格对齐方式", - 'aligntable':'表格对齐方式', - 'tableleft':'左浮动', - 'tablecenter':'居中显示', - 'tableright':'右浮动', - 'edittd':"单元格属性", - 'setbordervisible':'设置表格边线可见', - 'justifyleft':'左对齐', - 'justifyright':'右对齐', - 'justifycenter':'居中对齐', - 'justifyjustify':'两端对齐', - 'table':"表格", - 'inserttable':'插入表格', - 'deletetable':"删除表格", - 'insertparagraphbefore':"前插入段落", - 'insertparagraphafter':'后插入段落', - 'deleterow':"删除当前行", - 'deletecol':"删除当前列", - 'insertrow':"前插入行", - 'insertcol':"左插入列", - 'insertrownext':'后插入行', - 'insertcolnext':'右插入列', - 'insertcaption':'插入表格名称', - 'deletecaption':'删除表格名称', - 'inserttitle':'插入表格标题行', - 'deletetitle':'删除表格标题行', - 'inserttitlecol':'插入表格标题列', - 'deletetitlecol':'删除表格标题列', - 'averageDiseRow':'平均分布各行', - 'averageDisCol':'平均分布各列', - 'mergeright':"向右合并", - 'mergeleft':"向左合并", - 'mergedown':"向下合并", - 'mergecells':"合并单元格", - 'splittocells':"完全拆分单元格", - 'splittocols':"拆分成列", - 'splittorows':"拆分成行", - 'tablesort':'表格排序', - 'enablesort':'设置表格可排序', - 'disablesort':'取消表格可排序', - 'reversecurrent':'逆序当前', - 'orderbyasc':'按ASCII字符升序', - 'reversebyasc':'按ASCII字符降序', - 'orderbynum':'按数值大小升序', - 'reversebynum':'按数值大小降序', - 'borderbk':'边框底纹', - 'setcolor':'表格隔行变色', - 'unsetcolor':'取消表格隔行变色', - 'setbackground':'选区背景隔行', - 'unsetbackground':'取消选区背景', - 'redandblue':'红蓝相间', - 'threecolorgradient':'三色渐变', - 'copy':"复制(Ctrl + c)", - 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", - 'paste':"粘贴(Ctrl + v)", - 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" - }, - 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", - 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", - 'anthorMsg':"链接", - 'clearColor':'清空颜色', - 'standardColor':'标准颜色', - 'themeColor':'主题颜色', - 'property':'属性', - 'default':'默认', - 'modify':'修改', - 'justifyleft':'左对齐', - 'justifyright':'右对齐', - 'justifycenter':'居中', - 'justify':'默认', - 'clear':'清除', - 'anchorMsg':'锚点', - 'delete':'删除', - 'clickToUpload':"点击上传", - 'unset':'尚未设置语言文件', - 't_row':'行', - 't_col':'列', - 'more':'更多', - 'pasteOpt':'粘贴选项', - 'pasteSourceFormat':"保留源格式", - 'tagFormat':'只保留标签', - 'pasteTextFormat':'只保留文本', - 'autoTypeSet':{ - 'mergeLine':"合并空行", - 'delLine':"清除空行", - 'removeFormat':"清除格式", - 'indent':"首行缩进", - 'alignment':"对齐方式", - 'imageFloat':"图片浮动", - 'removeFontsize':"清除字号", - 'removeFontFamily':"清除字体", - 'removeHtml':"清除冗余HTML代码", - 'pasteFilter':"粘贴过滤", - 'run':"执行", - 'symbol':'符号转换', - 'bdc2sb':'全角转半角', - 'tobdc':'半角转全角' - }, - - 'background':{ - 'static':{ - 'lang_background_normal':'背景设置', - 'lang_background_local':'在线图片', - 'lang_background_set':'选项', - 'lang_background_none':'无背景色', - 'lang_background_colored':'有背景色', - 'lang_background_color':'颜色设置', - 'lang_background_netimg':'网络图片', - 'lang_background_align':'对齐方式', - 'lang_background_position':'精确定位', - 'repeatType':{'options':["居中", "横向重复", "纵向重复", "平铺","自定义"]} - - }, - 'noUploadImage':"当前未上传过任何图片!", - 'toggleSelect':"单击可切换选中状态\n原图尺寸: " - }, - //===============dialog i18N======================= - 'insertimage':{ - 'static':{ - 'lang_tab_remote':"插入图片", //节点 - 'lang_tab_upload':"本地上传", - 'lang_tab_online':"在线管理", - 'lang_tab_search':"图片搜索", - 'lang_input_url':"地 址:", - 'lang_input_size':"大 小:", - 'lang_input_width':"宽度", - 'lang_input_height':"高度", - 'lang_input_border':"边 框:", - 'lang_input_vhspace':"边 距:", - 'lang_input_title':"描 述:", - 'lang_input_align':'图片浮动方式:', - 'lang_imgLoading':" 图片加载中……", - 'lang_start_upload':"开始上传", - 'lock':{'title':"锁定宽高比例"}, //属性 - 'searchType':{'title':"图片类型", 'options':["新闻", "壁纸", "表情", "头像"]}, //select的option - 'searchTxt':{'value':"请输入搜索关键词"}, - 'searchBtn':{'value':"百度一下"}, - 'searchReset':{'value':"清空搜索"}, - 'noneAlign':{'title':'无浮动'}, - 'leftAlign':{'title':'左浮动'}, - 'rightAlign':{'title':'右浮动'}, - 'centerAlign':{'title':'居中独占一行'} - }, - 'uploadSelectFile':'点击选择图片', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'uploadNoPreview':'不能预览', - 'updateStatusReady': '选中_张图片,共_KB。', - 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', - 'updateStatusFinish': '共_张(_KB),_张上传成功', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错', - 'remoteLockError':"宽高不正确,不能所定比例", - 'numError':"请输入正确的长度或者宽度值!例如:123,400", - 'imageUrlError':"不允许的图片格式或者图片域!", - 'imageLoadError':"图片加载失败!请检查链接地址或网络状态!", - 'searchRemind':"请输入搜索关键词", - 'searchLoading':"图片加载中,请稍后……", - 'searchRetry':" :( ,抱歉,没有找到图片!请重试一次!" - }, - 'attachment':{ - 'static':{ - 'lang_tab_upload': '上传附件', - 'lang_tab_online': '在线附件', - 'lang_start_upload':"开始上传", - 'lang_drop_remind':"可以将文件拖到这里,单次最多可选100个文件" - }, - 'uploadSelectFile':'点击选择文件', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'updateStatusReady': '选中_个文件,共_KB。', - 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', - 'updateStatusFinish': '共_个(_KB),_个上传成功', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错' - }, - 'insertvideo':{ - 'static':{ - 'lang_tab_insertV':"插入视频", - 'lang_tab_searchV':"搜索视频", - 'lang_tab_uploadV':"上传视频", - 'lang_video_url':"视频网址", - 'lang_video_size':"视频尺寸", - 'lang_videoW':"宽度", - 'lang_videoH':"高度", - 'lang_alignment':"对齐方式", - 'videoSearchTxt':{'value':"请输入搜索关键字!"}, - 'videoType':{'options':["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, - 'videoSearchBtn':{'value':"百度一下"}, - 'videoSearchReset':{'value':"清空结果"}, - - 'lang_input_fileStatus':' 当前未上传文件', - 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, - - 'lang_upload_size':"视频尺寸", - 'lang_upload_width':"宽度", - 'lang_upload_height':"高度", - 'lang_upload_alignment':"对齐方式", - 'lang_format_advice':"建议使用mp4格式." - - }, - 'numError':"请输入正确的数值,如123,400", - 'floatLeft':"左浮动", - 'floatRight':"右浮动", - '"default"':"默认", - 'block':"独占一行", - 'urlError':"输入的视频地址有误,请检查后再试!", - 'loading':"  视频加载中,请等待……", - 'clickToSelect':"点击选中", - 'goToSource':'访问源视频', - 'noVideo':"    抱歉,找不到对应的视频,请重试!", - - 'browseFiles':'浏览文件', - 'uploadSuccess':'上传成功!', - 'delSuccessFile':'从成功队列中移除', - 'delFailSaveFile':'移除保存失败文件', - 'statusPrompt':' 个文件已上传! ', - 'flashVersionError':'当前Flash版本过低,请更新FlashPlayer后重试!', - 'flashLoadingError':'Flash加载失败!请检查路径或网络状态', - 'fileUploadReady':'等待上传……', - 'delUploadQueue':'从上传队列中移除', - 'limitPrompt1':'单次不能选择超过', - 'limitPrompt2':'个文件!请重新选择!', - 'delFailFile':'移除失败文件', - 'fileSizeLimit':'文件大小超出限制!', - 'emptyFile':'空文件无法上传!', - 'fileTypeError':'文件类型不允许!', - 'unknownError':'未知错误!', - 'fileUploading':'上传中,请等待……', - 'cancelUpload':'取消上传', - 'netError':'网络错误', - 'failUpload':'上传失败!', - 'serverIOError':'服务器IO错误!', - 'noAuthority':'无权限!', - 'fileNumLimit':'上传个数限制', - 'failCheck':'验证失败,本次上传被跳过!', - 'fileCanceling':'取消中,请等待……', - 'stopUploading':'上传已停止……', - - 'uploadSelectFile':'点击选择文件', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'updateStatusReady': '选中_个文件,共_KB。', - 'updateStatusConfirm': '成功上传_个,_个失败', - 'updateStatusFinish': '共_个(_KB),_个成功上传', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错' - }, - 'webapp':{ - 'tip1':"本功能由百度APP提供,如看到此页面,请各位站长首先申请百度APPKey!", - 'tip2':"申请完成之后请至ueditor.config.js中配置获得的appkey! ", - 'applyFor':"点此申请", - 'anthorApi':"百度API" - }, - 'template':{ - 'static':{ - 'lang_template_bkcolor':'背景颜色', - 'lang_template_clear' : '保留原有内容', - 'lang_template_select' : '选择模板' - }, - 'blank':"空白文档", - 'blog':"博客文章", - 'resume':"个人简历", - 'richText':"图文混排", - 'sciPapers':"科技论文" - - - }, - 'scrawl':{ - 'static':{ - 'lang_input_previousStep':"上一步", - 'lang_input_nextsStep':"下一步", - 'lang_input_clear':'清空', - 'lang_input_addPic':'添加背景', - 'lang_input_ScalePic':'缩放背景', - 'lang_input_removePic':'删除背景', - 'J_imgTxt':{title:'添加背景图片'} - }, - 'noScarwl':"尚未作画,白纸一张~", - 'scrawlUpLoading':"涂鸦上传中,别急哦~", - 'continueBtn':"继续", - 'imageError':"糟糕,图片读取失败了!", - 'backgroundUploading':'背景图片上传中,别急哦~' - }, - 'music':{ - 'static':{ - 'lang_input_tips':"输入歌手/歌曲/专辑,搜索您感兴趣的音乐!", - 'J_searchBtn':{value:'搜索歌曲'} - }, - 'emptyTxt':'未搜索到相关音乐结果,请换一个关键词试试。', - 'chapter':'歌曲', - 'singer':'歌手', - 'special':'专辑', - 'listenTest':'试听' - }, - 'anchor':{ - 'static':{ - 'lang_input_anchorName':'锚点名字:' - } - }, - 'charts':{ - 'static':{ - 'lang_data_source':'数据源:', - 'lang_chart_format': '图表格式:', - 'lang_data_align': '数据对齐方式', - 'lang_chart_align_same': '数据源与图表X轴Y轴一致', - 'lang_chart_align_reverse': '数据源与图表X轴Y轴相反', - 'lang_chart_title': '图表标题', - 'lang_chart_main_title': '主标题:', - 'lang_chart_sub_title': '子标题:', - 'lang_chart_x_title': 'X轴标题:', - 'lang_chart_y_title': 'Y轴标题:', - 'lang_chart_tip': '提示文字', - 'lang_cahrt_tip_prefix': '提示文字前缀:', - 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', - 'lang_chart_data_unit': '数据单位', - 'lang_chart_data_unit_title': '单位:', - 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', - 'lang_chart_type': '图表类型:', - 'lang_prev_btn': '上一个', - 'lang_next_btn': '下一个' - } - }, - 'emotion':{ - 'static':{ - 'lang_input_choice':'精选', - 'lang_input_Tuzki':'兔斯基', - 'lang_input_BOBO':'BOBO', - 'lang_input_lvdouwa':'绿豆蛙', - 'lang_input_babyCat':'baby猫', - 'lang_input_bubble':'泡泡', - 'lang_input_youa':'有啊' - } - }, - 'gmap':{ - 'static':{ - 'lang_input_address':'地址', - 'lang_input_search':'搜索', - 'address':{value:"北京"} - }, - searchError:'无法定位到该地址!' - }, - 'help':{ - 'static':{ - 'lang_input_about':'关于UEditor', - 'lang_input_shortcuts':'快捷键', - 'lang_input_introduction':'UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。开源基于BSD协议,允许自由使用和修改代码。', - 'lang_Txt_shortcuts':'快捷键', - 'lang_Txt_func':'功能', - 'lang_Txt_bold':'给选中字设置为加粗', - 'lang_Txt_copy':'复制选中内容', - 'lang_Txt_cut':'剪切选中内容', - 'lang_Txt_Paste':'粘贴', - 'lang_Txt_undo':'重新执行上次操作', - 'lang_Txt_redo':'撤销上一次操作', - 'lang_Txt_italic':'给选中字设置为斜体', - 'lang_Txt_underline':'给选中字加下划线', - 'lang_Txt_selectAll':'全部选中', - 'lang_Txt_visualEnter':'软回车', - 'lang_Txt_fullscreen':'全屏' - } - }, - 'insertframe':{ - 'static':{ - 'lang_input_address':'地址:', - 'lang_input_width':'宽度:', - 'lang_input_height':'高度:', - 'lang_input_isScroll':'允许滚动条:', - 'lang_input_frameborder':'显示框架边框:', - 'lang_input_alignMode':'对齐方式:', - 'align':{title:"对齐方式", options:["默认", "左对齐", "右对齐", "居中"]} - }, - 'enterAddress':'请输入地址!' - }, - 'link':{ - 'static':{ - 'lang_input_text':'文本内容:', - 'lang_input_url':'链接地址:', - 'lang_input_title':'标题:', - 'lang_input_target':'是否在新窗口打开:' - }, - 'validLink':'只支持选中一个链接时生效', - 'httpPrompt':'您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' - }, - 'map':{ - 'static':{ - lang_city:"城市", - lang_address:"地址", - city:{value:"北京"}, - lang_search:"搜索", - lang_dynamicmap:"插入动态地图" - }, - cityMsg:"请选择城市", - errorMsg:"抱歉,找不到该位置!" - }, - 'searchreplace':{ - 'static':{ - lang_tab_search:"查找", - lang_tab_replace:"替换", - lang_search1:"查找", - lang_search2:"查找", - lang_replace:"替换", - lang_searchReg:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', - lang_searchReg1:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', - lang_case_sensitive1:"区分大小写", - lang_case_sensitive2:"区分大小写", - nextFindBtn:{value:"下一个"}, - preFindBtn:{value:"上一个"}, - nextReplaceBtn:{value:"下一个"}, - preReplaceBtn:{value:"上一个"}, - repalceBtn:{value:"替换"}, - repalceAllBtn:{value:"全部替换"} - }, - getEnd:"已经搜索到文章末尾!", - getStart:"已经搜索到文章头部", - countMsg:"总共替换了{#count}处!" - }, - 'snapscreen':{ - 'static':{ - lang_showMsg:"截图功能需要首先安装UEditor截图插件! ", - lang_download:"点此下载", - lang_step1:"第一步,下载UEditor截图插件并运行安装。", - lang_step2:"第二步,插件安装完成后即可使用,如不生效,请重启浏览器后再试!" - } - }, - 'spechars':{ - 'static':{}, - tsfh:"特殊字符", - lmsz:"罗马字符", - szfh:"数学字符", - rwfh:"日文字符", - xlzm:"希腊字母", - ewzm:"俄文字符", - pyzm:"拼音字母", - yyyb:"英语音标", - zyzf:"其他" - }, - 'edittable':{ - 'static':{ - 'lang_tableStyle':'表格样式', - 'lang_insertCaption':'添加表格名称行', - 'lang_insertTitle':'添加表格标题行', - 'lang_insertTitleCol':'添加表格标题列', - 'lang_orderbycontent':"使表格内容可排序", - 'lang_tableSize':'自动调整表格尺寸', - 'lang_autoSizeContent':'按表格文字自适应', - 'lang_autoSizePage':'按页面宽度自适应', - 'lang_example':'示例', - 'lang_borderStyle':'表格边框', - 'lang_color':'颜色:' - }, - captionName:'表格名称', - titleName:'标题', - cellsName:'内容', - errorMsg:'有合并单元格,不可排序' - }, - 'edittip':{ - 'static':{ - lang_delRow:'删除整行', - lang_delCol:'删除整列' - } - }, - 'edittd':{ - 'static':{ - lang_tdBkColor:'背景颜色:' - } - }, - 'formula':{ - 'static':{ - } - }, - 'wordimage':{ - 'static':{ - lang_resave:"转存步骤", - uploadBtn:{src:"upload.png",alt:"上传"}, - clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, - lang_step:"1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" - }, - 'fileType':"图片", - 'flashError':"FLASH初始化失败,请检查FLASH插件是否正确安装!", - 'netError':"网络连接错误,请重试!", - 'copySuccess':"图片地址已经复制!", - 'flashI18n':{} //留空默认中文 - }, - 'autosave': { - 'saving':'保存中...', - 'success':'本地保存成功' - } -}; diff --git a/public/static/UEditor/php/Uploader.class.php b/public/static/UEditor/php/Uploader.class.php deleted file mode 100644 index b7d6bf8..0000000 --- a/public/static/UEditor/php/Uploader.class.php +++ /dev/null @@ -1,372 +0,0 @@ - "临时文件错误", - "ERROR_TMP_FILE_NOT_FOUND" => "找不到临时文件", - "ERROR_SIZE_EXCEED" => "文件大小超出网站限制", - "ERROR_TYPE_NOT_ALLOWED" => "文件类型不允许", - "ERROR_CREATE_DIR" => "目录创建失败", - "ERROR_DIR_NOT_WRITEABLE" => "目录没有写权限", - "ERROR_FILE_MOVE" => "文件保存时出错", - "ERROR_FILE_NOT_FOUND" => "找不到上传文件", - "ERROR_WRITE_CONTENT" => "写入文件内容错误", - "ERROR_UNKNOWN" => "未知错误", - "ERROR_DEAD_LINK" => "链接不可用", - "ERROR_HTTP_LINK" => "链接不是http链接", - "ERROR_HTTP_CONTENTTYPE" => "链接contentType不正确", - "INVALID_URL" => "非法 URL", - "INVALID_IP" => "非法 IP" - ); - - /** - * 构造函数 - * @param string $fileField 表单名称 - * @param array $config 配置项 - * @param bool $base64 是否解析base64编码,可省略。若开启,则$fileField代表的是base64编码的字符串表单名 - */ - public function __construct($fileField, $config, $type = "upload") - { - $this->fileField = $fileField; - $this->config = $config; - $this->type = $type; - if ($type == "remote") { - $this->saveRemote(); - } else if($type == "base64") { - $this->upBase64(); - } else { - $this->upFile(); - } - - $this->stateMap['ERROR_TYPE_NOT_ALLOWED'] = iconv('unicode', 'utf-8', $this->stateMap['ERROR_TYPE_NOT_ALLOWED']); - } - - /** - * 上传文件的主处理方法 - * @return mixed - */ - private function upFile() - { - $file = $this->file = $_FILES[$this->fileField]; - if (!$file) { - $this->stateInfo = $this->getStateInfo("ERROR_FILE_NOT_FOUND"); - return; - } - if ($this->file['error']) { - $this->stateInfo = $this->getStateInfo($file['error']); - return; - } else if (!file_exists($file['tmp_name'])) { - $this->stateInfo = $this->getStateInfo("ERROR_TMP_FILE_NOT_FOUND"); - return; - } else if (!is_uploaded_file($file['tmp_name'])) { - $this->stateInfo = $this->getStateInfo("ERROR_TMPFILE"); - return; - } - - $this->oriName = $file['name']; - $this->fileSize = $file['size']; - $this->fileType = $this->getFileExt(); - $this->fullName = $this->getFullName(); - $this->filePath = $this->getFilePath(); - $this->fileName = $this->getFileName(); - $dirname = dirname($this->filePath); - - //检查文件大小是否超出限制 - if (!$this->checkSize()) { - $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED"); - return; - } - - //检查是否不允许的文件格式 - if (!$this->checkType()) { - $this->stateInfo = $this->getStateInfo("ERROR_TYPE_NOT_ALLOWED"); - return; - } - - //创建目录失败 - if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) { - $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR"); - return; - } else if (!is_writeable($dirname)) { - $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE"); - return; - } - - //移动文件 - if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //移动失败 - $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE"); - } else { //移动成功 - $this->stateInfo = $this->stateMap[0]; - } - } - - /** - * 处理base64编码的图片上传 - * @return mixed - */ - private function upBase64() - { - $base64Data = $_POST[$this->fileField]; - $img = base64_decode($base64Data); - - $this->oriName = $this->config['oriName']; - $this->fileSize = strlen($img); - $this->fileType = $this->getFileExt(); - $this->fullName = $this->getFullName(); - $this->filePath = $this->getFilePath(); - $this->fileName = $this->getFileName(); - $dirname = dirname($this->filePath); - - //检查文件大小是否超出限制 - if (!$this->checkSize()) { - $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED"); - return; - } - - //创建目录失败 - if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) { - $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR"); - return; - } else if (!is_writeable($dirname)) { - $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE"); - return; - } - - //移动文件 - if (!(file_put_contents($this->filePath, $img) && file_exists($this->filePath))) { //移动失败 - $this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT"); - } else { //移动成功 - $this->stateInfo = $this->stateMap[0]; - } - - } - - /** - * 拉取远程图片 - * @return mixed - */ - private function saveRemote() - { - $imgUrl = htmlspecialchars($this->fileField); - $imgUrl = str_replace("&", "&", $imgUrl); - - //http开头验证 - if (strpos($imgUrl, "http") !== 0) { - $this->stateInfo = $this->getStateInfo("ERROR_HTTP_LINK"); - return; - } - - preg_match('/(^https*:\/\/[^:\/]+)/', $imgUrl, $matches); - $host_with_protocol = count($matches) > 1 ? $matches[1] : ''; - - // 判断是否是合法 url - if (!filter_var($host_with_protocol, FILTER_VALIDATE_URL)) { - $this->stateInfo = $this->getStateInfo("INVALID_URL"); - return; - } - - preg_match('/^https*:\/\/(.+)/', $host_with_protocol, $matches); - $host_without_protocol = count($matches) > 1 ? $matches[1] : ''; - - // 此时提取出来的可能是 ip 也有可能是域名,先获取 ip - $ip = gethostbyname($host_without_protocol); - // 判断是否是私有 ip - if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) { - $this->stateInfo = $this->getStateInfo("INVALID_IP"); - return; - } - - //获取请求头并检测死链 - $heads = get_headers($imgUrl, 1); - if (!(stristr($heads[0], "200") && stristr($heads[0], "OK"))) { - $this->stateInfo = $this->getStateInfo("ERROR_DEAD_LINK"); - return; - } - //格式验证(扩展名验证和Content-Type验证) - $fileType = strtolower(strrchr($imgUrl, '.')); - if (!in_array($fileType, $this->config['allowFiles']) || !isset($heads['Content-Type']) || !stristr($heads['Content-Type'], "image")) { - $this->stateInfo = $this->getStateInfo("ERROR_HTTP_CONTENTTYPE"); - return; - } - - //打开输出缓冲区并获取远程图片 - ob_start(); - $context = stream_context_create( - array('http' => array( - 'follow_location' => false // don't follow redirects - )) - ); - readfile($imgUrl, false, $context); - $img = ob_get_contents(); - ob_end_clean(); - preg_match("/[\/]([^\/]*)[\.]?[^\.\/]*$/", $imgUrl, $m); - - $this->oriName = $m ? $m[1]:""; - $this->fileSize = strlen($img); - $this->fileType = $this->getFileExt(); - $this->fullName = $this->getFullName(); - $this->filePath = $this->getFilePath(); - $this->fileName = $this->getFileName(); - $dirname = dirname($this->filePath); - - //检查文件大小是否超出限制 - if (!$this->checkSize()) { - $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED"); - return; - } - - //创建目录失败 - if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) { - $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR"); - return; - } else if (!is_writeable($dirname)) { - $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE"); - return; - } - - //移动文件 - if (!(file_put_contents($this->filePath, $img) && file_exists($this->filePath))) { //移动失败 - $this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT"); - } else { //移动成功 - $this->stateInfo = $this->stateMap[0]; - } - - } - - /** - * 上传错误检查 - * @param $errCode - * @return string - */ - private function getStateInfo($errCode) - { - return !$this->stateMap[$errCode] ? $this->stateMap["ERROR_UNKNOWN"] : $this->stateMap[$errCode]; - } - - /** - * 获取文件扩展名 - * @return string - */ - private function getFileExt() - { - return strtolower(strrchr($this->oriName, '.')); - } - - /** - * 重命名文件 - * @return string - */ - private function getFullName() - { - //替换日期事件 - $t = time(); - $d = explode('-', date("Y-y-m-d-H-i-s")); - $format = $this->config["pathFormat"]; - $format = str_replace("{yyyy}", $d[0], $format); - $format = str_replace("{yy}", $d[1], $format); - $format = str_replace("{mm}", $d[2], $format); - $format = str_replace("{dd}", $d[3], $format); - $format = str_replace("{hh}", $d[4], $format); - $format = str_replace("{ii}", $d[5], $format); - $format = str_replace("{ss}", $d[6], $format); - $format = str_replace("{time}", $t, $format); - - //过滤文件名的非法自负,并替换文件名 - $oriName = substr($this->oriName, 0, strrpos($this->oriName, '.')); - $oriName = preg_replace("/[\|\?\"\<\>\/\*\\\\]+/", '', $oriName); - $format = str_replace("{filename}", $oriName, $format); - - //替换随机字符串 - $randNum = rand(1, 10000000000) . rand(1, 10000000000); - if (preg_match("/\{rand\:([\d]*)\}/i", $format, $matches)) { - $format = preg_replace("/\{rand\:[\d]*\}/i", substr($randNum, 0, $matches[1]), $format); - } - - $ext = $this->getFileExt(); - return $format . $ext; - } - - /** - * 获取文件名 - * @return string - */ - private function getFileName () { - return substr($this->filePath, strrpos($this->filePath, '/') + 1); - } - - /** - * 获取文件完整路径 - * @return string - */ - private function getFilePath() - { - $fullname = $this->fullName; - $rootPath = $_SERVER['DOCUMENT_ROOT']; - - if (substr($fullname, 0, 1) != '/') { - $fullname = '/' . $fullname; - } - - return $rootPath . $fullname; - } - - /** - * 文件类型检测 - * @return bool - */ - private function checkType() - { - return in_array($this->getFileExt(), $this->config["allowFiles"]); - } - - /** - * 文件大小检测 - * @return bool - */ - private function checkSize() - { - return $this->fileSize <= ($this->config["maxSize"]); - } - - /** - * 获取当前上传成功文件的各项信息 - * @return array - */ - public function getFileInfo() - { - return array( - "state" => $this->stateInfo, - "url" => $this->fullName, - "title" => $this->fileName, - "original" => $this->oriName, - "type" => $this->fileType, - "size" => $this->fileSize - ); - } - -} \ No newline at end of file diff --git a/public/static/UEditor/php/action_crawler.php b/public/static/UEditor/php/action_crawler.php deleted file mode 100644 index b9e18df..0000000 --- a/public/static/UEditor/php/action_crawler.php +++ /dev/null @@ -1,44 +0,0 @@ - $CONFIG['catcherPathFormat'], - "maxSize" => $CONFIG['catcherMaxSize'], - "allowFiles" => $CONFIG['catcherAllowFiles'], - "oriName" => "remote.png" -); -$fieldName = $CONFIG['catcherFieldName']; - -/* 抓取远程图片 */ -$list = array(); -if (isset($_POST[$fieldName])) { - $source = $_POST[$fieldName]; -} else { - $source = $_GET[$fieldName]; -} -foreach ($source as $imgUrl) { - $item = new Uploader($imgUrl, $config, "remote"); - $info = $item->getFileInfo(); - array_push($list, array( - "state" => $info["state"], - "url" => $info["url"], - "size" => $info["size"], - "title" => htmlspecialchars($info["title"]), - "original" => htmlspecialchars($info["original"]), - "source" => htmlspecialchars($imgUrl) - )); -} - -/* 返回抓取数据 */ -return json_encode(array( - 'state'=> count($list) ? 'SUCCESS':'ERROR', - 'list'=> $list -)); \ No newline at end of file diff --git a/public/static/UEditor/php/action_list.php b/public/static/UEditor/php/action_list.php deleted file mode 100644 index bf9cd62..0000000 --- a/public/static/UEditor/php/action_list.php +++ /dev/null @@ -1,92 +0,0 @@ - "no match file", - "list" => array(), - "start" => $start, - "total" => count($files) - )); -} - -/* 获取指定范围的列表 */ -$len = count($files); -for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){ - $list[] = $files[$i]; -} -//倒序 -//for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){ -// $list[] = $files[$i]; -//} - -/* 返回数据 */ -$result = json_encode(array( - "state" => "SUCCESS", - "list" => $list, - "start" => $start, - "total" => count($files) -)); - -return $result; - - -/** - * 遍历获取目录下的指定类型的文件 - * @param $path - * @param array $files - * @return array - */ -function getfiles($path, $allowFiles, &$files = array()) -{ - if (!is_dir($path)) return null; - if(substr($path, strlen($path) - 1) != '/') $path .= '/'; - $handle = opendir($path); - while (false !== ($file = readdir($handle))) { - if ($file != '.' && $file != '..') { - $path2 = $path . $file; - if (is_dir($path2)) { - getfiles($path2, $allowFiles, $files); - } else { - if (preg_match("/\.(".$allowFiles.")$/i", $file)) { - $files[] = array( - 'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])), - 'mtime'=> filemtime($path2) - ); - } - } - } - } - return $files; -} \ No newline at end of file diff --git a/public/static/UEditor/php/action_upload.php b/public/static/UEditor/php/action_upload.php deleted file mode 100644 index d55b659..0000000 --- a/public/static/UEditor/php/action_upload.php +++ /dev/null @@ -1,66 +0,0 @@ - $CONFIG['imagePathFormat'], - "maxSize" => $CONFIG['imageMaxSize'], - "allowFiles" => $CONFIG['imageAllowFiles'] - ); - $fieldName = $CONFIG['imageFieldName']; - break; - case 'uploadscrawl': - $config = array( - "pathFormat" => $CONFIG['scrawlPathFormat'], - "maxSize" => $CONFIG['scrawlMaxSize'], - "allowFiles" => $CONFIG['scrawlAllowFiles'], - "oriName" => "scrawl.png" - ); - $fieldName = $CONFIG['scrawlFieldName']; - $base64 = "base64"; - break; - case 'uploadvideo': - $config = array( - "pathFormat" => $CONFIG['videoPathFormat'], - "maxSize" => $CONFIG['videoMaxSize'], - "allowFiles" => $CONFIG['videoAllowFiles'] - ); - $fieldName = $CONFIG['videoFieldName']; - break; - case 'uploadfile': - default: - $config = array( - "pathFormat" => $CONFIG['filePathFormat'], - "maxSize" => $CONFIG['fileMaxSize'], - "allowFiles" => $CONFIG['fileAllowFiles'] - ); - $fieldName = $CONFIG['fileFieldName']; - break; -} - -/* 生成上传实例对象并完成上传 */ -$up = new Uploader($fieldName, $config, $base64); - -/** - * 得到上传文件所对应的各个参数,数组结构 - * array( - * "state" => "", //上传状态,上传成功时必须返回"SUCCESS" - * "url" => "", //返回的地址 - * "title" => "", //新文件名 - * "original" => "", //原始文件名 - * "type" => "" //文件类型 - * "size" => "", //文件大小 - * ) - */ - -/* 返回数据 */ -return json_encode($up->getFileInfo()); diff --git a/public/static/UEditor/php/config.json b/public/static/UEditor/php/config.json deleted file mode 100644 index dd5bc17..0000000 --- a/public/static/UEditor/php/config.json +++ /dev/null @@ -1,94 +0,0 @@ -/* 前后端通信相关的配置,注释只允许使用多行方式 */ -{ - /* 上传图片配置项 */ - "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ - "imageFieldName": "upfile", /* 提交的图片表单名称 */ - "imageMaxSize": 2048000, /* 上传大小限制,单位B */ - "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ - "imageCompressEnable": true, /* 是否压缩图片,默认是true */ - "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ - "imageInsertAlign": "none", /* 插入的图片浮动方式 */ - "imageUrlPrefix": "", /* 图片访问路径前缀 */ - "imagePathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ - /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ - /* {time} 会替换成时间戳 */ - /* {yyyy} 会替换成四位年份 */ - /* {yy} 会替换成两位年份 */ - /* {mm} 会替换成两位月份 */ - /* {dd} 会替换成两位日期 */ - /* {hh} 会替换成两位小时 */ - /* {ii} 会替换成两位分钟 */ - /* {ss} 会替换成两位秒 */ - /* 非法字符 \ : * ? " < > | */ - /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */ - - /* 涂鸦图片上传配置项 */ - "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */ - "scrawlFieldName": "upfile", /* 提交的图片表单名称 */ - "scrawlPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ - "scrawlUrlPrefix": "", /* 图片访问路径前缀 */ - "scrawlInsertAlign": "none", - - /* 截图工具上传 */ - "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ - "snapscreenPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */ - "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */ - - /* 抓取远程图片配置 */ - "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"], - "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */ - "catcherFieldName": "source", /* 提交的图片列表表单名称 */ - "catcherPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "catcherUrlPrefix": "", /* 图片访问路径前缀 */ - "catcherMaxSize": 2048000, /* 上传大小限制,单位B */ - "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */ - - /* 上传视频配置 */ - "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */ - "videoFieldName": "upfile", /* 提交的视频表单名称 */ - "videoPathFormat": "/ueditor/php/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "videoUrlPrefix": "", /* 视频访问路径前缀 */ - "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */ - "videoAllowFiles": [ - ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", - ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */ - - /* 上传文件配置 */ - "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */ - "fileFieldName": "upfile", /* 提交的文件表单名称 */ - "filePathFormat": "/ueditor/php/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "fileUrlPrefix": "", /* 文件访问路径前缀 */ - "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */ - "fileAllowFiles": [ - ".png", ".jpg", ".jpeg", ".gif", ".bmp", - ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", - ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", - ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", - ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" - ], /* 上传文件格式显示 */ - - /* 列出指定目录下的图片 */ - "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */ - "imageManagerListPath": "/ueditor/php/upload/image/", /* 指定要列出图片的目录 */ - "imageManagerListSize": 20, /* 每次列出文件数量 */ - "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */ - "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */ - "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */ - - /* 列出指定目录下的文件 */ - "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */ - "fileManagerListPath": "/ueditor/php/upload/file/", /* 指定要列出文件的目录 */ - "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */ - "fileManagerListSize": 20, /* 每次列出文件数量 */ - "fileManagerAllowFiles": [ - ".png", ".jpg", ".jpeg", ".gif", ".bmp", - ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", - ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", - ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", - ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" - ] /* 列出的文件类型 */ - -} \ No newline at end of file diff --git a/public/static/UEditor/php/controller.php b/public/static/UEditor/php/controller.php deleted file mode 100644 index feac890..0000000 --- a/public/static/UEditor/php/controller.php +++ /dev/null @@ -1,59 +0,0 @@ - '请求地址出错' - )); - break; -} - -/* 输出结果 */ -if (isset($_GET["callback"])) { - if (preg_match("/^[\w_]+$/", $_GET["callback"])) { - echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; - } else { - echo json_encode(array( - 'state'=> 'callback参数不合法' - )); - } -} else { - echo $result; -} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/css/ueditor.css b/public/static/UEditor/themes/default/css/ueditor.css deleted file mode 100644 index 44ae805..0000000 --- a/public/static/UEditor/themes/default/css/ueditor.css +++ /dev/null @@ -1,1903 +0,0 @@ -/*基础UI构建 -*/ -/* common layer */ -.edui-default .edui-box { - border: none; - padding: 0; - margin: 0; - overflow: hidden; -} - -.edui-default a.edui-box { - display: block; - text-decoration: none; - color: black; -} - -.edui-default a.edui-box:hover { - text-decoration: none; -} - -.edui-default a.edui-box:active { - text-decoration: none; -} - -.edui-default table.edui-box { - border-collapse: collapse; -} - -.edui-default ul.edui-box { - list-style-type: none; -} - -div.edui-box { - position: relative; - display: -moz-inline-box !important; - display: inline-block !important; - vertical-align: top; -} - -.edui-default .edui-clearfix { - zoom: 1 -} - -.edui-default .edui-clearfix:after { - content: '\20'; - display: block; - clear: both; -} - - * html div.edui-box { - display: inline !important; -} - -*:first-child+html div.edui-box { - display: inline !important; -} - -/* control layout */ -.edui-default .edui-button-body, .edui-splitbutton-body, .edui-menubutton-body, .edui-combox-body { - position: relative; -} - -.edui-default .edui-popup { - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; -} - -.edui-default .edui-popup .edui-shadow { - position: absolute; - z-index: -1; -} - -.edui-default .edui-popup .edui-bordereraser { - position: absolute; - overflow: hidden; -} - -.edui-default .edui-tablepicker .edui-canvas { - position: relative; -} - -.edui-default .edui-tablepicker .edui-canvas .edui-overlay { - position: absolute; -} - -.edui-default .edui-dialog-modalmask, .edui-dialog-dragmask { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -.edui-default .edui-toolbar { - position: relative; -} - -/* - * default theme - */ -.edui-default .edui-label { - cursor: default; -} - -.edui-default span.edui-clickable { - color: blue; - cursor: pointer; - text-decoration: underline; -} - -.edui-default span.edui-unclickable { - color: gray; - cursor: default; -} -/* 工具栏 */ -.edui-default .edui-toolbar { - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - padding: 1px; - overflow: hidden; /*全屏下单独一行不占位*/ - zoom: 1; - width:auto; - height:auto; -} - -.edui-default .edui-toolbar .edui-button, -.edui-default .edui-toolbar .edui-splitbutton, -.edui-default .edui-toolbar .edui-menubutton, -.edui-default .edui-toolbar .edui-combox { - margin: 1px; -} -/*UI工具栏、编辑区域、底部*/ -.edui-default .edui-editor { - border: 1px solid #d4d4d4; - background-color: white; - position: relative; - overflow: visible; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.edui-editor div{ - width:auto; - height:auto; -} -.edui-default .edui-editor-toolbarbox { - position: relative; - zoom: 1; - -webkit-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - -moz-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - border-top-left-radius:2px; - border-top-right-radius:2px; -} - -.edui-default .edui-editor-toolbarboxouter { - border-bottom: 1px solid #d4d4d4; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - /*border: 1px solid #d4d4d4;*/ - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - *zoom: 1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.edui-default .edui-editor-toolbarboxinner { - padding: 2px; -} - -.edui-default .edui-editor-iframeholder { - position: relative; - /*for fix ie6 toolbarmsg under iframe bug. relative -> static */ - /*_position: static !important;* -} - -.edui-default .edui-editor-iframeholder textarea { - font-family: consolas, "Courier New", "lucida console", monospace; - font-size: 12px; - line-height: 18px; -} - -.edui-default .edui-editor-bottombar { - /*border-top: 1px solid #ccc;*/ - /*height: 20px;*/ - /*width: 40%;*/ - /*float: left;*/ - /*overflow: hidden;*/ -} - -.edui-default .edui-editor-bottomContainer { - overflow: hidden; -} - -.edui-default .edui-editor-bottomContainer table { - width: 100%; - height: 0; - overflow: hidden; - border-spacing: 0; -} - -.edui-default .edui-editor-bottomContainer td { - white-space: nowrap; - border-top: 1px solid #ccc; - line-height: 20px; - font-size: 12px; - font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif; -} - -.edui-default .edui-editor-wordcount { - text-align: right; - margin-right: 5px; - color: #aaa; -} -.edui-default .edui-editor-scale { - width: 12px; -} -.edui-default .edui-editor-scale .edui-editor-icon { - float: right; - width: 100%; - height: 12px; - margin-top: 10px; - background: url(../images/scale.png) no-repeat; - cursor: se-resize; -} -.edui-default .edui-editor-breadcrumb { - margin: 2px 0 0 3px; -} - -.edui-default .edui-editor-breadcrumb span { - cursor: pointer; - text-decoration: underline; - color: blue; -} - -.edui-default .edui-toolbar .edui-for-fullscreen { - float: right; -} - -.edui-default .edui-bubble .edui-popup-content { - border: 1px solid #DCAC6C; - background-color: #fff6d9; - padding: 5px; - font-size: 10pt; - font-family: "宋体"; -} - -.edui-default .edui-bubble .edui-shadow { - /*box-shadow: 1px 1px 3px #818181;*/ - /*-webkit-box-shadow: 2px 2px 3px #818181;*/ - /*-moz-box-shadow: 2px 2px 3px #818181;*/ - /*filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius = '2', MakeShadow = 'true', ShadowOpacity = '0.5');*/ -} - -.edui-default .edui-editor-toolbarmsg { - background-color: #FFF6D9; - border-bottom: 1px solid #ccc; - position: absolute; - bottom: -25px; - left: 0; - z-index: 1009; - width: 99.9%; -} - -.edui-default .edui-editor-toolbarmsg-upload { - font-size: 14px; - color: blue; - width: 100px; - height: 16px; - line-height: 16px; - cursor: pointer; - position: absolute; - top: 5px; - left: 350px; -} - -.edui-default .edui-editor-toolbarmsg-label { - font-size: 12px; - line-height: 16px; - padding: 4px; -} - -.edui-default .edui-editor-toolbarmsg-close { - float: right; - width: 20px; - height: 16px; - line-height: 16px; - cursor: pointer; - color: red; -} -/*可选中菜单按钮*/ -.edui-default .edui-list .edui-bordereraser { - display: none; -} - -.edui-default .edui-listitem { - padding: 1px; - white-space: nowrap; -} - -.edui-default .edui-list .edui-state-hover { - position: relative; - background-color: #fff5d4; - border: 1px solid #dcac6c; - padding: 0; -} - -.edui-default .edui-for-fontfamily .edui-listitem-label { - min-width: 130px; - _width: 120px; - font-size: 12px; - height: 22px; - line-height: 22px; - padding-left: 5px; -} -.edui-default .edui-for-insertcode .edui-listitem-label { - min-width: 120px; - _width: 120px; - font-size: 12px; - height: 22px; - line-height: 22px; - padding-left: 5px; -} -.edui-default .edui-for-underline .edui-listitem-label { - min-width: 120px; - _width: 120px; - padding: 3px 5px; - font-size: 12px; -} - -.edui-default .edui-for-fontsize .edui-listitem-label { - min-width: 120px; - _width: 120px; - padding: 3px 5px; - -} - -.edui-default .edui-for-paragraph .edui-listitem-label { - min-width: 200px; - _width: 200px; - padding: 2px 5px; -} - -.edui-default .edui-for-rowspacingtop .edui-listitem-label, -.edui-default .edui-for-rowspacingbottom .edui-listitem-label { - min-width: 53px; - _width: 53px; - padding: 2px 5px; -} - -.edui-default .edui-for-lineheight .edui-listitem-label { - min-width: 53px; - _width: 53px; - padding: 2px 5px; -} - -.edui-default .edui-for-customstyle .edui-listitem-label { - min-width: 200px; - _width: 200px; - width: 200px !important; - padding: 2px 5px; -} -/* 可选中按钮弹出菜单*/ -.edui-default .edui-menu { - z-index: 3000; -} - -.edui-default .edui-menu .edui-popup-content { - padding: 3px; -} - -.edui-default .edui-menu-body { - _width: 150px; - min-width: 170px; - background: url("../images/sparator_v.png") repeat-y 25px; -} - -.edui-default .edui-menuitem-body { -} - -.edui-default .edui-menuitem { - height: 20px; - cursor: default; - vertical-align: top; -} - -.edui-default .edui-menuitem .edui-icon { - width: 20px !important; - height: 20px !important; - background: url(../images/icons.png) 0 -4000px; - background: url(../images/icons.gif) 0 -4000px\9; -} - -.edui-default .edui-menuitem .edui-label { - font-size: 12px; - line-height: 20px; - height: 20px; - padding-left: 10px; -} - -.edui-default .edui-state-checked .edui-menuitem-body { - background: url("../images/icons-all.gif") no-repeat 6px -205px; -} - -.edui-default .edui-state-disabled .edui-menuitem-label { - color: gray; -} - - -/*不可选中菜单按钮 */ -.edui-default .edui-toolbar .edui-combox-body .edui-button-body { - width: 60px; - font-size: 12px; - height: 20px; - line-height: 20px; - padding-left: 5px; - white-space: nowrap; - margin: 0 3px 0 0; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-arrow { - background: url(../images/icons.png) -741px 0; - _background: url(../images/icons.gif) -741px 0; - height: 20px; - width: 9px; -} - -.edui-default .edui-toolbar .edui-combox .edui-combox-body { - border: 1px solid #CCC; - background-color: white; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-splitborder { - display: none; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-arrow { - border-left: 1px solid #CCC; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-combox-body { - background-color: #fff5d4; - border: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow { - border-left: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-checked .edui-combox-body { - background-color: #FFE69F; - border: 1px solid #DCAC6C; -} - -.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow { - border-left: 1px solid #DCAC6C; -} - -.edui-toolbar .edui-state-disabled .edui-combox-body { - background-color: #F0F0EE; - opacity: 0.3; - filter: alpha(opacity = 30); -} - -.edui-toolbar .edui-state-opened .edui-combox-body { - background-color: white; - border: 1px solid gray; -} -/*普通按钮样式及状态*/ -.edui-default .edui-toolbar .edui-button .edui-icon, -.edui-default .edui-toolbar .edui-menubutton .edui-icon, -.edui-default .edui-toolbar .edui-splitbutton .edui-icon { - height: 20px !important; - width: 20px !important; - background-image: url(../images/icons.png); - background-image: url(../images/icons.gif) \9; -} - -.edui-default .edui-toolbar .edui-button .edui-button-wrap { - padding: 1px; - position: relative; -} - -.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap { - background-color: #fff5d4; - padding: 0; - border: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap { - background-color: #ffe69f; - padding: 0; - border: 1px solid #dcac6c; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; -} - -.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap { - background-color: #ffffff; - padding: 0; - border: 1px solid gray; -} -.edui-default .edui-toolbar .edui-state-disabled .edui-label { - color: #ccc; -} -.edui-default .edui-toolbar .edui-state-disabled .edui-icon { - opacity: 0.3; - filter: alpha(opacity = 30); -} - -/* toolbar icons */ -.edui-default .edui-for-undo .edui-icon { - background-position: -160px 0; -} - -.edui-default .edui-for-redo .edui-icon { - background-position: -100px 0; -} - -.edui-default .edui-for-bold .edui-icon { - background-position: 0 0; -} - -.edui-default .edui-for-italic .edui-icon { - background-position: -60px 0; -} - -.edui-default .edui-for-fontborder .edui-icon { - background-position:-160px -40px; -} -.edui-default .edui-for-underline .edui-icon { - background-position: -140px 0; -} - -.edui-default .edui-for-strikethrough .edui-icon { - background-position: -120px 0; -} - -.edui-default .edui-for-subscript .edui-icon { - background-position: -600px 0; -} - -.edui-default .edui-for-superscript .edui-icon { - background-position: -620px 0; -} - -.edui-default .edui-for-blockquote .edui-icon { - background-position: -220px 0; -} - -.edui-default .edui-for-forecolor .edui-icon { - background-position: -720px 0; -} - -.edui-default .edui-for-backcolor .edui-icon { - background-position: -760px 0; -} - -.edui-default .edui-for-inserttable .edui-icon { - background-position: -580px -20px; -} - -.edui-default .edui-for-autotypeset .edui-icon { - background-position: -640px -40px; -} - -.edui-default .edui-for-justifyleft .edui-icon { - background-position: -460px 0; -} - -.edui-default .edui-for-justifycenter .edui-icon { - background-position: -420px 0; -} - -.edui-default .edui-for-justifyright .edui-icon { - background-position: -480px 0; -} - -.edui-default .edui-for-justifyjustify .edui-icon { - background-position: -440px 0; -} - -.edui-default .edui-for-insertorderedlist .edui-icon { - background-position: -80px 0; -} - -.edui-default .edui-for-insertunorderedlist .edui-icon { - background-position: -20px 0; -} - -.edui-default .edui-for-lineheight .edui-icon { - background-position: -725px -40px; -} - -.edui-default .edui-for-rowspacingbottom .edui-icon { - background-position: -745px -40px; -} - -.edui-default .edui-for-rowspacingtop .edui-icon { - background-position: -765px -40px; -} - -.edui-default .edui-for-horizontal .edui-icon { - background-position: -360px 0; -} - -.edui-default .edui-for-link .edui-icon { - background-position: -500px 0; -} - -.edui-default .edui-for-code .edui-icon { - background-position: -440px -40px; -} - -.edui-default .edui-for-insertimage .edui-icon { - background-position: -726px -77px; -} - -.edui-default .edui-for-insertframe .edui-icon { - background-position: -240px -40px; -} - -.edui-default .edui-for-emoticon .edui-icon { - background-position: -60px -20px; -} - -.edui-default .edui-for-spechars .edui-icon { - background-position: -240px 0; -} - -.edui-default .edui-for-help .edui-icon { - background-position: -340px 0; -} - -.edui-default .edui-for-print .edui-icon { - background-position: -440px -20px; -} - -.edui-default .edui-for-preview .edui-icon { - background-position: -420px -20px; -} - -.edui-default .edui-for-selectall .edui-icon { - background-position: -400px -20px; -} - -.edui-default .edui-for-searchreplace .edui-icon { - background-position: -520px -20px; -} - -.edui-default .edui-for-map .edui-icon { - background-position: -40px -40px; -} - -.edui-default .edui-for-gmap .edui-icon { - background-position: -260px -40px; -} - -.edui-default .edui-for-insertvideo .edui-icon { - background-position: -320px -20px; -} - -.edui-default .edui-for-time .edui-icon { - background-position: -160px -20px; -} - -.edui-default .edui-for-date .edui-icon { - background-position: -140px -20px; -} - -.edui-default .edui-for-cut .edui-icon { - background-position: -680px 0; -} - -.edui-default .edui-for-copy .edui-icon { - background-position: -700px 0; -} - -.edui-default .edui-for-paste .edui-icon { - background-position: -560px 0; -} - -.edui-default .edui-for-formatmatch .edui-icon { - background-position: -40px 0; -} - -.edui-default .edui-for-pasteplain .edui-icon { - background-position: -360px -20px; -} - -.edui-default .edui-for-directionalityltr .edui-icon { - background-position: -20px -20px; -} - -.edui-default .edui-for-directionalityrtl .edui-icon { - background-position: -40px -20px; -} - -.edui-default .edui-for-source .edui-icon { - background-position: -261px -0px; -} - -.edui-default .edui-for-removeformat .edui-icon { - background-position: -580px 0; -} - -.edui-default .edui-for-unlink .edui-icon { - background-position: -640px 0; -} - -.edui-default .edui-for-touppercase .edui-icon { - background-position: -786px 0; -} - -.edui-default .edui-for-tolowercase .edui-icon { - background-position: -806px 0; -} - -.edui-default .edui-for-insertrow .edui-icon { - background-position: -478px -76px; -} - -.edui-default .edui-for-insertrownext .edui-icon { - background-position: -498px -76px; -} - -.edui-default .edui-for-insertcol .edui-icon { - background-position: -455px -76px; -} - -.edui-default .edui-for-insertcolnext .edui-icon { - background-position: -429px -76px; -} - -.edui-default .edui-for-mergeright .edui-icon { - background-position: -60px -40px; -} - -.edui-default .edui-for-mergedown .edui-icon { - background-position: -80px -40px; -} - -.edui-default .edui-for-splittorows .edui-icon { - background-position: -100px -40px; -} - -.edui-default .edui-for-splittocols .edui-icon { - background-position: -120px -40px; -} - -.edui-default .edui-for-insertparagraphbeforetable .edui-icon { - background-position: -140px -40px; -} - -.edui-default .edui-for-deleterow .edui-icon { - background-position: -660px -20px; -} - -.edui-default .edui-for-deletecol .edui-icon { - background-position: -640px -20px; -} - -.edui-default .edui-for-splittocells .edui-icon { - background-position: -800px -20px; -} - -.edui-default .edui-for-mergecells .edui-icon { - background-position: -760px -20px; -} - -.edui-default .edui-for-deletetable .edui-icon { - background-position: -620px -20px; -} - -.edui-default .edui-for-cleardoc .edui-icon { - background-position: -520px 0; -} - -.edui-default .edui-for-fullscreen .edui-icon { - background-position: -100px -20px; -} - -.edui-default .edui-for-anchor .edui-icon { - background-position: -200px 0; -} - -.edui-default .edui-for-pagebreak .edui-icon { - background-position: -460px -40px; -} - -.edui-default .edui-for-imagenone .edui-icon { - background-position: -480px -40px; -} - -.edui-default .edui-for-imageleft .edui-icon { - background-position: -500px -40px; -} - -.edui-default .edui-for-wordimage .edui-icon { - background-position: -660px -40px; -} - -.edui-default .edui-for-imageright .edui-icon { - background-position: -520px -40px; -} - -.edui-default .edui-for-imagecenter .edui-icon { - background-position: -540px -40px; -} - -.edui-default .edui-for-indent .edui-icon { - background-position: -400px 0; -} - -.edui-default .edui-for-outdent .edui-icon { - background-position: -540px 0; -} - -.edui-default .edui-for-webapp .edui-icon { - background-position: -601px -40px -} - -.edui-default .edui-for-table .edui-icon { - background-position: -580px -20px; -} - -.edui-default .edui-for-edittable .edui-icon { - background-position: -420px -40px; -} - -.edui-default .edui-for-template .edui-icon { - background-position: -339px -40px; -} - -.edui-default .edui-for-delete .edui-icon { - background-position: -360px -40px; -} - -.edui-default .edui-for-attachment .edui-icon { - background-position: -620px -40px; -} - -.edui-default .edui-for-edittd .edui-icon { - background-position: -700px -40px; -} - -.edui-default .edui-for-snapscreen .edui-icon { - background-position: -581px -40px -} - -.edui-default .edui-for-scrawl .edui-icon { - background-position: -801px -41px -} - -.edui-default .edui-for-background .edui-icon { - background-position: -680px -40px; -} - -.edui-default .edui-for-music .edui-icon { - background-position: -18px -40px -} - -.edui-default .edui-for-formula .edui-icon { - background-position: -200px -40px -} - -.edui-default .edui-for-aligntd .edui-icon { - background-position: -236px -76px; -} - -.edui-default .edui-for-insertparagraphtrue .edui-icon { - background-position: -625px -76px; -} - -.edui-default .edui-for-insertparagraph .edui-icon { - background-position: -602px -76px; -} - -.edui-default .edui-for-insertcaption .edui-icon { - background-position: -336px -76px; -} - -.edui-default .edui-for-deletecaption .edui-icon { - background-position: -362px -76px; -} - -.edui-default .edui-for-inserttitle .edui-icon { - background-position: -286px -76px; -} - -.edui-default .edui-for-deletetitle .edui-icon { - background-position: -311px -76px; -} - -.edui-default .edui-for-aligntable .edui-icon { - background-position: -440px 0; -} - -.edui-default .edui-for-tablealignment-left .edui-icon { - background-position: -460px 0; -} - -.edui-default .edui-for-tablealignment-center .edui-icon { - background-position: -420px 0; -} - -.edui-default .edui-for-tablealignment-right .edui-icon { - background-position: -480px 0; -} - -.edui-default .edui-for-drafts .edui-icon { - background-position: -560px 0; -} - -.edui-default .edui-for-charts .edui-icon { - background: url( ../images/charts.png ) no-repeat 2px 3px!important; -} - -.edui-default .edui-for-inserttitlecol .edui-icon { - background-position: -673px -76px; -} - -.edui-default .edui-for-deletetitlecol .edui-icon { - background-position: -698px -76px; -} - -.edui-default .edui-for-simpleupload .edui-icon { - background-position: -380px 0px; -} -/*splitbutton*/ -.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow, -.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow { - background: url(../images/icons.png) -741px 0; - _background: url(../images/icons.gif) -741px 0; - height: 20px; - width: 9px; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body { - padding: 1px; -} - -.edui-default .edui-toolbar .edui-splitborder { - width: 1px; - height: 20px; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-splitborder { - width: 1px; - border-left: 0px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-active .edui-splitborder { - width: 0; - border-left: 1px solid gray; -} - -.edui-default .edui-toolbar .edui-state-opened .edui-splitborder { - width: 1px; - border: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body { - background-color: #fff5d4; - border: 1px solid #dcac6c; - padding: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body { - background-color: #FFE69F; - border: 1px solid #DCAC6C; - padding: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body { - background-color: #ffffff; - border: 1px solid gray; - padding: 0; -} - -.edui-default .edui-state-disabled .edui-arrow { - opacity: 0.3; - _filter: alpha(opacity = 30); -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body { - background-color: white; - border: 1px solid gray; - padding: 0; -} - -.edui-default .edui-for-insertorderedlist .edui-bordereraser, -.edui-default .edui-for-lineheight .edui-bordereraser, -.edui-default .edui-for-rowspacingtop .edui-bordereraser, -.edui-default .edui-for-rowspacingbottom .edui-bordereraser, -.edui-default .edui-for-insertunorderedlist .edui-bordereraser { - background-color: white; -} - -/* 解决嵌套导致的图标问题 */ -.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon, -.edui-default .edui-for-lineheight .edui-popup-body .edui-icon, -.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon, -.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon, -.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon { - /*background-position: 0 -40px;*/ - background-image: none ; -} - -/* 弹出菜单 */ -.edui-default .edui-popup { - z-index: 3000; - background-color: #ffffff; - width:auto; - height:auto; - -} - -.edui-default .edui-popup .edui-shadow { - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -.edui-default .edui-popup-content { - border:1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - padding: 5px; - background:#ffffff; -} - -.edui-default .edui-popup .edui-bordereraser { - background-color: white; - height: 3px; -} - -.edui-default .edui-menu .edui-bordereraser { - height: 3px; -} - -.edui-default .edui-anchor-topleft .edui-bordereraser { - left: 1px; - top: -2px; -} - -.edui-default .edui-anchor-topright .edui-bordereraser { - right: 1px; - top: -2px; -} - -.edui-default .edui-anchor-bottomleft .edui-bordereraser { - left: 0; - bottom: -6px; - height: 7px; - border-left: 1px solid gray; - border-right: 1px solid gray; -} - -.edui-default .edui-anchor-bottomright .edui-bordereraser { - right: 0; - bottom: -6px; - height: 7px; - border-left: 1px solid gray; - border-right: 1px solid gray; -} - -.edui-popup div{ - width:auto; - height:auto; -} -.edui-default .edui-editor-messageholder { - display: block; - width: 150px; - height: auto; - border: 0; - margin: 0; - padding: 0; - position: absolute; - top: 28px; - right: 3px; -} - -.edui-default .edui-message{ - min-height: 10px; - text-shadow: 0 1px 0 rgba(255,255,255,0.5); - padding: 0; - margin-bottom: 3px; - position: relative; -} -.edui-default .edui-message-body{ - border-radius: 3px; - padding: 8px 15px 8px 8px; - color: #c09853; - background-color: #fcf8e3; - border: 1px solid #fbeed5; -} -.edui-default .edui-message-type-info{ - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1 -} -.edui-default .edui-message-type-success{ - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6 -} -.edui-default .edui-message-type-danger, -.edui-default .edui-message-type-error{ - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7 -} -.edui-default .edui-message .edui-message-closer { - display: block; - width: 16px; - height: 16px; - line-height: 16px; - position: absolute; - top: 0; - right: 0; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - float: right; - font-size: 20px; - font-weight: bold; - color: #999; - text-shadow: 0 1px 0 #fff; - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; -} -.edui-default .edui-message .edui-message-content { - font-size: 10pt; - word-wrap: break-word; - word-break: normal; -} -/* 弹出对话框按钮和对话框大小 */ -.edui-default .edui-dialog { - z-index: 2000; - position: absolute; - -} - -.edui-dialog div{ - width:auto; -} - -.edui-default .edui-dialog-wrap { - margin-right: 6px; - margin-bottom: 6px; -} - -.edui-default .edui-dialog-fullscreen-flag { - margin-right: 0; - margin-bottom: 0; -} - -.edui-default .edui-dialog-body { - position: relative; - padding:2px 0 0 2px; - _zoom: 1; -} - -.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body { - padding: 0; -} - -.edui-default .edui-dialog-shadow { - position: absolute; - z-index: -1; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.edui-default .edui-dialog-foot { - background-color: white; -} - -.edui-default .edui-dialog-titlebar { - height: 26px; - border-bottom: 1px solid #c6c6c6; - background: url(../images/dialog-title-bg.png) repeat-x bottom; - position: relative; - cursor: move; -} -.edui-default .edui-dialog-caption { - font-weight: bold; - font-size: 12px; - line-height: 26px; - padding-left: 5px; -} - -.edui-default .edui-dialog-draghandle { - height: 26px; -} - -.edui-default .edui-dialog-closebutton { - position: absolute !important; - right: 5px; - top: 3px; -} - -.edui-default .edui-dialog-closebutton .edui-button-body { - height: 20px; - width: 20px; - cursor: pointer; - background: url("../images/icons-all.gif") no-repeat 0 -59px; -} - -.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body { - background: url("../images/icons-all.gif") no-repeat 0 -89px; -} - -.edui-default .edui-dialog-foot { - height: 40px; -} - -.edui-default .edui-dialog-buttons { - position: absolute; - right: 0; -} - -.edui-default .edui-dialog-buttons .edui-button { - margin-right: 10px; -} - -.edui-default .edui-dialog-buttons .edui-button .edui-button-body { - background: url("../images/icons-all.gif") no-repeat; - height: 24px; - width: 96px; - font-size: 12px; - line-height: 24px; - text-align: center; - cursor: default; -} - -.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body { - background: url("../images/icons-all.gif") no-repeat 0 -30px; -} - -.edui-default .edui-dialog iframe { - border: 0; - padding: 0; - margin: 0; - vertical-align: top; -} - -.edui-default .edui-dialog-modalmask { - opacity: 0.3; - filter: alpha(opacity = 30); - background-color: #ccc; - position: absolute; - /*z-index: 1999;*/ -} - -.edui-default .edui-dialog-dragmask { - position: absolute; - /*z-index: 2001;*/ - background-color: transparent; - cursor: move; -} - -.edui-default .edui-dialog-content { - position: relative; -} - -.edui-default .dialogcontmask { - cursor: move; - visibility: hidden; - display: block; - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - filter: alpha(opacity = 0); -} - -/*link-dialog*/ -.edui-default .edui-for-link .edui-dialog-content { - width: 420px; - height: 200px; - overflow: hidden; -} -/*background-dialog*/ -.edui-default .edui-for-background .edui-dialog-content { - width: 440px; - height: 280px; - overflow: hidden; -} - -/*template-dialog*/ -.edui-default .edui-for-template .edui-dialog-content { - width: 630px; - height: 390px; - overflow: hidden; -} - -/*scrawl-dialog*/ -.edui-default .edui-for-scrawl .edui-dialog-content { - width: 515px; - *width: 506px; - height: 360px; -} - -/*spechars-dialog*/ -.edui-default .edui-for-spechars .edui-dialog-content { - width: 620px; - height: 500px; - *width: 630px; - *height: 570px; -} - -/*image-dialog*/ -.edui-default .edui-for-insertimage .edui-dialog-content { - width: 650px; - height: 400px; - overflow: hidden; -} -/*webapp-dialog*/ -.edui-default .edui-for-webapp .edui-dialog-content { - width: 560px; - _width: 565px; - height: 450px; - overflow: hidden; -} - -/*image-insertframe*/ -.edui-default .edui-for-insertframe .edui-dialog-content { - width: 350px; - height: 200px; - overflow: hidden; -} - -/*wordImage-dialog*/ -.edui-default .edui-for-wordimage .edui-dialog-content { - width: 620px; - height: 380px; - overflow: hidden; -} - -/*attachment-dialog*/ -.edui-default .edui-for-attachment .edui-dialog-content { - width: 650px; - height: 400px; - overflow: hidden; -} - - -/*map-dialog*/ -.edui-default .edui-for-map .edui-dialog-content { - width: 550px; - height: 400px; -} - -/*gmap-dialog*/ -.edui-default .edui-for-gmap .edui-dialog-content { - width: 550px; - height: 400px; -} - -/*video-dialog*/ -.edui-default .edui-for-insertvideo .edui-dialog-content { - width: 590px; - height: 390px; -} - -/*anchor-dialog*/ -.edui-default .edui-for-anchor .edui-dialog-content { - width: 320px; - height: 60px; - overflow: hidden; -} - -/*searchreplace-dialog*/ -.edui-default .edui-for-searchreplace .edui-dialog-content { - width: 400px; - height: 220px; -} - -/*help-dialog*/ -.edui-default .edui-for-help .edui-dialog-content { - width: 400px; - height: 420px; -} - -/*edittable-dialog*/ -.edui-default .edui-for-edittable .edui-dialog-content { - width: 540px; - _width:590px; - height: 335px; -} - -/*edittip-dialog*/ -.edui-default .edui-for-edittip .edui-dialog-content { - width: 225px; - height: 60px; -} - -/*edittd-dialog*/ -.edui-default .edui-for-edittd .edui-dialog-content { - width: 240px; - height: 50px; -} -/*snapscreen-dialog*/ -.edui-default .edui-for-snapscreen .edui-dialog-content { - width: 400px; - height: 220px; -} - -/*music-dialog*/ -.edui-default .edui-for-music .edui-dialog-content { - width: 515px; - height: 360px; -} - -/*段落弹出菜单*/ -.edui-default .edui-for-paragraph .edui-listitem-label { - font-family: Tahoma, Verdana, Arial, Helvetica; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p { - font-size: 22px; - line-height: 27px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1 { - font-weight: bolder; - font-size: 32px; - line-height: 36px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2 { - font-weight: bolder; - font-size: 27px; - line-height: 29px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3 { - font-weight: bolder; - font-size: 19px; - line-height: 23px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4 { - font-weight: bolder; - font-size: 16px; - line-height: 19px -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5 { - font-weight: bolder; - font-size: 13px; - line-height: 16px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6 { - font-weight: bolder; - font-size: 12px; - line-height: 14px; -} -/* 表格弹出菜单 */ -.edui-default .edui-for-inserttable .edui-splitborder { - display: none -} -.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow { - width: 0 -} -.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{ - border-left: 1px solid transparent; -} -.edui-default .edui-tablepicker .edui-infoarea { - height: 14px; - line-height: 14px; - font-size: 12px; - width: 220px; - margin-bottom: 3px; - clear: both; -} - -.edui-default .edui-tablepicker .edui-infoarea .edui-label { - float: left; -} - -.edui-default .edui-dialog-buttons .edui-label { - line-height: 24px; -} - -.edui-default .edui-tablepicker .edui-infoarea .edui-clickable { - float: right; -} - -.edui-default .edui-tablepicker .edui-pickarea { - background: url("../images/unhighlighted.gif") repeat; - height: 220px; - width: 220px; -} - -.edui-default .edui-tablepicker .edui-pickarea .edui-overlay { - background: url("../images/highlighted.gif") repeat; -} - -/* 颜色弹出菜单 */ -.edui-default .edui-colorpicker-topbar { - height: 27px; - width: 200px; - /*border-bottom: 1px gray dashed;*/ -} - -.edui-default .edui-colorpicker-preview { - height: 20px; - border: 1px inset black; - margin-left: 1px; - width: 128px; - float: left; -} - -.edui-default .edui-colorpicker-nocolor { - float: right; - margin-right: 1px; - font-size: 12px; - line-height: 14px; - height: 14px; - border: 1px solid #333; - padding: 3px 5px; - cursor: pointer; -} - -.edui-default .edui-colorpicker-tablefirstrow { - height: 30px; -} - -.edui-default .edui-colorpicker-colorcell { - width: 14px; - height: 14px; - display: block; - margin: 0; - cursor: pointer; -} - -.edui-default .edui-colorpicker-colorcell:hover { - width: 14px; - height: 14px; - margin: 0; -} -.edui-default .edui-colorpicker-advbtn{ - display: block; - text-align: center; - cursor: pointer; - height:20px; -} -.arrow_down{ - background: white url('../images/arrow_down.png') no-repeat center; -} -.arrow_up{ - background: white url('../images/arrow_up.png') no-repeat center; -} -/*高级的样式*/ -.edui-colorpicker-adv{ - position: relative; - overflow: hidden; - height: 180px; - display: none; -} -.edui-colorpicker-plant, .edui-colorpicker-hue { - border: solid 1px #666; -} -.edui-colorpicker-pad { - width: 150px; - height: 150px; - left: 14px; - top: 13px; - position: absolute; - background: red; - overflow: hidden; - cursor: crosshair; -} -.edui-colorpicker-cover{ - position: absolute; - top: 0; - left: 0; - width: 150px; - height: 150px; - background: url("../images/tangram-colorpicker.png") -160px -200px; -} -.edui-colorpicker-padDot{ - position: absolute; - top: 0; - left: 0; - width: 11px; - height: 11px; - overflow: hidden; - background: url(../images/tangram-colorpicker.png) 0px -200px repeat-x; - z-index: 1000; - -} -.edui-colorpicker-sliderMain { - position: absolute; - left: 171px; - top: 13px; - width: 19px; - height: 152px; - background: url(../images/tangram-colorpicker.png) -179px -12px no-repeat; - -} -.edui-colorpicker-slider { - width: 100%; - height: 100%; - cursor: pointer; -} -.edui-colorpicker-thumb{ - position: absolute; - top: 0; - cursor: pointer; - height: 3px; - left: -1px; - right: -1px; - border: 1px solid black; - background: white; - opacity: .8; -} -/*自动排版弹出菜单*/ -.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body { - font-size: 12px; - margin-bottom: 3px; - clear: both; -} - -.edui-default .edui-autotypesetpicker-body table { - border-collapse: separate; - border-spacing: 2px; -} - -.edui-default .edui-autotypesetpicker-body td { - font-size: 12px; - word-wrap:break-word; -} - -.edui-default .edui-autotypesetpicker-body td input { - margin: 3px 3px 3px 4px; - *margin: 1px 0 0 0; -} -/*自动排版弹出菜单*/ -.edui-default .edui-cellalignpicker .edui-cellalignpicker-body { - width: 70px; - font-size: 12px; - cursor: default; -} - -.edui-default .edui-cellalignpicker-body table { - border-collapse: separate; - border-spacing: 0; -} -.edui-default .edui-cellalignpicker-body td{ - padding: 1px; -} -.edui-default .edui-cellalignpicker-body .edui-icon{ - height: 20px; - width: 20px; - padding: 1px; - background-image: url(../images/table-cell-align.png); -} - -.edui-default .edui-cellalignpicker-body .edui-left{ - background-position: 0 0; -} - -.edui-default .edui-cellalignpicker-body .edui-center{ - background-position: -25px 0; -} -.edui-default .edui-cellalignpicker-body .edui-right{ - background-position: -51px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{ - background-position: -73px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{ - background-position: -98px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{ - background-position: -124px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left { - background-position: -146px 0; - background-color: #f1f4f5; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center { - background-position: -245px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right { - background-position: -271px 0; -} -/*分隔线*/ -.edui-default .edui-toolbar .edui-separator { - width: 2px; - height: 20px; - margin: 2px 4px 2px 3px; - background: url(../images/icons.png) -181px 0; - background: url(../images/icons.gif) -181px 0 \9; -} - -/*颜色按钮 */ -.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump { - position: absolute; - overflow: hidden; - bottom: 1px; - left: 1px; - width: 18px; - height: 4px; -} -/*表情按钮及弹出菜单*/ -/*去除了表情的下拉箭头*/ -.edui-default .edui-for-emotion .edui-icon { - background-position: -60px -20px; -} -.edui-default .edui-for-emotion .edui-popup-content iframe -{ - width: 514px; - height: 380px; - overflow: hidden; -} -.edui-default .edui-for-emotion .edui-popup-content -{ - position: relative; - z-index: 555 -} - -.edui-default .edui-for-emotion .edui-splitborder { - display: none -} - -.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow -{ - width: 0 -} -.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder -{ - border-left: 1px solid transparent; -} -/*contextmenu*/ -.edui-default .edui-hassubmenu .edui-arrow { - height: 20px; - width: 20px; - float: right; - background: url("../images/icons-all.gif") no-repeat 10px -233px; -} - -.edui-default .edui-menu-body .edui-menuitem { - padding: 1px; -} - -.edui-default .edui-menuseparator { - margin: 2px 0; - height: 1px; - overflow: hidden; -} - -.edui-default .edui-menuseparator-inner { - border-bottom: 1px solid #e2e3e3; - margin-left: 29px; - margin-right: 1px; -} - -.edui-default .edui-menu-body .edui-state-hover { - padding: 0 !important; - background-color: #fff5d4; - border: 1px solid #dcac6c; -} -/*弹出菜单*/ -.edui-default .edui-shortcutmenu { - padding: 2px; - width: 190px; - height: 50px; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 5px; -} - -/*粘贴弹出菜单*/ -.edui-default .edui-wordpastepop .edui-popup-content{ - border: none; - padding: 0; - width: 54px; - height: 21px; -} -.edui-default .edui-pasteicon { - width: 100%; - height: 100%; - background-image: url('../images/wordpaste.png'); - background-position: 0 0; -} - -.edui-default .edui-pasteicon.edui-state-opened { - background-position: 0 -34px; -} - -.edui-default .edui-pastecontainer { - position: relative; - visibility: hidden; - width: 97px; - background: #fff; - border: 1px solid #ccc; -} - -.edui-default .edui-pastecontainer .edui-title { - font-weight: bold; - background: #F8F8FF; - height: 25px; - line-height: 25px; - font-size: 12px; - padding-left: 5px; -} - -.edui-default .edui-pastecontainer .edui-button { - overflow: hidden; - margin: 3px 0; -} - -.edui-default .edui-pastecontainer .edui-button .edui-richtxticon, -.edui-default .edui-pastecontainer .edui-button .edui-tagicon, -.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{ - float: left; - cursor: pointer; - width: 29px; - height: 29px; - margin-left: 5px; - background-image: url('../images/wordpaste.png'); - background-repeat: no-repeat; -} -.edui-default .edui-pastecontainer .edui-button .edui-richtxticon { - margin-left: 0; - background-position: -109px 0; -} -.edui-default .edui-pastecontainer .edui-button .edui-tagicon { - background-position: -148px 1px; -} - -.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon { - background-position: -72px 0; -} - -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon { - background-position: -109px -34px; -} -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{ - background-position: -148px -34px; -} -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{ - background-position: -72px -34px; -} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/css/ueditor.min.css b/public/static/UEditor/themes/default/css/ueditor.min.css deleted file mode 100644 index 8ca74eb..0000000 --- a/public/static/UEditor/themes/default/css/ueditor.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - - -.edui-default .edui-box{border:0;padding:0;margin:0;overflow:hidden}.edui-default a.edui-box{display:block;text-decoration:none;color:#000}.edui-default a.edui-box:hover{text-decoration:none}.edui-default a.edui-box:active{text-decoration:none}.edui-default table.edui-box{border-collapse:collapse}.edui-default ul.edui-box{list-style-type:none}div.edui-box{position:relative;display:-moz-inline-box!important;display:inline-block!important;vertical-align:top}.edui-default .edui-clearfix{zoom:1}.edui-default .edui-clearfix:after{content:'\20';display:block;clear:both}* html div.edui-box{display:inline!important}:first-child+html div.edui-box{display:inline!important}.edui-default .edui-button-body,.edui-splitbutton-body,.edui-menubutton-body,.edui-combox-body{position:relative}.edui-default .edui-popup{position:absolute;-webkit-user-select:none;-moz-user-select:none}.edui-default .edui-popup .edui-shadow{position:absolute;z-index:-1}.edui-default .edui-popup .edui-bordereraser{position:absolute;overflow:hidden}.edui-default .edui-tablepicker .edui-canvas{position:relative}.edui-default .edui-tablepicker .edui-canvas .edui-overlay{position:absolute}.edui-default .edui-dialog-modalmask,.edui-dialog-dragmask{position:absolute;left:0;top:0;width:100%;height:100%}.edui-default .edui-toolbar{position:relative}.edui-default .edui-label{cursor:default}.edui-default span.edui-clickable{color:#00f;cursor:pointer;text-decoration:underline}.edui-default span.edui-unclickable{color:gray;cursor:default}.edui-default .edui-toolbar{cursor:default;-webkit-user-select:none;-moz-user-select:none;padding:1px;overflow:hidden;zoom:1;width:auto;height:auto}.edui-default .edui-toolbar .edui-button,.edui-default .edui-toolbar .edui-splitbutton,.edui-default .edui-toolbar .edui-menubutton,.edui-default .edui-toolbar .edui-combox{margin:1px}.edui-default .edui-editor{border:1px solid #d4d4d4;background-color:#fff;position:relative;overflow:visible;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.edui-editor div{width:auto;height:auto}.edui-default .edui-editor-toolbarbox{position:relative;zoom:1;-webkit-box-shadow:0 1px 4px rgba(204,204,204,.6);-moz-box-shadow:0 1px 4px rgba(204,204,204,.6);box-shadow:0 1px 4px rgba(204,204,204,.6);border-top-left-radius:2px;border-top-right-radius:2px}.edui-default .edui-editor-toolbarboxouter{border-bottom:1px solid #d4d4d4;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.edui-default .edui-editor-toolbarboxinner{padding:2px}.edui-default .edui-editor-iframeholder{position:relative}.edui-default .edui-editor-bottomContainer{overflow:hidden}.edui-default .edui-editor-bottomContainer table{width:100%;height:0;overflow:hidden;border-spacing:0}.edui-default .edui-editor-bottomContainer td{white-space:nowrap;border-top:1px solid #ccc;line-height:20px;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif}.edui-default .edui-editor-wordcount{text-align:right;margin-right:5px;color:#aaa}.edui-default .edui-editor-scale{width:12px}.edui-default .edui-editor-scale .edui-editor-icon{float:right;width:100%;height:12px;margin-top:10px;background:url(../images/scale.png) no-repeat;cursor:se-resize}.edui-default .edui-editor-breadcrumb{margin:2px 0 0 3px}.edui-default .edui-editor-breadcrumb span{cursor:pointer;text-decoration:underline;color:#00f}.edui-default .edui-toolbar .edui-for-fullscreen{float:right}.edui-default .edui-bubble .edui-popup-content{border:1px solid #DCAC6C;background-color:#fff6d9;padding:5px;font-size:10pt;font-family:"宋体"}.edui-default .edui-bubble .edui-shadow{}.edui-default .edui-editor-toolbarmsg{background-color:#FFF6D9;border-bottom:1px solid #ccc;position:absolute;bottom:-25px;left:0;z-index:1009;width:99.9%}.edui-default .edui-editor-toolbarmsg-upload{font-size:14px;color:#00f;width:100px;height:16px;line-height:16px;cursor:pointer;position:absolute;top:5px;left:350px}.edui-default .edui-editor-toolbarmsg-label{font-size:12px;line-height:16px;padding:4px}.edui-default .edui-editor-toolbarmsg-close{float:right;width:20px;height:16px;line-height:16px;cursor:pointer;color:red}.edui-default .edui-list .edui-bordereraser{display:none}.edui-default .edui-listitem{padding:1px;white-space:nowrap}.edui-default .edui-list .edui-state-hover{position:relative;background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-for-fontfamily .edui-listitem-label{min-width:130px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-insertcode .edui-listitem-label{min-width:120px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-underline .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;font-size:12px}.edui-default .edui-for-fontsize .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px}.edui-default .edui-for-paragraph .edui-listitem-label{min-width:200px;_width:200px;padding:2px 5px}.edui-default .edui-for-rowspacingtop .edui-listitem-label,.edui-default .edui-for-rowspacingbottom .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-lineheight .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-customstyle .edui-listitem-label{min-width:200px;_width:200px;width:200px!important;padding:2px 5px}.edui-default .edui-menu{z-index:3000}.edui-default .edui-menu .edui-popup-content{padding:3px}.edui-default .edui-menu-body{_width:150px;min-width:170px;background:url(../images/sparator_v.png) repeat-y 25px}.edui-default .edui-menuitem-body{}.edui-default .edui-menuitem{height:20px;cursor:default;vertical-align:top}.edui-default .edui-menuitem .edui-icon{width:20px!important;height:20px!important;background:url(../images/icons.png) 0 -4000px;background:url(../images/icons.gif) 0 -4000px\9}.edui-default .edui-menuitem .edui-label{font-size:12px;line-height:20px;height:20px;padding-left:10px}.edui-default .edui-state-checked .edui-menuitem-body{background:url(../images/icons-all.gif) no-repeat 6px -205px}.edui-default .edui-state-disabled .edui-menuitem-label{color:gray}.edui-default .edui-toolbar .edui-combox-body .edui-button-body{width:60px;font-size:12px;height:20px;line-height:20px;padding-left:5px;white-space:nowrap;margin:0 3px 0 0}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-combox .edui-combox-body{border:1px solid #CCC;background-color:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-combox-body .edui-splitborder{display:none}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{border-left:1px solid #CCC}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body{background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow{border-left:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-checked .edui-combox-body{background-color:#FFE69F;border:1px solid #DCAC6C}.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow{border-left:1px solid #DCAC6C}.edui-toolbar .edui-state-disabled .edui-combox-body{background-color:#F0F0EE;opacity:.3;filter:alpha(opacity=30)}.edui-toolbar .edui-state-opened .edui-combox-body{background-color:#fff;border:1px solid gray}.edui-default .edui-toolbar .edui-button .edui-icon,.edui-default .edui-toolbar .edui-menubutton .edui-icon,.edui-default .edui-toolbar .edui-splitbutton .edui-icon{height:20px!important;width:20px!important;background-image:url(../images/icons.png);background-image:url(../images/icons.gif) \9}.edui-default .edui-toolbar .edui-button .edui-button-wrap{padding:1px;position:relative}.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap{background-color:#fff5d4;padding:0;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap{background-color:#ffe69f;padding:0;border:1px solid #dcac6c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap{background-color:#fff;padding:0;border:1px solid gray}.edui-default .edui-toolbar .edui-state-disabled .edui-label{color:#ccc}.edui-default .edui-toolbar .edui-state-disabled .edui-icon{opacity:.3;filter:alpha(opacity=30)}.edui-default .edui-for-undo .edui-icon{background-position:-160px 0}.edui-default .edui-for-redo .edui-icon{background-position:-100px 0}.edui-default .edui-for-bold .edui-icon{background-position:0 0}.edui-default .edui-for-italic .edui-icon{background-position:-60px 0}.edui-default .edui-for-fontborder .edui-icon{background-position:-160px -40px}.edui-default .edui-for-underline .edui-icon{background-position:-140px 0}.edui-default .edui-for-strikethrough .edui-icon{background-position:-120px 0}.edui-default .edui-for-subscript .edui-icon{background-position:-600px 0}.edui-default .edui-for-superscript .edui-icon{background-position:-620px 0}.edui-default .edui-for-blockquote .edui-icon{background-position:-220px 0}.edui-default .edui-for-forecolor .edui-icon{background-position:-720px 0}.edui-default .edui-for-backcolor .edui-icon{background-position:-760px 0}.edui-default .edui-for-inserttable .edui-icon{background-position:-580px -20px}.edui-default .edui-for-autotypeset .edui-icon{background-position:-640px -40px}.edui-default .edui-for-justifyleft .edui-icon{background-position:-460px 0}.edui-default .edui-for-justifycenter .edui-icon{background-position:-420px 0}.edui-default .edui-for-justifyright .edui-icon{background-position:-480px 0}.edui-default .edui-for-justifyjustify .edui-icon{background-position:-440px 0}.edui-default .edui-for-insertorderedlist .edui-icon{background-position:-80px 0}.edui-default .edui-for-insertunorderedlist .edui-icon{background-position:-20px 0}.edui-default .edui-for-lineheight .edui-icon{background-position:-725px -40px}.edui-default .edui-for-rowspacingbottom .edui-icon{background-position:-745px -40px}.edui-default .edui-for-rowspacingtop .edui-icon{background-position:-765px -40px}.edui-default .edui-for-horizontal .edui-icon{background-position:-360px 0}.edui-default .edui-for-link .edui-icon{background-position:-500px 0}.edui-default .edui-for-code .edui-icon{background-position:-440px -40px}.edui-default .edui-for-insertimage .edui-icon{background-position:-726px -77px}.edui-default .edui-for-insertframe .edui-icon{background-position:-240px -40px}.edui-default .edui-for-emoticon .edui-icon{background-position:-60px -20px}.edui-default .edui-for-spechars .edui-icon{background-position:-240px 0}.edui-default .edui-for-help .edui-icon{background-position:-340px 0}.edui-default .edui-for-print .edui-icon{background-position:-440px -20px}.edui-default .edui-for-preview .edui-icon{background-position:-420px -20px}.edui-default .edui-for-selectall .edui-icon{background-position:-400px -20px}.edui-default .edui-for-searchreplace .edui-icon{background-position:-520px -20px}.edui-default .edui-for-map .edui-icon{background-position:-40px -40px}.edui-default .edui-for-gmap .edui-icon{background-position:-260px -40px}.edui-default .edui-for-insertvideo .edui-icon{background-position:-320px -20px}.edui-default .edui-for-time .edui-icon{background-position:-160px -20px}.edui-default .edui-for-date .edui-icon{background-position:-140px -20px}.edui-default .edui-for-cut .edui-icon{background-position:-680px 0}.edui-default .edui-for-copy .edui-icon{background-position:-700px 0}.edui-default .edui-for-paste .edui-icon{background-position:-560px 0}.edui-default .edui-for-formatmatch .edui-icon{background-position:-40px 0}.edui-default .edui-for-pasteplain .edui-icon{background-position:-360px -20px}.edui-default .edui-for-directionalityltr .edui-icon{background-position:-20px -20px}.edui-default .edui-for-directionalityrtl .edui-icon{background-position:-40px -20px}.edui-default .edui-for-source .edui-icon{background-position:-261px -0px}.edui-default .edui-for-removeformat .edui-icon{background-position:-580px 0}.edui-default .edui-for-unlink .edui-icon{background-position:-640px 0}.edui-default .edui-for-touppercase .edui-icon{background-position:-786px 0}.edui-default .edui-for-tolowercase .edui-icon{background-position:-806px 0}.edui-default .edui-for-insertrow .edui-icon{background-position:-478px -76px}.edui-default .edui-for-insertrownext .edui-icon{background-position:-498px -76px}.edui-default .edui-for-insertcol .edui-icon{background-position:-455px -76px}.edui-default .edui-for-insertcolnext .edui-icon{background-position:-429px -76px}.edui-default .edui-for-mergeright .edui-icon{background-position:-60px -40px}.edui-default .edui-for-mergedown .edui-icon{background-position:-80px -40px}.edui-default .edui-for-splittorows .edui-icon{background-position:-100px -40px}.edui-default .edui-for-splittocols .edui-icon{background-position:-120px -40px}.edui-default .edui-for-insertparagraphbeforetable .edui-icon{background-position:-140px -40px}.edui-default .edui-for-deleterow .edui-icon{background-position:-660px -20px}.edui-default .edui-for-deletecol .edui-icon{background-position:-640px -20px}.edui-default .edui-for-splittocells .edui-icon{background-position:-800px -20px}.edui-default .edui-for-mergecells .edui-icon{background-position:-760px -20px}.edui-default .edui-for-deletetable .edui-icon{background-position:-620px -20px}.edui-default .edui-for-cleardoc .edui-icon{background-position:-520px 0}.edui-default .edui-for-fullscreen .edui-icon{background-position:-100px -20px}.edui-default .edui-for-anchor .edui-icon{background-position:-200px 0}.edui-default .edui-for-pagebreak .edui-icon{background-position:-460px -40px}.edui-default .edui-for-imagenone .edui-icon{background-position:-480px -40px}.edui-default .edui-for-imageleft .edui-icon{background-position:-500px -40px}.edui-default .edui-for-wordimage .edui-icon{background-position:-660px -40px}.edui-default .edui-for-imageright .edui-icon{background-position:-520px -40px}.edui-default .edui-for-imagecenter .edui-icon{background-position:-540px -40px}.edui-default .edui-for-indent .edui-icon{background-position:-400px 0}.edui-default .edui-for-outdent .edui-icon{background-position:-540px 0}.edui-default .edui-for-webapp .edui-icon{background-position:-601px -40px}.edui-default .edui-for-table .edui-icon{background-position:-580px -20px}.edui-default .edui-for-edittable .edui-icon{background-position:-420px -40px}.edui-default .edui-for-template .edui-icon{background-position:-339px -40px}.edui-default .edui-for-delete .edui-icon{background-position:-360px -40px}.edui-default .edui-for-attachment .edui-icon{background-position:-620px -40px}.edui-default .edui-for-edittd .edui-icon{background-position:-700px -40px}.edui-default .edui-for-snapscreen .edui-icon{background-position:-581px -40px}.edui-default .edui-for-scrawl .edui-icon{background-position:-801px -41px}.edui-default .edui-for-background .edui-icon{background-position:-680px -40px}.edui-default .edui-for-music .edui-icon{background-position:-18px -40px}.edui-default .edui-for-formula .edui-icon{background-position:-200px -40px}.edui-default .edui-for-aligntd .edui-icon{background-position:-236px -76px}.edui-default .edui-for-insertparagraphtrue .edui-icon{background-position:-625px -76px}.edui-default .edui-for-insertparagraph .edui-icon{background-position:-602px -76px}.edui-default .edui-for-insertcaption .edui-icon{background-position:-336px -76px}.edui-default .edui-for-deletecaption .edui-icon{background-position:-362px -76px}.edui-default .edui-for-inserttitle .edui-icon{background-position:-286px -76px}.edui-default .edui-for-deletetitle .edui-icon{background-position:-311px -76px}.edui-default .edui-for-aligntable .edui-icon{background-position:-440px 0}.edui-default .edui-for-tablealignment-left .edui-icon{background-position:-460px 0}.edui-default .edui-for-tablealignment-center .edui-icon{background-position:-420px 0}.edui-default .edui-for-tablealignment-right .edui-icon{background-position:-480px 0}.edui-default .edui-for-drafts .edui-icon{background-position:-560px 0}.edui-default .edui-for-charts .edui-icon{background:url( ../images/charts.png ) no-repeat 2px 3px!important}.edui-default .edui-for-inserttitlecol .edui-icon{background-position:-673px -76px}.edui-default .edui-for-deletetitlecol .edui-icon{background-position:-698px -76px}.edui-default .edui-for-simpleupload .edui-icon{background-position:-380px 0}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body{padding:1px}.edui-default .edui-toolbar .edui-splitborder{width:1px;height:20px}.edui-default .edui-toolbar .edui-state-hover .edui-splitborder{width:1px;border-left:0 solid #dcac6c}.edui-default .edui-toolbar .edui-state-active .edui-splitborder{width:0;border-left:1px solid gray}.edui-default .edui-toolbar .edui-state-opened .edui-splitborder{width:1px;border:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body{background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body{background-color:#FFE69F;border:1px solid #DCAC6C;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-state-disabled .edui-arrow{opacity:.3;_filter:alpha(opacity=30)}.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-for-insertorderedlist .edui-bordereraser,.edui-default .edui-for-lineheight .edui-bordereraser,.edui-default .edui-for-rowspacingtop .edui-bordereraser,.edui-default .edui-for-rowspacingbottom .edui-bordereraser,.edui-default .edui-for-insertunorderedlist .edui-bordereraser{background-color:#fff}.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon{background-image:none}.edui-default .edui-popup{z-index:3000;background-color:#fff;width:auto;height:auto}.edui-default .edui-popup .edui-shadow{left:0;top:0;width:100%;height:100%}.edui-default .edui-popup-content{border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 4px rgba(0,0,0,.2);-moz-box-shadow:0 3px 4px rgba(0,0,0,.2);box-shadow:0 3px 4px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;padding:5px;background:#fff}.edui-default .edui-popup .edui-bordereraser{background-color:#fff;height:3px}.edui-default .edui-menu .edui-bordereraser{height:3px}.edui-default .edui-anchor-topleft .edui-bordereraser{left:1px;top:-2px}.edui-default .edui-anchor-topright .edui-bordereraser{right:1px;top:-2px}.edui-default .edui-anchor-bottomleft .edui-bordereraser{left:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-default .edui-anchor-bottomright .edui-bordereraser{right:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-popup div{width:auto;height:auto}.edui-default .edui-editor-messageholder{display:block;width:150px;height:auto;border:0;margin:0;padding:0;position:absolute;top:28px;right:3px}.edui-default .edui-message{min-height:10px;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0;margin-bottom:3px;position:relative}.edui-default .edui-message-body{border-radius:3px;padding:8px 15px 8px 8px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5}.edui-default .edui-message-type-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.edui-default .edui-message-type-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.edui-default .edui-message-type-danger,.edui-default .edui-message-type-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.edui-default .edui-message .edui-message-closer{display:block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;padding:0;cursor:pointer;background:transparent;border:0;float:right;font-size:20px;font-weight:700;color:#999;text-shadow:0 1px 0 #fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.edui-default .edui-message .edui-message-content{font-size:10pt;word-wrap:break-word;word-break:normal}.edui-default .edui-dialog{z-index:2000;position:absolute}.edui-dialog div{width:auto}.edui-default .edui-dialog-wrap{margin-right:6px;margin-bottom:6px}.edui-default .edui-dialog-fullscreen-flag{margin-right:0;margin-bottom:0}.edui-default .edui-dialog-body{position:relative;padding:2px 0 0 2px;_zoom:1}.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body{padding:0}.edui-default .edui-dialog-shadow{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.edui-default .edui-dialog-foot{background-color:#fff}.edui-default .edui-dialog-titlebar{height:26px;border-bottom:1px solid #c6c6c6;background:url(../images/dialog-title-bg.png) repeat-x bottom;position:relative;cursor:move}.edui-default .edui-dialog-caption{font-weight:700;font-size:12px;line-height:26px;padding-left:5px}.edui-default .edui-dialog-draghandle{height:26px}.edui-default .edui-dialog-closebutton{position:absolute!important;right:5px;top:3px}.edui-default .edui-dialog-closebutton .edui-button-body{height:20px;width:20px;cursor:pointer;background:url(../images/icons-all.gif) no-repeat 0 -59px}.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -89px}.edui-default .edui-dialog-foot{height:40px}.edui-default .edui-dialog-buttons{position:absolute;right:0}.edui-default .edui-dialog-buttons .edui-button{margin-right:10px}.edui-default .edui-dialog-buttons .edui-button .edui-button-body{background:url(../images/icons-all.gif) no-repeat;height:24px;width:96px;font-size:12px;line-height:24px;text-align:center;cursor:default}.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -30px}.edui-default .edui-dialog iframe{border:0;padding:0;margin:0;vertical-align:top}.edui-default .edui-dialog-modalmask{opacity:.3;filter:alpha(opacity=30);background-color:#ccc;position:absolute}.edui-default .edui-dialog-dragmask{position:absolute;background-color:transparent;cursor:move}.edui-default .edui-dialog-content{position:relative}.edui-default .dialogcontmask{cursor:move;visibility:hidden;display:block;position:absolute;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.edui-default .edui-for-link .edui-dialog-content{width:420px;height:200px;overflow:hidden}.edui-default .edui-for-background .edui-dialog-content{width:440px;height:280px;overflow:hidden}.edui-default .edui-for-template .edui-dialog-content{width:630px;height:390px;overflow:hidden}.edui-default .edui-for-scrawl .edui-dialog-content{width:515px;*width:506px;height:360px}.edui-default .edui-for-spechars .edui-dialog-content{width:620px;height:500px;*width:630px;*height:570px}.edui-default .edui-for-insertimage .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-webapp .edui-dialog-content{width:560px;_width:565px;height:450px;overflow:hidden}.edui-default .edui-for-insertframe .edui-dialog-content{width:350px;height:200px;overflow:hidden}.edui-default .edui-for-wordimage .edui-dialog-content{width:620px;height:380px;overflow:hidden}.edui-default .edui-for-attachment .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-map .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-gmap .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-insertvideo .edui-dialog-content{width:590px;height:390px}.edui-default .edui-for-anchor .edui-dialog-content{width:320px;height:60px;overflow:hidden}.edui-default .edui-for-searchreplace .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-help .edui-dialog-content{width:400px;height:420px}.edui-default .edui-for-edittable .edui-dialog-content{width:540px;_width:590px;height:335px}.edui-default .edui-for-edittip .edui-dialog-content{width:225px;height:60px}.edui-default .edui-for-edittd .edui-dialog-content{width:240px;height:50px}.edui-default .edui-for-snapscreen .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-music .edui-dialog-content{width:515px;height:360px}.edui-default .edui-for-paragraph .edui-listitem-label{font-family:Tahoma,Verdana,Arial,Helvetica}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p{font-size:22px;line-height:27px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1{font-weight:bolder;font-size:32px;line-height:36px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2{font-weight:bolder;font-size:27px;line-height:29px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3{font-weight:bolder;font-size:19px;line-height:23px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4{font-weight:bolder;font-size:16px;line-height:19px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5{font-weight:bolder;font-size:13px;line-height:16px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6{font-weight:bolder;font-size:12px;line-height:14px}.edui-default .edui-for-inserttable .edui-splitborder{display:none}.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-tablepicker .edui-infoarea{height:14px;line-height:14px;font-size:12px;width:220px;margin-bottom:3px;clear:both}.edui-default .edui-tablepicker .edui-infoarea .edui-label{float:left}.edui-default .edui-dialog-buttons .edui-label{line-height:24px}.edui-default .edui-tablepicker .edui-infoarea .edui-clickable{float:right}.edui-default .edui-tablepicker .edui-pickarea{background:url(../images/unhighlighted.gif) repeat;height:220px;width:220px}.edui-default .edui-tablepicker .edui-pickarea .edui-overlay{background:url(../images/highlighted.gif) repeat}.edui-default .edui-colorpicker-topbar{height:27px;width:200px}.edui-default .edui-colorpicker-preview{height:20px;border:1px inset #000;margin-left:1px;width:128px;float:left}.edui-default .edui-colorpicker-nocolor{float:right;margin-right:1px;font-size:12px;line-height:14px;height:14px;border:1px solid #333;padding:3px 5px;cursor:pointer}.edui-default .edui-colorpicker-tablefirstrow{height:30px}.edui-default .edui-colorpicker-colorcell{width:14px;height:14px;display:block;margin:0;cursor:pointer}.edui-default .edui-colorpicker-colorcell:hover{width:14px;height:14px;margin:0}.edui-default .edui-colorpicker-advbtn{display:block;text-align:center;cursor:pointer;height:20px}.arrow_down{background:#fff url(../images/arrow_down.png) no-repeat center}.arrow_up{background:#fff url(../images/arrow_up.png) no-repeat center}.edui-colorpicker-adv{position:relative;overflow:hidden;height:180px;display:none}.edui-colorpicker-plant,.edui-colorpicker-hue{border:solid 1px #666}.edui-colorpicker-pad{width:150px;height:150px;left:14px;top:13px;position:absolute;background:red;overflow:hidden;cursor:crosshair}.edui-colorpicker-cover{position:absolute;top:0;left:0;width:150px;height:150px;background:url(../images/tangram-colorpicker.png) -160px -200px}.edui-colorpicker-padDot{position:absolute;top:0;left:0;width:11px;height:11px;overflow:hidden;background:url(../images/tangram-colorpicker.png) 0 -200px repeat-x;z-index:1000}.edui-colorpicker-sliderMain{position:absolute;left:171px;top:13px;width:19px;height:152px;background:url(../images/tangram-colorpicker.png) -179px -12px no-repeat}.edui-colorpicker-slider{width:100%;height:100%;cursor:pointer}.edui-colorpicker-thumb{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body{font-size:12px;margin-bottom:3px;clear:both}.edui-default .edui-autotypesetpicker-body table{border-collapse:separate;border-spacing:2px}.edui-default .edui-autotypesetpicker-body td{font-size:12px;word-wrap:break-word}.edui-default .edui-autotypesetpicker-body td input{margin:3px 3px 3px 4px;*margin:1px 0 0}.edui-default .edui-cellalignpicker .edui-cellalignpicker-body{width:70px;font-size:12px;cursor:default}.edui-default .edui-cellalignpicker-body table{border-collapse:separate;border-spacing:0}.edui-default .edui-cellalignpicker-body td{padding:1px}.edui-default .edui-cellalignpicker-body .edui-icon{height:20px;width:20px;padding:1px;background-image:url(../images/table-cell-align.png)}.edui-default .edui-cellalignpicker-body .edui-left{background-position:0 0}.edui-default .edui-cellalignpicker-body .edui-center{background-position:-25px 0}.edui-default .edui-cellalignpicker-body .edui-right{background-position:-51px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{background-position:-73px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{background-position:-98px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{background-position:-124px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left{background-position:-146px 0;background-color:#f1f4f5}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center{background-position:-245px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right{background-position:-271px 0}.edui-default .edui-toolbar .edui-separator{width:2px;height:20px;margin:2px 4px 2px 3px;background:url(../images/icons.png) -181px 0;background:url(../images/icons.gif) -181px 0 \9}.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump{position:absolute;overflow:hidden;bottom:1px;left:1px;width:18px;height:4px}.edui-default .edui-for-emotion .edui-icon{background-position:-60px -20px}.edui-default .edui-for-emotion .edui-popup-content iframe{width:514px;height:380px;overflow:hidden}.edui-default .edui-for-emotion .edui-popup-content{position:relative;z-index:555}.edui-default .edui-for-emotion .edui-splitborder{display:none}.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-hassubmenu .edui-arrow{height:20px;width:20px;float:right;background:url(../images/icons-all.gif) no-repeat 10px -233px}.edui-default .edui-menu-body .edui-menuitem{padding:1px}.edui-default .edui-menuseparator{margin:2px 0;height:1px;overflow:hidden}.edui-default .edui-menuseparator-inner{border-bottom:1px solid #e2e3e3;margin-left:29px;margin-right:1px}.edui-default .edui-menu-body .edui-state-hover{padding:0!important;background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-shortcutmenu{padding:2px;width:190px;height:50px;background-color:#fff;border:1px solid #ccc;border-radius:5px}.edui-default .edui-wordpastepop .edui-popup-content{border:0;padding:0;width:54px;height:21px}.edui-default .edui-pasteicon{width:100%;height:100%;background-image:url(../images/wordpaste.png);background-position:0 0}.edui-default .edui-pasteicon.edui-state-opened{background-position:0 -34px}.edui-default .edui-pastecontainer{position:relative;visibility:hidden;width:97px;background:#fff;border:1px solid #ccc}.edui-default .edui-pastecontainer .edui-title{font-weight:700;background:#F8F8FF;height:25px;line-height:25px;font-size:12px;padding-left:5px}.edui-default .edui-pastecontainer .edui-button{overflow:hidden;margin:3px 0}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,.edui-default .edui-pastecontainer .edui-button .edui-tagicon,.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{float:left;cursor:pointer;width:29px;height:29px;margin-left:5px;background-image:url(../images/wordpaste.png);background-repeat:no-repeat}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon{margin-left:0;background-position:-109px 0}.edui-default .edui-pastecontainer .edui-button .edui-tagicon{background-position:-148px 1px}.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{background-position:-72px 0}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon{background-position:-109px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{background-position:-148px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{background-position:-72px -34px} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/dialogbase.css b/public/static/UEditor/themes/default/dialogbase.css deleted file mode 100644 index cd663d5..0000000 --- a/public/static/UEditor/themes/default/dialogbase.css +++ /dev/null @@ -1,100 +0,0 @@ -/*弹出对话框页面样式组件 -*/ - -/*reset -*/ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - margin: 0; - padding: 0; - outline: 0; - font-size: 100%; -} - -body { - line-height: 1; -} - -ol, ul { - list-style: none; -} - -blockquote, q { - quotes: none; -} - -ins { - text-decoration: none; -} - -del { - text-decoration: line-through; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -/*module -*/ -body { - background-color: #fff; - font: 12px/1.5 sans-serif, "宋体", "Arial Narrow", HELVETICA; - color: #646464; -} - -/*tab*/ -.tabhead { - position: relative; - z-index: 10; -} - -.tabhead span { - display: inline-block; - padding: 0 5px; - height: 30px; - border: 1px solid #ccc; - background: url("images/dialog-title-bg.png") repeat-x; - text-align: center; - line-height: 30px; - cursor: pointer; - *margin-right: 5px; -} - -.tabhead span.focus { - height: 31px; - border-bottom: none; - background: #fff; -} - -.tabbody { - position: relative; - top: -1px; - margin: 0 auto; - border: 1px solid #ccc; -} - -/*button*/ -a.button { - display: block; - text-align: center; - line-height: 24px; - text-decoration: none; - height: 24px; - width: 95px; - border: 0; - color: #838383; - background: url(../../themes/default/images/icons-all.gif) no-repeat; -} - -a.button:hover { - background-position: 0 -30px; -} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/images/anchor.gif b/public/static/UEditor/themes/default/images/anchor.gif deleted file mode 100644 index 5aa797b2240a432d9f3f1d166ed5542eaf684937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmZ?wbhEHb6kygJ|Uu&?oD;%Ae!z@09(NL_hv#6Slx0y!YR{?r|LJZgAju=f-$sQVWNL{+Tsz18#+~Ke%+zTWns()WcPwy8dQcr!JH# U&i)o#ra{o6vp4_np&fqGg-1;GP^BJO_p_?A6nLIYwB=H*Qp>A8nZf?fNnCY(uvZL zYMq5r=M|ASom0_?Sn7~VE3B<^mcq1BrHIr9EGW>Ifm~m?y<>mJPIAsKPjWszPx7z| z^K(;^4e+i)B*?S*guTS?B+Vho2 z`WG1Kuclp>qR!nSa-c>gf6E3&1HPK$>6qGXeOCp%qBL8aEd$S;?m%#@0uH|roliGe zy#i~1E?Ad#U1t}6uwt+qqgIm=xY8r0F*7 zl{ZWo1&^Wcj_roRaNKw0cq|%;M#7eRWh<*7;!rva!w3Wdg+kTSXqlOr3+!(Y+UH1c!M>bUYK1<=lG*1pq%m&P~1QC>Rx($IJPWjnN zpR&G{Rq^JvgludxnIl{D8LgfGe-+MHCcM_UcHp8Td8VLE6B~29!k7r659<2nKp^Fl zj!GszzF7d5gy6DP@ZR1H93XOu{-OI@l6&5C>BJ*|uw%klayELyqgg z(1r2VJa0I-7Tj#n#oR8}RJ&g+`2!5Q8%of3mwZ1ylT{6m^cuZ3bEx<+w~3H6c=s2I zHqmMPM&{IH<=Icl=QPsL@wWkIaQ9;d5!{KiwDTAp6ANhcA|rcd_*y;vPo-D@#WUD8 zxj?H-u8_-Qb;^#oX{dywAOO4sP%-&Maru89peVTaNW45UP{=b_+ByMxH6aCa_?|l> lFG7akQpaiL%L!NFwXt25X8cm0x*UH6P&xU?o7rDC{|kH`9-#mL diff --git a/public/static/UEditor/themes/default/images/arrow_down.png b/public/static/UEditor/themes/default/images/arrow_down.png deleted file mode 100644 index e9257e83b00375259f2f724c7cbac03d0df5ceb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1610 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW`)d{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d20o>TUVrVb{15Cdnu|VHY&j92lm_lD){7Q3k;i`*Ef>IIg#cFVINM%8) zeo$(0erZuMFyhjbK~@!5ITxiSmgEG&eP`1g19yq1OegIswNQ-xSi<4Z1u2!m4XhFqBbF8wG<_`!+|HhuxMFc&SLMF{7Z@fVvH$#8 ze|mSH#FSX^%>h00S4ci?>YufC3b$>be$N&e)g9;i=5%xkTh1s~5&sk~hpZURp;Qa?iE^5gq z0+?2AoO*aq`+eIDGp&3MoLz0RPBnf@mZEj!Y0cZVUxN2^iyZs(a?eI%oljxTtdUFo z4zJtT6vh6mc<(8@dEybWbJNr%Pc%*VvF}gIi|llP_mw#+z3j zapfmJXkU5iJgMMaq6;%eEr0F`fv2A$yk@Z1O`YMLW4b!$#En-43)(gNwO&tIE1$YR z{=f_5V<-h{r;w^f@VvOcJ`XH-Laf=HZ$7pE8y$b zea|FcbA8_y&V4&;c0EYAF6z7Uq;gWX%!S@_GP~BiYk9@S9hp{rSmuZc`!rX#z78?b z>^=VrHI}o6**U$5wKDVU&pfZEJI56Y zoT$4mvucV;+x1h4)@uJZd{#I=XN5ldnP;uVH#)aA-sLj_f6xsvx)X=xc_v2 z@-mt-`NgS3hTn0)cfZMswpSgNlI1YlD$F(+3=d#Wzp$P!&XKAJY diff --git a/public/static/UEditor/themes/default/images/arrow_up.png b/public/static/UEditor/themes/default/images/arrow_up.png deleted file mode 100644 index 74277af1e6a8ef91f8fe664efde11377a5292dbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1649 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2c=9J8kh>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d2fv+#z;JjjJKmmhHzap_f-%!s$KQ|ZTFR<$3lAu(CGq9>I4yi0i)elN7 z&Mz%W2F6F4GE6ft?C@IzQV4X7m48ttFj5k8T=J7kb5rw5JY8&+fHHb1nJHGr&Zcf= zZpLmdj^@s;MuvtK&X$(07A9_{2F`9K1|}9TGqCA(Gj?@#HgIt=cQbG_G;}qxFf=l- zbaON}GPN)@wKR5t>GjMjE=kNwPKDW<3A7ig*AcH?E9aur#FG4?ko^1{SPBTp$S=t+ z&d4uNa1J(A2+zz*$uBPkMGnNTE~!PCWvMA{Mftf3;Lx?o#9}*PUqke!kP~A1K*#8V zk_J*zfe8WAABYK0_&^Rk>!juZ^GgvhW0Y{Wv@$R-E%tPA45_#^WvZ{gh@(K;>Z+== zX-At4KPH3-+4r@v2}X8*AN$Mh@OiHNYs3&%QbHW!0`#zh1`9tBzYV@8G#Wg&l2-#)h$FUdfE_lvm%b2=kt^Ebzn( zr(4oF%+7xg2Te=y(fqh}+AK?Nt8-e6Vo~YWrY1FhH}uX($oOv&HCTs__< zzEdCca~LbgR5%PtJYh=3FjGRGp=cUaJC^c^yU)Zr^k2P zlm5xRG;W0~lefT@)ERLuic?K4bNlUNS|KodrrwHIUNWEc`M1i>U^rI0VS1uR{)PLi zihmWG2&`Lpzrjh}nD@mILlb2Uhtt|CHp`N!r`KF5c$VaRcJZF}LJe(& zwV}p~KZGbP@?1Z4Mc+d4`MOQrYgSe4X#ZDh+%|1dL)h$@nv3?ZH`~Z?rV3X7(F@K> zb+Z2u>#VllaHj5&E!~}`b21Ja)w^fT&+2mzy!OR_pE1^}_1<=w+EA5Nm$Hp%M~^AK zU)Z92;jd=Sl<1n3x7z+*ci#Wo(IT=)J{K*+Q?C!N1MD&Sbd le02W-shBsPKJ+s%GgK)^wA}p_d>&K@c)I$ztaD0e0svXmV!r?Y diff --git a/public/static/UEditor/themes/default/images/button-bg.gif b/public/static/UEditor/themes/default/images/button-bg.gif deleted file mode 100644 index ec7fa2eabf0705226fe0c488d65198508bf547e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1114 zcmV-g1f}~&Nk%w1VKM+R0OkMy00030|Nr{?`~Uyg|Nq+c_4NPz*Z=(3`t{5D_RRV9 z%lr1t{P@xN^27S{$occg`t-~D_Rjb6(E0Jf`t!&5^V9k7zxnUL`S8H{@x=P_$@uNP z`0c*=@5lM`q&aU|6w)f(-(ZHJcKyq);w!1v|A_vOL(=ELpXz3||{+03)&lq#;^N`q z;o#ul-{0Tf-rm~U+Sk|D(9qET|Nj6000000000000000000000A^8LW004OaEC2ui z05SkF000O7fO%_oc!h?Ch>41ei+5{zWp`--l$Dm3n3+> zsF_HyqQ#3CGiszrN8-khAVaF@xTd7ZlPFWFT*=ZTojPn{%A85Frp=o;W!90Hv!~CW zBj>nb)267=qezn~UCPvr&^vA(N|o9Msu?(T?r7c0wX4^!V8PmfVC>oFmqw6)fdnp04j^zqp|u`Sa-0r=OsK#f}aaILMz*zrOwZ z`0-!pup>tY5FP|5;D7`cXyAbdg3v(@I*72r2M|Um;e-@cXrYB0h@gWGA&@Y_haiS1 z;)o=cSRx4_Z1{o+CA8?`i!jD0v_{FvJiptdPRD zl1w(~KIEzAo_zM{=bwE7aRU-l5Rn8GGXU|#qKr1`=%bKE+9(h+P>}@@TWDd06i{^P z>8GHED(a}AN@0Z-TXdns6;*su#jCK!D(kGY)*7p;S18d%0YNN*1r}fgE9|hu7HjOW g!~VKN5CsU(L=jFzEA6z@R%`9G*G3VB0D%AiJBq`ncK`qY diff --git a/public/static/UEditor/themes/default/images/cancelbutton.gif b/public/static/UEditor/themes/default/images/cancelbutton.gif deleted file mode 100644 index df4bc2c06d485df4403d689c98ee745a4cde8e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 zcmV;+1T_0cNk%w1VH^Ms0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02}}g000R80N?d8lSPY`ECmaSA@vT~rz=b%E}1xSN+M*v*63=s zj2W|z%bEpKgUQntPOMg`Ql)Ygt58`0p~(cQlP6A|I&tD;)03AgfeIBOG>DKjY^XJ4==@p5kGnYDTB5w7&K^jxZs(hL{cL~lH}dPcdt$q zD_5TQ&|`gZmzMqH0#&%8nU(?9AzvZOs&E($thW17wAnF=2dS zixx%10*e+@Tw%iubG*?-5ob)X#T8L>VFrIHgwcf)I#^*u6G{}}gcVlU-~$+ANa4h3 zU5Eh&8T;8#LljaNAp~tsNC8C^Rb1i1Av~P%1{`$QfyY)`G0{dGGhE??7h#NH1{!Ik pfd&v=WTQt8w{C>_-)j6kG zmZ@`2opZWct<*WE%jHsMvsp;f^!~Ol**?^DO`hifs44&=f~umb34Y07v! zehXl>0V0C67HciWn4KjeEEWr@sxtk4|8?WtNwEFcm{Yc@Vy$H`7@(^3dc70h4xmY} zPa;B+{C!@Q<^CQRW6lMfrwb>zFkriOfWsf}arIZ0*)jKSzW9HD4>|2i1+FOg^6oL0 zuMGL+PHkt#*vvh~NQ@CxMMM#xZ40h-e^cjfe*)md?7iRY1HqRBjSwR0J%@RRXP>@> zkKcbjGFwIi5M!jSYpSZEsw%t>6uuy+C;C8K=M*aB-KzlIq|@mbYi)bIUbpA-`I#n_ zWy#v)_!v+R^=b{kGLNXLO{}#BFq6sTxvIY0l+`3NPhQ=Ac;nXf2W4IstBgcUD^b-d zJ3eY@@JRF1!NCEoR?7f{5J-}wDJcQkB4Re+sH#y!e2lU916r{A&pdHrm;e9(07*qo IM6N<$g2apNRsaA1 diff --git a/public/static/UEditor/themes/default/images/cursor_h.gif b/public/static/UEditor/themes/default/images/cursor_h.gif deleted file mode 100644 index d7c3e7e9eb5755d57ec03c34097c258244abe61a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmVG|6H_V+Po~-c6$N^_IEGZ*Iy1qOk3oThS@Yxn_+t|0*P6|%n+#L~Iyf|E zrg84hNMwpx9_!-6|BEHhl_}FHLcZHi@xo+A>tN1bvzr~8Z#Ex)a8Qdkef% WRW|>PuXh3sXYh3Ob6Mw<&;$VH);Gui diff --git a/public/static/UEditor/themes/default/images/cursor_v.gif b/public/static/UEditor/themes/default/images/cursor_v.gif deleted file mode 100644 index bb508db552b6ac3f670f9ce1fcb1e55669db0dd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmZ?wbhEHbQBhG}zIty_2L(xqFsZe72A-PqWelao_UPVUE#AKKd5`}glJC@2UB2rw`(IB?*A zqN1XRh{(>JJ55YXczAeJRaJNI-YqUJE-x?t@#Dumd-if8Ejy6@I4`1w~F!Qzky-V-VnInOpfk+|GDYn9AS7wc)Z8bf!!3 zZ2HZ7qm!>fg-@N3u_S6BtfcFRaLzUWGF!q z%AzEfB~`D;I)q^T@hn>GjrE?{UdLiPgP&3w>7tmXsgPC#5>G@))3jVemdgxLP8K0W zSvgGh3k4G=ZtO?YCn3lc(TL2c!850)DFo3*HcZxKVg(a36p4}m^OOpp{&p|bt$J&&x7~}fl`AqcVt%cEU2}27dM96QnwD)g zZI46N>oIHU?{_Z!WDf$^W^<7J82vsuXemZ#a;t%OX9%BFi diff --git a/public/static/UEditor/themes/default/images/filescan.png b/public/static/UEditor/themes/default/images/filescan.png deleted file mode 100644 index 1d271588692c1726e3521032f71d8354b66fab0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4282 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 diff --git a/public/static/UEditor/themes/default/images/highlighted.gif b/public/static/UEditor/themes/default/images/highlighted.gif deleted file mode 100644 index 9272b4915ad2b8d4052a19b4c80a41b7c71cf1f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmZ?wbhEHb6k`x$Sjfb1_to#iH~&L`;!hSvE(RtB9R?r($ulrHOzB@K_Ll!X=Ym_^ zj diff --git a/public/static/UEditor/themes/default/images/icons-all.gif b/public/static/UEditor/themes/default/images/icons-all.gif deleted file mode 100644 index 21915e59dede0aa22cda8c7097a14f0f1f68906c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3750 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 b4O*493C(v}$CrKE*L~j?e&ctU0s;U#>#h02 diff --git a/public/static/UEditor/themes/default/images/icons.png b/public/static/UEditor/themes/default/images/icons.png deleted file mode 100644 index c015e3aac9a84ebad11b932e84722124772d9641..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19694 zcmd?QWmg3BtptkKZe>1^Cpy3i2;d$12PG z8SD&#Cz9Dfe2u#|{L2cd4*<>)yuAWIKSUnkYMlUhzO=xOVszqgM2&%|9MChIJen#$#YxzbJVEApdA_mrX6u*zPjM5H_qdj5 zJ8!d6GieB9_7N1uFadz@hIG54#^w1}K?jpT;A4REh@>K=|DJjq~Fiz-9 z^E=tLBZXf$H=Q;j18!iSJ}>*611=e&>D4`jp-(O*jvh5?G5f=a;_QyleVXU~uYpf7 z?m`hKAk(W3HJvERE@E&kJ+!Q?IcgFuc8>Xaw6L{BWBDonXYsR^ZV*uE#= z6b?QTTW87x5DmCujv~W|2XL*pIJ}_%kl1|}E6NB5jHVWC13(9u^mADfiNar)>3zxz z{_sN#1+$m1ss}r(m$IXW1l|PslPD%_k07o%@=g#1dOm52*ei`5{sqLw9|&Z5cp00x z4ZZBVSo<6JpM#H_Nsx_6bAFL_grOmd4WJU3yy5?bXBxBcb_|syJqGcui40dlP|@py zZ-lCE`vzQ#;LF8r;|*kJE}2~k`Jz9I-p4Huyyp1+_`O4#Jt??O6=4S6U9`1~n(X`E zJhw>@7mh(tN`c)ZSp$_&P*Xwaq&(Oi1o(fCF$R0Lq^|EY__ZO zQ7iVN8Kn-72N8Ksj>#D+Eqr7U!7-}g7u;X=A#riiItn@xWpu|h4ft)S+GwF)*ncs+ zO)OJxp!31M`{QNG|1(ZUs*3*f4b__*Izt9*0;5D3TI|7u9VPTPba5QA7_xRU%QDPG z>P5m+xHee|^ha?HgKImebwO3HQ{$WCaN?8`9tMB!G!ydoecMt%E1*>?O2U`>Xd$wT zSe(lto}O2sI$EAHgIe*8KUYuIAxh2&3XW8 zLt71{l1!aQow5U?9PA&2LOe0C!mvX7WlZ0_vU}zGs+6?(6>GXe3DR_G`hW)8JO_EY zRT@s3lcvsxn-6|O@k98@{K;C$0m=In8k%mJBD3BV7#fwDIF*K4{v}eH^(x!tXfwo> zv*nbU?d9AxV``piu`1)LMulBQPa*eaSao4vrSigL3N_4{|GtWTL;RP+;zCD!&Q%NH zh{-NZ(Nw?g?pVPC>4DsX)mK4X!mYxx$}-+Ed(UMQ4*T!VjdQ-mEV;2aV_0Lp%m~aP z%s=OBt1YVos(F@tmb#WqPh3xkPmY$(+?}&UvzfB5`5pM7?r3e?ZK`cw+m_wO4~3`A zj=T@hu7|F%4^}6ouN@$T*CdB$b7zy(JZxO3+;Ok$*?G;*N8-%Dc4;;(ljmPH%kYM+ z+v5LN7f#9+GPKa2hFfia^db?qta73-t>RjBwPD+g^oSI}`vRlzuOD%=H;g-X%M2n`)fCF3fDtT&Z4km{}bW>hrIBP-Mv@A2j$abS4Hl zhw5y(jBIC@W|scCirZ&3^f1&leCVW7uFs;+nPYPpSpK8G(K+mE%r7itaX)r|ApBPt zKG!EVysM<^?YdAGO~710dH~8}&V#`H@Kfw<_onwH@r4qSFitl1uVCGtLz&ri@9VA=GRlJ@R|D5qbrxIlP## zanyC(0H=~Wg@chM)NdQo_TO5lZC<65-1!r}|G-hfa;Vy%4sroOndYi?bRVobV=iLL zqgn-)ZJS&@tg3A7)$GlVGh2dMDq4cQ!fz!nQt?3qv}h+0JAW4b2t{nW!SCB=aAxgf zXrzG5YIau&T1oZ}#)fk|1$95_#`*DnO~X&E6WI-YEv~{!s=Qn3s7Oh0`6ctKvSe35 zbb;#6<`y}@guQI7o8?0_rIKI%4&?>@vjnEX|5EtKFzIFjW4<^GV>*6 zC1n+=VcDcKFwV0zziU>uWMoXl+VS3V7$Q#$AA;`C+__yX6WM=Nm@I5it5LxwR$wh- z^wKBQ_iB;pl+l~vT(^8ayraPgA@=Kx`=QeEqkf^qOZQ^qZMS4QF-@d8i6;xYfm)ln zm(BT<|FHFNUCNWnmX4a{rLFhMWsF+rRB^EcV~93aa(U9=uwxBGuhopmB-vc^%r_pf( zRyFxW^e(xPgWMV@-^cbkX0%~+XcXb2$;T7@k*2EU%Y5#_8=vezgJG?w>dNM>Mf#<= z?p06UE9_88B7wEDq~nf8MlWr|bKLy$tIme!kl(;QX=QE5AqA z(*v8YQIBN28K?NW-K&@j9rA?oJI}yTh1rybl+sv3~J;)#B$uwvj7>s9;Mwe)m|a*uNu*zo+*qQ_z5*0{%b{I@R788%vY&U4bs zbol0!^oaB)0EttAQJ)kn zR0UKNG$fN1<&tY@A_~Szb})S+il_F7OQ%rlC*}X_=(J4Rp}9`iH#G3_@-8kePEJlb z=bg{Z&7q>AJv}`a7Z+=5YhPYJT3TAk%F0F;kByFwdU?5Zc6OS?pWofxdn8VUfBUw} z!u;;tyX@@j`^V>$w6v4+>%qanzP`S}KYt<%$A;omk0Fm7E)~~q&XC(@x>UH>!hyr% z%jwzGipt8T$H#z@p~cmmHu6`+twX9&7b@xV7RlFi+UbjXci+-l#urW=9v(t7N2VzN4sG>bp z*F=1cBz4bu&9Al6z6TXQ8=i;#!g9y0M=n#V_I*;@%Ue%<8?Uyuw!OYL@r2D>jz@gS z-i}Pqyx)zNx2V3oY|gDeNa($>Om5*eS~*LM&+mukmA99~o8}p@hL%GaeJA-Hz&6EO ztuu!a9T1=7jpUMAUY&xQO)vP`+xbu$ul7x9k?883tD7PH)S1WfO&!dvUEk_m7dHIL zzngD3tdIAX7Uu@UHA3!2t(r&f+=EldoDXYt@fYj7i)UU^`i@aNxRDHM$4m7_Al?dQadB~cNi9Co3{N+Z z+m{FQ24&am`~1nX=;7z#jZ52{NmcUM+avJP{gqaP;c=Bz)9>Q}AFsTn!qK4?08`ki z>gt{OmzkZN#@UxYBRk|uV`s-(>1q@M?NwI~P;Y%zVDUxu$I@`{r{jn7)S?SJ2NzV0 z!=3v>>l_^aiY3Q_e4D5Zt>UxO{ezgA0ltcf`2_3w#xAp_MQ_QoyX(Wq$^G`GvX|T2 zFSE}J(5>p&>t7o?*PZs@&HJ4mlct34ZUOx-)16I4k<)GQ7oqxEQ>iD*W;xxt4wDFg zYoV;dk6=^O$4sZ@lVJ{-1Gcxo%a3ovP4_L$Ew`Pe#&H|G6!^VK-(UX2;GbXX000Mo z)Rff!_m%(O?g4cu3e0Z^BglRd)9_k4?({S!&~Ae&k9O8_vCl=xF|o^tC$OhvqSw)S z>bDq^e@5l*!!pA}j*7>1ll*Oo)usc1P)0t^6LDSjZc=o1CApR?lyq_l%+Q4r#&S)mto{ zGq~4-ew=X#;Iig-0`>M^g4Q(Fi?X5_63tU7F=UAxf6qBPc|Al2&YoP=T}v7fxD3f~T#y>h^0X zUOOnZc*_U2G`>rb79qpl@8dr#fX&S(h4N@{h`;btThoBL#-~roZ<#fhqI@jIj(lUT zv-qans-(+@8aCi{yDVZ)i$767KWLg(20Y#$RcaB{>RtO>eqi5!8cq><8KSYL>kW*o zbDx=RucnQ%tY4JTsPkp+QH6_f&Z5OaP92_pmkH(AN6nkEcm2z|;(fI@npv93WF~KOrkrJR%@)sD`sJMV59`U&*LGBQ%F}D@5AB2K|0O4PctvNCrKSn_}4+Wp=<GJY=xBX(B z${bArYO^K=?XqVJ?T};Zfl)g za$i*b98`TmmGt8}Sen`{?w6O3O-)IuL&XBx++V+pqPl=A+;iRb}j~NswOu04~sHPt18y z3RNN@{0#6%3;f7~O(ey(ys0XWPbMdPiDnsu~$YiwA%hs-J`H=Bm&TdNMu&xQ6wXSi2P0KG}=Io$4qg z1$G4nZ|>iztEs60unjCyv9iCnXN%C<+G=1RT+J4TOM{QXIA(5PVR2nVbZu^NUA3{~ zmjwXEEH=&56r`l2Ee&^5Jw4^Ezlw=*$N!k{ivdVHK@JXXB|wpjEkO z&z(7{#n_8j--xWWvN?y4#)etHe8Nu*nTI8z$X*qMo1%8id7pInqHZ0(9D1;CDTfD#Qe!@ja@= zIIKk+)m>p89_^z+SjI4Fv0Ud|RvE718$+G;gdO;-0O=}*{)?C?aJ@n7kjsae6{Ep&em(81{=_}-=(^Y+4mhMC+GCBKRYMqRot((#>#r}{0K>NYnVrHuNDL+w|kzg zb^3amn3!yyuHuE*SuLG-2!#Et!65+eIehtNENF+(d{c&L8I4CCs z?Y$qP(Q`;hbGvWM7ha+tIFkDXMr7dp!#%y5F=#WV0CTK@(sAa^0Kj{4U#FuA_3mSM zDSyZtn6-N&OM=DaKn0hVd7_hUdMSa@jzfROy4L-nXP<(t-5Bt?KAcs%IG^+1GC{9Y zFP%OBd0>FuJq#O75YG?kDzf~mL4rcE{G`oK$2ZkP`(v8+s{tvk9Q}4p%cF*;l(0M% zlkfT(xW48KqoSL@6PK|Y_#cz_nC&b~@cIfDM9hd?I~z_P<~jwF$D6O4AFa&Ei&xuU zES8(TT`e<9oI=|6)l)EfMIx7&Or*dzi_^QJE%EJxoyP$IRB z)zlvy^P5GAvta|T56my0LkCfix)f?*S09^v*KNxu54hR_DfPA5$5{Bd@UctZhn!~2 z&CjR0HPxOC+OQN;&eR%qw&nOIvO@K$wJM2{9~BN|y9X<6B>iDVu828X3syn>o-9e4 z9s6l0D`X>n)p4Is_@{ErZs%8lg!+EO?CX8;iN0*_{c@Q<`}G5}8pkRb_ELy`TBXy2 zFjM9a@YCV~<9oAu$Ar-w339%9rJvgIc&*fNuL+*))9dv7$oly&!_!W0D7zGeTL$fX zwQc8MyQ1p?)<6(;jm@sVx7EW?>H9OAZ+UJk2ygy`R zi(laDl*+8vNlRBHrFkFiaJL&}O)Q%J)Ny=#&>vabM*j4iKxLXqm*Bc)7k*y6Tf`Ze z8KY55Oyr!%4hva^4PSW<_;Ji7BUNgL7quVwOAL8$0)*YgJ#9986Ty(Vxmm?4en*o{ zlGXkAr1V8JU?M&J6%BRF+}NE6<6cLq=YA4$wa2&S#-LBXGOJ3B?Xe(!b&|K#LHyg}p-B#9%Lvp{Mr+rHH3qeYT~*TP zza`Y%s%00arlvexaDY4pwF^Qb@9&7(p0|5bY8|eN=6d}@MWCY+yy?uS5CFRQJ-iR=G zptI2gtrfAlxq4#HgO>J|_yq(69NZkTKSnhw$R}xNrQquIF@h3Pr{uI6gl;!NS9E>P zdr@}nC040$h5e-^q@|@LBti#EgR*8m+o?5iL0J$Eqy|o$&p0OXd|#o7@puU)Cnr;d za)54nYDByrNvS{a3BER>?p-QS|l|N?}zy$X2LCvr`kcRVQO`Ov7 ztB0Ph3J4q;&Al&bjdU%MuMR(gvlQvJ7+&iHRysh|5ypmX))V1rr(=juuyP$@med*- zT!^w2=@=`!WMDo1!K;{XQj3RqcK6yYGKewr=4!X8{OC$bdIk)w%$&1-os~2Y1&L!B zRK(uJ=d7#+touV(=ht$otbM_~;S{KwyyCnuA`s)ItbZzkPv^CNu0u7}=3d2BzFI8Ax!F$h8S-kSH{j%8(bp=vC75kQrB0f%zpK9|vV+U?Roy*K zP3a=s5P=^TZljFiLE5JVgEDxa57{Tb-Y3QnvwK|IQi4mi|&kUBfDU=V(sZFd7PDV>z4MMv4 z*E#Ym3&rfR7>!w*Pim2>dmTUP4rr{o5B>)^|v_Cu>oqaU+O@gDeUQGvV_B5#K5)S{MUmc+WZ(v&U@%^%#1ev%};p9@tK=RCq z&(ijh+Tlpb&^JlvgS6Nv4P?C!H0*+HuNYQsPPur}!!n7)nvYI8cv@kz_YaS?FeW@v20(el+90v>_1bDU@%n}I#I~8$FeCuCym9vnvL#545TU0 zMu~Ej2#OGxVmgWG4xcIWBJ&BORjm@uJK&VQ}P2N z4GRY`*ir9$9yxm=TD@5sCFjpXkW4lWfQn%KD=hc%i+(HoX4z7(i1uaHb}P$QR`pG3 zuaB<(rp;&1-DI3D?;Z~{LQjsz!jt6GaH*@^+0*wScGr`u#$HH0V?K3~ATSe+ zjegPnhPYm7-zy>GXczBKVls<8(JT!2upI92koM~>=(3=c+i5LJKGMnewp?;Bt2%x! zomN&lpzxm!xbZ7G*ukRQb`OV4*#n<5&B4ASOytmBQ8G+qWQgZ?ecABeV*C`?(u`R5 zatOZ?Q40s7C{B|J!4^1%4fc9JHVTIAe%4L;RHvtN|E*F~LwquTX2J++zxn7S(dNt% z%T5EQhRi6-zoqioG(o?~VBE*u;&{Mi?&k)geo8vtm=De?`H1|aR*_=BsF$=*(x z=0WlBo-kuT!BT5sE$7k46(%VoWk)Ag3ViUQ#U$q=31wmCj#fXvDdkh16&!LwTienu zd#fOovO85i;{9)&e*)r{L6P0NbjYMOOj4+8`igDo^OcLkA^$%yy-kd0Lz*!cN6({X zGE9~?<&lcYO~!yW0Sg#y#C~Y>Z)Xy=~Z;}G^f@Ddw(a$N{$$7nZVg6 zb)TX-765;SZ;M|TcQ7n#_{A%SqTUBPa%CLTcdi!kWFBAcqgMQq2DrPR^+wNM?Akq( zHIg(Y)V^y^9@vv8Ee@y)PDn?Hp23*yV}+BVsot%tjlsex9Qw>^*#j@qq6NqWt2F0RqWd?Ol7LjS^kauZauL|bYH=U zq1HCVgy#_;%n-r;8%k=U37=h>mUk2lKS4J(iKj>nP~4#bwI?}Z3Fb($2}I^g^R05K zx(T$510TrgyeHIkqZ7V$_aplI*f0OOKANA7o1dHe5Y!d$bRQEFb4`hbb(H+!ivR)0 zagFEwL~Gv}lOC67<2|ifVy-^Ym;*B#-zVGV&nQEN3%VDiUa*%3{JCSb5m~G@gr=leC_tWZ6 zQmWMhk5?7$v&bYk5Te`5q+#eh3tyzjP@9tZpAMywZvzDugkV~mrpJS=WUe~?i0Z>C zJOP9@AyX~*>`V{wSD<>`+WKYpj*|92eEgM@)*m*{#|>`>F<3j!o3ox zFhirQ$UZN^#IlIhh_%?**tkf81@ah>WGhF$iqP%apYk7!q`(e0n=F=0B@A(yE`Mf~ zg)IRk?dtYJ2|mD?3lwHPt!p4Ap*x{M3`+f(*Ua0QoFmgi5aHFKRBZg&6^2V1s@VQ* zlMe)^@FZj0oY9#lGeYWX+%qS-)ufc}PCZpxk`w)}KA+keG%j0^_AgOMa;m4S{k7pDl)L+kx6(bQOzOn<|5JcGRSFZgOHGrw{{!Rogn==&sf9^`uqX=S9M8*aJ^4ul@6)Uo_K%HY|!!2$47w?6{jMpxh^+b6R_h`E|au zav(T4ohqU3|D-Cd?yp6bI;N-Ddx&aKMEOb9=FfHnECibEN^_GFRQs1*>fL{~A%2j2zqYXzl;mBz>VP-?SbW7#<4O zSpg=M4X1Idu%5t+(a(~tk%^f6#?G>u_JzGW>l@ua7m;lI_b?%WG%s|lX#Qf|VhpeE zE)c$Fk|f}l0&>EUYikHgYGvfnluW2nu^UQk%V*B7?7zXREd2E_N-36*h)4+EeW;k2 zO~R&j;Nz;5mZrsYTrJGu!*WSY&BaEC#zmM!7VVbj)>o8bz-W_34?D~W1IJ3G()u<7!HK~K^%ZF8?UTZ^(7uk6Dt63wikPe{ z3fp_3TCK`i{%Xtm*(xj9c{}$JKLh@1Lp%uWNLo@7Apr<;`acN(6#koENdnMBd|?Me z;}A9$ZPnC%^%>Y*S$=>;pW3s1?%`qR_q@%^LSrW$u;Od13=^&)1r5@D)pq|`=^LYe z^X~z*J;0uQzTIkVc-Z_*J`CPhuqQzmB!*)j=i-m9fY!I6IHFi8LxgX<*=yg1k0{{x zd$`EW9pJ-9y&>#{WngU8({H(jKXSA-jZmLDb{X5DB!?Hn#$*0f|4U|1-KX(Lx=nK=`4kq_y$TnQI zEn_nI9QQ`jIZMYo;z9V`hp+EzBB!S?Be863BKr=AON)yonQ=c;(9BBbezco=@*4~h z{sW?+1o1ZPXRm(k^Tl4B7~)e#7tz1NGaVC1(In7fR5iHaNsq9knb+q2@S?Cg;&M!F z_kf}V%GrUOQ@s}B5B);$=8H2$KarJPVg|ETTdX68sz2z^;FJQc2P4Z-mph}NyMZlu zdh>NQHp(maAFdcl58(Cp<Etn4x`J zf^~_5(}DFe?5)23cmS!R16JU>N7aKF4LmS!j4z(JAw_>He08IBW3H}n{m9dCt*$k( zx(}_t^Re-LeIyA2prOG>f&EFOvaAA?)&FDcTqWGi_rC`DIh^@mvEPADu@d1*l=r`# z4(u)2o&1wtt@vKE%5!j7K1tptCVR&Sr~ck_=Ed~K-o!yXsc<5_#KU^ypldGu`bVMt zPO$LFG5x(0nOVkgdkRu1`We@k5}2|$MmKWyDl$sU&FIPSm%u0v1V%3M!AkMge_L@} z-=>i_5HYC18R5~~VB=B0NO>J@sBt=Q>swmxMY4`d5+#Gsb{Nb=_m^{!0q`%Etn9kK z!Szrp&n5fv?Cf%GeFl{K#)-zg{amN6xgplxaQh|+(+NtrFDjy_KE?gJ7cGLH-b3rn zEbk*5eoX&kS!XIFJv!2;;N-El+Pk@5ydd6Utqx zbm{Dvu5}y~3}0`q7hH3O`MLYKkAyimn+6A>s5}+O1QzaS_dOpv6Tu1pZIVUSnjKbX z!~4r+%Gg<1KpcU|OkXO}Nx#+gZYX(QtH#_uK}6mT8F1E7q+=KJ%qS4W(E)n!O$@;_ z5jl2~;kl&4-*SdNPFohr1bVNwxgYI_iHtU9BLh17c|%m!d&YYMMS_~#2t4;Wv$uk;BlnXit1d8=%T`!7ZJMBDJC6F?a^6Q`k*TE>;No5soYNaJHka4M69|1^43+2ce;&OuLBaCbZXoOm zv->BiuH<28wYfdO|1Cpz9ut@_<<_Ny6^>j|g2z#ecj!et4?%ONCDUSv+u06A8`iIJ zdC5?no0|!45kk#GVB7-E-x$iH4N>W)k&%&9qkucqRrY|Su1_S=ykjA!UeJT-(%KE> zT;V4~Sbe3H`!E{rDXzMtgtM`PzOlX}%w@r%8pZ-v?|qMPtDe_ee4Ax1uh^()MEN05 zZ2>f1#-V|DMfiq&haZKQ?j0o?RjxkKEvb9fWHg&c4Y%csQkrkJm zSj6*0dQ?B9s1)b<%GifrHaO?zE;X~se$jR7PYQExdzsV1MP?Kf-aD1GdÏmvOE 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 b`u_(2Nr-(&rSM diff --git a/public/static/UEditor/themes/default/images/loaderror.png b/public/static/UEditor/themes/default/images/loaderror.png deleted file mode 100644 index 35ff3336457d48dbecbc11698ef8245441a94f82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3209 zcmV;440iL0P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z0k%m*K~#9!e2~FQ({TXB-x{;bZO(-Y8ex`bv_p{XBo;-4Lx{T6F{n%Z2VFaK3aU$& zE|sxGZNe~(3~EV`F(hqUo8`hK+nQq9zB^(+vY&UL4)a=R(2AtXn2}?J98ztH%RD53?tG7;9}I z-_`_!ekQu?Ois@L7y$+#9*%I|?PU4DPOQT|zID5(_xYLX_3`TYc%$Xt0Kh~x#TAL{ zZa4M*E=)%gPfj1Fwy_GcWz!|MZfch#o1p0<6qW* v>K|>hpp+{XU2~DJy!*S=f9j0>L+$qf@2pSN^>p6l00000NkvXXu0mjf@-HC0 diff --git a/public/static/UEditor/themes/default/images/loading.gif b/public/static/UEditor/themes/default/images/loading.gif deleted file mode 100644 index b713e27dfba708a01c380e7c731a13b52a34edfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmZ?wbhEHb6krfw*v!jdZ*RYU|9&kkt+4ULFya6I z{|pQa5E95x{Lk&@8WQa67~pE8XTZz|68g!)$-uzNpaWzB4HaNuV6okB(sT7*i`QqX zc^L!>4t!=<(wVp51?zD`Kkg=-D~S>;skcR%7#$omMC>21xN*pcHs0c0tRNsF(;}SM ziPc1Fu!&|20tT$-nJa`fCQUjv@kC+C3!quI1U@ISvoqf2Xk|(i=IUl?N@{e_G3Yq3 z;U-H^uFrB+CTuRW+i+5nfx|fagWLs?!jQY{X6=arU0riqs^&x$2`7X};t z37RYmQ;O#*G6uOVn*=nAm7~Q)&(!ybaj}oz`WtJ?PQSHN#^y?3ICf5PGS1Ha8pE+k zgJmJh5y6y1=@^y-ft=a0ZG|ZdPArq?H(+2`(;|7`F{6Xpbl>GI8B?M_My|#ljzAN4 z3Pb@-+?qdUsm6)xA>j@^Y0K7lSt}-Mopvo#qQ-sCkLXFkyF zSLvgkf4d8-w;?feL$4)lp3HYoMI*E5@=0AueT*09aVgICcu;r3k!5-F!GZ%U3=K0F z9S$(a^)KPCsC4r`z65*B*uc`x?)kvPGDl;Yns{Fj0|R3#FisfHGY4!D^0$zE1ljvXNk%w1VH^N10QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02}}=000R80RIUbNU)&6g9sBUT*$DY!-o(fN}Na$VuFhf5;SOl zQR2k}8962Z;Gkkb01ZqM%&2mp#+Cvv!u%%_X3ds21*#in3e-1?2?(ltc28ctYrP)k z{Pb@UlQicB-E)}JlDi_MMmXbuk803?iR{rRp~2S#dR_^-LU%))h*>DmHq0rnjf;8~ zsJM}rcHp`#D%4?EVW;cduL6J7ThT2kQ{cJka07oF;i3Wu4ZceYpGm&F`Sa-04-5zZJCANLt@XPdKI8X22WQ%mvv4FO#q2N BK}7%n diff --git a/public/static/UEditor/themes/default/images/pagebreak.gif b/public/static/UEditor/themes/default/images/pagebreak.gif deleted file mode 100644 index 8d1cffd64af72709b1180b3b0a51bbfe30bcb8c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54 zcmZ?wbhEHb{( zJaZG%Q-e|yQz{EjrrH1%u?6^qxTdA0{r~^J*gJ9sP=u)@$S?Rm!_(~sUO=9vr;B4q z#jTK2Cpj4yIG7J^{J*Sr7aP;;!*evU*UP7-zWuuR&zi{Xq6rL2tqds~bx9pSO$?r{ KelF{r5}E*+%QgN0 diff --git a/public/static/UEditor/themes/default/images/sortable.png b/public/static/UEditor/themes/default/images/sortable.png deleted file mode 100644 index 1bca649698e187a80e1b1951fde99ddea3d7b038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2851 zcmV+;3*7XHP)a>00009a7bBm000ie z000ie0hKEb8vpKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z08mLpK~#9!oRLck03Zkj=S64rPM)?_fdpkX8wniqBQql~0Ii3+bE9oyj4ACPj92-T zm=@@9#wtDeL0Q}S5#z#C757uAA_7bR009600|4w43ls_yIokjL002ovPDHLkV1j!0 BXOsW{ diff --git a/public/static/UEditor/themes/default/images/spacer.gif b/public/static/UEditor/themes/default/images/spacer.gif deleted file mode 100644 index 5bfd67a2d6f72ac3a55cbfcea5866e841d22f5d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 mcmZ?wbhEHbWMp7uXkdT>#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1 diff --git a/public/static/UEditor/themes/default/images/sparator_v.png b/public/static/UEditor/themes/default/images/sparator_v.png deleted file mode 100644 index 8cf5662da8c36a446e1e08eb71b992c730ab8d15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y0V1m%Ufcz7ii6yp7}lMWc?smOq&xaLGB9lH z=l+w(3gmMZctjR6Fz_7)VaDV6D^h@h{GKk3Arj%q6<>aQ{Qv(yqp%0-vU7cb$AD4{ Mp00i_>zopr0ET%XRR910 diff --git a/public/static/UEditor/themes/default/images/table-cell-align.png b/public/static/UEditor/themes/default/images/table-cell-align.png deleted file mode 100644 index ddf42853ea5c00663e74d9195d1f1264ab684252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1847 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 diff --git a/public/static/UEditor/themes/default/images/toolbar_bg.png b/public/static/UEditor/themes/default/images/toolbar_bg.png deleted file mode 100644 index 7ab685f4236ad543601b0d7dc43e429e041bee98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI{!2~3a95{LaNJ*BsMwA5Sra_n`~3ut zhqFCqhNk>9eAm}?**d-K>ErgL-9FQkEgB1_|9|!V%ggstduo?ezj^hOMS@|yt(J@G Th3lO_a~V8c{an^LB{Ts5X5&F_ diff --git a/public/static/UEditor/themes/default/images/unhighlighted.gif b/public/static/UEditor/themes/default/images/unhighlighted.gif deleted file mode 100644 index 7ad0b67ae634d41e76848ec0b6696e8ac7e06983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmZ?wbhEHb6k`x$Sjfci#j9d&%3_1)z0Fq~5a+uP;QtU1Nea;29 zx*cclynVJpP9xwz=Q6F#ReGoPZ4xWkEPX#)_EqLPYsO~h_`vc#s_EX6+DxrJi$d-_ L>N=ao&0q}x{nsuG diff --git a/public/static/UEditor/themes/default/images/upload.png b/public/static/UEditor/themes/default/images/upload.png deleted file mode 100644 index 08d4d9268204a20ca343bf75784302cc706d2417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6608 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 O00001IobTth)ve1{+;xF-z$zX1$@cbk;N#jz zM8mU4YCupmEU?Nii0lQg^bRCan?Ab3%VAH658-8xBFJMB`IuzR@?X?_cxg~njWe8Z z7he1{t~NY@;sD2oqwB>InLWHP3|(&rFL;_%YXisG!f|)t`LI~xqj*wKLbXWp)f$eo z4#asOE4^bXVR1zDClZ^-`L@9YE{GEUM6w@>B$|*3C13A^6xxLq**_!Pdr{&MM+{D{ z56z@TzG*@hw6S^P4v136mt~*C)1y;z@#LIHDjO7zE0$NBVk(?tEAPD`x}r!4rSvo+ zGrN|Z-`M*gk?fXS+qo0;d0 zh<&hBzt>Fxc`eUN=*S8tip(N)4%c-Hsa$abS1kGZZD3dwRL~Y&OiQls$!Zy(aK#~| zjPP=1B(V$A*qhVABln1FxZ*mlSSnXYWQzzgJF1owUC)i7_7-#saE!r1=5SG$fWQ*I z?G_O^BB^|7ZhisN&MW7LKFbwbTU$SV{P_O;`{w56#>U3_`uf`1+Un}+%F2pDp;%g4 zT3lS5pP!e@<#Tg$GMVhlmoKxkvokX@)6>(Flao@ZbYfycB9V-bkB^RyibNuzP$&=x zMn*=4hK2?Q2l;$HkH;Gr80hQk>+S93a=9E1r@OnG&1QFYb~2ev27}Sj(b3-C-qzOE z+}zyQ*hr;PDHIBkNX*O2%g)YDPEJltOhlnjzdrQ8MQa@l0suN-^vmE^6Tt3mAau_$ zXbql@q{N)M&$25b1FG78WjFA2Q`{wpcH+plH-T+lc4H{-V^L{To}?sY^7t- zRp-#0EC|Fh>5nV9*osg354U2y3FFpwXQ!`Na;JKQ;uHrYmb=qU|MBr zTOt(Y=@VUlJq+6mQt^WJ9lIJTz?$6jvB@_0Ijg#xyHYhx6QE$9@Q;P`SNru{MQcx_ z>I9eqMm;}}tfJ*J&?Udq;ijL1AIs^TNj%ED8++(4bqQ3YK5><%~obS)3oEv z2`L9EwBilZbt=4c48b+h%ydj29TQf1;FclAt3p@D@Iv$C>k|Ryx={((b>+iEv*M}T zw2%>2(|!*aqioP7@6#WGj~%z23qkbWx? zq>K{ydFDHsgH&Ab#e8p|DBB+i&e7YjgH&Dp_Cc?zbGzF=vu-e#1^&&3UitP6Qvg=W z;+>M!e1J%3O7HX-hEcUA+~cC@8WAyj^bml>?&AT`HEEBQ}9Z=3X$i*Zty)I zU*Zj5^tvjIuB=l9Z9~T)&b;Eg=FK&TO>3g*yVOqt8d@&{JXvVbxz7~cYII$TQHvSS zgJ#LpO3a#6>HScB5@i5vKw}cnyiI*AUkCSPz7s6};*mIoCN(8C-gssBWz<}Twr?3} zMG(-KVyeCT&UjVicgg-NE@GN=DKAW@1zjD3zqggT>WPOqXK6a*HA(U%`Q-^?%QNdz M>|NJq=D?r-0Tclc1poj5 diff --git a/public/static/UEditor/themes/default/images/word.gif b/public/static/UEditor/themes/default/images/word.gif deleted file mode 100644 index 9ef5d09b7b30c4f3225f77788462e429cc494b9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1019 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 bp?H9uNI6(~=EJQ&zcn<}bW|&qZNmQtXU+rA diff --git a/public/static/UEditor/themes/iframe.css b/public/static/UEditor/themes/iframe.css deleted file mode 100644 index 3c1ae0f..0000000 --- a/public/static/UEditor/themes/iframe.css +++ /dev/null @@ -1,21 +0,0 @@ -/*可以在这里添加你自己的css*/ -* { - max-width: 100% !important; -} - -body { - font-size: 14px; -} - -a { - color: #3284e6; - word-break: break-all; -} - -p { - margin: 0 -} - -img { - display: block; -} diff --git a/public/static/UEditor/third-party/SyntaxHighlighter/shCore.js b/public/static/UEditor/third-party/SyntaxHighlighter/shCore.js deleted file mode 100644 index 3249184..0000000 --- a/public/static/UEditor/third-party/SyntaxHighlighter/shCore.js +++ /dev/null @@ -1,3655 +0,0 @@ -// XRegExp 1.5.1 -// (c) 2007-2012 Steven Levithan -// MIT License -// -// Provides an augmented, extensible, cross-browser implementation of regular expressions, -// including support for additional syntax, flags, and methods - -var XRegExp; - -if (XRegExp) { - // Avoid running twice, since that would break references to native globals - throw Error("can't load XRegExp twice in the same frame"); -} - -// Run within an anonymous function to protect variables and avoid new globals -(function (undefined) { - - //--------------------------------- - // Constructor - //--------------------------------- - - // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native - // regular expression in that additional syntax and flags are supported and cross-browser - // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and - // converts to type XRegExp - XRegExp = function (pattern, flags) { - var output = [], - currScope = XRegExp.OUTSIDE_CLASS, - pos = 0, - context, tokenResult, match, chr, regex; - - if (XRegExp.isRegExp(pattern)) { - if (flags !== undefined) - throw TypeError("can't supply flags when constructing one RegExp from another"); - return clone(pattern); - } - // Tokens become part of the regex construction process, so protect against infinite - // recursion when an XRegExp is constructed within a token handler or trigger - if (isInsideConstructor) - throw Error("can't call the XRegExp constructor within token definition functions"); - - flags = flags || ""; - context = { // `this` object for custom tokens - hasNamedCapture: false, - captureNames: [], - hasFlag: function (flag) {return flags.indexOf(flag) > -1;}, - setFlag: function (flag) {flags += flag;} - }; - - while (pos < pattern.length) { - // Check for custom tokens at the current position - tokenResult = runTokens(pattern, pos, currScope, context); - - if (tokenResult) { - output.push(tokenResult.output); - pos += (tokenResult.match[0].length || 1); - } else { - // Check for native multicharacter metasequences (excluding character classes) at - // the current position - if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) { - output.push(match[0]); - pos += match[0].length; - } else { - chr = pattern.charAt(pos); - if (chr === "[") - currScope = XRegExp.INSIDE_CLASS; - else if (chr === "]") - currScope = XRegExp.OUTSIDE_CLASS; - // Advance position one character - output.push(chr); - pos++; - } - } - } - - regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, "")); - regex._xregexp = { - source: pattern, - captureNames: context.hasNamedCapture ? context.captureNames : null - }; - return regex; - }; - - - //--------------------------------- - // Public properties - //--------------------------------- - - XRegExp.version = "1.5.1"; - - // Token scope bitflags - XRegExp.INSIDE_CLASS = 1; - XRegExp.OUTSIDE_CLASS = 2; - - - //--------------------------------- - // Private variables - //--------------------------------- - - var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, - flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags - quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, - isInsideConstructor = false, - tokens = [], - // Copy native globals for reference ("native" is an ES3 reserved keyword) - nativ = { - exec: RegExp.prototype.exec, - test: RegExp.prototype.test, - match: String.prototype.match, - replace: String.prototype.replace, - split: String.prototype.split - }, - compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups - compliantLastIndexIncrement = function () { - var x = /^/g; - nativ.test.call(x, ""); - return !x.lastIndex; - }(), - hasNativeY = RegExp.prototype.sticky !== undefined, - nativeTokens = {}; - - // `nativeTokens` match native multicharacter metasequences only (including deprecated octals, - // excluding character classes) - nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; - nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; - - - //--------------------------------- - // Public methods - //--------------------------------- - - // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by - // the XRegExp library and can be used to create XRegExp plugins. This function is intended for - // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can - // be disabled by `XRegExp.freezeTokens` - XRegExp.addToken = function (regex, handler, scope, trigger) { - tokens.push({ - pattern: clone(regex, "g" + (hasNativeY ? "y" : "")), - handler: handler, - scope: scope || XRegExp.OUTSIDE_CLASS, - trigger: trigger || null - }); - }; - - // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag - // combination has previously been cached, the cached copy is returned; otherwise the newly - // created regex is cached - XRegExp.cache = function (pattern, flags) { - var key = pattern + "/" + (flags || ""); - return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags)); - }; - - // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh - // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global` - // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve - // special properties required for named capture - XRegExp.copyAsGlobal = function (regex) { - return clone(regex, "g"); - }; - - // Accepts a string; returns the string with regex metacharacters escaped. The returned string - // can safely be used at any point within a regex to match the provided literal string. Escaped - // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace - XRegExp.escape = function (str) { - return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }; - - // Accepts a string to search, regex to search with, position to start the search within the - // string (default: 0), and an optional Boolean indicating whether matches must start at-or- - // after the position or at the specified position only. This function ignores the `lastIndex` - // of the provided regex in its own handling, but updates the property for compatibility - XRegExp.execAt = function (str, regex, pos, anchored) { - var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")), - match; - r2.lastIndex = pos = pos || 0; - match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (anchored && match && match.index !== pos) - match = null; - if (regex.global) - regex.lastIndex = match ? r2.lastIndex : 0; - return match; - }; - - // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing - // syntax and flag changes. Should be run after XRegExp and any plugins are loaded - XRegExp.freezeTokens = function () { - XRegExp.addToken = function () { - throw Error("can't run addToken after freezeTokens"); - }; - }; - - // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object. - // Note that this is also `true` for regex literals and regexes created by the `XRegExp` - // constructor. This works correctly for variables created in another frame, when `instanceof` - // and `constructor` checks would fail to work as intended - XRegExp.isRegExp = function (o) { - return Object.prototype.toString.call(o) === "[object RegExp]"; - }; - - // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to - // iterate over regex matches compared to the traditional approaches of subverting - // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop - XRegExp.iterate = function (str, regex, callback, context) { - var r2 = clone(regex, "g"), - i = -1, match; - while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (regex.global) - regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback` - callback.call(context, match, ++i, str, regex); - if (r2.lastIndex === match.index) - r2.lastIndex++; - } - if (regex.global) - regex.lastIndex = 0; - }; - - // Accepts a string and an array of regexes; returns the result of using each successive regex - // to search within the matches of the previous regex. The array of regexes can also contain - // objects with `regex` and `backref` properties, in which case the named or numbered back- - // references specified are passed forward to the next regex or returned. E.g.: - // var xregexpImgFileNames = XRegExp.matchChain(html, [ - // {regex: /]+)>/i, backref: 1}, // tag attributes - // {regex: XRegExp('(?ix) \\s src=" (? [^"]+ )'), backref: "src"}, // src attribute values - // {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths - // /[^\/]+$/ // filenames (strip directory paths) - // ]); - XRegExp.matchChain = function (str, chain) { - return function recurseChain (values, level) { - var item = chain[level].regex ? chain[level] : {regex: chain[level]}, - regex = clone(item.regex, "g"), - matches = [], i; - for (i = 0; i < values.length; i++) { - XRegExp.iterate(values[i], regex, function (match) { - matches.push(item.backref ? (match[item.backref] || "") : match[0]); - }); - } - return ((level === chain.length - 1) || !matches.length) ? - matches : recurseChain(matches, level + 1); - }([str], 0); - }; - - - //--------------------------------- - // New RegExp prototype methods - //--------------------------------- - - // Accepts a context object and arguments array; returns the result of calling `exec` with the - // first value in the arguments array. the context is ignored but is accepted for congruity - // with `Function.prototype.apply` - RegExp.prototype.apply = function (context, args) { - return this.exec(args[0]); - }; - - // Accepts a context object and string; returns the result of calling `exec` with the provided - // string. the context is ignored but is accepted for congruity with `Function.prototype.call` - RegExp.prototype.call = function (context, str) { - return this.exec(str); - }; - - - //--------------------------------- - // Overriden native methods - //--------------------------------- - - // Adds named capture support (with backreferences returned as `result.name`), and fixes two - // cross-browser issues per ES3: - // - Captured values for nonparticipating capturing groups should be returned as `undefined`, - // rather than the empty string. - // - `lastIndex` should not be incremented after zero-length matches. - RegExp.prototype.exec = function (str) { - var match, name, r2, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.apply(this, arguments); - if (match) { - // Fix browsers whose `exec` methods don't consistently return `undefined` for - // nonparticipating capturing groups - if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { - r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", "")); - // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed - // matching due to characters outside the match - nativ.replace.call((str + "").slice(match.index), r2, function () { - for (var i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) - match[i] = undefined; - } - }); - } - // Attach named capture properties - if (this._xregexp && this._xregexp.captureNames) { - for (var i = 1; i < match.length; i++) { - name = this._xregexp.captureNames[i - 1]; - if (name) - match[name] = match[i]; - } - } - // Fix browsers that increment `lastIndex` after zero-length matches - if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - } - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return match; - }; - - // Fix browser bugs in native method - RegExp.prototype.test = function (str) { - // Use the native `exec` to skip some processing overhead, even though the altered - // `exec` would take care of the `lastIndex` fixes - var match, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.call(this, str); - // Fix browsers that increment `lastIndex` after zero-length matches - if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return !!match; - }; - - // Adds named capture support and fixes browser bugs in native method - String.prototype.match = function (regex) { - if (!XRegExp.isRegExp(regex)) - regex = RegExp(regex); // Native `RegExp` - if (regex.global) { - var result = nativ.match.apply(this, arguments); - regex.lastIndex = 0; // Fix IE bug - return result; - } - return regex.exec(this); // Run the altered `exec` - }; - - // Adds support for `${n}` tokens for named and numbered backreferences in replacement text, - // and provides named backreferences to replacement functions as `arguments[0].name`. Also - // fixes cross-browser differences in replacement text syntax when performing a replacement - // using a nonregex search value, and the value of replacement regexes' `lastIndex` property - // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary - // third (`flags`) parameter - String.prototype.replace = function (search, replacement) { - var isRegex = XRegExp.isRegExp(search), - captureNames, result, str, origLastIndex; - - // There are too many combinations of search/replacement types/values and browser bugs that - // preclude passing to native `replace`, so don't try - //if (...) - // return nativ.replace.apply(this, arguments); - - if (isRegex) { - if (search._xregexp) - captureNames = search._xregexp.captureNames; // Array or `null` - if (!search.global) - origLastIndex = search.lastIndex; - } else { - search = search + ""; // Type conversion - } - - if (Object.prototype.toString.call(replacement) === "[object Function]") { - result = nativ.replace.call(this + "", search, function () { - if (captureNames) { - // Change the `arguments[0]` string primitive to a String object which can store properties - arguments[0] = new String(arguments[0]); - // Store named backreferences on `arguments[0]` - for (var i = 0; i < captureNames.length; i++) { - if (captureNames[i]) - arguments[0][captureNames[i]] = arguments[i + 1]; - } - } - // Update `lastIndex` before calling `replacement` (fix browsers) - if (isRegex && search.global) - search.lastIndex = arguments[arguments.length - 2] + arguments[0].length; - return replacement.apply(null, arguments); - }); - } else { - str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`) - result = nativ.replace.call(str, search, function () { - var args = arguments; // Keep this function's `arguments` available through closure - return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) { - // Numbered backreference (without delimiters) or special variable - if ($1) { - switch ($1) { - case "$": return "$"; - case "&": return args[0]; - case "`": return args[args.length - 1].slice(0, args[args.length - 2]); - case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length); - // Numbered backreference - default: - // What does "$10" mean? - // - Backreference 10, if 10 or more capturing groups exist - // - Backreference 1 followed by "0", if 1-9 capturing groups exist - // - Otherwise, it's the string "$10" - // Also note: - // - Backreferences cannot be more than two digits (enforced by `replacementToken`) - // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01" - // - There is no "$0" token ("$&" is the entire match) - var literalNumbers = ""; - $1 = +$1; // Type conversion; drop leading zero - if (!$1) // `$1` was "0" or "00" - return $0; - while ($1 > args.length - 3) { - literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers; - $1 = Math.floor($1 / 10); // Drop the last digit - } - return ($1 ? args[$1] || "" : "$") + literalNumbers; - } - // Named backreference or delimited numbered backreference - } else { - // What does "${n}" mean? - // - Backreference to numbered capture n. Two differences from "$n": - // - n can be more than two digits - // - Backreference 0 is allowed, and is the entire match - // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture - // - Otherwise, it's the string "${n}" - var n = +$2; // Type conversion; drop leading zeros - if (n <= args.length - 3) - return args[n]; - n = captureNames ? indexOf(captureNames, $2) : -1; - return n > -1 ? args[n + 1] : $0; - } - }); - }); - } - - if (isRegex) { - if (search.global) - search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows) - else - search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - } - - return result; - }; - - // A consistent cross-browser, ES3 compliant `split` - String.prototype.split = function (s /* separator */, limit) { - // If separator `s` is not a regex, use the native `split` - if (!XRegExp.isRegExp(s)) - return nativ.split.apply(this, arguments); - - var str = this + "", // Type conversion - output = [], - lastLastIndex = 0, - match, lastLength; - - // Behavior for `limit`: if it's... - // - `undefined`: No limit - // - `NaN` or zero: Return an empty array - // - A positive number: Use `Math.floor(limit)` - // - A negative number: No limit - // - Other: Type-convert, then use the above rules - if (limit === undefined || +limit < 0) { - limit = Infinity; - } else { - limit = Math.floor(+limit); - if (!limit) - return []; - } - - // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero - // and restore it to its original value when we're done using the regex - s = XRegExp.copyAsGlobal(s); - - while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (s.lastIndex > lastLastIndex) { - output.push(str.slice(lastLastIndex, match.index)); - - if (match.length > 1 && match.index < str.length) - Array.prototype.push.apply(output, match.slice(1)); - - lastLength = match[0].length; - lastLastIndex = s.lastIndex; - - if (output.length >= limit) - break; - } - - if (s.lastIndex === match.index) - s.lastIndex++; - } - - if (lastLastIndex === str.length) { - if (!nativ.test.call(s, "") || lastLength) - output.push(""); - } else { - output.push(str.slice(lastLastIndex)); - } - - return output.length > limit ? output.slice(0, limit) : output; - }; - - - //--------------------------------- - // Private helper functions - //--------------------------------- - - // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp` - // instance with a fresh `lastIndex` (set to zero), preserving properties required for named - // capture. Also allows adding new flags in the process of copying the regex - function clone (regex, additionalFlags) { - if (!XRegExp.isRegExp(regex)) - throw TypeError("type RegExp expected"); - var x = regex._xregexp; - regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || "")); - if (x) { - regex._xregexp = { - source: x.source, - captureNames: x.captureNames ? x.captureNames.slice(0) : null - }; - } - return regex; - } - - function getNativeFlags (regex) { - return (regex.global ? "g" : "") + - (regex.ignoreCase ? "i" : "") + - (regex.multiline ? "m" : "") + - (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 - (regex.sticky ? "y" : ""); - } - - function runTokens (pattern, index, scope, context) { - var i = tokens.length, - result, match, t; - // Protect against constructing XRegExps within token handler and trigger functions - isInsideConstructor = true; - // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws - try { - while (i--) { // Run in reverse order - t = tokens[i]; - if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) { - t.pattern.lastIndex = index; - match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc. - if (match && match.index === index) { - result = { - output: t.handler.call(context, match, scope), - match: match - }; - break; - } - } - } - } catch (err) { - throw err; - } finally { - isInsideConstructor = false; - } - return result; - } - - function indexOf (array, item, from) { - if (Array.prototype.indexOf) // Use the native array method if available - return array.indexOf(item, from); - for (var i = from || 0; i < array.length; i++) { - if (array[i] === item) - return i; - } - return -1; - } - - - //--------------------------------- - // Built-in tokens - //--------------------------------- - - // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the - // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS` - - // Comment pattern: (?# ) - XRegExp.addToken( - /\(\?#[^)]*\)/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - } - ); - - // Capturing group (match the opening parenthesis only). - // Required for support of named capturing groups - XRegExp.addToken( - /\((?!\?)/, - function () { - this.captureNames.push(null); - return "("; - } - ); - - // Named capturing group (match the opening delimiter only): (? - XRegExp.addToken( - /\(\?<([$\w]+)>/, - function (match) { - this.captureNames.push(match[1]); - this.hasNamedCapture = true; - return "("; - } - ); - - // Named backreference: \k - XRegExp.addToken( - /\\k<([\w$]+)>/, - function (match) { - var index = indexOf(this.captureNames, match[1]); - // Keep backreferences separate from subsequent literal numbers. Preserve back- - // references to named groups that are undefined at this point as literal strings - return index > -1 ? - "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") : - match[0]; - } - ); - - // Empty character class: [] or [^] - XRegExp.addToken( - /\[\^?]/, - function (match) { - // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. - // (?!) should work like \b\B, but is unreliable in Firefox - return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]"; - } - ); - - // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx) - // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc. - XRegExp.addToken( - /^\(\?([imsx]+)\)/, - function (match) { - this.setFlag(match[1]); - return ""; - } - ); - - // Whitespace and comments, in free-spacing (aka extended) mode only - XRegExp.addToken( - /(?:\s+|#.*)+/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - }, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("x");} - ); - - // Dot, in dotall (aka singleline) mode only - XRegExp.addToken( - /\./, - function () {return "[\\s\\S]";}, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("s");} - ); - - - //--------------------------------- - // Backward compatibility - //--------------------------------- - - // Uncomment the following block for compatibility with XRegExp 1.0-1.2: - /* - XRegExp.matchWithinChain = XRegExp.matchChain; - RegExp.prototype.addFlags = function (s) {return clone(this, s);}; - RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;}; - RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);}; - RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;}; - */ - -})(); - -// -// Begin anonymous function. This is used to contain local scope variables without polutting global scope. -// -if (typeof(SyntaxHighlighter) == 'undefined') var SyntaxHighlighter = function() { - -// CommonJS - if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined') - { - XRegExp = require('XRegExp').XRegExp; - } - -// Shortcut object which will be assigned to the SyntaxHighlighter variable. -// This is a shorthand for local reference in order to avoid long namespace -// references to SyntaxHighlighter.whatever... - var sh = { - defaults : { - /** Additional CSS class names to be added to highlighter elements. */ - 'class-name' : '', - - /** First line number. */ - 'first-line' : 1, - - /** - * Pads line numbers. Possible values are: - * - * false - don't pad line numbers. - * true - automaticaly pad numbers with minimum required number of leading zeroes. - * [int] - length up to which pad line numbers. - */ - 'pad-line-numbers' : false, - - /** Lines to highlight. */ - 'highlight' : false, - - /** Title to be displayed above the code block. */ - 'title' : null, - - /** Enables or disables smart tabs. */ - 'smart-tabs' : true, - - /** Gets or sets tab size. */ - 'tab-size' : 4, - - /** Enables or disables gutter. */ - 'gutter' : true, - - /** Enables or disables toolbar. */ - 'toolbar' : true, - - /** Enables quick code copy and paste from double click. */ - 'quick-code' : true, - - /** Forces code view to be collapsed. */ - 'collapse' : false, - - /** Enables or disables automatic links. */ - 'auto-links' : false, - - /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */ - 'light' : false, - - 'unindent' : true, - - 'html-script' : false - }, - - config : { - space : ' ', - - /** Enables use of - * - * ``` - */ - findParent:function (node, filterFn, includeSelf) { - if (node && !domUtils.isBody(node)) { - node = includeSelf ? node : node.parentNode; - while (node) { - if (!filterFn || filterFn(node) || domUtils.isBody(node)) { - return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node; - } - node = node.parentNode; - } - } - return null; - }, - /** - * 查找node的节点名为tagName的第一个祖先节点, 查找的起点是node节点的父节点。 - * @method findParentByTagName - * @param { Node } node 需要查找的节点对象 - * @param { Array } tagNames 需要查找的父节点的名称数组 - * @warning 查找的终点是到body节点为止 - * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var node = UE.dom.domUtils.findParentByTagName( document.getElementsByTagName("div")[0], [ "BODY" ] ); - * //output: BODY - * console.log( node.tagName ); - * ``` - */ - - /** - * 查找node的节点名为tagName的祖先节点, 如果includeSelf的值为true,则查找的起点是给定的节点node, - * 否则, 起点是node的父节点。 - * @method findParentByTagName - * @param { Node } node 需要查找的节点对象 - * @param { Array } tagNames 需要查找的父节点的名称数组 - * @param { Boolean } includeSelf 查找过程是否包含node节点自身 - * @warning 查找的终点是到body节点为止 - * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var queryTarget = document.getElementsByTagName("div")[0]; - * var node = UE.dom.domUtils.findParentByTagName( queryTarget, [ "DIV" ], true ); - * //output: true - * console.log( queryTarget === node ); - * ``` - */ - findParentByTagName:function (node, tagNames, includeSelf, excludeFn) { - tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]); - return domUtils.findParent(node, function (node) { - return tagNames[node.tagName] && !(excludeFn && excludeFn(node)); - }, includeSelf); - }, - /** - * 查找节点node的祖先节点集合, 查找的起点是给定节点的父节点,结果集中不包含给定的节点。 - * @method findParents - * @param { Node } node 需要查找的节点对象 - * @return { Array } 给定节点的祖先节点数组 - * @grammar UE.dom.domUtils.findParents(node) => Array //返回一个祖先节点数组集合,不包含自身 - * @grammar UE.dom.domUtils.findParents(node,includeSelf) => Array //返回一个祖先节点数组集合,includeSelf指定是否包含自身 - * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn) => Array //返回一个祖先节点数组集合,filterFn指定过滤条件,返回true的node将被选取 - * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst) => Array //返回一个祖先节点数组集合,closerFirst为true的话,node的直接父亲节点是数组的第0个 - */ - - /** - * 查找节点node的祖先节点集合, 如果includeSelf的值为true, - * 则返回的结果集中允许出现当前给定的节点, 否则, 该节点不会出现在其结果集中。 - * @method findParents - * @param { Node } node 需要查找的节点对象 - * @param { Boolean } includeSelf 查找的结果中是否允许包含当前查找的节点对象 - * @return { Array } 给定节点的祖先节点数组 - */ - findParents:function (node, includeSelf, filterFn, closerFirst) { - var parents = includeSelf && ( filterFn && filterFn(node) || !filterFn ) ? [node] : []; - while (node = domUtils.findParent(node, filterFn)) { - parents.push(node); - } - return closerFirst ? parents : parents.reverse(); - }, - - /** - * 在节点node后面插入新节点newNode - * @method insertAfter - * @param { Node } node 目标节点 - * @param { Node } newNode 新插入的节点, 该节点将置于目标节点之后 - * @return { Node } 新插入的节点 - */ - insertAfter:function (node, newNode) { - return node.nextSibling ? node.parentNode.insertBefore(newNode, node.nextSibling): - node.parentNode.appendChild(newNode); - }, - - /** - * 删除节点node及其下属的所有节点 - * @method remove - * @param { Node } node 需要删除的节点对象 - * @return { Node } 返回刚删除的节点对象 - * @example - * ```html - *

    - *
    你好
    - *
    - * - * ``` - */ - - /** - * 删除节点node,并根据keepChildren的值决定是否保留子节点 - * @method remove - * @param { Node } node 需要删除的节点对象 - * @param { Boolean } keepChildren 是否需要保留子节点 - * @return { Node } 返回刚删除的节点对象 - * @example - * ```html - *
    - *
    你好
    - *
    - * - * ``` - */ - remove:function (node, keepChildren) { - var parent = node.parentNode, - child; - if (parent) { - if (keepChildren && node.hasChildNodes()) { - while (child = node.firstChild) { - parent.insertBefore(child, node); - } - } - parent.removeChild(node); - } - return node; - }, - - /** - * 取得node节点的下一个兄弟节点, 如果该节点其后没有兄弟节点, 则递归查找其父节点之后的第一个兄弟节点, - * 直到找到满足条件的节点或者递归到BODY节点之后才会结束。 - * @method getNextDomNode - * @param { Node } node 需要获取其后的兄弟节点的节点对象 - * @return { Node | NULL } 如果找满足条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```html - * - *
    - * - *
    - * xxx - * - * - * ``` - * @example - * ```html - * - *
    - * - * xxx - *
    - * xxx - * - * - * ``` - */ - - /** - * 取得node节点的下一个兄弟节点, 如果startFromChild的值为ture,则先获取其子节点, - * 如果有子节点则直接返回第一个子节点;如果没有子节点或者startFromChild的值为false, - * 则执行
    getNextDomNode(Node node)的查找过程。 - * @method getNextDomNode - * @param { Node } node 需要获取其后的兄弟节点的节点对象 - * @param { Boolean } startFromChild 查找过程是否从其子节点开始 - * @return { Node | NULL } 如果找满足条件的节点, 则返回该节点, 否则返回NULL - * @see UE.dom.domUtils.getNextDomNode(Node) - */ - getNextDomNode:function (node, startFromChild, filterFn, guard) { - return getDomNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard); - }, - getPreDomNode:function (node, startFromChild, filterFn, guard) { - return getDomNode(node, 'lastChild', 'previousSibling', startFromChild, filterFn, guard); - }, - /** - * 检测节点node是否属是UEditor定义的bookmark节点 - * @method isBookmarkNode - * @private - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 是否是bookmark节点 - * @example - * ```html - * - * - * ``` - */ - isBookmarkNode:function (node) { - return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id); - }, - /** - * 获取节点node所属的window对象 - * @method getWindow - * @param { Node } node 节点对象 - * @return { Window } 当前节点所属的window对象 - * @example - * ```javascript - * //output: true - * console.log( UE.dom.domUtils.getWindow( document.body ) === window ); - * ``` - */ - getWindow:function (node) { - var doc = node.ownerDocument || node; - return doc.defaultView || doc.parentWindow; - }, - /** - * 获取离nodeA与nodeB最近的公共的祖先节点 - * @method getCommonAncestor - * @param { Node } nodeA 第一个节点 - * @param { Node } nodeB 第二个节点 - * @remind 如果给定的两个节点是同一个节点, 将直接返回该节点。 - * @return { Node | NULL } 如果未找到公共节点, 返回NULL, 否则返回最近的公共祖先节点。 - * @example - * ```javascript - * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild ); - * //output: true - * console.log( commonAncestor.tagName.toLowerCase() === 'body' ); - * ``` - */ - getCommonAncestor:function (nodeA, nodeB) { - if (nodeA === nodeB) - return nodeA; - var parentsA = [nodeA] , parentsB = [nodeB], parent = nodeA, i = -1; - while (parent = parent.parentNode) { - if (parent === nodeB) { - return parent; - } - parentsA.push(parent); - } - parent = nodeB; - while (parent = parent.parentNode) { - if (parent === nodeA) - return parent; - parentsB.push(parent); - } - parentsA.reverse(); - parentsB.reverse(); - while (i++, parentsA[i] === parentsB[i]) { - } - return i == 0 ? null : parentsA[i - 1]; - - }, - /** - * 清除node节点左右连续为空的兄弟inline节点 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * 则这些兄弟节点将被删除 - * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext) //ignoreNext指定是否忽略右边空节点 - * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre) //ignorePre指定是否忽略左边空节点 - * @example - * ```html - * - *
    - * - * - * - * xxx - * - * - * - * ``` - */ - - /** - * 清除node节点左右连续为空的兄弟inline节点, 如果ignoreNext的值为true, - * 则忽略对右边兄弟节点的操作。 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作 - * 则这些兄弟节点将被删除 - * @see UE.dom.domUtils.clearEmptySibling(Node) - */ - - /** - * 清除node节点左右连续为空的兄弟inline节点, 如果ignoreNext的值为true, - * 则忽略对右边兄弟节点的操作, 如果ignorePre的值为true,则忽略对左边兄弟节点的操作。 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作 - * @param { Boolean } ignorePre 是否忽略忽略对左边的兄弟节点的操作 - * 则这些兄弟节点将被删除 - * @see UE.dom.domUtils.clearEmptySibling(Node) - */ - clearEmptySibling:function (node, ignoreNext, ignorePre) { - function clear(next, dir) { - var tmpNode; - while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next) - //这里不能把空格算进来会吧空格干掉,出现文字间的空格丢掉了 - || !new RegExp('[^\t\n\r' + domUtils.fillChar + ']').test(next.nodeValue) )) { - tmpNode = next[dir]; - domUtils.remove(next); - next = tmpNode; - } - } - !ignoreNext && clear(node.nextSibling, 'nextSibling'); - !ignorePre && clear(node.previousSibling, 'previousSibling'); - }, - /** - * 将一个文本节点textNode拆分成两个文本节点,offset指定拆分位置 - * @method split - * @param { Node } textNode 需要拆分的文本节点对象 - * @param { int } offset 需要拆分的位置, 位置计算从0开始 - * @return { Node } 拆分后形成的新节点 - * @example - * ```html - *
    abcdef
    - * - * ``` - */ - split:function (node, offset) { - var doc = node.ownerDocument; - if (browser.ie && offset == node.nodeValue.length) { - var next = doc.createTextNode(''); - return domUtils.insertAfter(node, next); - } - var retval = node.splitText(offset); - //ie8下splitText不会跟新childNodes,我们手动触发他的更新 - if (browser.ie8) { - var tmpNode = doc.createTextNode(''); - domUtils.insertAfter(retval, tmpNode); - domUtils.remove(tmpNode); - } - return retval; - }, - - /** - * 检测文本节点textNode是否为空节点(包括空格、换行、占位符等字符) - * @method isWhitespace - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 检测的节点是否为空 - * @example - * ```html - *
    - * - *
    - * - * ``` - */ - isWhitespace:function (node) { - return !new RegExp('[^ \t\n\r' + domUtils.fillChar + ']').test(node.nodeValue); - }, - /** - * 获取元素element相对于viewport的位置坐标 - * @method getXY - * @param { Node } element 需要计算位置的节点对象 - * @return { Object } 返回形如{x:left,y:top}的一个key-value映射对象, 其中键x代表水平偏移距离, - * y代表垂直偏移距离。 - * - * @example - * ```javascript - * var location = UE.dom.domUtils.getXY( document.getElementById("test") ); - * //output: test的坐标为: 12, 24 - * console.log( 'test的坐标为: ', location.x, ',', location.y ); - * ``` - */ - getXY:function (element) { - var x = 0, y = 0; - while (element.offsetParent) { - y += element.offsetTop; - x += element.offsetLeft; - element = element.offsetParent; - } - return { 'x':x, 'y':y}; - }, - /** - * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数 - * @method on - * @param { Node } element 需要绑定事件的节点对象 - * @param { String } type 绑定的事件类型 - * @param { Function } handler 事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.on(document.body,"click",function(e){ - * //e为事件对象,this为被点击元素对戏那个 - * }); - * ``` - */ - - /** - * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数 - * @method on - * @param { Node } element 需要绑定事件的节点对象 - * @param { Array } type 绑定的事件类型数组 - * @param { Function } handler 事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.on(document.body,["click","mousedown"],function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - on:function (element, type, handler) { - - var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.addEventListener) { - element.addEventListener(type, handler, false); - } else { - if (!handler._d) { - handler._d = { - els : [] - }; - } - var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element); - if (!handler._d[key] || index == -1) { - if(index == -1){ - handler._d.els.push(element); - } - if(!handler._d[key]){ - handler._d[key] = function (evt) { - return handler.call(evt.srcElement, evt || window.event); - }; - } - - - element.attachEvent('on' + type, handler._d[key]); - } - } - } - element = null; - }, - /** - * 解除DOM事件绑定 - * @method un - * @param { Node } element 需要解除事件绑定的节点对象 - * @param { String } type 需要接触绑定的事件类型 - * @param { Function } handler 对应的事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.un(document.body,"click",function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - - /** - * 解除DOM事件绑定 - * @method un - * @param { Node } element 需要解除事件绑定的节点对象 - * @param { Array } type 需要接触绑定的事件类型数组 - * @param { Function } handler 对应的事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.un(document.body, ["click","mousedown"],function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - un:function (element, type, handler) { - var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.removeEventListener) { - element.removeEventListener(type, handler, false); - } else { - var key = type + handler.toString(); - try{ - element.detachEvent('on' + type, handler._d ? handler._d[key] : handler); - }catch(e){} - if (handler._d && handler._d[key]) { - var index = utils.indexOf(handler._d.els,element); - if(index!=-1){ - handler._d.els.splice(index,1); - } - handler._d.els.length == 0 && delete handler._d[key]; - } - } - } - }, - - /** - * 比较节点nodeA与节点nodeB是否具有相同的标签名、属性名以及属性值 - * @method isSameElement - * @param { Node } nodeA 需要比较的节点 - * @param { Node } nodeB 需要比较的节点 - * @return { Boolean } 两个节点是否具有相同的标签名、属性名以及属性值 - * @example - * ```html - * ssss - * bbbbb - * ssss - * bbbbb - * - * - * ``` - */ - isSameElement:function (nodeA, nodeB) { - if (nodeA.tagName != nodeB.tagName) { - return false; - } - var thisAttrs = nodeA.attributes, - otherAttrs = nodeB.attributes; - if (!ie && thisAttrs.length != otherAttrs.length) { - return false; - } - var attrA, attrB, al = 0, bl = 0; - for (var i = 0; attrA = thisAttrs[i++];) { - if (attrA.nodeName == 'style') { - if (attrA.specified) { - al++; - } - if (domUtils.isSameStyle(nodeA, nodeB)) { - continue; - } else { - return false; - } - } - if (ie) { - if (attrA.specified) { - al++; - attrB = otherAttrs.getNamedItem(attrA.nodeName); - } else { - continue; - } - } else { - attrB = nodeB.attributes[attrA.nodeName]; - } - if (!attrB.specified || attrA.nodeValue != attrB.nodeValue) { - return false; - } - } - // 有可能attrB的属性包含了attrA的属性之外还有自己的属性 - if (ie) { - for (i = 0; attrB = otherAttrs[i++];) { - if (attrB.specified) { - bl++; - } - } - if (al != bl) { - return false; - } - } - return true; - }, - - /** - * 判断节点nodeA与节点nodeB的元素的style属性是否一致 - * @method isSameStyle - * @param { Node } nodeA 需要比较的节点 - * @param { Node } nodeB 需要比较的节点 - * @return { Boolean } 两个节点是否具有相同的style属性值 - * @example - * ```html - * ssss - * bbbbb - * ssss - * bbbbb - * - * - * ``` - */ - isSameStyle:function (nodeA, nodeB) { - var styleA = nodeA.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'), - styleB = nodeB.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'); - if (browser.opera) { - styleA = nodeA.style; - styleB = nodeB.style; - if (styleA.length != styleB.length) - return false; - for (var p in styleA) { - if (/^(\d+|csstext)$/i.test(p)) { - continue; - } - if (styleA[p] != styleB[p]) { - return false; - } - } - return true; - } - if (!styleA || !styleB) { - return styleA == styleB; - } - styleA = styleA.split(';'); - styleB = styleB.split(';'); - if (styleA.length != styleB.length) { - return false; - } - for (var i = 0, ci; ci = styleA[i++];) { - if (utils.indexOf(styleB, ci) == -1) { - return false; - } - } - return true; - }, - /** - * 检查节点node是否为block元素 - * @method isBlockElm - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 是否是block元素节点 - * @warning 该方法的判断规则如下: 如果该元素原本是block元素, 则不论该元素当前的css样式是什么都会返回true; - * 否则,检测该元素的css样式, 如果该元素当前是block元素, 则返回true。 其余情况下都返回false。 - * @example - * ```html - * - * - *
    - * - * - * ``` - */ - isBlockElm:function (node) { - return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, 'display')]) && !dtd.$nonChild[node.tagName]; - }, - /** - * 检测node节点是否为body节点 - * @method isBody - * @param { Element } node 需要检测的dom元素 - * @return { Boolean } 给定的元素是否是body元素 - * @example - * ```javascript - * //output: true - * console.log( UE.dom.domUtils.isBody( document.body ) ); - * ``` - */ - isBody:function (node) { - return node && node.nodeType == 1 && node.tagName.toLowerCase() == 'body'; - }, - /** - * 以node节点为分界,将该节点的指定祖先节点parent拆分成两个独立的节点, - * 拆分形成的两个节点之间是node节点 - * @method breakParent - * @param { Node } node 作为分界的节点对象 - * @param { Node } parent 该节点必须是node节点的祖先节点, 且是block节点。 - * @return { Node } 给定的node分界节点 - * @example - * ```javascript - * - * var node = document.createElement("span"), - * wrapNode = document.createElement( "div" ), - * parent = document.createElement("p"); - * - * parent.appendChild( node ); - * wrapNode.appendChild( parent ); - * - * //拆分前 - * //output:

    - * console.log( wrapNode.innerHTML ); - * - * - * UE.dom.domUtils.breakParent( node, parent ); - * //拆分后 - * //output:

    - * console.log( wrapNode.innerHTML ); - * - * ``` - */ - breakParent:function (node, parent) { - var tmpNode, - parentClone = node, - clone = node, - leftNodes, - rightNodes; - do { - parentClone = parentClone.parentNode; - if (leftNodes) { - tmpNode = parentClone.cloneNode(false); - tmpNode.appendChild(leftNodes); - leftNodes = tmpNode; - tmpNode = parentClone.cloneNode(false); - tmpNode.appendChild(rightNodes); - rightNodes = tmpNode; - } else { - leftNodes = parentClone.cloneNode(false); - rightNodes = leftNodes.cloneNode(false); - } - while (tmpNode = clone.previousSibling) { - leftNodes.insertBefore(tmpNode, leftNodes.firstChild); - } - while (tmpNode = clone.nextSibling) { - rightNodes.appendChild(tmpNode); - } - clone = parentClone; - } while (parent !== parentClone); - tmpNode = parent.parentNode; - tmpNode.insertBefore(leftNodes, parent); - tmpNode.insertBefore(rightNodes, parent); - tmpNode.insertBefore(node, rightNodes); - domUtils.remove(parent); - return node; - }, - /** - * 检查节点node是否是空inline节点 - * @method isEmptyInlineElement - * @param { Node } node 需要检测的节点对象 - * @return { Number } 如果给定的节点是空的inline节点, 则返回1, 否则返回0。 - * @example - * ```html - * => 1 - * => 1 - * => 1 - * xx => 0 - * ``` - */ - isEmptyInlineElement:function (node) { - if (node.nodeType != 1 || !dtd.$removeEmpty[ node.tagName ]) { - return 0; - } - node = node.firstChild; - while (node) { - //如果是创建的bookmark就跳过 - if (domUtils.isBookmarkNode(node)) { - return 0; - } - if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) || - node.nodeType == 3 && !domUtils.isWhitespace(node) - ) { - return 0; - } - node = node.nextSibling; - } - return 1; - - }, - - /** - * 删除node节点下首尾两端的空白文本子节点 - * @method trimWhiteTextNode - * @param { Element } node 需要执行删除操作的元素对象 - * @example - * ```javascript - * var node = document.createElement("div"); - * - * node.appendChild( document.createTextNode( "" ) ); - * - * node.appendChild( document.createElement("div") ); - * - * node.appendChild( document.createTextNode( "" ) ); - * - * //3 - * console.log( node.childNodes.length ); - * - * UE.dom.domUtils.trimWhiteTextNode( node ); - * - * //1 - * console.log( node.childNodes.length ); - * ``` - */ - trimWhiteTextNode:function (node) { - function remove(dir) { - var child; - while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) { - node.removeChild(child); - } - } - remove('firstChild'); - remove('lastChild'); - }, - - /** - * 合并node节点下相同的子节点 - * @name mergeChild - * @desc - * UE.dom.domUtils.mergeChild(node,tagName) //tagName要合并的子节点的标签 - * @example - *

    xxaaxx

    - * ==> UE.dom.domUtils.mergeChild(node,'span') - *

    xxaaxx

    - */ - mergeChild:function (node, tagName, attrs) { - var list = domUtils.getElementsByTagName(node, node.tagName.toLowerCase()); - for (var i = 0, ci; ci = list[i++];) { - if (!ci.parentNode || domUtils.isBookmarkNode(ci)) { - continue; - } - //span单独处理 - if (ci.tagName.toLowerCase() == 'span') { - if (node === ci.parentNode) { - domUtils.trimWhiteTextNode(node); - if (node.childNodes.length == 1) { - node.style.cssText = ci.style.cssText + ";" + node.style.cssText; - domUtils.remove(ci, true); - continue; - } - } - ci.style.cssText = node.style.cssText + ';' + ci.style.cssText; - if (attrs) { - var style = attrs.style; - if (style) { - style = style.split(';'); - for (var j = 0, s; s = style[j++];) { - ci.style[utils.cssStyleToDomStyle(s.split(':')[0])] = s.split(':')[1]; - } - } - } - if (domUtils.isSameStyle(ci, node)) { - domUtils.remove(ci, true); - } - continue; - } - if (domUtils.isSameElement(node, ci)) { - domUtils.remove(ci, true); - } - } - }, - - /** - * 原生方法getElementsByTagName的封装 - * @method getElementsByTagName - * @param { Node } node 目标节点对象 - * @param { String } tagName 需要查找的节点的tagName, 多个tagName以空格分割 - * @return { Array } 符合条件的节点集合 - */ - getElementsByTagName:function (node, name,filter) { - if(filter && utils.isString(filter)){ - var className = filter; - filter = function(node){return domUtils.hasClass(node,className)} - } - name = utils.trim(name).replace(/[ ]{2,}/g,' ').split(' '); - var arr = []; - for(var n = 0,ni;ni=name[n++];){ - var list = node.getElementsByTagName(ni); - for (var i = 0, ci; ci = list[i++];) { - if(!filter || filter(ci)) - arr.push(ci); - } - } - - return arr; - }, - /** - * 将节点node提取到父节点上 - * @method mergeToParent - * @param { Element } node 需要提取的元素对象 - * @example - * ```html - *
    - *
    - * - *
    - *
    - * - * - * ``` - */ - mergeToParent:function (node) { - var parent = node.parentNode; - while (parent && dtd.$removeEmpty[parent.tagName]) { - if (parent.tagName == node.tagName || parent.tagName == 'A') {//针对a标签单独处理 - domUtils.trimWhiteTextNode(parent); - //span需要特殊处理 不处理这样的情况 xxxxxxxxx - if (parent.tagName == 'SPAN' && !domUtils.isSameStyle(parent, node) - || (parent.tagName == 'A' && node.tagName == 'SPAN')) { - if (parent.childNodes.length > 1 || parent !== node.parentNode) { - node.style.cssText = parent.style.cssText + ";" + node.style.cssText; - parent = parent.parentNode; - continue; - } else { - parent.style.cssText += ";" + node.style.cssText; - //trace:952 a标签要保持下划线 - if (parent.tagName == 'A') { - parent.style.textDecoration = 'underline'; - } - } - } - if (parent.tagName != 'A') { - parent === node.parentNode && domUtils.remove(node, true); - break; - } - } - parent = parent.parentNode; - } - }, - /** - * 合并节点node的左右兄弟节点 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - - /** - * 合并节点node的左右兄弟节点, 可以根据给定的条件选择是否忽略合并左节点。 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @param { Boolean } ignorePre 是否忽略合并左节点 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - - /** - * 合并节点node的左右兄弟节点,可以根据给定的条件选择是否忽略合并左右节点。 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @param { Boolean } ignorePre 是否忽略合并左节点 - * @param { Boolean } ignoreNext 是否忽略合并右节点 - * @remind 如果同时忽略左右节点, 则该操作什么也不会做 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - mergeSibling:function (node, ignorePre, ignoreNext) { - function merge(rtl, start, node) { - var next; - if ((next = node[rtl]) && !domUtils.isBookmarkNode(next) && next.nodeType == 1 && domUtils.isSameElement(node, next)) { - while (next.firstChild) { - if (start == 'firstChild') { - node.insertBefore(next.lastChild, node.firstChild); - } else { - node.appendChild(next.firstChild); - } - } - domUtils.remove(next); - } - } - !ignorePre && merge('previousSibling', 'firstChild', node); - !ignoreNext && merge('nextSibling', 'lastChild', node); - }, - - /** - * 设置节点node及其子节点不会被选中 - * @method unSelectable - * @param { Element } node 需要执行操作的dom元素 - * @remind 执行该操作后的节点, 将不能被鼠标选中 - * @example - * ```javascript - * UE.dom.domUtils.unSelectable( document.body ); - * ``` - */ - unSelectable:ie && browser.ie9below || browser.opera ? function (node) { - //for ie9 - node.onselectstart = function () { - return false; - }; - node.onclick = node.onkeyup = node.onkeydown = function () { - return false; - }; - node.unselectable = 'on'; - node.setAttribute("unselectable", "on"); - for (var i = 0, ci; ci = node.all[i++];) { - switch (ci.tagName.toLowerCase()) { - case 'iframe' : - case 'textarea' : - case 'input' : - case 'select' : - break; - default : - ci.unselectable = 'on'; - node.setAttribute("unselectable", "on"); - } - } - } : function (node) { - node.style.MozUserSelect = - node.style.webkitUserSelect = - node.style.msUserSelect = - node.style.KhtmlUserSelect = 'none'; - }, - /** - * 删除节点node上的指定属性名称的属性 - * @method removeAttributes - * @param { Node } node 需要删除属性的节点对象 - * @param { String } attrNames 可以是空格隔开的多个属性名称,该操作将会依次删除相应的属性 - * @example - * ```html - *
    - * xxxxx - *
    - * - * - * ``` - */ - - /** - * 删除节点node上的指定属性名称的属性 - * @method removeAttributes - * @param { Node } node 需要删除属性的节点对象 - * @param { Array } attrNames 需要删除的属性名数组 - * @example - * ```html - *
    - * xxxxx - *
    - * - * - * ``` - */ - removeAttributes:function (node, attrNames) { - attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g,' ').split(' '); - for (var i = 0, ci; ci = attrNames[i++];) { - ci = attrFix[ci] || ci; - switch (ci) { - case 'className': - node[ci] = ''; - break; - case 'style': - node.style.cssText = ''; - var val = node.getAttributeNode('style'); - !browser.ie && val && node.removeAttributeNode(val); - } - node.removeAttribute(ci); - } - }, - /** - * 在doc下创建一个标签名为tag,属性为attrs的元素 - * @method createElement - * @param { DomDocument } doc 新创建的元素属于该document节点创建 - * @param { String } tagName 需要创建的元素的标签名 - * @param { Object } attrs 新创建的元素的属性key-value集合 - * @return { Element } 新创建的元素对象 - * @example - * ```javascript - * var ele = UE.dom.domUtils.createElement( document, 'div', { - * id: 'test' - * } ); - * - * //output: DIV - * console.log( ele.tagName ); - * - * //output: test - * console.log( ele.id ); - * - * ``` - */ - createElement:function (doc, tag, attrs) { - return domUtils.setAttributes(doc.createElement(tag), attrs) - }, - /** - * 为节点node添加属性attrs,attrs为属性键值对 - * @method setAttributes - * @param { Element } node 需要设置属性的元素对象 - * @param { Object } attrs 需要设置的属性名-值对 - * @return { Element } 设置属性的元素对象 - * @example - * ```html - * - * - * - * - */ - setAttributes:function (node, attrs) { - for (var attr in attrs) { - if(attrs.hasOwnProperty(attr)){ - var value = attrs[attr]; - switch (attr) { - case 'class': - //ie下要这样赋值,setAttribute不起作用 - node.className = value; - break; - case 'style' : - node.style.cssText = node.style.cssText + ";" + value; - break; - case 'innerHTML': - node[attr] = value; - break; - case 'value': - node.value = value; - break; - default: - node.setAttribute(attrFix[attr] || attr, value); - } - } - } - return node; - }, - - /** - * 获取元素element经过计算后的样式值 - * @method getComputedStyle - * @param { Element } element 需要获取样式的元素对象 - * @param { String } styleName 需要获取的样式名 - * @return { String } 获取到的样式值 - * @example - * ```html - * - * - * - * - * - * ``` - */ - getComputedStyle:function (element, styleName) { - //一下的属性单独处理 - var pros = 'width height top left'; - - if(pros.indexOf(styleName) > -1){ - return element['offset' + styleName.replace(/^\w/,function(s){return s.toUpperCase()})] + 'px'; - } - //忽略文本节点 - if (element.nodeType == 3) { - element = element.parentNode; - } - //ie下font-size若body下定义了font-size,则从currentStyle里会取到这个font-size. 取不到实际值,故此修改. - if (browser.ie && browser.version < 9 && styleName == 'font-size' && !element.style.fontSize && - !dtd.$empty[element.tagName] && !dtd.$nonChild[element.tagName]) { - var span = element.ownerDocument.createElement('span'); - span.style.cssText = 'padding:0;border:0;font-family:simsun;'; - span.innerHTML = '.'; - element.appendChild(span); - var result = span.offsetHeight; - element.removeChild(span); - span = null; - return result + 'px'; - } - try { - var value = domUtils.getStyle(element, styleName) || - (window.getComputedStyle ? domUtils.getWindow(element).getComputedStyle(element, '').getPropertyValue(styleName) : - ( element.currentStyle || element.style )[utils.cssStyleToDomStyle(styleName)]); - - } catch (e) { - return ""; - } - return utils.transUnitToPx(utils.fixColor(styleName, value)); - }, - /** - * 删除元素element指定的className - * @method removeClasses - * @param { Element } ele 需要删除class的元素节点 - * @param { String } classNames 需要删除的className, 多个className之间以空格分开 - * @example - * ```html - * xxx - * - * - * ``` - */ - - /** - * 删除元素element指定的className - * @method removeClasses - * @param { Element } ele 需要删除class的元素节点 - * @param { Array } classNames 需要删除的className数组 - * @example - * ```html - * xxx - * - * - * ``` - */ - removeClasses:function (elm, classNames) { - classNames = utils.isArray(classNames) ? classNames : - utils.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'') - } - cls = utils.trim(cls).replace(/[ ]{2,}/g,' '); - if(cls){ - elm.className = cls; - }else{ - domUtils.removeAttributes(elm,['class']); - } - }, - /** - * 给元素element添加className - * @method addClass - * @param { Node } ele 需要增加className的元素 - * @param { String } classNames 需要添加的className, 多个className之间以空格分割 - * @remind 相同的类名不会被重复添加 - * @example - * ```html - * - * - * - * ``` - */ - - /** - * 判断元素element是否包含给定的样式类名className - * @method hasClass - * @param { Node } ele 需要检测的元素 - * @param { Array } classNames 需要检测的className数组 - * @return { Boolean } 元素是否包含所有给定的className - * @example - * ```html - * - * - * - * ``` - */ - hasClass:function (element, className) { - if(utils.isRegExp(className)){ - return className.test(element.className) - } - className = utils.trim(className).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = element.className;ci=className[i++];){ - if(!new RegExp('\\b' + ci + '\\b','i').test(cls)){ - return false; - } - } - return i - 1 == className.length; - }, - - /** - * 阻止事件默认行为 - * @method preventDefault - * @param { Event } evt 需要阻止默认行为的事件对象 - * @example - * ```javascript - * UE.dom.domUtils.preventDefault( evt ); - * ``` - */ - preventDefault:function (evt) { - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - }, - /** - * 删除元素element指定的样式 - * @method removeStyle - * @param { Element } element 需要删除样式的元素 - * @param { String } styleName 需要删除的样式名 - * @example - * ```html - * - * - * - * ``` - */ - removeStyle:function (element, name) { - if(browser.ie ){ - //针对color先单独处理一下 - if(name == 'color'){ - name = '(^|;)' + name; - } - element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?','ig'),'') - }else{ - if (element.style.removeProperty) { - element.style.removeProperty (name); - }else { - element.style.removeAttribute (utils.cssStyleToDomStyle(name)); - } - } - - - if (!element.style.cssText) { - domUtils.removeAttributes(element, ['style']); - } - }, - /** - * 获取元素element的style属性的指定值 - * @method getStyle - * @param { Element } element 需要获取属性值的元素 - * @param { String } styleName 需要获取的style的名称 - * @warning 该方法仅获取元素style属性中所标明的值 - * @return { String } 该元素包含指定的style属性值 - * @example - * ```html - *
    - * - * - * ``` - */ - getStyle:function (element, name) { - var value = element.style[ utils.cssStyleToDomStyle(name) ]; - return utils.fixColor(name, value); - }, - /** - * 为元素element设置样式属性值 - * @method setStyle - * @param { Element } element 需要设置样式的元素 - * @param { String } styleName 样式名 - * @param { String } styleValue 样式值 - * @example - * ```html - *
    - * - * - * ``` - */ - setStyle:function (element, name, value) { - element.style[utils.cssStyleToDomStyle(name)] = value; - if(!utils.trim(element.style.cssText)){ - this.removeAttributes(element,'style') - } - }, - /** - * 为元素element设置多个样式属性值 - * @method setStyles - * @param { Element } element 需要设置样式的元素 - * @param { Object } styles 样式名值对 - * @example - * ```html - *
    - * - * - * ``` - */ - setStyles:function (element, styles) { - for (var name in styles) { - if (styles.hasOwnProperty(name)) { - domUtils.setStyle(element, name, styles[name]); - } - } - }, - /** - * 删除_moz_dirty属性 - * @private - * @method removeDirtyAttr - */ - removeDirtyAttr:function (node) { - for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) { - ci.removeAttribute('_moz_dirty'); - } - node.removeAttribute('_moz_dirty'); - }, - /** - * 获取子节点的数量 - * @method getChildCount - * @param { Element } node 需要检测的元素 - * @return { Number } 给定的node元素的子节点数量 - * @example - * ```html - *
    - * - *
    - * - * - * ``` - */ - - /** - * 根据给定的过滤规则, 获取符合条件的子节点的数量 - * @method getChildCount - * @param { Element } node 需要检测的元素 - * @param { Function } fn 过滤器, 要求对符合条件的子节点返回true, 反之则要求返回false - * @return { Number } 符合过滤条件的node元素的子节点数量 - * @example - * ```html - *
    - * - *
    - * - * - * ``` - */ - getChildCount:function (node, fn) { - var count = 0, first = node.firstChild; - fn = fn || function () { - return 1; - }; - while (first) { - if (fn(first)) { - count++; - } - first = first.nextSibling; - } - return count; - }, - - /** - * 判断给定节点是否为空节点 - * @method isEmptyNode - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 节点是否为空 - * @example - * ```javascript - * UE.dom.domUtils.isEmptyNode( document.body ); - * ``` - */ - isEmptyNode:function (node) { - return !node.firstChild || domUtils.getChildCount(node, function (node) { - return !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node) - }) == 0 - }, - clearSelectedArr:function (nodes) { - var node; - while (node = nodes.pop()) { - domUtils.removeAttributes(node, ['class']); - } - }, - /** - * 将显示区域滚动到指定节点的位置 - * @method scrollToView - * @param {Node} node 节点 - * @param {window} win window对象 - * @param {Number} offsetTop 距离上方的偏移量 - */ - scrollToView:function (node, win, offsetTop) { - var getViewPaneSize = function () { - var doc = win.document, - mode = doc.compatMode == 'CSS1Compat'; - return { - width:( mode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0, - height:( mode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0 - }; - }, - getScrollPosition = function (win) { - if ('pageXOffset' in win) { - return { - x:win.pageXOffset || 0, - y:win.pageYOffset || 0 - }; - } - else { - var doc = win.document; - return { - x:doc.documentElement.scrollLeft || doc.body.scrollLeft || 0, - y:doc.documentElement.scrollTop || doc.body.scrollTop || 0 - }; - } - }; - var winHeight = getViewPaneSize().height, offset = winHeight * -1 + offsetTop; - offset += (node.offsetHeight || 0); - var elementPosition = domUtils.getXY(node); - offset += elementPosition.y; - var currentScroll = getScrollPosition(win).y; - // offset += 50; - if (offset > currentScroll || offset < currentScroll - winHeight) { - win.scrollTo(0, offset + (offset < 0 ? -20 : 20)); - } - }, - /** - * 判断给定节点是否为br - * @method isBr - * @param { Node } node 需要判断的节点对象 - * @return { Boolean } 给定的节点是否是br节点 - */ - isBr:function (node) { - return node.nodeType == 1 && node.tagName == 'BR'; - }, - /** - * 判断给定的节点是否是一个“填充”节点 - * @private - * @method isFillChar - * @param { Node } node 需要判断的节点 - * @param { Boolean } isInStart 是否从节点内容的开始位置匹配 - * @returns { Boolean } 节点是否是填充节点 - */ - isFillChar:function (node,isInStart) { - if(node.nodeType != 3) - return false; - var text = node.nodeValue; - if(isInStart){ - return new RegExp('^' + domUtils.fillChar).test(text) - } - return !text.replace(new RegExp(domUtils.fillChar,'g'), '').length - }, - isStartInblock:function (range) { - var tmpRange = range.cloneRange(), - flag = 0, - start = tmpRange.startContainer, - tmp; - if(start.nodeType == 1 && start.childNodes[tmpRange.startOffset]){ - start = start.childNodes[tmpRange.startOffset]; - var pre = start.previousSibling; - while(pre && domUtils.isFillChar(pre)){ - start = pre; - pre = pre.previousSibling; - } - } - if(this.isFillChar(start,true) && tmpRange.startOffset == 1){ - tmpRange.setStartBefore(start); - start = tmpRange.startContainer; - } - - while (start && domUtils.isFillChar(start)) { - tmp = start; - start = start.previousSibling - } - if (tmp) { - tmpRange.setStartBefore(tmp); - start = tmpRange.startContainer; - } - if (start.nodeType == 1 && domUtils.isEmptyNode(start) && tmpRange.startOffset == 1) { - tmpRange.setStart(start, 0).collapse(true); - } - while (!tmpRange.startOffset) { - start = tmpRange.startContainer; - if (domUtils.isBlockElm(start) || domUtils.isBody(start)) { - flag = 1; - break; - } - var pre = tmpRange.startContainer.previousSibling, - tmpNode; - if (!pre) { - tmpRange.setStartBefore(tmpRange.startContainer); - } else { - while (pre && domUtils.isFillChar(pre)) { - tmpNode = pre; - pre = pre.previousSibling; - } - if (tmpNode) { - tmpRange.setStartBefore(tmpNode); - } else { - tmpRange.setStartBefore(tmpRange.startContainer); - } - } - } - return flag && !domUtils.isBody(tmpRange.startContainer) ? 1 : 0; - }, - - /** - * 判断给定的元素是否是一个空元素 - * @method isEmptyBlock - * @param { Element } node 需要判断的元素 - * @return { Boolean } 是否是空元素 - * @example - * ```html - *
    - * - * - * ``` - */ - - /** - * 根据指定的判断规则判断给定的元素是否是一个空元素 - * @method isEmptyBlock - * @param { Element } node 需要判断的元素 - * @param { RegExp } reg 对内容执行判断的正则表达式对象 - * @return { Boolean } 是否是空元素 - */ - isEmptyBlock:function (node,reg) { - // HaoChuan9421 - if(!node){ - return; - } - if(node.nodeType != 1) - return 0; - reg = reg || new RegExp('[ \xa0\t\r\n' + domUtils.fillChar + ']', 'g'); - - if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) { - return 0; - } - for (var n in dtd.$isNotEmpty) { - if (node.getElementsByTagName(n).length) { - return 0; - } - } - return 1; - }, - - /** - * 移动元素使得该元素的位置移动指定的偏移量的距离 - * @method setViewportOffset - * @param { Element } element 需要设置偏移量的元素 - * @param { Object } offset 偏移量, 形如{ left: 100, top: 50 }的一个键值对, 表示该元素将在 - * 现有的位置上向水平方向偏移offset.left的距离, 在竖直方向上偏移 - * offset.top的距离 - * @example - * ```html - *
    - * - * - * ``` - */ - setViewportOffset:function (element, offset) { - var left = parseInt(element.style.left) | 0; - var top = parseInt(element.style.top) | 0; - var rect = element.getBoundingClientRect(); - var offsetLeft = offset.left - rect.left; - var offsetTop = offset.top - rect.top; - if (offsetLeft) { - element.style.left = left + offsetLeft + 'px'; - } - if (offsetTop) { - element.style.top = top + offsetTop + 'px'; - } - }, - - /** - * 用“填充字符”填充节点 - * @method fillNode - * @private - * @param { DomDocument } doc 填充的节点所在的docment对象 - * @param { Node } node 需要填充的节点对象 - * @example - * ```html - *
    - * - * - * ``` - */ - fillNode:function (doc, node) { - var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br'); - node.innerHTML = ''; - node.appendChild(tmpNode); - }, - - /** - * 把节点src的所有子节点追加到另一个节点tag上去 - * @method moveChild - * @param { Node } src 源节点, 该节点下的所有子节点将被移除 - * @param { Node } tag 目标节点, 从源节点移除的子节点将被追加到该节点下 - * @example - * ```html - *
    - * - *
    - *
    - *
    - *
    - * - * - * ``` - */ - - /** - * 把节点src的所有子节点移动到另一个节点tag上去, 可以通过dir参数控制附加的行为是“追加”还是“插入顶部” - * @method moveChild - * @param { Node } src 源节点, 该节点下的所有子节点将被移除 - * @param { Node } tag 目标节点, 从源节点移除的子节点将被附加到该节点下 - * @param { Boolean } dir 附加方式, 如果为true, 则附加进去的节点将被放到目标节点的顶部, 反之,则放到末尾 - * @example - * ```html - *
    - * - *
    - *
    - *
    - *
    - * - * - * ``` - */ - moveChild:function (src, tag, dir) { - while (src.firstChild) { - if (dir && tag.firstChild) { - tag.insertBefore(src.lastChild, tag.firstChild); - } else { - tag.appendChild(src.firstChild); - } - } - }, - - /** - * 判断节点的标签上是否不存在任何属性 - * @method hasNoAttributes - * @private - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 节点是否不包含任何属性 - * @example - * ```html - *
    xxxx
    - * - * - * ``` - */ - hasNoAttributes:function (node) { - return browser.ie ? /^<\w+\s*?>/.test(node.outerHTML) : node.attributes.length == 0; - }, - - /** - * 检测节点是否是UEditor所使用的辅助节点 - * @method isCustomeNode - * @private - * @param { Node } node 需要检测的节点 - * @remind 辅助节点是指编辑器要完成工作临时添加的节点, 在输出的时候将会从编辑器内移除, 不会影响最终的结果。 - * @return { Boolean } 给定的节点是否是一个辅助节点 - */ - isCustomeNode:function (node) { - return node.nodeType == 1 && node.getAttribute('_ue_custom_node_'); - }, - - /** - * 检测节点的标签是否是给定的标签 - * @method isTagNode - * @param { Node } node 需要检测的节点对象 - * @param { String } tagName 标签 - * @return { Boolean } 节点的标签是否是给定的标签 - * @example - * ```html - *
    - * - * - * ``` - */ - isTagNode:function (node, tagNames) { - return node.nodeType == 1 && new RegExp('\\b' + node.tagName + '\\b','i').test(tagNames) - }, - - /** - * 给定一个节点数组,在通过指定的过滤器过滤后, 获取其中满足过滤条件的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false - * @return { Node | NULL } 如果找到符合过滤条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: null - * console.log( UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() !== 'div'; - * } ) ); - * ``` - */ - - /** - * 给定一个节点数组nodeList和一组标签名tagNames, 获取其中能够匹配标签名的节点集合中的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { String } tagNames 需要匹配的标签名, 多个标签名之间用空格分割 - * @return { Node | NULL } 如果找到标签名匹配的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: null - * console.log( UE.dom.domUtils.filterNodeList( divNodes, 'a span' ) ); - * ``` - */ - - /** - * 给定一个节点数组,在通过指定的过滤器过滤后, 如果参数forAll为true, 则会返回所有满足过滤 - * 条件的节点集合, 否则, 返回满足条件的节点集合中的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false - * @param { Boolean } forAll 是否返回整个节点数组, 如果该参数为false, 则返回节点集合中的第一个节点 - * @return { Array | Node | NULL } 如果找到符合过滤条件的节点, 则根据参数forAll的值决定返回满足 - * 过滤条件的节点数组或第一个节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: 3(假定有3个div) - * console.log( divNodes.length ); - * - * var nodes = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() === 'div'; - * }, true ); - * - * //output: 3 - * console.log( nodes.length ); - * - * var node = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() === 'div'; - * }, false ); - * - * //output: div - * console.log( node.nodeName ); - * ``` - */ - filterNodeList : function(nodelist,filter,forAll){ - var results = []; - if(!utils .isFunction(filter)){ - var str = filter; - filter = function(n){ - return utils.indexOf(utils.isArray(str) ? str:str.split(' '), n.tagName.toLowerCase()) != -1 - }; - } - utils.each(nodelist,function(n){ - filter(n) && results.push(n) - }); - return results.length == 0 ? null : results.length == 1 || !forAll ? results[0] : results - }, - - /** - * 查询给定的range选区是否在给定的node节点内,且在该节点的最末尾 - * @method isInNodeEndBoundary - * @param { UE.dom.Range } rng 需要判断的range对象, 该对象的startContainer不能为NULL - * @param node 需要检测的节点对象 - * @return { Number } 如果给定的选取range对象是在node内部的最末端, 则返回1, 否则返回0 - */ - isInNodeEndBoundary : function (rng,node){ - var start = rng.startContainer; - if(start.nodeType == 3 && rng.startOffset != start.nodeValue.length){ - return 0; - } - if(start.nodeType == 1 && rng.startOffset != start.childNodes.length){ - return 0; - } - while(start !== node){ - if(start.nextSibling){ - return 0 - }; - start = start.parentNode; - } - return 1; - }, - isBoundaryNode : function (node,dir){ - var tmp; - while(!domUtils.isBody(node)){ - tmp = node; - node = node.parentNode; - if(tmp !== node[dir]){ - return false; - } - } - return true; - }, - fillHtml : browser.ie11below ? ' ' : '
    ' -}; -var fillCharReg = new RegExp(domUtils.fillChar, 'g'); - -// core/Range.js -/** - * Range封装 - * @file - * @module UE.dom - * @class Range - * @since 1.2.6.1 - */ - -/** - * dom操作封装 - * @unfile - * @module UE.dom - */ - -/** - * Range实现类,本类是UEditor底层核心类,封装不同浏览器之间的Range操作。 - * @unfile - * @module UE.dom - * @class Range - */ - - -(function () { - var guid = 0, - fillChar = domUtils.fillChar, - fillData; - - /** - * 更新range的collapse状态 - * @param {Range} range range对象 - */ - function updateCollapse(range) { - range.collapsed = - range.startContainer && range.endContainer && - range.startContainer === range.endContainer && - range.startOffset == range.endOffset; - } - - function selectOneNode(rng){ - return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset == 1 - } - function setEndPoint(toStart, node, offset, range) { - //如果node是自闭合标签要处理 - if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) { - offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1); - node = node.parentNode; - } - if (toStart) { - range.startContainer = node; - range.startOffset = offset; - if (!range.endContainer) { - range.collapse(true); - } - } else { - range.endContainer = node; - range.endOffset = offset; - if (!range.startContainer) { - range.collapse(false); - } - } - updateCollapse(range); - return range; - } - - function execContentsAction(range, action) { - //调整边界 - //range.includeBookmark(); - var start = range.startContainer, - end = range.endContainer, - startOffset = range.startOffset, - endOffset = range.endOffset, - doc = range.document, - frag = doc.createDocumentFragment(), - tmpStart, tmpEnd; - if (start.nodeType == 1) { - start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode(''))); - } - if (end.nodeType == 1) { - end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode(''))); - } - if (start === end && start.nodeType == 3) { - frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset))); - //is not clone - if (action) { - start.deleteData(startOffset, endOffset - startOffset); - range.collapse(true); - } - return frag; - } - var current, currentLevel, clone = frag, - startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true); - for (var i = 0; startParents[i] == endParents[i];) { - i++; - } - for (var j = i, si; si = startParents[j]; j++) { - current = si.nextSibling; - if (si == start) { - if (!tmpStart) { - if (range.startContainer.nodeType == 3) { - clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset))); - //is not clone - if (action) { - start.deleteData(startOffset, start.nodeValue.length - startOffset); - } - } else { - clone.appendChild(!action ? start.cloneNode(true) : start); - } - } - } else { - currentLevel = si.cloneNode(false); - clone.appendChild(currentLevel); - } - while (current) { - if (current === end || current === endParents[j]) { - break; - } - si = current.nextSibling; - clone.appendChild(!action ? current.cloneNode(true) : current); - current = si; - } - clone = currentLevel; - } - clone = frag; - if (!startParents[i]) { - clone.appendChild(startParents[i - 1].cloneNode(false)); - clone = clone.firstChild; - } - for (var j = i, ei; ei = endParents[j]; j++) { - current = ei.previousSibling; - if (ei == end) { - if (!tmpEnd && range.endContainer.nodeType == 3) { - clone.appendChild(doc.createTextNode(end.substringData(0, endOffset))); - //is not clone - if (action) { - end.deleteData(0, endOffset); - } - } - } else { - currentLevel = ei.cloneNode(false); - clone.appendChild(currentLevel); - } - //如果两端同级,右边第一次已经被开始做了 - if (j != i || !startParents[i]) { - while (current) { - if (current === start) { - break; - } - ei = current.previousSibling; - clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild); - current = ei; - } - } - clone = currentLevel; - } - if (action) { - range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] : endParents[i]).collapse(true); - } - tmpStart && domUtils.remove(tmpStart); - tmpEnd && domUtils.remove(tmpEnd); - return frag; - } - - /** - * 创建一个跟document绑定的空的Range实例 - * @constructor - * @param { Document } document 新建的选区所属的文档对象 - */ - - /** - * @property { Node } startContainer 当前Range的开始边界的容器节点, 可以是一个元素节点或者是文本节点 - */ - - /** - * @property { Node } startOffset 当前Range的开始边界容器节点的偏移量, 如果是元素节点, - * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符 - */ - - /** - * @property { Node } endContainer 当前Range的结束边界的容器节点, 可以是一个元素节点或者是文本节点 - */ - - /** - * @property { Node } endOffset 当前Range的结束边界容器节点的偏移量, 如果是元素节点, - * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符 - */ - - /** - * @property { Boolean } collapsed 当前Range是否闭合 - * @default true - * @remind Range是闭合的时候, startContainer === endContainer && startOffset === endOffset - */ - - /** - * @property { Document } document 当前Range所属的Document对象 - * @remind 不同range的的document属性可以是不同的 - */ - var Range = dom.Range = function (document) { - var me = this; - me.startContainer = - me.startOffset = - me.endContainer = - me.endOffset = null; - me.document = document; - me.collapsed = true; - }; - - /** - * 删除fillData - * @param doc - * @param excludeNode - */ - function removeFillData(doc, excludeNode) { - try { - if (fillData && domUtils.inDoc(fillData, doc)) { - if (!fillData.nodeValue.replace(fillCharReg, '').length) { - var tmpNode = fillData.parentNode; - domUtils.remove(fillData); - while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) && - //safari的contains有bug - (browser.safari ? !(domUtils.getPosition(tmpNode,excludeNode) & domUtils.POSITION_CONTAINS) : !tmpNode.contains(excludeNode)) - ) { - fillData = tmpNode.parentNode; - domUtils.remove(tmpNode); - tmpNode = fillData; - } - } else { - fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, ''); - } - } - } catch (e) { - } - } - - /** - * @param node - * @param dir - */ - function mergeSibling(node, dir) { - var tmpNode; - node = node[dir]; - while (node && domUtils.isFillChar(node)) { - tmpNode = node[dir]; - domUtils.remove(node); - node = tmpNode; - } - } - - Range.prototype = { - - /** - * 克隆选区的内容到一个DocumentFragment里 - * @method cloneContents - * @return { DocumentFragment | NULL } 如果选区是闭合的将返回null, 否则, 返回包含所clone内容的DocumentFragment元素 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - * ``` - */ - cloneContents:function () { - return this.collapsed ? null : execContentsAction(this, 0); - }, - - /** - * 删除当前选区范围中的所有内容 - * @method deleteContents - * @remind 执行完该操作后, 当前Range对象变成了闭合状态 - * @return { UE.dom.Range } 当前操作的Range对象 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - * ``` - */ - deleteContents:function () { - var txt; - if (!this.collapsed) { - execContentsAction(this, 1); - } - if (browser.webkit) { - txt = this.startContainer; - if (txt.nodeType == 3 && !txt.nodeValue.length) { - this.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - } - return this; - }, - - /** - * 将当前选区的内容提取到一个DocumentFragment里 - * @method extractContents - * @remind 执行该操作后, 选区将变成闭合状态 - * @warning 执行该操作后, 原来选区所选中的内容将从dom树上剥离出来 - * @return { DocumentFragment } 返回包含所提取内容的DocumentFragment对象 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - */ - extractContents:function () { - return this.collapsed ? null : execContentsAction(this, 2); - }, - - /** - * 设置Range的开始容器节点和偏移量 - * @method setStart - * @remind 如果给定的节点是元素节点,那么offset指的是其子元素中索引为offset的元素, - * 如果是文本节点,那么offset指的是其文本内容的第offset个字符 - * @remind 如果提供的容器节点是一个不能包含子元素的节点, 则该选区的开始容器将被设置 - * 为该节点的父节点, 此时, 其距离开始容器的偏移量也变成了该节点在其父节点 - * 中的索引 - * @param { Node } node 将被设为当前选区开始边界容器的节点对象 - * @param { int } offset 选区的开始位置偏移量 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxxxxxxxxxx[xxx] - * - * - * ``` - * @example - * ```html - * - * xxx[xx]x - * - * - * ``` - */ - setStart:function (node, offset) { - return setEndPoint(true, node, offset, this); - }, - - /** - * 设置Range的结束容器和偏移量 - * @method setEnd - * @param { Node } node 作为当前选区结束边界容器的节点对象 - * @param { int } offset 结束边界的偏移量 - * @see UE.dom.Range:setStart(Node,int) - * @return { UE.dom.Range } 当前range对象 - */ - setEnd:function (node, offset) { - return setEndPoint(false, node, offset, this); - }, - - /** - * 将Range开始位置设置到node节点之后 - * @method setStartAfter - * @remind 该操作将会把给定节点的父节点作为range的开始容器, 且偏移量是该节点在其父节点中的位置索引+1 - * @param { Node } node 选区的开始边界将紧接着该节点之后 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxxxx[xxxx] - * - * - * ``` - */ - setStartAfter:function (node) { - return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1); - }, - - /** - * 将Range开始位置设置到node节点之前 - * @method setStartBefore - * @remind 该操作将会把给定节点的父节点作为range的开始容器, 且偏移量是该节点在其父节点中的位置索引 - * @param { Node } node 新的选区开始位置在该节点之前 - * @see UE.dom.Range:setStartAfter(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setStartBefore:function (node) { - return this.setStart(node.parentNode, domUtils.getNodeIndex(node)); - }, - - /** - * 将Range结束位置设置到node节点之后 - * @method setEndAfter - * @remind 该操作将会把给定节点的父节点作为range的结束容器, 且偏移量是该节点在其父节点中的位置索引+1 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartAfter(Node) - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * [xxxxxxx]xxxx - * - * - * ``` - */ - setEndAfter:function (node) { - return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1); - }, - - /** - * 将Range结束位置设置到node节点之前 - * @method setEndBefore - * @remind 该操作将会把给定节点的父节点作为range的结束容器, 且偏移量是该节点在其父节点中的位置索引 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setEndAfter(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndBefore:function (node) { - return this.setEnd(node.parentNode, domUtils.getNodeIndex(node)); - }, - - /** - * 设置Range的开始位置到node节点内的第一个子节点之前 - * @method setStartAtFirst - * @remind 选区的开始容器将变成给定的节点, 且偏移量为0 - * @remind 如果给定的节点是元素节点, 则该节点必须是允许包含子节点的元素。 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartBefore(Node) - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - setStartAtFirst:function (node) { - return this.setStart(node, 0); - }, - - /** - * 设置Range的开始位置到node节点内的最后一个节点之后 - * @method setStartAtLast - * @remind 选区的开始容器将变成给定的节点, 且偏移量为该节点的子节点数 - * @remind 如果给定的节点是元素节点, 则该节点必须是允许包含子节点的元素。 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setStartAtLast:function (node) { - return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length); - }, - - /** - * 设置Range的结束位置到node节点内的第一个节点之前 - * @method setEndAtFirst - * @param { Node } node 目标节点 - * @remind 选区的结束容器将变成给定的节点, 且偏移量为0 - * @remind node必须是一个元素节点, 且必须是允许包含子节点的元素。 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndAtFirst:function (node) { - return this.setEnd(node, 0); - }, - - /** - * 设置Range的结束位置到node节点内的最后一个节点之后 - * @method setEndAtLast - * @param { Node } node 目标节点 - * @remind 选区的结束容器将变成给定的节点, 且偏移量为该节点的子节点数量 - * @remind node必须是一个元素节点, 且必须是允许包含子节点的元素。 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndAtLast:function (node) { - return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length); - }, - - /** - * 选中给定节点 - * @method selectNode - * @remind 此时, 选区的开始容器和结束容器都是该节点的父节点, 其startOffset是该节点在父节点中的位置索引, - * 而endOffset为startOffset+1 - * @param { Node } node 需要选中的节点 - * @return { UE.dom.Range } 当前range对象,此时的range仅包含当前给定的节点对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - selectNode:function (node) { - return this.setStartBefore(node).setEndAfter(node); - }, - - /** - * 选中给定节点内部的所有节点 - * @method selectNodeContents - * @remind 此时, 选区的开始容器和结束容器都是该节点, 其startOffset为0, - * 而endOffset是该节点的子节点数。 - * @param { Node } node 目标节点, 当前range将包含该节点内的所有节点 - * @return { UE.dom.Range } 当前range对象, 此时range仅包含给定节点的所有子节点 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - selectNodeContents:function (node) { - return this.setStart(node, 0).setEndAtLast(node); - }, - - /** - * clone当前Range对象 - * @method cloneRange - * @remind 返回的range是一个全新的range对象, 其内部所有属性与当前被clone的range相同。 - * @return { UE.dom.Range } 当前range对象的一个副本 - */ - cloneRange:function () { - var me = this; - return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset); - - }, - - /** - * 向当前选区的结束处闭合选区 - * @method collapse - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - - /** - * 闭合当前选区,根据给定的toStart参数项决定是向当前选区开始处闭合还是向结束处闭合, - * 如果toStart的值为true,则向开始位置闭合, 反之,向结束位置闭合。 - * @method collapse - * @param { Boolean } toStart 是否向选区开始处闭合 - * @return { UE.dom.Range } 当前range对象,此时range对象处于闭合状态 - * @see UE.dom.Range:collapse() - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - collapse:function (toStart) { - var me = this; - if (toStart) { - me.endContainer = me.startContainer; - me.endOffset = me.startOffset; - } else { - me.startContainer = me.endContainer; - me.startOffset = me.endOffset; - } - me.collapsed = true; - return me; - }, - - /** - * 调整range的开始位置和结束位置,使其"收缩"到最小的位置 - * @method shrinkBoundary - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * xxxx[xxxxx] => xxxx[xxxxx] - * ``` - * - * @example - * ```html - * - * x[xx]xxx - * - * - * ``` - * - * @example - * ```html - * [xxxxxxxxxxx] => [xxxxxxxxxxx] - * ``` - */ - - /** - * 调整range的开始位置和结束位置,使其"收缩"到最小的位置, - * 如果ignoreEnd的值为true,则忽略对结束位置的调整 - * @method shrinkBoundary - * @param { Boolean } ignoreEnd 是否忽略对结束位置的调整 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.domUtils.Range:shrinkBoundary() - */ - shrinkBoundary:function (ignoreEnd) { - var me = this, child, - collapsed = me.collapsed; - function check(node){ - return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[node.tagName] - } - while (me.startContainer.nodeType == 1 //是element - && (child = me.startContainer.childNodes[me.startOffset]) //子节点也是element - && check(child)) { - me.setStart(child, 0); - } - if (collapsed) { - return me.collapse(true); - } - if (!ignoreEnd) { - while (me.endContainer.nodeType == 1//是element - && me.endOffset > 0 //如果是空元素就退出 endOffset=0那么endOffst-1为负值,childNodes[endOffset]报错 - && (child = me.endContainer.childNodes[me.endOffset - 1]) //子节点也是element - && check(child)) { - me.setEnd(child, child.childNodes.length); - } - } - return me; - }, - - /** - * 获取离当前选区内包含的所有节点最近的公共祖先节点, - * @method getCommonAncestor - * @remind 返回的公共祖先节点一定不是range自身的容器节点, 但有可能是一个文本节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @example - * ```html - * //选区示例 - * xxxx[xxx]xxxxxx - * - * ``` - */ - - /** - * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到 - * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf - * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点 - * @method getCommonAncestor - * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @see UE.dom.Range:getCommonAncestor() - * @example - * ```html - * - * - * - * xxxxxxxxx[xxx]xxxxxxxx - * - * - * - * - * ``` - */ - - /** - * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到 - * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf - * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点; 同时可以根据 - * ignoreTextNode 参数的取值决定是否忽略类型为文本节点的祖先节点。 - * @method getCommonAncestor - * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点 - * @param { Boolean } ignoreTextNode 获取祖先节点的过程中是否忽略类型为文本节点的祖先节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @see UE.dom.Range:getCommonAncestor() - * @see UE.dom.Range:getCommonAncestor(Boolean) - * @example - * ```html - * - * - * - * xxxxxxxx[x]xxxxxxxxxxx - * - * - * - * - * ``` - */ - getCommonAncestor:function (includeSelf, ignoreTextNode) { - var me = this, - start = me.startContainer, - end = me.endContainer; - if (start === end) { - if (includeSelf && selectOneNode(this)) { - start = start.childNodes[me.startOffset]; - if(start.nodeType == 1) - return start; - } - //只有在上来就相等的情况下才会出现是文本的情况 - return ignoreTextNode && start.nodeType == 3 ? start.parentNode : start; - } - return domUtils.getCommonAncestor(start, end); - }, - - /** - * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上 - * @method trimBoundary - * @remind 该操作有可能会引起文本节点被切开 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * //选区示例 - * xxx[xxxxx]xxx - * - * - * ``` - */ - - /** - * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上, - * 可以根据 ignoreEnd 参数的值决定是否调整对结束边界的调整 - * @method trimBoundary - * @param { Boolean } ignoreEnd 是否忽略对结束边界的调整 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * //选区示例 - * xxx[xxxxx]xxx - * - * - * ``` - */ - trimBoundary:function (ignoreEnd) { - this.txtToElmBoundary(); - var start = this.startContainer, - offset = this.startOffset, - collapsed = this.collapsed, - end = this.endContainer; - if (start.nodeType == 3) { - if (offset == 0) { - this.setStartBefore(start); - } else { - if (offset >= start.nodeValue.length) { - this.setStartAfter(start); - } else { - var textNode = domUtils.split(start, offset); - //跟新结束边界 - if (start === end) { - this.setEnd(textNode, this.endOffset - offset); - } else if (start.parentNode === end) { - this.endOffset += 1; - } - this.setStartBefore(textNode); - } - } - if (collapsed) { - return this.collapse(true); - } - } - if (!ignoreEnd) { - offset = this.endOffset; - end = this.endContainer; - if (end.nodeType == 3) { - if (offset == 0) { - this.setEndBefore(end); - } else { - offset < end.nodeValue.length && domUtils.split(end, offset); - this.setEndAfter(end); - } - } - } - return this; - }, - - /** - * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则什么也不做 - * @method txtToElmBoundary - * @remind 该操作不会修改dom节点 - * @return { UE.dom.Range } 当前range对象 - */ - - /** - * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则根据参数项 - * ignoreCollapsed 的值决定是否执行该调整 - * @method txtToElmBoundary - * @param { Boolean } ignoreCollapsed 是否忽略选区的闭合状态, 如果该参数取值为true, 则 - * 不论选区是否闭合, 都会执行该操作, 反之, 则不会对闭合的选区执行该操作 - * @return { UE.dom.Range } 当前range对象 - */ - txtToElmBoundary:function (ignoreCollapsed) { - function adjust(r, c) { - var container = r[c + 'Container'], - offset = r[c + 'Offset']; - if (container.nodeType == 3) { - if (!offset) { - r['set' + c.replace(/(\w)/, function (a) { - return a.toUpperCase(); - }) + 'Before'](container); - } else if (offset >= container.nodeValue.length) { - r['set' + c.replace(/(\w)/, function (a) { - return a.toUpperCase(); - }) + 'After' ](container); - } - } - } - - if (ignoreCollapsed || !this.collapsed) { - adjust(this, 'start'); - adjust(this, 'end'); - } - return this; - }, - - /** - * 在当前选区的开始位置前插入节点,新插入的节点会被该range包含 - * @method insertNode - * @param { Node } node 需要插入的节点 - * @remind 插入的节点可以是一个DocumentFragment依次插入多个节点 - * @return { UE.dom.Range } 当前range对象 - */ - insertNode:function (node) { - var first = node, length = 1; - if (node.nodeType == 11) { - first = node.firstChild; - length = node.childNodes.length; - } - this.trimBoundary(true); - var start = this.startContainer, - offset = this.startOffset; - var nextNode = start.childNodes[ offset ]; - if (nextNode) { - start.insertBefore(node, nextNode); - } else { - start.appendChild(node); - } - if (first.parentNode === this.endContainer) { - this.endOffset = this.endOffset + length; - } - return this.setStartBefore(first); - }, - - /** - * 闭合选区到当前选区的开始位置, 并且定位光标到闭合后的位置 - * @method setCursor - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:collapse() - */ - - /** - * 闭合选区,可以根据参数toEnd的值控制选区是向前闭合还是向后闭合, 并且定位光标到闭合后的位置。 - * @method setCursor - * @param { Boolean } toEnd 是否向后闭合, 如果为true, 则闭合选区时, 将向结束容器方向闭合, - * 反之,则向开始容器方向闭合 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:collapse(Boolean) - */ - setCursor:function (toEnd, noFillData) { - return this.collapse(!toEnd).select(noFillData); - }, - - /** - * 创建当前range的一个书签,记录下当前range的位置,方便当dom树改变时,还能找回原来的选区位置 - * @method createBookmark - * @param { Boolean } serialize 控制返回的标记位置是对当前位置的引用还是ID,如果该值为true,则 - * 返回标记位置的ID, 反之则返回标记位置节点的引用 - * @return { Object } 返回一个书签记录键值对, 其包含的key有: start => 开始标记的ID或者引用, - * end => 结束标记的ID或引用, id => 当前标记的类型, 如果为true,则表示 - * 返回的记录的类型为ID, 反之则为引用 - */ - createBookmark:function (serialize, same) { - var endNode, - startNode = this.document.createElement('span'); - startNode.style.cssText = 'display:none;line-height:0px;'; - startNode.appendChild(this.document.createTextNode('\u200D')); - startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++); - - if (!this.collapsed) { - endNode = startNode.cloneNode(true); - endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++); - } - this.insertNode(startNode); - if (endNode) { - this.collapse().insertNode(endNode).setEndBefore(endNode); - } - this.setStartAfter(startNode); - return { - start:serialize ? startNode.id : startNode, - end:endNode ? serialize ? endNode.id : endNode : null, - id:serialize - } - }, - - /** - * 调整当前range的边界到书签位置,并删除该书签对象所标记的位置内的节点 - * @method moveToBookmark - * @param { BookMark } bookmark createBookmark所创建的标签对象 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:createBookmark(Boolean) - */ - moveToBookmark:function (bookmark) { - var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start, - end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end; - this.setStartBefore(start); - domUtils.remove(start); - if (end) { - this.setEndBefore(end); - domUtils.remove(end); - } else { - this.collapse(true); - } - return this; - }, - - /** - * 调整range的边界,使其"放大"到最近的父节点 - * @method enlarge - * @remind 会引起选区的变化 - * @return { UE.dom.Range } 当前range对象 - */ - - /** - * 调整range的边界,使其"放大"到最近的父节点,根据参数 toBlock 的取值, 可以 - * 要求扩大之后的父节点是block节点 - * @method enlarge - * @param { Boolean } toBlock 是否要求扩大之后的父节点必须是block节点 - * @return { UE.dom.Range } 当前range对象 - */ - enlarge:function (toBlock, stopFn) { - var isBody = domUtils.isBody, - pre, node, tmp = this.document.createTextNode(''); - if (toBlock) { - node = this.startContainer; - if (node.nodeType == 1) { - if (node.childNodes[this.startOffset]) { - pre = node = node.childNodes[this.startOffset] - } else { - node.appendChild(tmp); - pre = node = tmp; - } - } else { - pre = node; - } - while (1) { - if (domUtils.isBlockElm(node)) { - node = pre; - while ((pre = node.previousSibling) && !domUtils.isBlockElm(pre)) { - node = pre; - } - this.setStartBefore(node); - break; - } - pre = node; - node = node.parentNode; - } - node = this.endContainer; - if (node.nodeType == 1) { - if (pre = node.childNodes[this.endOffset]) { - node.insertBefore(tmp, pre); - } else { - node.appendChild(tmp); - } - pre = node = tmp; - } else { - pre = node; - } - while (1) { - if (domUtils.isBlockElm(node)) { - node = pre; - while ((pre = node.nextSibling) && !domUtils.isBlockElm(pre)) { - node = pre; - } - this.setEndAfter(node); - break; - } - pre = node; - node = node.parentNode; - } - if (tmp.parentNode === this.endContainer) { - this.endOffset--; - } - domUtils.remove(tmp); - } - - // 扩展边界到最大 - if (!this.collapsed) { - while (this.startOffset == 0) { - if (stopFn && stopFn(this.startContainer)) { - break; - } - if (isBody(this.startContainer)) { - break; - } - this.setStartBefore(this.startContainer); - } - while (this.endOffset == (this.endContainer.nodeType == 1 ? this.endContainer.childNodes.length : this.endContainer.nodeValue.length)) { - if (stopFn && stopFn(this.endContainer)) { - break; - } - if (isBody(this.endContainer)) { - break; - } - this.setEndAfter(this.endContainer); - } - } - return this; - }, - enlargeToBlockElm:function(ignoreEnd){ - while(!domUtils.isBlockElm(this.startContainer)){ - this.setStartBefore(this.startContainer); - } - if(!ignoreEnd){ - while(!domUtils.isBlockElm(this.endContainer)){ - this.setEndAfter(this.endContainer); - } - } - return this; - }, - /** - * 调整Range的边界,使其"缩小"到最合适的位置 - * @method adjustmentBoundary - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:shrinkBoundary() - */ - adjustmentBoundary:function () { - if (!this.collapsed) { - while (!domUtils.isBody(this.startContainer) && - this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length && - this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - - this.setStartAfter(this.startContainer); - } - while (!domUtils.isBody(this.endContainer) && !this.endOffset && - this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - this.setEndBefore(this.endContainer); - } - } - return this; - }, - - /** - * 给range选区中的内容添加给定的inline标签 - * @method applyInlineStyle - * @param { String } tagName 需要添加的标签名 - * @example - * ```html - *

    xxxx[xxxx]x

    ==> range.applyInlineStyle("strong") ==>

    xxxx[xxxx]x

    - * ``` - */ - - /** - * 给range选区中的内容添加给定的inline标签, 并且为标签附加上一些初始化属性。 - * @method applyInlineStyle - * @param { String } tagName 需要添加的标签名 - * @param { Object } attrs 跟随新添加的标签的属性 - * @return { UE.dom.Range } 当前选区 - * @example - * ```html - *

    xxxx[xxxx]x

    - * - * ==> - * - * - * range.applyInlineStyle("strong",{"style":"font-size:12px"}) - * - * ==> - * - *

    xxxx[xxxx]x

    - * ``` - */ - applyInlineStyle:function (tagName, attrs, list) { - if (this.collapsed)return this; - this.trimBoundary().enlarge(false, - function (node) { - return node.nodeType == 1 && domUtils.isBlockElm(node) - }).adjustmentBoundary(); - var bookmark = this.createBookmark(), - end = bookmark.end, - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node); - }, - current = domUtils.getNextDomNode(bookmark.start, false, filterFn), - node, - pre, - range = this.cloneRange(); - while (current && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) { - if (current.nodeType == 3 || dtd[tagName][current.tagName]) { - range.setStartBefore(current); - node = current; - while (node && (node.nodeType == 3 || dtd[tagName][node.tagName]) && node !== end) { - pre = node; - node = domUtils.getNextDomNode(node, node.nodeType == 1, null, function (parent) { - return dtd[tagName][parent.tagName]; - }); - } - var frag = range.setEndAfter(pre).extractContents(), elm; - if (list && list.length > 0) { - var level, top; - top = level = list[0].cloneNode(false); - for (var i = 1, ci; ci = list[i++];) { - level.appendChild(ci.cloneNode(false)); - level = level.firstChild; - } - elm = level; - } else { - elm = range.document.createElement(tagName); - } - if (attrs) { - domUtils.setAttributes(elm, attrs); - } - elm.appendChild(frag); - range.insertNode(list ? top : elm); - //处理下滑线在a上的情况 - var aNode; - if (tagName == 'span' && attrs.style && /text\-decoration/.test(attrs.style) && (aNode = domUtils.findParentByTagName(elm, 'a', true))) { - domUtils.setAttributes(aNode, attrs); - domUtils.remove(elm, true); - elm = aNode; - } else { - domUtils.mergeSibling(elm); - domUtils.clearEmptySibling(elm); - } - //去除子节点相同的 - domUtils.mergeChild(elm, attrs); - current = domUtils.getNextDomNode(elm, false, filterFn); - domUtils.mergeToParent(elm); - if (node === end) { - break; - } - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - return this.moveToBookmark(bookmark); - }, - - /** - * 移除当前选区内指定的inline标签,但保留其中的内容 - * @method removeInlineStyle - * @param { String } tagName 需要移除的标签名 - * @return { UE.dom.Range } 当前的range对象 - * @example - * ```html - * xx[xxxxyyyzz]z => range.removeInlineStyle(["em"]) => xx[xxxxyyyzz]z - * ``` - */ - - /** - * 移除当前选区内指定的一组inline标签,但保留其中的内容 - * @method removeInlineStyle - * @param { Array } tagNameArr 需要移除的标签名的数组 - * @return { UE.dom.Range } 当前的range对象 - * @see UE.dom.Range:removeInlineStyle(String) - */ - removeInlineStyle:function (tagNames) { - if (this.collapsed)return this; - tagNames = utils.isArray(tagNames) ? tagNames : [tagNames]; - this.shrinkBoundary().adjustmentBoundary(); - var start = this.startContainer, end = this.endContainer; - while (1) { - if (start.nodeType == 1) { - if (utils.indexOf(tagNames, start.tagName.toLowerCase()) > -1) { - break; - } - if (start.tagName.toLowerCase() == 'body') { - start = null; - break; - } - } - start = start.parentNode; - } - while (1) { - if (end.nodeType == 1) { - if (utils.indexOf(tagNames, end.tagName.toLowerCase()) > -1) { - break; - } - if (end.tagName.toLowerCase() == 'body') { - end = null; - break; - } - } - end = end.parentNode; - } - var bookmark = this.createBookmark(), - frag, - tmpRange; - if (start) { - tmpRange = this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start); - frag = tmpRange.extractContents(); - tmpRange.insertNode(frag); - domUtils.clearEmptySibling(start, true); - start.parentNode.insertBefore(bookmark.start, start); - } - if (end) { - tmpRange = this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end); - frag = tmpRange.extractContents(); - tmpRange.insertNode(frag); - domUtils.clearEmptySibling(end, false, true); - end.parentNode.insertBefore(bookmark.end, end.nextSibling); - } - var current = domUtils.getNextDomNode(bookmark.start, false, function (node) { - return node.nodeType == 1; - }), next; - while (current && current !== bookmark.end) { - next = domUtils.getNextDomNode(current, true, function (node) { - return node.nodeType == 1; - }); - if (utils.indexOf(tagNames, current.tagName.toLowerCase()) > -1) { - domUtils.remove(current, true); - } - current = next; - } - return this.moveToBookmark(bookmark); - }, - - /** - * 获取当前选中的自闭合的节点 - * @method getClosedNode - * @return { Node | NULL } 如果当前选中的是自闭合节点, 则返回该节点, 否则返回NULL - */ - getClosedNode:function () { - var node; - if (!this.collapsed) { - var range = this.cloneRange().adjustmentBoundary().shrinkBoundary(); - if (selectOneNode(range)) { - var child = range.startContainer.childNodes[range.startOffset]; - if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) { - node = child; - } - } - } - return node; - }, - - /** - * 在页面上高亮range所表示的选区 - * @method select - * @return { UE.dom.Range } 返回当前Range对象 - */ - //这里不区分ie9以上,trace:3824 - select:browser.ie ? function (noFillData, textRange) { - var nativeRange; - if (!this.collapsed) - this.shrinkBoundary(); - var node = this.getClosedNode(); - if (node && !textRange) { - try { - nativeRange = this.document.body.createControlRange(); - nativeRange.addElement(node); - nativeRange.select(); - } catch (e) {} - return this; - } - var bookmark = this.createBookmark(), - start = bookmark.start, - end; - nativeRange = this.document.body.createTextRange(); - nativeRange.moveToElementText(start); - nativeRange.moveStart('character', 1); - if (!this.collapsed) { - var nativeRangeEnd = this.document.body.createTextRange(); - end = bookmark.end; - nativeRangeEnd.moveToElementText(end); - nativeRange.setEndPoint('EndToEnd', nativeRangeEnd); - } else { - if (!noFillData && this.startContainer.nodeType != 3) { - //使用|x固定住光标 - var tmpText = this.document.createTextNode(fillChar), - tmp = this.document.createElement('span'); - tmp.appendChild(this.document.createTextNode(fillChar)); - start.parentNode.insertBefore(tmp, start); - start.parentNode.insertBefore(tmpText, start); - //当点b,i,u时,不能清除i上边的b - removeFillData(this.document, tmpText); - fillData = tmpText; - mergeSibling(tmp, 'previousSibling'); - mergeSibling(start, 'nextSibling'); - nativeRange.moveStart('character', -1); - nativeRange.collapse(true); - } - } - this.moveToBookmark(bookmark); - tmp && domUtils.remove(tmp); - //IE在隐藏状态下不支持range操作,catch一下 - try { - nativeRange.select(); - } catch (e) { - } - return this; - } : function (notInsertFillData) { - function checkOffset(rng){ - - function check(node,offset,dir){ - if(node.nodeType == 3 && node.nodeValue.length < offset){ - rng[dir + 'Offset'] = node.nodeValue.length - } - } - check(rng.startContainer,rng.startOffset,'start'); - check(rng.endContainer,rng.endOffset,'end'); - } - var win = domUtils.getWindow(this.document), - sel = win.getSelection(), - txtNode; - //FF下关闭自动长高时滚动条在关闭dialog时会跳 - //ff下如果不body.focus将不能定位闭合光标到编辑器内 - browser.gecko ? this.document.body.focus() : win.focus(); - if (sel) { - sel.removeAllRanges(); - // trace:870 chrome/safari后边是br对于闭合得range不能定位 所以去掉了判断 - // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR' - if (this.collapsed && !notInsertFillData) { -// //opear如果没有节点接着,原生的不能够定位,不能在body的第一级插入空白节点 -// if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) { -// var tmp = this.document.createTextNode(''); -// this.insertNode(tmp).setStart(tmp, 0).collapse(true); -// } -// - //处理光标落在文本节点的情况 - //处理以下的情况 - //|xxxx - //xxxx|xxxx - //xxxx| - var start = this.startContainer,child = start; - if(start.nodeType == 1){ - child = start.childNodes[this.startOffset]; - - } - if( !(start.nodeType == 3 && this.startOffset) && - (child ? - (!child.previousSibling || child.previousSibling.nodeType != 3) - : - (!start.lastChild || start.lastChild.nodeType != 3) - ) - ){ - txtNode = this.document.createTextNode(fillChar); - //跟着前边走 - this.insertNode(txtNode); - removeFillData(this.document, txtNode); - mergeSibling(txtNode, 'previousSibling'); - mergeSibling(txtNode, 'nextSibling'); - fillData = txtNode; - this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true); - } - } - var nativeRange = this.document.createRange(); - if(this.collapsed && browser.opera && this.startContainer.nodeType == 1){ - var child = this.startContainer.childNodes[this.startOffset]; - if(!child){ - //往前靠拢 - child = this.startContainer.lastChild; - if( child && domUtils.isBr(child)){ - this.setStartBefore(child).collapse(true); - } - }else{ - //向后靠拢 - while(child && domUtils.isBlockElm(child)){ - if(child.nodeType == 1 && child.childNodes[0]){ - child = child.childNodes[0] - }else{ - break; - } - } - child && this.setStartBefore(child).collapse(true) - } - - } - //是createAddress最后一位算的不准,现在这里进行微调 - checkOffset(this); - nativeRange.setStart(this.startContainer, this.startOffset); - nativeRange.setEnd(this.endContainer, this.endOffset); - sel.addRange(nativeRange); - } - return this; - }, - - /** - * 滚动到当前range开始的位置 - * @method scrollToView - * @param { Window } win 当前range对象所属的window对象 - * @return { UE.dom.Range } 当前Range对象 - */ - - /** - * 滚动到距离当前range开始位置 offset 的位置处 - * @method scrollToView - * @param { Window } win 当前range对象所属的window对象 - * @param { Number } offset 距离range开始位置处的偏移量, 如果为正数, 则向下偏移, 反之, 则向上偏移 - * @return { UE.dom.Range } 当前Range对象 - */ - scrollToView:function (win, offset) { - win = win ? window : domUtils.getWindow(this.document); - var me = this, - span = me.document.createElement('span'); - //trace:717 - span.innerHTML = ' '; - me.cloneRange().insertNode(span); - domUtils.scrollToView(span, win, offset); - domUtils.remove(span); - return me; - }, - - /** - * 判断当前选区内容是否占位符 - * @private - * @method inFillChar - * @return { Boolean } 如果是占位符返回true,否则返回false - */ - inFillChar : function(){ - var start = this.startContainer; - if(this.collapsed && start.nodeType == 3 - && start.nodeValue.replace(new RegExp('^' + domUtils.fillChar),'').length + 1 == start.nodeValue.length - ){ - return true; - } - return false; - }, - - /** - * 保存 - * @method createAddress - * @private - * @return { Boolean } 返回开始和结束的位置 - * @example - * ```html - * - *

    - * aaaa - * - * - * bbbb - * - * - *

    - * - * - * - * ``` - */ - createAddress : function(ignoreEnd,ignoreTxt){ - var addr = {},me = this; - - function getAddress(isStart){ - var node = isStart ? me.startContainer : me.endContainer; - var parents = domUtils.findParents(node,true,function(node){return !domUtils.isBody(node)}), - addrs = []; - for(var i = 0,ci;ci = parents[i++];){ - addrs.push(domUtils.getNodeIndex(ci,ignoreTxt)); - } - var firstIndex = 0; - - if(ignoreTxt){ - if(node.nodeType == 3){ - var tmpNode = node.previousSibling; - while(tmpNode && tmpNode.nodeType == 3){ - firstIndex += tmpNode.nodeValue.replace(fillCharReg,'').length; - tmpNode = tmpNode.previousSibling; - } - firstIndex += (isStart ? me.startOffset : me.endOffset)// - (fillCharReg.test(node.nodeValue) ? 1 : 0 ) - }else{ - node = node.childNodes[ isStart ? me.startOffset : me.endOffset]; - if(node){ - firstIndex = domUtils.getNodeIndex(node,ignoreTxt); - }else{ - node = isStart ? me.startContainer : me.endContainer; - var first = node.firstChild; - while(first){ - if(domUtils.isFillChar(first)){ - first = first.nextSibling; - continue; - } - firstIndex++; - if(first.nodeType == 3){ - while( first && first.nodeType == 3){ - first = first.nextSibling; - } - }else{ - first = first.nextSibling; - } - } - } - } - - }else{ - firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset : me.endOffset - } - if(firstIndex < 0){ - firstIndex = 0; - } - addrs.push(firstIndex); - return addrs; - } - addr.startAddress = getAddress(true); - if(!ignoreEnd){ - addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress(); - } - return addr; - }, - - /** - * 保存 - * @method createAddress - * @private - * @return { Boolean } 返回开始和结束的位置 - * @example - * ```html - * - *

    - * aaaa - * - * - * bbbb - * - * - *

    - * - * - * - * ``` - */ - moveToAddress : function(addr,ignoreEnd){ - var me = this; - function getNode(address,isStart){ - var tmpNode = me.document.body, - parentNode,offset; - for(var i= 0,ci,l=address.length;i - * - * - * - * - * - * - * - * - * ``` - */ - - /** - * 遍历range内的节点。 - * 每当遍历一个节点时, 都会执行参数项 doFn 指定的函数, 该函数的接受当前遍历的节点 - * 作为其参数。 - * 可以通过参数项 filterFn 来指定一个过滤器, 只有符合该过滤器过滤规则的节点才会触 - * 发doFn函数的执行 - * @method traversal - * @param { Function } doFn 对每个遍历的节点要执行的方法, 该方法接受当前遍历的节点作为其参数 - * @param { Function } filterFn 过滤器, 该函数接受当前遍历的节点作为参数, 如果该节点满足过滤 - * 规则, 请返回true, 该节点会触发doFn, 否则, 请返回false, 则该节点不 - * 会触发doFn。 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:traversal(Function) - * @example - * ```html - * - * - * - * - * - * - * - * - * - * - * ``` - */ - traversal:function(doFn,filterFn){ - if (this.collapsed) - return this; - var bookmark = this.createBookmark(), - end = bookmark.end, - current = domUtils.getNextDomNode(bookmark.start, false, filterFn); - while (current && current !== end && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) { - var tmpNode = domUtils.getNextDomNode(current,false,filterFn); - doFn(current); - current = tmpNode; - } - return this.moveToBookmark(bookmark); - } - }; -})(); - -// core/Selection.js -/** - * 选集 - * @file - * @module UE.dom - * @class Selection - * @since 1.2.6.1 - */ - -/** - * 选区集合 - * @unfile - * @module UE.dom - * @class Selection - */ -(function () { - - function getBoundaryInformation( range, start ) { - var getIndex = domUtils.getNodeIndex; - range = range.duplicate(); - range.collapse( start ); - var parent = range.parentElement(); - //如果节点里没有子节点,直接退出 - if ( !parent.hasChildNodes() ) { - return {container:parent, offset:0}; - } - var siblings = parent.children, - child, - testRange = range.duplicate(), - startIndex = 0, endIndex = siblings.length - 1, index = -1, - distance; - while ( startIndex <= endIndex ) { - index = Math.floor( (startIndex + endIndex) / 2 ); - child = siblings[index]; - testRange.moveToElementText( child ); - var position = testRange.compareEndPoints( 'StartToStart', range ); - if ( position > 0 ) { - endIndex = index - 1; - } else if ( position < 0 ) { - startIndex = index + 1; - } else { - //trace:1043 - return {container:parent, offset:getIndex( child )}; - } - } - if ( index == -1 ) { - testRange.moveToElementText( parent ); - testRange.setEndPoint( 'StartToStart', range ); - distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length; - siblings = parent.childNodes; - if ( !distance ) { - child = siblings[siblings.length - 1]; - return {container:child, offset:child.nodeValue.length}; - } - - var i = siblings.length; - while ( distance > 0 ){ - distance -= siblings[ --i ].nodeValue.length; - } - return {container:siblings[i], offset:-distance}; - } - testRange.collapse( position > 0 ); - testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range ); - distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length; - if ( !distance ) { - return dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ? - {container:parent, offset:getIndex( child ) + (position > 0 ? 0 : 1)} : - {container:child, offset:position > 0 ? 0 : child.childNodes.length} - } - while ( distance > 0 ) { - try { - var pre = child; - child = child[position > 0 ? 'previousSibling' : 'nextSibling']; - distance -= child.nodeValue.length; - } catch ( e ) { - return {container:parent, offset:getIndex( pre )}; - } - } - return {container:child, offset:position > 0 ? -distance : child.nodeValue.length + distance} - } - - /** - * 将ieRange转换为Range对象 - * @param {Range} ieRange ieRange对象 - * @param {Range} range Range对象 - * @return {Range} range 返回转换后的Range对象 - */ - function transformIERangeToRange( ieRange, range ) { - if ( ieRange.item ) { - range.selectNode( ieRange.item( 0 ) ); - } else { - var bi = getBoundaryInformation( ieRange, true ); - range.setStart( bi.container, bi.offset ); - if ( ieRange.compareEndPoints( 'StartToEnd', ieRange ) != 0 ) { - bi = getBoundaryInformation( ieRange, false ); - range.setEnd( bi.container, bi.offset ); - } - } - return range; - } - - /** - * 获得ieRange - * @param {Selection} sel Selection对象 - * @return {ieRange} 得到ieRange - */ - function _getIERange( sel ) { - var ieRange; - //ie下有可能报错 - try { - ieRange = sel.getNative().createRange(); - } catch ( e ) { - return null; - } - var el = ieRange.item ? ieRange.item( 0 ) : ieRange.parentElement(); - if ( ( el.ownerDocument || el ) === sel.document ) { - return ieRange; - } - return null; - } - - var Selection = dom.Selection = function ( doc ) { - var me = this, iframe; - me.document = doc; - if ( browser.ie9below ) { - iframe = domUtils.getWindow( doc ).frameElement; - domUtils.on( iframe, 'beforedeactivate', function () { - me._bakIERange = me.getIERange(); - } ); - domUtils.on( iframe, 'activate', function () { - try { - if ( !_getIERange( me ) && me._bakIERange ) { - me._bakIERange.select(); - } - } catch ( ex ) { - } - me._bakIERange = null; - } ); - } - iframe = doc = null; - }; - - Selection.prototype = { - - rangeInBody : function(rng,txtRange){ - var node = browser.ie9below || txtRange ? rng.item ? rng.item() : rng.parentElement() : rng.startContainer; - - return node === this.document.body || domUtils.inDoc(node,this.document); - }, - - /** - * 获取原生seleciton对象 - * @method getNative - * @return { Object } 获得selection对象 - * @example - * ```javascript - * editor.selection.getNative(); - * ``` - */ - getNative:function () { - var doc = this.document; - try { - return !doc ? null : browser.ie9below ? doc.selection : domUtils.getWindow( doc ).getSelection(); - } catch ( e ) { - return null; - } - }, - - /** - * 获得ieRange - * @method getIERange - * @return { Object } 返回ie原生的Range - * @example - * ```javascript - * editor.selection.getIERange(); - * ``` - */ - getIERange:function () { - var ieRange = _getIERange( this ); - if ( !ieRange ) { - if ( this._bakIERange ) { - return this._bakIERange; - } - } - return ieRange; - }, - - /** - * 缓存当前选区的range和选区的开始节点 - * @method cache - */ - cache:function () { - this.clear(); - this._cachedRange = this.getRange(); - this._cachedStartElement = this.getStart(); - this._cachedStartElementPath = this.getStartElementPath(); - }, - - /** - * 获取选区开始位置的父节点到body - * @method getStartElementPath - * @return { Array } 返回父节点集合 - * @example - * ```javascript - * editor.selection.getStartElementPath(); - * ``` - */ - getStartElementPath:function () { - if ( this._cachedStartElementPath ) { - return this._cachedStartElementPath; - } - var start = this.getStart(); - if ( start ) { - return domUtils.findParents( start, true, null, true ) - } - return []; - }, - - /** - * 清空缓存 - * @method clear - */ - clear:function () { - this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null; - }, - - /** - * 编辑器是否得到了选区 - * @method isFocus - */ - isFocus:function () { - try { - if(browser.ie9below){ - - var nativeRange = _getIERange(this); - return !!(nativeRange && this.rangeInBody(nativeRange)); - }else{ - return !!this.getNative().rangeCount; - } - } catch ( e ) { - return false; - } - - }, - - /** - * 获取选区对应的Range - * @method getRange - * @return { Object } 得到Range对象 - * @example - * ```javascript - * editor.selection.getRange(); - * ``` - */ - getRange:function () { - var me = this; - function optimze( range ) { - var child = me.document.body.firstChild, - collapsed = range.collapsed; - while ( child && child.firstChild ) { - range.setStart( child, 0 ); - child = child.firstChild; - } - if ( !range.startContainer ) { - range.setStart( me.document.body, 0 ) - } - if ( collapsed ) { - range.collapse( true ); - } - } - - if ( me._cachedRange != null ) { - return this._cachedRange; - } - var range = new baidu.editor.dom.Range( me.document ); - - if ( browser.ie9below ) { - var nativeRange = me.getIERange(); - if ( nativeRange ) { - //备份的_bakIERange可能已经实效了,dom树发生了变化比如从源码模式切回来,所以try一下,实效就放到body开始位置 - try{ - transformIERangeToRange( nativeRange, range ); - }catch(e){ - optimze( range ); - } - - } else { - optimze( range ); - } - } else { - var sel = me.getNative(); - if ( sel && sel.rangeCount ) { - var firstRange = sel.getRangeAt( 0 ); - var lastRange = sel.getRangeAt( sel.rangeCount - 1 ); - range.setStart( firstRange.startContainer, firstRange.startOffset ).setEnd( lastRange.endContainer, lastRange.endOffset ); - if ( range.collapsed && domUtils.isBody( range.startContainer ) && !range.startOffset ) { - optimze( range ); - } - } else { - //trace:1734 有可能已经不在dom树上了,标识的节点 - if ( this._bakRange && domUtils.inDoc( this._bakRange.startContainer, this.document ) ){ - return this._bakRange; - } - optimze( range ); - } - } - return this._bakRange = range; - }, - - /** - * 获取开始元素,用于状态反射 - * @method getStart - * @return { Element } 获得开始元素 - * @example - * ```javascript - * editor.selection.getStart(); - * ``` - */ - getStart:function () { - if ( this._cachedStartElement ) { - return this._cachedStartElement; - } - var range = browser.ie9below ? this.getIERange() : this.getRange(), - tmpRange, - start, tmp, parent; - if ( browser.ie9below ) { - if ( !range ) { - //todo 给第一个值可能会有问题 - return this.document.body.firstChild; - } - //control元素 - if ( range.item ){ - return range.item( 0 ); - } - tmpRange = range.duplicate(); - //修正ie下x[xx] 闭合后 x|xx - tmpRange.text.length > 0 && tmpRange.moveStart( 'character', 1 ); - tmpRange.collapse( 1 ); - start = tmpRange.parentElement(); - parent = tmp = range.parentElement(); - while ( tmp = tmp.parentNode ) { - if ( tmp == start ) { - start = parent; - break; - } - } - } else { - range.shrinkBoundary(); - start = range.startContainer; - if ( start.nodeType == 1 && start.hasChildNodes() ){ - start = start.childNodes[Math.min( start.childNodes.length - 1, range.startOffset )]; - } - if ( start.nodeType == 3 ){ - return start.parentNode; - } - } - return start; - }, - - /** - * 得到选区中的文本 - * @method getText - * @return { String } 选区中包含的文本 - * @example - * ```javascript - * editor.selection.getText(); - * ``` - */ - getText:function () { - var nativeSel, nativeRange; - if ( this.isFocus() && (nativeSel = this.getNative()) ) { - nativeRange = browser.ie9below ? nativeSel.createRange() : nativeSel.getRangeAt( 0 ); - return browser.ie9below ? nativeRange.text : nativeRange.toString(); - } - return ''; - }, - - /** - * 清除选区 - * @method clearRange - * @example - * ```javascript - * editor.selection.clearRange(); - * ``` - */ - clearRange : function(){ - this.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - } - }; -})(); - -// core/Editor.js -/** - * 编辑器主类,包含编辑器提供的大部分公用接口 - * @file - * @module UE - * @class Editor - * @since 1.2.6.1 - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @unfile - * @module UE - */ - -/** - * UEditor的核心类,为用户提供与编辑器交互的接口。 - * @unfile - * @module UE - * @class Editor - */ - -(function () { - var uid = 0, _selectionChangeTimer; - - /** - * 获取编辑器的html内容,赋值到编辑器所在表单的textarea文本域里面 - * @private - * @method setValue - * @param { UE.Editor } editor 编辑器事例 - */ - function setValue(form, editor) { - var textarea; - if (editor.textarea) { - if (utils.isString(editor.textarea)) { - for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) { - if (ti.id == 'ueditor_textarea_' + editor.options.textarea) { - textarea = ti; - break; - } - } - } else { - textarea = editor.textarea; - } - } - if (!textarea) { - form.appendChild(textarea = domUtils.createElement(document, 'textarea', { - 'name': editor.options.textarea, - 'id': 'ueditor_textarea_' + editor.options.textarea, - 'style': "display:none" - })); - //不要产生多个textarea - editor.textarea = textarea; - } - !textarea.getAttribute('name') && textarea.setAttribute('name', editor.options.textarea ); - textarea.value = editor.hasContents() ? - (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) : - '' - } - function loadPlugins(me){ - //初始化插件 - for (var pi in UE.plugins) { - UE.plugins[pi].call(me); - } - - } - function checkCurLang(I18N){ - for(var lang in I18N){ - return lang - } - } - - function langReadied(me){ - me.langIsReady = true; - - me.fireEvent("langReady"); - } - - /** - * 编辑器准备就绪后会触发该事件 - * @module UE - * @class Editor - * @event ready - * @remind render方法执行完成之后,会触发该事件 - * @remind - * @example - * ```javascript - * editor.addListener( 'ready', function( editor ) { - * editor.execCommand( 'focus' ); //编辑器家在完成后,让编辑器拿到焦点 - * } ); - * ``` - */ - /** - * 执行destroy方法,会触发该事件 - * @module UE - * @class Editor - * @event destroy - * @see UE.Editor:destroy() - */ - /** - * 执行reset方法,会触发该事件 - * @module UE - * @class Editor - * @event reset - * @see UE.Editor:reset() - */ - /** - * 执行focus方法,会触发该事件 - * @module UE - * @class Editor - * @event focus - * @see UE.Editor:focus(Boolean) - */ - /** - * 语言加载完成会触发该事件 - * @module UE - * @class Editor - * @event langReady - */ - /** - * 运行命令之后会触发该命令 - * @module UE - * @class Editor - * @event beforeExecCommand - */ - /** - * 运行命令之后会触发该命令 - * @module UE - * @class Editor - * @event afterExecCommand - */ - /** - * 运行命令之前会触发该命令 - * @module UE - * @class Editor - * @event firstBeforeExecCommand - */ - /** - * 在getContent方法执行之前会触发该事件 - * @module UE - * @class Editor - * @event beforeGetContent - * @see UE.Editor:getContent() - */ - /** - * 在getContent方法执行之后会触发该事件 - * @module UE - * @class Editor - * @event afterGetContent - * @see UE.Editor:getContent() - */ - /** - * 在getAllHtml方法执行时会触发该事件 - * @module UE - * @class Editor - * @event getAllHtml - * @see UE.Editor:getAllHtml() - */ - /** - * 在setContent方法执行之前会触发该事件 - * @module UE - * @class Editor - * @event beforeSetContent - * @see UE.Editor:setContent(String) - */ - /** - * 在setContent方法执行之后会触发该事件 - * @module UE - * @class Editor - * @event afterSetContent - * @see UE.Editor:setContent(String) - */ - /** - * 每当编辑器内部选区发生改变时,将触发该事件 - * @event selectionchange - * @warning 该事件的触发非常频繁,不建议在该事件的处理过程中做重量级的处理 - * @example - * ```javascript - * editor.addListener( 'selectionchange', function( editor ) { - * console.log('选区发生改变'); - * } - */ - /** - * 在所有selectionchange的监听函数执行之前,会触发该事件 - * @module UE - * @class Editor - * @event beforeSelectionChange - * @see UE.Editor:selectionchange - */ - /** - * 在所有selectionchange的监听函数执行完之后,会触发该事件 - * @module UE - * @class Editor - * @event afterSelectionChange - * @see UE.Editor:selectionchange - */ - /** - * 编辑器内容发生改变时会触发该事件 - * @module UE - * @class Editor - * @event contentChange - */ - - - /** - * 以默认参数构建一个编辑器实例 - * @constructor - * @remind 通过 改构造方法实例化的编辑器,不带ui层.需要render到一个容器,编辑器实例才能正常渲染到页面 - * @example - * ```javascript - * var editor = new UE.Editor(); - * editor.execCommand('blod'); - * ``` - * @see UE.Config - */ - - /** - * 以给定的参数集合创建一个编辑器实例,对于未指定的参数,将应用默认参数。 - * @constructor - * @remind 通过 改构造方法实例化的编辑器,不带ui层.需要render到一个容器,编辑器实例才能正常渲染到页面 - * @param { Object } setting 创建编辑器的参数 - * @example - * ```javascript - * var editor = new UE.Editor(); - * editor.execCommand('blod'); - * ``` - * @see UE.Config - */ - var Editor = UE.Editor = function (options) { - var me = this; - me.uid = uid++; - EventBase.call(me); - me.commands = {}; - me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true); - me.shortcutkeys = {}; - me.inputRules = []; - me.outputRules = []; - //设置默认的常用属性 - me.setOpt(Editor.defaultOptions(me)); - - /* 尝试异步加载后台配置 */ - me.loadServerConfig(); - - if(!utils.isEmptyObject(UE.I18N)){ - //修改默认的语言类型 - me.options.lang = checkCurLang(UE.I18N); - UE.plugin.load(me); - langReadied(me); - - }else{ - utils.loadFile(document, { - src: me.options.langPath + me.options.lang + "/" + me.options.lang + ".js", - tag: "script", - type: "text/javascript", - defer: "defer" - }, function () { - UE.plugin.load(me); - langReadied(me); - }); - } - - UE.instants['ueditorInstant' + me.uid] = me; - }; - Editor.prototype = { - registerCommand : function(name,obj){ - this.commands[name] = obj; - }, - /** - * 编辑器对外提供的监听ready事件的接口, 通过调用该方法,达到的效果与监听ready事件是一致的 - * @method ready - * @param { Function } fn 编辑器ready之后所执行的回调, 如果在注册事件之前编辑器已经ready,将会 - * 立即触发该回调。 - * @remind 需要等待编辑器加载完成后才能执行的代码,可以使用该方法传入 - * @example - * ```javascript - * editor.ready( function( editor ) { - * editor.setContent('初始化完毕'); - * } ); - * ``` - * @see UE.Editor.event:ready - */ - ready: function (fn) { - var me = this; - if (fn) { - me.isReady ? fn.apply(me) : me.addListener('ready', fn); - } - }, - - /** - * 该方法是提供给插件里面使用,设置配置项默认值 - * @method setOpt - * @warning 三处设置配置项的优先级: 实例化时传入参数 > setOpt()设置 > config文件里设置 - * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。 - * @param { String } key 编辑器的可接受的选项名称 - * @param { * } val 该选项可接受的值 - * @example - * ```javascript - * editor.setOpt( 'initContent', '欢迎使用编辑器' ); - * ``` - */ - - /** - * 该方法是提供给插件里面使用,以{key:value}集合的方式设置插件内用到的配置项默认值 - * @method setOpt - * @warning 三处设置配置项的优先级: 实例化时传入参数 > setOpt()设置 > config文件里设置 - * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。 - * @param { Object } options 将要设置的选项的键值对对象 - * @example - * ```javascript - * editor.setOpt( { - * 'initContent': '欢迎使用编辑器' - * } ); - * ``` - */ - setOpt: function (key, val) { - var obj = {}; - if (utils.isString(key)) { - obj[key] = val - } else { - obj = key; - } - utils.extend(this.options, obj, true); - }, - getOpt:function(key){ - return this.options[key] - }, - /** - * 销毁编辑器实例,使用textarea代替 - * @method destroy - * @example - * ```javascript - * editor.destroy(); - * ``` - */ - destroy: function () { - - var me = this; - me.fireEvent('destroy'); - var container = me.container.parentNode; - var textarea = me.textarea; - if (!textarea) { - textarea = document.createElement('textarea'); - container.parentNode.insertBefore(textarea, container); - } else { - textarea.style.display = '' - } - - textarea.style.width = me.iframe.offsetWidth + 'px'; - textarea.style.height = me.iframe.offsetHeight + 'px'; - textarea.value = me.getContent(); - textarea.id = me.key; - container.innerHTML = ''; - domUtils.remove(container); - var key = me.key; - //trace:2004 - for (var p in me) { - if (me.hasOwnProperty(p)) { - delete this[p]; - } - } - UE.delEditor(key); - }, - - /** - * 渲染编辑器的DOM到指定容器 - * @method render - * @param { String } containerId 指定一个容器ID - * @remind 执行该方法,会触发ready事件 - * @warning 必须且只能调用一次 - */ - - /** - * 渲染编辑器的DOM到指定容器 - * @method render - * @param { Element } containerDom 直接指定容器对象 - * @remind 执行该方法,会触发ready事件 - * @warning 必须且只能调用一次 - */ - render: function (container) { - var me = this, - options = me.options, - getStyleValue=function(attr){ - return parseInt(domUtils.getComputedStyle(container,attr)); - }; - if (utils.isString(container)) { - container = document.getElementById(container); - } - if (container) { - if(options.initialFrameWidth){ - options.minFrameWidth = options.initialFrameWidth - }else{ - options.minFrameWidth = options.initialFrameWidth = container.offsetWidth; - } - if(options.initialFrameHeight){ - options.minFrameHeight = options.initialFrameHeight - }else{ - options.initialFrameHeight = options.minFrameHeight = container.offsetHeight; - } - - container.style.width = /%$/.test(options.initialFrameWidth) ? '100%' : options.initialFrameWidth- - getStyleValue("padding-left")- getStyleValue("padding-right") +'px'; - container.style.height = /%$/.test(options.initialFrameHeight) ? '100%' : options.initialFrameHeight - - getStyleValue("padding-top")- getStyleValue("padding-bottom") +'px'; - - container.style.zIndex = options.zIndex; - - var html = ( ie && browser.version < 9 ? '' : '') + - '' + - '' + - ( options.iframeCssUrl ? '' : '' ) + - (options.initialStyle ? '' : '') + - '' + - ''; - container.appendChild(domUtils.createElement(document, 'iframe', { - id: 'ueditor_' + me.uid, - width: "100%", - height: "100%", - frameborder: "0", - //先注释掉了,加的原因忘记了,但开启会直接导致全屏模式下内容多时不会出现滚动条 -// scrolling :'no', - src: 'javascript:void(function(){document.open();' + (options.customDomain && document.domain != location.hostname ? 'document.domain="' + document.domain + '";' : '') + - 'document.write("' + html + '");document.close();}())' - })); - container.style.overflow = 'hidden'; - //解决如果是给定的百分比,会导致高度算不对的问题 - setTimeout(function(){ - if( /%$/.test(options.initialFrameWidth)){ - options.minFrameWidth = options.initialFrameWidth = container.offsetWidth; - //如果这里给定宽度,会导致ie在拖动窗口大小时,编辑区域不随着变化 -// container.style.width = options.initialFrameWidth + 'px'; - } - if(/%$/.test(options.initialFrameHeight)){ - options.minFrameHeight = options.initialFrameHeight = container.offsetHeight; - container.style.height = options.initialFrameHeight + 'px'; - } - }) - } - }, - - /** - * 编辑器初始化 - * @method _setup - * @private - * @param { Element } doc 编辑器Iframe中的文档对象 - */ - _setup: function (doc) { - - var me = this, - options = me.options; - if (ie) { - doc.body.disabled = true; - doc.body.contentEditable = true; - doc.body.disabled = false; - } else { - doc.body.contentEditable = true; - } - doc.body.spellcheck = false; - me.document = doc; - me.window = doc.defaultView || doc.parentWindow; - me.iframe = me.window.frameElement; - me.body = doc.body; - me.selection = new dom.Selection(doc); - //gecko初始化就能得到range,无法判断isFocus了 - var geckoSel; - if (browser.gecko && (geckoSel = this.selection.getNative())) { - geckoSel.removeAllRanges(); - } - this._initEvents(); - //为form提交提供一个隐藏的textarea - for (var form = this.iframe.parentNode; !domUtils.isBody(form); form = form.parentNode) { - if (form.tagName == 'FORM') { - me.form = form; - if(me.options.autoSyncData){ - domUtils.on(me.window,'blur',function(){ - setValue(form,me); - }); - }else{ - domUtils.on(form, 'submit', function () { - setValue(this, me); - }); - } - break; - } - } - if (options.initialContent) { - if (options.autoClearinitialContent) { - var oldExecCommand = me.execCommand; - me.execCommand = function () { - me.fireEvent('firstBeforeExecCommand'); - return oldExecCommand.apply(me, arguments); - }; - this._setDefaultContent(options.initialContent); - } else - this.setContent(options.initialContent, false, true); - } - - //编辑器不能为空内容 - - if (domUtils.isEmptyNode(me.body)) { - me.body.innerHTML = '

    ' + (browser.ie ? '' : '
    ') + '

    '; - } - //如果要求focus, 就把光标定位到内容开始 - if (options.focus) { - setTimeout(function () { - me.focus(me.options.focusInEnd); - //如果自动清除开着,就不需要做selectionchange; - !me.options.autoClearinitialContent && me._selectionChange(); - }, 0); - } - if (!me.container) { - me.container = this.iframe.parentNode; - } - if (options.fullscreen && me.ui) { - me.ui.setFullScreen(true); - } - - try { - me.document.execCommand('2D-position', false, false); - } catch (e) { - } - try { - me.document.execCommand('enableInlineTableEditing', false, false); - } catch (e) { - } - try { - me.document.execCommand('enableObjectResizing', false, false); - } catch (e) { - } - - //挂接快捷键 - me._bindshortcutKeys(); - me.isReady = 1; - me.fireEvent('ready'); - options.onready && options.onready.call(me); - if (!browser.ie9below) { - domUtils.on(me.window, ['blur', 'focus'], function (e) { - //chrome下会出现alt+tab切换时,导致选区位置不对 - if (e.type == 'blur') { - me._bakRange = me.selection.getRange(); - try { - me._bakNativeRange = me.selection.getNative().getRangeAt(0); - me.selection.getNative().removeAllRanges(); - } catch (e) { - me._bakNativeRange = null; - } - - } else { - try { - me._bakRange && me._bakRange.select(); - } catch (e) { - } - } - }); - } - //trace:1518 ff3.6body不够寛,会导致点击空白处无法获得焦点 - if (browser.gecko && browser.version <= 10902) { - //修复ff3.6初始化进来,不能点击获得焦点 - me.body.contentEditable = false; - setTimeout(function () { - me.body.contentEditable = true; - }, 100); - setInterval(function () { - me.body.style.height = me.iframe.offsetHeight - 20 + 'px' - }, 100) - } - - !options.isShow && me.setHide(); - options.readonly && me.setDisabled(); - }, - - /** - * 同步数据到编辑器所在的form - * 从编辑器的容器节点向上查找form元素,若找到,就同步编辑内容到找到的form里,为提交数据做准备,主要用于是手动提交的情况 - * 后台取得数据的键值,使用你容器上的name属性,如果没有就使用参数里的textarea项 - * @method sync - * @example - * ```javascript - * editor.sync(); - * form.sumbit(); //form变量已经指向了form元素 - * ``` - */ - - /** - * 根据传入的formId,在页面上查找要同步数据的表单,若找到,就同步编辑内容到找到的form里,为提交数据做准备 - * 后台取得数据的键值,该键值默认使用给定的编辑器容器的name属性,如果没有name属性则使用参数项里给定的“textarea”项 - * @method sync - * @param { String } formID 指定一个要同步数据的form的id,编辑器的数据会同步到你指定form下 - */ - sync: function (formId) { - var me = this, - form = formId ? document.getElementById(formId) : - domUtils.findParent(me.iframe.parentNode, function (node) { - return node.tagName == 'FORM' - }, true); - form && setValue(form, me); - }, - - /** - * 设置编辑器高度 - * @method setHeight - * @remind 当配置项autoHeightEnabled为真时,该方法无效 - * @param { Number } number 设置的高度值,纯数值,不带单位 - * @example - * ```javascript - * editor.setHeight(number); - * ``` - */ - setHeight: function (height,notSetHeight) { - if (height !== parseInt(this.iframe.parentNode.style.height)) { - this.iframe.parentNode.style.height = height + 'px'; - } - !notSetHeight && (this.options.minFrameHeight = this.options.initialFrameHeight = height); - this.body.style.height = height + 'px'; - !notSetHeight && this.trigger('setHeight') - }, - - /** - * 为编辑器的编辑命令提供快捷键 - * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口 - * @method addshortcutkey - * @param { Object } keyset 命令名和快捷键键值对对象,多个按钮的快捷键用“+”分隔 - * @example - * ```javascript - * editor.addshortcutkey({ - * "Bold" : "ctrl+66",//^B - * "Italic" : "ctrl+73", //^I - * }); - * ``` - */ - /** - * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口 - * @method addshortcutkey - * @param { String } cmd 触发快捷键时,响应的命令 - * @param { String } keys 快捷键的字符串,多个按钮用“+”分隔 - * @example - * ```javascript - * editor.addshortcutkey("Underline", "ctrl+85"); //^U - * ``` - */ - addshortcutkey: function (cmd, keys) { - var obj = {}; - if (keys) { - obj[cmd] = keys - } else { - obj = cmd; - } - utils.extend(this.shortcutkeys, obj) - }, - - /** - * 对编辑器设置keydown事件监听,绑定快捷键和命令,当快捷键组合触发成功,会响应对应的命令 - * @method _bindshortcutKeys - * @private - */ - _bindshortcutKeys: function () { - var me = this, shortcutkeys = this.shortcutkeys; - me.addListener('keydown', function (type, e) { - var keyCode = e.keyCode || e.which; - for (var i in shortcutkeys) { - var tmp = shortcutkeys[i].split(','); - for (var t = 0, ti; ti = tmp[t++];) { - ti = ti.split(':'); - var key = ti[0], param = ti[1]; - if (/^(ctrl)(\+shift)?\+(\d+)$/.test(key.toLowerCase()) || /^(\d+)$/.test(key)) { - if (( (RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0) - && (RegExp.$2 != "" ? e[RegExp.$2.slice(1) + "Key"] : 1) - && keyCode == RegExp.$3 - ) || - keyCode == RegExp.$1 - ) { - if (me.queryCommandState(i,param) != -1) - me.execCommand(i, param); - domUtils.preventDefault(e); - } - } - } - - } - }); - }, - - /** - * 获取编辑器的内容 - * @method getContent - * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @return { String } 编辑器的内容字符串, 如果编辑器的内容为空,或者是空的标签内容(如:”<p><br/></p>“), 则返回空字符串 - * @example - * ```javascript - * //编辑器html内容:

    123456

    - * var content = editor.getContent(); //返回值:

    123456

    - * ``` - */ - - /** - * 获取编辑器的内容。 可以通过参数定义编辑器内置的判空规则 - * @method getContent - * @param { Function } fn 自定的判空规则, 要求该方法返回一个boolean类型的值, - * 代表当前编辑器的内容是否空, - * 如果返回true, 则该方法将直接返回空字符串;如果返回false,则编辑器将返回 - * 经过内置过滤规则处理后的内容。 - * @remind 该方法在处理包含有初始化内容的时候能起到很好的作用。 - * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @return { String } 编辑器的内容字符串 - * @example - * ```javascript - * // editor 是一个编辑器的实例 - * var content = editor.getContent( function ( editor ) { - * return editor.body.innerHTML === '欢迎使用UEditor'; //返回空字符串 - * } ); - * ``` - */ - getContent: function (cmd, fn,notSetCursor,ignoreBlank,formatter) { - var me = this; - if (cmd && utils.isFunction(cmd)) { - fn = cmd; - cmd = ''; - } - if (fn ? !fn() : !this.hasContents()) { - return ''; - } - me.fireEvent('beforegetcontent'); - var root = UE.htmlparser(me.body.innerHTML,ignoreBlank); - me.filterOutputRule(root); - me.fireEvent('aftergetcontent', cmd,root); - return root.toHtml(formatter); - }, - - /** - * 取得完整的html代码,可以直接显示成完整的html文档 - * @method getAllHtml - * @return { String } 编辑器的内容html文档字符串 - * @eaxmple - * ```javascript - * editor.getAllHtml(); //返回格式大致是: ...... - * ``` - */ - getAllHtml: function () { - var me = this, - headHtml = [], - html = ''; - me.fireEvent('getAllHtml', headHtml); - if (browser.ie && browser.version > 8) { - var headHtmlForIE9 = ''; - utils.each(me.document.styleSheets, function (si) { - headHtmlForIE9 += ( si.href ? '' : ''); - }); - utils.each(me.document.getElementsByTagName('script'), function (si) { - headHtmlForIE9 += si.outerHTML; - }); - - } - return '' + (me.options.charset ? '' : '') - + (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\n') + '' - + '' + me.getContent(null, null, true) + ''; - }, - - /** - * 得到编辑器的纯文本内容,但会保留段落格式 - * @method getPlainTxt - * @return { String } 编辑器带段落格式的纯文本内容字符串 - * @example - * ```javascript - * //编辑器html内容:

    1

    2

    - * console.log(editor.getPlainTxt()); //输出:"1\n2\n - * ``` - */ - getPlainTxt: function () { - var reg = new RegExp(domUtils.fillChar, 'g'), - html = this.body.innerHTML.replace(/[\n\r]/g, '');//ie要先去了\n在处理 - html = html.replace(/<(p|div)[^>]*>(| )<\/\1>/gi, '\n') - .replace(//gi, '\n') - .replace(/<[^>/]+>/g, '') - .replace(/(\n)?<\/([^>]+)>/g, function (a, b, c) { - return dtd.$block[c] ? '\n' : b ? b : ''; - }); - //取出来的空格会有c2a0会变成乱码,处理这种情况\u00a0 - return html.replace(reg, '').replace(/\u00a0/g, ' ').replace(/ /g, ' '); - }, - - /** - * 获取编辑器中的纯文本内容,没有段落格式 - * @method getContentTxt - * @return { String } 编辑器不带段落格式的纯文本内容字符串 - * @example - * ```javascript - * //编辑器html内容:

    1

    2

    - * console.log(editor.getPlainTxt()); //输出:"12 - * ``` - */ - getContentTxt: function () { - var reg = new RegExp(domUtils.fillChar, 'g'); - //取出来的空格会有c2a0会变成乱码,处理这种情况\u00a0 - return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\u00a0/g, ' '); - }, - - /** - * 设置编辑器的内容,可修改编辑器当前的html内容 - * @method setContent - * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @warning 该方法会触发selectionchange事件 - * @param { String } html 要插入的html内容 - * @example - * ```javascript - * editor.getContent('

    test

    '); - * ``` - */ - - /** - * 设置编辑器的内容,可修改编辑器当前的html内容 - * @method setContent - * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @warning 该方法会触发selectionchange事件 - * @param { String } html 要插入的html内容 - * @param { Boolean } isAppendTo 若传入true,不清空原来的内容,在最后插入内容,否则,清空内容再插入 - * @example - * ```javascript - * //假设设置前的编辑器内容是

    old text

    - * editor.setContent('

    new text

    ', true); //插入的结果是

    old text

    new text

    - * ``` - */ - setContent: function (html, isAppendTo, notFireSelectionchange) { - var me = this; - - me.fireEvent('beforesetcontent', html); - var root = UE.htmlparser(html); - me.filterInputRule(root); - html = root.toHtml(); - - me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html; - - - function isCdataDiv(node){ - return node.tagName == 'DIV' && node.getAttribute('cdata_tag'); - } - //给文本或者inline节点套p标签 - if (me.options.enterTag == 'p') { - - var child = this.body.firstChild, tmpNode; - if (!child || child.nodeType == 1 && - (dtd.$cdata[child.tagName] || isCdataDiv(child) || - domUtils.isCustomeNode(child) - ) - && child === this.body.lastChild) { - this.body.innerHTML = '

    ' + (browser.ie ? ' ' : '
    ') + '

    ' + this.body.innerHTML; - - } else { - var p = me.document.createElement('p'); - while (child) { - while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) { - tmpNode = child.nextSibling; - p.appendChild(child); - child = tmpNode; - } - if (p.firstChild) { - if (!child) { - me.body.appendChild(p); - break; - } else { - child.parentNode.insertBefore(p, child); - p = me.document.createElement('p'); - } - } - child = child.nextSibling; - } - } - } - me.fireEvent('aftersetcontent'); - me.fireEvent('contentchange'); - - !notFireSelectionchange && me._selectionChange(); - //清除保存的选区 - me._bakRange = me._bakIERange = me._bakNativeRange = null; - //trace:1742 setContent后gecko能得到焦点问题 - var geckoSel; - if (browser.gecko && (geckoSel = this.selection.getNative())) { - geckoSel.removeAllRanges(); - } - if(me.options.autoSyncData){ - me.form && setValue(me.form,me); - } - }, - - /** - * 让编辑器获得焦点,默认focus到编辑器头部 - * @method focus - * @example - * ```javascript - * editor.focus() - * ``` - */ - - /** - * 让编辑器获得焦点,toEnd确定focus位置 - * @method focus - * @param { Boolean } toEnd 默认focus到编辑器头部,toEnd为true时focus到内容尾部 - * @example - * ```javascript - * editor.focus(true) - * ``` - */ - focus: function (toEnd) { - try { - var me = this, - rng = me.selection.getRange(); - if (toEnd) { - var node = me.body.lastChild; - if(node && node.nodeType == 1 && !dtd.$empty[node.tagName]){ - if(domUtils.isEmptyBlock(node)){ - rng.setStartAtFirst(node) - }else{ - rng.setStartAtLast(node) - } - rng.collapse(true); - } - rng.setCursor(true); - } else { - if(!rng.collapsed && domUtils.isBody(rng.startContainer) && rng.startOffset == 0){ - - var node = me.body.firstChild; - if(node && node.nodeType == 1 && !dtd.$empty[node.tagName]){ - rng.setStartAtFirst(node).collapse(true); - } - } - - rng.select(true); - - } - this.fireEvent('focus selectionchange'); - } catch (e) { - } - - }, - isFocus:function(){ - return this.selection.isFocus(); - }, - blur:function(){ - var sel = this.selection.getNative(); - if(sel.empty && browser.ie){ - var nativeRng = document.body.createTextRange(); - nativeRng.moveToElementText(document.body); - nativeRng.collapse(true); - nativeRng.select(); - sel.empty() - }else{ - sel.removeAllRanges() - } - - //this.fireEvent('blur selectionchange'); - }, - /** - * 初始化UE事件及部分事件代理 - * @method _initEvents - * @private - */ - _initEvents: function () { - var me = this, - doc = me.document, - win = me.window; - me._proxyDomEvent = utils.bind(me._proxyDomEvent, me); - domUtils.on(doc, ['click', 'contextmenu', 'mousedown', 'keydown', 'keyup', 'keypress', 'mouseup', 'mouseover', 'mouseout', 'selectstart'], me._proxyDomEvent); - domUtils.on(win, ['focus', 'blur'], me._proxyDomEvent); - domUtils.on(me.body,'drop',function(e){ - //阻止ff下默认的弹出新页面打开图片 - if(browser.gecko && e.stopPropagation) { e.stopPropagation(); } - me.fireEvent('contentchange') - }); - domUtils.on(doc, ['mouseup', 'keydown'], function (evt) { - //特殊键不触发selectionchange - if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) { - return; - } - if (evt.button == 2)return; - me._selectionChange(250, evt); - }); - }, - /** - * 触发事件代理 - * @method _proxyDomEvent - * @private - * @return { * } fireEvent的返回值 - * @see UE.EventBase:fireEvent(String) - */ - _proxyDomEvent: function (evt) { - if(this.fireEvent('before' + evt.type.replace(/^on/, '').toLowerCase()) === false){ - return false; - } - if(this.fireEvent(evt.type.replace(/^on/, ''), evt) === false){ - return false; - } - return this.fireEvent('after' + evt.type.replace(/^on/, '').toLowerCase()) - }, - /** - * 变化选区 - * @method _selectionChange - * @private - */ - _selectionChange: function (delay, evt) { - var me = this; - //有光标才做selectionchange 为了解决未focus时点击source不能触发更改工具栏状态的问题(source命令notNeedUndo=1) -// if ( !me.selection.isFocus() ){ -// return; -// } - - - var hackForMouseUp = false; - var mouseX, mouseY; - if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') { - var range = this.selection.getRange(); - if (!range.collapsed) { - hackForMouseUp = true; - mouseX = evt.clientX; - mouseY = evt.clientY; - } - } - clearTimeout(_selectionChangeTimer); - _selectionChangeTimer = setTimeout(function () { - if (!me.selection || !me.selection.getNative()) { - return; - } - //修复一个IE下的bug: 鼠标点击一段已选择的文本中间时,可能在mouseup后的一段时间内取到的range是在selection的type为None下的错误值. - //IE下如果用户是拖拽一段已选择文本,则不会触发mouseup事件,所以这里的特殊处理不会对其有影响 - var ieRange; - if (hackForMouseUp && me.selection.getNative().type == 'None') { - ieRange = me.document.body.createTextRange(); - try { - ieRange.moveToPoint(mouseX, mouseY); - } catch (ex) { - ieRange = null; - } - } - var bakGetIERange; - if (ieRange) { - bakGetIERange = me.selection.getIERange; - me.selection.getIERange = function () { - return ieRange; - }; - } - me.selection.cache(); - if (bakGetIERange) { - me.selection.getIERange = bakGetIERange; - } - if (me.selection._cachedRange && me.selection._cachedStartElement) { - me.fireEvent('beforeselectionchange'); - // 第二个参数causeByUi为true代表由用户交互造成的selectionchange. - me.fireEvent('selectionchange', !!evt); - me.fireEvent('afterselectionchange'); - me.selection.clear(); - } - }, delay || 50); - }, - - /** - * 执行编辑命令 - * @method _callCmdFn - * @private - * @param { String } fnName 函数名称 - * @param { * } args 传给命令函数的参数 - * @return { * } 返回命令函数运行的返回值 - */ - _callCmdFn: function (fnName, args) { - var cmdName = args[0].toLowerCase(), - cmd, cmdFn; - cmd = this.commands[cmdName] || UE.commands[cmdName]; - cmdFn = cmd && cmd[fnName]; - //没有querycommandstate或者没有command的都默认返回0 - if ((!cmd || !cmdFn) && fnName == 'queryCommandState') { - return 0; - } else if (cmdFn) { - return cmdFn.apply(this, args); - } - }, - - /** - * 执行编辑命令cmdName,完成富文本编辑效果 - * @method execCommand - * @param { String } cmdName 需要执行的命令 - * @remind 具体命令的使用请参考命令列表 - * @return { * } 返回命令函数运行的返回值 - * @example - * ```javascript - * editor.execCommand(cmdName); - * ``` - */ - execCommand: function (cmdName) { - cmdName = cmdName.toLowerCase(); - var me = this, - result, - cmd = me.commands[cmdName] || UE.commands[cmdName]; - if (!cmd || !cmd.execCommand) { - return null; - } - if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) { - me.__hasEnterExecCommand = true; - if (me.queryCommandState.apply(me,arguments) != -1) { - me.fireEvent('saveScene'); - me.fireEvent.apply(me, ['beforeexeccommand', cmdName].concat(arguments)); - result = this._callCmdFn('execCommand', arguments); - //保存场景时,做了内容对比,再看是否进行contentchange触发,这里多触发了一次,去掉 -// (!cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange'); - me.fireEvent.apply(me, ['afterexeccommand', cmdName].concat(arguments)); - me.fireEvent('saveScene'); - } - me.__hasEnterExecCommand = false; - } else { - result = this._callCmdFn('execCommand', arguments); - (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange') - } - (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me._selectionChange(); - return result; - }, - - /** - * 根据传入的command命令,查选编辑器当前的选区,返回命令的状态 - * @method queryCommandState - * @param { String } cmdName 需要查询的命令名称 - * @remind 具体命令的使用请参考命令列表 - * @return { Number } number 返回放前命令的状态,返回值三种情况:(-1|0|1) - * @example - * ```javascript - * editor.queryCommandState(cmdName) => (-1|0|1) - * ``` - * @see COMMAND.LIST - */ - queryCommandState: function (cmdName) { - return this._callCmdFn('queryCommandState', arguments); - }, - - /** - * 根据传入的command命令,查选编辑器当前的选区,根据命令返回相关的值 - * @method queryCommandValue - * @param { String } cmdName 需要查询的命令名称 - * @remind 具体命令的使用请参考命令列表 - * @remind 只有部分插件有此方法 - * @return { * } 返回每个命令特定的当前状态值 - * @grammar editor.queryCommandValue(cmdName) => {*} - * @see COMMAND.LIST - */ - queryCommandValue: function (cmdName) { - return this._callCmdFn('queryCommandValue', arguments); - }, - - /** - * 检查编辑区域中是否有内容 - * @method hasContents - * @remind 默认有文本内容,或者有以下节点都不认为是空 - * table,ul,ol,dl,iframe,area,base,col,hr,img,embed,input,link,meta,param - * @return { Boolean } 检查有内容返回true,否则返回false - * @example - * ```javascript - * editor.hasContents() - * ``` - */ - - /** - * 检查编辑区域中是否有内容,若包含参数tags中的节点类型,直接返回true - * @method hasContents - * @param { Array } tags 传入数组判断时用到的节点类型 - * @return { Boolean } 若文档中包含tags数组里对应的tag,返回true,否则返回false - * @example - * ```javascript - * editor.hasContents(['span']); - * ``` - */ - hasContents: function (tags) { - if (tags) { - for (var i = 0, ci; ci = tags[i++];) { - if (this.document.getElementsByTagName(ci).length > 0) { - return true; - } - } - } - if (!domUtils.isEmptyBlock(this.body)) { - return true - } - //随时添加,定义的特殊标签如果存在,不能认为是空 - tags = ['div']; - for (i = 0; ci = tags[i++];) { - var nodes = domUtils.getElementsByTagName(this.document, ci); - for (var n = 0, cn; cn = nodes[n++];) { - if (domUtils.isCustomeNode(cn)) { - return true; - } - } - } - return false; - }, - - /** - * 重置编辑器,可用来做多个tab使用同一个编辑器实例 - * @method reset - * @remind 此方法会清空编辑器内容,清空回退列表,会触发reset事件 - * @example - * ```javascript - * editor.reset() - * ``` - */ - reset: function () { - this.fireEvent('reset'); - }, - - /** - * 设置当前编辑区域可以编辑 - * @method setEnabled - * @example - * ```javascript - * editor.setEnabled() - * ``` - */ - setEnabled: function () { - var me = this, range; - if (me.body.contentEditable == 'false') { - me.body.contentEditable = true; - range = me.selection.getRange(); - //有可能内容丢失了 - try { - range.moveToBookmark(me.lastBk); - delete me.lastBk - } catch (e) { - range.setStartAtFirst(me.body).collapse(true) - } - range.select(true); - if (me.bkqueryCommandState) { - me.queryCommandState = me.bkqueryCommandState; - delete me.bkqueryCommandState; - } - if (me.bkqueryCommandValue) { - me.queryCommandValue = me.bkqueryCommandValue; - delete me.bkqueryCommandValue; - } - me.fireEvent('selectionchange'); - } - }, - enable: function () { - return this.setEnabled(); - }, - - /** 设置当前编辑区域不可编辑 - * @method setDisabled - */ - - /** 设置当前编辑区域不可编辑,except中的命令除外 - * @method setDisabled - * @param { String } except 例外命令的字符串 - * @remind 即使设置了disable,此处配置的例外命令仍然可以执行 - * @example - * ```javascript - * editor.setDisabled('bold'); //禁用工具栏中除加粗之外的所有功能 - * ``` - */ - - /** 设置当前编辑区域不可编辑,except中的命令除外 - * @method setDisabled - * @param { Array } except 例外命令的字符串数组,数组中的命令仍然可以执行 - * @remind 即使设置了disable,此处配置的例外命令仍然可以执行 - * @example - * ```javascript - * editor.setDisabled(['bold','insertimage']); //禁用工具栏中除加粗和插入图片之外的所有功能 - * ``` - */ - setDisabled: function (except) { - var me = this; - except = except ? utils.isArray(except) ? except : [except] : []; - if (me.body.contentEditable == 'true') { - if (!me.lastBk) { - me.lastBk = me.selection.getRange().createBookmark(true); - } - me.body.contentEditable = false; - me.bkqueryCommandState = me.queryCommandState; - me.bkqueryCommandValue = me.queryCommandValue; - me.queryCommandState = function (type) { - if (utils.indexOf(except, type) != -1) { - return me.bkqueryCommandState.apply(me, arguments); - } - return -1; - }; - me.queryCommandValue = function (type) { - if (utils.indexOf(except, type) != -1) { - return me.bkqueryCommandValue.apply(me, arguments); - } - return null; - }; - me.fireEvent('selectionchange'); - } - }, - disable: function (except) { - return this.setDisabled(except); - }, - - /** - * 设置默认内容 - * @method _setDefaultContent - * @private - * @param { String } cont 要存入的内容 - */ - _setDefaultContent: function () { - function clear() { - var me = this; - if (me.document.getElementById('initContent')) { - me.body.innerHTML = '

    ' + (ie ? '' : '
    ') + '

    '; - me.removeListener('firstBeforeExecCommand focus', clear); - setTimeout(function () { - me.focus(); - me._selectionChange(); - }, 0) - } - } - - return function (cont) { - var me = this; - me.body.innerHTML = '

    ' + cont + '

    '; - - me.addListener('firstBeforeExecCommand focus', clear); - } - }(), - - /** - * 显示编辑器 - * @method setShow - * @example - * ```javascript - * editor.setShow() - * ``` - */ - setShow: function () { - var me = this, range = me.selection.getRange(); - if (me.container.style.display == 'none') { - //有可能内容丢失了 - try { - range.moveToBookmark(me.lastBk); - delete me.lastBk - } catch (e) { - range.setStartAtFirst(me.body).collapse(true) - } - //ie下focus实效,所以做了个延迟 - setTimeout(function () { - range.select(true); - }, 100); - me.container.style.display = ''; - } - - }, - show: function () { - return this.setShow(); - }, - /** - * 隐藏编辑器 - * @method setHide - * @example - * ```javascript - * editor.setHide() - * ``` - */ - setHide: function () { - var me = this; - if (!me.lastBk) { - me.lastBk = me.selection.getRange().createBookmark(true); - } - me.container.style.display = 'none' - }, - hide: function () { - return this.setHide(); - }, - - /** - * 根据指定的路径,获取对应的语言资源 - * @method getLang - * @param { String } path 路径根据的是lang目录下的语言文件的路径结构 - * @return { Object | String } 根据路径返回语言资源的Json格式对象或者语言字符串 - * @example - * ```javascript - * editor.getLang('contextMenu.delete'); //如果当前是中文,那返回是的是'删除' - * ``` - */ - getLang: function (path) { - // HaoChuan9421 - if(!this.options){ - return ''; - } - var lang = UE.I18N[this.options.lang]; - if (!lang) { - throw Error("not import language file"); - } - path = (path || "").split("."); - for (var i = 0, ci; ci = path[i++];) { - lang = lang[ci]; - if (!lang)break; - } - return lang; - }, - - /** - * 计算编辑器html内容字符串的长度 - * @method getContentLength - * @return { Number } 返回计算的长度 - * @example - * ```javascript - * //编辑器html内容

    132

    - * editor.getContentLength() //返回27 - * ``` - */ - /** - * 计算编辑器当前纯文本内容的长度 - * @method getContentLength - * @param { Boolean } ingoneHtml 传入true时,只按照纯文本来计算 - * @return { Number } 返回计算的长度,内容中有hr/img/iframe标签,长度加1 - * @example - * ```javascript - * //编辑器html内容

    132

    - * editor.getContentLength() //返回3 - * ``` - */ - getContentLength: function (ingoneHtml, tagNames) { - var count = this.getContent(false,false,true).length; - if (ingoneHtml) { - tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']); - count = this.getContentTxt().replace(/[\t\r\n]+/g, '').length; - for (var i = 0, ci; ci = tagNames[i++];) { - count += this.document.getElementsByTagName(ci).length; - } - } - return count; - }, - - /** - * 注册输入过滤规则 - * @method addInputRule - * @param { Function } rule 要添加的过滤规则 - * @example - * ```javascript - * editor.addInputRule(function(root){ - * $.each(root.getNodesByTagName('div'),function(i,node){ - * node.tagName="p"; - * }); - * }); - * ``` - */ - addInputRule: function (rule) { - this.inputRules.push(rule); - }, - - /** - * 执行注册的过滤规则 - * @method filterInputRule - * @param { UE.uNode } root 要过滤的uNode节点 - * @remind 执行editor.setContent方法和执行'inserthtml'命令后,会运行该过滤函数 - * @example - * ```javascript - * editor.filterInputRule(editor.body); - * ``` - * @see UE.Editor:addInputRule - */ - filterInputRule: function (root) { - for (var i = 0, ci; ci = this.inputRules[i++];) { - ci.call(this, root) - } - }, - - /** - * 注册输出过滤规则 - * @method addOutputRule - * @param { Function } rule 要添加的过滤规则 - * @example - * ```javascript - * editor.addOutputRule(function(root){ - * $.each(root.getNodesByTagName('p'),function(i,node){ - * node.tagName="div"; - * }); - * }); - * ``` - */ - addOutputRule: function (rule) { - this.outputRules.push(rule) - }, - - /** - * 根据输出过滤规则,过滤编辑器内容 - * @method filterOutputRule - * @remind 执行editor.getContent方法的时候,会先运行该过滤函数 - * @param { UE.uNode } root 要过滤的uNode节点 - * @example - * ```javascript - * editor.filterOutputRule(editor.body); - * ``` - * @see UE.Editor:addOutputRule - */ - filterOutputRule: function (root) { - for (var i = 0, ci; ci = this.outputRules[i++];) { - ci.call(this, root) - } - }, - - /** - * 根据action名称获取请求的路径 - * @method getActionUrl - * @remind 假如没有设置serverUrl,会根据imageUrl设置默认的controller路径 - * @param { String } action action名称 - * @example - * ```javascript - * editor.getActionUrl('config'); //返回 "/ueditor/php/controller.php?action=config" - * editor.getActionUrl('image'); //返回 "/ueditor/php/controller.php?action=uplaodimage" - * editor.getActionUrl('scrawl'); //返回 "/ueditor/php/controller.php?action=uplaodscrawl" - * editor.getActionUrl('imageManager'); //返回 "/ueditor/php/controller.php?action=listimage" - * ``` - */ - getActionUrl: function(action){ - var actionName = this.getOpt(action) || action, - imageUrl = this.getOpt('imageUrl'), - serverUrl = this.getOpt('serverUrl'); - - if(!serverUrl && imageUrl) { - serverUrl = imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2'); - } - - if(serverUrl) { - serverUrl = serverUrl + (serverUrl.indexOf('?') == -1 ? '?':'&') + 'action=' + (actionName || ''); - return utils.formatUrl(serverUrl); - } else { - return ''; - } - } - }; - utils.inherits(Editor, EventBase); -})(); - - -// core/Editor.defaultoptions.js -//维护编辑器一下默认的不在插件中的配置项 -UE.Editor.defaultOptions = function(editor){ - - var _url = editor.options.UEDITOR_HOME_URL; - return { - isShow: true, - initialContent: '', - initialStyle:'', - autoClearinitialContent: false, - iframeCssUrl: _url + 'themes/iframe.css', - textarea: 'editorValue', - focus: false, - focusInEnd: true, - autoClearEmptyNode: true, - fullscreen: false, - readonly: false, - zIndex: 999, - imagePopup: true, - enterTag: 'p', - customDomain: false, - lang: 'zh-cn', - langPath: _url + 'lang/', - theme: 'default', - themePath: _url + 'themes/', - allHtmlEnabled: false, - scaleEnabled: false, - tableNativeEditInFF: false, - autoSyncData : true, - fileNameFormat: '{time}{rand:6}' - } -}; - -// core/loadconfig.js -(function(){ - - UE.Editor.prototype.loadServerConfig = function(){ - var me = this; - setTimeout(function(){ - try{ - me.options.imageUrl && me.setOpt('serverUrl', me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2')); - - var configUrl = me.getActionUrl('config'), - isJsonp = utils.isCrossDomainUrl(configUrl); - - /* 发出ajax请求 */ - me._serverConfigLoaded = false; - - configUrl && UE.ajax.request(configUrl,{ - 'method': 'GET', - 'dataType': isJsonp ? 'jsonp':'', - 'onsuccess':function(r){ - try { - var config = isJsonp ? r:eval("("+r.responseText+")"); - utils.extend(me.options, config); - me.fireEvent('serverConfigLoaded'); - me._serverConfigLoaded = true; - } catch (e) { - showErrorMsg(me.getLang('loadconfigFormatError')); - } - }, - 'onerror':function(){ - showErrorMsg(me.getLang('loadconfigHttpError')); - } - }); - } catch(e){ - showErrorMsg(me.getLang('loadconfigError')); - } - }); - - function showErrorMsg(msg) { - console && console.error(msg); - //me.fireEvent('showMessage', { - // 'title': msg, - // 'type': 'error' - //}); - } - }; - - UE.Editor.prototype.isServerConfigLoaded = function(){ - var me = this; - return me._serverConfigLoaded || false; - }; - - UE.Editor.prototype.afterConfigReady = function(handler){ - if (!handler || !utils.isFunction(handler)) return; - var me = this; - var readyHandler = function(){ - handler.apply(me, arguments); - me.removeListener('serverConfigLoaded', readyHandler); - }; - - if (me.isServerConfigLoaded()) { - handler.call(me, 'serverConfigLoaded'); - } else { - me.addListener('serverConfigLoaded', readyHandler); - } - }; - -})(); - - -// core/ajax.js -/** - * @file - * @module UE.ajax - * @since 1.2.6.1 - */ - -/** - * 提供对ajax请求的支持 - * @module UE.ajax - */ -UE.ajax = function() { - - //创建一个ajaxRequest对象 - var fnStr = 'XMLHttpRequest()'; - try { - new ActiveXObject("Msxml2.XMLHTTP"); - fnStr = 'ActiveXObject(\'Msxml2.XMLHTTP\')'; - } catch (e) { - try { - new ActiveXObject("Microsoft.XMLHTTP"); - fnStr = 'ActiveXObject(\'Microsoft.XMLHTTP\')' - } catch (e) { - } - } - var creatAjaxRequest = new Function('return new ' + fnStr); - - - /** - * 将json参数转化成适合ajax提交的参数列表 - * @param json - */ - function json2str(json) { - var strArr = []; - for (var i in json) { - //忽略默认的几个参数 - if(i=="method" || i=="timeout" || i=="async" || i=="dataType" || i=="callback") continue; - //忽略控制 - if(json[i] == undefined || json[i] == null) continue; - //传递过来的对象和函数不在提交之列 - if (!((typeof json[i]).toLowerCase() == "function" || (typeof json[i]).toLowerCase() == "object")) { - strArr.push( encodeURIComponent(i) + "="+encodeURIComponent(json[i]) ); - } else if (utils.isArray(json[i])) { - //支持传数组内容 - for(var j = 0; j < json[i].length; j++) { - strArr.push( encodeURIComponent(i) + "[]="+encodeURIComponent(json[i][j]) ); - } - } - } - return strArr.join("&"); - } - - function doAjax(url, ajaxOptions) { - var xhr = creatAjaxRequest(), - //是否超时 - timeIsOut = false, - //默认参数 - defaultAjaxOptions = { - method:"POST", - timeout:5000, - async:true, - data:{},//需要传递对象的话只能覆盖 - onsuccess:function() { - }, - onerror:function() { - } - }; - - if (typeof url === "object") { - ajaxOptions = url; - url = ajaxOptions.url; - } - if (!xhr || !url) return; - var ajaxOpts = ajaxOptions ? utils.extend(defaultAjaxOptions,ajaxOptions) : defaultAjaxOptions; - - var submitStr = json2str(ajaxOpts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing" - //如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串 - if (!utils.isEmptyObject(ajaxOpts.data)){ - submitStr += (submitStr? "&":"") + json2str(ajaxOpts.data); - } - //超时检测 - var timerID = setTimeout(function() { - if (xhr.readyState != 4) { - timeIsOut = true; - xhr.abort(); - clearTimeout(timerID); - } - }, ajaxOpts.timeout); - - var method = ajaxOpts.method.toUpperCase(); - var str = url + (url.indexOf("?")==-1?"?":"&") + (method=="POST"?"":submitStr+ "&noCache=" + +new Date); - xhr.open(method, str, ajaxOpts.async); - xhr.onreadystatechange = function() { - if (xhr.readyState == 4) { - if (!timeIsOut && xhr.status == 200) { - ajaxOpts.onsuccess(xhr); - } else { - ajaxOpts.onerror(xhr); - } - } - }; - if (method == "POST") { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - xhr.send(submitStr); - } else { - xhr.send(null); - } - } - - function doJsonp(url, opts) { - - var successhandler = opts.onsuccess || function(){}, - scr = document.createElement('SCRIPT'), - options = opts || {}, - charset = options['charset'], - callbackField = options['jsonp'] || 'callback', - callbackFnName, - timeOut = options['timeOut'] || 0, - timer, - reg = new RegExp('(\\?|&)' + callbackField + '=([^&]*)'), - matches; - - if (utils.isFunction(successhandler)) { - callbackFnName = 'bd__editor__' + Math.floor(Math.random() * 2147483648).toString(36); - window[callbackFnName] = getCallBack(0); - } else if(utils.isString(successhandler)){ - callbackFnName = successhandler; - } else { - if (matches = reg.exec(url)) { - callbackFnName = matches[2]; - } - } - - url = url.replace(reg, '\x241' + callbackField + '=' + callbackFnName); - - if (url.search(reg) < 0) { - url += (url.indexOf('?') < 0 ? '?' : '&') + callbackField + '=' + callbackFnName; - } - - var queryStr = json2str(opts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing" - //如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串 - if (!utils.isEmptyObject(opts.data)){ - queryStr += (queryStr? "&":"") + json2str(opts.data); - } - if (queryStr) { - url = url.replace(/\?/, '?' + queryStr + '&'); - } - - scr.onerror = getCallBack(1); - if( timeOut ){ - timer = setTimeout(getCallBack(1), timeOut); - } - createScriptTag(scr, url, charset); - - function createScriptTag(scr, url, charset) { - scr.setAttribute('type', 'text/javascript'); - scr.setAttribute('defer', 'defer'); - charset && scr.setAttribute('charset', charset); - scr.setAttribute('src', url); - document.getElementsByTagName('head')[0].appendChild(scr); - } - - function getCallBack(onTimeOut){ - return function(){ - try { - if(onTimeOut){ - options.onerror && options.onerror(); - }else{ - try{ - clearTimeout(timer); - successhandler.apply(window, arguments); - } catch (e){} - } - } catch (exception) { - options.onerror && options.onerror.call(window, exception); - } finally { - options.oncomplete && options.oncomplete.apply(window, arguments); - scr.parentNode && scr.parentNode.removeChild(scr); - window[callbackFnName] = null; - try { - delete window[callbackFnName]; - }catch(e){} - } - } - } - } - - return { - /** - * 根据给定的参数项,向指定的url发起一个ajax请求。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求 - * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调 - * @method request - * @param { URLString } url ajax请求的url地址 - * @param { Object } ajaxOptions ajax请求选项的键值对,支持的选项如下: - * @example - * ```javascript - * //向sayhello.php发起一个异步的Ajax GET请求, 请求超时时间为10s, 请求完成后执行相应的回调。 - * UE.ajax.requeset( 'sayhello.php', { - * - * //请求方法。可选值: 'GET', 'POST',默认值是'POST' - * method: 'GET', - * - * //超时时间。 默认为5000, 单位是ms - * timeout: 10000, - * - * //是否是异步请求。 true为异步请求, false为同步请求 - * async: true, - * - * //请求携带的数据。如果请求为GET请求, data会经过stringify后附加到请求url之后。 - * data: { - * name: 'ueditor' - * }, - * - * //请求成功后的回调, 该回调接受当前的XMLHttpRequest对象作为参数。 - * onsuccess: function ( xhr ) { - * console.log( xhr.responseText ); - * }, - * - * //请求失败或者超时后的回调。 - * onerror: function ( xhr ) { - * alert( 'Ajax请求失败' ); - * } - * - * } ); - * ``` - */ - - /** - * 根据给定的参数项发起一个ajax请求, 参数项里必须包含一个url地址。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求 - * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调。 - * @method request - * @warning 如果在参数项里未提供一个key为“url”的地址值,则该请求将直接退出。 - * @param { Object } ajaxOptions ajax请求选项的键值对,支持的选项如下: - * @example - * ```javascript - * - * //向sayhello.php发起一个异步的Ajax POST请求, 请求超时时间为5s, 请求完成后不执行任何回调。 - * UE.ajax.requeset( 'sayhello.php', { - * - * //请求的地址, 该项是必须的。 - * url: 'sayhello.php' - * - * } ); - * ``` - */ - request:function(url, opts) { - if (opts && opts.dataType == 'jsonp') { - doJsonp(url, opts); - } else { - doAjax(url, opts); - } - }, - getJSONP:function(url, data, fn) { - var opts = { - 'data': data, - 'oncomplete': fn - }; - doJsonp(url, opts); - } - }; - - -}(); - - -// core/filterword.js -/** - * UE过滤word的静态方法 - * @file - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @module UE - */ - - -/** - * 根据传入html字符串过滤word - * @module UE - * @since 1.2.6.1 - * @method filterWord - * @param { String } html html字符串 - * @return { String } 已过滤后的结果字符串 - * @example - * ```javascript - * UE.filterWord(html); - * ``` - */ -var filterWord = UE.filterWord = function () { - - //是否是word过来的内容 - function isWordDocument( str ) { - return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/ig.test( str ); - } - //去掉小数 - function transUnit( v ) { - v = v.replace( /[\d.]+\w+/g, function ( m ) { - return utils.transUnitToPx(m); - } ); - return v; - } - - function filterPasteWord( str ) { - return str.replace(/[\t\r\n]+/g,' ') - .replace( //ig, "" ) - //转换图片 - .replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(str){ - //opera能自己解析出image所这里直接返回空 - if(browser.opera){ - return ''; - } - try{ - //有可能是bitmap占为图,无用,直接过滤掉,主要体现在粘贴excel表格中 - if(/Bitmap/i.test(str)){ - return ''; - } - var width = str.match(/width:([ \d.]*p[tx])/i)[1], - height = str.match(/height:([ \d.]*p[tx])/i)[1], - src = str.match(/src=\s*"([^"]*)"/i)[1]; - return ''; - } catch(e){ - return ''; - } - }) - //针对wps添加的多余标签处理 - .replace(/<\/?div[^>]*>/g,'') - //去掉多余的属性 - .replace( /v:\w+=(["']?)[^'"]+\1/g, '' ) - .replace( /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi, "" ) - .replace( /

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "

    $1

    " ) - //去掉多余的属性 - .replace( /\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/ig, function(str,name,marks,val){ - //保留list的标示 - return name == 'class' && val == 'MsoListParagraph' ? str : '' - }) - //清除多余的font/span不能匹配 有可能是空格 - .replace( /<(font|span)[^>]*>(\s*)<\/\1>/gi, function(a,b,c){ - return c.replace(/[\t\r\n ]+/g,' ') - }) - //处理style的问题 - .replace( /(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi, function( str, tag, tmp, style ) { - var n = [], - s = style.replace( /^\s+|\s+$/, '' ) - .replace(/'/g,'\'') - .replace( /"/gi, "'" ) - .replace(/[\d.]+(cm|pt)/g,function(str){ - return utils.transUnitToPx(str) - }) - .split( /;\s*/g ); - - for ( var i = 0,v; v = s[i];i++ ) { - - var name, value, - parts = v.split( ":" ); - - if ( parts.length == 2 ) { - name = parts[0].toLowerCase(); - value = parts[1].toLowerCase(); - if(/^(background)\w*/.test(name) && value.replace(/(initial|\s)/g,'').length == 0 - || - /^(margin)\w*/.test(name) && /^0\w+$/.test(value) - ){ - continue; - } - - switch ( name ) { - case "mso-padding-alt": - case "mso-padding-top-alt": - case "mso-padding-right-alt": - case "mso-padding-bottom-alt": - case "mso-padding-left-alt": - case "mso-margin-alt": - case "mso-margin-top-alt": - case "mso-margin-right-alt": - case "mso-margin-bottom-alt": - case "mso-margin-left-alt": - //ie下会出现挤到一起的情况 - //case "mso-table-layout-alt": - case "mso-height": - case "mso-width": - case "mso-vertical-align-alt": - //trace:1819 ff下会解析出padding在table上 - if(!/]/.test(html)) { - return UE.htmlparser(html).children[0] - } else { - return new uNode({ - type:'element', - children:[], - tagName:html - }) - } - }; - uNode.createText = function (data,noTrans) { - return new UE.uNode({ - type:'text', - 'data':noTrans ? data : utils.unhtml(data || '') - }) - }; - function nodeToHtml(node, arr, formatter, current) { - switch (node.type) { - case 'root': - for (var i = 0, ci; ci = node.children[i++];) { - //插入新行 - if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) { - insertLine(arr, current, true); - insertIndent(arr, current) - } - nodeToHtml(ci, arr, formatter, current) - } - break; - case 'text': - isText(node, arr); - break; - case 'element': - isElement(node, arr, formatter, current); - break; - case 'comment': - isComment(node, arr, formatter); - } - return arr; - } - - function isText(node, arr) { - if(node.parentNode.tagName == 'pre'){ - //源码模式下输入html标签,不能做转换处理,直接输出 - arr.push(node.data) - }else{ - arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,'  ')) - } - - } - - function isElement(node, arr, formatter, current) { - var attrhtml = ''; - if (node.attrs) { - attrhtml = []; - var attrs = node.attrs; - for (var a in attrs) { - //这里就针对 - //

    '

    - //这里边的\"做转换,要不用innerHTML直接被截断了,属性src - //有可能做的不够 - attrhtml.push(a + (attrs[a] !== undefined ? '="' + (notTransAttrs[a] ? utils.html(attrs[a]).replace(/["]/g, function (a) { - return '"' - }) : utils.unhtml(attrs[a])) + '"' : '')) - } - attrhtml = attrhtml.join(' '); - } - arr.push('<' + node.tagName + - (attrhtml ? ' ' + attrhtml : '') + - (dtd.$empty[node.tagName] ? '\/' : '' ) + '>' - ); - //插入新行 - if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') { - if(node.children && node.children.length){ - current = insertLine(arr, current, true); - insertIndent(arr, current) - } - - } - if (node.children && node.children.length) { - for (var i = 0, ci; ci = node.children[i++];) { - if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) { - insertLine(arr, current); - insertIndent(arr, current) - } - nodeToHtml(ci, arr, formatter, current) - } - } - if (!dtd.$empty[node.tagName]) { - if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') { - - if(node.children && node.children.length){ - current = insertLine(arr, current); - insertIndent(arr, current) - } - } - arr.push('<\/' + node.tagName + '>'); - } - - } - - function isComment(node, arr) { - arr.push(''); - } - - function getNodeById(root, id) { - var node; - if (root.type == 'element' && root.getAttr('id') == id) { - return root; - } - if (root.children && root.children.length) { - for (var i = 0, ci; ci = root.children[i++];) { - if (node = getNodeById(ci, id)) { - return node; - } - } - } - } - - function getNodesByTagName(node, tagName, arr) { - if (node.type == 'element' && node.tagName == tagName) { - arr.push(node); - } - if (node.children && node.children.length) { - for (var i = 0, ci; ci = node.children[i++];) { - getNodesByTagName(ci, tagName, arr) - } - } - } - function nodeTraversal(root,fn){ - if(root.children && root.children.length){ - for(var i= 0,ci;ci=root.children[i];){ - nodeTraversal(ci,fn); - //ci被替换的情况,这里就不再走 fn了 - if(ci.parentNode ){ - if(ci.children && ci.children.length){ - fn(ci) - } - if(ci.parentNode) i++ - } - } - }else{ - fn(root) - } - - } - uNode.prototype = { - - /** - * 当前节点对象,转换成html文本 - * @method toHtml - * @return { String } 返回转换后的html字符串 - * @example - * ```javascript - * node.toHtml(); - * ``` - */ - - /** - * 当前节点对象,转换成html文本 - * @method toHtml - * @param { Boolean } formatter 是否格式化返回值 - * @return { String } 返回转换后的html字符串 - * @example - * ```javascript - * node.toHtml( true ); - * ``` - */ - toHtml:function (formatter) { - var arr = []; - nodeToHtml(this, arr, formatter, 0); - return arr.join('') - }, - - /** - * 获取节点的html内容 - * @method innerHTML - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @return { String } 返回节点的html内容 - * @example - * ```javascript - * var htmlstr = node.innerHTML(); - * ``` - */ - - /** - * 设置节点的html内容 - * @method innerHTML - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @param { String } htmlstr 传入要设置的html内容 - * @return { UE.uNode } 返回节点本身 - * @example - * ```javascript - * node.innerHTML('text'); - * ``` - */ - innerHTML:function (htmlstr) { - if (this.type != 'element' || dtd.$empty[this.tagName]) { - return this; - } - if (utils.isString(htmlstr)) { - if(this.children){ - for (var i = 0, ci; ci = this.children[i++];) { - ci.parentNode = null; - } - } - this.children = []; - var tmpRoot = UE.htmlparser(htmlstr); - for (var i = 0, ci; ci = tmpRoot.children[i++];) { - this.children.push(ci); - ci.parentNode = this; - } - return this; - } else { - var tmpRoot = new UE.uNode({ - type:'root', - children:this.children - }); - return tmpRoot.toHtml(); - } - }, - - /** - * 获取节点的纯文本内容 - * @method innerText - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @return { String } 返回节点的存文本内容 - * @example - * ```javascript - * var textStr = node.innerText(); - * ``` - */ - - /** - * 设置节点的纯文本内容 - * @method innerText - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @param { String } textStr 传入要设置的文本内容 - * @return { UE.uNode } 返回节点本身 - * @example - * ```javascript - * node.innerText('text'); - * ``` - */ - innerText:function (textStr,noTrans) { - if (this.type != 'element' || dtd.$empty[this.tagName]) { - return this; - } - if (textStr) { - if(this.children){ - for (var i = 0, ci; ci = this.children[i++];) { - ci.parentNode = null; - } - } - this.children = []; - this.appendChild(uNode.createText(textStr,noTrans)); - return this; - } else { - return this.toHtml().replace(/<[^>]+>/g, ''); - } - }, - - /** - * 获取当前对象的data属性 - * @method getData - * @return { Object } 若节点的type值是elemenet,返回空字符串,否则返回节点的data属性 - * @example - * ```javascript - * node.getData(); - * ``` - */ - getData:function () { - if (this.type == 'element') - return ''; - return this.data - }, - - /** - * 获取当前节点下的第一个子节点 - * @method firstChild - * @return { UE.uNode } 返回第一个子节点 - * @example - * ```javascript - * node.firstChild(); //返回第一个子节点 - * ``` - */ - firstChild:function () { -// if (this.type != 'element' || dtd.$empty[this.tagName]) { -// return this; -// } - return this.children ? this.children[0] : null; - }, - - /** - * 获取当前节点下的最后一个子节点 - * @method lastChild - * @return { UE.uNode } 返回最后一个子节点 - * @example - * ```javascript - * node.lastChild(); //返回最后一个子节点 - * ``` - */ - lastChild:function () { -// if (this.type != 'element' || dtd.$empty[this.tagName] ) { -// return this; -// } - return this.children ? this.children[this.children.length - 1] : null; - }, - - /** - * 获取和当前节点有相同父亲节点的前一个节点 - * @method previousSibling - * @return { UE.uNode } 返回前一个节点 - * @example - * ```javascript - * node.children[2].previousSibling(); //返回子节点node.children[1] - * ``` - */ - previousSibling : function(){ - var parent = this.parentNode; - for (var i = 0, ci; ci = parent.children[i]; i++) { - if (ci === this) { - return i == 0 ? null : parent.children[i-1]; - } - } - - }, - - /** - * 获取和当前节点有相同父亲节点的后一个节点 - * @method nextSibling - * @return { UE.uNode } 返回后一个节点,找不到返回null - * @example - * ```javascript - * node.children[2].nextSibling(); //如果有,返回子节点node.children[3] - * ``` - */ - nextSibling : function(){ - var parent = this.parentNode; - for (var i = 0, ci; ci = parent.children[i++];) { - if (ci === this) { - return parent.children[i]; - } - } - }, - - /** - * 用新的节点替换当前节点 - * @method replaceChild - * @param { UE.uNode } target 要替换成该节点参数 - * @param { UE.uNode } source 要被替换掉的节点 - * @return { UE.uNode } 返回替换之后的节点对象 - * @example - * ```javascript - * node.replaceChild(newNode, childNode); //用newNode替换childNode,childNode是node的子节点 - * ``` - */ - replaceChild:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i, 1, target); - source.parentNode = null; - target.parentNode = this; - return target; - } - } - } - }, - - /** - * 在节点的子节点列表最后位置插入一个节点 - * @method appendChild - * @param { UE.uNode } node 要插入的节点 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.appendChild( newNode ); //在node内插入子节点newNode - * ``` - */ - appendChild:function (node) { - if (this.type == 'root' || (this.type == 'element' && !dtd.$empty[this.tagName])) { - if (!this.children) { - this.children = [] - } - if(node.parentNode){ - node.parentNode.removeChild(node); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === node) { - this.children.splice(i, 1); - break; - } - } - this.children.push(node); - node.parentNode = this; - return node; - } - - - }, - - /** - * 在传入节点的前面插入一个节点 - * @method insertBefore - * @param { UE.uNode } target 要插入的节点 - * @param { UE.uNode } source 在该参数节点前面插入 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.parentNode.insertBefore(newNode, node); //在node节点后面插入newNode - * ``` - */ - insertBefore:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i, 0, target); - target.parentNode = this; - return target; - } - } - - } - }, - - /** - * 在传入节点的后面插入一个节点 - * @method insertAfter - * @param { UE.uNode } target 要插入的节点 - * @param { UE.uNode } source 在该参数节点后面插入 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.parentNode.insertAfter(newNode, node); //在node节点后面插入newNode - * ``` - */ - insertAfter:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i + 1, 0, target); - target.parentNode = this; - return target; - } - - } - } - }, - - /** - * 从当前节点的子节点列表中,移除节点 - * @method removeChild - * @param { UE.uNode } node 要移除的节点引用 - * @param { Boolean } keepChildren 是否保留移除节点的子节点,若传入true,自动把移除节点的子节点插入到移除的位置 - * @return { * } 返回刚移除的子节点 - * @example - * ```javascript - * node.removeChild(childNode,true); //在node的子节点列表中移除child节点,并且吧child的子节点插入到移除的位置 - * ``` - */ - removeChild:function (node,keepChildren) { - if (this.children) { - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === node) { - this.children.splice(i, 1); - ci.parentNode = null; - if(keepChildren && ci.children && ci.children.length){ - for(var j= 0,cj;cj=ci.children[j];j++){ - this.children.splice(i+j,0,cj); - cj.parentNode = this; - - } - } - return ci; - } - } - } - }, - - /** - * 获取当前节点所代表的元素属性,即获取attrs对象下的属性值 - * @method getAttr - * @param { String } attrName 要获取的属性名称 - * @return { * } 返回attrs对象下的属性值 - * @example - * ```javascript - * node.getAttr('title'); - * ``` - */ - getAttr:function (attrName) { - return this.attrs && this.attrs[attrName.toLowerCase()] - }, - - /** - * 设置当前节点所代表的元素属性,即设置attrs对象下的属性值 - * @method setAttr - * @param { String } attrName 要设置的属性名称 - * @param { * } attrVal 要设置的属性值,类型视设置的属性而定 - * @return { * } 返回attrs对象下的属性值 - * @example - * ```javascript - * node.setAttr('title','标题'); - * ``` - */ - setAttr:function (attrName, attrVal) { - if (!attrName) { - delete this.attrs; - return; - } - if(!this.attrs){ - this.attrs = {}; - } - if (utils.isObject(attrName)) { - for (var a in attrName) { - if (!attrName[a]) { - delete this.attrs[a] - } else { - this.attrs[a.toLowerCase()] = attrName[a]; - } - } - } else { - if (!attrVal) { - delete this.attrs[attrName] - } else { - this.attrs[attrName.toLowerCase()] = attrVal; - } - - } - }, - - /** - * 获取当前节点在父节点下的位置索引 - * @method getIndex - * @return { Number } 返回索引数值,如果没有父节点,返回-1 - * @example - * ```javascript - * node.getIndex(); - * ``` - */ - getIndex:function(){ - var parent = this.parentNode; - for(var i= 0,ci;ci=parent.children[i];i++){ - if(ci === this){ - return i; - } - } - return -1; - }, - - /** - * 在当前节点下,根据id查找节点 - * @method getNodeById - * @param { String } id 要查找的id - * @return { UE.uNode } 返回找到的节点 - * @example - * ```javascript - * node.getNodeById('textId'); - * ``` - */ - getNodeById:function (id) { - var node; - if (this.children && this.children.length) { - for (var i = 0, ci; ci = this.children[i++];) { - if (node = getNodeById(ci, id)) { - return node; - } - } - } - }, - - /** - * 在当前节点下,根据元素名称查找节点列表 - * @method getNodesByTagName - * @param { String } tagNames 要查找的元素名称 - * @return { Array } 返回找到的节点列表 - * @example - * ```javascript - * node.getNodesByTagName('span'); - * ``` - */ - getNodesByTagName:function (tagNames) { - tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, ' ').split(' '); - var arr = [], me = this; - utils.each(tagNames, function (tagName) { - if (me.children && me.children.length) { - for (var i = 0, ci; ci = me.children[i++];) { - getNodesByTagName(ci, tagName, arr) - } - } - }); - return arr; - }, - - /** - * 根据样式名称,获取节点的样式值 - * @method getStyle - * @param { String } name 要获取的样式名称 - * @return { String } 返回样式值 - * @example - * ```javascript - * node.getStyle('font-size'); - * ``` - */ - getStyle:function (name) { - var cssStyle = this.getAttr('style'); - if (!cssStyle) { - return '' - } - var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+)','i'); - var match = cssStyle.match(reg); - if (match && match[0]) { - return match[2] - } - return ''; - }, - - /** - * 给节点设置样式 - * @method setStyle - * @param { String } name 要设置的的样式名称 - * @param { String } val 要设置的的样值 - * @example - * ```javascript - * node.setStyle('font-size', '12px'); - * ``` - */ - setStyle:function (name, val) { - function exec(name, val) { - var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+;?)', 'gi'); - cssStyle = cssStyle.replace(reg, '$1'); - if (val) { - cssStyle = name + ':' + utils.unhtml(val) + ';' + cssStyle - } - - } - - var cssStyle = this.getAttr('style'); - if (!cssStyle) { - cssStyle = ''; - } - if (utils.isObject(name)) { - for (var a in name) { - exec(a, name[a]) - } - } else { - exec(name, val) - } - this.setAttr('style', utils.trim(cssStyle)) - }, - - /** - * 传入一个函数,递归遍历当前节点下的所有节点 - * @method traversal - * @param { Function } fn 遍历到节点的时,传入节点作为参数,运行此函数 - * @example - * ```javascript - * traversal(node, function(){ - * console.log(node.type); - * }); - * ``` - */ - traversal:function(fn){ - if(this.children && this.children.length){ - nodeTraversal(this,fn); - } - return this; - } - } -})(); - - -// core/htmlparser.js -/** - * html字符串转换成uNode节点 - * @file - * @module UE - * @since 1.2.6.1 - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @unfile - * @module UE - */ - -/** - * html字符串转换成uNode节点的静态方法 - * @method htmlparser - * @param { String } htmlstr 要转换的html代码 - * @param { Boolean } ignoreBlank 若设置为true,转换的时候忽略\n\r\t等空白字符 - * @return { uNode } 给定的html片段转换形成的uNode对象 - * @example - * ```javascript - * var root = UE.htmlparser('

    htmlparser

    ', true); - * ``` - */ - -var htmlparser = UE.htmlparser = function (htmlstr,ignoreBlank) { - //todo 原来的方式 [^"'<>\/] 有\/就不能配对上 ') - } - html.push('') - } - //禁止指定table-width - return '
    这样的标签了 - //先去掉了,加上的原因忘了,这里先记录 - var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, - re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g; - - //ie下取得的html可能会有\n存在,要去掉,在处理replace(/[\t\r\n]*/g,'');代码高量的\n不能去除 - var allowEmptyTags = { - b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1, - sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1 - }; - htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), ''); - if(!ignoreBlank){ - htmlstr = htmlstr.replace(new RegExp('[\\r\\t\\n'+(ignoreBlank?'':' ')+']*<\/?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n'+(ignoreBlank?'':' ')+']*','g'), function(a,b){ - //br暂时单独处理 - if(b && allowEmptyTags[b.toLowerCase()]){ - return a.replace(/(^[\n\r]+)|([\n\r]+$)/g,''); - } - return a.replace(new RegExp('^[\\r\\n'+(ignoreBlank?'':' ')+']+'),'').replace(new RegExp('[\\r\\n'+(ignoreBlank?'':' ')+']+$'),''); - }); - } - - var notTransAttrs = { - 'href':1, - 'src':1 - }; - - var uNode = UE.uNode, - needParentNode = { - 'td':'tr', - 'tr':['tbody','thead','tfoot'], - 'tbody':'table', - 'th':'tr', - 'thead':'table', - 'tfoot':'table', - 'caption':'table', - 'li':['ul', 'ol'], - 'dt':'dl', - 'dd':'dl', - 'option':'select' - }, - needChild = { - 'ol':'li', - 'ul':'li' - }; - - function text(parent, data) { - - if(needChild[parent.tagName]){ - var tmpNode = uNode.createElement(needChild[parent.tagName]); - parent.appendChild(tmpNode); - tmpNode.appendChild(uNode.createText(data)); - parent = tmpNode; - }else{ - - parent.appendChild(uNode.createText(data)); - } - } - - function element(parent, tagName, htmlattr) { - var needParentTag; - if (needParentTag = needParentNode[tagName]) { - var tmpParent = parent,hasParent; - while(tmpParent.type != 'root'){ - if(utils.isArray(needParentTag) ? utils.indexOf(needParentTag, tmpParent.tagName) != -1 : needParentTag == tmpParent.tagName){ - parent = tmpParent; - hasParent = true; - break; - } - tmpParent = tmpParent.parentNode; - } - if(!hasParent){ - parent = element(parent, utils.isArray(needParentTag) ? needParentTag[0] : needParentTag) - } - } - //按dtd处理嵌套 -// if(parent.type != 'root' && !dtd[parent.tagName][tagName]) -// parent = parent.parentNode; - var elm = new uNode({ - parentNode:parent, - type:'element', - tagName:tagName.toLowerCase(), - //是自闭合的处理一下 - children:dtd.$empty[tagName] ? null : [] - }); - //如果属性存在,处理属性 - if (htmlattr) { - var attrs = {}, match; - while (match = re_attr.exec(htmlattr)) { - attrs[match[1].toLowerCase()] = notTransAttrs[match[1].toLowerCase()] ? (match[2] || match[3] || match[4]) : utils.unhtml(match[2] || match[3] || match[4]) - } - elm.attrs = attrs; - } - //trace:3970 -// //如果parent下不能放elm -// if(dtd.$inline[parent.tagName] && dtd.$block[elm.tagName] && !dtd[parent.tagName][elm.tagName]){ -// parent = parent.parentNode; -// elm.parentNode = parent; -// } - parent.children.push(elm); - //如果是自闭合节点返回父亲节点 - return dtd.$empty[tagName] ? parent : elm - } - - function comment(parent, data) { - parent.children.push(new uNode({ - type:'comment', - data:data, - parentNode:parent - })); - } - - var match, currentIndex = 0, nextIndex = 0; - //设置根节点 - var root = new uNode({ - type:'root', - children:[] - }); - var currentParent = root; - - while (match = re_tag.exec(htmlstr)) { - currentIndex = match.index; - try{ - if (currentIndex > nextIndex) { - //text node - text(currentParent, htmlstr.slice(nextIndex, currentIndex)); - } - if (match[3]) { - - if(dtd.$cdata[currentParent.tagName]){ - text(currentParent, match[0]); - }else{ - //start tag - currentParent = element(currentParent, match[3].toLowerCase(), match[4]); - } - - - } else if (match[1]) { - if(currentParent.type != 'root'){ - if(dtd.$cdata[currentParent.tagName] && !dtd.$cdata[match[1]]){ - text(currentParent, match[0]); - }else{ - var tmpParent = currentParent; - while(currentParent.type == 'element' && currentParent.tagName != match[1].toLowerCase()){ - currentParent = currentParent.parentNode; - if(currentParent.type == 'root'){ - currentParent = tmpParent; - throw 'break' - } - } - //end tag - currentParent = currentParent.parentNode; - } - - } - - } else if (match[2]) { - //comment - comment(currentParent, match[2]) - } - }catch(e){} - - nextIndex = re_tag.lastIndex; - - } - //如果结束是文本,就有可能丢掉,所以这里手动判断一下 - //例如
  • sdfsdfsdf
  • sdfsdfsdfsdf - if (nextIndex < htmlstr.length) { - text(currentParent, htmlstr.slice(nextIndex)); - } - return root; -}; - - -// core/filternode.js -/** - * UE过滤节点的静态方法 - * @file - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @module UE - */ - - -/** - * 根据传入节点和过滤规则过滤相应节点 - * @module UE - * @since 1.2.6.1 - * @method filterNode - * @param { Object } root 指定root节点 - * @param { Object } rules 过滤规则json对象 - * @example - * ```javascript - * UE.filterNode(root,editor.options.filterRules); - * ``` - */ -var filterNode = UE.filterNode = function () { - function filterNode(node,rules){ - switch (node.type) { - case 'text': - break; - case 'element': - var val; - if(val = rules[node.tagName]){ - if(val === '-'){ - node.parentNode.removeChild(node) - }else if(utils.isFunction(val)){ - var parentNode = node.parentNode, - index = node.getIndex(); - val(node); - if(node.parentNode){ - if(node.children){ - for(var i = 0,ci;ci=node.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - }else{ - for(var i = index,ci;ci=parentNode.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - - - }else{ - var attrs = val['$']; - if(attrs && node.attrs){ - var tmpAttrs = {},tmpVal; - for(var a in attrs){ - tmpVal = node.getAttr(a); - //todo 只先对style单独处理 - if(a == 'style' && utils.isArray(attrs[a])){ - var tmpCssStyle = []; - utils.each(attrs[a],function(v){ - var tmp; - if(tmp = node.getStyle(v)){ - tmpCssStyle.push(v + ':' + tmp); - } - }); - tmpVal = tmpCssStyle.join(';') - } - if(tmpVal){ - tmpAttrs[a] = tmpVal; - } - - } - node.attrs = tmpAttrs; - } - if(node.children){ - for(var i = 0,ci;ci=node.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - } - }else{ - //如果不在名单里扣出子节点并删除该节点,cdata除外 - if(dtd.$cdata[node.tagName]){ - node.parentNode.removeChild(node) - }else{ - var parentNode = node.parentNode, - index = node.getIndex(); - node.parentNode.removeChild(node,true); - for(var i = index,ci;ci=parentNode.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - } - break; - case 'comment': - node.parentNode.removeChild(node) - } - - } - return function(root,rules){ - if(utils.isEmptyObject(rules)){ - return root; - } - var val; - if(val = rules['-']){ - utils.each(val.split(' '),function(k){ - rules[k] = '-' - }) - } - for(var i= 0,ci;ci=root.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - return root; - } -}(); - -// core/plugin.js -/** - * Created with JetBrains PhpStorm. - * User: campaign - * Date: 10/8/13 - * Time: 6:15 PM - * To change this template use File | Settings | File Templates. - */ -UE.plugin = function(){ - var _plugins = {}; - return { - register : function(pluginName,fn,oldOptionName,afterDisabled){ - if(oldOptionName && utils.isFunction(oldOptionName)){ - afterDisabled = oldOptionName; - oldOptionName = null - } - _plugins[pluginName] = { - optionName : oldOptionName || pluginName, - execFn : fn, - //当插件被禁用时执行 - afterDisabled : afterDisabled - } - }, - load : function(editor){ - utils.each(_plugins,function(plugin){ - var _export = plugin.execFn.call(editor); - if(editor.options[plugin.optionName] !== false){ - if(_export){ - //后边需要再做扩展 - utils.each(_export,function(v,k){ - switch(k.toLowerCase()){ - case 'shortcutkey': - editor.addshortcutkey(v); - break; - case 'bindevents': - utils.each(v,function(fn,eventName){ - editor.addListener(eventName,fn); - }); - break; - case 'bindmultievents': - utils.each(utils.isArray(v) ? v:[v],function(event){ - var types = utils.trim(event.type).split(/\s+/); - utils.each(types,function(eventName){ - editor.addListener(eventName, event.handler); - }); - }); - break; - case 'commands': - utils.each(v,function(execFn,execName){ - editor.commands[execName] = execFn - }); - break; - case 'outputrule': - editor.addOutputRule(v); - break; - case 'inputrule': - editor.addInputRule(v); - break; - case 'defaultoptions': - editor.setOpt(v) - } - }) - } - - }else if(plugin.afterDisabled){ - plugin.afterDisabled.call(editor) - } - - }); - //向下兼容 - utils.each(UE.plugins,function(plugin){ - plugin.call(editor); - }); - }, - run : function(pluginName,editor){ - var plugin = _plugins[pluginName]; - if(plugin){ - plugin.exeFn.call(editor) - } - } - } -}(); - -// core/keymap.js -var keymap = UE.keymap = { - 'Backspace' : 8, - 'Tab' : 9, - 'Enter' : 13, - - 'Shift':16, - 'Control':17, - 'Alt':18, - 'CapsLock':20, - - 'Esc':27, - - 'Spacebar':32, - - 'PageUp':33, - 'PageDown':34, - 'End':35, - 'Home':36, - - 'Left':37, - 'Up':38, - 'Right':39, - 'Down':40, - - 'Insert':45, - - 'Del':46, - - 'NumLock':144, - - 'Cmd':91, - - '=':187, - '-':189, - - "b":66, - 'i':73, - //回退 - 'z':90, - 'y':89, - //粘贴 - 'v' : 86, - 'x' : 88, - - 's' : 83, - - 'n' : 78 -}; - -// core/localstorage.js -//存储媒介封装 -var LocalStorage = UE.LocalStorage = (function () { - - var storage = window.localStorage || getUserData() || null, - LOCAL_FILE = 'localStorage'; - - return { - - saveLocalData: function (key, data) { - - if (storage && data) { - storage.setItem(key, data); - return true; - } - - return false; - - }, - - getLocalData: function (key) { - - if (storage) { - return storage.getItem(key); - } - - return null; - - }, - - removeItem: function (key) { - - storage && storage.removeItem(key); - - } - - }; - - function getUserData() { - - var container = document.createElement("div"); - container.style.display = "none"; - - if (!container.addBehavior) { - return null; - } - - container.addBehavior("#default#userdata"); - - return { - - getItem: function (key) { - - var result = null; - - try { - document.body.appendChild(container); - container.load(LOCAL_FILE); - result = container.getAttribute(key); - document.body.removeChild(container); - } catch (e) { - } - - return result; - - }, - - setItem: function (key, value) { - - document.body.appendChild(container); - container.setAttribute(key, value); - container.save(LOCAL_FILE); - document.body.removeChild(container); - - }, - - //// 暂时没有用到 - //clear: function () { - // - // var expiresTime = new Date(); - // expiresTime.setFullYear(expiresTime.getFullYear() - 1); - // document.body.appendChild(container); - // container.expires = expiresTime.toUTCString(); - // container.save(LOCAL_FILE); - // document.body.removeChild(container); - // - //}, - - removeItem: function (key) { - - document.body.appendChild(container); - container.removeAttribute(key); - container.save(LOCAL_FILE); - document.body.removeChild(container); - - } - - }; - - } - -})(); - -(function () { - - var ROOTKEY = 'ueditor_preference'; - - UE.Editor.prototype.setPreferences = function(key,value){ - var obj = {}; - if (utils.isString(key)) { - obj[ key ] = value; - } else { - obj = key; - } - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - utils.extend(data, obj); - } else { - data = obj; - } - data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); - }; - - UE.Editor.prototype.getPreferences = function(key){ - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - return key ? data[key] : data - } - return null; - }; - - UE.Editor.prototype.removePreferences = function (key) { - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - data[key] = undefined; - delete data[key] - } - data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); - }; - -})(); - - -// plugins/defaultfilter.js -///import core -///plugin 编辑器默认的过滤转换机制 - -UE.plugins['defaultfilter'] = function () { - var me = this; - me.setOpt({ - 'allowDivTransToP':true, - 'disabledTableInTable':true - }); - //默认的过滤处理 - //进入编辑器的内容处理 - me.addInputRule(function (root) { - var allowDivTransToP = this.options.allowDivTransToP; - var val; - function tdParent(node){ - while(node && node.type == 'element'){ - if(node.tagName == 'td'){ - return true; - } - node = node.parentNode; - } - return false; - } - //进行默认的处理 - root.traversal(function (node) { - if (node.type == 'element') { - if (!dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { - node.parentNode.removeChild(node, true) - } - return; - } - switch (node.tagName) { - case 'style': - case 'script': - node.setAttr({ - cdata_tag: node.tagName, - cdata_data: (node.innerHTML() || ''), - '_ue_custom_node_':'true' - }); - node.tagName = 'div'; - node.innerHTML(''); - break; - case 'a': - if (val = node.getAttr('href')) { - node.setAttr('_href', val) - } - break; - case 'img': - //todo base64暂时去掉,后边做远程图片上传后,干掉这个 - if (val = node.getAttr('src')) { - if (/^data:/.test(val)) { - node.parentNode.removeChild(node); - break; - } - } - node.setAttr('_src', node.getAttr('src')); - break; - case 'span': - if (browser.webkit && (val = node.getStyle('white-space'))) { - if (/nowrap|normal/.test(val)) { - node.setStyle('white-space', ''); - if (me.options.autoClearEmptyNode && utils.isEmptyObject(node.attrs)) { - node.parentNode.removeChild(node, true) - } - } - } - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - break; - case 'p': - if (val = node.getAttr('align')) { - node.setAttr('align'); - node.setStyle('text-align', val) - } - //trace:3431 -// var cssStyle = node.getAttr('style'); -// if (cssStyle) { -// cssStyle = cssStyle.replace(/(margin|padding)[^;]+/g, ''); -// node.setAttr('style', cssStyle) -// -// } - //p标签不允许嵌套 - utils.each(node.children,function(n){ - if(n.type == 'element' && n.tagName == 'p'){ - var next = n.nextSibling(); - node.parentNode.insertAfter(n,node); - var last = n; - while(next){ - var tmp = next.nextSibling(); - node.parentNode.insertAfter(next,last); - last = next; - next = tmp; - } - return false; - } - }); - if (!node.firstChild()) { - node.innerHTML(browser.ie ? ' ' : '
    ') - } - break; - case 'div': - if(node.getAttr('cdata_tag')){ - break; - } - //针对代码这里不处理插入代码的div - val = node.getAttr('class'); - if(val && /^line number\d+/.test(val)){ - break; - } - if(!allowDivTransToP){ - break; - } - var tmpNode, p = UE.uNode.createElement('p'); - while (tmpNode = node.firstChild()) { - if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { - p.appendChild(tmpNode); - } else { - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - p = UE.uNode.createElement('p'); - } else { - node.parentNode.insertBefore(tmpNode, node); - } - } - } - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - } - node.parentNode.removeChild(node); - break; - case 'dl': - node.tagName = 'ul'; - break; - case 'dt': - case 'dd': - node.tagName = 'li'; - break; - case 'li': - var className = node.getAttr('class'); - if (!className || !/list\-/.test(className)) { - node.setAttr() - } - var tmpNodes = node.getNodesByTagName('ol ul'); - UE.utils.each(tmpNodes, function (n) { - node.parentNode.insertAfter(n, node); - }); - break; - case 'td': - case 'th': - case 'caption': - if(!node.children || !node.children.length){ - node.appendChild(browser.ie11below ? UE.uNode.createText(' ') : UE.uNode.createElement('br')) - } - break; - case 'table': - if(me.options.disabledTableInTable && tdParent(node)){ - node.parentNode.insertBefore(UE.uNode.createText(node.innerText()),node); - node.parentNode.removeChild(node) - } - } - - } -// if(node.type == 'comment'){ -// node.parentNode.removeChild(node); -// } - }) - - }); - - //从编辑器出去的内容处理 - me.addOutputRule(function (root) { - - var val; - root.traversal(function (node) { - if (node.type == 'element') { - - if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { - - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { - node.parentNode.removeChild(node, true) - } - return; - } - switch (node.tagName) { - case 'div': - if (val = node.getAttr('cdata_tag')) { - node.tagName = val; - node.appendChild(UE.uNode.createText(node.getAttr('cdata_data'))); - node.setAttr({cdata_tag: '', cdata_data: '','_ue_custom_node_':''}); - } - break; - case 'a': - if (val = node.getAttr('_href')) { - node.setAttr({ - 'href': utils.html(val), - '_href': '' - }) - } - break; - break; - case 'span': - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - break; - case 'img': - if (val = node.getAttr('_src')) { - node.setAttr({ - 'src': node.getAttr('_src'), - '_src': '' - }) - } - - - } - } - - }) - - - }); -}; - - -// plugins/inserthtml.js -/** - * 插入html字符串插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入html代码 - * @command inserthtml - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } html 插入的html字符串 - * @remaind 插入的标签内容是在当前的选区位置上插入,如果当前是闭合状态,那直接插入内容, 如果当前是选中状态,将先清除当前选中内容后,再做插入 - * @warning 注意:该命令会对当前选区的位置,对插入的内容进行过滤转换处理。 过滤的规则遵循html语意化的原则。 - * @example - * ```javascript - * //xxx[BB]xxx 当前选区为非闭合选区,选中BB这两个文本 - * //执行命令,插入CC - * //插入后的效果 xxxCCxxx - * //

    xx|xxx

    当前选区为闭合状态 - * //插入

    CC

    - * //结果

    xx

    CC

    xxx

    - * //

    xxxx

    |

    xxx

    当前选区在两个p标签之间 - * //插入 xxxx - * //结果

    xxxx

    xxxx

    xxx

    - * ``` - */ - -UE.commands['inserthtml'] = { - execCommand: function (command,html,notNeedFilter){ - var me = this, - range, - div; - if(!html){ - return; - } - if(me.fireEvent('beforeinserthtml',html) === true){ - return; - } - range = me.selection.getRange(); - div = range.document.createElement( 'div' ); - div.style.display = 'inline'; - - if (!notNeedFilter) { - var root = UE.htmlparser(html); - //如果给了过滤规则就先进行过滤 - if(me.options.filterRules){ - UE.filterNode(root,me.options.filterRules); - } - //执行默认的处理 - me.filterInputRule(root); - html = root.toHtml() - } - div.innerHTML = utils.trim( html ); - - if ( !range.collapsed ) { - var tmpNode = range.startContainer; - if(domUtils.isFillChar(tmpNode)){ - range.setStartBefore(tmpNode) - } - tmpNode = range.endContainer; - if(domUtils.isFillChar(tmpNode)){ - range.setEndAfter(tmpNode) - } - range.txtToElmBoundary(); - //结束边界可能放到了br的前边,要把br包含进来 - // x[xxx]
    - if(range.endContainer && range.endContainer.nodeType == 1){ - tmpNode = range.endContainer.childNodes[range.endOffset]; - if(tmpNode && domUtils.isBr(tmpNode)){ - range.setEndAfter(tmpNode); - } - } - if(range.startOffset == 0){ - tmpNode = range.startContainer; - if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){ - tmpNode = range.endContainer; - if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){ - me.body.innerHTML = '

    '+(browser.ie ? '' : '
    ')+'

    '; - range.setStart(me.body.firstChild,0).collapse(true) - - } - } - } - !range.collapsed && range.deleteContents(); - if(range.startContainer.nodeType == 1){ - var child = range.startContainer.childNodes[range.startOffset],pre; - if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){ - range.setEnd(pre,pre.childNodes.length).collapse(); - while(child.firstChild){ - pre.appendChild(child.firstChild); - } - domUtils.remove(child); - } - } - - } - - - var child,parent,pre,tmp,hadBreak = 0, nextNode; - //如果当前位置选中了fillchar要干掉,要不会产生空行 - if(range.inFillChar()){ - child = range.startContainer; - if(domUtils.isFillChar(child)){ - range.setStartBefore(child).collapse(true); - domUtils.remove(child); - }else if(domUtils.isFillChar(child,true)){ - child.nodeValue = child.nodeValue.replace(fillCharReg,''); - range.startOffset--; - range.collapsed && range.collapse(true) - } - } - //列表单独处理 - var li = domUtils.findParentByTagName(range.startContainer,'li',true); - if(li){ - var next,last; - while(child = div.firstChild){ - //针对hr单独处理一下先 - while(child && (child.nodeType == 3 || !domUtils.isBlockElm(child) || child.tagName=='HR' )){ - next = child.nextSibling; - range.insertNode( child).collapse(); - last = child; - child = next; - - } - if(child){ - if(/^(ol|ul)$/i.test(child.tagName)){ - while(child.firstChild){ - last = child.firstChild; - domUtils.insertAfter(li,child.firstChild); - li = li.nextSibling; - } - domUtils.remove(child) - }else{ - var tmpLi; - next = child.nextSibling; - tmpLi = me.document.createElement('li'); - domUtils.insertAfter(li,tmpLi); - tmpLi.appendChild(child); - last = child; - child = next; - li = tmpLi; - } - } - } - li = domUtils.findParentByTagName(range.startContainer,'li',true); - if(domUtils.isEmptyBlock(li)){ - domUtils.remove(li) - } - if(last){ - - range.setStartAfter(last).collapse(true).select(true) - } - }else{ - while ( child = div.firstChild ) { - if(hadBreak){ - var p = me.document.createElement('p'); - while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){ - nextNode = child.nextSibling; - p.appendChild(child); - child = nextNode; - } - if(p.firstChild){ - - child = p - } - } - range.insertNode( child ); - nextNode = child.nextSibling; - if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){ - - parent = domUtils.findParent( child,function ( node ){ return domUtils.isBlockElm( node ); } ); - if ( parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){ - if(!dtd[parent.tagName][child.nodeName]){ - pre = parent; - }else{ - tmp = child.parentNode; - while (tmp !== parent){ - pre = tmp; - tmp = tmp.parentNode; - - } - } - - - domUtils.breakParent( child, pre || tmp ); - //去掉break后前一个多余的节点

    |<[p> ==>

    |

    - var pre = child.previousSibling; - domUtils.trimWhiteTextNode(pre); - if(!pre.childNodes.length){ - domUtils.remove(pre); - } - //trace:2012,在非ie的情况,切开后剩下的节点有可能不能点入光标添加br占位 - - if(!browser.ie && - (next = child.nextSibling) && - domUtils.isBlockElm(next) && - next.lastChild && - !domUtils.isBr(next.lastChild)){ - next.appendChild(me.document.createElement('br')); - } - hadBreak = 1; - } - } - var next = child.nextSibling; - if(!div.firstChild && next && domUtils.isBlockElm(next)){ - - range.setStart(next,0).collapse(true); - break; - } - range.setEndAfter( child ).collapse(); - - } - - child = range.startContainer; - - if(nextNode && domUtils.isBr(nextNode)){ - domUtils.remove(nextNode) - } - //用chrome可能有空白展位符 - if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){ - if(nextNode = child.nextSibling){ - domUtils.remove(child); - if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){ - - range.setStart(nextNode,0).collapse(true).shrinkBoundary() - } - }else{ - - try{ - child.innerHTML = browser.ie ? domUtils.fillChar : '
    '; - }catch(e){ - range.setStartBefore(child); - domUtils.remove(child) - } - - } - - } - //加上true因为在删除表情等时会删两次,第一次是删的fillData - try{ - range.select(true); - }catch(e){} - - } - - - - setTimeout(function(){ - range = me.selection.getRange(); - range.scrollToView(me.autoHeightEnabled,me.autoHeightEnabled ? domUtils.getXY(me.iframe).y:0); - me.fireEvent('afterinserthtml', html); - },200); - } -}; - - -// plugins/autotypeset.js -/** - * 自动排版 - * @file - * @since 1.2.6.1 - */ - -/** - * 对当前编辑器的内容执行自动排版, 排版的行为根据config配置文件里的“autotypeset”选项进行控制。 - * @command autotypeset - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'autotypeset' ); - * ``` - */ - -UE.plugins['autotypeset'] = function(){ - - this.setOpt({'autotypeset': { - mergeEmptyline: true, //合并空行 - removeClass: true, //去掉冗余的class - removeEmptyline: false, //去掉空行 - textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 - imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 - pasteFilter: false, //根据规则过滤没事粘贴进来的内容 - clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 - clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 - removeEmptyNode: false, // 去掉空节点 - //可以去掉的标签 - removeTagNames: utils.extend({div:1},dtd.$removeEmpty), - indent: false, // 行首缩进 - indentValue : '2em', //行首缩进的大小 - bdc2sb: false, - tobdc: false - }}); - - var me = this, - opt = me.options.autotypeset, - remainClass = { - 'selectTdClass':1, - 'pagebreak':1, - 'anchorclass':1 - }, - remainTag = { - 'li':1 - }, - tags = { - div:1, - p:1, - //trace:2183 这些也认为是行 - blockquote:1,center:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1, - span:1 - }, - highlightCont; - //升级了版本,但配置项目里没有autotypeset - if(!opt){ - return; - } - - readLocalOpts(); - - function isLine(node,notEmpty){ - if(!node || node.nodeType == 3) - return 0; - if(domUtils.isBr(node)) - return 1; - if(node && node.parentNode && tags[node.tagName.toLowerCase()]){ - if(highlightCont && highlightCont.contains(node) - || - node.getAttribute('pagebreak') - ){ - return 0; - } - - return notEmpty ? !domUtils.isEmptyBlock(node) : domUtils.isEmptyBlock(node,new RegExp('[\\s'+domUtils.fillChar - +']','g')); - } - } - - function removeNotAttributeSpan(node){ - if(!node.style.cssText){ - domUtils.removeAttributes(node,['style']); - if(node.tagName.toLowerCase() == 'span' && domUtils.hasNoAttributes(node)){ - domUtils.remove(node,true); - } - } - } - function autotype(type,html){ - - var me = this,cont; - if(html){ - if(!opt.pasteFilter){ - return; - } - cont = me.document.createElement('div'); - cont.innerHTML = html.html; - }else{ - cont = me.document.body; - } - var nodes = domUtils.getElementsByTagName(cont,'*'); - - // 行首缩进,段落方向,段间距,段内间距 - for(var i=0,ci;ci=nodes[i++];){ - - if(me.fireEvent('excludeNodeinautotype',ci) === true){ - continue; - } - //font-size - if(opt.clearFontSize && ci.style.fontSize){ - domUtils.removeStyle(ci,'font-size'); - - removeNotAttributeSpan(ci); - - } - //font-family - if(opt.clearFontFamily && ci.style.fontFamily){ - domUtils.removeStyle(ci,'font-family'); - removeNotAttributeSpan(ci); - } - - if(isLine(ci)){ - //合并空行 - if(opt.mergeEmptyline ){ - var next = ci.nextSibling,tmpNode,isBr = domUtils.isBr(ci); - while(isLine(next)){ - tmpNode = next; - next = tmpNode.nextSibling; - if(isBr && (!next || next && !domUtils.isBr(next))){ - break; - } - domUtils.remove(tmpNode); - } - - } - //去掉空行,保留占位的空行 - if(opt.removeEmptyline && domUtils.inDoc(ci,cont) && !remainTag[ci.parentNode.tagName.toLowerCase()] ){ - if(domUtils.isBr(ci)){ - next = ci.nextSibling; - if(next && !domUtils.isBr(next)){ - continue; - } - } - domUtils.remove(ci); - continue; - - } - - } - if(isLine(ci,true) && ci.tagName != 'SPAN'){ - if(opt.indent){ - ci.style.textIndent = opt.indentValue; - } - if(opt.textAlign){ - ci.style.textAlign = opt.textAlign; - } - // if(opt.lineHeight) - // ci.style.lineHeight = opt.lineHeight + 'cm'; - - } - - //去掉class,保留的class不去掉 - if(opt.removeClass && ci.className && !remainClass[ci.className.toLowerCase()]){ - - if(highlightCont && highlightCont.contains(ci)){ - continue; - } - domUtils.removeAttributes(ci,['class']); - } - - //表情不处理 - if(opt.imageBlockLine && ci.tagName.toLowerCase() == 'img' && !ci.getAttribute('emotion')){ - if(html){ - var img = ci; - switch (opt.imageBlockLine){ - case 'left': - case 'right': - case 'none': - var pN = img.parentNode,tmpNode,pre,next; - while(dtd.$inline[pN.tagName] || pN.tagName == 'A'){ - pN = pN.parentNode; - } - tmpNode = pN; - if(tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode,'text-align') == 'center'){ - if(!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1){ - pre = tmpNode.previousSibling; - next = tmpNode.nextSibling; - if(pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)){ - pre.appendChild(tmpNode.firstChild); - while(next.firstChild){ - pre.appendChild(next.firstChild); - } - domUtils.remove(tmpNode); - domUtils.remove(next); - }else{ - domUtils.setStyle(tmpNode,'text-align',''); - } - - - } - - - } - domUtils.setStyle(img,'float', opt.imageBlockLine); - break; - case 'center': - if(me.queryCommandValue('imagefloat') != 'center'){ - pN = img.parentNode; - domUtils.setStyle(img,'float','none'); - tmpNode = img; - while(pN && domUtils.getChildCount(pN,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1 - && (dtd.$inline[pN.tagName] || pN.tagName == 'A')){ - tmpNode = pN; - pN = pN.parentNode; - } - var pNode = me.document.createElement('p'); - domUtils.setAttributes(pNode,{ - - style:'text-align:center' - }); - tmpNode.parentNode.insertBefore(pNode,tmpNode); - pNode.appendChild(tmpNode); - domUtils.setStyle(tmpNode,'float',''); - - } - - - } - } else { - var range = me.selection.getRange(); - range.selectNode(ci).select(); - me.execCommand('imagefloat', opt.imageBlockLine); - } - - } - - //去掉冗余的标签 - if(opt.removeEmptyNode){ - if(opt.removeTagNames[ci.tagName.toLowerCase()] && domUtils.hasNoAttributes(ci) && domUtils.isEmptyBlock(ci)){ - domUtils.remove(ci); - } - } - } - if(opt.tobdc){ - var root = UE.htmlparser(cont.innerHTML); - root.traversal(function(node){ - if(node.type == 'text'){ - node.data = ToDBC(node.data) - } - }); - cont.innerHTML = root.toHtml() - } - if(opt.bdc2sb){ - var root = UE.htmlparser(cont.innerHTML); - root.traversal(function(node){ - if(node.type == 'text'){ - node.data = DBC2SB(node.data) - } - }); - cont.innerHTML = root.toHtml() - } - if(html){ - html.html = cont.innerHTML; - } - } - if(opt.pasteFilter){ - me.addListener('beforepaste',autotype); - } - - function DBC2SB(str) { - var result = ''; - for (var i = 0; i < str.length; i++) { - var code = str.charCodeAt(i); //获取当前字符的unicode编码 - if (code >= 65281 && code <= 65373)//在这个unicode编码范围中的是所有的英文字母已经各种字符 - { - result += String.fromCharCode(str.charCodeAt(i) - 65248); //把全角字符的unicode编码转换为对应半角字符的unicode码 - } else if (code == 12288)//空格 - { - result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32); - } else { - result += str.charAt(i); - } - } - return result; - } - function ToDBC(txtstring) { - txtstring = utils.html(txtstring); - var tmp = ""; - var mark = "";/*用于判断,如果是html尖括里的标记,则不进行全角的转换*/ - for (var i = 0; i < txtstring.length; i++) { - if (txtstring.charCodeAt(i) == 32) { - tmp = tmp + String.fromCharCode(12288); - } - else if (txtstring.charCodeAt(i) < 127) { - tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248); - } - else { - tmp += txtstring.charAt(i); - } - } - return tmp; - } - - function readLocalOpts() { - var cookieOpt = me.getPreferences('autotypeset'); - utils.extend(me.options.autotypeset, cookieOpt); - } - - me.commands['autotypeset'] = { - execCommand:function () { - me.removeListener('beforepaste',autotype); - if(opt.pasteFilter){ - me.addListener('beforepaste',autotype); - } - autotype.call(me) - } - - }; - -}; - - - -// plugins/autosubmit.js -/** - * 快捷键提交 - * @file - * @since 1.2.6.1 - */ - -/** - * 提交表单 - * @command autosubmit - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'autosubmit' ); - * ``` - */ - -UE.plugin.register('autosubmit',function(){ - return { - shortcutkey:{ - "autosubmit":"ctrl+13" //手动提交 - }, - commands:{ - 'autosubmit':{ - execCommand:function () { - var me=this, - form = domUtils.findParentByTagName(me.iframe,"form", false); - if (form){ - if(me.fireEvent("beforesubmit")===false){ - return; - } - me.sync(); - form.submit(); - } - } - } - } - } -}); - -// plugins/background.js -/** - * 背景插件,为UEditor提供设置背景功能 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('background', function () { - var me = this, - cssRuleId = 'editor_background', - isSetColored, - reg = new RegExp('body[\\s]*\\{(.+)\\}', 'i'); - - function stringToObj(str) { - var obj = {}, styles = str.split(';'); - utils.each(styles, function (v) { - var index = v.indexOf(':'), - key = utils.trim(v.substr(0, index)).toLowerCase(); - key && (obj[key] = utils.trim(v.substr(index + 1) || '')); - }); - return obj; - } - - function setBackground(obj) { - if (obj) { - var styles = []; - for (var name in obj) { - if (obj.hasOwnProperty(name)) { - styles.push(name + ":" + obj[name] + '; '); - } - } - utils.cssRule(cssRuleId, styles.length ? ('body{' + styles.join("") + '}') : '', me.document); - } else { - utils.cssRule(cssRuleId, '', me.document) - } - } - //重写editor.hasContent方法 - - var orgFn = me.hasContents; - me.hasContents = function(){ - if(me.queryCommandValue('background')){ - return true - } - return orgFn.apply(me,arguments); - }; - return { - bindEvents: { - 'getAllHtml': function (type, headHtml) { - var body = this.body, - su = domUtils.getComputedStyle(body, "background-image"), - url = ""; - if (su.indexOf(me.options.imagePath) > 0) { - url = su.substring(su.indexOf(me.options.imagePath), su.length - 1).replace(/"|\(|\)/ig, ""); - } else { - url = su != "none" ? su.replace(/url\("?|"?\)/ig, "") : ""; - } - var html = ' '; - headHtml.push(html); - }, - 'aftersetcontent': function () { - if(isSetColored == false) setBackground(); - } - }, - inputRule: function (root) { - isSetColored = false; - utils.each(root.getNodesByTagName('p'), function (p) { - var styles = p.getAttr('data-background'); - if (styles) { - isSetColored = true; - setBackground(stringToObj(styles)); - p.parentNode.removeChild(p); - } - }) - }, - outputRule: function (root) { - var me = this, - styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg); - if (styles) { - root.appendChild(UE.uNode.createElement('


    ')); - } - }, - commands: { - 'background': { - execCommand: function (cmd, obj) { - setBackground(obj); - }, - queryCommandValue: function () { - var me = this, - styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg); - return styles ? stringToObj(styles[1]) : null; - }, - notNeedUndo: true - } - } - } -}); - -// plugins/image.js -/** - * 图片插入、排版插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 图片对齐方式 - * @command imagefloat - * @method execCommand - * @remind 值center为独占一行居中 - * @param { String } cmd 命令字符串 - * @param { String } align 对齐方式,可传left、right、none、center - * @remaind center表示图片独占一行 - * @example - * ```javascript - * editor.execCommand( 'imagefloat', 'center' ); - * ``` - */ - -/** - * 如果选区所在位置是图片区域 - * @command imagefloat - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回图片对齐方式 - * @example - * ```javascript - * editor.queryCommandValue( 'imagefloat' ); - * ``` - */ - -UE.commands['imagefloat'] = { - execCommand:function (cmd, align) { - var me = this, - range = me.selection.getRange(); - if (!range.collapsed) { - var img = range.getClosedNode(); - if (img && img.tagName == 'IMG') { - switch (align) { - case 'left': - case 'right': - case 'none': - var pN = img.parentNode, tmpNode, pre, next; - while (dtd.$inline[pN.tagName] || pN.tagName == 'A') { - pN = pN.parentNode; - } - tmpNode = pN; - if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') { - if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function (node) { - return !domUtils.isBr(node) && !domUtils.isWhitespace(node); - }) == 1) { - pre = tmpNode.previousSibling; - next = tmpNode.nextSibling; - if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)) { - pre.appendChild(tmpNode.firstChild); - while (next.firstChild) { - pre.appendChild(next.firstChild); - } - domUtils.remove(tmpNode); - domUtils.remove(next); - } else { - domUtils.setStyle(tmpNode, 'text-align', ''); - } - - - } - - range.selectNode(img).select(); - } - domUtils.setStyle(img, 'float', align == 'none' ? '' : align); - if(align == 'none'){ - domUtils.removeAttributes(img,'align'); - } - - break; - case 'center': - if (me.queryCommandValue('imagefloat') != 'center') { - pN = img.parentNode; - domUtils.setStyle(img, 'float', ''); - domUtils.removeAttributes(img,'align'); - tmpNode = img; - while (pN && domUtils.getChildCount(pN, function (node) { - return !domUtils.isBr(node) && !domUtils.isWhitespace(node); - }) == 1 - && (dtd.$inline[pN.tagName] || pN.tagName == 'A')) { - tmpNode = pN; - pN = pN.parentNode; - } - range.setStartBefore(tmpNode).setCursor(false); - pN = me.document.createElement('div'); - pN.appendChild(tmpNode); - domUtils.setStyle(tmpNode, 'float', ''); - - me.execCommand('insertHtml', '

    ' + pN.innerHTML + '

    '); - - tmpNode = me.document.getElementById('_img_parent_tmp'); - tmpNode.removeAttribute('id'); - tmpNode = tmpNode.firstChild; - range.selectNode(tmpNode).select(); - //去掉后边多余的元素 - next = tmpNode.parentNode.nextSibling; - if (next && domUtils.isEmptyNode(next)) { - domUtils.remove(next); - } - - } - - break; - } - - } - } - }, - queryCommandValue:function () { - var range = this.selection.getRange(), - startNode, floatStyle; - if (range.collapsed) { - return 'none'; - } - startNode = range.getClosedNode(); - if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') { - floatStyle = domUtils.getComputedStyle(startNode, 'float') || startNode.getAttribute('align'); - - if (floatStyle == 'none') { - floatStyle = domUtils.getComputedStyle(startNode.parentNode, 'text-align') == 'center' ? 'center' : floatStyle; - } - return { - left:1, - right:1, - center:1 - }[floatStyle] ? floatStyle : 'none'; - } - return 'none'; - - - }, - queryCommandState:function () { - var range = this.selection.getRange(), - startNode; - - if (range.collapsed) return -1; - - startNode = range.getClosedNode(); - if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') { - return 0; - } - return -1; - } -}; - - -/** - * 插入图片 - * @command insertimage - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } opt 属性键值对,这些属性都将被复制到当前插入图片 - * @remind 该命令第二个参数可接受一个图片配置项对象的数组,可以插入多张图片, - * 此时数组的每一个元素都是一个Object类型的图片属性集合。 - * @example - * ```javascript - * editor.execCommand( 'insertimage', { - * src:'a/b/c.jpg', - * width:'100', - * height:'100' - * } ); - * ``` - * @example - * ```javascript - * editor.execCommand( 'insertimage', [{ - * src:'a/b/c.jpg', - * width:'100', - * height:'100' - * },{ - * src:'a/b/d.jpg', - * width:'100', - * height:'100' - * }] ); - * ``` - */ - -UE.commands['insertimage'] = { - execCommand:function (cmd, opt) { - - opt = utils.isArray(opt) ? opt : [opt]; - if (!opt.length) { - return; - } - var me = this, - range = me.selection.getRange(), - img = range.getClosedNode(); - - if(me.fireEvent('beforeinsertimage', opt) === true){ - return; - } - - function unhtmlData(imgCi) { - - utils.each('width,height,border,hspace,vspace'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = parseInt(imgCi[item], 10) || 0; - } - }); - - utils.each('src,_src'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = utils.unhtmlForUrl(imgCi[item]); - } - }); - utils.each('title,alt'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = utils.unhtml(imgCi[item]); - } - }); - } - - if (img && /img/i.test(img.tagName) && (img.className != "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1) && !img.getAttribute("word_img")) { - var first = opt.shift(); - var floatStyle = first['floatStyle']; - delete first['floatStyle']; -//// img.style.border = (first.border||0) +"px solid #000"; -//// img.style.margin = (first.margin||0) +"px"; -// img.style.cssText += ';margin:' + (first.margin||0) +"px;" + 'border:' + (first.border||0) +"px solid #000"; - domUtils.setAttributes(img, first); - me.execCommand('imagefloat', floatStyle); - if (opt.length > 0) { - range.setStartAfter(img).setCursor(false, true); - me.execCommand('insertimage', opt); - } - - } else { - var html = [], str = '', ci; - ci = opt[0]; - if (opt.length == 1) { - unhtmlData(ci); - - str = '' + ci.alt + ''; - if (ci['floatStyle'] == 'center') { - str = '

    ' + str + '

    '; - } - html.push(str); - - } else { - for (var i = 0; ci = opt[i++];) { - unhtmlData(ci); - str = '

    '; - html.push(str); - } - } - - me.execCommand('insertHtml', html.join('')); - } - - me.fireEvent('afterinsertimage', opt) - } -}; - - -// plugins/justify.js -/** - * 段落格式 - * @file - * @since 1.2.6.1 - */ - -/** - * 段落对齐方式 - * @command justify - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } align 对齐方式:left => 居左,right => 居右,center => 居中,justify => 两端对齐 - * @example - * ```javascript - * editor.execCommand( 'justify', 'center' ); - * ``` - */ -/** - * 如果选区所在位置是段落区域,返回当前段落对齐方式 - * @command justify - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回段落对齐方式 - * @example - * ```javascript - * editor.queryCommandValue( 'justify' ); - * ``` - */ - -UE.plugins['justify']=function(){ - var me=this, - block = domUtils.isBlockElm, - defaultValue = { - left:1, - right:1, - center:1, - justify:1 - }, - doJustify = function (range, style) { - var bookmark = range.createBookmark(), - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node); - }; - - range.enlarge(true); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode(bookmark2.start, false, filterFn), - tmpRange = range.cloneRange(), - tmpNode; - while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) { - if (current.nodeType == 3 || !block(current)) { - tmpRange.setStartBefore(current); - while (current && current !== bookmark2.end && !block(current)) { - tmpNode = current; - current = domUtils.getNextDomNode(current, false, null, function (node) { - return !block(node); - }); - } - tmpRange.setEndAfter(tmpNode); - var common = tmpRange.getCommonAncestor(); - if (!domUtils.isBody(common) && block(common)) { - domUtils.setStyles(common, utils.isString(style) ? {'text-align':style} : style); - current = common; - } else { - var p = range.document.createElement('p'); - domUtils.setStyles(p, utils.isString(style) ? {'text-align':style} : style); - var frag = tmpRange.extractContents(); - p.appendChild(frag); - tmpRange.insertNode(p); - current = p; - } - current = domUtils.getNextDomNode(current, false, filterFn); - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - return range.moveToBookmark(bookmark2).moveToBookmark(bookmark); - }; - - UE.commands['justify'] = { - execCommand:function (cmdName, align) { - var range = this.selection.getRange(), - txt; - - //闭合时单独处理 - if (range.collapsed) { - txt = this.document.createTextNode('p'); - range.insertNode(txt); - } - doJustify(range, align); - if (txt) { - range.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - - range.select(); - - - return true; - }, - queryCommandValue:function () { - var startNode = this.selection.getStart(), - value = domUtils.getComputedStyle(startNode, 'text-align'); - return defaultValue[value] ? value : 'left'; - }, - queryCommandState:function () { - var start = this.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th","caption"], true); - - return cell? -1:0; - } - - }; -}; - - -// plugins/font.js -/** - * 字体颜色,背景色,字号,字体,下划线,删除线 - * @file - * @since 1.2.6.1 - */ - -/** - * 字体颜色 - * @command forecolor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 色值(必须十六进制) - * @example - * ```javascript - * editor.execCommand( 'forecolor', '#000' ); - * ``` - */ -/** - * 返回选区字体颜色 - * @command forecolor - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体颜色 - * @example - * ```javascript - * editor.queryCommandValue( 'forecolor' ); - * ``` - */ - -/** - * 字体背景颜色 - * @command backcolor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 色值(必须十六进制) - * @example - * ```javascript - * editor.execCommand( 'backcolor', '#000' ); - * ``` - */ -/** - * 返回选区字体颜色 - * @command backcolor - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体背景颜色 - * @example - * ```javascript - * editor.queryCommandValue( 'backcolor' ); - * ``` - */ - -/** - * 字体大小 - * @command fontsize - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 字体大小 - * @example - * ```javascript - * editor.execCommand( 'fontsize', '14px' ); - * ``` - */ -/** - * 返回选区字体大小 - * @command fontsize - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体大小 - * @example - * ```javascript - * editor.queryCommandValue( 'fontsize' ); - * ``` - */ - -/** - * 字体样式 - * @command fontfamily - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 字体样式 - * @example - * ```javascript - * editor.execCommand( 'fontfamily', '微软雅黑' ); - * ``` - */ -/** - * 返回选区字体样式 - * @command fontfamily - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体样式 - * @example - * ```javascript - * editor.queryCommandValue( 'fontfamily' ); - * ``` - */ - -/** - * 字体下划线,与删除线互斥 - * @command underline - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'underline' ); - * ``` - */ - -/** - * 字体删除线,与下划线互斥 - * @command strikethrough - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'strikethrough' ); - * ``` - */ - -/** - * 字体边框 - * @command fontborder - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'fontborder' ); - * ``` - */ - -UE.plugins['font'] = function () { - var me = this, - fonts = { - 'forecolor': 'color', - 'backcolor': 'background-color', - 'fontsize': 'font-size', - 'fontfamily': 'font-family', - 'underline': 'text-decoration', - 'strikethrough': 'text-decoration', - 'fontborder': 'border' - }, - needCmd = {'underline': 1, 'strikethrough': 1, 'fontborder': 1}, - needSetChild = { - 'forecolor': 'color', - 'backcolor': 'background-color', - 'fontsize': 'font-size', - 'fontfamily': 'font-family' - - }; - me.setOpt({ - 'fontfamily': [ - { name: 'songti', val: '宋体,SimSun'}, - { name: 'yahei', val: '微软雅黑,Microsoft YaHei'}, - { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'}, - { name: 'heiti', val: '黑体, SimHei'}, - { name: 'lishu', val: '隶书, SimLi'}, - { name: 'andaleMono', val: 'andale mono'}, - { name: 'arial', val: 'arial, helvetica,sans-serif'}, - { name: 'arialBlack', val: 'arial black,avant garde'}, - { name: 'comicSansMs', val: 'comic sans ms'}, - { name: 'impact', val: 'impact,chicago'}, - { name: 'timesNewRoman', val: 'times new roman'} - ], - 'fontsize': [10, 11, 12, 14, 16, 18, 20, 24, 36] - }); - - function mergeWithParent(node){ - var parent; - while(parent = node.parentNode){ - if(parent.tagName == 'SPAN' && domUtils.getChildCount(parent,function(child){ - return !domUtils.isBookmarkNode(child) && !domUtils.isBr(child) - }) == 1) { - parent.style.cssText += node.style.cssText; - domUtils.remove(node,true); - node = parent; - - }else{ - break; - } - } - - } - function mergeChild(rng,cmdName,value){ - if(needSetChild[cmdName]){ - rng.adjustmentBoundary(); - if(!rng.collapsed && rng.startContainer.nodeType == 1){ - var start = rng.startContainer.childNodes[rng.startOffset]; - if(start && domUtils.isTagNode(start,'span')){ - var bk = rng.createBookmark(); - utils.each(domUtils.getElementsByTagName(start, 'span'), function (span) { - if (!span.parentNode || domUtils.isBookmarkNode(span))return; - if(cmdName == 'backcolor' && domUtils.getComputedStyle(span,'background-color').toLowerCase() === value){ - return; - } - domUtils.removeStyle(span,needSetChild[cmdName]); - if(span.style.cssText.replace(/^\s+$/,'').length == 0){ - domUtils.remove(span,true) - } - }); - rng.moveToBookmark(bk) - } - } - } - - } - function mergesibling(rng,cmdName,value) { - var collapsed = rng.collapsed, - bk = rng.createBookmark(), common; - if (collapsed) { - common = bk.start.parentNode; - while (dtd.$inline[common.tagName]) { - common = common.parentNode; - } - } else { - common = domUtils.getCommonAncestor(bk.start, bk.end); - } - utils.each(domUtils.getElementsByTagName(common, 'span'), function (span) { - if (!span.parentNode || domUtils.isBookmarkNode(span))return; - if (/\s*border\s*:\s*none;?\s*/i.test(span.style.cssText)) { - if(/^\s*border\s*:\s*none;?\s*$/.test(span.style.cssText)){ - domUtils.remove(span, true); - }else{ - domUtils.removeStyle(span,'border'); - } - return - } - if (/border/i.test(span.style.cssText) && span.parentNode.tagName == 'SPAN' && /border/i.test(span.parentNode.style.cssText)) { - span.style.cssText = span.style.cssText.replace(/border[^:]*:[^;]+;?/gi, ''); - } - if(!(cmdName=='fontborder' && value=='none')){ - var next = span.nextSibling; - while (next && next.nodeType == 1 && next.tagName == 'SPAN' ) { - if(domUtils.isBookmarkNode(next) && cmdName == 'fontborder') { - span.appendChild(next); - next = span.nextSibling; - continue; - } - if (next.style.cssText == span.style.cssText) { - domUtils.moveChild(next, span); - domUtils.remove(next); - } - if (span.nextSibling === next) - break; - next = span.nextSibling; - } - } - - - mergeWithParent(span); - if(browser.ie && browser.version > 8 ){ - //拷贝父亲们的特别的属性,这里只做背景颜色的处理 - var parent = domUtils.findParent(span,function(n){return n.tagName == 'SPAN' && /background-color/.test(n.style.cssText)}); - if(parent && !/background-color/.test(span.style.cssText)){ - span.style.backgroundColor = parent.style.backgroundColor; - } - } - - }); - rng.moveToBookmark(bk); - mergeChild(rng,cmdName,value) - } - - me.addInputRule(function (root) { - utils.each(root.getNodesByTagName('u s del font strike'), function (node) { - if (node.tagName == 'font') { - var cssStyle = []; - for (var p in node.attrs) { - switch (p) { - case 'size': - cssStyle.push('font-size:' + - ({ - '1':'10', - '2':'12', - '3':'16', - '4':'18', - '5':'24', - '6':'32', - '7':'48' - }[node.attrs[p]] || node.attrs[p]) + 'px'); - break; - case 'color': - cssStyle.push('color:' + node.attrs[p]); - break; - case 'face': - cssStyle.push('font-family:' + node.attrs[p]); - break; - case 'style': - cssStyle.push(node.attrs[p]); - } - } - node.attrs = { - 'style': cssStyle.join(';') - }; - } else { - var val = node.tagName == 'u' ? 'underline' : 'line-through'; - node.attrs = { - 'style': (node.getAttr('style') || '') + 'text-decoration:' + val + ';' - } - } - node.tagName = 'span'; - }); -// utils.each(root.getNodesByTagName('span'), function (node) { -// var val; -// if(val = node.getAttr('class')){ -// if(/fontstrikethrough/.test(val)){ -// node.setStyle('text-decoration','line-through'); -// if(node.attrs['class']){ -// node.attrs['class'] = node.attrs['class'].replace(/fontstrikethrough/,''); -// }else{ -// node.setAttr('class') -// } -// } -// if(/fontborder/.test(val)){ -// node.setStyle('border','1px solid #000'); -// if(node.attrs['class']){ -// node.attrs['class'] = node.attrs['class'].replace(/fontborder/,''); -// }else{ -// node.setAttr('class') -// } -// } -// } -// }); - }); -// me.addOutputRule(function(root){ -// utils.each(root.getNodesByTagName('span'), function (node) { -// var val; -// if(val = node.getStyle('text-decoration')){ -// if(/line-through/.test(val)){ -// if(node.attrs['class']){ -// node.attrs['class'] += ' fontstrikethrough'; -// }else{ -// node.setAttr('class','fontstrikethrough') -// } -// } -// -// node.setStyle('text-decoration') -// } -// if(val = node.getStyle('border')){ -// if(/1px/.test(val) && /solid/.test(val)){ -// if(node.attrs['class']){ -// node.attrs['class'] += ' fontborder'; -// -// }else{ -// node.setAttr('class','fontborder') -// } -// } -// node.setStyle('border') -// -// } -// }); -// }); - for (var p in fonts) { - (function (cmd, style) { - UE.commands[cmd] = { - execCommand: function (cmdName, value) { - value = value || (this.queryCommandState(cmdName) ? 'none' : cmdName == 'underline' ? 'underline' : - cmdName == 'fontborder' ? '1px solid #000' : - 'line-through'); - var me = this, - range = this.selection.getRange(), - text; - - if (value == 'default') { - - if (range.collapsed) { - text = me.document.createTextNode('font'); - range.insertNode(text).select(); - - } - me.execCommand('removeFormat', 'span,a', style); - if (text) { - range.setStartBefore(text).collapse(true); - domUtils.remove(text); - } - mergesibling(range,cmdName,value); - range.select() - } else { - if (!range.collapsed) { - if (needCmd[cmd] && me.queryCommandValue(cmd)) { - me.execCommand('removeFormat', 'span,a', style); - } - range = me.selection.getRange(); - - range.applyInlineStyle('span', {'style': style + ':' + value}); - mergesibling(range, cmdName,value); - range.select(); - } else { - - var span = domUtils.findParentByTagName(range.startContainer, 'span', true); - text = me.document.createTextNode('font'); - if (span && !span.children.length && !span[browser.ie ? 'innerText' : 'textContent'].replace(fillCharReg, '').length) { - //for ie hack when enter - range.insertNode(text); - if (needCmd[cmd]) { - range.selectNode(text).select(); - me.execCommand('removeFormat', 'span,a', style, null); - - span = domUtils.findParentByTagName(text, 'span', true); - range.setStartBefore(text); - - } - span && (span.style.cssText += ';' + style + ':' + value); - range.collapse(true).select(); - - - } else { - range.insertNode(text); - range.selectNode(text).select(); - span = range.document.createElement('span'); - - if (needCmd[cmd]) { - //a标签内的不处理跳过 - if (domUtils.findParentByTagName(text, 'a', true)) { - range.setStartBefore(text).setCursor(); - domUtils.remove(text); - return; - } - me.execCommand('removeFormat', 'span,a', style); - } - - span.style.cssText = style + ':' + value; - - - text.parentNode.insertBefore(span, text); - //修复,span套span 但样式不继承的问题 - if (!browser.ie || browser.ie && browser.version == 9) { - var spanParent = span.parentNode; - while (!domUtils.isBlockElm(spanParent)) { - if (spanParent.tagName == 'SPAN') { - //opera合并style不会加入";" - span.style.cssText = spanParent.style.cssText + ";" + span.style.cssText; - } - spanParent = spanParent.parentNode; - } - } - - - if (opera) { - setTimeout(function () { - range.setStart(span, 0).collapse(true); - mergesibling(range, cmdName,value); - range.select(); - }); - } else { - range.setStart(span, 0).collapse(true); - mergesibling(range,cmdName,value); - range.select(); - } - - //trace:981 - //domUtils.mergeToParent(span) - } - domUtils.remove(text); - } - - - } - return true; - }, - queryCommandValue: function (cmdName) { - var startNode = this.selection.getStart(); - - //trace:946 - if (cmdName == 'underline' || cmdName == 'strikethrough') { - var tmpNode = startNode, value; - while (tmpNode && !domUtils.isBlockElm(tmpNode) && !domUtils.isBody(tmpNode)) { - if (tmpNode.nodeType == 1) { - value = domUtils.getComputedStyle(tmpNode, style); - if (value != 'none') { - return value; - } - } - - tmpNode = tmpNode.parentNode; - } - return 'none'; - } - if (cmdName == 'fontborder') { - var tmp = startNode, val; - while (tmp && dtd.$inline[tmp.tagName]) { - if (val = domUtils.getComputedStyle(tmp, 'border')) { - - if (/1px/.test(val) && /solid/.test(val)) { - return val; - } - } - tmp = tmp.parentNode; - } - return '' - } - - if( cmdName == 'FontSize' ) { - var styleVal = domUtils.getComputedStyle(startNode, style), - tmp = /^([\d\.]+)(\w+)$/.exec( styleVal ); - - if( tmp ) { - - return Math.floor( tmp[1] ) + tmp[2]; - - } - - return styleVal; - - } - - return domUtils.getComputedStyle(startNode, style); - }, - queryCommandState: function (cmdName) { - if (!needCmd[cmdName]) - return 0; - var val = this.queryCommandValue(cmdName); - if (cmdName == 'fontborder') { - return /1px/.test(val) && /solid/.test(val) - } else { - return cmdName == 'underline' ? /underline/.test(val) : /line\-through/.test(val); - - } - - } - }; - })(p, fonts[p]); - } -}; - -// plugins/link.js -/** - * 超链接 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入超链接 - * @command link - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } options 设置自定义属性,例如:url、title、target - * @example - * ```javascript - * editor.execCommand( 'link', '{ - * url:'ueditor.baidu.com', - * title:'ueditor', - * target:'_blank' - * }' ); - * ``` - */ -/** - * 返回当前选中的第一个超链接节点 - * @command link - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { Element } 超链接节点 - * @example - * ```javascript - * editor.queryCommandValue( 'link' ); - * ``` - */ - -/** - * 取消超链接 - * @command unlink - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'unlink'); - * ``` - */ - -UE.plugins['link'] = function(){ - function optimize( range ) { - var start = range.startContainer,end = range.endContainer; - - if ( start = domUtils.findParentByTagName( start, 'a', true ) ) { - range.setStartBefore( start ); - } - if ( end = domUtils.findParentByTagName( end, 'a', true ) ) { - range.setEndAfter( end ); - } - } - - - UE.commands['unlink'] = { - execCommand : function() { - var range = this.selection.getRange(), - bookmark; - if(range.collapsed && !domUtils.findParentByTagName( range.startContainer, 'a', true )){ - return; - } - bookmark = range.createBookmark(); - optimize( range ); - range.removeInlineStyle( 'a' ).moveToBookmark( bookmark ).select(); - }, - queryCommandState : function(){ - return !this.highlight && this.queryCommandValue('link') ? 0 : -1; - } - - }; - function doLink(range,opt,me){ - var rngClone = range.cloneRange(), - link = me.queryCommandValue('link'); - optimize( range = range.adjustmentBoundary() ); - var start = range.startContainer; - if(start.nodeType == 1 && link){ - start = start.childNodes[range.startOffset]; - if(start && start.nodeType == 1 && start.tagName == 'A' && /^(?:https?|ftp|file)\s*:\s*\/\//.test(start[browser.ie?'innerText':'textContent'])){ - start[browser.ie ? 'innerText' : 'textContent'] = utils.html(opt.textValue||opt.href); - - } - } - if( !rngClone.collapsed || link){ - range.removeInlineStyle( 'a' ); - rngClone = range.cloneRange(); - } - - if ( rngClone.collapsed ) { - var a = range.document.createElement( 'a'), - text = ''; - if(opt.textValue){ - - text = utils.html(opt.textValue); - delete opt.textValue; - }else{ - text = utils.html(opt.href); - - } - domUtils.setAttributes( a, opt ); - start = domUtils.findParentByTagName( rngClone.startContainer, 'a', true ); - if(start && domUtils.isInNodeEndBoundary(rngClone,start)){ - range.setStartAfter(start).collapse(true); - - } - a[browser.ie ? 'innerText' : 'textContent'] = text; - range.insertNode(a).selectNode( a ); - } else { - range.applyInlineStyle( 'a', opt ); - - } - } - UE.commands['link'] = { - execCommand : function( cmdName, opt ) { - var range; - opt._href && (opt._href = utils.unhtml(opt._href,/[<">]/g)); - opt.href && (opt.href = utils.unhtml(opt.href,/[<">]/g)); - opt.textValue && (opt.textValue = utils.unhtml(opt.textValue,/[<">]/g)); - doLink(range=this.selection.getRange(),opt,this); - //闭合都不加占位符,如果加了会在a后边多个占位符节点,导致a是图片背景组成的列表,出现空白问题 - range.collapse().select(true); - - }, - queryCommandValue : function() { - var range = this.selection.getRange(), - node; - if ( range.collapsed ) { -// node = this.selection.getStart(); - //在ie下getstart()取值偏上了 - node = range.startContainer; - node = node.nodeType == 1 ? node : node.parentNode; - - if ( node && (node = domUtils.findParentByTagName( node, 'a', true )) && ! domUtils.isInNodeEndBoundary(range,node)) { - - return node; - } - } else { - //trace:1111 如果是

    xx

    startContainer是p就会找不到a - range.shrinkBoundary(); - var start = range.startContainer.nodeType == 3 || !range.startContainer.childNodes[range.startOffset] ? range.startContainer : range.startContainer.childNodes[range.startOffset], - end = range.endContainer.nodeType == 3 || range.endOffset == 0 ? range.endContainer : range.endContainer.childNodes[range.endOffset-1], - common = range.getCommonAncestor(); - node = domUtils.findParentByTagName( common, 'a', true ); - if ( !node && common.nodeType == 1){ - - var as = common.getElementsByTagName( 'a' ), - ps,pe; - - for ( var i = 0,ci; ci = as[i++]; ) { - ps = domUtils.getPosition( ci, start ),pe = domUtils.getPosition( ci,end); - if ( (ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) - && - (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS) - ) { - node = ci; - break; - } - } - } - return node; - } - - }, - queryCommandState : function() { - //判断如果是视频的话连接不可用 - //fix 853 - var img = this.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1); - return flag ? -1 : 0; - } - }; -}; - -// plugins/iframe.js -///import core -///import plugins\inserthtml.js -///commands 插入框架 -///commandsName InsertFrame -///commandsTitle 插入Iframe -///commandsDialog dialogs\insertframe - -UE.plugins['insertframe'] = function() { - var me =this; - function deleteIframe(){ - me._iframe && delete me._iframe; - } - - me.addListener("selectionchange",function(){ - deleteIframe(); - }); - -}; - - - -// plugins/scrawl.js -///import core -///commands 涂鸦 -///commandsName Scrawl -///commandsTitle 涂鸦 -///commandsDialog dialogs\scrawl -UE.commands['scrawl'] = { - queryCommandState : function(){ - return ( browser.ie && browser.version <= 8 ) ? -1 :0; - } -}; - - -// plugins/removeformat.js -/** - * 清除格式 - * @file - * @since 1.2.6.1 - */ - -/** - * 清除文字样式 - * @command removeformat - * @method execCommand - * @param { String } cmd 命令字符串 - * @param {String} tags 以逗号隔开的标签。如:strong - * @param {String} style 样式如:color - * @param {String} attrs 属性如:width - * @example - * ```javascript - * editor.execCommand( 'removeformat', 'strong','color','width' ); - * ``` - */ - -UE.plugins['removeformat'] = function(){ - var me = this; - me.setOpt({ - 'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var', - 'removeFormatAttributes':'class,style,lang,width,height,align,hspace,valign' - }); - me.commands['removeformat'] = { - execCommand : function( cmdName, tags, style, attrs,notIncludeA ) { - - var tagReg = new RegExp( '^(?:' + (tags || this.options.removeFormatTags).replace( /,/g, '|' ) + ')$', 'i' ) , - removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split( ',' ), - range = new dom.Range( this.document ), - bookmark,node,parent, - filter = function( node ) { - return node.nodeType == 1; - }; - - function isRedundantSpan (node) { - if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span'){ - return 0; - } - if (browser.ie) { - //ie 下判断实效,所以只能简单用style来判断 - //return node.style.cssText == '' ? 1 : 0; - var attrs = node.attributes; - if ( attrs.length ) { - for ( var i = 0,l = attrs.length; i - var node = range.startContainer, - tmp, - collapsed = range.collapsed; - while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){ - tmp = node.parentNode; - range.setStartBefore(node); - //trace:937 - //更新结束边界 - if(range.startContainer === range.endContainer){ - range.endOffset--; - } - domUtils.remove(node); - node = tmp; - } - - if(!collapsed){ - node = range.endContainer; - while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){ - tmp = node.parentNode; - range.setEndBefore(node); - domUtils.remove(node); - - node = tmp; - } - - - } - } - - - - range = this.selection.getRange(); - doRemove( range ); - range.select(); - - } - - }; - -}; - - -// plugins/blockquote.js -/** - * 添加引用 - * @file - * @since 1.2.6.1 - */ - -/** - * 添加引用 - * @command blockquote - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'blockquote' ); - * ``` - */ - -/** - * 添加引用 - * @command blockquote - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } attrs 节点属性 - * @example - * ```javascript - * editor.execCommand( 'blockquote',{ - * style: "color: red;" - * } ); - * ``` - */ - - -UE.plugins['blockquote'] = function(){ - var me = this; - function getObj(editor){ - return domUtils.filterNodeList(editor.selection.getStartElementPath(),'blockquote'); - } - me.commands['blockquote'] = { - execCommand : function( cmdName, attrs ) { - var range = this.selection.getRange(), - obj = getObj(this), - blockquote = dtd.blockquote, - bookmark = range.createBookmark(); - - if ( obj ) { - - var start = range.startContainer, - startBlock = domUtils.isBlockElm(start) ? start : domUtils.findParent(start,function(node){return domUtils.isBlockElm(node)}), - - end = range.endContainer, - endBlock = domUtils.isBlockElm(end) ? end : domUtils.findParent(end,function(node){return domUtils.isBlockElm(node)}); - - //处理一下li - startBlock = domUtils.findParentByTagName(startBlock,'li',true) || startBlock; - endBlock = domUtils.findParentByTagName(endBlock,'li',true) || endBlock; - - - if(startBlock.tagName == 'LI' || startBlock.tagName == 'TD' || startBlock === obj || domUtils.isBody(startBlock)){ - domUtils.remove(obj,true); - }else{ - domUtils.breakParent(startBlock,obj); - } - - if(startBlock !== endBlock){ - obj = domUtils.findParentByTagName(endBlock,'blockquote'); - if(obj){ - if(endBlock.tagName == 'LI' || endBlock.tagName == 'TD'|| domUtils.isBody(endBlock)){ - obj.parentNode && domUtils.remove(obj,true); - }else{ - domUtils.breakParent(endBlock,obj); - } - - } - } - - var blockquotes = domUtils.getElementsByTagName(this.document,'blockquote'); - for(var i=0,bi;bi=blockquotes[i++];){ - if(!bi.childNodes.length){ - domUtils.remove(bi); - }else if(domUtils.getPosition(bi,startBlock)&domUtils.POSITION_FOLLOWING && domUtils.getPosition(bi,endBlock)&domUtils.POSITION_PRECEDING){ - domUtils.remove(bi,true); - } - } - - - - - } else { - - var tmpRange = range.cloneRange(), - node = tmpRange.startContainer.nodeType == 1 ? tmpRange.startContainer : tmpRange.startContainer.parentNode, - preNode = node, - doEnd = 1; - - //调整开始 - while ( 1 ) { - if ( domUtils.isBody(node) ) { - if ( preNode !== node ) { - if ( range.collapsed ) { - tmpRange.selectNode( preNode ); - doEnd = 0; - } else { - tmpRange.setStartBefore( preNode ); - } - }else{ - tmpRange.setStart(node,0); - } - - break; - } - if ( !blockquote[node.tagName] ) { - if ( range.collapsed ) { - tmpRange.selectNode( preNode ); - } else{ - tmpRange.setStartBefore( preNode); - } - break; - } - - preNode = node; - node = node.parentNode; - } - - //调整结束 - if ( doEnd ) { - preNode = node = node = tmpRange.endContainer.nodeType == 1 ? tmpRange.endContainer : tmpRange.endContainer.parentNode; - while ( 1 ) { - - if ( domUtils.isBody( node ) ) { - if ( preNode !== node ) { - - tmpRange.setEndAfter( preNode ); - - } else { - tmpRange.setEnd( node, node.childNodes.length ); - } - - break; - } - if ( !blockquote[node.tagName] ) { - tmpRange.setEndAfter( preNode ); - break; - } - - preNode = node; - node = node.parentNode; - } - - } - - - node = range.document.createElement( 'blockquote' ); - domUtils.setAttributes( node, attrs ); - node.appendChild( tmpRange.extractContents() ); - tmpRange.insertNode( node ); - //去除重复的 - var childs = domUtils.getElementsByTagName(node,'blockquote'); - for(var i=0,ci;ci=childs[i++];){ - if(ci.parentNode){ - domUtils.remove(ci,true); - } - } - - } - range.moveToBookmark( bookmark ).select(); - }, - queryCommandState : function() { - return getObj(this) ? 1 : 0; - } - }; -}; - - - -// plugins/convertcase.js -/** - * 大小写转换 - * @file - * @since 1.2.6.1 - */ - -/** - * 把选区内文本变大写,与“tolowercase”命令互斥 - * @command touppercase - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'touppercase' ); - * ``` - */ - -/** - * 把选区内文本变小写,与“touppercase”命令互斥 - * @command tolowercase - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'tolowercase' ); - * ``` - */ -UE.commands['touppercase'] = -UE.commands['tolowercase'] = { - execCommand:function (cmd) { - var me = this; - var rng = me.selection.getRange(); - if(rng.collapsed){ - return rng; - } - var bk = rng.createBookmark(), - bkEnd = bk.end, - filterFn = function( node ) { - return !domUtils.isBr(node) && !domUtils.isWhitespace( node ); - }, - curNode = domUtils.getNextDomNode( bk.start, false, filterFn ); - while ( curNode && (domUtils.getPosition( curNode, bkEnd ) & domUtils.POSITION_PRECEDING) ) { - - if ( curNode.nodeType == 3 ) { - curNode.nodeValue = curNode.nodeValue[cmd == 'touppercase' ? 'toUpperCase' : 'toLowerCase'](); - } - curNode = domUtils.getNextDomNode( curNode, true, filterFn ); - if(curNode === bkEnd){ - break; - } - - } - rng.moveToBookmark(bk).select(); - } -}; - - - -// plugins/indent.js -/** - * 首行缩进 - * @file - * @since 1.2.6.1 - */ - -/** - * 缩进 - * @command indent - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'indent' ); - * ``` - */ -UE.commands['indent'] = { - execCommand : function() { - var me = this,value = me.queryCommandState("indent") ? "0em" : (me.options.indentValue || '2em'); - me.execCommand('Paragraph','p',{style:'text-indent:'+ value}); - }, - queryCommandState : function() { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6'); - return pN && pN.style.textIndent && parseInt(pN.style.textIndent) ? 1 : 0; - } - -}; - - -// plugins/print.js -/** - * 打印 - * @file - * @since 1.2.6.1 - */ - -/** - * 打印 - * @command print - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'print' ); - * ``` - */ -UE.commands['print'] = { - execCommand : function(){ - this.window.print(); - }, - notNeedUndo : 1 -}; - - - -// plugins/preview.js -/** - * 预览 - * @file - * @since 1.2.6.1 - */ - -/** - * 预览 - * @command preview - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'preview' ); - * ``` - */ -UE.commands['preview'] = { - execCommand : function(){ - var w = window.open('', '_blank', ''), - d = w.document; - d.open(); - d.write('
    '+this.getContent(null,null,true)+'
    '); - d.close(); - }, - notNeedUndo : 1 -}; - - -// plugins/selectall.js -/** - * 全选 - * @file - * @since 1.2.6.1 - */ - -/** - * 选中所有内容 - * @command selectall - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'selectall' ); - * ``` - */ -UE.plugins['selectall'] = function(){ - var me = this; - me.commands['selectall'] = { - execCommand : function(){ - //去掉了原生的selectAll,因为会出现报错和当内容为空时,不能出现闭合状态的光标 - var me = this,body = me.body, - range = me.selection.getRange(); - range.selectNodeContents(body); - if(domUtils.isEmptyBlock(body)){ - //opera不能自动合并到元素的里边,要手动处理一下 - if(browser.opera && body.firstChild && body.firstChild.nodeType == 1){ - range.setStartAtFirst(body.firstChild); - } - range.collapse(true); - } - range.select(true); - }, - notNeedUndo : 1 - }; - - - //快捷键 - me.addshortcutkey({ - "selectAll" : "ctrl+65" - }); -}; - - -// plugins/paragraph.js -/** - * 段落样式 - * @file - * @since 1.2.6.1 - */ - -/** - * 段落格式 - * @command paragraph - * @method execCommand - * @param { String } cmd 命令字符串 - * @param {String} style 标签值为:'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' - * @param {Object} attrs 标签的属性 - * @example - * ```javascript - * editor.execCommand( 'Paragraph','h1','{ - * class:'test' - * }' ); - * ``` - */ - -/** - * 返回选区内节点标签名 - * @command paragraph - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 节点标签名 - * @example - * ```javascript - * editor.queryCommandValue( 'Paragraph' ); - * ``` - */ - -UE.plugins['paragraph'] = function() { - var me = this, - block = domUtils.isBlockElm, - notExchange = ['TD','LI','PRE'], - - doParagraph = function(range,style,attrs,sourceCmdName){ - var bookmark = range.createBookmark(), - filterFn = function( node ) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace( node ); - }, - para; - - range.enlarge( true ); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ), - tmpRange = range.cloneRange(), - tmpNode; - while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) { - if ( current.nodeType == 3 || !block( current ) ) { - tmpRange.setStartBefore( current ); - while ( current && current !== bookmark2.end && !block( current ) ) { - tmpNode = current; - current = domUtils.getNextDomNode( current, false, null, function( node ) { - return !block( node ); - } ); - } - tmpRange.setEndAfter( tmpNode ); - - para = range.document.createElement( style ); - if(attrs){ - domUtils.setAttributes(para,attrs); - if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){ - para.style.cssText = attrs.style; - } - } - para.appendChild( tmpRange.extractContents() ); - //需要内容占位 - if(domUtils.isEmptyNode(para)){ - domUtils.fillChar(range.document,para); - - } - - tmpRange.insertNode( para ); - - var parent = para.parentNode; - //如果para上一级是一个block元素且不是body,td就删除它 - if ( block( parent ) && !domUtils.isBody( para.parentNode ) && utils.indexOf(notExchange,parent.tagName)==-1) { - //存储dir,style - if(!(sourceCmdName && sourceCmdName == 'customstyle')){ - parent.getAttribute('dir') && para.setAttribute('dir',parent.getAttribute('dir')); - //trace:1070 - parent.style.cssText && (para.style.cssText = parent.style.cssText + ';' + para.style.cssText); - //trace:1030 - parent.style.textAlign && !para.style.textAlign && (para.style.textAlign = parent.style.textAlign); - parent.style.textIndent && !para.style.textIndent && (para.style.textIndent = parent.style.textIndent); - parent.style.padding && !para.style.padding && (para.style.padding = parent.style.padding); - } - - //trace:1706 选择的就是h1-6要删除 - if(attrs && /h\d/i.test(parent.tagName) && !/h\d/i.test(para.tagName) ){ - domUtils.setAttributes(parent,attrs); - if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){ - parent.style.cssText = attrs.style; - } - domUtils.remove(para,true); - para = parent; - }else{ - domUtils.remove( para.parentNode, true ); - } - - } - if( utils.indexOf(notExchange,parent.tagName)!=-1){ - current = parent; - }else{ - current = para; - } - - - current = domUtils.getNextDomNode( current, false, filterFn ); - } else { - current = domUtils.getNextDomNode( current, true, filterFn ); - } - } - return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark ); - }; - me.setOpt('paragraph',{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}); - me.commands['paragraph'] = { - execCommand : function( cmdName, style,attrs,sourceCmdName ) { - var range = this.selection.getRange(); - //闭合时单独处理 - if(range.collapsed){ - var txt = this.document.createTextNode('p'); - range.insertNode(txt); - //去掉冗余的fillchar - if(browser.ie){ - var node = txt.previousSibling; - if(node && domUtils.isWhitespace(node)){ - domUtils.remove(node); - } - node = txt.nextSibling; - if(node && domUtils.isWhitespace(node)){ - domUtils.remove(node); - } - } - - } - range = doParagraph(range,style,attrs,sourceCmdName); - if(txt){ - range.setStartBefore(txt).collapse(true); - pN = txt.parentNode; - - domUtils.remove(txt); - - if(domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)){ - domUtils.fillNode(this.document,pN); - } - - } - - if(browser.gecko && range.collapsed && range.startContainer.nodeType == 1){ - var child = range.startContainer.childNodes[range.startOffset]; - if(child && child.nodeType == 1 && child.tagName.toLowerCase() == style){ - range.setStart(child,0).collapse(true); - } - } - //trace:1097 原来有true,原因忘了,但去了就不能清除多余的占位符了 - range.select(); - - - return true; - }, - queryCommandValue : function() { - var node = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6'); - return node ? node.tagName.toLowerCase() : ''; - } - }; -}; - - -// plugins/directionality.js -/** - * 设置文字输入的方向的插件 - * @file - * @since 1.2.6.1 - */ -(function() { - var block = domUtils.isBlockElm , - getObj = function(editor){ -// var startNode = editor.selection.getStart(), -// parents; -// if ( startNode ) { -// //查找所有的是block的父亲节点 -// parents = domUtils.findParents( startNode, true, block, true ); -// for ( var i = 0,ci; ci = parents[i++]; ) { -// if ( ci.getAttribute( 'dir' ) ) { -// return ci; -// } -// } -// } - return domUtils.filterNodeList(editor.selection.getStartElementPath(),function(n){return n && n.nodeType == 1 && n.getAttribute('dir')}); - - }, - doDirectionality = function(range,editor,forward){ - - var bookmark, - filterFn = function( node ) { - return node.nodeType == 1 ? !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node); - }, - - obj = getObj( editor ); - - if ( obj && range.collapsed ) { - obj.setAttribute( 'dir', forward ); - return range; - } - bookmark = range.createBookmark(); - range.enlarge( true ); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ), - tmpRange = range.cloneRange(), - tmpNode; - while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) { - if ( current.nodeType == 3 || !block( current ) ) { - tmpRange.setStartBefore( current ); - while ( current && current !== bookmark2.end && !block( current ) ) { - tmpNode = current; - current = domUtils.getNextDomNode( current, false, null, function( node ) { - return !block( node ); - } ); - } - tmpRange.setEndAfter( tmpNode ); - var common = tmpRange.getCommonAncestor(); - if ( !domUtils.isBody( common ) && block( common ) ) { - //遍历到了block节点 - common.setAttribute( 'dir', forward ); - current = common; - } else { - //没有遍历到,添加一个block节点 - var p = range.document.createElement( 'p' ); - p.setAttribute( 'dir', forward ); - var frag = tmpRange.extractContents(); - p.appendChild( frag ); - tmpRange.insertNode( p ); - current = p; - } - - current = domUtils.getNextDomNode( current, false, filterFn ); - } else { - current = domUtils.getNextDomNode( current, true, filterFn ); - } - } - return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark ); - }; - - /** - * 文字输入方向 - * @command directionality - * @method execCommand - * @param { String } cmdName 命令字符串 - * @param { String } forward 传入'ltr'表示从左向右输入,传入'rtl'表示从右向左输入 - * @example - * ```javascript - * editor.execCommand( 'directionality', 'ltr'); - * ``` - */ - - /** - * 查询当前选区的文字输入方向 - * @command directionality - * @method queryCommandValue - * @param { String } cmdName 命令字符串 - * @return { String } 返回'ltr'表示从左向右输入,返回'rtl'表示从右向左输入 - * @example - * ```javascript - * editor.queryCommandValue( 'directionality'); - * ``` - */ - UE.commands['directionality'] = { - execCommand : function( cmdName,forward ) { - var range = this.selection.getRange(); - //闭合时单独处理 - if(range.collapsed){ - var txt = this.document.createTextNode('d'); - range.insertNode(txt); - } - doDirectionality(range,this,forward); - if(txt){ - range.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - - range.select(); - return true; - }, - queryCommandValue : function() { - var node = getObj(this); - return node ? node.getAttribute('dir') : 'ltr'; - } - }; -})(); - - - -// plugins/horizontal.js -/** - * 插入分割线插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入分割线 - * @command horizontal - * @method execCommand - * @param { String } cmdName 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'horizontal' ); - * ``` - */ -UE.plugins['horizontal'] = function(){ - var me = this; - me.commands['horizontal'] = { - execCommand : function( cmdName ) { - var me = this; - if(me.queryCommandState(cmdName)!==-1){ - me.execCommand('insertHtml','
    '); - var range = me.selection.getRange(), - start = range.startContainer; - if(start.nodeType == 1 && !start.childNodes[range.startOffset] ){ - - var tmp; - if(tmp = start.childNodes[range.startOffset - 1]){ - if(tmp.nodeType == 1 && tmp.tagName == 'HR'){ - if(me.options.enterTag == 'p'){ - tmp = me.document.createElement('p'); - range.insertNode(tmp); - range.setStart(tmp,0).setCursor(); - - }else{ - tmp = me.document.createElement('br'); - range.insertNode(tmp); - range.setStartBefore(tmp).setCursor(); - } - } - } - - } - return true; - } - - }, - //边界在table里不能加分隔线 - queryCommandState : function() { - return domUtils.filterNodeList(this.selection.getStartElementPath(),'table') ? -1 : 0; - } - }; -// me.addListener('delkeyup',function(){ -// var rng = this.selection.getRange(); -// if(browser.ie && browser.version > 8){ -// rng.txtToElmBoundary(true); -// if(domUtils.isStartInblock(rng)){ -// var tmpNode = rng.startContainer; -// var pre = tmpNode.previousSibling; -// if(pre && domUtils.isTagNode(pre,'hr')){ -// domUtils.remove(pre); -// rng.select(); -// return; -// } -// } -// } -// if(domUtils.isBody(rng.startContainer)){ -// var hr = rng.startContainer.childNodes[rng.startOffset -1]; -// if(hr && hr.nodeName == 'HR'){ -// var next = hr.nextSibling; -// if(next){ -// rng.setStart(next,0) -// }else if(hr.previousSibling){ -// rng.setStartAtLast(hr.previousSibling) -// }else{ -// var p = this.document.createElement('p'); -// hr.parentNode.insertBefore(p,hr); -// domUtils.fillNode(this.document,p); -// rng.setStart(p,0); -// } -// domUtils.remove(hr); -// rng.setCursor(false,true); -// } -// } -// }) - me.addListener('delkeydown',function(name,evt){ - var rng = this.selection.getRange(); - rng.txtToElmBoundary(true); - if(domUtils.isStartInblock(rng)){ - var tmpNode = rng.startContainer; - var pre = tmpNode.previousSibling; - if(pre && domUtils.isTagNode(pre,'hr')){ - domUtils.remove(pre); - rng.select(); - domUtils.preventDefault(evt); - return true; - - } - } - - }) -}; - - - -// plugins/time.js -/** - * 插入时间和日期 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入时间,默认格式:12:59:59 - * @command time - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'time'); - * ``` - */ - -/** - * 插入日期,默认格式:2013-08-30 - * @command date - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'date'); - * ``` - */ -UE.commands['time'] = UE.commands["date"] = { - execCommand : function(cmd, format){ - var date = new Date; - - function formatTime(date, format) { - var hh = ('0' + date.getHours()).slice(-2), - ii = ('0' + date.getMinutes()).slice(-2), - ss = ('0' + date.getSeconds()).slice(-2); - format = format || 'hh:ii:ss'; - return format.replace(/hh/ig, hh).replace(/ii/ig, ii).replace(/ss/ig, ss); - } - function formatDate(date, format) { - var yyyy = ('000' + date.getFullYear()).slice(-4), - yy = yyyy.slice(-2), - mm = ('0' + (date.getMonth()+1)).slice(-2), - dd = ('0' + date.getDate()).slice(-2); - format = format || 'yyyy-mm-dd'; - return format.replace(/yyyy/ig, yyyy).replace(/yy/ig, yy).replace(/mm/ig, mm).replace(/dd/ig, dd); - } - - this.execCommand('insertHtml',cmd == "time" ? formatTime(date, format):formatDate(date, format) ); - } -}; - - -// plugins/rowspacing.js -/** - * 段前段后间距插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 设置段间距 - * @command rowspacing - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 段间距的值,以px为单位 - * @param { String } dir 间距位置,top或bottom,分别表示段前和段后 - * @example - * ```javascript - * editor.execCommand( 'rowspacing', '10', 'top' ); - * ``` - */ - -UE.plugins['rowspacing'] = function(){ - var me = this; - me.setOpt({ - 'rowspacingtop':['5', '10', '15', '20', '25'], - 'rowspacingbottom':['5', '10', '15', '20', '25'] - - }); - me.commands['rowspacing'] = { - execCommand : function( cmdName,value,dir ) { - this.execCommand('paragraph','p',{style:'margin-'+dir+':'+value + 'px'}); - return true; - }, - queryCommandValue : function(cmdName,dir) { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node) }), - value; - //trace:1026 - if(pN){ - value = domUtils.getComputedStyle(pN,'margin-'+dir).replace(/[^\d]/g,''); - return !value ? 0 : value; - } - return 0; - - } - }; -}; - - - - -// plugins/lineheight.js -/** - * 设置行内间距 - * @file - * @since 1.2.6.1 - */ -UE.plugins['lineheight'] = function(){ - var me = this; - me.setOpt({'lineheight':['1', '1.5','1.75','2', '3', '4', '5']}); - - /** - * 行距 - * @command lineheight - * @method execCommand - * @param { String } cmdName 命令字符串 - * @param { String } value 传入的行高值, 该值是当前字体的倍数, 例如: 1.5, 1.75 - * @example - * ```javascript - * editor.execCommand( 'lineheight', 1.5); - * ``` - */ - /** - * 查询当前选区内容的行高大小 - * @command lineheight - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回当前行高大小 - * @example - * ```javascript - * editor.queryCommandValue( 'lineheight' ); - * ``` - */ - - me.commands['lineheight'] = { - execCommand : function( cmdName,value ) { - this.execCommand('paragraph','p',{style:'line-height:'+ (value == "1" ? "normal" : value + 'em') }); - return true; - }, - queryCommandValue : function() { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node)}); - if(pN){ - var value = domUtils.getComputedStyle(pN,'line-height'); - return value == 'normal' ? 1 : value.replace(/[^\d.]*/ig,""); - } - } - }; -}; - - - - -// plugins/insertcode.js -/** - * 插入代码插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['insertcode'] = function() { - var me = this; - me.ready(function(){ - utils.cssRule('pre','pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}', - me.document) - }); - me.setOpt('insertcode',{ - 'as3':'ActionScript3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'Css', - 'cf':'CodeFunction', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'Html', - 'java':'Java', - 'jfx':'JavaFx', - 'js':'Javascript', - 'pl':'Perl', - 'php':'Php', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'Sql', - 'vb':'Vb', - 'xml':'Xml' - }); - - /** - * 插入代码 - * @command insertcode - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } lang 插入代码的语言 - * @example - * ```javascript - * editor.execCommand( 'insertcode', 'javascript' ); - * ``` - */ - - /** - * 如果选区所在位置是插入插入代码区域,返回代码的语言 - * @command insertcode - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回代码的语言 - * @example - * ```javascript - * editor.queryCommandValue( 'insertcode' ); - * ``` - */ - - me.commands['insertcode'] = { - execCommand : function(cmd,lang){ - var me = this, - rng = me.selection.getRange(), - pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - pre.className = 'brush:'+lang+';toolbar:false;'; - }else{ - var code = ''; - if(rng.collapsed){ - code = browser.ie && browser.ie11below ? (browser.version <= 8 ? ' ':''):'
    '; - }else{ - var frag = rng.extractContents(); - var div = me.document.createElement('div'); - div.appendChild(frag); - - utils.each(UE.filterNode(UE.htmlparser(div.innerHTML.replace(/[\r\t]/g,'')),me.options.filterTxtRules).children,function(node){ - if(browser.ie && browser.ie11below && browser.version > 8){ - - if(node.type =='element'){ - if(node.tagName == 'br'){ - code += '\n' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - code += '\n' - }else if(!dtd.$empty[node.tagName]){ - code += cn.innerText(); - } - }else{ - code += cn.data - } - }) - if(!/\n$/.test(code)){ - code += '\n'; - } - } - }else{ - code += node.data + '\n' - } - if(!node.nextSibling() && /\n$/.test(code)){ - code = code.replace(/\n$/,''); - } - }else{ - if(browser.ie && browser.ie11below){ - - if(node.type =='element'){ - if(node.tagName == 'br'){ - code += '
    ' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - code += '
    ' - }else if(!dtd.$empty[node.tagName]){ - code += cn.innerText(); - } - }else{ - code += cn.data - } - }); - if(!/br>$/.test(code)){ - code += '
    '; - } - } - }else{ - code += node.data + '
    ' - } - if(!node.nextSibling() && /
    $/.test(code)){ - code = code.replace(/
    $/,''); - } - - }else{ - code += (node.type == 'element' ? (dtd.$empty[node.tagName] ? '' : node.innerText()) : node.data); - if(!/br\/?\s*>$/.test(code)){ - if(!node.nextSibling()) - return; - code += '
    ' - } - } - - } - - }); - } - me.execCommand('inserthtml','
    '+code+'
    ',true); - - pre = me.document.getElementById('coder'); - domUtils.removeAttributes(pre,'id'); - var tmpNode = pre.previousSibling; - - if(tmpNode && (tmpNode.nodeType == 3 && tmpNode.nodeValue.length == 1 && browser.ie && browser.version == 6 || domUtils.isEmptyBlock(tmpNode))){ - - domUtils.remove(tmpNode) - } - var rng = me.selection.getRange(); - if(domUtils.isEmptyBlock(pre)){ - rng.setStart(pre,0).setCursor(false,true) - }else{ - rng.selectNodeContents(pre).select() - } - } - - - - }, - queryCommandValue : function(){ - var path = this.selection.getStartElementPath(); - var lang = ''; - utils.each(path,function(node){ - if(node.nodeName =='PRE'){ - var match = node.className.match(/brush:([^;]+)/); - lang = match && match[1] ? match[1] : ''; - return false; - } - }); - return lang; - } - }; - - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('pre'),function(pre){ - var brs = pre.getNodesByTagName('br'); - if(brs.length){ - browser.ie && browser.ie11below && browser.version > 8 && utils.each(brs,function(br){ - var txt = UE.uNode.createText('\n'); - br.parentNode.insertBefore(txt,br); - br.parentNode.removeChild(br); - }); - return; - } - if(browser.ie && browser.ie11below && browser.version > 8) - return; - var code = pre.innerText().split(/\n/); - pre.innerHTML(''); - utils.each(code,function(c){ - if(c.length){ - pre.appendChild(UE.uNode.createText(c)); - } - pre.appendChild(UE.uNode.createElement('br')) - }) - }) - }); - me.addOutputRule(function(root){ - utils.each(root.getNodesByTagName('pre'),function(pre){ - var code = ''; - utils.each(pre.children,function(n){ - if(n.type == 'text'){ - //在ie下文本内容有可能末尾带有\n要去掉 - //trace:3396 - code += n.data.replace(/[ ]/g,' ').replace(/\n$/,''); - }else{ - if(n.tagName == 'br'){ - code += '\n' - }else{ - code += (!dtd.$empty[n.tagName] ? '' : n.innerText()); - } - - } - - }); - - pre.innerText(code.replace(/( |\n)+$/,'')) - }) - }); - //不需要判断highlight的command列表 - me.notNeedCodeQuery ={ - help:1, - undo:1, - redo:1, - source:1, - print:1, - searchreplace:1, - fullscreen:1, - preview:1, - insertparagraph:1, - elementpath:1, - insertcode:1, - inserthtml:1, - selectall:1 - }; - //将queyCommamndState重置 - var orgQuery = me.queryCommandState; - me.queryCommandState = function(cmd){ - var me = this; - - if(!me.notNeedCodeQuery[cmd.toLowerCase()] && me.selection && me.queryCommandValue('insertcode')){ - return -1; - } - return UE.Editor.prototype.queryCommandState.apply(this,arguments) - }; - me.addListener('beforeenterkeydown',function(){ - var rng = me.selection.getRange(); - var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - me.fireEvent('saveScene'); - if(!rng.collapsed){ - rng.deleteContents(); - } - if(!browser.ie || browser.ie9above){ - var tmpNode = me.document.createElement('br'),pre; - rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true); - var next = tmpNode.nextSibling; - if(!next && (!browser.ie || browser.version > 10)){ - rng.insertNode(tmpNode.cloneNode(false)); - }else{ - rng.setStartAfter(tmpNode); - } - pre = tmpNode.previousSibling; - var tmp; - while(pre ){ - tmp = pre; - pre = pre.previousSibling; - if(!pre || pre.nodeName == 'BR'){ - pre = tmp; - break; - } - } - if(pre){ - var str = ''; - while(pre && pre.nodeName != 'BR' && new RegExp('^[\\s'+domUtils.fillChar+']*$').test(pre.nodeValue)){ - str += pre.nodeValue; - pre = pre.nextSibling; - } - if(pre.nodeName != 'BR'){ - var match = pre.nodeValue.match(new RegExp('^([\\s'+domUtils.fillChar+']+)')); - if(match && match[1]){ - str += match[1] - } - - } - if(str){ - str = me.document.createTextNode(str); - rng.insertNode(str).setStartAfter(str); - } - } - rng.collapse(true).select(true); - }else{ - if(browser.version > 8){ - - var txt = me.document.createTextNode('\n'); - var start = rng.startContainer; - if(rng.startOffset == 0){ - var preNode = start.previousSibling; - if(preNode){ - rng.insertNode(txt); - var fillchar = me.document.createTextNode(' '); - rng.setStartAfter(txt).insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true) - } - }else{ - rng.insertNode(txt).setStartAfter(txt); - var fillchar = me.document.createTextNode(' '); - start = rng.startContainer.childNodes[rng.startOffset]; - if(start && !/^\n/.test(start.nodeValue)){ - rng.setStartBefore(txt) - } - rng.insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true) - } - - }else{ - var tmpNode = me.document.createElement('br'); - rng.insertNode(tmpNode); - rng.insertNode(me.document.createTextNode(domUtils.fillChar)); - rng.setStartAfter(tmpNode); - pre = tmpNode.previousSibling; - var tmp; - while(pre ){ - tmp = pre; - pre = pre.previousSibling; - if(!pre || pre.nodeName == 'BR'){ - pre = tmp; - break; - } - } - if(pre){ - var str = ''; - while(pre && pre.nodeName != 'BR' && new RegExp('^[ '+domUtils.fillChar+']*$').test(pre.nodeValue)){ - str += pre.nodeValue; - pre = pre.nextSibling; - } - if(pre.nodeName != 'BR'){ - var match = pre.nodeValue.match(new RegExp('^([ '+domUtils.fillChar+']+)')); - if(match && match[1]){ - str += match[1] - } - - } - - str = me.document.createTextNode(str); - rng.insertNode(str).setStartAfter(str); - } - rng.collapse(true).select(); - } - - - } - me.fireEvent('saveScene'); - return true; - } - - - }); - - me.addListener('tabkeydown',function(cmd,evt){ - var rng = me.selection.getRange(); - var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - me.fireEvent('saveScene'); - if(evt.shiftKey){ - - }else{ - if(!rng.collapsed){ - var bk = rng.createBookmark(); - var start = bk.start.previousSibling; - - while(start){ - if(pre.firstChild === start && !domUtils.isBr(start)){ - pre.insertBefore(me.document.createTextNode(' '),start); - - break; - } - if(domUtils.isBr(start)){ - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling); - - break; - } - start = start.previousSibling; - } - var end = bk.end; - start = bk.start.nextSibling; - if(pre.firstChild === bk.start){ - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling) - - } - while(start && start !== end){ - if(domUtils.isBr(start) && start.nextSibling){ - if(start.nextSibling === end){ - break; - } - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling) - } - - start = start.nextSibling; - } - rng.moveToBookmark(bk).select(); - }else{ - var tmpNode = me.document.createTextNode(' '); - rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true).select(true); - } - } - - - me.fireEvent('saveScene'); - return true; - } - - - }); - - - me.addListener('beforeinserthtml',function(evtName,html){ - var me = this, - rng = me.selection.getRange(), - pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - if(!rng.collapsed){ - rng.deleteContents() - } - var htmlstr = ''; - if(browser.ie && browser.version > 8){ - - utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){ - if(node.type =='element'){ - if(node.tagName == 'br'){ - htmlstr += '\n' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - htmlstr += '\n' - }else if(!dtd.$empty[node.tagName]){ - htmlstr += cn.innerText(); - } - }else{ - htmlstr += cn.data - } - }) - if(!/\n$/.test(htmlstr)){ - htmlstr += '\n'; - } - } - }else{ - htmlstr += node.data + '\n' - } - if(!node.nextSibling() && /\n$/.test(htmlstr)){ - htmlstr = htmlstr.replace(/\n$/,''); - } - }); - var tmpNode = me.document.createTextNode(utils.html(htmlstr.replace(/ /g,' '))); - rng.insertNode(tmpNode).selectNode(tmpNode).select(); - }else{ - var frag = me.document.createDocumentFragment(); - - utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){ - if(node.type =='element'){ - if(node.tagName == 'br'){ - frag.appendChild(me.document.createElement('br')) - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - - frag.appendChild(me.document.createElement('br')) - }else if(!dtd.$empty[node.tagName]){ - frag.appendChild(me.document.createTextNode(utils.html(cn.innerText().replace(/ /g,' ')))); - - } - }else{ - frag.appendChild(me.document.createTextNode(utils.html( cn.data.replace(/ /g,' ')))); - - } - }) - if(frag.lastChild.nodeName != 'BR'){ - frag.appendChild(me.document.createElement('br')) - } - } - }else{ - frag.appendChild(me.document.createTextNode(utils.html( node.data.replace(/ /g,' ')))); - } - if(!node.nextSibling() && frag.lastChild.nodeName == 'BR'){ - frag.removeChild(frag.lastChild) - } - - - }); - rng.insertNode(frag).select(); - - } - - return true; - } - }); - //方向键的处理 - me.addListener('keydown',function(cmd,evt){ - var me = this,keyCode = evt.keyCode || evt.which; - if(keyCode == 40){ - var rng = me.selection.getRange(),pre,start = rng.startContainer; - if(rng.collapsed && (pre = domUtils.findParentByTagName(rng.startContainer,'pre',true)) && !pre.nextSibling){ - var last = pre.lastChild - while(last && last.nodeName == 'BR'){ - last = last.previousSibling; - } - if(last === start || rng.startContainer === pre && rng.startOffset == pre.childNodes.length){ - me.execCommand('insertparagraph'); - domUtils.preventDefault(evt) - } - - } - } - }); - //trace:3395 - me.addListener('delkeydown',function(type,evt){ - var rng = this.selection.getRange(); - rng.txtToElmBoundary(true); - var start = rng.startContainer; - if(domUtils.isTagNode(start,'pre') && rng.collapsed && domUtils.isStartInblock(rng)){ - var p = me.document.createElement('p'); - domUtils.fillNode(me.document,p); - start.parentNode.insertBefore(p,start); - domUtils.remove(start); - rng.setStart(p,0).setCursor(false,true); - domUtils.preventDefault(evt); - return true; - } - }) -}; - - -// plugins/cleardoc.js -/** - * 清空文档插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 清空文档 - * @command cleardoc - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor 是编辑器实例 - * editor.execCommand('cleardoc'); - * ``` - */ - -UE.commands['cleardoc'] = { - execCommand : function( cmdName) { - var me = this, - enterTag = me.options.enterTag, - range = me.selection.getRange(); - if(enterTag == "br"){ - me.body.innerHTML = "
    "; - range.setStart(me.body,0).setCursor(); - }else{ - me.body.innerHTML = "

    "+(ie ? "" : "
    ")+"

    "; - range.setStart(me.body.firstChild,0).setCursor(false,true); - } - setTimeout(function(){ - me.fireEvent("clearDoc"); - },0); - - } -}; - - - -// plugins/anchor.js -/** - * 锚点插件,为UEditor提供插入锚点支持 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('anchor', function (){ - - return { - bindEvents:{ - 'ready':function(){ - utils.cssRule('anchor', - '.anchorclass{background: url(\'' - + this.options.themePath - + this.options.theme +'/images/anchor.gif\') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}', - this.document); - } - }, - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(a){ - var val; - if(val = a.getAttr('anchorname')){ - a.tagName = 'a'; - a.setAttr({ - anchorname : '', - name : val, - 'class' : '' - }) - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('a'),function(a){ - var val; - if((val = a.getAttr('name')) && !a.getAttr('href')){ - a.tagName = 'img'; - a.setAttr({ - anchorname :a.getAttr('name'), - 'class' : 'anchorclass' - }); - a.setAttr('name') - - } - }) - - }, - commands:{ - /** - * 插入锚点 - * @command anchor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } name 锚点名称字符串 - * @example - * ```javascript - * //editor 是编辑器实例 - * editor.execCommand('anchor', 'anchor1'); - * ``` - */ - 'anchor':{ - execCommand:function (cmd, name) { - var range = this.selection.getRange(),img = range.getClosedNode(); - if (img && img.getAttribute('anchorname')) { - if (name) { - img.setAttribute('anchorname', name); - } else { - range.setStartBefore(img).setCursor(); - domUtils.remove(img); - } - } else { - if (name) { - //只在选区的开始插入 - var anchor = this.document.createElement('img'); - range.collapse(true); - domUtils.setAttributes(anchor,{ - 'anchorname':name, - 'class':'anchorclass' - }); - range.insertNode(anchor).setStartAfter(anchor).setCursor(false,true); - } - } - } - } - } - } -}); - - -// plugins/wordcount.js -///import core -///commands 字数统计 -///commandsName WordCount,wordCount -///commandsTitle 字数统计 -/* - * Created by JetBrains WebStorm. - * User: taoqili - * Date: 11-9-7 - * Time: 下午8:18 - * To change this template use File | Settings | File Templates. - */ - -UE.plugins['wordcount'] = function(){ - var me = this; - me.setOpt('wordCount',true); - me.addListener('contentchange',function(){ - me.fireEvent('wordcount'); - }); - var timer; - me.addListener('ready',function(){ - var me = this; - domUtils.on(me.body,"keyup",function(evt){ - var code = evt.keyCode||evt.which, - //忽略的按键,ctr,alt,shift,方向键 - ignores = {"16":1,"18":1,"20":1,"37":1,"38":1,"39":1,"40":1}; - if(code in ignores) return; - clearTimeout(timer); - timer = setTimeout(function(){ - me.fireEvent('wordcount'); - },200) - }) - }); -}; - - -// plugins/pagebreak.js -/** - * 分页功能插件 - * @file - * @since 1.2.6.1 - */ -UE.plugins['pagebreak'] = function () { - var me = this, - notBreakTags = ['td']; - me.setOpt('pageBreakTag','_ueditor_page_break_tag_'); - - function fillNode(node){ - if(domUtils.isEmptyBlock(node)){ - var firstChild = node.firstChild,tmpNode; - - while(firstChild && firstChild.nodeType == 1 && domUtils.isEmptyBlock(firstChild)){ - tmpNode = firstChild; - firstChild = firstChild.firstChild; - } - !tmpNode && (tmpNode = node); - domUtils.fillNode(me.document,tmpNode); - } - } - //分页符样式添加 - - me.ready(function(){ - utils.cssRule('pagebreak','.pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}',me.document); - }); - function isHr(node){ - return node && node.nodeType == 1 && node.tagName == 'HR' && node.className == 'pagebreak'; - } - me.addInputRule(function(root){ - root.traversal(function(node){ - if(node.type == 'text' && node.data == me.options.pageBreakTag){ - var hr = UE.uNode.createElement('
    '); - node.parentNode.insertBefore(hr,node); - node.parentNode.removeChild(node) - } - }) - }); - me.addOutputRule(function(node){ - utils.each(node.getNodesByTagName('hr'),function(n){ - if(n.getAttr('class') == 'pagebreak'){ - var txt = UE.uNode.createText(me.options.pageBreakTag); - n.parentNode.insertBefore(txt,n); - n.parentNode.removeChild(n); - } - }) - - }); - - /** - * 插入分页符 - * @command pagebreak - * @method execCommand - * @param { String } cmd 命令字符串 - * @remind 在表格中插入分页符会把表格切分成两部分 - * @remind 获取编辑器内的数据时, 编辑器会把分页符转换成“_ueditor_page_break_tag_”字符串, - * 以便于提交数据到服务器端后处理分页。 - * @example - * ```javascript - * editor.execCommand( 'pagebreak'); //插入一个hr标签,带有样式类名pagebreak - * ``` - */ - - me.commands['pagebreak'] = { - execCommand:function () { - var range = me.selection.getRange(),hr = me.document.createElement('hr'); - domUtils.setAttributes(hr,{ - 'class' : 'pagebreak', - noshade:"noshade", - size:"5" - }); - domUtils.unSelectable(hr); - //table单独处理 - var node = domUtils.findParentByTagName(range.startContainer, notBreakTags, true), - - parents = [], pN; - if (node) { - switch (node.tagName) { - case 'TD': - pN = node.parentNode; - if (!pN.previousSibling) { - var table = domUtils.findParentByTagName(pN, 'table'); -// var tableWrapDiv = table.parentNode; -// if(tableWrapDiv && tableWrapDiv.nodeType == 1 -// && tableWrapDiv.tagName == 'DIV' -// && tableWrapDiv.getAttribute('dropdrag') -// ){ -// domUtils.remove(tableWrapDiv,true); -// } - table.parentNode.insertBefore(hr, table); - parents = domUtils.findParents(hr, true); - - } else { - pN.parentNode.insertBefore(hr, pN); - parents = domUtils.findParents(hr); - - } - pN = parents[1]; - if (hr !== pN) { - domUtils.breakParent(hr, pN); - - } - //table要重写绑定一下拖拽 - me.fireEvent('afteradjusttable',me.document); - } - - } else { - - if (!range.collapsed) { - range.deleteContents(); - var start = range.startContainer; - while ( !domUtils.isBody(start) && domUtils.isBlockElm(start) && domUtils.isEmptyNode(start)) { - range.setStartBefore(start).collapse(true); - domUtils.remove(start); - start = range.startContainer; - } - - } - range.insertNode(hr); - - var pN = hr.parentNode, nextNode; - while (!domUtils.isBody(pN)) { - domUtils.breakParent(hr, pN); - nextNode = hr.nextSibling; - if (nextNode && domUtils.isEmptyBlock(nextNode)) { - domUtils.remove(nextNode); - } - pN = hr.parentNode; - } - nextNode = hr.nextSibling; - var pre = hr.previousSibling; - if(isHr(pre)){ - domUtils.remove(pre); - }else{ - pre && fillNode(pre); - } - - if(!nextNode){ - var p = me.document.createElement('p'); - - hr.parentNode.appendChild(p); - domUtils.fillNode(me.document,p); - range.setStart(p,0).collapse(true); - }else{ - if(isHr(nextNode)){ - domUtils.remove(nextNode); - }else{ - fillNode(nextNode); - } - range.setEndAfter(hr).collapse(false); - } - - range.select(true); - - } - - } - }; -}; - -// plugins/wordimage.js -///import core -///commands 本地图片引导上传 -///commandsName WordImage -///commandsTitle 本地图片引导上传 -///commandsDialog dialogs\wordimage - -UE.plugin.register('wordimage',function(){ - var me = this, - images = []; - return { - commands : { - 'wordimage':{ - execCommand:function () { - var images = domUtils.getElementsByTagName(me.body, "img"); - var urlList = []; - for (var i = 0, ci; ci = images[i++];) { - var url = ci.getAttribute("word_img"); - url && urlList.push(url); - } - return urlList; - }, - queryCommandState:function () { - images = domUtils.getElementsByTagName(me.body, "img"); - for (var i = 0, ci; ci = images[i++];) { - if (ci.getAttribute("word_img")) { - return 1; - } - } - return -1; - }, - notNeedUndo:true - } - }, - inputRule : function (root) { - utils.each(root.getNodesByTagName('img'), function (img) { - var attrs = img.attrs, - flag = parseInt(attrs.width) < 128 || parseInt(attrs.height) < 43, - opt = me.options, - src = opt.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif'; - if (attrs['src'] && /^(?:(file:\/+))/.test(attrs['src'])) { - img.setAttr({ - width:attrs.width, - height:attrs.height, - alt:attrs.alt, - word_img: attrs.src, - src:src, - 'style':'background:url(' + ( flag ? opt.themePath + opt.theme + '/images/word.gif' : opt.langPath + opt.lang + '/images/localimage.png') + ') no-repeat center center;border:1px solid #ddd' - }) - } - }) - } - } -}); - -// plugins/dragdrop.js -UE.plugins['dragdrop'] = function (){ - - var me = this; - me.ready(function(){ - domUtils.on(this.body,'dragend',function(){ - var rng = me.selection.getRange(); - var node = rng.getClosedNode()||me.selection.getStart(); - - if(node && node.tagName == 'IMG'){ - - var pre = node.previousSibling,next; - while(next = node.nextSibling){ - if(next.nodeType == 1 && next.tagName == 'SPAN' && !next.firstChild){ - domUtils.remove(next) - }else{ - break; - } - } - - - if((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre) || !pre) && (!next || next && !domUtils.isEmptyBlock(next))){ - if(pre && pre.tagName == 'P' && !domUtils.isEmptyBlock(pre)){ - pre.appendChild(node); - domUtils.moveChild(next,pre); - domUtils.remove(next); - }else if(next && next.tagName == 'P' && !domUtils.isEmptyBlock(next)){ - next.insertBefore(node,next.firstChild); - } - - if(pre && pre.tagName == 'P' && domUtils.isEmptyBlock(pre)){ - domUtils.remove(pre) - } - if(next && next.tagName == 'P' && domUtils.isEmptyBlock(next)){ - domUtils.remove(next) - } - rng.selectNode(node).select(); - me.fireEvent('saveScene'); - - } - - } - - }) - }); - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) { - var rng = me.selection.getRange(),node; - if(node = domUtils.findParentByTagName(rng.startContainer,'p',true)){ - if(domUtils.getComputedStyle(node,'text-align') == 'center'){ - domUtils.removeStyle(node,'text-align') - } - } - } - }) -}; - - -// plugins/undo.js -/** - * undo redo - * @file - * @since 1.2.6.1 - */ - -/** - * 撤销上一次执行的命令 - * @command undo - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'undo' ); - * ``` - */ - -/** - * 重做上一次执行的命令 - * @command redo - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'redo' ); - * ``` - */ - -UE.plugins['undo'] = function () { - var saveSceneTimer; - var me = this, - maxUndoCount = me.options.maxUndoCount || 20, - maxInputCount = me.options.maxInputCount || 20, - fillchar = new RegExp(domUtils.fillChar + '|<\/hr>', 'gi');// ie会产生多余的 - var noNeedFillCharTags = { - ol:1,ul:1,table:1,tbody:1,tr:1,body:1 - }; - var orgState = me.options.autoClearEmptyNode; - function compareAddr(indexA, indexB) { - if (indexA.length != indexB.length) - return 0; - for (var i = 0, l = indexA.length; i < l; i++) { - if (indexA[i] != indexB[i]) - return 0 - } - return 1; - } - - function compareRangeAddress(rngAddrA, rngAddrB) { - if (rngAddrA.collapsed != rngAddrB.collapsed) { - return 0; - } - if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) { - return 0; - } - return 1; - } - - function UndoManager() { - this.list = []; - this.index = 0; - this.hasUndo = false; - this.hasRedo = false; - this.undo = function () { - if (this.hasUndo) { - if (!this.list[this.index - 1] && this.list.length == 1) { - this.reset(); - return; - } - while (this.list[this.index].content == this.list[this.index - 1].content) { - this.index--; - if (this.index == 0) { - return this.restore(0); - } - } - this.restore(--this.index); - } - }; - this.redo = function () { - if (this.hasRedo) { - while (this.list[this.index].content == this.list[this.index + 1].content) { - this.index++; - if (this.index == this.list.length - 1) { - return this.restore(this.index); - } - } - this.restore(++this.index); - } - }; - - this.restore = function () { - var me = this.editor; - var scene = this.list[this.index]; - var root = UE.htmlparser(scene.content.replace(fillchar, '')); - me.options.autoClearEmptyNode = false; - me.filterInputRule(root); - me.options.autoClearEmptyNode = orgState; - //trace:873 - //去掉展位符 - me.document.body.innerHTML = root.toHtml(); - me.fireEvent('afterscencerestore'); - //处理undo后空格不展位的问题 - if (browser.ie) { - utils.each(domUtils.getElementsByTagName(me.document,'td th caption p'),function(node){ - if(domUtils.isEmptyNode(node)){ - domUtils.fillNode(me.document, node); - } - }) - } - - try{ - var rng = new dom.Range(me.document).moveToAddress(scene.address); - rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]); - }catch(e){} - - this.update(); - this.clearKey(); - //不能把自己reset了 - me.fireEvent('reset', true); - }; - - this.getScene = function () { - var me = this.editor; - var rng = me.selection.getRange(), - rngAddress = rng.createAddress(false,true); - me.fireEvent('beforegetscene'); - var root = UE.htmlparser(me.body.innerHTML); - me.options.autoClearEmptyNode = false; - me.filterOutputRule(root); - me.options.autoClearEmptyNode = orgState; - var cont = root.toHtml(); - //trace:3461 - //这个会引起回退时导致空格丢失的情况 -// browser.ie && (cont = cont.replace(/> <').replace(/\s*\s*/g, '>')); - me.fireEvent('aftergetscene'); - - return { - address:rngAddress, - content:cont - } - }; - this.save = function (notCompareRange,notSetCursor) { - clearTimeout(saveSceneTimer); - var currentScene = this.getScene(notSetCursor), - lastScene = this.list[this.index]; - - if(lastScene && lastScene.content != currentScene.content){ - me.trigger('contentchange') - } - //内容相同位置相同不存 - if (lastScene && lastScene.content == currentScene.content && - ( notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address) ) - ) { - return; - } - this.list = this.list.slice(0, this.index + 1); - this.list.push(currentScene); - //如果大于最大数量了,就把最前的剔除 - if (this.list.length > maxUndoCount) { - this.list.shift(); - } - this.index = this.list.length - 1; - this.clearKey(); - //跟新undo/redo状态 - this.update(); - - }; - this.update = function () { - this.hasRedo = !!this.list[this.index + 1]; - this.hasUndo = !!this.list[this.index - 1]; - }; - this.reset = function () { - this.list = []; - this.index = 0; - this.hasUndo = false; - this.hasRedo = false; - this.clearKey(); - }; - this.clearKey = function () { - keycont = 0; - lastKeyCode = null; - }; - } - - me.undoManger = new UndoManager(); - me.undoManger.editor = me; - function saveScene() { - this.undoManger.save(); - } - - me.addListener('saveScene', function () { - var args = Array.prototype.splice.call(arguments,1); - this.undoManger.save.apply(this.undoManger,args); - }); - -// me.addListener('beforeexeccommand', saveScene); -// me.addListener('afterexeccommand', saveScene); - - me.addListener('reset', function (type, exclude) { - if (!exclude) { - this.undoManger.reset(); - } - }); - me.commands['redo'] = me.commands['undo'] = { - execCommand:function (cmdName) { - this.undoManger[cmdName](); - }, - queryCommandState:function (cmdName) { - return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1; - }, - notNeedUndo:1 - }; - - var keys = { - // /*Backspace*/ 8:1, /*Delete*/ 46:1, - /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1, - 37:1, 38:1, 39:1, 40:1 - - }, - keycont = 0, - lastKeyCode; - //输入法状态下不计算字符数 - var inputType = false; - me.addListener('ready', function () { - domUtils.on(this.body, 'compositionstart', function () { - inputType = true; - }); - domUtils.on(this.body, 'compositionend', function () { - inputType = false; - }) - }); - //快捷键 - me.addshortcutkey({ - "Undo":"ctrl+90", //undo - "Redo":"ctrl+89" //redo - - }); - var isCollapsed = true; - me.addListener('keydown', function (type, evt) { - - var me = this; - var keyCode = evt.keyCode || evt.which; - if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - if (inputType) - return; - - if(!me.selection.getRange().collapsed){ - me.undoManger.save(false,true); - isCollapsed = false; - return; - } - if (me.undoManger.list.length == 0) { - me.undoManger.save(true); - } - clearTimeout(saveSceneTimer); - function save(cont){ - cont.undoManger.save(false,true); - cont.fireEvent('selectionchange'); - } - saveSceneTimer = setTimeout(function(){ - if(inputType){ - var interalTimer = setInterval(function(){ - if(!inputType){ - save(me); - clearInterval(interalTimer) - } - },300) - return; - } - save(me); - },200); - - lastKeyCode = keyCode; - keycont++; - if (keycont >= maxInputCount ) { - save(me) - } - } - }); - me.addListener('keyup', function (type, evt) { - var keyCode = evt.keyCode || evt.which; - if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - if (inputType) - return; - if(!isCollapsed){ - this.undoManger.save(false,true); - isCollapsed = true; - } - } - }); - //扩展实例,添加关闭和开启命令undo - me.stopCmdUndo = function(){ - me.__hasEnterExecCommand = true; - }; - me.startCmdUndo = function(){ - me.__hasEnterExecCommand = false; - } -}; - - -// plugins/copy.js -UE.plugin.register('copy', function () { - - var me = this; - - function initZeroClipboard() { - - ZeroClipboard.config({ - debug: false, - swfPath: me.options.UEDITOR_HOME_URL + 'third-party/zeroclipboard/ZeroClipboard.swf' - }); - - var client = me.zeroclipboard = new ZeroClipboard(); - - // 复制内容 - client.on('copy', function (e) { - var client = e.client, - rng = me.selection.getRange(), - div = document.createElement('div'); - - div.appendChild(rng.cloneContents()); - client.setText(div.innerText || div.textContent); - client.setHtml(div.innerHTML); - rng.select(); - }); - // hover事件传递到target - client.on('mouseover mouseout', function (e) { - var target = e.target; - if (e.type == 'mouseover') { - domUtils.addClass(target, 'edui-state-hover'); - } else if (e.type == 'mouseout') { - domUtils.removeClasses(target, 'edui-state-hover'); - } - }); - // flash加载不成功 - client.on('wrongflash noflash', function () { - ZeroClipboard.destroy(); - }); - } - - return { - bindEvents: { - 'ready': function () { - if (!browser.ie) { - if (window.ZeroClipboard) { - initZeroClipboard(); - } else { - utils.loadFile(document, { - src: me.options.UEDITOR_HOME_URL + "third-party/zeroclipboard/ZeroClipboard.js", - tag: "script", - type: "text/javascript", - defer: "defer" - }, function () { - initZeroClipboard(); - }); - } - } - } - }, - commands: { - 'copy': { - execCommand: function (cmd) { - if (!me.document.execCommand('copy')) { - alert(me.getLang('copymsg')); - } - } - } - } - } -}); - - -// plugins/paste.js -///import core -///import plugins/inserthtml.js -///import plugins/undo.js -///import plugins/serialize.js -///commands 粘贴 -///commandsName PastePlain -///commandsTitle 纯文本粘贴模式 -/** - * @description 粘贴 - * @author zhanyi - */ -UE.plugins['paste'] = function () { - function getClipboardData(callback) { - var doc = this.document; - if (doc.getElementById('baidu_pastebin')) { - return; - } - var range = this.selection.getRange(), - bk = range.createBookmark(), - //创建剪贴的容器div - pastebin = doc.createElement('div'); - pastebin.id = 'baidu_pastebin'; - // Safari 要求div必须有内容,才能粘贴内容进来 - browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar)); - doc.body.appendChild(pastebin); - //trace:717 隐藏的span不能得到top - //bk.start.innerHTML = ' '; - bk.start.style.display = ''; - pastebin.style.cssText = "position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:" + - //要在现在光标平行的位置加入,否则会出现跳动的问题 - domUtils.getXY(bk.start).y + 'px'; - - range.selectNodeContents(pastebin).select(true); - - setTimeout(function () { - if (browser.webkit) { - for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) { - if (domUtils.isEmptyNode(pi)) { - domUtils.remove(pi); - } else { - pastebin = pi; - break; - } - } - } - try { - pastebin.parentNode.removeChild(pastebin); - } catch (e) { - } - range.moveToBookmark(bk).select(true); - callback(pastebin); - }, 0); - } - - var me = this; - - me.setOpt({ - retainOnlyLabelPasted : false - }); - - var txtContent, htmlContent, address; - - function getPureHtml(html){ - return html.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, function (a, b, tagName, attrs) { - tagName = tagName.toLowerCase(); - if ({img: 1}[tagName]) { - return a; - } - attrs = attrs.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi, function (str, atr, val) { - if ({ - 'src': 1, - 'href': 1, - 'name': 1 - }[atr.toLowerCase()]) { - return atr + '=' + val + ' ' - } - return '' - }); - if ({ - 'span': 1, - 'div': 1 - }[tagName]) { - return '' - } else { - - return '<' + b + tagName + ' ' + utils.trim(attrs) + '>' - } - - }); - } - function filter(div) { - var html; - if (div.firstChild) { - //去掉cut中添加的边界值 - var nodes = domUtils.getElementsByTagName(div, 'span'); - for (var i = 0, ni; ni = nodes[i++];) { - if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') { - domUtils.remove(ni); - } - } - - if (browser.webkit) { - - var brs = div.querySelectorAll('div br'); - for (var i = 0, bi; bi = brs[i++];) { - var pN = bi.parentNode; - if (pN.tagName == 'DIV' && pN.childNodes.length == 1) { - pN.innerHTML = '


    '; - domUtils.remove(pN); - } - } - var divs = div.querySelectorAll('#baidu_pastebin'); - for (var i = 0, di; di = divs[i++];) { - var tmpP = me.document.createElement('p'); - di.parentNode.insertBefore(tmpP, di); - while (di.firstChild) { - tmpP.appendChild(di.firstChild); - } - domUtils.remove(di); - } - - var metas = div.querySelectorAll('meta'); - for (var i = 0, ci; ci = metas[i++];) { - domUtils.remove(ci); - } - - var brs = div.querySelectorAll('br'); - for (i = 0; ci = brs[i++];) { - if (/^apple-/i.test(ci.className)) { - domUtils.remove(ci); - } - } - } - if (browser.gecko) { - var dirtyNodes = div.querySelectorAll('[_moz_dirty]'); - for (i = 0; ci = dirtyNodes[i++];) { - ci.removeAttribute('_moz_dirty'); - } - } - if (!browser.ie) { - var spans = div.querySelectorAll('span.Apple-style-span'); - for (var i = 0, ci; ci = spans[i++];) { - domUtils.remove(ci, true); - } - } - - //ie下使用innerHTML会产生多余的\r\n字符,也会产生 这里过滤掉 - html = div.innerHTML;//.replace(/>(?:(\s| )*?)<'); - - //过滤word粘贴过来的冗余属性 - html = UE.filterWord(html); - //取消了忽略空白的第二个参数,粘贴过来的有些是有空白的,会被套上相关的标签 - var root = UE.htmlparser(html); - //如果给了过滤规则就先进行过滤 - if (me.options.filterRules) { - UE.filterNode(root, me.options.filterRules); - } - //执行默认的处理 - me.filterInputRule(root); - //针对chrome的处理 - if (browser.webkit) { - var br = root.lastChild(); - if (br && br.type == 'element' && br.tagName == 'br') { - root.removeChild(br) - } - utils.each(me.body.querySelectorAll('div'), function (node) { - if (domUtils.isEmptyBlock(node)) { - domUtils.remove(node,true) - } - }) - } - html = {'html': root.toHtml()}; - me.fireEvent('beforepaste', html, root); - //抢了默认的粘贴,那后边的内容就不执行了,比如表格粘贴 - if(!html.html){ - return; - } - root = UE.htmlparser(html.html,true); - //如果开启了纯文本模式 - if (me.queryCommandState('pasteplain') === 1) { - me.execCommand('insertHtml', UE.filterNode(root, me.options.filterTxtRules).toHtml(), true); - } else { - //文本模式 - UE.filterNode(root, me.options.filterTxtRules); - txtContent = root.toHtml(); - //完全模式 - htmlContent = html.html; - - address = me.selection.getRange().createAddress(true); - me.execCommand('insertHtml', me.getOpt('retainOnlyLabelPasted') === true ? getPureHtml(htmlContent) : htmlContent, true); - } - me.fireEvent("afterpaste", html); - } - } - - me.addListener('pasteTransfer', function (cmd, plainType) { - - if (address && txtContent && htmlContent && txtContent != htmlContent) { - var range = me.selection.getRange(); - range.moveToAddress(address, true); - - if (!range.collapsed) { - - while (!domUtils.isBody(range.startContainer) - ) { - var start = range.startContainer; - if(start.nodeType == 1){ - start = start.childNodes[range.startOffset]; - if(!start){ - range.setStartBefore(range.startContainer); - continue; - } - var pre = start.previousSibling; - - if(pre && pre.nodeType == 3 && new RegExp('^[\n\r\t '+domUtils.fillChar+']*$').test(pre.nodeValue)){ - range.setStartBefore(pre) - } - } - if(range.startOffset == 0){ - range.setStartBefore(range.startContainer); - }else{ - break; - } - - } - while (!domUtils.isBody(range.endContainer) - ) { - var end = range.endContainer; - if(end.nodeType == 1){ - end = end.childNodes[range.endOffset]; - if(!end){ - range.setEndAfter(range.endContainer); - continue; - } - var next = end.nextSibling; - if(next && next.nodeType == 3 && new RegExp('^[\n\r\t'+domUtils.fillChar+']*$').test(next.nodeValue)){ - range.setEndAfter(next) - } - } - if(range.endOffset == range.endContainer[range.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length){ - range.setEndAfter(range.endContainer); - }else{ - break; - } - - } - - } - - range.deleteContents(); - range.select(true); - me.__hasEnterExecCommand = true; - var html = htmlContent; - if (plainType === 2 ) { - html = getPureHtml(html); - } else if (plainType) { - html = txtContent; - } - me.execCommand('inserthtml', html, true); - me.__hasEnterExecCommand = false; - var rng = me.selection.getRange(); - while (!domUtils.isBody(rng.startContainer) && !rng.startOffset && - rng.startContainer[rng.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - rng.setStartBefore(rng.startContainer); - } - var tmpAddress = rng.createAddress(true); - address.endAddress = tmpAddress.startAddress; - } - }); - - me.addListener('ready', function () { - domUtils.on(me.body, 'cut', function () { - var range = me.selection.getRange(); - if (!range.collapsed && me.undoManger) { - me.undoManger.save(); - } - }); - - //ie下beforepaste在点击右键时也会触发,所以用监控键盘才处理 - domUtils.on(me.body, browser.ie || browser.opera ? 'keydown' : 'paste', function (e) { - if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) { - return; - } - getClipboardData.call(me, function (div) { - filter(div); - }); - }); - - }); - - me.commands['paste'] = { - execCommand: function (cmd) { - if (browser.ie) { - getClipboardData.call(me, function (div) { - filter(div); - }); - me.document.execCommand('paste'); - } else { - alert(me.getLang('pastemsg')); - } - } - } -}; - - - -// plugins/puretxtpaste.js -/** - * 纯文本粘贴插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['pasteplain'] = function(){ - var me = this; - me.setOpt({ - 'pasteplain':false, - 'filterTxtRules' : function(){ - function transP(node){ - node.tagName = 'p'; - node.setStyle(); - } - function removeNode(node){ - node.parentNode.removeChild(node,true) - } - return { - //直接删除及其字节点内容 - '-' : 'script style object iframe embed input select', - 'p': {$:{}}, - 'br':{$:{}}, - div: function (node) { - var tmpNode, p = UE.uNode.createElement('p'); - while (tmpNode = node.firstChild()) { - if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { - p.appendChild(tmpNode); - } else { - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - p = UE.uNode.createElement('p'); - } else { - node.parentNode.insertBefore(tmpNode, node); - } - } - } - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - } - node.parentNode.removeChild(node); - }, - ol: removeNode, - ul: removeNode, - dl:removeNode, - dt:removeNode, - dd:removeNode, - 'li':removeNode, - 'caption':transP, - 'th':transP, - 'tr':transP, - 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, - 'td':function(node){ - //没有内容的td直接删掉 - var txt = !!node.innerText(); - if(txt){ - node.parentNode.insertAfter(UE.uNode.createText('    '),node); - } - node.parentNode.removeChild(node,node.innerText()) - } - } - }() - }); - //暂时这里支持一下老版本的属性 - var pasteplain = me.options.pasteplain; - - /** - * 启用或取消纯文本粘贴模式 - * @command pasteplain - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.queryCommandState( 'pasteplain' ); - * ``` - */ - - /** - * 查询当前是否处于纯文本粘贴模式 - * @command pasteplain - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果处于纯文本模式,返回1,否则,返回0 - * @example - * ```javascript - * editor.queryCommandState( 'pasteplain' ); - * ``` - */ - me.commands['pasteplain'] = { - queryCommandState: function (){ - return pasteplain ? 1 : 0; - }, - execCommand: function (){ - pasteplain = !pasteplain|0; - }, - notNeedUndo : 1 - }; -}; - -// plugins/list.js -/** - * 有序列表,无序列表插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['list'] = function () { - var me = this, - notExchange = { - 'TD':1, - 'PRE':1, - 'BLOCKQUOTE':1 - }; - var customStyle = { - 'cn' : 'cn-1-', - 'cn1' : 'cn-2-', - 'cn2' : 'cn-3-', - 'num': 'num-1-', - 'num1' : 'num-2-', - 'num2' : 'num-3-', - 'dash' : 'dash', - 'dot':'dot' - }; - - me.setOpt( { - 'autoTransWordToList':false, - 'insertorderedlist':{ - 'num':'', - 'num1':'', - 'num2':'', - 'cn':'', - 'cn1':'', - 'cn2':'', - 'decimal':'', - 'lower-alpha':'', - 'lower-roman':'', - 'upper-alpha':'', - 'upper-roman':'' - }, - 'insertunorderedlist':{ - 'circle':'', - 'disc':'', - 'square':'', - 'dash' : '', - 'dot':'' - }, - listDefaultPaddingLeft : '30', - listiconpath : 'http://bs.baidu.com/listicon/', - maxListLevel : -1,//-1不限制 - disablePInList:false - } ); - function listToArray(list){ - var arr = []; - for(var p in list){ - arr.push(p) - } - return arr; - } - var listStyle = { - 'OL':listToArray(me.options.insertorderedlist), - 'UL':listToArray(me.options.insertunorderedlist) - }; - var liiconpath = me.options.listiconpath; - - //根据用户配置,调整customStyle - for(var s in customStyle){ - if(!me.options.insertorderedlist.hasOwnProperty(s) && !me.options.insertunorderedlist.hasOwnProperty(s)){ - delete customStyle[s]; - } - } - - me.ready(function () { - var customCss = []; - for(var p in customStyle){ - if(p == 'dash' || p == 'dot'){ - customCss.push('li.list-' + customStyle[p] + '{background-image:url(' + liiconpath +customStyle[p]+'.gif)}'); - customCss.push('ul.custom_'+p+'{list-style:none;}ul.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}'); - }else{ - for(var i= 0;i<99;i++){ - customCss.push('li.list-' + customStyle[p] + i + '{background-image:url(' + liiconpath + 'list-'+customStyle[p] + i + '.gif)}') - } - customCss.push('ol.custom_'+p+'{list-style:none;}ol.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}'); - } - switch(p){ - case 'cn': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn1': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:30px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn2': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:55px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:68px}'); - break; - case 'num': - case 'num1': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}'); - break; - case 'num2': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:35px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - break; - case 'dash': - customCss.push('li.list-'+p+'-paddingleft{padding-left:35px}'); - break; - case 'dot': - customCss.push('li.list-'+p+'-paddingleft{padding-left:20px}'); - } - } - customCss.push('.list-paddingleft-1{padding-left:0}'); - customCss.push('.list-paddingleft-2{padding-left:'+me.options.listDefaultPaddingLeft+'px}'); - customCss.push('.list-paddingleft-3{padding-left:'+me.options.listDefaultPaddingLeft*2+'px}'); - //如果不给宽度会在自定应样式里出现滚动条 - utils.cssRule('list', 'ol,ul{margin:0;pading:0;'+(browser.ie ? '' : 'width:95%')+'}li{clear:both;}'+customCss.join('\n'), me.document); - }); - //单独处理剪切的问题 - me.ready(function(){ - domUtils.on(me.body,'cut',function(){ - setTimeout(function(){ - var rng = me.selection.getRange(),li; - //trace:3416 - if(!rng.collapsed){ - if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){ - if(!li.nextSibling && domUtils.isEmptyBlock(li)){ - var pn = li.parentNode,node; - if(node = pn.previousSibling){ - domUtils.remove(pn); - rng.setStartAtLast(node).collapse(true); - rng.select(true); - }else if(node = pn.nextSibling){ - domUtils.remove(pn); - rng.setStartAtFirst(node).collapse(true); - rng.select(true); - }else{ - var tmpNode = me.document.createElement('p'); - domUtils.fillNode(me.document,tmpNode); - pn.parentNode.insertBefore(tmpNode,pn); - domUtils.remove(pn); - rng.setStart(tmpNode,0).collapse(true); - rng.select(true); - } - } - } - } - - }) - }) - }); - - function getStyle(node){ - var cls = node.className; - if(domUtils.hasClass(node,/custom_/)){ - return cls.match(/custom_(\w+)/)[1] - } - return domUtils.getStyle(node, 'list-style-type') - - } - - me.addListener('beforepaste',function(type,html){ - var me = this, - rng = me.selection.getRange(),li; - var root = UE.htmlparser(html.html,true); - if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){ - var list = li.parentNode,tagName = list.tagName == 'OL' ? 'ul':'ol'; - utils.each(root.getNodesByTagName(tagName),function(n){ - n.tagName = list.tagName; - n.setAttr(); - if(n.parentNode === root){ - type = getStyle(list) || (list.tagName == 'OL' ? 'decimal' : 'disc') - }else{ - var className = n.parentNode.getAttr('class'); - if(className && /custom_/.test(className)){ - type = className.match(/custom_(\w+)/)[1] - }else{ - type = n.parentNode.getStyle('list-style-type'); - } - if(!type){ - type = list.tagName == 'OL' ? 'decimal' : 'disc'; - } - } - var index = utils.indexOf(listStyle[list.tagName], type); - if(n.parentNode !== root) - index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][index]; - if(customStyle[currentStyle]){ - n.setAttr('class', 'custom_' + currentStyle) - - }else{ - n.setStyle('list-style-type',currentStyle) - } - }) - - } - - html.html = root.toHtml(); - }); - //导出时,去掉p标签 - me.getOpt('disablePInList') === true && me.addOutputRule(function(root){ - utils.each(root.getNodesByTagName('li'),function(li){ - var newChildrens = [],index=0; - utils.each(li.children,function(n){ - if(n.tagName == 'p'){ - var tmpNode; - while(tmpNode = n.children.pop()) { - newChildrens.splice(index,0,tmpNode); - tmpNode.parentNode = li; - lastNode = tmpNode; - } - tmpNode = newChildrens[newChildrens.length-1]; - if(!tmpNode || tmpNode.type != 'element' || tmpNode.tagName != 'br'){ - var br = UE.uNode.createElement('br'); - br.parentNode = li; - newChildrens.push(br); - } - - index = newChildrens.length; - } - }); - if(newChildrens.length){ - li.children = newChildrens; - } - }); - }); - //进入编辑器的li要套p标签 - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('li'),function(li){ - var tmpP = UE.uNode.createElement('p'); - for(var i= 0,ci;ci=li.children[i];){ - if(ci.type == 'text' || dtd.p[ci.tagName]){ - tmpP.appendChild(ci); - }else{ - if(tmpP.firstChild()){ - li.insertBefore(tmpP,ci); - tmpP = UE.uNode.createElement('p'); - i = i + 2; - }else{ - i++; - } - - } - } - if(tmpP.firstChild() && !tmpP.parentNode || !li.firstChild()){ - li.appendChild(tmpP); - } - //trace:3357 - //p不能为空 - if (!tmpP.firstChild()) { - tmpP.innerHTML(browser.ie ? ' ' : '
    ') - } - //去掉末尾的空白 - var p = li.firstChild(); - var lastChild = p.lastChild(); - if(lastChild && lastChild.type == 'text' && /^\s*$/.test(lastChild.data)){ - p.removeChild(lastChild) - } - }); - if(me.options.autoTransWordToList){ - var orderlisttype = { - 'num1':/^\d+\)/, - 'decimal':/^\d+\./, - 'lower-alpha':/^[a-z]+\)/, - 'upper-alpha':/^[A-Z]+\./, - 'cn':/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/, - 'cn2':/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/ - }, - unorderlisttype = { - 'square':'n' - }; - function checkListType(content,container){ - var span = container.firstChild(); - if(span && span.type == 'element' && span.tagName == 'span' && /Wingdings|Symbol/.test(span.getStyle('font-family'))){ - for(var p in unorderlisttype){ - if(unorderlisttype[p] == span.data){ - return p - } - } - return 'disc' - } - for(var p in orderlisttype){ - if(orderlisttype[p].test(content)){ - return p; - } - } - - } - utils.each(root.getNodesByTagName('p'),function(node){ - if(node.getAttr('class') != 'MsoListParagraph'){ - return - } - - //word粘贴过来的会带有margin要去掉,但这样也可能会误命中一些央视 - node.setStyle('margin',''); - node.setStyle('margin-left',''); - node.setAttr('class',''); - - function appendLi(list,p,type){ - if(list.tagName == 'ol'){ - if(browser.ie){ - var first = p.firstChild(); - if(first.type =='element' && first.tagName == 'span' && orderlisttype[type].test(first.innerText())){ - p.removeChild(first); - } - }else{ - p.innerHTML(p.innerHTML().replace(orderlisttype[type],'')); - } - }else{ - p.removeChild(p.firstChild()) - } - - var li = UE.uNode.createElement('li'); - li.appendChild(p); - list.appendChild(li); - } - var tmp = node,type,cacheNode = node; - - if(node.parentNode.tagName != 'li' && (type = checkListType(node.innerText(),node))){ - - var list = UE.uNode.createElement(me.options.insertorderedlist.hasOwnProperty(type) ? 'ol' : 'ul'); - if(customStyle[type]){ - list.setAttr('class','custom_'+type) - }else{ - list.setStyle('list-style-type',type) - } - while(node && node.parentNode.tagName != 'li' && checkListType(node.innerText(),node)){ - tmp = node.nextSibling(); - if(!tmp){ - node.parentNode.insertBefore(list,node) - } - appendLi(list,node,type); - node = tmp; - } - if(!list.parentNode && node && node.parentNode){ - node.parentNode.insertBefore(list,node) - } - } - var span = cacheNode.firstChild(); - if(span && span.type == 'element' && span.tagName == 'span' && /^\s*( )+\s*$/.test(span.innerText())){ - span.parentNode.removeChild(span) - } - }) - } - - }); - - //调整索引标签 - me.addListener('contentchange',function(){ - adjustListStyle(me.document) - }); - - function adjustListStyle(doc,ignore){ - utils.each(domUtils.getElementsByTagName(doc,'ol ul'),function(node){ - - if(!domUtils.inDoc(node,doc)) - return; - - var parent = node.parentNode; - if(parent.tagName == node.tagName){ - var nodeStyleType = getStyle(node) || (node.tagName == 'OL' ? 'decimal' : 'disc'), - parentStyleType = getStyle(parent) || (parent.tagName == 'OL' ? 'decimal' : 'disc'); - if(nodeStyleType == parentStyleType){ - var styleIndex = utils.indexOf(listStyle[node.tagName], nodeStyleType); - styleIndex = styleIndex + 1 == listStyle[node.tagName].length ? 0 : styleIndex + 1; - setListStyle(node,listStyle[node.tagName][styleIndex]) - } - - } - var index = 0,type = 2; - if( domUtils.hasClass(node,/custom_/)){ - if(!(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/))){ - type = 1; - } - }else{ - if(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/)){ - type = 3; - } - } - - var style = domUtils.getStyle(node, 'list-style-type'); - style && (node.style.cssText = 'list-style-type:' + style); - node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/,'')) + ' list-paddingleft-' + type; - utils.each(domUtils.getElementsByTagName(node,'li'),function(li){ - li.style.cssText && (li.style.cssText = ''); - if(!li.firstChild){ - domUtils.remove(li); - return; - } - if(li.parentNode !== node){ - return; - } - index++; - if(domUtils.hasClass(node,/custom_/) ){ - var paddingLeft = 1,currentStyle = getStyle(node); - if(node.tagName == 'OL'){ - if(currentStyle){ - switch(currentStyle){ - case 'cn' : - case 'cn1': - case 'cn2': - if(index > 10 && (index % 10 == 0 || index > 10 && index < 20)){ - paddingLeft = 2 - }else if(index > 20){ - paddingLeft = 3 - } - break; - case 'num2' : - if(index > 9){ - paddingLeft = 2 - } - } - } - li.className = 'list-'+customStyle[currentStyle]+ index + ' ' + 'list-'+currentStyle+'-paddingleft-' + paddingLeft; - }else{ - li.className = 'list-'+customStyle[currentStyle] + ' ' + 'list-'+currentStyle+'-paddingleft'; - } - }else{ - li.className = li.className.replace(/list-[\w\-]+/gi,''); - } - var className = li.getAttribute('class'); - if(className !== null && !className.replace(/\s/g,'')){ - domUtils.removeAttributes(li,'class') - } - }); - !ignore && adjustList(node,node.tagName.toLowerCase(),getStyle(node)||domUtils.getStyle(node, 'list-style-type'),true); - }) - } - function adjustList(list, tag, style,ignoreEmpty) { - var nextList = list.nextSibling; - if (nextList && nextList.nodeType == 1 && nextList.tagName.toLowerCase() == tag && (getStyle(nextList) || domUtils.getStyle(nextList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) { - domUtils.moveChild(nextList, list); - if (nextList.childNodes.length == 0) { - domUtils.remove(nextList); - } - } - if(nextList && domUtils.isFillChar(nextList)){ - domUtils.remove(nextList); - } - var preList = list.previousSibling; - if (preList && preList.nodeType == 1 && preList.tagName.toLowerCase() == tag && (getStyle(preList) || domUtils.getStyle(preList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) { - domUtils.moveChild(list, preList); - } - if(preList && domUtils.isFillChar(preList)){ - domUtils.remove(preList); - } - !ignoreEmpty && domUtils.isEmptyBlock(list) && domUtils.remove(list); - if(getStyle(list)){ - adjustListStyle(list.ownerDocument,true) - } - } - - function setListStyle(list,style){ - if(customStyle[style]){ - list.className = 'custom_' + style; - } - try{ - domUtils.setStyle(list, 'list-style-type', style); - }catch(e){} - } - function clearEmptySibling(node) { - var tmpNode = node.previousSibling; - if (tmpNode && domUtils.isEmptyBlock(tmpNode)) { - domUtils.remove(tmpNode); - } - tmpNode = node.nextSibling; - if (tmpNode && domUtils.isEmptyBlock(tmpNode)) { - domUtils.remove(tmpNode); - } - } - - me.addListener('keydown', function (type, evt) { - function preventAndSave() { - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - me.fireEvent('contentchange'); - me.undoManger && me.undoManger.save(); - } - function findList(node,filterFn){ - while(node && !domUtils.isBody(node)){ - if(filterFn(node)){ - return null - } - if(node.nodeType == 1 && /[ou]l/i.test(node.tagName)){ - return node; - } - node = node.parentNode; - } - return null; - } - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13 && !evt.shiftKey) {//回车 - var rng = me.selection.getRange(), - parent = domUtils.findParent(rng.startContainer,function(node){return domUtils.isBlockElm(node)},true), - li = domUtils.findParentByTagName(rng.startContainer,'li',true); - if(parent && parent.tagName != 'PRE' && !li){ - var html = parent.innerHTML.replace(new RegExp(domUtils.fillChar, 'g'),''); - if(/^\s*1\s*\.[^\d]/.test(html)){ - parent.innerHTML = html.replace(/^\s*1\s*\./,''); - rng.setStartAtLast(parent).collapse(true).select(); - me.__hasEnterExecCommand = true; - me.execCommand('insertorderedlist'); - me.__hasEnterExecCommand = false; - } - } - var range = me.selection.getRange(), - start = findList(range.startContainer,function (node) { - return node.tagName == 'TABLE'; - }), - end = range.collapsed ? start : findList(range.endContainer,function (node) { - return node.tagName == 'TABLE'; - }); - - if (start && end && start === end) { - - if (!range.collapsed) { - start = domUtils.findParentByTagName(range.startContainer, 'li', true); - end = domUtils.findParentByTagName(range.endContainer, 'li', true); - if (start && end && start === end) { - range.deleteContents(); - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - if (li && domUtils.isEmptyBlock(li)) { - - pre = li.previousSibling; - next = li.nextSibling; - p = me.document.createElement('p'); - - domUtils.fillNode(me.document, p); - parentList = li.parentNode; - if (pre && next) { - range.setStart(next, 0).collapse(true).select(true); - domUtils.remove(li); - - } else { - if (!pre && !next || !pre) { - - parentList.parentNode.insertBefore(p, parentList); - - - } else { - li.parentNode.parentNode.insertBefore(p, parentList.nextSibling); - } - domUtils.remove(li); - if (!parentList.firstChild) { - domUtils.remove(parentList); - } - range.setStart(p, 0).setCursor(); - - - } - preventAndSave(); - return; - - } - } else { - var tmpRange = range.cloneRange(), - bk = tmpRange.collapse(false).createBookmark(); - - range.deleteContents(); - tmpRange.moveToBookmark(bk); - var li = domUtils.findParentByTagName(tmpRange.startContainer, 'li', true); - - clearEmptySibling(li); - tmpRange.select(); - preventAndSave(); - return; - } - } - - - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - - if (li) { - if (domUtils.isEmptyBlock(li)) { - bk = range.createBookmark(); - var parentList = li.parentNode; - if (li !== parentList.lastChild) { - domUtils.breakParent(li, parentList); - clearEmptySibling(li); - } else { - - parentList.parentNode.insertBefore(li, parentList.nextSibling); - if (domUtils.isEmptyNode(parentList)) { - domUtils.remove(parentList); - } - } - //嵌套不处理 - if (!dtd.$list[li.parentNode.tagName]) { - - if (!domUtils.isBlockElm(li.firstChild)) { - p = me.document.createElement('p'); - li.parentNode.insertBefore(p, li); - while (li.firstChild) { - p.appendChild(li.firstChild); - } - domUtils.remove(li); - } else { - domUtils.remove(li, true); - } - } - range.moveToBookmark(bk).select(); - - - } else { - var first = li.firstChild; - if (!first || !domUtils.isBlockElm(first)) { - var p = me.document.createElement('p'); - - !li.firstChild && domUtils.fillNode(me.document, p); - while (li.firstChild) { - - p.appendChild(li.firstChild); - } - li.appendChild(p); - first = p; - } - - var span = me.document.createElement('span'); - - range.insertNode(span); - domUtils.breakParent(span, li); - - var nextLi = span.nextSibling; - first = nextLi.firstChild; - - if (!first) { - p = me.document.createElement('p'); - - domUtils.fillNode(me.document, p); - nextLi.appendChild(p); - first = p; - } - if (domUtils.isEmptyNode(first)) { - first.innerHTML = ''; - domUtils.fillNode(me.document, first); - } - - range.setStart(first, 0).collapse(true).shrinkBoundary().select(); - domUtils.remove(span); - var pre = nextLi.previousSibling; - if (pre && domUtils.isEmptyBlock(pre)) { - pre.innerHTML = '

    '; - domUtils.fillNode(me.document, pre.firstChild); - } - - } -// } - preventAndSave(); - } - - - } - - - } - if (keyCode == 8) { - //修中ie中li下的问题 - range = me.selection.getRange(); - if (range.collapsed && domUtils.isStartInblock(range)) { - tmpRange = range.cloneRange().trimBoundary(); - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - //要在li的最左边,才能处理 - if (li && domUtils.isStartInblock(tmpRange)) { - start = domUtils.findParentByTagName(range.startContainer, 'p', true); - if (start && start !== li.firstChild) { - var parentList = domUtils.findParentByTagName(start,['ol','ul']); - domUtils.breakParent(start,parentList); - clearEmptySibling(start); - me.fireEvent('contentchange'); - range.setStart(start,0).setCursor(false,true); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - } - - if (li && (pre = li.previousSibling)) { - if (keyCode == 46 && li.childNodes.length) { - return; - } - //有可能上边的兄弟节点是个2级菜单,要追加到2级菜单的最后的li - if (dtd.$list[pre.tagName]) { - pre = pre.lastChild; - } - me.undoManger && me.undoManger.save(); - first = li.firstChild; - if (domUtils.isBlockElm(first)) { - if (domUtils.isEmptyNode(first)) { -// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true); - pre.appendChild(first); - range.setStart(first, 0).setCursor(false, true); - //first不是唯一的节点 - while (li.firstChild) { - pre.appendChild(li.firstChild); - } - } else { - - span = me.document.createElement('span'); - range.insertNode(span); - //判断pre是否是空的节点,如果是


    类型的空节点,干掉p标签防止它占位 - if (domUtils.isEmptyBlock(pre)) { - pre.innerHTML = ''; - } - domUtils.moveChild(li, pre); - range.setStartBefore(span).collapse(true).select(true); - - domUtils.remove(span); - - } - } else { - if (domUtils.isEmptyNode(li)) { - var p = me.document.createElement('p'); - pre.appendChild(p); - range.setStart(p, 0).setCursor(); -// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true); - } else { - range.setEnd(pre, pre.childNodes.length).collapse().select(true); - while (li.firstChild) { - pre.appendChild(li.firstChild); - } - } - } - domUtils.remove(li); - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - - } - //trace:980 - - if (li && !li.previousSibling) { - var parentList = li.parentNode; - var bk = range.createBookmark(); - if(domUtils.isTagNode(parentList.parentNode,'ol ul')){ - parentList.parentNode.insertBefore(li,parentList); - if(domUtils.isEmptyNode(parentList)){ - domUtils.remove(parentList) - } - }else{ - - while(li.firstChild){ - parentList.parentNode.insertBefore(li.firstChild,parentList); - } - - domUtils.remove(li); - if(domUtils.isEmptyNode(parentList)){ - domUtils.remove(parentList) - } - - } - range.moveToBookmark(bk).setCursor(false,true); - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - - } - - - } - - - } - - } - }); - - me.addListener('keyup',function(type, evt){ - var keyCode = evt.keyCode || evt.which; - if (keyCode == 8) { - var rng = me.selection.getRange(),list; - if(list = domUtils.findParentByTagName(rng.startContainer,['ol', 'ul'],true)){ - adjustList(list,list.tagName.toLowerCase(),getStyle(list)||domUtils.getComputedStyle(list,'list-style-type'),true) - } - } - }); - //处理tab键 - me.addListener('tabkeydown',function(){ - - var range = me.selection.getRange(); - - //控制级数 - function checkLevel(li){ - if(me.options.maxListLevel != -1){ - var level = li.parentNode,levelNum = 0; - while(/[ou]l/i.test(level.tagName)){ - levelNum++; - level = level.parentNode; - } - if(levelNum >= me.options.maxListLevel){ - return true; - } - } - } - //只以开始为准 - //todo 后续改进 - var li = domUtils.findParentByTagName(range.startContainer, 'li', true); - if(li){ - - var bk; - if(range.collapsed){ - if(checkLevel(li)) - return true; - var parentLi = li.parentNode, - list = me.document.createElement(parentLi.tagName), - index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type')); - index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][index]; - setListStyle(list,currentStyle); - if(domUtils.isStartInblock(range)){ - me.fireEvent('saveScene'); - bk = range.createBookmark(); - parentLi.insertBefore(list, li); - list.appendChild(li); - adjustList(list,list.tagName.toLowerCase(),currentStyle); - me.fireEvent('contentchange'); - range.moveToBookmark(bk).select(true); - return true; - } - }else{ - me.fireEvent('saveScene'); - bk = range.createBookmark(); - for(var i= 0,closeList,parents = domUtils.findParents(li),ci;ci=parents[i++];){ - if(domUtils.isTagNode(ci,'ol ul')){ - closeList = ci; - break; - } - } - var current = li; - if(bk.end){ - while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){ - if(checkLevel(current)){ - current = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList}); - continue; - } - var parentLi = current.parentNode, - list = me.document.createElement(parentLi.tagName), - index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type')); - var currentIndex = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][currentIndex]; - setListStyle(list,currentStyle); - parentLi.insertBefore(list, current); - while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){ - li = current.nextSibling; - list.appendChild(current); - if(!li || domUtils.isTagNode(li,'ol ul')){ - if(li){ - while(li = li.firstChild){ - if(li.tagName == 'LI'){ - break; - } - } - }else{ - li = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList}); - } - break; - } - current = li; - } - adjustList(list,list.tagName.toLowerCase(),currentStyle); - current = li; - } - } - me.fireEvent('contentchange'); - range.moveToBookmark(bk).select(); - return true; - } - } - - }); - function getLi(start){ - while(start && !domUtils.isBody(start)){ - if(start.nodeName == 'TABLE'){ - return null; - } - if(start.nodeName == 'LI'){ - return start - } - start = start.parentNode; - } - } - - /** - * 有序列表,与“insertunorderedlist”命令互斥 - * @command insertorderedlist - * @method execCommand - * @param { String } command 命令字符串 - * @param { String } style 插入的有序列表类型,值为:decimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2 - * @example - * ```javascript - * editor.execCommand( 'insertorderedlist','decimal'); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertorderedlist - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果当前选区是有序列表返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'insertorderedlist' ); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertorderedlist - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回当前有序列表的类型,值为null或decimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2 - * @example - * ```javascript - * editor.queryCommandValue( 'insertorderedlist' ); - * ``` - */ - - /** - * 无序列表,与“insertorderedlist”命令互斥 - * @command insertunorderedlist - * @method execCommand - * @param { String } command 命令字符串 - * @param { String } style 插入的无序列表类型,值为:circle,disc,square,dash,dot - * @example - * ```javascript - * editor.execCommand( 'insertunorderedlist','circle'); - * ``` - */ - /** - * 查询当前是否有word文档粘贴进来的图片 - * @command insertunorderedlist - * @method insertunorderedlist - * @param { String } command 命令字符串 - * @return { int } 如果当前选区是无序列表返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'insertunorderedlist' ); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertunorderedlist - * @method queryCommandValue - * @param { String } command 命令字符串 - * @return { String } 返回当前无序列表的类型,值为null或circle,disc,square,dash,dot - * @example - * ```javascript - * editor.queryCommandValue( 'insertunorderedlist' ); - * ``` - */ - - me.commands['insertorderedlist'] = - me.commands['insertunorderedlist'] = { - execCommand:function (command, style) { - - if (!style) { - style = command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc'; - } - var me = this, - range = this.selection.getRange(), - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node); - }, - tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul', - frag = me.document.createDocumentFragment(); - //去掉是因为会出现选到末尾,导致adjustmentBoundary缩到ol/ul的位置 - //range.shrinkBoundary();//.adjustmentBoundary(); - range.adjustmentBoundary().shrinkBoundary(); - var bko = range.createBookmark(true), - start = getLi(me.document.getElementById(bko.start)), - modifyStart = 0, - end = getLi(me.document.getElementById(bko.end)), - modifyEnd = 0, - startParent, endParent, - list, tmp; - - if (start || end) { - start && (startParent = start.parentNode); - if (!bko.end) { - end = start; - } - end && (endParent = end.parentNode); - - if (startParent === endParent) { - while (start !== end) { - tmp = start; - start = start.nextSibling; - if (!domUtils.isBlockElm(tmp.firstChild)) { - var p = me.document.createElement('p'); - while (tmp.firstChild) { - p.appendChild(tmp.firstChild); - } - tmp.appendChild(p); - } - frag.appendChild(tmp); - } - tmp = me.document.createElement('span'); - startParent.insertBefore(tmp, end); - if (!domUtils.isBlockElm(end.firstChild)) { - p = me.document.createElement('p'); - while (end.firstChild) { - p.appendChild(end.firstChild); - } - end.appendChild(p); - } - frag.appendChild(end); - domUtils.breakParent(tmp, startParent); - if (domUtils.isEmptyNode(tmp.previousSibling)) { - domUtils.remove(tmp.previousSibling); - } - if (domUtils.isEmptyNode(tmp.nextSibling)) { - domUtils.remove(tmp.nextSibling) - } - var nodeStyle = getStyle(startParent) || domUtils.getComputedStyle(startParent, 'list-style-type') || (command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc'); - if (startParent.tagName.toLowerCase() == tag && nodeStyle == style) { - for (var i = 0, ci, tmpFrag = me.document.createDocumentFragment(); ci = frag.firstChild;) { - if(domUtils.isTagNode(ci,'ol ul')){ -// 删除时,子列表不处理 -// utils.each(domUtils.getElementsByTagName(ci,'li'),function(li){ -// while(li.firstChild){ -// tmpFrag.appendChild(li.firstChild); -// } -// -// }); - tmpFrag.appendChild(ci); - }else{ - while (ci.firstChild) { - - tmpFrag.appendChild(ci.firstChild); - domUtils.remove(ci); - } - } - - } - tmp.parentNode.insertBefore(tmpFrag, tmp); - } else { - list = me.document.createElement(tag); - setListStyle(list,style); - list.appendChild(frag); - tmp.parentNode.insertBefore(list, tmp); - } - - domUtils.remove(tmp); - list && adjustList(list, tag, style); - range.moveToBookmark(bko).select(); - return; - } - //开始 - if (start) { - while (start) { - tmp = start.nextSibling; - if (domUtils.isTagNode(start, 'ol ul')) { - frag.appendChild(start); - } else { - var tmpfrag = me.document.createDocumentFragment(), - hasBlock = 0; - while (start.firstChild) { - if (domUtils.isBlockElm(start.firstChild)) { - hasBlock = 1; - } - tmpfrag.appendChild(start.firstChild); - } - if (!hasBlock) { - var tmpP = me.document.createElement('p'); - tmpP.appendChild(tmpfrag); - frag.appendChild(tmpP); - } else { - frag.appendChild(tmpfrag); - } - domUtils.remove(start); - } - - start = tmp; - } - startParent.parentNode.insertBefore(frag, startParent.nextSibling); - if (domUtils.isEmptyNode(startParent)) { - range.setStartBefore(startParent); - domUtils.remove(startParent); - } else { - range.setStartAfter(startParent); - } - modifyStart = 1; - } - - if (end && domUtils.inDoc(endParent, me.document)) { - //结束 - start = endParent.firstChild; - while (start && start !== end) { - tmp = start.nextSibling; - if (domUtils.isTagNode(start, 'ol ul')) { - frag.appendChild(start); - } else { - tmpfrag = me.document.createDocumentFragment(); - hasBlock = 0; - while (start.firstChild) { - if (domUtils.isBlockElm(start.firstChild)) { - hasBlock = 1; - } - tmpfrag.appendChild(start.firstChild); - } - if (!hasBlock) { - tmpP = me.document.createElement('p'); - tmpP.appendChild(tmpfrag); - frag.appendChild(tmpP); - } else { - frag.appendChild(tmpfrag); - } - domUtils.remove(start); - } - start = tmp; - } - var tmpDiv = domUtils.createElement(me.document, 'div', { - 'tmpDiv':1 - }); - domUtils.moveChild(end, tmpDiv); - - frag.appendChild(tmpDiv); - domUtils.remove(end); - endParent.parentNode.insertBefore(frag, endParent); - range.setEndBefore(endParent); - if (domUtils.isEmptyNode(endParent)) { - domUtils.remove(endParent); - } - - modifyEnd = 1; - } - - - } - - if (!modifyStart) { - range.setStartBefore(me.document.getElementById(bko.start)); - } - if (bko.end && !modifyEnd) { - range.setEndAfter(me.document.getElementById(bko.end)); - } - range.enlarge(true, function (node) { - return notExchange[node.tagName]; - }); - - frag = me.document.createDocumentFragment(); - - var bk = range.createBookmark(), - current = domUtils.getNextDomNode(bk.start, false, filterFn), - tmpRange = range.cloneRange(), - tmpNode, - block = domUtils.isBlockElm; - - while (current && current !== bk.end && (domUtils.getPosition(current, bk.end) & domUtils.POSITION_PRECEDING)) { - - if (current.nodeType == 3 || dtd.li[current.tagName]) { - if (current.nodeType == 1 && dtd.$list[current.tagName]) { - while (current.firstChild) { - frag.appendChild(current.firstChild); - } - tmpNode = domUtils.getNextDomNode(current, false, filterFn); - domUtils.remove(current); - current = tmpNode; - continue; - - } - tmpNode = current; - tmpRange.setStartBefore(current); - - while (current && current !== bk.end && (!block(current) || domUtils.isBookmarkNode(current) )) { - tmpNode = current; - current = domUtils.getNextDomNode(current, false, null, function (node) { - return !notExchange[node.tagName]; - }); - } - - if (current && block(current)) { - tmp = domUtils.getNextDomNode(tmpNode, false, filterFn); - if (tmp && domUtils.isBookmarkNode(tmp)) { - current = domUtils.getNextDomNode(tmp, false, filterFn); - tmpNode = tmp; - } - } - tmpRange.setEndAfter(tmpNode); - - current = domUtils.getNextDomNode(tmpNode, false, filterFn); - - var li = range.document.createElement('li'); - - li.appendChild(tmpRange.extractContents()); - if(domUtils.isEmptyNode(li)){ - var tmpNode = range.document.createElement('p'); - while(li.firstChild){ - tmpNode.appendChild(li.firstChild) - } - li.appendChild(tmpNode); - } - frag.appendChild(li); - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - range.moveToBookmark(bk).collapse(true); - list = me.document.createElement(tag); - setListStyle(list,style); - list.appendChild(frag); - range.insertNode(list); - //当前list上下看能否合并 - adjustList(list, tag, style); - //去掉冗余的tmpDiv - for (var i = 0, ci, tmpDivs = domUtils.getElementsByTagName(list, 'div'); ci = tmpDivs[i++];) { - if (ci.getAttribute('tmpDiv')) { - domUtils.remove(ci, true) - } - } - range.moveToBookmark(bko).select(); - - }, - queryCommandState:function (command) { - var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul'; - var path = this.selection.getStartElementPath(); - for(var i= 0,ci;ci = path[i++];){ - if(ci.nodeName == 'TABLE'){ - return 0 - } - if(tag == ci.nodeName.toLowerCase()){ - return 1 - }; - } - return 0; - - }, - queryCommandValue:function (command) { - var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul'; - var path = this.selection.getStartElementPath(), - node; - for(var i= 0,ci;ci = path[i++];){ - if(ci.nodeName == 'TABLE'){ - node = null; - break; - } - if(tag == ci.nodeName.toLowerCase()){ - node = ci; - break; - }; - } - return node ? getStyle(node) || domUtils.getComputedStyle(node, 'list-style-type') : null; - } - }; -}; - - - -// plugins/source.js -/** - * 源码编辑插件 - * @file - * @since 1.2.6.1 - */ - -(function (){ - var sourceEditors = { - textarea: function (editor, holder){ - var textarea = holder.ownerDocument.createElement('textarea'); - textarea.style.cssText = 'position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;'; - // todo: IE下只有onresize属性可用... 很纠结 - if (browser.ie && browser.version < 8) { - textarea.style.width = holder.offsetWidth + 'px'; - textarea.style.height = holder.offsetHeight + 'px'; - holder.onresize = function (){ - textarea.style.width = holder.offsetWidth + 'px'; - textarea.style.height = holder.offsetHeight + 'px'; - }; - } - holder.appendChild(textarea); - return { - setContent: function (content){ - textarea.value = content; - }, - getContent: function (){ - return textarea.value; - }, - select: function (){ - var range; - if (browser.ie) { - range = textarea.createTextRange(); - range.collapse(true); - range.select(); - } else { - //todo: chrome下无法设置焦点 - textarea.setSelectionRange(0, 0); - textarea.focus(); - } - }, - dispose: function (){ - holder.removeChild(textarea); - // todo - holder.onresize = null; - textarea = null; - holder = null; - } - }; - }, - codemirror: function (editor, holder){ - - var codeEditor = window.CodeMirror(holder, { - mode: "text/html", - tabMode: "indent", - lineNumbers: true, - lineWrapping:true - }); - var dom = codeEditor.getWrapperElement(); - dom.style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;'; - codeEditor.getScrollerElement().style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;'; - codeEditor.refresh(); - return { - getCodeMirror:function(){ - return codeEditor; - }, - setContent: function (content){ - codeEditor.setValue(content); - }, - getContent: function (){ - return codeEditor.getValue(); - }, - select: function (){ - codeEditor.focus(); - }, - dispose: function (){ - holder.removeChild(dom); - dom = null; - codeEditor = null; - } - }; - } - }; - - UE.plugins['source'] = function (){ - var me = this; - var opt = this.options; - var sourceMode = false; - var sourceEditor; - var orgSetContent; - opt.sourceEditor = browser.ie ? 'textarea' : (opt.sourceEditor || 'codemirror'); - - me.setOpt({ - sourceEditorFirst:false - }); - function createSourceEditor(holder){ - return sourceEditors[opt.sourceEditor == 'codemirror' && window.CodeMirror ? 'codemirror' : 'textarea'](me, holder); - } - - var bakCssText; - //解决在源码模式下getContent不能得到最新的内容问题 - var oldGetContent, - bakAddress; - - /** - * 切换源码模式和编辑模式 - * @command source - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'source'); - * ``` - */ - - /** - * 查询当前编辑区域的状态是源码模式还是可视化模式 - * @command source - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果当前是源码编辑模式,返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'source' ); - * ``` - */ - - me.commands['source'] = { - execCommand: function (){ - - sourceMode = !sourceMode; - if (sourceMode) { - bakAddress = me.selection.getRange().createAddress(false,true); - me.undoManger && me.undoManger.save(true); - if(browser.gecko){ - me.body.contentEditable = false; - } - - bakCssText = me.iframe.style.cssText; - me.iframe.style.cssText += 'position:absolute;left:-32768px;top:-32768px;'; - - - me.fireEvent('beforegetcontent'); - var root = UE.htmlparser(me.body.innerHTML); - me.filterOutputRule(root); - root.traversal(function (node) { - if (node.type == 'element') { - switch (node.tagName) { - case 'td': - case 'th': - case 'caption': - if(node.children && node.children.length == 1){ - if(node.firstChild().tagName == 'br' ){ - node.removeChild(node.firstChild()) - } - }; - break; - case 'pre': - node.innerText(node.innerText().replace(/ /g,' ')) - - } - } - }); - - me.fireEvent('aftergetcontent'); - - var content = root.toHtml(true); - - sourceEditor = createSourceEditor(me.iframe.parentNode); - - sourceEditor.setContent(content); - - orgSetContent = me.setContent; - - me.setContent = function(html){ - //这里暂时不触发事件,防止报错 - var root = UE.htmlparser(html); - me.filterInputRule(root); - html = root.toHtml(); - sourceEditor.setContent(html); - }; - - setTimeout(function (){ - sourceEditor.select(); - me.addListener('fullscreenchanged', function(){ - try{ - sourceEditor.getCodeMirror().refresh() - }catch(e){} - }); - }); - - //重置getContent,源码模式下取值也能是最新的数据 - oldGetContent = me.getContent; - me.getContent = function (){ - return sourceEditor.getContent() || '

    ' + (browser.ie ? '' : '
    ')+'

    '; - }; - } else { - me.iframe.style.cssText = bakCssText; - var cont = sourceEditor.getContent() || '

    ' + (browser.ie ? '' : '
    ')+'

    '; - //处理掉block节点前后的空格,有可能会误命中,暂时不考虑 - cont = cont.replace(new RegExp('[\\r\\t\\n ]*<\/?(\\w+)\\s*(?:[^>]*)>','g'), function(a,b){ - if(b && !dtd.$inlineWithA[b.toLowerCase()]){ - return a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,''); - } - return a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,'') - }); - - me.setContent = orgSetContent; - - me.setContent(cont); - sourceEditor.dispose(); - sourceEditor = null; - //还原getContent方法 - me.getContent = oldGetContent; - var first = me.body.firstChild; - //trace:1106 都删除空了,下边会报错,所以补充一个p占位 - if(!first){ - me.body.innerHTML = '

    '+(browser.ie?'':'
    ')+'

    '; - first = me.body.firstChild; - } - - - //要在ifm为显示时ff才能取到selection,否则报错 - //这里不能比较位置了 - me.undoManger && me.undoManger.save(true); - - if(browser.gecko){ - - var input = document.createElement('input'); - input.style.cssText = 'position:absolute;left:0;top:-32768px'; - - document.body.appendChild(input); - - me.body.contentEditable = false; - setTimeout(function(){ - domUtils.setViewportOffset(input, { left: -32768, top: 0 }); - input.focus(); - setTimeout(function(){ - me.body.contentEditable = true; - me.selection.getRange().moveToAddress(bakAddress).select(true); - domUtils.remove(input); - }); - - }); - }else{ - //ie下有可能报错,比如在代码顶头的情况 - try{ - me.selection.getRange().moveToAddress(bakAddress).select(true); - }catch(e){} - - } - } - this.fireEvent('sourcemodechanged', sourceMode); - }, - queryCommandState: function (){ - return sourceMode|0; - }, - notNeedUndo : 1 - }; - var oldQueryCommandState = me.queryCommandState; - - me.queryCommandState = function (cmdName){ - cmdName = cmdName.toLowerCase(); - if (sourceMode) { - //源码模式下可以开启的命令 - return cmdName in { - 'source' : 1, - 'fullscreen' : 1 - } ? 1 : -1 - } - return oldQueryCommandState.apply(this, arguments); - }; - - if(opt.sourceEditor == "codemirror"){ - - me.addListener("ready",function(){ - utils.loadFile(document,{ - src : opt.codeMirrorJsUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - if(opt.sourceEditorFirst){ - setTimeout(function(){ - me.execCommand("source"); - },0); - } - }); - utils.loadFile(document,{ - tag : "link", - rel : "stylesheet", - type : "text/css", - href : opt.codeMirrorCssUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.css" - }); - - }); - } - - }; - -})(); - -// plugins/enterkey.js -///import core -///import plugins/undo.js -///commands 设置回车标签p或br -///commandsName EnterKey -///commandsTitle 设置回车标签p或br -/** - * @description 处理回车 - * @author zhanyi - */ -UE.plugins['enterkey'] = function() { - var hTag, - me = this, - tag = me.options.enterTag; - me.addListener('keyup', function(type, evt) { - - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) { - var range = me.selection.getRange(), - start = range.startContainer, - doSave; - - //修正在h1-h6里边回车后不能嵌套p的问题 - if (!browser.ie) { - - if (/h\d/i.test(hTag)) { - if (browser.gecko) { - var h = domUtils.findParentByTagName(start, [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption','table'], true); - if (!h) { - me.document.execCommand('formatBlock', false, '

    '); - doSave = 1; - } - } else { - //chrome remove div - if (start.nodeType == 1) { - var tmp = me.document.createTextNode(''),div; - range.insertNode(tmp); - div = domUtils.findParentByTagName(tmp, 'div', true); - if (div) { - var p = me.document.createElement('p'); - while (div.firstChild) { - p.appendChild(div.firstChild); - } - div.parentNode.insertBefore(p, div); - domUtils.remove(div); - range.setStartBefore(tmp).setCursor(); - doSave = 1; - } - domUtils.remove(tmp); - - } - } - - if (me.undoManger && doSave) { - me.undoManger.save(); - } - } - //没有站位符,会出现多行的问题 - browser.opera && range.select(); - }else{ - me.fireEvent('saveScene',true,true) - } - } - }); - - me.addListener('keydown', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) {//回车 - if(me.fireEvent('beforeenterkeydown')){ - domUtils.preventDefault(evt); - return; - } - me.fireEvent('saveScene',true,true); - hTag = ''; - - - var range = me.selection.getRange(); - - if (!range.collapsed) { - //跨td不能删 - var start = range.startContainer, - end = range.endContainer, - startTd = domUtils.findParentByTagName(start, 'td', true), - endTd = domUtils.findParentByTagName(end, 'td', true); - if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) { - evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false); - return; - } - } - if (tag == 'p') { - - - if (!browser.ie) { - - start = domUtils.findParentByTagName(range.startContainer, ['ol','ul','p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption'], true); - - //opera下执行formatblock会在table的场景下有问题,回车在opera原生支持很好,所以暂时在opera去掉调用这个原生的command - //trace:2431 - if (!start && !browser.opera) { - - me.document.execCommand('formatBlock', false, '

    '); - - if (browser.gecko) { - range = me.selection.getRange(); - start = domUtils.findParentByTagName(range.startContainer, 'p', true); - start && domUtils.removeDirtyAttr(start); - } - - - } else { - hTag = start.tagName; - start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start); - } - - } - - } else { - evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false); - - if (!range.collapsed) { - range.deleteContents(); - start = range.startContainer; - if (start.nodeType == 1 && (start = start.childNodes[range.startOffset])) { - while (start.nodeType == 1) { - if (dtd.$empty[start.tagName]) { - range.setStartBefore(start).setCursor(); - if (me.undoManger) { - me.undoManger.save(); - } - return false; - } - if (!start.firstChild) { - var br = range.document.createElement('br'); - start.appendChild(br); - range.setStart(start, 0).setCursor(); - if (me.undoManger) { - me.undoManger.save(); - } - return false; - } - start = start.firstChild; - } - if (start === range.startContainer.childNodes[range.startOffset]) { - br = range.document.createElement('br'); - range.insertNode(br).setCursor(); - - } else { - range.setStart(start, 0).setCursor(); - } - - - } else { - br = range.document.createElement('br'); - range.insertNode(br).setStartAfter(br).setCursor(); - } - - - } else { - br = range.document.createElement('br'); - range.insertNode(br); - var parent = br.parentNode; - if (parent.lastChild === br) { - br.parentNode.insertBefore(br.cloneNode(true), br); - range.setStartBefore(br); - } else { - range.setStartAfter(br); - } - range.setCursor(); - - } - - } - - } - }); -}; - - -// plugins/keystrokes.js -/* 处理特殊键的兼容性问题 */ -UE.plugins['keystrokes'] = function() { - var me = this; - var collapsed = true; - me.addListener('keydown', function(type, evt) { - var keyCode = evt.keyCode || evt.which, - rng = me.selection.getRange(); - - //处理全选的情况 - if(!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 && keyCode <=90 - || keyCode >= 48 && keyCode <= 57 || - keyCode >= 96 && keyCode <= 111 || { - 13:1, - 8:1, - 46:1 - }[keyCode]) - ){ - - var tmpNode = rng.startContainer; - if(domUtils.isFillChar(tmpNode)){ - rng.setStartBefore(tmpNode) - } - tmpNode = rng.endContainer; - if(domUtils.isFillChar(tmpNode)){ - rng.setEndAfter(tmpNode) - } - rng.txtToElmBoundary(); - //结束边界可能放到了br的前边,要把br包含进来 - // x[xxx]
    - if(rng.endContainer && rng.endContainer.nodeType == 1){ - tmpNode = rng.endContainer.childNodes[rng.endOffset]; - if(tmpNode && domUtils.isBr(tmpNode)){ - rng.setEndAfter(tmpNode); - } - } - if(rng.startOffset == 0){ - tmpNode = rng.startContainer; - if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){ - tmpNode = rng.endContainer; - if(rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){ - me.fireEvent('saveScene'); - me.body.innerHTML = '

    '+(browser.ie ? '' : '
    ')+'

    '; - rng.setStart(me.body.firstChild,0).setCursor(false,true); - me._selectionChange(); - return; - } - } - } - } - - //处理backspace - if (keyCode == keymap.Backspace) { - rng = me.selection.getRange(); - collapsed = rng.collapsed; - if(me.fireEvent('delkeydown',evt)){ - return; - } - var start,end; - //避免按两次删除才能生效的问题 - if(rng.collapsed && rng.inFillChar()){ - start = rng.startContainer; - - if(domUtils.isFillChar(start)){ - rng.setStartBefore(start).shrinkBoundary(true).collapse(true); - domUtils.remove(start) - }else{ - start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar ),''); - rng.startOffset--; - rng.collapse(true).select(true) - } - } - - //解决选中control元素不能删除的问题 - if (start = rng.getClosedNode()) { - me.fireEvent('saveScene'); - rng.setStartBefore(start); - domUtils.remove(start); - rng.setCursor(); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - } - //阻止在table上的删除 - if (!browser.ie) { - start = domUtils.findParentByTagName(rng.startContainer, 'table', true); - end = domUtils.findParentByTagName(rng.endContainer, 'table', true); - if (start && !end || !start && end || start !== end) { - evt.preventDefault(); - return; - } - } - - } - //处理tab键的逻辑 - if (keyCode == keymap.Tab) { - //不处理以下标签 - var excludeTagNameForTabKey = { - 'ol' : 1, - 'ul' : 1, - 'table':1 - }; - //处理组件里的tab按下事件 - if(me.fireEvent('tabkeydown',evt)){ - domUtils.preventDefault(evt); - return; - } - var range = me.selection.getRange(); - me.fireEvent('saveScene'); - for (var i = 0,txt = '',tabSize = me.options.tabSize|| 4,tabNode = me.options.tabNode || ' '; i < tabSize; i++) { - txt += tabNode; - } - var span = me.document.createElement('span'); - span.innerHTML = txt + domUtils.fillChar; - if (range.collapsed) { - range.insertNode(span.cloneNode(true).firstChild).setCursor(true); - } else { - var filterFn = function(node) { - return domUtils.isBlockElm(node) && !excludeTagNameForTabKey[node.tagName.toLowerCase()] - - }; - //普通的情况 - start = domUtils.findParent(range.startContainer, filterFn,true); - end = domUtils.findParent(range.endContainer, filterFn,true); - if (start && end && start === end) { - range.deleteContents(); - range.insertNode(span.cloneNode(true).firstChild).setCursor(true); - } else { - var bookmark = range.createBookmark(); - range.enlarge(true); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode(bookmark2.start, false, filterFn); - while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) { - current.insertBefore(span.cloneNode(true).firstChild, current.firstChild); - current = domUtils.getNextDomNode(current, false, filterFn); - } - range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select(); - } - } - domUtils.preventDefault(evt) - } - //trace:1634 - //ff的del键在容器空的时候,也会删除 - if(browser.gecko && keyCode == 46){ - range = me.selection.getRange(); - if(range.collapsed){ - start = range.startContainer; - if(domUtils.isEmptyBlock(start)){ - var parent = start.parentNode; - while(domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)){ - start = parent; - parent = parent.parentNode; - } - if(start === parent.lastChild) - evt.preventDefault(); - return; - } - } - } - }); - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which, - rng,me = this; - if(keyCode == keymap.Backspace){ - if(me.fireEvent('delkeyup')){ - return; - } - rng = me.selection.getRange(); - if(rng.collapsed){ - var tmpNode, - autoClearTagName = ['h1','h2','h3','h4','h5','h6']; - if(tmpNode = domUtils.findParentByTagName(rng.startContainer,autoClearTagName,true)){ - if(domUtils.isEmptyBlock(tmpNode)){ - var pre = tmpNode.previousSibling; - if(pre && pre.nodeName != 'TABLE'){ - domUtils.remove(tmpNode); - rng.setStartAtLast(pre).setCursor(false,true); - return; - }else{ - var next = tmpNode.nextSibling; - if(next && next.nodeName != 'TABLE'){ - domUtils.remove(tmpNode); - rng.setStartAtFirst(next).setCursor(false,true); - return; - } - } - } - } - //处理当删除到body时,要重新给p标签展位 - if(domUtils.isBody(rng.startContainer)){ - var tmpNode = domUtils.createElement(me.document,'p',{ - 'innerHTML' : browser.ie ? domUtils.fillChar : '
    ' - }); - rng.insertNode(tmpNode).setStart(tmpNode,0).setCursor(false,true); - } - } - - - //chrome下如果删除了inline标签,浏览器会有记忆,在输入文字还是会套上刚才删除的标签,所以这里再选一次就不会了 - if( !collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(rng.startContainer))){ - if(browser.ie){ - var span = rng.document.createElement('span'); - rng.insertNode(span).setStartBefore(span).collapse(true); - rng.select(); - domUtils.remove(span) - }else{ - rng.select() - } - - } - } - - - }) -}; - -// plugins/fiximgclick.js -///import core -///commands 修复chrome下图片不能点击的问题,出现八个角可改变大小 -///commandsName FixImgClick -///commandsTitle 修复chrome下图片不能点击的问题,出现八个角可改变大小 -//修复chrome下图片不能点击的问题,出现八个角可改变大小 - -UE.plugins['fiximgclick'] = (function () { - - var elementUpdated = false; - function Scale() { - this.editor = null; - this.resizer = null; - this.cover = null; - this.doc = document; - this.prePos = {x: 0, y: 0}; - this.startPos = {x: 0, y: 0}; - } - - (function () { - var rect = [ - //[left, top, width, height] - [0, 0, -1, -1], - [0, 0, 0, -1], - [0, 0, 1, -1], - [0, 0, -1, 0], - [0, 0, 1, 0], - [0, 0, -1, 1], - [0, 0, 0, 1], - [0, 0, 1, 1] - ]; - - Scale.prototype = { - init: function (editor) { - var me = this; - me.editor = editor; - me.startPos = this.prePos = {x: 0, y: 0}; - me.dragId = -1; - - var hands = [], - cover = me.cover = document.createElement('div'), - resizer = me.resizer = document.createElement('div'); - - cover.id = me.editor.ui.id + '_imagescale_cover'; - cover.style.cssText = 'position:absolute;display:none;z-index:' + (me.editor.options.zIndex) + ';filter:alpha(opacity=0); opacity:0;background:#CCC;'; - domUtils.on(cover, 'mousedown click', function () { - me.hide(); - }); - - for (i = 0; i < 8; i++) { - hands.push(''); - } - resizer.id = me.editor.ui.id + '_imagescale'; - resizer.className = 'edui-editor-imagescale'; - resizer.innerHTML = hands.join(''); - resizer.style.cssText += ';display:none;border:1px solid #3b77ff;z-index:' + (me.editor.options.zIndex) + ';'; - - me.editor.ui.getDom().appendChild(cover); - me.editor.ui.getDom().appendChild(resizer); - - me.initStyle(); - me.initEvents(); - }, - initStyle: function () { - utils.cssRule('imagescale', '.edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}' + - '.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}'); - }, - initEvents: function () { - var me = this; - - me.startPos.x = me.startPos.y = 0; - me.isDraging = false; - }, - _eventHandler: function (e) { - var me = this; - switch (e.type) { - case 'mousedown': - var hand = e.target || e.srcElement, hand; - if (hand.className.indexOf('edui-editor-imagescale-hand') != -1 && me.dragId == -1) { - me.dragId = hand.className.slice(-1); - me.startPos.x = me.prePos.x = e.clientX; - me.startPos.y = me.prePos.y = e.clientY; - domUtils.on(me.doc,'mousemove', me.proxy(me._eventHandler, me)); - } - break; - case 'mousemove': - if (me.dragId != -1) { - me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y}); - me.prePos.x = e.clientX; - me.prePos.y = e.clientY; - elementUpdated = true; - me.updateTargetElement(); - - } - break; - case 'mouseup': - if (me.dragId != -1) { - me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y}); - me.updateTargetElement(); - if (me.target.parentNode) me.attachTo(me.target); - me.dragId = -1; - } - domUtils.un(me.doc,'mousemove', me.proxy(me._eventHandler, me)); - //修复只是点击挪动点,但没有改变大小,不应该触发contentchange - if(elementUpdated){ - elementUpdated = false; - me.editor.fireEvent('contentchange'); - } - - break; - default: - break; - } - }, - updateTargetElement: function () { - var me = this; - domUtils.setStyles(me.target, { - 'width': me.resizer.style.width, - 'height': me.resizer.style.height - }); - me.target.width = parseInt(me.resizer.style.width); - me.target.height = parseInt(me.resizer.style.height); - me.attachTo(me.target); - }, - updateContainerStyle: function (dir, offset) { - var me = this, - dom = me.resizer, tmp; - - if (rect[dir][0] != 0) { - tmp = parseInt(dom.style.left) + offset.x; - dom.style.left = me._validScaledProp('left', tmp) + 'px'; - } - if (rect[dir][1] != 0) { - tmp = parseInt(dom.style.top) + offset.y; - dom.style.top = me._validScaledProp('top', tmp) + 'px'; - } - if (rect[dir][2] != 0) { - tmp = dom.clientWidth + rect[dir][2] * offset.x; - dom.style.width = me._validScaledProp('width', tmp) + 'px'; - } - if (rect[dir][3] != 0) { - tmp = dom.clientHeight + rect[dir][3] * offset.y; - dom.style.height = me._validScaledProp('height', tmp) + 'px'; - } - }, - _validScaledProp: function (prop, value) { - var ele = this.resizer, - wrap = document; - - value = isNaN(value) ? 0 : value; - switch (prop) { - case 'left': - return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; - case 'top': - return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; - case 'width': - return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; - case 'height': - return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; - } - }, - hideCover: function () { - this.cover.style.display = 'none'; - }, - showCover: function () { - var me = this, - editorPos = domUtils.getXY(me.editor.ui.getDom()), - iframePos = domUtils.getXY(me.editor.iframe); - - domUtils.setStyles(me.cover, { - 'width': me.editor.iframe.offsetWidth + 'px', - 'height': me.editor.iframe.offsetHeight + 'px', - 'top': iframePos.y - editorPos.y + 'px', - 'left': iframePos.x - editorPos.x + 'px', - 'position': 'absolute', - 'display': '' - }) - }, - show: function (targetObj) { - var me = this; - me.resizer.style.display = 'block'; - if(targetObj) me.attachTo(targetObj); - - domUtils.on(this.resizer, 'mousedown', me.proxy(me._eventHandler, me)); - domUtils.on(me.doc, 'mouseup', me.proxy(me._eventHandler, me)); - - me.showCover(); - me.editor.fireEvent('afterscaleshow', me); - me.editor.fireEvent('saveScene'); - }, - hide: function () { - var me = this; - me.hideCover(); - me.resizer.style.display = 'none'; - - domUtils.un(me.resizer, 'mousedown', me.proxy(me._eventHandler, me)); - domUtils.un(me.doc, 'mouseup', me.proxy(me._eventHandler, me)); - me.editor.fireEvent('afterscalehide', me); - }, - proxy: function( fn, context ) { - return function(e) { - return fn.apply( context || this, arguments); - }; - }, - attachTo: function (targetObj) { - var me = this, - target = me.target = targetObj, - resizer = this.resizer, - imgPos = domUtils.getXY(target), - iframePos = domUtils.getXY(me.editor.iframe), - editorPos = domUtils.getXY(resizer.parentNode); - - domUtils.setStyles(resizer, { - 'width': target.width + 'px', - 'height': target.height + 'px', - 'left': iframePos.x + imgPos.x - me.editor.document.body.scrollLeft - editorPos.x - parseInt(resizer.style.borderLeftWidth) + 'px', - 'top': iframePos.y + imgPos.y - me.editor.document.body.scrollTop - editorPos.y - parseInt(resizer.style.borderTopWidth) + 'px' - }); - } - } - })(); - - return function () { - var me = this, - imageScale; - - me.setOpt('imageScaleEnabled', true); - - if ( !browser.ie && me.options.imageScaleEnabled) { - me.addListener('click', function (type, e) { - - var range = me.selection.getRange(), - img = range.getClosedNode(); - - if (img && img.tagName == 'IMG' && me.body.contentEditable!="false") { - - if (img.className.indexOf("edui-faked-music") != -1 || - img.getAttribute("anchorname") || - domUtils.hasClass(img, 'loadingclass') || - domUtils.hasClass(img, 'loaderrorclass')) { return } - - if (!imageScale) { - imageScale = new Scale(); - imageScale.init(me); - me.ui.getDom().appendChild(imageScale.resizer); - - var _keyDownHandler = function (e) { - imageScale.hide(); - if(imageScale.target) me.selection.getRange().selectNode(imageScale.target).select(); - }, _mouseDownHandler = function (e) { - var ele = e.target || e.srcElement; - if (ele && (ele.className===undefined || ele.className.indexOf('edui-editor-imagescale') == -1)) { - _keyDownHandler(e); - } - }, timer; - - me.addListener('afterscaleshow', function (e) { - me.addListener('beforekeydown', _keyDownHandler); - me.addListener('beforemousedown', _mouseDownHandler); - domUtils.on(document, 'keydown', _keyDownHandler); - domUtils.on(document,'mousedown', _mouseDownHandler); - me.selection.getNative().removeAllRanges(); - }); - me.addListener('afterscalehide', function (e) { - me.removeListener('beforekeydown', _keyDownHandler); - me.removeListener('beforemousedown', _mouseDownHandler); - domUtils.un(document, 'keydown', _keyDownHandler); - domUtils.un(document,'mousedown', _mouseDownHandler); - var target = imageScale.target; - if (target.parentNode) { - me.selection.getRange().selectNode(target).select(); - } - }); - //TODO 有iframe的情况,mousedown不能往下传。。 - domUtils.on(imageScale.resizer, 'mousedown', function (e) { - me.selection.getNative().removeAllRanges(); - var ele = e.target || e.srcElement; - if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) { - timer = setTimeout(function () { - imageScale.hide(); - if(imageScale.target) me.selection.getRange().selectNode(ele).select(); - }, 200); - } - }); - domUtils.on(imageScale.resizer, 'mouseup', function (e) { - var ele = e.target || e.srcElement; - if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) { - clearTimeout(timer); - } - }); - } - imageScale.show(img); - } else { - if (imageScale && imageScale.resizer.style.display != 'none') imageScale.hide(); - } - }); - } - - if (browser.webkit) { - me.addListener('click', function (type, e) { - if (e.target.tagName == 'IMG' && me.body.contentEditable!="false") { - var range = new dom.Range(me.document); - range.selectNode(e.target).select(); - } - }); - } - } -})(); - -// plugins/autolink.js -///import core -///commands 为非ie浏览器自动添加a标签 -///commandsName AutoLink -///commandsTitle 自动增加链接 -/** - * @description 为非ie浏览器自动添加a标签 - * @author zhanyi - */ - -UE.plugin.register('autolink',function(){ - var cont = 0; - - return !browser.ie ? { - - bindEvents:{ - 'reset' : function(){ - cont = 0; - }, - 'keydown':function(type, evt) { - var me = this; - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 32 || keyCode == 13) { - - var sel = me.selection.getNative(), - range = sel.getRangeAt(0).cloneRange(), - offset, - charCode; - - var start = range.startContainer; - while (start.nodeType == 1 && range.startOffset > 0) { - start = range.startContainer.childNodes[range.startOffset - 1]; - if (!start){ - break; - } - range.setStart(start, start.nodeType == 1 ? start.childNodes.length : start.nodeValue.length); - range.collapse(true); - start = range.startContainer; - } - - do{ - if (range.startOffset == 0) { - start = range.startContainer.previousSibling; - - while (start && start.nodeType == 1) { - start = start.lastChild; - } - if (!start || domUtils.isFillChar(start)){ - break; - } - offset = start.nodeValue.length; - } else { - start = range.startContainer; - offset = range.startOffset; - } - range.setStart(start, offset - 1); - charCode = range.toString().charCodeAt(0); - } while (charCode != 160 && charCode != 32); - - if (range.toString().replace(new RegExp(domUtils.fillChar, 'g'), '').match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)) { - while(range.toString().length){ - if(/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(range.toString())){ - break; - } - try{ - range.setStart(range.startContainer,range.startOffset+1); - }catch(e){ - //trace:2121 - var start = range.startContainer; - while(!(next = start.nextSibling)){ - if(domUtils.isBody(start)){ - return; - } - start = start.parentNode; - - } - range.setStart(next,0); - - } - - } - //range的开始边界已经在a标签里的不再处理 - if(domUtils.findParentByTagName(range.startContainer,'a',true)){ - return; - } - var a = me.document.createElement('a'),text = me.document.createTextNode(' '),href; - - me.undoManger && me.undoManger.save(); - a.appendChild(range.extractContents()); - a.href = a.innerHTML = a.innerHTML.replace(/<[^>]+>/g,''); - href = a.getAttribute("href").replace(new RegExp(domUtils.fillChar,'g'),''); - href = /^(?:https?:\/\/)/ig.test(href) ? href : "http://"+ href; - a.setAttribute('_src',utils.html(href)); - a.href = utils.html(href); - - range.insertNode(a); - a.parentNode.insertBefore(text, a.nextSibling); - range.setStart(text, 0); - range.collapse(true); - sel.removeAllRanges(); - sel.addRange(range); - me.undoManger && me.undoManger.save(); - } - } - } - } - }:{} - },function(){ - var keyCodes = { - 37:1, 38:1, 39:1, 40:1, - 13:1,32:1 - }; - function checkIsCludeLink(node){ - if(node.nodeType == 3){ - return null - } - if(node.nodeName == 'A'){ - return node; - } - var lastChild = node.lastChild; - - while(lastChild){ - if(lastChild.nodeName == 'A'){ - return lastChild; - } - if(lastChild.nodeType == 3){ - if(domUtils.isWhitespace(lastChild)){ - lastChild = lastChild.previousSibling; - continue; - } - return null - } - lastChild = lastChild.lastChild; - } - } - browser.ie && this.addListener('keyup',function(cmd,evt){ - var me = this,keyCode = evt.keyCode; - if(keyCodes[keyCode]){ - var rng = me.selection.getRange(); - var start = rng.startContainer; - - if(keyCode == 13){ - while(start && !domUtils.isBody(start) && !domUtils.isBlockElm(start)){ - start = start.parentNode; - } - if(start && !domUtils.isBody(start) && start.nodeName == 'P'){ - var pre = start.previousSibling; - if(pre && pre.nodeType == 1){ - var pre = checkIsCludeLink(pre); - if(pre && !pre.getAttribute('_href')){ - domUtils.remove(pre,true); - } - } - } - }else if(keyCode == 32 ){ - if(start.nodeType == 3 && /^\s$/.test(start.nodeValue)){ - start = start.previousSibling; - if(start && start.nodeName == 'A' && !start.getAttribute('_href')){ - domUtils.remove(start,true); - } - } - }else { - start = domUtils.findParentByTagName(start,'a',true); - if(start && !start.getAttribute('_href')){ - var bk = rng.createBookmark(); - - domUtils.remove(start,true); - rng.moveToBookmark(bk).select(true) - } - } - - } - - - }); - } -); - -// plugins/autoheight.js -///import core -///commands 当输入内容超过编辑器高度时,编辑器自动增高 -///commandsName AutoHeight,autoHeightEnabled -///commandsTitle 自动增高 -/** - * @description 自动伸展 - * @author zhanyi - */ -UE.plugins['autoheight'] = function () { - var me = this; - //提供开关,就算加载也可以关闭 - me.autoHeightEnabled = me.options.autoHeightEnabled !== false; - if (!me.autoHeightEnabled) { - return; - } - - var bakOverflow, - lastHeight = 0, - options = me.options, - currentHeight, - timer; - - function adjustHeight() { - var me = this; - clearTimeout(timer); - if(isFullscreen)return; - if (!me.queryCommandState || me.queryCommandState && me.queryCommandState('source') != 1) { - timer = setTimeout(function(){ - - var node = me.body.lastChild; - while(node && node.nodeType != 1){ - node = node.previousSibling; - } - if(node && node.nodeType == 1){ - node.style.clear = 'both'; - currentHeight = Math.max(domUtils.getXY(node).y + node.offsetHeight + 25 ,Math.max(options.minFrameHeight, options.initialFrameHeight)) ; - if (currentHeight != lastHeight) { - if (currentHeight !== parseInt(me.iframe.parentNode.style.height)) { - me.iframe.parentNode.style.height = currentHeight + 'px'; - } - me.body.style.height = currentHeight + 'px'; - lastHeight = currentHeight; - } - domUtils.removeStyle(node,'clear'); - } - - - },50) - } - } - var isFullscreen; - me.addListener('fullscreenchanged',function(cmd,f){ - isFullscreen = f - }); - me.addListener('destroy', function () { - me.removeListener('contentchange afterinserthtml keyup mouseup',adjustHeight) - }); - me.enableAutoHeight = function () { - var me = this; - if (!me.autoHeightEnabled) { - return; - } - var doc = me.document; - me.autoHeightEnabled = true; - bakOverflow = doc.body.style.overflowY; - doc.body.style.overflowY = 'hidden'; - me.addListener('contentchange afterinserthtml keyup mouseup',adjustHeight); - //ff不给事件算得不对 - - setTimeout(function () { - adjustHeight.call(me); - }, browser.gecko ? 100 : 0); - me.fireEvent('autoheightchanged', me.autoHeightEnabled); - }; - me.disableAutoHeight = function () { - - me.body.style.overflowY = bakOverflow || ''; - - me.removeListener('contentchange', adjustHeight); - me.removeListener('keyup', adjustHeight); - me.removeListener('mouseup', adjustHeight); - me.autoHeightEnabled = false; - me.fireEvent('autoheightchanged', me.autoHeightEnabled); - }; - - me.on('setHeight',function(){ - me.disableAutoHeight() - }); - me.addListener('ready', function () { - me.enableAutoHeight(); - //trace:1764 - var timer; - domUtils.on(browser.ie ? me.body : me.document, browser.webkit ? 'dragover' : 'drop', function () { - clearTimeout(timer); - timer = setTimeout(function () { - //trace:3681 - adjustHeight.call(me); - }, 100); - - }); - //修复内容过多时,回到顶部,顶部内容被工具栏遮挡问题 - var lastScrollY; - window.onscroll = function(){ - if(lastScrollY === null){ - lastScrollY = this.scrollY - }else if(this.scrollY == 0 && lastScrollY != 0){ - me.window.scrollTo(0,0); - lastScrollY = null; - } - } - }); - - -}; - - - -// plugins/autofloat.js -///import core -///commands 悬浮工具栏 -///commandsName AutoFloat,autoFloatEnabled -///commandsTitle 悬浮工具栏 -/** - * modified by chengchao01 - * 注意: 引入此功能后,在IE6下会将body的背景图片覆盖掉! - */ -UE.plugins['autofloat'] = function() { - var me = this, - lang = me.getLang(); - me.setOpt({ - topOffset:0 - }); - var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false, - topOffset = me.options.topOffset; - - - //如果不固定toolbar的位置,则直接退出 - if(!optsAutoFloatEnabled){ - return; - } - var uiUtils = UE.ui.uiUtils, - LteIE6 = browser.ie && browser.version <= 6, - quirks = browser.quirks; - - function checkHasUI(){ - if(!UE.ui){ - alert(lang.autofloatMsg); - return 0; - } - return 1; - } - function fixIE6FixedPos(){ - var docStyle = document.body.style; - docStyle.backgroundImage = 'url("about:blank")'; - docStyle.backgroundAttachment = 'fixed'; - } - var bakCssText, - placeHolder = document.createElement('div'), - toolbarBox,orgTop, - getPosition, - flag =true; //ie7模式下需要偏移 - function setFloating(){ - var toobarBoxPos = domUtils.getXY(toolbarBox), - origalFloat = domUtils.getComputedStyle(toolbarBox,'position'), - origalLeft = domUtils.getComputedStyle(toolbarBox,'left'); - toolbarBox.style.width = toolbarBox.offsetWidth + 'px'; - toolbarBox.style.zIndex = me.options.zIndex * 1 + 1; - toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox); - if (LteIE6 || (quirks && browser.ie)) { - if(toolbarBox.style.position != 'absolute'){ - toolbarBox.style.position = 'absolute'; - } - toolbarBox.style.top = (document.body.scrollTop||document.documentElement.scrollTop) - orgTop + topOffset + 'px'; - } else { - if (browser.ie7Compat && flag) { - flag = false; - toolbarBox.style.left = domUtils.getXY(toolbarBox).x - document.documentElement.getBoundingClientRect().left+2 + 'px'; - } - if(toolbarBox.style.position != 'fixed'){ - toolbarBox.style.position = 'fixed'; - toolbarBox.style.top = topOffset +"px"; - ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style.left = toobarBoxPos.x + 'px'); - } - } - } - function unsetFloating(){ - flag = true; - if(placeHolder.parentNode){ - placeHolder.parentNode.removeChild(placeHolder); - } - - toolbarBox.style.cssText = bakCssText; - } - - function updateFloating(){ - var rect3 = getPosition(me.container); - var offset=me.options.toolbarTopOffset||0; - if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) { - setFloating(); - }else{ - unsetFloating(); - } - } - var defer_updateFloating = utils.defer(function(){ - updateFloating(); - },browser.ie ? 200 : 100,true); - - me.addListener('destroy',function(){ - domUtils.un(window, ['scroll','resize'], updateFloating); - me.removeListener('keydown', defer_updateFloating); - }); - - me.addListener('ready', function(){ - if(checkHasUI(me)){ - //加载了ui组件,但在new时,没有加载ui,导致编辑器实例上没有ui类,所以这里做判断 - if(!me.ui){ - return; - } - getPosition = uiUtils.getClientRect; - toolbarBox = me.ui.getDom('toolbarbox'); - orgTop = getPosition(toolbarBox).top; - bakCssText = toolbarBox.style.cssText; - placeHolder.style.height = toolbarBox.offsetHeight + 'px'; - if(LteIE6){ - fixIE6FixedPos(); - } - domUtils.on(window, ['scroll','resize'], updateFloating); - me.addListener('keydown', defer_updateFloating); - - me.addListener('beforefullscreenchange', function (t, enabled){ - if (enabled) { - unsetFloating(); - } - }); - me.addListener('fullscreenchanged', function (t, enabled){ - if (!enabled) { - updateFloating(); - } - }); - me.addListener('sourcemodechanged', function (t, enabled){ - setTimeout(function (){ - updateFloating(); - },0); - }); - me.addListener("clearDoc",function(){ - setTimeout(function(){ - updateFloating(); - },0); - - }) - } - }); -}; - - -// plugins/video.js -/** - * video插件, 为UEditor提供视频插入支持 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['video'] = function (){ - var me =this; - - /** - * 创建插入视频字符窜 - * @param url 视频地址 - * @param width 视频宽度 - * @param height 视频高度 - * @param align 视频对齐 - * @param toEmbed 是否以flash代替显示 - * @param addParagraph 是否需要添加P 标签 - */ - function creatInsertStr(url,width,height,id,align,classname,type){ - - url = utils.unhtmlForUrl(url); - align = utils.unhtml(align); - classname = utils.unhtml(classname).trim(); - - width = parseInt(width, 10) || 0; - height = parseInt(height, 10) || 0; - - var str; - switch (type){ - case 'image': - str = '' - break; - case 'embed': - str = ''; - break; - case 'video': - var ext = url.substr(url.lastIndexOf('.') + 1); - if(ext == 'ogv') ext = 'ogg'; - str = '' + - ''; - break; - } - return str; - } - - function switchImgAndVideo(root,img2video){ - utils.each(root.getNodesByTagName(img2video ? 'img' : 'embed video'),function(node){ - var className = node.getAttr('class'); - if(className && className.indexOf('edui-faked-video') != -1){ - var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'embed':'image'); - node.parentNode.replaceChild(UE.uNode.createElement(html),node); - } - if(className && className.indexOf('edui-upload-video') != -1){ - var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'video':'image'); - node.parentNode.replaceChild(UE.uNode.createElement(html),node); - } - }) - } - - me.addOutputRule(function(root){ - switchImgAndVideo(root,true) - }); - me.addInputRule(function(root){ - switchImgAndVideo(root) - }); - - /** - * 插入视频 - * @command insertvideo - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } videoAttr 键值对对象, 描述一个视频的所有属性 - * @example - * ```javascript - * - * var videoAttr = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * }; - * - * //editor 是编辑器实例 - * //向编辑器插入单个视频 - * editor.execCommand( 'insertvideo', videoAttr ); - * ``` - */ - - /** - * 插入视频 - * @command insertvideo - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Array } videoArr 需要插入的视频的数组, 其中的每一个元素都是一个键值对对象, 描述了一个视频的所有属性 - * @example - * ```javascript - * - * var videoAttr1 = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * }, - * videoAttr2 = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * } - * - * //editor 是编辑器实例 - * //该方法将会向编辑器内插入两个视频 - * editor.execCommand( 'insertvideo', [ videoAttr1, videoAttr2 ] ); - * ``` - */ - - /** - * 查询当前光标所在处是否是一个视频 - * @command insertvideo - * @method queryCommandState - * @param { String } cmd 需要查询的命令字符串 - * @return { int } 如果当前光标所在处的元素是一个视频对象, 则返回1,否则返回0 - * @example - * ```javascript - * - * //editor 是编辑器实例 - * editor.queryCommandState( 'insertvideo' ); - * ``` - */ - me.commands["insertvideo"] = { - execCommand: function (cmd, videoObjs, type){ - videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs]; - var html = [],id = 'tmpVedio', cl; - for(var i=0,vi,len = videoObjs.length;i 0) { - return 0; - } - for (var i in dtd.$isNotEmpty) if (dtd.$isNotEmpty.hasOwnProperty(i)) { - if (node.getElementsByTagName(i).length) { - return 0; - } - } - return 1; - }; - UETable.getWidth = function (cell) { - if (!cell)return 0; - return parseInt(domUtils.getComputedStyle(cell, "width"), 10); - }; - - /** - * 获取单元格或者单元格组的“对齐”状态。 如果当前的检测对象是一个单元格组, 只有在满足所有单元格的 水平和竖直 对齐属性都相同的 - * 条件时才会返回其状态值,否则将返回null; 如果当前只检测了一个单元格, 则直接返回当前单元格的对齐状态; - * @param table cell or table cells , 支持单个单元格dom对象 或者 单元格dom对象数组 - * @return { align: 'left' || 'right' || 'center', valign: 'top' || 'middle' || 'bottom' } 或者 null - */ - UETable.getTableCellAlignState = function ( cells ) { - - !utils.isArray( cells ) && ( cells = [cells] ); - - var result = {}, - status = ['align', 'valign'], - tempStatus = null, - isSame = true;//状态是否相同 - - utils.each( cells, function( cellNode ){ - - utils.each( status, function( currentState ){ - - tempStatus = cellNode.getAttribute( currentState ); - - if( !result[ currentState ] && tempStatus ) { - result[ currentState ] = tempStatus; - } else if( !result[ currentState ] || ( tempStatus !== result[ currentState ] ) ) { - isSame = false; - return false; - } - - } ); - - return isSame; - - }); - - return isSame ? result : null; - - }; - - /** - * 根据当前选区获取相关的table信息 - * @return {Object} - */ - UETable.getTableItemsByRange = function (editor) { - var start = editor.selection.getStart(); - - //ff下会选中bookmark - if( start && start.id && start.id.indexOf('_baidu_bookmark_start_') === 0 && start.nextSibling) { - start = start.nextSibling; - } - - //在table或者td边缘有可能存在选中tr的情况 - var cell = start && domUtils.findParentByTagName(start, ["td", "th"], true), - tr = cell && cell.parentNode, - caption = start && domUtils.findParentByTagName(start, 'caption', true), - table = caption ? caption.parentNode : tr && tr.parentNode.parentNode; - - return { - cell:cell, - tr:tr, - table:table, - caption:caption - } - }; - UETable.getUETableBySelected = function (editor) { - var table = UETable.getTableItemsByRange(editor).table; - if (table && table.ueTable && table.ueTable.selectedTds.length) { - return table.ueTable; - } - return null; - }; - - UETable.getDefaultValue = function (editor, table) { - var borderMap = { - thin:'0px', - medium:'1px', - thick:'2px' - }, - tableBorder, tdPadding, tdBorder, tmpValue; - if (!table) { - table = editor.document.createElement('table'); - table.insertRow(0).insertCell(0).innerHTML = 'xxx'; - editor.body.appendChild(table); - var td = table.getElementsByTagName('td')[0]; - tmpValue = domUtils.getComputedStyle(table, 'border-left-width'); - tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'padding-left'); - tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'border-left-width'); - tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - domUtils.remove(table); - return { - tableBorder:tableBorder, - tdPadding:tdPadding, - tdBorder:tdBorder - }; - } else { - td = table.getElementsByTagName('td')[0]; - tmpValue = domUtils.getComputedStyle(table, 'border-left-width'); - tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'padding-left'); - tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'border-left-width'); - tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - return { - tableBorder:tableBorder, - tdPadding:tdPadding, - tdBorder:tdBorder - }; - } - }; - /** - * 根据当前点击的td或者table获取索引对象 - * @param tdOrTable - */ - UETable.getUETable = function (tdOrTable) { - var tag = tdOrTable.tagName.toLowerCase(); - tdOrTable = (tag == "td" || tag == "th" || tag == 'caption') ? domUtils.findParentByTagName(tdOrTable, "table", true) : tdOrTable; - if (!tdOrTable.ueTable) { - tdOrTable.ueTable = new UETable(tdOrTable); - } - return tdOrTable.ueTable; - }; - - UETable.cloneCell = function(cell,ignoreMerge,keepPro){ - if (!cell || utils.isString(cell)) { - return this.table.ownerDocument.createElement(cell || 'td'); - } - var flag = domUtils.hasClass(cell, "selectTdClass"); - flag && domUtils.removeClasses(cell, "selectTdClass"); - var tmpCell = cell.cloneNode(true); - if (ignoreMerge) { - tmpCell.rowSpan = tmpCell.colSpan = 1; - } - //去掉宽高 - !keepPro && domUtils.removeAttributes(tmpCell,'width height'); - !keepPro && domUtils.removeAttributes(tmpCell,'style'); - - tmpCell.style.borderLeftStyle = ""; - tmpCell.style.borderTopStyle = ""; - tmpCell.style.borderLeftColor = cell.style.borderRightColor; - tmpCell.style.borderLeftWidth = cell.style.borderRightWidth; - tmpCell.style.borderTopColor = cell.style.borderBottomColor; - tmpCell.style.borderTopWidth = cell.style.borderBottomWidth; - flag && domUtils.addClass(cell, "selectTdClass"); - return tmpCell; - } - - UETable.prototype = { - getMaxRows:function () { - var rows = this.table.rows, maxLen = 1; - for (var i = 0, row; row = rows[i]; i++) { - var currentMax = 1; - for (var j = 0, cj; cj = row.cells[j++];) { - currentMax = Math.max(cj.rowSpan || 1, currentMax); - } - maxLen = Math.max(currentMax + i, maxLen); - } - return maxLen; - }, - /** - * 获取当前表格的最大列数 - */ - getMaxCols:function () { - var rows = this.table.rows, maxLen = 0, cellRows = {}; - for (var i = 0, row; row = rows[i]; i++) { - var cellsNum = 0; - for (var j = 0, cj; cj = row.cells[j++];) { - cellsNum += (cj.colSpan || 1); - if (cj.rowSpan && cj.rowSpan > 1) { - for (var k = 1; k < cj.rowSpan; k++) { - if (!cellRows['row_' + (i + k)]) { - cellRows['row_' + (i + k)] = (cj.colSpan || 1); - } else { - cellRows['row_' + (i + k)]++ - } - } - - } - } - cellsNum += cellRows['row_' + i] || 0; - maxLen = Math.max(cellsNum, maxLen); - } - return maxLen; - }, - getCellColIndex:function (cell) { - - }, - /** - * 获取当前cell旁边的单元格, - * @param cell - * @param right - */ - getHSideCell:function (cell, right) { - try { - var cellInfo = this.getCellInfo(cell), - previewRowIndex, previewColIndex; - var len = this.selectedTds.length, - range = this.cellsRange; - //首行或者首列没有前置单元格 - if ((!right && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (right && (!len ? (cellInfo.colIndex == (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null; - - previewRowIndex = !len ? cellInfo.rowIndex : range.beginRowIndex; - previewColIndex = !right ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1) - : ( !len ? cellInfo.colIndex + 1 : range.endColIndex + 1); - return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - getTabNextCell:function (cell, preRowIndex) { - var cellInfo = this.getCellInfo(cell), - rowIndex = preRowIndex || cellInfo.rowIndex, - colIndex = cellInfo.colIndex + 1 + (cellInfo.colSpan - 1), - nextCell; - try { - nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); - } catch (e) { - try { - rowIndex = rowIndex * 1 + 1; - colIndex = 0; - nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); - } catch (e) { - } - } - return nextCell; - - }, - /** - * 获取视觉上的后置单元格 - * @param cell - * @param bottom - */ - getVSideCell:function (cell, bottom, ignoreRange) { - try { - var cellInfo = this.getCellInfo(cell), - nextRowIndex, nextColIndex; - var len = this.selectedTds.length && !ignoreRange, - range = this.cellsRange; - //末行或者末列没有后置单元格 - if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null; - - nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) - : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1); - nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex; - return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - /** - * 获取相同结束位置的单元格,xOrY指代了是获取x轴相同还是y轴相同 - */ - getSameEndPosCells:function (cell, xOrY) { - try { - var flag = (xOrY.toLowerCase() === "x"), - end = domUtils.getXY(cell)[flag ? 'x' : 'y'] + cell["offset" + (flag ? 'Width' : 'Height')], - rows = this.table.rows, - cells = null, returns = []; - for (var i = 0; i < this.rowsNum; i++) { - cells = rows[i].cells; - for (var j = 0, tmpCell; tmpCell = cells[j++];) { - var tmpEnd = domUtils.getXY(tmpCell)[flag ? 'x' : 'y'] + tmpCell["offset" + (flag ? 'Width' : 'Height')]; - //对应行的td已经被上面行rowSpan了 - if (tmpEnd > end && flag) break; - if (cell == tmpCell || end == tmpEnd) { - //只获取单一的单元格 - //todo 仅获取单一单元格在特定情况下会造成returns为空,从而影响后续的拖拽实现,修正这个。需考虑性能 - if (tmpCell[flag ? "colSpan" : "rowSpan"] == 1) { - returns.push(tmpCell); - } - if (flag) break; - } - } - } - return returns; - } catch (e) { - showError(e); - } - }, - setCellContent:function (cell, content) { - cell.innerHTML = content || (browser.ie ? domUtils.fillChar : "
    "); - }, - cloneCell:UETable.cloneCell, - /** - * 获取跟当前单元格的右边竖线为左边的所有未合并单元格 - */ - getSameStartPosXCells:function (cell) { - try { - var start = domUtils.getXY(cell).x + cell.offsetWidth, - rows = this.table.rows, cells , returns = []; - for (var i = 0; i < this.rowsNum; i++) { - cells = rows[i].cells; - for (var j = 0, tmpCell; tmpCell = cells[j++];) { - var tmpStart = domUtils.getXY(tmpCell).x; - if (tmpStart > start) break; - if (tmpStart == start && tmpCell.colSpan == 1) { - returns.push(tmpCell); - break; - } - } - } - return returns; - } catch (e) { - showError(e); - } - }, - /** - * 更新table对应的索引表 - */ - update:function (table) { - this.table = table || this.table; - this.selectedTds = []; - this.cellsRange = {}; - this.indexTable = []; - var rows = this.table.rows, - rowsNum = this.getMaxRows(), - dNum = rowsNum - rows.length, - colsNum = this.getMaxCols(); - while (dNum--) { - this.table.insertRow(rows.length); - } - this.rowsNum = rowsNum; - this.colsNum = colsNum; - for (var i = 0, len = rows.length; i < len; i++) { - this.indexTable[i] = new Array(colsNum); - } - //填充索引表 - for (var rowIndex = 0, row; row = rows[rowIndex]; rowIndex++) { - for (var cellIndex = 0, cell, cells = row.cells; cell = cells[cellIndex]; cellIndex++) { - //修正整行被rowSpan时导致的行数计算错误 - if (cell.rowSpan > rowsNum) { - cell.rowSpan = rowsNum; - } - var colIndex = cellIndex, - rowSpan = cell.rowSpan || 1, - colSpan = cell.colSpan || 1; - //当已经被上一行rowSpan或者被前一列colSpan了,则跳到下一个单元格进行 - while (this.indexTable[rowIndex][colIndex]) colIndex++; - for (var j = 0; j < rowSpan; j++) { - for (var k = 0; k < colSpan; k++) { - this.indexTable[rowIndex + j][colIndex + k] = { - rowIndex:rowIndex, - cellIndex:cellIndex, - colIndex:colIndex, - rowSpan:rowSpan, - colSpan:colSpan - } - } - } - } - } - //修复残缺td - for (j = 0; j < rowsNum; j++) { - for (k = 0; k < colsNum; k++) { - if (this.indexTable[j][k] === undefined) { - row = rows[j]; - cell = row.cells[row.cells.length - 1]; - cell = cell ? cell.cloneNode(true) : this.table.ownerDocument.createElement("td"); - this.setCellContent(cell); - if (cell.colSpan !== 1)cell.colSpan = 1; - if (cell.rowSpan !== 1)cell.rowSpan = 1; - row.appendChild(cell); - this.indexTable[j][k] = { - rowIndex:j, - cellIndex:cell.cellIndex, - colIndex:k, - rowSpan:1, - colSpan:1 - } - } - } - } - //当框选后删除行或者列后撤销,需要重建选区。 - var tds = domUtils.getElementsByTagName(this.table, "td"), - selectTds = []; - utils.each(tds, function (td) { - if (domUtils.hasClass(td, "selectTdClass")) { - selectTds.push(td); - } - }); - if (selectTds.length) { - var start = selectTds[0], - end = selectTds[selectTds.length - 1], - startInfo = this.getCellInfo(start), - endInfo = this.getCellInfo(end); - this.selectedTds = selectTds; - this.cellsRange = { - beginRowIndex:startInfo.rowIndex, - beginColIndex:startInfo.colIndex, - endRowIndex:endInfo.rowIndex + endInfo.rowSpan - 1, - endColIndex:endInfo.colIndex + endInfo.colSpan - 1 - }; - } - //给第一行设置firstRow的样式名称,在排序图标的样式上使用到 - if(!domUtils.hasClass(this.table.rows[0], "firstRow")) { - domUtils.addClass(this.table.rows[0], "firstRow"); - for(var i = 1; i< this.table.rows.length; i++) { - domUtils.removeClasses(this.table.rows[i], "firstRow"); - } - } - }, - /** - * 获取单元格的索引信息 - */ - getCellInfo:function (cell) { - if (!cell) return; - var cellIndex = cell.cellIndex, - rowIndex = cell.parentNode.rowIndex, - rowInfo = this.indexTable[rowIndex], - numCols = this.colsNum; - for (var colIndex = cellIndex; colIndex < numCols; colIndex++) { - var cellInfo = rowInfo[colIndex]; - if (cellInfo.rowIndex === rowIndex && cellInfo.cellIndex === cellIndex) { - return cellInfo; - } - } - }, - /** - * 根据行列号获取单元格 - */ - getCell:function (rowIndex, cellIndex) { - return rowIndex < this.rowsNum && this.table.rows[rowIndex].cells[cellIndex] || null; - }, - /** - * 删除单元格 - */ - deleteCell:function (cell, rowIndex) { - rowIndex = typeof rowIndex == 'number' ? rowIndex : cell.parentNode.rowIndex; - var row = this.table.rows[rowIndex]; - row.deleteCell(cell.cellIndex); - }, - /** - * 根据始末两个单元格获取被框选的所有单元格范围 - */ - getCellsRange:function (cellA, cellB) { - function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex) { - var tmpBeginRowIndex = beginRowIndex, - tmpBeginColIndex = beginColIndex, - tmpEndRowIndex = endRowIndex, - tmpEndColIndex = endColIndex, - cellInfo, colIndex, rowIndex; - // 通过indexTable检查是否存在超出TableRange上边界的情况 - if (beginRowIndex > 0) { - for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) { - cellInfo = me.indexTable[beginRowIndex][colIndex]; - rowIndex = cellInfo.rowIndex; - if (rowIndex < beginRowIndex) { - tmpBeginRowIndex = Math.min(rowIndex, tmpBeginRowIndex); - } - } - } - // 通过indexTable检查是否存在超出TableRange右边界的情况 - if (endColIndex < me.colsNum) { - for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) { - cellInfo = me.indexTable[rowIndex][endColIndex]; - colIndex = cellInfo.colIndex + cellInfo.colSpan - 1; - if (colIndex > endColIndex) { - tmpEndColIndex = Math.max(colIndex, tmpEndColIndex); - } - } - } - // 检查是否有超出TableRange下边界的情况 - if (endRowIndex < me.rowsNum) { - for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) { - cellInfo = me.indexTable[endRowIndex][colIndex]; - rowIndex = cellInfo.rowIndex + cellInfo.rowSpan - 1; - if (rowIndex > endRowIndex) { - tmpEndRowIndex = Math.max(rowIndex, tmpEndRowIndex); - } - } - } - // 检查是否有超出TableRange左边界的情况 - if (beginColIndex > 0) { - for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) { - cellInfo = me.indexTable[rowIndex][beginColIndex]; - colIndex = cellInfo.colIndex; - if (colIndex < beginColIndex) { - tmpBeginColIndex = Math.min(cellInfo.colIndex, tmpBeginColIndex); - } - } - } - //递归调用直至所有完成所有框选单元格的扩展 - if (tmpBeginRowIndex != beginRowIndex || tmpBeginColIndex != beginColIndex || tmpEndRowIndex != endRowIndex || tmpEndColIndex != endColIndex) { - return checkRange(tmpBeginRowIndex, tmpBeginColIndex, tmpEndRowIndex, tmpEndColIndex); - } else { - // 不需要扩展TableRange的情况 - return { - beginRowIndex:beginRowIndex, - beginColIndex:beginColIndex, - endRowIndex:endRowIndex, - endColIndex:endColIndex - }; - } - } - - try { - var me = this, - cellAInfo = me.getCellInfo(cellA); - if (cellA === cellB) { - return { - beginRowIndex:cellAInfo.rowIndex, - beginColIndex:cellAInfo.colIndex, - endRowIndex:cellAInfo.rowIndex + cellAInfo.rowSpan - 1, - endColIndex:cellAInfo.colIndex + cellAInfo.colSpan - 1 - }; - } - var cellBInfo = me.getCellInfo(cellB); - // 计算TableRange的四个边 - var beginRowIndex = Math.min(cellAInfo.rowIndex, cellBInfo.rowIndex), - beginColIndex = Math.min(cellAInfo.colIndex, cellBInfo.colIndex), - endRowIndex = Math.max(cellAInfo.rowIndex + cellAInfo.rowSpan - 1, cellBInfo.rowIndex + cellBInfo.rowSpan - 1), - endColIndex = Math.max(cellAInfo.colIndex + cellAInfo.colSpan - 1, cellBInfo.colIndex + cellBInfo.colSpan - 1); - - return checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex); - } catch (e) { - //throw e; - } - }, - /** - * 依据cellsRange获取对应的单元格集合 - */ - getCells:function (range) { - //每次获取cells之前必须先清除上次的选择,否则会对后续获取操作造成影响 - this.clearSelected(); - var beginRowIndex = range.beginRowIndex, - beginColIndex = range.beginColIndex, - endRowIndex = range.endRowIndex, - endColIndex = range.endColIndex, - cellInfo, rowIndex, colIndex, tdHash = {}, returnTds = []; - for (var i = beginRowIndex; i <= endRowIndex; i++) { - for (var j = beginColIndex; j <= endColIndex; j++) { - cellInfo = this.indexTable[i][j]; - rowIndex = cellInfo.rowIndex; - colIndex = cellInfo.colIndex; - // 如果Cells里已经包含了此Cell则跳过 - var key = rowIndex + '|' + colIndex; - if (tdHash[key]) continue; - tdHash[key] = 1; - if (rowIndex < i || colIndex < j || rowIndex + cellInfo.rowSpan - 1 > endRowIndex || colIndex + cellInfo.colSpan - 1 > endColIndex) { - return null; - } - returnTds.push(this.getCell(rowIndex, cellInfo.cellIndex)); - } - } - return returnTds; - }, - /** - * 清理已经选中的单元格 - */ - clearSelected:function () { - UETable.removeSelectedClass(this.selectedTds); - this.selectedTds = []; - this.cellsRange = {}; - }, - /** - * 根据range设置已经选中的单元格 - */ - setSelected:function (range) { - var cells = this.getCells(range); - UETable.addSelectedClass(cells); - this.selectedTds = cells; - this.cellsRange = range; - }, - isFullRow:function () { - var range = this.cellsRange; - return (range.endColIndex - range.beginColIndex + 1) == this.colsNum; - }, - isFullCol:function () { - var range = this.cellsRange, - table = this.table, - ths = table.getElementsByTagName("th"), - rows = range.endRowIndex - range.beginRowIndex + 1; - return !ths.length ? rows == this.rowsNum : rows == this.rowsNum || (rows == this.rowsNum - 1); - - }, - /** - * 获取视觉上的前置单元格,默认是左边,top传入时 - * @param cell - * @param top - */ - getNextCell:function (cell, bottom, ignoreRange) { - try { - var cellInfo = this.getCellInfo(cell), - nextRowIndex, nextColIndex; - var len = this.selectedTds.length && !ignoreRange, - range = this.cellsRange; - //末行或者末列没有后置单元格 - if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null; - - nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) - : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1); - nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex; - return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - getPreviewCell:function (cell, top) { - try { - var cellInfo = this.getCellInfo(cell), - previewRowIndex, previewColIndex; - var len = this.selectedTds.length, - range = this.cellsRange; - //首行或者首列没有前置单元格 - if ((!top && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (top && (!len ? (cellInfo.rowIndex > (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null; - - previewRowIndex = !top ? ( !len ? cellInfo.rowIndex : range.beginRowIndex ) - : ( !len ? (cellInfo.rowIndex < 1 ? 0 : (cellInfo.rowIndex - 1)) : range.beginRowIndex); - previewColIndex = !top ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1) - : ( !len ? cellInfo.colIndex : range.endColIndex + 1); - return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - /** - * 移动单元格中的内容 - */ - moveContent:function (cellTo, cellFrom) { - if (UETable.isEmptyBlock(cellFrom)) return; - if (UETable.isEmptyBlock(cellTo)) { - cellTo.innerHTML = cellFrom.innerHTML; - return; - } - var child = cellTo.lastChild; - if (child.nodeType == 3 || !dtd.$block[child.tagName]) { - cellTo.appendChild(cellTo.ownerDocument.createElement('br')) - } - while (child = cellFrom.firstChild) { - cellTo.appendChild(child); - } - }, - /** - * 向右合并单元格 - */ - mergeRight:function (cell) { - var cellInfo = this.getCellInfo(cell), - rightColIndex = cellInfo.colIndex + cellInfo.colSpan, - rightCellInfo = this.indexTable[cellInfo.rowIndex][rightColIndex], - rightCell = this.getCell(rightCellInfo.rowIndex, rightCellInfo.cellIndex); - //合并 - cell.colSpan = cellInfo.colSpan + rightCellInfo.colSpan; - //被合并的单元格不应存在宽度属性 - cell.removeAttribute("width"); - //移动内容 - this.moveContent(cell, rightCell); - //删掉被合并的Cell - this.deleteCell(rightCell, rightCellInfo.rowIndex); - this.update(); - }, - /** - * 向下合并单元格 - */ - mergeDown:function (cell) { - var cellInfo = this.getCellInfo(cell), - downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan, - downCellInfo = this.indexTable[downRowIndex][cellInfo.colIndex], - downCell = this.getCell(downCellInfo.rowIndex, downCellInfo.cellIndex); - cell.rowSpan = cellInfo.rowSpan + downCellInfo.rowSpan; - cell.removeAttribute("height"); - this.moveContent(cell, downCell); - this.deleteCell(downCell, downCellInfo.rowIndex); - this.update(); - }, - /** - * 合并整个range中的内容 - */ - mergeRange:function () { - //由于合并操作可以在任意时刻进行,所以无法通过鼠标位置等信息实时生成range,只能通过缓存实例中的cellsRange对象来访问 - var range = this.cellsRange, - leftTopCell = this.getCell(range.beginRowIndex, this.indexTable[range.beginRowIndex][range.beginColIndex].cellIndex); - - if (leftTopCell.tagName == "TH" && range.endRowIndex !== range.beginRowIndex) { - var index = this.indexTable, - info = this.getCellInfo(leftTopCell); - leftTopCell = this.getCell(1, index[1][info.colIndex].cellIndex); - range = this.getCellsRange(leftTopCell, this.getCell(index[this.rowsNum - 1][info.colIndex].rowIndex, index[this.rowsNum - 1][info.colIndex].cellIndex)); - } - - // 删除剩余的Cells - var cells = this.getCells(range); - for(var i= 0,ci;ci=cells[i++];){ - if (ci !== leftTopCell) { - this.moveContent(leftTopCell, ci); - this.deleteCell(ci); - } - } - // 修改左上角Cell的rowSpan和colSpan,并调整宽度属性设置 - leftTopCell.rowSpan = range.endRowIndex - range.beginRowIndex + 1; - leftTopCell.rowSpan > 1 && leftTopCell.removeAttribute("height"); - leftTopCell.colSpan = range.endColIndex - range.beginColIndex + 1; - leftTopCell.colSpan > 1 && leftTopCell.removeAttribute("width"); - if (leftTopCell.rowSpan == this.rowsNum && leftTopCell.colSpan != 1) { - leftTopCell.colSpan = 1; - } - - if (leftTopCell.colSpan == this.colsNum && leftTopCell.rowSpan != 1) { - var rowIndex = leftTopCell.parentNode.rowIndex; - //解决IE下的表格操作问题 - if( this.table.deleteRow ) { - for (var i = rowIndex+ 1, curIndex=rowIndex+ 1, len=leftTopCell.rowSpan; i < len; i++) { - this.table.deleteRow(curIndex); - } - } else { - for (var i = 0, len=leftTopCell.rowSpan - 1; i < len; i++) { - var row = this.table.rows[rowIndex + 1]; - row.parentNode.removeChild(row); - } - } - leftTopCell.rowSpan = 1; - } - this.update(); - }, - /** - * 插入一行单元格 - */ - insertRow:function (rowIndex, sourceCell) { - var numCols = this.colsNum, - table = this.table, - row = table.insertRow(rowIndex), cell, - isInsertTitle = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH'; - - function replaceTdToTh(colIndex, cell, tableRow) { - if (colIndex == 0) { - var tr = tableRow.nextSibling || tableRow.previousSibling, - th = tr.cells[colIndex]; - if (th.tagName == 'TH') { - th = cell.ownerDocument.createElement("th"); - th.appendChild(cell.firstChild); - tableRow.insertBefore(th, cell); - domUtils.remove(cell) - } - }else{ - if (cell.tagName == 'TH') { - var td = cell.ownerDocument.createElement("td"); - td.appendChild(cell.firstChild); - tableRow.insertBefore(td, cell); - domUtils.remove(cell) - } - } - } - - //首行直接插入,无需考虑部分单元格被rowspan的情况 - if (rowIndex == 0 || rowIndex == this.rowsNum) { - for (var colIndex = 0; colIndex < numCols; colIndex++) { - cell = this.cloneCell(sourceCell, true); - this.setCellContent(cell); - cell.getAttribute('vAlign') && cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - row.appendChild(cell); - if(!isInsertTitle) replaceTdToTh(colIndex, cell, row); - } - } else { - var infoRow = this.indexTable[rowIndex], - cellIndex = 0; - for (colIndex = 0; colIndex < numCols; colIndex++) { - var cellInfo = infoRow[colIndex]; - //如果存在某个单元格的rowspan穿过待插入行的位置,则修改该单元格的rowspan即可,无需插入单元格 - if (cellInfo.rowIndex < rowIndex) { - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - cell.rowSpan = cellInfo.rowSpan + 1; - } else { - cell = this.cloneCell(sourceCell, true); - this.setCellContent(cell); - row.appendChild(cell); - } - if(!isInsertTitle) replaceTdToTh(colIndex, cell, row); - } - } - //框选时插入不触发contentchange,需要手动更新索引。 - this.update(); - return row; - }, - /** - * 删除一行单元格 - * @param rowIndex - */ - deleteRow:function (rowIndex) { - var row = this.table.rows[rowIndex], - infoRow = this.indexTable[rowIndex], - colsNum = this.colsNum, - count = 0; //处理计数 - for (var colIndex = 0; colIndex < colsNum;) { - var cellInfo = infoRow[colIndex], - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - if (cell.rowSpan > 1) { - if (cellInfo.rowIndex == rowIndex) { - var clone = cell.cloneNode(true); - clone.rowSpan = cell.rowSpan - 1; - clone.innerHTML = ""; - cell.rowSpan = 1; - var nextRowIndex = rowIndex + 1, - nextRow = this.table.rows[nextRowIndex], - insertCellIndex, - preMerged = this.getPreviewMergedCellsNum(nextRowIndex, colIndex) - count; - if (preMerged < colIndex) { - insertCellIndex = colIndex - preMerged - 1; - //nextRow.insertCell(insertCellIndex); - domUtils.insertAfter(nextRow.cells[insertCellIndex], clone); - } else { - if (nextRow.cells.length) nextRow.insertBefore(clone, nextRow.cells[0]) - } - count += 1; - //cell.parentNode.removeChild(cell); - } - } - colIndex += cell.colSpan || 1; - } - var deleteTds = [], cacheMap = {}; - for (colIndex = 0; colIndex < colsNum; colIndex++) { - var tmpRowIndex = infoRow[colIndex].rowIndex, - tmpCellIndex = infoRow[colIndex].cellIndex, - key = tmpRowIndex + "_" + tmpCellIndex; - if (cacheMap[key])continue; - cacheMap[key] = 1; - cell = this.getCell(tmpRowIndex, tmpCellIndex); - deleteTds.push(cell); - } - var mergeTds = []; - utils.each(deleteTds, function (td) { - if (td.rowSpan == 1) { - td.parentNode.removeChild(td); - } else { - mergeTds.push(td); - } - }); - utils.each(mergeTds, function (td) { - td.rowSpan--; - }); - row.parentNode.removeChild(row); - //浏览器方法本身存在bug,采用自定义方法删除 - //this.table.deleteRow(rowIndex); - this.update(); - }, - insertCol:function (colIndex, sourceCell, defaultValue) { - var rowsNum = this.rowsNum, - rowIndex = 0, - tableRow, cell, - backWidth = parseInt((this.table.offsetWidth - (this.colsNum + 1) * 20 - (this.colsNum + 1)) / (this.colsNum + 1), 10), - isInsertTitleCol = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH'; - - function replaceTdToTh(rowIndex, cell, tableRow) { - if (rowIndex == 0) { - var th = cell.nextSibling || cell.previousSibling; - if (th.tagName == 'TH') { - th = cell.ownerDocument.createElement("th"); - th.appendChild(cell.firstChild); - tableRow.insertBefore(th, cell); - domUtils.remove(cell) - } - }else{ - if (cell.tagName == 'TH') { - var td = cell.ownerDocument.createElement("td"); - td.appendChild(cell.firstChild); - tableRow.insertBefore(td, cell); - domUtils.remove(cell) - } - } - } - - var preCell; - if (colIndex == 0 || colIndex == this.colsNum) { - for (; rowIndex < rowsNum; rowIndex++) { - tableRow = this.table.rows[rowIndex]; - preCell = tableRow.cells[colIndex == 0 ? colIndex : tableRow.cells.length]; - cell = this.cloneCell(sourceCell, true); //tableRow.insertCell(colIndex == 0 ? colIndex : tableRow.cells.length); - this.setCellContent(cell); - cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - preCell && cell.setAttribute('width', preCell.getAttribute('width')); - if (!colIndex) { - tableRow.insertBefore(cell, tableRow.cells[0]); - } else { - domUtils.insertAfter(tableRow.cells[tableRow.cells.length - 1], cell); - } - if(!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow) - } - } else { - for (; rowIndex < rowsNum; rowIndex++) { - var cellInfo = this.indexTable[rowIndex][colIndex]; - if (cellInfo.colIndex < colIndex) { - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - cell.colSpan = cellInfo.colSpan + 1; - } else { - tableRow = this.table.rows[rowIndex]; - preCell = tableRow.cells[cellInfo.cellIndex]; - - cell = this.cloneCell(sourceCell, true);//tableRow.insertCell(cellInfo.cellIndex); - this.setCellContent(cell); - cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - preCell && cell.setAttribute('width', preCell.getAttribute('width')); - //防止IE下报错 - preCell ? tableRow.insertBefore(cell, preCell) : tableRow.appendChild(cell); - } - if(!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow); - } - } - //框选时插入不触发contentchange,需要手动更新索引 - this.update(); - this.updateWidth(backWidth, defaultValue || {tdPadding:10, tdBorder:1}); - }, - updateWidth:function (width, defaultValue) { - var table = this.table, - tmpWidth = UETable.getWidth(table) - defaultValue.tdPadding * 2 - defaultValue.tdBorder + width; - if (tmpWidth < table.ownerDocument.body.offsetWidth) { - table.setAttribute("width", tmpWidth); - return; - } - var tds = domUtils.getElementsByTagName(this.table, "td th"); - utils.each(tds, function (td) { - td.setAttribute("width", width); - }) - }, - deleteCol:function (colIndex) { - var indexTable = this.indexTable, - tableRows = this.table.rows, - backTableWidth = this.table.getAttribute("width"), - backTdWidth = 0, - rowsNum = this.rowsNum, - cacheMap = {}; - for (var rowIndex = 0; rowIndex < rowsNum;) { - var infoRow = indexTable[rowIndex], - cellInfo = infoRow[colIndex], - key = cellInfo.rowIndex + '_' + cellInfo.colIndex; - // 跳过已经处理过的Cell - if (cacheMap[key])continue; - cacheMap[key] = 1; - var cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - if (!backTdWidth) backTdWidth = cell && parseInt(cell.offsetWidth / cell.colSpan, 10).toFixed(0); - // 如果Cell的colSpan大于1, 就修改colSpan, 否则就删掉这个Cell - if (cell.colSpan > 1) { - cell.colSpan--; - } else { - tableRows[rowIndex].deleteCell(cellInfo.cellIndex); - } - rowIndex += cellInfo.rowSpan || 1; - } - this.table.setAttribute("width", backTableWidth - backTdWidth); - this.update(); - }, - splitToCells:function (cell) { - var me = this, - cells = this.splitToRows(cell); - utils.each(cells, function (cell) { - me.splitToCols(cell); - }) - }, - splitToRows:function (cell) { - var cellInfo = this.getCellInfo(cell), - rowIndex = cellInfo.rowIndex, - colIndex = cellInfo.colIndex, - results = []; - // 修改Cell的rowSpan - cell.rowSpan = 1; - results.push(cell); - // 补齐单元格 - for (var i = rowIndex, endRow = rowIndex + cellInfo.rowSpan; i < endRow; i++) { - if (i == rowIndex)continue; - var tableRow = this.table.rows[i], - tmpCell = tableRow.insertCell(colIndex - this.getPreviewMergedCellsNum(i, colIndex)); - tmpCell.colSpan = cellInfo.colSpan; - this.setCellContent(tmpCell); - tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign')); - tmpCell.setAttribute('align', cell.getAttribute('align')); - if (cell.style.cssText) { - tmpCell.style.cssText = cell.style.cssText; - } - results.push(tmpCell); - } - this.update(); - return results; - }, - getPreviewMergedCellsNum:function (rowIndex, colIndex) { - var indexRow = this.indexTable[rowIndex], - num = 0; - for (var i = 0; i < colIndex;) { - var colSpan = indexRow[i].colSpan, - tmpRowIndex = indexRow[i].rowIndex; - num += (colSpan - (tmpRowIndex == rowIndex ? 1 : 0)); - i += colSpan; - } - return num; - }, - splitToCols:function (cell) { - var backWidth = (cell.offsetWidth / cell.colSpan - 22).toFixed(0), - - cellInfo = this.getCellInfo(cell), - rowIndex = cellInfo.rowIndex, - colIndex = cellInfo.colIndex, - results = []; - // 修改Cell的rowSpan - cell.colSpan = 1; - cell.setAttribute("width", backWidth); - results.push(cell); - // 补齐单元格 - for (var j = colIndex, endCol = colIndex + cellInfo.colSpan; j < endCol; j++) { - if (j == colIndex)continue; - var tableRow = this.table.rows[rowIndex], - tmpCell = tableRow.insertCell(this.indexTable[rowIndex][j].cellIndex + 1); - tmpCell.rowSpan = cellInfo.rowSpan; - this.setCellContent(tmpCell); - tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign')); - tmpCell.setAttribute('align', cell.getAttribute('align')); - tmpCell.setAttribute('width', backWidth); - if (cell.style.cssText) { - tmpCell.style.cssText = cell.style.cssText; - } - //处理th的情况 - if (cell.tagName == 'TH') { - var th = cell.ownerDocument.createElement('th'); - th.appendChild(tmpCell.firstChild); - th.setAttribute('vAlign', cell.getAttribute('vAlign')); - th.rowSpan = tmpCell.rowSpan; - tableRow.insertBefore(th, tmpCell); - domUtils.remove(tmpCell); - } - results.push(tmpCell); - } - this.update(); - return results; - }, - isLastCell:function (cell, rowsNum, colsNum) { - rowsNum = rowsNum || this.rowsNum; - colsNum = colsNum || this.colsNum; - var cellInfo = this.getCellInfo(cell); - return ((cellInfo.rowIndex + cellInfo.rowSpan) == rowsNum) && - ((cellInfo.colIndex + cellInfo.colSpan) == colsNum); - }, - getLastCell:function (cells) { - cells = cells || this.table.getElementsByTagName("td"); - var firstInfo = this.getCellInfo(cells[0]); - var me = this, last = cells[0], - tr = last.parentNode, - cellsNum = 0, cols = 0, rows; - utils.each(cells, function (cell) { - if (cell.parentNode == tr)cols += cell.colSpan || 1; - cellsNum += cell.rowSpan * cell.colSpan || 1; - }); - rows = cellsNum / cols; - utils.each(cells, function (cell) { - if (me.isLastCell(cell, rows, cols)) { - last = cell; - return false; - } - }); - return last; - - }, - selectRow:function (rowIndex) { - var indexRow = this.indexTable[rowIndex], - start = this.getCell(indexRow[0].rowIndex, indexRow[0].cellIndex), - end = this.getCell(indexRow[this.colsNum - 1].rowIndex, indexRow[this.colsNum - 1].cellIndex), - range = this.getCellsRange(start, end); - this.setSelected(range); - }, - selectTable:function () { - var tds = this.table.getElementsByTagName("td"), - range = this.getCellsRange(tds[0], tds[tds.length - 1]); - this.setSelected(range); - }, - setBackground:function (cells, value) { - if (typeof value === "string") { - utils.each(cells, function (cell) { - cell.style.backgroundColor = value; - }) - } else if (typeof value === "object") { - value = utils.extend({ - repeat:true, - colorList:["#ddd", "#fff"] - }, value); - var rowIndex = this.getCellInfo(cells[0]).rowIndex, - count = 0, - colors = value.colorList, - getColor = function (list, index, repeat) { - return list[index] ? list[index] : repeat ? list[index % list.length] : ""; - }; - for (var i = 0, cell; cell = cells[i++];) { - var cellInfo = this.getCellInfo(cell); - cell.style.backgroundColor = getColor(colors, ((rowIndex + count) == cellInfo.rowIndex) ? count : ++count, value.repeat); - } - } - }, - removeBackground:function (cells) { - utils.each(cells, function (cell) { - cell.style.backgroundColor = ""; - }) - } - - - }; - function showError(e) { - } -})(); - -// plugins/table.cmds.js -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 13-2-20 - * Time: 下午6:25 - * To change this template use File | Settings | File Templates. - */ -; -(function () { - var UT = UE.UETable, - getTableItemsByRange = function (editor) { - return UT.getTableItemsByRange(editor); - }, - getUETableBySelected = function (editor) { - return UT.getUETableBySelected(editor) - }, - getDefaultValue = function (editor, table) { - return UT.getDefaultValue(editor, table); - }, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }; - - - UE.commands['inserttable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? -1 : 0; - }, - execCommand: function (cmd, opt) { - function createTable(opt, tdWidth) { - var html = [], - rowsNum = opt.numRows, - colsNum = opt.numCols; - for (var r = 0; r < rowsNum; r++) { - html.push(''); - for (var c = 0; c < colsNum; c++) { - html.push('
  • ' + (browser.ie && browser.version < 11 ? domUtils.fillChar : '
    ') + '
    ' + html.join('') + '
    ' - } - - if (!opt) { - opt = utils.extend({}, { - numCols: this.options.defaultCols, - numRows: this.options.defaultRows, - tdvalign: this.options.tdvalign - }) - } - var me = this; - var range = this.selection.getRange(), - start = range.startContainer, - firstParentBlock = domUtils.findParent(start, function (node) { - return domUtils.isBlockElm(node); - }, true) || me.body; - - var defaultValue = getDefaultValue(me), - tableWidth = firstParentBlock.offsetWidth, - tdWidth = Math.floor(tableWidth / opt.numCols - defaultValue.tdPadding * 2 - defaultValue.tdBorder); - - //todo其他属性 - !opt.tdvalign && (opt.tdvalign = me.options.tdvalign); - me.execCommand("inserthtml", createTable(opt, tdWidth)); - } - }; - - UE.commands['insertparagraphbeforetable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).cell ? 0 : -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var p = this.document.createElement("p"); - p.innerHTML = browser.ie ? ' ' : '
    '; - table.parentNode.insertBefore(p, table); - this.selection.getRange().setStart(p, 0).setCursor(); - } - } - }; - - UE.commands['deletetable'] = { - queryCommandState: function () { - var rng = this.selection.getRange(); - return domUtils.findParentByTagName(rng.startContainer, 'table', true) ? 0 : -1; - }, - execCommand: function (cmd, table) { - var rng = this.selection.getRange(); - table = table || domUtils.findParentByTagName(rng.startContainer, 'table', true); - if (table) { - var next = table.nextSibling; - if (!next) { - next = domUtils.createElement(this.document, 'p', { - 'innerHTML': browser.ie ? domUtils.fillChar : '
    ' - }); - table.parentNode.insertBefore(next, table); - } - domUtils.remove(table); - rng = this.selection.getRange(); - if (next.nodeType == 3) { - rng.setStartBefore(next) - } else { - rng.setStart(next, 0) - } - rng.setCursor(false, true) - this.fireEvent("tablehasdeleted") - - } - - } - }; - UE.commands['cellalign'] = { - queryCommandState: function () { - return getSelectedArr(this).length ? 0 : -1 - }, - execCommand: function (cmd, align) { - var selectedTds = getSelectedArr(this); - if (selectedTds.length) { - for (var i = 0, ci; ci = selectedTds[i++];) { - ci.setAttribute('align', align); - } - } - } - }; - UE.commands['cellvalign'] = { - queryCommandState: function () { - return getSelectedArr(this).length ? 0 : -1; - }, - execCommand: function (cmd, valign) { - var selectedTds = getSelectedArr(this); - if (selectedTds.length) { - for (var i = 0, ci; ci = selectedTds[i++];) { - ci.setAttribute('vAlign', valign); - } - } - } - }; - UE.commands['insertcaption'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - return table.getElementsByTagName('caption').length == 0 ? 1 : -1; - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var caption = this.document.createElement('caption'); - caption.innerHTML = browser.ie ? domUtils.fillChar : '
    '; - table.insertBefore(caption, table.firstChild); - var range = this.selection.getRange(); - range.setStart(caption, 0).setCursor(); - } - - } - }; - UE.commands['deletecaption'] = { - queryCommandState: function () { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - return table.getElementsByTagName('caption').length == 0 ? -1 : 1; - } - return -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - domUtils.remove(table.getElementsByTagName('caption')[0]); - var range = this.selection.getRange(); - range.setStart(table.rows[0].cells[0], 0).setCursor(); - } - - } - }; - UE.commands['inserttitle'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var firstRow = table.rows[0]; - return firstRow.cells[firstRow.cells.length-1].tagName.toLowerCase() != 'th' ? 0 : -1 - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - getUETable(table).insertRow(0, 'th'); - } - var th = table.getElementsByTagName('th')[0]; - this.selection.getRange().setStart(th, 0).setCursor(false, true); - } - }; - UE.commands['deletetitle'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var firstRow = table.rows[0]; - return firstRow.cells[firstRow.cells.length-1].tagName.toLowerCase() == 'th' ? 0 : -1 - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - domUtils.remove(table.rows[0]) - } - var td = table.getElementsByTagName('td')[0]; - this.selection.getRange().setStart(td, 0).setCursor(false, true); - } - }; - UE.commands['inserttitlecol'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var lastRow = table.rows[table.rows.length-1]; - return lastRow.getElementsByTagName('th').length ? -1 : 0; - } - return -1; - }, - execCommand: function (cmd) { - var table = getTableItemsByRange(this).table; - if (table) { - getUETable(table).insertCol(0, 'th'); - } - resetTdWidth(table, this); - var th = table.getElementsByTagName('th')[0]; - this.selection.getRange().setStart(th, 0).setCursor(false, true); - } - }; - UE.commands['deletetitlecol'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var lastRow = table.rows[table.rows.length-1]; - return lastRow.getElementsByTagName('th').length ? 0 : -1; - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - for(var i = 0; i< table.rows.length; i++ ){ - domUtils.remove(table.rows[i].children[0]) - } - } - resetTdWidth(table, this); - var td = table.getElementsByTagName('td')[0]; - this.selection.getRange().setStart(td, 0).setCursor(false, true); - } - }; - - UE.commands["mergeright"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table, - cell = tableItems.cell; - - if (!table || !cell) return -1; - var ut = getUETable(table); - if (ut.selectedTds.length) return -1; - - var cellInfo = ut.getCellInfo(cell), - rightColIndex = cellInfo.colIndex + cellInfo.colSpan; - if (rightColIndex >= ut.colsNum) return -1; // 如果处于最右边则不能向右合并 - - var rightCellInfo = ut.indexTable[cellInfo.rowIndex][rightColIndex], - rightCell = table.rows[rightCellInfo.rowIndex].cells[rightCellInfo.cellIndex]; - if (!rightCell || cell.tagName != rightCell.tagName) return -1; // TH和TD不能相互合并 - - // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并 - return (rightCellInfo.rowIndex == cellInfo.rowIndex && rightCellInfo.rowSpan == cellInfo.rowSpan) ? 0 : -1; - }, - execCommand: function (cmd) { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.mergeRight(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["mergedown"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table, - cell = tableItems.cell; - - if (!table || !cell) return -1; - var ut = getUETable(table); - if (ut.selectedTds.length)return -1; - - var cellInfo = ut.getCellInfo(cell), - downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan; - if (downRowIndex >= ut.rowsNum) return -1; // 如果处于最下边则不能向下合并 - - var downCellInfo = ut.indexTable[downRowIndex][cellInfo.colIndex], - downCell = table.rows[downCellInfo.rowIndex].cells[downCellInfo.cellIndex]; - if (!downCell || cell.tagName != downCell.tagName) return -1; // TH和TD不能相互合并 - - // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并 - return (downCellInfo.colIndex == cellInfo.colIndex && downCellInfo.colSpan == cellInfo.colSpan) ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.mergeDown(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["mergecells"] = { - queryCommandState: function () { - return getUETableBySelected(this) ? 0 : -1; - }, - execCommand: function () { - var ut = getUETableBySelected(this); - if (ut && ut.selectedTds.length) { - var cell = ut.selectedTds[0]; - ut.mergeRange(); - var rng = this.selection.getRange(); - if (domUtils.isEmptyBlock(cell)) { - rng.setStart(cell, 0).collapse(true) - } else { - rng.selectNodeContents(cell) - } - rng.select(); - } - - - } - }; - UE.commands["insertrow"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && tableItems.tr !== tableItems.table.rows[0])) && - getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell, - table = tableItems.table, - ut = getUETable(table), - cellInfo = ut.getCellInfo(cell); - //ut.insertRow(!ut.selectedTds.length ? cellInfo.rowIndex:ut.cellsRange.beginRowIndex,''); - if (!ut.selectedTds.length) { - ut.insertRow(cellInfo.rowIndex, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) { - ut.insertRow(range.beginRowIndex, cell); - } - } - rng.moveToBookmark(bk).select(); - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - //后插入行 - UE.commands["insertrownext"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD") && getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell, - table = tableItems.table, - ut = getUETable(table), - cellInfo = ut.getCellInfo(cell); - //ut.insertRow(!ut.selectedTds.length? cellInfo.rowIndex + cellInfo.rowSpan : ut.cellsRange.endRowIndex + 1,''); - if (!ut.selectedTds.length) { - ut.insertRow(cellInfo.rowIndex + cellInfo.rowSpan, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) { - ut.insertRow(range.endRowIndex + 1, cell); - } - } - rng.moveToBookmark(bk).select(); - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - UE.commands["deleterow"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this); - return tableItems.cell ? 0 : -1; - }, - execCommand: function () { - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellsRange = ut.cellsRange, - cellInfo = ut.getCellInfo(cell), - preCell = ut.getVSideCell(cell), - nextCell = ut.getVSideCell(cell, true), - rng = this.selection.getRange(); - if (utils.isEmptyObject(cellsRange)) { - ut.deleteRow(cellInfo.rowIndex); - } else { - for (var i = cellsRange.beginRowIndex; i < cellsRange.endRowIndex + 1; i++) { - ut.deleteRow(cellsRange.beginRowIndex); - } - } - var table = ut.table; - if (!table.getElementsByTagName('td').length) { - var nextSibling = table.nextSibling; - domUtils.remove(table); - if (nextSibling) { - rng.setStart(nextSibling, 0).setCursor(false, true); - } - } else { - if (cellInfo.rowSpan == 1 || cellInfo.rowSpan == cellsRange.endRowIndex - cellsRange.beginRowIndex + 1) { - if (nextCell || preCell) rng.selectNodeContents(nextCell || preCell).setCursor(false, true); - } else { - var newCell = ut.getCell(cellInfo.rowIndex, ut.indexTable[cellInfo.rowIndex][cellInfo.colIndex].cellIndex); - if (newCell) rng.selectNodeContents(newCell).setCursor(false, true); - } - } - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - UE.commands["insertcol"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && cell !== tableItems.tr.cells[0])) && - getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1; - }, - execCommand: function (cmd) { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - if (this.queryCommandState(cmd) == -1)return; - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellInfo = ut.getCellInfo(cell); - - //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex:ut.cellsRange.beginColIndex); - if (!ut.selectedTds.length) { - ut.insertCol(cellInfo.colIndex, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) { - ut.insertCol(range.beginColIndex, cell); - } - } - rng.moveToBookmark(bk).select(true); - } - }; - UE.commands["insertcolnext"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellInfo = ut.getCellInfo(cell); - //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex + cellInfo.colSpan:ut.cellsRange.endColIndex +1); - if (!ut.selectedTds.length) { - ut.insertCol(cellInfo.colIndex + cellInfo.colSpan, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) { - ut.insertCol(range.endColIndex + 1, cell); - } - } - rng.moveToBookmark(bk).select(); - } - }; - - UE.commands["deletecol"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this); - return tableItems.cell ? 0 : -1; - }, - execCommand: function () { - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - range = ut.cellsRange, - cellInfo = ut.getCellInfo(cell), - preCell = ut.getHSideCell(cell), - nextCell = ut.getHSideCell(cell, true); - if (utils.isEmptyObject(range)) { - ut.deleteCol(cellInfo.colIndex); - } else { - for (var i = range.beginColIndex; i < range.endColIndex + 1; i++) { - ut.deleteCol(range.beginColIndex); - } - } - var table = ut.table, - rng = this.selection.getRange(); - - if (!table.getElementsByTagName('td').length) { - var nextSibling = table.nextSibling; - domUtils.remove(table); - if (nextSibling) { - rng.setStart(nextSibling, 0).setCursor(false, true); - } - } else { - if (domUtils.inDoc(cell, this.document)) { - rng.setStart(cell, 0).setCursor(false, true); - } else { - if (nextCell && domUtils.inDoc(nextCell, this.document)) { - rng.selectNodeContents(nextCell).setCursor(false, true); - } else { - if (preCell && domUtils.inDoc(preCell, this.document)) { - rng.selectNodeContents(preCell).setCursor(true, true); - } - } - } - } - } - }; - UE.commands["splittocells"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && (cell.colSpan > 1 || cell.rowSpan > 1) ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToCells(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["splittorows"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && cell.rowSpan > 1 ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToRows(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["splittocols"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && cell.colSpan > 1 ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToCols(cell); - rng.moveToBookmark(bk).select(); - - } - }; - - UE.commands["adaptbytext"] = - UE.commands["adaptbywindow"] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table; - if (table) { - if (cmd == 'adaptbywindow') { - resetTdWidth(table, this); - } else { - var cells = domUtils.getElementsByTagName(table, "td th"); - utils.each(cells, function (cell) { - cell.removeAttribute("width"); - }); - table.removeAttribute("width"); - } - } - } - }; - - //平均分配各列 - UE.commands['averagedistributecol'] = { - queryCommandState: function () { - var ut = getUETableBySelected(this); - if (!ut) return -1; - return ut.isFullRow() || ut.isFullCol() ? 0 : -1; - }, - execCommand: function (cmd) { - var me = this, - ut = getUETableBySelected(me); - - function getAverageWidth() { - var tb = ut.table, - averageWidth, sumWidth = 0, colsNum = 0, - tbAttr = getDefaultValue(me, tb); - - if (ut.isFullRow()) { - sumWidth = tb.offsetWidth; - colsNum = ut.colsNum; - } else { - var begin = ut.cellsRange.beginColIndex, - end = ut.cellsRange.endColIndex, - node; - for (var i = begin; i <= end;) { - node = ut.selectedTds[i]; - sumWidth += node.offsetWidth; - i += node.colSpan; - colsNum += 1; - } - } - averageWidth = Math.ceil(sumWidth / colsNum) - tbAttr.tdBorder * 2 - tbAttr.tdPadding * 2; - return averageWidth; - } - - function setAverageWidth(averageWidth) { - utils.each(domUtils.getElementsByTagName(ut.table, "th"), function (node) { - node.setAttribute("width", ""); - }); - var cells = ut.isFullRow() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds; - - utils.each(cells, function (node) { - if (node.colSpan == 1) { - node.setAttribute("width", averageWidth); - } - }); - } - - if (ut && ut.selectedTds.length) { - setAverageWidth(getAverageWidth()); - } - } - }; - //平均分配各行 - UE.commands['averagedistributerow'] = { - queryCommandState: function () { - var ut = getUETableBySelected(this); - if (!ut) return -1; - if (ut.selectedTds && /th/ig.test(ut.selectedTds[0].tagName)) return -1; - return ut.isFullRow() || ut.isFullCol() ? 0 : -1; - }, - execCommand: function (cmd) { - var me = this, - ut = getUETableBySelected(me); - - function getAverageHeight() { - var averageHeight, rowNum, sumHeight = 0, - tb = ut.table, - tbAttr = getDefaultValue(me, tb), - tdpadding = parseInt(domUtils.getComputedStyle(tb.getElementsByTagName('td')[0], "padding-top")); - - if (ut.isFullCol()) { - var captionArr = domUtils.getElementsByTagName(tb, "caption"), - thArr = domUtils.getElementsByTagName(tb, "th"), - captionHeight, thHeight; - - if (captionArr.length > 0) { - captionHeight = captionArr[0].offsetHeight; - } - if (thArr.length > 0) { - thHeight = thArr[0].offsetHeight; - } - - sumHeight = tb.offsetHeight - (captionHeight || 0) - (thHeight || 0); - rowNum = thArr.length == 0 ? ut.rowsNum : (ut.rowsNum - 1); - } else { - var begin = ut.cellsRange.beginRowIndex, - end = ut.cellsRange.endRowIndex, - count = 0, - trs = domUtils.getElementsByTagName(tb, "tr"); - for (var i = begin; i <= end; i++) { - sumHeight += trs[i].offsetHeight; - count += 1; - } - rowNum = count; - } - //ie8下是混杂模式 - if (browser.ie && browser.version < 9) { - averageHeight = Math.ceil(sumHeight / rowNum); - } else { - averageHeight = Math.ceil(sumHeight / rowNum) - tbAttr.tdBorder * 2 - tdpadding * 2; - } - return averageHeight; - } - - function setAverageHeight(averageHeight) { - var cells = ut.isFullCol() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds; - utils.each(cells, function (node) { - if (node.rowSpan == 1) { - node.setAttribute("height", averageHeight); - } - }); - } - - if (ut && ut.selectedTds.length) { - setAverageHeight(getAverageHeight()); - } - } - }; - - //单元格对齐方式 - UE.commands['cellalignment'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, data) { - var me = this, - ut = getUETableBySelected(me); - - if (!ut) { - var start = me.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - if (!/caption/ig.test(cell.tagName)) { - domUtils.setAttributes(cell, data); - } else { - cell.style.textAlign = data.align; - cell.style.verticalAlign = data.vAlign; - } - me.selection.getRange().setCursor(true); - } else { - utils.each(ut.selectedTds, function (cell) { - domUtils.setAttributes(cell, data); - }); - } - }, - /** - * 查询当前点击的单元格的对齐状态, 如果当前已经选择了多个单元格, 则会返回所有单元格经过统一协调过后的状态 - * @see UE.UETable.getTableCellAlignState - */ - queryCommandValue: function (cmd) { - - var activeMenuCell = getTableItemsByRange( this).cell; - - if( !activeMenuCell ) { - activeMenuCell = getSelectedArr(this)[0]; - } - - if (!activeMenuCell) { - - return null; - - } else { - - //获取同时选中的其他单元格 - var cells = UE.UETable.getUETable(activeMenuCell).selectedTds; - - !cells.length && ( cells = activeMenuCell ); - - return UE.UETable.getTableCellAlignState(cells); - - } - - } - }; - //表格对齐方式 - UE.commands['tablealignment'] = { - queryCommandState: function () { - if (browser.ie && browser.version < 8) { - return -1; - } - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, value) { - var me = this, - start = me.selection.getStart(), - table = start && domUtils.findParentByTagName(start, ["table"], true); - - if (table) { - table.setAttribute("align",value); - } - } - }; - - //表格属性 - UE.commands['edittable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, color) { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - var arr = domUtils.getElementsByTagName(table, "td").concat( - domUtils.getElementsByTagName(table, "th"), - domUtils.getElementsByTagName(table, "caption") - ); - utils.each(arr, function (node) { - node.style.borderColor = color; - }); - } - } - }; - //单元格属性 - UE.commands['edittd'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, bkColor) { - var me = this, - ut = getUETableBySelected(me); - - if (!ut) { - var start = me.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - if (cell) { - cell.style.backgroundColor = bkColor; - } - } else { - utils.each(ut.selectedTds, function (cell) { - cell.style.backgroundColor = bkColor; - }); - } - } - }; - - UE.commands["settablebackground"] = { - queryCommandState: function () { - return getSelectedArr(this).length > 1 ? 0 : -1; - }, - execCommand: function (cmd, value) { - var cells, ut; - cells = getSelectedArr(this); - ut = getUETable(cells[0]); - ut.setBackground(cells, value); - } - }; - - UE.commands["cleartablebackground"] = { - queryCommandState: function () { - var cells = getSelectedArr(this); - if (!cells.length)return -1; - for (var i = 0, cell; cell = cells[i++];) { - if (cell.style.backgroundColor !== "") return 0; - } - return -1; - }, - execCommand: function () { - var cells = getSelectedArr(this), - ut = getUETable(cells[0]); - ut.removeBackground(cells); - } - }; - - UE.commands["interlacetable"] = UE.commands["uninterlacetable"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if (!table) return -1; - var interlaced = table.getAttribute("interlaced"); - if (cmd == "interlacetable") { - //TODO 待定 - //是否需要待定,如果设置,则命令只能单次执行成功,但反射具备toggle效果;否则可以覆盖前次命令,但反射将不存在toggle效果 - return (interlaced === "enabled") ? -1 : 0; - } else { - return (!interlaced || interlaced === "disabled") ? -1 : 0; - } - }, - execCommand: function (cmd, classList) { - var table = getTableItemsByRange(this).table; - if (cmd == "interlacetable") { - table.setAttribute("interlaced", "enabled"); - this.fireEvent("interlacetable", table, classList); - } else { - table.setAttribute("interlaced", "disabled"); - this.fireEvent("uninterlacetable", table); - } - } - }; - UE.commands["setbordervisible"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if (!table) return -1; - return 0; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - utils.each(domUtils.getElementsByTagName(table,'td'),function(td){ - td.style.borderWidth = '1px'; - td.style.borderStyle = 'solid'; - }) - } - }; - function resetTdWidth(table, editor) { - var tds = domUtils.getElementsByTagName(table,'td th'); - utils.each(tds, function (td) { - td.removeAttribute("width"); - }); - table.setAttribute('width', getTableWidth(editor, true, getDefaultValue(editor, table))); - var tdsWidths = []; - setTimeout(function () { - utils.each(tds, function (td) { - (td.colSpan == 1) && tdsWidths.push(td.offsetWidth) - }) - utils.each(tds, function (td,i) { - (td.colSpan == 1) && td.setAttribute("width", tdsWidths[i] + ""); - }) - }, 0); - } - - function getTableWidth(editor, needIEHack, defaultValue) { - var body = editor.body; - return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0); - } - - function getSelectedArr(editor) { - var cell = getTableItemsByRange(editor).cell; - if (cell) { - var ut = getUETable(cell); - return ut.selectedTds.length ? ut.selectedTds : [cell]; - } else { - return []; - } - } -})(); - - -// plugins/table.action.js -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-10-12 - * Time: 上午10:05 - * To change this template use File | Settings | File Templates. - */ -UE.plugins['table'] = function () { - var me = this, - tabTimer = null, - //拖动计时器 - tableDragTimer = null, - //双击计时器 - tableResizeTimer = null, - //单元格最小宽度 - cellMinWidth = 5, - isInResizeBuffer = false, - //单元格边框大小 - cellBorderWidth = 5, - //鼠标偏移距离 - offsetOfTableCell = 10, - //记录在有限时间内的点击状态, 共有3个取值, 0, 1, 2。 0代表未初始化, 1代表单击了1次,2代表2次 - singleClickState = 0, - userActionStatus = null, - //双击允许的时间范围 - dblclickTime = 360, - UT = UE.UETable, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }, - getUETableBySelected = function (editor) { - return UT.getUETableBySelected(editor); - }, - getDefaultValue = function (editor, table) { - return UT.getDefaultValue(editor, table); - }, - removeSelectedClass = function (cells) { - return UT.removeSelectedClass(cells); - }; - - function showError(e) { -// throw e; - } - me.ready(function(){ - var me = this; - var orgGetText = me.selection.getText; - me.selection.getText = function(){ - var table = getUETableBySelected(me); - if(table){ - var str = ''; - utils.each(table.selectedTds,function(td){ - str += td[browser.ie?'innerText':'textContent']; - }) - return str; - }else{ - return orgGetText.call(me.selection) - } - - } - }) - - //处理拖动及框选相关方法 - var startTd = null, //鼠标按下时的锚点td - currentTd = null, //当前鼠标经过时的td - onDrag = "", //指示当前拖动状态,其值可为"","h","v" ,分别表示未拖动状态,横向拖动状态,纵向拖动状态,用于鼠标移动过程中的判断 - onBorder = false, //检测鼠标按下时是否处在单元格边缘位置 - dragButton = null, - dragOver = false, - dragLine = null, //模拟的拖动线 - dragTd = null; //发生拖动的目标td - - var mousedown = false, - //todo 判断混乱模式 - needIEHack = true; - - me.setOpt({ - 'maxColNum':20, - 'maxRowNum':100, - 'defaultCols':5, - 'defaultRows':5, - 'tdvalign':'top', - 'cursorpath':me.options.UEDITOR_HOME_URL + "themes/default/images/cursor_", - 'tableDragable':false, - 'classList':["ue-table-interlace-color-single","ue-table-interlace-color-double"] - }); - me.getUETable = getUETable; - var commands = { - 'deletetable':1, - 'inserttable':1, - 'cellvalign':1, - 'insertcaption':1, - 'deletecaption':1, - 'inserttitle':1, - 'deletetitle':1, - "mergeright":1, - "mergedown":1, - "mergecells":1, - "insertrow":1, - "insertrownext":1, - "deleterow":1, - "insertcol":1, - "insertcolnext":1, - "deletecol":1, - "splittocells":1, - "splittorows":1, - "splittocols":1, - "adaptbytext":1, - "adaptbywindow":1, - "adaptbycustomer":1, - "insertparagraph":1, - "insertparagraphbeforetable":1, - "averagedistributecol":1, - "averagedistributerow":1 - }; - me.ready(function () { - utils.cssRule('table', - //选中的td上的样式 - '.selectTdClass{background-color:#edf5fa !important}' + - 'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' + - //插入的表格的默认样式 - 'table{margin-bottom:10px;border-collapse:collapse;display:table;}' + - 'td,th{padding: 5px 10px;border: 1px solid #DDD;}' + - 'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' + - 'th{border-top:1px solid #BBB;background-color:#F7F7F7;}' + - 'table tr.firstRow th{border-top-width:2px;}' + - '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' + - 'td p{margin:0;padding:0;}', me.document); - - var tableCopyList, isFullCol, isFullRow; - //注册del/backspace事件 - me.addListener('keydown', function (cmd, evt) { - var me = this; - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 8) { - - var ut = getUETableBySelected(me); - if (ut && ut.selectedTds.length) { - - if (ut.isFullCol()) { - me.execCommand('deletecol') - } else if (ut.isFullRow()) { - me.execCommand('deleterow') - } else { - me.fireEvent('delcells'); - } - domUtils.preventDefault(evt); - } - - var caption = domUtils.findParentByTagName(me.selection.getStart(), 'caption', true), - range = me.selection.getRange(); - if (range.collapsed && caption && isEmptyBlock(caption)) { - me.fireEvent('saveScene'); - var table = caption.parentNode; - domUtils.remove(caption); - if (table) { - range.setStart(table.rows[0].cells[0], 0).setCursor(false, true); - } - me.fireEvent('saveScene'); - } - - } - - if (keyCode == 46) { - - ut = getUETableBySelected(me); - if (ut) { - me.fireEvent('saveScene'); - for (var i = 0, ci; ci = ut.selectedTds[i++];) { - domUtils.fillNode(me.document, ci) - } - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - - } - - } - if (keyCode == 13) { - - var rng = me.selection.getRange(), - caption = domUtils.findParentByTagName(rng.startContainer, 'caption', true); - if (caption) { - var table = domUtils.findParentByTagName(caption, 'table'); - if (!rng.collapsed) { - - rng.deleteContents(); - me.fireEvent('saveScene'); - } else { - if (caption) { - rng.setStart(table.rows[0].cells[0], 0).setCursor(false, true); - } - } - domUtils.preventDefault(evt); - return; - } - if (rng.collapsed) { - var table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - var cell = table.rows[0].cells[0], - start = domUtils.findParentByTagName(me.selection.getStart(), ['td', 'th'], true), - preNode = table.previousSibling; - if (cell === start && (!preNode || preNode.nodeType == 1 && preNode.tagName == 'TABLE' ) && domUtils.isStartInblock(rng)) { - var first = domUtils.findParent(me.selection.getStart(), function(n){return domUtils.isBlockElm(n)}, true); - if(first && ( /t(h|d)/i.test(first.tagName) || first === start.firstChild )){ - me.execCommand('insertparagraphbeforetable'); - domUtils.preventDefault(evt); - } - - } - } - } - } - - if ((evt.ctrlKey || evt.metaKey) && evt.keyCode == '67') { - tableCopyList = null; - var ut = getUETableBySelected(me); - if (ut) { - var tds = ut.selectedTds; - isFullCol = ut.isFullCol(); - isFullRow = ut.isFullRow(); - tableCopyList = [ - [ut.cloneCell(tds[0],null,true)] - ]; - for (var i = 1, ci; ci = tds[i]; i++) { - if (ci.parentNode !== tds[i - 1].parentNode) { - tableCopyList.push([ut.cloneCell(ci,null,true)]); - } else { - tableCopyList[tableCopyList.length - 1].push(ut.cloneCell(ci,null,true)); - } - - } - } - } - }); - me.addListener("tablehasdeleted",function(){ - toggleDraggableState(this, false, "", null); - if (dragButton)domUtils.remove(dragButton); - }); - - me.addListener('beforepaste', function (cmd, html) { - var me = this; - var rng = me.selection.getRange(); - if (domUtils.findParentByTagName(rng.startContainer, 'caption', true)) { - var div = me.document.createElement("div"); - div.innerHTML = html.html; - //trace:3729 - html.html = div[browser.ie9below ? 'innerText' : 'textContent']; - return; - } - var table = getUETableBySelected(me); - if (tableCopyList) { - me.fireEvent('saveScene'); - var rng = me.selection.getRange(); - var td = domUtils.findParentByTagName(rng.startContainer, ['td', 'th'], true), tmpNode, preNode; - if (td) { - var ut = getUETable(td); - if (isFullRow) { - var rowIndex = ut.getCellInfo(td).rowIndex; - if (td.tagName == 'TH') { - rowIndex++; - } - for (var i = 0, ci; ci = tableCopyList[i++];) { - var tr = ut.insertRow(rowIndex++, "td"); - for (var j = 0, cj; cj = ci[j]; j++) { - var cell = tr.cells[j]; - if (!cell) { - cell = tr.insertCell(j) - } - cell.innerHTML = cj.innerHTML; - cj.getAttribute('width') && cell.setAttribute('width', cj.getAttribute('width')); - cj.getAttribute('vAlign') && cell.setAttribute('vAlign', cj.getAttribute('vAlign')); - cj.getAttribute('align') && cell.setAttribute('align', cj.getAttribute('align')); - cj.style.cssText && (cell.style.cssText = cj.style.cssText) - } - for (var j = 0, cj; cj = tr.cells[j]; j++) { - if (!ci[j]) - break; - cj.innerHTML = ci[j].innerHTML; - ci[j].getAttribute('width') && cj.setAttribute('width', ci[j].getAttribute('width')); - ci[j].getAttribute('vAlign') && cj.setAttribute('vAlign', ci[j].getAttribute('vAlign')); - ci[j].getAttribute('align') && cj.setAttribute('align', ci[j].getAttribute('align')); - ci[j].style.cssText && (cj.style.cssText = ci[j].style.cssText) - } - } - } else { - if (isFullCol) { - cellInfo = ut.getCellInfo(td); - var maxColNum = 0; - for (var j = 0, ci = tableCopyList[0], cj; cj = ci[j++];) { - maxColNum += cj.colSpan || 1; - } - me.__hasEnterExecCommand = true; - for (i = 0; i < maxColNum; i++) { - me.execCommand('insertcol'); - } - me.__hasEnterExecCommand = false; - td = ut.table.rows[0].cells[cellInfo.cellIndex]; - if (td.tagName == 'TH') { - td = ut.table.rows[1].cells[cellInfo.cellIndex]; - } - } - for (var i = 0, ci; ci = tableCopyList[i++];) { - tmpNode = td; - for (var j = 0, cj; cj = ci[j++];) { - if (td) { - td.innerHTML = cj.innerHTML; - //todo 定制处理 - cj.getAttribute('width') && td.setAttribute('width', cj.getAttribute('width')); - cj.getAttribute('vAlign') && td.setAttribute('vAlign', cj.getAttribute('vAlign')); - cj.getAttribute('align') && td.setAttribute('align', cj.getAttribute('align')); - cj.style.cssText && (td.style.cssText = cj.style.cssText); - preNode = td; - td = td.nextSibling; - } else { - var cloneTd = cj.cloneNode(true); - domUtils.removeAttributes(cloneTd, ['class', 'rowSpan', 'colSpan']); - - preNode.parentNode.appendChild(cloneTd) - } - } - td = ut.getNextCell(tmpNode, true, true); - if (!tableCopyList[i]) - break; - if (!td) { - var cellInfo = ut.getCellInfo(tmpNode); - ut.table.insertRow(ut.table.rows.length); - ut.update(); - td = ut.getVSideCell(tmpNode, true); - } - } - } - ut.update(); - } else { - table = me.document.createElement('table'); - for (var i = 0, ci; ci = tableCopyList[i++];) { - var tr = table.insertRow(table.rows.length); - for (var j = 0, cj; cj = ci[j++];) { - cloneTd = UT.cloneCell(cj,null,true); - domUtils.removeAttributes(cloneTd, ['class']); - tr.appendChild(cloneTd) - } - if (j == 2 && cloneTd.rowSpan > 1) { - cloneTd.rowSpan = 1; - } - } - - var defaultValue = getDefaultValue(me), - width = me.body.offsetWidth - - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0); - me.execCommand('insertHTML', '' + table.innerHTML.replace(/>\s*<').replace(/\bth\b/gi, "td") + '
    ') - } - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - html.html = ''; - return true; - } else { - var div = me.document.createElement("div"), tables; - div.innerHTML = html.html; - tables = div.getElementsByTagName("table"); - if (domUtils.findParentByTagName(me.selection.getStart(), 'table')) { - utils.each(tables, function (t) { - domUtils.remove(t) - }); - if (domUtils.findParentByTagName(me.selection.getStart(), 'caption', true)) { - div.innerHTML = div[browser.ie ? 'innerText' : 'textContent']; - } - } else { - utils.each(tables, function (table) { - removeStyleSize(table, true); - domUtils.removeAttributes(table, ['style', 'border']); - utils.each(domUtils.getElementsByTagName(table, "td"), function (td) { - if (isEmptyBlock(td)) { - domUtils.fillNode(me.document, td); - } - removeStyleSize(td, true); -// domUtils.removeAttributes(td, ['style']) - }); - }); - } - html.html = div.innerHTML; - } - }); - - me.addListener('afterpaste', function () { - utils.each(domUtils.getElementsByTagName(me.body, "table"), function (table) { - if (table.offsetWidth > me.body.offsetWidth) { - var defaultValue = getDefaultValue(me, table); - table.style.width = me.body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0) + 'px' - } - }) - }); - me.addListener('blur', function () { - tableCopyList = null; - }); - var timer; - me.addListener('keydown', function () { - clearTimeout(timer); - timer = setTimeout(function () { - var rng = me.selection.getRange(), - cell = domUtils.findParentByTagName(rng.startContainer, ['th', 'td'], true); - if (cell) { - var table = cell.parentNode.parentNode.parentNode; - if (table.offsetWidth > table.getAttribute("width")) { - cell.style.wordBreak = "break-all"; - } - } - - }, 100); - }); - me.addListener("selectionchange", function () { - toggleDraggableState(me, false, "", null); - }); - - - //内容变化时触发索引更新 - //todo 可否考虑标记检测,如果不涉及表格的变化就不进行索引重建和更新 - me.addListener("contentchange", function () { - var me = this; - //尽可能排除一些不需要更新的状况 - hideDragLine(me); - if (getUETableBySelected(me))return; - var rng = me.selection.getRange(); - var start = rng.startContainer; - start = domUtils.findParentByTagName(start, ['td', 'th'], true); - utils.each(domUtils.getElementsByTagName(me.document, 'table'), function (table) { - if (me.fireEvent("excludetable", table) === true) return; - table.ueTable = new UT(table); - //trace:3742 -// utils.each(domUtils.getElementsByTagName(me.document, 'td'), function (td) { -// -// if (domUtils.isEmptyBlock(td) && td !== start) { -// domUtils.fillNode(me.document, td); -// if (browser.ie && browser.version == 6) { -// td.innerHTML = ' ' -// } -// } -// }); -// utils.each(domUtils.getElementsByTagName(me.document, 'th'), function (th) { -// if (domUtils.isEmptyBlock(th) && th !== start) { -// domUtils.fillNode(me.document, th); -// if (browser.ie && browser.version == 6) { -// th.innerHTML = ' ' -// } -// } -// }); - table.onmouseover = function () { - me.fireEvent('tablemouseover', table); - }; - table.onmousemove = function () { - me.fireEvent('tablemousemove', table); - me.options.tableDragable && toggleDragButton(true, this, me); - utils.defer(function(){ - me.fireEvent('contentchange',50) - },true) - }; - table.onmouseout = function () { - me.fireEvent('tablemouseout', table); - toggleDraggableState(me, false, "", null); - hideDragLine(me); - }; - table.onclick = function (evt) { - evt = me.window.event || evt; - var target = getParentTdOrTh(evt.target || evt.srcElement); - if (!target)return; - var ut = getUETable(target), - table = ut.table, - cellInfo = ut.getCellInfo(target), - cellsRange, - rng = me.selection.getRange(); -// if ("topLeft" == inPosition(table, mouseCoords(evt))) { -// cellsRange = ut.getCellsRange(ut.table.rows[0].cells[0], ut.getLastCell()); -// ut.setSelected(cellsRange); -// return; -// } -// if ("bottomRight" == inPosition(table, mouseCoords(evt))) { -// -// return; -// } - if (inTableSide(table, target, evt, true)) { - var endTdCol = ut.getCell(ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].rowIndex, ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].cellIndex); - if (evt.shiftKey && ut.selectedTds.length) { - if (ut.selectedTds[0] !== endTdCol) { - cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdCol); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdCol).select(); - } - } else { - if (target !== endTdCol) { - cellsRange = ut.getCellsRange(target, endTdCol); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdCol).select(); - } - } - return; - } - if (inTableSide(table, target, evt)) { - var endTdRow = ut.getCell(ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].rowIndex, ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].cellIndex); - if (evt.shiftKey && ut.selectedTds.length) { - if (ut.selectedTds[0] !== endTdRow) { - cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdRow); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdRow).select(); - } - } else { - if (target !== endTdRow) { - cellsRange = ut.getCellsRange(target, endTdRow); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdRow).select(); - } - } - } - }; - }); - - switchBorderColor(me, true); - }); - - domUtils.on(me.document, "mousemove", mouseMoveEvent); - - domUtils.on(me.document, "mouseout", function (evt) { - var target = evt.target || evt.srcElement; - if (target.tagName == "TABLE") { - toggleDraggableState(me, false, "", null); - } - }); - /** - * 表格隔行变色 - */ - me.addListener("interlacetable",function(type,table,classList){ - if(!table) return; - var me = this, - rows = table.rows, - len = rows.length, - getClass = function(list,index,repeat){ - return list[index] ? list[index] : repeat ? list[index % list.length]: ""; - }; - for(var i = 0;i 1 ? currentRowIndex : ua.getCellInfo(cell).rowIndex; - var nextCell = ua.getTabNextCell(cell, currentRowIndex); - if (nextCell) { - if (isEmptyBlock(nextCell)) { - range.setStart(nextCell, 0).setCursor(false, true) - } else { - range.selectNodeContents(nextCell).select() - } - } else { - me.fireEvent('saveScene'); - me.__hasEnterExecCommand = true; - this.execCommand('insertrownext'); - me.__hasEnterExecCommand = false; - range = this.selection.getRange(); - range.setStart(table.rows[table.rows.length - 1].cells[0], 0).setCursor(); - me.fireEvent('saveScene'); - } - } - return true; - } - - }); - browser.ie && me.addListener('selectionchange', function () { - toggleDraggableState(this, false, "", null); - }); - me.addListener("keydown", function (type, evt) { - var me = this; - //处理在表格的最后一个输入tab产生新的表格 - var keyCode = evt.keyCode || evt.which; - if (keyCode == 8 || keyCode == 46) { - return; - } - var notCtrlKey = !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey; - notCtrlKey && removeSelectedClass(domUtils.getElementsByTagName(me.body, "td")); - var ut = getUETableBySelected(me); - if (!ut) return; - notCtrlKey && ut.clearSelected(); - }); - - me.addListener("beforegetcontent", function () { - switchBorderColor(this, false); - browser.ie && utils.each(this.document.getElementsByTagName('caption'), function (ci) { - if (domUtils.isEmptyNode(ci)) { - ci.innerHTML = ' ' - } - }); - }); - me.addListener("aftergetcontent", function () { - switchBorderColor(this, true); - }); - me.addListener("getAllHtml", function () { - removeSelectedClass(me.document.getElementsByTagName("td")); - }); - //修正全屏状态下插入的表格宽度在非全屏状态下撑开编辑器的情况 - me.addListener("fullscreenchanged", function (type, fullscreen) { - if (!fullscreen) { - var ratio = this.body.offsetWidth / document.body.offsetWidth, - tables = domUtils.getElementsByTagName(this.body, "table"); - utils.each(tables, function (table) { - if (table.offsetWidth < me.body.offsetWidth) return false; - var tds = domUtils.getElementsByTagName(table, "td"), - backWidths = []; - utils.each(tds, function (td) { - backWidths.push(td.offsetWidth); - }); - for (var i = 0, td; td = tds[i]; i++) { - td.setAttribute("width", Math.floor(backWidths[i] * ratio)); - } - table.setAttribute("width", Math.floor(getTableWidth(me, needIEHack, getDefaultValue(me)))) - }); - } - }); - - //重写execCommand命令,用于处理框选时的处理 - var oldExecCommand = me.execCommand; - me.execCommand = function (cmd, datatat) { - - var me = this, - args = arguments; - - cmd = cmd.toLowerCase(); - var ut = getUETableBySelected(me), tds, - range = new dom.Range(me.document), - cmdFun = me.commands[cmd] || UE.commands[cmd], - result; - if (!cmdFun) return; - if (ut && !commands[cmd] && !cmdFun.notNeedUndo && !me.__hasEnterExecCommand) { - me.__hasEnterExecCommand = true; - me.fireEvent("beforeexeccommand", cmd); - tds = ut.selectedTds; - var lastState = -2, lastValue = -2, value, state; - for (var i = 0, td; td = tds[i]; i++) { - if (isEmptyBlock(td)) { - range.setStart(td, 0).setCursor(false, true) - } else { - range.selectNode(td).select(true); - } - state = me.queryCommandState(cmd); - value = me.queryCommandValue(cmd); - if (state != -1) { - if (lastState !== state || lastValue !== value) { - me._ignoreContentChange = true; - result = oldExecCommand.apply(me, arguments); - me._ignoreContentChange = false; - - } - lastState = me.queryCommandState(cmd); - lastValue = me.queryCommandValue(cmd); - if (domUtils.isEmptyBlock(td)) { - domUtils.fillNode(me.document, td) - } - } - } - range.setStart(tds[0], 0).shrinkBoundary(true).setCursor(false, true); - me.fireEvent('contentchange'); - me.fireEvent("afterexeccommand", cmd); - me.__hasEnterExecCommand = false; - me._selectionChange(); - } else { - result = oldExecCommand.apply(me, arguments); - } - return result; - }; - - - }); - /** - * 删除obj的宽高style,改成属性宽高 - * @param obj - * @param replaceToProperty - */ - function removeStyleSize(obj, replaceToProperty) { - removeStyle(obj, "width", true); - removeStyle(obj, "height", true); - } - - function removeStyle(obj, styleName, replaceToProperty) { - if (obj.style[styleName]) { - replaceToProperty && obj.setAttribute(styleName, parseInt(obj.style[styleName], 10)); - obj.style[styleName] = ""; - } - } - - function getParentTdOrTh(ele) { - if (ele.tagName == "TD" || ele.tagName == "TH") return ele; - var td; - if (td = domUtils.findParentByTagName(ele, "td", true) || domUtils.findParentByTagName(ele, "th", true)) return td; - return null; - } - - function isEmptyBlock(node) { - var reg = new RegExp(domUtils.fillChar, 'g'); - if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\s*$/, '').replace(reg, '').length > 0) { - return 0; - } - for (var n in dtd.$isNotEmpty) { - if (node.getElementsByTagName(n).length) { - return 0; - } - } - return 1; - } - - - function mouseCoords(evt) { - if (evt.pageX || evt.pageY) { - return { x:evt.pageX, y:evt.pageY }; - } - return { - x:evt.clientX + me.document.body.scrollLeft - me.document.body.clientLeft, - y:evt.clientY + me.document.body.scrollTop - me.document.body.clientTop - }; - } - - function mouseMoveEvent(evt) { - - if( isEditorDisabled() ) { - return; - } - - try { - - //普通状态下鼠标移动 - var target = getParentTdOrTh(evt.target || evt.srcElement), - pos; - - //区分用户的行为是拖动还是双击 - if( isInResizeBuffer ) { - - me.body.style.webkitUserSelect = 'none'; - - if( Math.abs( userActionStatus.x - evt.clientX ) > offsetOfTableCell || Math.abs( userActionStatus.y - evt.clientY ) > offsetOfTableCell ) { - clearTableDragTimer(); - isInResizeBuffer = false; - singleClickState = 0; - //drag action - tableBorderDrag(evt); - } - } - - //修改单元格大小时的鼠标移动 - if (onDrag && dragTd) { - singleClickState = 0; - me.body.style.webkitUserSelect = 'none'; - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - pos = mouseCoords(evt); - toggleDraggableState(me, true, onDrag, pos, target); - if (onDrag == "h") { - dragLine.style.left = getPermissionX(dragTd, evt) + "px"; - } else if (onDrag == "v") { - dragLine.style.top = getPermissionY(dragTd, evt) + "px"; - } - return; - } - //当鼠标处于table上时,修改移动过程中的光标状态 - if (target) { - //针对使用table作为容器的组件不触发拖拽效果 - if (me.fireEvent('excludetable', target) === true) - return; - pos = mouseCoords(evt); - var state = getRelation(target, pos), - table = domUtils.findParentByTagName(target, "table", true); - - if (inTableSide(table, target, evt, true)) { - if (me.fireEvent("excludetable", table) === true) return; - me.body.style.cursor = "url(" + me.options.cursorpath + "h.png),pointer"; - } else if (inTableSide(table, target, evt)) { - if (me.fireEvent("excludetable", table) === true) return; - me.body.style.cursor = "url(" + me.options.cursorpath + "v.png),pointer"; - } else { - me.body.style.cursor = "text"; - var curCell = target; - if (/\d/.test(state)) { - state = state.replace(/\d/, ''); - target = getUETable(target).getPreviewCell(target, state == "v"); - } - //位于第一行的顶部或者第一列的左边时不可拖动 - toggleDraggableState(me, target ? !!state : false, target ? state : '', pos, target); - - } - } else { - toggleDragButton(false, table, me); - } - - } catch (e) { - showError(e); - } - } - - var dragButtonTimer; - - function toggleDragButton(show, table, editor) { - if (!show) { - if (dragOver)return; - dragButtonTimer = setTimeout(function () { - !dragOver && dragButton && dragButton.parentNode && dragButton.parentNode.removeChild(dragButton); - }, 2000); - } else { - createDragButton(table, editor); - } - } - - function createDragButton(table, editor) { - var pos = domUtils.getXY(table), - doc = table.ownerDocument; - if (dragButton && dragButton.parentNode)return dragButton; - dragButton = doc.createElement("div"); - dragButton.contentEditable = false; - dragButton.innerHTML = ""; - dragButton.style.cssText = "width:15px;height:15px;background-image:url(" + editor.options.UEDITOR_HOME_URL + "dialogs/table/dragicon.png);position: absolute;cursor:move;top:" + (pos.y - 15) + "px;left:" + (pos.x) + "px;"; - domUtils.unSelectable(dragButton); - dragButton.onmouseover = function (evt) { - dragOver = true; - }; - dragButton.onmouseout = function (evt) { - dragOver = false; - }; - domUtils.on(dragButton, 'click', function (type, evt) { - doClick(evt, this); - }); - domUtils.on(dragButton, 'dblclick', function (type, evt) { - doDblClick(evt); - }); - domUtils.on(dragButton, 'dragstart', function (type, evt) { - domUtils.preventDefault(evt); - }); - var timer; - - function doClick(evt, button) { - // 部分浏览器下需要清理 - clearTimeout(timer); - timer = setTimeout(function () { - editor.fireEvent("tableClicked", table, button); - }, 300); - } - - function doDblClick(evt) { - clearTimeout(timer); - var ut = getUETable(table), - start = table.rows[0].cells[0], - end = ut.getLastCell(), - range = ut.getCellsRange(start, end); - editor.selection.getRange().setStart(start, 0).setCursor(false, true); - ut.setSelected(range); - } - - doc.body.appendChild(dragButton); - } - - -// function inPosition(table, pos) { -// var tablePos = domUtils.getXY(table), -// width = table.offsetWidth, -// height = table.offsetHeight; -// if (pos.x - tablePos.x < 5 && pos.y - tablePos.y < 5) { -// return "topLeft"; -// } else if (tablePos.x + width - pos.x < 5 && tablePos.y + height - pos.y < 5) { -// return "bottomRight"; -// } -// } - - function inTableSide(table, cell, evt, top) { - var pos = mouseCoords(evt), - state = getRelation(cell, pos); - - if (top) { - var caption = table.getElementsByTagName("caption")[0], - capHeight = caption ? caption.offsetHeight : 0; - return (state == "v1") && ((pos.y - domUtils.getXY(table).y - capHeight) < 8); - } else { - return (state == "h1") && ((pos.x - domUtils.getXY(table).x) < 8); - } - } - - /** - * 获取拖动时允许的X轴坐标 - * @param dragTd - * @param evt - */ - function getPermissionX(dragTd, evt) { - var ut = getUETable(dragTd); - if (ut) { - var preTd = ut.getSameEndPosCells(dragTd, "x")[0], - nextTd = ut.getSameStartPosXCells(dragTd)[0], - mouseX = mouseCoords(evt).x, - left = (preTd ? domUtils.getXY(preTd).x : domUtils.getXY(ut.table).x) + 20 , - right = nextTd ? domUtils.getXY(nextTd).x + nextTd.offsetWidth - 20 : (me.body.offsetWidth + 5 || parseInt(domUtils.getComputedStyle(me.body, "width"), 10)); - - left += cellMinWidth; - right -= cellMinWidth; - - return mouseX < left ? left : mouseX > right ? right : mouseX; - } - } - - /** - * 获取拖动时允许的Y轴坐标 - */ - function getPermissionY(dragTd, evt) { - try { - var top = domUtils.getXY(dragTd).y, - mousePosY = mouseCoords(evt).y; - return mousePosY < top ? top : mousePosY; - } catch (e) { - showError(e); - } - } - - /** - * 移动状态切换 - */ - function toggleDraggableState(editor, draggable, dir, mousePos, cell) { - try { - editor.body.style.cursor = dir == "h" ? "col-resize" : dir == "v" ? "row-resize" : "text"; - if (browser.ie) { - if (dir && !mousedown && !getUETableBySelected(editor)) { - getDragLine(editor, editor.document); - showDragLineAt(dir, cell); - } else { - hideDragLine(editor) - } - } - onBorder = draggable; - } catch (e) { - showError(e); - } - } - - /** - * 获取与UETable相关的resize line - * @param uetable UETable对象 - */ - function getResizeLineByUETable() { - - var lineId = '_UETableResizeLine', - line = this.document.getElementById( lineId ); - - if( !line ) { - line = this.document.createElement("div"); - line.id = lineId; - line.contnetEditable = false; - line.setAttribute("unselectable", "on"); - - var styles = { - width: 2*cellBorderWidth + 1 + 'px', - position: 'absolute', - 'z-index': 100000, - cursor: 'col-resize', - background: 'red', - display: 'none' - }; - - //切换状态 - line.onmouseout = function(){ - this.style.display = 'none'; - }; - - utils.extend( line.style, styles ); - - this.document.body.appendChild( line ); - - } - - return line; - - } - - /** - * 更新resize-line - */ - function updateResizeLine( cell, uetable ) { - - var line = getResizeLineByUETable.call( this ), - table = uetable.table, - styles = { - top: domUtils.getXY( table ).y + 'px', - left: domUtils.getXY( cell).x + cell.offsetWidth - cellBorderWidth + 'px', - display: 'block', - height: table.offsetHeight + 'px' - }; - - utils.extend( line.style, styles ); - - } - - /** - * 显示resize-line - */ - function showResizeLine( cell ) { - - var uetable = getUETable( cell ); - - updateResizeLine.call( this, cell, uetable ); - - } - - /** - * 获取鼠标与当前单元格的相对位置 - * @param ele - * @param mousePos - */ - function getRelation(ele, mousePos) { - var elePos = domUtils.getXY(ele); - - if( !elePos ) { - return ''; - } - - if (elePos.x + ele.offsetWidth - mousePos.x < cellBorderWidth) { - return "h"; - } - if (mousePos.x - elePos.x < cellBorderWidth) { - return 'h1' - } - if (elePos.y + ele.offsetHeight - mousePos.y < cellBorderWidth) { - return "v"; - } - if (mousePos.y - elePos.y < cellBorderWidth) { - return 'v1' - } - return ''; - } - - function mouseDownEvent(type, evt) { - - if( isEditorDisabled() ) { - return ; - } - - userActionStatus = { - x: evt.clientX, - y: evt.clientY - }; - - //右键菜单单独处理 - if (evt.button == 2) { - var ut = getUETableBySelected(me), - flag = false; - - if (ut) { - var td = getTargetTd(me, evt); - utils.each(ut.selectedTds, function (ti) { - if (ti === td) { - flag = true; - } - }); - if (!flag) { - removeSelectedClass(domUtils.getElementsByTagName(me.body, "th td")); - ut.clearSelected() - } else { - td = ut.selectedTds[0]; - setTimeout(function () { - me.selection.getRange().setStart(td, 0).setCursor(false, true); - }, 0); - - } - } - } else { - tableClickHander( evt ); - } - - } - - //清除表格的计时器 - function clearTableTimer() { - tabTimer && clearTimeout( tabTimer ); - tabTimer = null; - } - - //双击收缩 - function tableDbclickHandler(evt) { - singleClickState = 0; - evt = evt || me.window.event; - var target = getParentTdOrTh(evt.target || evt.srcElement); - if (target) { - var h; - if (h = getRelation(target, mouseCoords(evt))) { - - hideDragLine( me ); - - if (h == 'h1') { - h = 'h'; - if (inTableSide(domUtils.findParentByTagName(target, "table"), target, evt)) { - me.execCommand('adaptbywindow'); - } else { - target = getUETable(target).getPreviewCell(target); - if (target) { - var rng = me.selection.getRange(); - rng.selectNodeContents(target).setCursor(true, true) - } - } - } - if (h == 'h') { - var ut = getUETable(target), - table = ut.table, - cells = getCellsByMoveBorder( target, table, true ); - - cells = extractArray( cells, 'left' ); - - ut.width = ut.offsetWidth; - - var oldWidth = [], - newWidth = []; - - utils.each( cells, function( cell ){ - - oldWidth.push( cell.offsetWidth ); - - } ); - - utils.each( cells, function( cell ){ - - cell.removeAttribute("width"); - - } ); - - window.setTimeout( function(){ - - //是否允许改变 - var changeable = true; - - utils.each( cells, function( cell, index ){ - - var width = cell.offsetWidth; - - if( width > oldWidth[index] ) { - changeable = false; - return false; - } - - newWidth.push( width ); - - } ); - - var change = changeable ? newWidth : oldWidth; - - utils.each( cells, function( cell, index ){ - - cell.width = change[index] - getTabcellSpace(); - - } ); - - - }, 0 ); - -// minWidth -= cellMinWidth; -// -// table.removeAttribute("width"); -// utils.each(cells, function (cell) { -// cell.style.width = ""; -// cell.width -= minWidth; -// }); - - } - } - } - } - - function tableClickHander( evt ) { - - removeSelectedClass(domUtils.getElementsByTagName(me.body, "td th")); - //trace:3113 - //选中单元格,点击table外部,不会清掉table上挂的ueTable,会引起getUETableBySelected方法返回值 - utils.each(me.document.getElementsByTagName('table'), function (t) { - t.ueTable = null; - }); - startTd = getTargetTd(me, evt); - if( !startTd ) return; - var table = domUtils.findParentByTagName(startTd, "table", true); - ut = getUETable(table); - ut && ut.clearSelected(); - - //判断当前鼠标状态 - if (!onBorder) { - me.document.body.style.webkitUserSelect = ''; - mousedown = true; - me.addListener('mouseover', mouseOverEvent); - } else { - //边框上的动作处理 - borderActionHandler( evt ); - } - - - } - - //处理表格边框上的动作, 这里做延时处理,避免两种动作互相影响 - function borderActionHandler( evt ) { - - if ( browser.ie ) { - evt = reconstruct(evt ); - } - - clearTableDragTimer(); - - //是否正在等待resize的缓冲中 - isInResizeBuffer = true; - - tableDragTimer = setTimeout(function(){ - tableBorderDrag( evt ); - }, dblclickTime); - - } - - function extractArray( originArr, key ) { - - var result = [], - tmp = null; - - for( var i = 0, len = originArr.length; i 0 && singleClickState--; - }, dblclickTime ); - - if( singleClickState === 2 ) { - - singleClickState = 0; - tableDbclickHandler(evt); - return; - - } - - } - - if (evt.button == 2)return; - var me = this; - //清除表格上原生跨选问题 - var range = me.selection.getRange(), - start = domUtils.findParentByTagName(range.startContainer, 'table', true), - end = domUtils.findParentByTagName(range.endContainer, 'table', true); - - if (start || end) { - if (start === end) { - start = domUtils.findParentByTagName(range.startContainer, ['td', 'th', 'caption'], true); - end = domUtils.findParentByTagName(range.endContainer, ['td', 'th', 'caption'], true); - if (start !== end) { - me.selection.clearRange() - } - } else { - me.selection.clearRange() - } - } - mousedown = false; - me.document.body.style.webkitUserSelect = ''; - //拖拽状态下的mouseUP - if ( onDrag && dragTd ) { - - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - - singleClickState = 0; - dragLine = me.document.getElementById('ue_tableDragLine'); - - // trace 3973 - if (dragLine) { - var dragTdPos = domUtils.getXY(dragTd), - dragLinePos = domUtils.getXY(dragLine); - - switch (onDrag) { - case "h": - changeColWidth(dragTd, dragLinePos.x - dragTdPos.x); - break; - case "v": - changeRowHeight(dragTd, dragLinePos.y - dragTdPos.y - dragTd.offsetHeight); - break; - default: - } - onDrag = ""; - dragTd = null; - - hideDragLine(me); - me.fireEvent('saveScene'); - return; - } - } - //正常状态下的mouseup - if (!startTd) { - var target = domUtils.findParentByTagName(evt.target || evt.srcElement, "td", true); - if (!target) target = domUtils.findParentByTagName(evt.target || evt.srcElement, "th", true); - if (target && (target.tagName == "TD" || target.tagName == "TH")) { - if (me.fireEvent("excludetable", target) === true) return; - range = new dom.Range(me.document); - range.setStart(target, 0).setCursor(false, true); - } - } else { - var ut = getUETable(startTd), - cell = ut ? ut.selectedTds[0] : null; - if (cell) { - range = new dom.Range(me.document); - if (domUtils.isEmptyBlock(cell)) { - range.setStart(cell, 0).setCursor(false, true); - } else { - range.selectNodeContents(cell).shrinkBoundary().setCursor(false, true); - } - } else { - range = me.selection.getRange().shrinkBoundary(); - if (!range.collapsed) { - var start = domUtils.findParentByTagName(range.startContainer, ['td', 'th'], true), - end = domUtils.findParentByTagName(range.endContainer, ['td', 'th'], true); - //在table里边的不能清除 - if (start && !end || !start && end || start && end && start !== end) { - range.setCursor(false, true); - } - } - } - startTd = null; - me.removeListener('mouseover', mouseOverEvent); - } - me._selectionChange(250, evt); - } - - function mouseOverEvent(type, evt) { - - if( isEditorDisabled() ) { - return; - } - - var me = this, - tar = evt.target || evt.srcElement; - currentTd = domUtils.findParentByTagName(tar, "td", true) || domUtils.findParentByTagName(tar, "th", true); - //需要判断两个TD是否位于同一个表格内 - if (startTd && currentTd && - ((startTd.tagName == "TD" && currentTd.tagName == "TD") || (startTd.tagName == "TH" && currentTd.tagName == "TH")) && - domUtils.findParentByTagName(startTd, 'table') == domUtils.findParentByTagName(currentTd, 'table')) { - var ut = getUETable(currentTd); - if (startTd != currentTd) { - me.document.body.style.webkitUserSelect = 'none'; - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - var range = ut.getCellsRange(startTd, currentTd); - ut.setSelected(range); - } else { - me.document.body.style.webkitUserSelect = ''; - ut.clearSelected(); - } - - } - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - } - - function setCellHeight(cell, height, backHeight) { - var lineHight = parseInt(domUtils.getComputedStyle(cell, "line-height"), 10), - tmpHeight = backHeight + height; - height = tmpHeight < lineHight ? lineHight : tmpHeight; - if (cell.style.height) cell.style.height = ""; - cell.rowSpan == 1 ? cell.setAttribute("height", height) : (cell.removeAttribute && cell.removeAttribute("height")); - } - - function getWidth(cell) { - if (!cell)return 0; - return parseInt(domUtils.getComputedStyle(cell, "width"), 10); - } - - function changeColWidth(cell, changeValue) { - - var ut = getUETable(cell); - if (ut) { - - //根据当前移动的边框获取相关的单元格 - var table = ut.table, - cells = getCellsByMoveBorder( cell, table ); - - table.style.width = ""; - table.removeAttribute("width"); - - //修正改变量 - changeValue = correctChangeValue( changeValue, cell, cells ); - - if (cell.nextSibling) { - - var i=0; - - utils.each( cells, function( cellGroup ){ - - cellGroup.left.width = (+cellGroup.left.width)+changeValue; - cellGroup.right && ( cellGroup.right.width = (+cellGroup.right.width)-changeValue ); - - } ); - - } else { - - utils.each( cells, function( cellGroup ){ - cellGroup.left.width -= -changeValue; - } ); - - } - } - - } - - function isEditorDisabled() { - return me.body.contentEditable === "false"; - } - - function changeRowHeight(td, changeValue) { - if (Math.abs(changeValue) < 10) return; - var ut = getUETable(td); - if (ut) { - var cells = ut.getSameEndPosCells(td, "y"), - //备份需要连带变化的td的原始高度,否则后期无法获取正确的值 - backHeight = cells[0] ? cells[0].offsetHeight : 0; - for (var i = 0, cell; cell = cells[i++];) { - setCellHeight(cell, changeValue, backHeight); - } - } - - } - - /** - * 获取调整单元格大小的相关单元格 - * @isContainMergeCell 返回的结果中是否包含发生合并后的单元格 - */ - function getCellsByMoveBorder( cell, table, isContainMergeCell ) { - - if( !table ) { - table = domUtils.findParentByTagName( cell, 'table' ); - } - - if( !table ) { - return null; - } - - //获取到该单元格所在行的序列号 - var index = domUtils.getNodeIndex( cell ), - temp = cell, - rows = table.rows, - colIndex = 0; - - while( temp ) { - //获取到当前单元格在未发生单元格合并时的序列 - if( temp.nodeType === 1 ) { - colIndex += (temp.colSpan || 1); - } - temp = temp.previousSibling; - } - - temp = null; - - //记录想关的单元格 - var borderCells = []; - - utils.each(rows, function( tabRow ){ - - var cells = tabRow.cells, - currIndex = 0; - - utils.each( cells, function( tabCell ){ - - currIndex += (tabCell.colSpan || 1); - - if( currIndex === colIndex ) { - - borderCells.push({ - left: tabCell, - right: tabCell.nextSibling || null - }); - - return false; - - } else if( currIndex > colIndex ) { - - if( isContainMergeCell ) { - borderCells.push({ - left: tabCell - }); - } - - return false; - } - - - } ); - - }); - - return borderCells; - - } - - - /** - * 通过给定的单元格集合获取最小的单元格width - */ - function getMinWidthByTableCells( cells ) { - - var minWidth = Number.MAX_VALUE; - - for( var i = 0, curCell; curCell = cells[ i ] ; i++ ) { - - minWidth = Math.min( minWidth, curCell.width || getTableCellWidth( curCell ) ); - - } - - return minWidth; - - } - - function correctChangeValue( changeValue, relatedCell, cells ) { - - //为单元格的paading预留空间 - changeValue -= getTabcellSpace(); - - if( changeValue < 0 ) { - return 0; - } - - changeValue -= getTableCellWidth( relatedCell ); - - //确定方向 - var direction = changeValue < 0 ? 'left':'right'; - - changeValue = Math.abs(changeValue); - - //只关心非最后一个单元格就可以 - utils.each( cells, function( cellGroup ){ - - var curCell = cellGroup[direction]; - - //为单元格保留最小空间 - if( curCell ) { - changeValue = Math.min( changeValue, getTableCellWidth( curCell )-cellMinWidth ); - } - - - } ); - - - //修正越界 - changeValue = changeValue < 0 ? 0 : changeValue; - - return direction === 'left' ? -changeValue : changeValue; - - } - - function getTableCellWidth( cell ) { - - var width = 0, - //偏移纠正量 - offset = 0, - width = cell.offsetWidth - getTabcellSpace(); - - //最后一个节点纠正一下 - if( !cell.nextSibling ) { - - width -= getTableCellOffset( cell ); - - } - - width = width < 0 ? 0 : width; - - try { - cell.width = width; - } catch(e) { - } - - return width; - - } - - /** - * 获取单元格所在表格的最末单元格的偏移量 - */ - function getTableCellOffset( cell ) { - - tab = domUtils.findParentByTagName( cell, "table", false); - - if( tab.offsetVal === undefined ) { - - var prev = cell.previousSibling; - - if( prev ) { - - //最后一个单元格和前一个单元格的width diff结果 如果恰好为一个border width, 则条件成立 - tab.offsetVal = cell.offsetWidth - prev.offsetWidth === UT.borderWidth ? UT.borderWidth : 0; - - } else { - tab.offsetVal = 0; - } - - } - - return tab.offsetVal; - - } - - function getTabcellSpace() { - - if( UT.tabcellSpace === undefined ) { - - var cell = null, - tab = me.document.createElement("table"), - tbody = me.document.createElement("tbody"), - trow = me.document.createElement("tr"), - tabcell = me.document.createElement("td"), - mirror = null; - - tabcell.style.cssText = 'border: 0;'; - tabcell.width = 1; - - trow.appendChild( tabcell ); - trow.appendChild( mirror = tabcell.cloneNode( false ) ); - - tbody.appendChild( trow ); - - tab.appendChild( tbody ); - - tab.style.cssText = "visibility: hidden;"; - - me.body.appendChild( tab ); - - UT.paddingSpace = tabcell.offsetWidth - 1; - - var tmpTabWidth = tab.offsetWidth; - - tabcell.style.cssText = ''; - mirror.style.cssText = ''; - - UT.borderWidth = ( tab.offsetWidth - tmpTabWidth ) / 3; - - UT.tabcellSpace = UT.paddingSpace + UT.borderWidth; - - me.body.removeChild( tab ); - - } - - getTabcellSpace = function(){ return UT.tabcellSpace; }; - - return UT.tabcellSpace; - - } - - function getDragLine(editor, doc) { - if (mousedown)return; - dragLine = editor.document.createElement("div"); - domUtils.setAttributes(dragLine, { - id:"ue_tableDragLine", - unselectable:'on', - contenteditable:false, - 'onresizestart':'return false', - 'ondragstart':'return false', - 'onselectstart':'return false', - style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)" - }); - editor.body.appendChild(dragLine); - } - - function hideDragLine(editor) { - if (mousedown)return; - var line; - while (line = editor.document.getElementById('ue_tableDragLine')) { - domUtils.remove(line) - } - } - - /** - * 依据state(v|h)在cell位置显示横线 - * @param state - * @param cell - */ - function showDragLineAt(state, cell) { - if (!cell) return; - var table = domUtils.findParentByTagName(cell, "table"), - caption = table.getElementsByTagName('caption'), - width = table.offsetWidth, - height = table.offsetHeight - (caption.length > 0 ? caption[0].offsetHeight : 0), - tablePos = domUtils.getXY(table), - cellPos = domUtils.getXY(cell), css; - switch (state) { - case "h": - css = 'height:' + height + 'px;top:' + (tablePos.y + (caption.length > 0 ? caption[0].offsetHeight : 0)) + 'px;left:' + (cellPos.x + cell.offsetWidth); - dragLine.style.cssText = css + 'px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)'; - break; - case "v": - css = 'width:' + width + 'px;left:' + tablePos.x + 'px;top:' + (cellPos.y + cell.offsetHeight ); - //必须加上border:0和color:blue,否则低版ie不支持背景色显示 - dragLine.style.cssText = css + 'px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)'; - break; - default: - } - } - - /** - * 当表格边框颜色为白色时设置为虚线,true为添加虚线 - * @param editor - * @param flag - */ - function switchBorderColor(editor, flag) { - var tableArr = domUtils.getElementsByTagName(editor.body, "table"), color; - for (var i = 0, node; node = tableArr[i++];) { - var td = domUtils.getElementsByTagName(node, "td"); - if (td[0]) { - if (flag) { - color = (td[0].style.borderColor).replace(/\s/g, ""); - if (/(#ffffff)|(rgb\(255,255,255\))/ig.test(color)) - domUtils.addClass(node, "noBorderTable") - } else { - domUtils.removeClasses(node, "noBorderTable") - } - } - - } - } - - function getTableWidth(editor, needIEHack, defaultValue) { - var body = editor.body; - return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0); - } - - /** - * 获取当前拖动的单元格 - */ - function getTargetTd(editor, evt) { - - var target = domUtils.findParentByTagName(evt.target || evt.srcElement, ["td", "th"], true), - dir = null; - - if( !target ) { - return null; - } - - dir = getRelation( target, mouseCoords( evt ) ); - - //如果有前一个节点, 需要做一个修正, 否则可能会得到一个错误的td - - if( !target ) { - return null; - } - - if( dir === 'h1' && target.previousSibling ) { - - var position = domUtils.getXY( target), - cellWidth = target.offsetWidth; - - if( Math.abs( position.x + cellWidth - evt.clientX ) > cellWidth / 3 ) { - target = target.previousSibling; - } - - } else if( dir === 'v1' && target.parentNode.previousSibling ) { - - var position = domUtils.getXY( target), - cellHeight = target.offsetHeight; - - if( Math.abs( position.y + cellHeight - evt.clientY ) > cellHeight / 3 ) { - target = target.parentNode.previousSibling.firstChild; - } - - } - - - //排除了非td内部以及用于代码高亮部分的td - return target && !(editor.fireEvent("excludetable", target) === true) ? target : null; - } - -}; - - -// plugins/table.sort.js -/** - * Created with JetBrains PhpStorm. - * User: Jinqn - * Date: 13-10-12 - * Time: 上午10:20 - * To change this template use File | Settings | File Templates. - */ - -UE.UETable.prototype.sortTable = function (sortByCellIndex, compareFn) { - var table = this.table, - rows = table.rows, - trArray = [], - flag = rows[0].cells[0].tagName === "TH", - lastRowIndex = 0; - if(this.selectedTds.length){ - var range = this.cellsRange, - len = range.endRowIndex + 1; - for (var i = range.beginRowIndex; i < len; i++) { - trArray[i] = rows[i]; - } - trArray.splice(0,range.beginRowIndex); - lastRowIndex = (range.endRowIndex +1) === this.rowsNum ? 0 : range.endRowIndex +1; - }else{ - for (var i = 0,len = rows.length; i < len; i++) { - trArray[i] = rows[i]; - } - } - - var Fn = { - 'reversecurrent': function(td1,td2){ - return 1; - }, - 'orderbyasc': function(td1,td2){ - var value1 = td1.innerText||td1.textContent, - value2 = td2.innerText||td2.textContent; - return value1.localeCompare(value2); - }, - 'reversebyasc': function(td1,td2){ - var value1 = td1.innerHTML, - value2 = td2.innerHTML; - return value2.localeCompare(value1); - }, - 'orderbynum': function(td1,td2){ - var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value1||0) - (value2||0); - }, - 'reversebynum': function(td1,td2){ - var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value2||0) - (value1||0); - } - }; - - //对表格设置排序的标记data-sort-type - table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:''); - - //th不参与排序 - flag && trArray.splice(0, 1); - trArray = utils.sort(trArray,function (tr1, tr2) { - var result; - if (compareFn && typeof compareFn === "function") { - result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else if (compareFn && typeof compareFn === "number") { - result = 1; - } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) { - result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else { - result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } - return result; - }); - var fragment = table.ownerDocument.createDocumentFragment(); - for (var j = 0, len = trArray.length; j < len; j++) { - fragment.appendChild(trArray[j]); - } - var tbody = table.getElementsByTagName("tbody")[0]; - if(!lastRowIndex){ - tbody.appendChild(fragment); - }else{ - tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1]) - } -}; - -UE.plugins['tablesort'] = function () { - var me = this, - UT = UE.UETable, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }, - getTableItemsByRange = function (editor) { - return UT.getTableItemsByRange(editor); - }; - - - me.ready(function () { - //添加表格可排序的样式 - utils.cssRule('tablesort', - 'table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right;' + - ' background-image:url(' + me.options.themePath + me.options.theme + '/images/sortable.png);}', - me.document); - - //做单元格合并操作时,清除可排序标识 - me.addListener("afterexeccommand", function (type, cmd) { - if( cmd == 'mergeright' || cmd == 'mergedown' || cmd == 'mergecells') { - this.execCommand('disablesort'); - } - }); - }); - - - - //表格排序 - UE.commands['sorttable'] = { - queryCommandState: function () { - var me = this, - tableItems = getTableItemsByRange(me); - if (!tableItems.cell) return -1; - var table = tableItems.table, - cells = table.getElementsByTagName("td"); - for (var i = 0, cell; cell = cells[i++];) { - if (cell.rowSpan != 1 || cell.colSpan != 1) return -1; - } - return 0; - }, - execCommand: function (cmd, fn) { - var me = this, - range = me.selection.getRange(), - bk = range.createBookmark(true), - tableItems = getTableItemsByRange(me), - cell = tableItems.cell, - ut = getUETable(tableItems.table), - cellInfo = ut.getCellInfo(cell); - ut.sortTable(cellInfo.cellIndex, fn); - range.moveToBookmark(bk); - try{ - range.select(); - }catch(e){} - } - }; - - //设置表格可排序,清除表格可排序 - UE.commands["enablesort"] = UE.commands["disablesort"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if(table && cmd=='enablesort') { - var cells = domUtils.getElementsByTagName(table, 'th td'); - for(var i = 0; i1 || cells[i].getAttribute('rowspan')>1) return -1; - } - } - - return !table ? -1: cmd=='enablesort' ^ table.getAttribute('data-sort')!='sortEnabled' ? -1:0; - }, - execCommand: function (cmd) { - var table = getTableItemsByRange(this).table; - table.setAttribute("data-sort", cmd == "enablesort" ? "sortEnabled" : "sortDisabled"); - cmd == "enablesort" ? domUtils.addClass(table,"sortEnabled"):domUtils.removeClasses(table,"sortEnabled"); - } - }; -}; - - -// plugins/contextmenu.js -///import core -///commands 右键菜单 -///commandsName ContextMenu -///commandsTitle 右键菜单 -/** - * 右键菜单 - * @function - * @name baidu.editor.plugins.contextmenu - * @author zhanyi - */ - -UE.plugins['contextmenu'] = function () { - var me = this; - me.setOpt('enableContextMenu',true); - if(me.getOpt('enableContextMenu') === false){ - return; - } - var lang = me.getLang( "contextMenu" ), - menu, - items = me.options.contextMenu || [ - {label:lang['selectall'], cmdName:'selectall'}, - { - label:lang.cleardoc, - cmdName:'cleardoc', - exec:function () { - if ( confirm( lang.confirmclear ) ) { - this.execCommand( 'cleardoc' ); - } - } - }, - '-', - { - label:lang.unlink, - cmdName:'unlink' - }, - '-', - { - group:lang.paragraph, - icon:'justifyjustify', - subMenu:[ - { - label:lang.justifyleft, - cmdName:'justify', - value:'left' - }, - { - label:lang.justifyright, - cmdName:'justify', - value:'right' - }, - { - label:lang.justifycenter, - cmdName:'justify', - value:'center' - }, - { - label:lang.justifyjustify, - cmdName:'justify', - value:'justify' - } - ] - }, - '-', - { - group:lang.table, - icon:'table', - subMenu:[ - { - label:lang.inserttable, - cmdName:'inserttable' - }, - { - label:lang.deletetable, - cmdName:'deletetable' - }, - '-', - { - label:lang.deleterow, - cmdName:'deleterow' - }, - { - label:lang.deletecol, - cmdName:'deletecol' - }, - { - label:lang.insertcol, - cmdName:'insertcol' - }, - { - label:lang.insertcolnext, - cmdName:'insertcolnext' - }, - { - label:lang.insertrow, - cmdName:'insertrow' - }, - { - label:lang.insertrownext, - cmdName:'insertrownext' - }, - '-', - { - label:lang.insertcaption, - cmdName:'insertcaption' - }, - { - label:lang.deletecaption, - cmdName:'deletecaption' - }, - { - label:lang.inserttitle, - cmdName:'inserttitle' - }, - { - label:lang.deletetitle, - cmdName:'deletetitle' - }, - { - label:lang.inserttitlecol, - cmdName:'inserttitlecol' - }, - { - label:lang.deletetitlecol, - cmdName:'deletetitlecol' - }, - '-', - { - label:lang.mergecells, - cmdName:'mergecells' - }, - { - label:lang.mergeright, - cmdName:'mergeright' - }, - { - label:lang.mergedown, - cmdName:'mergedown' - }, - '-', - { - label:lang.splittorows, - cmdName:'splittorows' - }, - { - label:lang.splittocols, - cmdName:'splittocols' - }, - { - label:lang.splittocells, - cmdName:'splittocells' - }, - '-', - { - label:lang.averageDiseRow, - cmdName:'averagedistributerow' - }, - { - label:lang.averageDisCol, - cmdName:'averagedistributecol' - }, - '-', - { - label:lang.edittd, - cmdName:'edittd', - exec:function () { - if ( UE.ui['edittd'] ) { - new UE.ui['edittd']( this ); - } - this.getDialog('edittd').open(); - } - }, - { - label:lang.edittable, - cmdName:'edittable', - exec:function () { - if ( UE.ui['edittable'] ) { - new UE.ui['edittable']( this ); - } - this.getDialog('edittable').open(); - } - }, - { - label:lang.setbordervisible, - cmdName:'setbordervisible' - } - ] - }, - { - group:lang.tablesort, - icon:'tablesort', - subMenu:[ - { - label:lang.enablesort, - cmdName:'enablesort' - }, - { - label:lang.disablesort, - cmdName:'disablesort' - }, - '-', - { - label:lang.reversecurrent, - cmdName:'sorttable', - value:'reversecurrent' - }, - { - label:lang.orderbyasc, - cmdName:'sorttable', - value:'orderbyasc' - }, - { - label:lang.reversebyasc, - cmdName:'sorttable', - value:'reversebyasc' - }, - { - label:lang.orderbynum, - cmdName:'sorttable', - value:'orderbynum' - }, - { - label:lang.reversebynum, - cmdName:'sorttable', - value:'reversebynum' - } - ] - }, - { - group:lang.borderbk, - icon:'borderBack', - subMenu:[ - { - label:lang.setcolor, - cmdName:"interlacetable", - exec:function(){ - this.execCommand("interlacetable"); - } - }, - { - label:lang.unsetcolor, - cmdName:"uninterlacetable", - exec:function(){ - this.execCommand("uninterlacetable"); - } - }, - { - label:lang.setbackground, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["#bbb","#ccc"]}); - } - }, - { - label:lang.unsetbackground, - cmdName:"cleartablebackground", - exec:function(){ - this.execCommand("cleartablebackground"); - } - }, - { - label:lang.redandblue, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["red","blue"]}); - } - }, - { - label:lang.threecolorgradient, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["#aaa","#bbb","#ccc"]}); - } - } - ] - }, - { - group:lang.aligntd, - icon:'aligntd', - subMenu:[ - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'bottom'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'bottom'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'bottom'} - } - ] - }, - { - group:lang.aligntable, - icon:'aligntable', - subMenu:[ - { - cmdName:'tablealignment', - className: 'left', - label:lang.tableleft, - value:"left" - }, - { - cmdName:'tablealignment', - className: 'center', - label:lang.tablecenter, - value:"center" - }, - { - cmdName:'tablealignment', - className: 'right', - label:lang.tableright, - value:"right" - } - ] - }, - '-', - { - label:lang.insertparagraphbefore, - cmdName:'insertparagraph', - value:true - }, - { - label:lang.insertparagraphafter, - cmdName:'insertparagraph' - }, - { - label:lang['copy'], - cmdName:'copy' - }, - { - label:lang['paste'], - cmdName:'paste' - } - ]; - if ( !items.length ) { - return; - } - var uiUtils = UE.ui.uiUtils; - - me.addListener( 'contextmenu', function ( type, evt ) { - - var offset = uiUtils.getViewportOffsetByEvent( evt ); - me.fireEvent( 'beforeselectionchange' ); - if ( menu ) { - menu.destroy(); - } - for ( var i = 0, ti, contextItems = []; ti = items[i]; i++ ) { - var last; - (function ( item ) { - if ( item == '-' ) { - if ( (last = contextItems[contextItems.length - 1 ] ) && last !== '-' ) { - contextItems.push( '-' ); - } - } else if ( item.hasOwnProperty( "group" ) ) { - for ( var j = 0, cj, subMenu = []; cj = item.subMenu[j]; j++ ) { - (function ( subItem ) { - if ( subItem == '-' ) { - if ( (last = subMenu[subMenu.length - 1 ] ) && last !== '-' ) { - subMenu.push( '-' ); - }else{ - subMenu.splice(subMenu.length-1); - } - } else { - if ( (me.commands[subItem.cmdName] || UE.commands[subItem.cmdName] || subItem.query) && - (subItem.query ? subItem.query() : me.queryCommandState( subItem.cmdName )) > -1 ) { - subMenu.push( { - 'label':subItem.label || me.getLang( "contextMenu." + subItem.cmdName + (subItem.value || '') )||"", - 'className':'edui-for-' +subItem.cmdName + ( subItem.className ? ( ' edui-for-' + subItem.cmdName + '-' + subItem.className ) : '' ), - onclick:subItem.exec ? function () { - subItem.exec.call( me ); - } : function () { - me.execCommand( subItem.cmdName, subItem.value ); - } - } ); - } - } - })( cj ); - } - if ( subMenu.length ) { - function getLabel(){ - switch (item.icon){ - case "table": - return me.getLang( "contextMenu.table" ); - case "justifyjustify": - return me.getLang( "contextMenu.paragraph" ); - case "aligntd": - return me.getLang("contextMenu.aligntd"); - case "aligntable": - return me.getLang("contextMenu.aligntable"); - case "tablesort": - return lang.tablesort; - case "borderBack": - return lang.borderbk; - default : - return ''; - } - } - contextItems.push( { - //todo 修正成自动获取方式 - 'label':getLabel(), - className:'edui-for-' + item.icon, - 'subMenu':{ - items:subMenu, - editor:me - } - } ); - } - - } else { - //有可能commmand没有加载右键不能出来,或者没有command也想能展示出来添加query方法 - if ( (me.commands[item.cmdName] || UE.commands[item.cmdName] || item.query) && - (item.query ? item.query.call(me) : me.queryCommandState( item.cmdName )) > -1 ) { - - contextItems.push( { - 'label':item.label || me.getLang( "contextMenu." + item.cmdName ), - className:'edui-for-' + (item.icon ? item.icon : item.cmdName + (item.value || '')), - onclick:item.exec ? function () { - item.exec.call( me ); - } : function () { - me.execCommand( item.cmdName, item.value ); - } - } ); - } - - } - - })( ti ); - } - if ( contextItems[contextItems.length - 1] == '-' ) { - contextItems.pop(); - } - - menu = new UE.ui.Menu( { - items:contextItems, - className:"edui-contextmenu", - editor:me - } ); - menu.render(); - menu.showAt( offset ); - - me.fireEvent("aftershowcontextmenu",menu); - - domUtils.preventDefault( evt ); - if ( browser.ie ) { - var ieRange; - try { - ieRange = me.selection.getNative().createRange(); - } catch ( e ) { - return; - } - if ( ieRange.item ) { - var range = new dom.Range( me.document ); - range.selectNode( ieRange.item( 0 ) ).select( true, true ); - } - } - }); - - // 添加复制的flash按钮 - me.addListener('aftershowcontextmenu', function(type, menu) { - if (me.zeroclipboard) { - var items = menu.items; - for (var key in items) { - if (items[key].className == 'edui-for-copy') { - me.zeroclipboard.clip(items[key].getDom()); - } - } - } - }); - -}; - - -// plugins/shortcutmenu.js -///import core -///commands 弹出菜单 -// commandsName popupmenu -///commandsTitle 弹出菜单 -/** - * 弹出菜单 - * @function - * @name baidu.editor.plugins.popupmenu - * @author xuheng - */ - -UE.plugins['shortcutmenu'] = function () { - var me = this, - menu, - items = me.options.shortcutMenu || []; - - if (!items.length) { - return; - } - - me.addListener ('contextmenu mouseup' , function (type , e) { - var me = this, - customEvt = { - type : type , - target : e.target || e.srcElement , - screenX : e.screenX , - screenY : e.screenY , - clientX : e.clientX , - clientY : e.clientY - }; - - setTimeout (function () { - var rng = me.selection.getRange (); - if (rng.collapsed === false || type == "contextmenu") { - - if (!menu) { - menu = new baidu.editor.ui.ShortCutMenu ({ - editor : me , - items : items , - theme : me.options.theme , - className : 'edui-shortcutmenu' - }); - - menu.render (); - me.fireEvent ("afterrendershortcutmenu" , menu); - } - - menu.show (customEvt , !!UE.plugins['contextmenu']); - } - }); - - if (type == 'contextmenu') { - domUtils.preventDefault (e); - if (browser.ie9below) { - var ieRange; - try { - ieRange = me.selection.getNative().createRange(); - } catch (e) { - return; - } - if (ieRange.item) { - var range = new dom.Range (me.document); - range.selectNode (ieRange.item (0)).select (true , true); - - } - } - } - }); - - me.addListener ('keydown' , function (type) { - if (type == "keydown") { - menu && !menu.isHidden && menu.hide (); - } - - }); - -}; - - - - -// plugins/basestyle.js -/** - * B、I、sub、super命令支持 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['basestyle'] = function(){ - - /** - * 字体加粗 - * @command bold - * @param { String } cmd 命令字符串 - * @remind 对已加粗的文本内容执行该命令, 将取消加粗 - * @method execCommand - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行加粗操作 - * //第一次执行, 文本内容加粗 - * editor.execCommand( 'bold' ); - * - * //第二次执行, 文本内容取消加粗 - * editor.execCommand( 'bold' ); - * ``` - */ - - - /** - * 字体倾斜 - * @command italic - * @method execCommand - * @param { String } cmd 命令字符串 - * @remind 对已倾斜的文本内容执行该命令, 将取消倾斜 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行斜体操作 - * //第一次操作, 文本内容将变成斜体 - * editor.execCommand( 'italic' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'italic' ); - * ``` - */ - - /** - * 下标文本,与“superscript”命令互斥 - * @command subscript - * @method execCommand - * @remind 把选中的文本内容切换成下标文本, 如果当前选中的文本已经是下标, 则该操作会把文本内容还原成正常文本 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行下标操作 - * //第一次操作, 文本内容将变成下标文本 - * editor.execCommand( 'subscript' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'subscript' ); - * ``` - */ - - /** - * 上标文本,与“subscript”命令互斥 - * @command superscript - * @method execCommand - * @remind 把选中的文本内容切换成上标文本, 如果当前选中的文本已经是上标, 则该操作会把文本内容还原成正常文本 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行上标操作 - * //第一次操作, 文本内容将变成上标文本 - * editor.execCommand( 'superscript' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'superscript' ); - * ``` - */ - var basestyles = { - 'bold':['strong','b'], - 'italic':['em','i'], - 'subscript':['sub'], - 'superscript':['sup'] - }, - getObj = function(editor,tagNames){ - return domUtils.filterNodeList(editor.selection.getStartElementPath(),tagNames); - }, - me = this; - //添加快捷键 - me.addshortcutkey({ - "Bold" : "ctrl+66",//^B - "Italic" : "ctrl+73", //^I - "Underline" : "ctrl+85"//^U - }); - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('b i'),function(node){ - switch (node.tagName){ - case 'b': - node.tagName = 'strong'; - break; - case 'i': - node.tagName = 'em'; - } - }); - }); - for ( var style in basestyles ) { - (function( cmd, tagNames ) { - me.commands[cmd] = { - execCommand : function( cmdName ) { - var range = me.selection.getRange(),obj = getObj(this,tagNames); - if ( range.collapsed ) { - if ( obj ) { - var tmpText = me.document.createTextNode(''); - range.insertNode( tmpText ).removeInlineStyle( tagNames ); - range.setStartBefore(tmpText); - domUtils.remove(tmpText); - } else { - var tmpNode = range.document.createElement( tagNames[0] ); - if(cmdName == 'superscript' || cmdName == 'subscript'){ - tmpText = me.document.createTextNode(''); - range.insertNode(tmpText) - .removeInlineStyle(['sub','sup']) - .setStartBefore(tmpText) - .collapse(true); - } - range.insertNode( tmpNode ).setStart( tmpNode, 0 ); - } - range.collapse( true ); - } else { - if(cmdName == 'superscript' || cmdName == 'subscript'){ - if(!obj || obj.tagName.toLowerCase() != cmdName){ - range.removeInlineStyle(['sub','sup']); - } - } - obj ? range.removeInlineStyle( tagNames ) : range.applyInlineStyle( tagNames[0] ); - } - range.select(); - }, - queryCommandState : function() { - return getObj(this,tagNames) ? 1 : 0; - } - }; - })( style, basestyles[style] ); - } -}; - - - -// plugins/elementpath.js -/** - * 选取路径命令 - * @file - */ -UE.plugins['elementpath'] = function(){ - var currentLevel, - tagNames, - me = this; - me.setOpt('elementPathEnabled',true); - if(!me.options.elementPathEnabled){ - return; - } - me.commands['elementpath'] = { - execCommand : function( cmdName, level ) { - var start = tagNames[level], - range = me.selection.getRange(); - currentLevel = level*1; - range.selectNode(start).select(); - }, - queryCommandValue : function() { - //产生一个副本,不能修改原来的startElementPath; - var parents = [].concat(this.selection.getStartElementPath()).reverse(), - names = []; - tagNames = parents; - for(var i=0,ci;ci=parents[i];i++){ - if(ci.nodeType == 3) { - continue; - } - var name = ci.tagName.toLowerCase(); - if(name == 'img' && ci.getAttribute('anchorname')){ - name = 'anchor'; - } - names[i] = name; - if(currentLevel == i){ - currentLevel = -1; - break; - } - } - return names; - } - }; -}; - - - -// plugins/formatmatch.js -/** - * 格式刷,只格式inline的 - * @file - * @since 1.2.6.1 - */ - -/** - * 格式刷 - * @command formatmatch - * @method execCommand - * @remind 该操作不能复制段落格式 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //获取格式刷 - * editor.execCommand( 'formatmatch' ); - * ``` - */ -UE.plugins['formatmatch'] = function(){ - - var me = this, - list = [],img, - flag = 0; - - me.addListener('reset',function(){ - list = []; - flag = 0; - }); - - function addList(type,evt){ - - if(browser.webkit){ - var target = evt.target.tagName == 'IMG' ? evt.target : null; - } - - function addFormat(range){ - - if(text){ - range.selectNode(text); - } - return range.applyInlineStyle(list[list.length-1].tagName,null,list); - - } - - me.undoManger && me.undoManger.save(); - - var range = me.selection.getRange(), - imgT = target || range.getClosedNode(); - if(img && imgT && imgT.tagName == 'IMG'){ - //trace:964 - - imgT.style.cssText += ';float:' + (img.style.cssFloat || img.style.styleFloat ||'none') + ';display:' + (img.style.display||'inline'); - - img = null; - }else{ - if(!img){ - var collapsed = range.collapsed; - if(collapsed){ - var text = me.document.createTextNode('match'); - range.insertNode(text).select(); - - - } - me.__hasEnterExecCommand = true; - //不能把block上的属性干掉 - //trace:1553 - var removeFormatAttributes = me.options.removeFormatAttributes; - me.options.removeFormatAttributes = ''; - me.execCommand('removeformat'); - me.options.removeFormatAttributes = removeFormatAttributes; - me.__hasEnterExecCommand = false; - //trace:969 - range = me.selection.getRange(); - if(list.length){ - addFormat(range); - } - if(text){ - range.setStartBefore(text).collapse(true); - - } - range.select(); - text && domUtils.remove(text); - } - - } - - - - - me.undoManger && me.undoManger.save(); - me.removeListener('mouseup',addList); - flag = 0; - } - - me.commands['formatmatch'] = { - execCommand : function( cmdName ) { - - if(flag){ - flag = 0; - list = []; - me.removeListener('mouseup',addList); - return; - } - - - - var range = me.selection.getRange(); - img = range.getClosedNode(); - if(!img || img.tagName != 'IMG'){ - range.collapse(true).shrinkBoundary(); - var start = range.startContainer; - list = domUtils.findParents(start,true,function(node){ - return !domUtils.isBlockElm(node) && node.nodeType == 1; - }); - //a不能加入格式刷, 并且克隆节点 - for(var i=0,ci;ci=list[i];i++){ - if(ci.tagName == 'A'){ - list.splice(i,1); - break; - } - } - - } - - me.addListener('mouseup',addList); - flag = 1; - - - }, - queryCommandState : function() { - return flag; - }, - notNeedUndo : 1 - }; -}; - - - -// plugins/searchreplace.js -///import core -///commands 查找替换 -///commandsName SearchReplace -///commandsTitle 查询替换 -///commandsDialog dialogs\searchreplace -/** - * @description 查找替换 - * @author zhanyi - */ - -UE.plugin.register('searchreplace',function(){ - var me = this; - - var _blockElm = {'table':1,'tbody':1,'tr':1,'ol':1,'ul':1}; - - function findTextInString(textContent,opt,currentIndex){ - var str = opt.searchStr; - if(opt.dir == -1){ - textContent = textContent.split('').reverse().join(''); - str = str.split('').reverse().join(''); - currentIndex = textContent.length - currentIndex; - - } - var reg = new RegExp(str,'g' + (opt.casesensitive ? '' : 'i')),match; - - while(match = reg.exec(textContent)){ - if(match.index >= currentIndex){ - return opt.dir == -1 ? textContent.length - match.index - opt.searchStr.length : match.index; - } - } - return -1 - } - function findTextBlockElm(node,currentIndex,opt){ - var textContent,index,methodName = opt.all || opt.dir == 1 ? 'getNextDomNode' : 'getPreDomNode'; - if(domUtils.isBody(node)){ - node = node.firstChild; - } - var first = 1; - while(node){ - textContent = node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent']; - index = findTextInString(textContent,opt,currentIndex ); - first = 0; - if(index!=-1){ - return { - 'node':node, - 'index':index - } - } - node = domUtils[methodName](node); - while(node && _blockElm[node.nodeName.toLowerCase()]){ - node = domUtils[methodName](node,true); - } - if(node){ - currentIndex = opt.dir == -1 ? (node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent']).length : 0; - } - - } - } - function findNTextInBlockElm(node,index,str){ - var currentIndex = 0, - currentNode = node.firstChild, - currentNodeLength = 0, - result; - while(currentNode){ - if(currentNode.nodeType == 3){ - currentNodeLength = currentNode.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,'').length; - currentIndex += currentNodeLength; - if(currentIndex >= index){ - return { - 'node':currentNode, - 'index': currentNodeLength - (currentIndex - index) - } - } - }else if(!dtd.$empty[currentNode.tagName]){ - currentNodeLength = currentNode[browser.ie ? 'innerText' : 'textContent'].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,'').length - currentIndex += currentNodeLength; - if(currentIndex >= index){ - result = findNTextInBlockElm(currentNode,currentNodeLength - (currentIndex - index),str); - if(result){ - return result; - } - } - } - currentNode = domUtils.getNextDomNode(currentNode); - - } - } - - function searchReplace(me,opt){ - - var rng = me.selection.getRange(), - startBlockNode, - searchStr = opt.searchStr, - span = me.document.createElement('span'); - span.innerHTML = '$$ueditor_searchreplace_key$$'; - - rng.shrinkBoundary(true); - - //判断是不是第一次选中 - if(!rng.collapsed){ - rng.select(); - var rngText = me.selection.getText(); - if(new RegExp('^' + opt.searchStr + '$',(opt.casesensitive ? '' : 'i')).test(rngText)){ - if(opt.replaceStr != undefined){ - replaceText(rng,opt.replaceStr); - rng.select(); - return true; - }else{ - rng.collapse(opt.dir == -1) - } - - } - } - - - rng.insertNode(span); - rng.enlargeToBlockElm(true); - startBlockNode = rng.startContainer; - var currentIndex = startBlockNode[browser.ie ? 'innerText' : 'textContent'].indexOf('$$ueditor_searchreplace_key$$'); - rng.setStartBefore(span); - domUtils.remove(span); - var result = findTextBlockElm(startBlockNode,currentIndex,opt); - if(result){ - var rngStart = findNTextInBlockElm(result.node,result.index,searchStr); - var rngEnd = findNTextInBlockElm(result.node,result.index + searchStr.length,searchStr); - rng.setStart(rngStart.node,rngStart.index).setEnd(rngEnd.node,rngEnd.index); - - if(opt.replaceStr !== undefined){ - replaceText(rng,opt.replaceStr) - } - rng.select(); - return true; - }else{ - rng.setCursor() - } - - } - function replaceText(rng,str){ - - str = me.document.createTextNode(str); - rng.deleteContents().insertNode(str); - - } - return { - commands:{ - 'searchreplace':{ - execCommand:function(cmdName,opt){ - utils.extend(opt,{ - all : false, - casesensitive : false, - dir : 1 - },true); - var num = 0; - if(opt.all){ - - var rng = me.selection.getRange(), - first = me.body.firstChild; - if(first && first.nodeType == 1){ - rng.setStart(first,0); - rng.shrinkBoundary(true); - }else if(first.nodeType == 3){ - rng.setStartBefore(first) - } - rng.collapse(true).select(true); - if(opt.replaceStr !== undefined){ - me.fireEvent('saveScene'); - } - while(searchReplace(this,opt)){ - num++; - } - if(num){ - me.fireEvent('saveScene'); - } - }else{ - if(opt.replaceStr !== undefined){ - me.fireEvent('saveScene'); - } - if(searchReplace(this,opt)){ - num++ - } - if(num){ - me.fireEvent('saveScene'); - } - - } - - return num; - }, - notNeedUndo:1 - } - } - } -}); - -// plugins/customstyle.js -/** - * 自定义样式 - * @file - * @since 1.2.6.1 - */ - -/** - * 根据config配置文件里“customstyle”选项的值对匹配的标签执行样式替换。 - * @command customstyle - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'customstyle' ); - * ``` - */ -UE.plugins['customstyle'] = function() { - var me = this; - me.setOpt({ 'customstyle':[ - {tag:'h1',name:'tc', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, - {tag:'h1',name:'tl', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;'}, - {tag:'span',name:'im', style:'font-size:16px;font-style:italic;font-weight:bold;line-height:18px;'}, - {tag:'span',name:'hi', style:'font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;'} - ]}); - me.commands['customstyle'] = { - execCommand : function(cmdName, obj) { - var me = this, - tagName = obj.tag, - node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label'); - }, true), - range,bk,tmpObj = {}; - for (var p in obj) { - if(obj[p]!==undefined) - tmpObj[p] = obj[p]; - } - delete tmpObj.tag; - if (node && node.getAttribute('label') == obj.label) { - range = this.selection.getRange(); - bk = range.createBookmark(); - if (range.collapsed) { - //trace:1732 删掉自定义标签,要有p来回填站位 - if(dtd.$block[node.tagName]){ - var fillNode = me.document.createElement('p'); - domUtils.moveChild(node, fillNode); - node.parentNode.insertBefore(fillNode, node); - domUtils.remove(node); - }else{ - domUtils.remove(node,true); - } - - } else { - - var common = domUtils.getCommonAncestor(bk.start, bk.end), - nodes = domUtils.getElementsByTagName(common, tagName); - if(new RegExp(tagName,'i').test(common.tagName)){ - nodes.push(common); - } - for (var i = 0,ni; ni = nodes[i++];) { - if (ni.getAttribute('label') == obj.label) { - var ps = domUtils.getPosition(ni, bk.start),pe = domUtils.getPosition(ni, bk.end); - if ((ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) - && - (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS) - ) - if (dtd.$block[tagName]) { - var fillNode = me.document.createElement('p'); - domUtils.moveChild(ni, fillNode); - ni.parentNode.insertBefore(fillNode, ni); - } - domUtils.remove(ni, true); - } - } - node = domUtils.findParent(common, function(node) { - return node.getAttribute('label') == obj.label; - }, true); - if (node) { - - domUtils.remove(node, true); - - } - - } - range.moveToBookmark(bk).select(); - } else { - if (dtd.$block[tagName]) { - this.execCommand('paragraph', tagName, tmpObj,'customstyle'); - range = me.selection.getRange(); - if (!range.collapsed) { - range.collapse(); - node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label') == obj.label; - }, true); - var pNode = me.document.createElement('p'); - domUtils.insertAfter(node, pNode); - domUtils.fillNode(me.document, pNode); - range.setStart(pNode, 0).setCursor(); - } - } else { - - range = me.selection.getRange(); - if (range.collapsed) { - node = me.document.createElement(tagName); - domUtils.setAttributes(node, tmpObj); - range.insertNode(node).setStart(node, 0).setCursor(); - - return; - } - - bk = range.createBookmark(); - range.applyInlineStyle(tagName, tmpObj).moveToBookmark(bk).select(); - } - } - - }, - queryCommandValue : function() { - var parent = domUtils.filterNodeList( - this.selection.getStartElementPath(), - function(node){return node.getAttribute('label')} - ); - return parent ? parent.getAttribute('label') : ''; - } - }; - //当去掉customstyle是,如果是块元素,用p代替 - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 32 || keyCode == 13) { - var range = me.selection.getRange(); - if (range.collapsed) { - var node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label'); - }, true); - if (node && dtd.$block[node.tagName] && domUtils.isEmptyNode(node)) { - var p = me.document.createElement('p'); - domUtils.insertAfter(node, p); - domUtils.fillNode(me.document, p); - domUtils.remove(node); - range.setStart(p, 0).setCursor(); - - - } - } - } - }); -}; - -// plugins/catchremoteimage.js -///import core -///commands 远程图片抓取 -///commandsName catchRemoteImage,catchremoteimageenable -///commandsTitle 远程图片抓取 -/** - * 远程图片抓取,当开启本插件时所有不符合本地域名的图片都将被抓取成为本地服务器上的图片 - */ -UE.plugins['catchremoteimage'] = function () { - var me = this, - ajax = UE.ajax; - - /* 设置默认值 */ - if (me.options.catchRemoteImageEnable === false) return; - me.setOpt({ - catchRemoteImageEnable: false - }); - - me.addListener("afterpaste", function () { - me.fireEvent("catchRemoteImage"); - }); - - me.addListener("catchRemoteImage", function () { - - var catcherLocalDomain = me.getOpt('catcherLocalDomain'), - catcherActionUrl = me.getActionUrl(me.getOpt('catcherActionName')), - catcherUrlPrefix = me.getOpt('catcherUrlPrefix'), - catcherFieldName = me.getOpt('catcherFieldName'); - - var remoteImages = [], - imgs = domUtils.getElementsByTagName(me.document, "img"), - test = function (src, urls) { - if (src.indexOf(location.host) != -1 || /(^\.)|(^\/)/.test(src)) { - return true; - } - if (urls) { - for (var j = 0, url; url = urls[j++];) { - if (src.indexOf(url) !== -1) { - return true; - } - } - } - return false; - }; - - for (var i = 0, ci; ci = imgs[i++];) { - if (ci.getAttribute("word_img")) { - continue; - } - var src = ci.getAttribute("_src") || ci.src || ""; - if (/^(https?|ftp):/i.test(src) && !test(src, catcherLocalDomain)) { - remoteImages.push(src); - } - } - - if (remoteImages.length) { - catchremoteimage(remoteImages, { - //成功抓取 - success: function (r) { - try { - var info = r.state !== undefined ? r:eval("(" + r.responseText + ")"); - } catch (e) { - return; - } - - /* 获取源路径和新路径 */ - var i, j, ci, cj, oldSrc, newSrc, list = info.list; - - for (i = 0; ci = imgs[i++];) { - oldSrc = ci.getAttribute("_src") || ci.src || ""; - for (j = 0; cj = list[j++];) { - if (oldSrc == cj.source && cj.state == "SUCCESS") { //抓取失败时不做替换处理 - newSrc = catcherUrlPrefix + cj.url; - domUtils.setAttributes(ci, { - "src": newSrc, - "_src": newSrc - }); - break; - } - } - } - me.fireEvent('catchremotesuccess') - }, - //回调失败,本次请求超时 - error: function () { - me.fireEvent("catchremoteerror"); - } - }); - } - - function catchremoteimage(imgs, callbacks) { - var params = utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(catcherActionUrl + (catcherActionUrl.indexOf('?') == -1 ? '?':'&') + params), - isJsonp = utils.isCrossDomainUrl(url), - opt = { - 'method': 'POST', - 'dataType': isJsonp ? 'jsonp':'', - 'timeout': 60000, //单位:毫秒,回调请求超时设置。目标用户如果网速不是很快的话此处建议设置一个较大的数值 - 'onsuccess': callbacks["success"], - 'onerror': callbacks["error"] - }; - opt[catcherFieldName] = imgs; - ajax.request(url, opt); - } - - }); -}; - -// plugins/snapscreen.js -/** - * 截屏插件,为UEditor提供插入支持 - * @file - * @since 1.4.2 - */ -UE.plugin.register('snapscreen', function (){ - - var me = this; - var snapplugin; - - function getLocation(url){ - var search, - a = document.createElement('a'), - params = utils.serializeParam(me.queryCommandValue('serverparam')) || ''; - - a.href = url; - if (browser.ie) { - a.href = a.href; - } - - - search = a.search; - if (params) { - search = search + (search.indexOf('?') == -1 ? '?':'&')+ params; - search = search.replace(/[&]+/ig, '&'); - } - return { - 'port': a.port, - 'hostname': a.hostname, - 'path': a.pathname + search || + a.hash - } - } - - return { - commands:{ - /** - * 字体背景颜色 - * @command snapscreen - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand('snapscreen'); - * ``` - */ - 'snapscreen':{ - execCommand:function (cmd) { - var url, local, res; - var lang = me.getLang("snapScreen_plugin"); - - if(!snapplugin){ - var container = me.container; - var doc = me.container.ownerDocument || me.container.document; - snapplugin = doc.createElement("object"); - try{snapplugin.type = "application/x-pluginbaidusnap";}catch(e){ - return; - } - snapplugin.style.cssText = "position:absolute;left:-9999px;width:0;height:0;"; - snapplugin.setAttribute("width","0"); - snapplugin.setAttribute("height","0"); - container.appendChild(snapplugin); - } - - function onSuccess(rs){ - try{ - rs = eval("("+ rs +")"); - if(rs.state == 'SUCCESS'){ - var opt = me.options; - me.execCommand('insertimage', { - src: opt.snapscreenUrlPrefix + rs.url, - _src: opt.snapscreenUrlPrefix + rs.url, - alt: rs.title || '', - floatStyle: opt.snapscreenImgAlign - }); - } else { - alert(rs.state); - } - }catch(e){ - alert(lang.callBackErrorMsg); - } - } - url = me.getActionUrl(me.getOpt('snapscreenActionName')); - local = getLocation(url); - setTimeout(function () { - try{ - res =snapplugin.saveSnapshot(local.hostname, local.path, local.port); - }catch(e){ - me.ui._dialogs['snapscreenDialog'].open(); - return; - } - - onSuccess(res); - }, 50); - }, - queryCommandState: function(){ - return (navigator.userAgent.indexOf("Windows",0) != -1) ? 0:-1; - } - } - } - } -}); - - -// plugins/insertparagraph.js -/** - * 插入段落 - * @file - * @since 1.2.6.1 - */ - - -/** - * 插入段落 - * @command insertparagraph - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * editor.execCommand( 'insertparagraph' ); - * ``` - */ - -UE.commands['insertparagraph'] = { - execCommand : function( cmdName,front) { - var me = this, - range = me.selection.getRange(), - start = range.startContainer,tmpNode; - while(start ){ - if(domUtils.isBody(start)){ - break; - } - tmpNode = start; - start = start.parentNode; - } - if(tmpNode){ - var p = me.document.createElement('p'); - if(front){ - tmpNode.parentNode.insertBefore(p,tmpNode) - }else{ - tmpNode.parentNode.insertBefore(p,tmpNode.nextSibling) - } - domUtils.fillNode(me.document,p); - range.setStart(p,0).setCursor(false,true); - } - } -}; - - - -// plugins/webapp.js -/** - * 百度应用 - * @file - * @since 1.2.6.1 - */ - - -/** - * 插入百度应用 - * @command webapp - * @method execCommand - * @remind 需要百度APPKey - * @remind 百度应用主页: http://app.baidu.com/ - * @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度, - * height=>应用容器高度,logo=>应用logo,url=>应用地址 - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'webapp' , { - * title: '植物大战僵尸', - * width: 560, - * height: 465, - * logo: '应用展示的图片', - * url: '百度应用的地址' - * } ); - * ``` - */ - -//UE.plugins['webapp'] = function () { -// var me = this; -// function createInsertStr( obj, toIframe, addParagraph ) { -// return !toIframe ? -// (addParagraph ? '

    ' : '') + '' + -// (addParagraph ? '

    ' : '') -// : -// ''; -// } -// -// function switchImgAndIframe( img2frame ) { -// var tmpdiv, -// nodes = domUtils.getElementsByTagName( me.document, !img2frame ? "iframe" : "img" ); -// for ( var i = 0, node; node = nodes[i++]; ) { -// if ( node.className != "edui-faked-webapp" ){ -// continue; -// } -// tmpdiv = me.document.createElement( "div" ); -// tmpdiv.innerHTML = createInsertStr( img2frame ? {url:node.getAttribute( "_url" ), width:node.width, height:node.height,title:node.title,logo:node.style.backgroundImage.replace("url(","").replace(")","")} : {url:node.getAttribute( "src", 2 ),title:node.title, width:node.width, height:node.height,logo:node.getAttribute("logo_url")}, img2frame ? true : false,false ); -// node.parentNode.replaceChild( tmpdiv.firstChild, node ); -// } -// } -// -// me.addListener( "beforegetcontent", function () { -// switchImgAndIframe( true ); -// } ); -// me.addListener( 'aftersetcontent', function () { -// switchImgAndIframe( false ); -// } ); -// me.addListener( 'aftergetcontent', function ( cmdName ) { -// if ( cmdName == 'aftergetcontent' && me.queryCommandState( 'source' ) ){ -// return; -// } -// switchImgAndIframe( false ); -// } ); -// -// me.commands['webapp'] = { -// execCommand:function ( cmd, obj ) { -// me.execCommand( "inserthtml", createInsertStr( obj, false,true ) ); -// } -// }; -//}; - -UE.plugin.register('webapp', function (){ - var me = this; - function createInsertStr(obj,toEmbed){ - return !toEmbed ? - '' - : - '' - - } - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(node){ - var html; - if(node.getAttr('class') == 'edui-faked-webapp'){ - html = createInsertStr({ - title:node.getAttr('title'), - 'width':node.getAttr('width'), - 'height':node.getAttr('height'), - 'align':node.getAttr('align'), - 'cssfloat':node.getStyle('float'), - 'url':node.getAttr("_url"), - 'logo':node.getAttr('_logo_url') - },true); - var embed = UE.uNode.createElement(html); - node.parentNode.replaceChild(embed,node); - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('iframe'),function(node){ - if(node.getAttr('class') == 'edui-faked-webapp'){ - var img = UE.uNode.createElement(createInsertStr({ - title:node.getAttr('title'), - 'width':node.getAttr('width'), - 'height':node.getAttr('height'), - 'align':node.getAttr('align'), - 'cssfloat':node.getStyle('float'), - 'url':node.getAttr("src"), - 'logo':node.getAttr('logo_url') - })); - node.parentNode.replaceChild(img,node); - } - }) - - }, - commands:{ - /** - * 插入百度应用 - * @command webapp - * @method execCommand - * @remind 需要百度APPKey - * @remind 百度应用主页: http://app.baidu.com/ - * @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度, - * height=>应用容器高度,logo=>应用logo,url=>应用地址 - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'webapp' , { - * title: '植物大战僵尸', - * width: 560, - * height: 465, - * logo: '应用展示的图片', - * url: '百度应用的地址' - * } ); - * ``` - */ - 'webapp':{ - execCommand:function (cmd, obj) { - - var me = this, - str = createInsertStr(utils.extend(obj,{ - align:'none' - }), false); - me.execCommand("inserthtml",str); - }, - queryCommandState:function () { - var me = this, - img = me.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-webapp"); - return flag ? 1 : 0; - } - } - } - } -}); - -// plugins/template.js -///import core -///import plugins\inserthtml.js -///import plugins\cleardoc.js -///commands 模板 -///commandsName template -///commandsTitle 模板 -///commandsDialog dialogs\template -UE.plugins['template'] = function () { - UE.commands['template'] = { - execCommand:function (cmd, obj) { - obj.html && this.execCommand("inserthtml", obj.html); - } - }; - this.addListener("click", function (type, evt) { - var el = evt.target || evt.srcElement, - range = this.selection.getRange(); - var tnode = domUtils.findParent(el, function (node) { - if (node.className && domUtils.hasClass(node, "ue_t")) { - return node; - } - }, true); - tnode && range.selectNode(tnode).shrinkBoundary().select(); - }); - this.addListener("keydown", function (type, evt) { - var range = this.selection.getRange(); - if (!range.collapsed) { - if (!evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - var tnode = domUtils.findParent(range.startContainer, function (node) { - if (node.className && domUtils.hasClass(node, "ue_t")) { - return node; - } - }, true); - if (tnode) { - domUtils.removeClasses(tnode, ["ue_t"]); - } - } - } - }); -}; - - -// plugins/music.js -/** - * 插入音乐命令 - * @file - */ -UE.plugin.register('music', function (){ - var me = this; - function creatInsertStr(url,width,height,align,cssfloat,toEmbed){ - return !toEmbed ? - '' - : - ''; - } - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(node){ - var html; - if(node.getAttr('class') == 'edui-faked-music'){ - var cssfloat = node.getStyle('float'); - var align = node.getAttr('align'); - html = creatInsertStr(node.getAttr("_url"), node.getAttr('width'), node.getAttr('height'), align, cssfloat, true); - var embed = UE.uNode.createElement(html); - node.parentNode.replaceChild(embed,node); - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('embed'),function(node){ - if(node.getAttr('class') == 'edui-faked-music'){ - var cssfloat = node.getStyle('float'); - var align = node.getAttr('align'); - html = creatInsertStr(node.getAttr("src"), node.getAttr('width'), node.getAttr('height'), align, cssfloat,false); - var img = UE.uNode.createElement(html); - node.parentNode.replaceChild(img,node); - } - }) - - }, - commands:{ - /** - * 插入音乐 - * @command music - * @method execCommand - * @param { Object } musicOptions 插入音乐的参数项, 支持的key有: url=>音乐地址; - * width=>音乐容器宽度;height=>音乐容器高度;align=>音乐文件的对齐方式, 可选值有: left, center, right, none - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'music' , { - * width: 400, - * height: 95, - * align: "center", - * url: "音乐地址" - * } ); - * ``` - */ - 'music':{ - execCommand:function (cmd, musicObj) { - var me = this, - str = creatInsertStr(musicObj.url, musicObj.width || 400, musicObj.height || 95, "none", false); - me.execCommand("inserthtml",str); - }, - queryCommandState:function () { - var me = this, - img = me.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-music"); - return flag ? 1 : 0; - } - } - } - } -}); - -// plugins/autoupload.js -/** - * @description - * 1.拖放文件到编辑区域,自动上传并插入到选区 - * 2.插入粘贴板的图片,自动上传并插入到选区 - * @author Jinqn - * @date 2013-10-14 - */ -UE.plugin.register('autoupload', function (){ - - function sendAndInsertFile(file, editor) { - var me = editor; - //模拟数据 - var fieldName, urlPrefix, maxSize, allowFiles, actionUrl, - loadingHtml, errorHandler, successHandler, - filetype = /image\/\w+/i.test(file.type) ? 'image':'file', - loadingId = 'loading_' + (+new Date()).toString(36); - - fieldName = me.getOpt(filetype + 'FieldName'); - urlPrefix = me.getOpt(filetype + 'UrlPrefix'); - maxSize = me.getOpt(filetype + 'MaxSize'); - allowFiles = me.getOpt(filetype + 'AllowFiles'); - actionUrl = me.getActionUrl(me.getOpt(filetype + 'ActionName')); - errorHandler = function(title) { - var loader = me.document.getElementById(loadingId); - loader && domUtils.remove(loader); - me.fireEvent('showmessage', { - 'id': loadingId, - 'content': title, - 'type': 'error', - 'timeout': 4000 - }); - }; - - if (filetype == 'image') { - loadingHtml = ''; - successHandler = function(data) { - var link = urlPrefix + data.url, - loader = me.document.getElementById(loadingId); - if (loader) { - loader.setAttribute('src', link); - loader.setAttribute('_src', link); - loader.setAttribute('title', data.title || ''); - loader.setAttribute('alt', data.original || ''); - loader.removeAttribute('id'); - domUtils.removeClasses(loader, 'loadingclass'); - } - }; - } else { - loadingHtml = '

    ' + - '' + - '

    '; - successHandler = function(data) { - var link = urlPrefix + data.url, - loader = me.document.getElementById(loadingId); - - var rng = me.selection.getRange(), - bk = rng.createBookmark(); - rng.selectNode(loader).select(); - me.execCommand('insertfile', {'url': link}); - rng.moveToBookmark(bk).select(); - }; - } - - /* 插入loading的占位符 */ - me.execCommand('inserthtml', loadingHtml); - - /* 判断后端配置是否没有加载成功 */ - if (!me.getOpt(filetype + 'ActionName')) { - errorHandler(me.getLang('autoupload.errorLoadConfig')); - return; - } - /* 判断文件大小是否超出限制 */ - if(file.size > maxSize) { - errorHandler(me.getLang('autoupload.exceedSizeError')); - return; - } - /* 判断文件格式是否超出允许 */ - var fileext = file.name ? file.name.substr(file.name.lastIndexOf('.')):''; - if ((fileext && filetype != 'image') || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) { - errorHandler(me.getLang('autoupload.exceedTypeError')); - return; - } - - /* 创建Ajax并提交 */ - var xhr = new XMLHttpRequest(), - fd = new FormData(), - params = utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - - fd.append(fieldName, file, file.name || ('blob.' + file.type.substr('image/'.length))); - fd.append('type', 'ajax'); - xhr.open("post", url, true); - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - xhr.addEventListener('load', function (e) { - try{ - var json = (new Function("return " + utils.trim(e.target.response)))(); - if (json.state == 'SUCCESS' && json.url) { - successHandler(json); - } else { - errorHandler(json.state); - } - }catch(er){ - errorHandler(me.getLang('autoupload.loadError')); - } - }); - xhr.send(fd); - } - - function getPasteImage(e){ - return e.clipboardData && e.clipboardData.items && e.clipboardData.items.length == 1 && /^image\//.test(e.clipboardData.items[0].type) ? e.clipboardData.items:null; - } - function getDropImage(e){ - return e.dataTransfer && e.dataTransfer.files ? e.dataTransfer.files:null; - } - - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(n){ - if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - utils.each(root.getNodesByTagName('p'),function(n){ - if (/\bloadpara\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - }, - bindEvents:{ - //插入粘贴板的图片,拖放插入图片 - 'ready':function(e){ - var me = this; - if(window.FormData && window.FileReader) { - domUtils.on(me.body, 'paste drop', function(e){ - var hasImg = false, - items; - //获取粘贴板文件列表或者拖放文件列表 - items = e.type == 'paste' ? getPasteImage(e):getDropImage(e); - if(items){ - var len = items.length, - file; - while (len--){ - file = items[len]; - if(file.getAsFile) file = file.getAsFile(); - if(file && file.size > 0) { - sendAndInsertFile(file, me); - hasImg = true; - } - } - hasImg && e.preventDefault(); - } - - }); - //取消拖放图片时出现的文字光标位置提示 - domUtils.on(me.body, 'dragover', function (e) { - if(e.dataTransfer.types[0] == 'Files') { - e.preventDefault(); - } - }); - - //设置loading的样式 - utils.cssRule('loading', - '.loadingclass{display:inline-block;cursor:default;background: url(\'' - + this.options.themePath - + this.options.theme +'/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n' + - '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' - + this.options.themePath - + this.options.theme +'/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' + - '}', - this.document); - } - } - } - } -}); - -// plugins/autosave.js -UE.plugin.register('autosave', function (){ - - var me = this, - //无限循环保护 - lastSaveTime = new Date(), - //最小保存间隔时间 - MIN_TIME = 20, - //auto save key - saveKey = null; - - function save ( editor ) { - - var saveData; - - if ( new Date() - lastSaveTime < MIN_TIME ) { - return; - } - - if ( !editor.hasContents() ) { - //这里不能调用命令来删除, 会造成事件死循环 - saveKey && me.removePreferences( saveKey ); - return; - } - - lastSaveTime = new Date(); - - editor._saveFlag = null; - - saveData = me.body.innerHTML; - - if ( editor.fireEvent( "beforeautosave", { - content: saveData - } ) === false ) { - return; - } - - me.setPreferences( saveKey, saveData ); - - editor.fireEvent( "afterautosave", { - content: saveData - } ); - - } - - return { - defaultOptions: { - //默认间隔时间 - saveInterval: 500, - enableAutoSave: true // HaoChuan9421 - }, - bindEvents:{ - 'ready':function(){ - - var _suffix = "-drafts-data", - key = null; - - if ( me.key ) { - key = me.key + _suffix; - } else { - key = ( me.container.parentNode.id || 'ue-common' ) + _suffix; - } - - //页面地址+编辑器ID 保持唯一 - saveKey = ( location.protocol + location.host + location.pathname ).replace( /[.:\/]/g, '_' ) + key; - - }, - - 'contentchange': function () { - // HaoChuan9421 - if (!me.getOpt('enableAutoSave')) { - return; - } - - if ( !saveKey ) { - return; - } - - if ( me._saveFlag ) { - window.clearTimeout( me._saveFlag ); - } - - if ( me.options.saveInterval > 0 ) { - - me._saveFlag = window.setTimeout( function () { - - save( me ); - - }, me.options.saveInterval ); - - } else { - - save(me); - - } - - - } - }, - commands:{ - 'clearlocaldata':{ - execCommand:function (cmd, name) { - if ( saveKey && me.getPreferences( saveKey ) ) { - me.removePreferences( saveKey ) - } - }, - notNeedUndo: true, - ignoreContentChange:true - }, - - 'getlocaldata':{ - execCommand:function (cmd, name) { - return saveKey ? me.getPreferences( saveKey ) || '' : ''; - }, - notNeedUndo: true, - ignoreContentChange:true - }, - - 'drafts':{ - execCommand:function (cmd, name) { - if ( saveKey ) { - me.body.innerHTML = me.getPreferences( saveKey ) || '

    '+domUtils.fillHtml+'

    '; - me.focus(true); - } - }, - queryCommandState: function () { - return saveKey ? ( me.getPreferences( saveKey ) === null ? -1 : 0 ) : -1; - }, - notNeedUndo: true, - ignoreContentChange:true - } - } - } - -}); - -// plugins/charts.js -UE.plugin.register('charts', function (){ - - var me = this; - - return { - bindEvents: { - 'chartserror': function () { - } - }, - commands:{ - 'charts': { - execCommand: function ( cmd, data ) { - - var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true), - flagText = [], - config = {}; - - if ( !tableNode ) { - return false; - } - - if ( !validData( tableNode ) ) { - me.fireEvent( "chartserror" ); - return false; - } - - config.title = data.title || ''; - config.subTitle = data.subTitle || ''; - config.xTitle = data.xTitle || ''; - config.yTitle = data.yTitle || ''; - config.suffix = data.suffix || ''; - config.tip = data.tip || ''; - //数据对齐方式 - config.dataFormat = data.tableDataFormat || ''; - //图表类型 - config.chartType = data.chartType || 0; - - for ( var key in config ) { - - if ( !config.hasOwnProperty( key ) ) { - continue; - } - - flagText.push( key+":"+config[ key ] ); - - } - - tableNode.setAttribute( "data-chart", flagText.join( ";" ) ); - domUtils.addClass( tableNode, "edui-charts-table" ); - - - - }, - queryCommandState: function ( cmd, name ) { - - var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true); - return tableNode && validData( tableNode ) ? 0 : -1; - - } - } - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('table'),function( tableNode ){ - - if ( tableNode.getAttr("data-chart") !== undefined ) { - tableNode.setAttr("style"); - } - - }) - - }, - outputRule:function(root){ - utils.each(root.getNodesByTagName('table'),function( tableNode ){ - - if ( tableNode.getAttr("data-chart") !== undefined ) { - tableNode.setAttr("style", "display: none;"); - } - - }) - - } - } - - function validData ( table ) { - - var firstRows = null, - cellCount = 0; - - //行数不够 - if ( table.rows.length < 2 ) { - return false; - } - - //列数不够 - if ( table.rows[0].cells.length < 2 ) { - return false; - } - - //第一行所有cell必须是th - firstRows = table.rows[ 0 ].cells; - cellCount = firstRows.length; - - for ( var i = 0, cell; cell = firstRows[ i ]; i++ ) { - - if ( cell.tagName.toLowerCase() !== 'th' ) { - return false; - } - - } - - for ( var i = 1, row; row = table.rows[ i ]; i++ ) { - - //每行单元格数不匹配, 返回false - if ( row.cells.length != cellCount ) { - return false; - } - - //第一列不是th也返回false - if ( row.cells[0].tagName.toLowerCase() !== 'th' ) { - return false; - } - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - var value = utils.trim( ( cell.innerText || cell.textContent || '' ) ); - - value = value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' ); - - //必须是数字 - if ( !/^\d*\.?\d+$/.test( value ) ) { - return false; - } - - } - - } - - return true; - - } - -}); - -// plugins/section.js -/** - * 目录大纲支持插件 - * @file - * @since 1.3.0 - */ -UE.plugin.register('section', function (){ - /* 目录节点对象 */ - function Section(option){ - this.tag = ''; - this.level = -1, - this.dom = null; - this.nextSection = null; - this.previousSection = null; - this.parentSection = null; - this.startAddress = []; - this.endAddress = []; - this.children = []; - } - function getSection(option) { - var section = new Section(); - return utils.extend(section, option); - } - function getNodeFromAddress(startAddress, root) { - var current = root; - for(var i = 0;i < startAddress.length; i++) { - if(!current.childNodes) return null; - current = current.childNodes[startAddress[i]]; - } - return current; - } - - var me = this; - - return { - bindMultiEvents:{ - type: 'aftersetcontent afterscencerestore', - handler: function(){ - me.fireEvent('updateSections'); - } - }, - bindEvents:{ - /* 初始化、拖拽、粘贴、执行setcontent之后 */ - 'ready': function (){ - me.fireEvent('updateSections'); - domUtils.on(me.body, 'drop paste', function(){ - me.fireEvent('updateSections'); - }); - }, - /* 执行paragraph命令之后 */ - 'afterexeccommand': function (type, cmd) { - if(cmd == 'paragraph') { - me.fireEvent('updateSections'); - } - }, - /* 部分键盘操作,触发updateSections事件 */ - 'keyup': function (type, e) { - var me = this, - range = me.selection.getRange(); - if(range.collapsed != true) { - me.fireEvent('updateSections'); - } else { - var keyCode = e.keyCode || e.which; - if(keyCode == 13 || keyCode == 8 || keyCode == 46) { - me.fireEvent('updateSections'); - } - } - } - }, - commands:{ - 'getsections': { - execCommand: function (cmd, levels) { - var levelFn = levels || ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']; - - for (var i = 0; i < levelFn.length; i++) { - if (typeof levelFn[i] == 'string') { - levelFn[i] = function(fn){ - return function(node){ - return node.tagName == fn.toUpperCase() - }; - }(levelFn[i]); - } else if (typeof levelFn[i] != 'function') { - levelFn[i] = function (node) { - return null; - } - } - } - function getSectionLevel(node) { - for (var i = 0; i < levelFn.length; i++) { - if (levelFn[i](node)) return i; - } - return -1; - } - - var me = this, - Directory = getSection({'level':-1, 'title':'root'}), - previous = Directory; - - function traversal(node, Directory) { - var level, - tmpSection = null, - parent, - child, - children = node.childNodes; - for (var i = 0, len = children.length; i < len; i++) { - child = children[i]; - level = getSectionLevel(child); - if (level >= 0) { - var address = me.selection.getRange().selectNode(child).createAddress(true).startAddress, - current = getSection({ - 'tag': child.tagName, - 'title': child.innerText || child.textContent || '', - 'level': level, - 'dom': child, - 'startAddress': utils.clone(address, []), - 'endAddress': utils.clone(address, []), - 'children': [] - }); - previous.nextSection = current; - current.previousSection = previous; - parent = previous; - while(level <= parent.level){ - parent = parent.parentSection; - } - current.parentSection = parent; - parent.children.push(current); - tmpSection = previous = current; - } else { - child.nodeType === 1 && traversal(child, Directory); - tmpSection && tmpSection.endAddress[tmpSection.endAddress.length - 1] ++; - } - } - } - traversal(me.body, Directory); - return Directory; - }, - notNeedUndo: true - }, - 'movesection': { - execCommand: function (cmd, sourceSection, targetSection, isAfter) { - - var me = this, - targetAddress, - target; - - if(!sourceSection || !targetSection || targetSection.level == -1) return; - - targetAddress = isAfter ? targetSection.endAddress:targetSection.startAddress; - target = getNodeFromAddress(targetAddress, me.body); - - /* 判断目标地址是否被源章节包含 */ - if(!targetAddress || !target || isContainsAddress(sourceSection.startAddress, sourceSection.endAddress, targetAddress)) return; - - var startNode = getNodeFromAddress(sourceSection.startAddress, me.body), - endNode = getNodeFromAddress(sourceSection.endAddress, me.body), - current, - nextNode; - - if(isAfter) { - current = endNode; - while ( current && !(domUtils.getPosition( startNode, current ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.previousSibling; - domUtils.insertAfter(target, current); - if(current == startNode) break; - current = nextNode; - } - } else { - current = startNode; - while ( current && !(domUtils.getPosition( current, endNode ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.nextSibling; - target.parentNode.insertBefore(current, target); - if(current == endNode) break; - current = nextNode; - } - } - - me.fireEvent('updateSections'); - - /* 获取地址的包含关系 */ - function isContainsAddress(startAddress, endAddress, addressTarget){ - var isAfterStartAddress = false, - isBeforeEndAddress = false; - for(var i = 0; i< startAddress.length; i++){ - if(i >= addressTarget.length) break; - if(addressTarget[i] > startAddress[i]) { - isAfterStartAddress = true; - break; - } else if(addressTarget[i] < startAddress[i]) { - break; - } - } - for(var i = 0; i< endAddress.length; i++){ - if(i >= addressTarget.length) break; - if(addressTarget[i] < startAddress[i]) { - isBeforeEndAddress = true; - break; - } else if(addressTarget[i] > startAddress[i]) { - break; - } - } - return isAfterStartAddress && isBeforeEndAddress; - } - } - }, - 'deletesection': { - execCommand: function (cmd, section, keepChildren) { - var me = this; - - if(!section) return; - - function getNodeFromAddress(startAddress) { - var current = me.body; - for(var i = 0;i < startAddress.length; i++) { - if(!current.childNodes) return null; - current = current.childNodes[startAddress[i]]; - } - return current; - } - - var startNode = getNodeFromAddress(section.startAddress), - endNode = getNodeFromAddress(section.endAddress), - current = startNode, - nextNode; - - if(!keepChildren) { - while ( current && domUtils.inDoc(endNode, me.document) && !(domUtils.getPosition( current, endNode ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.nextSibling; - domUtils.remove(current); - current = nextNode; - } - } else { - domUtils.remove(current); - } - - me.fireEvent('updateSections'); - } - }, - 'selectsection': { - execCommand: function (cmd, section) { - if(!section && !section.dom) return false; - var me = this, - range = me.selection.getRange(), - address = { - 'startAddress':utils.clone(section.startAddress, []), - 'endAddress':utils.clone(section.endAddress, []) - }; - address.endAddress[address.endAddress.length - 1]++; - range.moveToAddress(address).select().scrollToView(); - return true; - }, - notNeedUndo: true - }, - 'scrolltosection': { - execCommand: function (cmd, section) { - if(!section && !section.dom) return false; - var me = this, - range = me.selection.getRange(), - address = { - 'startAddress':section.startAddress, - 'endAddress':section.endAddress - }; - address.endAddress[address.endAddress.length - 1]++; - range.moveToAddress(address).scrollToView(); - return true; - }, - notNeedUndo: true - } - } - } -}); - -// plugins/simpleupload.js -/** - * @description - * 简单上传:点击按钮,直接选择文件上传。 - * 原 UEditor 作者使用了 form 表单 + iframe 的方式上传 - * 但由于同源策略的限制,父页面无法访问跨域的 iframe 内容 - * 导致无法获取接口返回的数据,使得单图上传无法在跨域的情况下使用 - * 这里改为普通的XHR上传,兼容到IE10+ - * @author HaoChuan9421 - * @date 2018-12-20 - */ -UE.plugin.register('simpleupload', function() { - var me = this, - containerBtn, - timestrap = (+new Date()).toString(36); - - function initUploadBtn() { - var w = containerBtn.offsetWidth || 20, - h = containerBtn.offsetHeight || 20, - btnStyle = 'display:block;width:' + w + 'px;height:' + h + 'px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;'; - - var form = document.createElement('form'); - var input = document.createElement('input'); - form.id = 'edui_form_' + timestrap; - form.enctype = 'multipart/form-data'; - form.style = btnStyle; - input.id = 'edui_input_' + timestrap; - input.type = 'file' - input.accept = 'image/*'; - input.name = me.options.imageFieldName; - input.style = btnStyle; - form.appendChild(input); - containerBtn.appendChild(form); - - input.addEventListener('change', function(event) { - if (!input.value) return; - var loadingId = 'loading_' + (+new Date()).toString(36); - var imageActionUrl = me.getActionUrl(me.getOpt('imageActionName')); - var params = utils.serializeParam(me.queryCommandValue('serverparam')) || ''; - var action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') + params); - var allowFiles = me.getOpt('imageAllowFiles'); - me.focus(); - me.execCommand('inserthtml', ''); - - function showErrorLoader(title) { - if (loadingId) { - var loader = me.document.getElementById(loadingId); - loader && domUtils.remove(loader); - me.fireEvent('showmessage', { - 'id': loadingId, - 'content': title, - 'type': 'error', - 'timeout': 4000 - }); - } - } - /* 判断后端配置是否没有加载成功 */ - if (!me.getOpt('imageActionName')) { - showErrorLoader(me.getLang('autoupload.errorLoadConfig')); - return; - } - // 判断文件格式是否错误 - var filename = input.value, - fileext = filename ? filename.substr(filename.lastIndexOf('.')) : ''; - if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) { - showErrorLoader(me.getLang('simpleupload.exceedTypeError')); - return; - } - - var xhr = new XMLHttpRequest() - xhr.open('post', action, true) - if (me.options.headers && Object.prototype.toString.apply(me.options.headers) === "[object Object]") { - for (var key in me.options.headers) { - xhr.setRequestHeader(key, me.options.headers[key]) - } - } - xhr.onload = function() { - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { - var res = JSON.parse(xhr.responseText) - var link = me.options.imageUrlPrefix + res.url; - - if (res.state == 'SUCCESS' && res.url) { - loader = me.document.getElementById(loadingId); - loader.setAttribute('src', link); - loader.setAttribute('_src', link); - loader.setAttribute('title', res.title || ''); - loader.setAttribute('alt', res.original || ''); - loader.removeAttribute('id'); - domUtils.removeClasses(loader, 'loadingclass'); - me.fireEvent("contentchange"); - } else { - showErrorLoader(res.state); - } - } else { - showErrorLoader(me.getLang('simpleupload.loadError')); - } - }; - xhr.onerror = function() { - showErrorLoader(me.getLang('simpleupload.loadError')); - }; - xhr.send(new FormData(form)); - form.reset(); - }) - } - - return { - bindEvents: { - 'ready': function() { - //设置loading的样式 - utils.cssRule('loading', - '.loadingclass{display:inline-block;cursor:default;background: url(\'' + - this.options.themePath + - this.options.theme + '/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n' + - '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' + - this.options.themePath + - this.options.theme + '/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' + - '}', - this.document); - }, - /* 初始化简单上传按钮 */ - 'simpleuploadbtnready': function(type, container) { - containerBtn = container; - me.afterConfigReady(initUploadBtn); - } - }, - outputRule: function(root) { - utils.each(root.getNodesByTagName('img'), function(n) { - if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - } - } -}); - -// plugins/serverparam.js -/** - * 服务器提交的额外参数列表设置插件 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('serverparam', function (){ - - var me = this, - serverParam = {}; - - return { - commands:{ - /** - * 修改服务器提交的额外参数列表,清除所有项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand('serverparam'); - * editor.queryCommandValue('serverparam'); //返回空 - * ``` - */ - /** - * 修改服务器提交的额外参数列表,删除指定项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } key 要清除的属性 - * @example - * ```javascript - * editor.execCommand('serverparam', 'name'); //删除属性name - * ``` - */ - /** - * 修改服务器提交的额外参数列表,使用键值添加项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } key 要添加的属性 - * @param { String } value 要添加属性的值 - * @example - * ```javascript - * editor.execCommand('serverparam', 'name', 'hello'); - * editor.queryCommandValue('serverparam'); //返回对象 {'name': 'hello'} - * ``` - */ - /** - * 修改服务器提交的额外参数列表,传入键值对对象添加多项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } key 传入的键值对对象 - * @example - * ```javascript - * editor.execCommand('serverparam', {'name': 'hello'}); - * editor.queryCommandValue('serverparam'); //返回对象 {'name': 'hello'} - * ``` - */ - /** - * 修改服务器提交的额外参数列表,使用自定义函数添加多项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Function } key 自定义获取参数的函数 - * @example - * ```javascript - * editor.execCommand('serverparam', function(editor){ - * return {'key': 'value'}; - * }); - * editor.queryCommandValue('serverparam'); //返回对象 {'key': 'value'} - * ``` - */ - - /** - * 获取服务器提交的额外参数列表 - * @command serverparam - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.queryCommandValue( 'serverparam' ); //返回对象 {'key': 'value'} - * ``` - */ - 'serverparam':{ - execCommand:function (cmd, key, value) { - if (key === undefined || key === null) { //不传参数,清空列表 - serverParam = {}; - } else if (utils.isString(key)) { //传入键值 - if(value === undefined || value === null) { - delete serverParam[key]; - } else { - serverParam[key] = value; - } - } else if (utils.isObject(key)) { //传入对象,覆盖列表项 - utils.extend(serverParam, key, true); - } else if (utils.isFunction(key)){ //传入函数,添加列表项 - utils.extend(serverParam, key(), true); - } - }, - queryCommandValue: function(){ - return serverParam || {}; - } - } - } - } -}); - - -// plugins/insertfile.js -/** - * 插入附件 - */ -UE.plugin.register('insertfile', function (){ - - var me = this; - - function getFileIcon(url){ - var ext = url.substr(url.lastIndexOf('.') + 1).toLowerCase(), - maps = { - "rar":"icon_rar.gif", - "zip":"icon_rar.gif", - "tar":"icon_rar.gif", - "gz":"icon_rar.gif", - "bz2":"icon_rar.gif", - "doc":"icon_doc.gif", - "docx":"icon_doc.gif", - "pdf":"icon_pdf.gif", - "mp3":"icon_mp3.gif", - "xls":"icon_xls.gif", - "chm":"icon_chm.gif", - "ppt":"icon_ppt.gif", - "pptx":"icon_ppt.gif", - "avi":"icon_mv.gif", - "rmvb":"icon_mv.gif", - "wmv":"icon_mv.gif", - "flv":"icon_mv.gif", - "swf":"icon_mv.gif", - "rm":"icon_mv.gif", - "exe":"icon_exe.gif", - "psd":"icon_psd.gif", - "txt":"icon_txt.gif", - "jpg":"icon_jpg.gif", - "png":"icon_jpg.gif", - "jpeg":"icon_jpg.gif", - "gif":"icon_jpg.gif", - "ico":"icon_jpg.gif", - "bmp":"icon_jpg.gif" - }; - return maps[ext] ? maps[ext]:maps['txt']; - } - - return { - commands:{ - 'insertfile': { - execCommand: function (command, filelist){ - filelist = utils.isArray(filelist) ? filelist : [filelist]; - - var i, item, icon, title, - html = '', - URL = me.getOpt('UEDITOR_HOME_URL'), - iconDir = URL + (URL.substr(URL.length - 1) == '/' ? '':'/') + 'dialogs/attachment/fileTypeImages/'; - for (i = 0; i < filelist.length; i++) { - item = filelist[i]; - icon = iconDir + getFileIcon(item.url); - title = item.title || item.url.substr(item.url.lastIndexOf('/') + 1); - html += '

    ' + - '' + - '' + title + '' + - '

    '; - } - me.execCommand('insertHtml', html); - } - } - } - } -}); - - - - -// plugins/xssFilter.js -/** - * @file xssFilter.js - * @desc xss过滤器 - * @author robbenmu - */ - -UE.plugins.xssFilter = function() { - - var config = UEDITOR_CONFIG; - var whitList = config.whitList; - - function filter(node) { - - var tagName = node.tagName; - var attrs = node.attrs; - - if (!whitList.hasOwnProperty(tagName)) { - node.parentNode.removeChild(node); - return false; - } - - UE.utils.each(attrs, function (val, key) { - - if (whitList[tagName].indexOf(key) === -1) { - node.setAttr(key); - } - }); - } - - // 添加inserthtml\paste等操作用的过滤规则 - if (whitList && config.xssFilterRules) { - this.options.filterRules = function () { - - var result = {}; - - UE.utils.each(whitList, function(val, key) { - result[key] = function (node) { - return filter(node); - }; - }); - - return result; - }(); - } - - var tagList = []; - - UE.utils.each(whitList, function (val, key) { - tagList.push(key); - }); - - // 添加input过滤规则 - // - if (whitList && config.inputXssFilter) { - this.addInputRule(function (root) { - - root.traversal(function(node) { - if (node.type !== 'element') { - return false; - } - filter(node); - }); - }); - } - // 添加output过滤规则 - // - if (whitList && config.outputXssFilter) { - this.addOutputRule(function (root) { - - root.traversal(function(node) { - if (node.type !== 'element') { - return false; - } - filter(node); - }); - }); - } - -}; - - -// ui/ui.js -var baidu = baidu || {}; -baidu.editor = baidu.editor || {}; -UE.ui = baidu.editor.ui = {}; - -// ui/uiutils.js -(function (){ - var browser = baidu.editor.browser, - domUtils = baidu.editor.dom.domUtils; - - var magic = '$EDITORUI'; - var root = window[magic] = {}; - var uidMagic = 'ID' + magic; - var uidCount = 0; - - var uiUtils = baidu.editor.ui.uiUtils = { - uid: function (obj){ - return (obj ? obj[uidMagic] || (obj[uidMagic] = ++ uidCount) : ++ uidCount); - }, - hook: function ( fn, callback ) { - var dg; - if (fn && fn._callbacks) { - dg = fn; - } else { - dg = function (){ - var q; - if (fn) { - q = fn.apply(this, arguments); - } - var callbacks = dg._callbacks; - var k = callbacks.length; - while (k --) { - var r = callbacks[k].apply(this, arguments); - if (q === undefined) { - q = r; - } - } - return q; - }; - dg._callbacks = []; - } - dg._callbacks.push(callback); - return dg; - }, - createElementByHtml: function (html){ - var el = document.createElement('div'); - el.innerHTML = html; - el = el.firstChild; - el.parentNode.removeChild(el); - return el; - }, - getViewportElement: function (){ - return (browser.ie && browser.quirks) ? - document.body : document.documentElement; - }, - getClientRect: function (element){ - var bcr; - //trace IE6下在控制编辑器显隐时可能会报错,catch一下 - try{ - bcr = element.getBoundingClientRect(); - }catch(e){ - bcr={left:0,top:0,height:0,width:0} - } - var rect = { - left: Math.round(bcr.left), - top: Math.round(bcr.top), - height: Math.round(bcr.bottom - bcr.top), - width: Math.round(bcr.right - bcr.left) - }; - var doc; - while ((doc = element.ownerDocument) !== document && - (element = domUtils.getWindow(doc).frameElement)) { - bcr = element.getBoundingClientRect(); - rect.left += bcr.left; - rect.top += bcr.top; - } - rect.bottom = rect.top + rect.height; - rect.right = rect.left + rect.width; - return rect; - }, - getViewportRect: function (){ - var viewportEl = uiUtils.getViewportElement(); - var width = (window.innerWidth || viewportEl.clientWidth) | 0; - var height = (window.innerHeight ||viewportEl.clientHeight) | 0; - return { - left: 0, - top: 0, - height: height, - width: width, - bottom: height, - right: width - }; - }, - setViewportOffset: function (element, offset){ - var rect; - var fixedLayer = uiUtils.getFixedLayer(); - if (element.parentNode === fixedLayer) { - element.style.left = offset.left + 'px'; - element.style.top = offset.top + 'px'; - } else { - domUtils.setViewportOffset(element, offset); - } - }, - getEventOffset: function (evt){ - var el = evt.target || evt.srcElement; - var rect = uiUtils.getClientRect(el); - var offset = uiUtils.getViewportOffsetByEvent(evt); - return { - left: offset.left - rect.left, - top: offset.top - rect.top - }; - }, - getViewportOffsetByEvent: function (evt){ - var el = evt.target || evt.srcElement; - var frameEl = domUtils.getWindow(el).frameElement; - var offset = { - left: evt.clientX, - top: evt.clientY - }; - if (frameEl && el.ownerDocument !== document) { - var rect = uiUtils.getClientRect(frameEl); - offset.left += rect.left; - offset.top += rect.top; - } - return offset; - }, - setGlobal: function (id, obj){ - root[id] = obj; - return magic + '["' + id + '"]'; - }, - unsetGlobal: function (id){ - delete root[id]; - }, - copyAttributes: function (tgt, src){ - var attributes = src.attributes; - var k = attributes.length; - while (k --) { - var attrNode = attributes[k]; - if ( attrNode.nodeName != 'style' && attrNode.nodeName != 'class' && (!browser.ie || attrNode.specified) ) { - tgt.setAttribute(attrNode.nodeName, attrNode.nodeValue); - } - } - if (src.className) { - domUtils.addClass(tgt,src.className); - } - if (src.style.cssText) { - tgt.style.cssText += ';' + src.style.cssText; - } - }, - removeStyle: function (el, styleName){ - if (el.style.removeProperty) { - el.style.removeProperty(styleName); - } else if (el.style.removeAttribute) { - el.style.removeAttribute(styleName); - } else throw ''; - }, - contains: function (elA, elB){ - return elA && elB && (elA === elB ? false : ( - elA.contains ? elA.contains(elB) : - elA.compareDocumentPosition(elB) & 16 - )); - }, - startDrag: function (evt, callbacks,doc){ - var doc = doc || document; - var startX = evt.clientX; - var startY = evt.clientY; - function handleMouseMove(evt){ - var x = evt.clientX - startX; - var y = evt.clientY - startY; - callbacks.ondragmove(x, y,evt); - if (evt.stopPropagation) { - evt.stopPropagation(); - } else { - evt.cancelBubble = true; - } - } - if (doc.addEventListener) { - function handleMouseUp(evt){ - doc.removeEventListener('mousemove', handleMouseMove, true); - doc.removeEventListener('mouseup', handleMouseUp, true); - window.removeEventListener('mouseup', handleMouseUp, true); - callbacks.ondragstop(); - } - doc.addEventListener('mousemove', handleMouseMove, true); - doc.addEventListener('mouseup', handleMouseUp, true); - window.addEventListener('mouseup', handleMouseUp, true); - - evt.preventDefault(); - } else { - var elm = evt.srcElement; - elm.setCapture(); - function releaseCaptrue(){ - elm.releaseCapture(); - elm.detachEvent('onmousemove', handleMouseMove); - elm.detachEvent('onmouseup', releaseCaptrue); - elm.detachEvent('onlosecaptrue', releaseCaptrue); - callbacks.ondragstop(); - } - elm.attachEvent('onmousemove', handleMouseMove); - elm.attachEvent('onmouseup', releaseCaptrue); - elm.attachEvent('onlosecaptrue', releaseCaptrue); - evt.returnValue = false; - } - callbacks.ondragstart(); - }, - getFixedLayer: function (){ - var layer = document.getElementById('edui_fixedlayer'); - if (layer == null) { - layer = document.createElement('div'); - layer.id = 'edui_fixedlayer'; - document.body.appendChild(layer); - if (browser.ie && browser.version <= 8) { - layer.style.position = 'absolute'; - bindFixedLayer(); - setTimeout(updateFixedOffset); - } else { - layer.style.position = 'fixed'; - } - layer.style.left = '0'; - layer.style.top = '0'; - layer.style.width = '0'; - layer.style.height = '0'; - } - return layer; - }, - makeUnselectable: function (element){ - if (browser.opera || (browser.ie && browser.version < 9)) { - element.unselectable = 'on'; - if (element.hasChildNodes()) { - for (var i=0; i
    '; - } - }; - utils.inherits(Separator, UIBase); - -})(); - - -// ui/mask.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - uiUtils = baidu.editor.ui.uiUtils; - - var Mask = baidu.editor.ui.Mask = function (options){ - this.initOptions(options); - this.initUIBase(); - }; - Mask.prototype = { - getHtmlTpl: function (){ - return '
    '; - }, - postRender: function (){ - var me = this; - domUtils.on(window, 'resize', function (){ - setTimeout(function (){ - if (!me.isHidden()) { - me._fill(); - } - }); - }); - }, - show: function (zIndex){ - this._fill(); - this.getDom().style.display = ''; - this.getDom().style.zIndex = zIndex; - }, - hide: function (){ - this.getDom().style.display = 'none'; - this.getDom().style.zIndex = ''; - }, - isHidden: function (){ - return this.getDom().style.display == 'none'; - }, - _onMouseDown: function (){ - return false; - }, - _onClick: function (e, target){ - this.fireEvent('click', e, target); - }, - _fill: function (){ - var el = this.getDom(); - var vpRect = uiUtils.getViewportRect(); - el.style.width = vpRect.width + 'px'; - el.style.height = vpRect.height + 'px'; - } - }; - utils.inherits(Mask, UIBase); -})(); - - -// ui/popup.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Popup = baidu.editor.ui.Popup = function (options){ - this.initOptions(options); - this.initPopup(); - }; - - var allPopups = []; - function closeAllPopup( evt,el ){ - for ( var i = 0; i < allPopups.length; i++ ) { - var pop = allPopups[i]; - if (!pop.isHidden()) { - if (pop.queryAutoHide(el) !== false) { - if(evt&&/scroll/ig.test(evt.type)&&pop.className=="edui-wordpastepop") return; - pop.hide(); - } - } - } - - if(allPopups.length) - pop.editor.fireEvent("afterhidepop"); - } - - Popup.postHide = closeAllPopup; - - var ANCHOR_CLASSES = ['edui-anchor-topleft','edui-anchor-topright', - 'edui-anchor-bottomleft','edui-anchor-bottomright']; - Popup.prototype = { - SHADOW_RADIUS: 5, - content: null, - _hidden: false, - autoRender: true, - canSideLeft: true, - canSideUp: true, - initPopup: function (){ - this.initUIBase(); - allPopups.push( this ); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - ' ' + - '
    ' + - '
    ' + - this.getContentHtmlTpl() + - '
    ' + - '
    ' + - '
    '; - }, - getContentHtmlTpl: function (){ - if(this.content){ - if (typeof this.content == 'string') { - return this.content; - } - return this.content.renderHtml(); - }else{ - return '' - } - - }, - _UIBase_postRender: UIBase.prototype.postRender, - postRender: function (){ - - - if (this.content instanceof UIBase) { - this.content.postRender(); - } - - //捕获鼠标滚轮 - if( this.captureWheel && !this.captured ) { - - this.captured = true; - - var winHeight = ( document.documentElement.clientHeight || document.body.clientHeight ) - 80, - _height = this.getDom().offsetHeight, - _top = uiUtils.getClientRect( this.combox.getDom() ).top, - content = this.getDom('content'), - ifr = this.getDom('body').getElementsByTagName('iframe'), - me = this; - - ifr.length && ( ifr = ifr[0] ); - - while( _top + _height > winHeight ) { - _height -= 30; - } - content.style.height = _height + 'px'; - //同步更改iframe高度 - ifr && ( ifr.style.height = _height + 'px' ); - - //阻止在combox上的鼠标滚轮事件, 防止用户的正常操作被误解 - if( window.XMLHttpRequest ) { - - domUtils.on( content, ( 'onmousewheel' in document.body ) ? 'mousewheel' :'DOMMouseScroll' , function(e){ - - if(e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - } - - if( e.wheelDelta ) { - - content.scrollTop -= ( e.wheelDelta / 120 )*60; - - } else { - - content.scrollTop -= ( e.detail / -3 )*60; - - } - - }); - - } else { - - //ie6 - domUtils.on( this.getDom(), 'mousewheel' , function(e){ - - e.returnValue = false; - - me.getDom('content').scrollTop -= ( e.wheelDelta / 120 )*60; - - }); - - } - - } - this.fireEvent('postRenderAfter'); - this.hide(true); - this._UIBase_postRender(); - }, - _doAutoRender: function (){ - if (!this.getDom() && this.autoRender) { - this.render(); - } - }, - mesureSize: function (){ - var box = this.getDom('content'); - return uiUtils.getClientRect(box); - }, - fitSize: function (){ - if( this.captureWheel && this.sized ) { - return this.__size; - } - this.sized = true; - var popBodyEl = this.getDom('body'); - popBodyEl.style.width = ''; - popBodyEl.style.height = ''; - var size = this.mesureSize(); - if( this.captureWheel ) { - popBodyEl.style.width = -(-20 -size.width) + 'px'; - var height = parseInt( this.getDom('content').style.height, 10 ); - !window.isNaN( height ) && ( size.height = height ); - } else { - popBodyEl.style.width = size.width + 'px'; - } - popBodyEl.style.height = size.height + 'px'; - this.__size = size; - this.captureWheel && (this.getDom('content').style.overflow = 'auto'); - return size; - }, - showAnchor: function ( element, hoz ){ - this.showAnchorRect( uiUtils.getClientRect( element ), hoz ); - }, - showAnchorRect: function ( rect, hoz, adj ){ - this._doAutoRender(); - var vpRect = uiUtils.getViewportRect(); - this.getDom().style.visibility = 'hidden'; - this._show(); - var popSize = this.fitSize(); - - var sideLeft, sideUp, left, top; - if (hoz) { - sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width); - sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height); - left = (sideLeft ? rect.left - popSize.width : rect.right); - top = (sideUp ? rect.bottom - popSize.height : rect.top); - } else { - sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width); - sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height); - left = (sideLeft ? rect.right - popSize.width : rect.left); - top = (sideUp ? rect.top - popSize.height : rect.bottom); - } - - var popEl = this.getDom(); - uiUtils.setViewportOffset(popEl, { - left: left, - top: top - }); - domUtils.removeClasses(popEl, ANCHOR_CLASSES); - popEl.className += ' ' + ANCHOR_CLASSES[(sideUp ? 1 : 0) * 2 + (sideLeft ? 1 : 0)]; - if(this.editor){ - popEl.style.zIndex = this.editor.container.style.zIndex * 1 + 10; - baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = popEl.style.zIndex - 1; - } - this.getDom().style.visibility = 'visible'; - - }, - showAt: function (offset) { - var left = offset.left; - var top = offset.top; - var rect = { - left: left, - top: top, - right: left, - bottom: top, - height: 0, - width: 0 - }; - this.showAnchorRect(rect, false, true); - }, - _show: function (){ - if (this._hidden) { - var box = this.getDom(); - box.style.display = ''; - this._hidden = false; -// if (box.setActive) { -// box.setActive(); -// } - this.fireEvent('show'); - } - }, - isHidden: function (){ - return this._hidden; - }, - show: function (){ - this._doAutoRender(); - this._show(); - }, - hide: function (notNofity){ - if (!this._hidden && this.getDom()) { - this.getDom().style.display = 'none'; - this._hidden = true; - if (!notNofity) { - this.fireEvent('hide'); - } - } - }, - queryAutoHide: function (el){ - return !el || !uiUtils.contains(this.getDom(), el); - } - }; - utils.inherits(Popup, UIBase); - - domUtils.on( document, 'mousedown', function ( evt ) { - var el = evt.target || evt.srcElement; - closeAllPopup( evt,el ); - } ); - domUtils.on( window, 'scroll', function (evt,el) { - closeAllPopup( evt,el ); - } ); - -})(); - - -// ui/colorpicker.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - ColorPicker = baidu.editor.ui.ColorPicker = function (options){ - this.initOptions(options); - this.noColorText = this.noColorText || this.editor.getLang("clearColor"); - this.initUIBase(); - }; - - ColorPicker.prototype = { - getHtmlTpl: function (){ - return genColorPicker(this.noColorText,this.editor); - }, - _onTableClick: function (evt){ - var tgt = evt.target || evt.srcElement; - var color = tgt.getAttribute('data-color'); - if (color) { - this.fireEvent('pickcolor', color); - } - }, - _onTableOver: function (evt){ - var tgt = evt.target || evt.srcElement; - var color = tgt.getAttribute('data-color'); - if (color) { - this.getDom('preview').style.backgroundColor = color; - } - }, - _onTableOut: function (){ - this.getDom('preview').style.backgroundColor = ''; - }, - _onPickNoColor: function (){ - this.fireEvent('picknocolor'); - } - }; - utils.inherits(ColorPicker, UIBase); - - var COLORS = ( - 'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' + - 'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' + - 'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' + - 'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' + - 'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' + - '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' + - 'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(','); - - function genColorPicker(noColorText,editor){ - var html = '
    ' + - '
    ' + - '
    ' + - '
    '+ noColorText +'
    ' + - '
    ' + - '' + - ''+ - ''; - for (var i=0; i':'')+''; - } - html += i<70 ? '':''; - } - html += '
    '+editor.getLang("themeColor")+'
    '+editor.getLang("standardColor")+'
    '; - return html; - } -})(); - - -// ui/tablepicker.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase; - - var TablePicker = baidu.editor.ui.TablePicker = function (options){ - this.initOptions(options); - this.initTablePicker(); - }; - TablePicker.prototype = { - defaultNumRows: 10, - defaultNumCols: 10, - maxNumRows: 20, - maxNumCols: 20, - numRows: 10, - numCols: 10, - lengthOfCellSide: 22, - initTablePicker: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - var me = this; - return '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - _UIBase_render: UIBase.prototype.render, - render: function (holder){ - this._UIBase_render(holder); - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_row")+' x 0'+this.editor.getLang("t_col"); - }, - _track: function (numCols, numRows){ - var style = this.getDom('overlay').style; - var sideLen = this.lengthOfCellSide; - style.width = numCols * sideLen + 'px'; - style.height = numRows * sideLen + 'px'; - var label = this.getDom('label'); - label.innerHTML = numCols +this.editor.getLang("t_col")+' x ' + numRows + this.editor.getLang("t_row"); - this.numCols = numCols; - this.numRows = numRows; - }, - _onMouseOver: function (evt, el){ - var rel = evt.relatedTarget || evt.fromElement; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_col")+' x 0'+this.editor.getLang("t_row"); - this.getDom('overlay').style.visibility = ''; - } - }, - _onMouseOut: function (evt, el){ - var rel = evt.relatedTarget || evt.toElement; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_col")+' x 0'+this.editor.getLang("t_row"); - this.getDom('overlay').style.visibility = 'hidden'; - } - }, - _onMouseMove: function (evt, el){ - var style = this.getDom('overlay').style; - var offset = uiUtils.getEventOffset(evt); - var sideLen = this.lengthOfCellSide; - var numCols = Math.ceil(offset.left / sideLen); - var numRows = Math.ceil(offset.top / sideLen); - this._track(numCols, numRows); - }, - _onClick: function (){ - this.fireEvent('picktable', this.numCols, this.numRows); - } - }; - utils.inherits(TablePicker, UIBase); -})(); - - -// ui/stateful.js -(function (){ - var browser = baidu.editor.browser, - domUtils = baidu.editor.dom.domUtils, - uiUtils = baidu.editor.ui.uiUtils; - - var TPL_STATEFUL = 'onmousedown="$$.Stateful_onMouseDown(event, this);"' + - ' onmouseup="$$.Stateful_onMouseUp(event, this);"' + - ( browser.ie ? ( - ' onmouseenter="$$.Stateful_onMouseEnter(event, this);"' + - ' onmouseleave="$$.Stateful_onMouseLeave(event, this);"' ) - : ( - ' onmouseover="$$.Stateful_onMouseOver(event, this);"' + - ' onmouseout="$$.Stateful_onMouseOut(event, this);"' )); - - baidu.editor.ui.Stateful = { - alwalysHoverable: false, - target:null,//目标元素和this指向dom不一样 - Stateful_init: function (){ - this._Stateful_dGetHtmlTpl = this.getHtmlTpl; - this.getHtmlTpl = this.Stateful_getHtmlTpl; - }, - Stateful_getHtmlTpl: function (){ - var tpl = this._Stateful_dGetHtmlTpl(); - // 使用function避免$转义 - return tpl.replace(/stateful/g, function (){ return TPL_STATEFUL; }); - }, - Stateful_onMouseEnter: function (evt, el){ - this.target=el; - if (!this.isDisabled() || this.alwalysHoverable) { - this.addState('hover'); - this.fireEvent('over'); - } - }, - Stateful_onMouseLeave: function (evt, el){ - if (!this.isDisabled() || this.alwalysHoverable) { - this.removeState('hover'); - this.removeState('active'); - this.fireEvent('out'); - } - }, - Stateful_onMouseOver: function (evt, el){ - var rel = evt.relatedTarget; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.Stateful_onMouseEnter(evt, el); - } - }, - Stateful_onMouseOut: function (evt, el){ - var rel = evt.relatedTarget; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.Stateful_onMouseLeave(evt, el); - } - }, - Stateful_onMouseDown: function (evt, el){ - if (!this.isDisabled()) { - this.addState('active'); - } - }, - Stateful_onMouseUp: function (evt, el){ - if (!this.isDisabled()) { - this.removeState('active'); - } - }, - Stateful_postRender: function (){ - if (this.disabled && !this.hasState('disabled')) { - this.addState('disabled'); - } - }, - hasState: function (state){ - return domUtils.hasClass(this.getStateDom(), 'edui-state-' + state); - }, - addState: function (state){ - if (!this.hasState(state)) { - this.getStateDom().className += ' edui-state-' + state; - } - }, - removeState: function (state){ - if (this.hasState(state)) { - domUtils.removeClasses(this.getStateDom(), ['edui-state-' + state]); - } - }, - getStateDom: function (){ - return this.getDom('state'); - }, - isChecked: function (){ - return this.hasState('checked'); - }, - setChecked: function (checked){ - if (!this.isDisabled() && checked) { - this.addState('checked'); - } else { - this.removeState('checked'); - } - }, - isDisabled: function (){ - return this.hasState('disabled'); - }, - setDisabled: function (disabled){ - if (disabled) { - this.removeState('hover'); - this.removeState('checked'); - this.removeState('active'); - this.addState('disabled'); - } else { - this.removeState('disabled'); - } - } - }; -})(); - - -// ui/button.js -///import core -///import uicore -///import ui/stateful.js -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - Stateful = baidu.editor.ui.Stateful, - Button = baidu.editor.ui.Button = function (options){ - if(options.name){ - var btnName = options.name; - var cssRules = options.cssRules; - if(!options.className){ - options.className = 'edui-for-' + btnName; - } - options.cssRules = '.edui-default .edui-for-'+ btnName +' .edui-icon {'+ cssRules +'}' - } - this.initOptions(options); - this.initButton(); - }; - Button.prototype = { - uiName: 'button', - label: '', - title: '', - showIcon: true, - showText: true, - cssRules:'', - initButton: function (){ - this.initUIBase(); - this.Stateful_init(); - if(this.cssRules){ - utils.cssRule('edui-customize-'+this.name+'-style',this.cssRules); - } - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - '
    ' + - (this.showIcon ? '
    ' : '') + - (this.showText ? '
    ' + this.label + '
    ' : '') + - '
    ' + - '
    ' + - '
    '; - }, - postRender: function (){ - this.Stateful_postRender(); - this.setDisabled(this.disabled) - }, - _onMouseDown: function (e){ - var target = e.target || e.srcElement, - tagName = target && target.tagName && target.tagName.toLowerCase(); - if (tagName == 'input' || tagName == 'object' || tagName == 'object') { - return false; - } - }, - _onClick: function (){ - if (!this.isDisabled()) { - this.fireEvent('click'); - } - }, - setTitle: function(text){ - var label = this.getDom('label'); - label.innerHTML = text; - } - }; - utils.inherits(Button, UIBase); - utils.extend(Button.prototype, Stateful); - -})(); - - -// ui/splitbutton.js -///import core -///import uicore -///import ui/stateful.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Stateful = baidu.editor.ui.Stateful, - SplitButton = baidu.editor.ui.SplitButton = function (options){ - this.initOptions(options); - this.initSplitButton(); - }; - SplitButton.prototype = { - popup: null, - uiName: 'splitbutton', - title: '', - initSplitButton: function (){ - this.initUIBase(); - this.Stateful_init(); - var me = this; - if (this.popup != null) { - var popup = this.popup; - this.popup = null; - this.setPopup(popup); - } - }, - _UIBase_postRender: UIBase.prototype.postRender, - postRender: function (){ - this.Stateful_postRender(); - this._UIBase_postRender(); - }, - setPopup: function (popup){ - if (this.popup === popup) return; - if (this.popup != null) { - this.popup.dispose(); - } - popup.addListener('show', utils.bind(this._onPopupShow, this)); - popup.addListener('hide', utils.bind(this._onPopupHide, this)); - popup.addListener('postrender', utils.bind(function (){ - popup.getDom('body').appendChild( - uiUtils.createElementByHtml('
    ') - ); - popup.getDom().className += ' ' + this.className; - }, this)); - this.popup = popup; - }, - _onPopupShow: function (){ - this.addState('opened'); - }, - _onPopupHide: function (){ - this.removeState('opened'); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - showPopup: function (){ - // 当popup往上弹出的时候,做特殊处理 - var rect = uiUtils.getClientRect(this.getDom()); - rect.top -= this.popup.SHADOW_RADIUS; - rect.height += this.popup.SHADOW_RADIUS; - this.popup.showAnchorRect(rect); - }, - _onArrowClick: function (event, el){ - if (!this.isDisabled()) { - this.showPopup(); - } - }, - _onButtonClick: function (){ - if (!this.isDisabled()) { - this.fireEvent('buttonclick'); - } - } - }; - utils.inherits(SplitButton, UIBase); - utils.extend(SplitButton.prototype, Stateful, true); - -})(); - - -// ui/colorbutton.js -///import core -///import uicore -///import ui/colorpicker.js -///import ui/popup.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - ColorPicker = baidu.editor.ui.ColorPicker, - Popup = baidu.editor.ui.Popup, - SplitButton = baidu.editor.ui.SplitButton, - ColorButton = baidu.editor.ui.ColorButton = function (options){ - this.initOptions(options); - this.initColorButton(); - }; - ColorButton.prototype = { - initColorButton: function (){ - var me = this; - this.popup = new Popup({ - content: new ColorPicker({ - noColorText: me.editor.getLang("clearColor"), - editor:me.editor, - onpickcolor: function (t, color){ - me._onPickColor(color); - }, - onpicknocolor: function (t, color){ - me._onPickNoColor(color); - } - }), - editor:me.editor - }); - this.initSplitButton(); - }, - _SplitButton_postRender: SplitButton.prototype.postRender, - postRender: function (){ - this._SplitButton_postRender(); - this.getDom('button_body').appendChild( - uiUtils.createElementByHtml('
    ') - ); - this.getDom().className += ' edui-colorbutton'; - }, - setColor: function (color){ - this.getDom('colorlump').style.backgroundColor = color; - this.color = color; - }, - _onPickColor: function (color){ - if (this.fireEvent('pickcolor', color) !== false) { - this.setColor(color); - this.popup.hide(); - } - }, - _onPickNoColor: function (color){ - if (this.fireEvent('picknocolor') !== false) { - this.popup.hide(); - } - } - }; - utils.inherits(ColorButton, SplitButton); - -})(); - - -// ui/tablebutton.js -///import core -///import uicore -///import ui/popup.js -///import ui/tablepicker.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - TablePicker = baidu.editor.ui.TablePicker, - SplitButton = baidu.editor.ui.SplitButton, - TableButton = baidu.editor.ui.TableButton = function (options){ - this.initOptions(options); - this.initTableButton(); - }; - TableButton.prototype = { - initTableButton: function (){ - var me = this; - this.popup = new Popup({ - content: new TablePicker({ - editor:me.editor, - onpicktable: function (t, numCols, numRows){ - me._onPickTable(numCols, numRows); - } - }), - 'editor':me.editor - }); - this.initSplitButton(); - }, - _onPickTable: function (numCols, numRows){ - if (this.fireEvent('picktable', numCols, numRows) !== false) { - this.popup.hide(); - } - } - }; - utils.inherits(TableButton, SplitButton); - -})(); - - -// ui/autotypesetpicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase; - - var AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker = function (options) { - this.initOptions(options); - this.initAutoTypeSetPicker(); - }; - AutoTypeSetPicker.prototype = { - initAutoTypeSetPicker:function () { - this.initUIBase(); - }, - getHtmlTpl:function () { - var me = this.editor, - opt = me.options.autotypeset, - lang = me.getLang("autoTypeSet"); - - var textAlignInputName = 'textAlignValue' + me.uid, - imageBlockInputName = 'imageBlockLineValue' + me.uid, - symbolConverInputName = 'symbolConverValue' + me.uid; - - return '
    ' + - '
    ' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '
    ' + lang.mergeLine + '' + lang.delLine + '
    ' + lang.removeFormat + '' + lang.indent + '
    ' + lang.alignment + '' + - '' + me.getLang("justifyleft") + - '' + me.getLang("justifycenter") + - '' + me.getLang("justifyright") + - '
    ' + lang.imageFloat + '' + - '' + me.getLang("default") + - '' + me.getLang("justifyleft") + - '' + me.getLang("justifycenter") + - '' + me.getLang("justifyright") + - '
    ' + lang.removeFontsize + '' + lang.removeFontFamily + '
    ' + lang.removeHtml + '
    ' + lang.pasteFilter + '
    ' + lang.symbol + '' + - '' + lang.bdc2sb + - '' + lang.tobdc + '' + - '
    ' + - '
    ' + - '
    '; - - - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(AutoTypeSetPicker, UIBase); -})(); - - -// ui/autotypesetbutton.js -///import core -///import uicore -///import ui/popup.js -///import ui/autotypesetpicker.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker, - SplitButton = baidu.editor.ui.SplitButton, - AutoTypeSetButton = baidu.editor.ui.AutoTypeSetButton = function (options){ - this.initOptions(options); - this.initAutoTypeSetButton(); - }; - function getPara(me){ - - var opt = {}, - cont = me.getDom(), - editorId = me.editor.uid, - inputType = null, - attrName = null, - ipts = domUtils.getElementsByTagName(cont,"input"); - for(var i=ipts.length-1,ipt;ipt=ipts[i--];){ - inputType = ipt.getAttribute("type"); - if(inputType=="checkbox"){ - attrName = ipt.getAttribute("name"); - opt[attrName] && delete opt[attrName]; - if(ipt.checked){ - var attrValue = document.getElementById( attrName + "Value" + editorId ); - if(attrValue){ - if(/input/ig.test(attrValue.tagName)){ - opt[attrName] = attrValue.value; - } else { - var iptChilds = attrValue.getElementsByTagName("input"); - for(var j=iptChilds.length-1,iptchild;iptchild=iptChilds[j--];){ - if(iptchild.checked){ - opt[attrName] = iptchild.value; - break; - } - } - } - } else { - opt[attrName] = true; - } - } else { - opt[attrName] = false; - } - } else { - opt[ipt.getAttribute("value")] = ipt.checked; - } - - } - - var selects = domUtils.getElementsByTagName(cont,"select"); - for(var i=0,si;si=selects[i++];){ - var attr = si.getAttribute('name'); - opt[attr] = opt[attr] ? si.value : ''; - } - - utils.extend(me.editor.options.autotypeset,opt); - - me.editor.setPreferences('autotypeset', opt); - } - - AutoTypeSetButton.prototype = { - initAutoTypeSetButton: function (){ - - var me = this; - this.popup = new Popup({ - //传入配置参数 - content: new AutoTypeSetPicker({editor:me.editor}), - 'editor':me.editor, - hide : function(){ - if (!this._hidden && this.getDom()) { - getPara(this); - this.getDom().style.display = 'none'; - this._hidden = true; - this.fireEvent('hide'); - } - } - }); - var flag = 0; - this.popup.addListener('postRenderAfter',function(){ - var popupUI = this; - if(flag)return; - var cont = this.getDom(), - btn = cont.getElementsByTagName('button')[0]; - - btn.onclick = function(){ - getPara(popupUI); - me.editor.execCommand('autotypeset'); - popupUI.hide() - }; - - domUtils.on(cont, 'click', function(e) { - var target = e.target || e.srcElement, - editorId = me.editor.uid; - if (target && target.tagName == 'INPUT') { - - // 点击图片浮动的checkbox,去除对应的radio - if (target.name == 'imageBlockLine' || target.name == 'textAlign' || target.name == 'symbolConver') { - var checked = target.checked, - radioTd = document.getElementById( target.name + 'Value' + editorId), - radios = radioTd.getElementsByTagName('input'), - defalutSelect = { - 'imageBlockLine': 'none', - 'textAlign': 'left', - 'symbolConver': 'tobdc' - }; - - for (var i = 0; i < radios.length; i++) { - if (checked) { - if (radios[i].value == defalutSelect[target.name]) { - radios[i].checked = 'checked'; - } - } else { - radios[i].checked = false; - } - } - } - // 点击radio,选中对应的checkbox - if (target.name == ('imageBlockLineValue' + editorId) || target.name == ('textAlignValue' + editorId) || target.name == 'bdc') { - var checkboxs = target.parentNode.previousSibling.getElementsByTagName('input'); - checkboxs && (checkboxs[0].checked = true); - } - - getPara(popupUI); - } - }); - - flag = 1; - }); - this.initSplitButton(); - } - }; - utils.inherits(AutoTypeSetButton, SplitButton); - -})(); - - -// ui/cellalignpicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - Stateful = baidu.editor.ui.Stateful, - UIBase = baidu.editor.ui.UIBase; - - /** - * 该参数将新增一个参数: selected, 参数类型为一个Object, 形如{ 'align': 'center', 'valign': 'top' }, 表示单元格的初始 - * 对齐状态为: 竖直居上,水平居中; 其中 align的取值为:'center', 'left', 'right'; valign的取值为: 'top', 'middle', 'bottom' - * @update 2013/4/2 hancong03@baidu.com - */ - var CellAlignPicker = baidu.editor.ui.CellAlignPicker = function (options) { - this.initOptions(options); - this.initSelected(); - this.initCellAlignPicker(); - }; - CellAlignPicker.prototype = { - //初始化选中状态, 该方法将根据传递进来的参数获取到应该选中的对齐方式图标的索引 - initSelected: function(){ - - var status = { - - valign: { - top: 0, - middle: 1, - bottom: 2 - }, - align: { - left: 0, - center: 1, - right: 2 - }, - count: 3 - - }, - result = -1; - - if( this.selected ) { - this.selectedIndex = status.valign[ this.selected.valign ] * status.count + status.align[ this.selected.align ]; - } - - }, - initCellAlignPicker:function () { - this.initUIBase(); - this.Stateful_init(); - }, - getHtmlTpl:function () { - - var alignType = [ 'left', 'center', 'right' ], - COUNT = 9, - tempClassName = null, - tempIndex = -1, - tmpl = []; - - - for( var i= 0; i'); - - tmpl.push( '
    ' ); - - tempIndex === 2 && tmpl.push(''); - - } - - return '
    ' + - '
    ' + - '' + - tmpl.join('') + - '
    ' + - '
    ' + - '
    '; - }, - getStateDom: function (){ - return this.target; - }, - _onClick: function (evt){ - var target= evt.target || evt.srcElement; - if(/icon/.test(target.className)){ - this.items[target.parentNode.getAttribute("index")].onclick(); - Popup.postHide(evt); - } - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(CellAlignPicker, UIBase); - utils.extend(CellAlignPicker.prototype, Stateful,true); -})(); - - - - - -// ui/pastepicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - Stateful = baidu.editor.ui.Stateful, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase; - - var PastePicker = baidu.editor.ui.PastePicker = function (options) { - this.initOptions(options); - this.initPastePicker(); - }; - PastePicker.prototype = { - initPastePicker:function () { - this.initUIBase(); - this.Stateful_init(); - }, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - '
    ' + this.editor.getLang("pasteOpt") + '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' - }, - getStateDom:function () { - return this.target; - }, - format:function (param) { - this.editor.ui._isTransfer = true; - this.editor.fireEvent('pasteTransfer', param); - }, - _onClick:function (cur) { - var node = domUtils.getNextDomNode(cur), - screenHt = uiUtils.getViewportRect().height, - subPop = uiUtils.getClientRect(node); - - if ((subPop.top + subPop.height) > screenHt) - node.style.top = (-subPop.height - cur.offsetHeight) + "px"; - else - node.style.top = ""; - - if (/hidden/ig.test(domUtils.getComputedStyle(node, "visibility"))) { - node.style.visibility = "visible"; - domUtils.addClass(cur, "edui-state-opened"); - } else { - node.style.visibility = "hidden"; - domUtils.removeClasses(cur, "edui-state-opened") - } - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(PastePicker, UIBase); - utils.extend(PastePicker.prototype, Stateful, true); -})(); - - - - - - -// ui/toolbar.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase, - Toolbar = baidu.editor.ui.Toolbar = function (options){ - this.initOptions(options); - this.initToolbar(); - }; - Toolbar.prototype = { - items: null, - initToolbar: function (){ - this.items = this.items || []; - this.initUIBase(); - }, - add: function (item,index){ - if(index === undefined){ - this.items.push(item); - }else{ - this.items.splice(index,0,item) - } - - }, - getHtmlTpl: function (){ - var buff = []; - for (var i=0; i' + - buff.join('') + - '
    ' - }, - postRender: function (){ - var box = this.getDom(); - for (var i=0; i
    '; - }, - postRender:function () { - }, - queryAutoHide:function () { - return true; - } - }; - Menu.prototype = { - items:null, - uiName:'menu', - initMenu:function () { - this.items = this.items || []; - this.initPopup(); - this.initItems(); - }, - initItems:function () { - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - if (item == '-') { - this.items[i] = this.getSeparator(); - } else if (!(item instanceof MenuItem)) { - item.editor = this.editor; - item.theme = this.editor.options.theme; - this.items[i] = this.createItem(item); - } - } - }, - getSeparator:function () { - return menuSeparator; - }, - createItem:function (item) { - //新增一个参数menu, 该参数存储了menuItem所对应的menu引用 - item.menu = this; - return new MenuItem(item); - }, - _Popup_getContentHtmlTpl:Popup.prototype.getContentHtmlTpl, - getContentHtmlTpl:function () { - if (this.items.length == 0) { - return this._Popup_getContentHtmlTpl(); - } - var buff = []; - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - buff[i] = item.renderHtml(); - } - return ('
    ' + buff.join('') + '
    '); - }, - _Popup_postRender:Popup.prototype.postRender, - postRender:function () { - var me = this; - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - item.ownerMenu = this; - item.postRender(); - } - domUtils.on(this.getDom(), 'mouseover', function (evt) { - evt = evt || event; - var rel = evt.relatedTarget || evt.fromElement; - var el = me.getDom(); - if (!uiUtils.contains(el, rel) && el !== rel) { - me.fireEvent('over'); - } - }); - this._Popup_postRender(); - }, - queryAutoHide:function (el) { - if (el) { - if (uiUtils.contains(this.getDom(), el)) { - return false; - } - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - if (item.queryAutoHide(el) === false) { - return false; - } - } - } - }, - clearItems:function () { - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - clearTimeout(item._showingTimer); - clearTimeout(item._closingTimer); - if (item.subMenu) { - item.subMenu.destroy(); - } - } - this.items = []; - }, - destroy:function () { - if (this.getDom()) { - domUtils.remove(this.getDom()); - } - this.clearItems(); - }, - dispose:function () { - this.destroy(); - } - }; - utils.inherits(Menu, Popup); - - /** - * @update 2013/04/03 hancong03 新增一个参数menu, 该参数存储了menuItem所对应的menu引用 - * @type {Function} - */ - var MenuItem = baidu.editor.ui.MenuItem = function (options) { - this.initOptions(options); - this.initUIBase(); - this.Stateful_init(); - if (this.subMenu && !(this.subMenu instanceof Menu)) { - if (options.className && options.className.indexOf("aligntd") != -1) { - var me = this; - - //获取单元格对齐初始状态 - this.subMenu.selected = this.editor.queryCommandValue( 'cellalignment' ); - - this.subMenu = new Popup({ - content:new CellAlignPicker(this.subMenu), - parentMenu:me, - editor:me.editor, - destroy:function () { - if (this.getDom()) { - domUtils.remove(this.getDom()); - } - } - }); - this.subMenu.addListener("postRenderAfter", function () { - domUtils.on(this.getDom(), "mouseover", function () { - me.addState('opened'); - }); - }); - } else { - this.subMenu = new Menu(this.subMenu); - } - } - }; - MenuItem.prototype = { - label:'', - subMenu:null, - ownerMenu:null, - uiName:'menuitem', - alwalysHoverable:true, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - this.renderLabelHtml() + - '
    ' + - '
    '; - }, - postRender:function () { - var me = this; - this.addListener('over', function () { - me.ownerMenu.fireEvent('submenuover', me); - if (me.subMenu) { - me.delayShowSubMenu(); - } - }); - if (this.subMenu) { - this.getDom().className += ' edui-hassubmenu'; - this.subMenu.render(); - this.addListener('out', function () { - me.delayHideSubMenu(); - }); - this.subMenu.addListener('over', function () { - clearTimeout(me._closingTimer); - me._closingTimer = null; - me.addState('opened'); - }); - this.ownerMenu.addListener('hide', function () { - me.hideSubMenu(); - }); - this.ownerMenu.addListener('submenuover', function (t, subMenu) { - if (subMenu !== me) { - me.delayHideSubMenu(); - } - }); - this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide; - this.subMenu.queryAutoHide = function (el) { - if (el && uiUtils.contains(me.getDom(), el)) { - return false; - } - return this._bakQueryAutoHide(el); - }; - } - this.getDom().style.tabIndex = '-1'; - uiUtils.makeUnselectable(this.getDom()); - this.Stateful_postRender(); - }, - delayShowSubMenu:function () { - var me = this; - if (!me.isDisabled()) { - me.addState('opened'); - clearTimeout(me._showingTimer); - clearTimeout(me._closingTimer); - me._closingTimer = null; - me._showingTimer = setTimeout(function () { - me.showSubMenu(); - }, 250); - } - }, - delayHideSubMenu:function () { - var me = this; - if (!me.isDisabled()) { - me.removeState('opened'); - clearTimeout(me._showingTimer); - if (!me._closingTimer) { - me._closingTimer = setTimeout(function () { - if (!me.hasState('opened')) { - me.hideSubMenu(); - } - me._closingTimer = null; - }, 400); - } - } - }, - renderLabelHtml:function () { - return '
    ' + - '
    ' + - '
    ' + (this.label || '') + '
    '; - }, - getStateDom:function () { - return this.getDom(); - }, - queryAutoHide:function (el) { - if (this.subMenu && this.hasState('opened')) { - return this.subMenu.queryAutoHide(el); - } - }, - _onClick:function (event, this_) { - if (this.hasState('disabled')) return; - if (this.fireEvent('click', event, this_) !== false) { - if (this.subMenu) { - this.showSubMenu(); - } else { - Popup.postHide(event); - } - } - }, - showSubMenu:function () { - var rect = uiUtils.getClientRect(this.getDom()); - rect.right -= 5; - rect.left += 2; - rect.width -= 7; - rect.top -= 4; - rect.bottom += 4; - rect.height += 8; - this.subMenu.showAnchorRect(rect, true, true); - }, - hideSubMenu:function () { - this.subMenu.hide(); - } - }; - utils.inherits(MenuItem, UIBase); - utils.extend(MenuItem.prototype, Stateful, true); -})(); - - -// ui/combox.js -///import core -///import uicore -///import ui/menu.js -///import ui/splitbutton.js -(function (){ - // todo: menu和item提成通用list - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - Menu = baidu.editor.ui.Menu, - SplitButton = baidu.editor.ui.SplitButton, - Combox = baidu.editor.ui.Combox = function (options){ - this.initOptions(options); - this.initCombox(); - }; - Combox.prototype = { - uiName: 'combox', - onbuttonclick:function () { - this.showPopup(); - }, - initCombox: function (){ - var me = this; - this.items = this.items || []; - for (var i=0; i vpRect.right) { - left = vpRect.right - rect.width; - } - var top = offset.top; - if (top + rect.height > vpRect.bottom) { - top = vpRect.bottom - rect.height; - } - el.style.left = Math.max(left, 0) + 'px'; - el.style.top = Math.max(top, 0) + 'px'; - }, - showAtCenter: function (){ - - var vpRect = uiUtils.getViewportRect(); - - if ( !this.fullscreen ) { - this.getDom().style.display = ''; - var popSize = this.fitSize(); - var titleHeight = this.getDom('titlebar').offsetHeight | 0; - var left = vpRect.width / 2 - popSize.width / 2; - var top = vpRect.height / 2 - (popSize.height - titleHeight) / 2 - titleHeight; - var popEl = this.getDom(); - this.safeSetOffset({ - left: Math.max(left | 0, 0), - top: Math.max(top | 0, 0) - }); - if (!domUtils.hasClass(popEl, 'edui-state-centered')) { - popEl.className += ' edui-state-centered'; - } - } else { - var dialogWrapNode = this.getDom(), - contentNode = this.getDom('content'); - - dialogWrapNode.style.display = "block"; - - var wrapRect = UE.ui.uiUtils.getClientRect( dialogWrapNode ), - contentRect = UE.ui.uiUtils.getClientRect( contentNode ); - dialogWrapNode.style.left = "-100000px"; - - contentNode.style.width = ( vpRect.width - wrapRect.width + contentRect.width ) + "px"; - contentNode.style.height = ( vpRect.height - wrapRect.height + contentRect.height ) + "px"; - - dialogWrapNode.style.width = vpRect.width + "px"; - dialogWrapNode.style.height = vpRect.height + "px"; - dialogWrapNode.style.left = 0; - - //保存环境的overflow值 - this._originalContext = { - html: { - overflowX: document.documentElement.style.overflowX, - overflowY: document.documentElement.style.overflowY - }, - body: { - overflowX: document.body.style.overflowX, - overflowY: document.body.style.overflowY - } - }; - - document.documentElement.style.overflowX = 'hidden'; - document.documentElement.style.overflowY = 'hidden'; - document.body.style.overflowX = 'hidden'; - document.body.style.overflowY = 'hidden'; - - } - - this._show(); - }, - getContentHtml: function (){ - var contentHtml = ''; - if (typeof this.content == 'string') { - contentHtml = this.content; - } else if (this.iframeUrl) { - contentHtml = ''; - } - return contentHtml; - }, - getHtmlTpl: function (){ - var footHtml = ''; - - if (this.buttons) { - var buff = []; - for (var i=0; i' + buff.join('') + '
    '; - } - - return '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + (this.title || '') + '' + - '
    ' + - this.closeButton.renderHtml() + - '
    ' + - '
    '+ ( this.autoReset ? '' : this.getContentHtml()) +'
    ' + - footHtml + - '
    '; - }, - postRender: function (){ - // todo: 保持居中/记住上次关闭位置选项 - if (!this.modalMask.getDom()) { - this.modalMask.render(); - this.modalMask.hide(); - } - if (!this.dragMask.getDom()) { - this.dragMask.render(); - this.dragMask.hide(); - } - var me = this; - this.addListener('show', function (){ - me.modalMask.show(this.getDom().style.zIndex - 2); - }); - this.addListener('hide', function (){ - me.modalMask.hide(); - }); - if (this.buttons) { - for (var i=0; i'; - me.editor.container.style.zIndex && (this.getDom().style.zIndex = me.editor.container.style.zIndex * 1 + 1); - } - } - // canSideUp:false, - // canSideLeft:false - }); - this.onbuttonclick = function(){ - this.showPopup(); - }; - this.initSplitButton(); - } - - }; - - utils.inherits(MultiMenuPop, SplitButton); -})(); - - -// ui/shortcutmenu.js -(function () { - var UI = baidu.editor.ui, - UIBase = UI.UIBase, - uiUtils = UI.uiUtils, - utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils; - - var allMenus = [],//存储所有快捷菜单 - timeID, - isSubMenuShow = false;//是否有子pop显示 - - var ShortCutMenu = UI.ShortCutMenu = function (options) { - this.initOptions (options); - this.initShortCutMenu (); - }; - - ShortCutMenu.postHide = hideAllMenu; - - ShortCutMenu.prototype = { - isHidden : true , - SPACE : 5 , - initShortCutMenu : function () { - this.items = this.items || []; - this.initUIBase (); - this.initItems (); - this.initEvent (); - allMenus.push (this); - } , - initEvent : function () { - var me = this, - doc = me.editor.document; - - domUtils.on (doc , "mousemove" , function (e) { - if (me.isHidden === false) { - //有pop显示就不隐藏快捷菜单 - if (me.getSubMenuMark () || me.eventType == "contextmenu") return; - - - var flag = true, - el = me.getDom (), - wt = el.offsetWidth, - ht = el.offsetHeight, - distanceX = wt / 2 + me.SPACE,//距离中心X标准 - distanceY = ht / 2,//距离中心Y标准 - x = Math.abs (e.screenX - me.left),//离中心距离横坐标 - y = Math.abs (e.screenY - me.top);//离中心距离纵坐标 - - clearTimeout (timeID); - timeID = setTimeout (function () { - if (y > 0 && y < distanceY) { - me.setOpacity (el , "1"); - } else if (y > distanceY && y < distanceY + 70) { - me.setOpacity (el , "0.5"); - flag = false; - } else if (y > distanceY + 70 && y < distanceY + 140) { - me.hide (); - } - - if (flag && x > 0 && x < distanceX) { - me.setOpacity (el , "1") - } else if (x > distanceX && x < distanceX + 70) { - me.setOpacity (el , "0.5") - } else if (x > distanceX + 70 && x < distanceX + 140) { - me.hide (); - } - }); - } - }); - - //ie\ff下 mouseout不准 - if (browser.chrome) { - domUtils.on (doc , "mouseout" , function (e) { - var relatedTgt = e.relatedTarget || e.toElement; - - if (relatedTgt == null || relatedTgt.tagName == "HTML") { - me.hide (); - } - }); - } - - me.editor.addListener ("afterhidepop" , function () { - if (!me.isHidden) { - isSubMenuShow = true; - } - }); - - } , - initItems : function () { - if (utils.isArray (this.items)) { - for (var i = 0, len = this.items.length ; i < len ; i++) { - var item = this.items[i].toLowerCase (); - - if (UI[item]) { - this.items[i] = new UI[item] (this.editor); - this.items[i].className += " edui-shortcutsubmenu "; - } - } - } - } , - setOpacity : function (el , value) { - if (browser.ie && browser.version < 9) { - el.style.filter = "alpha(opacity = " + parseFloat (value) * 100 + ");" - } else { - el.style.opacity = value; - } - } , - getSubMenuMark : function () { - isSubMenuShow = false; - var layerEle = uiUtils.getFixedLayer (); - var list = domUtils.getElementsByTagName (layerEle , "div" , function (node) { - return domUtils.hasClass (node , "edui-shortcutsubmenu edui-popup") - }); - - for (var i = 0, node ; node = list[i++] ;) { - if (node.style.display != "none") { - isSubMenuShow = true; - } - } - return isSubMenuShow; - } , - show : function (e , hasContextmenu) { - var me = this, - offset = {}, - el = this.getDom (), - fixedlayer = uiUtils.getFixedLayer (); - - function setPos (offset) { - if (offset.left < 0) { - offset.left = 0; - } - if (offset.top < 0) { - offset.top = 0; - } - el.style.cssText = "position:absolute;left:" + offset.left + "px;top:" + offset.top + "px;"; - } - - function setPosByCxtMenu (menu) { - if (!menu.tagName) { - menu = menu.getDom (); - } - offset.left = parseInt (menu.style.left); - offset.top = parseInt (menu.style.top); - offset.top -= el.offsetHeight + 15; - setPos (offset); - } - - - me.eventType = e.type; - el.style.cssText = "display:block;left:-9999px"; - - if (e.type == "contextmenu" && hasContextmenu) { - var menu = domUtils.getElementsByTagName (fixedlayer , "div" , "edui-contextmenu")[0]; - if (menu) { - setPosByCxtMenu (menu) - } else { - me.editor.addListener ("aftershowcontextmenu" , function (type , menu) { - setPosByCxtMenu (menu); - }); - } - } else { - offset = uiUtils.getViewportOffsetByEvent (e); - offset.top -= el.offsetHeight + me.SPACE; - offset.left += me.SPACE + 20; - setPos (offset); - me.setOpacity (el , 0.2); - } - - - me.isHidden = false; - me.left = e.screenX + el.offsetWidth / 2 - me.SPACE; - me.top = e.screenY - (el.offsetHeight / 2) - me.SPACE; - - if (me.editor) { - el.style.zIndex = me.editor.container.style.zIndex * 1 + 10; - fixedlayer.style.zIndex = el.style.zIndex - 1; - } - } , - hide : function () { - if (this.getDom ()) { - this.getDom ().style.display = "none"; - } - this.isHidden = true; - } , - postRender : function () { - if (utils.isArray (this.items)) { - for (var i = 0, item ; item = this.items[i++] ;) { - item.postRender (); - } - } - } , - getHtmlTpl : function () { - var buff; - if (utils.isArray (this.items)) { - buff = []; - for (var i = 0 ; i < this.items.length ; i++) { - buff[i] = this.items[i].renderHtml (); - } - buff = buff.join (""); - } else { - buff = this.items; - } - - return '
    ' + - buff + - '
    '; - } - }; - - utils.inherits (ShortCutMenu , UIBase); - - function hideAllMenu (e) { - var tgt = e.target || e.srcElement, - cur = domUtils.findParent (tgt , function (node) { - return domUtils.hasClass (node , "edui-shortcutmenu") || domUtils.hasClass (node , "edui-popup"); - } , true); - - if (!cur) { - for (var i = 0, menu ; menu = allMenus[i++] ;) { - menu.hide () - } - } - } - - domUtils.on (document , 'mousedown' , function (e) { - hideAllMenu (e); - }); - - domUtils.on (window , 'scroll' , function (e) { - hideAllMenu (e); - }); - -}) (); - - -// ui/breakline.js -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - Breakline = baidu.editor.ui.Breakline = function (options){ - this.initOptions(options); - this.initSeparator(); - }; - Breakline.prototype = { - uiName: 'Breakline', - initSeparator: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - return '
    '; - } - }; - utils.inherits(Breakline, UIBase); - -})(); - - -// ui/message.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Message = baidu.editor.ui.Message = function (options){ - this.initOptions(options); - this.initMessage(); - }; - - Message.prototype = { - initMessage: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ×
    ' + - '
    ' + - ' ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - reset: function(opt){ - var me = this; - if (!opt.keepshow) { - clearTimeout(this.timer); - me.timer = setTimeout(function(){ - me.hide(); - }, opt.timeout || 4000); - } - - opt.content !== undefined && me.setContent(opt.content); - opt.type !== undefined && me.setType(opt.type); - - me.show(); - }, - postRender: function(){ - var me = this, - closer = this.getDom('closer'); - closer && domUtils.on(closer, 'click', function(){ - me.hide(); - }); - }, - setContent: function(content){ - this.getDom('content').innerHTML = content; - }, - setType: function(type){ - type = type || 'info'; - var body = this.getDom('body'); - body.className = body.className.replace(/edui-message-type-[\w-]+/, 'edui-message-type-' + type); - }, - getContent: function(){ - return this.getDom('content').innerHTML; - }, - getType: function(){ - var arr = this.getDom('body').match(/edui-message-type-([\w-]+)/); - return arr ? arr[1]:''; - }, - show: function (){ - this.getDom().style.display = 'block'; - }, - hide: function (){ - var dom = this.getDom(); - if (dom) { - dom.style.display = 'none'; - dom.parentNode && dom.parentNode.removeChild(dom); - } - } - }; - - utils.inherits(Message, UIBase); - -})(); - - -// adapter/editorui.js -//ui跟编辑器的适配層 -//那个按钮弹出是dialog,是下拉筐等都是在这个js中配置 -//自己写的ui也要在这里配置,放到baidu.editor.ui下边,当编辑器实例化的时候会根据ueditor.config中的toolbars找到相应的进行实例化 -(function () { - var utils = baidu.editor.utils; - var editorui = baidu.editor.ui; - var _Dialog = editorui.Dialog; - editorui.buttons = {}; - - editorui.Dialog = function (options) { - var dialog = new _Dialog(options); - dialog.addListener('hide', function () { - - if (dialog.editor) { - var editor = dialog.editor; - try { - if (browser.gecko) { - var y = editor.window.scrollY, - x = editor.window.scrollX; - editor.body.focus(); - editor.window.scrollTo(x, y); - } else { - editor.focus(); - } - - - } catch (ex) { - } - } - }); - return dialog; - }; - - var iframeUrlMap = { - 'anchor':'~/dialogs/anchor/anchor.html', - 'insertimage':'~/dialogs/image/image.html', - 'link':'~/dialogs/link/link.html', - 'spechars':'~/dialogs/spechars/spechars.html', - 'searchreplace':'~/dialogs/searchreplace/searchreplace.html', - 'map':'~/dialogs/map/map.html', - 'gmap':'~/dialogs/gmap/gmap.html', - 'insertvideo':'~/dialogs/video/video.html', - 'help':'~/dialogs/help/help.html', - 'preview':'~/dialogs/preview/preview.html', - 'emotion':'~/dialogs/emotion/emotion.html', - 'wordimage':'~/dialogs/wordimage/wordimage.html', - 'attachment':'~/dialogs/attachment/attachment.html', - 'insertframe':'~/dialogs/insertframe/insertframe.html', - 'edittip':'~/dialogs/table/edittip.html', - 'edittable':'~/dialogs/table/edittable.html', - 'edittd':'~/dialogs/table/edittd.html', - 'webapp':'~/dialogs/webapp/webapp.html', - 'snapscreen':'~/dialogs/snapscreen/snapscreen.html', - 'scrawl':'~/dialogs/scrawl/scrawl.html', - 'music':'~/dialogs/music/music.html', - 'template':'~/dialogs/template/template.html', - 'background':'~/dialogs/background/background.html', - 'charts': '~/dialogs/charts/charts.html' - }; - //为工具栏添加按钮,以下都是统一的按钮触发命令,所以写在一起 - var btnCmds = ['undo', 'redo', 'formatmatch', - 'bold', 'italic', 'underline', 'fontborder', 'touppercase', 'tolowercase', - 'strikethrough', 'subscript', 'superscript', 'source', 'indent', 'outdent', - 'blockquote', 'pasteplain', 'pagebreak', - 'selectall', 'print','horizontal', 'removeformat', 'time', 'date', 'unlink', - 'insertparagraphbeforetable', 'insertrow', 'insertcol', 'mergeright', 'mergedown', 'deleterow', - 'deletecol', 'splittorows', 'splittocols', 'splittocells', 'mergecells', 'deletetable', 'drafts']; - - for (var i = 0, ci; ci = btnCmds[i++];) { - ci = ci.toLowerCase(); - editorui[ci] = function (cmd) { - return function (editor) { - var ui = new editorui.Button({ - className:'edui-for-' + cmd, - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '', - onclick:function () { - editor.execCommand(cmd); - }, - theme:editor.options.theme, - showText:false - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - var state = editor.queryCommandState(cmd); - if (state == -1) { - ui.setDisabled(true); - ui.setChecked(false); - } else { - if (!uiReady) { - ui.setDisabled(false); - ui.setChecked(state); - } - } - }); - return ui; - }; - }(ci); - } - - //清除文档 - editorui.cleardoc = function (editor) { - var ui = new editorui.Button({ - className:'edui-for-cleardoc', - title:editor.options.labelMap.cleardoc || editor.getLang("labelMap.cleardoc") || '', - theme:editor.options.theme, - onclick:function () { - if (confirm(editor.getLang("confirmClear"))) { - editor.execCommand('cleardoc'); - } - } - }); - editorui.buttons["cleardoc"] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('cleardoc') == -1); - }); - return ui; - }; - - //排版,图片排版,文字方向 - var typeset = { - 'justify':['left', 'right', 'center', 'justify'], - 'imagefloat':['none', 'left', 'center', 'right'], - 'directionality':['ltr', 'rtl'] - }; - - for (var p in typeset) { - - (function (cmd, val) { - for (var i = 0, ci; ci = val[i++];) { - (function (cmd2) { - editorui[cmd.replace('float', '') + cmd2] = function (editor) { - var ui = new editorui.Button({ - className:'edui-for-' + cmd.replace('float', '') + cmd2, - title:editor.options.labelMap[cmd.replace('float', '') + cmd2] || editor.getLang("labelMap." + cmd.replace('float', '') + cmd2) || '', - theme:editor.options.theme, - onclick:function () { - editor.execCommand(cmd, cmd2); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - ui.setDisabled(editor.queryCommandState(cmd) == -1); - ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady); - }); - return ui; - }; - })(ci) - } - })(p, typeset[p]) - } - - //字体颜色和背景颜色 - for (var i = 0, ci; ci = ['backcolor', 'forecolor'][i++];) { - editorui[ci] = function (cmd) { - return function (editor) { - var ui = new editorui.ColorButton({ - className:'edui-for-' + cmd, - color:'default', - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '', - editor:editor, - onpickcolor:function (t, color) { - editor.execCommand(cmd, color); - }, - onpicknocolor:function () { - editor.execCommand(cmd, 'default'); - this.setColor('transparent'); - this.color = 'default'; - }, - onbuttonclick:function () { - editor.execCommand(cmd, this.color); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState(cmd) == -1); - }); - return ui; - }; - }(ci); - } - - - var dialogBtns = { - noOk:['searchreplace', 'help', 'spechars', 'webapp','preview'], - ok:['attachment', 'anchor', 'link', 'insertimage', 'map', 'gmap', 'insertframe', 'wordimage', - 'insertvideo', 'insertframe', 'edittip', 'edittable', 'edittd', 'scrawl', 'template', 'music', 'background', 'charts'] - }; - - for (var p in dialogBtns) { - (function (type, vals) { - for (var i = 0, ci; ci = vals[i++];) { - //todo opera下存在问题 - if (browser.opera && ci === "searchreplace") { - continue; - } - (function (cmd) { - editorui[cmd] = function (editor, iframeUrl, title) { - iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]; - title = editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || ''; - - var dialog; - //没有iframeUrl不创建dialog - if (iframeUrl) { - dialog = new editorui.Dialog(utils.extend({ - iframeUrl:editor.ui.mapUrl(iframeUrl), - editor:editor, - className:'edui-for-' + cmd, - title:title, - holdScroll: cmd === 'insertimage', - fullscreen: /charts|preview/.test(cmd), - closeDialog:editor.getLang("closeDialog") - }, type == 'ok' ? { - buttons:[ - { - className:'edui-okbutton', - label:editor.getLang("ok"), - editor:editor, - onclick:function () { - dialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:editor.getLang("cancel"), - editor:editor, - onclick:function () { - dialog.close(false); - } - } - ] - } : {})); - - editor.ui._dialogs[cmd + "Dialog"] = dialog; - } - - var ui = new editorui.Button({ - className:'edui-for-' + cmd, - title:title, - onclick:function () { - if (dialog) { - switch (cmd) { - case "wordimage": - var images = editor.execCommand("wordimage"); - if (images && images.length) { - dialog.render(); - dialog.open(); - } - break; - case "scrawl": - if (editor.queryCommandState("scrawl") != -1) { - dialog.render(); - dialog.open(); - } - - break; - default: - dialog.render(); - dialog.open(); - } - } - }, - theme:editor.options.theme, - disabled:(cmd == 'scrawl' && editor.queryCommandState("scrawl") == -1) || ( cmd == 'charts' ) - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - //只存在于右键菜单而无工具栏按钮的ui不需要检测状态 - var unNeedCheckState = {'edittable':1}; - if (cmd in unNeedCheckState)return; - - var state = editor.queryCommandState(cmd); - if (ui.getDom()) { - ui.setDisabled(state == -1); - ui.setChecked(state); - } - - }); - - return ui; - }; - })(ci.toLowerCase()) - } - })(p, dialogBtns[p]); - } - - editorui.snapscreen = function (editor, iframeUrl, title) { - title = editor.options.labelMap['snapscreen'] || editor.getLang("labelMap.snapscreen") || ''; - var ui = new editorui.Button({ - className:'edui-for-snapscreen', - title:title, - onclick:function () { - editor.execCommand("snapscreen"); - }, - theme:editor.options.theme - - }); - editorui.buttons['snapscreen'] = ui; - iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})["snapscreen"] || iframeUrlMap["snapscreen"]; - if (iframeUrl) { - var dialog = new editorui.Dialog({ - iframeUrl:editor.ui.mapUrl(iframeUrl), - editor:editor, - className:'edui-for-snapscreen', - title:title, - buttons:[ - { - className:'edui-okbutton', - label:editor.getLang("ok"), - editor:editor, - onclick:function () { - dialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:editor.getLang("cancel"), - editor:editor, - onclick:function () { - dialog.close(false); - } - } - ] - - }); - dialog.render(); - editor.ui._dialogs["snapscreenDialog"] = dialog; - } - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('snapscreen') == -1); - }); - return ui; - }; - - editorui.insertcode = function (editor, list, title) { - list = editor.options['insertcode'] || []; - title = editor.options.labelMap['insertcode'] || editor.getLang("labelMap.insertcode") || ''; - // if (!list.length) return; - var items = []; - utils.each(list,function(key,val){ - items.push({ - label:key, - value:val, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - }); - - var ui = new editorui.Combox({ - editor:editor, - items:items, - onselect:function (t, index) { - editor.execCommand('insertcode', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - title:title, - initValue:title, - className:'edui-for-insertcode', - indexByValue:function (value) { - if (value) { - for (var i = 0, ci; ci = this.items[i]; i++) { - if (ci.value.indexOf(value) != -1) - return i; - } - } - - return -1; - } - }); - editorui.buttons['insertcode'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('insertcode'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('insertcode'); - if(!value){ - ui.setValue(title); - return; - } - //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号 - value && (value = value.replace(/['"]/g, '').split(',')[0]); - ui.setValue(value); - - } - } - - }); - return ui; - }; - editorui.fontfamily = function (editor, list, title) { - - list = editor.options['fontfamily'] || []; - title = editor.options.labelMap['fontfamily'] || editor.getLang("labelMap.fontfamily") || ''; - if (!list.length) return; - for (var i = 0, ci, items = []; ci = list[i]; i++) { - var langLabel = editor.getLang('fontfamily')[ci.name] || ""; - (function (key, val) { - items.push({ - label:key, - value:val, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - })(ci.label || langLabel, ci.val) - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - onselect:function (t, index) { - editor.execCommand('FontFamily', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - title:title, - initValue:title, - className:'edui-for-fontfamily', - indexByValue:function (value) { - if (value) { - for (var i = 0, ci; ci = this.items[i]; i++) { - if (ci.value.indexOf(value) != -1) - return i; - } - } - - return -1; - } - }); - editorui.buttons['fontfamily'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('FontFamily'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('FontFamily'); - //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号 - value && (value = value.replace(/['"]/g, '').split(',')[0]); - ui.setValue(value); - - } - } - - }); - return ui; - }; - - editorui.fontsize = function (editor, list, title) { - title = editor.options.labelMap['fontsize'] || editor.getLang("labelMap.fontsize") || ''; - list = list || editor.options['fontsize'] || []; - if (!list.length) return; - var items = []; - for (var i = 0; i < list.length; i++) { - var size = list[i] + 'px'; - items.push({ - label:size, - value:size, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - onselect:function (t, index) { - editor.execCommand('FontSize', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - className:'edui-for-fontsize' - }); - editorui.buttons['fontsize'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('FontSize'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - ui.setValue(editor.queryCommandValue('FontSize')); - } - } - - }); - return ui; - }; - - editorui.paragraph = function (editor, list, title) { - title = editor.options.labelMap['paragraph'] || editor.getLang("labelMap.paragraph") || ''; - list = editor.options['paragraph'] || []; - if (utils.isEmptyObject(list)) return; - var items = []; - for (var i in list) { - items.push({ - value:i, - label:list[i] || editor.getLang("paragraph")[i], - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }) - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - className:'edui-for-paragraph', - onselect:function (t, index) { - editor.execCommand('Paragraph', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - } - }); - editorui.buttons['paragraph'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('Paragraph'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('Paragraph'); - var index = ui.indexByValue(value); - if (index != -1) { - ui.setValue(value); - } else { - ui.setValue(ui.initValue); - } - } - } - - }); - return ui; - }; - - - //自定义标题 - editorui.customstyle = function (editor) { - var list = editor.options['customstyle'] || [], - title = editor.options.labelMap['customstyle'] || editor.getLang("labelMap.customstyle") || ''; - if (!list.length)return; - var langCs = editor.getLang('customstyle'); - for (var i = 0, items = [], t; t = list[i++];) { - (function (t) { - var ck = {}; - ck.label = t.label ? t.label : langCs[t.name]; - ck.style = t.style; - ck.className = t.className; - ck.tag = t.tag; - items.push({ - label:ck.label, - value:ck, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + '<' + ck.tag + ' ' + (ck.className ? ' class="' + ck.className + '"' : "") - + (ck.style ? ' style="' + ck.style + '"' : "") + '>' + ck.label + "<\/" + ck.tag + ">" - + '
    '; - } - }); - })(t); - } - - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - className:'edui-for-customstyle', - onselect:function (t, index) { - editor.execCommand('customstyle', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - indexByValue:function (value) { - for (var i = 0, ti; ti = this.items[i++];) { - if (ti.label == value) { - return i - 1 - } - } - return -1; - } - }); - editorui.buttons['customstyle'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('customstyle'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('customstyle'); - var index = ui.indexByValue(value); - if (index != -1) { - ui.setValue(value); - } else { - ui.setValue(ui.initValue); - } - } - } - - }); - return ui; - }; - editorui.inserttable = function (editor, iframeUrl, title) { - title = editor.options.labelMap['inserttable'] || editor.getLang("labelMap.inserttable") || ''; - var ui = new editorui.TableButton({ - editor:editor, - title:title, - className:'edui-for-inserttable', - onpicktable:function (t, numCols, numRows) { - editor.execCommand('InsertTable', {numRows:numRows, numCols:numCols, border:1}); - }, - onbuttonclick:function () { - this.showPopup(); - } - }); - editorui.buttons['inserttable'] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('inserttable') == -1); - }); - return ui; - }; - - editorui.lineheight = function (editor) { - var val = editor.options.lineheight || []; - if (!val.length)return; - for (var i = 0, ci, items = []; ci = val[i++];) { - items.push({ - //todo:写死了 - label:ci, - value:ci, - theme:editor.options.theme, - onclick:function () { - editor.execCommand("lineheight", this.value); - } - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-lineheight', - title:editor.options.labelMap['lineheight'] || editor.getLang("labelMap.lineheight") || '', - items:items, - onbuttonclick:function () { - var value = editor.queryCommandValue('LineHeight') || this.value; - editor.execCommand("LineHeight", value); - } - }); - editorui.buttons['lineheight'] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('LineHeight'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('LineHeight'); - value && ui.setValue((value + '').replace(/cm/, '')); - ui.setChecked(state) - } - }); - return ui; - }; - - var rowspacings = ['top', 'bottom']; - for (var r = 0, ri; ri = rowspacings[r++];) { - (function (cmd) { - editorui['rowspacing' + cmd] = function (editor) { - var val = editor.options['rowspacing' + cmd] || []; - if (!val.length) return null; - for (var i = 0, ci, items = []; ci = val[i++];) { - items.push({ - label:ci, - value:ci, - theme:editor.options.theme, - onclick:function () { - editor.execCommand("rowspacing", this.value, cmd); - } - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-rowspacing' + cmd, - title:editor.options.labelMap['rowspacing' + cmd] || editor.getLang("labelMap.rowspacing" + cmd) || '', - items:items, - onbuttonclick:function () { - var value = editor.queryCommandValue('rowspacing', cmd) || this.value; - editor.execCommand("rowspacing", value, cmd); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('rowspacing', cmd); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('rowspacing', cmd); - value && ui.setValue((value + '').replace(/%/, '')); - ui.setChecked(state) - } - }); - return ui; - } - })(ri) - } - //有序,无序列表 - var lists = ['insertorderedlist', 'insertunorderedlist']; - for (var l = 0, cl; cl = lists[l++];) { - (function (cmd) { - editorui[cmd] = function (editor) { - var vals = editor.options[cmd], - _onMenuClick = function () { - editor.execCommand(cmd, this.value); - }, items = []; - for (var i in vals) { - items.push({ - label:vals[i] || editor.getLang()[cmd][i] || "", - value:i, - theme:editor.options.theme, - onclick:_onMenuClick - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-' + cmd, - title:editor.getLang("labelMap." + cmd) || '', - 'items':items, - onbuttonclick:function () { - var value = editor.queryCommandValue(cmd) || this.value; - editor.execCommand(cmd, value); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState(cmd); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue(cmd); - ui.setValue(value); - ui.setChecked(state) - } - }); - return ui; - }; - })(cl) - } - - editorui.fullscreen = function (editor, title) { - title = editor.options.labelMap['fullscreen'] || editor.getLang("labelMap.fullscreen") || ''; - var ui = new editorui.Button({ - className:'edui-for-fullscreen', - title:title, - theme:editor.options.theme, - onclick:function () { - if (editor.ui) { - editor.ui.setFullScreen(!editor.ui.isFullScreen()); - } - this.setChecked(editor.ui.isFullScreen()); - } - }); - editorui.buttons['fullscreen'] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('fullscreen'); - ui.setDisabled(state == -1); - ui.setChecked(editor.ui.isFullScreen()); - }); - return ui; - }; - - // 表情 - editorui["emotion"] = function (editor, iframeUrl) { - var cmd = "emotion"; - var ui = new editorui.MultiMenuPop({ - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd + "") || '', - editor:editor, - className:'edui-for-' + cmd, - iframeUrl:editor.ui.mapUrl(iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]) - }); - editorui.buttons[cmd] = ui; - - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState(cmd) == -1) - }); - return ui; - }; - - editorui.autotypeset = function (editor) { - var ui = new editorui.AutoTypeSetButton({ - editor:editor, - title:editor.options.labelMap['autotypeset'] || editor.getLang("labelMap.autotypeset") || '', - className:'edui-for-autotypeset', - onbuttonclick:function () { - editor.execCommand('autotypeset') - } - }); - editorui.buttons['autotypeset'] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('autotypeset') == -1); - }); - return ui; - }; - - /* 简单上传插件 */ - editorui["simpleupload"] = function (editor) { - var name = 'simpleupload', - ui = new editorui.Button({ - className:'edui-for-' + name, - title:editor.options.labelMap[name] || editor.getLang("labelMap." + name) || '', - onclick:function () {}, - theme:editor.options.theme, - showText:false - }); - editorui.buttons[name] = ui; - editor.addListener('ready', function() { - var b = ui.getDom('body'), - iconSpan = b.children[0]; - editor.fireEvent('simpleuploadbtnready', iconSpan); - }); - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - var state = editor.queryCommandState(name); - if (state == -1) { - ui.setDisabled(true); - ui.setChecked(false); - } else { - if (!uiReady) { - ui.setDisabled(false); - ui.setChecked(state); - } - } - }); - return ui; - }; - -})(); - - -// adapter/editor.js -///import core -///commands 全屏 -///commandsName FullScreen -///commandsTitle 全屏 -(function () { - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase, - domUtils = baidu.editor.dom.domUtils; - var nodeStack = []; - - function EditorUI(options) { - this.initOptions(options); - this.initEditorUI(); - } - - EditorUI.prototype = { - uiName:'editor', - initEditorUI:function () { - this.editor.ui = this; - this._dialogs = {}; - this.initUIBase(); - this._initToolbars(); - var editor = this.editor, - me = this; - - editor.addListener('ready', function () { - //提供getDialog方法 - editor.getDialog = function (name) { - return editor.ui._dialogs[name + "Dialog"]; - }; - domUtils.on(editor.window, 'scroll', function (evt) { - baidu.editor.ui.Popup.postHide(evt); - }); - //提供编辑器实时宽高(全屏时宽高不变化) - editor.ui._actualFrameWidth = editor.options.initialFrameWidth; - - UE.browser.ie && UE.browser.version === 6 && editor.container.ownerDocument.execCommand("BackgroundImageCache", false, true); - - //display bottom-bar label based on config - if (editor.options.elementPathEnabled) { - editor.ui.getDom('elementpath').innerHTML = '
    ' + editor.getLang("elementPathTip") + ':
    '; - } - if (editor.options.wordCount) { - function countFn() { - setCount(editor,me); - domUtils.un(editor.document, "click", arguments.callee); - } - domUtils.on(editor.document, "click", countFn); - editor.ui.getDom('wordcount').innerHTML = editor.getLang("wordCountTip"); - } - editor.ui._scale(); - if (editor.options.scaleEnabled) { - if (editor.autoHeightEnabled) { - editor.disableAutoHeight(); - } - me.enableScale(); - } else { - me.disableScale(); - } - if (!editor.options.elementPathEnabled && !editor.options.wordCount && !editor.options.scaleEnabled) { - editor.ui.getDom('elementpath').style.display = "none"; - editor.ui.getDom('wordcount').style.display = "none"; - editor.ui.getDom('scale').style.display = "none"; - } - - if (!editor.selection.isFocus())return; - editor.fireEvent('selectionchange', false, true); - - - }); - - editor.addListener('mousedown', function (t, evt) { - var el = evt.target || evt.srcElement; - baidu.editor.ui.Popup.postHide(evt, el); - baidu.editor.ui.ShortCutMenu.postHide(evt); - - }); - editor.addListener("delcells", function () { - if (UE.ui['edittip']) { - new UE.ui['edittip'](editor); - } - editor.getDialog('edittip').open(); - }); - - var pastePop, isPaste = false, timer; - editor.addListener("afterpaste", function () { - if(editor.queryCommandState('pasteplain')) - return; - if(baidu.editor.ui.PastePicker){ - pastePop = new baidu.editor.ui.Popup({ - content:new baidu.editor.ui.PastePicker({editor:editor}), - editor:editor, - className:'edui-wordpastepop' - }); - pastePop.render(); - } - isPaste = true; - }); - - editor.addListener("afterinserthtml", function () { - clearTimeout(timer); - timer = setTimeout(function () { - if (pastePop && (isPaste || editor.ui._isTransfer)) { - if(pastePop.isHidden()){ - var span = domUtils.createElement(editor.document, 'span', { - 'style':"line-height:0px;", - 'innerHTML':'\ufeff' - }), - range = editor.selection.getRange(); - range.insertNode(span); - var tmp= getDomNode(span, 'firstChild', 'previousSibling'); - tmp && pastePop.showAnchor(tmp.nodeType == 3 ? tmp.parentNode : tmp); - domUtils.remove(span); - }else{ - pastePop.show(); - } - delete editor.ui._isTransfer; - isPaste = false; - } - }, 200) - }); - editor.addListener('contextmenu', function (t, evt) { - baidu.editor.ui.Popup.postHide(evt); - }); - editor.addListener('keydown', function (t, evt) { - if (pastePop) pastePop.dispose(evt); - var keyCode = evt.keyCode || evt.which; - if(evt.altKey&&keyCode==90){ - UE.ui.buttons['fullscreen'].onclick(); - } - }); - editor.addListener('wordcount', function (type) { - setCount(this,me); - }); - function setCount(editor,ui) { - editor.setOpt({ - wordCount:true, - maximumWords:10000, - wordCountMsg:editor.options.wordCountMsg || editor.getLang("wordCountMsg"), - wordOverFlowMsg:editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg") - }); - var opt = editor.options, - max = opt.maximumWords, - msg = opt.wordCountMsg , - errMsg = opt.wordOverFlowMsg, - countDom = ui.getDom('wordcount'); - if (!opt.wordCount) { - return; - } - var count = editor.getContentLength(true); - if (count > max) { - countDom.innerHTML = errMsg; - editor.fireEvent("wordcountoverflow"); - } else { - countDom.innerHTML = msg.replace("{#leave}", max - count).replace("{#count}", count); - } - } - - editor.addListener('selectionchange', function () { - if (editor.options.elementPathEnabled) { - me[(editor.queryCommandState('elementpath') == -1 ? 'dis' : 'en') + 'ableElementPath']() - } - if (editor.options.scaleEnabled) { - me[(editor.queryCommandState('scale') == -1 ? 'dis' : 'en') + 'ableScale'](); - - } - }); - var popup = new baidu.editor.ui.Popup({ - editor:editor, - content:'', - className:'edui-bubble', - _onEditButtonClick:function () { - this.hide(); - editor.ui._dialogs.linkDialog.open(); - }, - _onImgEditButtonClick:function (name) { - this.hide(); - editor.ui._dialogs[name] && editor.ui._dialogs[name].open(); - - }, - _onImgSetFloat:function (value) { - this.hide(); - editor.execCommand("imagefloat", value); - - }, - _setIframeAlign:function (value) { - var frame = popup.anchorEl; - var newFrame = frame.cloneNode(true); - switch (value) { - case -2: - newFrame.setAttribute("align", ""); - break; - case -1: - newFrame.setAttribute("align", "left"); - break; - case 1: - newFrame.setAttribute("align", "right"); - break; - } - frame.parentNode.insertBefore(newFrame, frame); - domUtils.remove(frame); - popup.anchorEl = newFrame; - popup.showAnchor(popup.anchorEl); - }, - _updateIframe:function () { - var frame = editor._iframe = popup.anchorEl; - if(domUtils.hasClass(frame, 'ueditor_baidumap')) { - editor.selection.getRange().selectNode(frame).select(); - editor.ui._dialogs.mapDialog.open(); - popup.hide(); - } else { - editor.ui._dialogs.insertframeDialog.open(); - popup.hide(); - } - }, - _onRemoveButtonClick:function (cmdName) { - editor.execCommand(cmdName); - this.hide(); - }, - queryAutoHide:function (el) { - if (el && el.ownerDocument == editor.document) { - if (el.tagName.toLowerCase() == 'img' || domUtils.findParentByTagName(el, 'a', true)) { - return el !== popup.anchorEl; - } - } - return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el); - } - }); - popup.render(); - if (editor.options.imagePopup) { - editor.addListener('mouseover', function (t, evt) { - evt = evt || window.event; - var el = evt.target || evt.srcElement; - if (editor.ui._dialogs.insertframeDialog && /iframe/ig.test(el.tagName)) { - var html = popup.formatHtml( - '' + editor.getLang("property") + ': ' + editor.getLang("default") + '  ' + editor.getLang("justifyleft") + '  ' + editor.getLang("justifyright") + '  ' + - ' ' + editor.getLang("modify") + ''); - if (html) { - popup.getDom('content').innerHTML = html; - popup.anchorEl = el; - popup.showAnchor(popup.anchorEl); - } else { - popup.hide(); - } - } - }); - editor.addListener('selectionchange', function (t, causeByUi) { - if (!causeByUi) return; - var html = '', str = "", - img = editor.selection.getRange().getClosedNode(), - dialogs = editor.ui._dialogs; - if (img && img.tagName == 'IMG') { - var dialogName = 'insertimageDialog'; - if (img.className.indexOf("edui-faked-video") != -1 || img.className.indexOf("edui-upload-video") != -1) { - dialogName = "insertvideoDialog" - } - if (img.className.indexOf("edui-faked-webapp") != -1) { - dialogName = "webappDialog" - } - if (img.src.indexOf("http://api.map.baidu.com") != -1) { - dialogName = "mapDialog" - } - if (img.className.indexOf("edui-faked-music") != -1) { - dialogName = "musicDialog" - } - if (img.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1) { - dialogName = "gmapDialog" - } - if (img.getAttribute("anchorname")) { - dialogName = "anchorDialog"; - html = popup.formatHtml( - '' + editor.getLang("property") + ': ' + editor.getLang("modify") + '  ' + - '' + editor.getLang("delete") + ''); - } - if (img.getAttribute("word_img")) { - //todo 放到dialog去做查询 - editor.word_img = [img.getAttribute("word_img")]; - dialogName = "wordimageDialog" - } - if(domUtils.hasClass(img, 'loadingclass') || domUtils.hasClass(img, 'loaderrorclass')) { - dialogName = ""; - } - if (!dialogs[dialogName]) { - return; - } - str = '' + editor.getLang("property") + ': '+ - '' + editor.getLang("default") + '  ' + - '' + editor.getLang("justifyleft") + '  ' + - '' + editor.getLang("justifyright") + '  ' + - '' + editor.getLang("justifycenter") + '  '+ - '' + editor.getLang("modify") + ''; - - !html && (html = popup.formatHtml(str)) - - } - if (editor.ui._dialogs.linkDialog) { - var link = editor.queryCommandValue('link'); - var url; - if (link && (url = (link.getAttribute('_href') || link.getAttribute('href', 2)))) { - var txt = url; - if (url.length > 30) { - txt = url.substring(0, 20) + "..."; - } - if (html) { - html += '
    ' - } - html += popup.formatHtml( - '' + editor.getLang("anthorMsg") + ': ' + txt + '' + - ' ' + editor.getLang("modify") + '' + - ' ' + editor.getLang("clear") + ''); - popup.showAnchor(link); - } - } - - if (html) { - popup.getDom('content').innerHTML = html; - popup.anchorEl = img || link; - popup.showAnchor(popup.anchorEl); - } else { - popup.hide(); - } - }); - } - - }, - _initToolbars:function () { - var editor = this.editor; - var toolbars = this.toolbars || []; - var toolbarUis = []; - for (var i = 0; i < toolbars.length; i++) { - var toolbar = toolbars[i]; - var toolbarUi = new baidu.editor.ui.Toolbar({theme:editor.options.theme}); - for (var j = 0; j < toolbar.length; j++) { - var toolbarItem = toolbar[j]; - var toolbarItemUi = null; - if (typeof toolbarItem == 'string') { - toolbarItem = toolbarItem.toLowerCase(); - if (toolbarItem == '|') { - toolbarItem = 'Separator'; - } - if(toolbarItem == '||'){ - toolbarItem = 'Breakline'; - } - if (baidu.editor.ui[toolbarItem]) { - toolbarItemUi = new baidu.editor.ui[toolbarItem](editor); - } - - //fullscreen这里单独处理一下,放到首行去 - if (toolbarItem == 'fullscreen') { - if (toolbarUis && toolbarUis[0]) { - toolbarUis[0].items.splice(0, 0, toolbarItemUi); - } else { - toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi); - } - - continue; - - - } - } else { - toolbarItemUi = toolbarItem; - } - if (toolbarItemUi && toolbarItemUi.id) { - - toolbarUi.add(toolbarItemUi); - } - } - toolbarUis[i] = toolbarUi; - } - - //接受外部定制的UI(修复因 utils.each 无法准确的循环出对象的全部元素而导致的自定义 UI 不符合预期的 BUG by HaoChuan9421) - - // utils.each(UE._customizeUI,function(obj,key){ - // var itemUI,index; - // if(obj.id && obj.id != editor.key){ - // return false; - // } - // itemUI = obj.execFn.call(editor,editor,key); - // if(itemUI){ - // index = obj.index; - // if(index === undefined){ - // index = toolbarUi.items.length; - // } - // toolbarUi.add(itemUI,index) - // } - // }); - - - for(var key in UE._customizeUI){ - var obj = UE._customizeUI[key] - var itemUI,index; - if(!obj.id || obj.id == editor.key){ - itemUI = obj.execFn.call(editor,editor,key); - if(itemUI){ - index = obj.index; - if(index === undefined){ - index = toolbarUi.items.length; - } - toolbarUi.add(itemUI,index) - } - } - } - - this.toolbars = toolbarUis; - }, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - (this.toolbars.length ? - '
    ' + - this.renderToolbarBoxHtml() + - '
    ' : '') + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - //modify wdcount by matao - '
    ' + - '' + - '' + - '' + - '
    ' + - '
    ' + - '
    '; - }, - showWordImageDialog:function () { - this._dialogs['wordimageDialog'].open(); - }, - renderToolbarBoxHtml:function () { - var buff = []; - for (var i = 0; i < this.toolbars.length; i++) { - buff.push(this.toolbars[i].renderHtml()); - } - return buff.join(''); - }, - setFullScreen:function (fullscreen) { - - var editor = this.editor, - container = editor.container.parentNode.parentNode; - if (this._fullscreen != fullscreen) { - this._fullscreen = fullscreen; - this.editor.fireEvent('beforefullscreenchange', fullscreen); - if (baidu.editor.browser.gecko) { - var bk = editor.selection.getRange().createBookmark(); - } - if (fullscreen) { - while (container.tagName != "BODY") { - var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position"); - nodeStack.push(position); - container.style.position = "static"; - container = container.parentNode; - } - this._bakHtmlOverflow = document.documentElement.style.overflow; - this._bakBodyOverflow = document.body.style.overflow; - this._bakAutoHeight = this.editor.autoHeightEnabled; - this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); - - this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth; - if (this._bakAutoHeight) { - //当全屏时不能执行自动长高 - editor.autoHeightEnabled = false; - this.editor.disableAutoHeight(); - } - - document.documentElement.style.overflow = 'hidden'; - //修复,滚动条不收起的问题 - - window.scrollTo(0,window.scrollY); - this._bakCssText = this.getDom().style.cssText; - this._bakCssText1 = this.getDom('iframeholder').style.cssText; - editor.iframe.parentNode.style.width = ''; - this._updateFullScreen(); - } else { - while (container.tagName != "BODY") { - container.style.position = nodeStack.shift(); - container = container.parentNode; - } - this.getDom().style.cssText = this._bakCssText; - this.getDom('iframeholder').style.cssText = this._bakCssText1; - if (this._bakAutoHeight) { - editor.autoHeightEnabled = true; - this.editor.enableAutoHeight(); - } - - document.documentElement.style.overflow = this._bakHtmlOverflow; - document.body.style.overflow = this._bakBodyOverflow; - editor.iframe.parentNode.style.width = this._bakEditorContaninerWidth + 'px'; - window.scrollTo(0, this._bakScrollTop); - } - if (browser.gecko && editor.body.contentEditable === 'true') { - var input = document.createElement('input'); - document.body.appendChild(input); - editor.body.contentEditable = false; - setTimeout(function () { - input.focus(); - setTimeout(function () { - editor.body.contentEditable = true; - editor.fireEvent('fullscreenchanged', fullscreen); - editor.selection.getRange().moveToBookmark(bk).select(true); - baidu.editor.dom.domUtils.remove(input); - fullscreen && window.scroll(0, 0); - }, 0) - }, 0) - } - - if(editor.body.contentEditable === 'true'){ - this.editor.fireEvent('fullscreenchanged', fullscreen); - this.triggerLayout(); - } - - } - }, - _updateFullScreen:function () { - if (this._fullscreen) { - var vpRect = uiUtils.getViewportRect(); - this.getDom().style.cssText = 'border:0;position:absolute;left:0;top:' + (this.editor.options.topOffset || 0) + 'px;width:' + vpRect.width + 'px;height:' + vpRect.height + 'px;z-index:' + (this.getDom().style.zIndex * 1 + 100); - uiUtils.setViewportOffset(this.getDom(), { left:0, top:this.editor.options.topOffset || 0 }); - this.editor.setHeight(vpRect.height - this.getDom('toolbarbox').offsetHeight - this.getDom('bottombar').offsetHeight - (this.editor.options.topOffset || 0),true); - //不手动调一下,会导致全屏失效 - if(browser.gecko){ - try{ - window.onresize(); - }catch(e){ - - } - - } - } - }, - _updateElementPath:function () { - var bottom = this.getDom('elementpath'), list; - if (this.elementPathEnabled && (list = this.editor.queryCommandValue('elementpath'))) { - - var buff = []; - for (var i = 0, ci; ci = list[i]; i++) { - buff[i] = this.formatHtml('' + ci + ''); - } - bottom.innerHTML = '
    ' + this.editor.getLang("elementPathTip") + ': ' + buff.join(' > ') + '
    '; - - } else { - bottom.style.display = 'none' - } - }, - disableElementPath:function () { - var bottom = this.getDom('elementpath'); - bottom.innerHTML = ''; - bottom.style.display = 'none'; - this.elementPathEnabled = false; - - }, - enableElementPath:function () { - var bottom = this.getDom('elementpath'); - bottom.style.display = ''; - this.elementPathEnabled = true; - this._updateElementPath(); - }, - _scale:function () { - var doc = document, - editor = this.editor, - editorHolder = editor.container, - editorDocument = editor.document, - toolbarBox = this.getDom("toolbarbox"), - bottombar = this.getDom("bottombar"), - scale = this.getDom("scale"), - scalelayer = this.getDom("scalelayer"); - - var isMouseMove = false, - position = null, - minEditorHeight = 0, - minEditorWidth = editor.options.minFrameWidth, - pageX = 0, - pageY = 0, - scaleWidth = 0, - scaleHeight = 0; - - function down() { - position = domUtils.getXY(editorHolder); - - if (!minEditorHeight) { - minEditorHeight = editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight; - } - - scalelayer.style.cssText = "position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" + editorHolder.offsetWidth + "px;height:" - + editorHolder.offsetHeight + "px;z-index:" + (editor.options.zIndex + 1); - - domUtils.on(doc, "mousemove", move); - domUtils.on(editorDocument, "mouseup", up); - domUtils.on(doc, "mouseup", up); - } - - var me = this; - //by xuheng 全屏时关掉缩放 - this.editor.addListener('fullscreenchanged', function (e, fullScreen) { - if (fullScreen) { - me.disableScale(); - - } else { - if (me.editor.options.scaleEnabled) { - me.enableScale(); - var tmpNode = me.editor.document.createElement('span'); - me.editor.body.appendChild(tmpNode); - me.editor.body.style.height = Math.max(domUtils.getXY(tmpNode).y, me.editor.iframe.offsetHeight - 20) + 'px'; - domUtils.remove(tmpNode) - } - } - }); - function move(event) { - clearSelection(); - var e = event || window.event; - pageX = e.pageX || (doc.documentElement.scrollLeft + e.clientX); - pageY = e.pageY || (doc.documentElement.scrollTop + e.clientY); - scaleWidth = pageX - position.x; - scaleHeight = pageY - position.y; - - if (scaleWidth >= minEditorWidth) { - isMouseMove = true; - scalelayer.style.width = scaleWidth + 'px'; - } - if (scaleHeight >= minEditorHeight) { - isMouseMove = true; - scalelayer.style.height = scaleHeight + "px"; - } - } - - function up() { - if (isMouseMove) { - isMouseMove = false; - editor.ui._actualFrameWidth = scalelayer.offsetWidth - 2; - editorHolder.style.width = editor.ui._actualFrameWidth + 'px'; - - editor.setHeight(scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2,true); - } - if (scalelayer) { - scalelayer.style.display = "none"; - } - clearSelection(); - domUtils.un(doc, "mousemove", move); - domUtils.un(editorDocument, "mouseup", up); - domUtils.un(doc, "mouseup", up); - } - - function clearSelection() { - if (browser.ie) - doc.selection.clear(); - else - window.getSelection().removeAllRanges(); - } - - this.enableScale = function () { - //trace:2868 - if (editor.queryCommandState("source") == 1) return; - scale.style.display = ""; - this.scaleEnabled = true; - domUtils.on(scale, "mousedown", down); - }; - this.disableScale = function () { - scale.style.display = "none"; - this.scaleEnabled = false; - domUtils.un(scale, "mousedown", down); - }; - }, - isFullScreen:function () { - return this._fullscreen; - }, - postRender:function () { - UIBase.prototype.postRender.call(this); - for (var i = 0; i < this.toolbars.length; i++) { - this.toolbars[i].postRender(); - } - var me = this; - var timerId, - domUtils = baidu.editor.dom.domUtils, - updateFullScreenTime = function () { - clearTimeout(timerId); - timerId = setTimeout(function () { - me._updateFullScreen(); - }); - }; - domUtils.on(window, 'resize', updateFullScreenTime); - - me.addListener('destroy', function () { - domUtils.un(window, 'resize', updateFullScreenTime); - clearTimeout(timerId); - }) - }, - showToolbarMsg:function (msg, flag) { - this.getDom('toolbarmsg_label').innerHTML = msg; - this.getDom('toolbarmsg').style.display = ''; - // - if (!flag) { - var w = this.getDom('upload_dialog'); - w.style.display = 'none'; - } - }, - hideToolbarMsg:function () { - this.getDom('toolbarmsg').style.display = 'none'; - }, - mapUrl:function (url) { - return url ? url.replace('~/', this.editor.options.UEDITOR_HOME_URL || '') : '' - }, - triggerLayout:function () { - var dom = this.getDom(); - if (dom.style.zoom == '1') { - dom.style.zoom = '100%'; - } else { - dom.style.zoom = '1'; - } - } - }; - utils.inherits(EditorUI, baidu.editor.ui.UIBase); - - - var instances = {}; - - - UE.ui.Editor = function (options) { - var editor = new UE.Editor(options); - editor.options.editor = editor; - utils.loadFile(document, { - href:editor.options.themePath + editor.options.theme + "/css/ueditor.css", - tag:"link", - type:"text/css", - rel:"stylesheet" - }); - - var oldRender = editor.render; - editor.render = function (holder) { - if (holder.constructor === String) { - editor.key = holder; - instances[holder] = editor; - } - utils.domReady(function () { - editor.langIsReady ? renderUI() : editor.addListener("langReady", renderUI); - function renderUI() { - editor.setOpt({ - labelMap:editor.options.labelMap || editor.getLang('labelMap') - }); - new EditorUI(editor.options); - if (holder) { - if (holder.constructor === String) { - holder = document.getElementById(holder); - } - holder && holder.getAttribute('name') && ( editor.options.textarea = holder.getAttribute('name')); - if (holder && /script|textarea/ig.test(holder.tagName)) { - var newDiv = document.createElement('div'); - holder.parentNode.insertBefore(newDiv, holder); - var cont = holder.value || holder.innerHTML; - editor.options.initialContent = /^[\t\r\n ]*$/.test(cont) ? editor.options.initialContent : - cont.replace(/>[\n\r\t]+([ ]{4})+/g, '>') - .replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<'); - holder.className && (newDiv.className = holder.className); - holder.style.cssText && (newDiv.style.cssText = holder.style.cssText); - if (/textarea/i.test(holder.tagName)) { - editor.textarea = holder; - editor.textarea.style.display = 'none'; - - - } else { - holder.parentNode.removeChild(holder); - - - } - if(holder.id){ - newDiv.id = holder.id; - domUtils.removeAttributes(holder,'id'); - } - holder = newDiv; - holder.innerHTML = ''; - } - - } - domUtils.addClass(holder, "edui-" + editor.options.theme); - editor.ui.render(holder); - var opt = editor.options; - //给实例添加一个编辑器的容器引用 - editor.container = editor.ui.getDom(); - var parents = domUtils.findParents(holder,true); - var displays = []; - for(var i = 0 ,ci;ci=parents[i];i++){ - displays[i] = ci.style.display; - ci.style.display = 'block' - } - if (opt.initialFrameWidth) { - opt.minFrameWidth = opt.initialFrameWidth; - } else { - opt.minFrameWidth = opt.initialFrameWidth = holder.offsetWidth; - var styleWidth = holder.style.width; - if(/%$/.test(styleWidth)) { - opt.initialFrameWidth = styleWidth; - } - } - if (opt.initialFrameHeight) { - opt.minFrameHeight = opt.initialFrameHeight; - } else { - opt.initialFrameHeight = opt.minFrameHeight = holder.offsetHeight; - } - for(var i = 0 ,ci;ci=parents[i];i++){ - ci.style.display = displays[i] - } - //编辑器最外容器设置了高度,会导致,编辑器不占位 - //todo 先去掉,没有找到原因 - if(holder.style.height){ - holder.style.height = '' - } - editor.container.style.width = opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth) ? '' : 'px'); - editor.container.style.zIndex = opt.zIndex; - oldRender.call(editor, editor.ui.getDom('iframeholder')); - editor.fireEvent("afteruiready"); - } - }) - }; - return editor; - }; - - - /** - * @file - * @name UE - * @short UE - * @desc UEditor的顶部命名空间 - */ - /** - * @name getEditor - * @since 1.2.4+ - * @grammar UE.getEditor(id,[opt]) => Editor实例 - * @desc 提供一个全局的方法得到编辑器实例 - * - * * ''id'' 放置编辑器的容器id, 如果容器下的编辑器已经存在,就直接返回 - * * ''opt'' 编辑器的可选参数 - * @example - * UE.getEditor('containerId',{onready:function(){//创建一个编辑器实例 - * this.setContent('hello') - * }}); - * UE.getEditor('containerId'); //返回刚创建的实例 - * - */ - UE.getEditor = function (id, opt) { - var editor = instances[id]; - if (!editor) { - editor = instances[id] = new UE.ui.Editor(opt); - editor.render(id); - } - return editor; - }; - - - UE.delEditor = function (id) { - var editor; - if (editor = instances[id]) { - editor.key && editor.destroy(); - delete instances[id] - } - }; - - UE.registerUI = function(uiName,fn,index,editorId){ - utils.each(uiName.split(/\s+/), function (name) { - UE._customizeUI[name] = { - id : editorId, - execFn:fn, - index:index - }; - }) - - } - -})(); - -// adapter/message.js -UE.registerUI('message', function(editor) { - - var editorui = baidu.editor.ui; - var Message = editorui.Message; - var holder; - var _messageItems = []; - var me = editor; - - me.addListener('ready', function(){ - holder = document.getElementById(me.ui.id + '_message_holder'); - updateHolderPos(); - // HaoChuan9421 - // setTimeout(function(){ - // updateHolderPos(); - // }, 500); - }); - - me.addListener('showmessage', function(type, opt){ - opt = utils.isString(opt) ? { - 'content': opt - } : opt; - var message = new Message({ - 'timeout': opt.timeout, - 'type': opt.type, - 'content': opt.content, - 'keepshow': opt.keepshow, - 'editor': me - }), - mid = opt.id || ('msg_' + (+new Date()).toString(36)); - message.render(holder); - _messageItems[mid] = message; - message.reset(opt); - updateHolderPos(); - return mid; - }); - - me.addListener('updatemessage',function(type, id, opt){ - opt = utils.isString(opt) ? { - 'content': opt - } : opt; - var message = _messageItems[id]; - message.render(holder); - message && message.reset(opt); - }); - - me.addListener('hidemessage',function(type, id){ - var message = _messageItems[id]; - message && message.hide(); - }); - - function updateHolderPos(){ - var toolbarbox = me.ui.getDom('toolbarbox'); - if (toolbarbox) { - holder.style.top = toolbarbox.offsetHeight + 3 + 'px'; - } - holder.style.zIndex = Math.max(me.options.zIndex, me.iframe.style.zIndex) + 1; - } - -}); - - -// adapter/autosave.js -UE.registerUI('autosave', function(editor) { - var timer = null,uid = null; - editor.on('afterautosave',function(){ - clearTimeout(timer); - - timer = setTimeout(function(){ - if(uid){ - editor.trigger('hidemessage',uid); - } - uid = editor.trigger('showmessage',{ - content : editor.getLang('autosave.success'), - timeout : 2000 - }); - - },2000) - }) - -}); - - - -})(); diff --git a/public/static/UEditor/ueditor.all.min.js b/public/static/UEditor/ueditor.all.min.js deleted file mode 100644 index 1f48238..0000000 --- a/public/static/UEditor/ueditor.all.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - -!function(){function getListener(a,b,c){var d;return b=b.toLowerCase(),(d=a.__allListeners||c&&(a.__allListeners={}))&&(d[b]||c&&(d[b]=[]))}function getDomNode(a,b,c,d,e,f){var g,h=d&&a[b];for(!h&&(h=a[c]);!h&&(g=(g||a).parentNode);){if("BODY"==g.tagName||f&&!f(g))return null;h=g[c]}return h&&e&&!e(h)?getDomNode(h,b,c,!1,e):h}UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu,window.UE=baidu.editor=window.UE||{},UE.plugins={},UE.commands={},UE.instants={},UE.I18N={},UE._customizeUI={},UE.version="1.4.3";var dom=UE.dom={},browser=UE.browser=function(){var a=navigator.userAgent.toLowerCase(),b=window.opera,c={ie:/(msie\s|trident.*rv:)([\w.]+)/.test(a),opera:!!b&&b.version,webkit:a.indexOf(" applewebkit/")>-1,mac:a.indexOf("macintosh")>-1,quirks:"BackCompat"==document.compatMode};c.gecko="Gecko"==navigator.product&&!c.webkit&&!c.opera&&!c.ie;var d=0;if(c.ie){var e=a.match(/(?:msie\s([\w.]+))/),f=a.match(/(?:trident.*rv:([\w.]+))/);d=e&&f&&e[1]&&f[1]?Math.max(1*e[1],1*f[1]):e&&e[1]?1*e[1]:f&&f[1]?1*f[1]:0,c.ie11Compat=11==document.documentMode,c.ie9Compat=9==document.documentMode,c.ie8=!!document.documentMode,c.ie8Compat=8==document.documentMode,c.ie7Compat=7==d&&!document.documentMode||7==document.documentMode,c.ie6Compat=d<7||c.quirks,c.ie9above=d>8,c.ie9below=d<9,c.ie11above=d>10,c.ie11below=d<11}if(c.gecko){var g=a.match(/rv:([\d\.]+)/);g&&(g=g[1].split("."),d=1e4*g[0]+100*(g[1]||0)+1*(g[2]||0))}return/chrome\/(\d+\.\d)/i.test(a)&&(c.chrome=+RegExp.$1),/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a)&&!/chrome/i.test(a)&&(c.safari=+(RegExp.$1||RegExp.$2)),c.opera&&(d=parseFloat(b.version())),c.webkit&&(d=parseFloat(a.match(/ applewebkit\/(\d+)/)[1])),c.version=d,c.isCompatible=!c.mobile&&(c.ie&&d>=6||c.gecko&&d>=10801||c.opera&&d>=9.5||c.air&&d>=1||c.webkit&&d>=522||!1),c}(),ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko,opera=browser.opera,utils=UE.utils={each:function(a,b,c){if(null!=a)if(a.length===+a.length){for(var d=0,e=a.length;d=c&&a===b)return d=e,!1}),d},removeItem:function(a,b){for(var c=0,d=a.length;c'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g,function(a,b){return b?a:{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},unhtmlForUrl:function(a,b){return a?a.replace(b||/[<">']/g,function(a){return{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},html:function(a){return a?a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g,function(a){return{"<":"<","&":"&",""":'"',">":">","'":"'"," ":" "}[a]}):""},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b={"float":void 0!=a.cssFloat?"cssFloat":void 0!=a.styleFloat?"styleFloat":"float"};return function(a){return b[a]||(b[a]=a.toLowerCase().replace(/-./g,function(a){return a.charAt(1).toUpperCase()}))}}(),loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url settings of file ueditor.config.js ")},c.getElementsByTagName("head")[0].appendChild(i)}}}(),isEmptyObject:function(a){if(null==a)return!0;if(this.isArray(a)||this.isString(a))return 0===a.length;for(var b in a)if(a.hasOwnProperty(b))return!1;return!0},fixColor:function(a,b){if(/color/i.test(a)&&/rgba?/.test(b)){var c=b.split(",");if(c.length>3)return"";b="#";for(var d,e=0;d=c[e++];)d=parseInt(d.replace(/[^\d]/gi,""),10).toString(16),b+=1==d.length?"0"+d:d;b=b.toUpperCase()}return b},optCss:function(a){function b(a,b){if(!a)return"";var c=a.top,d=a.bottom,e=a.left,f=a.right,g="";if(c&&e&&d&&f)g+=";"+b+":"+(c==d&&d==e&&e==f?c:c==d&&e==f?c+" "+e:e==f?c+" "+e+" "+d:c+" "+f+" "+d+" "+e)+";";else for(var h in a)g+=";"+b+"-"+h+":"+a[h]+";";return g}var c,d;return a=a.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi,function(a,b,e,f){if(1==f.split(" ").length)switch(b){case"padding":return!c&&(c={}),c[e]=f,"";case"margin":return!d&&(d={}),d[e]=f,"";case"border":return"initial"==f?"":a}return a}),a+=b(c,"padding")+b(d,"margin"),a.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/,"").replace(/;([ \n\r\t]+)|\1;/g,";").replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a,b){return b?b+";;":";"})},clone:function(a,b){var c;b=b||{};for(var d in a)a.hasOwnProperty(d)&&(c=a[d],"object"==typeof c?(b[d]=utils.isArray(c)?[]:{},utils.clone(a[d],b[d])):b[d]=c);return b},transUnitToPx:function(a){if(!/(pt|cm)/.test(a))return a;var b;switch(a.replace(/([\d.]+)(\w+)/,function(c,d,e){a=d,b=e}),b){case"cm":a=25*parseFloat(a);break;case"pt":a=Math.round(96*parseFloat(a)/72)}return a+(a?"px":"")},domReady:function(){function a(a){a.isReady=!0;for(var c;c=b.pop();c());}var b=[];return function(c,d){d=d||window;var e=d.document;c&&b.push(c),"complete"===e.readyState?a(e):(e.isReady&&a(e),browser.ie&&11!=browser.version?(!function(){if(!e.isReady){try{e.documentElement.doScroll("left")}catch(b){return void setTimeout(arguments.callee,0)}a(e)}}(),d.attachEvent("onload",function(){a(e)})):(e.addEventListener("DOMContentLoaded",function(){e.removeEventListener("DOMContentLoaded",arguments.callee,!1),a(e)},!1),d.addEventListener("load",function(){a(e)},!1)))}}(),cssRule:browser.ie&&11!=browser.version?function(a,b,c){var d,e;if(void 0===b||b&&b.nodeType&&9==b.nodeType){if(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.indexList||(c.indexList={}),e=d[a],void 0!==e)return c.styleSheets[e].cssText}else{if(c=c||document,d=c.indexList||(c.indexList={}),e=d[a],""===b)return void 0!==e&&(c.styleSheets[e].cssText="",delete d[a],!0);void 0!==e?sheetStyle=c.styleSheets[e]:(sheetStyle=c.createStyleSheet("",e=c.styleSheets.length),d[a]=e),sheetStyle.cssText=b}}:function(a,b,c){var d;return void 0===b||b&&b.nodeType&&9==b.nodeType?(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.getElementById(a),d?d.innerHTML:void 0):(c=c||document,d=c.getElementById(a),""===b?!!d&&(d.parentNode.removeChild(d),!0):void(d?d.innerHTML=b:(d=c.createElement("style"),d.id=a,d.innerHTML=b,c.getElementsByTagName("head")[0].appendChild(d))))},sort:function(a,b){b=b||function(a,b){return a.localeCompare(b)};for(var c=0,d=a.length;c0){var g=a[c];a[c]=a[e],a[e]=g}return a},serializeParam:function(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c)if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d1||b!==a.parentNode){a.style.cssText=b.style.cssText+";"+a.style.cssText,b=b.parentNode;continue}b.style.cssText+=";"+a.style.cssText,"A"==b.tagName&&(b.style.textDecoration="underline")}if("A"!=b.tagName){b===a.parentNode&&domUtils.remove(a,!0);break}}b=b.parentNode}},mergeSibling:function(a,b,c){function d(a,b,c){var d;if((d=c[a])&&!domUtils.isBookmarkNode(d)&&1==d.nodeType&&domUtils.isSameElement(c,d)){for(;d.firstChild;)"firstChild"==b?c.insertBefore(d.lastChild,c.firstChild):c.appendChild(d.firstChild);domUtils.remove(d)}}!b&&d("previousSibling","firstChild",a),!c&&d("nextSibling","lastChild",a)},unSelectable:ie&&browser.ie9below||browser.opera?function(a){a.onselectstart=function(){return!1},a.onclick=a.onkeyup=a.onkeydown=function(){return!1},a.unselectable="on",a.setAttribute("unselectable","on");for(var b,c=0;b=a.all[c++];)switch(b.tagName.toLowerCase()){case"iframe":case"textarea":case"input":case"select":break;default:b.unselectable="on",a.setAttribute("unselectable","on")}}:function(a){a.style.MozUserSelect=a.style.webkitUserSelect=a.style.msUserSelect=a.style.KhtmlUserSelect="none"},removeAttributes:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0;c=b[d++];){switch(c=attrFix[c]||c){case"className":a[c]="";break;case"style":a.style.cssText="";var e=a.getAttributeNode("style");!browser.ie&&e&&a.removeAttributeNode(e)}a.removeAttribute(c)}},createElement:function(a,b,c){return domUtils.setAttributes(a.createElement(b),c)},setAttributes:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];switch(c){case"class":a.className=d;break;case"style":a.style.cssText=a.style.cssText+";"+d;break;case"innerHTML":a[c]=d;break;case"value":a.value=d;break;default:a.setAttribute(attrFix[c]||c,d)}}return a},getComputedStyle:function(a,b){var c="width height top left";if(c.indexOf(b)>-1)return a["offset"+b.replace(/^\w/,function(a){return a.toUpperCase()})]+"px";if(3==a.nodeType&&(a=a.parentNode),browser.ie&&browser.version<9&&"font-size"==b&&!a.style.fontSize&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]){var d=a.ownerDocument.createElement("span");d.style.cssText="padding:0;border:0;font-family:simsun;",d.innerHTML=".",a.appendChild(d);var e=d.offsetHeight;return a.removeChild(d),d=null,e+"px"}try{var f=domUtils.getStyle(a,b)||(window.getComputedStyle?domUtils.getWindow(a).getComputedStyle(a,"").getPropertyValue(b):(a.currentStyle||a.style)[utils.cssStyleToDomStyle(b)])}catch(g){return""}return utils.transUnitToPx(utils.fixColor(b,f))},removeClasses:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=utils.trim(e).replace(/[ ]{2,}/g," "),e?a.className=e:domUtils.removeAttributes(a,["class"])},addClass:function(a,b){if(a){b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)new RegExp("\\b"+c+"\\b").test(e)||(e+=" "+c);a.className=utils.trim(e)}},hasClass:function(a,b){if(utils.isRegExp(b))return b.test(a.className);b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},preventDefault:function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},removeStyle:function(a,b){browser.ie?("color"==b&&(b="(^|;)"+b),a.style.cssText=a.style.cssText.replace(new RegExp(b+"[^:]*:[^;]+;?","ig"),"")):a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(utils.cssStyleToDomStyle(b)),a.style.cssText||domUtils.removeAttributes(a,["style"])},getStyle:function(a,b){var c=a.style[utils.cssStyleToDomStyle(b)];return utils.fixColor(b,c)},setStyle:function(a,b,c){a.style[utils.cssStyleToDomStyle(b)]=c,utils.trim(a.style.cssText)||this.removeAttributes(a,"style")},setStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&domUtils.setStyle(a,c,b[c])},removeDirtyAttr:function(a){for(var b,c=0,d=a.getElementsByTagName("*");b=d[c++];)b.removeAttribute("_moz_dirty");a.removeAttribute("_moz_dirty")},getChildCount:function(a,b){var c=0,d=a.firstChild;for(b=b||function(){return 1};d;)b(d)&&c++,d=d.nextSibling;return c},isEmptyNode:function(a){return!a.firstChild||0==domUtils.getChildCount(a,function(a){return!domUtils.isBr(a)&&!domUtils.isBookmarkNode(a)&&!domUtils.isWhitespace(a)})},clearSelectedArr:function(a){for(var b;b=a.pop();)domUtils.removeAttributes(b,["class"])},scrollToView:function(a,b,c){var d=function(){var a=b.document,c="CSS1Compat"==a.compatMode;return{width:(c?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(c?a.documentElement.clientHeight:a.body.clientHeight)||0}},e=function(a){if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};var b=a.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||b.body.scrollTop||0}},f=d().height,g=f*-1+c;g+=a.offsetHeight||0;var h=domUtils.getXY(a);g+=h.y;var i=e(b).y;(g>i||g0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}},setViewportOffset:function(a,b){var c=0|parseInt(a.style.left),d=0|parseInt(a.style.top),e=a.getBoundingClientRect(),f=b.left-e.left,g=b.top-e.top;f&&(a.style.left=c+f+"px"),g&&(a.style.top=d+g+"px")},fillNode:function(a,b){var c=browser.ie?a.createTextNode(domUtils.fillChar):a.createElement("br");b.innerHTML="",b.appendChild(c)},moveChild:function(a,b,c){for(;a.firstChild;)c&&b.firstChild?b.insertBefore(a.lastChild,b.firstChild):b.appendChild(a.firstChild)},hasNoAttributes:function(a){return browser.ie?/^<\w+\s*?>/.test(a.outerHTML):0==a.attributes.length},isCustomeNode:function(a){return 1==a.nodeType&&a.getAttribute("_ue_custom_node_")},isTagNode:function(a,b){return 1==a.nodeType&&new RegExp("\\b"+a.tagName+"\\b","i").test(b)},filterNodeList:function(a,b,c){var d=[];if(!utils.isFunction(b)){var e=b;b=function(a){return utils.indexOf(utils.isArray(e)?e:e.split(" "),a.tagName.toLowerCase())!=-1}}return utils.each(a,function(a){b(a)&&d.push(a)}),0==d.length?null:1!=d.length&&c?d:d[0]},isInNodeEndBoundary:function(a,b){var c=a.startContainer;if(3==c.nodeType&&a.startOffset!=c.nodeValue.length)return 0;if(1==c.nodeType&&a.startOffset!=c.childNodes.length)return 0;for(;c!==b;){if(c.nextSibling)return 0;c=c.parentNode}return 1},isBoundaryNode:function(a,b){for(var c;!domUtils.isBody(a);)if(c=a,a=a.parentNode,c!==a[b])return!1;return!0},fillHtml:browser.ie11below?" ":"
    "},fillCharReg=new RegExp(domUtils.fillChar,"g");!function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer===a.endContainer&&a.startOffset==a.endOffset}function b(a){return!a.collapsed&&1==a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.endOffset-a.startOffset==1}function c(b,c,d,e){return 1==c.nodeType&&(dtd.$empty[c.tagName]||dtd.$nonChild[c.tagName])&&(d=domUtils.getNodeIndex(c)+(b?0:1),c=c.parentNode),b?(e.startContainer=c,e.startOffset=d,e.endContainer||e.collapse(!0)):(e.endContainer=c,e.endOffset=d,e.startContainer||e.collapse(!1)),a(e),e}function d(a,b){var c,d,e=a.startContainer,f=a.endContainer,g=a.startOffset,h=a.endOffset,i=a.document,j=i.createDocumentFragment();if(1==e.nodeType&&(e=e.childNodes[g]||(c=e.appendChild(i.createTextNode("")))),1==f.nodeType&&(f=f.childNodes[h]||(d=f.appendChild(i.createTextNode("")))),e===f&&3==e.nodeType)return j.appendChild(i.createTextNode(e.substringData(g,h-g))),b&&(e.deleteData(g,h-g),a.collapse(!0)),j;for(var k,l,m=j,n=domUtils.findParents(e,!0),o=domUtils.findParents(f,!0),p=0;n[p]==o[p];)p++;for(var q,r=p;q=n[r];r++){for(k=q.nextSibling,q==e?c||(3==a.startContainer.nodeType?(m.appendChild(i.createTextNode(e.nodeValue.slice(g))),b&&e.deleteData(g,e.nodeValue.length-g)):m.appendChild(b?e:e.cloneNode(!0))):(l=q.cloneNode(!1),m.appendChild(l));k&&k!==f&&k!==o[r];)q=k.nextSibling,m.appendChild(b?k:k.cloneNode(!0)),k=q;m=l}m=j,n[p]||(m.appendChild(n[p-1].cloneNode(!1)),m=m.firstChild);for(var s,r=p;s=o[r];r++){if(k=s.previousSibling,s==f?d||3!=a.endContainer.nodeType||(m.appendChild(i.createTextNode(f.substringData(0,h))),b&&f.deleteData(0,h)):(l=s.cloneNode(!1),m.appendChild(l)),r!=p||!n[p])for(;k&&k!==e;)s=k.previousSibling,m.insertBefore(b?k:k.cloneNode(!0),m.firstChild),k=s;m=l}return b&&a.setStartBefore(o[p]?n[p]?o[p]:n[p-1]:o[p-1]).collapse(!0),c&&domUtils.remove(c),d&&domUtils.remove(d),j}function e(a,b){try{if(g&&domUtils.inDoc(g,a))if(g.nodeValue.replace(fillCharReg,"").length)g.nodeValue=g.nodeValue.replace(fillCharReg,"");else{var c=g.parentNode;for(domUtils.remove(g);c&&domUtils.isEmptyInlineElement(c)&&(browser.safari?!(domUtils.getPosition(c,b)&domUtils.POSITION_CONTAINS):!c.contains(b));)g=c.parentNode,domUtils.remove(c),c=g; -}}catch(d){}}function f(a,b){var c;for(a=a[b];a&&domUtils.isFillChar(a);)c=a[b],domUtils.remove(a),a=c}var g,h=0,i=domUtils.fillChar,j=dom.Range=function(a){var b=this;b.startContainer=b.startOffset=b.endContainer=b.endOffset=null,b.document=a,b.collapsed=!0};j.prototype={cloneContents:function(){return this.collapsed?null:d(this,0)},deleteContents:function(){var a;return this.collapsed||d(this,1),browser.webkit&&(a=this.startContainer,3!=a.nodeType||a.nodeValue.length||(this.setStartBefore(a).collapse(!0),domUtils.remove(a))),this},extractContents:function(){return this.collapsed?null:d(this,2)},setStart:function(a,b){return c(!0,a,b,this)},setEnd:function(a,b){return c(!1,a,b,this)},setStartAfter:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a)+1)},setStartBefore:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a))},setEndAfter:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a)+1)},setEndBefore:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a))},setStartAtFirst:function(a){return this.setStart(a,0)},setStartAtLast:function(a){return this.setStart(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},setEndAtFirst:function(a){return this.setEnd(a,0)},setEndAtLast:function(a){return this.setEnd(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},selectNode:function(a){return this.setStartBefore(a).setEndAfter(a)},selectNodeContents:function(a){return this.setStart(a,0).setEndAtLast(a)},cloneRange:function(){var a=this;return new j(a.document).setStart(a.startContainer,a.startOffset).setEnd(a.endContainer,a.endOffset)},collapse:function(a){var b=this;return a?(b.endContainer=b.startContainer,b.endOffset=b.startOffset):(b.startContainer=b.endContainer,b.startOffset=b.endOffset),b.collapsed=!0,b},shrinkBoundary:function(a){function b(a){return 1==a.nodeType&&!domUtils.isBookmarkNode(a)&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]}for(var c,d=this,e=d.collapsed;1==d.startContainer.nodeType&&(c=d.startContainer.childNodes[d.startOffset])&&b(c);)d.setStart(c,0);if(e)return d.collapse(!0);if(!a)for(;1==d.endContainer.nodeType&&d.endOffset>0&&(c=d.endContainer.childNodes[d.endOffset-1])&&b(c);)d.setEnd(c,c.childNodes.length);return d},getCommonAncestor:function(a,c){var d=this,e=d.startContainer,f=d.endContainer;return e===f?a&&b(this)&&(e=e.childNodes[d.startOffset],1==e.nodeType)?e:c&&3==e.nodeType?e.parentNode:e:domUtils.getCommonAncestor(e,f)},trimBoundary:function(a){this.txtToElmBoundary();var b=this.startContainer,c=this.startOffset,d=this.collapsed,e=this.endContainer;if(3==b.nodeType){if(0==c)this.setStartBefore(b);else if(c>=b.nodeValue.length)this.setStartAfter(b);else{var f=domUtils.split(b,c);b===e?this.setEnd(f,this.endOffset-c):b.parentNode===e&&(this.endOffset+=1),this.setStartBefore(f)}if(d)return this.collapse(!0)}return a||(c=this.endOffset,e=this.endContainer,3==e.nodeType&&(0==c?this.setEndBefore(e):(c=c.nodeValue.length&&a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"After"](c):a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"Before"](c))}return!a&&this.collapsed||(b(this,"start"),b(this,"end")),this},insertNode:function(a){var b=a,c=1;11==a.nodeType&&(b=a.firstChild,c=a.childNodes.length),this.trimBoundary(!0);var d=this.startContainer,e=this.startOffset,f=d.childNodes[e];return f?d.insertBefore(a,f):d.appendChild(a),b.parentNode===this.endContainer&&(this.endOffset=this.endOffset+c),this.setStartBefore(b)},setCursor:function(a,b){return this.collapse(!a).select(b)},createBookmark:function(a,b){var c,d=this.document.createElement("span");return d.style.cssText="display:none;line-height:0px;",d.appendChild(this.document.createTextNode("‍")),d.id="_baidu_bookmark_start_"+(b?"":h++),this.collapsed||(c=d.cloneNode(!0),c.id="_baidu_bookmark_end_"+(b?"":h++)),this.insertNode(d),c&&this.collapse().insertNode(c).setEndBefore(c),this.setStartAfter(d),{start:a?d.id:d,end:c?a?c.id:c:null,id:a}},moveToBookmark:function(a){var b=a.id?this.document.getElementById(a.start):a.start,c=a.end&&a.id?this.document.getElementById(a.end):a.end;return this.setStartBefore(b),domUtils.remove(b),c?(this.setEndBefore(c),domUtils.remove(c)):this.collapse(!0),this},enlarge:function(a,b){var c,d,e=domUtils.isBody,f=this.document.createTextNode("");if(a){for(d=this.startContainer,1==d.nodeType?d.childNodes[this.startOffset]?c=d=d.childNodes[this.startOffset]:(d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.previousSibling)&&!domUtils.isBlockElm(c);)d=c;this.setStartBefore(d);break}c=d,d=d.parentNode}for(d=this.endContainer,1==d.nodeType?((c=d.childNodes[this.endOffset])?d.insertBefore(f,c):d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.nextSibling)&&!domUtils.isBlockElm(c);)d=c;this.setEndAfter(d);break}c=d,d=d.parentNode}f.parentNode===this.endContainer&&this.endOffset--,domUtils.remove(f)}if(!this.collapsed){for(;!(0!=this.startOffset||b&&b(this.startContainer)||e(this.startContainer));)this.setStartBefore(this.startContainer);for(;!(this.endOffset!=(1==this.endContainer.nodeType?this.endContainer.childNodes.length:this.endContainer.nodeValue.length)||b&&b(this.endContainer)||e(this.endContainer));)this.setEndAfter(this.endContainer)}return this},enlargeToBlockElm:function(a){for(;!domUtils.isBlockElm(this.startContainer);)this.setStartBefore(this.startContainer);if(!a)for(;!domUtils.isBlockElm(this.endContainer);)this.setEndAfter(this.endContainer);return this},adjustmentBoundary:function(){if(!this.collapsed){for(;!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length&&this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length;)this.setStartAfter(this.startContainer);for(;!domUtils.isBody(this.endContainer)&&!this.endOffset&&this.endContainer[3==this.endContainer.nodeType?"nodeValue":"childNodes"].length;)this.setEndBefore(this.endContainer)}return this},applyInlineStyle:function(a,b,c){if(this.collapsed)return this;this.trimBoundary().enlarge(!1,function(a){return 1==a.nodeType&&domUtils.isBlockElm(a)}).adjustmentBoundary();for(var d,e,f=this.createBookmark(),g=f.end,h=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},i=domUtils.getNextDomNode(f.start,!1,h),j=this.cloneRange();i&&domUtils.getPosition(i,g)&domUtils.POSITION_PRECEDING;)if(3==i.nodeType||dtd[a][i.tagName]){for(j.setStartBefore(i),d=i;d&&(3==d.nodeType||dtd[a][d.tagName])&&d!==g;)e=d,d=domUtils.getNextDomNode(d,1==d.nodeType,null,function(b){return dtd[a][b.tagName]});var k,l=j.setEndAfter(e).extractContents();if(c&&c.length>0){var m,n;n=m=c[0].cloneNode(!1);for(var o,p=1;o=c[p++];)m.appendChild(o.cloneNode(!1)),m=m.firstChild;k=m}else k=j.document.createElement(a);b&&domUtils.setAttributes(k,b),k.appendChild(l),j.insertNode(c?n:k);var q;if("span"==a&&b.style&&/text\-decoration/.test(b.style)&&(q=domUtils.findParentByTagName(k,"a",!0))?(domUtils.setAttributes(q,b),domUtils.remove(k,!0),k=q):(domUtils.mergeSibling(k),domUtils.clearEmptySibling(k)),domUtils.mergeChild(k,b),i=domUtils.getNextDomNode(k,!1,h),domUtils.mergeToParent(k),d===g)break}else i=domUtils.getNextDomNode(i,!0,h);return this.moveToBookmark(f)},removeInlineStyle:function(a){if(this.collapsed)return this;a=utils.isArray(a)?a:[a],this.shrinkBoundary().adjustmentBoundary();for(var b=this.startContainer,c=this.endContainer;;){if(1==b.nodeType){if(utils.indexOf(a,b.tagName.toLowerCase())>-1)break;if("body"==b.tagName.toLowerCase()){b=null;break}}b=b.parentNode}for(;;){if(1==c.nodeType){if(utils.indexOf(a,c.tagName.toLowerCase())>-1)break;if("body"==c.tagName.toLowerCase()){c=null;break}}c=c.parentNode}var d,e,f=this.createBookmark();b&&(e=this.cloneRange().setEndBefore(f.start).setStartBefore(b),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(b,!0),b.parentNode.insertBefore(f.start,b)),c&&(e=this.cloneRange().setStartAfter(f.end).setEndAfter(c),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(c,!1,!0),c.parentNode.insertBefore(f.end,c.nextSibling));for(var g,h=domUtils.getNextDomNode(f.start,!1,function(a){return 1==a.nodeType});h&&h!==f.end;)g=domUtils.getNextDomNode(h,!0,function(a){return 1==a.nodeType}),utils.indexOf(a,h.tagName.toLowerCase())>-1&&domUtils.remove(h,!0),h=g;return this.moveToBookmark(f)},getClosedNode:function(){var a;if(!this.collapsed){var c=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(b(c)){var d=c.startContainer.childNodes[c.startOffset];d&&1==d.nodeType&&(dtd.$empty[d.tagName]||dtd.$nonChild[d.tagName])&&(a=d)}}return a},select:browser.ie?function(a,b){var c;this.collapsed||this.shrinkBoundary();var d=this.getClosedNode();if(d&&!b){try{c=this.document.body.createControlRange(),c.addElement(d),c.select()}catch(h){}return this}var j,k=this.createBookmark(),l=k.start;if(c=this.document.body.createTextRange(),c.moveToElementText(l),c.moveStart("character",1),this.collapsed){if(!a&&3!=this.startContainer.nodeType){var m=this.document.createTextNode(i),n=this.document.createElement("span");n.appendChild(this.document.createTextNode(i)),l.parentNode.insertBefore(n,l),l.parentNode.insertBefore(m,l),e(this.document,m),g=m,f(n,"previousSibling"),f(l,"nextSibling"),c.moveStart("character",-1),c.collapse(!0)}}else{var o=this.document.body.createTextRange();j=k.end,o.moveToElementText(j),c.setEndPoint("EndToEnd",o)}this.moveToBookmark(k),n&&domUtils.remove(n);try{c.select()}catch(h){}return this}:function(a){function b(a){function b(b,c,d){3==b.nodeType&&b.nodeValue.length0)j=k-1;else{if(!(l<0))return{container:d,offset:c(e)};i=k+1}}if(k==-1){if(h.moveToElementText(d),h.setEndPoint("StartToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,g=d.childNodes,!f)return e=g[g.length-1],{container:e,offset:e.nodeValue.length};for(var m=g.length;f>0;)f-=g[--m].nodeValue.length;return{container:g[m],offset:-f}}if(h.collapse(l>0),h.setEndPoint(l>0?"StartToStart":"EndToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,!f)return dtd.$empty[e.tagName]||dtd.$nonChild[e.tagName]?{container:d,offset:c(e)+(l>0?0:1)}:{container:e,offset:l>0?0:e.childNodes.length};for(;f>0;)try{var n=e;e=e[l>0?"previousSibling":"nextSibling"],f-=e.nodeValue.length}catch(o){return{container:d,offset:c(n)}}return{container:e,offset:l>0?-f:e.nodeValue.length+f}}function b(b,c){if(b.item)c.selectNode(b.item(0));else{var d=a(b,!0);c.setStart(d.container,d.offset),0!=b.compareEndPoints("StartToEnd",b)&&(d=a(b,!1),c.setEnd(d.container,d.offset))}return c}function c(a){var b;try{b=a.getNative().createRange()}catch(c){return null}var d=b.item?b.item(0):b.parentElement();return(d.ownerDocument||d)===a.document?b:null}var d=dom.Selection=function(a){var b,d=this;d.document=a,browser.ie9below&&(b=domUtils.getWindow(a).frameElement,domUtils.on(b,"beforedeactivate",function(){d._bakIERange=d.getIERange()}),domUtils.on(b,"activate",function(){try{!c(d)&&d._bakIERange&&d._bakIERange.select()}catch(a){}d._bakIERange=null})),b=a=null};d.prototype={rangeInBody:function(a,b){var c=browser.ie9below||b?a.item?a.item():a.parentElement():a.startContainer;return c===this.document.body||domUtils.inDoc(c,this.document)},getNative:function(){var a=this.document;try{return a?browser.ie9below?a.selection:domUtils.getWindow(a).getSelection():null}catch(b){return null}},getIERange:function(){var a=c(this);return!a&&this._bakIERange?this._bakIERange:a},cache:function(){this.clear(),this._cachedRange=this.getRange(),this._cachedStartElement=this.getStart(),this._cachedStartElementPath=this.getStartElementPath()},getStartElementPath:function(){if(this._cachedStartElementPath)return this._cachedStartElementPath;var a=this.getStart();return a?domUtils.findParents(a,!0,null,!0):[]},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null},isFocus:function(){try{if(browser.ie9below){var a=c(this);return!(!a||!this.rangeInBody(a))}return!!this.getNative().rangeCount}catch(b){return!1}},getRange:function(){function a(a){for(var b=c.document.body.firstChild,d=a.collapsed;b&&b.firstChild;)a.setStart(b,0),b=b.firstChild;a.startContainer||a.setStart(c.document.body,0),d&&a.collapse(!0)}var c=this;if(null!=c._cachedRange)return this._cachedRange;var d=new baidu.editor.dom.Range(c.document);if(browser.ie9below){var e=c.getIERange();if(e)try{b(e,d)}catch(f){a(d)}else a(d)}else{var g=c.getNative();if(g&&g.rangeCount){var h=g.getRangeAt(0),i=g.getRangeAt(g.rangeCount-1);d.setStart(h.startContainer,h.startOffset).setEnd(i.endContainer,i.endOffset),d.collapsed&&domUtils.isBody(d.startContainer)&&!d.startOffset&&a(d)}else{if(this._bakRange&&domUtils.inDoc(this._bakRange.startContainer,this.document))return this._bakRange;a(d)}}return this._bakRange=d},getStart:function(){if(this._cachedStartElement)return this._cachedStartElement;var a,b,c,d,e=browser.ie9below?this.getIERange():this.getRange();if(browser.ie9below){if(!e)return this.document.body.firstChild;if(e.item)return e.item(0);for(a=e.duplicate(),a.text.length>0&&a.moveStart("character",1),a.collapse(1),b=a.parentElement(),d=c=e.parentElement();c=c.parentNode;)if(c==b){b=d;break}}else if(e.shrinkBoundary(),b=e.startContainer,1==b.nodeType&&b.hasChildNodes()&&(b=b.childNodes[Math.min(b.childNodes.length-1,e.startOffset)]),3==b.nodeType)return b.parentNode;return b},getText:function(){var a,b;return this.isFocus()&&(a=this.getNative())?(b=browser.ie9below?a.createRange():a.getRangeAt(0),browser.ie9below?b.text:b.toString()):""},clearRange:function(){this.getNative()[browser.ie9below?"empty":"removeAllRanges"]()}}}(),function(){function a(a,b){var c;if(b.textarea)if(utils.isString(b.textarea)){for(var d,e=0,f=domUtils.getElementsByTagName(a,"textarea");d=f[e++];)if(d.id=="ueditor_textarea_"+b.options.textarea){c=d;break}}else c=b.textarea;c||(a.appendChild(c=domUtils.createElement(document,"textarea",{name:b.options.textarea,id:"ueditor_textarea_"+b.options.textarea,style:"display:none"})),b.textarea=c),!c.getAttribute("name")&&c.setAttribute("name",b.options.textarea),c.value=b.hasContents()?b.options.allHtmlEnabled?b.getAllHtml():b.getContent(null,null,!0):""}function b(a){for(var b in a)return b}function c(a){a.langIsReady=!0,a.fireEvent("langReady")}var d,e=0,f=UE.Editor=function(a){var d=this;d.uid=e++,EventBase.call(d),d.commands={},d.options=utils.extend(utils.clone(a||{}),UEDITOR_CONFIG,!0),d.shortcutkeys={},d.inputRules=[],d.outputRules=[],d.setOpt(f.defaultOptions(d)),d.loadServerConfig(),utils.isEmptyObject(UE.I18N)?utils.loadFile(document,{src:d.options.langPath+d.options.lang+"/"+d.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){UE.plugin.load(d),c(d)}):(d.options.lang=b(UE.I18N),UE.plugin.load(d),c(d)),UE.instants["ueditorInstant"+d.uid]=d};f.prototype={registerCommand:function(a,b){this.commands[a]=b},ready:function(a){var b=this;a&&(b.isReady?a.apply(b):b.addListener("ready",a))},setOpt:function(a,b){var c={};utils.isString(a)?c[a]=b:c=a,utils.extend(this.options,c,!0)},getOpt:function(a){return this.options[a]},destroy:function(){var a=this;a.fireEvent("destroy");var b=a.container.parentNode,c=a.textarea;c?c.style.display="":(c=document.createElement("textarea"),b.parentNode.insertBefore(c,b)),c.style.width=a.iframe.offsetWidth+"px",c.style.height=a.iframe.offsetHeight+"px",c.value=a.getContent(),c.id=a.key,b.innerHTML="",domUtils.remove(b);var d=a.key;for(var e in a)a.hasOwnProperty(e)&&delete this[e];UE.delEditor(d)},render:function(a){var b=this,c=b.options,d=function(b){return parseInt(domUtils.getComputedStyle(a,b))};if(utils.isString(a)&&(a=document.getElementById(a)),a){c.initialFrameWidth?c.minFrameWidth=c.initialFrameWidth:c.minFrameWidth=c.initialFrameWidth=a.offsetWidth,c.initialFrameHeight?c.minFrameHeight=c.initialFrameHeight:c.initialFrameHeight=c.minFrameHeight=a.offsetHeight,a.style.width=/%$/.test(c.initialFrameWidth)?"100%":c.initialFrameWidth-d("padding-left")-d("padding-right")+"px",a.style.height=/%$/.test(c.initialFrameHeight)?"100%":c.initialFrameHeight-d("padding-top")-d("padding-bottom")+"px",a.style.zIndex=c.zIndex;var e=(ie&&browser.version<9?"":"")+""+(c.iframeCssUrl?"":"")+(c.initialStyle?"":"")+"";a.appendChild(domUtils.createElement(document,"iframe",{id:"ueditor_"+b.uid,width:"100%",height:"100%",frameborder:"0",src:"javascript:void(function(){document.open();"+(c.customDomain&&document.domain!=location.hostname?'document.domain="'+document.domain+'";':"")+'document.write("'+e+'");document.close();}())'})),a.style.overflow="hidden",setTimeout(function(){/%$/.test(c.initialFrameWidth)&&(c.minFrameWidth=c.initialFrameWidth=a.offsetWidth),/%$/.test(c.initialFrameHeight)&&(c.minFrameHeight=c.initialFrameHeight=a.offsetHeight,a.style.height=c.initialFrameHeight+"px")})}},_setup:function(b){var c=this,d=c.options;ie?(b.body.disabled=!0,b.body.contentEditable=!0,b.body.disabled=!1):b.body.contentEditable=!0,b.body.spellcheck=!1,c.document=b,c.window=b.defaultView||b.parentWindow,c.iframe=c.window.frameElement,c.body=b.body,c.selection=new dom.Selection(b);var e;browser.gecko&&(e=this.selection.getNative())&&e.removeAllRanges(),this._initEvents();for(var f=this.iframe.parentNode;!domUtils.isBody(f);f=f.parentNode)if("FORM"==f.tagName){c.form=f,c.options.autoSyncData?domUtils.on(c.window,"blur",function(){a(f,c)}):domUtils.on(f,"submit",function(){a(this,c)});break}if(d.initialContent)if(d.autoClearinitialContent){var g=c.execCommand;c.execCommand=function(){return c.fireEvent("firstBeforeExecCommand"),g.apply(c,arguments)},this._setDefaultContent(d.initialContent)}else this.setContent(d.initialContent,!1,!0);domUtils.isEmptyNode(c.body)&&(c.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    "),d.focus&&setTimeout(function(){c.focus(c.options.focusInEnd),!c.options.autoClearinitialContent&&c._selectionChange()},0),c.container||(c.container=this.iframe.parentNode),d.fullscreen&&c.ui&&c.ui.setFullScreen(!0);try{c.document.execCommand("2D-position",!1,!1)}catch(h){}try{c.document.execCommand("enableInlineTableEditing",!1,!1)}catch(h){}try{c.document.execCommand("enableObjectResizing",!1,!1)}catch(h){}c._bindshortcutKeys(),c.isReady=1,c.fireEvent("ready"),d.onready&&d.onready.call(c),browser.ie9below||domUtils.on(c.window,["blur","focus"],function(a){if("blur"==a.type){c._bakRange=c.selection.getRange();try{c._bakNativeRange=c.selection.getNative().getRangeAt(0),c.selection.getNative().removeAllRanges()}catch(a){c._bakNativeRange=null}}else try{c._bakRange&&c._bakRange.select()}catch(a){}}),browser.gecko&&browser.version<=10902&&(c.body.contentEditable=!1,setTimeout(function(){c.body.contentEditable=!0},100),setInterval(function(){c.body.style.height=c.iframe.offsetHeight-20+"px"},100)),!d.isShow&&c.setHide(),d.readonly&&c.setDisabled()},sync:function(b){var c=this,d=b?document.getElementById(b):domUtils.findParent(c.iframe.parentNode,function(a){return"FORM"==a.tagName},!0);d&&a(d,c)},setHeight:function(a,b){a!==parseInt(this.iframe.parentNode.style.height)&&(this.iframe.parentNode.style.height=a+"px"),!b&&(this.options.minFrameHeight=this.options.initialFrameHeight=a),this.body.style.height=a+"px",!b&&this.trigger("setHeight")},addshortcutkey:function(a,b){var c={};b?c[a]=b:c=a,utils.extend(this.shortcutkeys,c)},_bindshortcutKeys:function(){var a=this,b=this.shortcutkeys;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which;for(var f in b)for(var g,h=b[f].split(","),i=0;g=h[i++];){g=g.split(":");var j=g[0],k=g[1];(/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase())||/^(\d+)$/.test(j))&&(("ctrl"==RegExp.$1?d.ctrlKey||d.metaKey:0)&&(""!=RegExp.$2?d[RegExp.$2.slice(1)+"Key"]:1)&&e==RegExp.$3||e==RegExp.$1)&&(a.queryCommandState(f,k)!=-1&&a.execCommand(f,k),domUtils.preventDefault(d))}})},getContent:function(a,b,c,d,e){var f=this;if(a&&utils.isFunction(a)&&(b=a,a=""),b?!b():!this.hasContents())return"";f.fireEvent("beforegetcontent");var g=UE.htmlparser(f.body.innerHTML,d);return f.filterOutputRule(g),f.fireEvent("aftergetcontent",a,g),g.toHtml(e)},getAllHtml:function(){var a=this,b=[];if(a.fireEvent("getAllHtml",b),browser.ie&&browser.version>8){var c="";utils.each(a.document.styleSheets,function(a){c+=a.href?'':""}),utils.each(a.document.getElementsByTagName("script"),function(a){c+=a.outerHTML})}return""+(a.options.charset?'':"")+(c||a.document.getElementsByTagName("head")[0].innerHTML)+b.join("\n")+""+a.getContent(null,null,!0)+""},getPlainTxt:function(){var a=new RegExp(domUtils.fillChar,"g"),b=this.body.innerHTML.replace(/[\n\r]/g,"");return b=b.replace(/<(p|div)[^>]*>(| )<\/\1>/gi,"\n").replace(//gi,"\n").replace(/<[^>\/]+>/g,"").replace(/(\n)?<\/([^>]+)>/g,function(a,b,c){return dtd.$block[c]?"\n":b?b:""}),b.replace(a,"").replace(/\u00a0/g," ").replace(/ /g," ")},getContentTxt:function(){var a=new RegExp(domUtils.fillChar,"g");return this.body[browser.ie?"innerText":"textContent"].replace(a,"").replace(/\u00a0/g," ")},setContent:function(b,c,d){function e(a){return"DIV"==a.tagName&&a.getAttribute("cdata_tag")}var f=this;f.fireEvent("beforesetcontent",b);var g=UE.htmlparser(b);if(f.filterInputRule(g),b=g.toHtml(),f.body.innerHTML=(c?f.body.innerHTML:"")+b,"p"==f.options.enterTag){var h,i=this.body.firstChild;if(!i||1==i.nodeType&&(dtd.$cdata[i.tagName]||e(i)||domUtils.isCustomeNode(i))&&i===this.body.lastChild)this.body.innerHTML="

    "+(browser.ie?" ":"
    ")+"

    "+this.body.innerHTML;else for(var j=f.document.createElement("p");i;){for(;i&&(3==i.nodeType||1==i.nodeType&&dtd.p[i.tagName]&&!dtd.$cdata[i.tagName]);)h=i.nextSibling,j.appendChild(i),i=h;if(j.firstChild){if(!i){f.body.appendChild(j);break}i.parentNode.insertBefore(j,i),j=f.document.createElement("p")}i=i.nextSibling}}f.fireEvent("aftersetcontent"),f.fireEvent("contentchange"),!d&&f._selectionChange(),f._bakRange=f._bakIERange=f._bakNativeRange=null;var k;browser.gecko&&(k=this.selection.getNative())&&k.removeAllRanges(),f.options.autoSyncData&&f.form&&a(f.form,f)},focus:function(a){try{var b=this,c=b.selection.getRange();if(a){var d=b.body.lastChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&(domUtils.isEmptyBlock(d)?c.setStartAtFirst(d):c.setStartAtLast(d),c.collapse(!0)),c.setCursor(!0)}else{if(!c.collapsed&&domUtils.isBody(c.startContainer)&&0==c.startOffset){var d=b.body.firstChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&c.setStartAtFirst(d).collapse(!0)}c.select(!0)}this.fireEvent("focus selectionchange")}catch(e){}},isFocus:function(){return this.selection.isFocus()},blur:function(){var a=this.selection.getNative();if(a.empty&&browser.ie){var b=document.body.createTextRange();b.moveToElementText(document.body),b.collapse(!0),b.select(),a.empty()}else a.removeAllRanges()},_initEvents:function(){var a=this,b=a.document,c=a.window;a._proxyDomEvent=utils.bind(a._proxyDomEvent,a),domUtils.on(b,["click","contextmenu","mousedown","keydown","keyup","keypress","mouseup","mouseover","mouseout","selectstart"],a._proxyDomEvent),domUtils.on(c,["focus","blur"],a._proxyDomEvent),domUtils.on(a.body,"drop",function(b){browser.gecko&&b.stopPropagation&&b.stopPropagation(),a.fireEvent("contentchange")}),domUtils.on(b,["mouseup","keydown"],function(b){"keydown"==b.type&&(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)||2!=b.button&&a._selectionChange(250,b)})},_proxyDomEvent:function(a){return this.fireEvent("before"+a.type.replace(/^on/,"").toLowerCase())!==!1&&(this.fireEvent(a.type.replace(/^on/,""),a)!==!1&&this.fireEvent("after"+a.type.replace(/^on/,"").toLowerCase()))},_selectionChange:function(a,b){var c,e,f=this,g=!1;if(browser.ie&&browser.version<9&&b&&"mouseup"==b.type){var h=this.selection.getRange();h.collapsed||(g=!0,c=b.clientX,e=b.clientY)}clearTimeout(d),d=setTimeout(function(){if(f.selection&&f.selection.getNative()){var a;if(g&&"None"==f.selection.getNative().type){a=f.document.body.createTextRange();try{a.moveToPoint(c,e)}catch(d){a=null}}var h;a&&(h=f.selection.getIERange,f.selection.getIERange=function(){return a}),f.selection.cache(),h&&(f.selection.getIERange=h),f.selection._cachedRange&&f.selection._cachedStartElement&&(f.fireEvent("beforeselectionchange"),f.fireEvent("selectionchange",!!b),f.fireEvent("afterselectionchange"),f.selection.clear())}},a||50)},_callCmdFn:function(a,b){var c,d,e=b[0].toLowerCase();return c=this.commands[e]||UE.commands[e],d=c&&c[a],c&&d||"queryCommandState"!=a?d?d.apply(this,b):void 0:0},execCommand:function(a){a=a.toLowerCase();var b,c=this,d=c.commands[a]||UE.commands[a];return d&&d.execCommand?(d.notNeedUndo||c.__hasEnterExecCommand?(b=this._callCmdFn("execCommand",arguments),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c.fireEvent("contentchange")):(c.__hasEnterExecCommand=!0,c.queryCommandState.apply(c,arguments)!=-1&&(c.fireEvent("saveScene"),c.fireEvent.apply(c,["beforeexeccommand",a].concat(arguments)),b=this._callCmdFn("execCommand",arguments),c.fireEvent.apply(c,["afterexeccommand",a].concat(arguments)),c.fireEvent("saveScene")),c.__hasEnterExecCommand=!1),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c._selectionChange(),b):null},queryCommandState:function(a){return this._callCmdFn("queryCommandState",arguments)},queryCommandValue:function(a){return this._callCmdFn("queryCommandValue",arguments)},hasContents:function(a){if(a)for(var b,c=0;b=a[c++];)if(this.document.getElementsByTagName(b).length>0)return!0;if(!domUtils.isEmptyBlock(this.body))return!0;for(a=["div"],c=0;b=a[c++];)for(var d,e=domUtils.getElementsByTagName(this.document,b),f=0;d=e[f++];)if(domUtils.isCustomeNode(d))return!0;return!1},reset:function(){this.fireEvent("reset")},setEnabled:function(){var a,b=this;if("false"==b.body.contentEditable){b.body.contentEditable=!0,a=b.selection.getRange();try{a.moveToBookmark(b.lastBk),delete b.lastBk}catch(c){a.setStartAtFirst(b.body).collapse(!0)}a.select(!0),b.bkqueryCommandState&&(b.queryCommandState=b.bkqueryCommandState,delete b.bkqueryCommandState),b.bkqueryCommandValue&&(b.queryCommandValue=b.bkqueryCommandValue,delete b.bkqueryCommandValue),b.fireEvent("selectionchange")}},enable:function(){return this.setEnabled()},setDisabled:function(a){var b=this;a=a?utils.isArray(a)?a:[a]:[],"true"==b.body.contentEditable&&(b.lastBk||(b.lastBk=b.selection.getRange().createBookmark(!0)),b.body.contentEditable=!1,b.bkqueryCommandState=b.queryCommandState,b.bkqueryCommandValue=b.queryCommandValue,b.queryCommandState=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandState.apply(b,arguments):-1},b.queryCommandValue=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandValue.apply(b,arguments):null},b.fireEvent("selectionchange"))},disable:function(a){return this.setDisabled(a)},_setDefaultContent:function(){function a(){var b=this;b.document.getElementById("initContent")&&(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",b.removeListener("firstBeforeExecCommand focus",a),setTimeout(function(){b.focus(),b._selectionChange()},0))}return function(b){var c=this;c.body.innerHTML='

    '+b+"

    ",c.addListener("firstBeforeExecCommand focus",a)}}(),setShow:function(){var a=this,b=a.selection.getRange();if("none"==a.container.style.display){try{b.moveToBookmark(a.lastBk),delete a.lastBk}catch(c){b.setStartAtFirst(a.body).collapse(!0)}setTimeout(function(){b.select(!0)},100),a.container.style.display=""}},show:function(){return this.setShow(); -},setHide:function(){var a=this;a.lastBk||(a.lastBk=a.selection.getRange().createBookmark(!0)),a.container.style.display="none"},hide:function(){return this.setHide()},getLang:function(a){if(!this.options)return"";var b=UE.I18N[this.options.lang];if(!b)throw Error("not import language file");a=(a||"").split(".");for(var c,d=0;(c=a[d++])&&(b=b[c],b););return b},getContentLength:function(a,b){var c=this.getContent(!1,!1,!0).length;if(a){b=(b||[]).concat(["hr","img","iframe"]),c=this.getContentTxt().replace(/[\t\r\n]+/g,"").length;for(var d,e=0;d=b[e++];)c+=this.document.getElementsByTagName(d).length}return c},addInputRule:function(a){this.inputRules.push(a)},filterInputRule:function(a){for(var b,c=0;b=this.inputRules[c++];)b.call(this,a)},addOutputRule:function(a){this.outputRules.push(a)},filterOutputRule:function(a){for(var b,c=0;b=this.outputRules[c++];)b.call(this,a)},getActionUrl:function(a){var b=this.getOpt(a)||a,c=this.getOpt("imageUrl"),d=this.getOpt("serverUrl");return!d&&c&&(d=c.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2")),d?(d=d+(d.indexOf("?")==-1?"?":"&")+"action="+(b||""),utils.formatUrl(d)):""}},utils.inherits(f,EventBase)}(),UE.Editor.defaultOptions=function(a){var b=a.options.UEDITOR_HOME_URL;return{isShow:!0,initialContent:"",initialStyle:"",autoClearinitialContent:!1,iframeCssUrl:b+"themes/iframe.css",textarea:"editorValue",focus:!1,focusInEnd:!0,autoClearEmptyNode:!0,fullscreen:!1,readonly:!1,zIndex:999,imagePopup:!0,enterTag:"p",customDomain:!1,lang:"zh-cn",langPath:b+"lang/",theme:"default",themePath:b+"themes/",allHtmlEnabled:!1,scaleEnabled:!1,tableNativeEditInFF:!1,autoSyncData:!0,fileNameFormat:"{time}{rand:6}"}},function(){UE.Editor.prototype.loadServerConfig=function(){function showErrorMsg(a){console&&console.error(a)}var me=this;setTimeout(function(){try{me.options.imageUrl&&me.setOpt("serverUrl",me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2"));var configUrl=me.getActionUrl("config"),isJsonp=utils.isCrossDomainUrl(configUrl);me._serverConfigLoaded=!1,configUrl&&UE.ajax.request(configUrl,{method:"GET",dataType:isJsonp?"jsonp":"",onsuccess:function(r){try{var config=isJsonp?r:eval("("+r.responseText+")");utils.extend(me.options,config),me.fireEvent("serverConfigLoaded"),me._serverConfigLoaded=!0}catch(e){showErrorMsg(me.getLang("loadconfigFormatError"))}},onerror:function(){showErrorMsg(me.getLang("loadconfigHttpError"))}})}catch(e){showErrorMsg(me.getLang("loadconfigError"))}})},UE.Editor.prototype.isServerConfigLoaded=function(){var a=this;return a._serverConfigLoaded||!1},UE.Editor.prototype.afterConfigReady=function(a){if(a&&utils.isFunction(a)){var b=this,c=function(){a.apply(b,arguments),b.removeListener("serverConfigLoaded",c)};b.isServerConfigLoaded()?a.call(b,"serverConfigLoaded"):b.addListener("serverConfigLoaded",c)}}}(),UE.ajax=function(){function a(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c&&"dataType"!=c&&"callback"!=c&&void 0!=a[c]&&null!=a[c])if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d/gi,"").replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(a){if(browser.opera)return"";try{if(/Bitmap/i.test(a))return"";var c=a.match(/width:([ \d.]*p[tx])/i)[1],d=a.match(/height:([ \d.]*p[tx])/i)[1],e=a.match(/src=\s*"([^"]*)"/i)[1];return''}catch(f){return""}}).replace(/<\/?div[^>]*>/g,"").replace(/v:\w+=(["']?)[^'"]+\1/g,"").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,"").replace(/

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"

    $1

    ").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi,function(a,b,c,d){return"class"==b&&"MsoListParagraph"==d?a:""}).replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi,function(a,b,c){return c.replace(/[\t\r\n ]+/g," ")}).replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi,function(a,c,d,e){for(var f,g=[],h=e.replace(/^\s+|\s+$/,"").replace(/'/g,"'").replace(/"/gi,"'").replace(/[\d.]+(cm|pt)/g,function(a){return utils.transUnitToPx(a)}).split(/;\s*/g),i=0;f=h[i];i++){var j,k,l=f.split(":");if(2==l.length){if(j=l[0].toLowerCase(),k=l[1].toLowerCase(),/^(background)\w*/.test(j)&&0==k.replace(/(initial|\s)/g,"").length||/^(margin)\w*/.test(j)&&/^0\w+$/.test(k))continue;switch(j){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":/1&&(a(h,j,!0),b(h,j)),c(k,h,i,j);break;case"text":d(g,h);break;case"element":e(g,h,i,j);break;case"comment":f(g,h,i)}return h}function d(a,b){"pre"==a.parentNode.tagName?b.push(a.data):b.push(l[a.parentNode.tagName]?utils.html(a.data):a.data.replace(/[ ]{2}/g,"  "))}function e(d,e,f,g){var h="";if(d.attrs){h=[];var i=d.attrs;for(var j in i)h.push(j+(void 0!==i[j]?'="'+(k[j]?utils.html(i[j]).replace(/["]/g,function(a){return"""}):utils.unhtml(i[j]))+'"':""));h=h.join(" ")}if(e.push("<"+d.tagName+(h?" "+h:"")+(dtd.$empty[d.tagName]?"/":"")+">"),f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g,!0),b(e,g)),d.children&&d.children.length)for(var l,m=0;l=d.children[m++];)f&&"element"==l.type&&!dtd.$inlineWithA[l.tagName]&&m>1&&(a(e,g),b(e,g)),c(l,e,f,g);dtd.$empty[d.tagName]||(f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g),b(e,g)),e.push(""))}function f(a,b){b.push("")}function g(a,b){var c;if("element"==a.type&&a.getAttr("id")==b)return a;if(a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)if(c=g(d,b))return c}function h(a,b,c){if("element"==a.type&&a.tagName==b&&c.push(a),a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)h(d,b,c)}function i(a,b){if(a.children&&a.children.length)for(var c,d=0;c=a.children[d];)i(c,b),c.parentNode&&(c.children&&c.children.length&&b(c),c.parentNode&&d++);else b(a)}var j=UE.uNode=function(a){this.type=a.type,this.data=a.data,this.tagName=a.tagName,this.parentNode=a.parentNode,this.attrs=a.attrs||{},this.children=a.children},k={href:1,src:1,_src:1,_href:1,cdata_data:1},l={style:1,script:1},m=" ",n="\n";j.createElement=function(a){return/[<>]/.test(a)?UE.htmlparser(a).children[0]:new j({type:"element",children:[],tagName:a})},j.createText=function(a,b){return new UE.uNode({type:"text",data:b?a:utils.unhtml(a||"")})},j.prototype={toHtml:function(a){var b=[];return c(this,b,a,0),b.join("")},innerHTML:function(a){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(utils.isString(a)){if(this.children)for(var b,c=0;b=this.children[c++];)b.parentNode=null;this.children=[];for(var b,d=UE.htmlparser(a),c=0;b=d.children[c++];)this.children.push(b),b.parentNode=this;return this}var d=new UE.uNode({type:"root",children:this.children});return d.toHtml()},innerText:function(a,b){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(a){if(this.children)for(var c,d=0;c=this.children[d++];)c.parentNode=null;return this.children=[],this.appendChild(j.createText(a,b)),this}return this.toHtml().replace(/<[^>]+>/g,"")},getData:function(){return"element"==this.type?"":this.data},firstChild:function(){return this.children?this.children[0]:null},lastChild:function(){return this.children?this.children[this.children.length-1]:null},previousSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return 0==c?null:b.children[c-1]},nextSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c++];)if(a===this)return b.children[c]},replaceChild:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,1,a),b.parentNode=null,a.parentNode=this,a}},appendChild:function(a){if("root"==this.type||"element"==this.type&&!dtd.$empty[this.tagName]){this.children||(this.children=[]),a.parentNode&&a.parentNode.removeChild(a);for(var b,c=0;b=this.children[c];c++)if(b===a){this.children.splice(c,1);break}return this.children.push(a),a.parentNode=this,a}},insertBefore:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,0,a),a.parentNode=this,a}},insertAfter:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d+1,0,a),a.parentNode=this,a}},removeChild:function(a,b){if(this.children)for(var c,d=0;c=this.children[d];d++)if(c===a){if(this.children.splice(d,1),c.parentNode=null,b&&c.children&&c.children.length)for(var e,f=0;e=c.children[f];f++)this.children.splice(d+f,0,e),e.parentNode=this;return c}},getAttr:function(a){return this.attrs&&this.attrs[a.toLowerCase()]},setAttr:function(a,b){if(!a)return void delete this.attrs;if(this.attrs||(this.attrs={}),utils.isObject(a))for(var c in a)a[c]?this.attrs[c.toLowerCase()]=a[c]:delete this.attrs[c];else b?this.attrs[a.toLowerCase()]=b:delete this.attrs[a]},getIndex:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return c;return-1},getNodeById:function(a){var b;if(this.children&&this.children.length)for(var c,d=0;c=this.children[d++];)if(b=g(c,a))return b},getNodesByTagName:function(a){a=utils.trim(a).replace(/[ ]{2,}/g," ").split(" ");var b=[],c=this;return utils.each(a,function(a){if(c.children&&c.children.length)for(var d,e=0;d=c.children[e++];)h(d,a,b)}),b},getStyle:function(a){var b=this.getAttr("style");if(!b)return"";var c=new RegExp("(^|;)\\s*"+a+":([^;]+)","i"),d=b.match(c);return d&&d[0]?d[2]:""},setStyle:function(a,b){function c(a,b){var c=new RegExp("(^|;)\\s*"+a+":([^;]+;?)","gi");d=d.replace(c,"$1"),b&&(d=a+":"+utils.unhtml(b)+";"+d)}var d=this.getAttr("style");if(d||(d=""),utils.isObject(a))for(var e in a)c(e,a[e]);else c(a,b);this.setAttr("style",utils.trim(d))},traversal:function(a){return this.children&&this.children.length&&i(this,a),this}}}();var htmlparser=UE.htmlparser=function(a,b){function c(a,b){if(m[a.tagName]){var c=k.createElement(m[a.tagName]);a.appendChild(c),c.appendChild(k.createText(b)),a=c}else a.appendChild(k.createText(b))}function d(a,b,c){var e;if(e=l[b]){for(var f,h=a;"root"!=h.type;){if(utils.isArray(e)?utils.indexOf(e,h.tagName)!=-1:e==h.tagName){a=h,f=!0;break}h=h.parentNode}f||(a=d(a,utils.isArray(e)?e[0]:e))}var i=new k({parentNode:a,type:"element",tagName:b.toLowerCase(),children:dtd.$empty[b]?null:[]});if(c){for(var m,n={};m=g.exec(c);)n[m[1].toLowerCase()]=j[m[1].toLowerCase()]?m[2]||m[3]||m[4]:utils.unhtml(m[2]||m[3]||m[4]);i.attrs=n}return a.children.push(i),dtd.$empty[b]?a:i}function e(a,b){a.children.push(new k({type:"comment",data:b,parentNode:a}))}var f=/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,g=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,h={b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1};a=a.replace(new RegExp(domUtils.fillChar,"g"),""),b||(a=a.replace(new RegExp("[\\r\\t\\n"+(b?"":" ")+"]*]*)>[\\r\\t\\n"+(b?"":" ")+"]*","g"),function(a,c){return c&&h[c.toLowerCase()]?a.replace(/(^[\n\r]+)|([\n\r]+$)/g,""):a.replace(new RegExp("^[\\r\\n"+(b?"":" ")+"]+"),"").replace(new RegExp("[\\r\\n"+(b?"":" ")+"]+$"),"")}));for(var i,j={href:1,src:1},k=UE.uNode,l={td:"tr",tr:["tbody","thead","tfoot"],tbody:"table",th:"tr",thead:"table",tfoot:"table",caption:"table",li:["ul","ol"],dt:"dl",dd:"dl",option:"select"},m={ol:"li",ul:"li"},n=0,o=0,p=new k({type:"root",children:[]}),q=p;i=f.exec(a);){n=i.index;try{if(n>o&&c(q,a.slice(o,n)),i[3])dtd.$cdata[q.tagName]?c(q,i[0]):q=d(q,i[3].toLowerCase(),i[4]);else if(i[1]){if("root"!=q.type)if(dtd.$cdata[q.tagName]&&!dtd.$cdata[i[1]])c(q,i[0]);else{for(var r=q;"element"==q.type&&q.tagName!=i[1].toLowerCase();)if(q=q.parentNode,"root"==q.type)throw q=r,"break";q=q.parentNode}}else i[2]&&e(q,i[2])}catch(s){}o=f.lastIndex}return o");break;case"div":if(b.getAttr("cdata_tag"))break;if(d=b.getAttr("class"),d&&/^line number\d+/.test(d))break;if(!e)break;for(var f,g=UE.uNode.createElement("p");f=b.firstChild();)"text"!=f.type&&UE.dom.dtd.$block[f.tagName]?g.firstChild()?(b.parentNode.insertBefore(g,b),g=UE.uNode.createElement("p")):b.parentNode.insertBefore(f,b):g.appendChild(f);g.firstChild()&&b.parentNode.insertBefore(g,b),b.parentNode.removeChild(b);break;case"dl":b.tagName="ul";break;case"dt":case"dd":b.tagName="li";break;case"li":var h=b.getAttr("class");h&&/list\-/.test(h)||b.setAttr();var i=b.getNodesByTagName("ol ul");UE.utils.each(i,function(a){b.parentNode.insertAfter(a,b)});break;case"td":case"th":case"caption":b.children&&b.children.length||b.appendChild(browser.ie11below?UE.uNode.createText(" "):UE.uNode.createElement("br"));break;case"table":a.options.disabledTableInTable&&c(b)&&(b.parentNode.insertBefore(UE.uNode.createText(b.innerText()),b),b.parentNode.removeChild(b))}}})}),a.addOutputRule(function(b){var c;b.traversal(function(b){if("element"==b.type){if(a.options.autoClearEmptyNode&&dtd.$inline[b.tagName]&&!dtd.$empty[b.tagName]&&(!b.attrs||utils.isEmptyObject(b.attrs)))return void(b.firstChild()?"span"!=b.tagName||b.attrs&&!utils.isEmptyObject(b.attrs)||b.parentNode.removeChild(b,!0):b.parentNode.removeChild(b));switch(b.tagName){case"div":(c=b.getAttr("cdata_tag"))&&(b.tagName=c,b.appendChild(UE.uNode.createText(b.getAttr("cdata_data"))),b.setAttr({cdata_tag:"",cdata_data:"",_ue_custom_node_:""}));break;case"a":(c=b.getAttr("_href"))&&b.setAttr({href:utils.html(c),_href:""});break;case"span":c=b.getAttr("id"),c&&/^_baidu_bookmark_/i.test(c)&&b.parentNode.removeChild(b);break;case"img":(c=b.getAttr("_src"))&&b.setAttr({src:b.getAttr("_src"),_src:""})}}})})},UE.commands.inserthtml={execCommand:function(a,b,c){var d,e,f=this;if(b&&f.fireEvent("beforeinserthtml",b)!==!0){if(d=f.selection.getRange(),e=d.document.createElement("div"),e.style.display="inline",!c){var g=UE.htmlparser(b);f.options.filterRules&&UE.filterNode(g,f.options.filterRules),f.filterInputRule(g),b=g.toHtml()}if(e.innerHTML=utils.trim(b),!d.collapsed){var h=d.startContainer;if(domUtils.isFillChar(h)&&d.setStartBefore(h),h=d.endContainer,domUtils.isFillChar(h)&&d.setEndAfter(h),d.txtToElmBoundary(),d.endContainer&&1==d.endContainer.nodeType&&(h=d.endContainer.childNodes[d.endOffset],h&&domUtils.isBr(h)&&d.setEndAfter(h)),0==d.startOffset&&(h=d.startContainer,domUtils.isBoundaryNode(h,"firstChild")&&(h=d.endContainer,d.endOffset==(3==h.nodeType?h.nodeValue.length:h.childNodes.length)&&domUtils.isBoundaryNode(h,"lastChild")&&(f.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",d.setStart(f.body.firstChild,0).collapse(!0)))),!d.collapsed&&d.deleteContents(),1==d.startContainer.nodeType){var i,j=d.startContainer.childNodes[d.startOffset];if(j&&domUtils.isBlockElm(j)&&(i=j.previousSibling)&&domUtils.isBlockElm(i)){for(d.setEnd(i,i.childNodes.length).collapse();j.firstChild;)i.appendChild(j.firstChild);domUtils.remove(j)}}}var j,k,i,l,m,n=0;d.inFillChar()&&(j=d.startContainer,domUtils.isFillChar(j)?(d.setStartBefore(j).collapse(!0),domUtils.remove(j)):domUtils.isFillChar(j,!0)&&(j.nodeValue=j.nodeValue.replace(fillCharReg,""),d.startOffset--,d.collapsed&&d.collapse(!0)));var o=domUtils.findParentByTagName(d.startContainer,"li",!0);if(o){for(var p,q;j=e.firstChild;){for(;j&&(3==j.nodeType||!domUtils.isBlockElm(j)||"HR"==j.tagName);)p=j.nextSibling,d.insertNode(j).collapse(),q=j,j=p;if(j)if(/^(ol|ul)$/i.test(j.tagName)){for(;j.firstChild;)q=j.firstChild,domUtils.insertAfter(o,j.firstChild),o=o.nextSibling;domUtils.remove(j)}else{var r;p=j.nextSibling,r=f.document.createElement("li"),domUtils.insertAfter(o,r),r.appendChild(j),q=j,j=p,o=r}}o=domUtils.findParentByTagName(d.startContainer,"li",!0),domUtils.isEmptyBlock(o)&&domUtils.remove(o),q&&d.setStartAfter(q).collapse(!0).select(!0)}else{for(;j=e.firstChild;){if(n){for(var s=f.document.createElement("p");j&&(3==j.nodeType||!dtd.$block[j.tagName]);)m=j.nextSibling,s.appendChild(j),j=m;s.firstChild&&(j=s)}if(d.insertNode(j),m=j.nextSibling,!n&&j.nodeType==domUtils.NODE_ELEMENT&&domUtils.isBlockElm(j)&&(k=domUtils.findParent(j,function(a){return domUtils.isBlockElm(a)}),k&&"body"!=k.tagName.toLowerCase()&&(!dtd[k.tagName][j.nodeName]||j.parentNode!==k))){if(dtd[k.tagName][j.nodeName])for(l=j.parentNode;l!==k;)i=l,l=l.parentNode;else i=k;domUtils.breakParent(j,i||l);var i=j.previousSibling;domUtils.trimWhiteTextNode(i),i.childNodes.length||domUtils.remove(i),!browser.ie&&(p=j.nextSibling)&&domUtils.isBlockElm(p)&&p.lastChild&&!domUtils.isBr(p.lastChild)&&p.appendChild(f.document.createElement("br")),n=1}var p=j.nextSibling;if(!e.firstChild&&p&&domUtils.isBlockElm(p)){d.setStart(p,0).collapse(!0);break}d.setEndAfter(j).collapse()}if(j=d.startContainer,m&&domUtils.isBr(m)&&domUtils.remove(m),domUtils.isBlockElm(j)&&domUtils.isEmptyNode(j))if(m=j.nextSibling)domUtils.remove(j),1==m.nodeType&&dtd.$block[m.tagName]&&d.setStart(m,0).collapse(!0).shrinkBoundary();else try{j.innerHTML=browser.ie?domUtils.fillChar:"
    "}catch(t){d.setStartBefore(j),domUtils.remove(j)}try{d.select(!0)}catch(t){}}setTimeout(function(){d=f.selection.getRange(),d.scrollToView(f.autoHeightEnabled,f.autoHeightEnabled?domUtils.getXY(f.iframe).y:0),f.fireEvent("afterinserthtml",b)},200)}}},UE.plugins.autotypeset=function(){function a(a,b){return a&&3!=a.nodeType?domUtils.isBr(a)?1:a&&a.parentNode&&l[a.tagName.toLowerCase()]?g&&g.contains(a)||a.getAttribute("pagebreak")?0:b?!domUtils.isEmptyBlock(a):domUtils.isEmptyBlock(a,new RegExp("[\\s"+domUtils.fillChar+"]","g")):void 0:0}function b(a){a.style.cssText||(domUtils.removeAttributes(a,["style"]),"span"==a.tagName.toLowerCase()&&domUtils.hasNoAttributes(a)&&domUtils.remove(a,!0))}function c(c,f){var h,l=this;if(f){if(!i.pasteFilter)return;h=l.document.createElement("div"),h.innerHTML=f.html}else h=l.document.body;for(var m,n=domUtils.getElementsByTagName(h,"*"),o=0;m=n[o++];)if(l.fireEvent("excludeNodeinautotype",m)!==!0){if(i.clearFontSize&&m.style.fontSize&&(domUtils.removeStyle(m,"font-size"),b(m)),i.clearFontFamily&&m.style.fontFamily&&(domUtils.removeStyle(m,"font-family"),b(m)),a(m)){if(i.mergeEmptyline)for(var p,q=m.nextSibling,r=domUtils.isBr(m);a(q)&&(p=q,q=p.nextSibling,!r||q&&(!q||domUtils.isBr(q)));)domUtils.remove(p);if(i.removeEmptyline&&domUtils.inDoc(m,h)&&!k[m.parentNode.tagName.toLowerCase()]){if(domUtils.isBr(m)&&(q=m.nextSibling,q&&!domUtils.isBr(q)))continue;domUtils.remove(m);continue}}if(a(m,!0)&&"SPAN"!=m.tagName&&(i.indent&&(m.style.textIndent=i.indentValue),i.textAlign&&(m.style.textAlign=i.textAlign)),i.removeClass&&m.className&&!j[m.className.toLowerCase()]){if(g&&g.contains(m))continue;domUtils.removeAttributes(m,["class"])}if(i.imageBlockLine&&"img"==m.tagName.toLowerCase()&&!m.getAttribute("emotion"))if(f){var s=m;switch(i.imageBlockLine){case"left":case"right":case"none":for(var p,t,q,u=s.parentNode;dtd.$inline[u.tagName]||"A"==u.tagName;)u=u.parentNode;if(p=u,"P"==p.tagName&&"center"==domUtils.getStyle(p,"text-align")&&!domUtils.isBody(p)&&1==domUtils.getChildCount(p,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(t=p.previousSibling,q=p.nextSibling,t&&q&&1==t.nodeType&&1==q.nodeType&&t.tagName==q.tagName&&domUtils.isBlockElm(t)){for(t.appendChild(p.firstChild);q.firstChild;)t.appendChild(q.firstChild);domUtils.remove(p),domUtils.remove(q)}else domUtils.setStyle(p,"text-align","");domUtils.setStyle(s,"float",i.imageBlockLine);break;case"center":if("center"!=l.queryCommandValue("imagefloat")){for(u=s.parentNode,domUtils.setStyle(s,"float","none"),p=s;u&&1==domUtils.getChildCount(u,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[u.tagName]||"A"==u.tagName);)p=u,u=u.parentNode;var v=l.document.createElement("p");domUtils.setAttributes(v,{style:"text-align:center"}),p.parentNode.insertBefore(v,p),v.appendChild(p),domUtils.setStyle(p,"float","")}}}else{var w=l.selection.getRange();w.selectNode(m).select(),l.execCommand("imagefloat",i.imageBlockLine)}i.removeEmptyNode&&i.removeTagNames[m.tagName.toLowerCase()]&&domUtils.hasNoAttributes(m)&&domUtils.isEmptyBlock(m)&&domUtils.remove(m)}if(i.tobdc){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=e(a.data))}),h.innerHTML=x.toHtml()}if(i.bdc2sb){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=d(a.data))}),h.innerHTML=x.toHtml()}f&&(f.html=h.innerHTML)}function d(a){for(var b="",c=0;c=65281&&d<=65373?String.fromCharCode(a.charCodeAt(c)-65248):12288==d?String.fromCharCode(a.charCodeAt(c)-12288+32):a.charAt(c)}return b}function e(a){a=utils.html(a);for(var b="",c=0;c0?e.substring(e.indexOf(d.options.imagePath),e.length-1).replace(/"|\(|\)/gi,""):"none"!=e?e.replace(/url\("?|"?\)/gi,""):"";var g=' ",b.push(g)},aftersetcontent:function(){0==c&&b()}},inputRule:function(d){c=!1,utils.each(d.getNodesByTagName("p"),function(d){var e=d.getAttr("data-background");e&&(c=!0,b(a(e)),d.parentNode.removeChild(d))})},outputRule:function(a){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);c&&a.appendChild(UE.uNode.createElement('


    '))},commands:{background:{execCommand:function(a,c){b(c)},queryCommandValue:function(){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);return c?a(c[1]):null},notNeedUndo:!0}}}}),UE.commands.imagefloat={execCommand:function(a,b){var c=this,d=c.selection.getRange();if(!d.collapsed){var e=d.getClosedNode();if(e&&"IMG"==e.tagName)switch(b){case"left":case"right":case"none":for(var f,g,h,i=e.parentNode;dtd.$inline[i.tagName]||"A"==i.tagName;)i=i.parentNode;if(f=i,"P"==f.tagName&&"center"==domUtils.getStyle(f,"text-align")){if(!domUtils.isBody(f)&&1==domUtils.getChildCount(f,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(g=f.previousSibling,h=f.nextSibling,g&&h&&1==g.nodeType&&1==h.nodeType&&g.tagName==h.tagName&&domUtils.isBlockElm(g)){for(g.appendChild(f.firstChild);h.firstChild;)g.appendChild(h.firstChild);domUtils.remove(f),domUtils.remove(h)}else domUtils.setStyle(f,"text-align","");d.selectNode(e).select()}domUtils.setStyle(e,"float","none"==b?"":b),"none"==b&&domUtils.removeAttributes(e,"align");break;case"center":if("center"!=c.queryCommandValue("imagefloat")){for(i=e.parentNode,domUtils.setStyle(e,"float",""),domUtils.removeAttributes(e,"align"),f=e;i&&1==domUtils.getChildCount(i,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[i.tagName]||"A"==i.tagName);)f=i,i=i.parentNode;d.setStartBefore(f).setCursor(!1),i=c.document.createElement("div"),i.appendChild(f),domUtils.setStyle(f,"float",""),c.execCommand("insertHtml",'

    '+i.innerHTML+"

    "),f=c.document.getElementById("_img_parent_tmp"),f.removeAttribute("id"),f=f.firstChild,d.selectNode(f).select(),h=f.parentNode.nextSibling,h&&domUtils.isEmptyNode(h)&&domUtils.remove(h)}}}},queryCommandValue:function(){var a,b,c=this.selection.getRange();return c.collapsed?"none":(a=c.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?(b=domUtils.getComputedStyle(a,"float")||a.getAttribute("align"),"none"==b&&(b="center"==domUtils.getComputedStyle(a.parentNode,"text-align")?"center":b),{left:1,right:1,center:1}[b]?b:"none"):"none")},queryCommandState:function(){var a,b=this.selection.getRange();return b.collapsed?-1:(a=b.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?0:-1)}},UE.commands.insertimage={execCommand:function(a,b){function c(a){utils.each("width,height,border,hspace,vspace".split(","),function(b){a[b]&&(a[b]=parseInt(a[b],10)||0)}),utils.each("src,_src".split(","),function(b){a[b]&&(a[b]=utils.unhtmlForUrl(a[b]))}),utils.each("title,alt".split(","),function(b){a[b]&&(a[b]=utils.unhtml(a[b]))})}if(b=utils.isArray(b)?b:[b],b.length){var d=this,e=d.selection.getRange(),f=e.getClosedNode();if(d.fireEvent("beforeinsertimage",b)!==!0){if(!f||!/img/i.test(f.tagName)||"edui-faked-video"==f.className&&f.className.indexOf("edui-upload-video")==-1||f.getAttribute("word_img")){var g,h=[],i="";if(g=b[0],1==b.length)c(g),i=''+g.alt+'","center"==g.floatStyle&&(i='

    '+i+"

    "),h.push(i);else for(var j=0;g=b[j++];)c(g),i="

    ",h.push(i);d.execCommand("insertHtml",h.join(""))}else{var k=b.shift(),l=k.floatStyle;delete k.floatStyle,domUtils.setAttributes(f,k),d.execCommand("imagefloat",l),b.length>0&&(e.setStartAfter(f).setCursor(!1,!0),d.execCommand("insertimage",b))}d.fireEvent("afterinsertimage",b)}}}},UE.plugins.justify=function(){var a=domUtils.isBlockElm,b={left:1,right:1,center:1,justify:1},c=function(b,c){var d=b.createBookmark(),e=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};b.enlarge(!0);for(var f,g=b.createBookmark(),h=domUtils.getNextDomNode(g.start,!1,e),i=b.cloneRange();h&&!(domUtils.getPosition(h,g.end)&domUtils.POSITION_FOLLOWING);)if(3!=h.nodeType&&a(h))h=domUtils.getNextDomNode(h,!0,e);else{for(i.setStartBefore(h);h&&h!==g.end&&!a(h);)f=h,h=domUtils.getNextDomNode(h,!1,null,function(b){return!a(b)});i.setEndAfter(f);var j=i.getCommonAncestor();if(!domUtils.isBody(j)&&a(j))domUtils.setStyles(j,utils.isString(c)?{"text-align":c}:c),h=j;else{var k=b.document.createElement("p");domUtils.setStyles(k,utils.isString(c)?{"text-align":c}:c);var l=i.extractContents();k.appendChild(l),i.insertNode(k),h=k}h=domUtils.getNextDomNode(h,!1,e)}return b.moveToBookmark(g).moveToBookmark(d)};UE.commands.justify={execCommand:function(a,b){var d,e=this.selection.getRange();return e.collapsed&&(d=this.document.createTextNode("p"),e.insertNode(d)),c(e,b),d&&(e.setStartBefore(d).collapse(!0),domUtils.remove(d)),e.select(),!0},queryCommandValue:function(){var a=this.selection.getStart(),c=domUtils.getComputedStyle(a,"text-align");return b[c]?c:"left"},queryCommandState:function(){var a=this.selection.getStart(),b=a&&domUtils.findParentByTagName(a,["td","th","caption"],!0);return b?-1:0}}},UE.plugins.font=function(){function a(a){for(var b;(b=a.parentNode)&&"SPAN"==b.tagName&&1==domUtils.getChildCount(b,function(a){return!domUtils.isBookmarkNode(a)&&!domUtils.isBr(a)});)b.style.cssText+=a.style.cssText,domUtils.remove(a,!0),a=b}function b(a,b,c){if(g[b]&&(a.adjustmentBoundary(),!a.collapsed&&1==a.startContainer.nodeType)){var d=a.startContainer.childNodes[a.startOffset];if(d&&domUtils.isTagNode(d,"span")){var e=a.createBookmark();utils.each(domUtils.getElementsByTagName(d,"span"),function(a){a.parentNode&&!domUtils.isBookmarkNode(a)&&("backcolor"==b&&domUtils.getComputedStyle(a,"background-color").toLowerCase()===c||(domUtils.removeStyle(a,g[b]),0==a.style.cssText.replace(/^\s+$/,"").length&&domUtils.remove(a,!0)))}),a.moveToBookmark(e)}}}function c(c,d,e){var f,g=c.collapsed,h=c.createBookmark();if(g)for(f=h.start.parentNode;dtd.$inline[f.tagName];)f=f.parentNode;else f=domUtils.getCommonAncestor(h.start,h.end);utils.each(domUtils.getElementsByTagName(f,"span"),function(b){if(b.parentNode&&!domUtils.isBookmarkNode(b)){if(/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText))return void(/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText)?domUtils.remove(b,!0):domUtils.removeStyle(b,"border"));if(/border/i.test(b.style.cssText)&&"SPAN"==b.parentNode.tagName&&/border/i.test(b.parentNode.style.cssText)&&(b.style.cssText=b.style.cssText.replace(/border[^:]*:[^;]+;?/gi,"")),"fontborder"!=d||"none"!=e)for(var c=b.nextSibling;c&&1==c.nodeType&&"SPAN"==c.tagName;)if(domUtils.isBookmarkNode(c)&&"fontborder"==d)b.appendChild(c),c=b.nextSibling;else{if(c.style.cssText==b.style.cssText&&(domUtils.moveChild(c,b),domUtils.remove(c)),b.nextSibling===c)break;c=b.nextSibling}if(a(b),browser.ie&&browser.version>8){var f=domUtils.findParent(b,function(a){return"SPAN"==a.tagName&&/background-color/.test(a.style.cssText)});f&&!/background-color/.test(b.style.cssText)&&(b.style.backgroundColor=f.style.backgroundColor)}}}),c.moveToBookmark(h),b(c,d,e)}var d=this,e={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family",underline:"text-decoration",strikethrough:"text-decoration",fontborder:"border"},f={underline:1,strikethrough:1,fontborder:1},g={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family"};d.setOpt({fontfamily:[{name:"songti",val:"宋体,SimSun"},{name:"yahei",val:"微软雅黑,Microsoft YaHei"},{name:"kaiti",val:"楷体,楷体_GB2312, SimKai"},{name:"heiti",val:"黑体, SimHei"},{name:"lishu",val:"隶书, SimLi"},{name:"andaleMono",val:"andale mono"},{name:"arial",val:"arial, helvetica,sans-serif"},{name:"arialBlack",val:"arial black,avant garde"},{name:"comicSansMs",val:"comic sans ms"},{name:"impact",val:"impact,chicago"},{name:"timesNewRoman",val:"times new roman"}],fontsize:[10,11,12,14,16,18,20,24,36]}),d.addInputRule(function(a){utils.each(a.getNodesByTagName("u s del font strike"),function(a){if("font"==a.tagName){var b=[];for(var c in a.attrs)switch(c){case"size":b.push("font-size:"+({1:"10",2:"12",3:"16",4:"18",5:"24",6:"32",7:"48"}[a.attrs[c]]||a.attrs[c])+"px");break;case"color":b.push("color:"+a.attrs[c]);break;case"face":b.push("font-family:"+a.attrs[c]);break;case"style":b.push(a.attrs[c])}a.attrs={style:b.join(";")}}else{var d="u"==a.tagName?"underline":"line-through";a.attrs={style:(a.getAttr("style")||"")+"text-decoration:"+d+";"}}a.tagName="span"})});for(var h in e)!function(a,b){UE.commands[a]={execCommand:function(d,e){e=e||(this.queryCommandState(d)?"none":"underline"==d?"underline":"fontborder"==d?"1px solid #000":"line-through");var g,h=this,i=this.selection.getRange();if("default"==e)i.collapsed&&(g=h.document.createTextNode("font"),i.insertNode(g).select()),h.execCommand("removeFormat","span,a",b),g&&(i.setStartBefore(g).collapse(!0),domUtils.remove(g)),c(i,d,e),i.select();else if(i.collapsed){var j=domUtils.findParentByTagName(i.startContainer,"span",!0);if(g=h.document.createTextNode("font"),!j||j.children.length||j[browser.ie?"innerText":"textContent"].replace(fillCharReg,"").length){if(i.insertNode(g),i.selectNode(g).select(),j=i.document.createElement("span"),f[a]){if(domUtils.findParentByTagName(g,"a",!0))return i.setStartBefore(g).setCursor(),void domUtils.remove(g);h.execCommand("removeFormat","span,a",b)}if(j.style.cssText=b+":"+e,g.parentNode.insertBefore(j,g),!browser.ie||browser.ie&&9==browser.version)for(var k=j.parentNode;!domUtils.isBlockElm(k);)"SPAN"==k.tagName&&(j.style.cssText=k.style.cssText+";"+j.style.cssText),k=k.parentNode;opera?setTimeout(function(){i.setStart(j,0).collapse(!0),c(i,d,e),i.select()}):(i.setStart(j,0).collapse(!0),c(i,d,e),i.select())}else i.insertNode(g),f[a]&&(i.selectNode(g).select(),h.execCommand("removeFormat","span,a",b,null),j=domUtils.findParentByTagName(g,"span",!0),i.setStartBefore(g)),j&&(j.style.cssText+=";"+b+":"+e),i.collapse(!0).select();domUtils.remove(g)}else f[a]&&h.queryCommandValue(a)&&h.execCommand("removeFormat","span,a",b),i=h.selection.getRange(),i.applyInlineStyle("span",{style:b+":"+e}),c(i,d,e),i.select();return!0},queryCommandValue:function(a){var c=this.selection.getStart();if("underline"==a||"strikethrough"==a){for(var d,e=c;e&&!domUtils.isBlockElm(e)&&!domUtils.isBody(e);){if(1==e.nodeType&&(d=domUtils.getComputedStyle(e,b),"none"!=d))return d;e=e.parentNode}return"none"}if("fontborder"==a){for(var f,g=c;g&&dtd.$inline[g.tagName];){if((f=domUtils.getComputedStyle(g,"border"))&&/1px/.test(f)&&/solid/.test(f))return f;g=g.parentNode}return""}if("FontSize"==a){var h=domUtils.getComputedStyle(c,b),g=/^([\d\.]+)(\w+)$/.exec(h);return g?Math.floor(g[1])+g[2]:h}return domUtils.getComputedStyle(c,b)},queryCommandState:function(a){if(!f[a])return 0;var b=this.queryCommandValue(a);return"fontborder"==a?/1px/.test(b)&&/solid/.test(b):"underline"==a?/underline/.test(b):/line\-through/.test(b)}}}(h,e[h])},UE.plugins.link=function(){function a(a){var b=a.startContainer,c=a.endContainer;(b=domUtils.findParentByTagName(b,"a",!0))&&a.setStartBefore(b),(c=domUtils.findParentByTagName(c,"a",!0))&&a.setEndAfter(c)}function b(b,c,d){var e=b.cloneRange(),f=d.queryCommandValue("link");a(b=b.adjustmentBoundary());var g=b.startContainer;if(1==g.nodeType&&f&&(g=g.childNodes[b.startOffset],g&&1==g.nodeType&&"A"==g.tagName&&/^(?:https?|ftp|file)\s*:\s*\/\//.test(g[browser.ie?"innerText":"textContent"])&&(g[browser.ie?"innerText":"textContent"]=utils.html(c.textValue||c.href))),e.collapsed&&!f||(b.removeInlineStyle("a"),e=b.cloneRange()),e.collapsed){var h=b.document.createElement("a"),i="";c.textValue?(i=utils.html(c.textValue),delete c.textValue):i=utils.html(c.href),domUtils.setAttributes(h,c),g=domUtils.findParentByTagName(e.startContainer,"a",!0),g&&domUtils.isInNodeEndBoundary(e,g)&&b.setStartAfter(g).collapse(!0),h[browser.ie?"innerText":"textContent"]=i,b.insertNode(h).selectNode(h)}else b.applyInlineStyle("a",c)}UE.commands.unlink={execCommand:function(){var b,c=this.selection.getRange();c.collapsed&&!domUtils.findParentByTagName(c.startContainer,"a",!0)||(b=c.createBookmark(),a(c),c.removeInlineStyle("a").moveToBookmark(b).select())},queryCommandState:function(){return!this.highlight&&this.queryCommandValue("link")?0:-1}},UE.commands.link={execCommand:function(a,c){var d;c._href&&(c._href=utils.unhtml(c._href,/[<">]/g)),c.href&&(c.href=utils.unhtml(c.href,/[<">]/g)),c.textValue&&(c.textValue=utils.unhtml(c.textValue,/[<">]/g)),b(d=this.selection.getRange(),c,this),d.collapse().select(!0)},queryCommandValue:function(){var a,b=this.selection.getRange();if(!b.collapsed){b.shrinkBoundary();var c=3!=b.startContainer.nodeType&&b.startContainer.childNodes[b.startOffset]?b.startContainer.childNodes[b.startOffset]:b.startContainer,d=3==b.endContainer.nodeType||0==b.endOffset?b.endContainer:b.endContainer.childNodes[b.endOffset-1],e=b.getCommonAncestor();if(a=domUtils.findParentByTagName(e,"a",!0),!a&&1==e.nodeType)for(var f,g,h,i=e.getElementsByTagName("a"),j=0;h=i[j++];)if(f=domUtils.getPosition(h,c),g=domUtils.getPosition(h,d),(f&domUtils.POSITION_FOLLOWING||f&domUtils.POSITION_CONTAINS)&&(g&domUtils.POSITION_PRECEDING||g&domUtils.POSITION_CONTAINS)){a=h;break}return a}if(a=b.startContainer,a=1==a.nodeType?a:a.parentNode,a&&(a=domUtils.findParentByTagName(a,"a",!0))&&!domUtils.isInNodeEndBoundary(b,a))return a},queryCommandState:function(){var a=this.selection.getRange().getClosedNode(),b=a&&("edui-faked-video"==a.className||a.className.indexOf("edui-upload-video")!=-1);return b?-1:0}}},UE.plugins.insertframe=function(){function a(){b._iframe&&delete b._iframe}var b=this;b.addListener("selectionchange",function(){a()})},UE.commands.scrawl={queryCommandState:function(){return browser.ie&&browser.version<=8?-1:0}},UE.plugins.removeformat=function(){var a=this;a.setOpt({removeFormatTags:"b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var",removeFormatAttributes:"class,style,lang,width,height,align,hspace,valign"}),a.commands.removeformat={execCommand:function(a,b,c,d,e){function f(a){if(3==a.nodeType||"span"!=a.tagName.toLowerCase())return 0;if(browser.ie){var b=a.attributes;if(b.length){for(var c=0,d=b.length;c
    "+this.getContent(null,null,!0)+"
    "),b.close()},notNeedUndo:1},UE.plugins.selectall=function(){var a=this;a.commands.selectall={execCommand:function(){var a=this,b=a.body,c=a.selection.getRange();c.selectNodeContents(b),domUtils.isEmptyBlock(b)&&(browser.opera&&b.firstChild&&1==b.firstChild.nodeType&&c.setStartAtFirst(b.firstChild),c.collapse(!0)),c.select(!0)},notNeedUndo:1},a.addshortcutkey({selectAll:"ctrl+65"})},UE.plugins.paragraph=function(){var a=this,b=domUtils.isBlockElm,c=["TD","LI","PRE"],d=function(a,d,e,f){var g,h=a.createBookmark(),i=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};a.enlarge(!0);for(var j,k=a.createBookmark(),l=domUtils.getNextDomNode(k.start,!1,i),m=a.cloneRange();l&&!(domUtils.getPosition(l,k.end)&domUtils.POSITION_FOLLOWING);)if(3!=l.nodeType&&b(l))l=domUtils.getNextDomNode(l,!0,i);else{for(m.setStartBefore(l);l&&l!==k.end&&!b(l);)j=l,l=domUtils.getNextDomNode(l,!1,null,function(a){return!b(a)});m.setEndAfter(j),g=a.document.createElement(d),e&&(domUtils.setAttributes(g,e),f&&"customstyle"==f&&e.style&&(g.style.cssText=e.style)),g.appendChild(m.extractContents()),domUtils.isEmptyNode(g)&&domUtils.fillChar(a.document,g),m.insertNode(g);var n=g.parentNode;b(n)&&!domUtils.isBody(g.parentNode)&&utils.indexOf(c,n.tagName)==-1&&(f&&"customstyle"==f||(n.getAttribute("dir")&&g.setAttribute("dir",n.getAttribute("dir")),n.style.cssText&&(g.style.cssText=n.style.cssText+";"+g.style.cssText),n.style.textAlign&&!g.style.textAlign&&(g.style.textAlign=n.style.textAlign),n.style.textIndent&&!g.style.textIndent&&(g.style.textIndent=n.style.textIndent),n.style.padding&&!g.style.padding&&(g.style.padding=n.style.padding)),e&&/h\d/i.test(n.tagName)&&!/h\d/i.test(g.tagName)?(domUtils.setAttributes(n,e),f&&"customstyle"==f&&e.style&&(n.style.cssText=e.style),domUtils.remove(g,!0),g=n):domUtils.remove(g.parentNode,!0)),l=utils.indexOf(c,n.tagName)!=-1?n:g,l=domUtils.getNextDomNode(l,!1,i)}return a.moveToBookmark(k).moveToBookmark(h)};a.setOpt("paragraph",{p:"",h1:"",h2:"",h3:"",h4:"",h5:"",h6:""}),a.commands.paragraph={execCommand:function(a,b,c,e){var f=this.selection.getRange();if(f.collapsed){var g=this.document.createTextNode("p");if(f.insertNode(g),browser.ie){var h=g.previousSibling;h&&domUtils.isWhitespace(h)&&domUtils.remove(h),h=g.nextSibling,h&&domUtils.isWhitespace(h)&&domUtils.remove(h)}}if(f=d(f,b,c,e),g&&(f.setStartBefore(g).collapse(!0),pN=g.parentNode,domUtils.remove(g),domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)&&domUtils.fillNode(this.document,pN)),browser.gecko&&f.collapsed&&1==f.startContainer.nodeType){var i=f.startContainer.childNodes[f.startOffset];i&&1==i.nodeType&&i.tagName.toLowerCase()==b&&f.setStart(i,0).collapse(!0)}return f.select(),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),"p h1 h2 h3 h4 h5 h6");return a?a.tagName.toLowerCase():""}}},function(){var a=domUtils.isBlockElm,b=function(a){return domUtils.filterNodeList(a.selection.getStartElementPath(),function(a){return a&&1==a.nodeType&&a.getAttribute("dir")})},c=function(c,d,e){var f,g=function(a){return 1==a.nodeType?!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)},h=b(d);if(h&&c.collapsed)return h.setAttribute("dir",e),c;f=c.createBookmark(),c.enlarge(!0);for(var i,j=c.createBookmark(),k=domUtils.getNextDomNode(j.start,!1,g),l=c.cloneRange();k&&!(domUtils.getPosition(k,j.end)&domUtils.POSITION_FOLLOWING);)if(3!=k.nodeType&&a(k))k=domUtils.getNextDomNode(k,!0,g);else{for(l.setStartBefore(k);k&&k!==j.end&&!a(k);)i=k,k=domUtils.getNextDomNode(k,!1,null,function(b){return!a(b)});l.setEndAfter(i);var m=l.getCommonAncestor();if(!domUtils.isBody(m)&&a(m))m.setAttribute("dir",e),k=m;else{var n=c.document.createElement("p");n.setAttribute("dir",e);var o=l.extractContents();n.appendChild(o),l.insertNode(n),k=n}k=domUtils.getNextDomNode(k,!1,g)}return c.moveToBookmark(j).moveToBookmark(f)};UE.commands.directionality={execCommand:function(a,b){var d=this.selection.getRange();if(d.collapsed){var e=this.document.createTextNode("d");d.insertNode(e)}return c(d,this,b),e&&(d.setStartBefore(e).collapse(!0),domUtils.remove(e)),d.select(),!0},queryCommandValue:function(){var a=b(this);return a?a.getAttribute("dir"):"ltr"}}}(),UE.plugins.horizontal=function(){var a=this;a.commands.horizontal={execCommand:function(a){var b=this;if(b.queryCommandState(a)!==-1){b.execCommand("insertHtml","
    ");var c=b.selection.getRange(),d=c.startContainer;if(1==d.nodeType&&!d.childNodes[c.startOffset]){var e;(e=d.childNodes[c.startOffset-1])&&1==e.nodeType&&"HR"==e.tagName&&("p"==b.options.enterTag?(e=b.document.createElement("p"),c.insertNode(e),c.setStart(e,0).setCursor()):(e=b.document.createElement("br"),c.insertNode(e),c.setStartBefore(e).setCursor()))}return!0}},queryCommandState:function(){return domUtils.filterNodeList(this.selection.getStartElementPath(),"table")?-1:0}},a.addListener("delkeydown",function(a,b){var c=this.selection.getRange();if(c.txtToElmBoundary(!0),domUtils.isStartInblock(c)){var d=c.startContainer,e=d.previousSibling;if(e&&domUtils.isTagNode(e,"hr"))return domUtils.remove(e),c.select(),domUtils.preventDefault(b),!0}})},UE.commands.time=UE.commands.date={execCommand:function(a,b){function c(a,b){var c=("0"+a.getHours()).slice(-2),d=("0"+a.getMinutes()).slice(-2),e=("0"+a.getSeconds()).slice(-2);return b=b||"hh:ii:ss",b.replace(/hh/gi,c).replace(/ii/gi,d).replace(/ss/gi,e)}function d(a,b){var c=("000"+a.getFullYear()).slice(-4),d=c.slice(-2),e=("0"+(a.getMonth()+1)).slice(-2),f=("0"+a.getDate()).slice(-2);return b=b||"yyyy-mm-dd",b.replace(/yyyy/gi,c).replace(/yy/gi,d).replace(/mm/gi,e).replace(/dd/gi,f)}var e=new Date;this.execCommand("insertHtml","time"==a?c(e,b):d(e,b))}},UE.plugins.rowspacing=function(){var a=this;a.setOpt({rowspacingtop:["5","10","15","20","25"],rowspacingbottom:["5","10","15","20","25"]}),a.commands.rowspacing={execCommand:function(a,b,c){return this.execCommand("paragraph","p",{style:"margin-"+c+":"+b+"px"}),!0},queryCommandValue:function(a,b){var c,d=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});return d?(c=domUtils.getComputedStyle(d,"margin-"+b).replace(/[^\d]/g,""),c?c:0):0}}},UE.plugins.lineheight=function(){var a=this;a.setOpt({lineheight:["1","1.5","1.75","2","3","4","5"]}),a.commands.lineheight={execCommand:function(a,b){return this.execCommand("paragraph","p",{style:"line-height:"+("1"==b?"normal":b+"em")}),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});if(a){var b=domUtils.getComputedStyle(a,"line-height");return"normal"==b?1:b.replace(/[^\d.]*/gi,"")}}}},UE.plugins.insertcode=function(){var a=this;a.ready(function(){utils.cssRule("pre","pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}",a.document)}),a.setOpt("insertcode",{as3:"ActionScript3",bash:"Bash/Shell",cpp:"C/C++",css:"Css",cf:"CodeFunction","c#":"C#",delphi:"Delphi",diff:"Diff",erlang:"Erlang",groovy:"Groovy",html:"Html",java:"Java",jfx:"JavaFx",js:"Javascript",pl:"Perl",php:"Php",plain:"Plain Text",ps:"PowerShell",python:"Python",ruby:"Ruby",scala:"Scala",sql:"Sql",vb:"Vb",xml:"Xml"}),a.commands.insertcode={execCommand:function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e)e.className="brush:"+b+";toolbar:false;";else{var f="";if(d.collapsed)f=browser.ie&&browser.ie11below?browser.version<=8?" ":"":"
    ";else{var g=d.extractContents(),h=c.document.createElement("div");h.appendChild(g),utils.each(UE.filterNode(UE.htmlparser(h.innerHTML.replace(/[\r\t]/g,"")),c.options.filterTxtRules).children,function(a){if(browser.ie&&browser.ie11below&&browser.version>8)"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""));else if(browser.ie&&browser.ie11below)"element"==a.type?"br"==a.tagName?f+="
    ":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="
    ":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/br>$/.test(f)||(f+="
    ")):f+=a.data+"
    ",!a.nextSibling()&&/
    $/.test(f)&&(f=f.replace(/
    $/,""));else if(f+="element"==a.type?dtd.$empty[a.tagName]?"":a.innerText():a.data,!/br\/?\s*>$/.test(f)){if(!a.nextSibling())return;f+="
    "}})}c.execCommand("inserthtml",'
    '+f+"
    ",!0),e=c.document.getElementById("coder"),domUtils.removeAttributes(e,"id");var i=e.previousSibling;i&&(3==i.nodeType&&1==i.nodeValue.length&&browser.ie&&6==browser.version||domUtils.isEmptyBlock(i))&&domUtils.remove(i);var d=c.selection.getRange();domUtils.isEmptyBlock(e)?d.setStart(e,0).setCursor(!1,!0):d.selectNodeContents(e).select()}},queryCommandValue:function(){var a=this.selection.getStartElementPath(),b="";return utils.each(a,function(a){if("PRE"==a.nodeName){var c=a.className.match(/brush:([^;]+)/);return b=c&&c[1]?c[1]:"",!1}}),b}},a.addInputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b=a.getNodesByTagName("br");if(b.length)return void(browser.ie&&browser.ie11below&&browser.version>8&&utils.each(b,function(a){var b=UE.uNode.createText("\n");a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}));if(!(browser.ie&&browser.ie11below&&browser.version>8)){var c=a.innerText().split(/\n/);a.innerHTML(""),utils.each(c,function(b){b.length&&a.appendChild(UE.uNode.createText(b)),a.appendChild(UE.uNode.createElement("br"))})}})}),a.addOutputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b="";utils.each(a.children,function(a){b+="text"==a.type?a.data.replace(/[ ]/g," ").replace(/\n$/,""):"br"==a.tagName?"\n":dtd.$empty[a.tagName]?a.innerText():""}),a.innerText(b.replace(/( |\n)+$/,""))})}),a.notNeedCodeQuery={help:1,undo:1,redo:1,source:1,print:1,searchreplace:1,fullscreen:1,preview:1,insertparagraph:1,elementpath:1,insertcode:1,inserthtml:1,selectall:1};a.queryCommandState;a.queryCommandState=function(a){var b=this;return!b.notNeedCodeQuery[a.toLowerCase()]&&b.selection&&b.queryCommandValue("insertcode")?-1:UE.Editor.prototype.queryCommandState.apply(this,arguments)},a.addListener("beforeenterkeydown",function(){var b=a.selection.getRange(),c=domUtils.findParentByTagName(b.startContainer,"pre",!0);if(c){if(a.fireEvent("saveScene"),b.collapsed||b.deleteContents(),!browser.ie||browser.ie9above){var c,d=a.document.createElement("br");b.insertNode(d).setStartAfter(d).collapse(!0); -var e=d.nextSibling;e||browser.ie&&!(browser.version>10)?b.setStartAfter(d):b.insertNode(d.cloneNode(!1)),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[\\s"+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([\\s"+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g&&(g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g))}b.collapse(!0).select(!0)}else if(browser.version>8){var i=a.document.createTextNode("\n"),j=b.startContainer;if(0==b.startOffset){var k=j.previousSibling;if(k){b.insertNode(i);var l=a.document.createTextNode(" ");b.setStartAfter(i).insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{b.insertNode(i).setStartAfter(i);var l=a.document.createTextNode(" ");j=b.startContainer.childNodes[b.startOffset],j&&!/^\n/.test(j.nodeValue)&&b.setStartBefore(i),b.insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{var d=a.document.createElement("br");b.insertNode(d),b.insertNode(a.document.createTextNode(domUtils.fillChar)),b.setStartAfter(d),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[ "+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([ "+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g)}b.collapse(!0).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("tabkeydown",function(b,c){var d=a.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){if(a.fireEvent("saveScene"),c.shiftKey);else if(d.collapsed){var f=a.document.createTextNode(" ");d.insertNode(f).setStartAfter(f).collapse(!0).select(!0)}else{for(var g=d.createBookmark(),h=g.start.previousSibling;h;){if(e.firstChild===h&&!domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h);break}if(domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h.nextSibling);break}h=h.previousSibling}var i=g.end;for(h=g.start.nextSibling,e.firstChild===g.start&&e.insertBefore(a.document.createTextNode(" "),h.nextSibling);h&&h!==i;){if(domUtils.isBr(h)&&h.nextSibling){if(h.nextSibling===i)break;e.insertBefore(a.document.createTextNode(" "),h.nextSibling)}h=h.nextSibling}d.moveToBookmark(g).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("beforeinserthtml",function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){d.collapsed||d.deleteContents();var f="";if(browser.ie&&browser.version>8){utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""))});var g=c.document.createTextNode(utils.html(f.replace(/ /g," ")));d.insertNode(g).selectNode(g).select()}else{var h=c.document.createDocumentFragment();utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||h.appendChild(c.document.createTextNode(utils.html(b.innerText().replace(/ /g," ")))):h.appendChild(c.document.createTextNode(utils.html(b.data.replace(/ /g," "))))}),"BR"!=h.lastChild.nodeName&&h.appendChild(c.document.createElement("br"))):h.appendChild(c.document.createTextNode(utils.html(a.data.replace(/ /g," ")))),a.nextSibling()||"BR"!=h.lastChild.nodeName||h.removeChild(h.lastChild)}),d.insertNode(h).select()}return!0}}),a.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(40==d){var e,f=c.selection.getRange(),g=f.startContainer;if(f.collapsed&&(e=domUtils.findParentByTagName(f.startContainer,"pre",!0))&&!e.nextSibling){for(var h=e.lastChild;h&&"BR"==h.nodeName;)h=h.previousSibling;(h===g||f.startContainer===e&&f.startOffset==e.childNodes.length)&&(c.execCommand("insertparagraph"),domUtils.preventDefault(b))}}}),a.addListener("delkeydown",function(b,c){var d=this.selection.getRange();d.txtToElmBoundary(!0);var e=d.startContainer;if(domUtils.isTagNode(e,"pre")&&d.collapsed&&domUtils.isStartInblock(d)){var f=a.document.createElement("p");return domUtils.fillNode(a.document,f),e.parentNode.insertBefore(f,e),domUtils.remove(e),d.setStart(f,0).setCursor(!1,!0),domUtils.preventDefault(c),!0}})},UE.commands.cleardoc={execCommand:function(a){var b=this,c=b.options.enterTag,d=b.selection.getRange();"br"==c?(b.body.innerHTML="
    ",d.setStart(b.body,0).setCursor()):(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",d.setStart(b.body.firstChild,0).setCursor(!1,!0)),setTimeout(function(){b.fireEvent("clearDoc")},0)}},UE.plugin.register("anchor",function(){return{bindEvents:{ready:function(){utils.cssRule("anchor",".anchorclass{background: url('"+this.options.themePath+this.options.theme+"/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}",this.document)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){var b;(b=a.getAttr("anchorname"))&&(a.tagName="a",a.setAttr({anchorname:"",name:b,"class":""}))})},inputRule:function(a){utils.each(a.getNodesByTagName("a"),function(a){var b;(b=a.getAttr("name"))&&!a.getAttr("href")&&(a.tagName="img",a.setAttr({anchorname:a.getAttr("name"),"class":"anchorclass"}),a.setAttr("name"))})},commands:{anchor:{execCommand:function(a,b){var c=this.selection.getRange(),d=c.getClosedNode();if(d&&d.getAttribute("anchorname"))b?d.setAttribute("anchorname",b):(c.setStartBefore(d).setCursor(),domUtils.remove(d));else if(b){var e=this.document.createElement("img");c.collapse(!0),domUtils.setAttributes(e,{anchorname:b,"class":"anchorclass"}),c.insertNode(e).setStartAfter(e).setCursor(!1,!0)}}}}}}),UE.plugins.wordcount=function(){var a=this;a.setOpt("wordCount",!0),a.addListener("contentchange",function(){a.fireEvent("wordcount")});var b;a.addListener("ready",function(){var a=this;domUtils.on(a.body,"keyup",function(c){var d=c.keyCode||c.which,e={16:1,18:1,20:1,37:1,38:1,39:1,40:1};d in e||(clearTimeout(b),b=setTimeout(function(){a.fireEvent("wordcount")},200))})})},UE.plugins.pagebreak=function(){function a(a){if(domUtils.isEmptyBlock(a)){for(var b,d=a.firstChild;d&&1==d.nodeType&&domUtils.isEmptyBlock(d);)b=d,d=d.firstChild;!b&&(b=a),domUtils.fillNode(c.document,b)}}function b(a){return a&&1==a.nodeType&&"HR"==a.tagName&&"pagebreak"==a.className}var c=this,d=["td"];c.setOpt("pageBreakTag","_ueditor_page_break_tag_"),c.ready(function(){utils.cssRule("pagebreak",".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}",c.document)}),c.addInputRule(function(a){a.traversal(function(a){if("text"==a.type&&a.data==c.options.pageBreakTag){var b=UE.uNode.createElement('
    ');a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.addOutputRule(function(a){utils.each(a.getNodesByTagName("hr"),function(a){if("pagebreak"==a.getAttr("class")){var b=UE.uNode.createText(c.options.pageBreakTag);a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.commands.pagebreak={execCommand:function(){var e=c.selection.getRange(),f=c.document.createElement("hr");domUtils.setAttributes(f,{"class":"pagebreak",noshade:"noshade",size:"5"}),domUtils.unSelectable(f);var g,h=domUtils.findParentByTagName(e.startContainer,d,!0),i=[];if(h)switch(h.tagName){case"TD":if(g=h.parentNode,g.previousSibling)g.parentNode.insertBefore(f,g),i=domUtils.findParents(f);else{var j=domUtils.findParentByTagName(g,"table");j.parentNode.insertBefore(f,j),i=domUtils.findParents(f,!0)}g=i[1],f!==g&&domUtils.breakParent(f,g),c.fireEvent("afteradjusttable",c.document)}else{if(!e.collapsed){e.deleteContents();for(var k=e.startContainer;!domUtils.isBody(k)&&domUtils.isBlockElm(k)&&domUtils.isEmptyNode(k);)e.setStartBefore(k).collapse(!0),domUtils.remove(k),k=e.startContainer}e.insertNode(f);for(var l,g=f.parentNode;!domUtils.isBody(g);)domUtils.breakParent(f,g),l=f.nextSibling,l&&domUtils.isEmptyBlock(l)&&domUtils.remove(l),g=f.parentNode;l=f.nextSibling;var m=f.previousSibling;if(b(m)?domUtils.remove(m):m&&a(m),l)b(l)?domUtils.remove(l):a(l),e.setEndAfter(f).collapse(!1);else{var n=c.document.createElement("p");f.parentNode.appendChild(n),domUtils.fillNode(c.document,n),e.setStart(n,0).collapse(!0)}e.select(!0)}}}},UE.plugin.register("wordimage",function(){var a=this,b=[];return{commands:{wordimage:{execCommand:function(){for(var b,c=domUtils.getElementsByTagName(a.body,"img"),d=[],e=0;b=c[e++];){var f=b.getAttribute("word_img");f&&d.push(f)}return d},queryCommandState:function(){b=domUtils.getElementsByTagName(a.body,"img");for(var c,d=0;c=b[d++];)if(c.getAttribute("word_img"))return 1;return-1},notNeedUndo:!0}},inputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c=b.attrs,d=parseInt(c.width)<128||parseInt(c.height)<43,e=a.options,f=e.UEDITOR_HOME_URL+"themes/default/images/spacer.gif";c.src&&/^(?:(file:\/+))/.test(c.src)&&b.setAttr({width:c.width,height:c.height,alt:c.alt,word_img:c.src,src:f,style:"background:url("+(d?e.themePath+e.theme+"/images/word.gif":e.langPath+e.lang+"/images/localimage.png")+") no-repeat center center;border:1px solid #ddd"})})}}}),UE.plugins.dragdrop=function(){var a=this;a.ready(function(){domUtils.on(this.body,"dragend",function(){var b=a.selection.getRange(),c=b.getClosedNode()||a.selection.getStart();if(c&&"IMG"==c.tagName){for(var d,e=c.previousSibling;(d=c.nextSibling)&&1==d.nodeType&&"SPAN"==d.tagName&&!d.firstChild;)domUtils.remove(d);(!e||1!=e.nodeType||domUtils.isEmptyBlock(e))&&e||d&&(!d||domUtils.isEmptyBlock(d))||(e&&"P"==e.tagName&&!domUtils.isEmptyBlock(e)?(e.appendChild(c),domUtils.moveChild(d,e),domUtils.remove(d)):d&&"P"==d.tagName&&!domUtils.isEmptyBlock(d)&&d.insertBefore(c,d.firstChild),e&&"P"==e.tagName&&domUtils.isEmptyBlock(e)&&domUtils.remove(e),d&&"P"==d.tagName&&domUtils.isEmptyBlock(d)&&domUtils.remove(d),b.selectNode(c).select(),a.fireEvent("saveScene"))}})}),a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(13==d){var e,f=a.selection.getRange();(e=domUtils.findParentByTagName(f.startContainer,"p",!0))&&"center"==domUtils.getComputedStyle(e,"text-align")&&domUtils.removeStyle(e,"text-align")}})},UE.plugins.undo=function(){function a(a,b){if(a.length!=b.length)return 0;for(var c=0,d=a.length;cf&&this.list.shift(),this.index=this.list.length-1,this.clearKey(),this.update())},this.update=function(){this.hasRedo=!!this.list[this.index+1],this.hasUndo=!!this.list[this.index-1]},this.reset=function(){this.list=[],this.index=0,this.hasUndo=!1,this.hasRedo=!1,this.clearKey()},this.clearKey=function(){m=0,k=null}}var d,e=this,f=e.options.maxUndoCount||20,g=e.options.maxInputCount||20,h=new RegExp(domUtils.fillChar+"|","gi"),i={ol:1,ul:1,table:1,tbody:1,tr:1,body:1},j=e.options.autoClearEmptyNode;e.undoManger=new c,e.undoManger.editor=e,e.addListener("saveScene",function(){var a=Array.prototype.splice.call(arguments,1);this.undoManger.save.apply(this.undoManger,a)}),e.addListener("reset",function(a,b){b||this.undoManger.reset()}),e.commands.redo=e.commands.undo={execCommand:function(a){this.undoManger[a]()},queryCommandState:function(a){return this.undoManger["has"+("undo"==a.toLowerCase()?"Undo":"Redo")]?0:-1},notNeedUndo:1};var k,l={16:1,17:1,18:1,37:1,38:1,39:1,40:1},m=0,n=!1;e.addListener("ready",function(){domUtils.on(this.body,"compositionstart",function(){n=!0}),domUtils.on(this.body,"compositionend",function(){n=!1})}),e.addshortcutkey({Undo:"ctrl+90",Redo:"ctrl+89"});var o=!0;e.addListener("keydown",function(a,b){function c(a){a.undoManger.save(!1,!0),a.fireEvent("selectionchange")}var e=this,f=b.keyCode||b.which;if(!(l[f]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;if(!e.selection.getRange().collapsed)return e.undoManger.save(!1,!0),void(o=!1);0==e.undoManger.list.length&&e.undoManger.save(!0),clearTimeout(d),d=setTimeout(function(){if(n)var a=setInterval(function(){n||(c(e),clearInterval(a))},300);else c(e)},200),k=f,m++,m>=g&&c(e)}}),e.addListener("keyup",function(a,b){var c=b.keyCode||b.which;if(!(l[c]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;o||(this.undoManger.save(!1,!0),o=!0)}}),e.stopCmdUndo=function(){e.__hasEnterExecCommand=!0},e.startCmdUndo=function(){e.__hasEnterExecCommand=!1}},UE.plugin.register("copy",function(){function a(){ZeroClipboard.config({debug:!1,swfPath:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.swf"});var a=b.zeroclipboard=new ZeroClipboard;a.on("copy",function(a){var c=a.client,d=b.selection.getRange(),e=document.createElement("div");e.appendChild(d.cloneContents()),c.setText(e.innerText||e.textContent),c.setHtml(e.innerHTML),d.select()}),a.on("mouseover mouseout",function(a){var b=a.target;"mouseover"==a.type?domUtils.addClass(b,"edui-state-hover"):"mouseout"==a.type&&domUtils.removeClasses(b,"edui-state-hover")}),a.on("wrongflash noflash",function(){ZeroClipboard.destroy()})}var b=this;return{bindEvents:{ready:function(){browser.ie||(window.ZeroClipboard?a():utils.loadFile(document,{src:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.js",tag:"script",type:"text/javascript",defer:"defer"},function(){a()}))}},commands:{copy:{execCommand:function(a){b.document.execCommand("copy")||alert(b.getLang("copymsg"))}}}}}),UE.plugins.paste=function(){function a(a){var b=this.document;if(!b.getElementById("baidu_pastebin")){var c=this.selection.getRange(),d=c.createBookmark(),e=b.createElement("div");e.id="baidu_pastebin",browser.webkit&&e.appendChild(b.createTextNode(domUtils.fillChar+domUtils.fillChar)),b.body.appendChild(e),d.start.style.display="",e.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:"+domUtils.getXY(d.start).y+"px",c.selectNodeContents(e).select(!0),setTimeout(function(){if(browser.webkit)for(var f,g=0,h=b.querySelectorAll("#baidu_pastebin");f=h[g++];){if(!domUtils.isEmptyNode(f)){e=f;break}domUtils.remove(f)}try{e.parentNode.removeChild(e)}catch(i){}c.moveToBookmark(d).select(!0),a(e)},0)}}function b(a){return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi,function(a,b,c,d){return c=c.toLowerCase(),{img:1}[c]?a:(d=d.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi,function(a,b,c){return{src:1,href:1,name:1}[b.toLowerCase()]?b+"="+c+" ":""}),{span:1,div:1}[c]?"":"<"+b+c+" "+utils.trim(d)+">")})}function c(a){var c;if(a.firstChild){for(var h,i=domUtils.getElementsByTagName(a,"span"),j=0;h=i[j++];)"_baidu_cut_start"!=h.id&&"_baidu_cut_end"!=h.id||domUtils.remove(h);if(browser.webkit){for(var k,l=a.querySelectorAll("div br"),j=0;k=l[j++];){var m=k.parentNode;"DIV"==m.tagName&&1==m.childNodes.length&&(m.innerHTML="


    ",domUtils.remove(m))}for(var n,o=a.querySelectorAll("#baidu_pastebin"),j=0;n=o[j++];){var p=d.document.createElement("p");for(n.parentNode.insertBefore(p,n);n.firstChild;)p.appendChild(n.firstChild);domUtils.remove(n)}for(var q,r=a.querySelectorAll("meta"),j=0;q=r[j++];)domUtils.remove(q);var l=a.querySelectorAll("br");for(j=0;q=l[j++];)/^apple-/i.test(q.className)&&domUtils.remove(q)}if(browser.gecko){var s=a.querySelectorAll("[_moz_dirty]");for(j=0;q=s[j++];)q.removeAttribute("_moz_dirty")}if(!browser.ie)for(var q,t=a.querySelectorAll("span.Apple-style-span"),j=0;q=t[j++];)domUtils.remove(q,!0);c=a.innerHTML,c=UE.filterWord(c);var u=UE.htmlparser(c);if(d.options.filterRules&&UE.filterNode(u,d.options.filterRules),d.filterInputRule(u),browser.webkit){var v=u.lastChild();v&&"element"==v.type&&"br"==v.tagName&&u.removeChild(v),utils.each(d.body.querySelectorAll("div"),function(a){domUtils.isEmptyBlock(a)&&domUtils.remove(a,!0)})}if(c={html:u.toHtml()},d.fireEvent("beforepaste",c,u),!c.html)return;u=UE.htmlparser(c.html,!0),1===d.queryCommandState("pasteplain")?d.execCommand("insertHtml",UE.filterNode(u,d.options.filterTxtRules).toHtml(),!0):(UE.filterNode(u,d.options.filterTxtRules),e=u.toHtml(),f=c.html,g=d.selection.getRange().createAddress(!0),d.execCommand("insertHtml",d.getOpt("retainOnlyLabelPasted")===!0?b(f):f,!0)),d.fireEvent("afterpaste",c)}}var d=this;d.setOpt({retainOnlyLabelPasted:!1});var e,f,g;d.addListener("pasteTransfer",function(a,c){if(g&&e&&f&&e!=f){var h=d.selection.getRange();if(h.moveToAddress(g,!0),!h.collapsed){for(;!domUtils.isBody(h.startContainer);){var i=h.startContainer;if(1==i.nodeType){if(i=i.childNodes[h.startOffset],!i){h.setStartBefore(h.startContainer);continue}var j=i.previousSibling;j&&3==j.nodeType&&new RegExp("^[\n\r\t "+domUtils.fillChar+"]*$").test(j.nodeValue)&&h.setStartBefore(j)}if(0!=h.startOffset)break;h.setStartBefore(h.startContainer)}for(;!domUtils.isBody(h.endContainer);){var k=h.endContainer;if(1==k.nodeType){if(k=k.childNodes[h.endOffset],!k){h.setEndAfter(h.endContainer);continue}var l=k.nextSibling;l&&3==l.nodeType&&new RegExp("^[\n\r\t"+domUtils.fillChar+"]*$").test(l.nodeValue)&&h.setEndAfter(l)}if(h.endOffset!=h.endContainer[3==h.endContainer.nodeType?"nodeValue":"childNodes"].length)break;h.setEndAfter(h.endContainer)}}h.deleteContents(),h.select(!0),d.__hasEnterExecCommand=!0;var m=f;2===c?m=b(m):c&&(m=e),d.execCommand("inserthtml",m,!0),d.__hasEnterExecCommand=!1;for(var n=d.selection.getRange();!domUtils.isBody(n.startContainer)&&!n.startOffset&&n.startContainer[3==n.startContainer.nodeType?"nodeValue":"childNodes"].length;)n.setStartBefore(n.startContainer);var o=n.createAddress(!0);g.endAddress=o.startAddress}}),d.addListener("ready",function(){domUtils.on(d.body,"cut",function(){var a=d.selection.getRange();!a.collapsed&&d.undoManger&&d.undoManger.save()}),domUtils.on(d.body,browser.ie||browser.opera?"keydown":"paste",function(b){(!browser.ie&&!browser.opera||(b.ctrlKey||b.metaKey)&&"86"==b.keyCode)&&a.call(d,function(a){c(a)})})}),d.commands.paste={execCommand:function(b){browser.ie?(a.call(d,function(a){c(a)}),d.document.execCommand("paste")):alert(d.getLang("pastemsg"))}}},UE.plugins.pasteplain=function(){var a=this;a.setOpt({pasteplain:!1,filterTxtRules:function(){function a(a){a.tagName="p",a.setStyle()}function b(a){a.parentNode.removeChild(a,!0)}return{"-":"script style object iframe embed input select",p:{$:{}},br:{$:{}},div:function(a){for(var b,c=UE.uNode.createElement("p");b=a.firstChild();)"text"!=b.type&&UE.dom.dtd.$block[b.tagName]?c.firstChild()?(a.parentNode.insertBefore(c,a),c=UE.uNode.createElement("p")):a.parentNode.insertBefore(b,a):c.appendChild(b);c.firstChild()&&a.parentNode.insertBefore(c,a),a.parentNode.removeChild(a)},ol:b,ul:b,dl:b,dt:b,dd:b,li:b,caption:a,th:a,tr:a,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,td:function(a){var b=!!a.innerText();b&&a.parentNode.insertAfter(UE.uNode.createText("    "),a),a.parentNode.removeChild(a,a.innerText())}}}()});var b=a.options.pasteplain;a.commands.pasteplain={queryCommandState:function(){return b?1:0},execCommand:function(){b=0|!b},notNeedUndo:1}},UE.plugins.list=function(){function a(a){var b=[];for(var c in a)b.push(c);return b}function b(a){var b=a.className;return domUtils.hasClass(a,/custom_/)?b.match(/custom_(\w+)/)[1]:domUtils.getStyle(a,"list-style-type")}function c(a,c){utils.each(domUtils.getElementsByTagName(a,"ol ul"),function(f){if(domUtils.inDoc(f,a)){var g=f.parentNode;if(g.tagName==f.tagName){var h=b(f)||("OL"==f.tagName?"decimal":"disc"),i=b(g)||("OL"==g.tagName?"decimal":"disc");if(h==i){var l=utils.indexOf(k[f.tagName],h);l=l+1==k[f.tagName].length?0:l+1,e(f,k[f.tagName][l])}}var m=0,n=2;domUtils.hasClass(f,/custom_/)?/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)||(n=1):/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)&&(n=3);var o=domUtils.getStyle(f,"list-style-type");o&&(f.style.cssText="list-style-type:"+o),f.className=utils.trim(f.className.replace(/list-paddingleft-\w+/,""))+" list-paddingleft-"+n,utils.each(domUtils.getElementsByTagName(f,"li"),function(a){if(a.style.cssText&&(a.style.cssText=""),!a.firstChild)return void domUtils.remove(a);if(a.parentNode===f){if(m++,domUtils.hasClass(f,/custom_/)){var c=1,d=b(f);if("OL"==f.tagName){if(d)switch(d){case"cn":case"cn1":case"cn2":m>10&&(m%10==0||m>10&&m<20)?c=2:m>20&&(c=3);break;case"num2":m>9&&(c=2)}a.className="list-"+j[d]+m+" list-"+d+"-paddingleft-"+c}else a.className="list-"+j[d]+" list-"+d+"-paddingleft"}else a.className=a.className.replace(/list-[\w\-]+/gi,"");var e=a.getAttribute("class");null===e||e.replace(/\s/g,"")||domUtils.removeAttributes(a,"class")}}),!c&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getStyle(f,"list-style-type"),!0)}})}function d(a,d,e,f){var g=a.nextSibling;g&&1==g.nodeType&&g.tagName.toLowerCase()==d&&(b(g)||domUtils.getStyle(g,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&(domUtils.moveChild(g,a),0==g.childNodes.length&&domUtils.remove(g)),g&&domUtils.isFillChar(g)&&domUtils.remove(g);var h=a.previousSibling;h&&1==h.nodeType&&h.tagName.toLowerCase()==d&&(b(h)||domUtils.getStyle(h,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&domUtils.moveChild(a,h),h&&domUtils.isFillChar(h)&&domUtils.remove(h),!f&&domUtils.isEmptyBlock(a)&&domUtils.remove(a),b(a)&&c(a.ownerDocument,!0)}function e(a,b){j[b]&&(a.className="custom_"+b);try{domUtils.setStyle(a,"list-style-type",b)}catch(c){}}function f(a){var b=a.previousSibling;b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b),b=a.nextSibling,b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b)}function g(a){for(;a&&!domUtils.isBody(a);){if("TABLE"==a.nodeName)return null;if("LI"==a.nodeName)return a;a=a.parentNode}}var h=this,i={TD:1,PRE:1,BLOCKQUOTE:1},j={cn:"cn-1-",cn1:"cn-2-",cn2:"cn-3-",num:"num-1-",num1:"num-2-",num2:"num-3-",dash:"dash",dot:"dot"};h.setOpt({autoTransWordToList:!1,insertorderedlist:{num:"",num1:"",num2:"",cn:"",cn1:"",cn2:"",decimal:"","lower-alpha":"","lower-roman":"","upper-alpha":"","upper-roman":""},insertunorderedlist:{circle:"",disc:"",square:"",dash:"",dot:""},listDefaultPaddingLeft:"30",listiconpath:"http://bs.baidu.com/listicon/",maxListLevel:-1,disablePInList:!1});var k={OL:a(h.options.insertorderedlist),UL:a(h.options.insertunorderedlist)},l=h.options.listiconpath;for(var m in j)h.options.insertorderedlist.hasOwnProperty(m)||h.options.insertunorderedlist.hasOwnProperty(m)||delete j[m];h.ready(function(){var a=[];for(var b in j){if("dash"==b||"dot"==b)a.push("li.list-"+j[b]+"{background-image:url("+l+j[b]+".gif)}"),a.push("ul.custom_"+b+"{list-style:none;}ul.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}");else{for(var c=0;c<99;c++)a.push("li.list-"+j[b]+c+"{background-image:url("+l+"list-"+j[b]+c+".gif)}");a.push("ol.custom_"+b+"{list-style:none;}ol.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}")}switch(b){case"cn":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn1":a.push("li.list-"+b+"-paddingleft-1{padding-left:30px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn2":a.push("li.list-"+b+"-paddingleft-1{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:55px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:68px}");break;case"num":case"num1":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}");break;case"num2":a.push("li.list-"+b+"-paddingleft-1{padding-left:35px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}");break;case"dash":a.push("li.list-"+b+"-paddingleft{padding-left:35px}");break;case"dot":a.push("li.list-"+b+"-paddingleft{padding-left:20px}")}}a.push(".list-paddingleft-1{padding-left:0}"),a.push(".list-paddingleft-2{padding-left:"+h.options.listDefaultPaddingLeft+"px}"),a.push(".list-paddingleft-3{padding-left:"+2*h.options.listDefaultPaddingLeft+"px}"),utils.cssRule("list","ol,ul{margin:0;pading:0;"+(browser.ie?"":"width:95%")+"}li{clear:both;}"+a.join("\n"),h.document)}),h.ready(function(){domUtils.on(h.body,"cut",function(){setTimeout(function(){var a,b=h.selection.getRange();if(!b.collapsed&&(a=domUtils.findParentByTagName(b.startContainer,"li",!0))&&!a.nextSibling&&domUtils.isEmptyBlock(a)){var c,d=a.parentNode;if(c=d.previousSibling)domUtils.remove(d),b.setStartAtLast(c).collapse(!0),b.select(!0);else if(c=d.nextSibling)domUtils.remove(d),b.setStartAtFirst(c).collapse(!0),b.select(!0);else{var e=h.document.createElement("p");domUtils.fillNode(h.document,e),d.parentNode.insertBefore(e,d),domUtils.remove(d),b.setStart(e,0).collapse(!0),b.select(!0)}}})})}),h.addListener("beforepaste",function(a,c){var d,e=this,f=e.selection.getRange(),g=UE.htmlparser(c.html,!0);if(d=domUtils.findParentByTagName(f.startContainer,"li",!0)){var h=d.parentNode,i="OL"==h.tagName?"ul":"ol";utils.each(g.getNodesByTagName(i),function(c){if(c.tagName=h.tagName,c.setAttr(),c.parentNode===g)a=b(h)||("OL"==h.tagName?"decimal":"disc");else{var d=c.parentNode.getAttr("class");a=d&&/custom_/.test(d)?d.match(/custom_(\w+)/)[1]:c.parentNode.getStyle("list-style-type"),a||(a="OL"==h.tagName?"decimal":"disc")}var e=utils.indexOf(k[h.tagName],a);c.parentNode!==g&&(e=e+1==k[h.tagName].length?0:e+1);var f=k[h.tagName][e];j[f]?c.setAttr("class","custom_"+f):c.setStyle("list-style-type",f)})}c.html=g.toHtml()}),h.getOpt("disablePInList")===!0&&h.addOutputRule(function(a){utils.each(a.getNodesByTagName("li"),function(a){var b=[],c=0;utils.each(a.children,function(d){if("p"==d.tagName){for(var e;e=d.children.pop();)b.splice(c,0,e),e.parentNode=a,lastNode=e;if(e=b[b.length-1],!e||"element"!=e.type||"br"!=e.tagName){var f=UE.uNode.createElement("br");f.parentNode=a,b.push(f)}c=b.length}}),b.length&&(a.children=b)})}),h.addInputRule(function(a){function b(a,b){var e=b.firstChild();if(e&&"element"==e.type&&"span"==e.tagName&&/Wingdings|Symbol/.test(e.getStyle("font-family"))){for(var f in d)if(d[f]==e.data)return f;return"disc"}for(var f in c)if(c[f].test(a))return f}if(utils.each(a.getNodesByTagName("li"),function(a){for(var b,c=UE.uNode.createElement("p"),d=0;b=a.children[d];)"text"==b.type||dtd.p[b.tagName]?c.appendChild(b):c.firstChild()?(a.insertBefore(c,b),c=UE.uNode.createElement("p"),d+=2):d++;(c.firstChild()&&!c.parentNode||!a.firstChild())&&a.appendChild(c),c.firstChild()||c.innerHTML(browser.ie?" ":"
    ");var e=a.firstChild(),f=e.lastChild();f&&"text"==f.type&&/^\s*$/.test(f.data)&&e.removeChild(f)}),h.options.autoTransWordToList){var c={num1:/^\d+\)/,decimal:/^\d+\./,"lower-alpha":/^[a-z]+\)/,"upper-alpha":/^[A-Z]+\./,cn:/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,cn2:/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/},d={square:"n"};utils.each(a.getNodesByTagName("p"),function(a){function d(a,b,d){if("ol"==a.tagName)if(browser.ie){var e=b.firstChild();"element"==e.type&&"span"==e.tagName&&c[d].test(e.innerText())&&b.removeChild(e)}else b.innerHTML(b.innerHTML().replace(c[d],""));else b.removeChild(b.firstChild());var f=UE.uNode.createElement("li");f.appendChild(b),a.appendChild(f)}if("MsoListParagraph"==a.getAttr("class")){a.setStyle("margin",""),a.setStyle("margin-left",""),a.setAttr("class","");var e,f=a,g=a;if("li"!=a.parentNode.tagName&&(e=b(a.innerText(),a))){var i=UE.uNode.createElement(h.options.insertorderedlist.hasOwnProperty(e)?"ol":"ul");for(j[e]?i.setAttr("class","custom_"+e):i.setStyle("list-style-type",e);a&&"li"!=a.parentNode.tagName&&b(a.innerText(),a);)f=a.nextSibling(),f||a.parentNode.insertBefore(i,a),d(i,a,e),a=f;!i.parentNode&&a&&a.parentNode&&a.parentNode.insertBefore(i,a)}var k=g.firstChild();k&&"element"==k.type&&"span"==k.tagName&&/^\s*( )+\s*$/.test(k.innerText())&&k.parentNode.removeChild(k)}})}}),h.addListener("contentchange",function(){c(h.document)}),h.addListener("keydown",function(a,b){function c(){b.preventDefault?b.preventDefault():b.returnValue=!1,h.fireEvent("contentchange"),h.undoManger&&h.undoManger.save()}function d(a,b){for(;a&&!domUtils.isBody(a);){if(b(a))return null;if(1==a.nodeType&&/[ou]l/i.test(a.tagName))return a;a=a.parentNode}return null}var e=b.keyCode||b.which;if(13==e&&!b.shiftKey){var g=h.selection.getRange(),i=domUtils.findParent(g.startContainer,function(a){return domUtils.isBlockElm(a)},!0),j=domUtils.findParentByTagName(g.startContainer,"li",!0);if(i&&"PRE"!=i.tagName&&!j){var k=i.innerHTML.replace(new RegExp(domUtils.fillChar,"g"),"");/^\s*1\s*\.[^\d]/.test(k)&&(i.innerHTML=k.replace(/^\s*1\s*\./,""),g.setStartAtLast(i).collapse(!0).select(),h.__hasEnterExecCommand=!0,h.execCommand("insertorderedlist"),h.__hasEnterExecCommand=!1)}var l=h.selection.getRange(),m=d(l.startContainer,function(a){return"TABLE"==a.tagName}),n=l.collapsed?m:d(l.endContainer,function(a){return"TABLE"==a.tagName});if(m&&n&&m===n){if(!l.collapsed){if(m=domUtils.findParentByTagName(l.startContainer,"li",!0),n=domUtils.findParentByTagName(l.endContainer,"li",!0),!m||!n||m!==n){var o=l.cloneRange(),p=o.collapse(!1).createBookmark();l.deleteContents(),o.moveToBookmark(p);var j=domUtils.findParentByTagName(o.startContainer,"li",!0);return f(j),o.select(),void c()}if(l.deleteContents(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isEmptyBlock(j))return v=j.previousSibling,next=j.nextSibling,s=h.document.createElement("p"),domUtils.fillNode(h.document,s),q=j.parentNode,v&&next?(l.setStart(next,0).collapse(!0).select(!0),domUtils.remove(j)):((v||next)&&v?j.parentNode.parentNode.insertBefore(s,q.nextSibling):q.parentNode.insertBefore(s,q),domUtils.remove(j),q.firstChild||domUtils.remove(q), -l.setStart(s,0).setCursor()),void c()}if(j=domUtils.findParentByTagName(l.startContainer,"li",!0)){if(domUtils.isEmptyBlock(j)){p=l.createBookmark();var q=j.parentNode;if(j!==q.lastChild?(domUtils.breakParent(j,q),f(j)):(q.parentNode.insertBefore(j,q.nextSibling),domUtils.isEmptyNode(q)&&domUtils.remove(q)),!dtd.$list[j.parentNode.tagName])if(domUtils.isBlockElm(j.firstChild))domUtils.remove(j,!0);else{for(s=h.document.createElement("p"),j.parentNode.insertBefore(s,j);j.firstChild;)s.appendChild(j.firstChild);domUtils.remove(j)}l.moveToBookmark(p).select()}else{var r=j.firstChild;if(!r||!domUtils.isBlockElm(r)){var s=h.document.createElement("p");for(!j.firstChild&&domUtils.fillNode(h.document,s);j.firstChild;)s.appendChild(j.firstChild);j.appendChild(s),r=s}var t=h.document.createElement("span");l.insertNode(t),domUtils.breakParent(t,j);var u=t.nextSibling;r=u.firstChild,r||(s=h.document.createElement("p"),domUtils.fillNode(h.document,s),u.appendChild(s),r=s),domUtils.isEmptyNode(r)&&(r.innerHTML="",domUtils.fillNode(h.document,r)),l.setStart(r,0).collapse(!0).shrinkBoundary().select(),domUtils.remove(t);var v=u.previousSibling;v&&domUtils.isEmptyBlock(v)&&(v.innerHTML="

    ",domUtils.fillNode(h.document,v.firstChild))}c()}}}if(8==e&&(l=h.selection.getRange(),l.collapsed&&domUtils.isStartInblock(l)&&(o=l.cloneRange().trimBoundary(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isStartInblock(o)))){if(m=domUtils.findParentByTagName(l.startContainer,"p",!0),m&&m!==j.firstChild){var q=domUtils.findParentByTagName(m,["ol","ul"]);return domUtils.breakParent(m,q),f(m),h.fireEvent("contentchange"),l.setStart(m,0).setCursor(!1,!0),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&(v=j.previousSibling)){if(46==e&&j.childNodes.length)return;if(dtd.$list[v.tagName]&&(v=v.lastChild),h.undoManger&&h.undoManger.save(),r=j.firstChild,domUtils.isBlockElm(r))if(domUtils.isEmptyNode(r))for(v.appendChild(r),l.setStart(r,0).setCursor(!1,!0);j.firstChild;)v.appendChild(j.firstChild);else t=h.document.createElement("span"),l.insertNode(t),domUtils.isEmptyBlock(v)&&(v.innerHTML=""),domUtils.moveChild(j,v),l.setStartBefore(t).collapse(!0).select(!0),domUtils.remove(t);else if(domUtils.isEmptyNode(j)){var s=h.document.createElement("p");v.appendChild(s),l.setStart(s,0).setCursor()}else for(l.setEnd(v,v.childNodes.length).collapse().select(!0);j.firstChild;)v.appendChild(j.firstChild);return domUtils.remove(j),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&!j.previousSibling){var q=j.parentNode,p=l.createBookmark();if(domUtils.isTagNode(q.parentNode,"ol ul"))q.parentNode.insertBefore(j,q),domUtils.isEmptyNode(q)&&domUtils.remove(q);else{for(;j.firstChild;)q.parentNode.insertBefore(j.firstChild,q);domUtils.remove(j),domUtils.isEmptyNode(q)&&domUtils.remove(q)}return l.moveToBookmark(p).setCursor(!1,!0),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}}}),h.addListener("keyup",function(a,c){var e=c.keyCode||c.which;if(8==e){var f,g=h.selection.getRange();(f=domUtils.findParentByTagName(g.startContainer,["ol","ul"],!0))&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getComputedStyle(f,"list-style-type"),!0)}}),h.addListener("tabkeydown",function(){function a(a){if(h.options.maxListLevel!=-1){for(var b=a.parentNode,c=0;/[ou]l/i.test(b.tagName);)c++,b=b.parentNode;if(c>=h.options.maxListLevel)return!0}}var c=h.selection.getRange(),f=domUtils.findParentByTagName(c.startContainer,"li",!0);if(f){var g;if(!c.collapsed){h.fireEvent("saveScene"),g=c.createBookmark();for(var i,j,l=0,m=domUtils.findParents(f);j=m[l++];)if(domUtils.isTagNode(j,"ol ul")){i=j;break}var n=f;if(g.end)for(;n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);)if(a(n))n=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});else{var o=n.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type")),r=q+1==k[p.tagName].length?0:q+1,s=k[p.tagName][r];for(e(p,s),o.insertBefore(p,n);n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);){if(f=n.nextSibling,p.appendChild(n),!f||domUtils.isTagNode(f,"ol ul")){if(f)for(;(f=f.firstChild)&&"LI"!=f.tagName;);else f=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});break}n=f}d(p,p.tagName.toLowerCase(),s),n=f}return h.fireEvent("contentchange"),c.moveToBookmark(g).select(),!0}if(a(f))return!0;var o=f.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type"));q=q+1==k[p.tagName].length?0:q+1;var s=k[p.tagName][q];if(e(p,s),domUtils.isStartInblock(c))return h.fireEvent("saveScene"),g=c.createBookmark(),o.insertBefore(p,f),p.appendChild(f),d(p,p.tagName.toLowerCase(),s),h.fireEvent("contentchange"),c.moveToBookmark(g).select(!0),!0}}),h.commands.insertorderedlist=h.commands.insertunorderedlist={execCommand:function(a,c){c||(c="insertorderedlist"==a.toLowerCase()?"decimal":"disc");var f=this,h=this.selection.getRange(),j=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},k="insertorderedlist"==a.toLowerCase()?"ol":"ul",l=f.document.createDocumentFragment();h.adjustmentBoundary().shrinkBoundary();var m,n,o,p,q=h.createBookmark(!0),r=g(f.document.getElementById(q.start)),s=0,t=g(f.document.getElementById(q.end)),u=0;if(r||t){if(r&&(m=r.parentNode),q.end||(t=r),t&&(n=t.parentNode),m===n){for(;r!==t;){if(p=r,r=r.nextSibling,!domUtils.isBlockElm(p.firstChild)){for(var v=f.document.createElement("p");p.firstChild;)v.appendChild(p.firstChild);p.appendChild(v)}l.appendChild(p)}if(p=f.document.createElement("span"),m.insertBefore(p,t),!domUtils.isBlockElm(t.firstChild)){for(v=f.document.createElement("p");t.firstChild;)v.appendChild(t.firstChild);t.appendChild(v)}l.appendChild(t),domUtils.breakParent(p,m),domUtils.isEmptyNode(p.previousSibling)&&domUtils.remove(p.previousSibling),domUtils.isEmptyNode(p.nextSibling)&&domUtils.remove(p.nextSibling);var w=b(m)||domUtils.getComputedStyle(m,"list-style-type")||("insertorderedlist"==a.toLowerCase()?"decimal":"disc");if(m.tagName.toLowerCase()==k&&w==c){for(var x,y=0,z=f.document.createDocumentFragment();x=l.firstChild;)if(domUtils.isTagNode(x,"ol ul"))z.appendChild(x);else for(;x.firstChild;)z.appendChild(x.firstChild),domUtils.remove(x);p.parentNode.insertBefore(z,p)}else o=f.document.createElement(k),e(o,c),o.appendChild(l),p.parentNode.insertBefore(o,p);return domUtils.remove(p),o&&d(o,k,c),void h.moveToBookmark(q).select()}if(r){for(;r;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(var A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);if(B)l.appendChild(A);else{var C=f.document.createElement("p");C.appendChild(A),l.appendChild(C)}domUtils.remove(r)}r=p}m.parentNode.insertBefore(l,m.nextSibling),domUtils.isEmptyNode(m)?(h.setStartBefore(m),domUtils.remove(m)):h.setStartAfter(m),s=1}if(t&&domUtils.inDoc(n,f.document)){for(r=n.firstChild;r&&r!==t;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);B?l.appendChild(A):(C=f.document.createElement("p"),C.appendChild(A),l.appendChild(C)),domUtils.remove(r)}r=p}var D=domUtils.createElement(f.document,"div",{tmpDiv:1});domUtils.moveChild(t,D),l.appendChild(D),domUtils.remove(t),n.parentNode.insertBefore(l,n),h.setEndBefore(n),domUtils.isEmptyNode(n)&&domUtils.remove(n),u=1}}s||h.setStartBefore(f.document.getElementById(q.start)),q.end&&!u&&h.setEndAfter(f.document.getElementById(q.end)),h.enlarge(!0,function(a){return i[a.tagName]}),l=f.document.createDocumentFragment();for(var E,F=h.createBookmark(),G=domUtils.getNextDomNode(F.start,!1,j),H=h.cloneRange(),I=domUtils.isBlockElm;G&&G!==F.end&&domUtils.getPosition(G,F.end)&domUtils.POSITION_PRECEDING;)if(3==G.nodeType||dtd.li[G.tagName]){if(1==G.nodeType&&dtd.$list[G.tagName]){for(;G.firstChild;)l.appendChild(G.firstChild);E=domUtils.getNextDomNode(G,!1,j),domUtils.remove(G),G=E;continue}for(E=G,H.setStartBefore(G);G&&G!==F.end&&(!I(G)||domUtils.isBookmarkNode(G));)E=G,G=domUtils.getNextDomNode(G,!1,null,function(a){return!i[a.tagName]});G&&I(G)&&(p=domUtils.getNextDomNode(E,!1,j),p&&domUtils.isBookmarkNode(p)&&(G=domUtils.getNextDomNode(p,!1,j),E=p)),H.setEndAfter(E),G=domUtils.getNextDomNode(E,!1,j);var J=h.document.createElement("li");if(J.appendChild(H.extractContents()),domUtils.isEmptyNode(J)){for(var E=h.document.createElement("p");J.firstChild;)E.appendChild(J.firstChild);J.appendChild(E)}l.appendChild(J)}else G=domUtils.getNextDomNode(G,!0,j);h.moveToBookmark(F).collapse(!0),o=f.document.createElement(k),e(o,c),o.appendChild(l),h.insertNode(o),d(o,k,c);for(var x,y=0,K=domUtils.getElementsByTagName(o,"div");x=K[y++];)x.getAttribute("tmpDiv")&&domUtils.remove(x,!0);h.moveToBookmark(q).select()},queryCommandState:function(a){for(var b,c="insertorderedlist"==a.toLowerCase()?"ol":"ul",d=this.selection.getStartElementPath(),e=0;b=d[e++];){if("TABLE"==b.nodeName)return 0;if(c==b.nodeName.toLowerCase())return 1}return 0},queryCommandValue:function(a){for(var c,d,e="insertorderedlist"==a.toLowerCase()?"ol":"ul",f=this.selection.getStartElementPath(),g=0;d=f[g++];){if("TABLE"==d.nodeName){c=null;break}if(e==d.nodeName.toLowerCase()){c=d;break}}return c?b(c)||domUtils.getComputedStyle(c,"list-style-type"):null}}},function(){var a={textarea:function(a,b){var c=b.ownerDocument.createElement("textarea");return c.style.cssText="position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;",browser.ie&&browser.version<8&&(c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px",b.onresize=function(){c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px"}),b.appendChild(c),{setContent:function(a){c.value=a},getContent:function(){return c.value},select:function(){var a;browser.ie?(a=c.createTextRange(),a.collapse(!0),a.select()):(c.setSelectionRange(0,0),c.focus())},dispose:function(){b.removeChild(c),b.onresize=null,c=null,b=null}}},codemirror:function(a,b){var c=window.CodeMirror(b,{mode:"text/html",tabMode:"indent",lineNumbers:!0,lineWrapping:!0}),d=c.getWrapperElement();return d.style.cssText='position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;',c.getScrollerElement().style.cssText="position:absolute;left:0;top:0;width:100%;height:100%;",c.refresh(),{getCodeMirror:function(){return c},setContent:function(a){c.setValue(a)},getContent:function(){return c.getValue()},select:function(){c.focus()},dispose:function(){b.removeChild(d),d=null,c=null}}}};UE.plugins.source=function(){function b(b){return a["codemirror"==f.sourceEditor&&window.CodeMirror?"codemirror":"textarea"](e,b)}var c,d,e=this,f=this.options,g=!1;f.sourceEditor=browser.ie?"textarea":f.sourceEditor||"codemirror",e.setOpt({sourceEditorFirst:!1});var h,i,j;e.commands.source={execCommand:function(){if(g=!g){j=e.selection.getRange().createAddress(!1,!0),e.undoManger&&e.undoManger.save(!0),browser.gecko&&(e.body.contentEditable=!1),h=e.iframe.style.cssText,e.iframe.style.cssText+="position:absolute;left:-32768px;top:-32768px;",e.fireEvent("beforegetcontent");var a=UE.htmlparser(e.body.innerHTML);e.filterOutputRule(a),a.traversal(function(a){if("element"==a.type)switch(a.tagName){case"td":case"th":case"caption":a.children&&1==a.children.length&&"br"==a.firstChild().tagName&&a.removeChild(a.firstChild());break;case"pre":a.innerText(a.innerText().replace(/ /g," "))}}),e.fireEvent("aftergetcontent");var f=a.toHtml(!0);c=b(e.iframe.parentNode),c.setContent(f),d=e.setContent,e.setContent=function(a){var b=UE.htmlparser(a);e.filterInputRule(b),a=b.toHtml(),c.setContent(a)},setTimeout(function(){c.select(),e.addListener("fullscreenchanged",function(){try{c.getCodeMirror().refresh()}catch(a){}})}),i=e.getContent,e.getContent=function(){return c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    "}}else{e.iframe.style.cssText=h;var k=c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    ";k=k.replace(new RegExp("[\\r\\t\\n ]*]*)>","g"),function(a,b){return b&&!dtd.$inlineWithA[b.toLowerCase()]?a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,""):a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,"")}),e.setContent=d,e.setContent(k),c.dispose(),c=null,e.getContent=i;var l=e.body.firstChild;if(l||(e.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",l=e.body.firstChild),e.undoManger&&e.undoManger.save(!0),browser.gecko){var m=document.createElement("input");m.style.cssText="position:absolute;left:0;top:-32768px",document.body.appendChild(m),e.body.contentEditable=!1,setTimeout(function(){domUtils.setViewportOffset(m,{left:-32768,top:0}),m.focus(),setTimeout(function(){e.body.contentEditable=!0,e.selection.getRange().moveToAddress(j).select(!0),domUtils.remove(m)})})}else try{e.selection.getRange().moveToAddress(j).select(!0)}catch(n){}}this.fireEvent("sourcemodechanged",g)},queryCommandState:function(){return 0|g},notNeedUndo:1};var k=e.queryCommandState;e.queryCommandState=function(a){return a=a.toLowerCase(),g?a in{source:1,fullscreen:1}?1:-1:k.apply(this,arguments)},"codemirror"==f.sourceEditor&&e.addListener("ready",function(){utils.loadFile(document,{src:f.codeMirrorJsUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.js",tag:"script",type:"text/javascript",defer:"defer"},function(){f.sourceEditorFirst&&setTimeout(function(){e.execCommand("source")},0)}),utils.loadFile(document,{tag:"link",rel:"stylesheet",type:"text/css",href:f.codeMirrorCssUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.css"})})}}(),UE.plugins.enterkey=function(){var a,b=this,c=b.options.enterTag;b.addListener("keyup",function(c,d){var e=d.keyCode||d.which;if(13==e){var f,g=b.selection.getRange(),h=g.startContainer;if(browser.ie)b.fireEvent("saveScene",!0,!0);else{if(/h\d/i.test(a)){if(browser.gecko){var i=domUtils.findParentByTagName(h,["h1","h2","h3","h4","h5","h6","blockquote","caption","table"],!0);i||(b.document.execCommand("formatBlock",!1,"

    "),f=1)}else if(1==h.nodeType){var j,k=b.document.createTextNode("");if(g.insertNode(k),j=domUtils.findParentByTagName(k,"div",!0)){for(var l=b.document.createElement("p");j.firstChild;)l.appendChild(j.firstChild);j.parentNode.insertBefore(l,j),domUtils.remove(j),g.setStartBefore(k).setCursor(),f=1}domUtils.remove(k)}b.undoManger&&f&&b.undoManger.save()}browser.opera&&g.select()}}}),b.addListener("keydown",function(d,e){var f=e.keyCode||e.which;if(13==f){if(b.fireEvent("beforeenterkeydown"))return void domUtils.preventDefault(e);b.fireEvent("saveScene",!0,!0),a="";var g=b.selection.getRange();if(!g.collapsed){var h=g.startContainer,i=g.endContainer,j=domUtils.findParentByTagName(h,"td",!0),k=domUtils.findParentByTagName(i,"td",!0);if(j&&k&&j!==k||!j&&k||j&&!k)return void(e.preventDefault?e.preventDefault():e.returnValue=!1)}if("p"==c)browser.ie||(h=domUtils.findParentByTagName(g.startContainer,["ol","ul","p","h1","h2","h3","h4","h5","h6","blockquote","caption"],!0),h||browser.opera?(a=h.tagName,"p"==h.tagName.toLowerCase()&&browser.gecko&&domUtils.removeDirtyAttr(h)):(b.document.execCommand("formatBlock",!1,"

    "),browser.gecko&&(g=b.selection.getRange(),h=domUtils.findParentByTagName(g.startContainer,"p",!0),h&&domUtils.removeDirtyAttr(h))));else if(e.preventDefault?e.preventDefault():e.returnValue=!1,g.collapsed){m=g.document.createElement("br"),g.insertNode(m);var l=m.parentNode;l.lastChild===m?(m.parentNode.insertBefore(m.cloneNode(!0),m),g.setStartBefore(m)):g.setStartAfter(m),g.setCursor()}else if(g.deleteContents(),h=g.startContainer,1==h.nodeType&&(h=h.childNodes[g.startOffset])){for(;1==h.nodeType;){if(dtd.$empty[h.tagName])return g.setStartBefore(h).setCursor(),b.undoManger&&b.undoManger.save(),!1;if(!h.firstChild){var m=g.document.createElement("br");return h.appendChild(m),g.setStart(h,0).setCursor(),b.undoManger&&b.undoManger.save(),!1}h=h.firstChild}h===g.startContainer.childNodes[g.startOffset]?(m=g.document.createElement("br"),g.insertNode(m).setCursor()):g.setStart(h,0).setCursor()}else m=g.document.createElement("br"),g.insertNode(m).setStartAfter(m).setCursor()}})},UE.plugins.keystrokes=function(){var a=this,b=!0;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which,f=a.selection.getRange();if(!f.collapsed&&!(d.ctrlKey||d.shiftKey||d.altKey||d.metaKey)&&(e>=65&&e<=90||e>=48&&e<=57||e>=96&&e<=111||{13:1,8:1,46:1}[e])){var g=f.startContainer;if(domUtils.isFillChar(g)&&f.setStartBefore(g),g=f.endContainer,domUtils.isFillChar(g)&&f.setEndAfter(g),f.txtToElmBoundary(),f.endContainer&&1==f.endContainer.nodeType&&(g=f.endContainer.childNodes[f.endOffset],g&&domUtils.isBr(g)&&f.setEndAfter(g)),0==f.startOffset&&(g=f.startContainer,domUtils.isBoundaryNode(g,"firstChild")&&(g=f.endContainer,f.endOffset==(3==g.nodeType?g.nodeValue.length:g.childNodes.length)&&domUtils.isBoundaryNode(g,"lastChild"))))return a.fireEvent("saveScene"),a.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",f.setStart(a.body.firstChild,0).setCursor(!1,!0),void a._selectionChange()}if(e==keymap.Backspace){if(f=a.selection.getRange(),b=f.collapsed,a.fireEvent("delkeydown",d))return;var h,i;if(f.collapsed&&f.inFillChar()&&(h=f.startContainer,domUtils.isFillChar(h)?(f.setStartBefore(h).shrinkBoundary(!0).collapse(!0),domUtils.remove(h)):(h.nodeValue=h.nodeValue.replace(new RegExp("^"+domUtils.fillChar),""),f.startOffset--,f.collapse(!0).select(!0))),h=f.getClosedNode())return a.fireEvent("saveScene"),f.setStartBefore(h),domUtils.remove(h),f.setCursor(),a.fireEvent("saveScene"),void domUtils.preventDefault(d);if(!browser.ie&&(h=domUtils.findParentByTagName(f.startContainer,"table",!0),i=domUtils.findParentByTagName(f.endContainer,"table",!0),h&&!i||!h&&i||h!==i))return void d.preventDefault()}if(e==keymap.Tab){var j={ol:1,ul:1,table:1};if(a.fireEvent("tabkeydown",d))return void domUtils.preventDefault(d);var k=a.selection.getRange();a.fireEvent("saveScene");for(var l=0,m="",n=a.options.tabSize||4,o=a.options.tabNode||" ";l"});d.insertNode(g).setStart(g,0).setCursor(!1,!0)}}if(!b&&(3==d.startContainer.nodeType||1==d.startContainer.nodeType&&domUtils.isEmptyBlock(d.startContainer)))if(browser.ie){var k=d.document.createElement("span");d.insertNode(k).setStartBefore(k).collapse(!0),d.select(),domUtils.remove(k)}else d.select()}})},UE.plugins.fiximgclick=function(){function a(){this.editor=null,this.resizer=null,this.cover=null,this.doc=document,this.prePos={x:0,y:0},this.startPos={x:0,y:0}}var b=!1;return function(){var c=[[0,0,-1,-1],[0,0,0,-1],[0,0,1,-1],[0,0,-1,0],[0,0,1,0],[0,0,-1,1],[0,0,0,1],[0,0,1,1]];a.prototype={init:function(a){var b=this;b.editor=a,b.startPos=this.prePos={x:0,y:0},b.dragId=-1;var c=[],d=b.cover=document.createElement("div"),e=b.resizer=document.createElement("div");for(d.id=b.editor.ui.id+"_imagescale_cover",d.style.cssText="position:absolute;display:none;z-index:"+b.editor.options.zIndex+";filter:alpha(opacity=0); opacity:0;background:#CCC;",domUtils.on(d,"mousedown click",function(){b.hide()}),i=0;i<8;i++)c.push('');e.id=b.editor.ui.id+"_imagescale",e.className="edui-editor-imagescale",e.innerHTML=c.join(""),e.style.cssText+=";display:none;border:1px solid #3b77ff;z-index:"+b.editor.options.zIndex+";",b.editor.ui.getDom().appendChild(d),b.editor.ui.getDom().appendChild(e),b.initStyle(),b.initEvents()},initStyle:function(){utils.cssRule("imagescale",".edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}")},initEvents:function(){var a=this;a.startPos.x=a.startPos.y=0,a.isDraging=!1},_eventHandler:function(a){var c=this;switch(a.type){case"mousedown":var d,d=a.target||a.srcElement;d.className.indexOf("edui-editor-imagescale-hand")!=-1&&c.dragId==-1&&(c.dragId=d.className.slice(-1),c.startPos.x=c.prePos.x=a.clientX,c.startPos.y=c.prePos.y=a.clientY,domUtils.on(c.doc,"mousemove",c.proxy(c._eventHandler,c)));break;case"mousemove":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.prePos.x=a.clientX,c.prePos.y=a.clientY,b=!0,c.updateTargetElement());break;case"mouseup":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.updateTargetElement(),c.target.parentNode&&c.attachTo(c.target),c.dragId=-1),domUtils.un(c.doc,"mousemove",c.proxy(c._eventHandler,c)),b&&(b=!1,c.editor.fireEvent("contentchange"))}},updateTargetElement:function(){var a=this;domUtils.setStyles(a.target,{width:a.resizer.style.width,height:a.resizer.style.height}),a.target.width=parseInt(a.resizer.style.width),a.target.height=parseInt(a.resizer.style.height),a.attachTo(a.target)},updateContainerStyle:function(a,b){var d,e=this,f=e.resizer;0!=c[a][0]&&(d=parseInt(f.style.left)+b.x,f.style.left=e._validScaledProp("left",d)+"px"),0!=c[a][1]&&(d=parseInt(f.style.top)+b.y,f.style.top=e._validScaledProp("top",d)+"px"),0!=c[a][2]&&(d=f.clientWidth+c[a][2]*b.x,f.style.width=e._validScaledProp("width",d)+"px"),0!=c[a][3]&&(d=f.clientHeight+c[a][3]*b.y,f.style.height=e._validScaledProp("height",d)+"px")},_validScaledProp:function(a,b){var c=this.resizer,d=document;switch(b=isNaN(b)?0:b,a){case"left":return b<0?0:b+c.clientWidth>d.clientWidth?d.clientWidth-c.clientWidth:b;case"top":return b<0?0:b+c.clientHeight>d.clientHeight?d.clientHeight-c.clientHeight:b;case"width":return b<=0?1:b+c.offsetLeft>d.clientWidth?d.clientWidth-c.offsetLeft:b;case"height":return b<=0?1:b+c.offsetTop>d.clientHeight?d.clientHeight-c.offsetTop:b}},hideCover:function(){this.cover.style.display="none"},showCover:function(){var a=this,b=domUtils.getXY(a.editor.ui.getDom()),c=domUtils.getXY(a.editor.iframe);domUtils.setStyles(a.cover,{width:a.editor.iframe.offsetWidth+"px",height:a.editor.iframe.offsetHeight+"px",top:c.y-b.y+"px",left:c.x-b.x+"px",position:"absolute",display:""})},show:function(a){var b=this;b.resizer.style.display="block",a&&b.attachTo(a),domUtils.on(this.resizer,"mousedown",b.proxy(b._eventHandler,b)),domUtils.on(b.doc,"mouseup",b.proxy(b._eventHandler,b)),b.showCover(),b.editor.fireEvent("afterscaleshow",b),b.editor.fireEvent("saveScene")},hide:function(){var a=this;a.hideCover(),a.resizer.style.display="none",domUtils.un(a.resizer,"mousedown",a.proxy(a._eventHandler,a)),domUtils.un(a.doc,"mouseup",a.proxy(a._eventHandler,a)),a.editor.fireEvent("afterscalehide",a)},proxy:function(a,b){return function(c){return a.apply(b||this,arguments)}},attachTo:function(a){var b=this,c=b.target=a,d=this.resizer,e=domUtils.getXY(c),f=domUtils.getXY(b.editor.iframe),g=domUtils.getXY(d.parentNode);domUtils.setStyles(d,{width:c.width+"px",height:c.height+"px",left:f.x+e.x-b.editor.document.body.scrollLeft-g.x-parseInt(d.style.borderLeftWidth)+"px",top:f.y+e.y-b.editor.document.body.scrollTop-g.y-parseInt(d.style.borderTopWidth)+"px"})}}}(),function(){var b,c=this;c.setOpt("imageScaleEnabled",!0),!browser.ie&&c.options.imageScaleEnabled&&c.addListener("click",function(d,e){var f=c.selection.getRange(),g=f.getClosedNode();if(g&&"IMG"==g.tagName&&"false"!=c.body.contentEditable){if(g.className.indexOf("edui-faked-music")!=-1||g.getAttribute("anchorname")||domUtils.hasClass(g,"loadingclass")||domUtils.hasClass(g,"loaderrorclass"))return;if(!b){b=new a,b.init(c),c.ui.getDom().appendChild(b.resizer);var h,i=function(a){b.hide(),b.target&&c.selection.getRange().selectNode(b.target).select()},j=function(a){var b=a.target||a.srcElement;!b||void 0!==b.className&&b.className.indexOf("edui-editor-imagescale")!=-1||i(a)};c.addListener("afterscaleshow",function(a){c.addListener("beforekeydown",i),c.addListener("beforemousedown",j),domUtils.on(document,"keydown",i),domUtils.on(document,"mousedown",j),c.selection.getNative().removeAllRanges()}),c.addListener("afterscalehide",function(a){c.removeListener("beforekeydown",i),c.removeListener("beforemousedown",j),domUtils.un(document,"keydown",i),domUtils.un(document,"mousedown",j);var d=b.target;d.parentNode&&c.selection.getRange().selectNode(d).select()}),domUtils.on(b.resizer,"mousedown",function(a){c.selection.getNative().removeAllRanges();var d=a.target||a.srcElement;d&&d.className.indexOf("edui-editor-imagescale-hand")==-1&&(h=setTimeout(function(){b.hide(),b.target&&c.selection.getRange().selectNode(d).select()},200))}),domUtils.on(b.resizer,"mouseup",function(a){var b=a.target||a.srcElement;b&&b.className.indexOf("edui-editor-imagescale-hand")==-1&&clearTimeout(h)})}b.show(g)}else b&&"none"!=b.resizer.style.display&&b.hide()}),browser.webkit&&c.addListener("click",function(a,b){if("IMG"==b.target.tagName&&"false"!=c.body.contentEditable){var d=new dom.Range(c.document);d.selectNode(b.target).select()}})}}(),UE.plugin.register("autolink",function(){var a=0;return browser.ie?{}:{bindEvents:{reset:function(){a=0},keydown:function(a,b){var c=this,d=b.keyCode||b.which;if(32==d||13==d){for(var e,f,g=c.selection.getNative(),h=g.getRangeAt(0).cloneRange(),i=h.startContainer;1==i.nodeType&&h.startOffset>0&&(i=h.startContainer.childNodes[h.startOffset-1]);)h.setStart(i,1==i.nodeType?i.childNodes.length:i.nodeValue.length),h.collapse(!0),i=h.startContainer;do{if(0==h.startOffset){for(i=h.startContainer.previousSibling;i&&1==i.nodeType;)i=i.lastChild;if(!i||domUtils.isFillChar(i))break;e=i.nodeValue.length}else i=h.startContainer,e=h.startOffset;h.setStart(i,e-1),f=h.toString().charCodeAt(0)}while(160!=f&&32!=f);if(h.toString().replace(new RegExp(domUtils.fillChar,"g"),"").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)){for(;h.toString().length&&!/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(h.toString());)try{h.setStart(h.startContainer,h.startOffset+1)}catch(j){for(var i=h.startContainer;!(next=i.nextSibling);){if(domUtils.isBody(i))return;i=i.parentNode}h.setStart(next,0)}if(domUtils.findParentByTagName(h.startContainer,"a",!0))return;var k,l=c.document.createElement("a"),m=c.document.createTextNode(" ");c.undoManger&&c.undoManger.save(),l.appendChild(h.extractContents()),l.href=l.innerHTML=l.innerHTML.replace(/<[^>]+>/g,""),k=l.getAttribute("href").replace(new RegExp(domUtils.fillChar,"g"),""),k=/^(?:https?:\/\/)/gi.test(k)?k:"http://"+k,l.setAttribute("_src",utils.html(k)),l.href=utils.html(k),h.insertNode(l),l.parentNode.insertBefore(m,l.nextSibling),h.setStart(m,0),h.collapse(!0),g.removeAllRanges(),g.addRange(h),c.undoManger&&c.undoManger.save()}}}}}},function(){function a(a){if(3==a.nodeType)return null;if("A"==a.nodeName)return a;for(var b=a.lastChild;b;){if("A"==b.nodeName)return b;if(3==b.nodeType){if(domUtils.isWhitespace(b)){b=b.previousSibling;continue}return null}b=b.lastChild}}var b={37:1,38:1,39:1,40:1,13:1,32:1};browser.ie&&this.addListener("keyup",function(c,d){var e=this,f=d.keyCode;if(b[f]){var g=e.selection.getRange(),h=g.startContainer;if(13==f){for(;h&&!domUtils.isBody(h)&&!domUtils.isBlockElm(h);)h=h.parentNode;if(h&&!domUtils.isBody(h)&&"P"==h.nodeName){var i=h.previousSibling;if(i&&1==i.nodeType){var i=a(i);i&&!i.getAttribute("_href")&&domUtils.remove(i,!0)}}}else if(32==f)3==h.nodeType&&/^\s$/.test(h.nodeValue)&&(h=h.previousSibling,h&&"A"==h.nodeName&&!h.getAttribute("_href")&&domUtils.remove(h,!0));else if(h=domUtils.findParentByTagName(h,"a",!0),h&&!h.getAttribute("_href")){var j=g.createBookmark();domUtils.remove(h,!0),g.moveToBookmark(j).select(!0)}}})}),UE.plugins.autoheight=function(){function a(){var a=this;clearTimeout(e),f||(!a.queryCommandState||a.queryCommandState&&1!=a.queryCommandState("source"))&&(e=setTimeout(function(){for(var b=a.body.lastChild;b&&1!=b.nodeType;)b=b.previousSibling;b&&1==b.nodeType&&(b.style.clear="both",d=Math.max(domUtils.getXY(b).y+b.offsetHeight+25,Math.max(h.minFrameHeight,h.initialFrameHeight)),d!=g&&(d!==parseInt(a.iframe.parentNode.style.height)&&(a.iframe.parentNode.style.height=d+"px"),a.body.style.height=d+"px",g=d),domUtils.removeStyle(b,"clear"))},50))}var b=this;if(b.autoHeightEnabled=b.options.autoHeightEnabled!==!1,b.autoHeightEnabled){var c,d,e,f,g=0,h=b.options;b.addListener("fullscreenchanged",function(a,b){f=b}),b.addListener("destroy",function(){b.removeListener("contentchange afterinserthtml keyup mouseup",a)}),b.enableAutoHeight=function(){var b=this;if(b.autoHeightEnabled){var d=b.document;b.autoHeightEnabled=!0,c=d.body.style.overflowY,d.body.style.overflowY="hidden",b.addListener("contentchange afterinserthtml keyup mouseup",a),setTimeout(function(){a.call(b)},browser.gecko?100:0),b.fireEvent("autoheightchanged",b.autoHeightEnabled)}},b.disableAutoHeight=function(){b.body.style.overflowY=c||"",b.removeListener("contentchange",a),b.removeListener("keyup",a),b.removeListener("mouseup",a),b.autoHeightEnabled=!1,b.fireEvent("autoheightchanged",b.autoHeightEnabled)},b.on("setHeight",function(){b.disableAutoHeight()}),b.addListener("ready",function(){b.enableAutoHeight();var c;domUtils.on(browser.ie?b.body:b.document,browser.webkit?"dragover":"drop",function(){ -clearTimeout(c),c=setTimeout(function(){a.call(b)},100)});var d;window.onscroll=function(){null===d?d=this.scrollY:0==this.scrollY&&0!=d&&(b.window.scrollTo(0,0),d=null)}})}},UE.plugins.autofloat=function(){function a(){return UE.ui?1:(alert(g.autofloatMsg),0)}function b(){var a=document.body.style;a.backgroundImage='url("about:blank")',a.backgroundAttachment="fixed"}function c(){var a=domUtils.getXY(k),b=domUtils.getComputedStyle(k,"position"),c=domUtils.getComputedStyle(k,"left");k.style.width=k.offsetWidth+"px",k.style.zIndex=1*f.options.zIndex+1,k.parentNode.insertBefore(q,k),o||p&&browser.ie?("absolute"!=k.style.position&&(k.style.position="absolute"),k.style.top=(document.body.scrollTop||document.documentElement.scrollTop)-l+i+"px"):(browser.ie7Compat&&r&&(r=!1,k.style.left=domUtils.getXY(k).x-document.documentElement.getBoundingClientRect().left+2+"px"),"fixed"!=k.style.position&&(k.style.position="fixed",k.style.top=i+"px",("absolute"==b||"relative"==b)&&parseFloat(c)&&(k.style.left=a.x+"px")))}function d(){r=!0,q.parentNode&&q.parentNode.removeChild(q),k.style.cssText=j}function e(){var a=m(f.container),b=f.options.toolbarTopOffset||0;a.top<0&&a.bottom-k.offsetHeight>b?c():d()}var f=this,g=f.getLang();f.setOpt({topOffset:0});var h=f.options.autoFloatEnabled!==!1,i=f.options.topOffset;if(h){var j,k,l,m,n=UE.ui.uiUtils,o=browser.ie&&browser.version<=6,p=browser.quirks,q=document.createElement("div"),r=!0,s=utils.defer(function(){e()},browser.ie?200:100,!0);f.addListener("destroy",function(){domUtils.un(window,["scroll","resize"],e),f.removeListener("keydown",s)}),f.addListener("ready",function(){if(a(f)){if(!f.ui)return;m=n.getClientRect,k=f.ui.getDom("toolbarbox"),l=m(k).top,j=k.style.cssText,q.style.height=k.offsetHeight+"px",o&&b(),domUtils.on(window,["scroll","resize"],e),f.addListener("keydown",s),f.addListener("beforefullscreenchange",function(a,b){b&&d()}),f.addListener("fullscreenchanged",function(a,b){b||e()}),f.addListener("sourcemodechanged",function(a,b){setTimeout(function(){e()},0)}),f.addListener("clearDoc",function(){setTimeout(function(){e()},0)})}})}},UE.plugins.video=function(){function a(a,b,d,e,f,g,h){a=utils.unhtmlForUrl(a),f=utils.unhtml(f),g=utils.unhtml(g).trim(),b=parseInt(b,10)||0,d=parseInt(d,10)||0;var i;switch(h){case"image":i="';break;case"embed":i='';break;case"video":var j=a.substr(a.lastIndexOf(".")+1);"ogv"==j&&(j="ogg"),i="'}return i}function b(b,c){utils.each(b.getNodesByTagName(c?"img":"embed video"),function(b){var d=b.getAttr("class");if(d&&d.indexOf("edui-faked-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"embed":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}if(d&&d.indexOf("edui-upload-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"video":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}})}var c=this;c.addOutputRule(function(a){b(a,!0)}),c.addInputRule(function(a){b(a)}),c.commands.insertvideo={execCommand:function(b,d,e){d=utils.isArray(d)?d:[d];for(var f,g,h=[],i="tmpVedio",j=0,k=d.length;j0)return 0;for(var c in dtd.$isNotEmpty)if(dtd.$isNotEmpty.hasOwnProperty(c)&&a.getElementsByTagName(c).length)return 0;return 1},b.getWidth=function(a){return a?parseInt(domUtils.getComputedStyle(a,"width"),10):0},b.getTableCellAlignState=function(a){!utils.isArray(a)&&(a=[a]);var b={},c=["align","valign"],d=null,e=!0;return utils.each(a,function(a){return utils.each(c,function(c){if(d=a.getAttribute(c),!b[c]&&d)b[c]=d;else if(!b[c]||d!==b[c])return e=!1,!1}),e}),e?b:null},b.getTableItemsByRange=function(a){var b=a.selection.getStart();b&&b.id&&0===b.id.indexOf("_baidu_bookmark_start_")&&b.nextSibling&&(b=b.nextSibling);var c=b&&domUtils.findParentByTagName(b,["td","th"],!0),d=c&&c.parentNode,e=b&&domUtils.findParentByTagName(b,"caption",!0),f=e?e.parentNode:d&&d.parentNode.parentNode;return{cell:c,tr:d,table:f,caption:e}},b.getUETableBySelected=function(a){var c=b.getTableItemsByRange(a).table;return c&&c.ueTable&&c.ueTable.selectedTds.length?c.ueTable:null},b.getDefaultValue=function(a,b){var c,d,e,f,g={thin:"0px",medium:"1px",thick:"2px"};if(b)return h=b.getElementsByTagName("td")[0],f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),{tableBorder:c,tdPadding:d,tdBorder:e};b=a.document.createElement("table"),b.insertRow(0).insertCell(0).innerHTML="xxx",a.body.appendChild(b);var h=b.getElementsByTagName("td")[0];return f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),domUtils.remove(b),{tableBorder:c,tdPadding:d,tdBorder:e}},b.getUETable=function(a){var c=a.tagName.toLowerCase();return a="td"==c||"th"==c||"caption"==c?domUtils.findParentByTagName(a,"table",!0):a,a.ueTable||(a.ueTable=new b(a)),a.ueTable},b.cloneCell=function(a,b,c){if(!a||utils.isString(a))return this.table.ownerDocument.createElement(a||"td");var d=domUtils.hasClass(a,"selectTdClass");d&&domUtils.removeClasses(a,"selectTdClass");var e=a.cloneNode(!0);return b&&(e.rowSpan=e.colSpan=1),!c&&domUtils.removeAttributes(e,"width height"),!c&&domUtils.removeAttributes(e,"style"),e.style.borderLeftStyle="",e.style.borderTopStyle="",e.style.borderLeftColor=a.style.borderRightColor,e.style.borderLeftWidth=a.style.borderRightWidth,e.style.borderTopColor=a.style.borderBottomColor,e.style.borderTopWidth=a.style.borderBottomWidth,d&&domUtils.addClass(a,"selectTdClass"),e},b.prototype={getMaxRows:function(){for(var a,b=this.table.rows,c=1,d=0;a=b[d];d++){for(var e,f=1,g=0;e=a.cells[g++];)f=Math.max(e.rowSpan||1,f);c=Math.max(f+d,c)}return c},getMaxCols:function(){for(var a,b=this.table.rows,c=0,d={},e=0;a=b[e];e++){for(var f,g=0,h=0;f=a.cells[h++];)if(g+=f.colSpan||1,f.rowSpan&&f.rowSpan>1)for(var i=1;ithis.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getSameEndPosCells:function(b,c){try{for(var d="x"===c.toLowerCase(),e=domUtils.getXY(b)[d?"x":"y"]+b["offset"+(d?"Width":"Height")],f=this.table.rows,g=null,h=[],i=0;ie&&d)break;if((b==j||e==l)&&(1==j[d?"colSpan":"rowSpan"]&&h.push(j),d))break}}return h}catch(m){a(m)}},setCellContent:function(a,b){a.innerHTML=b||(browser.ie?domUtils.fillChar:"
    ")},cloneCell:b.cloneCell,getSameStartPosXCells:function(b){try{for(var c,d=domUtils.getXY(b).x+b.offsetWidth,e=this.table.rows,f=[],g=0;gd)break;if(j==d&&1==h.colSpan){f.push(h);break}}}return f}catch(k){a(k)}},update:function(a){this.table=a||this.table,this.selectedTds=[],this.cellsRange={},this.indexTable=[];for(var b=this.table.rows,c=this.getMaxRows(),d=c-b.length,e=this.getMaxCols();d--;)this.table.insertRow(b.length);this.rowsNum=c,this.colsNum=e;for(var f=0,g=b.length;fc&&(j.rowSpan=c);for(var m=k,n=j.rowSpan||1,o=j.colSpan||1;this.indexTable[i][m];)m++;for(var p=0;p0)for(h=b;hf&&(m=Math.max(h,m));if(ee&&(l=Math.max(i,l));if(b>0)for(i=a;ig||d+b.colSpan-1>h)return null;j.push(this.getCell(c,b.cellIndex))}}return j},clearSelected:function(){b.removeSelectedClass(this.selectedTds),this.selectedTds=[],this.cellsRange={}},setSelected:function(a){var c=this.getCells(a);b.addSelectedClass(c),this.selectedTds=c,this.cellsRange=a},isFullRow:function(){var a=this.cellsRange;return a.endColIndex-a.beginColIndex+1==this.colsNum},isFullCol:function(){var a=this.cellsRange,b=this.table,c=b.getElementsByTagName("th"),d=a.endRowIndex-a.beginRowIndex+1;return c.length?d==this.rowsNum||d==this.rowsNum-1:d==this.rowsNum},getNextCell:function(b,c,d){try{var e,f,g=this.getCellInfo(b),h=this.selectedTds.length&&!d,i=this.cellsRange;return!c&&0==g.rowIndex||c&&(h?i.endRowIndex==this.rowsNum-1:g.rowIndex+g.rowSpan>this.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getPreviewCell:function(b,c){try{var d,e,f=this.getCellInfo(b),g=this.selectedTds.length,h=this.cellsRange;return!c&&(g?!h.beginColIndex:!f.colIndex)||c&&(g?h.endColIndex==this.colsNum-1:f.rowIndex>this.colsNum-1)?null:(d=c?g?h.beginRowIndex:f.rowIndex<1?0:f.rowIndex-1:g?h.beginRowIndex:f.rowIndex,e=c?g?h.endColIndex+1:f.colIndex:g?h.beginColIndex-1:f.colIndex<1?0:f.colIndex-1,this.getCell(this.indexTable[d][e].rowIndex,this.indexTable[d][e].cellIndex))}catch(i){a(i)}},moveContent:function(a,c){if(!b.isEmptyBlock(c)){if(b.isEmptyBlock(a))return void(a.innerHTML=c.innerHTML);var d=a.lastChild;for(3!=d.nodeType&&dtd.$block[d.tagName]||a.appendChild(a.ownerDocument.createElement("br"));d=c.firstChild;)a.appendChild(d)}},mergeRight:function(a){var b=this.getCellInfo(a),c=b.colIndex+b.colSpan,d=this.indexTable[b.rowIndex][c],e=this.getCell(d.rowIndex,d.cellIndex);a.colSpan=b.colSpan+d.colSpan,a.removeAttribute("width"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeDown:function(a){var b=this.getCellInfo(a),c=b.rowIndex+b.rowSpan,d=this.indexTable[c][b.colIndex],e=this.getCell(d.rowIndex,d.cellIndex);a.rowSpan=b.rowSpan+d.rowSpan,a.removeAttribute("height"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeRange:function(){var a=this.cellsRange,b=this.getCell(a.beginRowIndex,this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex);if("TH"==b.tagName&&a.endRowIndex!==a.beginRowIndex){var c=this.indexTable,d=this.getCellInfo(b);b=this.getCell(1,c[1][d.colIndex].cellIndex),a=this.getCellsRange(b,this.getCell(c[this.rowsNum-1][d.colIndex].rowIndex,c[this.rowsNum-1][d.colIndex].cellIndex))}for(var e,f=this.getCells(a),g=0;e=f[g++];)e!==b&&(this.moveContent(b,e),this.deleteCell(e));if(b.rowSpan=a.endRowIndex-a.beginRowIndex+1,b.rowSpan>1&&b.removeAttribute("height"),b.colSpan=a.endColIndex-a.beginColIndex+1,b.colSpan>1&&b.removeAttribute("width"),b.rowSpan==this.rowsNum&&1!=b.colSpan&&(b.colSpan=1),b.colSpan==this.colsNum&&1!=b.rowSpan){var h=b.parentNode.rowIndex;if(this.table.deleteRow)for(var g=h+1,i=h+1,j=b.rowSpan;g1&&g.rowIndex==a){var i=h.cloneNode(!0);i.rowSpan=h.rowSpan-1,i.innerHTML="",h.rowSpan=1;var j,k=a+1,l=this.table.rows[k],m=this.getPreviewMergedCellsNum(k,f)-e;m1?l.colSpan--:c[h].deleteCell(j.cellIndex),h+=j.rowSpan||1}}this.table.setAttribute("width",d-e),this.update()},splitToCells:function(a){var b=this,c=this.splitToRows(a);utils.each(c,function(a){b.splitToCols(a)})},splitToRows:function(a){var b=this.getCellInfo(a),c=b.rowIndex,d=b.colIndex,e=[];a.rowSpan=1,e.push(a);for(var f=c,g=c+b.rowSpan;f");for(var g=0;g'+(browser.ie&&browser.version<11?domUtils.fillChar:"
    ")+"");c.push("")}return"
    "+c.join("")+"
    "}b||(b=utils.extend({},{numCols:this.options.defaultCols,numRows:this.options.defaultRows,tdvalign:this.options.tdvalign}));var d=this,e=this.selection.getRange(),f=e.startContainer,h=domUtils.findParent(f,function(a){return domUtils.isBlockElm(a)},!0)||d.body,i=g(d),j=h.offsetWidth,k=Math.floor(j/b.numCols-2*i.tdPadding-i.tdBorder);!b.tdvalign&&(b.tdvalign=d.options.tdvalign),d.execCommand("inserthtml",c(b,k))}},UE.commands.insertparagraphbeforetable={queryCommandState:function(){return e(this).cell?0:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("p");b.innerHTML=browser.ie?" ":"
    ",a.parentNode.insertBefore(b,a),this.selection.getRange().setStart(b,0).setCursor()}}},UE.commands.deletetable={queryCommandState:function(){var a=this.selection.getRange();return domUtils.findParentByTagName(a.startContainer,"table",!0)?0:-1},execCommand:function(a,b){var c=this.selection.getRange();if(b=b||domUtils.findParentByTagName(c.startContainer,"table",!0)){var d=b.nextSibling;d||(d=domUtils.createElement(this.document,"p",{innerHTML:browser.ie?domUtils.fillChar:"
    "}),b.parentNode.insertBefore(d,b)),domUtils.remove(b),c=this.selection.getRange(),3==d.nodeType?c.setStartBefore(d):c.setStart(d,0),c.setCursor(!1,!0),this.fireEvent("tablehasdeleted")}}},UE.commands.cellalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("align",b)}},UE.commands.cellvalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("vAlign",b)}},UE.commands.insertcaption={queryCommandState:function(){var a=e(this).table;return a&&0==a.getElementsByTagName("caption").length?1:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("caption");b.innerHTML=browser.ie?domUtils.fillChar:"
    ",a.insertBefore(b,a.firstChild);var c=this.selection.getRange();c.setStart(b,0).setCursor()}}},UE.commands.deletecaption={queryCommandState:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");return b?0==b.getElementsByTagName("caption").length?-1:1:-1},execCommand:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");if(b){domUtils.remove(b.getElementsByTagName("caption")[0]);var c=this.selection.getRange();c.setStart(b.rows[0].cells[0],0).setCursor()}}},UE.commands.inserttitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"!=b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&h(a).insertRow(0,"th");var b=a.getElementsByTagName("th")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.deletetitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"==b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&domUtils.remove(a.rows[0]);var b=a.getElementsByTagName("td")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.inserttitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?-1:0}return-1},execCommand:function(b){var c=e(this).table;c&&h(c).insertCol(0,"th"),a(c,this);var d=c.getElementsByTagName("th")[0];this.selection.getRange().setStart(d,0).setCursor(!1,!0)}},UE.commands.deletetitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?0:-1}return-1},execCommand:function(){var b=e(this).table;if(b)for(var c=0;c=f.colsNum)return-1;var j=f.indexTable[g.rowIndex][i],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.rowIndex==g.rowIndex&&j.rowSpan==g.rowSpan?0:-1},execCommand:function(a){var b=this.selection.getRange(),c=b.createBookmark(!0),d=e(this).cell,f=h(d);f.mergeRight(d),b.moveToBookmark(c).select()}},UE.commands.mergedown={queryCommandState:function(a){var b=e(this),c=b.table,d=b.cell;if(!c||!d)return-1;var f=h(c);if(f.selectedTds.length)return-1;var g=f.getCellInfo(d),i=g.rowIndex+g.rowSpan;if(i>=f.rowsNum)return-1;var j=f.indexTable[i][g.colIndex],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.colIndex==g.colIndex&&j.colSpan==g.colSpan?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.mergeDown(c),a.moveToBookmark(b).select()}},UE.commands.mergecells={queryCommandState:function(){return f(this)?0:-1},execCommand:function(){var a=f(this);if(a&&a.selectedTds.length){var b=a.selectedTds[0];a.mergeRange();var c=this.selection.getRange();domUtils.isEmptyBlock(b)?c.setStart(b,0).collapse(!0):c.selectNodeContents(b),c.select()}}},UE.commands.insertrow={queryCommandState:function(){var a=e(this),b=a.cell;return b&&("TD"==b.tagName||"TH"==b.tagName&&a.tr!==a.table.rows[0])&&h(a.table).rowsNum0?-1:b&&(b.colSpan>1||b.rowSpan>1)?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCells(c),a.moveToBookmark(b).select()}},UE.commands.splittorows={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.rowSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToRows(c),a.moveToBookmark(b).select()}},UE.commands.splittocols={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.colSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCols(c),a.moveToBookmark(b).select()}},UE.commands.adaptbytext=UE.commands.adaptbywindow={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(b){var c=e(this),d=c.table;if(d)if("adaptbywindow"==b)a(d,this);else{var f=domUtils.getElementsByTagName(d,"td th");utils.each(f,function(a){a.removeAttribute("width")}),d.removeAttribute("width")}}},UE.commands.averagedistributecol={queryCommandState:function(){var a=f(this);return a&&(a.isFullRow()||a.isFullCol())?0:-1},execCommand:function(a){function b(){var a,b=e.table,c=0,f=0,h=g(d,b);if(e.isFullRow())c=b.offsetWidth,f=e.colsNum;else for(var i,j=e.cellsRange.beginColIndex,k=e.cellsRange.endColIndex,l=j;l<=k;)i=e.selectedTds[l],c+=i.offsetWidth,l+=i.colSpan,f+=1;return a=Math.ceil(c/f)-2*h.tdBorder-2*h.tdPadding}function c(a){utils.each(domUtils.getElementsByTagName(e.table,"th"),function(a){a.setAttribute("width","")});var b=e.isFullRow()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.colSpan&&b.setAttribute("width",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.averagedistributerow={queryCommandState:function(){var a=f(this);return a?a.selectedTds&&/th/gi.test(a.selectedTds[0].tagName)?-1:a.isFullRow()||a.isFullCol()?0:-1:-1},execCommand:function(a){function b(){var a,b,c=0,f=e.table,h=g(d,f),i=parseInt(domUtils.getComputedStyle(f.getElementsByTagName("td")[0],"padding-top"));if(e.isFullCol()){var j,k,l=domUtils.getElementsByTagName(f,"caption"),m=domUtils.getElementsByTagName(f,"th");l.length>0&&(j=l[0].offsetHeight),m.length>0&&(k=m[0].offsetHeight),c=f.offsetHeight-(j||0)-(k||0),b=0==m.length?e.rowsNum:e.rowsNum-1}else{for(var n=e.cellsRange.beginRowIndex,o=e.cellsRange.endRowIndex,p=0,q=domUtils.getElementsByTagName(f,"tr"),r=n;r<=o;r++)c+=q[r].offsetHeight,p+=1;b=p}return a=browser.ie&&browser.version<9?Math.ceil(c/b):Math.ceil(c/b)-2*h.tdBorder-2*i}function c(a){var b=e.isFullCol()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.rowSpan&&b.setAttribute("height",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.cellalignment={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){domUtils.setAttributes(a,b)});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);/caption/gi.test(g.tagName)?(g.style.textAlign=b.align,g.style.verticalAlign=b.vAlign):domUtils.setAttributes(g,b),c.selection.getRange().setCursor(!0)}},queryCommandValue:function(a){var b=e(this).cell;if(b||(b=c(this)[0]),b){var d=UE.UETable.getUETable(b).selectedTds;return!d.length&&(d=b),UE.UETable.getTableCellAlignState(d)}return null}},UE.commands.tablealignment={queryCommandState:function(){return browser.ie&&browser.version<8?-1:e(this).table?0:-1},execCommand:function(a,b){var c=this,d=c.selection.getStart(),e=d&&domUtils.findParentByTagName(d,["table"],!0);e&&e.setAttribute("align",b)}},UE.commands.edittable={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this.selection.getRange(),d=domUtils.findParentByTagName(c.startContainer,"table");if(d){var e=domUtils.getElementsByTagName(d,"td").concat(domUtils.getElementsByTagName(d,"th"),domUtils.getElementsByTagName(d,"caption"));utils.each(e,function(a){a.style.borderColor=b})}}},UE.commands.edittd={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){a.style.backgroundColor=b});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);g&&(g.style.backgroundColor=b)}}},UE.commands.settablebackground={queryCommandState:function(){return c(this).length>1?0:-1},execCommand:function(a,b){var d,e;d=c(this),e=h(d[0]),e.setBackground(d,b)}},UE.commands.cleartablebackground={queryCommandState:function(){var a=c(this);if(!a.length)return-1;for(var b,d=0;b=a[d++];)if(""!==b.style.backgroundColor)return 0;return-1},execCommand:function(){var a=c(this),b=h(a[0]);b.removeBackground(a)}},UE.commands.interlacetable=UE.commands.uninterlacetable={queryCommandState:function(a){var b=e(this).table;if(!b)return-1;var c=b.getAttribute("interlaced");return"interlacetable"==a?"enabled"===c?-1:0:c&&"disabled"!==c?0:-1},execCommand:function(a,b){var c=e(this).table;"interlacetable"==a?(c.setAttribute("interlaced","enabled"),this.fireEvent("interlacetable",c,b)):(c.setAttribute("interlaced","disabled"),this.fireEvent("uninterlacetable",c))}},UE.commands.setbordervisible={queryCommandState:function(a){var b=e(this).table;return b?0:-1},execCommand:function(){var a=e(this).table;utils.each(domUtils.getElementsByTagName(a,"td"),function(a){a.style.borderWidth="1px",a.style.borderStyle="solid"})}}}(),UE.plugins.table=function(){function a(a){}function b(a,b){c(a,"width",!0),c(a,"height",!0)}function c(a,b,c){a.style[b]&&(c&&a.setAttribute(b,parseInt(a.style[b],10)),a.style[b]="")}function d(a){if("TD"==a.tagName||"TH"==a.tagName)return a;var b;return(b=domUtils.findParentByTagName(a,"td",!0)||domUtils.findParentByTagName(a,"th",!0))?b:null}function e(a){var b=new RegExp(domUtils.fillChar,"g");if(a[browser.ie?"innerText":"textContent"].replace(/^\s*$/,"").replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}function f(a){return a.pageX||a.pageY?{x:a.pageX,y:a.pageY}:{x:a.clientX+N.document.body.scrollLeft-N.document.body.clientLeft,y:a.clientY+N.document.body.scrollTop-N.document.body.clientTop}}function g(b){if(!A())try{var c,e=d(b.target||b.srcElement);if(R&&(N.body.style.webkitUserSelect="none",(Math.abs(V.x-b.clientX)>T||Math.abs(V.y-b.clientY)>T)&&(t(),R=!1,U=0,v(b))),ca&&ha)return U=0,N.body.style.webkitUserSelect="none",N.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),c=f(b),m(N,!0,ca,c,e),void("h"==ca?ga.style.left=k(ha,b)+"px":"v"==ca&&(ga.style.top=l(ha,b)+"px"));if(e){if(N.fireEvent("excludetable",e)===!0)return;c=f(b);var g=n(e,c),i=domUtils.findParentByTagName(e,"table",!0);if(j(i,e,b,!0)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"h.png),pointer"}else if(j(i,e,b)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"v.png),pointer"}else{N.body.style.cursor="text";/\d/.test(g)&&(g=g.replace(/\d/,""),e=Y(e).getPreviewCell(e,"v"==g)),m(N,!!e&&!!g,e?g:"",c,e)}}else h(!1,i,N)}catch(o){a(o)}}function h(a,b,c){if(a)i(b,c);else{if(fa)return;la=setTimeout(function(){!fa&&ea&&ea.parentNode&&ea.parentNode.removeChild(ea)},2e3)}}function i(a,b){function c(c,d){clearTimeout(g),g=setTimeout(function(){b.fireEvent("tableClicked",a,d)},300)}function d(c){clearTimeout(g);var d=Y(a),e=a.rows[0].cells[0],f=d.getLastCell(),h=d.getCellsRange(e,f);b.selection.getRange().setStart(e,0).setCursor(!1,!0),d.setSelected(h)}var e=domUtils.getXY(a),f=a.ownerDocument;if(ea&&ea.parentNode)return ea;ea=f.createElement("div"),ea.contentEditable=!1,ea.innerHTML="",ea.style.cssText="width:15px;height:15px;background-image:url("+b.options.UEDITOR_HOME_URL+"dialogs/table/dragicon.png);position: absolute;cursor:move;top:"+(e.y-15)+"px;left:"+e.x+"px;",domUtils.unSelectable(ea),ea.onmouseover=function(a){fa=!0},ea.onmouseout=function(a){fa=!1},domUtils.on(ea,"click",function(a,b){c(b,this)}),domUtils.on(ea,"dblclick",function(a,b){d(b)}),domUtils.on(ea,"dragstart",function(a,b){domUtils.preventDefault(b)});var g;f.body.appendChild(ea)}function j(a,b,c,d){var e=f(c),g=n(b,e);if(d){var h=a.getElementsByTagName("caption")[0],i=h?h.offsetHeight:0;return"v1"==g&&e.y-domUtils.getXY(a).y-i<8}return"h1"==g&&e.x-domUtils.getXY(a).x<8}function k(a,b){var c=Y(a);if(c){var d=c.getSameEndPosCells(a,"x")[0],e=c.getSameStartPosXCells(a)[0],g=f(b).x,h=(d?domUtils.getXY(d).x:domUtils.getXY(c.table).x)+20,i=e?domUtils.getXY(e).x+e.offsetWidth-20:N.body.offsetWidth+5||parseInt(domUtils.getComputedStyle(N.body,"width"),10);return h+=Q,i-=Q,gi?i:g}}function l(b,c){try{var d=domUtils.getXY(b).y,e=f(c).y;return ek[c]?(a=!1,!1):void l.push(d)});var b=a?l:k;utils.each(i,function(a,c){a.width=b[c]-G()})},0)}}}}function q(a){if(_(domUtils.getElementsByTagName(N.body,"td th")),utils.each(N.document.getElementsByTagName("table"),function(a){a.ueTable=null}),aa=M(N,a)){var b=domUtils.findParentByTagName(aa,"table",!0);ut=Y(b),ut&&ut.clearSelected(),da?r(a):(N.document.body.style.webkitUserSelect="",ia=!0,N.addListener("mouseover",x))}}function r(a){browser.ie&&(a=u(a)),t(),R=!0,O=setTimeout(function(){v(a)},W)}function s(a,b){for(var c=[],d=null,e=0,f=a.length;e0&&U--},W),2===U))return U=0,void p(b);if(2!=b.button){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"table",!0),f=domUtils.findParentByTagName(d.endContainer,"table",!0);if((e||f)&&(e===f?(e=domUtils.findParentByTagName(d.startContainer,["td","th","caption"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th","caption"],!0),e!==f&&c.selection.clearRange()):c.selection.clearRange()),ia=!1,c.document.body.style.webkitUserSelect="",ca&&ha&&(c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),U=0,ga=c.document.getElementById("ue_tableDragLine"))){var g=domUtils.getXY(ha),h=domUtils.getXY(ga);switch(ca){case"h":z(ha,h.x-g.x);break;case"v":B(ha,h.y-g.y-ha.offsetHeight)}return ca="",ha=null,I(c),void c.fireEvent("saveScene")}if(aa){var i=Y(aa),j=i?i.selectedTds[0]:null;if(j)d=new dom.Range(c.document),domUtils.isEmptyBlock(j)?d.setStart(j,0).setCursor(!1,!0):d.selectNodeContents(j).shrinkBoundary().setCursor(!1,!0);else if(d=c.selection.getRange().shrinkBoundary(),!d.collapsed){var e=domUtils.findParentByTagName(d.startContainer,["td","th"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th"],!0);(e&&!f||!e&&f||e&&f&&e!==f)&&d.setCursor(!1,!0)}aa=null,c.removeListener("mouseover",x)}else{var k=domUtils.findParentByTagName(b.target||b.srcElement,"td",!0);if(k||(k=domUtils.findParentByTagName(b.target||b.srcElement,"th",!0)),k&&("TD"==k.tagName||"TH"==k.tagName)){if(c.fireEvent("excludetable",k)===!0)return;d=new dom.Range(c.document),d.setStart(k,0).setCursor(!1,!0)}}c._selectionChange(250,b)}}}function x(a,b){if(!A()){var c=this,d=b.target||b.srcElement;if(ba=domUtils.findParentByTagName(d,"td",!0)||domUtils.findParentByTagName(d,"th",!0),aa&&ba&&("TD"==aa.tagName&&"TD"==ba.tagName||"TH"==aa.tagName&&"TH"==ba.tagName)&&domUtils.findParentByTagName(aa,"table")==domUtils.findParentByTagName(ba,"table")){var e=Y(ba);if(aa!=ba){c.document.body.style.webkitUserSelect="none",c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"]();var f=e.getCellsRange(aa,ba);e.setSelected(f)}else c.document.body.style.webkitUserSelect="",e.clearSelected()}b.preventDefault?b.preventDefault():b.returnValue=!1}}function y(a,b,c){var d=parseInt(domUtils.getComputedStyle(a,"line-height"),10),e=c+b;b=ef?(c&&g.push({left:a}),!1):void 0})}),g}function D(a,b,c){if(a-=G(),a<0)return 0;a-=E(b);var d=a<0?"left":"right";return a=Math.abs(a),utils.each(c,function(b){var c=b[d];c&&(a=Math.min(a,E(c)-Q))}),a=a<0?0:a,"left"===d?-a:a}function E(a){var b=0,b=a.offsetWidth-G();a.nextSibling||(b-=F(a)),b=b<0?0:b;try{a.width=b}catch(c){}return b}function F(a){if(tab=domUtils.findParentByTagName(a,"table",!1),void 0===tab.offsetVal){var b=a.previousSibling;b?tab.offsetVal=a.offsetWidth-b.offsetWidth===X.borderWidth?X.borderWidth:0:tab.offsetVal=0}return tab.offsetVal}function G(){if(void 0===X.tabcellSpace){var a=N.document.createElement("table"),b=N.document.createElement("tbody"),c=N.document.createElement("tr"),d=N.document.createElement("td"),e=null;d.style.cssText="border: 0;",d.width=1,c.appendChild(d),c.appendChild(e=d.cloneNode(!1)),b.appendChild(c),a.appendChild(b),a.style.cssText="visibility: hidden;",N.body.appendChild(a),X.paddingSpace=d.offsetWidth-1;var f=a.offsetWidth;d.style.cssText="",e.style.cssText="",X.borderWidth=(a.offsetWidth-f)/3,X.tabcellSpace=X.paddingSpace+X.borderWidth,N.body.removeChild(a)}return G=function(){return X.tabcellSpace},X.tabcellSpace}function H(a,b){ia||(ga=a.document.createElement("div"),domUtils.setAttributes(ga,{id:"ue_tableDragLine",unselectable:"on",contenteditable:!1,onresizestart:"return false",ondragstart:"return false",onselectstart:"return false",style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"}),a.body.appendChild(ga))}function I(a){if(!ia)for(var b;b=a.document.getElementById("ue_tableDragLine");)domUtils.remove(b)}function J(a,b){if(b){var c,d=domUtils.findParentByTagName(b,"table"),e=d.getElementsByTagName("caption"),f=d.offsetWidth,g=d.offsetHeight-(e.length>0?e[0].offsetHeight:0),h=domUtils.getXY(d),i=domUtils.getXY(b);switch(a){case"h":c="height:"+g+"px;top:"+(h.y+(e.length>0?e[0].offsetHeight:0))+"px;left:"+(i.x+b.offsetWidth),ga.style.cssText=c+"px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)";break;case"v":c="width:"+f+"px;left:"+h.x+"px;top:"+(i.y+b.offsetHeight),ga.style.cssText=c+"px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)"}}}function K(a,b){for(var c,d,e=domUtils.getElementsByTagName(a.body,"table"),f=0;d=e[f++];){var g=domUtils.getElementsByTagName(d,"td");g[0]&&(b?(c=g[0].style.borderColor.replace(/\s/g,""),/(#ffffff)|(rgb\(255,255,255\))/gi.test(c)&&domUtils.addClass(d,"noBorderTable")):domUtils.removeClasses(d,"noBorderTable"))}}function L(a,b,c){var d=a.body;return d.offsetWidth-(b?2*parseInt(domUtils.getComputedStyle(d,"margin-left"),10):0)-2*c.tableBorder-(a.options.offsetWidth||0)}function M(a,b){var c=domUtils.findParentByTagName(b.target||b.srcElement,["td","th"],!0),d=null;if(!c)return null;if(d=n(c,f(b)),!c)return null;if("h1"===d&&c.previousSibling){var e=domUtils.getXY(c),g=c.offsetWidth;Math.abs(e.x+g-b.clientX)>g/3&&(c=c.previousSibling)}else if("v1"===d&&c.parentNode.previousSibling){var e=domUtils.getXY(c),h=c.offsetHeight;Math.abs(e.y+h-b.clientY)>h/3&&(c=c.parentNode.previousSibling.firstChild)}return c&&a.fireEvent("excludetable",c)!==!0?c:null}var N=this,O=null,P=null,Q=5,R=!1,S=5,T=10,U=0,V=null,W=360,X=UE.UETable,Y=function(a){return X.getUETable(a)},Z=function(a){return X.getUETableBySelected(a)},$=function(a,b){return X.getDefaultValue(a,b)},_=function(a){return X.removeSelectedClass(a)};N.ready(function(){var a=this,b=a.selection.getText;a.selection.getText=function(){var c=Z(a);if(c){var d="";return utils.each(c.selectedTds,function(a){d+=a[browser.ie?"innerText":"textContent"]}),d}return b.call(a.selection)}});var aa=null,ba=null,ca="",da=!1,ea=null,fa=!1,ga=null,ha=null,ia=!1,ja=!0;N.setOpt({maxColNum:20,maxRowNum:100,defaultCols:5,defaultRows:5,tdvalign:"top",cursorpath:N.options.UEDITOR_HOME_URL+"themes/default/images/cursor_",tableDragable:!1,classList:["ue-table-interlace-color-single","ue-table-interlace-color-double"]}),N.getUETable=Y;var ka={deletetable:1,inserttable:1,cellvalign:1,insertcaption:1,deletecaption:1,inserttitle:1,deletetitle:1,mergeright:1,mergedown:1,mergecells:1,insertrow:1,insertrownext:1,deleterow:1,insertcol:1,insertcolnext:1,deletecol:1,splittocells:1,splittorows:1,splittocols:1,adaptbytext:1,adaptbywindow:1,adaptbycustomer:1,insertparagraph:1,insertparagraphbeforetable:1,averagedistributecol:1,averagedistributerow:1};N.ready(function(){utils.cssRule("table",".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}",N.document);var a,c,f;N.addListener("keydown",function(b,d){var g=this,h=d.keyCode||d.which;if(8==h){var i=Z(g);i&&i.selectedTds.length&&(i.isFullCol()?g.execCommand("deletecol"):i.isFullRow()?g.execCommand("deleterow"):g.fireEvent("delcells"),domUtils.preventDefault(d));var j=domUtils.findParentByTagName(g.selection.getStart(),"caption",!0),k=g.selection.getRange();if(k.collapsed&&j&&e(j)){g.fireEvent("saveScene");var l=j.parentNode;domUtils.remove(j),l&&k.setStart(l.rows[0].cells[0],0).setCursor(!1,!0),g.fireEvent("saveScene")}}if(46==h&&(i=Z(g))){g.fireEvent("saveScene");for(var m,n=0;m=i.selectedTds[n++];)domUtils.fillNode(g.document,m);g.fireEvent("saveScene"),domUtils.preventDefault(d)}if(13==h){var o=g.selection.getRange(),j=domUtils.findParentByTagName(o.startContainer,"caption",!0);if(j){var l=domUtils.findParentByTagName(j,"table");return o.collapsed?j&&o.setStart(l.rows[0].cells[0],0).setCursor(!1,!0):(o.deleteContents(),g.fireEvent("saveScene")),void domUtils.preventDefault(d)}if(o.collapsed){var l=domUtils.findParentByTagName(o.startContainer,"table");if(l){var p=l.rows[0].cells[0],q=domUtils.findParentByTagName(g.selection.getStart(),["td","th"],!0),r=l.previousSibling;if(p===q&&(!r||1==r.nodeType&&"TABLE"==r.tagName)&&domUtils.isStartInblock(o)){var s=domUtils.findParent(g.selection.getStart(),function(a){return domUtils.isBlockElm(a)},!0);s&&(/t(h|d)/i.test(s.tagName)||s===q.firstChild)&&(g.execCommand("insertparagraphbeforetable"),domUtils.preventDefault(d))}}}}if((d.ctrlKey||d.metaKey)&&"67"==d.keyCode){a=null;var i=Z(g);if(i){var t=i.selectedTds;c=i.isFullCol(),f=i.isFullRow(),a=[[i.cloneCell(t[0],null,!0)]];for(var m,n=1;m=t[n];n++)m.parentNode!==t[n-1].parentNode?a.push([i.cloneCell(m,null,!0)]):a[a.length-1].push(i.cloneCell(m,null,!0))}}}),N.addListener("tablehasdeleted",function(){m(this,!1,"",null),ea&&domUtils.remove(ea)}),N.addListener("beforepaste",function(d,g){var h=this,i=h.selection.getRange();if(domUtils.findParentByTagName(i.startContainer,"caption",!0)){var j=h.document.createElement("div");return j.innerHTML=g.html,void(g.html=j[browser.ie9below?"innerText":"textContent"])}var k=Z(h);if(a){h.fireEvent("saveScene");var l,m,i=h.selection.getRange(),n=domUtils.findParentByTagName(i.startContainer,["td","th"],!0);if(n){var o=Y(n);if(f){var p=o.getCellInfo(n).rowIndex;"TH"==n.tagName&&p++;for(var q,r=0;q=a[r++];){for(var s,t=o.insertRow(p++,"td"),u=0;s=q[u];u++){var v=t.cells[u];v||(v=t.insertCell(u)),v.innerHTML=s.innerHTML,s.getAttribute("width")&&v.setAttribute("width",s.getAttribute("width")),s.getAttribute("vAlign")&&v.setAttribute("vAlign",s.getAttribute("vAlign")),s.getAttribute("align")&&v.setAttribute("align",s.getAttribute("align")),s.style.cssText&&(v.style.cssText=s.style.cssText)}for(var s,u=0;(s=t.cells[u])&&q[u];u++)s.innerHTML=q[u].innerHTML,q[u].getAttribute("width")&&s.setAttribute("width",q[u].getAttribute("width")),q[u].getAttribute("vAlign")&&s.setAttribute("vAlign",q[u].getAttribute("vAlign")),q[u].getAttribute("align")&&s.setAttribute("align",q[u].getAttribute("align")),q[u].style.cssText&&(s.style.cssText=q[u].style.cssText)}}else{if(c){y=o.getCellInfo(n);for(var s,w=0,u=0,q=a[0];s=q[u++];)w+=s.colSpan||1;for(h.__hasEnterExecCommand=!0,r=0;r1&&(x.rowSpan=1)}var z=$(h),A=h.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(h.body,"margin-left"),10):0)-2*z.tableBorder-(h.options.offsetWidth||0);h.execCommand("insertHTML",""+k.innerHTML.replace(/>\s*<").replace(/\bth\b/gi,"td")+"
    ")}return h.fireEvent("contentchange"),h.fireEvent("saveScene"),g.html="",!0}var B,j=h.document.createElement("div");j.innerHTML=g.html,B=j.getElementsByTagName("table"),domUtils.findParentByTagName(h.selection.getStart(),"table")?(utils.each(B,function(a){domUtils.remove(a)}),domUtils.findParentByTagName(h.selection.getStart(),"caption",!0)&&(j.innerHTML=j[browser.ie?"innerText":"textContent"])):utils.each(B,function(a){b(a,!0),domUtils.removeAttributes(a,["style","border"]),utils.each(domUtils.getElementsByTagName(a,"td"),function(a){e(a)&&domUtils.fillNode(h.document,a),b(a,!0)})}),g.html=j.innerHTML}),N.addListener("afterpaste",function(){utils.each(domUtils.getElementsByTagName(N.body,"table"),function(a){if(a.offsetWidth>N.body.offsetWidth){var b=$(N,a);a.style.width=N.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(N.body,"margin-left"),10):0)-2*b.tableBorder-(N.options.offsetWidth||0)+"px"}})}),N.addListener("blur",function(){a=null});var i;N.addListener("keydown",function(){clearTimeout(i),i=setTimeout(function(){var a=N.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,["th","td"],!0);if(b){var c=b.parentNode.parentNode.parentNode;c.offsetWidth>c.getAttribute("width")&&(b.style.wordBreak="break-all")}},100)}),N.addListener("selectionchange",function(){m(N,!1,"",null)}),N.addListener("contentchange",function(){var a=this;if(I(a),!Z(a)){var b=a.selection.getRange(),c=b.startContainer;c=domUtils.findParentByTagName(c,["td","th"],!0),utils.each(domUtils.getElementsByTagName(a.document,"table"),function(b){a.fireEvent("excludetable",b)!==!0&&(b.ueTable=new X(b),b.onmouseover=function(){a.fireEvent("tablemouseover",b)},b.onmousemove=function(){a.fireEvent("tablemousemove",b),a.options.tableDragable&&h(!0,this,a),utils.defer(function(){a.fireEvent("contentchange",50)},!0)},b.onmouseout=function(){a.fireEvent("tablemouseout",b),m(a,!1,"",null),I(a)},b.onclick=function(b){b=a.window.event||b;var c=d(b.target||b.srcElement);if(c){var e,f=Y(c),g=f.table,h=f.getCellInfo(c),i=a.selection.getRange();if(j(g,c,b,!0)){var k=f.getCell(f.indexTable[f.rowsNum-1][h.colIndex].rowIndex,f.indexTable[f.rowsNum-1][h.colIndex].cellIndex);return void(b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==k?(e=f.getCellsRange(f.selectedTds[0],k),f.setSelected(e)):i&&i.selectNodeContents(k).select():c!==k?(e=f.getCellsRange(c,k),f.setSelected(e)):i&&i.selectNodeContents(k).select())}if(j(g,c,b)){var l=f.getCell(f.indexTable[h.rowIndex][f.colsNum-1].rowIndex,f.indexTable[h.rowIndex][f.colsNum-1].cellIndex);b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==l?(e=f.getCellsRange(f.selectedTds[0],l),f.setSelected(e)):i&&i.selectNodeContents(l).select():c!==l?(e=f.getCellsRange(c,l),f.setSelected(e)):i&&i.selectNodeContents(l).select()}}})}),K(a,!0)}}),domUtils.on(N.document,"mousemove",g),domUtils.on(N.document,"mouseout",function(a){var b=a.target||a.srcElement;"TABLE"==b.tagName&&m(N,!1,"",null)}),N.addListener("interlacetable",function(a,b,c){if(b)for(var d=this,e=b.rows,f=e.length,g=function(a,b,c){return a[b]?a[b]:c?a[b%a.length]:""},h=0;h1?k:f.getCellInfo(d).rowIndex;var g=f.getTabNextCell(d,k);g?e(g)?a.setStart(g,0).setCursor(!1,!0):a.selectNodeContents(g).select():(N.fireEvent("saveScene"),N.__hasEnterExecCommand=!0,this.execCommand("insertrownext"),N.__hasEnterExecCommand=!1,a=this.selection.getRange(),a.setStart(c.rows[c.rows.length-1].cells[0],0).setCursor(),N.fireEvent("saveScene"))}return!0}}),browser.ie&&N.addListener("selectionchange",function(){m(this,!1,"",null)}),N.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(8!=d&&46!=d){var e=!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey);e&&_(domUtils.getElementsByTagName(c.body,"td"));var f=Z(c);f&&e&&f.clearSelected()}}),N.addListener("beforegetcontent",function(){K(this,!1),browser.ie&&utils.each(this.document.getElementsByTagName("caption"),function(a){domUtils.isEmptyNode(a)&&(a.innerHTML=" ")})}),N.addListener("aftergetcontent",function(){K(this,!0)}),N.addListener("getAllHtml",function(){_(N.document.getElementsByTagName("td"))}),N.addListener("fullscreenchanged",function(a,b){if(!b){var c=this.body.offsetWidth/document.body.offsetWidth,d=domUtils.getElementsByTagName(this.body,"table");utils.each(d,function(a){if(a.offsetWidth1||c[e].getAttribute("rowspan")>1)return-1;return b?"enablesort"==a^"sortEnabled"!=b.getAttribute("data-sort")?-1:0:-1},execCommand:function(a){var b=d(this).table;b.setAttribute("data-sort","enablesort"==a?"sortEnabled":"sortDisabled"),"enablesort"==a?domUtils.addClass(b,"sortEnabled"):domUtils.removeClasses(b,"sortEnabled")}}},UE.plugins.contextmenu=function(){var a=this;if(a.setOpt("enableContextMenu",!0),a.getOpt("enableContextMenu")!==!1){var b,c=a.getLang("contextMenu"),d=a.options.contextMenu||[{label:c.selectall,cmdName:"selectall"},{label:c.cleardoc,cmdName:"cleardoc",exec:function(){confirm(c.confirmclear)&&this.execCommand("cleardoc")}},"-",{label:c.unlink,cmdName:"unlink"},"-",{group:c.paragraph,icon:"justifyjustify",subMenu:[{label:c.justifyleft,cmdName:"justify",value:"left"},{label:c.justifyright,cmdName:"justify",value:"right"},{label:c.justifycenter,cmdName:"justify",value:"center"},{label:c.justifyjustify,cmdName:"justify",value:"justify"}]},"-",{group:c.table,icon:"table",subMenu:[{label:c.inserttable,cmdName:"inserttable"},{label:c.deletetable,cmdName:"deletetable"},"-",{label:c.deleterow,cmdName:"deleterow"},{label:c.deletecol,cmdName:"deletecol"},{label:c.insertcol,cmdName:"insertcol"},{label:c.insertcolnext,cmdName:"insertcolnext"},{label:c.insertrow,cmdName:"insertrow"},{label:c.insertrownext,cmdName:"insertrownext"},"-",{label:c.insertcaption,cmdName:"insertcaption"},{label:c.deletecaption,cmdName:"deletecaption"},{label:c.inserttitle,cmdName:"inserttitle"},{label:c.deletetitle,cmdName:"deletetitle"},{label:c.inserttitlecol,cmdName:"inserttitlecol"},{label:c.deletetitlecol,cmdName:"deletetitlecol"},"-",{label:c.mergecells,cmdName:"mergecells"},{label:c.mergeright,cmdName:"mergeright"},{label:c.mergedown,cmdName:"mergedown"},"-",{label:c.splittorows,cmdName:"splittorows"},{label:c.splittocols,cmdName:"splittocols"},{label:c.splittocells,cmdName:"splittocells"},"-",{label:c.averageDiseRow,cmdName:"averagedistributerow"},{label:c.averageDisCol,cmdName:"averagedistributecol"},"-",{label:c.edittd,cmdName:"edittd",exec:function(){UE.ui.edittd&&new UE.ui.edittd(this),this.getDialog("edittd").open()}},{label:c.edittable,cmdName:"edittable",exec:function(){UE.ui.edittable&&new UE.ui.edittable(this),this.getDialog("edittable").open()}},{label:c.setbordervisible,cmdName:"setbordervisible"}]},{group:c.tablesort,icon:"tablesort",subMenu:[{label:c.enablesort,cmdName:"enablesort"},{label:c.disablesort,cmdName:"disablesort"},"-",{label:c.reversecurrent,cmdName:"sorttable",value:"reversecurrent"},{label:c.orderbyasc,cmdName:"sorttable",value:"orderbyasc"},{label:c.reversebyasc,cmdName:"sorttable",value:"reversebyasc"},{label:c.orderbynum,cmdName:"sorttable",value:"orderbynum"},{label:c.reversebynum,cmdName:"sorttable",value:"reversebynum"}]},{group:c.borderbk,icon:"borderBack",subMenu:[{label:c.setcolor,cmdName:"interlacetable",exec:function(){this.execCommand("interlacetable")}},{label:c.unsetcolor,cmdName:"uninterlacetable",exec:function(){this.execCommand("uninterlacetable")}},{label:c.setbackground,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#bbb","#ccc"]})}},{label:c.unsetbackground,cmdName:"cleartablebackground",exec:function(){this.execCommand("cleartablebackground")}},{label:c.redandblue,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["red","blue"]})}},{label:c.threecolorgradient,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#aaa","#bbb","#ccc"]})}}]},{group:c.aligntd,icon:"aligntd",subMenu:[{cmdName:"cellalignment",value:{align:"left",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"bottom"}}]},{group:c.aligntable,icon:"aligntable",subMenu:[{cmdName:"tablealignment",className:"left",label:c.tableleft,value:"left"},{cmdName:"tablealignment",className:"center",label:c.tablecenter,value:"center"},{cmdName:"tablealignment",className:"right",label:c.tableright,value:"right"}]},"-",{label:c.insertparagraphbefore,cmdName:"insertparagraph",value:!0},{label:c.insertparagraphafter,cmdName:"insertparagraph"},{label:c.copy,cmdName:"copy"},{label:c.paste,cmdName:"paste"}];if(d.length){var e=UE.ui.uiUtils;a.addListener("contextmenu",function(f,g){var h=e.getViewportOffsetByEvent(g);a.fireEvent("beforeselectionchange"),b&&b.destroy();for(var i,j=0,k=[];i=d[j];j++){var l;!function(b){function d(){switch(b.icon){case"table":return a.getLang("contextMenu.table");case"justifyjustify":return a.getLang("contextMenu.paragraph");case"aligntd":return a.getLang("contextMenu.aligntd");case"aligntable":return a.getLang("contextMenu.aligntable");case"tablesort":return c.tablesort;case"borderBack":return c.borderbk;default:return""}}if("-"==b)(l=k[k.length-1])&&"-"!==l&&k.push("-");else if(b.hasOwnProperty("group")){for(var e,f=0,g=[];e=b.subMenu[f];f++)!function(b){"-"==b?(l=g[g.length-1])&&"-"!==l?g.push("-"):g.splice(g.length-1):(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query():a.queryCommandState(b.cmdName))>-1&&g.push({label:b.label||a.getLang("contextMenu."+b.cmdName+(b.value||""))||"",className:"edui-for-"+b.cmdName+(b.className?" edui-for-"+b.cmdName+"-"+b.className:""),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(e);g.length&&k.push({label:d(),className:"edui-for-"+b.icon,subMenu:{items:g,editor:a}})}else(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query.call(a):a.queryCommandState(b.cmdName))>-1&&k.push({label:b.label||a.getLang("contextMenu."+b.cmdName),className:"edui-for-"+(b.icon?b.icon:b.cmdName+(b.value||"")),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(i)}if("-"==k[k.length-1]&&k.pop(),b=new UE.ui.Menu({items:k,className:"edui-contextmenu",editor:a}),b.render(),b.showAt(h),a.fireEvent("aftershowcontextmenu",b),domUtils.preventDefault(g),browser.ie){var m;try{m=a.selection.getNative().createRange()}catch(n){return}if(m.item){var o=new dom.Range(a.document);o.selectNode(m.item(0)).select(!0,!0)}}}),a.addListener("aftershowcontextmenu",function(b,c){if(a.zeroclipboard){var d=c.items;for(var e in d)"edui-for-copy"==d[e].className&&a.zeroclipboard.clip(d[e].getDom())}})}}},UE.plugins.shortcutmenu=function(){var a,b=this,c=b.options.shortcutMenu||[];c.length&&(b.addListener("contextmenu mouseup",function(b,d){var e=this,f={type:b,target:d.target||d.srcElement,screenX:d.screenX,screenY:d.screenY,clientX:d.clientX,clientY:d.clientY};if(setTimeout(function(){var d=e.selection.getRange();d.collapsed!==!1&&"contextmenu"!=b||(a||(a=new baidu.editor.ui.ShortCutMenu({editor:e,items:c,theme:e.options.theme,className:"edui-shortcutmenu"}),a.render(),e.fireEvent("afterrendershortcutmenu",a)),a.show(f,!!UE.plugins.contextmenu))}),"contextmenu"==b&&(domUtils.preventDefault(d),browser.ie9below)){var g;try{g=e.selection.getNative().createRange()}catch(d){return}if(g.item){var h=new dom.Range(e.document);h.selectNode(g.item(0)).select(!0,!0)}}}),b.addListener("keydown",function(b){"keydown"==b&&a&&!a.isHidden&&a.hide()}))},UE.plugins.basestyle=function(){var a={bold:["strong","b"],italic:["em","i"],subscript:["sub"],superscript:["sup"]},b=function(a,b){return domUtils.filterNodeList(a.selection.getStartElementPath(),b)},c=this;c.addshortcutkey({Bold:"ctrl+66",Italic:"ctrl+73",Underline:"ctrl+85"}),c.addInputRule(function(a){utils.each(a.getNodesByTagName("b i"),function(a){switch(a.tagName){case"b":a.tagName="strong";break;case"i":a.tagName="em"}})});for(var d in a)!function(a,d){c.commands[a]={execCommand:function(a){var e=c.selection.getRange(),f=b(this,d);if(e.collapsed){if(f){var g=c.document.createTextNode("");e.insertNode(g).removeInlineStyle(d),e.setStartBefore(g),domUtils.remove(g)}else{var h=e.document.createElement(d[0]);"superscript"!=a&&"subscript"!=a||(g=c.document.createTextNode(""),e.insertNode(g).removeInlineStyle(["sub","sup"]).setStartBefore(g).collapse(!0)),e.insertNode(h).setStart(h,0)}e.collapse(!0)}else"superscript"!=a&&"subscript"!=a||f&&f.tagName.toLowerCase()==a||e.removeInlineStyle(["sub","sup"]),f?e.removeInlineStyle(d):e.applyInlineStyle(d[0]);e.select()},queryCommandState:function(){return b(this,d)?1:0}}}(d,a[d])},UE.plugins.elementpath=function(){var a,b,c=this;c.setOpt("elementPathEnabled",!0),c.options.elementPathEnabled&&(c.commands.elementpath={execCommand:function(d,e){var f=b[e],g=c.selection.getRange();a=1*e,g.selectNode(f).select()},queryCommandValue:function(){var c=[].concat(this.selection.getStartElementPath()).reverse(),d=[];b=c;for(var e,f=0;e=c[f];f++)if(3!=e.nodeType){var g=e.tagName.toLowerCase();if("img"==g&&e.getAttribute("anchorname")&&(g="anchor"),d[f]=g,a==f){a=-1;break}}return d}})},UE.plugins.formatmatch=function(){function a(f,g){function h(a){return m&&a.selectNode(m),a.applyInlineStyle(d[d.length-1].tagName,null,d)}if(browser.webkit)var i="IMG"==g.target.tagName?g.target:null;c.undoManger&&c.undoManger.save();var j=c.selection.getRange(),k=i||j.getClosedNode();if(b&&k&&"IMG"==k.tagName)k.style.cssText+=";float:"+(b.style.cssFloat||b.style.styleFloat||"none")+";display:"+(b.style.display||"inline"),b=null;else if(!b){var l=j.collapsed;if(l){var m=c.document.createTextNode("match");j.insertNode(m).select()}c.__hasEnterExecCommand=!0;var n=c.options.removeFormatAttributes;c.options.removeFormatAttributes="",c.execCommand("removeformat"),c.options.removeFormatAttributes=n,c.__hasEnterExecCommand=!1,j=c.selection.getRange(),d.length&&h(j),m&&j.setStartBefore(m).collapse(!0),j.select(),m&&domUtils.remove(m)}c.undoManger&&c.undoManger.save(),c.removeListener("mouseup",a),e=0}var b,c=this,d=[],e=0;c.addListener("reset",function(){d=[],e=0}),c.commands.formatmatch={execCommand:function(f){if(e)return e=0,d=[],void c.removeListener("mouseup",a);var g=c.selection.getRange();if(b=g.getClosedNode(),!b||"IMG"!=b.tagName){g.collapse(!0).shrinkBoundary();var h=g.startContainer;d=domUtils.findParents(h,!0,function(a){return!domUtils.isBlockElm(a)&&1==a.nodeType});for(var i,j=0;i=d[j];j++)if("A"==i.tagName){d.splice(j,1);break}}c.addListener("mouseup",a),e=1},queryCommandState:function(){return e},notNeedUndo:1}},UE.plugin.register("searchreplace",function(){function a(a,b,c){var d=b.searchStr;b.dir==-1&&(a=a.split("").reverse().join(""),d=d.split("").reverse().join(""),c=a.length-c);for(var e,f=new RegExp(d,"g"+(b.casesensitive?"":"i"));e=f.exec(a);)if(e.index>=c)return b.dir==-1?a.length-e.index-b.searchStr.length:e.index;return-1}function b(b,c,d){var e,f,h=d.all||1==d.dir?"getNextDomNode":"getPreDomNode";domUtils.isBody(b)&&(b=b.firstChild);for(var i=1;b;){if(e=3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"],f=a(e,d,c),i=0,f!=-1)return{node:b,index:f};for(b=domUtils[h](b);b&&g[b.nodeName.toLowerCase()];)b=domUtils[h](b,!0);b&&(c=d.dir==-1?(3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"]).length:0)}}function c(a,b,d){for(var e,f=0,g=a.firstChild,h=0;g;){if(3==g.nodeType){if(h=g.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b)return{node:g,index:h-(f-b)}}else if(!dtd.$empty[g.tagName]&&(h=g[browser.ie?"innerText":"textContent"].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b&&(e=c(g,h-(f-b),d))))return e;g=domUtils.getNextDomNode(g)}}function d(a,d){var f,g=a.selection.getRange(),h=d.searchStr,i=a.document.createElement("span");if(i.innerHTML="$$ueditor_searchreplace_key$$",g.shrinkBoundary(!0),!g.collapsed){g.select();var j=a.selection.getText();if(new RegExp("^"+d.searchStr+"$",d.casesensitive?"":"i").test(j)){if(void 0!=d.replaceStr)return e(g,d.replaceStr),g.select(),!0;g.collapse(d.dir==-1)}}g.insertNode(i),g.enlargeToBlockElm(!0),f=g.startContainer;var k=f[browser.ie?"innerText":"textContent"].indexOf("$$ueditor_searchreplace_key$$");g.setStartBefore(i),domUtils.remove(i);var l=b(f,k,d);if(l){var m=c(l.node,l.index,h),n=c(l.node,l.index+h.length,h);return g.setStart(m.node,m.index).setEnd(n.node,n.index),void 0!==d.replaceStr&&e(g,d.replaceStr),g.select(),!0}g.setCursor()}function e(a,b){b=f.document.createTextNode(b),a.deleteContents().insertNode(b)}var f=this,g={table:1,tbody:1,tr:1,ol:1,ul:1};return{commands:{searchreplace:{execCommand:function(a,b){utils.extend(b,{all:!1,casesensitive:!1,dir:1},!0);var c=0;if(b.all){var e=f.selection.getRange(),g=f.body.firstChild;for(g&&1==g.nodeType?(e.setStart(g,0),e.shrinkBoundary(!0)):3==g.nodeType&&e.setStartBefore(g),e.collapse(!0).select(!0),void 0!==b.replaceStr&&f.fireEvent("saveScene");d(this,b);)c++;c&&f.fireEvent("saveScene")}else void 0!==b.replaceStr&&f.fireEvent("saveScene"),d(this,b)&&c++,c&&f.fireEvent("saveScene");return c},notNeedUndo:1}}}}),UE.plugins.customstyle=function(){var a=this;a.setOpt({customstyle:[{tag:"h1",name:"tc",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;"},{tag:"h1",name:"tl",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;"},{tag:"span",name:"im",style:"font-size:16px;font-style:italic;font-weight:bold;line-height:18px;"},{tag:"span",name:"hi",style:"font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;"}]}),a.commands.customstyle={execCommand:function(a,b){var c,d,e=this,f=b.tag,g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")},!0),h={};for(var i in b)void 0!==b[i]&&(h[i]=b[i]);if(delete h.tag,g&&g.getAttribute("label")==b.label){if(c=this.selection.getRange(),d=c.createBookmark(),c.collapsed)if(dtd.$block[g.tagName]){var j=e.document.createElement("p");domUtils.moveChild(g,j),g.parentNode.insertBefore(j,g),domUtils.remove(g)}else domUtils.remove(g,!0);else{var k=domUtils.getCommonAncestor(d.start,d.end),l=domUtils.getElementsByTagName(k,f);new RegExp(f,"i").test(k.tagName)&&l.push(k);for(var m,n=0;m=l[n++];)if(m.getAttribute("label")==b.label){var o=domUtils.getPosition(m,d.start),p=domUtils.getPosition(m,d.end);if((o&domUtils.POSITION_FOLLOWING||o&domUtils.POSITION_CONTAINS)&&(p&domUtils.POSITION_PRECEDING||p&domUtils.POSITION_CONTAINS)&&dtd.$block[f]){var j=e.document.createElement("p");domUtils.moveChild(m,j),m.parentNode.insertBefore(j,m)}domUtils.remove(m,!0)}g=domUtils.findParent(k,function(a){return a.getAttribute("label")==b.label},!0),g&&domUtils.remove(g,!0)}c.moveToBookmark(d).select()}else if(dtd.$block[f]){if(this.execCommand("paragraph",f,h,"customstyle"),c=e.selection.getRange(),!c.collapsed){c.collapse(),g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")==b.label},!0);var q=e.document.createElement("p");domUtils.insertAfter(g,q),domUtils.fillNode(e.document,q),c.setStart(q,0).setCursor()}}else{if(c=e.selection.getRange(),c.collapsed)return g=e.document.createElement(f),domUtils.setAttributes(g,h),void c.insertNode(g).setStart(g,0).setCursor();d=c.createBookmark(),c.applyInlineStyle(f,h).moveToBookmark(d).select()}},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return a.getAttribute("label")});return a?a.getAttribute("label"):""}},a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(32==d||13==d){var e=a.selection.getRange();if(e.collapsed){var f=domUtils.findParent(a.selection.getStart(),function(a){return a.getAttribute("label")},!0);if(f&&dtd.$block[f.tagName]&&domUtils.isEmptyNode(f)){var g=a.document.createElement("p");domUtils.insertAfter(f,g),domUtils.fillNode(a.document,g),domUtils.remove(f),e.setStart(g,0).setCursor()}}}})},UE.plugins.catchremoteimage=function(){var me=this,ajax=UE.ajax;me.options.catchRemoteImageEnable!==!1&&(me.setOpt({catchRemoteImageEnable:!1}),me.addListener("afterpaste",function(){me.fireEvent("catchRemoteImage")}),me.addListener("catchRemoteImage",function(){function catchremoteimage(a,b){var c=utils.serializeParam(me.queryCommandValue("serverparam"))||"",d=utils.formatUrl(catcherActionUrl+(catcherActionUrl.indexOf("?")==-1?"?":"&")+c),e=utils.isCrossDomainUrl(d),f={method:"POST",dataType:e?"jsonp":"",timeout:6e4,onsuccess:b.success,onerror:b.error};f[catcherFieldName]=a,ajax.request(d,f)}for(var catcherLocalDomain=me.getOpt("catcherLocalDomain"),catcherActionUrl=me.getActionUrl(me.getOpt("catcherActionName")),catcherUrlPrefix=me.getOpt("catcherUrlPrefix"),catcherFieldName=me.getOpt("catcherFieldName"),remoteImages=[],imgs=domUtils.getElementsByTagName(me.document,"img"),test=function(a,b){if(a.indexOf(location.host)!=-1||/(^\.)|(^\/)/.test(a))return!0;if(b)for(var c,d=0;c=b[d++];)if(a.indexOf(c)!==-1)return!0;return!1},i=0,ci;ci=imgs[i++];)if(!ci.getAttribute("word_img")){var src=ci.getAttribute("_src")||ci.src||"";/^(https?|ftp):/i.test(src)&&!test(src,catcherLocalDomain)&&remoteImages.push(src)}remoteImages.length&&catchremoteimage(remoteImages,{success:function(r){try{var info=void 0!==r.state?r:eval("("+r.responseText+")")}catch(e){return}var i,j,ci,cj,oldSrc,newSrc,list=info.list;for(i=0;ci=imgs[i++];)for(oldSrc=ci.getAttribute("_src")||ci.src||"",j=0;cj=list[j++];)if(oldSrc==cj.source&&"SUCCESS"==cj.state){newSrc=catcherUrlPrefix+cj.url,domUtils.setAttributes(ci,{src:newSrc,_src:newSrc});break}me.fireEvent("catchremotesuccess")},error:function(){me.fireEvent("catchremoteerror")}})}))},UE.plugin.register("snapscreen",function(){function getLocation(a){var b,c=document.createElement("a"),d=utils.serializeParam(me.queryCommandValue("serverparam"))||"";return c.href=a,browser.ie&&(c.href=c.href),b=c.search,d&&(b=b+(b.indexOf("?")==-1?"?":"&")+d,b=b.replace(/[&]+/gi,"&")),{port:c.port,hostname:c.hostname,path:c.pathname+b||+c.hash}}var me=this,snapplugin;return{commands:{snapscreen:{execCommand:function(cmd){function onSuccess(rs){try{if(rs=eval("("+rs+")"),"SUCCESS"==rs.state){var opt=me.options;me.execCommand("insertimage",{src:opt.snapscreenUrlPrefix+rs.url,_src:opt.snapscreenUrlPrefix+rs.url,alt:rs.title||"",floatStyle:opt.snapscreenImgAlign})}else alert(rs.state)}catch(e){alert(lang.callBackErrorMsg)}}var url,local,res,lang=me.getLang("snapScreen_plugin");if(!snapplugin){var container=me.container,doc=me.container.ownerDocument||me.container.document;snapplugin=doc.createElement("object");try{snapplugin.type="application/x-pluginbaidusnap"}catch(e){return}snapplugin.style.cssText="position:absolute;left:-9999px;width:0;height:0;",snapplugin.setAttribute("width","0"),snapplugin.setAttribute("height","0"),container.appendChild(snapplugin)}url=me.getActionUrl(me.getOpt("snapscreenActionName")),local=getLocation(url),setTimeout(function(){try{res=snapplugin.saveSnapshot(local.hostname,local.path,local.port)}catch(a){return void me.ui._dialogs.snapscreenDialog.open()}onSuccess(res)},50)},queryCommandState:function(){return navigator.userAgent.indexOf("Windows",0)!=-1?0:-1}}}}}),UE.commands.insertparagraph={execCommand:function(a,b){for(var c,d=this,e=d.selection.getRange(),f=e.startContainer;f&&!domUtils.isBody(f);)c=f,f=f.parentNode;if(c){var g=d.document.createElement("p");b?c.parentNode.insertBefore(g,c):c.parentNode.insertBefore(g,c.nextSibling),domUtils.fillNode(d.document,g),e.setStart(g,0).setCursor(!1,!0)}}},UE.plugin.register("webapp",function(){function a(a,c){return c?'':'"}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-webapp"==b.getAttr("class")){c=a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("_url"),logo:b.getAttr("_logo_url")},!0);var d=UE.uNode.createElement(c);b.parentNode.replaceChild(d,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("iframe"),function(b){if("edui-faked-webapp"==b.getAttr("class")){var c=UE.uNode.createElement(a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("src"),logo:b.getAttr("logo_url")}));b.parentNode.replaceChild(c,b)}})},commands:{webapp:{execCommand:function(b,c){var d=this,e=a(utils.extend(c,{align:"none"}),!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-webapp"==b.className;return c?1:0}}}}}),UE.plugins.template=function(){UE.commands.template={execCommand:function(a,b){b.html&&this.execCommand("inserthtml",b.html)}},this.addListener("click",function(a,b){var c=b.target||b.srcElement,d=this.selection.getRange(),e=domUtils.findParent(c,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);e&&d.selectNode(e).shrinkBoundary().select()}),this.addListener("keydown",function(a,b){var c=this.selection.getRange();if(!c.collapsed&&!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){var d=domUtils.findParent(c.startContainer,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);d&&domUtils.removeClasses(d,["ue_t"])}})},UE.plugin.register("music",function(){function a(a,c,d,e,f,g){return g?'':"'}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-music"==b.getAttr("class")){var d=b.getStyle("float"),e=b.getAttr("align");c=a(b.getAttr("_url"),b.getAttr("width"),b.getAttr("height"),e,d,!0);var f=UE.uNode.createElement(c);b.parentNode.replaceChild(f,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("embed"),function(b){if("edui-faked-music"==b.getAttr("class")){var c=b.getStyle("float"),d=b.getAttr("align");html=a(b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),d,c,!1);var e=UE.uNode.createElement(html);b.parentNode.replaceChild(e,b)}})},commands:{music:{execCommand:function(b,c){var d=this,e=a(c.url,c.width||400,c.height||95,"none",!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-music"==b.className;return c?1:0}}}}}),UE.plugin.register("autoupload",function(){function a(a,b){var c,d,e,f,g,h,i,j,k=b,l=/image\/\w+/i.test(a.type)?"image":"file",m="loading_"+(+new Date).toString(36);if(c=k.getOpt(l+"FieldName"),d=k.getOpt(l+"UrlPrefix"),e=k.getOpt(l+"MaxSize"),f=k.getOpt(l+"AllowFiles"),g=k.getActionUrl(k.getOpt(l+"ActionName")),i=function(a){var b=k.document.getElementById(m);b&&domUtils.remove(b),k.fireEvent("showmessage",{id:m,content:a,type:"error",timeout:4e3})},"image"==l?(h='',j=function(a){var b=d+a.url,c=k.document.getElementById(m);c&&(c.setAttribute("src",b),c.setAttribute("_src",b),c.setAttribute("title",a.title||""),c.setAttribute("alt",a.original||""),c.removeAttribute("id"),domUtils.removeClasses(c,"loadingclass"))}):(h='

    ',j=function(a){var b=d+a.url,c=k.document.getElementById(m),e=k.selection.getRange(),f=e.createBookmark();e.selectNode(c).select(),k.execCommand("insertfile",{url:b}),e.moveToBookmark(f).select()}),k.execCommand("inserthtml",h),!k.getOpt(l+"ActionName"))return void i(k.getLang("autoupload.errorLoadConfig"));if(a.size>e)return void i(k.getLang("autoupload.exceedSizeError"));var n=a.name?a.name.substr(a.name.lastIndexOf(".")):"";if(n&&"image"!=l||f&&(f.join("")+".").indexOf(n.toLowerCase()+".")==-1)return void i(k.getLang("autoupload.exceedTypeError"));var o=new XMLHttpRequest,p=new FormData,q=utils.serializeParam(k.queryCommandValue("serverparam"))||"",r=utils.formatUrl(g+(g.indexOf("?")==-1?"?":"&")+q);p.append(c,a,a.name||"blob."+a.type.substr("image/".length)),p.append("type","ajax"),o.open("post",r,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.addEventListener("load",function(a){try{var b=new Function("return "+utils.trim(a.target.response))();"SUCCESS"==b.state&&b.url?j(b):i(b.state)}catch(c){i(k.getLang("autoupload.loadError"))}}),o.send(p)}function b(a){return a.clipboardData&&a.clipboardData.items&&1==a.clipboardData.items.length&&/^image\//.test(a.clipboardData.items[0].type)?a.clipboardData.items:null}function c(a){return a.dataTransfer&&a.dataTransfer.files?a.dataTransfer.files:null}return{outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)}),utils.each(a.getNodesByTagName("p"),function(a){/\bloadpara\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})},bindEvents:{ready:function(d){var e=this;window.FormData&&window.FileReader&&(domUtils.on(e.body,"paste drop",function(d){var f,g=!1;if(f="paste"==d.type?b(d):c(d)){for(var h,i=f.length;i--;)h=f[i],h.getAsFile&&(h=h.getAsFile()),h&&h.size>0&&(a(h,e),g=!0);g&&d.preventDefault()}}),domUtils.on(e.body,"dragover",function(a){"Files"==a.dataTransfer.types[0]&&a.preventDefault()}),utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document))}}}}),UE.plugin.register("autosave",function(){function a(a){var f;if(!(new Date-c0?b._saveFlag=window.setTimeout(function(){a(b)},b.options.saveInterval):a(b))}},commands:{clearlocaldata:{execCommand:function(a,c){e&&b.getPreferences(e)&&b.removePreferences(e)},notNeedUndo:!0,ignoreContentChange:!0},getlocaldata:{execCommand:function(a,c){return e?b.getPreferences(e)||"":""},notNeedUndo:!0,ignoreContentChange:!0},drafts:{execCommand:function(a,c){e&&(b.body.innerHTML=b.getPreferences(e)||"

    "+domUtils.fillHtml+"

    ",b.focus(!0))},queryCommandState:function(){return e?null===b.getPreferences(e)?-1:0:-1},notNeedUndo:!0,ignoreContentChange:!0}}}}),UE.plugin.register("charts",function(){function a(a){var b=null,c=0;if(a.rows.length<2)return!1;if(a.rows[0].cells.length<2)return!1;b=a.rows[0].cells,c=b.length;for(var d,e=0;d=b[e];e++)if("th"!==d.tagName.toLowerCase())return!1;for(var f,e=1;f=a.rows[e];e++){if(f.cells.length!=c)return!1;if("th"!==f.cells[0].tagName.toLowerCase())return!1;for(var d,g=1;d=f.cells[g];g++){var h=utils.trim(d.innerText||d.textContent||"");if(h=h.replace(new RegExp(UE.dom.domUtils.fillChar,"g"),"").replace(/^\s+|\s+$/g,""),!/^\d*\.?\d+$/.test(h))return!1}}return!0}var b=this;return{bindEvents:{chartserror:function(){}},commands:{charts:{execCommand:function(c,d){var e=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0),f=[],g={};if(!e)return!1;if(!a(e))return b.fireEvent("chartserror"),!1;g.title=d.title||"",g.subTitle=d.subTitle||"",g.xTitle=d.xTitle||"",g.yTitle=d.yTitle||"",g.suffix=d.suffix||"",g.tip=d.tip||"",g.dataFormat=d.tableDataFormat||"",g.chartType=d.chartType||0;for(var h in g)g.hasOwnProperty(h)&&f.push(h+":"+g[h]); -e.setAttribute("data-chart",f.join(";")),domUtils.addClass(e,"edui-charts-table")},queryCommandState:function(b,c){var d=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0);return d&&a(d)?0:-1}}},inputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style")})},outputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style","display: none;")})}}}),UE.plugin.register("section",function(){function a(a){this.tag="",this.level=-1,this.dom=null,this.nextSection=null,this.previousSection=null,this.parentSection=null,this.startAddress=[],this.endAddress=[],this.children=[]}function b(b){var c=new a;return utils.extend(c,b)}function c(a,b){for(var c=b,d=0;d=0){var o=h.selection.getRange().selectNode(i).createAddress(!0).startAddress,p=b({tag:i.tagName,title:i.innerText||i.textContent||"",level:f,dom:i,startAddress:utils.clone(o,[]),endAddress:utils.clone(o,[]),children:[]});for(j.nextSection=p,p.previousSection=j,g=j;f<=g.level;)g=g.parentSection;p.parentSection=g,g.children.push(p),k=j=p}else 1===i.nodeType&&e(i,c),k&&k.endAddress[k.endAddress.length-1]++}for(var f=c||["h1","h2","h3","h4","h5","h6"],g=0;g=c.length);f++){if(c[f]>a[f]){d=!0;break}if(c[f]=c.length);f++){if(c[f]a[f])break}return d&&e}var g,h,i=this;if(b&&d&&d.level!=-1&&(g=e?d.endAddress:d.startAddress,h=c(g,i.body),g&&h&&!f(b.startAddress,b.endAddress,g))){var j,k,l=c(b.startAddress,i.body),m=c(b.endAddress,i.body);if(e)for(j=m;j&&!(domUtils.getPosition(l,j)&domUtils.POSITION_FOLLOWING)&&(k=j.previousSibling,domUtils.insertAfter(h,j),j!=l);)j=k;else for(j=l;j&&!(domUtils.getPosition(j,m)&domUtils.POSITION_FOLLOWING)&&(k=j.nextSibling,h.parentNode.insertBefore(j,h),j!=m);)j=k;i.fireEvent("updateSections")}}},deletesection:{execCommand:function(a,b,c){function d(a){for(var b=e.body,c=0;c'),!c.getOpt("imageActionName"))return void b(c.getLang("autoupload.errorLoadConfig"));var k=h.value,l=k?k.substr(k.lastIndexOf(".")):"";if(!l||j&&(j.join("")+".").indexOf(l.toLowerCase()+".")==-1)return void b(c.getLang("simpleupload.exceedTypeError"));var m=new XMLHttpRequest;if(m.open("post",i,!0),c.options.headers&&"[object Object]"===Object.prototype.toString.apply(c.options.headers))for(var n in c.options.headers)m.setRequestHeader(n,c.options.headers[n]);m.onload=function(){if(m.status>=200&&m.status<300||304==m.status){var a=JSON.parse(m.responseText),e=c.options.imageUrlPrefix+a.url;"SUCCESS"==a.state&&a.url?(loader=c.document.getElementById(d),loader.setAttribute("src",e),loader.setAttribute("_src",e),loader.setAttribute("title",a.title||""),loader.setAttribute("alt",a.original||""),loader.removeAttribute("id"),domUtils.removeClasses(loader,"loadingclass"),c.fireEvent("contentchange")):b(a.state)}else b(c.getLang("simpleupload.loadError"))},m.onerror=function(){b(c.getLang("simpleupload.loadError"))},m.send(new FormData(g)),g.reset()}})}var b,c=this,d=(+new Date).toString(36);return{bindEvents:{ready:function(){utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document)},simpleuploadbtnready:function(d,e){b=e,c.afterConfigReady(a)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})}}}),UE.plugin.register("serverparam",function(){var a={};return{commands:{serverparam:{execCommand:function(b,c,d){void 0===c||null===c?a={}:utils.isString(c)?void 0===d||null===d?delete a[c]:a[c]=d:utils.isObject(c)?utils.extend(a,c,!0):utils.isFunction(c)&&utils.extend(a,c(),!0)},queryCommandValue:function(){return a||{}}}}}}),UE.plugin.register("insertfile",function(){function a(a){var b=a.substr(a.lastIndexOf(".")+1).toLowerCase(),c={rar:"icon_rar.gif",zip:"icon_rar.gif",tar:"icon_rar.gif",gz:"icon_rar.gif",bz2:"icon_rar.gif",doc:"icon_doc.gif",docx:"icon_doc.gif",pdf:"icon_pdf.gif",mp3:"icon_mp3.gif",xls:"icon_xls.gif",chm:"icon_chm.gif",ppt:"icon_ppt.gif",pptx:"icon_ppt.gif",avi:"icon_mv.gif",rmvb:"icon_mv.gif",wmv:"icon_mv.gif",flv:"icon_mv.gif",swf:"icon_mv.gif",rm:"icon_mv.gif",exe:"icon_exe.gif",psd:"icon_psd.gif",txt:"icon_txt.gif",jpg:"icon_jpg.gif",png:"icon_jpg.gif",jpeg:"icon_jpg.gif",gif:"icon_jpg.gif",ico:"icon_jpg.gif",bmp:"icon_jpg.gif"};return c[b]?c[b]:c.txt}var b=this;return{commands:{insertfile:{execCommand:function(c,d){d=utils.isArray(d)?d:[d];var e,f,g,h,i="",j=b.getOpt("UEDITOR_HOME_URL"),k=j+("/"==j.substr(j.length-1)?"":"/")+"dialogs/attachment/fileTypeImages/";for(e=0;e'+h+"

    ";b.execCommand("insertHtml",i)}}}}}),UE.plugins.xssFilter=function(){function a(a){var b=a.tagName,d=a.attrs;return c.hasOwnProperty(b)?void UE.utils.each(d,function(d,e){c[b].indexOf(e)===-1&&a.setAttr(e)}):(a.parentNode.removeChild(a),!1)}var b=UEDITOR_CONFIG,c=b.whitList;c&&b.xssFilterRules&&(this.options.filterRules=function(){var b={};return UE.utils.each(c,function(c,d){b[d]=function(b){return a(b)}}),b}());var d=[];UE.utils.each(c,function(a,b){d.push(b)}),c&&b.inputXssFilter&&this.addInputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})}),c&&b.outputXssFilter&&this.addOutputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})})};var baidu=baidu||{};baidu.editor=baidu.editor||{},UE.ui=baidu.editor.ui={},function(){function a(){var a=document.getElementById("edui_fixedlayer");i.setViewportOffset(a,{left:0,top:0})}function b(b){d.on(window,"scroll",a),d.on(window,"resize",baidu.editor.utils.defer(a,0,!0))}var c=baidu.editor.browser,d=baidu.editor.dom.domUtils,e="$EDITORUI",f=window[e]={},g="ID"+e,h=0,i=baidu.editor.ui.uiUtils={uid:function(a){return a?a[g]||(a[g]=++h):++h},hook:function(a,b){var c;return a&&a._callbacks?c=a:(c=function(){var b;a&&(b=a.apply(this,arguments));for(var d=c._callbacks,e=d.length;e--;){var f=d[e].apply(this,arguments);void 0===b&&(b=f)}return b},c._callbacks=[]),c._callbacks.push(b),c},createElementByHtml:function(a){var b=document.createElement("div");return b.innerHTML=a,b=b.firstChild,b.parentNode.removeChild(b),b},getViewportElement:function(){return c.ie&&c.quirks?document.body:document.documentElement},getClientRect:function(a){var b;try{b=a.getBoundingClientRect()}catch(c){b={left:0,top:0,height:0,width:0}}for(var e,f={left:Math.round(b.left),top:Math.round(b.top),height:Math.round(b.bottom-b.top),width:Math.round(b.right-b.left)};(e=a.ownerDocument)!==document&&(a=d.getWindow(e).frameElement);)b=a.getBoundingClientRect(),f.left+=b.left,f.top+=b.top;return f.bottom=f.top+f.height,f.right=f.left+f.width,f},getViewportRect:function(){var a=i.getViewportElement(),b=0|(window.innerWidth||a.clientWidth),c=0|(window.innerHeight||a.clientHeight);return{left:0,top:0,height:c,width:b,bottom:c,right:b}},setViewportOffset:function(a,b){var c=i.getFixedLayer();a.parentNode===c?(a.style.left=b.left+"px",a.style.top=b.top+"px"):d.setViewportOffset(a,b)},getEventOffset:function(a){var b=a.target||a.srcElement,c=i.getClientRect(b),d=i.getViewportOffsetByEvent(a);return{left:d.left-c.left,top:d.top-c.top}},getViewportOffsetByEvent:function(a){var b=a.target||a.srcElement,c=d.getWindow(b).frameElement,e={left:a.clientX,top:a.clientY};if(c&&b.ownerDocument!==document){var f=i.getClientRect(c);e.left+=f.left,e.top+=f.top}return e},setGlobal:function(a,b){return f[a]=b,e+'["'+a+'"]'},unsetGlobal:function(a){delete f[a]},copyAttributes:function(a,b){for(var e=b.attributes,f=e.length;f--;){var g=e[f];"style"==g.nodeName||"class"==g.nodeName||c.ie&&!g.specified||a.setAttribute(g.nodeName,g.nodeValue)}b.className&&d.addClass(a,b.className),b.style.cssText&&(a.style.cssText+=";"+b.style.cssText)},removeStyle:function(a,b){if(a.style.removeProperty)a.style.removeProperty(b);else{if(!a.style.removeAttribute)throw"";a.style.removeAttribute(b)}},contains:function(a,b){return a&&b&&a!==b&&(a.contains?a.contains(b):16&a.compareDocumentPosition(b))},startDrag:function(a,b,c){function d(a){var c=a.clientX-g,d=a.clientY-h;b.ondragmove(c,d,a),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function e(a){c.removeEventListener("mousemove",d,!0),c.removeEventListener("mouseup",e,!0),window.removeEventListener("mouseup",e,!0),b.ondragstop()}function f(){i.releaseCapture(),i.detachEvent("onmousemove",d),i.detachEvent("onmouseup",f),i.detachEvent("onlosecaptrue",f),b.ondragstop()}var c=c||document,g=a.clientX,h=a.clientY;if(c.addEventListener)c.addEventListener("mousemove",d,!0),c.addEventListener("mouseup",e,!0),window.addEventListener("mouseup",e,!0),a.preventDefault();else{var i=a.srcElement;i.setCapture(),i.attachEvent("onmousemove",d),i.attachEvent("onmouseup",f),i.attachEvent("onlosecaptrue",f),a.returnValue=!1}b.ondragstart()},getFixedLayer:function(){var d=document.getElementById("edui_fixedlayer");return null==d&&(d=document.createElement("div"),d.id="edui_fixedlayer",document.body.appendChild(d),c.ie&&c.version<=8?(d.style.position="absolute",b(),setTimeout(a)):d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.width="0",d.style.height="0"),d},makeUnselectable:function(a){if(c.opera||c.ie&&c.version<9){if(a.unselectable="on",a.hasChildNodes())for(var b=0;b'}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.uiUtils,e=baidu.editor.ui.Mask=function(a){this.initOptions(a),this.initUIBase()};e.prototype={getHtmlTpl:function(){return'
    '},postRender:function(){var a=this;b.on(window,"resize",function(){setTimeout(function(){a.isHidden()||a._fill()})})},show:function(a){this._fill(),this.getDom().style.display="",this.getDom().style.zIndex=a},hide:function(){this.getDom().style.display="none",this.getDom().style.zIndex=""},isHidden:function(){return"none"==this.getDom().style.display},_onMouseDown:function(){return!1},_onClick:function(a,b){this.fireEvent("click",a,b)},_fill:function(){var a=this.getDom(),b=d.getViewportRect();a.style.width=b.width+"px",a.style.height=b.height+"px"}},a.inherits(e,c)}(),function(){function a(a,b){for(var c=0;c
    '+this.getContentHtmlTpl()+"
    "},getContentHtmlTpl:function(){return this.content?"string"==typeof this.content?this.content:this.content.renderHtml():""},_UIBase_postRender:e.prototype.postRender,postRender:function(){if(this.content instanceof e&&this.content.postRender(),this.captureWheel&&!this.captured){this.captured=!0;var a=(document.documentElement.clientHeight||document.body.clientHeight)-80,b=this.getDom().offsetHeight,f=c.getClientRect(this.combox.getDom()).top,g=this.getDom("content"),h=this.getDom("body").getElementsByTagName("iframe"),i=this;for(h.length&&(h=h[0]);f+b>a;)b-=30;g.style.height=b+"px",h&&(h.style.height=b+"px"),window.XMLHttpRequest?d.on(g,"onmousewheel"in document.body?"mousewheel":"DOMMouseScroll",function(a){a.preventDefault?a.preventDefault():a.returnValue=!1,a.wheelDelta?g.scrollTop-=a.wheelDelta/120*60:g.scrollTop-=a.detail/-3*60}):d.on(this.getDom(),"mousewheel",function(a){a.returnValue=!1,i.getDom("content").scrollTop-=a.wheelDelta/120*60})}this.fireEvent("postRenderAfter"),this.hide(!0),this._UIBase_postRender()},_doAutoRender:function(){!this.getDom()&&this.autoRender&&this.render()},mesureSize:function(){var a=this.getDom("content");return c.getClientRect(a)},fitSize:function(){if(this.captureWheel&&this.sized)return this.__size;this.sized=!0;var a=this.getDom("body");a.style.width="",a.style.height="";var b=this.mesureSize();if(this.captureWheel){a.style.width=-(-20-b.width)+"px";var c=parseInt(this.getDom("content").style.height,10);!window.isNaN(c)&&(b.height=c)}else a.style.width=b.width+"px";return a.style.height=b.height+"px",this.__size=b,this.captureWheel&&(this.getDom("content").style.overflow="auto"),b},showAnchor:function(a,b){this.showAnchorRect(c.getClientRect(a),b)},showAnchorRect:function(a,b,e){this._doAutoRender();var f=c.getViewportRect();this.getDom().style.visibility="hidden",this._show();var g,i,j,k,l=this.fitSize();b?(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.left-l.width:a.right,k=i?a.bottom-l.height:a.top):(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.right-l.width:a.left,k=i?a.top-l.height:a.bottom);var m=this.getDom();c.setViewportOffset(m,{left:j,top:k}),d.removeClasses(m,h),m.className+=" "+h[2*(i?1:0)+(g?1:0)],this.editor&&(m.style.zIndex=1*this.editor.container.style.zIndex+10,baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex=m.style.zIndex-1),this.getDom().style.visibility="visible"},showAt:function(a){var b=a.left,c=a.top,d={left:b,top:c,right:b,bottom:c,height:0,width:0};this.showAnchorRect(d,!1,!0)},_show:function(){if(this._hidden){var a=this.getDom();a.style.display="",this._hidden=!1,this.fireEvent("show")}},isHidden:function(){return this._hidden},show:function(){this._doAutoRender(),this._show()},hide:function(a){!this._hidden&&this.getDom()&&(this.getDom().style.display="none",this._hidden=!0,a||this.fireEvent("hide"))},queryAutoHide:function(a){return!a||!c.contains(this.getDom(),a)}},b.inherits(f,e),d.on(document,"mousedown",function(b){var c=b.target||b.srcElement;a(b,c)}),d.on(window,"scroll",function(b,c){a(b,c)})}(),function(){function a(a,b){for(var c='
    '+a+'
    ',d=0;d"+(60==d?'":"")+""),c+=d<70?'':"";return c+="
    '+b.getLang("themeColor")+'
    '+b.getLang("standardColor")+"
    =60?"border-width:1px;":d>=10&&d<20?"border-width:1px 1px 0 1px;":"border-width:0 1px 0 1px;")+'">
    "}var b=baidu.editor.utils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.ColorPicker=function(a){this.initOptions(a),this.noColorText=this.noColorText||this.editor.getLang("clearColor"),this.initUIBase()};d.prototype={getHtmlTpl:function(){return a(this.noColorText,this.editor)},_onTableClick:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&this.fireEvent("pickcolor",c)},_onTableOver:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&(this.getDom("preview").style.backgroundColor=c)},_onTableOut:function(){this.getDom("preview").style.backgroundColor=""},_onPickNoColor:function(){this.fireEvent("picknocolor")}},b.inherits(d,c);var e="ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(",")}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.TablePicker=function(a){this.initOptions(a),this.initTablePicker()};d.prototype={defaultNumRows:10,defaultNumCols:10,maxNumRows:20,maxNumCols:20,numRows:10,numCols:10,lengthOfCellSide:22,initTablePicker:function(){this.initUIBase()},getHtmlTpl:function(){return'
    '},_UIBase_render:c.prototype.render,render:function(a){this._UIBase_render(a),this.getDom("label").innerHTML="0"+this.editor.getLang("t_row")+" x 0"+this.editor.getLang("t_col")},_track:function(a,b){var c=this.getDom("overlay").style,d=this.lengthOfCellSide;c.width=a*d+"px",c.height=b*d+"px";var e=this.getDom("label");e.innerHTML=a+this.editor.getLang("t_col")+" x "+b+this.editor.getLang("t_row"),this.numCols=a,this.numRows=b},_onMouseOver:function(a,c){var d=a.relatedTarget||a.fromElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="")},_onMouseOut:function(a,c){var d=a.relatedTarget||a.toElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="hidden")},_onMouseMove:function(a,c){var d=(this.getDom("overlay").style,b.getEventOffset(a)),e=this.lengthOfCellSide,f=Math.ceil(d.left/e),g=Math.ceil(d.top/e);this._track(f,g)},_onClick:function(){this.fireEvent("picktable",this.numCols,this.numRows)}},a.inherits(d,c)}(),function(){var a=baidu.editor.browser,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.uiUtils,d='onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"'+(a.ie?' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"':' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"');baidu.editor.ui.Stateful={alwalysHoverable:!1,target:null,Stateful_init:function(){this._Stateful_dGetHtmlTpl=this.getHtmlTpl,this.getHtmlTpl=this.Stateful_getHtmlTpl},Stateful_getHtmlTpl:function(){var a=this._Stateful_dGetHtmlTpl();return a.replace(/stateful/g,function(){return d})},Stateful_onMouseEnter:function(a,b){this.target=b,this.isDisabled()&&!this.alwalysHoverable||(this.addState("hover"),this.fireEvent("over"))},Stateful_onMouseLeave:function(a,b){this.isDisabled()&&!this.alwalysHoverable||(this.removeState("hover"),this.removeState("active"),this.fireEvent("out"))},Stateful_onMouseOver:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseEnter(a,b)},Stateful_onMouseOut:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseLeave(a,b)},Stateful_onMouseDown:function(a,b){this.isDisabled()||this.addState("active")},Stateful_onMouseUp:function(a,b){this.isDisabled()||this.removeState("active")},Stateful_postRender:function(){this.disabled&&!this.hasState("disabled")&&this.addState("disabled")},hasState:function(a){return b.hasClass(this.getStateDom(),"edui-state-"+a)},addState:function(a){this.hasState(a)||(this.getStateDom().className+=" edui-state-"+a)},removeState:function(a){this.hasState(a)&&b.removeClasses(this.getStateDom(),["edui-state-"+a])},getStateDom:function(){return this.getDom("state")},isChecked:function(){return this.hasState("checked")},setChecked:function(a){!this.isDisabled()&&a?this.addState("checked"):this.removeState("checked")},isDisabled:function(){return this.hasState("disabled")},setDisabled:function(a){a?(this.removeState("hover"),this.removeState("checked"),this.removeState("active"),this.addState("disabled")):this.removeState("disabled")}}}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Stateful,d=baidu.editor.ui.Button=function(a){if(a.name){var b=a.name,c=a.cssRules;a.className||(a.className="edui-for-"+b),a.cssRules=".edui-default .edui-for-"+b+" .edui-icon {"+c+"}"}this.initOptions(a),this.initButton()};d.prototype={uiName:"button",label:"",title:"",showIcon:!0,showText:!0,cssRules:"",initButton:function(){this.initUIBase(),this.Stateful_init(),this.cssRules&&a.cssRule("edui-customize-"+this.name+"-style",this.cssRules)},getHtmlTpl:function(){return'
    '+(this.showIcon?'
    ':"")+(this.showText?'
    '+this.label+"
    ":"")+"
    "},postRender:function(){this.Stateful_postRender(),this.setDisabled(this.disabled)},_onMouseDown:function(a){var b=a.target||a.srcElement,c=b&&b.tagName&&b.tagName.toLowerCase();if("input"==c||"object"==c||"object"==c)return!1},_onClick:function(){this.isDisabled()||this.fireEvent("click")},setTitle:function(a){var b=this.getDom("label");b.innerHTML=a}},a.inherits(d,b),a.extend(d.prototype,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=(baidu.editor.dom.domUtils,baidu.editor.ui.UIBase),d=baidu.editor.ui.Stateful,e=baidu.editor.ui.SplitButton=function(a){this.initOptions(a),this.initSplitButton()};e.prototype={popup:null,uiName:"splitbutton",title:"",initSplitButton:function(){this.initUIBase(),this.Stateful_init();if(null!=this.popup){var a=this.popup;this.popup=null,this.setPopup(a)}},_UIBase_postRender:c.prototype.postRender,postRender:function(){this.Stateful_postRender(),this._UIBase_postRender()},setPopup:function(c){this.popup!==c&&(null!=this.popup&&this.popup.dispose(),c.addListener("show",a.bind(this._onPopupShow,this)),c.addListener("hide",a.bind(this._onPopupHide,this)),c.addListener("postrender",a.bind(function(){c.getDom("body").appendChild(b.createElementByHtml('
    ')),c.getDom().className+=" "+this.className},this)),this.popup=c)},_onPopupShow:function(){this.addState("opened")},_onPopupHide:function(){this.removeState("opened")},getHtmlTpl:function(){return'
    '},showPopup:function(){var a=b.getClientRect(this.getDom());a.top-=this.popup.SHADOW_RADIUS,a.height+=this.popup.SHADOW_RADIUS,this.popup.showAnchorRect(a)},_onArrowClick:function(a,b){this.isDisabled()||this.showPopup()},_onButtonClick:function(){this.isDisabled()||this.fireEvent("buttonclick")}},a.inherits(e,c),a.extend(e.prototype,d,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.ColorPicker,d=baidu.editor.ui.Popup,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.ColorButton=function(a){this.initOptions(a),this.initColorButton()};f.prototype={initColorButton:function(){var a=this;this.popup=new d({content:new c({noColorText:a.editor.getLang("clearColor"),editor:a.editor,onpickcolor:function(b,c){a._onPickColor(c)},onpicknocolor:function(b,c){a._onPickNoColor(c)}}),editor:a.editor}),this.initSplitButton()},_SplitButton_postRender:e.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.getDom("button_body").appendChild(b.createElementByHtml('
    ')),this.getDom().className+=" edui-colorbutton"},setColor:function(a){this.getDom("colorlump").style.backgroundColor=a,this.color=a},_onPickColor:function(a){this.fireEvent("pickcolor",a)!==!1&&(this.setColor(a),this.popup.hide())},_onPickNoColor:function(a){this.fireEvent("picknocolor")!==!1&&this.popup.hide()}},a.inherits(f,e)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.TablePicker,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.TableButton=function(a){this.initOptions(a),this.initTableButton()};e.prototype={initTableButton:function(){var a=this;this.popup=new b({content:new c({editor:a.editor,onpicktable:function(b,c,d){ -a._onPickTable(c,d)}}),editor:a.editor}),this.initSplitButton()},_onPickTable:function(a,b){this.fireEvent("picktable",a,b)!==!1&&this.popup.hide()}},a.inherits(e,d)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.AutoTypeSetPicker=function(a){this.initOptions(a),this.initAutoTypeSetPicker()};c.prototype={initAutoTypeSetPicker:function(){this.initUIBase()},getHtmlTpl:function(){var a=this.editor,b=a.options.autotypeset,c=a.getLang("autoTypeSet"),d="textAlignValue"+a.uid,e="imageBlockLineValue"+a.uid,f="symbolConverValue"+a.uid;return'
    "+c.mergeLine+'"+c.delLine+'
    "+c.removeFormat+'"+c.indent+'
    "+c.alignment+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.imageFloat+'"+a.getLang("default")+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.removeFontsize+'"+c.removeFontFamily+'
    "+c.removeHtml+'
    "+c.pasteFilter+'
    "+c.symbol+'"+c.bdc2sb+'"+c.tobdc+'
    "},_UIBase_render:b.prototype.render},a.inherits(c,b)}(),function(){function a(a){for(var c,d={},e=a.getDom(),f=a.editor.uid,g=null,h=null,i=domUtils.getElementsByTagName(e,"input"),j=i.length-1;c=i[j--];)if(g=c.getAttribute("type"),"checkbox"==g)if(h=c.getAttribute("name"),d[h]&&delete d[h],c.checked){var k=document.getElementById(h+"Value"+f);if(k){if(/input/gi.test(k.tagName))d[h]=k.value;else for(var l,m=k.getElementsByTagName("input"),n=m.length-1;l=m[n--];)if(l.checked){d[h]=l.value;break}}else d[h]=!0}else d[h]=!1;else d[c.getAttribute("value")]=c.checked;for(var o,p=domUtils.getElementsByTagName(e,"select"),j=0;o=p[j++];){var q=o.getAttribute("name");d[q]=d[q]?o.value:""}b.extend(a.editor.options.autotypeset,d),a.editor.setPreferences("autotypeset",d)}var b=baidu.editor.utils,c=baidu.editor.ui.Popup,d=baidu.editor.ui.AutoTypeSetPicker,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.AutoTypeSetButton=function(a){this.initOptions(a),this.initAutoTypeSetButton()};f.prototype={initAutoTypeSetButton:function(){var b=this;this.popup=new c({content:new d({editor:b.editor}),editor:b.editor,hide:function(){!this._hidden&&this.getDom()&&(a(this),this.getDom().style.display="none",this._hidden=!0,this.fireEvent("hide"))}});var e=0;this.popup.addListener("postRenderAfter",function(){var c=this;if(!e){var d=this.getDom(),f=d.getElementsByTagName("button")[0];f.onclick=function(){a(c),b.editor.execCommand("autotypeset"),c.hide()},domUtils.on(d,"click",function(d){var e=d.target||d.srcElement,f=b.editor.uid;if(e&&"INPUT"==e.tagName){if("imageBlockLine"==e.name||"textAlign"==e.name||"symbolConver"==e.name)for(var g=e.checked,h=document.getElementById(e.name+"Value"+f),i=h.getElementsByTagName("input"),j={imageBlockLine:"none",textAlign:"left",symbolConver:"tobdc"},k=0;k"),e.push('
    '),2===d&&e.push("");return'
    '+e.join("")+"
    "},getStateDom:function(){return this.target},_onClick:function(a){var c=a.target||a.srcElement;/icon/.test(c.className)&&(this.items[c.parentNode.getAttribute("index")].onclick(),b.postHide(a))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,c,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Stateful,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.PastePicker=function(a){this.initOptions(a),this.initPastePicker()};e.prototype={initPastePicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){return'
    '+this.editor.getLang("pasteOpt")+'
    '},getStateDom:function(){return this.target},format:function(a){this.editor.ui._isTransfer=!0,this.editor.fireEvent("pasteTransfer",a)},_onClick:function(a){var b=domUtils.getNextDomNode(a),d=c.getViewportRect().height,e=c.getClientRect(b);e.top+e.height>d?b.style.top=-e.height-a.offsetHeight+"px":b.style.top="",/hidden/gi.test(domUtils.getComputedStyle(b,"visibility"))?(b.style.visibility="visible",domUtils.addClass(a,"edui-state-opened")):(b.style.visibility="hidden",domUtils.removeClasses(a,"edui-state-opened"))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,b,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Toolbar=function(a){this.initOptions(a),this.initToolbar()};d.prototype={items:null,initToolbar:function(){this.items=this.items||[],this.initUIBase()},add:function(a,b){void 0===b?this.items.push(a):this.items.splice(b,0,a)},getHtmlTpl:function(){for(var a=[],b=0;b'+a.join("")+""},postRender:function(){for(var a=this.getDom(),c=0;c
    '},postRender:function(){},queryAutoHide:function(){return!0}};h.prototype={items:null,uiName:"menu",initMenu:function(){this.items=this.items||[],this.initPopup(),this.initItems()},initItems:function(){for(var a=0;a'+a.join("")+""},_Popup_postRender:e.prototype.postRender,postRender:function(){for(var a=this,d=0;d
    '+this.renderLabelHtml()+"
    "},postRender:function(){var a=this;this.addListener("over",function(){a.ownerMenu.fireEvent("submenuover",a),a.subMenu&&a.delayShowSubMenu()}),this.subMenu&&(this.getDom().className+=" edui-hassubmenu",this.subMenu.render(),this.addListener("out",function(){a.delayHideSubMenu()}),this.subMenu.addListener("over",function(){clearTimeout(a._closingTimer),a._closingTimer=null,a.addState("opened")}),this.ownerMenu.addListener("hide",function(){a.hideSubMenu()}),this.ownerMenu.addListener("submenuover",function(b,c){c!==a&&a.delayHideSubMenu()}),this.subMenu._bakQueryAutoHide=this.subMenu.queryAutoHide,this.subMenu.queryAutoHide=function(b){return(!b||!c.contains(a.getDom(),b))&&this._bakQueryAutoHide(b)}),this.getDom().style.tabIndex="-1",c.makeUnselectable(this.getDom()),this.Stateful_postRender()},delayShowSubMenu:function(){var a=this;a.isDisabled()||(a.addState("opened"),clearTimeout(a._showingTimer),clearTimeout(a._closingTimer),a._closingTimer=null,a._showingTimer=setTimeout(function(){a.showSubMenu()},250))},delayHideSubMenu:function(){var a=this;a.isDisabled()||(a.removeState("opened"),clearTimeout(a._showingTimer),a._closingTimer||(a._closingTimer=setTimeout(function(){a.hasState("opened")||a.hideSubMenu(),a._closingTimer=null},400)))},renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "},getStateDom:function(){return this.getDom()},queryAutoHide:function(a){if(this.subMenu&&this.hasState("opened"))return this.subMenu.queryAutoHide(a)},_onClick:function(a,b){this.hasState("disabled")||this.fireEvent("click",a,b)!==!1&&(this.subMenu?this.showSubMenu():e.postHide(a))},showSubMenu:function(){var a=c.getClientRect(this.getDom());a.right-=5,a.left+=2,a.width-=7,a.top-=4,a.bottom+=4,a.height+=8,this.subMenu.showAnchorRect(a,!0,!0)},hideSubMenu:function(){this.subMenu.hide()}},a.inherits(j,d),a.extend(j.prototype,f,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.Menu,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.Combox=function(a){this.initOptions(a),this.initCombox()};e.prototype={uiName:"combox",onbuttonclick:function(){this.showPopup()},initCombox:function(){var a=this;this.items=this.items||[];for(var b=0;bd.right&&(g=d.right-e.width);var h=a.top;h+e.height>d.bottom&&(h=d.bottom-e.height),c.style.left=Math.max(g,0)+"px",c.style.top=Math.max(h,0)+"px"},showAtCenter:function(){var a=f.getViewportRect();if(this.fullscreen){var b=this.getDom(),c=this.getDom("content");b.style.display="block";var d=UE.ui.uiUtils.getClientRect(b),g=UE.ui.uiUtils.getClientRect(c);b.style.left="-100000px",c.style.width=a.width-d.width+g.width+"px",c.style.height=a.height-d.height+g.height+"px",b.style.width=a.width+"px",b.style.height=a.height+"px",b.style.left=0,this._originalContext={html:{overflowX:document.documentElement.style.overflowX,overflowY:document.documentElement.style.overflowY},body:{overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY}},document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"}else{this.getDom().style.display="";var h=this.fitSize(),i=0|this.getDom("titlebar").offsetHeight,j=a.width/2-h.width/2,k=a.height/2-(h.height-i)/2-i,l=this.getDom();this.safeSetOffset({left:Math.max(0|j,0),top:Math.max(0|k,0)}),e.hasClass(l,"edui-state-centered")||(l.className+=" edui-state-centered")}this._show()},getContentHtml:function(){var a="";return"string"==typeof this.content?a=this.content:this.iframeUrl&&(a=''),a},getHtmlTpl:function(){var a="";if(this.buttons){for(var b=[],c=0;c
    '+b.join("")+"
    "}return'
    '+(this.title||"")+"
    "+this.closeButton.renderHtml()+'
    '+(this.autoReset?"":this.getContentHtml())+"
    "+a+"
    "},postRender:function(){this.modalMask.getDom()||(this.modalMask.render(),this.modalMask.hide()),this.dragMask.getDom()||(this.dragMask.render(),this.dragMask.hide());var a=this;if(this.addListener("show",function(){a.modalMask.show(this.getDom().style.zIndex-2)}),this.addListener("hide",function(){a.modalMask.hide()}),this.buttons)for(var b=0;b',a.editor.container.style.zIndex&&(this.getDom().style.zIndex=1*a.editor.container.style.zIndex+1))}}),this.onbuttonclick=function(){this.showPopup()},this.initSplitButton()}},a.inherits(d,c)}(),function(){function a(a){var b=a.target||a.srcElement,c=g.findParent(b,function(a){return g.hasClass(a,"edui-shortcutmenu")||g.hasClass(a,"edui-popup")},!0);if(!c)for(var d,e=0;d=h[e++];)d.hide()}var b,c=baidu.editor.ui,d=c.UIBase,e=c.uiUtils,f=baidu.editor.utils,g=baidu.editor.dom.domUtils,h=[],i=!1,j=c.ShortCutMenu=function(a){this.initOptions(a),this.initShortCutMenu()};j.postHide=a,j.prototype={isHidden:!0,SPACE:5,initShortCutMenu:function(){this.items=this.items||[],this.initUIBase(),this.initItems(),this.initEvent(),h.push(this)},initEvent:function(){var a=this,c=a.editor.document;g.on(c,"mousemove",function(c){if(a.isHidden===!1){if(a.getSubMenuMark()||"contextmenu"==a.eventType)return;var d=!0,e=a.getDom(),f=e.offsetWidth,g=e.offsetHeight,h=f/2+a.SPACE,i=g/2,j=Math.abs(c.screenX-a.left),k=Math.abs(c.screenY-a.top);clearTimeout(b),b=setTimeout(function(){k>0&&ki&&ki+70&&k0&&jh&&jh+70&&j'+a+""}},f.inherits(j,d),g.on(document,"mousedown",function(b){a(b)}),g.on(window,"scroll",function(b){a(b)})}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Breakline=function(a){this.initOptions(a),this.initSeparator()};c.prototype={uiName:"Breakline",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return"
    "}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Message=function(a){this.initOptions(a),this.initMessage()};d.prototype={initMessage:function(){this.initUIBase()},getHtmlTpl:function(){return'
    ×
    '},reset:function(a){var b=this;a.keepshow||(clearTimeout(this.timer),b.timer=setTimeout(function(){b.hide()},a.timeout||4e3)),void 0!==a.content&&b.setContent(a.content),void 0!==a.type&&b.setType(a.type),b.show()},postRender:function(){var a=this,c=this.getDom("closer");c&&b.on(c,"click",function(){a.hide()})},setContent:function(a){this.getDom("content").innerHTML=a},setType:function(a){a=a||"info";var b=this.getDom("body");b.className=b.className.replace(/edui-message-type-[\w-]+/,"edui-message-type-"+a)},getContent:function(){return this.getDom("content").innerHTML},getType:function(){var a=this.getDom("body").match(/edui-message-type-([\w-]+)/);return a?a[1]:""},show:function(){this.getDom().style.display="block"},hide:function(){var a=this.getDom();a&&(a.style.display="none",a.parentNode&&a.parentNode.removeChild(a))}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui,c=b.Dialog;b.buttons={},b.Dialog=function(a){var b=new c(a);return b.addListener("hide",function(){if(b.editor){var a=b.editor;try{if(browser.gecko){var c=a.window.scrollY,d=a.window.scrollX;a.body.focus(),a.window.scrollTo(d,c)}else a.focus()}catch(e){}}}),b};for(var d,e={anchor:"~/dialogs/anchor/anchor.html",insertimage:"~/dialogs/image/image.html",link:"~/dialogs/link/link.html",spechars:"~/dialogs/spechars/spechars.html",searchreplace:"~/dialogs/searchreplace/searchreplace.html",map:"~/dialogs/map/map.html",gmap:"~/dialogs/gmap/gmap.html",insertvideo:"~/dialogs/video/video.html",help:"~/dialogs/help/help.html",preview:"~/dialogs/preview/preview.html",emotion:"~/dialogs/emotion/emotion.html",wordimage:"~/dialogs/wordimage/wordimage.html",attachment:"~/dialogs/attachment/attachment.html",insertframe:"~/dialogs/insertframe/insertframe.html",edittip:"~/dialogs/table/edittip.html",edittable:"~/dialogs/table/edittable.html",edittd:"~/dialogs/table/edittd.html",webapp:"~/dialogs/webapp/webapp.html",snapscreen:"~/dialogs/snapscreen/snapscreen.html",scrawl:"~/dialogs/scrawl/scrawl.html",music:"~/dialogs/music/music.html",template:"~/dialogs/template/template.html",background:"~/dialogs/background/background.html",charts:"~/dialogs/charts/charts.html"},f=["undo","redo","formatmatch","bold","italic","underline","fontborder","touppercase","tolowercase","strikethrough","subscript","superscript","source","indent","outdent","blockquote","pasteplain","pagebreak","selectall","print","horizontal","removeformat","time","date","unlink","insertparagraphbeforetable","insertrow","insertcol","mergeright","mergedown","deleterow","deletecol","splittorows","splittocols","splittocells","mergecells","deletetable","drafts"],g=0;d=f[g++];)d=d.toLowerCase(),b[d]=function(a){return function(c){var d=new b.Button({className:"edui-for-"+a,title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",onclick:function(){c.execCommand(a)},theme:c.options.theme,showText:!1});return b.buttons[a]=d,c.addListener("selectionchange",function(b,e,f){var g=c.queryCommandState(a);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(d);b.cleardoc=function(a){var c=new b.Button({className:"edui-for-cleardoc",title:a.options.labelMap.cleardoc||a.getLang("labelMap.cleardoc")||"",theme:a.options.theme,onclick:function(){confirm(a.getLang("confirmClear"))&&a.execCommand("cleardoc")}});return b.buttons.cleardoc=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("cleardoc")==-1)}),c};var h={justify:["left","right","center","justify"],imagefloat:["none","left","center","right"],directionality:["ltr","rtl"]};for(var i in h)!function(a,c){for(var d,e=0;d=c[e++];)!function(c){b[a.replace("float","")+c]=function(d){var e=new b.Button({className:"edui-for-"+a.replace("float","")+c,title:d.options.labelMap[a.replace("float","")+c]||d.getLang("labelMap."+a.replace("float","")+c)||"",theme:d.options.theme,onclick:function(){d.execCommand(a,c)}});return b.buttons[a]=e,d.addListener("selectionchange",function(b,f,g){e.setDisabled(d.queryCommandState(a)==-1),e.setChecked(d.queryCommandValue(a)==c&&!g)}),e}}(d)}(i,h[i]);for(var d,g=0;d=["backcolor","forecolor"][g++];)b[d]=function(a){return function(c){var d=new b.ColorButton({className:"edui-for-"+a,color:"default",title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",editor:c,onpickcolor:function(b,d){ -c.execCommand(a,d)},onpicknocolor:function(){c.execCommand(a,"default"),this.setColor("transparent"),this.color="default"},onbuttonclick:function(){c.execCommand(a,this.color)}});return b.buttons[a]=d,c.addListener("selectionchange",function(){d.setDisabled(c.queryCommandState(a)==-1)}),d}}(d);var j={noOk:["searchreplace","help","spechars","webapp","preview"],ok:["attachment","anchor","link","insertimage","map","gmap","insertframe","wordimage","insertvideo","insertframe","edittip","edittable","edittd","scrawl","template","music","background","charts"]};for(var i in j)!function(c,d){for(var f,g=0;f=d[g++];)browser.opera&&"searchreplace"===f||!function(d){b[d]=function(f,g,h){g=g||(f.options.iframeUrlMap||{})[d]||e[d],h=f.options.labelMap[d]||f.getLang("labelMap."+d)||"";var i;g&&(i=new b.Dialog(a.extend({iframeUrl:f.ui.mapUrl(g),editor:f,className:"edui-for-"+d,title:h,holdScroll:"insertimage"===d,fullscreen:/charts|preview/.test(d),closeDialog:f.getLang("closeDialog")},"ok"==c?{buttons:[{className:"edui-okbutton",label:f.getLang("ok"),editor:f,onclick:function(){i.close(!0)}},{className:"edui-cancelbutton",label:f.getLang("cancel"),editor:f,onclick:function(){i.close(!1)}}]}:{})),f.ui._dialogs[d+"Dialog"]=i);var j=new b.Button({className:"edui-for-"+d,title:h,onclick:function(){if(i)switch(d){case"wordimage":var a=f.execCommand("wordimage");a&&a.length&&(i.render(),i.open());break;case"scrawl":f.queryCommandState("scrawl")!=-1&&(i.render(),i.open());break;default:i.render(),i.open()}},theme:f.options.theme,disabled:"scrawl"==d&&f.queryCommandState("scrawl")==-1||"charts"==d});return b.buttons[d]=j,f.addListener("selectionchange",function(){var a={edittable:1};if(!(d in a)){var b=f.queryCommandState(d);j.getDom()&&(j.setDisabled(b==-1),j.setChecked(b))}}),j}}(f.toLowerCase())}(i,j[i]);b.snapscreen=function(a,c,d){d=a.options.labelMap.snapscreen||a.getLang("labelMap.snapscreen")||"";var f=new b.Button({className:"edui-for-snapscreen",title:d,onclick:function(){a.execCommand("snapscreen")},theme:a.options.theme});if(b.buttons.snapscreen=f,c=c||(a.options.iframeUrlMap||{}).snapscreen||e.snapscreen){var g=new b.Dialog({iframeUrl:a.ui.mapUrl(c),editor:a,className:"edui-for-snapscreen",title:d,buttons:[{className:"edui-okbutton",label:a.getLang("ok"),editor:a,onclick:function(){g.close(!0)}},{className:"edui-cancelbutton",label:a.getLang("cancel"),editor:a,onclick:function(){g.close(!1)}}]});g.render(),a.ui._dialogs.snapscreenDialog=g}return a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState("snapscreen")==-1)}),f},b.insertcode=function(c,d,e){d=c.options.insertcode||[],e=c.options.labelMap.insertcode||c.getLang("labelMap.insertcode")||"";var f=[];a.each(d,function(a,b){f.push({label:a,value:b,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})});var g=new b.Combox({editor:c,items:f,onselect:function(a,b){c.execCommand("insertcode",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-insertcode",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.insertcode=g,c.addListener("selectionchange",function(a,b,d){if(!d){var f=c.queryCommandState("insertcode");if(f==-1)g.setDisabled(!0);else{g.setDisabled(!1);var h=c.queryCommandValue("insertcode");if(!h)return void g.setValue(e);h&&(h=h.replace(/['"]/g,"").split(",")[0]),g.setValue(h)}}}),g},b.fontfamily=function(c,d,e){if(d=c.options.fontfamily||[],e=c.options.labelMap.fontfamily||c.getLang("labelMap.fontfamily")||"",d.length){for(var f,g=0,h=[];f=d[g];g++){var i=c.getLang("fontfamily")[f.name]||"";!function(b,d){h.push({label:b,value:d,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})}(f.label||i,f.val)}var j=new b.Combox({editor:c,items:h,onselect:function(a,b){c.execCommand("FontFamily",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-fontfamily",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.fontfamily=j,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("FontFamily");if(e==-1)j.setDisabled(!0);else{j.setDisabled(!1);var f=c.queryCommandValue("FontFamily");f&&(f=f.replace(/['"]/g,"").split(",")[0]),j.setValue(f)}}}),j}},b.fontsize=function(a,c,d){if(d=a.options.labelMap.fontsize||a.getLang("labelMap.fontsize")||"",c=c||a.options.fontsize||[],c.length){for(var e=[],f=0;f'+(this.label||"")+""}})}var h=new b.Combox({editor:a,items:e,title:d,initValue:d,onselect:function(b,c){a.execCommand("FontSize",this.items[c].value)},onbuttonclick:function(){this.showPopup()},className:"edui-for-fontsize"});return b.buttons.fontsize=h,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("FontSize");e==-1?h.setDisabled(!0):(h.setDisabled(!1),h.setValue(a.queryCommandValue("FontSize")))}}),h}},b.paragraph=function(c,d,e){if(e=c.options.labelMap.paragraph||c.getLang("labelMap.paragraph")||"",d=c.options.paragraph||[],!a.isEmptyObject(d)){var f=[];for(var g in d)f.push({value:g,label:d[g]||c.getLang("paragraph")[g],theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}});var h=new b.Combox({editor:c,items:f,title:e,initValue:e,className:"edui-for-paragraph",onselect:function(a,b){c.execCommand("Paragraph",this.items[b].value)},onbuttonclick:function(){this.showPopup()}});return b.buttons.paragraph=h,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("Paragraph");if(e==-1)h.setDisabled(!0);else{h.setDisabled(!1);var f=c.queryCommandValue("Paragraph"),g=h.indexByValue(f);g!=-1?h.setValue(f):h.setValue(h.initValue)}}}),h}},b.customstyle=function(a){var c=a.options.customstyle||[],d=a.options.labelMap.customstyle||a.getLang("labelMap.customstyle")||"";if(c.length){for(var e,f=a.getLang("customstyle"),g=0,h=[];e=c[g++];)!function(b){var c={};c.label=b.label?b.label:f[b.name],c.style=b.style,c.className=b.className,c.tag=b.tag,h.push({label:c.label,value:c,theme:a.options.theme,renderLabelHtml:function(){return'
    <'+c.tag+" "+(c.className?' class="'+c.className+'"':"")+(c.style?' style="'+c.style+'"':"")+">"+c.label+"
    "}})}(e);var i=new b.Combox({editor:a,items:h,title:d,initValue:d,className:"edui-for-customstyle",onselect:function(b,c){a.execCommand("customstyle",this.items[c].value)},onbuttonclick:function(){this.showPopup()},indexByValue:function(a){for(var b,c=0;b=this.items[c++];)if(b.label==a)return c-1;return-1}});return b.buttons.customstyle=i,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("customstyle");if(e==-1)i.setDisabled(!0);else{i.setDisabled(!1);var f=a.queryCommandValue("customstyle"),g=i.indexByValue(f);g!=-1?i.setValue(f):i.setValue(i.initValue)}}}),i}},b.inserttable=function(a,c,d){d=a.options.labelMap.inserttable||a.getLang("labelMap.inserttable")||"";var e=new b.TableButton({editor:a,title:d,className:"edui-for-inserttable",onpicktable:function(b,c,d){a.execCommand("InsertTable",{numRows:d,numCols:c,border:1})},onbuttonclick:function(){this.showPopup()}});return b.buttons.inserttable=e,a.addListener("selectionchange",function(){e.setDisabled(a.queryCommandState("inserttable")==-1)}),e},b.lineheight=function(a){var c=a.options.lineheight||[];if(c.length){for(var d,e=0,f=[];d=c[e++];)f.push({label:d,value:d,theme:a.options.theme,onclick:function(){a.execCommand("lineheight",this.value)}});var g=new b.MenuButton({editor:a,className:"edui-for-lineheight",title:a.options.labelMap.lineheight||a.getLang("labelMap.lineheight")||"",items:f,onbuttonclick:function(){var b=a.queryCommandValue("LineHeight")||this.value;a.execCommand("LineHeight",b)}});return b.buttons.lineheight=g,a.addListener("selectionchange",function(){var b=a.queryCommandState("LineHeight");if(b==-1)g.setDisabled(!0);else{g.setDisabled(!1);var c=a.queryCommandValue("LineHeight");c&&g.setValue((c+"").replace(/cm/,"")),g.setChecked(b)}}),g}};for(var k,l=["top","bottom"],m=0;k=l[m++];)!function(a){b["rowspacing"+a]=function(c){var d=c.options["rowspacing"+a]||[];if(!d.length)return null;for(var e,f=0,g=[];e=d[f++];)g.push({label:e,value:e,theme:c.options.theme,onclick:function(){c.execCommand("rowspacing",this.value,a)}});var h=new b.MenuButton({editor:c,className:"edui-for-rowspacing"+a,title:c.options.labelMap["rowspacing"+a]||c.getLang("labelMap.rowspacing"+a)||"",items:g,onbuttonclick:function(){var b=c.queryCommandValue("rowspacing",a)||this.value;c.execCommand("rowspacing",b,a)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState("rowspacing",a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue("rowspacing",a);d&&h.setValue((d+"").replace(/%/,"")),h.setChecked(b)}}),h}}(k);for(var n,o=["insertorderedlist","insertunorderedlist"],p=0;n=o[p++];)!function(a){b[a]=function(c){var d=c.options[a],e=function(){c.execCommand(a,this.value)},f=[];for(var g in d)f.push({label:d[g]||c.getLang()[a][g]||"",value:g,theme:c.options.theme,onclick:e});var h=new b.MenuButton({editor:c,className:"edui-for-"+a,title:c.getLang("labelMap."+a)||"",items:f,onbuttonclick:function(){var b=c.queryCommandValue(a)||this.value;c.execCommand(a,b)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState(a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue(a);h.setValue(d),h.setChecked(b)}}),h}}(n);b.fullscreen=function(a,c){c=a.options.labelMap.fullscreen||a.getLang("labelMap.fullscreen")||"";var d=new b.Button({className:"edui-for-fullscreen",title:c,theme:a.options.theme,onclick:function(){a.ui&&a.ui.setFullScreen(!a.ui.isFullScreen()),this.setChecked(a.ui.isFullScreen())}});return b.buttons.fullscreen=d,a.addListener("selectionchange",function(){var b=a.queryCommandState("fullscreen");d.setDisabled(b==-1),d.setChecked(a.ui.isFullScreen())}),d},b.emotion=function(a,c){var d="emotion",f=new b.MultiMenuPop({title:a.options.labelMap[d]||a.getLang("labelMap."+d)||"",editor:a,className:"edui-for-"+d,iframeUrl:a.ui.mapUrl(c||(a.options.iframeUrlMap||{})[d]||e[d])});return b.buttons[d]=f,a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState(d)==-1)}),f},b.autotypeset=function(a){var c=new b.AutoTypeSetButton({editor:a,title:a.options.labelMap.autotypeset||a.getLang("labelMap.autotypeset")||"",className:"edui-for-autotypeset",onbuttonclick:function(){a.execCommand("autotypeset")}});return b.buttons.autotypeset=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("autotypeset")==-1)}),c},b.simpleupload=function(a){var c="simpleupload",d=new b.Button({className:"edui-for-"+c,title:a.options.labelMap[c]||a.getLang("labelMap."+c)||"",onclick:function(){},theme:a.options.theme,showText:!1});return b.buttons[c]=d,a.addListener("ready",function(){var b=d.getDom("body"),c=b.children[0];a.fireEvent("simpleuploadbtnready",c)}),a.addListener("selectionchange",function(b,e,f){var g=a.queryCommandState(c);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(),function(){function a(a){this.initOptions(a),this.initEditorUI()}var b=baidu.editor.utils,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.dom.domUtils,f=[];a.prototype={uiName:"editor",initEditorUI:function(){function a(a,b){a.setOpt({wordCount:!0,maximumWords:1e4,wordCountMsg:a.options.wordCountMsg||a.getLang("wordCountMsg"),wordOverFlowMsg:a.options.wordOverFlowMsg||a.getLang("wordOverFlowMsg")});var c=a.options,d=c.maximumWords,e=c.wordCountMsg,f=c.wordOverFlowMsg,g=b.getDom("wordcount");if(c.wordCount){var h=a.getContentLength(!0);h>d?(g.innerHTML=f,a.fireEvent("wordcountoverflow")):g.innerHTML=e.replace("{#leave}",d-h).replace("{#count}",h)}}this.editor.ui=this,this._dialogs={},this.initUIBase(),this._initToolbars();var b=this.editor,c=this;b.addListener("ready",function(){function d(){a(b,c),e.un(b.document,"click",arguments.callee)}b.getDialog=function(a){return b.ui._dialogs[a+"Dialog"]},e.on(b.window,"scroll",function(a){baidu.editor.ui.Popup.postHide(a)}),b.ui._actualFrameWidth=b.options.initialFrameWidth,UE.browser.ie&&6===UE.browser.version&&b.container.ownerDocument.execCommand("BackgroundImageCache",!1,!0),b.options.elementPathEnabled&&(b.ui.getDom("elementpath").innerHTML='
    '+b.getLang("elementPathTip")+":
    "),b.options.wordCount&&(e.on(b.document,"click",d),b.ui.getDom("wordcount").innerHTML=b.getLang("wordCountTip")),b.ui._scale(),b.options.scaleEnabled?(b.autoHeightEnabled&&b.disableAutoHeight(),c.enableScale()):c.disableScale(),b.options.elementPathEnabled||b.options.wordCount||b.options.scaleEnabled||(b.ui.getDom("elementpath").style.display="none",b.ui.getDom("wordcount").style.display="none",b.ui.getDom("scale").style.display="none"),b.selection.isFocus()&&b.fireEvent("selectionchange",!1,!0)}),b.addListener("mousedown",function(a,b){var c=b.target||b.srcElement;baidu.editor.ui.Popup.postHide(b,c),baidu.editor.ui.ShortCutMenu.postHide(b)}),b.addListener("delcells",function(){UE.ui.edittip&&new UE.ui.edittip(b),b.getDialog("edittip").open()});var d,f,g=!1;b.addListener("afterpaste",function(){b.queryCommandState("pasteplain")||(baidu.editor.ui.PastePicker&&(d=new baidu.editor.ui.Popup({content:new baidu.editor.ui.PastePicker({editor:b}),editor:b,className:"edui-wordpastepop"}),d.render()),g=!0)}),b.addListener("afterinserthtml",function(){clearTimeout(f),f=setTimeout(function(){if(d&&(g||b.ui._isTransfer)){if(d.isHidden()){var a=e.createElement(b.document,"span",{style:"line-height:0px;",innerHTML:"\ufeff"}),c=b.selection.getRange();c.insertNode(a);var f=getDomNode(a,"firstChild","previousSibling");f&&d.showAnchor(3==f.nodeType?f.parentNode:f),e.remove(a)}else d.show();delete b.ui._isTransfer,g=!1}},200)}),b.addListener("contextmenu",function(a,b){baidu.editor.ui.Popup.postHide(b)}),b.addListener("keydown",function(a,b){d&&d.dispose(b);var c=b.keyCode||b.which;b.altKey&&90==c&&UE.ui.buttons.fullscreen.onclick()}),b.addListener("wordcount",function(b){a(this,c)}),b.addListener("selectionchange",function(){b.options.elementPathEnabled&&c[(b.queryCommandState("elementpath")==-1?"dis":"en")+"ableElementPath"](),b.options.scaleEnabled&&c[(b.queryCommandState("scale")==-1?"dis":"en")+"ableScale"]()});var h=new baidu.editor.ui.Popup({editor:b,content:"",className:"edui-bubble",_onEditButtonClick:function(){this.hide(),b.ui._dialogs.linkDialog.open()},_onImgEditButtonClick:function(a){this.hide(),b.ui._dialogs[a]&&b.ui._dialogs[a].open()},_onImgSetFloat:function(a){this.hide(),b.execCommand("imagefloat",a)},_setIframeAlign:function(a){var b=h.anchorEl,c=b.cloneNode(!0);switch(a){case-2:c.setAttribute("align","");break;case-1:c.setAttribute("align","left");break;case 1:c.setAttribute("align","right")}b.parentNode.insertBefore(c,b),e.remove(b),h.anchorEl=c,h.showAnchor(h.anchorEl)},_updateIframe:function(){var a=b._iframe=h.anchorEl;e.hasClass(a,"ueditor_baidumap")?(b.selection.getRange().selectNode(a).select(),b.ui._dialogs.mapDialog.open(),h.hide()):(b.ui._dialogs.insertframeDialog.open(),h.hide())},_onRemoveButtonClick:function(a){b.execCommand(a),this.hide()},queryAutoHide:function(a){return a&&a.ownerDocument==b.document&&("img"==a.tagName.toLowerCase()||e.findParentByTagName(a,"a",!0))?a!==h.anchorEl:baidu.editor.ui.Popup.prototype.queryAutoHide.call(this,a)}});h.render(),b.options.imagePopup&&(b.addListener("mouseover",function(a,c){c=c||window.event;var d=c.target||c.srcElement;if(b.ui._dialogs.insertframeDialog&&/iframe/gi.test(d.tagName)){var e=h.formatHtml(""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'   '+b.getLang("modify")+"");e?(h.getDom("content").innerHTML=e,h.anchorEl=d,h.showAnchor(h.anchorEl)):h.hide()}}),b.addListener("selectionchange",function(a,c){if(c){var d="",f="",g=b.selection.getRange().getClosedNode(),i=b.ui._dialogs;if(g&&"IMG"==g.tagName){var j="insertimageDialog";if(g.className.indexOf("edui-faked-video")==-1&&g.className.indexOf("edui-upload-video")==-1||(j="insertvideoDialog"),g.className.indexOf("edui-faked-webapp")!=-1&&(j="webappDialog"),g.src.indexOf("http://api.map.baidu.com")!=-1&&(j="mapDialog"),g.className.indexOf("edui-faked-music")!=-1&&(j="musicDialog"),g.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1&&(j="gmapDialog"),g.getAttribute("anchorname")&&(j="anchorDialog",d=h.formatHtml(""+b.getLang("property")+': '+b.getLang("modify")+"  "+b.getLang("delete")+"")),g.getAttribute("word_img")&&(b.word_img=[g.getAttribute("word_img")],j="wordimageDialog"),(e.hasClass(g,"loadingclass")||e.hasClass(g,"loaderrorclass"))&&(j=""),!i[j])return;f=""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'  '+b.getLang("justifycenter")+"  '+b.getLang("modify")+"",!d&&(d=h.formatHtml(f))}if(b.ui._dialogs.linkDialog){var k,l=b.queryCommandValue("link");if(l&&(k=l.getAttribute("_href")||l.getAttribute("href",2))){var m=k;k.length>30&&(m=k.substring(0,20)+"..."),d&&(d+='
    '),d+=h.formatHtml(""+b.getLang("anthorMsg")+': '+m+' '+b.getLang("modify")+' '+b.getLang("clear")+""),h.showAnchor(l)}}d?(h.getDom("content").innerHTML=d,h.anchorEl=g||l,h.showAnchor(h.anchorEl)):h.hide()}}))},_initToolbars:function(){for(var a=this.editor,b=this.toolbars||[],c=[],d=0;d
    '+(this.toolbars.length?'
    '+this.renderToolbarBoxHtml()+"
    ":"")+'
    '},showWordImageDialog:function(){this._dialogs.wordimageDialog.open()},renderToolbarBoxHtml:function(){for(var a=[],b=0;b'+c+"");b.innerHTML='
    '+this.editor.getLang("elementPathTip")+": "+d.join(" > ")+"
    "}else b.style.display="none"},disableElementPath:function(){var a=this.getDom("elementpath");a.innerHTML="",a.style.display="none",this.elementPathEnabled=!1},enableElementPath:function(){var a=this.getDom("elementpath");a.style.display="",this.elementPathEnabled=!0,this._updateElementPath()},_scale:function(){function a(){o=e.getXY(h),p||(p=g.options.minFrameHeight+j.offsetHeight+k.offsetHeight),m.style.cssText="position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:"+h.offsetWidth+"px;height:"+h.offsetHeight+"px;z-index:"+(g.options.zIndex+1),e.on(f,"mousemove",b),e.on(i,"mouseup",c),e.on(f,"mouseup",c)}function b(a){d();var b=a||window.event;r=b.pageX||f.documentElement.scrollLeft+b.clientX,s=b.pageY||f.documentElement.scrollTop+b.clientY,t=r-o.x,u=s-o.y,t>=q&&(n=!0,m.style.width=t+"px"),u>=p&&(n=!0,m.style.height=u+"px")}function c(){n&&(n=!1,g.ui._actualFrameWidth=m.offsetWidth-2,h.style.width=g.ui._actualFrameWidth+"px",g.setHeight(m.offsetHeight-k.offsetHeight-j.offsetHeight-2,!0)),m&&(m.style.display="none"),d(),e.un(f,"mousemove",b),e.un(i,"mouseup",c),e.un(f,"mouseup",c)}function d(){browser.ie?f.selection.clear():window.getSelection().removeAllRanges()}var f=document,g=this.editor,h=g.container,i=g.document,j=this.getDom("toolbarbox"),k=this.getDom("bottombar"),l=this.getDom("scale"),m=this.getDom("scalelayer"),n=!1,o=null,p=0,q=g.options.minFrameWidth,r=0,s=0,t=0,u=0,v=this;this.editor.addListener("fullscreenchanged",function(a,b){if(b)v.disableScale();else if(v.editor.options.scaleEnabled){v.enableScale();var c=v.editor.document.createElement("span");v.editor.body.appendChild(c),v.editor.body.style.height=Math.max(e.getXY(c).y,v.editor.iframe.offsetHeight-20)+"px",e.remove(c)}}),this.enableScale=function(){1!=g.queryCommandState("source")&&(l.style.display="",this.scaleEnabled=!0,e.on(l,"mousedown",a))},this.disableScale=function(){l.style.display="none",this.scaleEnabled=!1,e.un(l,"mousedown",a)}},isFullScreen:function(){return this._fullscreen},postRender:function(){d.prototype.postRender.call(this);for(var a=0;a[\n\r\t]+([ ]{4})+/g,">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<"),c.className&&(b.className=c.className),c.style.cssText&&(b.style.cssText=c.style.cssText),/textarea/i.test(c.tagName)?(d.textarea=c,d.textarea.style.display="none"):c.parentNode.removeChild(c),c.id&&(b.id=c.id,e.removeAttributes(c,"id")),c=b,c.innerHTML=""}e.addClass(c,"edui-"+d.options.theme),d.ui.render(c);var h=d.options;d.container=d.ui.getDom();for(var i,j=e.findParents(c,!0),k=[],l=0;i=j[l];l++)k[l]=i.style.display,i.style.display="block";if(h.initialFrameWidth)h.minFrameWidth=h.initialFrameWidth;else{h.minFrameWidth=h.initialFrameWidth=c.offsetWidth;var m=c.style.width;/%$/.test(m)&&(h.initialFrameWidth=m)}h.initialFrameHeight?h.minFrameHeight=h.initialFrameHeight:h.initialFrameHeight=h.minFrameHeight=c.offsetHeight;for(var i,l=0;i=j[l];l++)i.style.display=k[l];c.style.height&&(c.style.height=""),d.container.style.width=h.initialFrameWidth+(/%$/.test(h.initialFrameWidth)?"":"px"),d.container.style.zIndex=h.zIndex,f.call(d,d.ui.getDom("iframeholder")),d.fireEvent("afteruiready")}d.langIsReady?b():d.addListener("langReady",b)})},d},UE.getEditor=function(a,b){var c=g[a];return c||(c=g[a]=new UE.ui.Editor(b),c.render(a)),c},UE.delEditor=function(a){var b;(b=g[a])&&(b.key&&b.destroy(),delete g[a])},UE.registerUI=function(a,c,d,e){b.each(a.split(/\s+/),function(a){UE._customizeUI[a]={id:e,execFn:c,index:d}})}}(),UE.registerUI("message",function(a){function b(){var a=g.ui.getDom("toolbarbox");a&&(c.style.top=a.offsetHeight+3+"px"),c.style.zIndex=Math.max(g.options.zIndex,g.iframe.style.zIndex)+1}var c,d=baidu.editor.ui,e=d.Message,f=[],g=a;g.addListener("ready",function(){c=document.getElementById(g.ui.id+"_message_holder"),b()}),g.addListener("showmessage",function(a,d){d=utils.isString(d)?{content:d}:d;var h=new e({timeout:d.timeout,type:d.type,content:d.content,keepshow:d.keepshow,editor:g}),i=d.id||"msg_"+(+new Date).toString(36);return h.render(c),f[i]=h,h.reset(d),b(),i}),g.addListener("updatemessage",function(a,b,d){d=utils.isString(d)?{content:d}:d;var e=f[b];e.render(c),e&&e.reset(d)}),g.addListener("hidemessage",function(a,b){var c=f[b];c&&c.hide()})}),UE.registerUI("autosave",function(a){var b=null,c=null;a.on("afterautosave",function(){clearTimeout(b),b=setTimeout(function(){c&&a.trigger("hidemessage",c),c=a.trigger("showmessage",{content:a.getLang("autosave.success"),timeout:2e3})},2e3)})})}(); \ No newline at end of file diff --git a/public/static/UEditor/ueditor.config.js b/public/static/UEditor/ueditor.config.js deleted file mode 100644 index 948def1..0000000 --- a/public/static/UEditor/ueditor.config.js +++ /dev/null @@ -1,497 +0,0 @@ -/** - * ueditor完整配置项 - * 可以在这里配置整个编辑器的特性 - */ -/**************************提示******************************** - * 所有被注释的配置项均为UEditor默认值。 - * 修改默认配置请首先确保已经完全明确该参数的真实用途。 - * 主要有两种修改方案,一种是取消此处注释,然后修改成对应参数;另一种是在实例化编辑器时传入对应参数。 - * 当升级编辑器时,可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。 - **************************提示********************************/ - -(function () { - - /** - * 编辑器资源文件根路径。它所表示的含义是:以编辑器实例化页面为当前路径,指向编辑器资源文件(即dialog等文件夹)的路径。 - * 鉴于很多同学在使用编辑器的时候出现的种种路径问题,此处强烈建议大家使用"相对于网站根目录的相对路径"进行配置。 - * "相对于网站根目录的相对路径"也就是以斜杠开头的形如"/myProject/ueditor/"这样的路径。 - * 如果站点中有多个不在同一层级的页面需要实例化编辑器,且引用了同一UEditor的时候,此处的URL可能不适用于每个页面的编辑器。 - * 因此,UEditor提供了针对不同页面的编辑器可单独配置的根路径,具体来说,在需要实例化编辑器的页面最顶部写上如下代码即可。当然,需要令此处的URL等于对应的配置。 - * window.UEDITOR_HOME_URL = "/xxxx/xxxx/"; - */ - var URL = window.UEDITOR_HOME_URL || getUEBasePath(); - - /** - * 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。 - */ - window.UEDITOR_CONFIG = { - - //为编辑器实例添加一个路径,这个不能被注释 - UEDITOR_HOME_URL: URL - - // 服务器统一请求接口路径 - // , serverUrl: URL + "php/controller.php" - - //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义 - , toolbars: [[ - 'fullscreen', 'source', '|', 'undo', 'redo', '|', - 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|', - 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', - 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|', - 'directionalityltr', 'directionalityrtl', 'indent', '|', - 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|', - 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|', - 'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|', - 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|', - 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|', - 'print', 'preview', 'searchreplace', 'drafts', 'help' - ]] - //当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准 - //,labelMap:{ - // 'anchor':'', 'undo':'' - //} - - //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换,当然,前提条件是lang文件夹下存在对应的语言文件: - //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase() - //,lang:"zh-cn" - //,langPath:URL +"lang/" - - //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换,当然,前提条件是themes文件夹下存在对应的主题文件: - //现有如下皮肤:default - //,theme:'default' - //,themePath:URL +"themes/" - - //,zIndex : 900 //编辑器层级的基数,默认是900 - - //针对getAllHtml方法,会在对应的head标签中增加该编码设置。 - //,charset:"utf-8" - - //若实例化编辑器的页面手动修改的domain,此处需要设置为true - //,customDomain:false - - //常用配置项目 - //,isShow : true //默认显示编辑器 - - //,textarea:'editorValue' // 提交表单时,服务器获取编辑器提交内容的所用的参数,多实例时可以给容器name属性,会将name给定的值最为每个实例的键值,不用每次实例化的时候都设置这个值 - - //,initialContent:'欢迎使用ueditor!' //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子 - - //,autoClearinitialContent:true //是否自动清除编辑器初始内容,注意:如果focus属性设置为true,这个也为真,那么编辑器一上来就会触发导致初始化的内容看不到了 - - //,focus:false //初始化时,是否让编辑器获得焦点true或false - - //如果自定义,最好给p标签如下的行高,要不输入中文时,会有跳动感 - //,initialStyle:'p{line-height:1em}'//编辑器层级的基数,可以用来改变字体等 - - //,iframeCssUrl: URL + '/themes/iframe.css' //给编辑区域的iframe引入一个css文件 - - //indentValue - //首行缩进距离,默认是2em - //,indentValue:'2em' - - //,initialFrameWidth:1000 //初始化编辑器宽度,默认1000 - //,initialFrameHeight:320 //初始化编辑器高度,默认320 - - //,readonly : false //编辑器初始化结束后,编辑区域是否是只读的,默认是false - - //,autoClearEmptyNode : true //getContent时,是否删除空的inlineElement节点(包括嵌套的情况) - - //启用自动保存 - ,enableAutoSave: false - //自动保存间隔时间, 单位ms - //,saveInterval: 500 - - //,fullscreen : false //是否开启初始化时即全屏,默认关闭 - - //,imagePopup:true //图片操作的浮层开关,默认打开 - - //,autoSyncData:true //自动同步编辑器要提交的数据 - //,emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹 - - //粘贴只保留标签,去除标签所有属性 - //,retainOnlyLabelPasted: false - - //,pasteplain:false //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴 - //纯文本粘贴模式下的过滤规则 - //'filterTxtRules' : function(){ - // function transP(node){ - // node.tagName = 'p'; - // node.setStyle(); - // } - // return { - // //直接删除及其字节点内容 - // '-' : 'script style object iframe embed input select', - // 'p': {$:{}}, - // 'br':{$:{}}, - // 'div':{'$':{}}, - // 'li':{'$':{}}, - // 'caption':transP, - // 'th':transP, - // 'tr':transP, - // 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, - // 'td':function(node){ - // //没有内容的td直接删掉 - // var txt = !!node.innerText(); - // if(txt){ - // node.parentNode.insertAfter(UE.uNode.createText('    '),node); - // } - // node.parentNode.removeChild(node,node.innerText()) - // } - // } - //}() - - //,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串 - - //insertorderedlist - //有序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 - //,'insertorderedlist':{ - // //自定的样式 - // 'num':'1,2,3...', - // 'num1':'1),2),3)...', - // 'num2':'(1),(2),(3)...', - // 'cn':'一,二,三....', - // 'cn1':'一),二),三)....', - // 'cn2':'(一),(二),(三)....', - // //系统自带 - // 'decimal' : '' , //'1,2,3...' - // 'lower-alpha' : '' , // 'a,b,c...' - // 'lower-roman' : '' , //'i,ii,iii...' - // 'upper-alpha' : '' , lang //'A,B,C' - // 'upper-roman' : '' //'I,II,III...' - //} - - //insertunorderedlist - //无序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 - //,insertunorderedlist : { //自定的样式 - // 'dash' :'— 破折号', //-破折号 - // 'dot':' 。 小圆圈', //系统自带 - // 'circle' : '', // '○ 小圆圈' - // 'disc' : '', // '● 小圆点' - // 'square' : '' //'■ 小方块' - //} - //,listDefaultPaddingLeft : '30'//默认的左边缩进的基数倍 - //,listiconpath : 'http://bs.baidu.com/listicon/'//自定义标号的路径 - //,maxListLevel : 3 //限制可以tab的级数, 设置-1为不限制 - - //,autoTransWordToList:false //禁止word中粘贴进来的列表自动变成列表标签 - - //fontfamily - //字体设置 label留空支持多语言自动切换,若配置,则以配置值为准 - //,'fontfamily':[ - // { label:'',name:'songti',val:'宋体,SimSun'}, - // { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'}, - // { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'}, - // { label:'',name:'heiti',val:'黑体, SimHei'}, - // { label:'',name:'lishu',val:'隶书, SimLi'}, - // { label:'',name:'andaleMono',val:'andale mono'}, - // { label:'',name:'arial',val:'arial, helvetica,sans-serif'}, - // { label:'',name:'arialBlack',val:'arial black,avant garde'}, - // { label:'',name:'comicSansMs',val:'comic sans ms'}, - // { label:'',name:'impact',val:'impact,chicago'}, - // { label:'',name:'timesNewRoman',val:'times new roman'} - //] - - //fontsize - //字号 - //,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36] - - //paragraph - //段落格式 值留空时支持多语言自动识别,若配置,则以配置值为准 - //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''} - - //rowspacingtop - //段间距 值和显示的名字相同 - //,'rowspacingtop':['5', '10', '15', '20', '25'] - - //rowspacingBottom - //段间距 值和显示的名字相同 - //,'rowspacingbottom':['5', '10', '15', '20', '25'] - - //lineheight - //行内间距 值和显示的名字相同 - //,'lineheight':['1', '1.5','1.75','2', '3', '4', '5'] - - //customstyle - //自定义样式,不支持国际化,此处配置值即可最后显示值 - //block的元素是依据设置段落的逻辑设置的,inline的元素依据BIU的逻辑设置 - //尽量使用一些常用的标签 - //参数说明 - //tag 使用的标签名字 - //label 显示的名字也是用来标识不同类型的标识符,注意这个值每个要不同, - //style 添加的样式 - //每一个对象就是一个自定义的样式 - //,'customstyle':[ - // {tag:'h1', name:'tc', label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, - // {tag:'h1', name:'tl',label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;margin:0 0 10px 0;'}, - // {tag:'span',name:'im', label:'', style:'font-style:italic;font-weight:bold'}, - // {tag:'span',name:'hi', label:'', style:'font-style:italic;font-weight:bold;color:rgb(51, 153, 204)'} - //] - - //打开右键菜单功能 - //,enableContextMenu: true - //右键菜单的内容,可以参考plugins/contextmenu.js里边的默认菜单的例子,label留空支持国际化,否则以此配置为准 - //,contextMenu:[ - // { - // label:'', //显示的名称 - // cmdName:'selectall',//执行的command命令,当点击这个右键菜单时 - // //exec可选,有了exec就会在点击时执行这个function,优先级高于cmdName - // exec:function () { - // //this是当前编辑器的实例 - // //this.ui._dialogs['inserttableDialog'].open(); - // } - // } - //] - - //快捷菜单 - //,shortcutMenu:["fontfamily", "fontsize", "bold", "italic", "underline", "forecolor", "backcolor", "insertorderedlist", "insertunorderedlist"] - - //elementPathEnabled - //是否启用元素路径,默认是显示 - //,elementPathEnabled : true - - //wordCount - //,wordCount:true //是否开启字数统计 - //,maximumWords:10000 //允许的最大字符数 - //字数统计提示,{#count}代表当前字数,{#leave}代表还可以输入多少字符数,留空支持多语言自动切换,否则按此配置显示 - //,wordCountMsg:'' //当前已输入 {#count} 个字符,您还可以输入{#leave} 个字符 - //超出字数限制提示 留空支持多语言自动切换,否则按此配置显示 - //,wordOverFlowMsg:'' //你输入的字符个数已经超出最大允许值,服务器可能会拒绝保存! - - //tab - //点击tab键时移动的距离,tabSize倍数,tabNode什么字符做为单位 - //,tabSize:4 - //,tabNode:' ' - - //removeFormat - //清除格式时可以删除的标签和属性 - //removeForamtTags标签 - //,removeFormatTags:'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' - //removeFormatAttributes属性 - //,removeFormatAttributes:'class,style,lang,width,height,align,hspace,valign' - - //undo - //可以最多回退的次数,默认20 - //,maxUndoCount:20 - //当输入的字符数超过该值时,保存一次现场 - //,maxInputCount:1 - - //autoHeightEnabled - // 是否自动长高,默认true - //,autoHeightEnabled:true - - //scaleEnabled - //是否可以拉伸长高,默认true(当开启时,自动长高失效) - //,scaleEnabled:false - //,minFrameWidth:800 //编辑器拖动时最小宽度,默认800 - //,minFrameHeight:220 //编辑器拖动时最小高度,默认220 - - //autoFloatEnabled - //是否保持toolbar的位置不动,默认true - //,autoFloatEnabled:true - //浮动时工具栏距离浏览器顶部的高度,用于某些具有固定头部的页面 - //,topOffset:30 - //编辑器底部距离工具栏高度(如果参数大于等于编辑器高度,则设置无效) - //,toolbarTopOffset:400 - - //设置远程图片是否抓取到本地保存 - //,catchRemoteImageEnable: true //设置是否抓取远程图片 - - //pageBreakTag - //分页标识符,默认是_ueditor_page_break_tag_ - //,pageBreakTag:'_ueditor_page_break_tag_' - - //autotypeset - //自动排版参数 - //,autotypeset: { - // mergeEmptyline: true, //合并空行 - // removeClass: true, //去掉冗余的class - // removeEmptyline: false, //去掉空行 - // textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 - // imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 - // pasteFilter: false, //根据规则过滤没事粘贴进来的内容 - // clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 - // clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 - // removeEmptyNode: false, // 去掉空节点 - // //可以去掉的标签 - // removeTagNames: {标签名字:1}, - // indent: false, // 行首缩进 - // indentValue : '2em', //行首缩进的大小 - // bdc2sb: false, - // tobdc: false - //} - - //tableDragable - //表格是否可以拖拽 - //,tableDragable: true - - - - //sourceEditor - //源码的查看方式,codemirror 是代码高亮,textarea是文本框,默认是codemirror - //注意默认codemirror只能在ie8+和非ie中使用 - //,sourceEditor:"codemirror" - //如果sourceEditor是codemirror,还用配置一下两个参数 - //codeMirrorJsUrl js加载的路径,默认是 URL + "third-party/codemirror/codemirror.js" - //,codeMirrorJsUrl:URL + "third-party/codemirror/codemirror.js" - //codeMirrorCssUrl css加载的路径,默认是 URL + "third-party/codemirror/codemirror.css" - //,codeMirrorCssUrl:URL + "third-party/codemirror/codemirror.css" - //编辑器初始化完成后是否进入源码模式,默认为否。 - //,sourceEditorFirst:false - - //iframeUrlMap - //dialog内容的路径 ~会被替换成URL,垓属性一旦打开,将覆盖所有的dialog的默认路径 - //,iframeUrlMap:{ - // 'anchor':'~/dialogs/anchor/anchor.html', - //} - - //allowLinkProtocol 允许的链接地址,有这些前缀的链接地址不会自动添加http - //, allowLinkProtocols: ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:', 'git:', 'svn:'] - - //webAppKey 百度应用的APIkey,每个站长必须首先去百度官网注册一个key后方能正常使用app功能,注册介绍,http://app.baidu.com/static/cms/getapikey.html - //, webAppKey: "" - - //默认过滤规则相关配置项目 - //,disabledTableInTable:true //禁止表格嵌套 - //,allowDivTransToP:true //允许进入编辑器的div标签自动变成p标签 - //,rgb2Hex:true //默认产出的数据中的color自动从rgb格式变成16进制格式 - - // xss 过滤是否开启,inserthtml等操作 - ,xssFilterRules: true - //input xss过滤 - ,inputXssFilter: true - //output xss过滤 - ,outputXssFilter: true - // xss过滤白名单 名单来源: https://raw.githubusercontent.com/leizongmin/js-xss/master/lib/default.js - ,whiteList: { - a: ['target', 'href', 'title', 'class', 'style'], - abbr: ['title', 'class', 'style'], - address: ['class', 'style'], - area: ['shape', 'coords', 'href', 'alt'], - article: [], - aside: [], - audio: ['autoplay', 'controls', 'loop', 'preload', 'src', 'class', 'style'], - b: ['class', 'style'], - bdi: ['dir'], - bdo: ['dir'], - big: [], - blockquote: ['cite', 'class', 'style'], - br: [], - caption: ['class', 'style'], - center: [], - cite: [], - code: ['class', 'style'], - col: ['align', 'valign', 'span', 'width', 'class', 'style'], - colgroup: ['align', 'valign', 'span', 'width', 'class', 'style'], - dd: ['class', 'style'], - del: ['datetime'], - details: ['open'], - div: ['class', 'style'], - dl: ['class', 'style'], - dt: ['class', 'style'], - em: ['class', 'style'], - font: ['color', 'size', 'face'], - footer: [], - h1: ['class', 'style'], - h2: ['class', 'style'], - h3: ['class', 'style'], - h4: ['class', 'style'], - h5: ['class', 'style'], - h6: ['class', 'style'], - header: [], - hr: [], - i: ['class', 'style'], - img: ['src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex'], - ins: ['datetime'], - li: ['class', 'style'], - mark: [], - nav: [], - ol: ['class', 'style'], - p: ['class', 'style'], - pre: ['class', 'style'], - s: [], - section:[], - small: [], - span: ['class', 'style'], - sub: ['class', 'style'], - sup: ['class', 'style'], - strong: ['class', 'style'], - table: ['width', 'border', 'align', 'valign', 'class', 'style'], - tbody: ['align', 'valign', 'class', 'style'], - td: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], - tfoot: ['align', 'valign', 'class', 'style'], - th: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], - thead: ['align', 'valign', 'class', 'style'], - tr: ['rowspan', 'align', 'valign', 'class', 'style'], - tt: [], - u: [], - ul: ['class', 'style'], - video: ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width', 'class', 'style'] - } - }; - - function getUEBasePath(docUrl, confUrl) { - - return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath()); - - } - - function getConfigFilePath() { - - var configPath = document.getElementsByTagName('script'); - - return configPath[ configPath.length - 1 ].src; - - } - - function getBasePath(docUrl, confUrl) { - - var basePath = confUrl; - - - if (/^(\/|\\\\)/.test(confUrl)) { - - basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, ''); - - } else if (!/^[a-z]+:/i.test(confUrl)) { - - docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, ''); - - basePath = docUrl + "" + confUrl; - - } - - return optimizationPath(basePath); - - } - - function optimizationPath(path) { - - var protocol = /^[a-z]+:\/\//.exec(path)[ 0 ], - tmp = null, - res = []; - - path = path.replace(protocol, "").split("?")[0].split("#")[0]; - - path = path.replace(/\\/g, '/').split(/\//); - - path[ path.length - 1 ] = ""; - - while (path.length) { - - if (( tmp = path.shift() ) === "..") { - res.pop(); - } else if (tmp !== ".") { - res.push(tmp); - } - - } - - return protocol + res.join("/"); - - } - - window.UE = { - getUEBasePath: getUEBasePath - }; - -})(); diff --git a/public/static/UEditor/ueditor.parse.js b/public/static/UEditor/ueditor.parse.js deleted file mode 100644 index 5e77074..0000000 --- a/public/static/UEditor/ueditor.parse.js +++ /dev/null @@ -1,1022 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - -(function(){ - -(function(){ - UE = window.UE || {}; - var isIE = !!window.ActiveXObject; - //定义utils工具 - var utils = { - removeLastbs : function(url){ - return url.replace(/\/$/,'') - }, - extend : function(t,s){ - var a = arguments, - notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false, - len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length; - for (var i = 1; i < len; i++) { - var x = a[i]; - for (var k in x) { - if (!notCover || !t.hasOwnProperty(k)) { - t[k] = x[k]; - } - } - } - return t; - }, - isIE : isIE, - cssRule : isIE ? function(key,style,doc){ - var indexList,index; - doc = doc || document; - if(doc.indexList){ - indexList = doc.indexList; - }else{ - indexList = doc.indexList = {}; - } - var sheetStyle; - if(!indexList[key]){ - if(style === undefined){ - return '' - } - sheetStyle = doc.createStyleSheet('',index = doc.styleSheets.length); - indexList[key] = index; - }else{ - sheetStyle = doc.styleSheets[indexList[key]]; - } - if(style === undefined){ - return sheetStyle.cssText - } - sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '') - } : function(key,style,doc){ - doc = doc || document; - var head = doc.getElementsByTagName('head')[0],node; - if(!(node = doc.getElementById(key))){ - if(style === undefined){ - return '' - } - node = doc.createElement('style'); - node.id = key; - head.appendChild(node) - } - if(style === undefined){ - return node.innerHTML - } - if(style !== ''){ - node.innerHTML = node.innerHTML + '\n' + style; - }else{ - head.removeChild(node) - } - }, - domReady : function (onready) { - var doc = window.document; - if (doc.readyState === "complete") { - onready(); - }else{ - if (isIE) { - (function () { - if (doc.isReady) return; - try { - doc.documentElement.doScroll("left"); - } catch (error) { - setTimeout(arguments.callee, 0); - return; - } - onready(); - })(); - window.attachEvent('onload', function(){ - onready() - }); - } else { - doc.addEventListener("DOMContentLoaded", function () { - doc.removeEventListener("DOMContentLoaded", arguments.callee, false); - onready(); - }, false); - window.addEventListener('load', function(){onready()}, false); - } - } - - }, - each : function(obj, iterator, context) { - if (obj == null) return; - if (obj.length === +obj.length) { - for (var i = 0, l = obj.length; i < l; i++) { - if(iterator.call(context, obj[i], i, obj) === false) - return false; - } - } else { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - if(iterator.call(context, obj[key], key, obj) === false) - return false; - } - } - } - }, - inArray : function(arr,item){ - var index = -1; - this.each(arr,function(v,i){ - if(v === item){ - index = i; - return false; - } - }); - return index; - }, - pushItem : function(arr,item){ - if(this.inArray(arr,item)==-1){ - arr.push(item) - } - }, - trim: function (str) { - return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, ''); - }, - indexOf: function (array, item, start) { - var index = -1; - start = this.isNumber(start) ? start : 0; - this.each(array, function (v, i) { - if (i >= start && v === item) { - index = i; - return false; - } - }); - return index; - }, - hasClass: function (element, className) { - className = className.replace(/(^[ ]+)|([ ]+$)/g, '').replace(/[ ]{2,}/g, ' ').split(' '); - for (var i = 0, ci, cls = element.className; ci = className[i++];) { - if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) { - return false; - } - } - return i - 1 == className.length; - }, - addClass:function (elm, classNames) { - if(!elm)return; - classNames = this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - if(!new RegExp('\\b' + ci + '\\b').test(cls)){ - cls += ' ' + ci; - } - } - elm.className = utils.trim(cls); - }, - removeClass:function (elm, classNames) { - classNames = this.isArray(classNames) ? classNames : - this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'') - } - cls = this.trim(cls).replace(/[ ]{2,}/g,' '); - elm.className = cls; - !cls && elm.removeAttribute('className'); - }, - on: function (element, type, handler) { - var types = this.isArray(type) ? type : type.split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.addEventListener) { - element.addEventListener(type, handler, false); - } else { - if (!handler._d) { - handler._d = { - els : [] - }; - } - var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element); - if (!handler._d[key] || index == -1) { - if(index == -1){ - handler._d.els.push(element); - } - if(!handler._d[key]){ - handler._d[key] = function (evt) { - return handler.call(evt.srcElement, evt || window.event); - }; - } - - - element.attachEvent('on' + type, handler._d[key]); - } - } - } - element = null; - }, - off: function (element, type, handler) { - var types = this.isArray(type) ? type : type.split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.removeEventListener) { - element.removeEventListener(type, handler, false); - } else { - var key = type + handler.toString(); - try{ - element.detachEvent('on' + type, handler._d ? handler._d[key] : handler); - }catch(e){} - if (handler._d && handler._d[key]) { - var index = utils.indexOf(handler._d.els,element); - if(index!=-1){ - handler._d.els.splice(index,1); - } - handler._d.els.length == 0 && delete handler._d[key]; - } - } - } - }, - loadFile : function () { - var tmpList = []; - function getItem(doc,obj){ - try{ - for(var i= 0,ci;ci=tmpList[i++];){ - if(ci.doc === doc && ci.url == (obj.src || obj.href)){ - return ci; - } - } - }catch(e){ - return null; - } - - } - return function (doc, obj, fn) { - var item = getItem(doc,obj); - if (item) { - if(item.ready){ - fn && fn(); - }else{ - item.funs.push(fn) - } - return; - } - tmpList.push({ - doc:doc, - url:obj.src||obj.href, - funs:[fn] - }); - if (!doc.body) { - var html = []; - for(var p in obj){ - if(p == 'tag')continue; - html.push(p + '="' + obj[p] + '"') - } - doc.write('<' + obj.tag + ' ' + html.join(' ') + ' >'); - return; - } - if (obj.id && doc.getElementById(obj.id)) { - return; - } - var element = doc.createElement(obj.tag); - delete obj.tag; - for (var p in obj) { - element.setAttribute(p, obj[p]); - } - element.onload = element.onreadystatechange = function () { - if (!this.readyState || /loaded|complete/.test(this.readyState)) { - item = getItem(doc,obj); - if (item.funs.length > 0) { - item.ready = 1; - for (var fi; fi = item.funs.pop();) { - fi(); - } - } - element.onload = element.onreadystatechange = null; - } - }; - element.onerror = function(){ - throw Error('The load '+(obj.href||obj.src)+' fails,check the url') - }; - doc.getElementsByTagName("head")[0].appendChild(element); - } - }() - }; - utils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object','Boolean'], function (v) { - utils['is' + v] = function (obj) { - return Object.prototype.toString.apply(obj) == '[object ' + v + ']'; - } - }); - var parselist = {}; - UE.parse = { - register : function(parseName,fn){ - parselist[parseName] = fn; - }, - load : function(opt){ - utils.each(parselist,function(v){ - v.call(opt,utils); - }) - } - }; - uParse = function(selector,opt){ - utils.domReady(function(){ - var contents; - if(document.querySelectorAll){ - contents = document.querySelectorAll(selector) - }else{ - if(/^#/.test(selector)){ - contents = [document.getElementById(selector.replace(/^#/,''))] - }else if(/^\./.test(selector)){ - var contents = []; - utils.each(document.getElementsByTagName('*'),function(node){ - if(node.className && new RegExp('\\b' + selector.replace(/^\./,'') + '\\b','i').test(node.className)){ - contents.push(node) - } - }) - }else{ - contents = document.getElementsByTagName(selector) - } - } - utils.each(contents,function(v){ - UE.parse.load(utils.extend({root:v,selector:selector},opt)) - }) - }) - } -})(); - -UE.parse.register('insertcode',function(utils){ - var pres = this.root.getElementsByTagName('pre'); - if(pres.length){ - if(typeof XRegExp == "undefined"){ - var jsurl,cssurl; - if(this.rootPath !== undefined){ - jsurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCore.js'; - cssurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css'; - }else{ - jsurl = this.highlightJsUrl; - cssurl = this.highlightCssUrl; - } - utils.loadFile(document,{ - id : "syntaxhighlighter_css", - tag : "link", - rel : "stylesheet", - type : "text/css", - href : cssurl - }); - utils.loadFile(document,{ - id : "syntaxhighlighter_js", - src : jsurl, - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - utils.each(pres,function(pi){ - if(pi && /brush/i.test(pi.className)){ - SyntaxHighlighter.highlight(pi); - } - }); - }); - }else{ - utils.each(pres,function(pi){ - if(pi && /brush/i.test(pi.className)){ - SyntaxHighlighter.highlight(pi); - } - }); - } - } - -}); -UE.parse.register('table', function (utils) { - var me = this, - root = this.root, - tables = root.getElementsByTagName('table'); - if (tables.length) { - var selector = this.selector; - //追加默认的表格样式 - utils.cssRule('table', - selector + ' table.noBorderTable td,' + - selector + ' table.noBorderTable th,' + - selector + ' table.noBorderTable caption{border:1px dashed #ddd !important}' + - selector + ' table.sortEnabled tr.firstRow th,' + selector + ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' + - 'background-position: center right; background-image:url(' + this.rootPath + 'themes/default/images/sortable.png);}' + - selector + ' table.sortEnabled tr.firstRow th:hover,' + selector + ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' + - selector + ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' + - selector + ' td,' + selector + ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' + - selector + ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' + - selector + ' th{border-top:1px solid #BBB;background:#F7F7F7;}' + - selector + ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' + - selector + ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' + - selector + ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' + - selector + ' td p{margin:0;padding:0;}', - document); - //填充空的单元格 - - utils.each('td th caption'.split(' '), function (tag) { - var cells = root.getElementsByTagName(tag); - cells.length && utils.each(cells, function (node) { - if (!node.firstChild) { - node.innerHTML = ' '; - - } - }) - }); - - //表格可排序 - var tables = root.getElementsByTagName('table'); - utils.each(tables, function (table) { - if (/\bsortEnabled\b/.test(table.className)) { - utils.on(table, 'click', function(e){ - var target = e.target || e.srcElement, - cell = findParentByTagName(target, ['td', 'th']); - var table = findParentByTagName(target, 'table'), - colIndex = utils.indexOf(table.rows[0].cells, cell), - sortType = table.getAttribute('data-sort-type'); - if(colIndex != -1) { - sortTable(table, colIndex, me.tableSortCompareFn || sortType); - updateTable(table); - } - }); - } - }); - - //按照标签名查找父节点 - function findParentByTagName(target, tagNames) { - var i, current = target; - tagNames = utils.isArray(tagNames) ? tagNames:[tagNames]; - while(current){ - for(i = 0;i < tagNames.length; i++) { - if(current.tagName == tagNames[i].toUpperCase()) return current; - } - current = current.parentNode; - } - return null; - } - //表格排序 - function sortTable(table, sortByCellIndex, compareFn) { - var rows = table.rows, - trArray = [], - flag = rows[0].cells[0].tagName === "TH", - lastRowIndex = 0; - - for (var i = 0,len = rows.length; i < len; i++) { - trArray[i] = rows[i]; - } - - var Fn = { - 'reversecurrent': function(td1,td2){ - return 1; - }, - 'orderbyasc': function(td1,td2){ - var value1 = td1.innerText||td1.textContent, - value2 = td2.innerText||td2.textContent; - return value1.localeCompare(value2); - }, - 'reversebyasc': function(td1,td2){ - var value1 = td1.innerHTML, - value2 = td2.innerHTML; - return value2.localeCompare(value1); - }, - 'orderbynum': function(td1,td2){ - var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value1||0) - (value2||0); - }, - 'reversebynum': function(td1,td2){ - var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value2||0) - (value1||0); - } - }; - - //对表格设置排序的标记data-sort-type - table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:''); - - //th不参与排序 - flag && trArray.splice(0, 1); - trArray = sort(trArray,function (tr1, tr2) { - var result; - if (compareFn && typeof compareFn === "function") { - result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else if (compareFn && typeof compareFn === "number") { - result = 1; - } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) { - result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else { - result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } - return result; - }); - var fragment = table.ownerDocument.createDocumentFragment(); - for (var j = 0, len = trArray.length; j < len; j++) { - fragment.appendChild(trArray[j]); - } - var tbody = table.getElementsByTagName("tbody")[0]; - if(!lastRowIndex){ - tbody.appendChild(fragment); - }else{ - tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1]) - } - } - //冒泡排序 - function sort(array, compareFn){ - compareFn = compareFn || function(item1, item2){ return item1.localeCompare(item2);}; - for(var i= 0,len = array.length; i 0){ - var t = array[i]; - array[i] = array[j]; - array[j] = t; - } - } - } - return array; - } - //更新表格 - function updateTable(table) { - //给第一行设置firstRow的样式名称,在排序图标的样式上使用到 - if(!utils.hasClass(table.rows[0], "firstRow")) { - for(var i = 1; i< table.rows.length; i++) { - utils.removeClass(table.rows[i], "firstRow"); - } - utils.addClass(table.rows[0], "firstRow"); - } - } - } -}); -UE.parse.register('charts',function( utils ){ - - utils.cssRule('chartsContainerHeight','.edui-chart-container { height:'+(this.chartContainerHeight||300)+'px}'); - var resourceRoot = this.rootPath, - containers = this.root, - sources = null; - - //不存在指定的根路径, 则直接退出 - if ( !resourceRoot ) { - return; - } - - if ( sources = parseSources() ) { - - loadResources(); - - } - - - function parseSources () { - - if ( !containers ) { - return null; - } - - return extractChartData( containers ); - - } - - /** - * 提取数据 - */ - function extractChartData ( rootNode ) { - - var data = [], - tables = rootNode.getElementsByTagName( "table" ); - - for ( var i = 0, tableNode; tableNode = tables[ i ]; i++ ) { - - if ( tableNode.getAttribute( "data-chart" ) !== null ) { - - data.push( formatData( tableNode ) ); - - } - - } - - return data.length ? data : null; - - } - - function formatData ( tableNode ) { - - var meta = tableNode.getAttribute( "data-chart" ), - metaConfig = {}, - data = []; - - //提取table数据 - for ( var i = 0, row; row = tableNode.rows[ i ]; i++ ) { - - var rowData = []; - - for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) { - - var value = ( cell.innerText || cell.textContent || '' ); - rowData.push( cell.tagName == 'TH' ? value:(value | 0) ); - - } - - data.push( rowData ); - - } - - //解析元信息 - meta = meta.split( ";" ); - for ( var i = 0, metaData; metaData = meta[ i ]; i++ ) { - - metaData = metaData.split( ":" ); - metaConfig[ metaData[ 0 ] ] = metaData[ 1 ]; - - } - - - return { - table: tableNode, - meta: metaConfig, - data: data - }; - - } - - //加载资源 - function loadResources () { - - loadJQuery(); - - } - - function loadJQuery () { - - //不存在jquery, 则加载jquery - if ( !window.jQuery ) { - - utils.loadFile(document,{ - src : resourceRoot + "/third-party/jquery-1.10.2.min.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - loadHighcharts(); - - }); - - } else { - - loadHighcharts(); - - } - - } - - function loadHighcharts () { - - //不存在Highcharts, 则加载Highcharts - if ( !window.Highcharts ) { - - utils.loadFile(document,{ - src : resourceRoot + "/third-party/highcharts/highcharts.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - loadTypeConfig(); - - }); - - } else { - - loadTypeConfig(); - - } - - } - - //加载图表差异化配置文件 - function loadTypeConfig () { - - utils.loadFile(document,{ - src : resourceRoot + "/dialogs/charts/chart.config.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - render(); - - }); - - } - - //渲染图表 - function render () { - - var config = null, - chartConfig = null, - container = null; - - for ( var i = 0, len = sources.length; i < len; i++ ) { - - config = sources[ i ]; - - chartConfig = analysisConfig( config ); - - container = createContainer( config.table ); - - renderChart( container, typeConfig[ config.meta.chartType ], chartConfig ); - - } - - - } - - /** - * 渲染图表 - * @param container 图表容器节点对象 - * @param typeConfig 图表类型配置 - * @param config 图表通用配置 - * */ - function renderChart ( container, typeConfig, config ) { - - - $( container ).highcharts( $.extend( {}, typeConfig, { - - credits: { - enabled: false - }, - exporting: { - enabled: false - }, - title: { - text: config.title, - x: -20 //center - }, - subtitle: { - text: config.subTitle, - x: -20 - }, - xAxis: { - title: { - text: config.xTitle - }, - categories: config.categories - }, - yAxis: { - title: { - text: config.yTitle - }, - plotLines: [{ - value: 0, - width: 1, - color: '#808080' - }] - }, - tooltip: { - enabled: true, - valueSuffix: config.suffix - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle', - borderWidth: 1 - }, - series: config.series - - } )); - - } - - /** - * 创建图表的容器 - * 新创建的容器会替换掉对应的table对象 - * */ - function createContainer ( tableNode ) { - - var container = document.createElement( "div" ); - container.className = "edui-chart-container"; - - tableNode.parentNode.replaceChild( container, tableNode ); - - return container; - - } - - //根据config解析出正确的类别和图表数据信息 - function analysisConfig ( config ) { - - var series = [], - //数据类别 - categories = [], - result = [], - data = config.data, - meta = config.meta; - - //数据对齐方式为相反的方式, 需要反转数据 - if ( meta.dataFormat != "1" ) { - - for ( var i = 0, len = data.length; i < len ; i++ ) { - - for ( var j = 0, jlen = data[ i ].length; j < jlen; j++ ) { - - if ( !result[ j ] ) { - result[ j ] = []; - } - - result[ j ][ i ] = data[ i ][ j ]; - - } - - } - - data = result; - - } - - result = {}; - - //普通图表 - if ( meta.chartType != typeConfig.length - 1 ) { - - categories = data[ 0 ].slice( 1 ); - - for ( var i = 1, curData; curData = data[ i ]; i++ ) { - series.push( { - name: curData[ 0 ], - data: curData.slice( 1 ) - } ); - } - - result.series = series; - result.categories = categories; - result.title = meta.title; - result.subTitle = meta.subTitle; - result.xTitle = meta.xTitle; - result.yTitle = meta.yTitle; - result.suffix = meta.suffix; - - } else { - - var curData = []; - - for ( var i = 1, len = data[ 0 ].length; i < len; i++ ) { - - curData.push( [ data[ 0 ][ i ], data[ 1 ][ i ] | 0 ] ); - - } - - //饼图 - series[ 0 ] = { - type: 'pie', - name: meta.tip, - data: curData - }; - - result.series = series; - result.title = meta.title; - result.suffix = meta.suffix; - - } - - return result; - - } - -}); -UE.parse.register('background', function (utils) { - var me = this, - root = me.root, - p = root.getElementsByTagName('p'), - styles; - - for (var i = 0,ci; ci = p[i++];) { - styles = ci.getAttribute('data-background'); - if (styles){ - ci.parentNode.removeChild(ci); - } - } - - //追加默认的表格样式 - styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document); -}); -UE.parse.register('list',function(utils){ - var customCss = [], - customStyle = { - 'cn' : 'cn-1-', - 'cn1' : 'cn-2-', - 'cn2' : 'cn-3-', - 'num' : 'num-1-', - 'num1' : 'num-2-', - 'num2' : 'num-3-', - 'dash' : 'dash', - 'dot' : 'dot' - }; - - - utils.extend(this,{ - liiconpath : 'http://bs.baidu.com/listicon/', - listDefaultPaddingLeft : '20' - }); - - var root = this.root, - ols = root.getElementsByTagName('ol'), - uls = root.getElementsByTagName('ul'), - selector = this.selector; - - if(ols.length){ - applyStyle.call(this,ols); - } - - if(uls.length){ - applyStyle.call(this,uls); - } - - if(ols.length || uls.length){ - customCss.push(selector +' .list-paddingleft-1{padding-left:0}'); - customCss.push(selector +' .list-paddingleft-2{padding-left:'+ this.listDefaultPaddingLeft+'px}'); - customCss.push(selector +' .list-paddingleft-3{padding-left:'+ this.listDefaultPaddingLeft*2+'px}'); - - utils.cssRule('list', selector +' ol,'+selector +' ul{margin:0;padding:0;}li{clear:both;}'+customCss.join('\n'), document); - } - function applyStyle(nodes){ - var T = this; - utils.each(nodes,function(list){ - if(list.className && /custom_/i.test(list.className)){ - var listStyle = list.className.match(/custom_(\w+)/)[1]; - if(listStyle == 'dash' || listStyle == 'dot'){ - utils.pushItem(customCss,selector +' li.list-' + customStyle[listStyle] + '{background-image:url(' + T.liiconpath +customStyle[listStyle]+'.gif)}'); - utils.pushItem(customCss,selector +' ul.custom_'+listStyle+'{list-style:none;} '+ selector +' ul.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}'); - - }else{ - var index = 1; - utils.each(list.childNodes,function(li){ - if(li.tagName == 'LI'){ - utils.pushItem(customCss,selector + ' li.list-' + customStyle[listStyle] + index + '{background-image:url(' + T.liiconpath + 'list-'+customStyle[listStyle] +index + '.gif)}'); - index++; - } - }); - utils.pushItem(customCss,selector + ' ol.custom_'+listStyle+'{list-style:none;}'+selector+' ol.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}'); - } - switch(listStyle){ - case 'cn': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn1': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:30px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn2': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:55px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:68px}'); - break; - case 'num': - case 'num1': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}'); - break; - case 'num2': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:35px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - break; - case 'dash': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:35px}'); - break; - case 'dot': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:20px}'); - } - } - }); - } - - -}); -UE.parse.register('vedio',function(utils){ - var video = this.root.getElementsByTagName('video'), - audio = this.root.getElementsByTagName('audio'); - - document.createElement('video');document.createElement('audio'); - if(video.length || audio.length){ - var sourcePath = utils.removeLastbs(this.rootPath), - jsurl = sourcePath + '/third-party/video-js/video.js', - cssurl = sourcePath + '/third-party/video-js/video-js.min.css', - swfUrl = sourcePath + '/third-party/video-js/video-js.swf'; - - if(window.videojs) { - videojs.autoSetup(); - } else { - utils.loadFile(document,{ - id : "video_css", - tag : "link", - rel : "stylesheet", - type : "text/css", - href : cssurl - }); - utils.loadFile(document,{ - id : "video_js", - src : jsurl, - tag : "script", - type : "text/javascript" - },function(){ - videojs.options.flash.swf = swfUrl; - videojs.autoSetup(); - }); - } - - } -}); - -})(); diff --git a/public/static/UEditor/ueditor.parse.min.js b/public/static/UEditor/ueditor.parse.min.js deleted file mode 100644 index d996fd0..0000000 --- a/public/static/UEditor/ueditor.parse.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:07 GMT+0800 (CST) - */ - -!function(){!function(){UE=window.UE||{};var a=!!window.ActiveXObject,b={removeLastbs:function(a){return a.replace(/\/$/,"")},extend:function(a,b){for(var c=arguments,d=!!this.isBoolean(c[c.length-1])&&c[c.length-1],e=this.isBoolean(c[c.length-1])?c.length-1:c.length,f=1;f=c&&a===b)return d=e,!1}),d},hasClass:function(a,b){b=b.replace(/(^[ ]+)|([ ]+$)/g,"").replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},addClass:function(a,c){if(a){c=this.trim(c).replace(/[ ]{2,}/g," ").split(" ");for(var d,e=0,f=a.className;d=c[e++];)new RegExp("\\b"+d+"\\b").test(f)||(f+=" "+d);a.className=b.trim(f)}},removeClass:function(a,b){b=this.isArray(b)?b:this.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=this.trim(e).replace(/[ ]{2,}/g," "),a.className=e,!e&&a.removeAttribute("className")},on:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.addEventListener)a.addEventListener(c,d,!1);else{d._d||(d._d={els:[]});var g=c+d.toString(),h=b.indexOf(d._d.els,a);d._d[g]&&h!=-1||(h==-1&&d._d.els.push(a),d._d[g]||(d._d[g]=function(a){return d.call(a.srcElement,a||window.event)}),a.attachEvent("on"+c,d._d[g]))}a=null},off:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.removeEventListener)a.removeEventListener(c,d,!1);else{var g=c+d.toString();try{a.detachEvent("on"+c,d._d?d._d[g]:d)}catch(h){}if(d._d&&d._d[g]){var i=b.indexOf(d._d.els,a);i!=-1&&d._d.els.splice(i,1),0==d._d.els.length&&delete d._d[g]}}},loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url")},c.getElementsByTagName("head")[0].appendChild(i)}}}()};b.each(["String","Function","Array","Number","RegExp","Object","Boolean"],function(a){b["is"+a]=function(b){return Object.prototype.toString.apply(b)=="[object "+a+"]"}});var c={};UE.parse={register:function(a,b){c[a]=b},load:function(a){b.each(c,function(c){c.call(a,b)})}},uParse=function(a,c){b.domReady(function(){var d;if(document.querySelectorAll)d=document.querySelectorAll(a);else if(/^#/.test(a))d=[document.getElementById(a.replace(/^#/,""))];else if(/^\./.test(a)){var d=[];b.each(document.getElementsByTagName("*"),function(b){b.className&&new RegExp("\\b"+a.replace(/^\./,"")+"\\b","i").test(b.className)&&d.push(b)})}else d=document.getElementsByTagName(a);b.each(d,function(d){UE.parse.load(b.extend({root:d,selector:a},c))})})}}(),UE.parse.register("insertcode",function(a){var b=this.root.getElementsByTagName("pre");if(b.length)if("undefined"==typeof XRegExp){var c,d;void 0!==this.rootPath?(c=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCore.js",d=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCoreDefault.css"):(c=this.highlightJsUrl,d=this.highlightCssUrl),a.loadFile(document,{id:"syntaxhighlighter_css",tag:"link",rel:"stylesheet",type:"text/css",href:d}),a.loadFile(document,{id:"syntaxhighlighter_js",src:c,tag:"script",type:"text/javascript",defer:"defer"},function(){a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})})}else a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})}),UE.parse.register("table",function(a){function b(b,c){var d,e=b;for(c=a.isArray(c)?c:[c];e;){for(d=0;d0){var g=a[c];a[c]=a[e],a[e]=g}return a}function e(b){if(!a.hasClass(b.rows[0],"firstRow")){for(var c=1;c - - - - - 腾讯地图开放API - 轻快小巧,简单易用! - - - - - - - - - - - -
    -
    - -
    -
    当前坐标:
    - -
    当前地址:
    - -
    -
    -
    -
    -
    - 北京市[更换城市]当前缩放等级:10 -
    -

    热门城市X

    -
    - 北京 - 深圳 - 上海 - 香港 - 澳门 - 广州 - 天津 - 重庆 - 杭州 - 成都 - 武汉 - 青岛 -
    -

    全国城市

    -
    -
    直辖市
    -
    - 北京 - 上海 - 天津 - 重庆 -
    -
    -
    -
    -
    内蒙古
    -
    - 呼和浩特 - 包头 - 乌海 - 赤峰 - 通辽 - 鄂尔多斯 - 呼伦贝尔 - 巴彦淖尔 - 乌兰察布 - 兴安盟 - 锡林郭勒盟 - 阿拉善盟 -
    -
    -
    -
    -
    山西
    -
    - 太原 - 大同 - 阳泉 - 长治 - 晋城 - 朔州 - 晋中 - 运城 - 忻州 - 临汾 - 吕梁 - -
    -
    -
    -
    -
    陕西
    -
    - 西安 - 铜川 - 宝鸡 - 咸阳 - 渭南 - 延安 - 汉中 - 榆林 - 安康 - 商洛 -
    -
    -
    -
    -
    河北
    -
    - 石家庄 - 唐山 - 秦皇岛 - 邯郸 - 邢台 - 保定 - 张家口 - 承德 - 沧州 - 廊坊 - 衡水 -
    -
    -
    -
    -
    辽宁
    -
    - 沈阳 - 大连 - 鞍山 - 抚顺 - 本溪 - 丹东 - 锦州 - 营口 - 阜新 - 辽阳 - 盘锦 - 铁岭 - 朝阳 - 葫芦岛 -
    -
    -
    -
    -
    吉林
    -
    - 长春 - 吉林市 - 四平 - 辽源 - 通化 - 白山 - 松原 - 白城 - 延边 -
    -
    -
    -
    -
    黑龙江
    -
    - 哈尔滨 - 齐齐哈尔 - 鸡西 - 鹤岗 - 双鸭山 - 大庆 - 伊春 - 牡丹江 - 佳木斯 - 七台河 - 黑河 - 绥化 - 大兴安岭 -
    -
    -
    -
    -
    江苏
    -
    - 南京 - 无锡 - 徐州 - 常州 - 苏州 - 南通 - 连云港 - 淮安 - 盐城 - 扬州 - 镇江 - 泰州 - 宿迁 -
    -
    -
    -
    -
    安徽
    -
    - 合肥 - 蚌埠 - 芜湖 - 淮南 - 马鞍山 - 淮北 - 铜陵 - 安庆 - 黄山 - 阜阳 - 宿州 - 滁州 - 六安 - 宣城 - 池州 - 亳州 -
    -
    -
    -
    -
    山东
    -
    - 济南 - 青岛 - 淄博 - 枣庄 - 东营 - 潍坊 - 烟台 - 威海 - 济宁 - 泰安 - 日照 - 临沂 - 德州 - 聊城 - 滨州 - 菏泽 -
    -
    -
    -
    -
    浙江
    -
    - 杭州 - 宁波 - 温州 - 嘉兴 - 绍兴 - 金华 - 衢州 - 舟山 - 台州 - 丽水 - 湖州 -
    -
    -
    -
    -
    江西
    -
    - 南昌 - 景德镇 - 萍乡 - 九江 - 新余 - 鹰潭 - 赣州 - 吉安 - 宜春 - 抚州 - 上饶 -
    -
    -
    -
    -
    福建
    -
    - 福州 - 厦门 - 莆田 - 三明 - 泉州 - 漳州 - 南平 - 龙岩 - 宁德 -
    -
    -
    -
    -
    湖南
    -
    - 长沙 - 株洲 - 湘潭 - 衡阳 - 邵阳 - 岳阳 - 常德 - 张家界 - 益阳 - 郴州 - 永州 - 怀化 - 娄底 - 湘西 -
    -
    -
    -
    -
    湖北
    -
    - 武汉 - 黄石 - 襄阳 - 十堰 - 宜昌 - 荆门 - 鄂州 - 孝感 - 荆州 - 黄冈 - 咸宁 - 随州 - 恩施 - 潜江 - 仙桃 - 天门 - 神农架 -
    -
    -
    -
    -
    河南
    -
    - 郑州 - 开封 - 洛阳 - 平顶山 - 焦作 - 鹤壁 - 新乡 - 安阳 - 濮阳 - 许昌 - 漯河 - 三门峡 - 南阳 - 商丘 - 信阳 - 周口 - 驻马店 - 济源 -
    -
    -
    -
    -
    海南
    -
    - 海口 - 三亚 - 三沙 - 儋州 - 五指山 - 文昌 - 琼海 - 万宁 - 东方 - 定安 - 屯昌 - 澄迈 - 临高 - 白沙 - 昌江 - 乐东 - 陵水 - 保亭 - 琼中 -
    -
    -
    -
    -
    广东
    -
    - 广州 - 深圳 - 珠海 - 汕头 - 韶关 - 佛山 - 江门 - 湛江 - 茂名 - 肇庆 - 惠州 - 梅州 - 汕尾 - 河源 - 阳江 - 清远 - 东莞 - 中山 - 潮州 - 揭阳 - 云浮 -
    -
    -
    -
    -
    广西
    -
    - 南宁 - 柳州 - 桂林 - 梧州 - 北海 - 防城港 - 钦州 - 贵港 - 玉林 - 百色 - 贺州 - 河池 - 来宾 - 崇左 -
    -
    -
    -
    -
    贵州
    -
    - 贵阳 - 遵义 - 安顺 - 铜仁 - 毕节 - 六盘水 - 黔西南 - 黔东南 - 黔南 -
    -
    -
    -
    -
    四川
    -
    - 成都 - 自贡 - 攀枝花 - 泸州 - 德阳 - 绵阳 - 广元 - 遂宁 - 内江 - 乐山 - 南充 - 宜宾 - 广安 - 达州 - 眉山 - 雅安 - 巴中 - 资阳 - 阿坝 - 甘孜 - 凉山 -
    -
    -
    -
    -
    云南
    -
    - 昆明 - 保山 - 昭通 - 丽江 - 普洱 - 临沧 - 曲靖 - 玉溪 - 文山 - 西双版纳 - 楚雄 - 红河 - 德宏 - 大理 - 怒江 - 迪庆 -
    -
    -
    -
    -
    甘肃
    -
    - 兰州 - 嘉峪关 - 金昌 - 白银 - 天水 - 酒泉 - 张掖 - 武威 - 定西 - 陇南 - 平凉 - 庆阳 - 临夏 - 甘南 -
    -
    -
    -
    -
    宁夏
    -
    - 银川 - 石嘴山 - 吴忠 - 固原 - 中卫 -
    -
    -
    -
    -
    青海
    -
    - 西宁 - 玉树 - 果洛 - 海东 - 海西 - 黄南 - 海北 - 海南 -
    -
    -
    -
    -
    西藏
    -
    - 拉萨 - 那曲 - 昌都 - 山南 - 日喀则 - 阿里 - 林芝 -
    -
    -
    -
    -
    新疆
    -
    - 乌鲁木齐 - 克拉玛依 - 吐鲁番 - 哈密 - 博尔塔拉 - 巴音郭楞 - 克孜勒苏 - 和田 - 阿克苏 - 喀什 - 塔城 - 伊犁 - 昌吉 - 阿勒泰 - 石河子 - 阿拉尔 - 图木舒克 - 五家渠 - 北屯 - 铁门关 - 双河 - 可克达拉 - 昆玉 -
    -
    -
    -
    -
    - -
    -
    -
    -

    功能简介:

    -

    1、支持地址 精确/模糊 查询;

    -

    2、支持POI点坐标显示;

    -

    3、坐标鼠标跟随显示;

    -

    使用说明:

    -

    在搜索框搜索关键词后,地图上会显示相应poi点,同时左侧显示对应该点的信息,点击某点或某信息,右上角会显示相应该点的坐标和地址。

    -
    -
    -
    -
    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/public/static/img/category/10.png b/public/static/img/category/10.png deleted file mode 100644 index 3fddf61ba35bccf8bf73b374d57b0cb570cf36bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75324 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
    Nm)KH(&`(!!SNMtfnl0JmEK~iogV4ao9 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 E04*QiYybcN diff --git a/public/static/img/category/30.png b/public/static/img/category/30.png deleted file mode 100644 index 18df41a726fe26d118db572fd4f072a1b46ccac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43947 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 bkx%#m*waL%;7te300000NkvXXu0mjfBaDc@ diff --git a/public/static/img/statistics/ranking/01.png b/public/static/img/statistics/ranking/01.png deleted file mode 100644 index b592767bb66e7b671b6283715fe4d8cb6cd5ea22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2166 zcmaJ@X;>3?9v%*(peRDPMaG~AuE``JAtVy6gh0duNKU z6${mf7?Fc4mac0w z&^cTp6Cp_omrooXkHM8GlmeL$=CYYMtqMUR5i$JSs8kM>N}*9Ht|XElolYaNSUwy- zmOF()B65iHTs9(1kis(MJXiDwm%1QVX9uZV8<`EGl0;aV4*l z7S6?WK`x|C2GR}pzlJ@3rFD>Q`^CE2!x!_zGOgoLt+j7d^_T*H;R`O?Csfrx8Xg#b zGz>f2{@WbiA-E_&$jQW329zE&dvqP#7*$EiZF-E6<~CXQJk3%&jdbrTD5x|)AU^tW zn~iYf_Cecxj1Zf@&9PXWc`VEKkz|wW9P?!Ao4Gny1CymseP!q`p0kRM$@X{uToc=r z-Z$(7ob0piI9D@MNjCRhoY-#R`bZw946h!rhdvyvn#q%iM9=m`%@equz?s37SQhP1x>#Z(BF?;MyV4WC81F zU`vGK&SzCqK_BcS`>pP{UDeqRCnL$TiMjS23G|@$OFVz4a79TCCZYLx#%*zL+UD=6Jtsn(Ul6F0Q|~ImN+*M^9h5g{4ltZ)oGZ1j^Bc!(+pmRB zWMLfiE^ExE1{*FW{GPVvNa+(X7tU24{Jub+~u^*1Z?y zXK&2DaQ^sj`r>mcnt0l?^XE1ibJ!?o`wrO0$_C*2lZ^rUEwGL0(w-s%v-tZI+qq>k z({YV$(}fvB%*HW`lKNw-?q|Cm?z8aX=YftMz8KI~Kjs189C_=jVZ-C3D$J4eJ=je? zgBH75d1dMY9fxpJY~yc=S`VFf?k+G7RC(Vkx*u&ni^s;PcrO6OB^GW15 zG+oqP5=$HYb7_iCqMz){r0LbH$ozF)J;iLJ2AQaM+i2miWh=HeFk`ka3U`KmZC8!o z&X#fG%N6S!U}0m=&HP0rSHqSO6;33cMxqJrjYU*6?37~s4;FW$*+J^IWrWcR_CV)Plxcg{tfAw$> zVXcXs!3NKW%{If}pE$**QY}2*)gX~BoT=}u+EV%Y6`Pi~ueG$@_DI@TrzZa@0tckx zSMF~wGIQbsE-6YUSIciceZJv+-U(y3*7}!bAMZ_^F6WmV^y6mmHE9)fR$X_loM(-N z8$P-wnkhe-zbOV6dE9IhXJ&9`4YuHVC*v@h`U57sOrK4Exa;iOp)r(@Ys1GXGO})_e>ka@n- cqko1Tu;QAiD?BZ#UiT-!_2aY4eWSDf17nPFTmS$7 diff --git a/public/static/img/statistics/ranking/02.png b/public/static/img/statistics/ranking/02.png deleted file mode 100644 index 4f34bad5701819ef5e42b95916e7d2dbd83afb61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2426 zcmaJ@dpwl+9v&%%C{4z-tuZK>V=k^U!zgBq>(CkFvMCueFW#7onPDVrZLx|LC1q2# z8%xv3B~FT1M3bx))e;hi+*)CzMV!&5J%60e`}w@@@A7$`=X-npcu(&0cGXljP=`Pu zn(l5Cx?)AFzEBm#R~R2JS1kG>mq3v(FH9t63IK=`n->Zo+&Ro}fDSO(N1|nb0|cVH z6J!L60%=}E7LS8wu42$}9KM1LfjI1m<1<;2fCv!^go9iXa_U|k5&^PF$N(D}mc}Oo z5ujVV0Pv0XX0YNTSp+t6k0Zh%j;Ije03s$LjuXWd65~k7kGe#~e)SrIM0|vZB1y=< zk_x2lLy&m_0AYi+wP4|_@CZ8s8fQbmTU!4EVTr}rVz2}Z&e{TtBVq|eEDrJMK`NpN z*kMFEh59L$;zUA5h(vrM1|t@W(PAq!PY{m55eNhf))HfBX`w(^2#;_@%s30K(0EOO z0ti_GkS_vxT*Rs(Gn5x2A|Vx-{#62p|5=tR{M05z!!U77J_d)zu9mb0q|yFAl*9Rq z7K-S=-}(MeVIkuPAHdK7AumS2QVcH4cr_HCNEQH05l_J2@uJqcxG#by;t3;od<2=i z+BG|bSpdjo^Tfj4A2~D{(VZ(4F}W0T>IgsRAAc@v&?o_~l%z zzo_?#%l>jMHecjo6v<##hx=c{Ub|8_Xm$J9x{AYR^8;Lk;{^(9@4B(w0|MDF?oM%H z#Pv)DxJL!K=q)!V1`jn?RuFU-sVTCW37SKYMrLqn9Si9vEsw32fy8LF!K7UJ^e=~V zGPPPx<(Ci1XNetMJKJ}isM<<sLJbr;!BZhhq7^ zH~o{d^>wOyzuxP?b7#N0EKBW~`<*<5x*g|nL4Lc@Wa;YHWj(Dq=3W(PF`abE?7MO> z)1eV6o7H~3lr|8WNt-q`b;LfLfiGyqoWVJNc%5PI1A{wgY?9_ZJyhhwX*w98CY7Ud z@Ko!OKYJTE({K)6>5s{CNdsp37g-tDj*@XDAsoJIbbhlz9Xb2u$>6V10qwp&B|j&5 z&CdA2n(1E9;^d|j`DkQSTV28Z7GV=d_(WNFy~`C+CW(M@9C0@|D)Gy) zeY<~vIWh;`XlXJ;wR*5X%G0xa?uizTOhc5I-gi_ZE9-CVJ0ZYdf*RF@(i4NUf+HRD zvMhAeE}QC5vo`fG$jQF!123PF3KQ_*S$>27ysjZ4y{HazJl_iy+JSxcjMn>O+t5s# zzH?$h*gFZ?zVutM-G$IC^e0W%T2Q$)c{#hs#Xc4~2heS(%~44sMERlKl#FN6%4%(F z%`M%7QniHWbJ*r}_-HmnRdw<3(ZLRARZNwUjxB$z$K+Jj70%9y+72Yx4H+KVwp;0i zk>9aPWw(Ea-(R|ZV(QmREsZIzhxUF_uOM67mS+R^HDXWC?%kMeTQi=9rN&3aJOeeajr+#0Dwvh`KOMs; z4-Nl@_mq12GhB=9GBu3eKzH0Dq*(1)E^OGc$<=J6rfk!V-&&ooI}AuOD{nkAd#nUr z3or@E+}@L3C8~&Be6#p|;jxcfL1)Co!}`JA_5&?O68J#Ix@7~Yc9vcKiv@8MIhLtk zd*(pCFgu>RGRgX&r3GL82msk5VR#;5^4m~#PX<^y*j#5up?G@12eJT&1cZTuoe zyXrb6wuiu-7_^*|DDm~BzQ~OO8V&=c_Jr~HKRo3Ep0%P2Qb~U`HtzZTGhen!tnc!>ggNJ;OTOcjj%l>GWv&$ z+YD{R3Ji;)nGJ%;%&yOX@Vk%Uw94|idN_`&jw3bay9^B`t0{5ucdozvUifOpvhMUo8 zd14@K>C{X)FgrTwX$(_C-J%v#I$1hCP~9pZa>K>GBk|^^`{b~Y23-k}A0fowEXp^U zP@DVEik?GwZD8?Oje((C4C5eno1;bZV@)P1&hVlJ%f27~MqicCeQaQA;Vz<ajSnr?k?Vx66cU({{i!P0f+zq diff --git a/public/static/img/statistics/ranking/03.png b/public/static/img/statistics/ranking/03.png deleted file mode 100644 index 8abd954bfc49082294d846f65cc98e4a521664b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2419 zcmaJ@dpuNmAD$AqlPyWD#;_u0&I|@Kk;_~}hSCV-Hq9Ii=3?eBgUY2OX-O`*4O>aM zm#Ao4ilWlGOjJy3Be$2>=t{ApP5b`w_MXq@oZsd1JkR&`{Be?ZxjL#SYAeEEFcqgA zM0e>5UwY-`q+fn?^c(520U~)pdpLoRfW`x1_6*Je5bngH1%d7$jS&@oAGC(SWDJ;8 zFUX7Hf~Rv>DB2PRC1i1>Y#7YiR>-B%LqQ0B01RTXZ4lEp8xe3O!v^7rrJyNX0vOEP z5zPblM7vVy(V=u417W)zZY{)11y~?Ng9}+l;el{0$^uEpm|4LsaVQKHXJu+`0yjltEC4hPz?dV^7(5z>M`Pe$AA~d-j}eG> zCz8L$lAdf3!4Sm71AssvKncuH99|HB!QpTK+7vJ~MM@D!eiR#`36X5R-m(G_ry7n_?iu2)ksu#+-&j zGLJgCsOyto!WG;SiKlYIMWm;qL+!sWE{bF4Jp>(%W=gs-L-56t5`Pch9uI$y_lg(R z+Oz{?wU053xIMqUF;md(Tvz-7PTpJ0yj$UDh8j;pf%jZL*-KKOS$X_!#r6agDHYoyD{Fn7+#JK`v{uyhT9BUXK0z{;zwijOswPw<6@3_iB+lq9~>?^O&vHJy}{W;bdw zk$QGk!JwO_HI?Xw3YfXDTAm|+aB=P0Y5Cg0xPuler+WGEvD(%IwNnG<9impy{z$P< zx>a;14*hapQ+U!EQf+IKP(9PdN!iG-G)avP&<5wNEGDh=rX0-=nk41UjpYdBw zFmki=T@&4QDpS?q!6vbxsT`GKY~OKy7C#por_*}RHXwXRF#{d17t>{v7={BRTgpAFN1-RGM~t_feH|xSwe!;YlZpBb8tj?Rg%0UuSsJA! zVL13)W`s{nk=P{Tp=LUFv!PMt#lF9)Tch=tJv&~Y?+&^`Wg9(#Zqb9HTC|zd5xt=jo%NQd zMvp#%GJ*6i=lZBk+}r6l zZfPn1axkXEP?T3g$o=i7X|pr1nboc2Hh(tp!N=JZcH_XF24jk@yVsG%O8M~Ymg3Z8 z6F&2?RTCpPxq8H-4^ntl;I3)w?EmCUEM9{aH_>|SIWRUf_Q5h=KVMEM_@N|?2`jsN zE^Fox962tCZ}5CpRu5GrDGv2tLSM^rulJkTh|R0~q*Eyvo}rc_y#$b|iplO~K#X@1jg%!xE?{4}wlWn0N}4ouy{ zRdfiGKM(#GQ(6&G7UA1n$8Rm&*YNC$(dc|v^>)Xsa`D{MCZVgOxp_kqmc|auvv4`- zzBNBoB$-4un{M_i_&jAcG9cG*BVqAcjlzvNm7>5h{#rM%H1cMdn@z0c=!o9?P@JIH5jk5Zyyi(I5;WV`&6~K zJNG?Nl3XpR{h&~}<=m4r+0g#snmL+!AFeC6B~XPOW`a7LGd_;BPFt}2G_dinBA5&; X2{}ECo2~O-`VDd-xe}`!0uufPwC@M7 diff --git a/src/App.vue b/src/App.vue index 9ca636a..1c8a32f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,13 +4,13 @@ - +#app { + font-family: Avenir, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + diff --git a/src/api/home.js b/src/api/home.js deleted file mode 100644 index fdeb70c..0000000 --- a/src/api/home.js +++ /dev/null @@ -1,17 +0,0 @@ -import { axios } from '@/utils/request' - -const api = { - data: '/home/data' -} - -/** - * 后台首页 - * @param {*} params - */ -export function data (params) { - return axios({ - url: api.data, - method: 'get', - params - }) -} diff --git a/src/assets/background.jpg b/src/assets/background.jpg deleted file mode 100644 index eb9277969284b5907a241a9f5600df597aff46a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244652 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∾giAp%L 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 P|NhthqG7T4`0oD!A;}{9 diff --git a/src/assets/icons/app.svg b/src/assets/icons/app.svg deleted file mode 100644 index c3c748e..0000000 --- a/src/assets/icons/app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/apps.svg b/src/assets/icons/apps.svg deleted file mode 100644 index cf38769..0000000 --- a/src/assets/icons/apps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/arrow-right.svg b/src/assets/icons/arrow-right.svg deleted file mode 100644 index f58bd13..0000000 --- a/src/assets/icons/arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/bx-analyse.svg b/src/assets/icons/bx-analyse.svg deleted file mode 100644 index b02a8d6..0000000 --- a/src/assets/icons/bx-analyse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/content.svg b/src/assets/icons/content.svg deleted file mode 100644 index 355988c..0000000 --- a/src/assets/icons/content.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/goods.svg b/src/assets/icons/goods.svg deleted file mode 100644 index e7e14c2..0000000 --- a/src/assets/icons/goods.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/h5-weixin.svg b/src/assets/icons/h5-weixin.svg deleted file mode 100644 index 8a58dc0..0000000 --- a/src/assets/icons/h5-weixin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/h5.svg b/src/assets/icons/h5.svg deleted file mode 100644 index ea81ec8..0000000 --- a/src/assets/icons/h5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home.svg b/src/assets/icons/home.svg deleted file mode 100644 index 4c00a02..0000000 --- a/src/assets/icons/home.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/coupon.svg b/src/assets/icons/home/functions/coupon.svg deleted file mode 100644 index 2225124..0000000 --- a/src/assets/icons/home/functions/coupon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/dealer.svg b/src/assets/icons/home/functions/dealer.svg deleted file mode 100644 index 0e1867a..0000000 --- a/src/assets/icons/home/functions/dealer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/decorate.svg b/src/assets/icons/home/functions/decorate.svg deleted file mode 100644 index de626d1..0000000 --- a/src/assets/icons/home/functions/decorate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/goods.svg b/src/assets/icons/home/functions/goods.svg deleted file mode 100644 index cf4cfac..0000000 --- a/src/assets/icons/home/functions/goods.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/order.svg b/src/assets/icons/home/functions/order.svg deleted file mode 100644 index dc8c92a..0000000 --- a/src/assets/icons/home/functions/order.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/refund.svg b/src/assets/icons/home/functions/refund.svg deleted file mode 100644 index f27461a..0000000 --- a/src/assets/icons/home/functions/refund.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/statistics.svg b/src/assets/icons/home/functions/statistics.svg deleted file mode 100644 index 2af953a..0000000 --- a/src/assets/icons/home/functions/statistics.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/user.svg b/src/assets/icons/home/functions/user.svg deleted file mode 100644 index a3aed44..0000000 --- a/src/assets/icons/home/functions/user.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/functions/wechat-mini.svg b/src/assets/icons/home/functions/wechat-mini.svg deleted file mode 100644 index c1e5d37..0000000 --- a/src/assets/icons/home/functions/wechat-mini.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/overview/increase.svg b/src/assets/icons/home/overview/increase.svg deleted file mode 100644 index 2572333..0000000 --- a/src/assets/icons/home/overview/increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/overview/sale.svg b/src/assets/icons/home/overview/sale.svg deleted file mode 100644 index d733b79..0000000 --- a/src/assets/icons/home/overview/sale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/statistics/consume.svg b/src/assets/icons/home/statistics/consume.svg deleted file mode 100644 index 3529003..0000000 --- a/src/assets/icons/home/statistics/consume.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/statistics/goods.svg b/src/assets/icons/home/statistics/goods.svg deleted file mode 100644 index 21a29f1..0000000 --- a/src/assets/icons/home/statistics/goods.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/statistics/order.svg b/src/assets/icons/home/statistics/order.svg deleted file mode 100644 index 68121eb..0000000 --- a/src/assets/icons/home/statistics/order.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/statistics/recharge.svg b/src/assets/icons/home/statistics/recharge.svg deleted file mode 100644 index 01f3b50..0000000 --- a/src/assets/icons/home/statistics/recharge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/home/statistics/user.svg b/src/assets/icons/home/statistics/user.svg deleted file mode 100644 index c20b997..0000000 --- a/src/assets/icons/home/statistics/user.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/manage.svg b/src/assets/icons/manage.svg deleted file mode 100644 index fd12d7e..0000000 --- a/src/assets/icons/manage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/market.svg b/src/assets/icons/market.svg deleted file mode 100644 index d49f3e2..0000000 --- a/src/assets/icons/market.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/mp-weixin.svg b/src/assets/icons/mp-weixin.svg deleted file mode 100644 index 2a2b6ce..0000000 --- a/src/assets/icons/mp-weixin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/order.svg b/src/assets/icons/order.svg deleted file mode 100644 index 82b7a05..0000000 --- a/src/assets/icons/order.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/article.svg b/src/assets/icons/page/components/article.svg deleted file mode 100644 index 8363739..0000000 --- a/src/assets/icons/page/components/article.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/banner.svg b/src/assets/icons/page/components/banner.svg deleted file mode 100644 index 99f0f6b..0000000 --- a/src/assets/icons/page/components/banner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/bargain.svg b/src/assets/icons/page/components/bargain.svg deleted file mode 100644 index 5683015..0000000 --- a/src/assets/icons/page/components/bargain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/blank.svg b/src/assets/icons/page/components/blank.svg deleted file mode 100644 index 2d43da6..0000000 --- a/src/assets/icons/page/components/blank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/coupon.svg b/src/assets/icons/page/components/coupon.svg deleted file mode 100644 index 6c4e5f3..0000000 --- a/src/assets/icons/page/components/coupon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/goods.svg b/src/assets/icons/page/components/goods.svg deleted file mode 100644 index 697ed51..0000000 --- a/src/assets/icons/page/components/goods.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/groupon.svg b/src/assets/icons/page/components/groupon.svg deleted file mode 100644 index 96eb78e..0000000 --- a/src/assets/icons/page/components/groupon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/guide.svg b/src/assets/icons/page/components/guide.svg deleted file mode 100644 index b1c4e2b..0000000 --- a/src/assets/icons/page/components/guide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/hotZone.svg b/src/assets/icons/page/components/hotZone.svg deleted file mode 100644 index da01b67..0000000 --- a/src/assets/icons/page/components/hotZone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/image.svg b/src/assets/icons/page/components/image.svg deleted file mode 100644 index 01c7909..0000000 --- a/src/assets/icons/page/components/image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/imageSingle.svg b/src/assets/icons/page/components/imageSingle.svg deleted file mode 100644 index 415afd7..0000000 --- a/src/assets/icons/page/components/imageSingle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/index.js b/src/assets/icons/page/components/index.js deleted file mode 100644 index a061fc3..0000000 --- a/src/assets/icons/page/components/index.js +++ /dev/null @@ -1,28 +0,0 @@ -import image from './image.svg?inline' -import banner from './banner.svg?inline' -import article from './article.svg?inline' -import navBar from './navBar.svg?inline' -import notice from './notice.svg?inline' -import search from './search.svg?inline' -import video from './video.svg?inline' -import window from './window.svg?inline' -import goods from './goods.svg?inline' -import service from './service.svg?inline' -import guide from './guide.svg?inline' -import richText from './richText.svg?inline' -import blank from './blank.svg?inline' -import officialAccount from './officialAccount.svg?inline' -import shop from './shop.svg?inline' -import bargain from './bargain.svg?inline' -import coupon from './coupon.svg?inline' -import hotZone from './hotZone.svg?inline' -import special from './special.svg?inline' -import groupon from './groupon.svg?inline' - -import { sharp } from '../index' - -export { - image, banner, article, navBar, notice, search, video, window, goods, service, - guide, richText, blank, officialAccount, shop, bargain, sharp, coupon, hotZone, - special, groupon -} diff --git a/src/assets/icons/page/components/navBar.svg b/src/assets/icons/page/components/navBar.svg deleted file mode 100644 index 853c77f..0000000 --- a/src/assets/icons/page/components/navBar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/notice.svg b/src/assets/icons/page/components/notice.svg deleted file mode 100644 index 5ab41b4..0000000 --- a/src/assets/icons/page/components/notice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/officialAccount.svg b/src/assets/icons/page/components/officialAccount.svg deleted file mode 100644 index c44c9a3..0000000 --- a/src/assets/icons/page/components/officialAccount.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/richText.svg b/src/assets/icons/page/components/richText.svg deleted file mode 100644 index 191c366..0000000 --- a/src/assets/icons/page/components/richText.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/search.svg b/src/assets/icons/page/components/search.svg deleted file mode 100644 index 574c4b8..0000000 --- a/src/assets/icons/page/components/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/service.svg b/src/assets/icons/page/components/service.svg deleted file mode 100644 index 61cf934..0000000 --- a/src/assets/icons/page/components/service.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/shop.svg b/src/assets/icons/page/components/shop.svg deleted file mode 100644 index 34dd196..0000000 --- a/src/assets/icons/page/components/shop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/special.svg b/src/assets/icons/page/components/special.svg deleted file mode 100644 index c5640fa..0000000 --- a/src/assets/icons/page/components/special.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/video.svg b/src/assets/icons/page/components/video.svg deleted file mode 100644 index f9f6db9..0000000 --- a/src/assets/icons/page/components/video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/components/window.svg b/src/assets/icons/page/components/window.svg deleted file mode 100644 index 2a3ee78..0000000 --- a/src/assets/icons/page/components/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/index.js b/src/assets/icons/page/index.js deleted file mode 100644 index 686a0e1..0000000 --- a/src/assets/icons/page/index.js +++ /dev/null @@ -1,10 +0,0 @@ -// 搜索框 -import search from './search.svg?inline' - -// 店铺公告 -import volumeFill from './volume-fill.svg?inline' - -// 整点秒杀 -import sharp from './sharp.svg?inline' - -export { search, volumeFill, sharp } diff --git a/src/assets/icons/page/search.svg b/src/assets/icons/page/search.svg deleted file mode 100644 index 6d48df0..0000000 --- a/src/assets/icons/page/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/sharp.svg b/src/assets/icons/page/sharp.svg deleted file mode 100644 index 35cd147..0000000 --- a/src/assets/icons/page/sharp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/page/volume-fill.svg b/src/assets/icons/page/volume-fill.svg deleted file mode 100644 index 954053b..0000000 --- a/src/assets/icons/page/volume-fill.svg +++ /dev/null @@ -1,4 +0,0 @@ - -volume-fill - - diff --git a/src/assets/icons/payment/alipay.svg b/src/assets/icons/payment/alipay.svg deleted file mode 100644 index 5228018..0000000 --- a/src/assets/icons/payment/alipay.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/assets/icons/payment/balance.svg b/src/assets/icons/payment/balance.svg deleted file mode 100644 index b53967a..0000000 --- a/src/assets/icons/payment/balance.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/assets/icons/payment/wechat.svg b/src/assets/icons/payment/wechat.svg deleted file mode 100644 index 2c390fd..0000000 --- a/src/assets/icons/payment/wechat.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/assets/icons/setting.svg b/src/assets/icons/setting.svg deleted file mode 100644 index d60db81..0000000 --- a/src/assets/icons/setting.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/shop.svg b/src/assets/icons/shop.svg deleted file mode 100644 index e6fabec..0000000 --- a/src/assets/icons/shop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/statistics.svg b/src/assets/icons/statistics.svg deleted file mode 100644 index 7da5f3b..0000000 --- a/src/assets/icons/statistics.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/user.svg b/src/assets/icons/user.svg deleted file mode 100644 index 3cbd5e1..0000000 --- a/src/assets/icons/user.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/img/circular.png b/src/assets/img/circular.png deleted file mode 100644 index 12f22efb331c667b900f045b3502818a05a3b9b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2374 zcmaJ@dpMM78z0G;$T3k(BSPkEjG4@04vb?CBePCxn3o1K@0b~8q7$;%!nfC_KB6+@ zSaejB$O>CY(m`o<&05wWg>SzO3Vp9i`~A_k?{&TJ^E~%;|L*&D|L*&Gt~W2h-&0R} zy*3O6)AM4|gP_%W`PEd1zLxzzB}0q3gu#{sgK-imM+Cs!xnK+c_u_Nnfgpgx-JN_3 zaDl;8H}hC*3ER(?91HSMoMj)Bj4y=HFqn(0Ovs5%1SIenAf6|nAZD($Bj7wP1rbW{ z!}tklz%Cv$O#}p|`Lklv5@ShRgzGnO7a17}zy~B8xQw495R+vT#K*W~XuoVmBj6uh zB#9KnCsJ&`05}a40dN9}fQ-dp9pOY03QNE`I%6H+I1Cn##^BLdJQ9l|V@PBy0si?x zK-omxIC2o(<8v5fRxtmFl-(9H3y_yav@Ni)P*v2a`Sh6S4mYQw6* z19xuJc0Avs{f%1Nsx=yn+7cyF*`!P+yd1c$Jfut;BM)n*w2S&3N}?=RpHv^rSR@}z z7bcCpuO*1Gtgmk9^GGxygkkPd9v`P6GK(n_f| zhI2=st!uJu_5CSFEjLu!GMUz%8?sl|s+-MnGgE}#3Vf5z-m?ACWaFr<`mAbn#QI|6 zCpsINsy7d;-smu1yYcnC?>&r|ogu2(1y^e~4;Y_8K7RF>ASuawlpR@U{ouNL%lo6n zOoY8*S7P7DYfl`aGukF`R1{zNelK_X)IfQzM6-LWBsxgTq$m1>f3Dni9qQIuGG_gcES0@5 zH=N=QCG11e6L$ES-YT%W7*=)#f2LZcs^2vMHB(t>T4J2nDNV0m7?%vG2?aSbRJO=3QfPw_~9$c5KrlsSKI#7r$&S{wgj&0+6```wN4XB4G}TbhlUw>+L6 zwzJIkHc!_>={Rk$8`kdH;&#|~A=ti4NZ{nX-FZfH6YwOrwBC1X@w824n~^o5}BSRK~P%nH9ebV|kIPdIDG zzQY&JpO@cVefb%}M9ivTmmaq;_;!`t=4gQ#IpMp`5YqI|W_87txu--S_*EO#Bky%JR z^~Pr}+irWh)*gq|2z~}L@lJL88vR_EMQgb~4h}0`@?`W&tKi+5G^E~Hw`99yz=ll6y&hwlMUmv%% za8o!823zalPGP8b?((}zQ@y@R)Lfz7Odu*7Vu~W5SdIjQxo|~cAkss?i3AxSha0!A z9VEeEEA;s+HpKS!B8H0uXwI?^S|$*y(J&ZkyG+apj{+fN7#PVHI-zD-T2V+o*9jGX z_r`jQ$smvK9xnlz@jk5Z_^5CK7q#6PNs_;E^95 zlscM(8$o1HXdhy!Z%!y41c`|lOl)i{I@S&?l0;$v0)c?R;xIUzt=hv@8YhG}GFze4 z>>~pOl!iV8C+eFUp(_s@Zr9o1@x6j6AL02D$V6epD0g68tM zMEo`!g-Rgf?6FiV08m{C6fDif5le9e07slFK>mpJ5K1AAFdY1d<^P2R{t-(gOF#}J zlCVUg=#Sm=<%uAXlqV7+$z)^zU&s~3N|)>UK_)2S?+3XwiAaEaUl=0)Z^702$ZDA` z_-!;-DnM{`w5L+Z6udp&fl6~B(5R>n81CPa{l6HDIyh#zi+}6tN0WL~mXDuiRDJn0 z<)BbK+7k5)7r1t%!C=}89uyar?9pV=IAhimK?P_UeiW_wr4k=H*NCFk8gpS{e|ebi zmce2z=|NvdgXVx4ySeNll9N-P)na?&fZ#&^8Y_dv-7Bk-cl~lMbk}(+cJA`Bt{U#Y zYzt&(?=LDU8tYUlmCmj2TF%4j`=c8NY(;A}9z<04_A*0KkoQU?r;VO%HE&*0sY>sb z6c^(QI~@`Az3-|YPAn|MCbiAF8a+$pD}q#4Lh9NoyLs-;EzZf)uiuSI+N~#{&z4%B z+@LOW#@yDT5AHCVgVSpKb-fl74CKZ+E{C()rp+1z+~Ce8@%l8=?YP^cc`(%oYeQ zW=>pMEE|Vz%M5fno~NOxoBqA@A5QJXGs6e2qNBdbM0fKQZnjgc4YA}iEgG|_M*Z4(b4j#NagNT>9VrkFueGA;$@We_SMHp^uDz0 z!FASDbFo1S}@dWG9sK z`BYn3u3VR3l_`p>ysbg+J-Q)x*Ww|d(Ox*#%6kp(i2tH!tM!7Q3fC8SbFaFmd4+51 zJp&JYnb+7*lWF}^Rl<}vBFVVZee&2kU8AW}*PcVfZ>Q~A>=eUOQvyX0FmGvO!-q4L z4h|`M#_oos4uf0_2GcRx^T4M}aYE4_%?tj_{d&!yaN@TeNt%~$)bLJk0V?Ji;qit2 z=U09A^2)aMk=c}uY|kDdVb|8%6St!K3?4LW?%t#9z5hnGIAUWMNl}nq%o_x~ts9a* zJsaS2wZ|$wSG7uTwm5PA%l?I`=8U16feB0LZ#td#cspHcVcXcydajl=@TMVR%_UOh zYwHw5N~9|I2%c@f%G>Y0FWiV@E|lhWLU_nf#{SQ9*$QVPB_^d z*W;Z$K{P!w8$-MARM=T9Dqx4i?09>}HpHwW^?0K!fAq(F6E_t_lkTVLhQ(vsW&CKQ z`H|h2p`yuY>^ZH>UqYYE{lv05t5infkk8SbS2nK&Lsgmu(__E6SXutzMQn65nbYWC z8D`J=#|_WFd~>;*C!hJFL^iBcTCRKfayD%oN(cmd_(7ffm9Ft-jg(E?e`u+l;G>@&d(RPTcPa9m9wt z!u-12dy+(RKi2t!dJfOVbxkl}?7p9WJfH4wqJJFWOXK_o%;-ag#OLkIsn;%*nCI zj2)W|V~HD!lViHq+VV*x()TyRZQJ)=V<(^4kgu%a9RB6ON=1kHeDJYx$kVhNUJ%1A zrFyZni6rfciHWFW`NcDHs`;IJ$0YrcS1nyM3u z)7NJfUPTP)ps(eFz1m~J)U+3h)mn~&lmk1Mhji$4KL*np#~ehw2#yWr{rc@ONz35L zE~OSeftjWMcGrcrZ?0Puqmn-h2d6VEEh<>0z>ODWDlRO0{O-x6A0nE*vV60V7?yxI zaky*ji_)a;3nFm&PYT~QDW!JT4rpG|YhvCyK@gjGm}hU^8c(@XUT{79$^5BblQ+@7 z+LLbBFF#&xk-LMow=BxBB0qamnT_;}xp5Eq^3fE(a{*S3YrZ4fZQeN*eLfR$!ad>V zkQug`XgF(OVS%+y)>A8ZiOiMf!KbIE=hjr4S%5Nro;GGsb2oiJTaW3XI$UAE^;oFZ zqg52{(@D`tz5cN9cnZr~mDEb}tU#L~f)BsWH3-N~AG?<-Kc(E6n`tcZcmW@IcRG^V z^0nz6Vu-9fnPF&jx-u$fsGG$wiOVs`@p*f2?vUmh80ADCO^0AOk!PQqY=a8%G?oIgGoslj_trvbwI zA~oC%9Uu-QD_j76Pb3-V66xrQjSRw?_-dG&flR~UVgdq=iUEZajs#QS;Yf`yyl}BC zfps-NUtFj`NR6*ac{n(OtcYYB$PlcrgM~n$AQ%h`H86z1pgTc&5U8FmMEr&6Kn>uA zFu0x(=-Wp_tVZ_rgYUK8{Y^`Jh13Y3Qb}-K-LSAQaF{-rNcPu-nwXeKIP~;%#2z}7 zh+rxvTql^K`JKTUN5PWuBr2X543aQn4ijlqq=q=tuTvn9mS}@1-UD{Es5 zBb1SaKEx0TMHyS@8(LaGc3YZ2jV&xJp;q5xt%+C~0T)dD9_#z>SaHlRVkMW& zab$cb&UZJNNC17AG93TwTnvB7_bt}<*SWxc8LKN!Mpv@2|FO~EA#wFc%%!pwUn~_q zE?8XcWN}#!d+hrpzSSyhtu0)`d&m2ulDu$#NxvzTS$@*_XaMMB;%Viw)2Gip-@2|k zKKFMwFl^7ZwZGZ^W_avU1*l=2Y_bw4u+U>ug7?DX_5V5-PhaU>9q*PCzNOw-ciX17 z>-Hu#&BwMHL9Vusw`Q35m+K2npI!D0?Wmp!q3h2e{A(%g4Xv&A%K%`!JG4Z6)9)fl z1Hf-#0I;@C4A!fDHI~pX#&`74rrsWHK&iE%q2Z2>AQf&F=yLmMOJ9VaU*mb;PJH*E z93-widH-K!VD3@I^?kp0zsa7c?JrCS8G>)&wlm_aMccV!Xz8};?&8x`+FW_`Vp3)b zyr?jQDKPE9O6{DIXAXswRyUqXZ|;27n0vRYX7p@sgU>8xpl*21iWb8Bl!j4C%oQZ@ z@ATC9Dn?EfkBHtBGF%V~bI%xgdA$dNgw`ShE>3ll;==BEoU|i#^eQ^YW&tn6usz*O ziS%Y*b^kI{O;i<+J1ra{ z%aw|HG*VHjO0=lk*i(dU6;iFKf|><8>ArY|MupFLD+EO2Z4GX)ruoflu0DF8*_^kI zc9?xmC5t7sh~RFBI4)}R8jYFYF3i5au<5w4iyW|cgsnvhj)}C+qTiGA*>6xA5);Gb zQAl;(Bx$8Ss(Q;#{OZop0KPDmObJuq_D-rVJw-(^4c$Fp&doX@xq zzp6vk=yG`|?5bAx+?2~(#tUQ@5qV~52aCh3`}Z2qKdTzQPgfkuD&WYTK~w$M_2^kn z$GN%HlY|42QK+IOr^!uoVe%ZUsrhQ${kF7s#(c)%H4pm|yWUWXr__ph0utgP&!|br z$yG@U`)xD{wt?oMbv$;f%GtQ;xaWM9AQo}Bj|K!hA5PR)nUHcYOLmq^!7>tCa5?m(~`R{T+IMjn5!)^wqM)m4F(35_-@6_;o zz-Q8@&&x;9Pn6<6Tx{21!R4tj(a(zlR^Kk7RJ%VJ*pdBMHT543>)_QzN)^MeSom2X zsU?GUC^la;(Y!eaInn?5J%9u!3MV%p!715Jsq?!~SmA(7ahLzhCzjfoobr2xGL!h) z_Hto&f-sP+k2Y5tRC7yOrsSg9e&{?s(Z2n$@e7|tPPM?`;d$5B5Lk|tJjLKwvzOL4CUH{oasm+5H7Q2$o%It5<&P&;@>_V4@%YL|1 zFS@cU(hKrcM57)#KsR}}aa!e5tO~jsl5N&Dkd--hboj2?K*?KYH)9{Rz!*R1=gpRi z(9|j_2%1k{McHMSio#b{c4$_<=-6Qw3|S@`u0m>$ocE(%@uvk3*XejdW5yylUedET zslH((wl^;U3gl_6c$uiNCwN@pZ&ua>12-o+Y({UorrkCA; z*g9k4RQ{V72ldp8g5E`VYB{Zjp3PG5H%jY1v^=uTJb!ef*1qm(5tAGi6pAPsu#65r ztCNeVCdUiM5#LttMTTNKe)Ub^uyf|4sY1c1mZ~M^g;_^^b$&;DRp@=Z5kWdHSlRdS zCL)zuT0!v6zk4hA_qjyM8^<`is6m&y8N|m3t5+v?^*RS2MVzSVmAfd%M|0*rah5ke z&q1w_PA}iXIx4?Ic{sA5RK$T-IJuItLq?%cn=$$HIF`u;Iw(5&)j)e&{l{Z67sd|6 z#xdhlJ9#HE=!xLrG#&}U9o@nyn+@tn%PxTbYkE}4W>xnX`Lxqm0PWNbc+p0y;V_w@ zqL>#Y_}*56;lkoW%b7yu>6V}svw^Y*H%_s5VF$i0tfq!jl&wG36MZBO;8?Y) zq*!;Raa>fdOPnQhE`c89SyUQ%Z(Q|c|6r`$>rCxI0dzuguQ69ojSU{(xuQ)_!($OP z$ZJzJ<-7!CT85gtOUG2VoH~-}$1+V1ExEl~88z_C?9wY0Z0`l5&1uw6!V)u~eOc>8 zr<#|-E*Yzy7sKS@#43c(@j608c7$J3)@s|aas{IcwKEX+{sb-V^^loM=fV&MYBO&` z#w60JAHDDY5qqGZYUkMc_?i0bwutvOYv3_?&8s10eC5q&>u#OoSAvOG>}NN!AAIcb zFyOp@N&ZLM;}DNx^Q5g!p&V)Gb2)6y+-JUkQEr{g4Kh_tiaf+je|-r|=3BFAsKLw6 zZ#HwLFa^z~inP!(L*{?*r_u$I$DE8^)IgrxGh91ObY)3x@kV_0k zY%4#{i55C|&*$Gjx|CkU)=nIAl8?y5jHt>xHH>LHyhYx~O*2o)S}gG^ziU?;Lw>#z z;cjqtV_vKxZ66zv>w`AnOf6_~wa`Hcuce78cB$HpfOF@mkb{)o1C9=rmE)$LqM`Y+ zZNdVR#s1omCRR$Oe@f*|DvlLe!OGN=dhe&a$eL!o>hNLJ+AoOG!KqABW21?= z>?8d$O$GPuDOQ)I`)*IpKJ>U&JbSDqv5}^IGQ_GHZ0^Gp?#&$hOlRz{pZ<6^71x}+ogSn=ij8ifCu-`nmqD`${w^)NOmSJRHLtU~`B5kv z(X+n&(y$qxw{Y%0H2?KYQyu54;W}|(AIj*?2pjqCcUjt&QTGkG{Y;`;(r6J1TlImJ zS0cN*FL+(J884H$`~sM);b6L}>mS;gf~fJG6#lLi^We zK0L@3t{DCs`c(B=*Tx~iCMqG>U7gUrBF>EQ(j;5$+EXDK{^#GliCKc$0@h!XR~Iih z9vAI$g*yq8KbY~=gM#F; zVJT>d>gT9r`2YLjS37GLpe4b4lu8Rtxc1Y%+aG;Ap3_j>Pp>t$u--)H}Of8XBc?6cOF7&{va ziCyx$005A%JZ5?l0JcsF?VCHd3x6-pO4te?a&$8s-GS;!XS(|n0b>s;o(QreyL%B& z65TxlFZ_*Y1OQ@Sk|U0evp#_&P{|N?Q4A!2>?h0y03%F*pF6>aNC)AGUL*<%JXKW- z29Z2a;M2O+Fl#?7(VKKE$e-vCWaCH(@*yBRz!)^hC;%x0AQS2Cpa8Njg@z13fj4lG zLR;j9fOHnv$I}n!YPXy^gv^5DZI2@#>2Z8J8>gmCcg0x_8EhtR*)zgIQ zAa(VSTKb?rKVTu7zlSICq^bFzT*4I!>`kZpA)!zvlL=vJL#X~6aGBew(lq+MnAb+%RZ>yB`z| zfr(oB8fb0(??cJt&1f3^B=PU{{!3t*W1t@qdXh+^GW-d`gY#4oQTZXU{zP{=)!&gy z_5HewcHUGvmF7+L17RKXKu1oKC>~TMO>HCI+8Sv|q0!wb1fr!W3M@o`kVqa#T@!7X znXwtxSona$%?ylPx(I}Apgv_Qy zf6}i+4|9Ji8MM(dlJxCbjK7KZXRgP$Yccs|E>u_yRCKWaaL`{}!s!v2n`0|nYz{t= zBAj-A;aCTuHM0R=PlTnZv135bI6pYf*-3H7M~9=fhmQYn@VfLq`y9vp_6K@RBlliE zZz5B-{g}qK`#+*DIZBuvzUi%lkGQG^iag%49IdwVu(9=b6`ufmw`of-Y5(=8%g1*{ zHU-(d?;D?h85$-Adl?pI+Rn7x%rLCw^zk#+-e`Yd8G7OIVBwXlDnmpX0>Dn;U5^-$ z1OU+jR3Y}o*z}5wfAsEYug6&t;y?5ZUI$>we1)wMa>eQ$J-9SHO2H=vyY=~F9)T|> zD8hxu&vS6m<=yMoaVd??!to6>9HY z-O`r0RJ0IZ`XUkT2p0dSeI{i6Hm*3Z7M^rI7=v3j{04`u=P4FO*h%$KK-dKKBzHjLJB% zkGfmewSVr(eDRE}R;47o%+T2E|tLl-0WJHNrv0+6@D7<5Fww9U5IM3!Hj9O#nJ=p#4 zq!!|zvZs>HLxEWwG}U|nG7j*>T{PJBqz&vPXe4n0=G1- zbrzDdk1ELdJo8xa+{@Lap~g3XF|X50*E*cf*U70rg{ilT=^Rc>e75Yy4v%^!eQWA> z;SrBs532dWnx$RH9gr=T~lqV(^=>Q+x!s& zF@Cpd2Mytzm#Dluo;in{euxXdI-lHj@Nl>nyY}~<+Q_vawW;36JsKTKS<^OklWTf~ z>J|62i(CBNG!1|1RGn3h&U_xJI+*Ay1dZn${hv!c)DTQ^TXkfLM_l20xDwdGFUu{*{$ho z3%tq&n1PRf)2erxkS4zWfS?5Dnubraz5MLxB>|o-xiIdfyhA$%s#0(M<;c zo>dm=1?lrMo!-029!i;>X;xUmSf7=oz-Ik>!R5AFT6~_??`zu^XM;wjNB2+IbJ0M9 zR9}*gg^^}X*J%1Yq2XQngbk#c-7r?&&yB%44F-h85*+(*=Y!EUq#NOt_hHd`^UfJ7 zzO7E_21n-zJCm(`@jNFU+8&oMtN1cyiK?cN*V$0KL$NPq{$qNQMTv#X3a}?r8p2~} zEHd^TXTIyaMs)YgYq|k7w^o(lLwKj0n+(y`ezm_zx5u_Z)vqjR7=Ai4id#cZQI{(6 z!XGs^2A3*h@=v7JTsVJa4K3|Mjh-hqPnm>Nr)Xz~Rp&*2P|(Rn6?E-zGsxX--s-cf za5wFUONug;1!-5%GUV)}U5MVI%m3vuza(vjn?HnN85~W^3tz(dwlw0a=ROsz;-(Y0 z_s+~A3Pw%cj*eHazW>|O68Ae^2TXg)`DuP2Eq@_{t)uv9qzxy?=#W&R`(--R(ai5Q zrf*TixV?`bwo8rt*q+yTYS`^|UOgESTGL6CHRQl~xU_*cA@H$lc57EMS8lFzvdoS^ zw|>flA(qccE@Y`amaPlJrlCo_I^_3d116_NI(>YapwxYRg|DX^Z(9Tfyi8K*$+;E^ zL|GKcw={pB1s88VRR6HJWUvQ@0M}@}Vj7QkNoR3Fo}aq09!yF@`_#Wu869TsdB4Nz zn2F5y^a_4;$lKMLHe4+#{#E9IGyQ+iFE;daIPlR~{reZs&U8EKQlTi5S zF#E10zQmp2Rz?N?5P>fxNW9z1>GEpr&RwN&<6SU;`0Pie1BqLZ) zeU1+<*5~Gpq}irK365=l{>=6hy(_EXn8#5=Pt-Eg*WuO>@CmnV2w?nzMdWCyhN96JCyU%7PA@#oU3OB=yPkAO|)F zA8OdaBEQsYpP+>sy%l9gs56k+9JTOqM(C1`%i;KJ>TaIxS+)1QiMG>SGu3;C6z7hW zE$d}&D(U+eoup06F{qp6U zP>-8)`FLfZpnW2Jfs8UzjSr!cg2Jj0i`-^7vwY{!+2g3wWlO2U_pQp8^st8?-iKAV zx(tSK@K+N@DNlYX@a~vWU`BM`;UOlS?)xVMm%A48J2lLQ&pr@yMVpUK%M1<|cIr@R z_0q066$VV~I&wHE0{>mp+sIyqyC=m{JZG%Et-{s}({7fM`Cx>h_Toag54$C5E+DV! zu9A{`?5*6p@Y+7x;wNF~EhBbSL|KO}TYZZ&Hv~1Xz?9c-Y20JMyWToz%H2lS9;Q|q zogPav{~)VB(GYK zVtZ+TDr2d-%7o!SHVH#n%3jD@S{%*$_0g^d#%!|}VM0pY$_p+3Q-A6Bn(tFbxrl`I zfVdgQ+tRCzH>emhfbtreAYk-7fnD^lk6I zQB?mso%Mer*evG%N1NlGh@-|bJcU|F^XfdE9ZYzTIA4WpZTbm9 zwk)kJa;B&PJY7kY=VLy~!h+q()A!bHb|CAZ?N@EJ0K z5!@^ubx3d#ClHC+CvqcS8Us8vgzW*_m;mszkR1>$gp>Bg*z}5w|KJt9-ayz)`U>^0 ty&Fvb6#G~2UugeAuvyGV{b%um0OF!}M>a?@OZ5NT(#*#6p^01Me*P$d4lvMt8C^+TcQu4F zQqv!UF!I+kw)c0jhd6+g6oCr9P?7)?!qX1ui*iL{p}sKCAGuJ{{W)0z1pLF|=>h}& zt(2Lr0Z`2ig8<5i%Zk}cO5Fm=LByqGWaS`oqChZdEFmc`0hSb#gg|Aap^{+WKOYcj zHjINK)KDG%&s?Mt4CL(T=?;~U@bU2x_mLKN!#GJuK_CzbNw5SMEJorG!}_5;?R>@1 zSl)jns3WlU7^J%=(hUtfmuUCU&C3%8B5C^f5>W2Cy8jW3#{Od{lF1}|?c61##3dzA zsPlFG;l_FzBK}8>|H_Ru_H#!_7$UH4UKo3lKOA}g1(R&|e@}GINYVzX?q=_WLZCgh z)L|eJMce`D0EIwgRaNETDsr+?vQknSGAi=7H00r`QnI%oQnFxm`G2umXso9l+8*&Q z7WqF|$p49js$mdzo^BXpH#gURy=UO;=IMrYc5?@+sR4y_?d*~0^YP7d+y0{}0)zBM zIKVM(DBvICK#~7N0a+PY6)7;u=dutmNqK3AlsrUU9U`d;msiucB_|8|2kY=(7XA;G zwDA8AR)VCA#JOkxm#6oHNS^YVuOU;8p$N)2{`;oF|rQ?B~K$%rHDxXs+_G zF5|-uqHZvSzq}L;5Kcy_P+x0${33}Ofb6+TX&=y;;PkEOpz%+_bCw_{<&~ zeLV|!bP%l1qxywfVr9Z9JI+++EO^x>ZuCK);=$VIG1`kxK8F2M8AdC$iOe3cj1fo(ce4l-9 z7*zKy3={MixvUk=enQE;ED~7tv%qh&3lR<0m??@w{ILF|e#QOyPkFYK!&Up7xWNtL zOW%1QMC<3o;G9_S1;NkPB6bqbCOjeztEc6TsBM<(q9((JKiH{01+Ud=uw9B@{;(JJ z-DxI2*{pMq`q1RQc;V8@gYAY44Z!%#W~M9pRxI(R?SJ7sy7em=Z5DbuDlr@*q|25V)($-f}9c#?D%dU^RS<(wz?{P zFFHtCab*!rl(~j@0(Nadvwg8q|4!}L^>d?0al6}Rrv9$0M#^&@zjbfJy_n!%mVHK4 z6pLRIQ^Uq~dnyy$`ay51Us6WaP%&O;@49m&{G3z7xV3dLtt1VTOMYl3UW~Rm{Eq4m zF?Zl_v;?7EFx1_+#WFUXxcK78IV)FO>42@cm@}2I%pVbZqQ}3;p;sDIm&knay03a^ zn$5}Q$G!@fTwD$e(x-~aWP0h+4NRz$KlnO_H2c< z(XX#lPuW_%H#Q+c&(nRyX1-IadKR-%$4FYC0fsCmL9ky3 zKpxyjd^JFR+vg2!=HWf}2Z?@Td`0EG`kU?{8zKrvtsm)|7>pPk9nu@2^z96aU2<#` z2QhvH5w&V;wER?mopu+nqu*n8p~(%QkwSs&*0eJwa zMXR05`OSFpfyRb!Y_+H@O%Y z0=K^y6B8Gcbl?SA)qMP3Z+=C(?8zL@=74R=EVnE?vY!1BQy2@q*RUgRx4yJ$k}MnL zs!?74QciNb-LcG*&o<9=DSL>1n}ZNd)w1z3-0Pd^4ED1{qd=9|!!N?xnXjM!EuylY z5=!H>&hSofh8V?Jofyd!h`xDI1fYAuV(sZwwN~{$a}MX^=+0TH*SFp$vyxmUv7C*W zv^3Gl0+eTFgBi3FVD;$nhcp)ka*4gSskYIqQ&+M}xP9yLAkWzBI^I%zR^l1e?bW_6 zIn{mo{dD=)9@V?s^fa55jh78rP*Ze<3`tRCN4*mpO$@7a^*2B*7N_|A(Ve2VB|)_o z$=#_=aBkhe(ifX}MLT()@5?OV+~7cXC3r!%{QJxriXo9I%*3q4KT4Xxzyd{ z9;_%=W%q!Vw$Z7F3lUnY+1HZ*lO;4;VR2+i4+D(m#01OYq|L_fbnT;KN<^dkkCwtd zF7n+O7KvAw8c`JUh6LmeIrk4`F3o|AagKSMK3))_5Cv~y2Bb2!Ibg9BO7Vkz?pAYX zoI=B}+$R22&IL`NCYUYjrdhwjnMx_v=-Qcx-jmtN>!Zqf|n1^SWrHy zK|MwJ?Z#^>)rfT5YSY{qjZ&`Fjd;^vv&gF-Yj6$9-Dy$<6zeP4s+78gS2|t%Z309b z0^fp~ue_}i`U9j!<|qF92_3oB09NqgAoehQ`)<)dSfKoJl_A6Ec#*Mx9Cpd-p#$Ez z={AM*r-bQs6*z$!*VA4|QE7bf@-4vb?Q+pPKLkY2{yKsw{&udv_2v8{Dbd zm~8VAv!G~s)`O3|Q6vFUV%8%+?ZSVUa(;fhPNg#vab@J*9XE4#D%)$UU-T5`fwjz! z6&gA^`OGu6aUk{l*h9eB?opVdrHK>Q@U>&JQ_2pR%}TyOXGq_6s56_`U(WoOaAb+K zXQr#6H}>a-GYs9^bGP2Y&hSP5gEtW+GVC4=wy0wQk=~%CSXj=GH6q z-T#s!BV`xZVxm{~jr_ezYRpqqIcXC=Oq`b{lu`Rt(IYr4B91hhVC?yg{ol4WUr3v9 zOAk2LG>CIECZ-WIs0$N}F#eoIUEtZudc7DPYIjzGqDLWk_A4#(LgacooD z2K4IWs@N`Bddm-{%oy}!k0^i6Yh)uJ1S*90>|bm3TOZxcV|ywHUb(+CeX-o1|LTZM zwU>dY3R&U)T(}5#Neh?-CWT~@{6Ke@sI)uSuzoah8COy)w)B)aslJmp`WUcjdia-0 zl2Y}&L~XfA`uYQboAJ1;J{XLhYjH){cObH3FDva+^8ioOQy%Z=xyjGLmWMrzfFoH; zEi3AG`_v+%)&lDJE;iJWJDI@-X9K5O)LD~j*PBe(wu+|%ar~C+LK1+-+lK=t# z+Xc+J7qp~5q=B~rD!x78)?1+KUIbYr^5rcl&tB-cTtj+e%{gpZZ4G~6r15+d|J(ky zjg@@UzMW0k9@S#W(1H{u;Nq(7llJbq;;4t$awM;l&(2s+$l!Ay9^Ge|34CVhr7|BG z?dAR83smef^frq9V(OH+a+ki#q&-7TkWfFM=5bsGbU(8mC;>QTCWL5ydz9s6k@?+V zcjiH`VI=59P-(-DWXZ~5DH>B^_H~;4$)KUhnmGo*G!Tq8^LjfUDO)lASN*=#AY_yS zqW9UX(VOCO&p@kHdUUgsBO0KhXxn1sprK5h8}+>IhX(nSXZKwlNsjk^M|RAaqmCZB zHBolOHYBas@&{PT=R+?d8pZu zUHfyucQ`(umXSW7o?HQ3H21M`ZJal+%*)SH1B1j6rxTlG3hx1IGJN^M7{$j(9V;MZ zRKybgVuxKo#XVM+?*yTy{W+XHaU5Jbt-UG33x{u(N-2wmw;zzPH&4DE103HV@ER86 z|FZEmQb|&1s5#`$4!Cm}&`^{(4V}OP$bk`}v6q6rm;P!H)W|2i^e{7lTk2W@jo_9q z*aw|U7#+g59Fv(5qI`#O-qPj#@_P>PC#I(GSp3DLv7x-dmYK=C7lPF8a)bxb=@)B1 zUZ`EqpXV2dR}B&r`uM}N(TS99ZT0UB%IN|0H%DcVO#T%L_chrgn#m6%x4KE*IMfjX zJ%4veCEqbXZ`H`F_+fELMC@wuy_ch%t*+Z+1I}wN#C+dRrf2X{1C8=yZ_%Pt6wL_~ zZ2NN-hXOT4P4n$QFO7yYHS-4wF1Xfr-meG9Pn;uK51?hfel`d38k{W)F*|gJLT2#T z<~>spMu4(mul-8Q3*pf=N4DcI)zzjqAgbE2eOT7~&f1W3VsdD44Ffe;3mJp-V@8UC z)|qnPc12o~$X-+U@L_lWqv-RtvB~%hLF($%Ew5w>^NR82qC_0FB z)=hP1-OEx?lLi#jnLzH}a;Nvr@JDO-zQWd}#k^an$Kwml;MrD&)sC5b`s0ZkVyPkb zt}-jOq^%_9>YZe7Y}PhW{a)c39G`kg(P4@kxjcYfgB4XOOcmezdUI7j-!gs7oAo2o zx(Ph{G+YZ`a%~kzK!HTAA5NXE-7vOFRr5oqY$rH>WI6SFvWmahFav!CfRMM3%8J&c z*p+%|-fNS_@QrFr(at!JY9jCg9F-%5{nb5Bo~z@Y9m&SHYV`49GAJjA5h~h4(G!Se zZmK{Bo7ivCfvl}@A-ptkFGcWXAzj3xfl{evi-OG(TaCn1FAHxRc{}B|x+Ua1D=I6M z!C^ZIvK6aS_c&(=OQDZfm>O`Nxsw{ta&yiYPA~@e#c%N>>#rq)k6Aru-qD4(D^v)y z*>Rs;YUbD1S8^D(ps6Jbj0K3wJw>L4m)0e(6Pee3Y?gy9i0^bZO?$*sv+xKV?WBlh zAp*;v6w!a8;A7sLB*g-^<$Z4L7|5jXxxP1}hQZ<55f9<^KJ>^mKlWSGaLcO0=$jem zWyZkRwe~u{{tU63DlCaS9$Y4CP4f?+wwa(&1ou)b>72ydrFvm`Rj-0`kBJgK@nd(*Eh!(NC{F-@=FnF&Y!q`7){YsLLHf0_B6aHc# z>WIuHTyJwIH{BJ4)2RtEauC7Yq7Cytc|S)4^*t8Va3HR zg=~sN^tp9re@w=GTx$;zOWMjcg-7X3Wk^N$n;&Kf1RgVG2}2L-(0o)54C509C&77i zrjSi{X*WV=%C17((N^6R4Ya*4#6s_L99RtQ>m(%#nQ#wrRC8Y%yxkH;d!MdY+Tw@r zjpSnK`;C-U{ATcgaxoEpP0Gf+tx);buOMlK=01D|J+ROu37qc*rD(w`#O=3*O*w9?biwNoq3WN1`&Wp8TvKj3C z3HR9ssH7a&Vr<6waJrU zdLg!ieYz%U^bmpn%;(V%%ugMk92&?_XX1K@mwnVSE6!&%P%Wdi7_h`CpScvspMx?N zQUR>oadnG17#hNc$pkTp+9lW+MBKHRZ~74XWUryd)4yd zj98$%XmIL4(9OnoeO5Fnyn&fpQ9b0h4e6EHHw*l68j;>(ya`g^S&y2{O8U>1*>4zR zq*WSI_2o$CHQ?x0!wl9bpx|Cm2+kFMR)oMud1%n2=qn5nE&t@Fgr#=Zv2?}wtEz^T z9rrj=?IH*qI5{G@Rn&}^Z{+TW}mQeb9=8b<_a`&Cm#n%n~ zU47MvCBsdXFB1+adOO)03+nczfWa#vwk#r{o{dF)QWya9v2nv43Zp3%Ps}($lA02*_g25t;|T{A5snSY?3A zrRQ~(Ygh_ebltHo1VCbJb*eOAr;4cnlXLvI>*$-#AVsGg6B1r7@;g^L zFlJ_th0vxO7;-opU@WAFe;<}?!2q?RBrFK5U{*ai@NLKZ^};Ul}beukveh?TQn;$%9=R+DX07m82gP$=}Uo_%&ngV`}Hyv8g{u z3SWzTGV|cwQuFIs7ZDOqO_fGf8Q`8MwL}eUp>q?4eqCmOTcwQuXtQckPy|4F1on8l zP*h>d+cH#XQf|+6c|S{7SF(Lg>bR~l(0uY?O{OEVlaxa5@e%T&xju=o1`=OD#qc16 zSvyH*my(dcp6~VqR;o(#@m44Lug@~_qw+HA=mS#Z^4reBy8iV?H~I;{LQWk3aKK8$bLRyt$g?- \ No newline at end of file diff --git a/src/assets/logo_.svg b/src/assets/logo_.svg deleted file mode 100644 index 07ac542..0000000 --- a/src/assets/logo_.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - Vue - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/pageBg.png b/src/assets/pageBg.png new file mode 100644 index 0000000000000000000000000000000000000000..d393f2b23a644048f652b9236b2ba81313f249c5 GIT binary patch literal 295493 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Τ%DqYm>`g$}tj10aHvh-WA(L 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�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�t{g3m4ydEmUw7#By5G;nl zDiLddyoEiS9~SWjqn(ApLda+_lZrU%j0|tKPZ@!s59?y*2N(4$xOwqR z0`Scb|K$C%iid9;eld2Mj&KZs;(Ew)f_i>uMfaAaBtO%5g;1Seu;4g?40X&lMMd zNp6w*ph*J$iVp*43fywSAYFmkJo}&#unKff14+Z)mhnGp228B=%UOhmJHPxz0Iir~ z3+gL&ekJ!6p6HbQqlA?s-%OXuoEyOMIR*k0IGVm8{s#2jsEAMpjrRD5qtRUpgR>Gf zEn2?uz+PZ(sr?5KprMKJ6>nSR!F( z8|u%Y+zIXsr`9WglMlzAdOLFn(Mb##_j`?AV+B|Hcy)Hf^rVg1Wf=$VmTFxFyK5DF z)N56_^*ilgl=Z~&IUG8CCTGA5fN#9p6t;UvYRn7d=FDkgZrp$sZw5ZQHmvx()_|-; zPZJhRop@(5Z{COXRVxWP5RiW3k9`#Q0pgAGM7WJ8AutHqq)`(B0y$y;oQpWHw742w zKk`#-K*zH{XW{8NALSP9r=MTSSyLGJ9#P6`D|z81sJr~E&!wNYXau#VIi88UT3fdO zYl&dVf_6V=6^)mNa9}9`I+sn}?@jV#8EcmlIyM!7WyC0eT6gA))EGma^pTFtScuTx zaNYTXyU!=RpRgAfU-j`gmXWFz8UfECnd`6GiR#D;?-jqVA7Om7fQvXk?sN|Oc-R>g zhkyOozwdj8A0J6Qx**Ka5_A_d1S5;G#T4Qz$*#w-yHLn)dtSfuN-Yfxfg9}YmUcp8 zyoxL7v6k&N?pF5ORrb1DUsDKNtyK2eo7+3wz(R!i0t zDADOrk;H1B@-=%4HrCFCxsh%|gTGTWSpFSy|M(*SNx4f|U^3P??h;pL;7dqk1gv5> zl-dl4@Dwjs%S2taZ1bU7A$E&-BOOOsy#$=&9GJhA@sqsvNb%x15g4iu5f|39+a0OY zP4{mIP+)?bZNAIJj+UJVca07lhHgEBIv51s|3(=ao}y?JrNUnAIZv@9&bg7Kw*DFZ z9xZs-%jb8v_sQD}2YXAOJ<8*OC!;eqJp72A-|@zhDy!<26dTqk%7TaDqFX=x&s+WD zaA0%Mot=Ka%@DYcOIQzrS7I3)5P{2hg8TLMWVzj2tyI$3r60b?%vuJJut2p4 z4I7bYpeLV3eO7*Fh47XEr|lqtU_?EC^sRSjF5E?F&`u=DO$vVsE4BUG$%a%W{r#Q#a&32I zt;zwo%7D1d{+-|q_&7}tKY059jLvUK(Ho(^W)hrCyVAyE#ee-{hi^Cz=(G`V z6qh3HKp-fY$W7vaqylgNDX__9G@dNIoJDmcR(unfgRp72rT|GVPuwV83 zA}h6L!Fm@Z85Zn!+W#~Wf87PJ>G&IfzXGk1xct|_Vy-}UK7sBkVZ#c=Nch4Xv>qeD z41zzpfBz@$nQ4PK=KYkHAQicgEbsJ3M@QTXy|eR2ox-S(3&m}8_tR!R#OoMu zi{yvE} zD;sI$IX3)4tcmKd(@_b;Qb_#EU7@J}96$nWq<3QcR)7FcS^g#d6%xtSlH+4TN%en7 z6%1Yh3^*r}M3e@d{r}l}yU@taG)?e$K8QlK4kzJL-zU0^vb|CdPFEE zqPLC;71_E_7Yx~K3TC=kF%!|#h)vZ7LCp*?aM&tH1ae1AbYApw;_P7$Xg9}p#Nc$3 z@|a~NZR6V7fu(KKMeog0UizYli)Gopnf>1H|2sdSkTTLvXJ({+;$I=96i+I zrKbypRA*5Ah5F7yxa>o!jTv#@2VBH5rRuM#dogK4{(s1;ADjEJ5Jz%5unzkWz|kB_ed0NT>^EsOw zo(2{43;aD(h$Yv)x_#j*0$yoF(uq0e2H;D7^F8M&;lN&CvRGSKCLQEcokA8AXfX^TN4CusIso$V;#!^fvU!StU{i z*`=_$fm!Bj4WZpe;41#>YI<$zt~_q@WeHa+D+U8z5K&%g1uO>8@Up`@-vqkRFj^Rl ze2ys+EdJsykW%>!|1}rDT!VFW2|uJfm^0xe7)Em@9I}GmuyBz)pj7y!cZ(-H!5jdX zv+){M@=NFkruaMZzZ11l5=N9DxA*U`o}@5k0Nk$wBW?cA|LwXo0;h>cjBZbvE7uG@ z8^=X+XTNM3t>L}HWLUEo3e$V&k)7@1?atxB!9i!60r2+QyE~oToxQUt@WJe}=Chj| z{xkE)*9pKkW|cC{melc$bQ;YhhL(K{x`$9Iubd}_y?{IO9xzfp2)=#fE1V`N%<+jE3VALl#Aff#z0R8FuRKXUV#2$n_DlG0PsSk z*cYp{z=j36(DvKNEP{M#CB(Y;GWV<80e^3SOa*AKnBz(b*7Pl!r{!CQu~$wWJsXfz z=(F(QVCh=2stj|GrK)+P0L$u$XII5}bUjOqB{rH1MMl_#vK6S&QJ@)UVH$HIBgD!E zVp)K!B+X?r=xo!V3f_=Q>k8w&D-3|M>MHpSO7gp~P$}sDHDu-`2l5BMPh5A_4np?I z!csaH@L$jTTe!ybRbmZ%jeXh@D(D(p1zXWr9~&I{QDKC}yFUpA!7m-0j#qQZsmX^sNd zFK{=2zz>vutJT@w-Xk4l2HxpxcXr;sfD)^G);z7r;p+!r!b7ZX1XDM_Us2K(@t%GF zw%d@D70C|daGnSNV*`Q7(=kpiJFIxq8FEktz)GlG$dHA5$k-nTLe{K9DGl#ULo9)% z{a4MMvE6Dz8DP6&k1_&5bi}#sosdDWxCfGxb`9~-OD_d4dEDU+AAj-Ke?^21m_zxRn}igB$8mKG zxf?#E!`~U-xkL7AAvvgpEoSgVaXUFhaXls|?fNwz`P0P9e6H4R_s%JPCc5qrT?l`B zZ}*rJi3dq1JTXeKYu5io0|0Dq$UiB?eTl zd_4d>BlAA<)xSz92y)9|qscYMyM*noVLeOs)Q5(y`)Nq^6}F{UYSvv+N2my}?EtbD zz(H;VJxdan3BY+9(n10Mm7PH1-hb)|8CHG;+{l8fG8^gMBhv(2NPvTdmB5JI@Qh?F z_V6q2B0%oqtxK0U`mU@j3Wi(kuc~Aj{%o|@>PR{hfn~7<`@i-)!;kBgZ-I{nMvw*t z5Xg!Oj8xVMvlBiV;cTq@JR?<7WGl#p*wH2DKBFpAmFrYTZ*D?xA_uXP1e{82sh!!M+1xvgxAi?I=)m7Dmvk0)x z(q|dn4!N!)F}~%WyaMWHFktbySOje#l9r;WX|sXO`m&q?OC?%14864Ykx)EcS-Z4S zVdNL$B`Fp!76_~?@O4XFRkJ{_F+MnB{>1#upeMC*3QM4{}BdI7X$F625CcxNpvc*Q{ zkAlXA7W(TuklU}2#|L0@1ss??suCiLHpHHoPkTmyRv;}+O6AOks)47c&;cv{v8_jv z0vE!sYgQ5}Gw@6fB=-y(ux9{p27xPCcd*9a4Ed8ul#1x*R=`1qrsp)!`Wk^Ztx$<` zU$rk5kXl(;SzEcqcfXAN(svenRXBg1R(Lck1=jVC#(z%%{4!(=j64?)Pocm}e6@rJ zM+|@IsntQW0kh;)j?H~aebdm8NDDMwvIsDJ`-t88XfO=^A_#s#f45$Gi4p57%+a*O zZuqd^F$`v*z!ZN&>=QANrVt$AXaXiAze-4zzD%grYWtKYht*aej7M>rB%=gKZb&E` zpM|BR>tT6r{mJlW-6!1Y?CxEDdk+pG3QHb3Y!bcu4u$8|JD+U!dYhY@ANDqT427RF z0KW0o-@Dk7_{NQA35L1Pz-;y`%lL$~$;&ce5e6L;?P|3=w`c&}DCW$wgh2xD(xk-KsW)K?sSDfY6C1q*;Z zJDqY42Q!1?Ed4VtLdw8yjshq2Uk#56e?2MYc0)FL4i)we0FxhnECBaP0j&Sz-N7%1 zTlge+d+Mq(Juj@D`%gTo1h;HnU0;c!ga`vlBL{eB-sNm8$)YMk^@T<0Pz0hrZu zrdtVcp69sw^&$X1CJ!DQ?(HxH2DZDiXCW{HVak#_t(`aCIP6du1{~h}_EK!vS!1)Dr_L3mq)sVyAtoulR10wBtjWS@^{;~})lVd^6LM1nSt}M(0eLZ^s zU53HRQ>K4;JdE>QNao6y!s+KB>~J@j&G$?8_5--6-EQM(AjZgSe*6$G38Rw1Tun@0 zrDt#bME*)@Z8ampOSn3?S`#e#XPHNGawZHD;xji=FAV8x0tn%lOmGxUs)?Ucj@$2( zE=f?5Cg~|c$(W=(0jt}sBZzuN)w1Y~Gmx0x*>~cYa_HXKXnpYmOra_E9x?>(X!sRU zEI8~@1g5O_jW=4YH#!}7gAFmf?aU0m2L}v*^9KWpza9XdiKJeT$=>+>vlMVi3>B9k zwoab)J^@3pSpVuiB#ghgcpPN*z?w4f{hb$-#p?{zH2OkgVo=A!}zY-CYb+_dCDoqa*U+*wJr8kyi_ zj=vtRNc>$}T&XOqEV8i4?5w#mAO7okt~r4&dXXb182rD{5J7uqc!9UDs`JgzUy8_~ zC?3T4>fmHBI2vp%{XjZ~DQBD&yJ2(a|Dy$}WFR%Fm()p|A1 zWcBE&B#KBpiBJ`tCS4Sbx_vPHCTYs%&F!cx&|%4w4yioS$=WQ21@Dx z>D}_@rNV@*dOe?XIkiyu_yGmrgHC6+v%B5d-RqbL%uc{+xWkT70DhwdFx+}$*M#bW z118cs(5E%N7GQ4cp!F^Kh7Jx;>)_yWOP>F=0Pv0Pe)q=LjPBnoTNH8hR9TbYCmh7_ zb&sB(BpcSOMQ&${L0fu+^$0qUan73DHhAM+&`?8G&(rX%3X_a7!k|DZWeTy}906{W z^V~ulHrQKX=tQLuc)X$=FcU%R)Qv_l&Z@O-Fzq!#;o?^$J(evO4 zWYTyr91MnAiZ;W$;I_Zfa6Z_;t3#G-xn+Hkho;7wcNtz#4Gqr%41akv2tjR1g-6La zNxP{JlV;zK2{}#EDDGD|HvY?hbzo6cG*;b5$hWy`rm6u@+lQ;hS8K=$l=dHc`71x| z*c7;V&>^iq{KHnOBe2#UL+^Ds8NPn~jaG*u@E>k(zrABZu7+K4qQwt+@NM}mL@$8% zR+ql{^o)apZ?(QQ0Dk$qH%Rc*!CZwr^=z0Jr3_CZeZ!I5S3xj&hHyBryuI?tGAME% zi8sC;HZS$CYW6jEzztD_Br+ET;93k=U*9XMB-GO9`~cd`>44nwF|?^;o>_uqjIK@m zZJ54ba{!(5_)4o$V>$qPo*f2lYM(6%Tv=SZw6^xY{jaxx01E>!uNlk&u;jj#i^6U$ zhjR)8Hh>tbBdP|;DC}u##6J+f4vS=RdM@;xDb(Z8nnCvt4-bF>!>!-g zZkZ5FkM9Wt20`>Yoz8XouhZGyext+Tb%$eaZ>MJ@Vt&Yuwm8uC+x!SR5Wsu+GNL~# zdT6x)f$7VU)=ulwFIrFW2>L4*9lsnrm7r@0q0K1hA`23JJl5OLccDP{nc~257%h!Q zGESpFH_a4UT=1N+4a4~>CZIA278ha3*<^MHESHAz!VHhK?7vEnWx9Jb5V#rqbqj>i zg8cr&pSnebga&vmWFxTh2<&E7z@GN@7R{Y)SZ-uO*SYCruchpxWP^gPlm7&rjYr*xZ_{2TYMZ29tlv!vfv@3b>4vG^6&@vXc!IH z9#>ub%kx-*!!%ch$Ls_u9V8#(&>c6wx!<0gmTcRCD#`H_Q8 zt8?%U2(kcxK!3kF*RKNv%R{Rp$S$1d^$Zw}DagVFZ8&h~ZMP7*+y|3ZpCCBP@4_pS z%k+X?xAmO)fQg$s%Pky1KUHK{QC@l6fL&*vYhWBG`IXs2_-xSMAd`%x#aKbf3RtXd z13NjIH3OmDy0heiinr;0b#GU8$U z3y;BmtrW1ccI+^G7RGKbx5db;e?K1_4UTXb0}jP4Ancj4-=k}k3l9hM=wO4Q@kW>D zN59YJ%U4yC!DLV%s#bT4?>(>Ep4?89b%R{Hvv8o}u@U^OV0zZmA z5Z*p(PbN`J`bn1w+)~!03`2ecfP-%eir$zD-~DEZp+yv>qQG`7(!58|mmIfhUTHgQ6k^we2))FB%cW)BMU}Pyhu6 zJ2mmbH9;8P`@LTm0&t}OcuWPBxNC-uuG_Hivs7u70pLb}8#(kX0pN_}7#>n(?b7n4 zOUuh^E0vWs5ka{K0UV19c@A8WA0KZ7?YZ`AnkgY1sun|5VoCa2B7z2ci ztE=|J!{OHIfFtOaCnxlrWMiQAx!_6)@kbMixLaXKM5X-#;7efD8+d6eH;c}|E-Aoa zmWmaIDc3^(_N5TriEs#W;W0*(_$GepPtq~HFag#ZeW!mXBrO1KKpezMf4M6Op4d`qhOsP*#KHtRIJS;D!-dDT#1UG=g>uLib_fJv75a|_ShQwt}{#DMxoP4HaD$QuraD_WcaUI2WJ{7#6w-=te2v0 z$8chcd15idIgqYUW%XJv}?^ef2geBx2I&@#`_7 zU zj~ucUuz|N01Q*ck8m?B^i;gsI6G9=FzJ|aEN*qI2o@2K21_=J<0q~7iUwN+J*RdOc zvzG*5Rei=%xBPY7!3%F+Axw%6Te4%OwqTG6EvPgB&<@bMzwv6_bL60BB*e< ziF`z%RYz2sNmu~S?Ji}zsN471IGWxmTp?k5;`SJgyQ3H+*A$asG95jx7TOHvfFU%@ zj^8G#rD0Dn+?`&BAL})Ht?m20-g;-dXN;X&t!;o|gZoD2L&LRN4NT2w1X?uu!)ycX zrANAOx(mnr8bLLJpCkZ3sd4YT6x#P&G4t zcH|bc5$5sN71h5B+=R4Hq_0{iZC)&vfm=OLMFEtaTklgC21`)LL{^hu%|w9dsdyF&OiCwS{ZJji7yR2EnZ(_C z64rZ^>4jmvTf^NE4p~qZ1?d_^U`m_25sE?iOAuwQT~t)lKrt4v@GQy)VO8vteo{ve z>Vay$-=+ZO`#0+pzkQ&>1Q;;75ZD$+Qv!YxwZ7%%U`~N4`RyqP?!m|Ade0V8XUEP8 zfPI+1hdj><*5APOBZ0%9PwOXeGKC=kFyO!MJog9ul+s>3f;J*3wIkTcCt}S3f0+~u z6YEd#8T10nkgFglSzQ}_zKr?mYTpLd&$~isMbW0A>V70U@{EDAoI3{v0PK2&bv>S2 z6nEuf?Aj?DZeeSH?)077R^aIcZ~+3_M&HKN;=uyPkt&C37)?r2@vNP{nk#eoUA*+! zdmMlH5So5kTwJ`hSdj@FHUNtVEGwC^a-KPK?)Au7>Z?F|$9cV#A(QvA3|O4F1~D2Y zLJBe*W-;?9W83wFpo*tI@3R1DMuRcFa+POucqIgwC{eV>E0ks~NXq=dry#%r4OXvK zi))u_;g2W|C$;dDLtPi<)U`Av41nqTJ_VqI{V+`1aUW*P#P1S6hLGsKy#wx}E{fT* zSQwVjDN2**v<~p=*HbVfb$hTdr3hU|B+i%gQ9zc_4Du^#0FBUOE{*#G{YdBKT^=Ao!Y%xE~uM?#!zJ z@3H=BQm%=H8FY=(TOh)9`mqKu3@7Up%P1305u?D>D&D_SqZoWZYCmjKID*x0jK+0J z1>?-J)bA7228c!=Q6iM^_Wk-PsUgaX$*CW9Piv@q^OT%Y0B(0le2UNo=gkFYTgqi^ z4i*d;lAwv$@{%S6;`?{Gn5#lo&pg(ZeirU?3(U2G^!#T}{0{KRiDz^VW^mV5K;x_e`eXaZBN-t%91hqCn^I#!A^6eBV3lP=QUtyh zUJdb;kl%FhQEsd)2(bC!Jel)xUOSTck|C^NR14#@#u2zC5V)35WTrrkCWKVO>gag? z&KwQS6FaU5<_6&D2;G0lLr!OQ>%EZsG z$WH3;5+tJEU7M2{Hjt*++vg|K{<#@2ah}`5R}b7K`&Cg`#!#BftB*nHp4H;l8bXt2 z3VsFul{LUYVF|EqAoKza$42?8R5yDnk3#{kF{l+ByXxN6@kHyM3NJj#&=!+i?a;TE9qs*R_Qq#{c{4B}~rl6+(@W&Hr>w+KT>G&`K8 zVN4huj%#7kYbR)bGMQ8-q*@J+VZqrW2Rp6F*e7v1{_tP_D+KG_`l-f7MtLds_2VS! z_Q6(6*)E)$#*oC3_D?B$9{CYp507G4J6{Zd*Js9NHkD>^k~`3b1S)CL6GG=6zwzDs zvRpW0s!B*NW#aAxYLVFxI*H@@1YS8r^hE_op#gI#m8S@tj1$tO*LogD(BCZLPRu?A z!-Di=f}pdy4DuA==DcUoVzpbqegmv@t+G^5F=kI#gAE3(F<6z(dkSvN^{-dh!;l$+ z8mUwo1HM}l3}L9Pj8-LmYPReN(}0`*Diktt(=7p3M(MYtFV~Ds$yh(!6gfobFg5~*o0fh-ID#U{58-K z&|Z!JdsZ;jwVVR_V|9zc5D$)kB@YKfUW8=choQte!5>}ad*W+2d>`Yjt--ae!9&Qw z8qf<)u1FSKOn@KZqoa3&lH$S{|IXnR1C%r%G67doJGmKl2~rX*iogKC)#KxEpWNAx zZbDo~)$jYstJmH{3Clp!x{V_uAgu-poPyMb>;i`{dhkP3K>b(#~ zxnM&=7brvO6~|E)d6Sqh3jp_kTaLKgiXMHvb0`3q98(0o|9bYeT^{e%i(s%!-#(-- zPf$!>HpF!T2n?6fp9WJycUk3eA12hJXLSTUH?~T?ZX_l~H?U&61yzL3;{&fwzj`KR zS5^*|tYq-=guvsTC1p+Wgk8yq)6lsZ0ahrhSHPaRCAKPba&5q8DRRr$ubW#@X8gd0 zsOSv*waSk)`)!yJ8u=oI0?}0?(>tgq&^mFlFiDFIf|r-?y+;q9y?1YU`O>AeOP65o z%;KM+fsi!-R}>32Rb^U!RZ-OU{Ba!mdv}Wou=tM?1zOn4{@!>+QmD@W&!vT|44F;5wtD2iDZ13UC7H$)`tgL;~tpadB7Ta+uOs88yT*eM7_i{y5V!fHF(mC%a!P@?+b7j$mH`(4Fb=*d z04DQ6e3FUccya~6GJpe{9Z2&A;ipE`C8IYyx#q<|jvL$O@N3%P&XOpLAZTSj@=S4- zjHYZ9XJB~>16{AM58jJWPL}_NQkSe6#1${JV`b- z@Nj8sFx+By&TgC&fQ1$T=0fN|kCf8KNU99$Fg~wOm?w&Vz_`Y~;Dl+RDeUf($vz1u zWHJe(8sW8tY}Cx%M+xFaU{v>GdSM*_+A`^I((P8$aRe<(X+LE^)%WWm%hQ4n-MirL zxkyP;7Bq{zNlY5uX(@?T%)l2;c1UlVA~Z{W?lo)Oy-a0O7jU|lGA%S$L<0iHaZ+a# zI8qQ?KZPGbf}SrM(v7!Xe(HOINdbJTCSZH%>p1g_qLcz?Gk|j5T@1HheY$e7JYxYI z81COdhjs+Q4=m=-2J+e^3!W8mg+(`m&dTx{Wi5SW{M4J;1)L4OGF8uZAyOIr^~~|J z=>}Gux}kTuGO)QEeuE+vR-<8ypuL7o2>%fS6aRLB* z|GpKh*<~o)?ZG0LZL8xn4q*&^%G^mY{i)Quun4cWyJ$ood-uf-_^D37a_kH&!+MN#fh=r1$(Nj-ReG47;NM4 zPaDScGrt0M?e(hbxka5vrheJA_QASexPboZ<^eCe2{s{8PL9u70T(e~!;B=x*LhCQ zL33@H!!ISj6n~f3ZVC8>_>D!-MzayL0l?gMWcz^y?p7|~MABs#ZvGWcjsbgu`C7YQ zQkaHua&j^lynl3MbzofLS=?3-Uvbzdq`*8d>o<7vk(gd1z`&D@6Q~Uyvi}56m=`#tw3q(d$H*rsWK>3w&#_OjtsjFP zx(>v!&cK&~FeEi1)P>z>my+U?_-%jOua78p?T5ZksuX40G0)KAOW@i?Be8bWytw$# zIn3ocTNCWVw|l^Id)yCvSVQ*(PnNF)y5zJ+-w^82&ncvbgmDtr$ti(FcDLT8HwO_G z8N)3uKc7Jy^I7Z?{Nx{^vHn#iBs&G#d0gfz9Kfdj`AMvSgV%09CG^*m=^L`@D6pBa z1umg+%Q7@kP=~*Q5l7#wqK*b$x0eXpHNsLDDKyZ?;{_unD|MJFqrDYsWeHFG>W=y zAFkL%z$$r-Aw*b=E+)jH_`9={H4sfR2OA`KkH8puz3Xqo{WbHVE(n=KFrlU(i+YIk z>h$PuqxiSKt^Kyk@~>-f_n5R3)}}lr?beGVtjAe2&lBfK(anq!Bu9CW=9dGFwFFBm zpvf~GfQ7NL_i}C<y%D8%22v8k<8 ztQ4$i{eG^Q;-ShM3@wr7x1~BSgZP0P$HMPL#b9R+ziN0=`>es&Q+nPJ*K8S-`sGWh2}x04_$48?-(vWy^w33#kOL_6 z9bDV8&L(-^l0wLhtd=@s9QF*Vj87hc8)@(m1k{ZG(!&wv<%RhF2t|Sx!0?xh5UU9{ z(@Q}`@nald9ovRaRgUYmDusNXJ#S0^fpHbYM}8QFES`gms$d$fr4bTo(DfL_V|pEg z5*C__5)yYI#vgSOvAqD#0XF~V5IUg<44Yw8gI*-Y=i7+1I_(!D z=%AgoSCR-n%eZT@Tr4RtE&yN^dS!-Eng(DT+*VPRp3%)v zloiZ1T7gzU+xXj%9C%s^RwF}$jXAN|-^1e^4Wg-?HHG0%YS7A$Q_Qlyj=LBXZ+mg> zV_*ZYrNT1#ZytXaZ><6TLh&H|01?nE2Kv@w0sguR3zdqh|7ASb%`#vm%yQ2^fiCM_ z(AevF${0?65nLGQc+*A28^e<=R_t3&k}b^LDw9>$a4ifiRrHCtlczz^p-1 zPrD47iChA6ax9I&D)u>B{%c^bYx7^NKGqtdY`c-04TW~I)*-=z@yo2LK_hVS4pQk=-+txB3xqwx$x8?+g!qXtQA zV5^Z0d(Pu;;8j%N5hK2Q0?p>ni;@5X^n(71gRZJxVBiZ7%vQY%iU!MbFK7XtTEQT` zW7sc9|B+bxm$-m=71Cgf4TkYxP(py0R!b*EWK>cFCN;>YOcLSD8T$$8`Vdxu z#xaUVeMJ1e&)2;m6z;|-jq7opUXDO2UH)8#P$`t|{p;Jhph3EaI*=%9%Xzar22D7vVFfm?o!7!GqStd_^zq!b86 zj>o6cM);(Szkz3&fHm&v;j_Vh8GFmN;kj06p{EDSMs=+QR11OW2kaK7Y^nXQXQEIx zRNBDbGGtPblqLZ-bkJ5jrn>6|PJbcnnN6OT1pw3YDvN3b%nqE@E>w&OGXq+ohh~5a zr{I`~!m6Clf0S`lm)NW%4Hhsc&d-=_EuQ*0z~T}G$0J5rJ+rj1hypJe18J_T_R7iz zJz&4|KCi&?_hfiPztT0vevbyq6cj;jG!D1IaD&0IMB!2Q+za5Gi=T)^aHOZ?wGg9I z2#n@8m;m}%5mWKxa%Q4$`L(=o-#R_7ocV-mx}8OUHAhRYOs+Z31jK4pkWmrbF& zU<)QG#ov08BIq~(0K4p?;#$IE_VIfDNpR;M-@d;tuhLOqO96Q2U^WdGzw6^3q1?Au znB~!x{l-4=B|qJSl0jQgpQno zs^Qvs%>sb40ndg%#%zeJZ@%NTOUx~qN2EE7wH!7m{h?Oo>WYaGrzKj4%i|}migRZT6 zE|orO{gp;w4`UmTGx!8CSXXhf3P~J;qv7DFWV^eug@+z4A4-={VCDQ7;NQg*eg`M3 zL!iOHpd&jvGPm)qwM)ovc~%a2_4ZlM3`xYl;;C3>Q7TN??Ib~yNtDT`tkrNj{`Ac# zP7trl1+x;s?}$+71rZkUA#($r5|X5+BtA_Dsn=skfc-NTz_}Up;eQfzG{a~Q$rMF& zfx_z;JW4yoN@->SHdwIuieofFyap+z=Zq-?!*x2J9v*z_P5S*jWh!X$EHPh$wi+0E z_BTl+|0Onw)*+P6V@R&7!z-8ru%&&Tlk@i*un5kBa*$sR^K(4~*+6$4Za$IgVwOkg z8N63%o@G);7Je68BZkAXC(tDbY>%LArInj&6O@lOoFj=y3D%=j<81bFc+0mT(TgoXZUVNrx(S)1R51y_uvD|`=p zz6J1E2<%~V5{-rSitQb6&a~@EUoe3b4m^A~fIO_h)&O?4`RnGeb!%0yHEnLk~m-nJz^jnL0}}jorK|#v0r06&G0wQ{Q;C_<&YpCB~V>AI55TE zSf}}funVS-W)ej>WEqvC5Hc#q`)St)(eP;! z$CM1$!8e=;6B49Yo(aHHT90PU#VS)#>pAv=ZI%k%lp|> z$6ry@?L?$?@aX}4fpPiiRY3>%S>V5BZdK0QoALV+r^s_eObPV7n-^{f2{g`BF+3M? z=t5E)nDDE_SV3UoFD5U)Mil-EuW)AZORx&VD(?QV^O`mOR@^KX)evj(UvpJ#FL7N9 zx3MV^HbOrXp>{0>Y~XLBY!`}6DvT9ENySy*R#b8$RU%=m6g7-rG z;36vlUaaszv{?OSlb{#mI(WeqJK~vkz}{=G6ny7X&{u!U8Y+Xp^GZa^d;m>R4|c#? zl%BFo=t1tfO9knbcyQ*g>c{#{0C=O-t&ALAtmv#k17B40fS{mWe6O2Oh1K`9JX6Y9HG+`QF03e zk<_~hs*j<{50J`75C&c6g~4&Xjzou20RW$`c<`9f-^0Dx_-}?&cL07F0*gw9e^2gz zsOymgOJ{1aF^r)p1x6sj@)`Dj=f{`d{PE$z!9iLl`~CV08`6{H@=`kG;M>^D(l~=V z6Gfoqyx9O?$H~xM2fG&rW^4pessN7X4S2HvtOU@i4>-`3N$eAWCn^<+C6hQ*{09B( zy!^6bICM&aplykACCh+4W9;nOvMeuWGxCfkJqv-0_rJy}*~>EEf_kGI6Eu(0pFl%3 z4>Gu|V6_AG>=z9D-WR#p3K*}Xz?ar80rO?$M+||X0%=hRvV;woabF97UExO(#^9N` zZ$(cMW)NU;3AATgbOXHrE)RoVm2f&>#~&#Lm4`|GPmOmLVNo_Xk z;c)9@b#TJb7`{@iZTgKuJ+4-eNzaJ$RwN3*jamNqGuL4NTu&&%_d^Q0umc7J4uKD1 zpG+o`G>oFi%BZ9WT!Tu(Pg`%sh*dIx;)Sgga@Zu-R+cCw|cMr!hRpF#YwdR%^d?0*NoT&>mr@#Po&Q;8X^43P#$V zO`cs-^qj9Q!uC3pzb!7{hG$5ixhAb)O`pxRHN#)F0bXG$XfDHIlz2seFdsVu1oIuR zl3`i=*D@fT*LzeL|7Gab1N{n0l74G(;dy5Sr9S)!M9r%*2Xa*hU3pUo@G6FZ^6+Fe z91iW6N?We=F^hfPIvKLC4+hli4JdFlN*D{y?thnXcp~-7yu9e_#mrd;#Oz2hj*>1t z)+HEFl)bv3BsZZLOo6#JPLP>VNna!MDOAI(IrZChAN;-)Tt@_9*a+9bi-daZIBugc zWyd~L8YCQT(X=GV-i!^wX1vuQ3+CYYlLxc0;Nvfv5A5$az4 z^vw>Uth@F9eCvk?KmIW|giq7c{);56C-ve%hdEQ+y#2~;&0NcVKL^rSec#SR?cldvc7Hd2Qa`eChneRWo~$C{#<14H34-iGzQCCg+)g> z>k`y6h!00>dAwm8f#joS!pX@;G8jvKp+OX}J#ZprT5_m8nPA*!b|LzY;Ba;k z)^r{m;|Y`_C3uvOsOE>H2S6G^18yH+sEvG-z_UtJ{pXNT2}#aT`_xY;0>AkwLJ8zu z)w*$)(q9y^DQ?`2nQ9n13@Ln(TFi&L=%SoAubcu!bgN@-bZ16j(mQTKsAUh}`+)%A z*IyS1+y%cBT<_CQTP@a+R72hFkKTOqhvbKQZ+`33ACnsWCew(%>Zs0b1pQR9)*I6$ z+W4*8PvX&&j0KqJb*{wHlAoKNFKYnSH+9I|cfiD;z4CO{3H-dEuoq-fI`qsr@Du?K zvVtBJv0aoK@4+kDTQ?*0^ZRX7XY!rd-T5}Zbn0n0`XRtx}KBei+{`5>G?RWK*2xYj$3I0lnmmvmFH zk)GfYWK{YjBBL-R6WmL>5rP7S1ad257E?h`O4{^z4dS6mTo;5ljpd3JoxcURDCGH= zFM|&|HUhUSzFfemdwBe{8ns!GwZh!lgC;0Ngz)mB>SxuTrF=Hm`wuaxx zxF0f4ACk&f9*Z7VCD4qt3ii_9Kz@Z1Z2w=u_~@v#>z;WOCqD6KSpB zNsY@VC&QtNc7|-LtpN|x0_F4H;Tq+@TdK@=F#P;Pgh+p`@2AU*zDdHT-0Yn(;H%Xb zR9G-3rU+cC85*rK$IR0YAxNs@BsryDmiY8JCGIf_%r5<-bd`ZUPfVkM(~DSiP|WvDunT(8`upDWLDMnj$c}}-I{1nZ z;|_=k$mT41P9;cKrces~6_y5iY?T0$^9Ulp!2n!DfU)-a@=0@`v$1q{FjnEwGPF{e zflU?G$|AP1oHGGc41X)CB+xCI;kt%)ORJuX`i{J!ntHoCNzbW0&n+&%ostOEFg!*k z0K?fq#SP4F)r_q6ynB}}EwAXTD?W?{)RklC!Y(AYBA4VB)?MZJ@AR=d&Qt*F&`Cjm zt+-}fN`bE$zfnhOfs2dEc}0h?#$I`3Nmd+f;P26Jh7Am#Mu1;Ak10v^Fc{&{a`P)N zn2_naVCTj&Gny`{MpEG%f#$nWD!|`MSpoXmI=TCTPvC=lo^8heIp1uKXJCX zuf7X!Mo|)^L+JoZ%Xeg_V2LA*Gn7~s02|UPF@kPb{$EYxU2pBP_uhN&lAJOxGVEQE zfgFMf7r?K=UfuY6k=SQDfur1h6qsz^Gyq$9lsW9p9X=XB4WLPZ8Kd0*Zv3bKu3=L= zFb@KRrJU;hBE;s%_odnaZ!q;0?12?Jru1LL5qLDh)rk3UL!RIq&INkatMxXRpeXLb z{27P9`K&QFB2ho3=o_Ja>ia3GqjpR|xE52G_1O;i4%r77Mr1!GDTH6u5Q}r{i=c}< z13sL69?bw)Uhe$q|9#s5%Mc~O41xI=dS|cs1-;Jc2Q&Gc&@pN5?Lo`%p$xcWW9U{q zs-iwh!iWN|@ApyIkHpXV2r488S03K^vv;4;9q>28i1h01QU$cy))s-GO1CnPYP*p` z)V^5zf1PtEtIj)w7PMDQp2Xijl#{Z zo_1sM*}wbjv-f1=2E$*Lhs82EmR!|W|e)=T!1L! z4SkBk5v9SX&v7qe7t!n71Xh_8`;U63y>mR>0RoE&vg3U3*MIbLV8F+03=M6+Emn54 zchCak?%iJRgU%FK?@0(gZd$QgJ~*Y?-9Dwjqa+E#lycy-+ipkfr~MFKNj=0@t{fd5 z{pAZA5(zHM)8Cqsq@gn<6`IN5o1ZBNW6Mf zjMZWTJhVs9d<`rlSsP^(m>&OJa$t_XvT|XR0tBZiqWE1SFogyP=1MFIli^(dG7$*2 z+Ttq%;8!P-0~7h&LO+0682KcoEEgnJthoU+({~8OLX*UY_$$O_xm}Te)h~4Nw%|fa zSf?VTSrA9z_XB!h&z1l5Phb6nKdBz`33RX1x=%kH?(MyO2%FuVJ@Vl!=~&0dou=Vo zf^~J&?k5z0M`4ntQ98L2wpl95ui(FuzM8snGCVqZ=`UX-VL5nSBWPlelFiYvjiYh} zoR6fGJ7CF*jreD0zV_d&_KIlgE0)3-+ab|KEov8<< zX9ZI3ERSe$w5QXuxJFtu2h*o%;!SlRG2pGZI*igZA$gf9U`u$FG5gM7eXT5L%(9{< z+@kzREy-FbR6L7}$xKP1&cP~oA<-}I{D=SZv-g&{_ekblG2*+n_7;$0o`Pj6pAG)Y zp|?_5cq|0AcE2UQXNv)Q(&ek@Zx(BdK-q(_uT=;r=Ed6Mexj0=(4{o`|ql*gSSGAFbc^C z>KS~=fR)*i1zNQMe+k*|Q7Gn5N?-#H0eTZgdco1-cUiFkMc{6>kMOWZc4tFMY>B8o zpuqXT2iW;v9M;FQB@q~6o$r$`T6;g={gdV~%$0kv*u8spPeTUw+w{dnG#;foic;=78X32ms~j~{<2GhY3`#&h5abGjCvjBgw88l)9Y-E~$y?qp+i>jjpcX5}0N=B)lra1B=X3_-`40@csOh>wo&&t5R#CzgVxA~)nv*fIJDH9eM7Xw&p- z1VEehgU(!WSC5~S`6w%T&T``7zs#?C0DZo=o+%2e*%j78YUN2HEWN(mgkGf~M3~b~}=G4k&5rb>0oed)C8pXeb>gO^7Tqz2Qc8gKS2;g!Hk+)%ppDiSAOjB>s zheE#n?ZwZ8-ij3+-QxJGH@}Pmo60N2eCM?Nwe-&=%WfP-2l9b0bx& z6cnHv0lom|z!&<%y79f=zmZJ|2@zw$Degu-sgYV-HREovn!bf7Wv39hq5zBeN52La zvz|ieAp{5(RlxM$WeIZVkhIpfDN-Kpk>(CX%4X;I98ZC;2mXLfz4h9z$@al_55KtI zBZr53n+KFvH=D;yw$+;rgT-MC;hLj#+>fHD8;1U96h$zY#}Dzz(ct9dg#K>)665z@ z0Pwuw*9g+k$r+X$+R>E^M7RA~4Zu1zdcLz~JO2vnLA1)iGNCrpQ~10Dauhr>YPYZW zETTCAo}cBJ6KDmwf$n0kb->mRSir2b*qGG{UdAe8tE5WNS6g*t*5!g)H(No`u2(pN zbu&?yMVsLBlojglyn@$0yLXRgPcpb&Q#n{1f^Ql8SGj&|gYTRcz~%a9Y;Aw#TO%iY z&al@!1^yfqSA*fnaJV%*TICEF503_`r4@sZ1OeuI-;lvC6Hm!`vgtI+lV^2>4W`19 znH+?|ahimq6qL|u1Z@blnm@u-;F{#IrC82uuVq(4cVPBB2@_^>B5>~{u1?I6nxX&* z4xxB9qO6yGyg6ZT8?w`coTgnEN5@tKG#f;}-egnb&f%UzI8vVF-?ahw1Gx&e4%a_? z0M?@3=Igzkoy}&GH4XO8@%)MeUq^8_98m=B_aj^d?-%@Uo}3I%PTmI@^x*wp2E(7d z0N}Z!FtPT)RtASE*A9A zltt%8ku0l_4;SID=e_sY@})~FZ2r8+C(eruhYbd-<V|6UuKm0t2z?PU3QS|{+=3A8uVFH>gB3teeJIzMZ$?NO%8SyUJ1RL(AbGO;NKs>a@V2ZKZ zFvoT_zxa^eSM%qGo4p;fcktjHxX787b%gAU52hH4k?;4rqxKjj`;-P(M{WL}e7P`aiA-;PO^L zRn5wBO+2-_gp0wlM4waywpI*fV;cUtfWMsZ>Ld=?|0@+(8SPbNE~uLoK)derx(RHL zp$kZ-#a&6E@o3`&2=ECnDtaV+z+0so;0;zDEaE4n@(ME(Z+*%NSid$He5tH^t1)lRO*M0~ z!HYp~sGf<~1@yY3Sd57K5U(tBS%|#NhQ+(PWOw_%)7fkuI!u4u+&&X2ivYNnA-J2z zA8vlQ4iMbCzqv`)n+JC(vv%lptu|P8-yMe8nL#uH^hHVBP5u6OG)8^;Q=kA0ucsz# z2F(}z@BZw{FOMGnZ-UnN(m*kxG z_<7{Nob;LaupS$EtpbYj8MGyNw(z!eML~){dN5oa42~>HT7Gz>y+-EJ_@USx zv)QuoaEM{7jjd|oIQB(FAnbupP7;a-ah$~UB!oq<4{B(_#?XD(1G7l1%_jX=D^q!t zKIW+4s_cP)rt8j~FoZBGF*x=KjH4-zVg|*=&P%Ss_%RN{HFn~ZRDaHOS`4Pe1bTZ{ zCQa@-_wSQK_RP6XHk(X=(~512ZNeUNMS`)EAs)<9=&{iFu`e|3PDeu;nbLIwRqM9{=Bceh3D z2?i~8)IU9Pc1%M2qz>9~WWM;+J7HpYgP&sx9Po%q4akD*VvWSs{5epC40&Fuwapq8 zDi#6uOa|q!zu zm~DbZ+M|z26^@60^#9V6;W-S!Wl$|&$%hO}Q9nVXP5&_z_N|GVkpe^_HEmYf6gH}6 z$Erv{IKw(%!Mmilv)d%=>sK~{9XR+y=4l(mly%ARMhBMO`jK4@t|uBpWXS`kF=uPb<0Z@RqnG{ z!{AM$z+Ukdm{~p_VxhS@>#%{d@sp~;h%XNFny=hD?15war+@T65bPs_<4HWK*Q2nG z5Jg~$!D$^OBMQNM%NoHHnxH7U>EPe_c9R$knBZxJ;H2QRddV)HVnR`$5Tb~4*F+$2 zEX}^!7tB&8;TDEM8uOP2CIt6j&WzN?wYTfETFsyToZ@eDZwExs&O66FM`B_zQcjsg z(|>;~=E;;zZ+^J>;KB6=PP2J`b9;M-Y_<;hxRPS9M)qwzMmLi{>OVrrXG-XPcieA} zyA*&YLQf}T07v-!KmRlQ6MX0YdI7-mcK@2jA*W=EYn2L`t-aS8h{0AY8uM4Q598RtGnhc05*CBJ-hJN zb4&DB0)hY8niOFzxO!-92VhObRX20}>8fY^+FN+K2AVz8wR`vOEyMhI?UtH6+vK+( ze3DP-B?GRwl?&^j&AGbkm3w~;9W=K0zoiVAc({NPdjrZ|2M@D1d_>PI;=e;mfcbK8 zX|Rt~gWyIH^n17ve)-3L^k3tc1yV(n_Qp|Euh&CZOHu@m>Xd7ygo&Xc6sv||7+fXM z;{W(=$OgZmOopE3^&^Hk8CfsQiTP|2GUiGVxC^8Pn13Rd|H5%Q!)7P?sc+B zpJ&(C*BwfNolSa#vf$UZdxyQ9y}iyGf>8B@VwPMNU!{{t0---~(00=g{qcDJPP^^j zX-ocl#hyhE-hTnW^C!U4V{|4hwVDSrm|K+pJQag)ti5*QEC6P|*g=^m7~3-gXu7D1WVm33N&p_gkpN_Watz{y{{pQ=G)!9CF?mPEMvv~;P=RJy)kj+7v ztd8`}AZ5`rsiOm}w(ql{Hh&)9Ja#rWJI!Oqd1HI?gT0;2y@Nme;#lt%*~hyN*zGsh zbrJ~MB*(ovL3Pp}_5F6(zSF*=`LFyheV_gx)AtuPq$k9L%@K2U3Z47Ux5^i6{Z?iI z?VKI1aTaKsIE&Tv+4|$r;wxgkzI{F=SY_wQMX;yxDdi5>GgrW_#9slBQoby@ec&KR zuMC%su3F93T+cEnm8DB$F03qAf~#!I*4YqTFoVWyPin#KwAf8)w^~`gw@eRf(gDmy z&@%XHkx8-^t>z=wRZ1*{$NcOI8h_m>n{S*0W32hF0y~d*QzESL5VI0Dt2N?14jIy|Dfb>wF9y$G||Nl%&9eBf>&C{3@y5 z?p6Xywxv3K5EI_{|ix zaf}lrw)xKeCOO>eHP<`M=4SIx?l%t)oxPnM;H;m#!>*~7H94frtF!ppkDuRjdYdwh zVUykbjVAEmrqergHuri52Y>hmySrYGJknm z&R@{~>*4>D1>mozLH8MgUg8*Glji){$u5GO61a3May)wx(rkepW(tRdV`k+uM$iWM z5_`P#Jc4j>O)$2qfjwPCsB${6*`xq5j3$e7PeiZ>DNxba!czMJZN#Sti>F` zY}_%KwC8$fbsw4fFXKuEQ=Gy7%fH{1OB8=EF$pw7+Lc9R{RP}ztXT7BS>IIAQ0%I; z@VVsBhV;yx`mI{NUkiM_X|ksheY8B|XfU{zxkix@czA6%{9BnoDO|q^MmP>h!RUL+ zUMQkW3xcTPXhI?s62^fe2Eii^!AS_no2G0O4J5dRtNm&e-Hf;)7*aE8yr~eE?0Pc* zEWL}wtQMzle%kjbr-qKfm{lFY7-0Su3UT^j`#Zx)| zyt#h;y5lt0oj;~$tvh?l?y}h<>)YzN`R?wnP6APzVV@#!yWMV=Mv3B+ECAnl`MWO= zcy0q|XEte6zBbsDV9hgtBfDY|2<-g+ud$acx%h{6s-;h41G`N``=PfOJs=ENk#(6PiBEQ$AQBbhfzFXYgmE6QA|1T z2oN}l6G}=`CWdBz+O-`PD4KJ@+4 zqj9@VSQs_OU_OyfrT^DV=gS;r&ZX_mUD&=lG1&v_QFD`m3%izWqDAMA$IW z8?R-b_Z*I(1epW*$>TAUDkfUlNDZuGU4Sy3$^$;^W-({M1`S&YWn@cwBu*!O-jQD5W zHs}>>S7#=`QU#5{1?-(gfmuJpa2Qb%JQxm#CHrN0Hy+7guJOt^WS~f591lQ##h{Ka zf+Na-5px8igx+LCfCT$#1dR+J#p?5J2F!4nqcGQF!Mkr*XsqV~0ANEsBE7v(bQtn zTAkg_+q(}s9j(Peh$3(o)!I>)z9K68W!3%Do!FM(W?Aj(-bK;C=M{D+N0^quf6oUb77a8pG4{*_9 zA^&wNngQE&z@;R2765jq$3F|&>lGS|$_a46*&fS=yq1IN)dBPNuEKuz>ekX#kY5dc zHT-L+2_9?>Ve5PHxmJJWAf6P|rPzQx@!~K9%;oh4pu>`j-~=Txfm(YU5ucG@m_yfM z;*Y9uEaJHw&=JgCNg?zH3rL20w~GrY03*4d5)jNc$bjUCUMikeSj)nM!EienQ(jo3 zjMfMDQGaxkJBHa~wFq!V7TqIv)pP9LIyrOzaF6%koI~?T_(wl-7$;WA{0u3#ALv?G zV@RoWuk?UFb~;XPz1MSk_VfB1Z#ZlaoqM|9b~?QtznflXdwX|pcXzi#4=p)|_7Q6L z+im#479R#ru?^`h^38)^oge8q#rxZ`iL^to7C+~pd%jSNu@!*@M;)Vtfym>8*s+w) z787nPk~v{^AcLYk(b!M`PzFNU0PHdt`aY`+^jt49G}S9y*R|3-G_1hzxfp<5cVWSv zA-kCfEP8~Ti~Ke+*rOQw$?ubLU_f6GoUtu17oRQWyMJW}bVY%1Hk;#u{@*i5 zy=TTwdItP@(@ntT`{BV5U%6KMsEh(%4X<9kicd~XxCD9&_P@iy$wmS!6CCFp(ue&$D|vjnEQc2iAAvQS8jU(L>X}9Eb-9};g17jTps`OzehO<})Fp(6K1Y3Cf0WyniRUP%bNBAu z9+OAWcc1j`H{V!yoIQbyJM7~ppEw`fyjhHtW~-c`&T@=4SnTv3I1gAHM=wh+uY=@E ztcRU-b#@1MGut_L-q@xPyt})-v$NBYQ)ni`s&V|iQ}`?L?$Zmv-_Q{>F&d4|F+P^k zX`E%h>=<_D%6&7x(LEN#dcT1@ttDJ`Pt<5oBm z6qQBhxY;a2QoCHMP017TtMVqo%+AwNA~7_6`COCdoM?Ee_$m+p%tp?a)}SOp0Wjyi zi(BV$liJt50)^?r(C^C`7b?O1?U~( zEs??T=wx7UZ##?2B)alT5c_<}RVmYqaLkBrET_;TF2#!LRUpCi&?N~Tr7(#02^V7l z22%(I2F&NsfWjfJDV|N>1f|1-$-MX@N|BU}aQX{MYCq(oY-GY{1O)hIm7G>7_L8KH z$QZR@6b+e}2ri5$BFmY&WAEc6pSjDB&e?Q6*`v>|cbk7qnJ$|<^DVG*p8_x-bW@&T z96DwRol(2O8PjR?&$VS(jn>}aqI>q0;T?)e#fm?*9Qz9RA`{8~V zh4>CV3E0xM(3H+)N0lY83p;BRQQ&d(Lr@xv3Pa7(G(-64?vMI1$!@uiI zps4p_vGoI|5#zsCmnIZ|Mf)J6cJMst%$L&Wn&G|5ypPQtFlU|-Or8OQ*oGY><85ZFjFovce%rO>5&kv@re;4{Nv z&T9Fq`%_E-_9kF2h21_3pGlpibogCi^raA7C1ME8$%cOV#Bc_CM!jo==r`|DTKYPF z;#GM234b1L79eGzI!p2;OcVeYtyrhcVvm(^>H0Q1PzLUHKVkqZLpao%Yl($SJFuK02e`BlDc5|PeJJLEoNxHtC>=_>#rVsGQ!6}v zvZB)_OVQVK9x?Q#xVylhSE|&`w*j7=+n;GUnhweNOFz#ju8!FJ8P59^#oud7OV=0& z-WpH>%&+=o!QJUmvzMJc+j2=PStvjm!{10kaFy?Y>6sH=FO;xbFh?**vDiJpmY1S( z6|*x02!~wz41;O-qBRDv%(6r;M+k>wL``7DA> z_Z}ueVB|t)3V=(}uqXgGzG?sto{liBfHyD%o``_vNUSJuP{@L9{BMS>S>t$mSU6Ku5akITYSr^W^WY9r&0Nps7|MG`H`R}bo#&{Q376lSlrot~@ z{Q~n$N6-pA!#?T{{Q{1PwOE62t!YPaApyW2LF%uF6ONtj! zc$48QKrspV=P(pc0x*b1VU$K(v?WM!sMc7R5XFEY%(+Ux;E42r^2S}nftS5Q;IkjX zNBY2$2dAPX!iZ8(Qsr&u?z&?LYy`Je60D|FCr{_BraH^M0GHg1MCJFkqY!zMQ{cVr z-JR{X4_k5z?EAGb4&VGIOT{{@7g^Brn?CChEcRRD-JZq7dqJu5Tolq+qc1l8l9fmr zXCk4C1KI=p+#WpXMpBhYJP6BZ*YT`!`--ac;k!>)R1&OIJY5v5rRp+2mUX{+E#q60;;Azn7xutXI83Q*p z{4(tGrvHx@0PFN;!EK;tP_O06n&EfCuB5&AvCiDV~D1VVG<45%vH{UqlnxT!)P{+=HZbN_@h+# zgMBI6Qm^YH#57f)hOR=+2F$zR{%d^dj3@~Es1~JN`o%^)mJ8iuna!unj@$Doo+^PV ze`3A9Z9V1Q&(mCW&gSM!jvX?atEU$hoGHG-9(xtgP5JAFM_TA0k|I`f%9&(@wWE5=d%5;)%dISz*DBseCxZgu(+VP??U+i+ID6c-H)@rwlL<; z-i#c0dO9;d^AR3?j*o`XfKkM)5MRY1WkZ844Ex_}!=tM#GddGC?G;3Dx9?v++}+#hFaSm| zeW8J(sNKF3mSkc5rSk!vGycBy2VVyQ2Qz#d7=Hycn5Zs7=Uh``=d9tg6$y=ld1|u^ z!>_XWXFb2qZya>V)LWh<${J)87R6#Fh}JV`ZRJ(?`+dFs1^TNEN}e7w%iu|?0661o zHI}?^)*2T?2QPmYml5EL(_dR$*6^mwy9|Q5w!Fp)2POW347xJ?0Hk+e@&9Mylmdb0JB|huLC4HCzLz3hUF~ZRbq1+-ENwKsYNv^EG zid%MOnjdjg#xew>rntkm2<;cj~=HRAFZR z-TC&hhTzU-&22juCFxbLW9Q3rm$mY$b9ruAep&P5m5zbmrDyl$Cy(UUen`9|LoYhr z<^Cp6-X+X?%@Wul@Lx=wTj9Q%+8;Z6^mWa)9mX$ydh1W>R-w;wtNydl>*D;vwO z0uUki^FsyT;>!FC?&FksfQxLukJHW$#Dg1Z911zZ88ieC_F-6L?ktl;j`M>%+aBnp9)q|J z>;J5W%zqz#&%FHCe+>WX@Bh_b{oBqT{`DXK;g9}Ryk(8QdDpIFoxjnZKu1|<1N+WM zu{L5Phn+&}J+Qp0+t{#Lf5Po& zw`7f}pML#?GwW&${?}3(jFW}|>mmesck%E3X?Q1-Gi@?8K0zbTc`+>>gu*YWo zy{@lstkV@lP-FeCCvyaS8u2$EZ#+{YkO^1zVM{vfBV=-zI)?B|%}m@J|ba!xtYz=f9I?HEbYw)r*-8_pP!1 zX-ChU&CB++Z`SE6_vm(FLmL&PrBl&3QFQxp|;?kn52_%YD zu$LFFX)AC+Id8iC&6czU)m+UKS(0=tJ%YY|>;A9r-@o-pdIZ+v{B?cWvYt$#R~-ZX z(ffjpN3v`7)90d@yY8C?A7U;g$SYS0po``VZQC}%XW8sK&0SS-0&Pap6%{|nh$}mO zcG_nR#YjX&+KdEVV+swx1bP)gTDgMSO1zb2g6{3ew@+q?>_>$k!G z3o$L0=^wRc(Er&Dp*08IFk)z*iY0AB@P=+jFu&oNugaCp&C5@9PcS^zu3)fIY6HR> z8iV1foSTEEoqv9@BQHL^2%8r#)>K!!jcZWROU_k&wWAvb=W6uTvMT*Va@iz7J@)?I znpEo-uoSrd_~RP-SJqZG>)UrW>$8Eoi;GL2J=9fy*W}&1zk2fX-^eehaW}*qF?hRl z%`JkzW*}J32-n(g;>YGWzGVrV0 zle&8?U5HEcy@79RAY`MLXGDPOYa7fx{od6-|GnSyciO19qATFU_$!lU1}8$6K@9Ce zv1IIK(3{}RWeHbT@11T1VfT$^OvrE9YF?e68VQi-$uXQ>pdh;k}6R zeedz6Yh`%64$JR;dC^RsO)%wZ0N`^U@GJ#b9(7TkMzObz>~!R}IKa*~jiLl>JHq2< znTfB?@t2!E+dd>!g&Yor97xd&s|1l=4d&-d!Bhjf+nc+ItPT&I2R|E7Wi+}2A=tQ$ zLpu=MiJNZAt%`xg-_dAzX*e1VqXJrMum%x-X~d-cm(i2vUMVK8ec8;f7V=wh_H06W zNfY5D3QXVCWD@qjF@NQX4)c5ZE0t-R848R#K_zkmB`lb9B$=_VMc`E*$)OS09Pc*d z)vGHjI*e+~kYK%smFqSe>#^=h@-2Zn2l}$v_b)VdO_Tc`~XZOFl|L}o+dRrDVlU-IqToUWZ(U*GuBC2_2-zKaXt z|M#2$&v5@6*TA@Ea6j-^9PuI;?R;ZV13P>^$KZVaYz)C3e=~qW=^M70&tUNU{Gh~6 zp&)#Au=7Y&3t>F0}q`1 z%C!OK1q>(|Ohh>L*&EYha6A6y0o|O8nV@hh2cFU-tY88}w~m|fS#hjSK^g9nXTWam z8|_FNZVYYqz!%Mxja7M7x>OFMgVL{_N?lXd z@Jfv_D;xU5^74j%SX!nfP13aNJT_xzEq%7kTrZwC*W~7xnlBp#^ux`2_n$0XyZ+#- zYmc5>f26}TbfmKd)w_2wy2guN$Oy1YCjbBzYXpAyu%_^jzQRwh^|z-BrIx>h)nESd zOT&TV|Ly;N&VUcfdu6%Zoj>ym=BzoXIFPPtU!MiBf&nYC&SAF=e{B$S6{IsX zhcZM`*|(PY^&I}DS(S0W3&Zce8_J|a-miBD;}R{6t8!4OI0>Es0*fhz&?4o(@ni#D zz8Tld*NmV?!@z&t9ymy#jnpavu!!A*HU!ISuG&*LV#%_Yrr{V8*O7vTOpS>Yc%tOW z5n$CEutjY2Nvi_GfN_5r24Ic=gRi}>Uph4*bz*3vmU6NzV+mfl+R^go6{taYbH&`L zGw;r6@RV@bH1`_Cv$iO$+6YOw>$_di zuWR`2)F`~RB9~1>hkX3-q5ReT>-X+|_Uy^^PZo>&CSh{P3$gBEDjT6zK00A=aP8W) zPd<5cZAm^#{$p0wJL{_ezg+!%9RaYGkpGi&0G>Gsc7I#2ZhCAjiX&seiLD`6AaLim zWaJ=?hkQTyuU!IHwoFIAs+c%rH+depI4DbhBfJKP^_xsN{{7$IkqH3~YAdO5(p6cK zwxvDbZ#!lseDY@7{5d@Oa{T<&%i*x^Ho$uR9Mo5a{q{Wk4s0y6;2Mt{CWp7poHqcl zP)+OKDrdk+bcSNM>ZCpJR0Oy_g_3Pa9mMo2*?b!bsGAI(V8^bMgaP{xuLn1948_{m zh-zpXOu4EtvBqCB5#BVK=%*`&J)3l_$7X1J*?f}O39r|5RvI`qfU7as-`FEQIMye1 z;jbP!KkmqNEx3BDze)}B8`7Gf>T6HTCqI<(V|jP!i?2Sr_a_gZTz~Lv>A%n;=O<5S z)vre1pHFxOJ{~5#9fq>kE$(qz$kfXV`~YiIhe`L$Vi+3*zLtLCW_HW!oV*L}7tzWne_X zaRplA@BIAy4YK`3Q`}$){+5hp$&*9x=o9Zeifw6SGVkgfb_(}m4 zU?tMzehZsHGn_+OMNUFl@wJN>@1%kjBsXioS}N||`fBNmPyS@_;q_ae6@OY>e{`)_TDm*sv+%=*Ct?OIWzB-+5(VI^ z`aAu0Wo|`>aXh_vdD&-D);Rpnj|zYXa8?1hstQR4(m8S#Q;ncy{#l1*NP-l50no29 z_)&C@x)S7j96s5^g8lN>#!=GpA+Ig+>faiD4g6+FiO8#DSgz*30wfNo#K{~<)Rj;q zJ$e=fV9^v=iFo-hp7$sZVb_P8C23X2T_ZPN2&~##pep|`ZnQEZpN6{&?b>CVjcDa=6 zAr|YRO~%@k%U4Ylq*(`hvc2L^curbuhRf!{W21?#?{aR{*FIPRtcmZON!V}WeRa^W<5|f#>En)>qb6*Vo^D`P5WOt(!^o`3QPu z3^-hsk`zuJ!ZE`fXo(Y`V-PeXL0D0iCHFXHKI>?$q7ch~Ff||<3$GU-m4l&Xzlrk~ z;Tbm6*msu~1g;^Bo8U4AQW86G8~lo_|% zO@Dhn2igprdu9Yrvo|cwb@bP_0hc~a%PoSN_P+>v`2n>3Poby`p8RH0=XS!Xrl?)u z%t|fy*RTVQ{saJO&d;aK3HJr;FI@Fxc-?}oOXXM%5Nv7i)vK2^wVg8r6>K`kiW6q( z%EHT!AKUwU{P^*gwlc}UvgW$_-qzeT6LMwVTVFQIVrk~iPGY@Q-*bJXCcjVR(@k4j zxO7e4zb>CWd+^25SH-=es4;l4_~h2LPkrs*y$AbxTK;;*04&=Xpy?_vWDMbzu&hIT+`p)aOBcAdd7j&BhFtT zm>qDh8zj(ZLfzmz63L@&V!&((GV_ie}GESUOWqqLIi=CZlj zoO|zz?pQEU8+xc+-{CvyuvfP;tXM0Oh9!CHy1f42Gr9EZrDvag@kQ~QPpoO^v*X?B z=DX90L)cG0U6M;nOAnqbJ-YSivHZ)wBtmE{6#sH=eeLm=?>d{yU#`E?hTwJhb{_z| z&vEd=EcoR~bpNJ0Xs3n_ljOsO;Qf37NQIQKi_q(!Wq@2ShL+eGtg|Z{0r| zH|FOx{T)Al`TWKB(xv{m-ydHx=sPeTq|v}>&w7OVI$$jYUkF@I?Eeklaogk_RP=^9 zxK%*bzj>(DyZDVeId2M<5>GJaW#r5UOo8KNC1FrT$?P2Cfeq>rKS&UBd)i9+DVm-e^|KEt5w;-4M;MF3p({Qh@jhR+1sgvtpp&2_T) zVZ=>wr5xSDQJ{s3=VuZ&iKeDa-n>TCt)%16CssG~nR)1U{TjLsn4gMM>R?ot( zzLX|!_@IqElOwh{wE2FUL%*sxeomk`i=5<21}7VV(;w~@I9B$KdbtM$EMh>)3@&zY|{RICZsjiISI1 z&Xbcwuezdz$CnLr*2rDo#hT{5T5(nX)s~~pWy6Z~n;L$v-};Sw_DDAX7oR>UK6_9+ zD;_>vDh{luIu-zy|KP!=pM3J*!P29prEBzmu`{O~SMut{MrZTO&E>VVcgySRpD(Yj z{Xa(qzzbJ?$|Gl0?E$R~HV;n2Dmc*KVit?rqUAmcH~;_#=WqD61xcNV;b{SZFVtW3 zyYCB((XuryOP*2Mi{h|U$e#>P`l2_8saG}qCA;Aa`Z$HJq6=VB#t_pd1(q#SM5>yx zR!pS7%vM!6<+FuGRS5&Xq8#-5m&W7acx(}P+&9x_BZeN02KvLA3g`GM7zW(D_RX|c z$-e<-`1K&{UIP+9H>F5U;{#6LD^)WA&b|isn<0_Jk(LWWw(JGGDZ=k21_nt(v3xtj zYAgxXdT2w5Ed+0@*DUy|X2Fj;+Nry?Vb`{HFKk!CMntt@nhW)W8aj{lIC(jR+$>Qtc=MTR6WNAs`@3oo+qcL>HoxdHO_HQXJ;U zx>EaI6QCv}>q*)_<`#QVTf-k|>Aa4?|b=Mw)(064&JD+eYvX2HNO#0!w*PEH`Y zQ-ndc?tv%VmjWgM1g&`zzb|AVlPLjCTu68i9Dlc0trly;vfyiz34G`U9;f& zZ)aVjgjoq|BwaJX8K%N;#fhYAnAP6jPK_v=mhT#^mC3nUGoNFaZ^yctHZ|mK%Bw2| zck5SI^<($i%#_kUenTRahYRw)2idt$-A{^Y^pry7E_yj$uw?%2>9 z??;{b?bXhjT2QtB^zfhq7=nn;HRSM}F zN%yS?DryQzu+JVO!hi*_N!ih}5@oMqhEGMmj73r&Jz+l>Vgsi^`nkp33R6$sKh>32#QTSj~M8{uCRpGt`qLKtU zgqFMq35~KsC`a%hZNzkFDWe|x>eco7kA~n?4Z)joy|d}uyWT#u<`5N(vbhEl7q6i` zMr(4z#7nN3&jEi!xw*V)Zr?G~SDNXwyeF5R-MWA4+2Ug0O;2!c^RG{#_V(e|UoZar z$&)8F0vDPF8w7r+8SsW&*_bnV*>j!cjpdpQuU)MF^_I_7(6g3hg%piK7R7||@yUQ- zNU|s)Q$~j>q^QFREV-5Bo^j7G+Wmq9VfVx@x;<GKVb5AtU}0F@I=KQgdNukqY*{)zcg*LA&2zPX5WKCrC9jx8EchAk04Z3dX zE%BPP0Bzp0A-|lHepbC=7SHv2uP#gL0^VG{+F6#%4uLPr`?sz?xwp8ubnTi2-p@|| z^Z(ah7sbzi{%N7d&@})T*B;5c_cR1Qs{edz+*+G+o69SYJ9C?l*X8Epa{!)&5?Uq< zSo-41eXFmEBWKJpeM15uK*q?6$I{c}Ql9k&Lz91HkXL?K))&GWxZBh6tFkw|aG}QE z8XQUwWb$V}1;$^CP~|4r@}#)(MV&|@UJWi{fwMWt-WK*<1uU{zv}3<6Tcq^uPW2=0 z4f~q*Uh?>R$@Tzi*d6Fd4x@tZAr9=()xRnQf#x8;YL`Jz_@*kRcR@9?-bpIw>6XM( z5MafgrzV?UB58(XV3qp@iJc)`0fVK$AZ1(xZ)`YEl8chGElDPz(!j5S;QGY~qYVac z-n+M1|1nU!x#`r+n%SCHng~Ai)z)#C^Mn!}qg@a~vd8AYUIEOX+ts%E>0Jwk2 zGGLv;QRA;B!h_LpRQesTNTMba_$^~5M=r!dDzx^jOiX`M+mSjb0dB7hR#V-V=_yo+ zu0rPaBS?`HuvMS=DBy%FjLhpni?wd+8Gce*ZSJorgbBXD6?z>n%f529-x{E0d5=ycZVm$lB9D;px2cHIrO?C!mgrW5wT^KD12oJ1A$m9jW(04&q{ zkhBr$fWTWE&Nv#9vu&b|22wd1;FnZ`XZR{p4lK_q?qUSi;9H}xEn(sAmI9}2IB7Ho)dRf*lmp5ISrCjgWFMW0SsI?*HFK z@s$JM`|&ySL2=p-y$gO~8jUpzzWtlKcOO2G4;JqN% z!otBmekjKUIN-N0$tpNFgbt9wQ5*qfhIU?zj7bn(!l^Y$W`4%^OA~GPjjjku_D1Ef zr!@XvD0{uE;GRpX%BHMk6kSEXYgh{t_l-aT=m6Q3Bfu3a#+nL*$%@(IVYlmeZ*Mr> z>8V~%FMx+0e>L>#Nwk|m`(xzB&ncFcy_onM8E_52ReJ-Hz-sSFCmfL4kM?2mZP?)Q zADxN-r?0h}U&;(_iM1$!;M5CD&^gJ)vbT8`{79bi!iKMC2)kgp>YED9LfGwuJIe+~ zJFA_Q&6>il)|Yj%M8{~VHvOa6ye!RNdfB>;maiJvwIulR#^*Kqc2;ZtYp34Ji~7m! zSBu3pkHDwiAX%vO{oT`i$EBo#9dVjY?+3zs9|g|L@L17*Ha5)6*X&}mvUYa>2`L+DDG9B2c0 zvfC5Gf$Gj*_;6nJ`dCdIii}dR5QUX)=p>9%D~zyS7>y_%(om=Iix`OaZb9meW7hhw=}^lGQGYALXT;;YM@ ztD4W&^tA@mO`SL?FLyedni6kXy|cOh8kP;{TG!F?hTPE9_pX#1pX;%64c~hFyxwsH z*gT8rweMFMc%4oPOiv`f_80Eny(Vw}>Efq%<-_YW3%>Q_p}e+K|GD*9XLbyDF97_} zM<)<~7iIyx-iH+Fa6{GLOi;6!IsP_ylwvsp1!q7G2xuBf%QHHPu22k?@gf0LEEi-tj0P&31}DaHG}yqc zokB-jl7rw*$615dU1o=wU)LOVS>HjYCd4(4T33A8d^!Sb%&a{uY=+jr~B4;SUqgC}=u3ViL0`qX6O zdhs7%VFs|XH>_JI&d?!g0*6n*3NQN`Bu^&I2LWJcyN-x23&laVDM?%FSd4ewq9&)Zw-CY zR3ANw0rRIDf?fVLrcX_)Zr%?CR;{^k;S5&4Du5bz^JuFq7>i_a(A{so14ehX>Ic!Q zE-88gBe2;9*YLY){&ed1OFL5TXb+JFRA2H?W3ir0ORI4!cYjlHLI1PzlA`0KB&pnGZYSHoSDyVuYA zfMv+{loYW5sZ1gUCCCG@!X8+r(yYl$Se_mNTm=s7 ziI##Ir23-j*7#dO`CzK!Yi! zHX((kL!}FvgeJcle}}!{cx$)D-xn{ox3|Xqp-sNhwj)!(P``|NBMrX29Dhs9g5!J3 zDN;8CF(I+@=PHV?X!xYc)2H_2?`?4LPL@-rQ5!M!S>jbro+L>j7lST`!711#$s7r~ zuLmf0%IFPAAXpRKjz?jG)60h3&dC~q-vt=AwT2dx!PYF`Z@@G+bTplIdMv|`O_QPg zrTo19Q(vgj_x|Cs-@6CDi%J}r7ys&4i!}t?)>^asdQ$!1!QzrmAh~vWeZW$k8~~O` z0v$oPKt%S0d4NgWY#vS-IB*1BGGGp4Wt?G&_rx->T1afVm`-AR;^9{XDr^l9g}`#3Gbk%qpvIs+wMVA08G;-6AFyOuqY}wrB8;DeA5cpJbIry ziDRGDbUDw=Nuerb1M2Rb0Hc~;$Ovj~Gy-lH#HCRJH-n}dVf+CSPU+IIJP|hXXN|!1 zD{~`*!ky3MWwY0H4B8Bs-$^IBGVqHaSj(-}byJeL`we4DTE40&^5+|fL0r3bZ#Gla z!+oMZU{c4Q6t@A+2WHgK<4TwHqaq%mwlIjm8)#^0V2!y%cI z#@1f~kkQu~EH&Y!(7%Liswt@0}oW49dsb_WWyz37`C?il>t zwfGz9uR-Xp$-L56OC1N+qwRwff6H_mJYn`69n}m8M*q^F6bFL}CM99DOQVfgd5>~x zJTD5NHhCMj%!E>SyiBFgnFlH3&N*CX9z&nZv5M5u8_}0!AlSfX$E0@{MjYqY_1n*F zqNIk?jmsOC>sK9e2GH@ABTcaN%VmAj&)r{rt9v#67GK!s&9CB9=(A^MZ&nkid>ba=E@G2K~q_hCIq z_G`NfQhr+FuX&cd_dX!awSr`O)%g4Hi7^Tn=TVe1fo#d&Vpix`9102pKamE$yb$Ps z8kIO8gK*+JqAkI4iaoD99r$Zkz&88Y7?4a1rR=>B<@`@S>{-C1$O{M^>RWq}l?suJ z4v@OERWQbE5dD@&NuU3WDy6^Bpv-C+NsBBQ)3}e+=$rra!>u2*Rd8NZENFN&IPeWQlzUk2sup{%2jD3vuuS$XaR3aN zsW*$1%)Gye&nRcW=sl2PEzr7AvNv82Rl)CQLe}S+r|RCKWz!#M%M3dm!)Y}o?yPnU z$*tda@7_I&z*g(*#LnQx&xY`tng;Y}R#BDe7hk+D*m2jbqyNG{aE-xFO!M)n0pO`q zs^nol1Ud1m$s(wsgAw?ko8TjiHjB$~YjM>rph9BH1kTUx0NTI6`1g#M` zxJ!mTbz}a z?&i`P8#Pnike};U%g%!&uXc=>%8a7H`gvU%08XyZWP3&pwY1fUiKh?3Jt=3H1Oe|{@7akCPM#$2x>wt7n{z3AOtNGcnFEqJQCpn?i@d<> zb|IfdLq5VLok__QI)&ii40a#a*EM?nazk%z*Nx%V_>PPYx<=Yg=UolR_uk$6SgWu) z&I4@J&a3{5YSoq8K#hp_=_ckSyeAac{{0L8jt8d;fKSFLfSi0A85;^M1fRS@;E22c zO-3YI&l2;WC0^%}-+e5B4m)5(fYS@7mizkn=c>AC6FB^y71aD-5KTkW7Q_yF?ReKE zKszz8UHmc4FZwkkp2k__O5n6w0@rfLR#<5>}TMWxKs5n!oW+({EYS`wf_40}T{BuS7K9?g8vvI;XutE_GPdYqlmfGflG!vGrlG)TXHq(ZM!sNQhh!0S6`z5x8r`y)N83rVrNkTVlXOzYWw-3D zvDyxuwetD%ScDkVUO@g83VAsE_tuGr;Qa#dsT~&_+;K$KyZQTMwy2iwDki}v{s8_x zz@@*Fvw3O>#!D&y#E(gI^y!pDd;N0_!9tiE$|^kP>vkaJ;G}gE>({IrZ!FPNM2!^y z*sVGRBGVb;^O(tD5llp7!mWe;*~p%|u{EI-Fns>f!SC+&ix=ZQ!e1S^VF%B@HNK-R zsU9@I+HFDBGRUtc;IBwe72@@Zz9?S-Oh(ar_W-vdF8}FiFe}>ErU_M9eum6sSS$`_ zzzc*Br*O<}mGS+(bD3BWff52`4T9;V=gq6MN1%Q(ReH^ zv+9P^y@B*nXoCTjU)q*;R9ZP0;nQtdOGNun+N5$-_ip-JmXIZPP&rjZ zU;@C9+K_q$>dF<^CM#F)10~-R| z4f$8C^JO2;QI=&nO$CEMNnIjIyN)jqt-y+~*u6@in*g_YgG>cj0Fa)o0_1_tsg60D zM5hxe$a6SAN_JUH%SAIM6P{^D;Pu@|5rx6AT#vCe?%Fl+=NsPMyYYFr#}0Hle(wts z-I1gy{NAI;IRGC_4kqclBobxCQ0NH&3UET$FEC-UWcD1N6r$KUsbwLJ4SFJ1@3O07nhMy-|(2S_G}rCr3RG#ocZ>FdAz z@DA(e{oFJ;Sc8$>5<4=zY8T1)bbd9CwapzYhOGQ^06rCua^Ym6aAyCN67%0;x*`V6 zs*XDn3sNgm&|Bplq$mw56KfGLhqP)5M`Ru9aX4SYs;^XyzXpo^GT1%+S77(B<&9EM zR_4fOR(}+1IyLzI;&1-ODTQ?mR;0kKie(^egkAh8kY+%Gny7(}n`pfN?$)5FyAQ=+ zICj%#{p$Jlmf^pe0ryPd(P-H3d+qbUMR4d#c>z)mzxE$s3ieCFC>u{H{2Ri5aSPGj zL$G)X%rojV`8gxNi3mDd(?XI^skFR=rNt=*Lms%nqkO}N8o~}ZTwBH4;8mL({mvB& zr{-hO_F#j&9&9~=$9oLVF`cRkzRanVt?xSkFYKQno}?A-48d21tY_p&Du@Xf-EhJj zSwESdxYaM9Q*}v(&(y5Q#%4)6zYYzkNu$!?;qRS0@-Xn%0Io9l>%ND|BCnr7t4M!= z$2s8vvlKWZdHDTz-+ezUJqa#_XpvQA4A{x0+J#@!)(`p>uzqK+C$_eB4E%Zk-qr>r z-N7)@%?mZ{9rgPomwq*}8fcRN-D`*5(1IkUKbmF%O~IQvuT^^`z^Xk2dZN8JgJdZs zx0WTpNpZ|vC{g5;I8V^x8jvypG%KpkVr7$QxcBW!Y$bA>*rY`3$_Cxr5aYElp0kP6 z@}v2xpgQQ89#76109UgD;C+r97S!NmP~dFPj4Vef5vKgLjSEj?z{iBjsAFNm*qr0f zfTYhTw(>~E&&8dO4(rSK79{nd%cP`LJPM7UgA6FuJh^$Z-jWJc*0@>z;``sPkJml7 z9aho&+X}sY{O$6ZMH2iB(;~5;{MXzUs7pV5@y$2euUyk(=I4uS29=%vvc9D(1dC}}$^tL>RFG9apeFM$cNJ>%g^r&whgU#uPQPk>ehg>= zeN6oK-PdOofY15}I#pdsNlz`X4l6=$ixhgQ9q^G0sUs~1a%zj|nMVCj*TlzHz6VWc_veXQw){YUh9Xod)3F{g(SUCpFB|!sn>J-2-U?zH zOd35MtY%pt5S|O)uN;ns<6oaP_&XU0>M;NqwT(trafAzFA- z=R_Xofvvz%jfLi1r#h1|)GpW&bX5VxFpIyykTR4mi58%~a>xPjFZiaT1`q`Tzz&2J zjl!Ca{)!-M^00TQ2HYS15TWnu-CZMrHVIfpcjbBrodDVp;NN=u?HLht`vjWD<}z>p z6|sa-G!tM@nGiZkpq1A%?{NdH(=-&@q8UDj@;;Ka@5tcy1UEkX=)J_xSuBC$_*u## z7ePm0mM1laqlJ*C_FtL*MpH#6Q0#`>NsMB%PI&^fe`6HTXb4@yuV`rBg+%{s0a!Q= zT$ZnE{Qd5A2(%JS@C(#|6cpGtE>hUdEi1cjQB#L@KZkX_{;uBo{xB?lHT-Uy2x!B9 zP5FXRVU7I8*H52a5pX;F3LpHH!LDLQ&`Ob@kt%onW+5ZsoJdplAWgL!rYRfvr&whW zEpuaTrdCe3zufkg?u9|}3>X-hRn~Br_94;xOVJm9?bV!HLlkELMc#&jCh~xaa|6=* z3&0i30=u0AEBqiKzKb@+UU=oP`1FKv-~_9z{D>HUQ^^%VX!4|hKkf9_5-Nwn*eE1! zl=%{tAcIG_5>?RKvG3^h?|i>K5U4d+q}f?*Zr&(e7KuO$nj)VG{u21z8jrWP%)(b6 zF8a#j@6Nby>92<0kyBp%V?%kP4OG)Xh8*qGnqTYB0@5VRQ_lsYYp$aKC^a8oBC^f=+ zWnI~;DKIF6<7$GBn2N82>JGQY{ThLvZ|TGh@BQ7~)f~8{zdPgM$XI{_{zmz;Ltxv4 z)Q++Z9}i4C-4LtB?RMx)0F*}-nvn1gSeb0+J$rx^ojH4ZFZv_}Xhy>sXyqmR!S z@R=K2M=Mga{|3gJ6f#H>g*DYWxHu_VtW3t4Xfgn$btL8`$c;^Sd?!yY`PGm8&K;;S zev2TuVFOzZ`hTN^!y;&~d^BZ=qBJP$t0;cXat`rH9QRIzZzwq;9o=&DtB0ie~a$9eTx4@MUvhf})15SG#n1MI% zS7zkd>CD|+U z-;W2;0~-LQj8RV>iK?VmP@y};1lZxP4uFgZthyAdFWi8J49duVd%f{^Fd9GK-P+!b z0Bq|QcDA>-EdKWUVf<`yc;I`GjQpzG7;NR)h; zex=$m@*Ng3OaRHGaE24*yJuGgeHh0D*f&HUOq4AT{Apf95Vy&Q02hQ1htYG9n1lB# zgD$FSk9SfGesZ(eC+h|3KSE3b&rT3v*|Ng`$`Ch%Wfdo-#MwZHp(Jhqc(J%_g2 z-x_|mxBA0?zd8X+M`4u)eq#iONrP@&0higLSFv%=isG;0&OajTI-=TCy+B)irWJcxPAxJI0ztf!$4lgo6e&%gyp(`8wb5vm2irRS#&h8JKeNBIOFS(TavhNkEDGu zOb8EY^SgKsz%xZk!6WcO_0wYNI2d?qAClcSJd-9FFb$*~UMQhP@ui-q2rM z<8PbtS+z>8!m>Bc1_aT7Ly~clkllEhn-NdwF=|eBb_AFN$>hNsJUwi1;S#G~7V^yF zV_F@Y4|=6+r~uAp$yxFiyH#e|m|Ebsp#U*_q&N?NJ~0gV0K@AGM~%Fa9+ud9g9~{RBQT^{6QKA)q|oAPq|jZC>~ah^G5*x>**6Z~t(|Shez!IC z-8J~zxAfQIuMWW)I^U6%U)e9->$y`4K2k%W_ap2t@xO#%jZ>g9jX8;VRteMP`7i86 z0!=r+6A+swZKNQ^Kx}i(QJyl%0VLnk0NiXl-TyYqvvPn>(4YHaO}C`+AYn)M9s}^B zqXgiE`5zokg2!>?g2;3fjou$;Vyq)kQ0;f{4J`IT8ozQ_iGZkbHM9knQWpi4D5TM{K3cE`3D&4QUn4U)87HtQQRq%8acIEbQgnv~ zf4A!61!ccGJ7cH5GWAC~1A46GSHB$u3f$EL@LsPBNzVv-RgSqtZB+_f=Ok#?Z~R^% z<~*ycXHcQS1*S((HZ%*WXB&Gx?_8{ip| zKoH5bCqd(An-_QE=Y^s;kH0!H1`O(S0PEE7n?yio=W;R_lhD;jpXF&j7)LOKl0oJs zz^J#pN$GS`UlEK;Y)FPDTn;fR3X%#H-#VniNaHWfvoVX1%CQJ8TLd*j=*dCSc`k@O z8|Z18yR)^k^};~!uG|0C$Ck%mz5LaTx3Br{ZwHS4jtl_zLI*?HX7i1CBlLz|1WibA znlu?3k4R;2xT2cc0i|kaRcIl=N^-Mnm1mv?oKo4EmC+zKW^O>bX-!p5`i}zHAaUlZ zk0jS<#`mc-bUCD(q&t9bPrm^Uaab~{uH+3NkpU@_Naax*z-(eE=j7`Zcnfhp|AkB|l{tDLjotumtt|PL z!~Ba#b^?yFuL?W^oWXPP_1lN?6#ws!8dJo@e{(8T&?g9q6EG&qEbKgIWX{F0=UeTw zr-24QXVwPJg%oO$&II~aK5fb4Lq#h903hZOqmNQ$FK50HD#maqZt@H*ZG6_nq!rKx zfQMp|b2u45mkxl(TbIT)-`#c@Sk8*Hy))i&_-i<@c@+bowf9N%Yy(4#7!f34!+vX_ z04lO?lG=e!8uHK$tgm9CB6FZsEq%U|CD1I3jv{`kqj&)IZZaCF%o5a?@=O?TN?4&? zSSD``y1gmJ#&njG|n)^U)D7cYszU zR)KVV1yN5;4BFVf2-p?y~!`|c)!W@8gv5^>h{=4(~m6u{|YZY`aK=05N z5h4mKhC@SSO$bM~WYahB{Mr8-lthN5vfxSVdJY*JMDk4KS85WQO=rn_C`yuOiQ+S_ zzzkebgD)4;$S!WPo+DZX+_-RMmDO465^xNd&)DFn&m8LW@tKsq7a?jgR-hNGX7ywp z|Ls5hxJKYVI!h|(!<0Z*M-gSI8f4sYzmfh}1w@tztYy$+6{m;lPIzY${4;I5<=GfN zSCy0i4JCMqZ6%Gr5Gvunj{gPbD?~bZZD+oaCR%kJ0E_k<4nZ;7@!$HmwDY27yyKni z8h>BCdcA9MptTEFgKmH5j@~E~Fc>3}7!35cqE%Q;J75)zMrC6y16M+Uk~fjqO0~2m zv@Ud$(XyIC1ua7zHpw#gzZ42me;zk)<|47!cq}O!L|3_DN-|AHY+j}05gAy?b0#5U zVzE*?6&(VE=R7^NSYuzskzrYp(W~wV_aPk7zgvbR$vkcgMIIiSmltQ2UXZF9-`1^-vgaI$?6;Ail zk#HQ_-z3RYk_%XTPrw?rBo(uU%mS(-rp6dWC)GJ*j$k+obqpctiq!3f4^<(H5=beM zKyv3qlH@X?q7jxvO+rf%5^$N$9021WEZ>5d;qP!T7@54uomVekzItUS@axyx+61gC zfFu6e=0W}Xw?=|he|EQ*uYYN!V3xnZ$+TFrRgyAEiWWFHRg*Yyy97G=Y3 z0|4vs^LVGPYk)lhTlzZ+0_bkpjJ>U>OA8tlO5lVf`YKO<<~O;jh1YT=3ocHaU`pjiMG?K|L}SpnB9xW?Mo zFU?T{@a|4ces^}ZYznlWKf3_RQEWfT@Rz(JHb#^UA_7W8W%w7DY*xL$#whri}$2#DS}p5P&&fy{%S5%lIttRhFWV^(VE2LMyKf`Qd% zF;xyE!a|-Y0FEH+nXlDpc{?y)LPR1LeKu4%$b7pg@`6f}p&1Nz0NicDUy*yE`~tX! z*TJwRz^`AvF#!B}TSs7RX#nm=0ak1uH1^+2N@e)8PvimUJRTNi=dG zvGeDM*3`3f%qnPT2VTgBa*%~W<0;;hVN>!nQDCGM@)WpoZ%r6h!weWFP&$TK=FS^h z$dLGwlKHf!v|SrX*_K9`gh6@*w1(FjZpYhiE&jgJ>MNZMt*ej>0*_1uQV5{bI9sNY zs#43Lbv06%tFW3j#3EOqL0JN|BQ=6+g8`|T|3PP{2;Ro|)jQq+J zh9&7gLI4~k(ZT*pa$r&cRzajxa8R%Xm=*9AAIujaWFraGU`1JNwGI0qy~Rf#$Wt|i zwk$W2vZ^9dXjWM?C@b7MAUN`?DES3sO=8*(J^mWp>y{a>Oz~GS_&XZf4e*;cZw&s{ z{MW=$8vG3l;J|><=-Hrd8Q5=W{vBguA?1XLbS8ZE zexp!y&DSfS214NSq7qLKx9?3qfo(tlJ^?y~(5#7x=jYJUrT~q_OWZ;_nRo^Dm6Qx! zIX_OS4e1o{-(=w%jJ-$%9m|2qB1Es}YEeR=RLH!1fNx=dhOB5zL%UwlC9nxt@C+Cc;7gar zJG(F6y!qzM%U7>=ceb`)y&i9En+>pY0c!$m`WSTbq}~6bC}|7Hn*VBiR%y`!&i+Ct z2%!d9r0JQJ{}!dhG&liY)nGx2fU6`QGKnZ~B&$*552@@q6GSHg&ib-SFc(~RA-nHw zSQWEvzgz+|?@8h$RQwnm+M=-d3`*889BUXPPP>xF2f!aMofZI|C1;)Pz7!nQS2|p1 zrtQE)mW3tJZ2fQ1FoHe-DI7%sdj@%EN`Q{h1=Ek9i_?U^_KCl8PySUpQ17ICU8H1;l7*uTpxNA4Smf(&x{nY^cdV6c<)!WxPl4EQDxZl@Jz(#zf zaoDsEnn`o%11JOfcFlsAl|iehI}5HWA(#>dV#AX2HzbXr#O1#XuF?!EL3;&N^R6S> zegU#GNp4dLl6UI(=v65ZBnKrmTgeN2%0((p2EIBe(@tg$!~BMs?H5d3!%fvk5>l%~ z2uZ+Zq+>b$zd!zar;Y)i_LKNE8@)jQ`Q)WzH4K%R z-%EN9oNH82V=$b_!&6{R0$sUS=oSu4vYFY@b2>w&6%0V}S0x-c%BJ+YNB9*RyZB*8Xb|xZ5ky_}R#_N+fxX5n%Dbh6zCU zc>Y-ZH(Pvop-_zXm+dQ3m=Bx3=EqN^0%)m}WOl&u#}$`|4qwy(s|048MS!;3Aju-fCFDDGc4&Wpc;TVq1C+8#RnaaEL|LT?a-}%#O z;pk5uI3-1qRBZ_w0nz=7MeBjoN}Vg8;zP)#c)>9Hzaa+0d$2RxT;(| za69@kW7qoggqJ@}=miSuCcZV-WLd^^crCp2gP1E>Ik%_-i*oc&@16ViIGBQy+_^HDT<2PcANT6meSh3C&M1j{hsn)H72pWeKAYw-8w?)Izg z@s=|I+v&6ELmHV0bJse6yOs@yHyVK51lkU!MU40osFWhSVnk?=)&R$>?N~|}Nw1{g zRvGT*^+)O487EHS_UcST#iT3)oz*JdFO+Xmvv^5Xi`8NR%2vi8d511E!)Q|o2$O@! z&*0;o6ex%zUD2H%=OV1xAhJw{&qV~?Fo+JOBNwf)2e>^pWG=q{eox>#S$++^zVL{N zsXRiA_XWTagU#hCq!+7-RZ?XeS*Ct~YMqn(s|>2MR13l5FCIWU4m;2Zlm>qzt$NXdk)zc5lqI7_kuA){fNd z{$&y?lPz$Ab@Tj~ApoE0f7_Vx9QVEWXG$jRg9V8|jghF)A$;=jm)YO$M|=$_Bp>-) zc=|6XXGO9ri0s#cuuX%m>cg^Mn2P?A(K5qxK{YdAg21TrfnPWW^N{AhBS(PC;oEP% zdGl5uuk--A#@`)_zkO>xvN)}^Sf!R>Y4{zCoH1$CB_Ld)ge;buY)EMdFz|nf zhDsr2gHE#Ck z`N=ic>ckc@0qKt+3*h1$gwGl9OwKJNMp(S?jrmsyY75eVR1}lexy4aH>r~iZ?Dca1 zGUx_k5DsN-C-5lld@zd#R@uZ2qJh?^t6!Af1UH94<~I^JBeSY=!^=qAkr3tXsVEO5@MPM^yc5#$Ml%?0n28TWTIsm4VW)ZVE zl|cG4P%QpN_*Hz8WP{15g#gDO4*%lu7n)YTsrI{ubGviDS3%;85hB^itMp>~4-1<&TaPu2{G=GPa zRjEXM#UgOr6+3|J4O|HHa4;yh-oAPBvi__2uf|`ifgTTa|8D@`5uQ8$c3??xx2Jir zP^EDSYj`&NI`REt*_l9E=t$~)wFO|-YhFZ|fiI!OO%#|Rz%lnZ7IX#MF4MKZXFz7c z!`#%%T6i0zT^UABG!G@~V1`<=QZMGCd{_uKG;h#%k#g44(7$j-7;yb$bBq8CaOen( z$0@N{T9T;KSkw?|7fAZ#)H7!etBV5zaC=G7p|I@PB}yJ1iqF7qT*W8#$}N8_2!r9k z7LBVGs3if-Wc>-KX)wd(J0A&ls-2}wKyjUYrOyS5B&?0j_r>vLIUl1anKXddp zt2`oA3o<)7lu;{4W3BRHUfwB`ra!W#;p`?9Nr9!*9782WV=^&jM%`SVGe5OvPYl@Y zbo$VXfk>;?9Hd(MD96SgFez#5V@{k4UJ70Py+{%93%HFpcP0&sY@ zb`h0s1U+&LSd`Co42Q{~tog5wp|k^Na@gUswFK7$__vnt3LD4~XWwPdbq!+IZ_-4O z?|$R?2e3=vbOxQGt>P+=xByBL=$seOXVQo~kU4KYpyf$SC?zwLX7eW*tum7uo#J7m zODT6dNiNumm0knu42};y%3q=Y`usRD1`N|M;G?lO9prysPX0*dY(rIpMdm`6tPQx4 z5g(KG>IzH&wb14`f`)u(U#BYH7t~d532Z1Y*fF%Bzyx%mMF`!}v!J+;sFWcKzUMC^ zz#f0QF1o7cXV8Ok=Z&VnFJHehO@!Mu0*|)>{`MUK9@_n{rND!rcs6Kj^FLxQLy`rp z!Ug(G172_^_)G1)icFKqI+vxuirEy9)58#0l~f-=qCZXyI?!m)&G;xEkC8LdhM4H4 zEiMCxkQ_fXx*4X#X&Q#V$NMtz%?jj;gflrB3oEUzSr63Zoqp3zzc^?QPn9`LDS$# z+{F-gzbN@iB1nz{X9TaskAFBnL3wo?RJb+ts@l^h0$Kpepl;doQn$wa(}29PK-pK) z6JVPQt!yb0??4h#X7CAV?~(rqPyev?PrGsB9dxIlGWdi?C(RJxx*8zNNq8&iM%1VA|6j~^A;u3bC88Z0ko)-TP(E=k(AI996fOWon|>R z$<=w;AT&l-Ch}@7l`A|xWXGhjMMtXOnHGMFpI-RnkM{am|Kj)l=!gLLWWz5U3Hruj z-z@7YxosAGRgjf$QJ^$Rv~-=uU^`PLTnJhRPZ{M-4NrQprUxDJ1C>bSmlE19{de-MOn<~N@Nb4)(w{Lg0U%q|4v#Slj z4u6OJvHmmm2;7SRJRFuL09rArRzj5}$HH$Y)z~PJ+K?3C!K6l^kpSmca9}hlJc>V> z*+w@JFD2OZ^*>>GdFBsTmO5r3m4n1W&N`(ZJ4=h19% zxVQ-i0$|whZO?8AQd2BthO0ZD#uYwzmg~mVz z(D5HGNS{OhkzxpNB7Dv$u%acvp>{A89pyw)a$qbu>kun8<~=}=n}(R~zf7qm*)xRv zQhGW7tR5^~bT>$%nPw)40ay&--Jb>cNEXL`{^xuDoWK3s!yiE}yw@N+3890{jbd@6 z$7majm@l&tE_%QF!BjKnSx$kI(*S^iCiTSMOE}mxI))1c5%l|I|24@QM*m#dHY853 zoVF6NG&oreGn_a<_GIrHD*#dWMzSO>@iFM{zIwI&`t7UjZLPlY5tIafbs)6%B5BuA zSI1Atx1VzJoUn zg>3Nw0jFASPOb#LIyk+Qc$=BFBVZG>njSHulZF_hcgAf;O~)Thy1}E9Bf>h3BklaO zP9pg;9x;0eE@BKv1HlE(L3i}EM@<9c8Z`D-$S~#p_v|uYUj?l7&uIJ%(SuaUHVhU? z8*Y>OO5CWi?GAH4qzFlO9Hpttq@aN!aIX}@t!+(xb@qnF-|cOm0ByIwV|P_I0UH^# z(O~H?t(dYAHO{IWs9v{BC*fp!jT}}&Ji3JizOgV%1HtDF9H(wFDM9NnI_oT!F^MQi%0CC-Juu*f zlcK^p$c}eE;|q{&n_wACMl2pjz{P)MtYb*kSj7Zg)$sr_9T`^!fDgJ7e!s{sf?zXt zu6zb`1(v`${FU=R1vY#`kgLGRoiY6tC8+s%!B9!efJ@Q6IT!%4+zOP)Oz~HggPs`Z z+QIto>v8?6hF`bwHR&4$eYb2Lr4>SJ5^R~Tw*MlRQTRp%HkiZPkuw4eX%;7_B!Rm1;_NhER0WXbeW_8)@-iZp#JgIm+4#`D6<^wau@CSofL_Y;R-_Yi$0iSqe83TuBO=p!%#ALg8R7XR%M+m4!kp2!$F{P-~$ zS4I2*ZAaJQILUBg`K`|B??JY}l`wN?<j;~n?zQBNRGF{d%3_$#RBnH@$a z)}z3G-O^VnXeYq#id0hN6xiajjNM11|EQs{uOXa5wv$W9hrg0r{x%7m8=83?05^z{ zvrNhfNmsyEIOH*1kh!0*`A4BEc=_k~fJY zFQ)5a;3)8MK{CKT81H)zz*X!e4Ekrg16HVq0VIdMg4&2^G8W);kf(0xT4H(lql~km#mlQ`-?!;UGENRg%X+zgmGv#*saNUztBt#q_nKX21(kh_x^) zFgs;POyXNY@`g+?I82$t)`JX}3m!>}iP(DtmB5oiClk}(q}yJBwtIm0@Nn4c0NK<5 z8~iOB8x#alFe}wqe*|erN1j6I1D-7aH+(dO-`@QEjT^mkYz#-5`0D6MQoNwK@Yo8X z`-TT=WFD2N);giLJ{l{uASK^l95_?`a}YpBEwsGh@lmjra9p=WNzF>3e1LT@Nr(i1U++5%%)>eTrQ40`$}Gc z;;bA8?E}7Y7T}kt=Yy&$jHIQMskokafU^q>FK!~e`zO8&#h&KHKl$+t6Qq&SnahGc z)A3gg9weK)5egYh5@p4cS5%0b`iQ*NN+}mwkuFWa&9t*=wU3vy@Qb*$P#OC*tqEmM zv){p>XM|RI@7v#@_&XYoO$5i50q8ALOlXpzOKdPoYmStn^$Tgt7c?+=i^#Gpr9!S> z`QeSi;cr|2k!n_H#T!aOfL#wTo7tQjd~!IZ^tBMG$Ri;e>kyccF=O_n)?UVH#7Lm| z@1-%$3mPEL4*PiymUdGR7pA=W54Y(nL17}7C*|5l*z@o|S3$!#ihHP1k zHT;)+4GM_?esA6=%lR69O$zkzQjNbmR%k`xciguUteu($Z|ztDJm?LqcqZ4&X>f% zjhZFXH=J={20@e42xzZr;QNWu*TEv_vxUI7W_oYyav}p>c%Q>KWYkv4q-Ft)ps~>x z6(1Eeaic(H;C)zu_CSP-o8SFpVK21x=1rJU+(z-i1n6(WTX|*&&)p6vT7ZWJe>K>8@V(@x&-yUP zyJds1bZ@YY&FaRKXMv+JQ35783xIU+oGGJ`1BvevRLl-|G6D8?6_r=6C$p)jh-u@4 z+&QaQ4w?y`fy=dI*lxp2x-EC3p)Z)b#5$ZMH^2r?TgInb7g6+b#xVHWKm2e0{jrI# z-a{xRWH-ybB75Gj9hNk+GWH+g{$HN@&Zc}2{;Znu4tQz+zH+l@!*O{3R=^g1T^NU1 z{^}7l5574K#y|xO{3fxDz^b{N{+Z~xXgYN1-&7y|w5GAWfyUn(gJC(`-tzV$vi!9Q zEGvQD+S%6XtlnT~J-|L>!#{XHmS)t*AUOSV)@Y2aMx>7rl_Bxi3e!<92f@N(=6Cbp;h|0l_1}Y5V_Eqje*9szX|p> zlpD3Y(Bv!B0_@8%BLFuklYmoQF~X%hMY26KvN7|b=?%xifo^1>$w&-M?3bs&nO_N- zGQ46G781;yP7Gc=0+?-Qz&M3+VXxSAW_G}s++q(f>Sc(jYZAY3zTak@)$vAP9X#a< zrui^CXr2y$PaR5EQaZSWNPpeI*mV-Y77N z-te5)Lo*X}#c|>sL~|r&+X}d}#|Dv9EBs2yRUHCT)4+E`G^clPBs?DiK%+I;4+sxy z1TEhKZ5Lv|4E&zeakNATD~rU8B&jnA39E?L2sx3c{OV9(_rP%-M@X0V4WzS!-y;KZ zt=a|K0t{~Q>_eb+Ff?7$Dq_z~aapkO8$e?#5+sX*UkkuOqy-Il292Vhwf=c99Q1}p zS`}h9+@VdseY5`E-rnBT(Udhxk47~Ewo71_p(RMYuZWqNLM7>%3ZpGmV)@1eMN%^W zNVCEoC@{x=efky97Qu#Os~lJ&WW>P7pCph8ttyvi z8vY82)mJjN0MFEQbfq{9dc3##qY10uSgFK@@9vwq%Bqt4Sjrxa{Wn}O(`Re{HBemq z?00%nHN;<$91hxsgdp@rK97bZB-#s(b^J!x7?BcBP!MR90XQuL*YGWND-3vN@a%X$T%%(>pZ%!I%{@W|D3n@GTq{j+p6e2%&fF$;rRxhL@=v;iY2mYH- zVDh?w0rQ=FGUbaY-QjKT+UX?FbO#)>Hg)A|7`ca`cjtuOreSRgfJOq)K<`t zp6m+|>Q~)fx7X7s9K)#uY5&#WtHo132Wv1I44=Pz^K!@JTWJ8+VrT34HCOxn;h=s! z8U*}B>t8p5HbQ91fWvu)NSDA#7Bo=)3y{9zlQ#Azfe!eK+pj6Wa4X=Z5Dnf?OW~5O z1qRvR`;`s-!d$)v`5O748n_8GG?W?vThhRhaAf>N5KM}Y&X0YGuv`Z8!XY8=;RCST z$7e`RZRcZ6iNddt$Z|yey+sPf9NJC{f}R0BA6KDLVt)kI0(^$;M}GcnSg#MjGFWUy zSgNT4I2S+@KQIJqPJ=27Q2s{1-yUs2q7WPiunD0w6KM6~&6_tbcXzh5!)R+Ov<^B! z)<~ECTKpY3{WIPo3$KGFKr2x6mQC~m&h{G|%@l)iYL%iYtUXX*xgc}sMlHapuU0ZZ zmg$d~33HYY#dO*?b`mxvfUp+fhM+4Ba~UajB5h{fQS7iBl2dutHxV+RXZ!^JehRsM zw2&`!;@FKSw!$u85^g0)C^Y5DjmaC66S00gzaUTL0r+VEND8G)(N`V< zEk17YYw@>=$X+7Jw=K68QCqS>vysEswVP z&o%yT@9bE!uRDe#2frpGE8=eoz(j>bCD%$cloW=u3J<_>0IVMd z3T)E10EZ=T;^J-0Zpfi@&3h!C$lg9cb}1fnVIo zfKb0g>+Z1s1rh^IHCR0Qwyt%XR=^AMzdyeau1Wj@n8|p7D;nUEEmAQPBVcOu+_GIn zoF}-+Sj2dcGVbgXsiBgE9ESS8wJP)*xl&wT~zU{KxRFb$r<&Rk)@w{$_2YNRbiW&iD~-PgmdS35heca8MQ zxsc2;u>5yqrO(EHRFh^Mfi*}(Sfv{`3*7Nk4$7932Reb~k~dVF^=J|Wmg<6%VFgSQ zD50fO5E{$;WFo+loK%UMCucF0z)qOiFT^wvajs(YBxBxHeDuMUBL6;`{7c!L7Rlo# z-*Zvm1zizC6OLGfb%x3a|HzG?-3}NngU=xP26F2Gwg~ls1qI;P{~Nu*>7cowY`2h{ z3i|9GKt|7w;fA;Jl*p;}$9zfqkrq5FM~4Fv8zD5;?<;Z(uuzFFiG^LJd%+hV3Gv(i zsh5Xj1wa%YfK3UZ8jNfDI~u=y`Fh*nZhvRkA6v8?*>Q8vrXVHSlz6-uD53v-k~?!ND7W<>}|WZtLrN7cBj)LJI>p50b^-2$~}I=8~DT zpyU-))?rWGz`_$}v-IuuOUafFyE(O8{Tf^pWv{P+cKhY4-EA$n8VxP@_D7?BSpE+5 zj(CLeSHHhUMbHLlBkK<7&z5F~ZxDDDZf(tksELa97|!z-8sliZkIrrPI7HZ=+E z39k4sP;HOD27^TnxV=lypFgkp@7M-l4TdHL+OB|Y*rWmA!NAR*Z8?J;KlifzZ#q&B z@f>^?vR(P&@qCKA)07)cVFZ?F;= z`UELS*Mtm0DUi8cm|uL8$A;_8jhYKB-iYe-sCK^#A6__3)No$~hX0YNBitYTU-;mI z6Zo%n;Yzjxj$j-2yf$VEE3QbRV1WZCa}K-*>@3bO4Nh=Yp18t=nWkgu3}_oXNn)TY zQg|!UCO#S(MT-an1Os2-0F*sO0aULCz>BTT7bpiM3gZy{ok4GFcYAx+L_picZ+~ps z7e+>VW%1WgU>CwM@;=})SpW+`!50-HV!b!yJK&H2jZ&|so;Oe6zajitav01+H}V21 zCihu3b}~SgT*YK)WSit%X$)A33{1{k7!3pS#FERb^0Gu;eHEVz!*diAML`8G*p_*I zq{qkmA3+E98@<2_dp)^1nE*`cD&rYmy3>WK!28>@bRkKbOm$bqNrcs-e@xIAL`k9d z*r@OUzHr65VXByes<%}pWu0N77{VHGj0*k|tr(rO?ND~~yIo;*k?i09AQYJkNLLqZ? zH3|R0+h1n~rU5}o@Q8l^-iH|+9YtolM6tXwmal|MS`+Lg3>2-tXxzd9_iz1P&Z376GSbA5 zLG+zFCUZmi;WJd0`c`583ymopN#aJ*#}JzZnN$wKfFl4K9drZUtAM=1M@ROD=n?qztGr_geSqJ64YQ7=hBe^+s9mf@Dbky9L3L4 z&42YDuv;ExSua2H{9Y~t?4!z8I5E-yxzP+Bl&?`0d)v(+%N@~l0 z9S6o8NM(sqIf#y|ER)f*%7Q2N(7n(qftG-s>4aKlxs1SUMS)|$z;05h0*dK9U>I?_ zR)#!Y4(JZJNbR>pq8yF76(BRaC_Lo`e?W$Q$=4`w*UZ$3cwM54FqpJ-+uM#)vjq>*x52WV5_`x z;Tv%P?R3z?-la<#cHQUO6b=i(_&W&?AZ&-@T%B8OXElSWQ3$Q}M1kYaS^QCC&J#1! z58r;vx`25g2dj2Sg8DD=g;?@L1sJdcv5lEQc>V`8(;)75khFl+h|f+jcD z4D`jzSG&)5w@l&SR!x5|S^OQ?6|c>jj2mD*d+zox;p~l`&y=pedTCzhcDw8Q8FKS8 zG9lrrU&U1)9hd^kxc`+T=?PfXF=PdUY%e{xKyKDf=S@efp_kEBdoBub^js7qzaTEk zys9*OPEsj@*S2_&j8M8ja;vm^CfqcwP(S6zg8ZHNh2w_de;)uirM+h=kTMFO_o`Pa zxLwNBC_Y;N{zu>aWUrkK1$_7Y!jbV`MB$4KEuDb?9>rvkfo=ctiY^nxr+LZ<1p|Jti z*GdoNBJy7!#HGj(I!dG|H5RI2{EYtv6)%L|8wC!k>X1JPB(*#bbCwM~^h^>4w9c4; zX++9QPQaLQGgJMYJ3&rGJIT@3w?J_Q63vSvbHx#VNQ7EMWF_hMGRUtAS>VXPy$zgC z4Lr}E3?r?N>Os(FV>7obMU*7z*V;kt1Pa z?~Cr>pgZWG)9(RpbZh<3IoGUWQ6ecysa#vLdZ2y~&cCFj*zkdJj=Fb! zAJsYw#1_VCjEtPaA^C{W2lemYgDPTXlAFuyKSrT3F`7v$G=;_*D%87*k`Po*NKlH5 zolOn2J66CfCF`6yaCb%k%=(bJS5}W?@;Aq9B;^w4XM$k$_#JQJ?*_HGu1vJ;8#K>;%fBSy_ z-KTHdg#B+ST}TBB!^br(5@9(orrm=fP`b$)?1pZ!L*TTvY>E!0MG*t8g=+e2D&Vzy zQ{epV#v2xJLx3kr< z7A<`XD^|49EsvHH1RKTMSn1`RFSDk&l$T?t{yF^lzj7U6LS9UPpACcIfWTWENP8h) zy+nBi{Qda!gvwKJ;NdmzV^2Df(#s%DA}S+6v@M=Yusq9vtiG>@(S6K<68goNNX zo0)X>6$?V`7y_MbQpkk_mTi13)nA#&WbH&G#{>l?&D?ADglYrQ4!5EGEWw(t~3}ntUCs=Swm|R@K`zlv>_3J)#z}x<|^jlE$}+$ z_%EgYU#0%P0f0LJdY_rHemv;Csl92eLTW;#fjZjjJ33kxM}L-0g>|_K_-BeVRt9OW z;)>Xa!)G}+`iud%WdO42iV7}Qc#bjxNsU6 z1}4JFf@njbHjSurLXl9MWS$Fy&HntCUzbV<0Taqb=%<1U(_R<0XXe=8~WJp^81Ff zeZa0G#DKX4sbamhXsKpXU|j#pCcR>+hGgOe*)z;CI7S9X}%g#K6I7$Iz0 z_bQ0{tu!iP&c`x+Lz=0P88DGgA+-w{9+wCrtaVl;b5bd^FIGl;C^JX@tWa0*D?k3@ zQ1Cm(fRPmIBnWwe$9WX}RAZW~s*d5TCdBYK*1Q+#g=!v+vhQ=^WKN(g;ERHKaVQ7t z3qDH`^q2{$k6pk$5D10}gGqn}8t(c_t4)hdN{IjJRqR`+(Ux76@z(`bwe0}Ew*&kR z==%`TpPd0|0N_nIwrl1V4sln-#FQY{bKZt_Ao0hp6QBzU16V8XcWrecf0WVI%%H&K zbJMy*nDy2Kxavs2gJGx#(;yTZjdk3MQ)@(Z(+?^^EyKJTWOO{nbgNrPSzts}Fbt** zlgJ=BmwB|A=&b;-{lAZ(g6>Eu@au2_V+#Dl2{4^Ocb|Va5$J;H=E9|#Kwf}}a|I~5 zIFHwLAqXvV=scY^SRNyxtTAxT*5JOMSQqy>iem(R2?N$;N{oy>O}o`d9G&U!YUS&W zv;b|R{8!t}t@j#T+}%6m_2l=~`+mIz_#z}chxn_O;_o)_UxdFpQ{LixY7*Nm1lWOd z*#?6pBCLYGDE3OAz(SXh5n&T3o$c$3BaDWnnr^#Lk9VZuzOc zqHACpfMG^Gxn}onwi+`_OFH4+%(+sk=R7*~37!gy|KVor;6pQDM1aZVmk7euw-ri3ee4jn4!t^2#FXhi{Nux{$5Q=D&G_=*7s>7P=YAi@ za3QkPO+@lIN+4jFKxgR*1!uev>1&A)4zAdUkb2>%p7rw*71($U49Jt?aKw5 z8X54^8H=Dx=Woou(!p5kjXOx+%v?*J;jY@19m8KO@L$KJFK!Z`eR%kGb9;At z^ALqs+w~@lpSK~NV_lFp=S|Z32F+baZWxVh%s6V3rB}23$?<$EyQ^7natn;SM^NWo z)T(8kMoH5;YNsy`WKtIQIl*5anE>-lSYbF=w&=lSpV?|1ii z-|xQp{ckk>wwr{%ZO-37{8xvhD?Wh6VlnUiZEV^1Y8-W~83U$LXgfxLrzr3aFR&>i zXaa~81FmIMM1{O*3{-D{w}RDDGdINj*l`MM$JlR@4%kaTreEN_ zgQDk%V6Pl;#qXoiYYAT9I!l09a82>tqJjm5_rCk4P#u>2E~tBQ3M?~Vj>Sh%f1Q;4 z(n0cG0Q{W0VA!_iybcLiOTPjoz{1Bf>YTBgzNit*EwKA>HUysps+#pu4hH_q zh0mV#Cj2d)sHncGIB-dOM$b1JoHdp}YZgR_I~e93yXuhKf3#};U=<6kGNQ+q6In2v z5c4TAj0bnnXbxgu;&E1_D*@$Fk!7%ADH_Xh9Q|_l{Fo~+U=ejYj=3+A5+^ge1i<@Y z?v5(M?(pN^qqP~q0q+E|!isKv84A~~VGO;9?2ZEP{Eh9$17odKrh4$+_Be^Mckf$a z|4X4YRR~d6635?x-@53HcB5gu8>y%J-vN6!Z7BM62z>u=b9Zd<-3HfaRm=BaO07w zv|Dwv5!BP@I-moDlTAfOS*YutMm^#>1hZr~9vy#w`op=P*nglMu#y`bJ3WWCYOL%sW~ z*j=NikOWwent+i48g&5UNJ*WARu=d9YV7dU6Z2=wIvX0jxwyU9wq9;^`|W0PdpA(w zhdXEfjrhB91%vK4!rygZx)gr{_QnBp)8OTAz1n3tT(rumBES35U+h5|8*`xZKM>Na z>Q!xBOGt1OOs$%h_P`>Lr=71MS}W9Ogs(6KfXy-%J{bVN`>}flsIA^BN-M&Evkka{ z;+MSx<|=3t%Ulm>*Zt=|jxnu<^J+tay3P%c`wa5*j(;iKu~afC$v$}kUq9|Z;6sm~ z&1X&T5}8_iZ$S!eNd1TcI`<|tTH{VZ&ElLBv(zh}Oev*LN_iY@qd&MUZ|mpJK5^qF z1y4r(mCLu{zTccZ*`kucIC{>4=&~8sq)~##Ya;Ze2_1m-S9XNWPEueyDup&UT--=< zD<0L%6FKTpGA~b}xf_BJsh&R*ofWDGEVn2jl*&9WLm7JtuMYjm2>QhH=>H&4{2x>W zT`haNS3-nQ^(9+CPI-^Wnd~fV+I%=lA;VeNkzw?lKv?)PuLk!AlMa}|AM);Z7y1VO zZhu;t6&pc^@pF%=2*b*^w-zg)0jF=ELWQV*j)e@XibaNFAi#P=08QOT?b>c02Kw8! zvGC|3lr9Xw>n_FI4G*+!iwSVs`q+(7!9a)2sDmN0;Z+IJv{e!`jB|9H06oHT&AyA^ zDzwGa5Gf9!M<_4UW?(5q8mOFs25t~A&aoOO*Q%J1((967`CaJlDZ#k8d?sl74^=bZ zPSqCR6R&^GQBnA~_y@<>0iUbvYR{oJ%Rw-PPy5I#BM?dS*&Y#Bq6FFoCsGk#VVKgE zz;A%qfWIrOX)5X~w*g+=&f~vLtJmM0{%W&zczYY+*Ug@t{5k5M+tjpx2GGHdl&(r1 zBszGGwxrkwfe0|meMaNwJgP1m?C}sRJICrP%cHrXN-jZwdaYY)vTED~Aw)XesCaU^ zqCW^|+>EP;a3~dvyE4apS?v~FKQ91AfLh8Jc7Etf2H?tyv=`v2mjjn@MDAM)nqd#v z2DwHF$Xq(j6AfiKXIO<~8W!~e_b3$n**>xNq zZp03TJc9PX65zMTThByLapFco--5p^+scJs`8Nap0>R&2gkO(~n*o0}1K>vH8=OZ$ z`Rvelvu<+eMp^+o;=9g{q=>c5c9bJ3qj9;hRNE|0prMYWlp6%+6JX&p0eO9)QclU% zT_fYI^ywfr8^ynrxw6Vo)3HKhXYK$lV4EFD#+-EGtlvE||9SI3PoR}{EF=|lCjfOP z0(bW!;a4d$x06tvH~E#!J?i=wbri-s2KbYoGwV)(PYO$+aH&&zZp39CsJ>>xeN+nN z-7ibwC@x=3v{x)kQitjVbhImiWqmK=uRC1z;DEW?2*7duo5}{)o6Q<^{jR<2*(J^!A3ni==cGNePpz{rfLMt5?aVziwim8y zj-+k{-w&$l5f90c#Ho`iCjn(e=!r3JzY+8T!zZJ|c?X>Bza0kOm(P1Eo#Crm&MJLf zRAc*&p5c)8rO7*!o*9#}7%Y!2TI$mjGE5##FJwRWnFxmgw5!|eDfa{9hYh(Kz{aw; zzb_!#%4c7>`ExU%Z@Zz>=Uxt%_V{}f8LyW=-=z0K33O?#0co+G7K_CrG_i^M@4uCnkUUAV2 zW-^ik2WsJJ!sj1AV*u_W`|U#oaGpf_1+e7}NT{L60atSc)I*EBM?sXe@^fb=es<&M zHfo>|0QUuo!RAbiW_^*oz85zk^eW=7A2Pe-jW!qjIt{d5duZNniz6wjuH4g1t%9fv zsnMZ*p$X%3yadLDPl5%wOrUwapxvkONTR^ldt|CCNZ{>)AQ*p*sCzb}yI{lm9cu3c zE)&e@8#6+k7d(FLyWok3&O2b%g`{3j7W8cRoimg^BY;+?$=#?1$1pXD7U~yx4HABf z?8Eu)$#U*_W1#cn+K(uL!=^4^e@pM*lXkQ=NTf0VYg8PBa+Gzz-zG}0{2SJ^06hic zc9jA6!WRu*44}HXxF`U;_1>fHI(dykzQ)>*q=%c@ZJs}Cy!s8Sy|K}X)Fc4bbdfE} zuQb&_r*cLLqa+*4!mP$4iyccD4FSgTG+1Cp4X9OwvzS6DWO(2^QT*grAp@{N>)r)l z&mDgMaAGwyel%GH-Kp0H!e%ce*6SKqA38Y;CNItWBwig1KwlWoPy(G|pTT+FNr-qNv~{l5#peJKe1h zE;gc7K;DGEej1%(EK~In!e3iHSKG~95?r-yFdbz9^fosS2C8ctN0i-Idc7@)lo}h4 zvPn7nk2EVe(x`DlS^xuQ#zbj_uEK+8JDURASiwLdAS>q))HdLn0kignS`>|!!j|Q$ z0zF5^?cqr9iL@spuS~F@^IIH2cT|K`;q%$kUii2_2A2)Z-gD;HfZS?&yF0O^6@w+A zu3o6pHpt=_b_=&4drERYp*auKMGUwPiO(rk(H33@75W72(wYu$@iaH!ug=IDffy;J z@eH~KVB6f@X2J7-xw&{DU9k;T-==M>UOR^D97zK-r?oJFUw40=RTlsz8g8xSk|Ub@ zg#(}o_$COh70!E5U;}`x;`BSTBETTEA3+_iAtXRo(a+@jG~9pg7L3woWsvTQjGjjU zc){PdtHp}TUc`V=_H%dMDro3;;Vnqt>VUejM}bPcXkpf)5;_0`_0;TPHJH)p=ged2 z=otlIVfS!?-tsDY@`}OH>2uGwm1Vq&qc^G)EUlxr$D(2egrKhX$a?g(ZuGp;m>(ng zbI*K8;a=dw!^MYa_;r8$G8o}+yAJJx1KMs}GRMW%39+`@BFiG|*XH8ibW3iHAnB86 z;tU0b*)7&q;L9#dCq2v6z@@8$(yIN}zg8$HiWAY|Klgx8_asF+3v*cf{q}ktD26 z&|!6tM)`A*T}3*K-0^A#!oDp0ofU&MCIc^7%qRlGjBjjbsI34-T)tD;9az))?4);U z9BpIypiTZ?EC~iwK3H5xjm8?^G|ZuZ;^?}eds)3!8pk_BKD`!8u=DC^)1xD8z^EXEJl9l$ev}G4&ObaOL|PNtw*q8^*je2wPD0w8Q672HbJ%od>P`Ie$xi{HTZ= zLd02lJ^Uh&SbhEcBo}ZhQ)SIY!ul5Gn}+#J8zd(OxdlNmoE;A?JxGZEruv04jU`1v zQ3PER+LDA7Gon{**a5RLgFJ%H;Hyyv^zioPAu6t%0t+!=@AGYg*|*W#&Bcu)y=|+V z_PJg2>2qPhED*Xf7cu`46rnTzm7>Ael(~x4Fik2#va<-VG5Yc=9}+|TUB#;cClV&1 z(qplELf5MLj20_P@=UsnQNbcFT3$kDU9yj1frQ4&4@ z>LUW|$1NM#xzSfrHa$#Dr-3F<00e;t8pMljj+G(GgRyV_&ZR>~7>n7z) zHWYm$V=wtv8nymb4TLcA%YxuG8c(3KyS31%_SXZj81XFB2?8tf9hF$YNJbX0b48W? zzqr~L12GnSz6cyxj#Cp~DtVR}Fy_GB>-zs?G3ePgpTr2mm>4a+(Ai_s1Bvw5?{yK)<_qNw8FN#KJs;>OvAbmy(|q>K;7f zR^RT&KQ0J(ekVeyjG^Ny=uVnezk=NYUeDB>3+ZI`?AsXjQaDeJk5T#~#=T_6t>(sa zoWbH08dxqC1^5!}OCFpAFPwt~xGzZ4$0QEirQiX}1F%M`;AW-i5IW^rM1@nlDf*8D z0PYk2WdIEA_wP3sH}?-0#dVb6HwAFC>y2+9Y-0hEA3?WO{uQUene>uBB>owS8F(Cj z$(9#J^EYNxB3azKRnt?DL!GG`xK7uo8L$z&N|E{Ud2{w2p>kitLHJBw|1Ot8!e__a z4$qzoy&Yq~FE|U!$Ob%I#!0Ff1Ou>|(k;E3_zeI;fwAW&rDu%5JAfdXHqs=T*0n-4 zH!R^B7;g=EF6KOD&mId?^PMIoL}0TVb&O=!=Jk zi;Ig7AJ7Ck0kF$|4hrbiI^(Y|V`ydl6*eJhbRv-z(3Aml)m0+9Bp{1HE&ed9#WHr> z4P4^Ua6eX+B`GPH4RZ){Fdq3_qWg!)Z)4@J3i<0eSx=cWo%W%p^?AYG86atYR7Zti z)U(iG!aL4@JM~I-_ePLKAk88dMynS!e%=?&fo;boS_mcpnBFwomxKh*eA!EAFMe9; z^ACUSpBsQ7rap(@XAp81%i=U*t1TeL1E3S&Ciu0O8MFSuNVf?D$Io``_hNH%6BJlm z1i+C1yKQfboD9I*#so@1`;1YT)E9H=i#6Y53v9EUD1=1=A3N zx=Ddfq0Ly(Bvhmr`<95!7mb@$34mUXmk+>Ke>@V}aaA)LNl)*9UnJZL09;p+py+gE z5G(FFpnKt0F>GcYjdIGrqYDVxlyrEw5elT}zom_NJY^Ves_Uz;*0gZL_x zF!0RDjAm4{gyzf$eyv_vREng9&2L!&WBdgq-gYr^O<_s00gN!VI|T9%PqT&=vb#P7TEyYPe+z<>t*^9W8T>+qU?jRKCZjqB zdXfMGjMM@fEJvuEK~TqT2q?|Az992ui7ONBzGC*Hc*2f`XVU|?<#^M0i^t9#qP1ON zz<4{%*m8IFy$mzpx9g^tHK@yT_}#(0xXMQkgZus|5-i|wey#T01p_kQ?(U;cd{tC& zi4OyqkV!OS)sQ@^*jq<=b&z*-iE0pjYtBwi)v+U=xumRE>qeU2}#E%JPeaS+>8`(SKb24fb6KkMDpVi@G1p z*`f8Yz|8E|n|V2x+`LvVY|xXxInB3;LPe_=R$s_Z^m3NDcT^ zb8PTz&W!=P%&P#wT#Oup8&^%{jfg*D0_;*JvkuF>d(o}{rjQp2u&m@latwGgfUnDf z{t(iilM2hNfIa)o6nNc`k|Ueu&!H;9Us()M*+|vUYGa=GOh?Lm|7#hvjwWu%1UQFZ zvA!ap9;1rEN>NxfDIS|m3tH)NDvr0kuY2$N*mH{ofTvKGN~?GogUo=tl301>9GLYJ zg2n{+{hzy%d_`Bl=|>6ee9;6N^I&y!Uobn-Hy=L0Xwb&kcz6PhgJ-JN39xrj zYn0~9eZs&pH^!O<&uRqS;{~uyB@DJl?xWmWfN%>1a|Gm#NgM%#Bd=6ocfxN}VhJ%E zK|f{Nn-4d)w`B$r?@y3D{;lyQNm#Zol)xf(dXJ}CaY0O_HHSDnm(-Mh0Ga3_B5IRP-t zJBO>fO3)|?50|P5w7cyWPzOcZY0r-O)1T7$cmGu#80Q7x`S|f;KOw}Da3A<$Ss=kE z*OEUr4!bHZwa<*gJ-uk-?l(kGhUjNN?ADgWF0$?Dk~xX;rSw?X)wKSK5MUe~IZ)u6 z3qOOtU@9ysflm1AQ!%YB&pmKy&xVOcTk`%wl{|@?j0pKH!)RMio9!q84y#{_(^yOu zU^P~tz&J6WDRt!zCbzOIN@5<)qARmsytC0S8kLvn`W`sj&4XgoT+h8hn@E?;ID+hVq-9XWZr-xuC6s-IC=|e z3^pMDeRAaOsrsr9mYKDL zK7$=_j~OtF!U!nq?K@2#KkG7mMjiJaeP^*>5&<37zwuFfJlgizmIG{VP!9vPAu$Cs z6=LgB#6U{DOm_$A30hOthh6>0=Y!YbC92 zg%R%VLZY2nkx+%~RTT#k05jGg3!VXpxC=nuwB;1vqU+*;A3O=mJU=gy zc^v@LWhn}?*o3I%RbasLnQv5mc?EPIpsz<%G||^)wH~2nqnMa+u`v{X1qxh?t;o9uC$q?|H!hPHp|Bu(hN1EZGXz(L*cI{q z*Ql}Js|ApjV+Z@~xTp#rI~lNgRp7g0>48Sjl7jhgT4?x1%|cQzyD<6@d02w>SO8#C zGND0=l&mqGMq1U+H+MXg0wyqk(D)ogSUsCT`|K-^fq)mZCBC@~ZwalmcHIQ@)%%d& zym1YgAAOHZxad(F0bc2go4|Y11UjW)aRYGWM2>4;%YvWl=0PTXwlr2F1L(F*PrlEh zX{vq3orEF*Hs#)t`xi{bfSC`ecKkArkuidKnCi8_09IS(=`#_D7_(sRay$wY`4kxu z;28{$FE z47u##`^b3vb5cR~G5V?p%X24@!IvTzXPROB+^(do=LrQC3Qg{NyobdUxM^3-#f1ai zO}ot_=nz8L)C1@SWp$-EF8ozsd{18{pmTyedd66spJ|>z<0KBod@ZjY6!@@3=C|sn z0!GRQxsIyxDFH`m?q({f&nWpSS|qUhcR}FgcpNx)Jd-0|Kc4}gY-N286Y8@2L3ywT z!r}pF3~Bm<%B4FMI`sqq2GsvI!vV{@ykN$v+6t>KjuF=9ki#e|(~&u^-rthGk%KqD zRw$TzavM}iXmhY~5lOdgyOQIc#}&{4jru-51xqP##7L*J8UWZeFSL;YyB;LI046!l zC~cB99!V4!aN`6;U97WmmsXp~vV=#}6n)3@Ck+raJpgwYRkCK$8eH#yMX42iS0Uk* zDvMvkUlz<;dMR9vCxUOCJjqwUnE}%e>V%K%&L1}q_gx)NgsoM_>MRs?t7Eb7Pjof` z4#9w&f;9u~P!>YjyOF&#BD&c{MEAVqGnk;O#BmuzYF|$>Uf$V12tCPrA_}F<9g_eW zwdaza`=q^^#ee(Uao9(XZEQiz@Qa&-o3`0rYz6?{AOLpj-!-GZ6o0J`(IQ}Mv3t1| zKND%Qtv$QLd#lZg%&S50|Bjh}EmB{VgchcW0^!F4YJLn-1SOwSv$&0_LnMo@Sjn$B zX9!*J{EX+)9m;vGZsH6WGhq?Y&l-Zw;l7!VoxTAh{eA#DayDkuUf^P>ywL?w2|b=i z30!hDo+5%(toe$P6Fr_geNH;)U_i<>2-WzxY)>0(Kq`*kg1)o|X@}~$kMSFjx*v%1 ziA<060JTnm4QyMN>dM_63I)u8D%dKslVJ*;r9pURnla33Hz zMqi;NtR^z#+;5~=QJ@RHXx!?zZG9G&)q3X)x-a~<&-fJDml6_c-1FdaCcOm9jiBQS z*pHvrt+4$~RSZZ3jnP-v&kpJmV5Fh4h}ZgGMP)|Yjx5ta%PCk;RSg!|L7g;NU6KoZ zE2q&2beF4CRzMpP*keXsWL{!m1uPcjXW_z~49dBVP-sKyrfK!7MPQQmY7|=hsw0!& z+`WqxOi)M2kKGYWZJlwRWa%ZENr45oq^WA$3=&z)y5-R4JGc&$SJ%0z9wg@!w=Kjs!T#psN6m7=pQ4xhQA{z>WZy4Cq#tUo|<0 zlAa8()w$#jc|O;Z?slu7JI<85=}Gph0^$6_XH>!9Q)FOe8Y!ho?H)LD-7!$= z0C?`a7ZJvE*N8=hY~ozOZ_!dCpXd2e-w40i{F|~TsR9{cm*0H0E3nbm6Nk|5olwz0 zi-M=|H(v%@7SF*IjP1uEiR0?By$Arj_94)1&|h)$Q3m07Wg+9j02&I@2fha;`5PA4 za z!VBQ0S*?)pxG|u|eZSTh4)=718{9UsOV4eCGF#e{{ z4J>=seCC{KudPi-wiYn^ThiSyxRn5xCQ}yW9R*&JEe6&a=0g!h&FH92Y>1ricoW+fkv%0a-DFQE1zHP(O^b48hlb_z}iAFaSzY?gRS{%@5(RflR)g14&<9IR&&2zY6xF zZTl~bziHl_bkJoWO|;HM(=E7-3H`;rf?PNSS%w8;^p{l);`|N6W1k5QgVg9NnSdp+ z)^rVFdXVD#$APqEYieE}u$~iNzqGGs1YLarc%VG8+1+;seB^(a?(^qv&u=*+wuBw( z`?)K=z()jLJ#{gR=D#D`UwM_qVO)gP**+x1(D8`^lm`$hl*D&<67_juau30L6ckvg z3b40KC>-8jt*jk@cC+zy3|CoeJfN>z|28NG+Ft+TPk>>M$4ue6g@C}2P62wBfH`31 zm2Tc`{yQq4qy5)YV5WX9HG~L&HLE-d@6pJOV!yJ$W3Z&|1a$tu_q*c+*x!i7`Qr?@ zN|prP`^$it$8CUI_KSN)Rq^`Mmyj1lcwb;r^Q((>5(LYL&=OWVwF549by5br=LkBW z(~-{b+z;i~%Xoi}!B+LPS5Ici#Bi(NCv=x}A|wc&Ntjx=npqfZ*c(hw#5*)n^AS~I z)AA$pyj4gsdLw6Fc=2;6;=RrdgA{+=3fM8vh`*6=uG*FV6WzC~SOom@&w70QOWKae zlfd)f9N2u-TwSg=9|rtwT?nPie|G4*ru|1cqb@cgS<-pr$n^V5N%~CHSXHqCMOGwK zV+7bv5MT?y&n#h@0apReH34SXSA2NQ?DzgNRGC2=Ha&Z*=Gw(ne1KJ`1isR(G6Q}o z;T!%%Q#$Q?G6cuZ|M(T%;okV!@9asKMTAi_AAIEAB#;w+>iXT$8S@MqFh*j7+5S{Q)fVhC}*dbj@h!j%AT0|5IlEG&Rd+Gn~5rmQz!Y`(nbksF8!M^ek{kNAI% zAb@6eBfjBLFGE$(Wf1E%DhJTMaRgcbSanxTcL>~N*L9o+ zvmG!}V$tC>=fY=#%%<-@e(d|hl$01fHiD*!lzZ@3^+ftBL{TbX#Y@uo42`H7!_@ic zOT^hQy7M)akqFf;kw7jO)nS?Eup#wf@*FM&Mmk_de|>GQ!vfe1k*mg|m9zg`IQ~2E z(WYrvt0;YHqa3=46~NlIt*z`o1%G?WezSh5wmy0I_4xZ&H-C;r3=w?M2Dt2g8#I3Q za7%~J+Se8rGzKESDi&ax=A0?8L24_MKUo(5qt+yJI)=6xP#f+>$_M3uXOJSVK;9T* zv@ep%QVc%3^>;ZI0G_b~?i3d})8TYxz%&A@8?_Ff(cIp|sUaNZG|r666^1uPXqq2rwJXP--g%UK!S3 zG(vXktZ3dF3`XiXG=~g%UXHgrg6?+Q(kYPvs}TlFu$y_4jt9XX_XFUM7=TT8;61Q0 zbR~Qe=!Fp=1}eH5ZRo9ByEX34%Aqv0G!SK9jroQONE`A>Yxv08NT&nlxeypa4rFLv zu;66Nj+|O=^j#tR^}ZvAr#}5+xUg!jE(eLMF@tYe7gV4d~*oaGKf9-@soXBN-SQ3)bS~_xC15(m?d&lUZyiy zK$xEHfV<0&9Rg2t(C2h)0EY1?G|(KZiE_YF2xx%jJr7^O-b>)INwXQxb4KaUJn+Mu zr}#OpfP?ucHXt|@^xSvVV)*rJ*e`!ux7pS0`tquY!5fW^Uf=|RE9XWU-X!#^K(Mdf zNGX82?|UG^s1&kwc{$v>%iah8+-^5v0KF#oTekq?6pz`}#0W`i`w-*7CTXTC{T2Pj zF*L}9Bw#^h)CHDU1;Q?vKrEX-gWy*(l=;&3(dBrC!@f4~6`Vxf1Op!30q1@1=|s@` z&Y<1!(8vH>Tl$_xgw3Hx(a423zW;^MtgBo(RL9bnLZS?H>g%81D+x(=ICPnhNycBa zAI_g(gyawT!OU}(5%xKGGO)jde(h@Y^Us02_Gt6#AlV)M@_K;76b)Hompvl89IOGn zlOfpR1ZIm3#lSj{6>t4b zl4s;Vs%%GOxcEEV_`T8*eVa8vqf^$S`zXHx_WT!_Z#5Y>bN<^W{4Fg^fOTKZ)xft`1LF^j8Fbk@3j&73;?44KVTn*F$b;CSALUsw}J`u*w`*aQ|Am0jA|6_0*U{C?~Uw z^zv*hF_J?z%Bzz2uH;?t0>{g-_sK-31ok_V0rS+34vV?Y4S^3g&z>4Sr!7%ttcT*l z>Yx8)!e$}h3V@b1l!AM}Nm_>FJu)M%`S|{GWxzFaX3)(4I{~L=bjobz4!TdzgQNB; z1YlXXwqYY&6(Ixy9N~1JoNo9W+3x^%|M`a>|GJ6-=q7Ss&w_nm2SPtSfDSI;sACE; z=sr7<@$g&g0e=JjC;ZI`lx_gs5(BVKsnjL(nIvy$9{18jSXH^8>`|8fFsfC#Y= zN?U`^9EsJJ`-;l-wYE?uwoo@QKpi~EPi^By30sfGUMwyb1YVAPAefkku=S{pc@`OP zwLzv6>6dqygME573_d35N?P)&AO2a*mjSo;R-qe!7sCKTMzl;d4ch_l0GU8$zbGd( zRUjoU5;Wv0V@Ss3#ERIM9c$*3<8R8{h!^_M!s`RD1_Zjk#t4{?_0?5diisTT{_lVM z>95Ty65^&^x!-vJ9YQOq7Av*?X5_Wkk@k8$SP#Vk9LL931K(bGw!1|HI1QlNmJ(p= ztBL~wwoMvE;{a%&^XDpmgSYusi(QV$Cf6p>QM4u5Eo2hS1iV{p$4SmoW(E4nL}oGK=d7(tapscPBP%G+8>u(j_%F<|CmC8&7tSe;Ns(0tQC2! zDvBmnL_{tCm7`!s?M#7{nNEYo6KRwSO$w8QmGM;HuYoy(@MEQKME0A;&&h$5-dILI zGY&Qb*&LuSW2(86WBTIwW8P8?sF&0EK?r z#$mp8rla*X5#aUOMPRM{2DoJ&B)^i5-AUukgUp8nc=Ky*J$|+<1B?BSX5eNYkcIT@ zBvKqEOTfwm&0@vT2;SnWRV@C^(e5dQlFqx9<4xi3)w}Mn*xRuf$_hQ_FkqBdc`^&q z`QxxrN9qQiswgbmUk1|@ngPwHcdS)+=$_0}DWR04fh1wlXPZeUvN`$CIY_S{fi41J zJa`WDSECkQM{XSedoT?t7gr%?s{O0>USNm6O;l<*`QI zh~wuN28|i2_6g7fjyIuoaI;PL>)&6m+u8)2iVI7Ir5HnvH^C(W+5)N|953|cLMz}S zXjFQ{rTnbNh>n-*6|S(_9m&L!D}lN03WZ*oMSOMovEn%$a5x$Ev=bO*OzvX9;tu&N zmC#4}?&`+G80NSjOw$8U9Rr@vQPxTFF$@pMm?|4IH`W3gcarlgbD?Grhn?@JibCw%7K^pBpBobgxf!h`G0%5;z4|MSxkgA8w zgMmt*ubh;siJl|322KfBAqF}kFxFr>*p3lcxP)+u0jC)<&(&ZFlRS=t4)n)vwFlE>CIr&_oYLNf66OgE6w7!28B_$|^W z_aMV7KO~GTk<@M+9jD@eOAv#*$zAY?8v%F&{|z(fv;k%!Xd82>%luoDg)dl=f&~_s zESk=prG`Pweq$mQK-Js8;!=S^WHnu`wzqN;7IO-Zv^8LePLAI+f>t?vWAOl=3Gr!m zL~HkbI8Uf7o|p_*;Xodh(oEtO>3oDS^tO3kk@OXc+9x zOq~=y)CgEjN(rf?%1n`Lhc{IRl7X2g28Z?@^*wpl_LTlQ{AD4`Hdieq;qzvrqvmke|v{VGqS^G+Izlp}sNZ3N(e!2y8X1UfH( zJ>eZlx{fn)x3f+UtjD6S2m{V8V4KIucB0UiS$>V6*RlY06b2V7gAoc7fE5)AL|IT? zRh>xXLliC@G`V0!DKkNQjp`Ogd@Af}KJ5mWGtAABy+^z}p;IFaxZBNut9IencIMS} zX6Fc6p&!~~&7LdqrvX;OoA5PVgFHvv{cFs;w!t0Oo4OTgM|1}ds%-M>C>K_n8tspr zIw`84p-Z9XP4KMx*$P0fw768uqoos~E;%+f`)Lj(?j!{$r!U zm^&ULn8WzzTls$eI!|;^qU(;N!@_bWRFun_chdrvR^7*!x}M>h*_E=v>lcvf z*%Tb-{vtCrRK|oi+*xDHIK|z=F?^8l4YCZ*jI)G5W(`)h?gsqLklb#Xk~rA}Ty&ma z2a(Mx51`|lJcu4H#kfoJ$NzPqY$`nr5tQLi9*c)mF2uo`bu2tudA>WmT?Y{s!rw4? zZW9B}x~nvQE=yp|s~$@2Z$V%#coqq;Mc+GCz-F9+CB{4pb|gWV1!HdEs+O<{+yGi8 zhSHydqyq)r$!PlHi;hZ!uMP*&xI092w}Hz*JuTv>>q zDkpS#cXjDt6;qi$DgigD6*VNKb{E0z7IZmtQhaVtvc|}c8i3V4D(FtK|8}nnfcXe| z^oP+HgOHd7yFYFD%ihO|;nFOK8+M^6k&RIIW~9ENBA_-bjKi2|Lon7}PX=ijSd9w2 zK&j`$UaY-}qv&El>g)d9B7OFQW{;)={H{aSuLryUiXj5pC0}_0OaZtFbx5hzFrcmp z%U}OC0&r4g_fa8Dn;4n_YkjmwP+12Wj7xyo3b+tomVim>e{BNXG=oO7XKRt}d5QoV zg2@J>a7yTqrotd5Z3un9)eu_!c&X|wF}fFbje>!=vepIltpRIZ_^0K0rOm+>? zKm|IiI@vZ<2(1xD$?;BmvyU)KHZ6%3;Avb}m+wzcfup<_`H&(Z?lbl63ou?6>9fut zyJ}(#heO){f2#z083991^S0d(2o8BzC>&Y9C+Tg{$}9m%qrSO_JIxpx6KG_Zt9g3_JhVUrx; z-J39iF88ZUNpnB)YtDS1@8_v9I$vkrV zX-Cj~!rwkBt|A(j2H*&XE{d5H6s0W3(rXYeCJ@XBoX~d_9J&#GhYK5ozYPn54hfX8 zdN>v`R@?CbnB?D`_MpZ}|a4Gm=2^QnQc(H58{J$yPS@4w^uE8>3 zNC>6eQ^e-SOruqI8W~eBhIxvI63~|gUoFS{5%ltpHWz+7C8tO3$AITE-Rj2vh5f62 zwQ~@dU@`VHO!Nxooaent2>~}Um=Z%}3@O}IU*D_h#m{i_5hbd7bPX|?w3+uAhd9iE z*)OvFhRVUzc<*5_W^aTpgbY(D=Spi7!x2Q!tBAENLEm_tqrIC@Sk$HzN*hC&5&rt- z!B7AZchP7*9>`@MfH7K#aN6XG!LM#o3Rbh;wgrE6iP5BO#G0f}#%E+Xy`7-I1ccK% z*f4FDMU|AC0*}-tR9%EpG8PY#u8S9N@N=0`We_oDu?`(bI8>&mZ+$99#$TOEBs39VN%r5Y#oCoNX@CWk(i<#OV*v}& z5Mrw&^sPKgR7Fj;#Uo4LGJj5GgQCx9ftBSr82K%K5crZ?$C9wd7;rbufL{d;f1D?P zCi7_I<)4Vc>c0HY?cGsW2rud!WQ_>b2DXfwu`J7wh$~c;v=b~1EjBU<8O`zAi%j2} z{m0DH>t85~*5o&`eNsTj>cKL8j^S20J~Bd_UWJ0e1i$O;W}9*+o!57}$=uh`-)(^3 zfdn@gf8)40U+{SwNF)}D2(bjqee!y{M$2Xfz-bQcGbz`NrTDAq_P0vFDzyuBzY)*C zBByf(G2AMe5}m_UwFo@4na`iOw7JgDVrD(o!2tZEICuW0U(X4(T3FRkv;jMzoFpWvY_!Ns<0|x88``= z^h&WL=Tb)q)SAS{hfC)IaM09chg++xK8_RJ zWc_i>*8}Z#z~9vx;co!o(A1j^NPY`Uv{ylY6?NIYkE4`Ihe#c9L*-tLrUck?Y$v~J zb2_zkUjhbRbP1(Cqv#D5;%tFMYgj;OXb1_#erSueSFG>14wmEvMo`V5Wel!wqty+d zN`1FNXU$J|HQ0Arwj6I4l;hjxk~S@f47jVt&mDi)zwJMp*Rl+@@HjL!S%-DFE+m@c z%%g3K^T;r?^=6_HNlE;^%=J4tX{K|<6CTHYus$iT!lXHN9mM#_kUYhQ&jEi6_if_b z*>^3(o&^uTn*zS;u=I7mFA@NUGGNSqapO{aa2Ezm8N5aK3z+~nOz_+^l>&ObZq`J8 zg|jHf>lpF^7!V9s7>smPCB)mXZmwz(TmfUuqM4}4 z{@!gAS-DccJdfTC=zDSDAUL!j#fVCj`xwT|Ddxf^PZW?HFiwFEpW6mERN=eT23R+1 zYCqDNgkDtvlz{UmllsbX+mS`Vm`3i;GCUd0;`j|yfvqt$C>sj3^@_N@$w;c_9C%f7 zpED4vIjsx3kLKNiHOnz?1)EWGY6q{9&K-Tl%AZ z*feMsKZ)miY*lM`VIWxm8$NnAQ{@csipVd5wCmnWn-b!B#g(nXuXIA-RTG3$y1`=S z*t)O|fSbn5_^-{yUoPA+AhY{Oty{AF&FwgGv(yiYzipe6pfmm= z@~c?~QdRj|HqS%`ZF%IgtM(=Gz%sQNIg{h?3uEm^JaZDN&yZL&X(i-|TIEz3?TnuG z3bBl!mtzEMyNV05buCpv=W8ef7J(YSU*BoByP&Xx7ZK-a{`ph4i})&}y?SaR66^+G zVzVfVHY1IXYeTSvb!G+}n!^F8c`j7$Qwj$p&9etxVmV^?YkgqzDw%6t+rhu0m@2EU z+yZ!;bXFUOx0`LGzc+sw5cn^f970L6H{uXHDWUNhg6&yDL|=HSE-t9>v@{1{@BdxL zDuzbuLVvZbI|wrbL!Lihq4_tdAndC-be@gS?JSgHE{oMyrfyX*6YWQ1SD0#YZN>o_ z)8J&;4?n$&_-Z+h$ACKu!w7>V_^cSP;$24=s71Ej?Xd*z?8^Y)9fNP5YFR~K9cBa# z6(%F*i<3A25IHtuv*JBS?iuB0n2)_V82$A+C!561v2Hg^p;ILDHEQY8Nb{V{MyqBO z3XfJ9eUr{=>ju#S_Fi0gJifTN3H&#Tv9@hf=D@a$yrUEg3h3HvqSubIX>?kE@mFIK z9D=$+B@=36DCQ%aMk$bAE9G3->Ov7U=aGt$roh6I!|-h9D(h;z{0P{NxONQ#{fR+4 zVYUG_<{5Te%klQ6&!YmVZfpl!Y)Iof;K_Dj^$I$a=N|A;DU^dn6J`%zOPFIQAtZXR z3I&6LpOM`7mJ*0q zM%a|}4O#}A886xZ+obsdpje!>(bjdr2F#ik08>FUPTwG0 zm>7!@5Ytt!MO929E2akEEWsiMb(@o6M#GxxHE#vKATVG-1x;8mpae>lLvmCaK`)$l zFIef8k-_86SGrM1o@BrXXvcTJ)kAjAWCu3Sh{Em-KpsX5sg(O~eg*z(c!)Ei8!%P& zTWx>MUYIu<1b?Yoh|fXXRZ4%o$#y_p54+c~>&X93Oqj!O==@ui2n{EKF3o~lmwuJ; zH~h89^XHqJNQO6U>qslfeM|&6Rvq;tGxH=y=E^X%0M>>7Y9@$I0U|o$Hr@W_JBFNq zC1pQboWx-ftEH!2crr{EBoarhE0E}#7e;Q!re0A6U5T&K3Rn@syI{xOc=E?TE);k_ z*4e4?4Q@AM2fP;pW*O1lsVVVCI5a?y&8NUf_nIeKhMAHMG<`;HB?y4tbc0f2iCIKAh?fdFfP{bK$bC@_wFUI)zmfB`t-@m~h~{R;x% zkYuU(0J<+Z)RJ5b`+;H+LqOnUJwgDCL$KP?2COwU9i`sE+WKoP8a@lrlNJB9rsxff z`eYSuStt{m{GF&Qj28CtcxOsrLDE21DOph4kHY)mCsCF7$>n$)*8KS60>JyOQ9JSP zPJ-sc?0`G*Vb5e-yeA%y{j8GfO=%@W=7tQvhl}L^W((#p>|O@1S8B}XdlF=vTP!#o zV0n~&LVJymgn{Y3>l`6FkPc7a_^t&JgVm#<_LWfnTcSjOrDznE4D; zvc$8bqkS?5PN193 z4l0H292$a4|Dd4~R4LK<95MLlBj`S=oiY85z?Wb+hE855WD4jTI~LNLHkyuBr1EIv z8Lyu*-zKN;wk(5hZg0X70D6mu!5DvShy$ryw|)8oumLE;=9MMBUlhmTby%xaxdqiH zGWrWViGwJeN#`J)K^qh;&g6r@8E~;5N$|^8!1Y@pgK|uA1#A(F?isZW9-8?s`{Z+g zxu2e`%&{B0u48!1gEKnSjkh6nM1-|V1>K1&-%hHGhRl*UVz0Ytt}I-Kc@RgyQ7ztHX+* zz4~l979PI?r8^~dF({G076x2;6%e%@VZa?mtPna{5l%W@hAvZ zc%mmkvB6;(#_UUY%|!mjDS7X~X3k-wYWvh}6j*PX`sM~A8=b$`mb;Ho)JD3z3d$>A zZRFY&ZnDfO;H)?PhT4UjZvz0|I37HF)H+**Fx(~mRV9Ds?*xq&CcyUVWt9YtcfxHk zC#A@VLuchx-oaG~lxEMNv$?)LDnhEyTAhIXM%7g){e|f7E!-2KuP47{_MD)% z5a2Ao8s4zguNPQF{Jrs$XphWp|NHHmC&un0nkFSOlL)NLe+Bh3kwN>oXhc(od%3#8 z!5iLP95J})pGgT4E?(rKA+ zIzcrjI}tJ?1CbJw_4t|dFYJmHSA-(GH4{Y(&o*B+DoL+;bFv|H`jeNwQE(NKpQHM@ z$gceEHzIDtUvKzDreAOI{Sb++L)YQW?d|Q|H}}^~1mKHX_s($K4m3F6FXg{|@f7u` zdTE zGzg7@^co@EnOv&ez$3{W)!aIVKtCe&Y9Y6;4}gC>DFTgapgIJe6FcCJZj+}NaQ*g- zkDuP1=qX0}E3`E{ZUilvg8@i0@EHbSsIOntsZRlHhOYc4sjfosWMsevfK$cq0K7#@mp<*yho&6g(YQFn69Cvqj0dgG%JNZ?@-`h=S1SI(zJ)n!d9Wze*bBF7`&mW$8 zkgUG68E98I4!SsybeTUh25c#l=ADQIfTci=48*9F3#UL=RyjbUnyPMrORu;VnsVXV z4O|s8)Tynw4EQB%3YX&qh}az)Z>KcQ_}3l`7~j-QgiDJS;YZBrPjE~(3^EM0PekA# z{^&odrv`KIQlyf955S=Qxr^+uzi%5G7cv z#DGKS)i!Cb;?DOXOrRaa4!`g2{L0t!-iwI8;rEBMkkzvF);&f2d3dTuNnb;6!&!vo z1lW?O=g6;fB@)Ho%KZy%1GNLmlCiV3ww6MV@ALT<*8Q>oKr$m)L`GGo0JO%Jb^Xe2 zV9u`Dx)_iSYr)?af?}^@Bi*TyF5mqauu@b{)$L-y(%QKj^CmyralAA-BP^QyD?oSo zu9I2{^ZPCrWdC3e9EEVkQf8x0iM}X$GOc_=?i8vWOzz0|F5W@{?V#v{O!xBgWDDN=KXs^IPg_N1kf38n~cB>@>C)D zmE=DHtb+z7ey(FUFzJQd23!Nl!_Cwbj3NF{~r8RWBDg|jCY z=r{nR{NWD^1>Qw}>x@VSi5*rrPwap@v;dyLfX5Wk6n4+?|L-Vj#+=KM6d=YNx}^|1 zJ!l>9IY917$#~x<0W@3x#?f7G2leqhxe}Cvf2Ug=S#p0_^K&240zMq=(PK7 z$o^L>ULf;ls0Pr5{aR)NHgzv_5#|Fj;I9G{k!1r zp^mGo<=ByJ*{^i283Od!*&7Fr|kH~Qp{q6210PkJE;4pf=z56!cuiF3@M^FYq zY$%#IHL*Uz>-sv5qTQQ>n>hozAsXk@c$Ba>o?ld4mnok$qyUbRLpizZEfQ!R|IBin z6HMZiw$c0zdQLg!>jmaJ$`j`JQ>7{f9DnMTwdHc08kRe02rTpg@7e*6YMHAYa3_tN zJ6a0d9Tw-#1l2F0LfYD%pI1@zMdJ|@X)vZLKy^AEo%X;be&dzyeRtAoFJN*JQz2=} zg6-=OY-Wu~0o}GONqfHdi_f+4B-n>eUfc!*zR6VA;jV|@Z;=Pz1ZUFC-5tVTy@UT& zPyaepM^MpNAix?&P3B>;Mt>DBP6^jy>yfRb&Q|2Vi33|^?oCt|49TDzD`Y5&EXJ9c zCTpTMslFMB8p{PkYmb)M^Q(HbeF^_WUDY>8&~Y{c?l{tRs_SYPuOFNi86N6Cwm<1a zdXMGtPf*>Tt*lEpk0XzupXf_UC9D3jR#4`D({&85Uw#$wB*L(V;y!Divn?m$Z&W?E zO_p4>Yv=g&?FyyV*ZGb-4NgT1e)oIx?f#qdA>BDBzWes@aO+mYcP@dW(9}$TDg5?h zqx2XP;(Wl-gp?G}UrEwNDH)7kPT2XTtCGxj3b{dYhu85bJp}rm%wa2 zTgK4_I7P0rHHfo_RuuBlkAhh8nbtb_-DCZvzoj|w<&yCA2t*b_C^3cIlL5Q`H!H;(<@h2#GByIX(x ze)uyW@bLDA>}f^yRX-X*>1!n15W2s{%-!A1SF!*u>s{0loG@66`5RF9FVGI8ss)Le zku1%?qFQG#k~*qHlatUaxoDwQTY;%5wW8i$gMXBg-cgknvRC|Ke|dRS1pdh`9QbL> zxEn*~`8#0DV=?>fMvD#UFuI#W<9$!z9`g-Regy4N{;feEx#OqXNDE!quX>6Qt0-BD z=GeRi*qy>(wEayQ=szsH=eo3mmBEY>y*jL0|!{~>H)||v2 zK%?G9=tlRB0Pw;2@B+V2`Ulyez)H5dvSB`K=i?Z>#zUwaPjT? zufy@pdyek!fBWsX-+y;h_ig~*Uw{4k--bVb|Ml13?gRaOxch#8yS6x!S+D_(_b>El z3GAaPv2LoyUs85NH@=!>U0LAV7iB;v0Jat+|B)rknAv+vMHeT-9I$r{pd|u~C(j9d zRfpIw5m+c(x$wF{xa-i@*IBzD;kj_#aje{z0aF;~QI_3A!ZdRvfv}wJ`pcJbmUS)8 zzKwaxqUmYvgro%($f6CUaXh;P`0M+x$9@`pg5KU1`Bf&rXnuQb>Fk+UkJ94Td3|qg z2N1ox|Nh(kZ-4*$y{|j^{qO(&_rL%4{oDUDAn)(L4+#A0|NPH@&3_+`Uw`}C-v;>o z^|ygCdkFsi`)$ad)RF&MDFka&?G(SLP}AhUCal4_(ztq1Thwl(QQxl~DPJHCB;cy( z+J$6U|8IJi1V#d?Jz_amVDLzWYN+bLvoRyl&P;7JT)MhcrE1IwKZ|cpa&>Y5UYtl{ zNXtr)s`4VW9|NxJMBNwzp7da0!FS^p28{@_M{V6*#^$mdU5ktVS@@=Mm43RNAj zISm(7%+WWeUX=l~Gy6U~4B+b+?dHS7X1)2~HogM_|80Qa zzx~@`tv?+24$%8I|8{`n``_<}PaFQe-B{bMQAm}LLS;kILf@m%OiJgy0odVh-}mLK zpdlN`WrS_OS$4(d&yX3fO%f}z6vq2r3sM`f1t82+5IqAvAuRG}!}2P**NEm|v5@Fu z=uK&o-Mf8Ra`d$*c+#7G zS0weSNd)*}^OpgC@4r9Xd{_@GR`uWFC3k4SOmjzWRQq3@v0e7mX zpt*rbs3e?0fzNIyd!UicV@NPsP?b%V1jBX*0DtNgokQc@9M?i07YU8NHu6jLDTr^u z-&}sgY`?ztm$eqGu=!})wi}lrdHelgy?}HwKuEVVWmq(0#PpVq#jATp=sN<%q`hcQ2FyXU%9ZXa=*HOJodwxF z-hpgKX6~zj!JlcekmSi74Y-&A**;!-;s(YsTk3up0&7xSuvz&6q*YcvJL6HnT8EwM zbvyiS8;{Ccch%;D&!5~h_U8WP|NI_!a3;e4{@dU0Hx7MqM=ys-g1>#)SwrkDu9C1q z6B3G`EEJcnfa&rVV=#f=$a^!T7A!^+!mzUbWtBy2Eo^ur1Mwcw+o_U^4W0{MM%pV? z6@9+(1DfUE;4Cq@6LIf?SFX^ywKr&oLX-X;cQ~)Lsxg&Pq zSMCPBz81h2LhV9>3y%u?t{wQcKJ#joy6u|*eI5LU5wwHfb<=wM9bkH`o6Sx8Vc@^t zfA}F1;qUi1)_qKij7O-Gw;n+Exwxq(BWM)N;i31s_bFIC9zf@;Nu9ONWzdaB&n$cc zxF1P!7>N`(PoA0j84S(DVuNMsMPlAyYBdrHl2``=@%k>ua-7-tJm8`n!`xLq;JtRh z6W$DR{61LfViuB1&nJj`Z;*)Or_ zvK*|wPyE+b>t9r*I6$zMVBs&S7>zO%qm6b9z+&DbutM!%Ccqz!+PpeaYBRs(?2v=!a}6Hd>CS;^i?02OR*O3D*p>6G3oPE9i4DwU%< z(HQ!qKbXW#ls&z(pM%MtsfwiJ(JUBP$N`8#EOU@a@A*;RzLq@4&@1@-L(>n?n($YX z&V_9*U0Ca@0JRu^2RM%S+Xfky1K{;~yIHT(2Q(h<2B=;W{M8~aO(+;qw#wq@GcWe; zBfxelZK=FD51ea3mZ-i$95_Mn$mCh5K_W@e#ey`k0|uubgevT+rpUnCi&)?@(EO_f zJ07*0Tn_e+qu+Ih`seK^0C(>!Ma!y;s47XC-T~JXx%$LzLO4weS1EC_@ek6V zjj)uw0i*!QmJ%deqb~Vxk5^^bENu+TOhgR6Ig=a=E$pf(Fc2P%?=N11D~^=VD`;k) z?!Kwxa>>Oy;Rw3iX{QaQrd`EL70Kl2W-;JSQ9BaK_?V)=@&=lq_iH(DFucN%0dwZi zIL7wzi(p{Eeno#}UTX(KlrWKy=a6@mQ?C+2MF5Uvzlj46=zG!XtE)ygxnoy2*6RVK z+W@!`ZP%?IM7M5F%7x zIPhc1?UPC%SO88--8?KaGe3#Xt#=b(HMIlI zuYhl$g&{?6Ah}hl(G386ZJW#H8XJEd^oBQX_uFnie7G9$H^`=B2-fZ9!j}`aULM^d zSYCU%bkoS=XGsC=ce;V!rcH1_UmIOi`K$7ib?9vkzqaH*3y&n`Zs8z~%yTo!8aqaT z9sXKhf>cCUSm-BZSV4i`{29P%eSr<6>u^ecQ}O-!ACeCK@vbwdZecl=5%ihZno-zOJLv?*RP~*{X z>FP>fSFH;xkG>b1fxKQ`Ie}JS#~y!ID?WX8D(Ce!b_>c2V(R|IHGv#~v+x;PkKA=0 zgNrUY=3h|$nz=0+MbivuT_bgf`S$|glzI!~IQkb^SA{ZHh z4UUIa`;DNP4vUm992AAs*UNJN;6C>LX6Ow^!Jp>JUKjP1jvL@@3b?vlQ_31Zboj`& z7?B3}9pKvWUF8SzqU_1Us9piqcE>X^YhkLlNmC`*c5Y#1kjZR+ERrY zj(fItB!80eU(5OLsI91=ZVq3o+JQOT5)O@VnVgK~?DV{}Ss-{h&JKRNs;X$Dm0^z^ zFw;@bV89X6{ZC6*3$Ty=4|2$dahvJOebg1msJQ2gM2^P70Ic>FVzG|kQUmuoM$kET zG76OXxbw9Ug$w9iH<|y2&Lhu$o$2?#|9g1z?$QINE%Y~=j|Ko;wRgI|8CO< zj3~9Z8%SGQiLX4Y^^x-SeQiHV;aKr^&0|T$g0?hOwz3t`2z@-038J0tte^Oo#16~r9Uo9qgip5VA@$v)%R)hg}9UVUB zOWn>PcxP>$WO<4&zB#D=&+Pf+4Qoc5|9N=3Wgcfn!rS5WI+^t{uTFc_NBZlHM*)RV z7ro8+8?C>8Z4>%_c=zeDxx(C6M{b*=oLhgn4P-cUGw^Bi2>#+YDop{n?_>Ld&E&U) zV%6Se8eWC(ENY-L03(x9Ey60>Ukbb^=UEQlu-u4N%k66hj0rGCWU+!la44bsRCNZH z!9OkP71)cq%Y(gIo$xjG>&FFTl^U4?(;+dJCi{1;Y^O#Ua7TB*(gYi!YB#Vp*ci%vlhz~$Qxa?NEGsaeRUCRbd__*A7<}chEUbLv;5l;7 zJ|R=n#QC!?J^E`1+;Hgo>8DTc)@be=*S1aC0GDZW24kJ@Hi5MRWf_45*;H;o>Pg`d zq)BuY1sy^|7eQe>;xgmD<>GDu7g(pmfhGqUg!a6zPi3~UZ@GJ(bx~{9{)jNH_#Bto6I*{^- zL!IvG>JUA_*cV*3yi+d;xt9TJKOdKhRmxZ?_&ySZ&3Tbu2fw~AsO)}O6x0BdS64Oy ztS7*J@B5$sIl%9y0e*k6O`FLt+W$7?ssO)j&Xr6+9WFQahcC89V6unRT>jki6*dmw zAZHj3Df^u51sKpt(*n=C)HJc9(BJY`;kE&Xt&vu}?%HuBG(OW~6gclXOc7uShTp1_ z0h@t^GD6RXN%-7r*#RGJ1g(#{-CU0O|7v5Dwg6~Niboi5J+JQQc6poucVaoy%NZ;@ zVP?$)Si9v|XvOu2+4F=B%hc@m@huHbfBme|s~C+OHo(^&ppx#&*Zl@ex(;ZX3K)Ff z?|{GU&;Qzd`pL21RZN7Y#lS6{Bzpi})x}1M1Fr@8OD5n}kUz`qztz`iy)2r9Yvwz4 zYwJvg`6CZsH9~$3Aax+xdeU6Wp}|HZwRjtBaUe7ZvMPg;vKZc0T)1#w8>Y=*gpNa_ z_y+iF+3d@H-4b|iv&T!`8~>N@B#W(BjL;ED^UfV`b)H79=|;W<*qnO0JLz>D#t;UK z7sI39s%7qsE}2KiVnNkVXl77aH72Yw{o0%Z?+w;izebIG(#Gwtw;t*1Bn65S`=?%=+O`a+KuFxF1pl zVIs$Mg>M|J2au&P9K|4vp&zdB8X1VF3cHa;48fvoprk?5w-HS(@UTiC@oWr?tKcg} zfO8w+@+$uvFJ&{+EW4ksy0-$fQ)fFJW3-)2h!r>HPVRuyy^t1$8pJ!Uj;`Imue}H!U-`_b}U z&wzWXx^jO7;dZtl;RFt?*{B*mY2^Q{05(H#U#CK+$#gaWmpfo2mV{tY&Ap-Zg|wxR zHX`}9h4kHuw=e4R`;X~IXMx}obK|+6cOEO@k8tXL!EOweyPAkTk^wvD?by^=)%e;~ zl$!{#IWvCU7)-~{3L|hf{F<6Km%Q7ozk2#Ox}^5*1YoTdob%yTOuA3$j5f)hv+dSr zUj_V4;4}bb+qD1s`ClJ?`f-5Y?bhW`I?mhrp|i96t{SbGj+vW^v@L#H>KTss+xXwL zQ;7EeI>a?G;%c|c3gfRv(&whEd(rwg_YQ0PIZ$Ok+sa>rbFr+Tg664NLhoRvz!oLH zWb_5r1kBL5&W0wjTI%x4*S8712ZNK&%Bs}G0CfzIMhMu+40kUE+;I?PAkJZ1cwg1v z{n`m}j zw#Ip^huZdE|GD|_!-Y=bmz^Yp+Lr;3kZR6=yHN(Lgc_vR z2)$rLCTzqV@%VRa;mAg*{nD>SIB;&KF#s>u4jfmfVTBsu*I~|eFdK#FNe{odr@;Gq zS3hq)ynDB4WB-x+%OUSd2yNC@S55cTte0r9bfKM^42z-aUvN)eefdYLYQXKsOO7iD zE+Jcp{t^=~_aT9`Y`iQ5URgn%RV{)I=C!N=2~hn)$$`!jX|aP4Scww*HV=giFD(4| z0k8_um2IaYco<{659f!wPL{SJP|wx#^+0KWsrldtQTDO=+kPZYF$E zHz7^K!Xbe#)A<{-D#G6heoG@?R18P@n>nhNJHLDPVV&xKJ^Kx2A`2+BIfW=|&71xl z9d7Ih21fvH@(LJH;7EXd{zmFqFdzP)&77i%(ge(V7;?lV`a&@_SMgi8{FjG7dpd5# zn+$6}$_1Cz?AV~RQ$x(dxP@?H9!)Gq3h`hh%z8Pv_HqDt89^UoIo$E^$4+LzYBmF| zS#_OoImv)Kt_wTTKZU*Q&hzKdpmDUUkyglTfwQpG)3`741i#>h!qgxXlb=i9uLqx` zf#&$@#?Ma8yt-=Ef%j^xtFq0XKT{hm3DQ8&7Pq|O96G@-MM={BXT8WN#ycA|s=J~s z$9)gDe?en$6(i{=j)N<~a{N`LeTI?+4dP9>_LnkQs4Ez7N;J)jHeg0;kf1jInkzsVV^qOM89gU%` zp8Tnx7|!I!QHtm&Z!P{8fKe&1c}W~Nw-ZDb9N;!Wu(sFN6rONNZXvp9T3hwk z4-i+k+1re0DcP}!mzuQg#fX;>*Qub<{1<5UW0YapJ-+VL#Go+;*7z!2@n3C4BNWqH zjRaqXOf1Vw7|0a5DqXG-9C~NW35)S02^g6V>VA)1_Ms$1@j^>xMwq2Y>5s0w?^L#vLQ6m=2!|8 zQ^6pM`DihZ4UXb0cFMkD8-K@-^zYD)z%u$x035TOVI~8%BL77NOIR7kP6sFg*U1~! zSSk8yB#Xo1(>9<98emulVIEi0-e4hovbsJxjtq0(DNlrzd2GMQaxBM*QJGQ9P9&WB zFyN};u%jtg47Mc$a#zz(Uimg9ayBHF#4Tdk>=Z*HdGX(Tu?p%CG$-XSx4~Xso5FGa>d&{!F&Kg8hh1 zr7={a!89%v#61bb&x_lV$nfPOZ&(1qiWJ_WI_y$LSl(NX<#+*2Oh z2&+dBOvFhV!!cJ6dwg!be6dBroY$$OW;cLx5I;9W8y&AqsNKX14S7JQ@V6Hl2gfC6 zz`p`Uu!{|e;crz#2vyi~g5lbjWCbdo+AM+h7FirLS*9z@IBe9{FRDsrGnFhFu-<_P z4>J@$zW-=BUce;qrIX$YOG|o2S8agzV!-Jdn&d$tTuRyK>gV%z@}TE$gNX&HQ_OIY zH(yVhLc5TSoQD9$oWCI{@!n{LjlI9tMQ|h(<{sH3ufkPC#Tc8?8?}b_|NNoB@@G2W zjUVRsx-s5L+f;SbWIR0-j#1oKwcvxub+_N3(1vW1S^us)eGcUUMZI2{I|fJKqEVjyN_VNF^sZ~ z-Ke{dq&B3knml*AzN+qRVQ{(p6;$4RF)sYH0kmqY$|J((R$@&M!I)POR7fdvGNbQx z&_Q3@o`odyDnN}rvv{x^8E^zq95jhL?tQIL5o0CElMOrH6gt(|vMZM1H!Xm7Wo{s; zng6OY0&6CK&Pr}ulx4hyxcGlzJaWU-b7-M^&=OpYVUrAeO}Z~r=VsALLEuQv9l!v3 zK!v|0taZWP<#+*zJ9Z117jx+A9<>ARqyTU}_Q6FuveaexFR^MO&?t79ERmh;!Lr)2$u4yBQkIK~2HYFY_lV2p$N{Z)( zZh)Bp3RM7)VjPR#=p+0h)J3|hEWb*IDqILGd5>5H0~TJf*|QYVVSt590!p~TQY=n@ z1^X}a{t`nm*Fd8p24$q&)@6vg90!2Y?&%ObNf%k=?_(Ko$1y#0Gi1%xYzEx12ii%7 z4|8&IjsR?A9&CVrW}?Gco$|kD`d2 zEJwid${A%=PaHunsC`D<@%)Ykx+kIT|IgmLR&-@qe@gdzSE0cdlkP$8}qM{<; zjC`T#j8aiqvy!mDAK=Pr;7JVFttMRMzz0KhY3j7SNBLveA~51|BNn3`d;(1O!hO4b zUo3yu8iO8u**=e?z$XWWPtrPk;)7xtIa&Yu+b_S=Y-zpO(`_QvCWKICu|XK9LwNfA zR4yHIc6GgU2_xG`=WXG@R*<*}S}hr=TlsWQ^WT8M77PY2fkPAGAj^z2%4#-?UZEiB zuq@R!hzS&Drm~Af`}Wa&ABdmfUYsu@UM{A-R?p?6GwQyCr7mch|LnCc&1ArFT_S8h z_k|weI*ke(*R{ub1_Bm~Ypp473FfHK#H!)$FKx0e>~!!`48$FfRSw+4b1L0@EfO3` zm{slX6S2ufyng=={`0^7>z|lkwF#A{!->K5!K^$L;z_vxxVw}n!B)A^cqjn6XZNVY zXl%c1F z8Bsgf?NAnLiG9y^(|M1!kl}(+r#AMg?miaDaXRs4-AZ2%zx)*(nK~o+LA3E!(DQCV zcgs_^{5zsNi=RnoWngI^R`70RZ9nR`c4#nNClw@cQG_KxQ-cBX-Q7}hX=c4<2F!{< zy3KZxQQ3DO$wze4HL)MJJDy*@DCWjtIF6=j&~`A)p8<lM!-lu~0#3 zB7aC+SB>N-_9VLpPfrzpJ3&22_B%z0@9$^raZuM2P7vXOK+p{q%7z1<3= zrtLR~{sm>}lB)0N#M7@*34cz?y_VWLSRrR{oMe`zUX?O#ZB_x1b1%D3wBuhl@Cs|R zh6<-raH;)NBzB7AyL9i7**!wCyTa@PfcC-2Yt+(Q5rSsN$jE7>0E{!Ku!1d9YNY zpP|HG1)1n^G6Yx%(B-N@v)^;gU?Y~JA9JfFU*jq(3rT8`nf)-lUSGLq6bv~&4}fLB zhK`OzD~VM#5Lods*ZmiTNCYy+_T zy`YO`!1-e%*PkadV4*}$%A#Cri29ih0=NKyAswKO_vrSWz-Mc7-#UjE$bdD6ZQKCEfb&TBdJH&rkMsDL5DUDGP?Qr&5Xxnw+S6Zgp1L9K&bq+lAicNrP#-rrI|L338 ze4Ir4Z`T%)_2=OXlcXz;lfA4!raYfa_afhfDjGtMztD1E1;2o}%i$=&8~J+8K~M6; zXw7;h8&>*@6Ih8>oBnK<)BR=d4v!DZdLWyct>I|JUB1V1S1f+D=Ul!1xRv!GZE_LxDn%8qLt^xOaX0duN;Ll41u zYbS}4UsrcVL4ZB@Z7R>a^(c6yg`!-S=WLwH_HZ9^^~)cBQ}utHc>I1xPOo^rOWlrD z2eYD(L1@wCJ)LLT+;U_??D;Mj@Zqy?U?Dn7 z{yVXkp`J03P}pl&67+fqOuzs3L^BxknJVVq!87=#A=wzaaI69Ab7%%*G29I&w#m!i zz-?EjQ^-xg)%%pAuug}B()^SiQ>mW-r%q31@fxY(G2c2WNnok}2?R%5H=PgVCZ0~B zb3%Bmz^z^i1FcK~ZVm6%BDC!ol+#_kxPXFqf|Aq~Adx-8p_Y0pFJ!91X{;xXIpIh=$%{p+vH9qoj0by;1nWxI;2 z%YE*ME<@_BKgt?(!huT)z0KU;Se_+DQ8=@8I#DmYhV0Mbs~=By7{&$q)>OZzBjiqxdL?ZzMbBJ@qvVEDE~+N7%616-dr; z;H`ulf>|%a*?9GF^bV{;Pd`82@asVZbtr1yvGdp0(z_?|!b^h}ppwNgLsEO8qS`R!7lb1X$-P~6ocrI8elFxXI7lx5i;T()X| z{o6qnF&s`z1lAP{soduCJyQUjD%1VA-JAfY{HBDpaH3)A)>jsltMiKvR<@+-2ZLGz z?kVsSH)=WhGWvYgbpN6@Q=wzv()KL7&xFkahT2C`!)oXYp4s=~PROr*gHnT?i7i~( zh6DwJ&oCVEX9>hw%78!q|MA<~{#cs^z>BL0QPlxU)J;Ukl_colC8U(w7kc+mhdSJK zRcZ&b)Eq=164$D+jlF58n}G*(@L(%0@*aK_4EMw{pbx)t%u8$^ssmt4I^Rw`**&)! zpMTyduRw=Tx}Z`YgRQSB4uZU&%HkBOQ|z{(Wb}qw{I#!y_ea4$etUvqd}dQ%k}zxQ zjl|zgcvk3YRA<+nB~{v*30-F}#UIgl>U;)hj^7XaY4KsNnk1I4F$1oStC9>IqxohF z7;rp3?H7A9Rp<*)n6&{{UHSW86DPOpYzy~GvbzI;!P)(5e_|whMZj8Sp0u;fqqB$r50s=kM2S zKnl5aFLm*g40}V(g08ugY+#)1`Y(!d=Wnax>X>xtoAVVgeq=H9<9c`~uP z%Il8bKl|-AP!3Df0(} zJODN^QR8D@S>$JlaN)M{Ju-DUIH`|i2RKvT#6mXew$TT&p5ES%ELm8n_2<6b7ySZ5 zbP}R-IkpIa6G%%p5u6bp;`Fc|*S;!}bx5+e$YsEmAdhE3*R`XVSCHytnBA5beX`zQ zz}x0hekB$RDZx+{hfKk`ehRd(`}V{zXH*0(OlRG>Rx$8(qhfgyGvL(Vzb6gEf=LRF z8}xuU@FgX|kWUW(&5Sn{46ao8e9w*_`1^JSU4VM$df=@KSz@`0UlXv)gtJXsY467R z9QqJwKY3EeLaQ}kI|H^QM`qdA)t@CNM%_5*btLV0a#x@ee(pa6a8`iZpv>jv<_tKR zwxq!<=x9DHav54e>0$=FWAVhRTnB)UM-XB&YV{edE&8hcM-C)2#><)r4gc*yn(@PQ zIwdyy9AU&Ktv-ipyE+MX^r^X2eCq61t^|#FotNF!#9Ajl?g0bf)alQ8L%3+qX0Q1y zH0z$HQ@V_M^dUthzm`^=Pg&mq9SwR;rO%+4W>3=-NGK*l(Q%r}X+E zL7$G*OxDkfQ@50rY8fG;zXzU$nNy$-2bO<@tN=-L4u;0$w^hSXGB}!xySC!jw_Vwl zVHGlIz6^hiB7Nq`?k5sn_n%4=ki8-AMGUx~0%w6)+pnSrz0(EOD+}u4aQtKsxQ8dc+AFPCtd~%YgilTw zMt6I#{?_ctG5`*4-$EFsz;#HR ztAKgBMq>nw)o$74v((bf_Q20W4lJ&yr*@XP*+=G#P_jk$yY z?>zW&EqYcqmI;zv7nD;-<15C&{MXNXQ;?m&Ii2HdRuZ~14uY_R*c0!z=fdQ%q0#6VmRfNjgM8vo{d-H6)=T4y$Y=p0R1889^< z(n-^hv>5H{X2FPYVDrIUF5ITd^N#ELv9=r^4fI9nlWHbm83r7o&448Z=Dz1>{#`x; zc0TH{j&zHscz5br))b7)i$%DFEh|kDs0{-5bh2O)4}@mucj|C>+E&tu)eL$tYtYqN zw@%7i-M2Vle}hBOpOcc@nZvB0amZualrykW$=1r1#6ixZi~BjZ51uo!yal6R7m(Tv z7%7K9+bAntX{6`8=+_|)ZT+@Bm<4U@$9~*9_KG(}hdb)+qbTL#84Ng9#w)@hWL_Z+NLax0oR_nmiC*y_#@NHdal$su)~CDn%hfT{=RueuQC6gJ${3YS&jM zEuTaP<*CszT-TWc+dr~i@1%X*DOVO1fm+6lh--vOi9g1_rL5_Ed_P&wRWo+O`9q>cXmSEZK&Xiq_23XHlMugCz{Y1g+MR8osSl5Q!WLf3d%{ zs$|gVJ?2}@y}c}xf2>Q-1D4H#s6(L( zm?BYAj~2mN=s5Dxm=wAP^Ztb1k9()TVC-1q47fQ1?f_UpXJNn@Y@@)}7&Vj{M!t*z z%Nq(iAa6p3Ipe({1}Ds_tl0Zad^NZec!O|TnVByRhGFRvhHx@5(rOu4E&yr#J%eRs zz-jpELMrT-GowogM>p?wGc-#f!{M#(C+;{fGhj80R>9jglKi)a$sUCD@{rEQ@{%@G zd6Hqa+SbJhvkkq(N$bB0;dw{(Pk(H?u^h+VtwXP7FktY+V=)8HorDE`tz-?CxuE5@ z-jB`I=zKmERG6;Ld`l3t>&EKfE9BB70l^qbdoGUUQ8F)8Wws~XcT@?d25%iVUH#2r z!l=76P4o-DA!kqKGUOhBlho3?Z~M~e&nMOg(Z46L4CrR>-~a zRMI!5(EO^ZmkhAb8O>hvu2r%{66f##@^TXC8|8X{H6R%y^!cYofx@s0x~~5sI{7Vf z28_0N!Kl^B^(+t<)yUWhjbS0@JO1v+>iBy}$zvR0!qI-rY77|qG_0Hi4Us}rq0*z8DVX1`)r6JqjH*AufU2xb zGN>xM7tl9NvkxpioAq(K;sxn0NAJhw0PNziquDNIz_B?4E@eoi4!AqO0bxf2pUHqD zJnQDBhtezVMu{E+VR1gjo0zgp@N*IeuRkiSe-(alJc7gT1a>CC>Y#u8>mMjS==D{Z zpS%6t#^ptG;2lz#d1o42YYA1a@kwSv>s6^#**N;Ez}<8>FpeC&aj_cznzBHnJEOA; ztkR*igW9oaIoy{k(NmC;rg7aJZ};P}Q+jMG(lQ`xvl(!0AgnyNE(e2kFGthgFp&Y@ z%kw3^{r;dDba|;&QYf2&i7U}pEotbB_}aR2VTVrX!gTOu(Hl905=VB1>EHkLZxV0o z0l2?jKokEsbtSq~|6)JgPBm~uU1Xff{*kOSmJ!$(c<&%v0S-wZaZiMU$zDNLnI#FU zHv?{O_@d^^R;iY%G^r7B|7g`+gqsS>4}#6<>A1t^ZQ;P8Z)^ba+6=frZj`Z?;L_Bn z0-|9)1HO;0!iNN4twoo$BpAxVqPZxt>Ik@mH6q^!?iA{TQh&BfNGcI)XcdXgeh>fq zG+ZJ4xBvN@$(;-$%L-Fk0KlmvSRzxPQ}VAR&dm34I=GxYgKMzXXU`Z-foEjp0IV9q z(T>y*Vl(>bS27*i&8jr6=n{bi`7wG#;QUu&>=sxVzCXru`R&K^j)8Xr!tT3Vz*>a? z*ZFU@LdTlMQ4Cm7=R=!sIGF)Ix?XW75;T?dV1iayRyv;x;rMoo2#& zQKx!ALhwi!G)FM{sLrz_|>msL#xe<)M}QzA$qSScYRp1?T%Qj{|cN8X6q< zTCEJeJJ`#j%s^*+&MC;;4bw%)VE9DjhD)A5?E7D*Va=M0&*3$lVUx4;>0*HDqDZf2 z_FTfDLnj^I+@Xb@}(1LmT0=D$#4IoKbyiF`2w{=}F|8_slu_j6hx z$Bm*m5{pmHd%toFoTM|jTb50B0jUEdJ{G3$->3<$NYd{#aJ=Skd)A#p$6Rs31UM=D z?b-)Zw|LauPpsR(K@j|pdvkhu3x~t$Bq|jH+so<%1Ws~;w*qXku`&b~#I&sowh!3O zfc2zTC7tTIu~-u>A0!^2Fk}3?ANz45_0vQ+d+#?bgqO{LtN)p~tK7|~2(sUB(F{1+ z8~o`+rRz{&H3~LIgfav6#=&$A5H3}ONd|DJ_CfTk2nz$IKmX*2i{HNC@IumL7gx#( zbjn#8)5qbg{kUhor9G)117nGylvC`F@aLBzKWR~oTg-<8Uu%mu&(h21O4{n(GI!S64B#Ub>KUPG`nM=_9GV+P!RrO04drbkBQ z{u1yxl>xg~8oTt&Pee5H6Y`2>g9^j)Gba5@()ga3#B5Dl9!-1pe ziSX3cl_wpY@%cl5e$6S>rNwuV{Cz8*1{PK1ZsC&`^wBfj+ zG5-zNXh$NQH0cx`g&NpFmi9_&i)1Su9LH8a>t!pz(tYI!(K`(9#|;43w)&2#w9$!I zzHA1Z{m&ilavT=zztN|`vNW;HfFt<~81_`Ge5Bb{jD8!bH3x>L1SJmGi7HH2nGbip zx}plH-vLe~h0=+AMi!67BYlnJu}?I zXTaS(I=#HSdks6|kJ&$s&e+mC z0MG<;IBCI~8?-{t411L8%}LnDBV2;0$t~C-2U<58jn9AuG43 zz|2#?#|i8Wfu_Y$-mDNQk9}EbeK!{+o>rW+!?`fx-mh@C{P*oq0C>&F#r<%B*fc4?b_}?LPKq>W z#1e~TQ8IFKc4o+n8Sq#P_B!hBV|?woXQxar@Xa1LjzJHY*m^pD?x>CwXR z{PE{>LT$+!fM0z5*B>;_mNUxt0(dSg>djMWZUUAw^3I*WW!vgCB&CWUUOp^Xr;~q~ zfV_!N=3q5l(3$`Twgb#*ZJ9<835i-*nN{$!I}awEm{pUX`{wEniOW7xeYmcDtn@V> z2GruW9e}q%-R5H=x)8n29xyQZxnynVu&vmFaJ`qbhyhH1u?i()A*NStQI@C^v zZdKQ9gT6iC<@RSx`33y(OuQ*KNic%%KS3FXhvD_-_cXTjoA7`B-+*QFsO%r5kb3bs zr3=+|%rbkv$CBBf@6OBNY{2r{7jzL}(AMWLW`XXDkk|$i$}Yl6k%j!MXTWywD|eJs z{086p?MA)*OHjwbn>=a1+E96ypx4G;i?^n(zPSf{@eH^$FGQ#yTbPM=9dG|ArKw&j2b=Lfe)+pQT*b5V z>b2WGD&Hyf=I3+~2IoTHkV*w(PqTUQ=HbJDbvW7VXR)dzCcl#9hW2i7rpuZ2)-DFD z6_rl6Aj+B~O?g#4FxvKDTlt#vQLSek};x?GG);7;#44r2{xs6y{|9LxAoZ2-}NN33c}`b2^jbj%K(_yoJ!|<|rLW zs7zF%0a#OB)A?)M&`gM~_)B{0Xy?NFF!l@)9q0g_$cKT8u6z1;|xd;C68E_xJaaN&U zdkb`SPK|(U^4`Zjt3%B*qtEQVH+v;E;7$jHzr2L7#%|*2KqmPrl$vGBf2}qxOMvt1 zY&}T_bD&y9GHpo8D$UWi8nB2(aDZI>-NAQ1MvoU7hJZ+0S4Vkal$rs@)fjL`b+r+z zPJPwNFW88#=yBt@40tEP3pql`5t?GaO2>r9<5~a=`0w9gx*M8}fq4!k_G>yNFd380 zqr`z&XMZ?MDk@8p;M##Sa6vMDtNMeH-*oz5^1KPQid~MJ)9`P&wu^O zvlTD&Xib{|V;+ez3VcSae*PLHW}Qx)9lulA0r;H&yi(Wh=D#5q1*Q>Por=L9q0d=v zuXpCPs?p^}oK9;07qtP+5?U!kH-n$~6xgZg?Pcgh)UG7du)nKWx&-UIT1;sOR7H;%tO<(ONf#FlxKQdLvrE#$0erVuu zaQH9Fqm=v?<&~II3yel=HuXoOs|;N*F0hLwf1~DKotZGg=C0^)*pc(La@<4H?r7EM zDGV4EGT(JR_w zBrA_Q$zAhiz*nTc_;mbS7qCqUnpvUYTL4dTE@x~p7^Zdf=e+yNjL_w^E~6r6GA9nM zY1$U>sdOo+$!{)rNFf;%?n0~5)TV{xzTF!km!8FfzDbUNxg%OuB(bb3>#K6tt3x|k zRNARDQ&k&CDiKS^VmZRJ#A>ELn|@68(A0#hwvX(bnEz-HZ}Ibpzx?sZ5qS0$hV~Te z1W1Pg!+Zu@k|+C*D~JqiJIS^ry5At$?>&(LD@MIN7RRUGeta?=dMJvcKQqI(BS;2J zET6EXG^|E}yY8bt{7UJpC8z?+zE0xYF-?x)khZJ5UQGY-|DCAhVz7X%;oYO@6-c4I zbanooeGNlOUcX`y)=%00i~@swCsreYvU5JCP@*$TLKX%_B>JrPPc{Yj*nx zBXIK-=~#|0EPBoW;G6tp;?KW6Hvq@eOB^M^cJ*i;1CFy@&}<0Ic7RJjR@Ce?YGk#g zgbNsObZ~v+U&rzHr%yJ+X|DoT2##d9Qr1FE2vUw7 z-79J}5Ym7APe7SynR4+$x;**0{rUYJd(Gc3vD>W>a*C=J1-y#cK-?c#r6k_G3g z{6#Jqqvo@%giEZB(Q##Er+)o+$KS^%h>v#v!b=>|pMBdEG^pZQ47jMy zxsK4weC9pCVCk^BHi*k+z`OD4GWJ{lo>quN1!j5d(VBzcRKT?|U@U)i;Ml)jTY@Y4 zrsi5vd-#hy&GMs=p?u9keJ`TFwtLWGap%K&4eY)&ZgdIfKrTYNtG{C4-|XrNoqK1;;iCiyB)=0DpZ45z5wME$RSo>uD%R_HH9M-{#)@EO(_x@=9tXjx9kyP zR)34=dZ?8GtkL=1!zbi;+^@|20DTIfnx|kuP_j^Iw_$9LC$Gx?fwcmsoWN zsq7)uzX+b5K;kJ%o0h*e%z(Ic$p@?qn4#}pP56nAK##(FJ`?dB&Czmt5`Ww;{AOoDfu}CD@bckaT4oA^`-oka}rl!;F+9f=9`$iIi;#gPXpc8S3Mfe zcZlCW3~US7D=N-#%hD#rE3H2+M3eZ7s?DyT>Uk^e#}DX#>rMogUJrH>u!bZTQrk$x z^_nsq-k-OhSb`4p7`M|EomB|OmJB#D0^Gl#Q>YpHRpo^}n4SSRuET)iZDH(D;rIRj zXik0@K+S?})m$=rq2ffo9EO8w+U=n(F@tmgV&ntdyr+YKy@-z4IWgUtd!ADU;WGJU zl|}Vduo4B7On4Z7pI8vIzKf|^%S6u;+nquaLs@o_f~LM@8j_>eI1^CvtodQv4OKG~!FRJMI)4uf@SnVcuj(PFI)#=S|=! z>KAGoLtRiRplfb%6pk(Hk5-+E!!GE#)eLbb$oVOro&gju0h@^>CV9x_e<*S*>pb{v znF^g!1vc~cPLmE<6Mjc2K#`xJD*9Z%RT^1SDl#;K)KmeOA#Ez}OCO9jO;@5nBA>lH z%5MERC7l{_a+aow9*sfB1e5qLg+>?$n+WHumFmZ09xYN!OJ?=RIJ4TTNZ`IMg4%lO zOJA#*5WiyVSA3|O$w~>Lm7?vWcr^xGc91w=mbXPGfKn4=C6+r3IKm7DJov-XhUZ@V z{<^5kC7*Bk>^5k|GCes?yA3l$;}Oxzue{Kmg?&iJIWqG7)t}uq4p*V2Sy;Cd9vG9X zcH>U@EuwZP8neo;3Mr4Jg=72u)n88+S+Ft%?iY?TNkk#omwgg=h`I%J{tM3^=kl z%2*B01%9Kv2vF|l_diE9v5t!waD+Jb>ZvP?*biTVcEDG^L5Yieb#y7>PKr@JBjcGR z!uRix@Y_jj@SrWMSCsgPCu~&DF|$AS-y;c<+gq)I1EBBkJ2wknwkVu;nzPa_qq|Pb zvMrQ$)pgWpJTiaCLNwn4uG4%ea@5>2H(U}q4Q|&TjU#ckLIYa_Rt<$Pg9{rTiGS_@ zyzBI9fUj-d1*fbbHvV>?cVZTF?Lrc193>kXnl`EOS>H)Rv%`SnJO(@+RCfuwoWp7s zFASqFig+Zn8A;5E@zf07Z&6^EHerg5X=!PgjU}|&Y(iowonxD;NRM= z#P@<|tkMbGyT=kA_{u7V`f`7td*yqm^Viy+gD6Z2WTlF#HDf7gsEtY0gJ*&$ZL6@8 zgM~28h3liT$K&i-Sm%rz!u{dFep0#+Be(wnHpanG!Q&P`hEx0%e@Ju=h>_f1zehyl{s~9!AefUlangK?qpvD-21Q6C;{#l zk4S*-nG>6GD=HBj$Top_0f*T+vNgf3{EQ<2Oro8EkzUS$l zhF-9walk0_n$xMF#B3#a0szmAaZFsS4s0)2##$j?3&vXA7fP3s&9&&dhm)=PExSgc zRim&t7E2^>_7Is{Ah`dzH)1Idw5mfI>pM~&>0mT#{TrdWZB$**d^yQYnN$xF7lC2& zEErf0G|{!N@ita3eEQ^PosDBRt`5MhE(XC2-~UfXa_g}m!Aa?e{7qlf|t(m|SOt4omLZisx2tnz}0Yw~E)BjAC?CM>l zIs?WUNy#d()bg)*NTA$Kq9uc1)64+ek_DhzgLi`X2*<`dzT2PKM?uC^44q#fO)xKH zz$FQ*&U|BC0~Y?PCcR~{@>B*af~GwNJnd(AxJL&xUHdyxR`X(&^=JwgMvwX^3QV+8 zKZC)v)8DCAec4u$jE};=07|4`;aM!M_Am1w*SoUPd7iAM{t@Abh5Hpl)ZQcTx?i%BrMeDs8*5c?TF60)U+8eKzjx(yPpPr z)prTN@%dV|>^|3^Q}oV>8y{~A2>e_(eHiR1)E=u^0>!B{G)4d>UL4Wb^w+VqlW^#Np~bw zCm#AWgeHaqFF;qm#;eS9OVd&6f~We;+vJUZJu9?n7fdN#yoAK_oy%Gk$`DPoX(D|HRw`i} zVK53>0db&;zclc>%1cRN(%@7RN;}p%3>e55q3fPf0o)yR_v7lA8@>0r(NZ2ayp#dQ z7*z~bElFZuyKV~WQEp zuP_4!RmTvS{2ZO!D*#T8!On&&WXI(U_%l=yUIT$U6#n)t+LWPrCq~p+SS&GV0DuV( z6G(AtLvdoFaDiIJ77N;@ns=3oDlHq8Iu?B1{~fp)sqvoWeT33So%#&yQgO`n=4OF$ zDtOD%A5rZjSV3;UCQKjr}J zoKKE&);dIwS75+AaH9e;l)p+ibj^uo3h;M3nYOnz+M5~2XTUq`P6FVMzn-5#HlOD? z+XNL_t$pfL4r-upPBVN5V46UG(_l(R>dnxh%uMq-5hIW_-y&scSE6q}f4!K+Uci5I z_~ofr${XWrwSrV%%jlaG=+tY{LHnV#63tsAogJhqWDt9uDm#`_VHQZr#OMhgXk=xE zL;FhoBNw4mc(KdJ36AI;fcL{ko98(hPNT>jJq8@tWx$c`AVoRhjVuOJgXfohs(O6#ye*xZ}6Lb=^&J~(C0R}Sz#u^#yZz0LI!NkdMYVo`?ZqFKau*UEPT0j<^C~1voZ6$ufXjCXuY+c6 zEkp-w+2vU8vt`N!mFw@C4Tps#e!2kt@e3I8L1(V-!<>Z$}Po292y&v9jScyi* zCiKL088Ae?i;VsDK~G`8`}40mW&QYf-+%jkyvc}}A6~|keGre7*;|Wt|eeVBsh*=}L5KRtcrNL!$iV@!d zFSlaA6Mq+?Y!X@2iYNg_lZHiVH);4XE**#33UxYGxp?G4^bWxLab4gZK=P;|DeAgZ}3@~k-J#Ec*b@I}kYOI2x= zq?M&`?BlpX>N7LZG%D7ut2!rt4IF-RyJ0OXY!Tqe2bq{?s(O}Iob(H*0hVu$iuMoUuSv#TU%np-s zq7B@VT?el7UlbEwWDOm4JdCtJj2@T+18YjE8Z^&#a~|qn4|MT_Ujh8?@D_2g8INc{ zcGW##DCrx_0nK^}L3Ra$?I>j5hiu-}5(fMb8^N^thX+`Mz{&yr-~aWm|E|+DhOz^V z!RWk!5hG4-@OvT|&_QE#bFf=Jr%;40ilQ{t*WI2TzdACQ`VRZNgp}?9eESsXKHj=p zoWj&6Q|7^Nf9FJRQz$`{XHNghHSxrqT}c!$2p~=~$S*1L90yuu#dG4Z7Dqq}1sV`p z3J2LlO7EG1U(orChffZ`ct4N}PRjzcdkWW@0T=M)+rV`eEDcw34=IX1#Qe5HjB7C9 z81I(?$LHtnMuj`MCRhGv`hWiT#Y znP8BpUDBeu=E5>e4kdMJoe6GOfdJ>5+od`e2U%iV*If+G4TMQ8E2k_(^Fg`(NiMnJ z#9h(CjfEsAut-b0D3X$c^5KQ8{gxR@u`s9^OZW2O`>vLLI{y31-Gm9p#=nNAuk3=B z%Cl$~ER48*&uF8sqWm^7dc1cs19mPl9xEN|4j`E@yuJocZhpU_2AC3yWn(!|FON=& zrwj^y8&MpAqi)dt;)1>*Va{x1!5g^B;xE1aO0$Q++=!NgFmn=hU5g5p(kHjssqZdC znV^}ND>^qDD+)Yk0xa(x{QeIh6j@m4IId9qL*zIG=5k>ulMfb3Sy5P2HO!dZ?8jq{ z8ey*OM?Fs4$HXs^3NG ze@*zsMlAyi3oeCra^_1&1D(NnLsf-5iQy)*X!UfkAW=UxWd#Z~Gi$B@yN(MhS=O9V ze^pTY*nO)*U+ZMubsfF;0t8 zo7T=yD+zfyFv)o6{_%YHir5rRk9Ot%DQ3W?-dXb#RFB;_btTRJQRe0`Y>aur~Qo0%di#JgE?YCT9ly`SS)y7j5%7b5Rj7)(Z;_}Q7 zorr1lb1l#uj{&TK&SsIK-VVpb2>dbk^@qb1c%il=?JnoT0rumD!(VU~ePDwbuq3*< zgn|8AYmgN7E8{l%Q$KX}91CW*%XT@CDuOyg6dtqBdrsHq_egck?Ij^hagLLc4ZvHa{Ivjd={d|Fu+n5aY zGCy?q2)V>X+ed@A%&HjJycebBeChNT8vgq#Ldz^HdQ^tDPAb4n?{NI~9KRY0TV!g$ z@QN;IkSWmp#;*$Gkhg^^=qmiG-B!GS0Xu`{N7+ew!v#;QO`dN#Yp4U_AkKl{#Ba2q zn4gbTvmNqu4mKsW!AlOB1+xh(kR{b_dJf2eg+&b=hpmmzZ%?XPF(qyeW7%FF0ZykA z=Gm~QU-0rRGZ3GuJ`h$>-*bMm4gp7oR>I$W=q( z=)A|qQmmPT#Ty9A`jN=vFoaf(Z3~GNmk4n|7IcdNKTVpG-P2-VPx1diawhIFhO40O}Pjn^+4Py&mRBHDOe$w z6=JVJ^ShKD&;zABwhrK1kjo9RbWI6}!!5jN=724}DU<0rl zC1G*LRk3A3A-ZKnxWcgJrO}nsS75;L5n%VOC&G2#QUwB1YuYE-FV(O@m(dcn;vWh> zJ|0N~EC!Jg-Tx5+bgH_v7z$72eXt%nP1!#>8?|$!Wa_qo`!0#jh?PV+a9#=iSpI!| z|36KYzr(_yt|9C#GybYabLF`aZgt6Wa5X}++UmMD*FkR1p*XGQgWi#RKZd|qmJ790 zkylK@Vl50j|2c}lEBT#N2SXG$cm52R;kwU&BT1cL2jdy&%M&Xnv?O^GVD8UBsW_LD zwgbB5g^z-q48W~L8dEu+ILG6gN?RJA`Ei=aF#9Cx)Q4YvfbmpT7?Z0peKUZ)F&z|@wZDUTII5M_Jy2v-;gm&a(y#{%|$23}lI)J?db752l0;OIfH zpny?v$~71;3*dkZy^-Z&0h6fJte5Wx#|;_qh>-oc0rY}PeO_^1NN}~koD-uh#P%mh z!+=?_yNL70+|@A57#*oPC>J#6zoAt;z=T>_CxfG%3_>#*a2I#={`wo1&O~SWTlSAq zSDKW{7H|@-tCcdUhvvU1M!bk9;myAbbSrgY$X?secVm@C$jJ|gb(#gy9VzkWcFuVVFP$* zC=6m#z3d~cKmWzgDnj4i{fghd#YaYC``&2clGjVZs$>`H{!s*O$Oo8kj;w)WoC!D=$OZVT}b|1P`v5%im!Umpa_kvH=&T5>p8ms zxX!8^k)PX)lOL=j0K5$YX3M`dg|aj;M7|Pi3Kw`PmKPNg z{reYP1{~pF?{&io9os+jFN(`!_OBW-R2Dr-B(FNjqW6ZfDT=5*PHc>h!WtP099*~! zZtqXJt{-diGH^)P?*PAs+6J8D(r-<|>b=j26&t5I)J@iA-3H*N-)Rl`xmG*N%PVIX zj7Qwg4qaI=PsQ>X@NvFFYd=0A=0iiJ-~%O0ya?) zO-RCzB?<~P0AG&B05+$R2bVLL#mbR)=zSQ9xv8QY;oFKgF#2k%54)E#U@#)|8Gt!8 zE{#ZKHk?s78aB!^q`84?8UqITWu40lKc-Xt_T%3;TxY;(QvcD+&7t)GxX+QyZG=4lC#yi`(eV36obt+WmaZ{Lnp-QQ z&IrE&@fXpeC5aOG!Z)8UFf@jhX>a`>#9}b-4=IW?OX*+_>m7zSge|U0fVVMwi1C^Zo0_bHva3vg6HTx z;m4l&xM>gv#YnS|m*0iTJiwvA*qi~I=`Rlx9a@|waO2``OTD!(K0^ZyTJ9u?Siq+kG~XTHxg5! zYeFR-3g7ir?kz5?H~tB{+%p4Sm+U%VwjBeGng`c9Ux*?DD?*K>tQ*2AiZV*m*lY$2 zLkxH%4QuTyw1@*2eRK)SUJ;Vx^S7m0TQ!4MLNJanVE$Hm}crDSA9`>FSC{s?qDrLZ-tubR-Y4lCUL{se1M4BM4kGvq$)?mPu zm1D9b2J5lP7f0Q#0r>tT=(xcbb6N)ns|i+aLy~Jqz#4)h7on9KD%-Q7ZBmRd5>F`^ z@U!fEY9wLFQS(DiYwrVqp#)S8oC943jMk<_JiIWU%1ta5wNSW4fCC?frXeh)EyF2C z_K*tcJp*v)-Bl^c4&ac>fjj=2dI>u9*B6TArg|BY)*`^iR~k&Btl=soroyP4d3bpt zVfv9^Y%RDtv6wwe0Wj_CcRyA^;HaV4?j&u)fK3*(vmIQpmQi1`;H$syY!|dU`F0p^ zysL|{n?C=iOVF*`&de@75|P@eCIXE#NR?gz+1Fv#mbRXl<)d_nRtTeC!yrT0=Hfx~JpKH(=nT+Vg z0Q|cPz(M+<&zFed2%zS~z$V1|u^(G;YTbVnjS2W71`G;0UU+QNuE z0+mmj@L=q4v=7#h=v(l&%fAYBTewf-Fm~@s`cqilfi~vI!X9Mvj}^_l|57y?A%e$$ zQLH0%%^=^NfjP5kO2^W+hW*$N7+t1`ZF5#!eFj_;po{1nLP_3WNtNspfJaj5AghIY zz!Mp;Q_Jvmj)3a|a2_Bz!#HD&E<88>`~}(!xC{+Zw%oA|Bt86fqBq35sLkYxcZe?{ z4@YG^Z-BpNRT;CtiaDW${M-@X90J{sfb*VFjiOA}VtobptrsuF3ym^p1=3p^b8#(C zv{ayLdq}AamXBY$z8JNm{#U~2XqxU7D_kiFiwfO%ITkfN;&UrB{e2JxD=3EX{&4;>s? zXFOsxf~_w>QyQNIhtAVnk|i?$GaT;LlbB^otQ=Wc8&kSY_y}1q8@q;L6@{C}QR>X{ z;>2P^7_u*mKOboa;Qd$!at)?vxat1GwHRCpj_$3py(*!`2uK)&)&9 z5W0rBU6u3h$7Z7M-QVWO!YSo?5`DApn9qRi)~{Ggs&QBnYl|Z*ngw3XfP1{2#(-fC z1Gf72_P^;RU;HDlXhUXwi3nW>X)P;svxRQRrp4Nm-tjv8_6Fiq&opOJL*FtBKKWo# z(jdYC5WVcokK2%5h!(- zDKIR^O!()}!ta@eW833%`VKUk11{mcJU^q~E9&RAk^rCO=Zw95WJgLP4sYkZ8v`)$ zQs6>}UCe+*3!$n5=Br2@ z+Qy2%75D0n5(8y>Rq$czI>dDu@C}bGgk-$54ETbphM1Q-oKOUu*jtDysY40U!1sfw zg#TCI3$~L1T%4RVh@2rolVrU#oA$CohOUjU$KX^LaLToWsk*N^^bKmjn@ad|NIx z-MFjl0XIqs-~W9%#1f3fbY(T3j*#cUQZJ7aXTVb#aD4RXf_g@!+XziW@#QB#gYP!p z%9UouhMnvVpOeR0{)BO^tl*=DfY{DzE?M zlET#M)BT2Ts$S^YzR;lD*Yjer0FH9m^ZtYV`2@|&u#cv~;}O;%#qbh(1^VR~avWBb zp9$0$n5wB^KlWq!b%Ce>23A4@b_QIF0$1q+=D}E?1G3)#J%o=}sMHWfUdkZn)Gy+- z=#Q$`V!)qdCFv$J;P-Eu0T^T{jT!giz%)32ghXZ*;vlIMv0-jG*$dDGazJ?cNj(LY z%{2tT#O%I{Ao#VC*3dhjKcM(EkAn*V{?MUw;8owjV5YuK3(}SOFR^Ts3cLAd^zqaG z#|HqTs%S7g*s$Zd{S9ykz4H9R)_|#wNuV@qiss;Eb>ZWj2QJIj*^l|KJJUL3>Fq@f zmvRIXDb}>Q(H|I6P%ng-G4crI(=9jMyY(;RIM7k)V-D&~-KfJfMFc-P757XFS;BU>zsT*dB$;OJBfUfG zYsyW5A(d3I!?n{lA^kEJL87loCP>&CuuNT>?rmj$qgLPj+>(tAeWrY_yND11Bd!8}@hSLEC zKR|kVYh1`88&)0xf9&~IN?Z1e#3VT5t_ zYLo_@ODS(iG?xn7Fkri>6<7H2um1ZysEfN4?%}!ZE^jdJDF|zoiQ;f)#MPult&|Q) zitDs7bKgGV%6Oz^5Un|p#DWCV8~{!|>rJdOAvgG92HRRnn6Ttub!iN23-IQWLW0A$^%?Mwr$@Ax3<5CjGv=9) z5CG%Rp)g2ZP8XYP1*xyv^9r0cP$Ks{^q5mju%%! z+U^;pYb_d0-bW(QDoN@Zg$fbILF4>%0RF+7K}L*Q0(`p%Djc6-^=#<3W4?pCFaqM-PjFI1x`8ilAWRBW9tj>!gRyGcuHkIJLxEJq_qoz zDPHpBPWu_=p)eQJK-GnoDAs;BP+c|ywoAcMXckc%k=wAmm`D#lH)X(6A$ZMU13kPk z;-lB-EJ+dXMk)zJzq~}VgCrfWWA%mHy@l<~;cD$c>RT2v{)YcRz*!!h`Q>FIHEMl=u+_2Dm9T05@IG2~6p2fd*|hw}~-fo@ORw=`{nf04Dvyp)?1x znuh(@C%kLZU;}G5+hQ&QRzX+?kjuazGop*TSp;B74>S{}H+DfcIvGc{lj2L*n}hiU z{yS-qGoea>fkIc&Dkr>N(v`qt)NU?GkI+@KtCvgf1)UdPwo4u6zTS*0v|uMGRTM_% zw92#K&~GSpVU>fu!t1-P($Y~d4J3BfUltF~qN^M%kwY{nF&U?aV%p*O4o1>=hoiv} z@D)mKV+PzTBAmp4P3q*wj<0A4E{Pn#13608RgC6#mXG%gW9t5_#(<~&GJ6d@&@&IL&cYUF>%M5{|pu1}_VCP$YRyAb9i_=t3QI=);Mo z0B{f8w=rSWJtPw;#xA~Cve~+o!KrP-0(aiPvawVi^!=dlm%JXZC*8aJF|?6S z8L+8BqJsfosO!FL{>yp^#TJqm&;??q9XFT(Pb9$KCYq1wYdyWn2E06BIXgtCmXWOR zjLqmQ6zjj-Un_w=oO=<71pT^-sEM9Kdolp0QX!Zt7tVk3G&qNIWN$Qf?;9*xs@(TB z_*-YZT8yq-SM_Azy1%aG3>e6CCGjX#FOYIqqVE~&?)yf1Uf;Mn0~UPO6cj?OO9BDI zoK9yHS#yc@T_wQ?ZqZEJptdqi4g;?KXw-ID9UJY}FN`5*1Y8M+ zIklr%1h}92*2<&MsnV%0OX>~LHvic_UPE8fkmiqd7w20G0~WafVMM0G(79T=#+4J) zonQvdAP|^_*Wd5uNtbq5euTL&sDi@fE@)dm2nLL`{YrwIYCh7%iBa6zxG4jU_OoxP zJ;&4chn@&KdqX0G!@RF`zI9b-wW(w`g}q>hF=s412cR_(xYkR|tVqgSw~N2(BcXdD z+`FTv4R%Y+<&xu)&t(=YYFvi!3zYglwGzv4JM@)Wba4MiT$1KCXho3ar93Ug(NNQ0Huc$|tM69|W%pcLY{%b#mu0?3w zGs(^FURV*XBZz6I!K!#M19oAU$XT@sGmM4ZYtY?p&xggXfVRedg=$C(y&4tsX6pnj3^lo;& zFd?ysR68@SvetJ6%u7XRYn60BW!9b#-=PzlFA5dDcojzU2NTc?0IoKyj{eHMr0MMUPQW)TX!kTJQ#gzRcjL%rFk0t zR4nsp5T1b$F9lFsL42-pA^6smqLYrb%KR5|-vS1<9IT_BmuFXnYr}9N9S>GYkP1c< z;?>;G19TWc05KS88Xm@%wLn6CVAXgNprsYQz860!K=on@Y0338q7d!&&Z7!jSk>(pnYlbPUkx%JL&^b*~Ea{%< zZ{8hZdC(b@)6m9IPzy*Csq%64_$xP#gUp8zZ$l!!id6C_Z}W>3DOn}s%?Q;Cj)Xhl zZLj^#`(|$`Ui}_LO&A>p?2*JK0|sAs21ASs%vYINyiMJtsFd@lBi>V z0D2g`IflP*jKSOLHO+GYSP#15n|{Lr>B%wb!7&48WWDdVhu|VX4=)|1KGeC3ea>|Z z*yUl>M9MxNYYG5&%z1;NqX}Q{IJ&$}WGQzT;eUqJ-)^Tpz@f}x zdjLLH4t4|JlxqpQ`oZ^)e7{mlVViZLbtPy@i5i5Mv@=We29q^k;ROZ3cra)>kPPj= zlY9APW@Ya&+`)1Kl%k&-e}k*$DQW3ek3geeP#FC&>G%v-v=7QjaGed8eqiH%=Ig*w zT{T35vun(NqtLnI7O*=w&wrqKZyda12=D){gYxJZe;2di^ zOnEz~3Z)$_ACZ!NThU1!hu;!fkWaA@QfEM8A2SB7hz_9z151POXk zZ-e_alxTF5=QZy0xG{hl2&2h<_BMsH%*_^?a3tvn z)*`$(5I@OD+?2HDbPiuWbjeqN`JvBx^@jwF4}Op=CM4v)G839*`yJ`#gMB^zrCVNC zpAPi3kn<5GXon0t+crvty^H~akHAuhF5ifaZ3QZpzoI3lu{{Ik?6;MKRUjUtiYXC4 zm=)t(UMO~EuP*_5q`$O>kIQ=73 zI^}8%7~FKMYPRCD-#R3QDBF-~5J$AM7oh2ajxf%E^XK3p4l&>re=CRZ=qQ`g(&y^n z!iKyvZX2*bNBhpt$6CalNANeGtQHI@ZvdZbkuo$h|8qFdoL0g6 z!{Z{&n+z5vR4ev7V<8EzK!kw>Rqn^}{E{BqSOEQO%g+-92b}-Lpz)F#iEgQA- zgPc7@h;e`N8RDA<#85+a33xzJ5LMpjc{@%VxDjq#+EpeZBqm zZyE}=0W~eiB_S<7NExMDnGWE!)>JIHtyUua=+&~-+-LnSh*$fzFfUw#V z1~#~jvUV^fZ)G`3@0B|PZc^ZAX2?-9;HmY%v?Hy5g^S~K0IC$s&tJr}VXHR7RJ=o9 zgm$Izk8Z-0uL7t~$7FGXu!eIQX#rfSc<9HFnQ1ljqz9HWD78cajk~ZMf@eXmm7gCH zXa_!x^lQYoj);-rx-fjRaj$dv1>#ZVt1FLjJWTD&GF}tm=Y5U-bjFlneye9eJ07g! z#j397ej`czr1^N*3y9V`yK69Dd(i<@_bL$l4ZDPQqHfo9B zN)La@gjUP#C-+QR6h_Yh4RaXqeExgij5n=--&9)%J##b>YB~BY^1ZbxGTh3r>(Q$z z(+jD3x>xY^M#4@8BJ5=ppk5!?|M^h5^icQ6i7;7!cZkBZ#1 z%9kK0<*O{YvMVwua$f~tBokQ3jkOwp8w_~F!YTk5_!Yvs{5Lu2(06Ndrq#X*kw9eP zfAO&}OBlTqgFs&dg|~Du4-t?nk&_6| z>qBrH1L1WUu;Y7X0hASTO9~bXzG4Pw>xFKWFI>)mn=|0J2Cz>4J$?UU%ZC|V;c<2O z?R)+PA|DIOc(|PA^fVTL4TJgOiu9@a$U5?ldP_9_ofxNu7sKyW05z?O&D4VFb5-*g ztn)%i#e=Uk`h9wX8N7H&Iq-y!zRTv|Ezg1}-ND^^-ewCGV5H?IYWg^x0mH;aV5v*% z5RM!Nt@n?jbD>~v`6diFUP+R8&|@B7pO}^vzyFLf9lD}#kB3aE?$GtmpC_4w#SwTR zH9^rNA^0!M&C%MpeCUqZw7&20$3LR?(;(xEMwE3@R~`St+i$<&l%??Fv0s}5Pl%rL zxTAeq4Ds8yJ2=_KD}3$fhC;7518##dNDDOYDTJu=GJ*Fn7;m;5+cv6vS8_pL>v#W1 zU>^^E&Aa5EBwo>n`(4jq>ylD2WU#M@k6SM-N(U4t~hP+E47|(GllL7enj~|l&I4`adyF#pwP+jD7U8 z-ikj6-FDCRfUN~73W^BxT+k4_|r9|E;a%(TWp<<@^R6bCR}-59f0XJiBtzGGB37QJ@DBv4p8GZ z1zy;O#4K6B5E%HoK!ijKpsy3*yt`!LCS&`~tvLhU)#zIvjQ>J)C?iCb9-WRyWcYir zP;M5LW+j6dA_&jVbYJ|}9ItE7gIfx9tsg`#7St}~dCa#(bmsu@*>?}K2EcVouC{=E z{B<5`9{0|`3bwY0H&WQ_Y;k9JtebD6VSWO$)?&a;DKJQE1|D!#H&}EgaO3ysW#a_VO&!y~bV94U{_m^$XtufqGe>^_5 zI){z1H!21k*I>YQ5eZl$gD^_h1T40X6h-|)WTDTJ*ZMN^`JWdDoF_40@tv;fgWiu> zYMnVP77CnjaQ|pF&{qat*Py2L53w+uy6yoo7t1wb zk-d_87y!mUSNL{A9Cx#xxSO7><69Ge{hJysHC&4U+dbfDjnI}7i_0ZvBJ8W>?DmJH zGhl1{+K;?7li#{)W-suqo-uiSLn@kr(%9Mm*Pk3FE0Sl&EcYuqXimA%1 zDT%ELOT3Fd16H1H#ehSIb7#O4ewpzl#2ref>ROk7Lz#&MGgi>R~H;Ce*P6>GaxIvm^Q+I zVaggXSnavuaG3x@rO3{5uYSpqnWOpuRks*IT*QFgT#ouG?oYEDJUR3}t{}i;w}KXa zKlkiA*hTmSNHBTZMO55a#Dg}7zm310?ws+`*xWy>GLXH{`eFD;XNedtEGta=Iniar z@%fuVRlPTRIRgeZ(UsH}WF%!-3kGJwI=>AA^F(_X?8kGAFyJa`&zJ!>g=l<#2kjE{ zEdiK-yb9s5Z?mupRU-a0IU1|Q=%H!t_-AHU6<_Zq;!s>et&nwRu)c-1Bt0J=LxQWp z@W)Mu^0;H$axhDYp-=Qwjo1OwEhN=8+A{)TJ|b{d;T8E~}4PvZ z+-I#zV)4ypVch_QKlY(7q`#xvL={8r9uiO1$X$^YY^n4giSVnui8M0`>z;(^varUI zRP|%7IRQD{e{RP;D9f8hd0p#Q;PYUCMbWs47r3Ckc0v$ol$F>PKXm;^tpH~njnFJl z+=Kz&CE&)jxZPa~%~JuGXfpmTyGI3kd03KhWC5o20eHcuAK%`NmwYpl;xcLvv(vi3 zsuS3XZ~2E2T#3`R@(AyQ-%cdJAS$b~NCMCr13xm){Y)I)JypbOp1*ZNLv)na=y{)( zxuC(;6sl}!AyO-mxn+ThurULU_bEZs;eH?5_;kF+DZpRH+*qJaaOyVT*+4 zDlpe=BSPfSS2(#;!9+a2!5y(+Q2IB$PnqsVD&l1rBX!+a11 zZi@!ii4+BOjddGIRV76Q#`764_nfhB2dxT3D_-BJ1ii@-=0?UHe>`15KWgoQY%Ehz z4W%4)LL;fAn=3n%y)Z2J@guq>=7PMfkuZBVNkLiyXeo!}yGO{&j?fXF=N9)~0e~m< z67t31QdAA(SfJ^~Omf=OD(Lk;BrapX-exekyTGyftjvcpNj#c%1>wj7 zP)&y8447YYsBCGU0e@x3)$P`-X!LxNjy4JxjN#j+W2hZfYOC{)wFk1c|hrTvniR0*7Tap~-72VsDYB!Z$`;5nk zt!~r>Pm8{A2JA#a*M^2{hc1&~j+iPBD@MCETGv)u_724EllXXz?}DdM z044-!L7gwKe~ZgbVoeInPuz7K_I_4=X_RNPNv?EZ5l?(3tj=W}=Ztlgh&j7VM#siO z;56$yz)>y_4+F5F!DS#(c(AEyxCnG9ZVTE!_wvMiPB^SL-;2vW$c=`cHv@*K@-`U5 z)mRMDgvH{aSv@cZWO?OakaE5YTH4T{Q4;)xbm!q~!RIP6-|$Mlqz_#H!1D!m4}f8S zcx|gJ56*#UA}y9Tvr5LumURoot+l;nYe>~5puF#-XUl|=056fF;W(;6!|^Yi#euae zOn!0-I10qTi!$qVqIhNggRMu#=eJFtPtSC*e7&9!ep8AXfBq7$cM^{pV|i)cB@7rm z>$7oV)kw<7VmfpWAxB?(M`BAXcNj2RE{^J2BTitzHzuA}zexS=!_(7NQ(l_=Y-axB zWxQf(Di+hA7c~-w`w^zOk-6*!F|!r2`al`+Rb#Al`WMwTBT0TGPA_G_aC(BVkdC=F z>)~Y4(!DT?tjNSk*gT~(sjA` zq_g&b08RL|B#w&KMqiRExs2P^a7muztT0&OsFIbf1DtgcvMuQ)8CR1eXqdutr_$qa zO4HYZ^WPIvmht~3wNfIotOFJ!>+o>b|r5$@h^-NXRsZ7|p<(0VaxU=B-{c$t@l zYshJ?Sj#2haTbbmT`uBmS3;?NPyd!A{L)m#Y>TxEVUcF<19JcdST0aI=nLRkvGS~> zRu<~V>a!tq$F#%jUCrXIb2rqgYjnBdvOZw&UuO%sv6`#OR&aF4XZ{4Q{CAuIi>sRk z115k*%2u3tdGzo-4flTgr*0sv91&K+e?=C9an3d^Pm76cTK1_9-g8*N8X3ZOiM(<^ zL>X~a^0S0L_TG{n|n!1=`&6Ne3cKVtKz zd%)c`y)nJ^2(bOaX%o#{cR~mN7Q*f=TZ`y5kja@ud%DhBM#do5f~`qAzHyuo=wvRz`*-kf8N^Igq8 zDr6XJC9nn2>n|pe;=#<&EN8g9-9lq#tr?U;bR*G-n5*4zwF zW#$uN2Q(3DBo+-7{o;h_>J1M3+pjZj653QOVh_xk5W}w0cG`M3@cY+s&69MR3csFH zNzZ;~yP#XDGiWXhT7Tv?XW32|Bi{u!HNercL`nU8HUoAF7=|oYar4K>E=-LG&^M*= z4JC4*5ty#LX2g9}syBfK*(VP1(xHzDp?bg$FQ5@Zm)UUAeAl7WiC(H$>!BjQT$2b*18&UX=ky1>mM5DZfHn z1MptdJ%qn-Tl@vliv!-7{E9J?jrYnVNklCZJM!^33c8l6yy=TchEYELv1rr`${g)l zu&(-WJ>Gypd>sjT0qA<~@z-f#)(n^q<;Az>c5MRyOW}yTmmxA8JR>siW{3l9{u&H8 z)@7-Ue^oExGdx46bC=&6{L(s7bn`qteFcdwfL|JXXR$8lc`wSODkTUHvr+Vxkd)_) zCsAIJw!)Sui_5=Q7N6DdB_q&IyuXr^Ojp1k(0|sy!=J zGJtcf5Z7nG5xjojYhI!~u7vdG-&Y6Vkuw>l@gHhhVd0XE{2GOXBKFZmTUxf_+kYxe zf@rn5>v*Btor(&D@S~8(ZUEI}EYv|)IEZX(05ycmAo%?k8CC{h$nJm|Ny#N>2FbU> z;~4&$pUtv3N-h%-5L#Uztcg z>cj4je_i{w4=w*5XyxCB7sA2XagjnIp31o5%8{#bCsJKS1rclZv*<6Hqck^AN!KB% z&EO@&-#NIKE<^D*gwt{fx|vN`d{1K+rNFI)lVqP6R=hWU;^-L zSQ+Zh06aRX-Do__0yfa<&ZbJCk=2Y7vC=jp&EeWt8Ph@&zhQ;Bug!+eKCIZsME8S_ z(^b_hS`|2U7~TMo#Y{6=A$9=+hH1OOx(>Lq->3(`8V5Pr%65h*A(@A6t;T>K3ykAm zzufKyQ;e$v@Phr{xXo|QNdoQx*wo$AT=Gkc?N}v}O6$F%r+1i%;xzmf{YVD2F};Q~ ziomcO@aBNKTQlf6=q}Z?j{Gb0}t6P%8_CMmV zSg)+@+Fc+k)6~x-ZGQHsXJx!oh-tzZ*;UvmR>1JTRp7341k3P z>-^_uf?|WFYqH3{pB~|Pf5Fe=AtQfd>n);`z=@(*lm$J6(JT?G0x&4p%_6m7=`tUK zo2O-QQiP+Pd0)(cA54jP)M#p24}nkH+&W&#o&mT@vZNxIr_onp&aK*9`(@_OP{9a9e1O`12Xu{d! z#=Gqg2W7{%%hB(qxErT@;Nm2#CMRa@EC3PLQ3t((^A;3gjfVMcQQV*CPYBadz!+%v0%umVats)KeASH#vGGp5dV+!X|K{6~ ziy4$(J6dcNIBaIX(5m^J$$Za7dL0xiSI4OE$H`(lF{z32@U~H>c zgFQK=3&`W12`A&|C5&{62@3(}@eV)-ygv$S{fMl*k+lAB`H}|9s zJa`gf6ya7}TlVL>QAdYJXSBZUYcOE>(L3_)2Wy_Q&ZN4B>!)VWF;SD@mRi5b^JJ2^ zZVk=S<$SHEjArQcqeo6~Q;-!E7gcmE--aa$iTf z*>@&&`9v4GqfIlgpmz*b$zrgoC(OPrW65%Zr9DutqV@>G?54&y1Yi6Fcn=fM7)igEoQu-}i(7L8jghXfL&2_R;c1qX0MwP$9=bv#M0LDywq2?XwXvV4_ll53RpvvdKBw z0e{rp@h4sXpfW6dzbbB4<~bI zGgh`Y*AcMrf<+e8A&^D-q$0F}v|!N;IJ$Mi5w!by-K(`PDH$Jd`!A~jc=>Ox%QIs8 zolYKQEk&RyRSGP!gNUoi4qB7LgozKF+jCxAu-H5ANVnsqlW+Hh&M&~$t}uYMU$Ks0 z;Jrws>E$|{_^^284nOg}#T^cRqf(+dF3HG?5e5uniO}GD6hJdL8freJj&d$ettgrp zv`Q=yH0to{OBk>h$aN3D=*P$GjUxI^w2m5pe_E!(2#f;-qMHDThQL$m&1Cu%TJ)L7 z`D(cma3UjKl^x!hl-$Buk(#m*5+gzRk8K9Sc%8`NdC14{=TcQC{{H)J7P%!8j>_X3 zH4olEf(8z~wwxhyNxTF|o686<6xz9yOI*-=xGX{yqggUu2L%^GMEG1HGq`dFZ5E&#(2JBA5WhQN|3c{5>D`Owkmc(T?a-mPowTPoy30(Q-T z#ub4UaIryn{8Mo&N)64+h7FdF_5LpaL*bsD9g;uNw#e znk`0?ZNbtgXEWdc<2p5%V&GcNz`J;(C`DqO!POsaS{K%2z@UYC^V!|=gf9GLY;4zy zpA-RaanDII8OMrLaF&x<5`Qv z91ih_TSZ-64##XmoJC;~xW+4_krD7C18{u$?Z^G!$Zvn$vhiI`Hlv}6i(JqEuH#we zKxd^{BQ@}K;1Y@z83`7mK~yw#V2@}j118Z z;PbIo8AC5kgGuB7v7S`bXbG{g#&*a}U>;SadyytEV72i)KL*^JBaVGxDW3z%ds);UOOq zG~S2$thSHDM7ZqylEPj&!ic~Bh_DAj`%l)z`cVBAve>hZ=8B_2q|S z!uNZ7pYK@~hz;phwFASdNmyXBIH2%fU^8I=SyLEUEuq*H*1EaV>NGwB9_m8U-N?53 z(EYRr8$*1a<9oR3nMcwxK${EoQ5ndCvNAFw|1eaag_SysSj+Oi(}cu=IB4_M1-K^t zocA?h`NaEdR-Op%(7u7dr@{3?O;g{(j;UL8+zIfPRsABgf}Pf8z@A@=2X=s<$WY&0 zK$oe_)_>&(WsJ;#qX*a?0|uKC7Qdjvy92OKfWv?M$$+#cyysmU6v-GhrvvrIuGgKw zJ=B#c>mUyzbfJ7Jr5W$bd)!(Jnu*<~0RTSxk(2)c>id+s4$%u-Hg(J2d2CF}rognv zPu>tSw>jlUkYUi5Fkl#75iZNV89Nmui^U^xkE6rkIVqmafE~d07;qE}I5w}jR?wvB z`4c@>uX&P)SH0chtozS@{Tt*)QI(*J3SH;8D4bf1J99e~2@WhNunD-VIUrj*pW*EY z6DPPgh2md-or%COB1r>~4&Z=7jCl)T4Z+H_(eD?B3G@Vxu<+yJOApeq9uJqV>Yb0$`)!SvxU=RB#(&4gq7)4?G2c zefF9|pI<6XC=0;HV-W%3{&@88956b<&_GJJ15AgK8UONb-Jl6gq%*$MLFUUbV1j}5 zY9^nm;pgcA7%2wpv@&ywlA4cmMU9{TKAmoo(G9DBK6wSeskbtS;2>n$cN58ro>QAB z-9&3KiX0X;9B7N5J!A)PfY>faq&l8B1kEdpC~CSH!hn%slccPG!3=@LW329qf;Kd( zn^Kw=iX8zmgtTOKLg{TMBK74ivd$CL^7NKlZC<0Mi5V*9&Ld*{ohmm zTX?$@*rg^0(Y7ZEr)&5tk;~i@n$En6lZG^8dyAY_JLf#Kn0el*}|ufUod@3F<|D<%1PRjdIMm0atKGOe&7V&IX6}w zYgel{woQR$n6*?0I)40RXJv&04r^785UJ+zX-#gs7%=N64&T;G@yZ?s94SysbEap^ zg+9zT+5O13HBZ#uc$fD}K0Ot#4jh2@dx5~LqN^8x7cOnG8)&C}L}z@k|N8s4d2`SZ zsb8p;BvX^)eZrheVQyuc&y2nMw}>E;qKl=fpaG?YrAwqK6f_HUO0?C{ZLs?1e_R~@ z<>BEW3^^blu=Ty+3$VcWrs|BC~k>yfc5F%o%tvpmM$~9^(qYow;cd zdA0)2{xO3}b#$RH8M+%(k^yHZLx(0LFgpfb4z0K*sWNAfZZYB#9Z{l~y^8J>&St=T zE0AKvciltPu~6*&=Rcp`P$0JIIv?aQXb!+{Z?W!%>x$AA5UWb{U#+I#8Lm?SD|a)X zl+Ikp^D?&ufy15n>mN05Q%C95UG=vX0ANFb16&o$bAKd|XbA>Ws1%Gf@(m=;hGi+Y zFjJtER#sjWbgKGlsU&c{b<@*7*Zdz+e8rzNek1goD*@|7F#2@bpH8v>tCj3{(&73c z_AGIh$Mkt+6>D}5>E4itNK23aQ4dnRfgfebIlatAu2{^rBm;(_$^n)DW{tu(o+?ZV z(Po7M$tBqiESW38X27&-QWQAthNJ@ovMFg9_$B=CRBz>Y>>AKQ02~k)Ry%O}3q%rFUKr}qnSR%LqI&DE zVK|guZz5aWIo*)BKLeCjG=fM6$TuyGC8NTM%wRDk8L)=t4hF2HJR-zi+7jv6Z@olo z#^E$pAZ~2e#vG~59vr@@UNxd8*pC&S%vZ?5tiXyTBicZxn_vhtCj=&M&)j4tjTR*A z-}q()tPl%DLeaa|3Vv(IVw!4H_o%2GJL#kkn#YiaRMqCG+ zM%4r(MxKx~PKVWqNb}ZiSO!UGRj*oDjpR4n$N%?*BmsV}1246GrkBsP5@gy8?tb%g zO`-SGmUsQREC7ZpVNQrtAMp)L+p6fcFbknkiQ%yk1}2lcTGdpe8L**6-2;_$ay6q;5?IPQq0q$V;(Uyu?C+9b&x1man zGhld?0S?c?M<9&-w~ud-0qAolbg}#K*+S6ezbu`8U~K>#g>kQVWdiUHg)+fbVKf)y zV7!-mBr&rjvXmkX6^yrv#MF3#sEC|(mbot?|_{iFPQ-xl!{FQknE!F(*>J3~f7P$~H zD4GLCra=RU$x;SwN@7k#!m`2YN|Not0#!=H0vErgdQ9TYL)aY7u!(U;p1603a<;M;mH1ZAvH7%lj)Qsdy?jRmx) zGGO_)tYqBiDt@%B<8Qy!drJT?N@B`jh2#td9CiN!b{JX*kX`l`1H5i&7*b+^!e}V( zK!&c+vxJZdjw}{%hGMQl`VPRiW}`$wdFVtcL?f5bdaeMx9N8ulDB1^l02saCn%0b# zG?vRipW7>qrs062qMetdZ!pL^2G;NY^PB_Ez<|jNLO)`_`NxmvzFj1rm{P)vBEaKv zKw3W_KDdD$xRzyco#RB9T*hz}>LIo-$fD=yn+_!QFMYXf-nOf@Avf}iP}_{~9ncm) zGb+gf%(fcVEV0{awy>#j%nVtOP|`i3@IU&_+o8^3qq1l+BK8 zKI$W>=m|MsZt>u6PaGZ_ejmL6gkE<8O@YT#wZ-%@(8-9Cp>(hUq(sDB$YRA+!|O>?}ByF?W46}Ywj3KT$|Zsw*bhpUl_}PZBwR^ zr}3GuVLw${!2i1`vzHyXU=4=DlI_Dkm;JK!OlW&ueW>0w;>&?_o_eGmxn{EU8i&8R zgy7csgX~UF*ew&Y@Y)$69P)m84vy!iZ~q2M+p0QfaPA!rY@t@R6Y=OkdpWQ-x%+rI zRst|T03VyF0Gyz}nMGI_9)d;!qJ#dGD1;WuR*dj7&1n8bR6DSciiVC(4`slqxuZl( zKNnd|4*2Hk4U`9je|?y3raFxZv!c+t+IDqgTtXUPR)a>ymoZcq2&ScNp&N&;SmvTy zZG?^>;l$g9${9fo8;aZU49>%EkP&az%6W?~bJiSU))vI7)~*?@#isXS<%>`S;QNN4 z^TAgZ^oGX^RY4;m!U6RFk3_fs71huIk$Eau2A(M`85t$JJ9EJ3VZa7T-!(G(!~p!` zWxf~x`hAyP?y{?=pqq~F2edGiH4v3g!Pen`$iy!Q{x{G&dlJG+J}*I%l~93KTETO0eK%rw>$LLq9I$!oaKTl8eSoh+UU*Unx(2W3 z#O&MyXVHT8u7yFkp~Q@+jym9*Pj=soD7`(-vXXL;5^a(@K&!Y0^ zBE=Yrs*qc~C60&Lu$0ur>WF;bKAB{tA^PiC|1HPCD{#6N3>j7`Wek<$y^u{8klaVz zyE?V&V@R&Z``kp}k|G$OFyF)576RbNmO(|S<^eE@7gDP-nVXfGxr#>r}5=8`K# zliL_?3bs|S8;ShVl=l6K+P1}(XQ?F6fvuC`HEgRBR6Q5P1goM^bilg8V|%N@+h}G8ix!w!-LC!qVyDo{4^Z1fJ<$Z(B>o?+i+R zviwMIrnr*>N*La|#&!A=fVcNTDOAD$P%lceM7|c#by1c=6+|~NbX`@TsY(f?3*K60 zte^2N#?)}wwI;h0E_oXFNw{wtHmF>G@jZ;7!@PfHF#v|upTrWttmQ}=7ZX|Tz|s~t zfuubQ7#$3_JKRi=$8Tqwyn%68(^fu17=zat_2Vc`-%cYqaHKbxRK|c7dklT6O85%8 zHd?4-`N#(7*6ZUDb?T~W=eE#_Nnh|tG8d=H7BzdJ`N-KRSBB&T z$(^X01Wgk|_WSs;-60}?QzJApUG*=YYYoYBtZM>}3j%PjaYLleAuI~Pkyy)GgT_*setI`*liCmggq}AV;9B&$g z{F8?iV~oB5c!e@km*Sd_&{<_!paou^1@IK`ZBmCaULKNeQcwCWw&!;d-yDXhp5}ny z8}&UN*M5th3Viz~B;Vc3)p9vtg}7V=i#Xf82}TP8q!#>0p>oU&&4+(Q3#Ly~g zryx3$cuAF<7v|>2%~kMe!^u6oAB#{E)pauEVNwh9^}@ir+B zEiD=-WPOP!&b^WmMrRb&5XH*P0VB9fvPWK`TM7PKbp1~DGTE+`G?l{l=g*Z@p*1Oa`tPOTA z2Yl3`q1Np0VS;D+oc4QB~TV@XTXQD()7hFBt&r0%D@U0BAJv$%Ftkfm1xzkWQaO!8QaXTKgM#;;~203(4+&@ zB#C!4)$XRj<*P7O335;OtxXY?Nno-{vCOas_vB%T;Y>%R8%=E-m)q#;8AgKP6j+A{5-^?5Rob+K?pfB zova(~23g8mf|r`#yhKHcjT?wE7%;)0#1;cqy~u)*5seQlJul1-3eYXgf58H{j`#5> zddIYyyj48i&0OCFoSe{W?x4E}+1MyJ9w7e$z+C8xHR5_vkgV#f!SPsB5({l+A;heM z$o@X3tPO%U0}jr`v5iEN>RA6GNMisvA8OH$-ok_dts!B+;UHQWDzsW`CUZ^KdX+cK zeBF)70h3W%-32D}&{s^6QKCP0=^AKoXImo-D-?@)RdiS07Xm3SKV0k_F0ZnWT@A@l z*RX+Fac?N`4c1sBb*>aVKTQi;2>>?GsE=Gy$9d5 z0M8Bh4Ey~8SJHZ}>9ub0kKeY&Uq;6`XKzE=H5u`0VNl50kwQZf@m8a#Qz$}H>6Rqr zBuTzP9s`abo%G?P-}j-elkf_E`>U`@&$Q39%pzhbUg`Juk#DgSRpP-;Tr^g#hV?8&_VlR{_Uj&z$(!V}aUxZA0X_FTEc{YyG0@zaMgB=fMTF zZ`KftUM5Olp?gOktUOhT5;o23^>-H zq?NiO?WV6F?%!pJ>($h2EQ$6@gsXfSfEg711Wu?5V-|r{bW)n~wJ`eS&EeL!8|ZS{ zbr-Vt7^2T9YI%Z`qLh(yA1v$<|BI2>ZZVAsK_jQ}*YE5gG!gp!33Y|^4SXSE)HjuAsOBP)AWAU*3Ik-;{&o7fZfR#ZZ&gvrSPlD6| zL84#_Q2<=UmOT^5im=cizO|lcLzLGdmEQYm#&D;V_+(`aO8{_m5Cqjtt8{?>B@{g0 z@K*Nls(l3|=A9A{_PXg!4(609U!+0nKNV`rN;#po^4WZg>?HmO5`qdNH;`Ify z6)fCm=2$XhLnmRq?>cmq84188ypVcXuw7Fpw2qsyqth#<@VZaohg|r>g z({&^HnQt`-z_(sB2D(j|terBJ?<_R(QDRt>61U`*gsm=zK*XF?@>>zuX3q3XpDIW` z8+BRAJkU$|D%*$1`=xWYt6GImhncphU+*?WT>+h9tlK}@qBAEIvH%z;iM{CTL{f0f z%d)t>Wcw(rj$BHh;fxHJAKlV&dScw2Z|B$vz`NJNZy@oP3sH0*ExBV5=itnD_mxRH zGIaG!rdb#jL8NeH?wC6rz_Us$w7tm8r8wwkFr4RH-cMM>{ALzJ|HP6Jm#g9Z?pZPj zUE|%IV_7#OQCAf`BpeAt_7~Dqf#QN^S+Sg?yb^JzGGOXY_zppWr$KE0?@9HJ*A?V8 zYx!NA=hmK~5FB{$m}N%FVg3BDfBbLDcR7jWh18;l7>p4^^dj>DXI1s36t6f0vwk8k z<-C|uwBA_wM_Ne_pPzcQ|9KCbehyc&z>f&Pm_(4lN}Z)(bdaGGWaI1RO5!WJT`gY{2z0Y2Whbc61lGyI+rxFX*JGT=d>>nQw; z&|(xd0pCzq_yTihVAA>7NQ)zb0b?iw7Juxg)L@bS;g{mTcfR|YA463=#(ds*GTnzC z*{~}S@EydQ2<3J1LK)y?8dLx{G38QJ>U~3d@AXl4@Ju&S_#1GiKt^v><(05i@awgXNu5a#fnr(hG>ktCI|IvFq-sobav z+S`fWH9~2FM;$v~ct0bojuNs3gOm>8l=hTlz)+f5kk-3ChD*;(?{5^DBFSpygQyyl z81l~mz|H@08(+?whh*FDRnYJF`+NYr;0YbF_$*xo4a1L+i*T@5bSTI|;J_hO%p%uU z0OsGGoR*H%%2-_tn3`82^yh#TA?IwIDz9DL#oj-@d^!m_>ycLk-N|rItZwS|&)Ml$ z=x8uWDp733Yq7*ZhmUhC>w;jN9F+!KK3JSTGtanzBqQqdg& zI6;uFVAnLaw6F9A4sb05p;;9chg!yWq3s$n8Ssw})YAui`El0}QqkuMzS|q$KE4S} z4G&);8Y%1#S`cMc2)qPZbw7E2u(d*;)hs_j}{d~ePS zZEjm#9SaZ!x+ege;*~#_l2C}HinJKwh7fU!wu$B=p$tvPWx&wnIby(M2~TQ4jtars zpao&8Uno#WnEe*I_g0RSZq`q$2yaCV^VGonEDv7l);32vkJajMS1~wz7R?!dxcdI z7S9cvvs6VpaqB}0T`)@YL*y=R;~=P8~|$u z24rP)P^ye6Fh!QaX$C9=JJSp}?LJ5g@n7#M#LtVrL2_zJatlMbj5NjK%Y>ll0C(xZF^_1Veqp9@Q~fYF2~7Zrkdo#V%Kp~5%}I=3rasX6@Vu* zWf&d7Hx3N>F0tDJv3x5jiYiTuvU9*1bW?r6L>&=^%7Lekw@+{PXW=8)F5kCuCvehR zz~{|B^J=H?uK2NEJKrgo7;UB(Chd3kn}}V#!&eWWKR%3Hyea><$pGxi@?TvA%_N^G zM4gE%av16uWOy=2$R(}IVg0Xz0TbfvFD1dag77v&XW4imi+C<9%n$uuLjc=bAJw1M zGsU?#Ed(2LN(Ul#Bl_0)-V%8zdAX#D`aqN{A!IH^( zPm>rhrEEAMkZzf_he5b0wRE$Yj9pnp?{LcMt;(?3)B6KX4SwOK5#rGTEoB?i*c>pAb5mE|mmX!UpxrAid2v4J;$)Rl`4klUG!K>z#^GmI{wr2d zj}3bYAKmvwdSGF8w?2Vql^1F>(gEQJ=3Oi}!otfpVZfEA}5kpsSv=<_4*t;2C9 z_~E*Ni-e%v=XxVXOQ0XUHu^Le<%3#0kw>J>DHg&>IYn*qK=hZ?dw?VXnSie$sBOehN3})m#J@vA6OOiWr~9w zB{N1+gp)!ZnAc&&CWX_gpdnv}Ux~D?E3=NZucA52sJ}@*d&?i9!trxLR16i{H*xx({E97o%Jn)V1pF?FDqd=J!17O$%(=0O_To@Sty*<6#@n@JnAw%EL z5k##-v=W3q|I5Ef6fVGkTR8V|@^|fZ0W{w_{{G6RiW3v~lIjz_dHQx4I{2j*dcT{6 z|M>mfeB`Nj1BWUpvK9;;48R!Ee1yj805$+PO8&N>%d4bW0klxXxcz*2)a{;$u3y|eX~1lvJ>1z<&hCzd|@sfW2=f0^Zb&rsI&;-;U6 z(#MYfld)Ioc@j?la(8bPbi(P4%6xIOE%n2|>@7DTb`V(%9az-XM|{Qo^t-dLvT? z6?8_K957i(U+@0H0DKnWVpxy`3-jLLegG-7hq4OZyTsdA_}i;fSudJ)n(JJwa(p^I z4f;w^sFp0Q%n#TOQzP;!WW`pz&RN?N0#Vm5^J^djXOk4Tg8`p;j1b_e=)0EP@=w}) zkH|v)v8sm2S%Mr4e=o7;+JiLouBt&+F;-#`O#6=?9X;tax|%kmWRWy8Tu?p3081JR zC~YBFL9^~ag0cvn!hoT-HV+yJ+u{em%7m_VWQCxw0qCpsf`1CVri?H7*=^!uF8E<) zII=R}a;vA6qFfw+VFt316w3m|2z-Oapvj?$Z!m7)U@KA8#@P`Jm_1FBSofxZx3n>L z$Gff>3)1ElEz2@FJim3l7G~(YrEWt7;1o zN<&p=q1ED$_Jtsd1+ldBq$H~)7%*97U732&TXGlja|CnOv;&#Top@Sr?hSx{vW0JZ z+P}e2!g@~QUU~=!s^gKbPvy(U5#kCQO98N1A&t)FB=C~xs2`XWPFt41P~A$J0b>RR zOxD6MP8>RWV@>Wz_gnBDYK#ZUnFEnm0gi7U-*D?kQrnpO?PJyzgRQCFI@Y>9G@SXC zWWYO@QBaMpVl0^jRuq_(RtfB6S{a(k&cJ}<_TsUi7?3;PIhuxuGL3OMJmP!3s5P*RhDxirp8HV(2V9iS{?+yJ)%$flaCQDh4X$&}y zLodD6TIO9{jq(jf&r%$ikZuDm`+oPCsIPy_0>F##;(A+D#%nwvYJjXCO8Nm~+~1(z z9k_*HUaTd{uvDC#D?=lCp3~Q|3|LJv8B$rJV2^T^fF&UK*#UU?*FTk5|8)=WO8p4w z(2Tzb=VHJ$euNq)oBP7=i3I85E6OjzLMiPHjQbOGJc3rCGAe_%8-n=^NZHCVRnYP+ zmu1553~9=it&WUw7wa|8F&IV?xY#&N{C*GABIPTot&xLyxH1pC_A_AT7YjYxm<{fh z6r#{fkRx>cl8iOCoj?T9rYpsyOETd5;TqLTf7Q%mQa92~fy2*y-ueM}B_WWR;E}y- z>K!(~B~SIfTOH^k5r*vtV5@wpBmg5zmIJNsG85Z?aB67Ny{$l2>(&4t@n4cZ5~jEz zL1u$>FnTRylV!u``(NKH2j0pK|BAntcHn{Ub~-J&$Sk(8aeWWWfS&%TF1kAAxFtx% zqZjT2Mt(%Pt#+1y@L)q2{zD}5z9jkSyI3S?!$2Z~(N1N+k-jwDVR5>=qwlmMq~HGW zp#t!xpxlF{fXy}6EH_%LN9n7(^YqkFfqlJ59C_nTuY%5GzVO46z)&I_(jJLvU#ZA6 zNJODIz7ok4uq7rrE(c7p$cGKp3xaUgLb&_9+vvU7_$OVk{N2{TED--%3w^@a?`P%W z6^-vYhMYW#NgW5GNes9*J$yN8HwEHfJw+D5O#AA_kpbRtM3%@Ifg)jOLYIv~KLgf0 zm-+(Et6`lYPB8s$e5q^h121`pUuf`3vk2(tT<9;yJKS_nNXT8i6MJUCT5%@1)dk=JmdECRi9Mo@r5RSGImT{XYef`Cr5Y+<3W8mU zd~u;Ntztb%&OaGttC5J=*~_SBRjDqO?gO5qPYIBy8^X}MOqv02(CJ`x(V<3*JtQoF z$(+9&2CV%T=q^1-Q^qlOW%7&k;ArkZ$6ZC>?A^+oFSpNoGq+Lzcp6-)soM46v^1&> zsuc^EF$^h=?$e-zsTU1KbkQnfamQa_eJtVFP$?0$;)IMGFb`oHmJ9~EZ*Dtx|Iuu< zt73tU9sgk8XWTeFE9a|~XWLm$ub}Y#MM@^m2*7@%5(li}E22>1%sZ2qC}luIVlrUD1`ZRQG|0!y!NDtNHXp6`EHC$}NDL0hop; zVcjkKjFc!Bm@YI|d<^AT027P`LtvGsC4s7~#S&7c!I=!06z{&PKF6f%=H)jL{-w{a z4~T|-EW{mE0dk3f#7*SV} z($^T61Ev_v%}vo2Q9Sfy6@Rh;luC^gA6&3)3|bn831PYNT9XZ z?{d%bx5wPI&>_15G`&D*iI6&#v|5>M6FBG&)zwM@wtnhgIvdoRzY+<>aIu#>RpL3jnUtJFaoq6@Iq_vJ&0C@Lx^ioZ6U{q^F zO=7^9Hw%mi;{l^2nl%XDQn>Arf$Ssg4RRz73DB3!p?;*>v@3NJ7h`Fc?*o+Je z7>7cyGwUW{kxM>Dbd|dP(CD3!ZK|T{W_bX{ls}90DuX8jq%a3s=cJ#H9FN3tQD82q zK*4whEY!8g-u0v^)?b@VKngXh(53pZDgeF*A$64mZ*TW{mwCyWn<=-`Qj@=y@)3G{ z&8m%#>xxLg@-hqbGPzDhl<#X7(XpE;LJ`y@!E=&}qL=yxcbf32-|;S?4z{?;9q znVc9$^@nvW{tvj{+uvtbG5Wgjr_>g(t_Y>j`qa4`L{52x0t|Te7T{i$to92iRV)M% zEaKmtNEM`o@@S33MHw*7)caebkLz3hX#Y}!1H~7(-HNQR?p1p}{%)_i@%hQObnuBl1%g{LP3kJ6-ET0305qBOEh^EnDk~$V&C#!7lV*_v< zby#Stgdbqq(+VKQf;r$qac$_-@2w-4mqLSUU{nm{UD1+BL{iD)#<9LSqJ zQaE%6@ihD6IwsC(oz%w}?m2G%DA5^9aIAy@V_ZC&7dKPf860$>5#+O&Jwv#!b&0fq z)g^Pl_Y*cM8>5Qt@!YZ>ppJC}1N>?)(K_xoa5DY{*}u!Gs7o^7d0mD+ zAC?Q;Z6`!nD?jU~W4r8fO&=qn;}9DU=<1(*20XIV8FR*~k*>=I?+Cu)UZBZHSTle% z2r~*C_9vtebu0s>R8)fIxNH^#V0Wy`MIBE`-iF*`Rjc|j_R5rd6!DtgQ4Dz3tgIFb z$$bHWA273Q2*!lEB}o7#sVNZ?2pGy5BN(t9o0#u1Sqy*a@ZHxknKhIOJ%^FadJ-12 z|2QD5Swr%JwprU%aiOl?Coo{#6?>Bhgbx|w&7lcNxD;~DXi0@tl2=u)Q4t0lX+u9u zb>}_5$66+lj`wc?u1oyVdx5RQekPT2JjycVOMgLOntq0BKM>AL5LzI;RCgkLRY5d8r4H?mltfon{+1&>NPODkR+K==+vDSyV zAG=Q3?$HBWF7HHB*GZ?-cf)!%ig#+yy`ojndBx1+F%6I*+kzVx!#`r1BoZQ%ZH*Oa zE=v(l)mhvG0|rTZC5r(IHa#3WE|p|Y7K+*m02kdH<@fNkNA|{_%Y<&{HT|m_%oW~d z&7*($(}ZiXUEG@w%IJtBznjj0OUY9DU3DKB2PM(jQU>L|oO1SFKO zA~|U4iD)Fw^dsC0HB-4Jg!aS!ya#~idz zS%d}A3d|L*F4VVan}S2sLHSW!mZWWX`cO*e!+?f!BC%c$ z4*P=Ig7gT)pOUZ7mDn~|vH1GLkdRQ$<4xmfSQkmC52Xtl=l*@o& zF<>ZVYBH=cY817O?JP^rv_Eb4uZp!78i z1}va?o*XbrAuL9{AB?y(b59B+IB0VS*(`1*MP!E;R6bYxPjxb2Ss6!N3E)mq=-fLt zd9^*h?y{?Kz%{P^zG({2|It0jDR4FQy^{S}teIgE;+O~9tGa1II9C;PA>w@QDj8dO z4M?5nw){KDR0@~iD2z;zng*E+_!8`X?b!HqG2p&>=v}>6>Ucl^{?GpmeZyV%AG|yY zZdCx@3QVU(gh@k*q+|0l;6meVH$;oWFh&xp(5)*H_c-D{Nuh#V&X~=BbyuE~IkR_c9nw zr2%e-gj*RjE=EX_;}YvXYMHTU*(Dg-*{UX5hNE+;ppy=ft6pKKd0qU2_|4tNljE!Y z@fXy$n)0k;`@C4AFHD?Jg}YPxfXAq3U`Dmd)Z2j9Ux67jfVT)UV_+g_ToERj42i2) zRI-l&8y*;%{}ycTodqfVW8_Z1oaWp|_&UjTJQG2D8obqud(6k;9B^|al+6K;Mb2i9 zqH1J4%|0?XBnyBg4#v8vC<+uuq3A&jn4s++3Iitj&$DP%QeFG%SbVsy3-VA;b{$KA zFp0dbB1|M5^Vokq5SQR$rW|kwIM3Qu42`%6d!$f!g_aeoJ%|8bE6OkbH-G_Kb<|L* zmTL##I@Ud!`@zkO@7y8S(zuO&r#jY1ZgY=~T<@U#0eB8rQ{XwPpzqQ;tR$eh1=39y zOHkk|_JS!;3U^>7DojLiqyc3aFcl}5lU|DEX;G@d)q8Nog|g`P0jqg;92J1;=rZ*s zMR#R`sm0GWR0TcW9f?^lKp`>j1SZC0NsB>8DfH3|I7aCwV5}Qj&<0pLJk_>hWkqqc zqU)fJ?QdBkRR&6Nq$rlDR{nP$;|R+#;8{S{VK5wPx8UGN7?4-8V4_%0L#t4l&Vv*z zfQK?*`3hZx^jMdHg>S@TlRf3`nHJU6R;5pDp-lnp+kSf|>~y~?a%1-bbwF?Gcr$nz zODx5GFM}EIN~9>yf=~ma-Vp8#t>{K8NZA@KL^aQ>5sA%AG*JeO4rRbFs^i#?HHCZM z`*OD*a~D4({%&JYb<;lPac^dr_8&jG&7EIYL+53qDF#N^y(<(s0WZdYfyE-trYT|9 z(M)!-{il6QU@b)$dw$S0WP~5Iz6lLuz`SXjVmu~$=QU=vU+)6qn^oR#vxXiw%a>QQ zs+T`G^zBOmfWK8Vdp;Z{lOK~HX_5DlW@eKa@Gy+r-8B&m8?(XEzPc}%fp4h5BJB}; zo|p>&Q#`w5G3Ox+7&#i>nF}B-xN@!~Gv+1)3SRDk{=rnV0`U0J>}OeaSN^T*Si#Qx zyv%?9PI(NNFeL{(kkb}pz$3V{sDnmSkR=fMf*-*=I56Lk%WXBWz%(lrv`Q~vif1>6 z0aLUWvQD|bHI$L>xH|lTE9dL$eB5)X@%?qnvEzqHJde0KFZN~kS&gRzGRFuMS(*s5FHd1kSqU^dOsjAkG+4|oMfn1g0fVCIE&KFmc?l0)l%~|P+AARK z@<`=w*1O7h{B>8AIp_OUIpt6J*IH$THOjIm5KBrL2QGP~j-bnPGvLPnVQ@nv!Fs{! zu|md|SSmQuAhY|y3w>Y~W%r-+O@2K?b=;lx zQvZRbl!m0vt7X7g3Ghb0h0rn)2}EVag%EgbRwjoCwUO_Qi=tudhvbRrawJ>~yvkhS z_x*Hrc`vgwoA0mc87fBhYowrLv@98nrifvY#ktnQfcZqF*o7~z^X`y4h#*o2!%Q0Xy z<*4WKS>MF_Hw`a{1{gFmS*%-_`c{CIV6han?^^Vhx*2dH#8DB2jl*H$3(#X{X&05H zs`3tXJQ(kV$)wPAP{e>ir5P~%x)q0aX+YlhVrK zXEtvW8E_7!QoWVys3)UNQU2IJ%NH$DHlqZbJ0g)Bw-@OHeyn0>Vl`GebKDk6OA(F$ zup~IEDd#+n0VmHp$rB%0BrZy{iY}6Vy&t`)t9J$9XNxf8%?~4*R>>3s-mig*MeaG8^)6VVMj6Rjn@1pVZg|aNr#{_gz6UO zm~HhHGc1HIxDr@8i2>&>D)#~4JFUbOm7kGXx?NuY;&iNMqBNd;`}@ZSU06Emt;i-n zTD4HA4Rh3v`+({B7%;{j%&09fz!lZaL~6dFnJ~rn7h@T4XNS1RKM%YHYujZVi;T(T z>gSlJ>tky#l>(PWsW;mNYQu=z)lWhu1Gb>Jg8>t>>3IeQ-1q@3Hz@h4ZPZ+mvkeGDfmxT zC+bWL7^?$d2YT4iL40$To=$V5I_jvSj`=n`w1F)V#bWzp5ud0bN%pET^E?P)C*DRA z_t{t-vfXfoKYy=dGvm)c|LlJH`v3ER=VSl8{ltgy(3;2ZiN|h_U#I2II_lWqMg4o? z`P)tWyT0Uq*N^{xxzDdl!1ZppECkmT margin top +//spacing +$spacing-types: ( + m: margin, + p: padding, +); +$spacing-directions: ( + t: top, + r: right, + b: bottom, + l: left, +); +$spacing-base-size: 0.2rem; +$spacing-sizes: ( + 0: 0, + 1: 0.25, + 2: 0.5, + 3: 1, + 4: 1.5, + 5: 3, +); diff --git a/src/assets/scss/index.scss b/src/assets/scss/index.scss new file mode 100644 index 0000000..dfc52eb --- /dev/null +++ b/src/assets/scss/index.scss @@ -0,0 +1,108 @@ +#index { + color: #d3d6dd; + background-color: #000000; + width: 100%; + height: 100vh; + + .bg { + padding: 0.2rem 0.2rem 0 0.2rem; + background-image: url("../assets/pageBg.png"); + background-size: cover; + background-position: center center; + } + + .host-body { + .title { + position: relative; + width: 6.25rem; + text-align: center; + background-size: cover; + background-repeat: no-repeat; + + .title-text { + font-size: 0.3rem; + position: absolute; + bottom: 0; + left: 50%; + transform: translate(-50%); + } + + .title-bototm { + position: absolute; + bottom: -0.375rem; + left: 50%; + transform: translate(-50%); + } + } + + // 平行四边形 + .react-left { + cursor: pointer; + font-size: 0.225rem; + width: 3.75rem; + height: 0.625rem; + line-height: 0.625rem; + text-align: center; + transform: skewX(-45deg); + + .react-after { + position: absolute; + right: -0.3125rem; + top: 0; + height: 0.625rem; + width: 0.625rem; + background-color: #0f1325; + transform: skewX(45deg); + } + + .text { + display: inline-block; + transform: skewX(45deg); + } + } + + .react-right { + cursor: pointer; + font-size: 0.225rem; + width: 3.75rem; + height: 0.625rem; + line-height: 0.625rem; + text-align: center; + transform: skewX(45deg); + + .react-before { + position: absolute; + left: -0.3125rem; + top: 0; + height: 0.625rem; + width: 0.625rem; + background-color: #0f1325; + transform: skewX(-45deg); + } + + .text { + display: inline-block; + transform: skewX(-45deg); + } + } + + .body-box { + margin-top: 0.2rem; + display: flex; + flex-direction: column; + + //下方区域的布局 + .content-box { + display: grid; + grid-template-columns: 2fr 3fr 5fr 3fr 2fr; + } + + // 底部数据 + .bototm-box { + margin-top: 0.125rem; + display: grid; + grid-template-columns: repeat(2, 50%); + } + } + } +} diff --git a/src/assets/scss/style.scss b/src/assets/scss/style.scss new file mode 100644 index 0000000..e4c3a05 --- /dev/null +++ b/src/assets/scss/style.scss @@ -0,0 +1,185 @@ +@import "./variables"; + +// 全局样式 +* { + margin: 0; + padding: 0; + list-style-type: none; + box-sizing: border-box; + outline: none; +} + +html { + margin: 0; + padding: 0; +} + +body { + font-family: Arial, Helvetica, sans-serif; + line-height: 1.2em; + background-color: #f1f1f1; + margin: 0; + padding: 0; +} + +a { + color: #343440; + text-decoration: none; +} + +.clearfix { + &::after { + content: ""; + display: table; + height: 0; + line-height: 0; + visibility: hidden; + clear: both; + } +} + +//浮动 +.float-r { + float: right; +} + +//浮动 +.float-l { + float: left; +} + +// 字体加粗 +.fw-b { + font-weight: bold; +} + +//文章一行显示,多余省略号显示 +.title-item { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.bg-color-black { + background-color: rgba(19, 25, 47, 0.6); +} + +.bg-color-blue { + background-color: #1a5cd7; +} + +.colorBlack { + color: #272727 !important; + + &:hover { + color: #272727 !important; + } +} + +.colorGrass { + color: #33cea0; + + &:hover { + color: #33cea0 !important; + } +} + +.colorRed { + color: #ff5722; + + &:hover { + color: #ff5722 !important; + } +} + +.colorText { + color: #d3d6dd !important; + + &:hover { + color: #d3d6dd !important; + } +} + +.colorBlue { + color: #257dff !important; + + &:hover { + color: #257dff !important; + } +} + +//颜色 +@each $colorkey, $color in $colors { + .text-#{$colorkey} { + color: $color; + } + + .bg-#{$colorkey} { + background-color: $color; + } +} + +//对齐 +@each $var in (left, center, right) { + .text-#{$var} { + text-align: $var !important; + } +} + +//flex +@each $key, $value in $flex-jc { + .jc-#{$key} { + justify-content: $value; + } +} + +@each $key, $value in $flex-ai { + .ai-#{$key} { + align-items: $value; + } +} + +//字体 +@each $fontkey, $fontvalue in $font-sizes { + .fs-#{$fontkey} { + font-size: $fontvalue * $base-font-size; + } +} + +//.mt-1 => margin top +//spacing + +@each $typekey, $type in $spacing-types { + //.m-1 + @each $sizekey, $size in $spacing-sizes { + .#{$typekey}-#{$sizekey} { + #{$type}: $size * $spacing-base-size; + } + } + + //.mx-1 + @each $sizekey, $size in $spacing-sizes { + .#{$typekey}x-#{$sizekey} { + #{$type}-left: $size * $spacing-base-size; + #{$type}-right: $size * $spacing-base-size; + } + + .#{$typekey}y-#{$sizekey} { + #{$type}-top: $size * $spacing-base-size; + #{$type}-bottom: $size * $spacing-base-size; + } + } + + //.mt-1 + @each $directionkey, $direction in $spacing-directions { + @each $sizekey, $size in $spacing-sizes { + .#{$typekey}#{$directionkey}-#{$sizekey} { + #{$type}-#{$direction}: $size * $spacing-base-size; + } + } + } + + .#{$typekey} { + #{$type}: 0; + } +} diff --git a/src/common/flexible.js b/src/common/flexible.js new file mode 100644 index 0000000..2ad23f3 --- /dev/null +++ b/src/common/flexible.js @@ -0,0 +1,147 @@ +(function(win, lib) { + var doc = win.document; + var docEl = doc.documentElement; + var metaEl = doc.querySelector('meta[name="viewport"]'); + var flexibleEl = doc.querySelector('meta[name="flexible"]'); + var dpr = 0; + var scale = 0; + var tid; + var flexible = lib.flexible || (lib.flexible = {}); + + if (metaEl) { + console.warn("将根据已有的meta标签来设置缩放比例"); + var match = metaEl + .getAttribute("content") + // eslint-disable-next-line no-useless-escape + .match(/initial\-scale=([\d\.]+)/); + if (match) { + scale = parseFloat(match[1]); + dpr = parseInt(1 / scale); + } + } else if (flexibleEl) { + var content = flexibleEl.getAttribute("content"); + if (content) { + // eslint-disable-next-line no-useless-escape + var initialDpr = content.match(/initial\-dpr=([\d\.]+)/); + // eslint-disable-next-line no-useless-escape + var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/); + if (initialDpr) { + dpr = parseFloat(initialDpr[1]); + scale = parseFloat((1 / dpr).toFixed(2)); + } + if (maximumDpr) { + dpr = parseFloat(maximumDpr[1]); + scale = parseFloat((1 / dpr).toFixed(2)); + } + } + } + + if (!dpr && !scale) { + // eslint-disable-next-line no-unused-vars + var isAndroid = win.navigator.appVersion.match(/android/gi); + var isIPhone = win.navigator.appVersion.match(/iphone/gi); + var devicePixelRatio = win.devicePixelRatio; + if (isIPhone) { + // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案 + if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) { + dpr = 3; + } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) { + dpr = 2; + } else { + dpr = 1; + } + } else { + // 其他设备下,仍旧使用1倍的方案 + dpr = 1; + } + scale = 1 / dpr; + } + + docEl.setAttribute("data-dpr", dpr); + if (!metaEl) { + metaEl = doc.createElement("meta"); + metaEl.setAttribute("name", "viewport"); + metaEl.setAttribute( + "content", + "initial-scale=" + + scale + + ", maximum-scale=" + + scale + + ", minimum-scale=" + + scale + + ", user-scalable=no" + ); + if (docEl.firstElementChild) { + docEl.firstElementChild.appendChild(metaEl); + } else { + var wrap = doc.createElement("div"); + wrap.appendChild(metaEl); + doc.write(wrap.innerHTML); + } + } + + function refreshRem() { + var width = docEl.getBoundingClientRect().width; + // 最小1366px,最大适配2560px + if (width / dpr < 1366) { + width = 1366 * dpr; + } else if (width / dpr > 2560) { + width = 2560 * dpr; + } + // 设置成24等份,设计稿时1920px的,这样1rem就是80px + var rem = width / 24; + docEl.style.fontSize = rem + "px"; + flexible.rem = win.rem = rem; + } + + win.addEventListener( + "resize", + function() { + clearTimeout(tid); + tid = setTimeout(refreshRem, 300); + }, + false + ); + win.addEventListener( + "pageshow", + function(e) { + if (e.persisted) { + clearTimeout(tid); + tid = setTimeout(refreshRem, 300); + } + }, + false + ); + + if (doc.readyState === "complete") { + doc.body.style.fontSize = 12 * dpr + "px"; + } else { + doc.addEventListener( + "DOMContentLoaded", + // eslint-disable-next-line no-unused-vars + function(e) { + doc.body.style.fontSize = 12 * dpr + "px"; + }, + false + ); + } + + refreshRem(); + + flexible.dpr = win.dpr = dpr; + flexible.refreshRem = refreshRem; + flexible.rem2px = function(d) { + var val = parseFloat(d) * this.rem; + if (typeof d === "string" && d.match(/rem$/)) { + val += "px"; + } + return val; + }; + flexible.px2rem = function(d) { + var val = parseFloat(d) / this.rem; + if (typeof d === "string" && d.match(/px$/)) { + val += "rem"; + } + return val; + }; +})(window, window["lib"] || (window["lib"] = {})); diff --git a/src/components/echart/bottom/bottomLeftChart.vue b/src/components/echart/bottom/bottomLeftChart.vue new file mode 100644 index 0000000..d8f4199 --- /dev/null +++ b/src/components/echart/bottom/bottomLeftChart.vue @@ -0,0 +1,269 @@ + + + + + \ No newline at end of file diff --git a/src/components/echart/bottom/bottomRightChart.vue b/src/components/echart/bottom/bottomRightChart.vue new file mode 100644 index 0000000..4330c56 --- /dev/null +++ b/src/components/echart/bottom/bottomRightChart.vue @@ -0,0 +1,407 @@ + + + + + \ No newline at end of file diff --git a/src/components/echart/center/centerChartRate.vue b/src/components/echart/center/centerChartRate.vue new file mode 100644 index 0000000..be0021c --- /dev/null +++ b/src/components/echart/center/centerChartRate.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/src/components/echart/centerLeft2/centreLeft1Chart.vue b/src/components/echart/centerLeft2/centreLeft1Chart.vue new file mode 100644 index 0000000..c407d50 --- /dev/null +++ b/src/components/echart/centerLeft2/centreLeft1Chart.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/src/components/echart/centerLeft2/centreLeft2Chart.vue b/src/components/echart/centerLeft2/centreLeft2Chart.vue new file mode 100644 index 0000000..8903a16 --- /dev/null +++ b/src/components/echart/centerLeft2/centreLeft2Chart.vue @@ -0,0 +1,203 @@ + + + + + \ No newline at end of file diff --git a/src/components/echart/centreRight2/centreRight2Chart1.vue b/src/components/echart/centreRight2/centreRight2Chart1.vue new file mode 100644 index 0000000..2c89f28 --- /dev/null +++ b/src/components/echart/centreRight2/centreRight2Chart1.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/src/config/defaultSettings.js b/src/config/defaultSettings.js deleted file mode 100644 index 2661242..0000000 --- a/src/config/defaultSettings.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 项目默认配置项 - * primaryColor - 默认主题色, 如果修改颜色不生效,请清理 localStorage - * navTheme - sidebar theme ['dark', 'light'] 两种主题 - * colorWeak - 色盲模式 - * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 - * fixedHeader - 固定 Header : boolean - * fixSiderbar - 固定左侧菜单栏 : boolean - * contentWidth - 内容区布局: 流式 | 固定 - * autoHideHeader - 自动隐藏 Header - * multiTab - 多标签模式 - */ - -export default { - title: 'Ant Design Pro', - primaryColor: '#1890FF', // primary color of ant design - navTheme: 'dark', // theme for nav menu - layout: 'sidemenu', // nav menu position: sidemenu or topmenu - contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu - fixedHeader: true, // sticky header - fixSiderbar: true, // sticky siderbar - autoHideHeader: false, // auto hide header - colorWeak: false, - multiTab: false, - production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true' -} diff --git a/src/config/router.config.js b/src/config/router.config.js deleted file mode 100644 index 554acf8..0000000 --- a/src/config/router.config.js +++ /dev/null @@ -1,42 +0,0 @@ -import * as Icons from '@/core/icons' - -const RouteView = { - name: 'RouteView', - render: (h) => h('router-view') -} - - -export const asyncRouterMap = [ - - { - path: '/', - name: 'root', - children: [ - - // 首页 - { - path: '/index', - name: 'index', - component: () => import(/* webpackChunkName: "index" */ '@/views/index/Index'), - } - ] - }, - - { - path: '*', redirect: '/404', hidden: true - } - -] - -/** - * 基础路由 - * @type { *[] } - */ -export const constantRouterMap = [ - // 404页 - { - path: '/404', - component: () => import(/* webpackChunkName: "exception" */ '@/views/exception/404') - } - -] diff --git a/src/core/bootstrap.js b/src/core/bootstrap.js deleted file mode 100644 index 01db7ea..0000000 --- a/src/core/bootstrap.js +++ /dev/null @@ -1,28 +0,0 @@ -import store from '@/store' -import storage from 'store' -import defaultSettings from '@/config/defaultSettings' -import { - ACCESS_TOKEN, - APP_LANGUAGE, - TOGGLE_CONTENT_WIDTH, - TOGGLE_FIXED_HEADER, - TOGGLE_FIXED_SIDEBAR, TOGGLE_HIDE_HEADER, - TOGGLE_LAYOUT, TOGGLE_NAV_THEME, TOGGLE_WEAK, - TOGGLE_COLOR, TOGGLE_MULTI_TAB -} from '@/store/mutation-types' - -export default function Initializer () { - store.commit(TOGGLE_LAYOUT, storage.get(TOGGLE_LAYOUT, defaultSettings.layout)) - store.commit(TOGGLE_FIXED_HEADER, storage.get(TOGGLE_FIXED_HEADER, defaultSettings.fixedHeader)) - store.commit(TOGGLE_FIXED_SIDEBAR, storage.get(TOGGLE_FIXED_SIDEBAR, defaultSettings.fixSiderbar)) - store.commit(TOGGLE_CONTENT_WIDTH, storage.get(TOGGLE_CONTENT_WIDTH, defaultSettings.contentWidth)) - store.commit(TOGGLE_HIDE_HEADER, storage.get(TOGGLE_HIDE_HEADER, defaultSettings.autoHideHeader)) - store.commit(TOGGLE_NAV_THEME, storage.get(TOGGLE_NAV_THEME, defaultSettings.navTheme)) - store.commit(TOGGLE_WEAK, storage.get(TOGGLE_WEAK, defaultSettings.colorWeak)) - store.commit(TOGGLE_COLOR, storage.get(TOGGLE_COLOR, defaultSettings.primaryColor)) - store.commit(TOGGLE_MULTI_TAB, storage.get(TOGGLE_MULTI_TAB, defaultSettings.multiTab)) - store.commit('SET_TOKEN', storage.get(ACCESS_TOKEN)) - - store.dispatch('setLang', storage.get(APP_LANGUAGE, 'zh-CN')) - // last step -} diff --git a/src/core/directives/action.js b/src/core/directives/action.js deleted file mode 100644 index 7d75487..0000000 --- a/src/core/directives/action.js +++ /dev/null @@ -1,38 +0,0 @@ -import Vue from 'vue' -import store from '@/store' - -/** - * Action 权限指令 - * 指令用法: - * - 在需要控制 action 级别权限的组件上使用 v-action:[method] , 如下: - * 添加用户 - * 删除用户 - * 修改 - * - * - 当前用户没有权限时,组件上使用了该指令则会被隐藏 - * - 当后台权限跟 pro 提供的模式不同时,只需要针对这里的权限过滤进行修改即可 - * - * @see https://github.com/sendya/ant-design-pro-vue/pull/53 - */ -const action = Vue.directive('action', { - inserted: function (el, binding, vnode) { - const actionName = binding.arg - const roles = store.getters.roles - if (roles.isSuper) { - return - } - const elVal = vnode.context.$route.meta.permission - const permissionId = elVal instanceof String && [elVal] || elVal - roles.permissions.forEach(p => { - if (!permissionId.includes(p.permissionId)) { - return - } - // 无权限的话 抹除该元素 - if (p.actionList && !p.actionList.includes(actionName)) { - el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none') - } - }) - } -}) - -export default action diff --git a/src/core/icons.js b/src/core/icons.js deleted file mode 100644 index 6492266..0000000 --- a/src/core/icons.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Custom icon list - * All icons are loaded here for easy management - * @see https://vue.ant.design/components/icon/#Custom-Font-Icon - * - * 自定义图标加载表 - * 所有图标均从这里加载,方便管理 - */ - -// 左侧菜单栏 -import home from '@/assets/icons/home.svg?inline' -import manage from '@/assets/icons/manage.svg?inline' -import goods from '@/assets/icons/goods.svg?inline' -import order from '@/assets/icons/order.svg?inline' -import content from '@/assets/icons/content.svg?inline' -import setting from '@/assets/icons/setting.svg?inline' -import shop from '@/assets/icons/shop.svg?inline' -import user from '@/assets/icons/user.svg?inline' -import market from '@/assets/icons/market.svg?inline' -import statistics from '@/assets/icons/statistics.svg?inline' -import apps from '@/assets/icons/apps.svg?inline' - -// 通用图标 -import arrowRight from '@/assets/icons/arrow-right.svg?inline' -import mpWeixin from '@/assets/icons/mp-weixin.svg?inline' -import h5Weixin from '@/assets/icons/h5-weixin.svg?inline' -import h5 from '@/assets/icons/h5.svg?inline' -import app from '@/assets/icons/app.svg?inline' - -// 支付方式 -import payAlipay from '@/assets/icons/payment/alipay.svg?inline' -import payBalance from '@/assets/icons/payment/balance.svg?inline' -import payWechat from '@/assets/icons/payment/wechat.svg?inline' - -export { - home, manage, goods, order, content, setting, shop, user, market, statistics, apps, - arrowRight, h5, mpWeixin, h5Weixin, app, - payAlipay, payBalance, payWechat -} diff --git a/src/core/lazy_use.js b/src/core/lazy_use.js deleted file mode 100644 index 34fc6c4..0000000 --- a/src/core/lazy_use.js +++ /dev/null @@ -1,136 +0,0 @@ -import Vue from 'vue' - -// base library -import { - ConfigProvider, - Layout, - Input, - InputNumber, - Button, - Switch, - Radio, - Checkbox, - Select, - Card, - Form, - Row, - Col, - Modal, - Table, - Tabs, - Icon, - Badge, - Popover, - Dropdown, - List, - Avatar, - Breadcrumb, - Steps, - Spin, - Menu, - Drawer, - Tooltip, - Alert, - Tag, - Divider, - DatePicker, - TimePicker, - Upload, - Progress, - Skeleton, - Popconfirm, - PageHeader, - Result, - Statistic, - Descriptions, - message, - notification, - TreeSelect, - Pagination, - Empty, - Cascader, - Collapse, - Slider, - FormModel -} from 'ant-design-vue' -import Viser from 'viser-vue' - -import Tree from '@/components/tree' - -// ext library -import VueClipboard from 'vue-clipboard2' -import Dialog from '@/components/Dialog' -// import MultiTab from '@/components/MultiTab' -import PageLoading from '@/components/PageLoading' -import PermissionHelper from '@/utils/helper/permission' -import './directives/action' - -Vue.use(ConfigProvider) -Vue.use(Layout) -Vue.use(Input) -Vue.use(InputNumber) -Vue.use(Button) -Vue.use(Switch) -Vue.use(Radio) -Vue.use(Checkbox) -Vue.use(Select) -Vue.use(Card) -Vue.use(Form) -Vue.use(Row) -Vue.use(Col) -Vue.use(Modal) -Vue.use(Table) -Vue.use(Tabs) -Vue.use(Icon) -Vue.use(Badge) -Vue.use(Popover) -Vue.use(Dropdown) -Vue.use(List) -Vue.use(Avatar) -Vue.use(Breadcrumb) -Vue.use(Steps) -Vue.use(Spin) -Vue.use(Menu) -Vue.use(Drawer) -Vue.use(Tooltip) -Vue.use(Alert) -Vue.use(Tag) -Vue.use(Divider) -Vue.use(DatePicker) -Vue.use(TimePicker) -Vue.use(Upload) -Vue.use(Progress) -Vue.use(Skeleton) -Vue.use(Popconfirm) -Vue.use(PageHeader) -Vue.use(Result) -Vue.use(Statistic) -Vue.use(Descriptions) -Vue.use(TreeSelect) -Vue.use(Collapse) -Vue.use(Slider) -Vue.use(FormModel) - -Vue.prototype.$confirm = Modal.confirm -Vue.prototype.$message = message -Vue.prototype.$notification = notification -Vue.prototype.$info = Modal.info -Vue.prototype.$success = Modal.success -Vue.prototype.$error = Modal.error -Vue.prototype.$warning = Modal.warning - -VueClipboard.config.autoSetContainer = true - -Vue.use(Viser) -Vue.use(Dialog) // this.$dialog func -// Vue.use(MultiTab) -Vue.use(PageLoading) -Vue.use(PermissionHelper) -Vue.use(VueClipboard) - -Vue.use(Pagination) -Vue.use(Empty) -Vue.use(Cascader) -Vue.use(Tree) - -process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] NOTICE: Antd use lazy-load.') diff --git a/src/core/use.js b/src/core/use.js deleted file mode 100644 index 8bfe367..0000000 --- a/src/core/use.js +++ /dev/null @@ -1,22 +0,0 @@ -import Vue from 'vue' - -// base library -import Antd from 'ant-design-vue' -import Viser from 'viser-vue' -import 'ant-design-vue/dist/antd.less' - -// ext library -import VueClipboard from 'vue-clipboard2' -// import MultiTab from '@/components/MultiTab' -import PageLoading from '@/components/PageLoading' -// import '@/components/use' -import './directives/action' - -VueClipboard.config.autoSetContainer = true - -Vue.use(Antd) -Vue.use(Viser) -// Vue.use(MultiTab) -Vue.use(PageLoading) - -process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] WARNING: Antd now use fulled imported.') diff --git a/src/global.less b/src/global.less deleted file mode 100644 index d11afc0..0000000 --- a/src/global.less +++ /dev/null @@ -1,350 +0,0 @@ -@import '~ant-design-vue/es/style/themes/default.less'; -@import './utils/utils.less'; - - -// 滚动条样式 -::-webkit-scrollbar { - width: 6px; - height: 6px; -} - -::-webkit-scrollbar-thumb { - border-radius: 10px; - background-color: #bdbdbd; - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3); -} - -html, -body, -#app, -#root { - height: 100%; -} - -body { - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -iframe { - border: 0; -} - -ul, -ol { - list-style: none; -} - -p { - // margin: 0 !important - margin: 0; - margin-bottom: 0 !important; -} - -canvas { - display: block; -} - -.colorWeak { - filter: invert(80%); -} - -.ant-layout.layout-basic { - height: 100vh; - min-height: 100vh; -} - -// 数据列表 样式 -.table-alert { - margin-bottom: 16px; -} - -// 数据列表 操作 -.table-operator { - margin-bottom: 18px; - - .search-btn { - margin-right: 8px; - } -} - -// 数据列表 搜索条件 -.table-page-search-wrapper { - - .ant-form-inline { - .ant-form-item { - display: flex; - margin-bottom: 24px; - margin-right: 0; - - .ant-form-item-control-wrapper { - flex: 1 1; - display: inline-block; - vertical-align: middle; - } - - >.ant-form-item-label { - line-height: 32px; - padding-right: 8px; - width: auto; - } - - .ant-form-item-control { - height: 32px; - line-height: 32px; - } - } - } - - .table-page-search-submitButtons { - display: block; - margin-bottom: 24px; - white-space: nowrap; - } -} - -// 内容页card组件标题 -.card-title { - font-size: 14.5px; - margin-bottom: 18px; - color: rgba(0, 0, 0, 0.75); -} - -@media (max-width: @screen-xs) { - .ant-table { - width: 100%; - overflow-x: auto; - - &-thead>tr, - &-tbody>tr { - - >th, - >td { - white-space: pre; - - >span { - display: block; - } - } - } - } -} - -// 图标按钮样式 -.ant-btn>.anticon+span, -.ant-btn>span+.anticon { - margin-left: 5px; -} - -// 表单 -.ant-form { - - .ant-form-explain, - .ant-form-extra { - font-size: 12.5px; - } - - .form-item-help { - font-size: 12px; - // line-height: 2; - line-height: 1.5; - padding-top: 4px; - min-height: 22px; - // margin-top: -2px; - transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); - - a { - margin: 0 3px; - } - - .extra, - small { - color: rgba(0, 0, 0, 0.45); - font-size: 12.5px !important; - } - - .extra { - margin-bottom: 4px !important; - } - } -} - -// 级联选择器 -.ant-cascader-menu { - height: 225px; -} - -// 分割线 -.ant-divider { - margin: 30px 0 !important; - - .ant-divider-inner-text { - font-size: @font-size-base; - color: rgba(0, 0, 0, 0.61); - } -} - -.ant-divider-horizontal.ant-divider-with-text-left::before { - width: 5%; -} - -// modal弹窗 -.ant-modal-header { - border-bottom: none; - padding-bottom: 12px; -} - -.ant-modal-body { - padding: 0 24px; - font-size: 13.5px; -} - -.ant-modal-footer { - border-top: none; - padding-top: 12px; -} - -//# 兼容外部样式 - -// ueditor -.edui-default { - .edui-editor { - // z-index: 2 !important; - font-size: 14px; - line-height: normal; - border-radius: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - - pre { - overflow: unset; - } - } - - .edui-editor-toolbarboxouter { - box-shadow: unset; - background-image: linear-gradient(to bottom, #ffffff, #fbfbfb); - } - - .edui-editor-toolbarbox { - box-shadow: unset; - } - - // 自定义图片按钮 - .edui-for-image-button .edui-icon { - background-position: -380px 0px; - } -} - - - -// ## 自定义模块 ## -.ant-table { - - // 操作栏 项目间距 - .actions>a { - margin-right: 8px; - - &:last-child { - margin-right: 0; - } - } -} - -// 搜索表单 -.search-form { - margin-bottom: 5px; - - .ant-form-item { - margin-bottom: 10px; - } - - .ant-form-item-control-wrapper { - min-width: 220px; - } - - .search-btn { - .ant-form-item-control-wrapper { - width: auto; - min-width: auto; - } - } - -} - -// 列表页-操作按钮组 -.row-item-tab { - &>button { - margin-right: 5px; - } -} - -// 无边框的modal -.ant-modal-root { - &.noborder { - .ant-modal-header { - border-bottom: none; - } - - .ant-modal-footer { - border-top: none; - } - - .ant-modal-body { - padding: 5px 24px 15px 24px; - } - - } -} - -// 表格不允许换行 -.ant-table { - - td, - th { - white-space: nowrap; - } - -} - -// Alert 警告提示 (banner) -.ant-alert-banner { - margin-bottom: 15px; - padding-left: 40px; - - .ant-alert-message { - font-size: @font-size-base; - } - - // 黄色警告 - &.ant-alert-warning { - background-color: #fffcee; - border: 1px solid #fff0c1; - } - - // 标题+描述 - &.ant-alert-with-description { - padding-left: 55px; - - .ant-alert-icon { - font-size: 18px; - top: 16px; - left: 25px; - } - - .ant-alert-message { - font-size: @font-size-base; - margin-bottom: 6px; - } - - .ant-alert-description { - font-size: 12.3px; - } - } - -} - -span.ant-radio+* { - color: rgba(0, 0, 0, .5) -} \ No newline at end of file diff --git a/src/locales/index.js b/src/locales/index.js deleted file mode 100644 index ce12b05..0000000 --- a/src/locales/index.js +++ /dev/null @@ -1,59 +0,0 @@ -import Vue from 'vue' -import VueI18n from 'vue-i18n' -import storage from 'store' -import moment from 'moment' - -// default lang -import enUS from './lang/en-US' - -Vue.use(VueI18n) - -export const defaultLang = 'en-US' - -const messages = { - 'en-US': { - ...enUS - } -} - -const i18n = new VueI18n({ - silentTranslationWarn: true, - locale: defaultLang, - fallbackLocale: defaultLang, - messages -}) - -const loadedLanguages = [defaultLang] - -function setI18nLanguage (lang) { - i18n.locale = lang - // request.headers['Accept-Language'] = lang - document.querySelector('html').setAttribute('lang', lang) - return lang -} - -export function loadLanguageAsync (lang = defaultLang) { - return new Promise(resolve => { - // 缓存语言设置 - storage.set('lang', lang) - if (i18n.locale !== lang) { - if (!loadedLanguages.includes(lang)) { - return import(/* webpackChunkName: "lang-[request]" */ `./lang/${lang}`).then(msg => { - const locale = msg.default - i18n.setLocaleMessage(lang, locale) - loadedLanguages.push(lang) - moment.updateLocale(locale.momentName, locale.momentLocale) - return setI18nLanguage(lang) - }) - } - return resolve(setI18nLanguage(lang)) - } - return resolve(lang) - }) -} - -export function i18nRender (key) { - return i18n.t(`${key}`) -} - -export default i18n diff --git a/src/locales/lang/en-US.js b/src/locales/lang/en-US.js deleted file mode 100644 index a6f440c..0000000 --- a/src/locales/lang/en-US.js +++ /dev/null @@ -1,45 +0,0 @@ -import antdEnUS from 'ant-design-vue/es/locale-provider/en_US' -import momentEU from 'moment/locale/eu' - -const components = { - antLocale: antdEnUS, - momentName: 'eu', - momentLocale: momentEU -} - -const locale = { - 'message': '-', - 'menu.home': 'Home', - 'menu.dashboard': 'Dashboard', - 'menu.dashboard.analysis': 'Analysis', - 'menu.dashboard.monitor': 'Monitor', - 'menu.dashboard.workplace': 'Workplace', - - 'layouts.usermenu.dialog.title': 'Message', - 'layouts.usermenu.dialog.content': 'Do you really log-out.', - - 'app.setting.pagestyle': 'Page style setting', - 'app.setting.pagestyle.light': 'Light style', - 'app.setting.pagestyle.dark': 'Dark style', - 'app.setting.pagestyle.realdark': 'RealDark style', - 'app.setting.themecolor': 'Theme Color', - 'app.setting.navigationmode': 'Navigation Mode', - 'app.setting.content-width': 'Content Width', - 'app.setting.fixedheader': 'Fixed Header', - 'app.setting.fixedsidebar': 'Fixed Sidebar', - 'app.setting.sidemenu': 'Side Menu Layout', - 'app.setting.topmenu': 'Top Menu Layout', - 'app.setting.content-width.fixed': 'Fixed', - 'app.setting.content-width.fluid': 'Fluid', - 'app.setting.othersettings': 'Other Settings', - 'app.setting.weakmode': 'Weak Mode', - 'app.setting.copy': 'Copy Setting', - 'app.setting.loading': 'Loading theme', - 'app.setting.copyinfo': 'copy success,please replace defaultSettings in src/models/setting.js', - 'app.setting.production.hint': 'Setting panel shows in development environment only, please manually modify' -} - -export default { - ...components, - ...locale -} diff --git a/src/locales/lang/zh-CN.js b/src/locales/lang/zh-CN.js deleted file mode 100644 index 11c2f48..0000000 --- a/src/locales/lang/zh-CN.js +++ /dev/null @@ -1,22 +0,0 @@ -import antd from 'ant-design-vue/es/locale-provider/zh_CN' -import momentCN from 'moment/locale/zh-cn' - -const components = { - antLocale: antd, - momentName: 'zh-cn', - momentLocale: momentCN -} - -const locale = { - 'message': '-', - 'menu.home': '主页', - 'menu.dashboard': '仪表盘', - 'menu.dashboard.analysis': '分析页', - 'menu.dashboard.monitor': '监控页', - 'menu.dashboard.workplace': '工作台' -} - -export default { - ...components, - ...locale -} diff --git a/src/main.js b/src/main.js index 0802dc8..4dc8377 100644 --- a/src/main.js +++ b/src/main.js @@ -1,26 +1,36 @@ -/* eslint-disable */ -// with polyfills -import 'core-js/stable' -import 'regenerator-runtime/runtime' +import Vue from 'vue'; +import App from './App.vue'; +import router from './router'; +import store from './store'; +import dataV from '@jiaminghi/data-view'; +Vue.use(dataV); -import Vue from 'vue' -import App from './App.vue' -import router from './router' -import i18n from './locales' -import { VueAxios } from './utils/request' -import themePluginConfig from '../config/themePluginConfig' +// 按需引入vue-awesome图标 +import Icon from 'vue-awesome/components/Icon'; +import 'vue-awesome/icons/chart-bar.js'; +import 'vue-awesome/icons/chart-area.js'; +import 'vue-awesome/icons/chart-pie.js'; +import 'vue-awesome/icons/chart-line.js'; +import 'vue-awesome/icons/align-left.js'; -import './utils/filter' // global filter -import './global.less' +// 全局注册图标 +Vue.component('icon', Icon); -Vue.config.productionTip = false +// 适配flex +import '@/common/flexible.js'; -// mount axios to `Vue.$http` and `this.$http` -Vue.use(VueAxios) +// 引入全局css +import './assets/scss/style.scss'; -window.umi_plugin_ant_themeVar = themePluginConfig.theme + +//引入echart +import echarts from 'echarts' +Vue.prototype.$echarts = echarts + +Vue.config.productionTip = false; new Vue({ router, - render: h => h(App) -}).$mount('#app') + store, + render: (h) => h(App), +}).$mount('#app'); diff --git a/src/router/README.md b/src/router/README.md deleted file mode 100644 index a8acb9b..0000000 --- a/src/router/README.md +++ /dev/null @@ -1,134 +0,0 @@ -路由/菜单说明 -==== - - -格式和说明 ----- - -```ecmascript 6 -const routerObject = { - redirect: noredirect, - name: 'router-name', - hidden: true, - meta: { - title: 'title', - icon: 'a-icon', - target: '_blank|_self|_top|_parent', - keepAlive: true, - hiddenHeaderContent: true, - } -} -``` - - - -`{ Route }` 对象 - -| 参数 | 说明 | 类型 | 默认值 | -| -------- | ----------------------------------------- | ------- | ------ | -| hidden | 控制路由是否显示在 sidebar | boolean | false | -| redirect | 重定向地址, 访问这个路由时,自定进行重定向 | string | - | -| name | 路由名称, 必须设置,且不能重名 | string | - | -| meta | 路由元信息(路由附带扩展信息) | object | {} | -| hideChildrenInMenu | 强制菜单显示为Item而不是SubItem(配合 meta.hidden) | boolean | - | - - -`{ Meta }` 路由元信息对象 - -| 参数 | 说明 | 类型 | 默认值 | -| ------------------- | ------------------------------------------------------------ | ------- | ------ | -| title | 路由标题, 用于显示面包屑, 页面标题 *推荐设置 | string | - | -| icon | 路由在 menu 上显示的图标 | [string,svg] | - | -| keepAlive | 缓存该路由 | boolean | false | -| target | 菜单链接跳转目标(参考 html a 标记) | string | - | -| hidden | 配合`hideChildrenInMenu`使用,用于隐藏菜单时,提供递归到父菜单显示 选中菜单项_(可参考 个人页 配置方式)_ | boolean | false | -| hiddenHeaderContent | *特殊 隐藏 [PageHeader](https://github.com/sendya/ant-design-pro-vue/blob/master/src/components/PageHeader/PageHeader.vue#L6) 组件中的页面带的 面包屑和页面标题栏 | boolean | false | -| permission | 与项目提供的权限拦截匹配的权限,如果不匹配,则会被禁止访问该路由页面 | array | [] | - -> 路由自定义 `Icon` 请引入自定义 `svg` Icon 文件,然后传递给路由的 `meta.icon` 参数即可 - -路由构建例子方案1 - -路由例子 ----- - -```ecmascript 6 -const asyncRouterMap = [ - { - path: '/', - name: 'index', - component: BasicLayout, - meta: { title: '首页' }, - redirect: '/dashboard/analysis', - children: [ - { - path: '/dashboard', - component: RouteView, - name: 'dashboard', - redirect: '/dashboard/workplace', - meta: {title: '仪表盘', icon: 'dashboard', permission: ['dashboard']}, - children: [ - { - path: '/dashboard/analysis', - name: 'Analysis', - component: () => import('@/views/dashboard/Analysis'), - meta: {title: '分析页', permission: ['dashboard']} - }, - { - path: '/dashboard/monitor', - name: 'Monitor', - hidden: true, - component: () => import('@/views/dashboard/Monitor'), - meta: {title: '监控页', permission: ['dashboard']} - }, - { - path: '/dashboard/workplace', - name: 'Workplace', - component: () => import('@/views/dashboard/Workplace'), - meta: {title: '工作台', permission: ['dashboard']} - } - ] - }, - - // result - { - path: '/result', - name: 'result', - component: PageView, - redirect: '/result/success', - meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, - children: [ - { - path: '/result/success', - name: 'ResultSuccess', - component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), - // 该页面隐藏面包屑和页面标题栏 - meta: { title: '成功', hiddenHeaderContent: true, permission: [ 'result' ] } - }, - { - path: '/result/fail', - name: 'ResultFail', - component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), - // 该页面隐藏面包屑和页面标题栏 - meta: { title: '失败', hiddenHeaderContent: true, permission: [ 'result' ] } - } - ] - }, - ... - ] - }, -] -``` - -> 1. 请注意 `component: () => import('..') ` 方式引入路由的页面组件为 懒加载模式。具体可以看 [Vue 官方文档](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) -> 2. 增加新的路由应该增加在 '/' (index) 路由的 `children` 内 -> 3. 子路由的父级路由必须有 `router-view` 才能让子路由渲染出来,请仔细查阅 vue-router 文档 -> 4. `permission` 可以进行自定义修改,只需要对这个模块进行自定义修改即可 [src/store/modules/permission.js#L10](https://github.com/sendya/ant-design-pro-vue/blob/master/src/store/modules/permission.js#L10) - - -附权限路由结构: - -![权限结构](https://static-2.loacg.com/open/static/github/permissions.png) - - -第二种前端路由由后端动态生成的设计,可以前往官网文档 https://pro.loacg.com/docs/authority-management 参考 \ No newline at end of file diff --git a/src/router/generator-routers.js b/src/router/generator-routers.js deleted file mode 100644 index e77b320..0000000 --- a/src/router/generator-routers.js +++ /dev/null @@ -1,180 +0,0 @@ -// eslint-disable-next-line -import * as loginService from '@/api/login' -// eslint-disable-next-line -import { BasicLayout, BlankLayout, PageView, RouteView } from '@/layouts' - -// 前端路由表 -const constantRouterComponents = { - // 基础页面 layout 必须引入 - BasicLayout: BasicLayout, - BlankLayout: BlankLayout, - RouteView: RouteView, - PageView: PageView, - '403': () => import(/* webpackChunkName: "error" */ '@/views/exception/403'), - '404': () => import(/* webpackChunkName: "error" */ '@/views/exception/404'), - '500': () => import(/* webpackChunkName: "error" */ '@/views/exception/500'), - - // 你需要动态引入的页面组件 - 'Workplace': () => import('@/views/dashboard/Workplace'), - 'Analysis': () => import('@/views/dashboard/Analysis'), - - // form - 'BasicForm': () => import('@/views/form/BasicForm'), - 'StepForm': () => import('@/views/form/stepForm/StepForm'), - 'AdvanceForm': () => import('@/views/form/advancedForm/AdvancedForm'), - - // list - 'TableList': () => import('@/views/list/TableList'), - 'StandardList': () => import('@/views/list/StandardList'), - 'CardList': () => import('@/views/list/CardList'), - 'SearchLayout': () => import('@/views/list/search/SearchLayout'), - 'SearchArticles': () => import('@/views/list/search/Article'), - 'SearchProjects': () => import('@/views/list/search/Projects'), - 'SearchApplications': () => import('@/views/list/search/Applications'), - 'ProfileBasic': () => import('@/views/profile/basic/Index'), - 'ProfileAdvanced': () => import('@/views/profile/advanced/Advanced'), - - // result - 'ResultSuccess': () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), - 'ResultFail': () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), - - // exception - 'Exception403': () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'), - 'Exception404': () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'), - 'Exception500': () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'), - - // account - 'AccountCenter': () => import('@/views/account/center/Index'), - 'AccountSettings': () => import('@/views/account/settings/Index'), - 'BaseSettings': () => import('@/views/account/settings/BaseSetting'), - 'SecuritySettings': () => import('@/views/account/settings/Security'), - 'CustomSettings': () => import('@/views/account/settings/Custom'), - 'BindingSettings': () => import('@/views/account/settings/Binding'), - 'NotificationSettings': () => import('@/views/account/settings/Notification'), - - 'TestWork': () => import(/* webpackChunkName: "TestWork" */ '@/views/dashboard/TestWork') -} - -// 前端未找到页面路由(固定不用改) -const notFoundRouter = { - path: '*', redirect: '/404', hidden: true -} - -// 根级菜单 -const rootRouter = { - key: '', - name: 'index', - path: '', - component: 'BasicLayout', - redirect: '/dashboard', - meta: { - title: '首页' - }, - children: [] -} - -/** - * 动态生成菜单 - * @param token - * @returns {Promise} - */ -export const generatorDynamicRouter = (token) => { - return new Promise((resolve, reject) => { - loginService.getCurrentUserNav(token).then(res => { - console.log('res', res) - const { result } = res - const menuNav = [] - const childrenNav = [] - // 后端数据, 根级树数组, 根级 PID - listToTree(result, childrenNav, 0) - rootRouter.children = childrenNav - menuNav.push(rootRouter) - console.log('menuNav', menuNav) - const routers = generator(menuNav) - routers.push(notFoundRouter) - console.log('routers', routers) - resolve(routers) - }).catch(err => { - reject(err) - }) - }) -} - -/** - * 格式化树形结构数据 生成 vue-router 层级路由表 - * - * @param routerMap - * @param parent - * @returns {*} - */ -export const generator = (routerMap, parent) => { - return routerMap.map(item => { - const { title, show, hideChildren, hiddenHeaderContent, target, icon } = item.meta || {} - const currentRouter = { - // 如果路由设置了 path,则作为默认 path,否则 路由地址 动态拼接生成如 /dashboard/workplace - path: item.path || `${parent && parent.path || ''}/${item.key}`, - // 路由名称,建议唯一 - name: item.name || item.key || '', - // 该路由对应页面的 组件 :方案1 - // component: constantRouterComponents[item.component || item.key], - // 该路由对应页面的 组件 :方案2 (动态加载) - component: (constantRouterComponents[item.component || item.key]) || (() => import(`@/views/${item.component}`)), - - // meta: 页面标题, 菜单图标, 页面权限(供指令权限用,可去掉) - meta: { - title: title, - icon: icon || undefined, - hiddenHeaderContent: hiddenHeaderContent, - target: target, - permission: item.name - } - } - // 是否设置了隐藏菜单 - if (show === false) { - currentRouter.hidden = true - } - // 是否设置了隐藏子菜单 - if (hideChildren) { - currentRouter.hideChildrenInMenu = true - } - // 为了防止出现后端返回结果不规范,处理有可能出现拼接出两个 反斜杠 - if (!currentRouter.path.startsWith('http')) { - currentRouter.path = currentRouter.path.replace('//', '/') - } - // 重定向 - item.redirect && (currentRouter.redirect = item.redirect) - // 是否有子菜单,并递归处理 - if (item.children && item.children.length > 0) { - // Recursion - currentRouter.children = generator(item.children, currentRouter) - } - return currentRouter - }) -} - -/** - * 数组转树形结构 - * @param list 源数组 - * @param tree 树 - * @param parentId 父ID - */ -const listToTree = (list, tree, parentId) => { - list.forEach(item => { - // 判断是否为父级菜单 - if (item.parentId === parentId) { - const child = { - ...item, - key: item.key || item.name, - children: [] - } - // 迭代 list, 找到当前菜单相符合的所有子菜单 - listToTree(list, child.children, item.id) - // 删掉不存在 children 值的属性 - if (child.children.length <= 0) { - delete child.children - } - // 加入到树中 - tree.push(child) - } - }) -} diff --git a/src/router/index.js b/src/router/index.js index 13750f9..47f8d54 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,17 +1,16 @@ import Vue from 'vue' -import Router from 'vue-router' -import { constantRouterMap } from '@/config/router.config' +import VueRouter from 'vue-router' -// hack router push callback -const originalPush = Router.prototype.push -Router.prototype.push = function push (location, onResolve, onReject) { - if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) - return originalPush.call(this, location).catch(err => err) -} +Vue.use(VueRouter) -Vue.use(Router) - -export default new Router({ - mode: 'hash', - routes: constantRouterMap +const routes = [{ + path: '/', + name: 'index', + component: () => import('../views/index.vue') +}] +const router = new VueRouter({ + mode: "history", + routes }) + +export default router \ No newline at end of file diff --git a/src/store/app-mixin.js b/src/store/app-mixin.js deleted file mode 100644 index c910ae9..0000000 --- a/src/store/app-mixin.js +++ /dev/null @@ -1,32 +0,0 @@ -import { mapState } from 'vuex' - -const baseMixin = { - computed: { - ...mapState({ - layout: state => state.app.layout, - navTheme: state => state.app.theme, - primaryColor: state => state.app.color, - colorWeak: state => state.app.weak, - fixedHeader: state => state.app.fixedHeader, - fixedSidebar: state => state.app.fixedSidebar, - contentWidth: state => state.app.contentWidth, - autoHideHeader: state => state.app.autoHideHeader, - - isMobile: state => state.app.isMobile, - sideCollapsed: state => state.app.sideCollapsed, - multiTab: state => state.app.multiTab - }), - isTopMenu () { - return this.layout === 'topmenu' - } - }, - methods: { - isSideMenu () { - return !this.isTopMenu - } - } -} - -export { - baseMixin -} diff --git a/src/store/device-mixin.js b/src/store/device-mixin.js deleted file mode 100644 index 2510707..0000000 --- a/src/store/device-mixin.js +++ /dev/null @@ -1,11 +0,0 @@ -import { mapState } from 'vuex' - -const deviceMixin = { - computed: { - ...mapState({ - isMobile: state => state.app.isMobile - }) - } -} - -export { deviceMixin } diff --git a/src/store/getters.js b/src/store/getters.js deleted file mode 100644 index 64b5ef0..0000000 --- a/src/store/getters.js +++ /dev/null @@ -1,18 +0,0 @@ -const getters = { - isMobile: state => state.app.isMobile, - lang: state => state.app.lang, - theme: state => state.app.theme, - color: state => state.app.color, - token: state => state.user.token, - // avatar: state => state.user.avatar, - nickname: state => state.user.name, - welcome: state => state.user.welcome, - roles: state => state.user.roles, - userInfo: state => state.user.info, - addRouters: state => state.permission.addRouters, - multiTab: state => state.app.multiTab, - // 站点配置文件 - publicConfig: () => window.publicConfig -} - -export default getters diff --git a/src/store/i18n-mixin.js b/src/store/i18n-mixin.js deleted file mode 100644 index 715b0c8..0000000 --- a/src/store/i18n-mixin.js +++ /dev/null @@ -1,16 +0,0 @@ -import { mapState } from 'vuex' - -const i18nMixin = { - computed: { - ...mapState({ - currentLang: state => state.app.lang - }) - }, - methods: { - setLang (lang) { - this.$store.dispatch('setLang', lang) - } - } -} - -export default i18nMixin diff --git a/src/store/index.js b/src/store/index.js index 3914b4c..332b916 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,26 +1,15 @@ import Vue from 'vue' import Vuex from 'vuex' -import app from './modules/app' - -// dynamic router permission control (Experimental) -// import permission from './modules/async-router' -import getters from './getters' - Vue.use(Vuex) export default new Vuex.Store({ - modules: { - app - }, state: { - }, mutations: { - }, actions: { - }, - getters + modules: { + } }) diff --git a/src/store/modules/app.js b/src/store/modules/app.js deleted file mode 100644 index 6a0c6ef..0000000 --- a/src/store/modules/app.js +++ /dev/null @@ -1,99 +0,0 @@ -import storage from 'store' -import { - SIDEBAR_TYPE, - TOGGLE_MOBILE_TYPE, - TOGGLE_NAV_THEME, - TOGGLE_LAYOUT, - TOGGLE_FIXED_HEADER, - TOGGLE_FIXED_SIDEBAR, - TOGGLE_CONTENT_WIDTH, - TOGGLE_HIDE_HEADER, - TOGGLE_COLOR, - TOGGLE_WEAK, - TOGGLE_MULTI_TAB, - // i18n - APP_LANGUAGE -} from '@/store/mutation-types' -import { loadLanguageAsync } from '@/locales' - -const app = { - state: { - sideCollapsed: false, - isMobile: false, - theme: 'dark', - layout: '', - contentWidth: '', - fixedHeader: false, - fixedSidebar: false, - autoHideHeader: false, - color: '', - weak: false, - multiTab: true, - lang: 'en-US', - _antLocale: {} - }, - mutations: { - [SIDEBAR_TYPE]: (state, type) => { - state.sideCollapsed = type - storage.set(SIDEBAR_TYPE, type) - }, - [TOGGLE_MOBILE_TYPE]: (state, isMobile) => { - state.isMobile = isMobile - }, - [TOGGLE_NAV_THEME]: (state, theme) => { - state.theme = theme - storage.set(TOGGLE_NAV_THEME, theme) - }, - [TOGGLE_LAYOUT]: (state, mode) => { - state.layout = mode - storage.set(TOGGLE_LAYOUT, mode) - }, - [TOGGLE_FIXED_HEADER]: (state, mode) => { - state.fixedHeader = mode - storage.set(TOGGLE_FIXED_HEADER, mode) - }, - [TOGGLE_FIXED_SIDEBAR]: (state, mode) => { - state.fixedSidebar = mode - storage.set(TOGGLE_FIXED_SIDEBAR, mode) - }, - [TOGGLE_CONTENT_WIDTH]: (state, type) => { - state.contentWidth = type - storage.set(TOGGLE_CONTENT_WIDTH, type) - }, - [TOGGLE_HIDE_HEADER]: (state, type) => { - state.autoHideHeader = type - storage.set(TOGGLE_HIDE_HEADER, type) - }, - [TOGGLE_COLOR]: (state, color) => { - state.color = color - storage.set(TOGGLE_COLOR, color) - }, - [TOGGLE_WEAK]: (state, mode) => { - state.weak = mode - storage.set(TOGGLE_WEAK, mode) - }, - [APP_LANGUAGE]: (state, lang, antd = {}) => { - state.lang = lang - state._antLocale = antd - storage.set(APP_LANGUAGE, lang) - }, - [TOGGLE_MULTI_TAB]: (state, bool) => { - storage.set(TOGGLE_MULTI_TAB, bool) - state.multiTab = bool - } - }, - actions: { - setLang ({ commit }, lang) { - return new Promise((resolve, reject) => { - commit(APP_LANGUAGE, lang) - loadLanguageAsync(lang).then(() => { - resolve() - }).catch((e) => { - reject(e) - }) - }) - } - } -} - -export default app diff --git a/src/store/modules/async-router.js b/src/store/modules/async-router.js deleted file mode 100644 index 014b323..0000000 --- a/src/store/modules/async-router.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * 向后端请求用户的菜单,动态生成路由 - */ -import { constantRouterMap } from '@/config/router.config' -import { generatorDynamicRouter } from '@/router/generator-routers' - -const permission = { - state: { - routers: constantRouterMap, - addRouters: [] - }, - mutations: { - SET_ROUTERS: (state, routers) => { - state.addRouters = routers - state.routers = constantRouterMap.concat(routers) - } - }, - actions: { - GenerateRoutes ({ commit }, data) { - return new Promise(resolve => { - const { token } = data - generatorDynamicRouter(token).then(routers => { - commit('SET_ROUTERS', routers) - resolve() - }) - }) - } - } -} - -export default permission diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js deleted file mode 100644 index 555252d..0000000 --- a/src/store/modules/permission.js +++ /dev/null @@ -1,150 +0,0 @@ -import { asyncRouterMap, constantRouterMap } from '@/config/router.config' - -/** - * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 - * @param permission - * @param route - * @returns {boolean} - */ -function hasPermission (permission, route) { - if (route.meta && route.meta.permission) { - let flag = false - for (let i = 0, len = permission.length; i < len; i++) { - flag = route.meta.permission.includes(permission[i]) - if (flag) { - return true - } - } - return false - } - return true -} - -/** - * 单账户多角色时,使用该方法可过滤角色不存在的菜单 - * @param roles - * @param route - * @returns {*} - */ -// eslint-disable-next-line -function hasRole (roles, route) { - if (route.meta && route.meta.roles) { - return route.meta.roles.includes(roles.id) - } else { - return true - } -} - -/** - * 递归过滤有访问权限的路由 - * @param {*} routerMap 路由表 router.config.js - * @param {*} roles 角色权限 - */ -function filterAsyncRouter (routerMap, roles) { - const accessedRouters = routerMap.filter(route => { - if (hasPermission(roles.permissionList, route)) { - if (route.children && route.children.length) { - route.children = filterAsyncRouter(route.children, roles) - } - return true - } - return false - }) - return accessedRouters -} - -/** - * 根据角色获取有访问权限的路由 - * @param {*} routerMap - * @param {*} roles - */ -function getAccessRouter (routerMap, roles) { - // isSuper 代表超级管理员, 拥有所有权限 - // roles.isSuper = false - // 根据角色过滤有访问权限的路由 - const accessedRouters = roles.isSuper ? routerMap : filterAsyncRouter(routerMap, roles) - // 动态设置一级菜单的redirect - return setPrimaryMenuRedirect(accessedRouters) -} - -/** - * 动态设置一级菜单的redirect - * @param {*} routers - * @param {*} roles - */ -function setPrimaryMenuRedirect (routerMap) { - const oneList = routerMap[0].children - oneList.forEach(oneItem => { - // 设置二级菜单的redirect - const twoList = oneItem.children != null ? oneItem.children : [] - twoList.forEach(twoItem => { - const treeList = twoItem.children != null ? twoItem.children : [] - const childrenPaths = treeList.map(item => item.path) - if (childrenPaths.length > 0) { - if (!twoItem.redirect || childrenPaths.indexOf(twoItem.redirect) === -1) { - twoItem.redirect = childrenPaths[0] - } - } - }) - // 设置一级菜单的redirect - const childrenPaths = oneItem.children != null ? oneItem.children.map(item => item.path) : [] - if (childrenPaths.length > 0) { - // 如果未设置redirect, 则默认取第一个path - // 如果设置了redirect, 判断是否有权限, 无权限则取第一个path - if (!oneItem.redirect || childrenPaths.indexOf(oneItem.redirect) === -1) { - oneItem.redirect = childrenPaths[0] - } - } - }) - - // 默认的首页 - return setIndexRedirect(routerMap) -} - -/** - * 设置默认的首页 - * @param {*} routerMap - */ -function setIndexRedirect (routerMap) { - const root = routerMap[0] - if (root.children && root.children.length) { - const item = root.children[0] - root.redirect = item.redirect != null ? item.redirect : item.path - } else { - root.redirect = '/404' - } - return routerMap -} - -const permission = { - state: { - routers: constantRouterMap, - addRouters: [] - }, - mutations: { - SET_ROUTERS: (state, routers) => { - state.addRouters = routers - state.routers = constantRouterMap.concat(routers) - } - }, - actions: { - - /** - * 生成路由表 - * @param {*} param - * @param {*} data - */ - GenerateRoutes ({ commit }, data) { - return new Promise(resolve => { - const { roles } = data - // 根据角色获取有访问权限的路由 - const accessedRouters = getAccessRouter(asyncRouterMap, roles) - commit('SET_ROUTERS', accessedRouters) - resolve(accessedRouters) - }) - } - - } -} - -export default permission diff --git a/src/store/modules/user.js b/src/store/modules/user.js deleted file mode 100644 index c1e29a2..0000000 --- a/src/store/modules/user.js +++ /dev/null @@ -1,106 +0,0 @@ -import storage from 'store' -import { login, logout } from '@/api/login' -import { getInfo } from '@/api/store/user' -import { ACCESS_TOKEN } from '@/store/mutation-types' -import { welcome } from '@/utils/util' - -const user = { - state: { - token: '', - name: '', - welcome: '', - // avatar: '', - roles: { - - }, - info: {} - }, - - mutations: { - SET_TOKEN: (state, token) => { - state.token = token - }, - SET_NAME: (state, { name, welcome }) => { - state.name = name - state.welcome = welcome - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar - }, - SET_ROLES: (state, roles) => { - state.roles = roles - }, - SET_INFO: (state, info) => { - state.info = info - } - }, - - actions: { - - // 用户登录 - Login ({ commit }, userInfo) { - return new Promise((resolve, reject) => { - login(userInfo) - .then(response => { - const data = response.data - // token保存7天 - storage.set(ACCESS_TOKEN, data.token, 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', data.token) - resolve(response) - }) - .catch((error) => { - reject(error) - }) - }) - }, - - // 获取用户信息 - GetInfo ({ commit }) { - return new Promise((resolve, reject) => { - getInfo().then(response => { - const data = response.data - const roles = data.roles - // 遍历整理 actionList - roles.permissions.map(item => { - item.actionList = [] - if (item.actionEntitySet && item.actionEntitySet.length > 0) { - item.actionList = item.actionEntitySet.map(action => action.action) - } - }) - roles.permissionList = roles.permissions.map(item => item.permissionId) - commit('SET_ROLES', roles) - commit('SET_INFO', data.userInfo) - commit('SET_NAME', { name: data.userInfo.real_name, welcome: welcome() }) - // commit('SET_AVATAR', result.avatar) - resolve(data) - }).catch(error => { - reject(error) - }) - }) - }, - - // 退出登录 - Logout ({ commit, state }) { - return new Promise((resolve, reject) => { - logout(state.token) - .then(() => { - // 清理用户信息 - commit('SET_TOKEN', '') - commit('SET_ROLES', []) - storage.remove(ACCESS_TOKEN) - resolve() - }) - }) - }, - - // 超管后台自动登录 - SuperLogin ({ commit }, loginInfo) { - // token保存7天 - storage.set(ACCESS_TOKEN, loginInfo['token'], 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', loginInfo['token']) - } - - } -} - -export default user diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js deleted file mode 100644 index 4439479..0000000 --- a/src/store/mutation-types.js +++ /dev/null @@ -1,24 +0,0 @@ -export const ACCESS_TOKEN = 'Access-Token' - -export const SIDEBAR_TYPE = 'sidebar_type' -export const TOGGLE_MOBILE_TYPE = 'is_mobile' -export const TOGGLE_NAV_THEME = 'nav_theme' -export const TOGGLE_LAYOUT = 'layout' -export const TOGGLE_FIXED_HEADER = 'fixed_header' -export const TOGGLE_FIXED_SIDEBAR = 'fixed_sidebar' -export const TOGGLE_CONTENT_WIDTH = 'content_width' -export const TOGGLE_HIDE_HEADER = 'auto_hide_header' -export const TOGGLE_COLOR = 'color' -export const TOGGLE_WEAK = 'weak' -export const TOGGLE_MULTI_TAB = 'multi_tab' -export const APP_LANGUAGE = 'app_language' - -export const CONTENT_WIDTH_TYPE = { - Fluid: 'Fluid', - Fixed: 'Fixed' -} - -export const NAV_THEME = { - LIGHT: 'light', - DARK: 'dark' -} diff --git a/src/utils/axios.js b/src/utils/axios.js deleted file mode 100644 index 3b91f6b..0000000 --- a/src/utils/axios.js +++ /dev/null @@ -1,35 +0,0 @@ -const VueAxios = { - vm: {}, - // eslint-disable-next-line no-unused-vars - install (Vue, instance) { - if (this.installed) { - return - } - this.installed = true - - if (!instance) { - // eslint-disable-next-line no-console - console.error('You have to install axios') - return - } - - Vue.axios = instance - - Object.defineProperties(Vue.prototype, { - axios: { - get: function get () { - return instance - } - }, - $http: { - get: function get () { - return instance - } - } - }) - } -} - -export { - VueAxios -} diff --git a/src/utils/domUtil.js b/src/utils/domUtil.js deleted file mode 100644 index be93027..0000000 --- a/src/utils/domUtil.js +++ /dev/null @@ -1,21 +0,0 @@ -import config from '@/config/defaultSettings' - -export const setDocumentTitle = function (title) { - document.title = title - const ua = navigator.userAgent - // eslint-disable-next-line - const regex = /\bMicroMessenger\/([\d\.]+)/ - if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) { - const i = document.createElement('iframe') - i.src = '/favicon.ico' - i.style.display = 'none' - i.onload = function () { - setTimeout(function () { - i.remove() - }, 9) - } - document.body.appendChild(i) - } -} - -export const domTitle = config.title diff --git a/src/utils/filter.js b/src/utils/filter.js deleted file mode 100644 index 45702c6..0000000 --- a/src/utils/filter.js +++ /dev/null @@ -1,20 +0,0 @@ -import Vue from 'vue' -import moment from 'moment' -import 'moment/locale/zh-cn' -moment.locale('zh-cn') - -Vue.filter('NumberFormat', function (value) { - if (!value) { - return '0' - } - const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断 - return intPartFormat -}) - -Vue.filter('dayjs', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { - return moment(dataStr).format(pattern) -}) - -Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { - return moment(dataStr).format(pattern) -}) diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..1fb622d --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,34 @@ +export function debounce(func, wait, immediate) { + let timeout, args, context, timestamp, result; + + const later = function() { + // 据上一次触发时间间隔 + const last = +new Date() - timestamp; + + // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait + if (last < wait && last > 0) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 + if (!immediate) { + result = func.apply(context, args); + if (!timeout) context = args = null; + } + } + }; + + return function(...args) { + context = this; + timestamp = +new Date(); + const callNow = immediate && !timeout; + // 如果延时不存在,重新设定延时 + if (!timeout) timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + context = args = null; + } + + return result; + }; +} diff --git a/src/utils/request.js b/src/utils/request.js deleted file mode 100644 index c1522f1..0000000 --- a/src/utils/request.js +++ /dev/null @@ -1,71 +0,0 @@ -import axios from 'axios' -import store from '@/store' -import storage from 'store' -import notification from 'ant-design-vue/es/notification' -import message from 'ant-design-vue/es/message' -import { VueAxios } from './axios' -import { isObject } from './util' -import { ACCESS_TOKEN } from '@/store/mutation-types' - -// 站点配置文件 -// window.publicConfig => public/config.js -const publicConfig = store.getters.publicConfig - -// 创建 axios 实例 -const service = axios.create({ - // 服务端api地址 - // baseURL: process.env.NODE_ENV === 'production' ? publicConfig.BASE_API : process.env.VUE_APP_API_BASE_URL, - baseURL: publicConfig.BASE_API, - timeout: 60 * 1000 // 请求超时时间,60秒, 如果上传大文件需要更长 -}) - -// 接口请求拦截 -service.interceptors.request.use(config => { - // 设置每个请求的Content-Type - config.headers['Content-Type'] = 'application/json;charset=utf-8' - return config -}) - -// 是否显示未登录提示 -let notLoggedMessage = false - -// 接口响应拦截 -service.interceptors.response.use((response) => { - const result = response.data - if (!isObject(result)) { - const error = { message: '服务端api返回的数据格式不正确' } - return Promise.reject(error) - } - // result.status [ 200正常 500有错误 401未登录 403没有权限访问 ] - // api报错信息 - if (result.status === 500) { - message.error(result.message, 1.8) - return Promise.reject(result) - } - // 鉴权失败: 未登录 - if (result.status === 401) { - return Promise.reject(result) - } - return result -}, (error) => { - // 网络请求出错 - const errMsg = ((error.response || {}).data || {}).message || '请求出现错误,请稍后再试' - notification.error({ - message: '网络请求出错', - description: errMsg, - duration: 3 - }) - return Promise.reject(error) -}) - -const installer = { - vm: {}, - install (Vue) { - Vue.use(VueAxios, service) - } -} - -export { - installer as VueAxios, - service as axios -} diff --git a/src/utils/resizeMixins.js b/src/utils/resizeMixins.js new file mode 100644 index 0000000..8caae20 --- /dev/null +++ b/src/utils/resizeMixins.js @@ -0,0 +1,26 @@ +// 混入代码 resize-mixins.js +import { debounce } from '@/utils/index'; +const resizeChartMethod = '$__resizeChartMethod'; + +export default { + data() { + // 在组件内部将图表init的引用映射到chart属性上 + return { + chart: null, + }; + }, + created() { + window.addEventListener('resize', this[resizeChartMethod], false); + }, + beforeDestroy() { + window.removeEventListener('reisze', this[resizeChartMethod]); + }, + methods: { + // 通过lodash的防抖函数来控制resize的频率 + [resizeChartMethod]: debounce(function() { + if (this.chart) { + this.chart.resize(); + } + }, 100), + }, +}; diff --git a/src/utils/routeConvert.js b/src/utils/routeConvert.js deleted file mode 100644 index e88b0d6..0000000 --- a/src/utils/routeConvert.js +++ /dev/null @@ -1,30 +0,0 @@ -import cloneDeep from 'lodash.clonedeep' - -export function convertRoutes (nodes) { - if (!nodes) return null - - nodes = cloneDeep(nodes) - - let queue = Array.isArray(nodes) ? nodes.concat() : [nodes] - - while (queue.length) { - const levelSize = queue.length - - for (let i = 0; i < levelSize; i++) { - const node = queue.shift() - - if (!node.children || !node.children.length) continue - - node.children.forEach(child => { - // 转化相对路径 - if (child.path[0] !== '/' && !child.path.startsWith('http')) { - child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`) - } - }) - - queue = queue.concat(node.children) - } - } - - return nodes -} diff --git a/src/utils/util.js b/src/utils/util.js deleted file mode 100644 index 3efed6d..0000000 --- a/src/utils/util.js +++ /dev/null @@ -1,217 +0,0 @@ -export function timeFix () { - const time = new Date() - const hour = time.getHours() - return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好' -} - -export function welcome () { - const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了'] - const index = Math.floor(Math.random() * arr.length) - return arr[index] -} - -/** - * 触发 window.resize - */ -export function triggerWindowResizeEvent () { - const event = document.createEvent('HTMLEvents') - event.initEvent('resize', true, true) - event.eventType = 'message' - window.dispatchEvent(event) -} - -export function handleScrollHeader (callback) { - let timer = 0 - - let beforeScrollTop = window.pageYOffset - callback = callback || function () { } - window.addEventListener( - 'scroll', - event => { - clearTimeout(timer) - timer = setTimeout(() => { - let direction = 'up' - const afterScrollTop = window.pageYOffset - const delta = afterScrollTop - beforeScrollTop - if (delta === 0) { - return false - } - direction = delta > 0 ? 'down' : 'up' - callback(direction) - beforeScrollTop = afterScrollTop - }, 50) - }, - false - ) -} - -export function isIE () { - const bw = window.navigator.userAgent - const compare = (s) => bw.indexOf(s) >= 0 - const ie11 = (() => 'ActiveXObject' in window)() - return compare('MSIE') || ie11 -} - -/** - * Remove loading animate - * @param id parent element id or class - * @param timeout - */ -export function removeLoadingAnimate (id = '', timeout = 1500) { - if (id === '') { - return - } - setTimeout(() => { - document.body.removeChild(document.getElementById(id)) - }, timeout) -} - -// 节流 -// 思路: 第一次先设定一个变量true, -// 第二次执行这个函数时,会判断变量是否true, -// 是则返回。当第一次的定时器执行完函数最后会设定变量为flase。 -// 那么下次判断变量时则为flase,函数会依次运行。 -export function throttle (fn, delay = 100) { - // 首先设定一个变量,在没有执行我们的定时器时为null - var timer = null - return function () { - // 当我们发现这个定时器存在时,则表示定时器已经在运行中,需要返回 - if (timer) return - timer = setTimeout(() => { - fn.apply(this, arguments) - timer = null - }, delay) - } -} - -// 防抖 -// 首次运行时把定时器赋值给一个变量, 第二次执行时, -// 如果间隔没超过定时器设定的时间则会清除掉定时器, -// 重新设定定时器, 依次反复, 当我们停止下来时, -// 没有执行清除定时器, 超过一定时间后触发回调函数。 -export function debounce (fun, delay) { - return function (args) { - // 获取函数的作用域和变量 - const that = this - const _args = args - // 每次事件被触发,都会清除当前的timeer,然后重写设置超时调用 - clearTimeout(fun.id) - fun.id = setTimeout(function () { - fun.call(that, _args) - }, delay) - } -} - -/** - * 判断是否为空对象 - * @param {*} object 源对象 - */ -export function isEmptyObject (object) { - return Object.keys(object).length === 0 -} - -/** - * 判断是否为对象 - * @param {*} object - */ -export function isObject (object) { - return Object.prototype.toString.call(object) === '[object Object]' -} - -/** - * 判断是否为对象 - * @param {*} array - */ -export function isArray (array) { - return Object.prototype.toString.call(array) === '[object Array]' -} - -/** - * 判断是否为空 - * @param {*} object 源对象 - */ -export function isEmpty (value) { - if (isArray(value)) { - return value.length === 0 - } - if (isObject(value)) { - return isEmptyObject(value) - } - return !value -} - -/** - * 判断是否在数组中 - * @param {*} search - * @param {*} array - */ -export function inArray (search, array) { - return array.includes(search) -} - -/** - * 获取指定天数的日期 - * @param day - * @returns {string} - */ -export function getDateByDay (day) { - var today = new Date() - var targetdaySeconds = today.getTime() + 1000 * 60 * 60 * 24 * day - today.setTime(targetdaySeconds) // 注意,这行是关键代码 - return today.getFullYear() + '-' + zeroFillLeft(today.getMonth() + 1) + '-' + zeroFillLeft(today.getDate()) -} - -/** - * 左侧补0 - * @param value - * @returns {*} - */ -export function zeroFillLeft (value) { - return (value.toString().length === 1) ? ('0' + value) : value -} - -/** - * 批量给指定对象赋值 - * @param obj obj 指定的对象,一般为vue实例 - * @param obj assignment 赋值的元素 { a: '123' } - */ -export function assignment (obj, assignment) { - Object.keys(assignment).forEach(key => { - obj[key] = assignment[key] - }) -} - -/** - * 对象转URL - * @param {object} obj - */ -export const urlEncode = (obj = {}) => { - const result = [] - for (const key in obj) { - const item = obj[key] - if (!item) { - continue - } - if (isArray(item)) { - item.forEach(val => { - result.push(key + '=' + val) - }) - } else { - result.push(key + '=' + item) - } - } - return result.join('&') -} - -/** - * 生成url (带参数) - * @param {string} path 链接 - * @param {object} params query参数 - */ -export function buildUrL (path, params) { - const queryStr = urlEncode(params) - if (!isEmpty(queryStr)) { - return path + '?' + queryStr - } - return path -} diff --git a/src/utils/utils.less b/src/utils/utils.less deleted file mode 100644 index ea976ed..0000000 --- a/src/utils/utils.less +++ /dev/null @@ -1,302 +0,0 @@ - -.textOverflow() { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - word-break: break-all; -} - -.textOverflowMulti(@line: 2, @bg: #fff) { - position: relative; - max-height: @line * 1.5em; - margin-right: -1em; - padding-right: 1em; - overflow: hidden; - line-height: 1.5em; - text-align: justify; - - &::before { - position: absolute; - right: 14px; - bottom: 0; - padding: 0 1px; - background: @bg; - content: '...'; - } - - &::after { - position: absolute; - right: 14px; - width: 1em; - height: 1em; - margin-top: 0.2em; - background: white; - content: ''; - } -} - -// 文字超出隐藏(一行) -// 需要设置文字容器的宽度 -.oneline-hide { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - word-break: break-all; -} - -// 文字超出隐藏(两行) -// 需要设置文字容器的宽度 -.twoline-hide { - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - white-space: normal; -} - -// 动画 -@keyframes fadenum { - - /*设置内容由显示变为隐藏*/ - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - - -/* 浮动 */ -.clearfix() { - zoom: 1; - - &::before, - &::after { - display: table; - content: ' '; - } - - &::after { - clear: both; - height: 0; - font-size: 0; - visibility: hidden; - } -} - -.fl-l { - float: left; -} - -.fl-r { - float: right; -} - -/* flex布局 */ -.flex { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.flex-box { - flex: 1; -} - -.flex-dir-row { - flex-direction: row; -} - -.flex-dir-column { - -webkit-box-orient: vertical; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; -} - -.flex-x-center { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} - -.flex-x-between { - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.flex-x-around { - justify-content: space-around; -} - -.flex-x-end { - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} - -.flex-y-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} - -/* 全局函数 */ - -.hiden { - display: none; -} - -// 手型指针 -.cur-p { - cursor: pointer; - user-select: none; -} - -// 外边距 -.mt-5 { - margin-top: 5px; -} - -.mt-10 { - margin-top: 10px; -} - -.mt-15 { - margin-top: 20px; -} - -.mt-20 { - margin-top: 20px; -} - -.mt-30 { - margin-top: 30px; -} - -.mt-40 { - margin-top: 40px; -} - -.mt-50 { - margin-top: 50px; -} - -.mb-0 { - margin-bottom: 0 !important; -} - -.mb-5 { - margin-bottom: 5px !important; -} - -.mb-10 { - margin-bottom: 10px; -} - -.mb-15 { - margin-bottom: 15px; -} - -.mb-20 { - margin-bottom: 20px !important; -} - -.mb-30 { - margin-bottom: 30px !important; -} - -.ml-5 { - margin-left: 5px; -} - -.ml-10 { - margin-left: 10px; -} - -.ml-15 { - margin-left: 15px; -} - -.mr-5 { - margin-right: 5px; -} - -.mr-10 { - margin-right: 10px; -} - -.mr-15 { - margin-right: 15px; -} - -.mr-20 { - margin-right: 20px; -} - -.mlr-2 { - margin-left: 2px; - margin-right: 2px; -} - -.mlr-5 { - margin-left: 5px; - margin-right: 5px; -} - -.mtb-2 { - margin-top: 2px; - margin-bottom: 2px; -} - -// 文字颜色 -.c-p { - color: @primary-color !important; -} - -.c-muted-1 { - color: #7b7b7b !important; -} - -.c-muted-9 { - color: #999999 !important; -} - -.c-red { - color: #f00 !important; -} - -// 字体大小 -.f-12 { - font-size: 12px; -} - -.f-13 { - font-size: 13px; -} - -.f-14 { - font-size: 14px; -} - -.f-w-b { - font-weight: bold; -} - -// 删除线 -.f-through { - text-decoration: line-through; -} - -// .ant-btn-primary { -// background-color: #d6893b; -// border-color: transparent; -// } \ No newline at end of file diff --git a/src/views/404.vue b/src/views/404.vue deleted file mode 100644 index 8c1d8a1..0000000 --- a/src/views/404.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/src/views/bottomLeft.vue b/src/views/bottomLeft.vue new file mode 100644 index 0000000..e4fd862 --- /dev/null +++ b/src/views/bottomLeft.vue @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/src/views/bottomRight.vue b/src/views/bottomRight.vue new file mode 100644 index 0000000..30d7395 --- /dev/null +++ b/src/views/bottomRight.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/src/views/center.vue b/src/views/center.vue new file mode 100644 index 0000000..6d2d841 --- /dev/null +++ b/src/views/center.vue @@ -0,0 +1,228 @@ + + + + + \ No newline at end of file diff --git a/src/views/centerLeft1.vue b/src/views/centerLeft1.vue new file mode 100644 index 0000000..c0c105e --- /dev/null +++ b/src/views/centerLeft1.vue @@ -0,0 +1,166 @@ + + + + + \ No newline at end of file diff --git a/src/views/centerLeft2.vue b/src/views/centerLeft2.vue new file mode 100644 index 0000000..6a5cf98 --- /dev/null +++ b/src/views/centerLeft2.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/src/views/centerRight1.vue b/src/views/centerRight1.vue new file mode 100644 index 0000000..ce07455 --- /dev/null +++ b/src/views/centerRight1.vue @@ -0,0 +1,72 @@ + + + + + \ No newline at end of file diff --git a/src/views/centerRight2.vue b/src/views/centerRight2.vue new file mode 100644 index 0000000..878c0da --- /dev/null +++ b/src/views/centerRight2.vue @@ -0,0 +1,76 @@ + + + + + \ No newline at end of file diff --git a/src/views/exception/403.vue b/src/views/exception/403.vue deleted file mode 100644 index 31652c4..0000000 --- a/src/views/exception/403.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/views/exception/404.vue b/src/views/exception/404.vue deleted file mode 100644 index 7bef65a..0000000 --- a/src/views/exception/404.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/views/exception/500.vue b/src/views/exception/500.vue deleted file mode 100644 index 94f0582..0000000 --- a/src/views/exception/500.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/views/index.vue b/src/views/index.vue new file mode 100644 index 0000000..ea4113c --- /dev/null +++ b/src/views/index.vue @@ -0,0 +1,137 @@ + + + + + \ No newline at end of file diff --git a/src/views/index/Index.vue b/src/views/index/Index.vue deleted file mode 100644 index 976a0a4..0000000 --- a/src/views/index/Index.vue +++ /dev/null @@ -1,522 +0,0 @@ - - - - diff --git a/tests/unit/.eslintrc.js b/tests/unit/.eslintrc.js deleted file mode 100644 index 958d51b..0000000 --- a/tests/unit/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - env: { - jest: true - } -} diff --git a/version.json b/version.json deleted file mode 100644 index 7898414..0000000 --- a/version.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "version": "2.0.8" -} diff --git a/vue.config.js b/vue.config.js index c9325cb..17a0dff 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,133 +1,12 @@ const path = require('path') -const webpack = require('webpack') -// const GitRevisionPlugin = require('git-revision-webpack-plugin') -// const GitRevision = new GitRevisionPlugin() -// const buildDate = JSON.stringify(new Date().toLocaleString()) -const createThemeColorReplacerPlugin = require('./config/plugin.config') - -function resolve (dir) { +const resolve = dir => { return path.join(__dirname, dir) } - -// const isProd = process.env.NODE_ENV === 'production' - -// const assetsCDN = { -// // webpack build externals -// externals: { -// vue: 'Vue', -// 'vue-router': 'VueRouter', -// vuex: 'Vuex', -// axios: 'axios' -// }, -// css: [], -// // https://unpkg.com/browse/vue@2.6.10/ -// js: [ -// '//lib.baomitu.com/vue/2.6.10/vue.min.js', -// '//lib.baomitu.com/vue-router/3.1.3/vue-router.min.js', -// '//lib.baomitu.com/vuex/3.1.1/vuex.min.js', -// '//lib.baomitu.com/axios/0.19.0/axios.min.js' -// ] -// } - -// vue.config.js -const vueConfig = { - // 部署应用包时的基本 URL - publicPath: process.env.NODE_ENV === 'production' ? './' : '/', - - configureWebpack: { - // webpack plugins - plugins: [ - // Ignore all locale files of moment.js - new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/) - // new webpack.DefinePlugin({ - // APP_VERSION: `"${require('./package.json').version}"`, - // GIT_HASH: JSON.stringify(GitRevision.version()), - // BUILD_DATE: buildDate - // }) - ] - // if prod, add externals - // externals: isProd ? assetsCDN.externals : {} - }, - - chainWebpack: (config) => { +module.exports = { + // open: true, + publicPath: './', + chainWebpack: config => { config.resolve.alias - .set('@$', resolve('src')) - - const svgRule = config.module.rule('svg') - svgRule.uses.clear() - svgRule - .oneOf('inline') - .resourceQuery(/inline/) - .use('vue-svg-icon-loader') - .loader('vue-svg-icon-loader') - .end() - .end() - .oneOf('external') - .use('file-loader') - .loader('file-loader') - .options({ - name: 'assets/[name].[hash:8].[ext]' - }) - - // if prod is on - // assets require on cdn - // if (isProd) { - // config.plugin('html').tap(args => { - // args[0].cdn = assetsCDN - // return args - // }) - // } - }, - - css: { - // 定位css文件 - sourceMap: true, - loaderOptions: { - less: { - modifyVars: { - // less vars,customize ant design theme - - // 默认蓝 - // 'primary-color': '#1890ff', - // 'link-color': '#1890ff', - - 'font-size-base': '13px', - 'border-radius-base': '2px' - }, - // DO NOT REMOVE THIS LINE - javascriptEnabled: true - } - } - }, - - devServer: { - // development server port 8000 - port: 8120 - // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11 - // proxy: { - // '/api': { - // target: 'https:/www.abc.com/index.php?s=/store', - // ws: false, - // changeOrigin: true, - // pathRewrite: { - // '/api': '' - // } - // } - // } + .set('_c', resolve('src/components')) // key,value自行定义,比如.set('@@', resolve('src/components')) }, - - // disable source map in production - productionSourceMap: false, - lintOnSave: false, - // babel-loader no-ignore node_modules/* - transpileDependencies: [] -} - -// preview.pro.loacg.com only do not use in your production; -if (process.env.VUE_APP_PREVIEW === 'true') { - console.log('VUE_APP_PREVIEW', true) - // add `ThemeColorReplacer` plugin to webpack plugins - vueConfig.configureWebpack.plugins.push(createThemeColorReplacerPlugin()) -} - -module.exports = vueConfig +} \ No newline at end of file diff --git a/webstorm.config.js b/webstorm.config.js deleted file mode 100644 index 9117455..0000000 --- a/webstorm.config.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' -const webpackConfig = require('@vue/cli-service/webpack.config.js') -module.exports = webpackConfig diff --git a/yarn.lock b/yarn.lock index 13cce42..8b5b012 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,619 +2,403 @@ # yarn lockfile v1 -"@achrinza/node-ipc@9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz#ae1b5d3d6a9362034eea60c8d946b93893c2e4ec" - integrity sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: - "@node-ipc/js-queue" "2.0.3" - event-pubsub "4.3.0" - js-message "1.0.7" + "@babel/highlight" "^7.10.4" -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== +"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" + integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" -"@ant-design/colors@^3.1.0", "@ant-design/colors@^3.2.1": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-3.2.2.tgz#5ad43d619e911f3488ebac303d606e66a8423903" - integrity sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ== +"@babel/core@^7.11.0": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.6" + "@babel/helper-module-transforms" "^7.11.0" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.11.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== dependencies: - tinycolor2 "^1.4.1" + "@babel/types" "^7.11.5" + jsesc "^2.5.1" + source-map "^0.5.0" -"@ant-design/icons-vue@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz#0357f5010a404e9f34a87a4b41b2a08df691dbce" - integrity sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg== +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== dependencies: - "@ant-design/colors" "^3.1.0" - babel-runtime "^6.26.0" + "@babel/types" "^7.10.4" -"@ant-design/icons@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-2.1.1.tgz#7b9c08dffd4f5d41db667d9dbe5e0107d0bd9a4a" - integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" -"@antv/adjust@~0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@antv/adjust/-/adjust-0.1.1.tgz#e263ab0e1a1941a648842fc086cf65a7e3b75e98" - integrity sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q== +"@babel/helper-compilation-targets@^7.10.4", "@babel/helper-compilation-targets@^7.9.6": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" + integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== dependencies: - "@antv/util" "~1.3.1" + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" -"@antv/attr@~0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@antv/attr/-/attr-0.1.2.tgz#2eeb122fcaaf851a2d8749abc7c60519d3f77e37" - integrity sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew== +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== dependencies: - "@antv/util" "~1.3.1" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" -"@antv/component@~0.3.3": - version "0.3.10" - resolved "https://registry.yarnpkg.com/@antv/component/-/component-0.3.10.tgz#945299f037238eef3811b01d134ea98215bc858b" - integrity sha512-8HLkgdhc0jXrnNrkaACPrWx2JB/51VGscL9t0pH2xoLdxiDQVtTUad2geWxbac5k/ZZHG+bDPWWb83CZIR9A9w== +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== dependencies: - "@antv/attr" "~0.1.2" - "@antv/g" "~3.3.5" - "@antv/util" "~1.3.1" - wolfy87-eventemitter "~5.1.0" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.0" -"@antv/coord@~0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@antv/coord/-/coord-0.1.0.tgz#48a80ae36d07552f96657e7f8095227c63f0c0a9" - integrity sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg== - dependencies: - "@antv/util" "~1.3.1" - -"@antv/data-set@^0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@antv/data-set/-/data-set-0.10.2.tgz#584a9574e7e0853847cb658d51b9f7345a00032f" - integrity sha512-FFWG5tiTiFiUrLDRwulraU5XfOdDjkYOlZna+AMT9FJw406D/gfS8eXM9YibscBH28M/+KLAVO8xEwuD1sc3bw== - dependencies: - "@antv/hierarchy" "~0.4.0" - "@antv/util" "~1.3.1" - d3-array "~1.2.0" - d3-composite-projections "~1.2.0" - d3-dsv "~1.0.5" - d3-geo "~1.6.4" - d3-geo-projection "~2.1.2" - d3-hexjson "~1.0.1" - d3-hierarchy "~1.1.5" - d3-sankey "~0.7.1" - d3-voronoi "~1.1.2" - dagre "~0.8.2" - point-at-length "~1.0.2" - regression "~2.0.0" - simple-statistics "~6.1.0" - topojson-client "~3.0.0" - wolfy87-eventemitter "~5.1.0" - -"@antv/g2-brush@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@antv/g2-brush/-/g2-brush-0.0.2.tgz#0b65f3ebbf82690202913d0b6759ab2900faa841" - integrity sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA== - -"@antv/g2-plugin-slider@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@antv/g2-plugin-slider/-/g2-plugin-slider-2.1.1.tgz#c20c5f1cf085bea478f8ab1fc84837e45c46a065" - integrity sha512-nB678VEGG3FkrvkDDFADAKjLQIeXzITEYqey5oeOpbf0vT5jOa55lQDyJDZ79cK8PmU/Hz6VPeSb3CNQBA+/FQ== - -"@antv/g2@~3.5.3": - version "3.5.19" - resolved "https://registry.yarnpkg.com/@antv/g2/-/g2-3.5.19.tgz#f0dd215761e3860501041ef172573059637830b6" - integrity sha512-OWWDJof1ghfsxDYO20TxVF9TUhDsyOE/yzbSdSu+N9Ft1zQxKJQlgG43/FO+rOsdC/k1dXoYOBRPQ7kk5EBaJA== - dependencies: - "@antv/adjust" "~0.1.0" - "@antv/attr" "~0.1.2" - "@antv/component" "~0.3.3" - "@antv/coord" "~0.1.0" - "@antv/g" "~3.4.10" - "@antv/scale" "~0.1.1" - "@antv/util" "~1.3.1" - core-js "2" - venn.js "~0.2.20" - wolfy87-eventemitter "~5.1.0" - -"@antv/g@~3.3.5": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@antv/g/-/g-3.3.6.tgz#11fed9ddc9ed4e5a2aa244b7c8abb982a003f201" - integrity sha512-2GtyTz++s0BbN6s0ZL2/nrqGYCkd52pVoNH92YkrTdTOvpO6Z4DNoo6jGVgZdPX6Nzwli6yduC8MinVAhE8X6g== - dependencies: - "@antv/gl-matrix" "~2.7.1" - "@antv/util" "~1.3.1" - d3-ease "~1.0.3" - d3-interpolate "~1.1.5" - d3-timer "~1.0.6" - wolfy87-eventemitter "~5.1.0" - -"@antv/g@~3.4.10": - version "3.4.10" - resolved "https://registry.yarnpkg.com/@antv/g/-/g-3.4.10.tgz#e7b616aa21b17ac51850d033332a5af8de8fe015" - integrity sha512-pKy/L1SyRBsXuujdkggqrdBA0/ciAgHiArYBdIJsxHRxCneUP01wGwHdGfDayh2+S0gcSBHynjhoEahsaZaLkw== +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== dependencies: - "@antv/gl-matrix" "~2.7.1" - "@antv/util" "~1.3.1" - d3-ease "~1.0.3" - d3-interpolate "~1.1.5" - d3-timer "~1.0.6" - detect-browser "^5.1.0" + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" -"@antv/gl-matrix@^2.7.1", "@antv/gl-matrix@~2.7.1": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz#acb8e37f7ab3df01345aba4372d7942be42eba14" - integrity sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q== +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.11.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" + integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== + dependencies: + "@babel/types" "^7.10.4" -"@antv/hierarchy@~0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@antv/hierarchy/-/hierarchy-0.4.0.tgz#712b5b4477ee0b8b8db174c682b5356b0411aab6" - integrity sha512-ols+m+Z8QA4895SWMTOSjVImOX4tEbWQTwJ0NE+WATc0WLSKs6D9y2yaR+ZWt6P60BMGVIKS6lIfabO3CwGgnQ== +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== dependencies: - "@antv/util" "~1.3.1" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" -"@antv/scale@~0.1.1": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@antv/scale/-/scale-0.1.5.tgz#243266e8b9047cf64b2fdfc40f9834cf0846496e" - integrity sha512-7RAu4iH5+Hk21h6+aBMiDTfmLf4IibK2SWjx/+E4f4AXRpqucO+8u7IbZdFkakAWxvqhJtN3oePJuTKqOMcmlg== +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== dependencies: - "@antv/util" "~1.3.1" - fecha "~2.3.3" + "@babel/types" "^7.10.4" -"@antv/util@~1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@antv/util/-/util-1.3.1.tgz#30a34b201ff9126ec0d58c72c8166a9c3e644ccd" - integrity sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA== - dependencies: - "@antv/gl-matrix" "^2.7.1" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" - integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== - -"@babel/core@^7.1.0", "@babel/core@^7.11.0": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" -"@babel/generator@^7.20.7", "@babel/generator@^7.4.0": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" - integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" + integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== dependencies: - "@babel/types" "^7.20.7" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" + "@babel/types" "^7.11.0" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/template" "^7.10.4" + "@babel/types" "^7.11.0" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== dependencies: - "@babel/types" "^7.18.6" + lodash "^4.17.19" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.11.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" + integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.9.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.12", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" - integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" - integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.2.1" - -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" - integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== - dependencies: - "@babel/types" "^7.20.7" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - -"@babel/helpers@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" - integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.13" - "@babel/types" "^7.20.7" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/types" "^7.11.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.18.4", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0": - version "7.20.15" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" - integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== +"@babel/helpers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== -"@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== +"@babel/plugin-proposal-async-generator-functions@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" - integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" + integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-proposal-decorators@^7.8.3": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz#b6bea3b18e88443688fa7ed2cc06d2c60da9f4a7" - integrity sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.12" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.19.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4" + integrity sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.10.4" + +"@babel/plugin-proposal-dynamic-import@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" + integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== +"@babel/plugin-proposal-json-strings@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== +"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" + integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" + integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" - integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" - integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": +"@babel/plugin-proposal-object-rest-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" + integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.4" + +"@babel/plugin-proposal-optional-catch-binding@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-private-methods@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" + integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== +"@babel/plugin-syntax-class-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" + integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-decorators@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599" - integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ== +"@babel/plugin-syntax-decorators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c" + integrity sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -628,14 +412,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-syntax-json-strings@^7.8.3": +"@babel/plugin-syntax-json-strings@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -643,11 +420,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" + integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -656,7 +433,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -670,389 +447,373 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.3": +"@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== +"@babel/plugin-syntax-top-level-await@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== +"@babel/plugin-transform-arrow-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" + integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== +"@babel/plugin-transform-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== +"@babel/plugin-transform-block-scoped-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" + integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz#3e1b2aa9cbbe1eb8d644c823141a9c5c2a22392d" - integrity sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA== +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" + integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" - integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== +"@babel/plugin-transform-classes@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" + integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== +"@babel/plugin-transform-computed-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" + integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" - integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== +"@babel/plugin-transform-destructuring@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== +"@babel/plugin-transform-duplicate-keys@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== +"@babel/plugin-transform-exponentiation-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== +"@babel/plugin-transform-for-of@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" + integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== +"@babel/plugin-transform-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" + integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== +"@babel/plugin-transform-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" + integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== +"@babel/plugin-transform-member-expression-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" + integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== +"@babel/plugin-transform-modules-amd@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" - integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== +"@babel/plugin-transform-modules-commonjs@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" + integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== +"@babel/plugin-transform-modules-umd@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-new-target@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== +"@babel/plugin-transform-object-super@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" + integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" - integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== +"@babel/plugin-transform-parameters@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== +"@babel/plugin-transform-property-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" + integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== +"@babel/plugin-transform-regenerator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" + regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== +"@babel/plugin-transform-reserved-words@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-runtime@^7.11.0": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" - integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz#f108bc8e0cf33c37da031c097d1df470b3a293fc" + integrity sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" + semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== +"@babel/plugin-transform-shorthand-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" + integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.19.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== +"@babel/plugin-transform-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" + integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== +"@babel/plugin-transform-sticky-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== +"@babel/plugin-transform-template-literals@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== +"@babel/plugin-transform-typeof-symbol@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== +"@babel/plugin-transform-unicode-escapes@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" + integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== +"@babel/plugin-transform-unicode-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@^7.11.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== - dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== + dependencies: + "@babel/compat-data" "^7.11.0" + "@babel/helper-compilation-targets" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-async-generator-functions" "^7.10.4" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.10.4" + "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.11.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.11.0" + "@babel/plugin-proposal-private-methods" "^7.10.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.10.4" + "@babel/plugin-transform-arrow-functions" "^7.10.4" + "@babel/plugin-transform-async-to-generator" "^7.10.4" + "@babel/plugin-transform-block-scoped-functions" "^7.10.4" + "@babel/plugin-transform-block-scoping" "^7.10.4" + "@babel/plugin-transform-classes" "^7.10.4" + "@babel/plugin-transform-computed-properties" "^7.10.4" + "@babel/plugin-transform-destructuring" "^7.10.4" + "@babel/plugin-transform-dotall-regex" "^7.10.4" + "@babel/plugin-transform-duplicate-keys" "^7.10.4" + "@babel/plugin-transform-exponentiation-operator" "^7.10.4" + "@babel/plugin-transform-for-of" "^7.10.4" + "@babel/plugin-transform-function-name" "^7.10.4" + "@babel/plugin-transform-literals" "^7.10.4" + "@babel/plugin-transform-member-expression-literals" "^7.10.4" + "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/plugin-transform-modules-commonjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-umd" "^7.10.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" + "@babel/plugin-transform-new-target" "^7.10.4" + "@babel/plugin-transform-object-super" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-property-literals" "^7.10.4" + "@babel/plugin-transform-regenerator" "^7.10.4" + "@babel/plugin-transform-reserved-words" "^7.10.4" + "@babel/plugin-transform-shorthand-properties" "^7.10.4" + "@babel/plugin-transform-spread" "^7.11.0" + "@babel/plugin-transform-sticky-regex" "^7.10.4" + "@babel/plugin-transform-template-literals" "^7.10.4" + "@babel/plugin-transform-typeof-symbol" "^7.10.4" + "@babel/plugin-transform-unicode-escapes" "^7.10.4" + "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.11.5" + browserslist "^4.12.0" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1060,60 +821,46 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.4.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" - integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.13" - "@babel/types" "^7.20.7" +"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" debug "^4.1.0" globals "^11.1.0" + lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" to-fast-properties "^2.0.0" -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1155,201 +902,52 @@ cssnano-preset-default "^4.0.0" postcss "^7.0.0" -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== +"@jiaminghi/bezier-curve@*": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz#5196aca93c8b061a612b4c3eabcedf9490cef6ee" + integrity sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw== dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" - -"@jest/environment@^24.3.0", "@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^24.3.0", "@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" - source-map "^0.6.0" - string-length "^2.0.0" + "@babel/runtime" "^7.5.5" -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== +"@jiaminghi/c-render@*": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz#982ebd8f71b443bb9507834227834973ebd9b6d8" + integrity sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q== dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== - dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" - pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" + "@babel/runtime" "^7.5.5" + "@jiaminghi/bezier-curve" "*" + "@jiaminghi/color" "*" + "@jiaminghi/transition" "*" -"@jest/types@^24.3.0", "@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== +"@jiaminghi/charts@*": + version "0.2.17" + resolved "https://registry.yarnpkg.com/@jiaminghi/charts/-/charts-0.2.17.tgz#de32d846b8e1209795c0720e32f76a916705dda3" + integrity sha512-Tp467RSTuG+oOq1AJ4xGSWJUfu7Vbq/WPwiXjt8N5vxrBf8nAjr9PGrk+65sfrU229+T/EQG15HPGlpSb7YLVQ== dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" + "@babel/runtime" "^7.5.5" + "@jiaminghi/c-render" "*" -"@jridgewell/gen-mapping@^0.1.0": +"@jiaminghi/color@*": version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + resolved "https://registry.yarnpkg.com/@jiaminghi/color/-/color-0.1.1.tgz#bddf9012dfce6982d3829a983ffeb91ee9dda7b6" + integrity sha512-M09+Sb5HGqVim0zo+nG5gU1v+6gXT8ptr0BZR6dMGt83XmCJgnZtO8s7llTW4hLFFFM5co6geZvTekqLpSPAAQ== dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + "@babel/runtime" "^7.5.5" -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jiaminghi/data-view@^2.7.3": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz#2146d8fc71b9f24be808238ca050ddb7a4c8949f" + integrity sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@babel/runtime" "^7.5.5" + "@jiaminghi/charts" "*" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== +"@jiaminghi/transition@*": + version "1.1.11" + resolved "https://registry.yarnpkg.com/@jiaminghi/transition/-/transition-1.1.11.tgz#576d8af092434b34201eba5eaecc79dd33c8ad8c" + integrity sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@babel/runtime" "^7.5.5" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1359,396 +957,262 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@node-ipc/js-queue@2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz#ac7fe33d766fa53e233ef8fedaf3443a01c5a4cd" - integrity sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw== - dependencies: - easy-stack "1.0.1" - "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@simonwep/pickr@~1.7.0": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@simonwep/pickr/-/pickr-1.7.4.tgz#b14fcd945890388b870cd6db4d6c78d531f25141" - integrity sha512-fq7jgKJT21uWGC1mARBHvvd1JYlEf93o7SuVOB4Lr0x/2UPuNC9Oe9n/GzVeg4oVtqMDfh1wIEJpsdOJEZb+3g== - dependencies: - core-js "^3.6.5" - nanopop "^2.1.0" - "@soda/friendly-errors-webpack-plugin@^1.7.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85" - integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz#706f64bcb4a8b9642b48ae3ace444c70334d615d" + integrity sha512-cWKrGaFX+rfbMrAxVv56DzhPNqOJPZuNIS2HGMELtgGzb+vsMzyig9mml5gZ/hr2BGtSLV+dP2LUEuAL8aG2mQ== dependencies: - chalk "^3.0.0" - error-stack-parser "^2.0.6" - string-width "^4.2.3" - strip-ansi "^6.0.1" + chalk "^1.1.3" + error-stack-parser "^2.0.0" + string-width "^2.0.0" "@soda/get-current-script@^1.0.0": version "1.0.2" resolved "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87" integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w== -"@types/babel__core@^7.1.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== - dependencies: - "@babel/types" "^7.3.0" +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== "@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== dependencies: "@types/connect" "*" "@types/node" "*" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/connect-history-api-fallback@*": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.3.tgz#4772b79b8b53185f0f4c9deab09236baf76ee3b4" + integrity sha512-7SxFCd+FLlxCfwVwbyPxbR4khL9aNikJhrorw8nUIOqeuooc9gifBuDQOJw5kzN7i6i3vLn9G8Wde/4QDihpYw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.33" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" + integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== dependencies: "@types/node" "*" -"@types/d3-format@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.1.tgz#194f1317a499edd7e58766f96735bdc0216bb89d" - integrity sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg== - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.21.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.1.tgz#110b441a210d53ab47795124dbc3e9bb993d1e7c" - integrity sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ== +"@types/echarts@^4.4.3": + version "4.6.5" + resolved "https://registry.yarnpkg.com/@types/echarts/-/echarts-4.6.5.tgz#6aba35e7d5fdb97f0852865a11ad1cd52f0b72fe" + integrity sha512-lzYceya5tCBAUTjYnTP2Lwd1VAlyjLfWm3pRFqS4Nzj+Lb+1ej+uX40miM/je73jqVXvO+g3FTMNzyKWDmLR1Q== dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + "@types/zrender" "*" -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.33" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" - integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== +"@types/express-serve-static-core@*": + version "4.17.12" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.12.tgz#9a487da757425e4f267e7d1c5720226af7f89591" + integrity sha512-EaEdY+Dty1jEU7U6J4CUWwxL+hyEGMkO5jan5gplfegUgCUsIUWqXxqw47uGjimeT4Qgkz/XUfwoau08+fgvKA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + version "4.17.8" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.8.tgz#3df4293293317e61c60137d273a2e96cd8d5f27a" + integrity sha512-wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" + "@types/express-serve-static-core" "*" "@types/qs" "*" "@types/serve-static" "*" "@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: "@types/minimatch" "*" "@types/node" "*" -"@types/http-proxy@^1.17.5": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" - integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== +"@types/http-proxy-middleware@*": + version "0.19.3" + resolved "https://registry.yarnpkg.com/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03" + integrity sha512-lnBTx6HCOUeIJMLbI/LaL5EmdKLhczJY5oeXZpX/cXE4rRqb3RmV7VcMpiEfYkmTjipv3h7IAyIINe4plEv7cA== dependencies: + "@types/connect" "*" + "@types/http-proxy" "*" "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/jest@^24.0.19": - version "24.9.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534" - integrity sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q== +"@types/http-proxy@*": + version "1.17.4" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b" + integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q== dependencies: - jest-diff "^24.3.0" + "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json-schema@^7.0.5": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/mime@*": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" + integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== -"@types/loader-utils@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-1.1.3.tgz#82b9163f2ead596c68a8c03e450fbd6e089df401" - integrity sha512-euKGFr2oCB3ASBwG39CYJMR3N9T0nanVqXdiH7Zu/Nqddt6SmFRxytq/i2w9LQYNQekEtGBz+pE3qG6fQTNvRg== +"@types/mini-css-extract-plugin@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz#d4bdde5197326fca039d418f4bdda03dc74dc451" + integrity sha512-+mN04Oszdz9tGjUP/c1ReVwJXxSniLd7lF++sv+8dkABxVNthg6uccei+4ssKxRHGoMmPxdn7uBdJWONSJGTGQ== dependencies: - "@types/node" "*" "@types/webpack" "*" -"@types/lodash@*": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - "@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*": - version "18.14.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.0.tgz#94c47b9217bbac49d4a67a967fdcdeed89ebb7d0" - integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== - -"@types/node@8.9": - version "8.9.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976" - integrity sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ== - -"@types/node@^8.0.53": - version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + version "14.11.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.1.tgz#56af902ad157e763f9ba63d671c39cda3193c835" + integrity sha512-oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw== "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== "@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.5" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" + integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== "@types/serve-static@*": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" - integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + version "1.13.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.5.tgz#3d25d941a18415d3ab092def846e135a08bbcf53" + integrity sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ== dependencies: + "@types/express-serve-static-core" "*" "@types/mime" "*" - "@types/node" "*" "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" - integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== - -"@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" - integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== - -"@types/tapable@^1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== +"@types/tapable@*": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== "@types/uglify-js@*": - version "3.17.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5" - integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g== + version "3.9.3" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.9.3.tgz#d94ed608e295bc5424c9600e6b8565407b6b4b6b" + integrity sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w== dependencies: source-map "^0.6.1" "@types/webpack-dev-server@^3.11.0": - version "3.11.6" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" - integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== + version "3.11.0" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#bcc3b85e7dc6ac2db25330610513f2228c2fcfb2" + integrity sha512-3+86AgSzl18n5P1iUP9/lz3G3GMztCp+wxdDvVuNhx1sr1jE79GpYfKHL8k+Vht3N74K2n98CuAEw4YPJCYtDA== dependencies: "@types/connect-history-api-fallback" "*" "@types/express" "*" + "@types/http-proxy-middleware" "*" "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" + "@types/webpack" "*" "@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-1.4.2.tgz#5d3d4dea04008a779a90135ff96fb5c0c9e6292c" + integrity sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" -"@types/webpack@*": - version "5.28.0" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" - integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== - dependencies: - "@types/node" "*" - tapable "^2.2.0" - webpack "^5" - -"@types/webpack@^4", "@types/webpack@^4.0.0": - version "4.41.33" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" - integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g== +"@types/webpack@*", "@types/webpack@^4.0.0": + version "4.41.22" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.22.tgz#ff9758a17c6bd499e459b91e78539848c32d0731" + integrity sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ== dependencies: + "@types/anymatch" "*" "@types/node" "*" - "@types/tapable" "^1" + "@types/tapable" "*" "@types/uglify-js" "*" "@types/webpack-sources" "*" - anymatch "^3.0.0" source-map "^0.6.0" -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" +"@types/zrender@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/zrender/-/zrender-4.0.0.tgz#a6806f12ec4eccaaebd9b0d816f049aca6188fbd" + integrity sha512-s89GOIeKFiod2KSqHkfd2rzx+T2DVu7ihZCBEBnhFrzvQPUmzvDSBot9Fi1DfMQm9Odg+rTqoMGC38RvrwJK2w== -"@vue/babel-helper-vue-jsx-merge-props@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz#8d53a1e21347db8edbe54d339902583176de09f2" - integrity sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA== +"@vue/babel-helper-vue-jsx-merge-props@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040" + integrity sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw== -"@vue/babel-helper-vue-transform-on@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" - integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== +"@vue/babel-helper-vue-transform-on@^1.0.0-rc.2": + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.0-rc.2.tgz#7246341f666e7c6e65b13da420e2ce85714fbbca" + integrity sha512-1+7CwjQ0Kasml6rHoNQUmbISwqLNNfFVBUcZl6QBremUl296ZmLrVQPqJP5pyAAWjZke5bpI1hlj+LVVuT7Jcg== -"@vue/babel-plugin-jsx@^1.0.3": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" - integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== +"@vue/babel-plugin-jsx@^1.0.0-0": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.0-rc.3.tgz#ab477ee95c764fbe68842a2eddd474f122e70ac6" + integrity sha512-/Ibq0hoKsidnHWPhgRpjcjYhYcHpqEm2fiKVAPO88OXZNHGwaGgS4yXkC6TDEvlZep4mBDo+2S5T81wpbVh90Q== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/template" "^7.0.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - "@vue/babel-helper-vue-transform-on" "^1.0.2" + "@vue/babel-helper-vue-transform-on" "^1.0.0-rc.2" camelcase "^6.0.0" html-tags "^3.1.0" svg-tags "^1.0.0" -"@vue/babel-plugin-transform-vue-jsx@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz#4d4b3d46a39ea62b7467dd6e26ce47f7ceafb2fe" - integrity sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA== +"@vue/babel-plugin-transform-vue-jsx@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz#c0a3e6efc022e75e4247b448a8fc6b86f03e91c0" + integrity sha512-YfdaoSMvD1nj7+DsrwfTvTnhDXI7bsuh+Y5qWwvQXlD24uLgnsoww3qbiZvWf/EoviZMrvqkqN4CBw0W3BWUTQ== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" html-tags "^2.0.0" lodash.kebabcase "^4.1.1" svg-tags "^1.0.0" -"@vue/babel-preset-app@^4.5.19": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.19.tgz#baee457da0065c016f74fac4149f7c97631ba5a7" - integrity sha512-VCNRiAt2P/bLo09rYt3DLe6xXUMlhJwrvU18Ddd/lYJgC7s8+wvhgYs+MTx4OiAXdu58drGwSBO9SPx7C6J82Q== +"@vue/babel-preset-app@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.6.tgz#391db83518790c07f241ca52ac97c6a71bd9d851" + integrity sha512-Eps83UNiBJeqlbpR9afYnhvjVLElVtA4fDLNuVUr1r3RbepoxWuq+mUTr3TBArPQebnAaDcrZaNHBWTLRbfo3A== dependencies: "@babel/core" "^7.11.0" "@babel/helper-compilation-targets" "^7.9.6" @@ -1760,143 +1224,106 @@ "@babel/plugin-transform-runtime" "^7.11.0" "@babel/preset-env" "^7.11.0" "@babel/runtime" "^7.11.0" - "@vue/babel-plugin-jsx" "^1.0.3" - "@vue/babel-preset-jsx" "^1.2.4" + "@vue/babel-plugin-jsx" "^1.0.0-0" + "@vue/babel-preset-jsx" "^1.1.2" babel-plugin-dynamic-import-node "^2.3.3" core-js "^3.6.5" core-js-compat "^3.6.5" semver "^6.1.0" -"@vue/babel-preset-jsx@^1.2.4": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz#f4914ba314235ab097bc4372ed67473c0780bfcc" - integrity sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" - "@vue/babel-sugar-composition-api-inject-h" "^1.4.0" - "@vue/babel-sugar-composition-api-render-instance" "^1.4.0" - "@vue/babel-sugar-functional-vue" "^1.4.0" - "@vue/babel-sugar-inject-h" "^1.4.0" - "@vue/babel-sugar-v-model" "^1.4.0" - "@vue/babel-sugar-v-on" "^1.4.0" - -"@vue/babel-sugar-composition-api-inject-h@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz#187e1389f8871d89ece743bb50aed713be9d6c85" - integrity sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-composition-api-render-instance@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz#2c1607ae6dffdab47e785bc01fa45ba756e992c1" - integrity sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q== +"@vue/babel-preset-jsx@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz#2e169eb4c204ea37ca66c2ea85a880bfc99d4f20" + integrity sha512-zDpVnFpeC9YXmvGIDSsKNdL7qCG2rA3gjywLYHPCKDT10erjxF4U+6ay9X6TW5fl4GsDlJp9bVfAVQAAVzxxvQ== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" + "@vue/babel-sugar-functional-vue" "^1.1.2" + "@vue/babel-sugar-inject-h" "^1.1.2" + "@vue/babel-sugar-v-model" "^1.1.2" + "@vue/babel-sugar-v-on" "^1.1.2" -"@vue/babel-sugar-functional-vue@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz#60da31068567082287c7337c66ef4df04e0a1029" - integrity sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw== +"@vue/babel-sugar-functional-vue@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz#f7e24fba09e6f1ee70104560a8808057555f1a9a" + integrity sha512-YhmdJQSVEFF5ETJXzrMpj0nkCXEa39TvVxJTuVjzvP2rgKhdMmQzlJuMv/HpadhZaRVMCCF3AEjjJcK5q/cYzQ== dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" -"@vue/babel-sugar-inject-h@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz#bf39aa6631fb1d0399b1c49b4c59e1c8899b4363" - integrity sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA== +"@vue/babel-sugar-inject-h@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz#8a5276b6d8e2ed16ffc8078aad94236274e6edf0" + integrity sha512-VRSENdTvD5htpnVp7i7DNuChR5rVMcORdXjvv5HVvpdKHzDZAYiLSD+GhnhxLm3/dMuk8pSzV+k28ECkiN5m8w== dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" -"@vue/babel-sugar-v-model@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz#a51d986609f430c4f70ada3a93cc560a2970f720" - integrity sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ== +"@vue/babel-sugar-v-model@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz#1ff6fd1b800223fc9cb1e84dceb5e52d737a8192" + integrity sha512-vLXPvNq8vDtt0u9LqFdpGM9W9IWDmCmCyJXuozlq4F4UYVleXJ2Fa+3JsnTZNJcG+pLjjfnEGHci2339Kj5sGg== dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" camelcase "^5.0.0" html-tags "^2.0.0" svg-tags "^1.0.0" -"@vue/babel-sugar-v-on@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz#43b7106a9672d8cbeefc0eb8afe1d376edc6166e" - integrity sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA== +"@vue/babel-sugar-v-on@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz#b2ef99b8f2fab09fbead25aad70ef42e1cf5b13b" + integrity sha512-T8ZCwC8Jp2uRtcZ88YwZtZXe7eQrJcfRq0uTFy6ShbwYJyz5qWskRFoVsdTi9o0WEhmQXxhQUewodOSCUPVmsQ== dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" camelcase "^5.0.0" -"@vue/cli-overlay@^4.5.19": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.19.tgz#d1206f7802bcba1d9c307695b54091df996db804" - integrity sha512-GdxvNSmOw7NHIazCO8gTK+xZbaOmScTtxj6eHVeMbYpDYVPJ+th3VMLWNpw/b6uOjwzzcyKlA5dRQ1DAb+gF/g== +"@vue/cli-overlay@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.6.tgz#56544f9d3d4f74a3d8d593a497b137450ebfe171" + integrity sha512-8kFIdiErtGRlvKWJV0AcF6SXakQDxeuqqcMhWt3qIJxRH6aD33RTC37Q3KWuMsYryBZpEY3tNWGhS1d4spQu0g== -"@vue/cli-plugin-babel@^4.0.4": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.19.tgz#288b32e69f0191a77369e88f071c0cd8036edfa7" - integrity sha512-8ebXzaMW9KNTMAN6+DzkhFsjty1ieqT7hIW5Lbk4v30Qhfjkms7lBWyXPGkoq+wAikXFa1Gnam2xmWOBqDDvWg== +"@vue/cli-plugin-babel@^4.2.0": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.6.tgz#50e98221a775d926b708dab046879cc64920982a" + integrity sha512-jkeXIpvxg2Og+6igsck6qBMFwFN5poqbgDL7JEQP94DPRMAGt+AOoEz6Ultwvykd9lRDD/xLmzZ2MTeXvrpq4A== dependencies: "@babel/core" "^7.11.0" - "@vue/babel-preset-app" "^4.5.19" - "@vue/cli-shared-utils" "^4.5.19" + "@vue/babel-preset-app" "^4.5.6" + "@vue/cli-shared-utils" "^4.5.6" babel-loader "^8.1.0" cache-loader "^4.1.0" thread-loader "^2.1.3" webpack "^4.0.0" -"@vue/cli-plugin-eslint@^4.0.4": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.19.tgz#d1f908b5d079f2902dc23301290e4dd8176f204c" - integrity sha512-53sa4Pu9j5KajesFlj494CcO8vVo3e3nnZ1CCKjGGnrF90id1rUeepcFfz5XjwfEtbJZp2x/NoX/EZE6zCzSFQ== +"@vue/cli-plugin-eslint@^4.2.0": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.6.tgz#d6721bc96f797b9d978e13bd0afd39999f92caf1" + integrity sha512-maG3dy64pGVT9mMQq7KvP6kbBK6TeVgcj1aa1QwzT5yrw65E2So8bKMrEMEjy53b88bgR9jZ7gshOks00jrYsg== dependencies: - "@vue/cli-shared-utils" "^4.5.19" + "@vue/cli-shared-utils" "^4.5.6" eslint-loader "^2.2.1" globby "^9.2.0" inquirer "^7.1.0" webpack "^4.0.0" yorkie "^2.0.0" -"@vue/cli-plugin-router@^4.0.4", "@vue/cli-plugin-router@^4.5.19": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.19.tgz#a7feea7024b83a0af77fc940d1637d3ce2f92e1f" - integrity sha512-3icGzH1IbVYmMMsOwYa0lal/gtvZLebFXdE5hcQJo2mnTwngXGMTyYAzL56EgHBPjbMmRpyj6Iw9k4aVInVX6A== +"@vue/cli-plugin-router@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.6.tgz#96f43cdeea6931ae25adb065dd757d6ff4f81354" + integrity sha512-QEqOGglg0JEKddZPuyiSnAzAVK7IzLrdTPCUegigzGSbUXDW4gQiltY3/2nij2q538YvdIM7JXtW1sUfy4MgHQ== dependencies: - "@vue/cli-shared-utils" "^4.5.19" + "@vue/cli-shared-utils" "^4.5.6" -"@vue/cli-plugin-unit-jest@^4.0.4": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.19.tgz#3371f01bdf60ebd287c4cec0c3801f92c30ed6fe" - integrity sha512-yX61mpeU7DnjOv+Lxtjmr3pzESqBLIXeTK4MJpa/UdzrhnylHP4r6mCYETNLEYtxp8WZUXPjZFIzrKn5poZPJg== - dependencies: - "@babel/core" "^7.11.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.6" - "@types/jest" "^24.0.19" - "@vue/cli-shared-utils" "^4.5.19" - babel-core "^7.0.0-bridge.0" - babel-jest "^24.9.0" - babel-plugin-transform-es2015-modules-commonjs "^6.26.2" - deepmerge "^4.2.2" - jest "^24.9.0" - jest-environment-jsdom-fifteen "^1.0.2" - jest-serializer-vue "^2.0.2" - jest-transform-stub "^2.0.0" - jest-watch-typeahead "^0.4.2" - ts-jest "^24.2.0" - vue-jest "^3.0.5" - -"@vue/cli-plugin-vuex@^4.0.4", "@vue/cli-plugin-vuex@^4.5.19": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz#2452de58eb66ed873852bea45e6e06b57d842b47" - integrity sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw== - -"@vue/cli-service@^4.0.4": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.19.tgz#5f6513128f426be0ee9a7d03155c23a6f23f8d42" - integrity sha512-+Wpvj8fMTCt9ZPOLu5YaLkFCQmB4MrZ26aRmhhKiCQ/4PMoL6mLezfqdt6c+m2htM+1WV5RunRo+0WHl2DfwZA== +"@vue/cli-plugin-vuex@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.6.tgz#484687d85369b0dca065c4491bf18efff5e31ecf" + integrity sha512-cWxj0jIhhupU+oFl0mc1St3ig9iF5F01XKwAhKEbvvuHR97zHxLd29My/vvcRwojZMy4aY320oJ+0ljoCIbueQ== + +"@vue/cli-service@^4.2.0": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.6.tgz#a63fd390ed8cbfb5d36201f54dec9aeb90ca93e3" + integrity sha512-wl0rhjHSpy2Mc2zNU6sfhaUVNNaRzgXNfZMIpTZMO3wJalPMLuvGC3KLMaXcpvuI01zeQBmkEocAdhzay4lQ0w== dependencies: "@intervolga/optimize-cssnano-plugin" "^1.0.5" "@soda/friendly-errors-webpack-plugin" "^1.7.1" @@ -1904,10 +1331,10 @@ "@types/minimist" "^1.2.0" "@types/webpack" "^4.0.0" "@types/webpack-dev-server" "^3.11.0" - "@vue/cli-overlay" "^4.5.19" - "@vue/cli-plugin-router" "^4.5.19" - "@vue/cli-plugin-vuex" "^4.5.19" - "@vue/cli-shared-utils" "^4.5.19" + "@vue/cli-overlay" "^4.5.6" + "@vue/cli-plugin-router" "^4.5.6" + "@vue/cli-plugin-vuex" "^4.5.6" + "@vue/cli-shared-utils" "^4.5.6" "@vue/component-compiler-utils" "^3.1.2" "@vue/preload-webpack-plugin" "^1.1.0" "@vue/web-component-wrapper" "^1.2.0" @@ -1942,8 +1369,8 @@ pnp-webpack-plugin "^1.6.4" portfinder "^1.0.26" postcss-loader "^3.0.0" - ssri "^8.0.1" - terser-webpack-plugin "^1.4.4" + ssri "^7.1.0" + terser-webpack-plugin "^2.3.6" thread-loader "^2.1.3" url-loader "^2.2.0" vue-loader "^15.9.2" @@ -1954,19 +1381,19 @@ webpack-dev-server "^3.11.0" webpack-merge "^4.2.2" optionalDependencies: - vue-loader-v16 "npm:vue-loader@^16.1.0" + vue-loader-v16 "npm:vue-loader@^16.0.0-beta.7" -"@vue/cli-shared-utils@^4.5.19": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz#cc389b1de1b05073804c0fe9b4b083b928ef6130" - integrity sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g== +"@vue/cli-shared-utils@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.6.tgz#14644972043c95566788d07d9a9367edd438a4d6" + integrity sha512-p6ePDlEa7Xc0GEt99KDOCwPZtR7UnoEaZLMfwPYU5LAWkdCmtAw8HPAY/WWcjtoiaAkY4k9tz7ZehQasZ9mJxg== dependencies: - "@achrinza/node-ipc" "9.2.2" "@hapi/joi" "^15.0.1" chalk "^2.4.2" execa "^1.0.0" launch-editor "^2.2.1" lru-cache "^5.1.1" + node-ipc "^9.1.1" open "^6.3.0" ora "^3.4.0" read-pkg "^5.1.1" @@ -1974,68 +1401,31 @@ semver "^6.1.0" strip-ansi "^6.0.0" -"@vue/compiler-sfc@2.7.14": - version "2.7.14" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd" - integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA== - dependencies: - "@babel/parser" "^7.18.4" - postcss "^8.4.14" - source-map "^0.6.1" - "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" - integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" + integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== dependencies: consolidate "^0.15.1" hash-sum "^1.0.2" lru-cache "^4.1.2" merge-source-map "^1.1.0" - postcss "^7.0.36" + postcss "^7.0.14" postcss-selector-parser "^6.0.2" source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" optionalDependencies: - prettier "^1.18.2 || ^2.0.0" - -"@vue/eslint-config-standard@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz#6be447ee674e3b0f733c584098fd9a22e6d76fcd" - integrity sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg== - dependencies: - eslint-config-standard "^12.0.0" - eslint-plugin-import "^2.14.0" - eslint-plugin-node "^8.0.0" - eslint-plugin-promise "^4.0.1" - eslint-plugin-standard "^4.0.0" + prettier "^1.18.2" "@vue/preload-webpack-plugin@^1.1.0": version "1.1.2" resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== -"@vue/test-utils@^1.0.0-beta.29": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.3.4.tgz#83a68179178cb3da4b2b7c5c59ac660dbdff8ef5" - integrity sha512-yh2sbosCxk5FfwjXYXdY9rUffaJqYEFjsod5sCD4oosRn2x8LfBLEzQH0scdo5n7z8VkBUThpYzbkI6DVAWimA== - dependencies: - dom-event-types "^1.0.0" - lodash "^4.17.15" - pretty "^2.0.0" - "@vue/web-component-wrapper@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" - integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA== - -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" + integrity sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw== "@webassemblyjs/ast@1.9.0": version "1.9.0" @@ -2046,31 +1436,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" @@ -2095,35 +1470,11 @@ dependencies: "@webassemblyjs/ast" "1.9.0" -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -2134,13 +1485,6 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -2148,13 +1492,6 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -2162,30 +1499,11 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -2200,17 +1518,6 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -2222,16 +1529,6 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -2242,18 +1539,6 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -2278,14 +1563,6 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -2305,88 +1582,46 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abab@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abs-svg-path@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf" - integrity sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-globals@^4.1.0, acorn-globals@^4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - -acorn-jsx@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + mime-types "~2.1.24" + negotiator "0.6.2" -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== +acorn-jsx@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7, acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== -acorn@^8.5.0, acorn@^8.7.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +address@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== -add-dom-event-listener@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" - integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: - object-assign "4.x" - -address@^1.1.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + clean-stack "^2.0.0" + indent-string "^4.0.0" ajv-errors@^1.0.0: version "1.0.1" @@ -2398,86 +1633,62 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg== - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - integrity sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw== - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== dependencies: - type-fest "^0.21.3" + type-fest "^0.11.0" -ansi-html-community@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" @@ -2487,52 +1698,17 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: + "@types/color-name" "^1.1.1" color-convert "^2.0.1" -ant-design-vue@1.7.8: - version "1.7.8" - resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-1.7.8.tgz#1abbf86b68a4f5b1000bea0487b8031dc0001661" - integrity sha512-F1hmiS9vwbyfuFvlamdW5l9bHKqRlj9wHaGDIE41NZMWXyWy8qL0UFa/+I0Wl8gQWZCqODW5pN6Yfoyn85At3A== - dependencies: - "@ant-design/icons" "^2.1.1" - "@ant-design/icons-vue" "^2.0.0" - "@simonwep/pickr" "~1.7.0" - add-dom-event-listener "^1.0.2" - array-tree-filter "^2.1.0" - async-validator "^3.0.3" - babel-helper-vue-jsx-merge-props "^2.0.3" - babel-runtime "6.x" - classnames "^2.2.5" - component-classes "^1.2.6" - dom-align "^1.10.4" - dom-closest "^0.2.0" - dom-scroll-into-view "^2.0.0" - enquire.js "^2.1.6" - intersperse "^1.0.0" - is-mobile "^2.2.1" - is-negative-zero "^2.0.0" - ismobilejs "^1.0.0" - json2mq "^0.2.0" - lodash "^4.17.5" - moment "^2.21.0" - mutationobserver-shim "^0.3.2" - node-emoji "^1.10.0" - omit.js "^1.0.0" - raf "^3.4.0" - resize-observer-polyfill "^1.5.1" - shallow-equal "^1.0.0" - shallowequal "^1.0.2" - vue-ref "^2.0.0" - warning "^4.0.0" - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= anymatch@^2.0.0: version "2.0.0" @@ -2542,10 +1718,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -2556,9 +1732,9 @@ aproba@^1.1.1: integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== arch@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + version "2.1.2" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" + integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== argparse@^1.0.7: version "1.0.10" @@ -2570,7 +1746,7 @@ argparse@^1.0.7: arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: version "1.1.0" @@ -2580,86 +1756,34 @@ arr-flatten@^1.1.0: arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA== + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-tree-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" - integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== - array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.reduce@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" - integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= asn1.js@^5.2.0: version "5.4.1" @@ -2672,16 +1796,16 @@ asn1.js@^5.2.0: safer-buffer "^2.1.0" asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: version "1.5.0" @@ -2694,7 +1818,7 @@ assert@^1.1.1: assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= astral-regex@^1.0.0: version "1.0.0" @@ -2702,31 +1826,26 @@ astral-regex@^1.0.0: integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-each@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" - integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-validator@^3.0.3: - version "3.5.2" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.5.2.tgz#68e866a96824e8b2694ff7a831c1a25c44d5e500" - integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ== - -async@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob@^2.1.2: version "2.1.2" @@ -2734,55 +1853,29 @@ atob@^2.1.2: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.8.6: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== dependencies: browserslist "^4.12.0" caniuse-lite "^1.0.30001109" + colorette "^1.2.1" normalize-range "^0.1.2" num2fraction "^1.2.2" - picocolors "^0.2.1" postcss "^7.0.32" postcss-value-parser "^4.1.0" -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== - -axios@^0.19.0: - version "0.19.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== - dependencies: - follow-redirects "1.5.10" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" + version "1.10.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-eslint@^10.0.1: +babel-eslint@^10.0.3: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== @@ -2794,60 +1887,17 @@ babel-eslint@^10.0.1: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-vue-jsx-merge-props@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" - integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== - -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" - babel-loader@^8.1.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== - dependencies: - babel-runtime "^6.22.0" - babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -2855,167 +1905,15 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-import@^1.12.2: - version "1.13.6" - resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.13.6.tgz#4ff2aa3b9759e6a4458ce59890da3684fe3dda9d" - integrity sha512-N7FYnGh0DFsvDRkAPsvFq/metVfVD7P2h1rokOPpEH4cZbdRHCW+2jbXt0nnuqowkm/xhh2ww1anIdEpfYa7ZA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== - dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" - -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - integrity sha512-chI3Rt9T1AbrQD1s+vxw3KcwC9yHtF621/MacuItITfZX344uhQoANjpoSJZleAmW2tjlolqB/f+h7jIqXa7pA== - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - integrity sha512-n4jtBA3OYBdvG5PRMKsMXJXHfLYw/ZOmtxCLOOwz6Ro5XlrColkStLnz1AS1L2yfPA9BKJ1ZNlmVCLjAL9DSIg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-es2015-modules-commonjs@^6.26.2: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-remove-console@^6.9.4: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" - integrity sha512-88blrUrMX3SPiGkT1GnvVY8E/7A+k6oj3MNvUtTIxJflFzXTw1bHkuJ/y039ouhFMp2prRn5cQGzokViYi1dsg== - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" - integrity sha512-0l7mVU+LrQ2X/ZTUq63T5i3VyR2aTgcRTFmBcD6djQ/Fek6q1A9t5u0F4jZVYHzp78jwWAzGfLpAY1b4/I3lfg== - dependencies: - babel-runtime "^6.22.0" - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== - dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" - -babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base@^0.11.1: version "0.11.2" @@ -3030,20 +1928,15 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch-processor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" - integrity sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA== - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" @@ -3073,9 +1966,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== bindings@^1.5.0: version "1.5.0" @@ -3089,38 +1982,36 @@ bluebird@^3.1.1, bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: - bytes "3.1.2" + bytes "3.1.0" content-type "~1.0.4" debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" + depd "~1.1.2" + http-errors "1.7.2" iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: array-flatten "^2.1.0" deep-equal "^1.0.1" @@ -3132,7 +2023,7 @@ bonjour@^3.5.0: boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= brace-expansion@^1.1.7: version "1.1.11" @@ -3142,13 +2033,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -3165,29 +2049,17 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, braces@~3.0.2: +braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" @@ -3221,11 +2093,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: - bn.js "^5.0.0" + bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -3250,34 +2122,20 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5: + version "4.14.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.3.tgz#381f9e7f13794b2eb17e1761b4f118e8ae665a53" + integrity sha512-GcZPC5+YqyPO4SFnz48/B0YaCwS47Q9iPChRGi6t7HhflKBcINzFrJvRfC+jp30sRMKxF+d4EHGs27Z0XP1NaQ== dependencies: - node-int64 "^0.4.0" + caniuse-lite "^1.0.30001131" + electron-to-chromium "^1.3.570" + escalade "^3.1.0" + node-releases "^1.1.61" -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" @@ -3292,7 +2150,7 @@ buffer-json@^2.0.0: buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.2" @@ -3306,17 +2164,17 @@ buffer@^4.3.0: builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.2, cacache@^12.0.3: version "12.0.4" @@ -3339,6 +2197,30 @@ cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -3366,37 +2248,29 @@ cache-loader@^4.1.0: neo-async "^2.6.1" schema-utils "^2.0.0" -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - call-me-maybe@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" - integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: version "3.1.0" @@ -3406,30 +2280,20 @@ callsites@^3.0.0: camel-case@3.0.x: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= dependencies: no-case "^2.2.0" upper-case "^1.1.1" -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== caniuse-api@^3.0.0: version "3.0.0" @@ -3441,40 +2305,25 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001449: - version "1.0.30001456" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001456.tgz#734ec1dbfa4f3abe6e435b78ecf40d68e8c32ce4" - integrity sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001131: + version "1.0.30001131" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001131.tgz#afad8a28fc2b7a0d3ae9407e71085a0ead905d54" + integrity sha512-4QYi6Mal4MMfQMSqGIRPGbKIbZygeN83QsWq1ixpUwvtfgAZot5BrCKzGygvZaV+CnELdTwD0S4cqUNozq7/Cw== case-sensitive-paths-webpack-plugin@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ== - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -3482,7 +2331,7 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3499,34 +2348,39 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== +chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== - chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - check-types@^8.0.3: version "8.0.3" resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -3546,41 +2400,23 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: +chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -3599,22 +2435,22 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.5: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== - clean-css@4.2.x: - version "4.2.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== dependencies: source-map "~0.6.0" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" @@ -3626,41 +2462,27 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-highlight@^2.1.4: - version "2.1.11" - resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" - integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + version "2.1.4" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.4.tgz#098cb642cf17f42adc1c1145e07f960ec4d7522b" + integrity sha512-s7Zofobm20qriqDoU9sXptQx0t2R9PEgac92mENNm7xaEe1hn71IIMsXMK+6encA6WRCWWxIGQbipr3q998tlQ== dependencies: - chalk "^4.0.0" - highlight.js "^10.7.1" + chalk "^3.0.0" + highlight.js "^9.6.0" mz "^2.4.0" parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" + parse5-htmlparser2-tree-adapter "^5.1.1" + yargs "^15.0.0" cli-spinners@^2.0.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" - integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" + integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== -clipboard@^2.0.0: - version "2.0.11" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" - integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - clipboardy@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" @@ -3670,15 +2492,6 @@ clipboardy@^2.3.0: execa "^1.0.0" is-wsl "^2.1.1" -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA== - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -3697,29 +2510,19 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone@2.x, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= coa@^2.0.2: version "2.0.2" @@ -3733,12 +2536,12 @@ coa@^2.0.2: collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3755,28 +2558,33 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -3785,16 +2593,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== +commander@^2.18.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@~2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" @@ -3803,25 +2611,13 @@ commander@~2.19.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -component-classes@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" - integrity sha512-hPFGULxdwugu1QWW3SvVOCUHLzO34+a2J6Wqy0c5ASQkfi9/8nZcBB0ZohaEbXOQlCflMAEMmEWk7u7BVs4koA== - dependencies: - component-indexof "0.0.3" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -component-indexof@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" - integrity sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw== - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -3845,7 +2641,7 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0: version "1.6.2" @@ -3857,23 +2653,6 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -condense-newlines@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" - integrity sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg== - dependencies: - extend-shallow "^2.0.1" - is-whitespace "^0.3.0" - kind-of "^3.0.2" - -config-chain@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -3894,51 +2673,36 @@ consolidate@^0.15.1: constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -container-query-toolkit@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/container-query-toolkit/-/container-query-toolkit-0.1.3.tgz#79ece9fe491d9187b7051247067f1faac6ce00b0" - integrity sha512-B1EvYaLzFKz81vgWDm+zL0X7fzFUjlN6lF/RivDeNT4xW9mFsTh1oiC9rtvFFiwG52e3JUmYLXwPpqNBf2AXHA== + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: - safe-buffer "5.2.1" + safe-buffer "5.1.2" content-type@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -contour_plot@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/contour_plot/-/contour_plot-0.0.1.tgz#475870f032b8e338412aa5fc507880f0bf495c77" - integrity sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.4.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -copy-anything@^2.0.1: - version "2.0.6" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" - integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== - dependencies: - is-what "^3.14.1" +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== copy-concurrently@^1.0.0: version "1.0.5" @@ -3955,14 +2719,7 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -copy-to-clipboard@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" - integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== - dependencies: - toggle-selection "^1.0.6" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-webpack-plugin@^5.1.1: version "5.1.2" @@ -3982,32 +2739,23 @@ copy-webpack-plugin@^5.1.1: serialize-javascript "^4.0.0" webpack-log "^2.0.0" -core-js-compat@^3.25.1, core-js-compat@^3.6.5: - version "3.28.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.28.0.tgz#c08456d854608a7264530a2afa281fadf20ecee6" - integrity sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg== +core-js-compat@^3.6.2, core-js-compat@^3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== dependencies: - browserslist "^4.21.5" - -core-js@2, core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + browserslist "^4.8.5" + semver "7.0.0" -core-js@^3.1.2, core-js@^3.6.5: - version "3.28.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.28.0.tgz#ed8b9e99c273879fdfff0edfc77ee709a5800e4a" - integrity sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw== +core-js@^3.4.4, core-js@^3.6.4, core-js@^3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== -core-util-is@1.0.2: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.0: version "5.2.1" @@ -4053,7 +2801,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -4079,11 +2827,6 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -4104,7 +2847,7 @@ crypto-browserify@^3.11.0: css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-declaration-sorter@^4.0.1: version "4.0.1" @@ -4138,6 +2881,16 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + css-select@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" @@ -4148,17 +2901,6 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -4167,43 +2909,33 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== dependencies: - mdn-data "2.0.14" + mdn-data "2.0.6" source-map "^0.6.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== -css@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" +css-what@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" + integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== dependencies: css-declaration-sorter "^4.0.1" cssnano-util-raw-cache "^4.0.1" @@ -4233,18 +2965,18 @@ cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: postcss-ordered-values "^4.1.2" postcss-reduce-initial "^4.0.3" postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" + postcss-svgo "^4.0.2" postcss-unique-selectors "^4.0.1" cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= cssnano-util-get-match@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= cssnano-util-raw-cache@^4.0.1: version "4.0.1" @@ -4259,276 +2991,71 @@ cssnano-util-same-parent@^4.0.0: integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== cssnano@^4.0.0, cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== dependencies: cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" + cssnano-preset-default "^4.0.7" is-resolvable "^1.0.0" postcss "^7.0.0" csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssom@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -cssstyle@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + version "4.0.3" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== dependencies: - cssom "~0.3.6" - -csstype@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + css-tree "1.0.0-alpha.39" cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== - -d3-array@1, d3-array@~1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - -d3-collection@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== - -d3-color@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - -d3-composite-projections@~1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/d3-composite-projections/-/d3-composite-projections-1.2.3.tgz#d4283b32fca77ab0aeab92354f7726410f94b1cc" - integrity sha512-RxNBoRGf3epTnQBUKeEpaXpD8BA/Ud0xRuLwWxyI7dWfuuYgJZMKw6ZsZOwfDNC0ZbMWaU0eBFlL05A2jlcsWg== - dependencies: - d3-geo "^1.11.6" - d3-path "^1.0.7" - -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -d3-dsv@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.10.tgz#4371c489a2a654a297aca16fcaf605a6f31a6f51" - integrity sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g== - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - -d3-ease@1, d3-ease@~1.0.3: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== - -d3-format@^1.3.0: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== - -d3-geo-projection@~2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz#7df8e1e9d046d631c6509f7e531357d4adc24aa3" - integrity sha512-zft6RRvPaB1qplTodBVcSH5Ftvmvvg0qoDiqpt+fyNthGr/qr+DD30cizNDluXjW7jmo7EKUTjvFCAHofv08Ow== - dependencies: - commander "2" - d3-array "1" - d3-geo "^1.1.0" - -d3-geo@^1.1.0, d3-geo@^1.11.6: - version "1.12.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" - integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== - dependencies: - d3-array "1" - -d3-geo@~1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.6.4.tgz#f20e1e461cb1845f5a8be55ab6f876542a7e3199" - integrity sha512-O5Q3iftLc6/EdU1MHUm+O29NoKKN/cyQtySnD9/yEEcinN+q4ng+H56e2Yn1YWdfZBoiaRVtR2NoJ3ivKX5ptQ== - dependencies: - d3-array "1" - -d3-hexjson@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-hexjson/-/d3-hexjson-1.0.1.tgz#6a23111e8359f1e214f5d0afa379c02b2b67df0b" - integrity sha512-TeH4T0PSbDazMm3gHgc4ulO0PfrZpz0Uk3y5tCGz+NgC7HnX7KBdem7uAN+j9x3ZshTh7raN3V/bFhaLB2C8DA== - dependencies: - d3-array "1" - -d3-hierarchy@~1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - -d3-interpolate@~1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" - integrity sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A== - dependencies: - d3-color "1" - -d3-path@1, d3-path@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -d3-sankey@~0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.7.1.tgz#d229832268fc69a7fec84803e96c2256a614c521" - integrity sha512-KAyowBWtTLQxyXq1UhXcdCXKbuCQvL51FgqOS+fKlNTQ/4FfSWabRlWs2DezzwKyredAsOhBSQZN/i0XdeE2tQ== - dependencies: - d3-array "1" - d3-collection "1" - d3-shape "^1.2.0" - -d3-selection@^1.0.2, d3-selection@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - -d3-shape@^1.2.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -d3-timer@1, d3-timer@~1.0.6: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -d3-transition@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-voronoi@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" - integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== - -dagre@~0.8.2: - version "0.8.5" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" - integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== - dependencies: - graphlib "^2.1.8" - lodash "^4.17.15" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" -data-urls@^1.0.0, data-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -deasync@^0.1.15: - version "0.1.28" - resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.28.tgz#9b447b79b3f822432f0ab6a8614c0062808b5ad2" - integrity sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg== - dependencies: - bindings "^1.5.0" - node-addon-api "^1.7.1" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@^3.1.1, debug@^3.2.5: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: - ms "2.1.2" + ms "^2.1.1" -decamelize@^1.0.0, decamelize@^1.2.0: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-equal@^1.0.1, deep-equal@~1.1.1: +deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -4541,20 +3068,15 @@ deep-equal@^1.0.1, deep-equal@~1.1.1: regexp.prototype.flags "^1.2.0" deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= deepmerge@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== -deepmerge@^4.2.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" - integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== - default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -4571,31 +3093,30 @@ default-gateway@^5.0.5: execa "^3.3.0" defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= dependencies: clone "^1.0.2" -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" + object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" @@ -4607,11 +3128,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -4628,22 +3144,12 @@ del@^4.1.1: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: version "1.0.1" @@ -4653,30 +3159,15 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-browser@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" - integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== diffie-hellman@^5.0.0: version "5.0.3" @@ -4697,12 +3188,12 @@ dir-glob@^2.0.0, dir-glob@^2.2.2: dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -4710,17 +3201,10 @@ dns-packet@^1.3.1: dns-txt@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -4728,40 +3212,13 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-align@^1.10.4: - version "1.12.4" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" - integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== - -dom-closest@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" - integrity sha512-6neTn1BtJlTSt+XSISXpnOsF1uni1CHsP/tmzZMGWxasYFHsBOqrHPnzmneqEgKhpagnfnfSfbvRRW0xFsBHAA== - dependencies: - dom-matches ">=1.0.1" - -dom-converter@^0.2.0: +dom-converter@^0.2: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" -dom-event-types@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.1.0.tgz#120c1f92ddea7758db1ccee0a100a33c39f4701b" - integrity sha512-jNCX+uNJ3v38BKvPbpki6j5ItVlnSqVV6vDWGS6rExzCMjsc39frLjm1n91o6YaKK6AZl0wLloItW6C6mr61BQ== - -dom-matches@>=1.0.1: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" - integrity sha512-2VI856xEDCLXi19W+4BechR5/oIS6bKCKqcf16GR8Pg7dGLJ/eBOWVbCmQx2ISvYH6wTNx5Ef7JTOw1dRGRx6A== - -dom-scroll-into-view@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" - integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== - dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -4770,15 +3227,6 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -4789,17 +3237,10 @@ domelementtype@1, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" +domelementtype@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" + integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== domhandler@^2.3.0: version "2.4.2" @@ -4808,12 +3249,13 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= dependencies: - domelementtype "^2.2.0" + dom-serializer "0" + domelementtype "1" domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" @@ -4823,15 +3265,6 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -4845,16 +3278,9 @@ dotenv-expand@^5.1.0: integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== dotenv@^8.2.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== duplexer@^0.1.1: version "0.1.2" @@ -4871,70 +3297,53 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -easy-stack@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" - integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== +easy-stack@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788" + integrity sha1-EskbMIWjfwuqM26UhurEv5Tj54g= ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -echarts@^4.9.0: +echarts@^4.6.0: version "4.9.0" resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.9.0.tgz#a9b9baa03f03a2a731e6340c55befb57a9e1347d" integrity sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA== dependencies: zrender "4.3.2" -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ejs@^2.6.1: version "2.7.4" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.4.284: - version "1.4.302" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz#5770646ffe7051677b489226144aad9386d420f2" - integrity sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw== - -element-resize-detector@1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.1.13.tgz#f61907e98a91b1ad215f92790bc15113df68444d" - integrity sha512-QzMTvOM+hSXzPGxO4XeHq8OJAJZ/0kZQRbIBVGlR4GRVWHdfv/I/udYzIcQCZtzN1LdwkrGsNPWTIDbC8Tj7PA== - dependencies: - batch-processor "^1.0.0" +electron-to-chromium@^1.3.570: + version "1.3.570" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz#3f5141cc39b4e3892a276b4889980dabf1d29c7f" + integrity sha512-Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg== elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" + bn.js "^4.4.0" + brorand "^1.0.1" hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" emoji-regex@^7.0.1: version "7.0.3" @@ -4949,7 +3358,7 @@ emoji-regex@^8.0.0: emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= emojis-list@^3.0.0: version "3.0.0" @@ -4959,14 +3368,7 @@ emojis-list@^3.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" @@ -4975,42 +3377,29 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquire.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" - integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw== - entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" @@ -5021,77 +3410,47 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error-stack-parser@^2.0.6: - version "2.1.4" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== +error-stack-parser@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== dependencies: - stackframe "^1.3.4" + stackframe "^1.1.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" - integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.4" - is-array-buffer "^3.0.1" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.2" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== +es-abstract@^1.18.0-next.0: + version "1.18.0-next.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" + integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -5102,51 +3461,20 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" + integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@^1.11.1, escodegen@^1.9.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-standard@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" - integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== - -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== - dependencies: - debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= eslint-loader@^2.2.1: version "2.2.1" @@ -5159,79 +3487,24 @@ eslint-loader@^2.2.1: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== - dependencies: - debug "^3.2.7" - -eslint-plugin-es@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" - integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== - dependencies: - eslint-utils "^1.4.2" - regexpp "^2.0.1" - -eslint-plugin-html@^5.0.0: - version "5.0.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-5.0.5.tgz#e2388f813f75b2287cde884811eab287de8e0f56" - integrity sha512-v/33i3OD0fuXcRXexVyXXBOe4mLBLBQoF1UO1Uy9D+XLq4MC8K45GcQKfqjC/FnHAHp3pYUjpHHktYNCtShGmg== - dependencies: - htmlparser2 "^3.10.0" - -eslint-plugin-import@^2.14.0: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-node@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" - integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== +eslint-plugin-vue@^6.1.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe" + integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ== dependencies: - eslint-plugin-es "^1.3.1" - eslint-utils "^1.3.1" - ignore "^5.0.2" - minimatch "^3.0.4" - resolve "^1.8.1" - semver "^5.5.0" - -eslint-plugin-promise@^4.0.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" - integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== - -eslint-plugin-standard@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + natural-compare "^1.4.0" + semver "^5.6.0" + vue-eslint-parser "^7.0.0" -eslint-plugin-vue@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961" - integrity sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw== +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: - vue-eslint-parser "^5.0.0" + esrecurse "^4.1.0" + estraverse "^4.1.1" -eslint-scope@5.1.1: +eslint-scope@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5239,15 +3512,7 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^4.0.0, eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1, eslint-utils@^1.4.2: +eslint-utils@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== @@ -5259,75 +3524,67 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint@^5.16.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== +eslint@^6.7.2: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" + ajv "^6.10.0" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" + glob-parent "^5.0.0" + globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.11" + lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" + optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" -espree@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" - integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== +espree@^6.1.2, espree@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" - integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: estraverse "^5.1.0" @@ -5338,15 +3595,15 @@ esrecurse@^4.1.0, esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== esutils@^2.0.2: version "2.0.3" @@ -5356,7 +3613,7 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= event-pubsub@4.3.0: version "4.3.0" @@ -5368,15 +3625,17 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -5386,15 +3645,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - execa@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -5433,15 +3687,10 @@ execa@^3.3.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -5451,51 +3700,38 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - express@^4.16.3, express@^4.17.1: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: - accepts "~1.3.8" + accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" + body-parser "1.19.0" + content-disposition "0.5.3" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.4.0" cookie-signature "1.0.6" debug "2.6.9" - depd "2.0.0" + depd "~1.1.2" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.2.0" + finalhandler "~1.1.2" fresh "0.5.2" - http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.3.0" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" + proxy-addr "~2.0.5" + qs "6.7.0" range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -5503,14 +3739,14 @@ express@^4.16.3, express@^4.17.1: extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -5520,15 +3756,6 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -5552,22 +3779,15 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-from-css@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" - integrity sha512-41qWGBdtKp9U7sgBxAQ7vonYqSXzgW/SiAYzq4tdWSVhAShvpVCH1nyvPQgjse6EdgbW7Y7ERdT3674/lKr65A== - dependencies: - css "^2.1.0" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^3.1.1: version "3.1.3" @@ -5586,7 +3806,7 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -5594,39 +3814,27 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -faye-websocket@^0.11.3, faye-websocket@^0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= dependencies: websocket-driver ">=0.5.1" -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: - bser "2.1.1" - -fecha@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" - integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== + websocket-driver ">=0.5.1" figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -5662,7 +3870,7 @@ filesize@^3.6.1: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -5676,31 +3884,23 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.3.0" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~1.5.0" unpipe "~1.0.0" -find-babel-config@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" - integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== - dependencies: - json5 "^0.5.1" - path-exists "^3.0.0" - find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A== + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= dependencies: commondir "^1.0.1" mkdirp "^0.5.1" @@ -5716,9 +3916,9 @@ find-cache-dir@^2.1.0: pkg-dir "^3.0.0" find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" make-dir "^3.0.2" @@ -5727,7 +3927,7 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -5739,7 +3939,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -5769,45 +3969,20 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -fmin@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/fmin/-/fmin-0.0.2.tgz#59bbb40d43ffdc1c94cd00a568c41f95f1973017" - integrity sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A== - dependencies: - contour_plot "^0.0.1" - json2module "^0.0.3" - rollup "^0.25.8" - tape "^4.5.1" - uglify-js "^2.6.2" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - follow-redirects@^1.0.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -for-each@^0.3.3, for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" @@ -5818,27 +3993,27 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" @@ -5852,10 +4027,17 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -5865,7 +4047,7 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.13" @@ -5875,59 +4057,35 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-stream@^4.0.0: version "4.1.0" @@ -5943,100 +4101,66 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" -git-revision-webpack-plugin@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/git-revision-webpack-plugin/-/git-revision-webpack-plugin-3.0.6.tgz#5dd6c6829fae05b405059dea6195b23875d69d4d" - integrity sha512-vW/9dBahGbpKPcccy3xKkHgdWoH/cAPPc3lQw+3edl7b4j29JfNGVrja0a1d8ZoRe4nTN8GCPrF9aBErDnzx5Q== - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== +glob-parent@^5.0.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -globals@^11.1.0, globals@^11.7.0: +globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== dependencies: - define-properties "^1.1.3" + type-fest "^0.8.1" globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -6047,7 +4171,7 @@ globby@^6.1.0: globby@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g== + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= dependencies: array-union "^1.0.1" dir-glob "^2.0.0" @@ -6070,36 +4194,10 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== - dependencies: - delegate "^3.1.2" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== gzip-size@^5.0.0: version "5.1.1" @@ -6117,7 +4215,7 @@ handle-thing@^2.0.0: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" @@ -6130,53 +4228,29 @@ har-validator@~5.1.3: has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: +has-symbols@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -6185,7 +4259,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -6194,17 +4268,17 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.3, has@~1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -6223,7 +4297,7 @@ hash-base@^3.0.0: hash-sum@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= hash-sum@^2.0.0: version "2.0.0" @@ -6238,7 +4312,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.x, he@^1.2.0: +he@1.2.x, he@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -6248,20 +4322,15 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^10.7.1: - version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== +highlight.js@^9.6.0: + version "9.18.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" + integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== -highlight.js@^9.12.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - -hmac-drbg@^1.0.1: +hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -6273,14 +4342,14 @@ hoopy@^0.1.4: integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -6290,29 +4359,22 @@ hpack.js@^2.1.6: hsl-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= hsla-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== html-minifier@^3.2.3: version "3.5.21" @@ -6330,17 +4392,17 @@ html-minifier@^3.2.3: html-tags@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g== + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= html-tags@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" - integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== html-webpack-plugin@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - integrity sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg== + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= dependencies: html-minifier "^3.2.3" loader-utils "^0.2.16" @@ -6350,7 +4412,7 @@ html-webpack-plugin@^3.2.0: toposort "^1.0.0" util.promisify "1.0.0" -htmlparser2@^3.10.0: +htmlparser2@^3.3.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -6362,46 +4424,47 @@ htmlparser2@^3.10.0: inherits "^2.0.1" readable-stream "^3.1.1" -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" inherits "2.0.3" setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + version "0.5.2" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" + integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== http-proxy-middleware@0.19.1: version "0.19.1" @@ -6413,18 +4476,7 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.17.0, http-proxy@^1.18.1: +http-proxy@^1.17.0: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -6436,7 +4488,7 @@ http-proxy@^1.17.0, http-proxy@^1.18.1: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -6445,27 +4497,20 @@ http-signature@~1.2.0: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" @@ -6474,14 +4519,14 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: postcss "^7.0.14" ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore@^3.3.5: version "3.3.10" @@ -6493,35 +4538,25 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.0.2: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== - import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -6529,7 +4564,7 @@ import-fresh@^3.0.0: import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" @@ -6544,14 +4579,19 @@ import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= -infer-owner@^1.0.3: +infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -6559,12 +4599,12 @@ infer-owner@^1.0.3: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6572,57 +4612,14 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inquirer@3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" - integrity sha512-thluxTGBXUGb8DuQcvH9/CM/CrcGyB5xUpWc9x6Slqcq1z/hRr2a6KxUpX4ddRfmbe0hg3E4jTvo5833aWz3BA== - dependencies: - ansi-escapes "^1.1.0" - chalk "^1.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.1" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx "^4.1.0" - string-width "^2.0.0" - strip-ansi "^3.0.0" - through "^2.3.6" - -inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -inquirer@^7.1.0: +inquirer@^7.0.0, inquirer@^7.1.0: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== @@ -6649,20 +4646,6 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -intersperse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" - integrity sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw== - invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -6673,12 +4656,12 @@ invariant@^2.2.2, invariant@^2.2.4: ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" @@ -6688,7 +4671,7 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0: is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= is-absolute-url@^3.0.3: version "3.0.3" @@ -6698,7 +4681,7 @@ is-absolute-url@^3.0.3: is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" @@ -6710,43 +4693,24 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" - integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-typed-array "^1.1.10" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" @@ -6757,23 +4721,15 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5, is-buffer@~1.1.6: +is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz#4d1e21a4f437509d25ce55f8184350771421c96d" + integrity sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg== is-ci@^1.0.10: version "1.2.1" @@ -6782,17 +4738,10 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: css-color-names "^0.0.4" hex-color-regex "^1.1.0" @@ -6801,17 +4750,10 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.11.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" @@ -6823,11 +4765,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-descriptor@^0.1.0: version "0.1.6" @@ -6850,17 +4790,17 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" @@ -6872,58 +4812,41 @@ is-extendable@^1.0.1: is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" -is-mobile@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-mobile/-/is-mobile-2.2.2.tgz#f6c9c5d50ee01254ce05e739bdd835f1ed4e9954" - integrity sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg== - -is-negative-zero@^2.0.0, is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" @@ -6959,630 +4882,134 @@ is-path-inside@^2.1.0: is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4, is-regex@^1.1.4, is-regex@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-what@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - -is-whitespace@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" - integrity sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -ismobilejs@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" - integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" - integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== - dependencies: - html-escaper "^2.0.0" - -javascript-stringify@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" - integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== - -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== - dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" - -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== - dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" - -jest-diff@^24.3.0, jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom-fifteen@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom-fifteen/-/jest-environment-jsdom-fifteen-1.0.2.tgz#49a0af55e0d32737a6114a1575dd714702ad63b0" - integrity sha512-nfrnAfwklE1872LIB31HcjM65cWTh1wzvMSp10IYtPJjLDUbTTvDpajZgIxUnhRmzGvogdHDayCIlerLK0OBBg== - dependencies: - "@jest/environment" "^24.3.0" - "@jest/fake-timers" "^24.3.0" - "@jest/types" "^24.3.0" - jest-mock "^24.0.0" - jest-util "^24.0.0" - jsdom "^15.2.1" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== + isobject "^3.0.1" + +is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + has-symbols "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" + html-comment-regex "^1.1.0" -jest-mock@^24.0.0, jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - "@jest/types" "^24.9.0" + has-symbols "^1.0.1" -jest-pnp-resolver@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== - -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== - dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -jest-serializer-vue@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" - integrity sha512-nK/YIFo6qe3i9Ge+hr3h4PpRehuPPGZFt8LDBdTHYldMb7ZWlkanZS8Ls7D8h6qmQP2lBQVDLP0DKn5bJ9QApQ== - dependencies: - pretty "2.0.0" +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" + is-docker "^2.0.0" -jest-transform-stub@^2.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" - integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg== - -jest-util@^24.0.0, jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" + isarray "1.0.0" -jest-watch-typeahead@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz#e5be959698a7fa2302229a5082c488c3c8780a4a" - integrity sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.1" - jest-regex-util "^24.9.0" - jest-watcher "^24.3.0" - slash "^3.0.0" - string-length "^3.1.0" - strip-ansi "^5.0.0" +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -jest-watcher@^24.3.0, jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" +javascript-stringify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5" + integrity sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow== -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +jest-worker@^25.4.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== dependencies: - "@types/node" "*" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^7.0.0" -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== - dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" +js-message@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" + integrity sha1-IwDSSxrwjondCVvBpMnJz8uJLRU= -js-beautify@^1.6.12, js-beautify@^1.6.14: - version "1.14.7" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.7.tgz#9206296de33f86dc106d3e50a35b7cf8729703b2" - integrity sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A== +js-queue@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948" + integrity sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug= dependencies: - config-chain "^1.1.13" - editorconfig "^0.15.3" - glob "^8.0.3" - nopt "^6.0.0" - -js-message@1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47" - integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== + easy-stack "^1.0.0" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - -js-yaml@^3.13.0, js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -7590,71 +5017,7 @@ js-yaml@^3.13.0, js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsdom@^15.2.1: - version "15.2.1" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" - integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== - dependencies: - abab "^2.0.0" - acorn "^7.1.0" - acorn-globals "^4.3.2" - array-equal "^1.0.0" - cssom "^0.4.1" - cssstyle "^2.0.0" - data-urls "^1.1.0" - domexception "^1.0.1" - escodegen "^1.11.1" - html-encoding-sniffer "^1.0.2" - nwsapi "^2.2.0" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.7" - saxes "^3.1.9" - symbol-tree "^3.2.2" - tough-cookie "^3.0.1" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.1.2" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^7.0.0" - ws "^7.0.0" - xml-name-validator "^3.0.0" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsesc@^2.5.1: version "2.5.2" @@ -7664,14 +5027,14 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -7681,67 +5044,60 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json2module@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/json2module/-/json2module-0.0.3.tgz#00fb5f4a9b7adfc3f0647c29cb17bcd1979be9b2" - integrity sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA== - dependencies: - rw "^1.3.2" - -json2mq@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" - integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== - dependencies: - string-convert "^0.2.0" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@2.x, json5@^2.1.2, json5@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@^0.5.0, json5@^0.5.1: +json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.4.0" + json-schema "0.2.3" verror "1.10.0" killable@^1.0.1: @@ -7752,14 +5108,14 @@ killable@^1.0.1: kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" @@ -7773,88 +5129,45 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - launch-editor-middleware@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.6.0.tgz#2ba4fe4b695d7fe3d44dee86b6d46d57b8332dfd" - integrity sha512-K2yxgljj5TdCeRN1lBtO3/J26+AIDDDw+04y6VAiZbWcTdBwsYN6RrZBnW5DN/QiSIdKNjKdATLUUluWWFYTIA== - dependencies: - launch-editor "^2.6.0" - -launch-editor@^2.2.1, launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.7.3" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -less-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" - integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" + integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^4.0.1" + launch-editor "^2.2.1" -less@^3.0.4: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.0" + chalk "^2.3.0" + shell-quote "^1.6.1" leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= loader-fs-cache@^1.0.0: version "1.0.3" @@ -7869,48 +5182,25 @@ loader-runner@^2.3.1, loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - integrity sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ== - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - loader-utils@^0.2.16: version "0.2.17" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -7926,65 +5216,40 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - lodash.defaultsdeep@^4.6.1: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - lodash.kebabcase@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= lodash.mapvalues@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" - integrity sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ== + integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.transform@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" - integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ== + integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-symbols@^2.2.0: version "2.2.0" @@ -7994,14 +5259,9 @@ log-symbols@^2.2.0: chalk "^2.0.1" loglevel@^1.6.8: - version "1.8.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" - integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" + integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== loose-envify@^1.0.0: version "1.4.0" @@ -8013,9 +5273,9 @@ loose-envify@^1.0.0: lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5: +lru-cache@^4.0.1, lru-cache@^4.1.2: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -8030,7 +5290,7 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -make-dir@^2.0.0, make-dir@^2.1.0: +make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -8038,34 +5298,22 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" -make-error@1.x: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" @@ -8078,34 +5326,25 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -md5@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -8121,7 +5360,7 @@ memory-fs@^0.5.0: merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-source-map@^1.1.0: version "1.1.0" @@ -8143,7 +5382,7 @@ merge2@^1.2.3: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -8164,14 +5403,6 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -8180,27 +5411,27 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: - mime-db "1.52.0" + mime-db "1.44.0" -mime@1.6.0, mime@^1.4.1: +mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== mimic-fn@^1.0.0: version "1.2.0" @@ -8227,39 +5458,48 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: - brace-expansion "^2.0.1" + minipass "^3.0.0" -minimist@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" -minipass@^3.1.1: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" @@ -8287,22 +5527,17 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.x, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: - minimist "^1.2.6" - -moment@^2.21.0, moment@^2.27.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + minimist "^1.2.5" move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -8314,22 +5549,22 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2: +ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: version "6.2.3" @@ -8339,16 +5574,6 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mutationobserver-shim@^0.3.2: - version "0.3.7" - resolved "https://registry.yarnpkg.com/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz#8bf633b0c0b0291a1107255ed32c13088a8c5bf3" - integrity sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -8364,14 +5589,9 @@ mz@^2.4.0: thenify-all "^1.0.0" nan@^2.12.1: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== nanomatch@^1.2.9: version "1.2.13" @@ -8390,27 +5610,17 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -nanopop@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nanopop/-/nanopop-2.2.0.tgz#bd1c25588a7beaf68865bc2df19db4c58c77dcc9" - integrity sha512-E9JaHcxh3ere8/BEZHAcnuD10RluTSPyTToBvoFWS9/7DcCx6gyKjbn7M7Bx7E1veCxCuY1iO6h4+gdAf1j73Q== - -native-request@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" - integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -8427,43 +5637,19 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-addon-api@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" - integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== - -node-cache@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334" - integrity sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A== - dependencies: - clone "2.x" - lodash "^4.17.15" - -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - -node-fetch@1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" - integrity sha512-BDxbhLHXFFFvilHjh9xihcDyPkXQ+kjblxnl82zAX41xUYSNvuRpFRznmldR9+OKu+p+ULZ7hNoyunlLB5ecUA== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +node-ipc@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" + integrity sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w== + dependencies: + event-pubsub "4.3.0" + js-message "1.0.5" + js-queue "2.0.0" node-libs-browser@^2.2.1: version "2.2.1" @@ -8494,30 +5680,12 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-notifier@^5.4.2: - version "5.4.5" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" - integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - -nopt@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" - integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== - dependencies: - abbrev "^1.0.0" +node-releases@^1.1.61: + version "1.1.61" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" + integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -8530,12 +5698,12 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: normalize-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - integrity sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA== + integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" @@ -8547,12 +5715,12 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" @@ -8567,7 +5735,7 @@ normalize-url@^3.0.0: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" @@ -8578,49 +5746,32 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== - -nth-check@^1.0.2: +nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== - -nwsapi@^2.0.7, nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -8631,20 +5782,20 @@ object-hash@^1.1.4: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.12.2, object-inspect@^1.9.0, object-inspect@~1.12.3: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.7.0, object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" + es-abstract "^1.17.5" -object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -8652,62 +5803,54 @@ object-keys@^1.1.1: object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== +object.assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" + integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.0" + has-symbols "^1.0.1" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== dependencies: - array.prototype.reduce "^1.0.5" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -omit.js@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" - integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ== - dependencies: - babel-runtime "^6.23.0" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" @@ -8719,14 +5862,14 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" @@ -8744,36 +5887,11 @@ open@^6.3.0: dependencies: is-wsl "^1.1.0" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -opencollective@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" - integrity sha512-YBRI0Qa8+Ui0/STV1qYuPrJm889PT3oCPHMVoL+8Y3nwCffj7PSrB2NlGgrhgBKDujxTjxknHWJ/FiqOsYcIDw== - dependencies: - babel-polyfill "6.23.0" - chalk "1.1.3" - inquirer "3.0.6" - minimist "1.2.0" - node-fetch "1.6.3" - opn "4.0.2" - opener@^1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - integrity sha512-iPBWbPP4OEOzR1xfhpGLDh+ypKBOygunZhM9jBtA7FS5sKjEiMZw0EFb82hnDOmTZX90ZWLoZKUza4cVt8MexA== - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -8781,7 +5899,7 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.1, optionator@^0.8.2: +optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -8805,34 +5923,34 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha512-J/e9xiZZQNrt+958FFzJ+auItsBGq+UrQ7nE89AUP7UOTtjHnkISANXLdayhVzh538UnLMCSlf13lFfRIAKQOA== - dependencies: - p-reduce "^1.0.0" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-finally@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -8858,10 +5976,12 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" p-retry@^3.0.1: version "3.0.1" @@ -8892,7 +6012,7 @@ parallel-transform@^1.1.0: param-case@2.1.x: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= dependencies: no-case "^2.2.0" @@ -8917,53 +6037,33 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-svg-path@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb" - integrity sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ== - -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== +parse5-htmlparser2-tree-adapter@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz#e8c743d4e92194d5293ecde2b08be31e67461cbc" + integrity sha512-CF+TKjXqoqyDwHqBhFQ+3l5t83xYi6fVT1tQNg+Ye0JRLnTxWvIroCjEp1A0k4lneHNBGnICUf0cfYVYGEazqw== dependencies: - parse5 "^6.0.1" - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parse5 "^5.1.1" parse5@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -8972,7 +6072,7 @@ parseurl@~1.3.2, parseurl@~1.3.3: pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1: version "0.0.1" @@ -8982,19 +6082,19 @@ path-browserify@0.0.1: path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" @@ -9004,32 +6104,32 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^3.0.0: version "3.0.0" @@ -9039,9 +6139,9 @@ path-type@^3.0.0: pify "^3.0.0" pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -9052,32 +6152,22 @@ pbkdf2@^3.0.3: performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" @@ -9087,24 +6177,19 @@ pify@^4.0.1: pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg== + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= dependencies: find-up "^1.0.0" @@ -9122,45 +6207,31 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - pnp-webpack-plugin@^1.6.4: - version "1.7.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" - integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: ts-pnp "^1.1.6" -point-at-length@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/point-at-length/-/point-at-length-1.0.2.tgz#9176d8d6d7c8162f12b646f707db9f0ea728125e" - integrity sha512-DSGca2Q7A/4rGS6324Z+0hCVAPT729RFjsISPc6N11D6+r1TpP6KjktGL7HxN8XRYY0Z7EG8n9dBJ5dbrEP4SQ== - dependencies: - abs-svg-path "~0.1.1" - isarray "~0.0.1" - parse-svg-path "~0.1.1" - portfinder@^1.0.26: - version "1.0.32" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" - integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== dependencies: - async "^2.6.4" - debug "^3.2.7" - mkdirp "^0.5.6" + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + version "7.0.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b" + integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw== dependencies: postcss "^7.0.27" postcss-selector-parser "^6.0.2" @@ -9214,9 +6285,9 @@ postcss-discard-overridden@^4.0.1: postcss "^7.0.0" postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.1.tgz#0a684bb8beb05e55baf922f7ab44c3edb17cf78e" + integrity sha512-D2ENobdoZsW0+BHy4x1CAkXtbXtYWYRIxL/JbtRBqrRGOPtJ2zoga/bEZWhV/ShWB5saVxJMzbMdSyA/vv4tXw== dependencies: cosmiconfig "^5.0.0" import-cwd "^2.0.0" @@ -9446,18 +6517,20 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== dependencies: cssesc "^3.0.0" - util-deprecate "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== dependencies: + is-svg "^3.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" svgo "^1.0.0" @@ -9477,68 +6550,41 @@ postcss-value-parser@^3.0.0: integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.34" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.34.tgz#f2baf57c36010df7de4009940f21532c16d65c20" + integrity sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw== dependencies: - picocolors "^0.2.1" + chalk "^2.4.2" source-map "^0.6.1" - -postcss@^8.4.14: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" + supports-color "^6.1.0" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -"prettier@^1.18.2 || ^2.0.0": - version "2.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" - integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== +prettier@^1.18.2: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== pretty-error@^2.0.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty@2.0.0, pretty@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" - integrity sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= dependencies: - condense-newlines "^0.2.1" - extend-shallow "^2.0.1" - js-beautify "^1.6.12" + renderkid "^2.0.1" + utila "~0.4" process-nextick-args@~2.0.0: version "2.0.1" @@ -9548,7 +6594,7 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^2.0.0: version "2.0.3" @@ -9558,43 +6604,30 @@ progress@^2.0.0: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: - forwarded "0.2.0" + forwarded "~0.1.2" ipaddr.js "1.9.1" prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== public-encrypt@^4.0.0: version "4.0.3" @@ -9636,39 +6669,37 @@ pumpify@^1.3.3: punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" @@ -9676,25 +6707,18 @@ query-string@^4.1.0: querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -raf@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -9715,38 +6739,16 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: - bytes "3.1.2" - http-errors "2.0.0" + bytes "3.1.0" + http-errors "1.7.2" iconv-lite "0.4.24" unpipe "1.0.0" -react-is@^16.8.4: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - read-pkg@^5.1.1: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -9788,51 +6790,34 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== dependencies: picomatch "^2.2.1" -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" - -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: - regenerate "^1.4.2" + regenerate "^1.4.0" -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.10.0: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerate@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" @@ -9844,92 +6829,75 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - functions-have-names "^1.2.2" + es-abstract "^1.17.0-next.1" regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^5.2.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.1.tgz#66900860f88def39a5cb79ebd9490e84f17bcdfb" - integrity sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ== +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" -regression@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regression/-/regression-2.0.1.tgz#8d29c3e8224a10850c35e337e85a8b2fac3b0c87" - integrity sha512-A4XYsc37dsBaNOgEjkJKzfJlE394IMmUPlI/p3TTI9u3T+2a+eox5Pr/CPUqF0eszeWZJPAc6QkroAhuUpWDJQ== - relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5, request-promise-native@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request@^2.87.0, request@^2.88.0, request@^2.88.2: +request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -9958,7 +6926,7 @@ request@^2.87.0, request@^2.88.0, request@^2.88.2: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^2.0.0: version "2.0.0" @@ -9968,31 +6936,19 @@ require-main-filename@^2.0.0: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resize-observer-lite@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/resize-observer-lite/-/resize-observer-lite-0.2.3.tgz#b557f378e2ce9b9aab1dc71a91047bd7ed1d8915" - integrity sha512-k/p+pjCTQkQ7x94bWsxcVwEJI5SrcO95j7czrCKMpHjXFQ+HmKRGLTdAkZoL3+wG1Pe/4L9Sl652zy9lU54dFg== - dependencies: - element-resize-detector "1.1.13" - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" @@ -10002,26 +6958,19 @@ resolve-from@^4.0.0: resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== - -resolve@1.x, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.22.1, resolve@^1.8.1, resolve@~1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.8.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" + path-parse "^1.0.6" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -10034,13 +6983,6 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -10049,24 +6991,17 @@ ret@~0.1.10: retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= rgba-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg== - dependencies: - align-text "^0.1.1" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= rimraf@2.6.3: version "2.6.3" @@ -10075,7 +7010,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -10090,21 +7025,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup@^0.25.8: - version "0.25.8" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.25.8.tgz#bf6ce83b87510d163446eeaa577ed6a6fc5835e0" - integrity sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA== - dependencies: - chalk "^1.1.1" - minimist "^1.2.0" - source-map-support "^0.3.2" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -run-async@^2.2.0, run-async@^2.4.0: +run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== @@ -10112,24 +7033,14 @@ run-async@^2.2.0, run-async@^2.4.0: run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" -rw@1, rw@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -rx@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug== - -rxjs@^6.4.0, rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +rxjs@^6.6.0: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: tslib "^1.9.0" @@ -10138,59 +7049,46 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== +sass-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" + +sass@^1.25.0: + version "1.26.11" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.11.tgz#0f22cc4ab2ba27dad1d4ca30837beb350b709847" + integrity sha512-W1l/+vjGjIamsJ6OnTe0K37U2DBO/dgsv2Z4c89XQ8ZOO6l/VwkqwLSqoYzJeJs6CLuGSTRWc91GbQFL3lvrvw== + dependencies: + chokidar ">=2.0.0 <4.0.0" -sax@^1.2.4, sax@~1.2.4: +sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^3.1.9: - version "3.1.11" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" - integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== - dependencies: - xmlchars "^2.1.1" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -10200,7 +7098,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: +schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -10209,60 +7107,51 @@ schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7 ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== +selfsigned@^1.10.7: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: node-forge "^0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" + depd "~1.1.2" + destroy "~1.0.4" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "2.0.0" + http-errors "~1.7.2" mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" + ms "2.1.1" + on-finished "~2.3.0" range-parser "~1.2.1" - statuses "2.0.1" + statuses "~1.5.0" serialize-javascript@^4.0.0: version "4.0.0" @@ -10271,17 +7160,10 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -serialize-javascript@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" batch "0.6.1" @@ -10291,20 +7173,20 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.18.0" + send "0.17.1" set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -10319,17 +7201,17 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" @@ -10339,20 +7221,17 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-equal@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - -shallowequal@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" @@ -10366,74 +7245,40 @@ shebang-command@^2.0.0: shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-statistics@~6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-6.1.1.tgz#e3a0799ffc49914d6f421c5a4ac585f6a13e2bad" - integrity sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -10473,49 +7318,40 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" - integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== dependencies: - debug "^3.2.7" - eventsource "^2.0.2" - faye-websocket "^0.11.4" - inherits "^2.0.4" - url-parse "^1.5.10" + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" -sockjs@^0.3.21: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" + faye-websocket "^0.10.0" + uuid "^3.4.0" + websocket-driver "0.6.5" sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= dependencies: is-plain-obj "^1.0.0" -sortablejs@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290" - integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== - source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: +source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -10526,37 +7362,23 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f" - integrity sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg== - dependencies: - source-map "0.1.32" - -source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== +source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.1.32: - version "0.1.32" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" - integrity sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ== - dependencies: - amdefine ">=0.0.4" + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.6, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" @@ -10564,9 +7386,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== spdx-correct@^3.0.0: version "3.1.1" @@ -10590,9 +7412,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + version "3.0.6" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" + integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== spdy-transport@^3.0.0: version "3.0.0" @@ -10627,12 +7449,12 @@ split-string@^3.0.1, split-string@^3.0.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -10645,17 +7467,18 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== +ssri@^7.0.0, ssri@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== dependencies: + figgy-pudding "^3.5.1" minipass "^3.1.1" stable@^0.1.8: @@ -10663,45 +7486,23 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== - -store@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= stream-browserify@^2.0.1: version "2.0.2" @@ -10730,38 +7531,17 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string-convert@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" - integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -string-length@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" - integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== - dependencies: - astral-regex "^1.0.0" - strip-ansi "^5.2.0" +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-width@^2.0.0, string-width@^2.1.0: +string-width@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -10778,41 +7558,30 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trim@~1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + strip-ansi "^6.0.0" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.1.3" + es-abstract "^1.17.5" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.1.3" + es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -10831,14 +7600,14 @@ string_decoder@~1.1.1: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" @@ -10849,22 +7618,17 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + ansi-regex "^5.0.0" strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-final-newline@^2.0.0: version "2.0.0" @@ -10874,12 +7638,12 @@ strip-final-newline@^2.0.0: strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^2.0.0, strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +strip-json-comments@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== stylehacks@^4.0.0: version "4.0.3" @@ -10893,7 +7657,7 @@ stylehacks@^4.0.0: supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: version "5.5.0" @@ -10909,29 +7673,17 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= svgo@^1.0.0: version "1.3.2" @@ -10952,11 +7704,6 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -10972,33 +7719,7 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tape@^4.5.1: - version "4.16.2" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.16.2.tgz#7565e6af20426565557266e9dda7215869b297b6" - integrity sha512-TUChV+q0GxBBCEbfCYkGLkv8hDJYjMdSWdE0/Lr331sB389dsvFUHNV9ph5iQqKzt8Ss9drzcda/YeexclBFqg== - dependencies: - call-bind "~1.0.2" - deep-equal "~1.1.1" - defined "~1.0.1" - dotignore "~0.1.2" - for-each "~0.3.3" - glob "~7.2.3" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.1.4" - minimist "~1.2.7" - object-inspect "~1.12.3" - resolve "~1.22.1" - resumer "~0.0.0" - string.prototype.trim "~1.2.7" - through "~2.3.8" - -terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4: +terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== @@ -11013,55 +7734,39 @@ terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^5.1.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== +terser-webpack-plugin@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz#894764a19b0743f2f704e7c2a848c5283a696724" + integrity sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w== dependencies: - "@jridgewell/trace-mapping" "^0.3.14" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" + cacache "^13.0.1" + find-cache-dir "^3.3.1" + jest-worker "^25.4.0" + p-limit "^2.3.0" + schema-utils "^2.6.6" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.6.12" + webpack-sources "^1.4.3" -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== +terser@^4.1.2, terser@^4.6.12: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.14.1: - version "5.16.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.4.tgz#51284b440b93242291a98f2a9903c024cfb70e6e" - integrity sha512-5yEGuZ3DZradbogeYQ1NaGz7rXVBDWujWlx1PT8efXO6Txn+eWbfKqB2bTDVmFXmePFkoLU6XI8UektMIEA0ug== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= dependencies: thenify ">= 3.1.0 < 4" @@ -11081,11 +7786,6 @@ thread-loader@^2.1.3: loader-utils "^1.1.0" neo-async "^2.6.0" -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== - through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -11094,10 +7794,10 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6, through@~2.3.4, through@~2.3.8: +through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: version "1.1.0" @@ -11105,26 +7805,16 @@ thunky@^1.0.2: integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== dependencies: setimmediate "^1.0.4" timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tinycolor2@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" - integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tmp@^0.0.33: version "0.0.33" @@ -11133,37 +7823,27 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -11185,29 +7865,17 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -topojson-client@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.0.1.tgz#774c0343b44fc4ec29c3a2274d7a1a9c3b213cd9" - integrity sha512-rfGGzyqefpxOaxvV9OTF9t+1g+WhjGEbAIuCcmKYrQkxr0nttjMMyzZsK+NhLW4cTl2g1bz2jQczPUtEshpbVQ== - dependencies: - commander "2" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== toposort@^1.0.0: version "1.0.7" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg== + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: +tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -11215,108 +7883,61 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" - integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== - dependencies: - ip-regex "^2.1.0" - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== - dependencies: - punycode "^2.1.0" - tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-jest@^24.2.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869" - integrity sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "10.x" - ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tsconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== - dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - -tslib@^1.10.0, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^1.9.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-is@~1.6.18: +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -11324,19 +7945,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= uglify-js@3.4.x: version "3.4.10" @@ -11346,53 +7958,28 @@ uglify-js@3.4.x: commander "~2.19.0" source-map "~0.6.1" -uglify-js@^2.6.2: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w== - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== union-value@^1.0.0: version "1.0.1" @@ -11407,12 +7994,12 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= unique-filename@^1.1.1: version "1.1.1" @@ -11436,17 +8023,17 @@ universalify@^0.1.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -11456,30 +8043,22 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-loader@^2.2.0: version "2.3.0" @@ -11490,10 +8069,10 @@ url-loader@^2.2.0: mime "^2.4.4" schema-utils "^2.5.0" -url-parse@^1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -11501,7 +8080,7 @@ url-parse@^1.5.10: url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" @@ -11511,10 +8090,10 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@1.0.0: version "1.0.0" @@ -11524,17 +8103,6 @@ util.promisify@1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util.promisify@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" - integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" - util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" @@ -11548,7 +8116,7 @@ util.promisify@~1.0.0: util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" @@ -11559,25 +8127,25 @@ util@^0.11.0: dependencies: inherits "2.0.3" -utila@~0.4: +utila@^0.4.0, utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -11590,142 +8158,67 @@ validate-npm-package-license@^3.0.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vcolorpicker@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vcolorpicker/-/vcolorpicker-1.1.0.tgz#527e2463ab330faab8b9637a30f915aebbef75f6" - integrity sha512-FbI7rq0EliwaPU8Qh/QVv9MFdZnG3dHjZEvODIcpPS774TTvilg6tq6cWDRbtCITBNDdpgVWnNlJ0aKnecgrJg== - dependencies: - highlight.js "^9.12.0" - vue "^2.5.17" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== -venn.js@~0.2.20: - version "0.2.20" - resolved "https://registry.yarnpkg.com/venn.js/-/venn.js-0.2.20.tgz#3f0e50cc75cba1f58692a8a32f67bd7aaf1aa6fa" - integrity sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w== - dependencies: - d3-selection "^1.0.2" - d3-transition "^1.0.1" - fmin "0.0.2" - verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -viser-vue@^2.4.6: - version "2.4.8" - resolved "https://registry.yarnpkg.com/viser-vue/-/viser-vue-2.4.8.tgz#3fdb058445cba59c1ccee9cc9c2024bec29926d4" - integrity sha512-ERAREN+6k/ywrwT+swcMo4CDIAq6dBjnB0+lhmsSfaip06BGHSBfNKg6yl7/4GJ9Nk2kioUw3llNhEboJuIKmQ== - dependencies: - "@types/node" "*" - viser "^2.0.0" - vue "^2.5.3" - -viser@^2.0.0: - version "2.4.9" - resolved "https://registry.yarnpkg.com/viser/-/viser-2.4.9.tgz#57f4c70f5702fb80e38843f29025cea575cbc60a" - integrity sha512-DKsqtMa3TZYQHEZ7jp4kpNp1Iqomda7d+3IkkIjIdKQvfL8OeksXfy/ECZUY1hTrGoOe7cq85+6PMS+MPn4mgQ== - dependencies: - "@antv/g2" "~3.5.3" - "@antv/g2-brush" "^0.0.2" - "@antv/g2-plugin-slider" "^2.1.0" - "@types/d3-format" "*" - "@types/lodash" "*" - "@types/node" "^8.0.53" - d3-format "^1.3.0" - lodash "^4.17.4" - vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -vue-clipboard2@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vue-clipboard2/-/vue-clipboard2-0.2.1.tgz#9f06690af1c98aef344be1fc4beb00cdc5307ee1" - integrity sha512-n6ie/0g0bKohmLlC/5ja1esq2Q0jQ5hWmhNSZcvCsWfDeDnVARjl6cBB9p72XV1nlVfuqsZcfV8HTjjZAIlLBA== - dependencies: - clipboard "^2.0.0" - -vue-container-query@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/vue-container-query/-/vue-container-query-0.1.0.tgz#8210b49388f2350aa4afda92df5caca18ff220a1" - integrity sha512-WPXn/x1xE5NoCJIHDL919ELln6ZUpsJJBgxuR5tJWfvfxy6zT4Tm4iOhaVmSomtdPzdo9edeMrPXl4e/9MUhfA== - dependencies: - container-query-toolkit "^0.1.3" - resize-observer-lite "^0.2.3" - vue "^2.5.17" - -vue-copy-to-clipboard@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vue-copy-to-clipboard/-/vue-copy-to-clipboard-1.0.3.tgz#b415302b343b9185add4fc579c0721a16c8e65ac" - integrity sha512-FSgewqG+2NwNsAnKOZqZ6GZqNvrbauVh/Y5z+xkbu9AmFqiWlQLKaFc+7BcsYCVZ2TaQnhjcHbDycVRVGFJypQ== +vue-awesome@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vue-awesome/-/vue-awesome-4.1.0.tgz#1caf50eb1ed0193f3c5ba19cbde9bea356cbc78c" + integrity sha512-4n+hg8KIMrwjXV6sRHcRZd18Somih5j4Yk2ZOv95pnvDpzbBkIYW4ktfivhqgNt50m0zDjmeEWiy1iVLtcccfw== dependencies: - copy-to-clipboard "^3.3.1" + core-js "^3.4.4" -vue-eslint-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" - integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== +vue-eslint-parser@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.1.0.tgz#9cdbcc823e656b087507a1911732b867ac101e83" + integrity sha512-Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q== dependencies: - debug "^4.1.0" - eslint-scope "^4.0.0" - eslint-visitor-keys "^1.0.0" - espree "^4.1.0" + debug "^4.1.1" + eslint-scope "^5.0.0" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" esquery "^1.0.1" - lodash "^4.17.11" + lodash "^4.17.15" vue-hot-reload-api@^2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-i18n@^8.17.4: - version "8.28.2" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.28.2.tgz#913558066e274395c0a9f40b2f3393d5c2636840" - integrity sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA== - -vue-jest@^3.0.5: - version "3.0.7" - resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.7.tgz#a6d29758a5cb4d750f5d1242212be39be4296a33" - integrity sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w== - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.26.0" - chalk "^2.1.0" - deasync "^0.1.15" - extract-from-css "^0.4.4" - find-babel-config "^1.1.0" - js-beautify "^1.6.14" - node-cache "^4.1.1" - object-assign "^4.1.1" - source-map "^0.5.6" - tsconfig "^7.0.0" - vue-template-es2015-compiler "^1.6.0" - -"vue-loader-v16@npm:vue-loader@^16.1.0": - version "16.8.3" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087" - integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA== +"vue-loader-v16@npm:vue-loader@^16.0.0-beta.7": + version "16.0.0-beta.7" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.0.0-beta.7.tgz#6f2726fa0e2b1fbae67895c47593bbf69f2b9ab8" + integrity sha512-xQ8/GZmRPdQ3EinnE0IXwdVoDzh7Dowo0MowoyBuScEBXrRabw6At5/IdtD3waKklKW5PGokPsm8KRN6rvQ1cw== dependencies: - chalk "^4.1.0" + "@types/mini-css-extract-plugin" "^0.9.1" + chalk "^3.0.0" hash-sum "^2.0.0" - loader-utils "^2.0.0" + loader-utils "^1.2.3" + merge-source-map "^1.1.0" + source-map "^0.6.1" vue-loader@^15.9.2: - version "15.10.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.10.1.tgz#c451c4cd05a911aae7b5dbbbc09fb913fb3cca18" - integrity sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA== + version "15.9.3" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.3.tgz#0de35d9e555d3ed53969516cac5ce25531299dda" + integrity sha512-Y67VnGGgVLH5Voostx8JBZgPQTlDQeOVBLOEsjc2cXbCYBKexSKEpOA56x0YZofoDOTszrLnIShyOX1p9uCEHA== dependencies: "@vue/component-compiler-utils" "^3.1.0" hash-sum "^1.0.2" @@ -11733,137 +8226,59 @@ vue-loader@^15.9.2: vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" -vue-ref@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vue-ref/-/vue-ref-2.0.0.tgz#483084d732abed11da796778a8266a3af0ea1a9c" - integrity sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ== - -vue-router@^3.1.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8" - integrity sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ== +vue-router@^3.1.5: + version "3.4.3" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.3.tgz#fa93768616ee338aa174f160ac965167fa572ffa" + integrity sha512-BADg1mjGWX18Dpmy6bOGzGNnk7B/ZA0RxuA6qedY/YJwirMfKXIDzcccmHbQI0A6k5PzMdMloc0ElHfyOoX35A== vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== + version "4.1.2" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" + integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== dependencies: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-svg-component-builder@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vue-svg-component-builder/-/vue-svg-component-builder-2.0.3.tgz#c4e0a19073587ab882fd6f72bb7b3b63b4396801" - integrity sha512-We9ZLSYPQx9y3v5+HNWyjkGFaxZMlWPTqYBU08y4YT46f453BQ4JxIoS8rV0a8PIxnKap7m/YIzrdIfoHxrpaA== - -vue-svg-component-runtime@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vue-svg-component-runtime/-/vue-svg-component-runtime-1.0.1.tgz#c4c241cdf92fead742ef33133b997ff42d8b9ee6" - integrity sha512-TkmZ1qwFeFJSRH6b6KVqDU2f8DCSdoNoo/veKqog7FsyF0UETTI66ALKX1rrLXy/KT6LSaJB5IfZkuuSfaQsEA== - -vue-svg-icon-loader@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vue-svg-icon-loader/-/vue-svg-icon-loader-2.1.1.tgz#7b999ccb0647ce3b3903bfbf535fe247e11b032a" - integrity sha512-JOL4fyh9rnbcqMLTF5NVG8YVupnLIMHMY+3CLMaEb9xDUmfk6Cp3RqyI/8gBea7d51i4lyNdzZ3tQ/EJLQxQDA== - dependencies: - "@types/loader-utils" "1.1.3" - "@types/node" "8.9" - loader-utils "1.1.0" - vue-svg-component-builder "2.0.3" - -vue-template-compiler@^2.6.10: - version "2.7.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1" - integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== +vue-template-compiler@^2.6.11: + version "2.6.12" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" + integrity sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg== dependencies: de-indent "^1.0.2" - he "^1.2.0" + he "^1.1.0" -vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: +vue-template-es2015-compiler@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== -vue-ueditor-wrap@^2.4.4: - version "2.5.6" - resolved "https://registry.yarnpkg.com/vue-ueditor-wrap/-/vue-ueditor-wrap-2.5.6.tgz#1dca4b1790830f228c08d1c8e07ae7d0a420f1f2" - integrity sha512-EJkYLyyzgOJTxGreiZ9wrmXthIMVVRSeFTzV6n0OR9w4aeqW79Prvog4jZ4G0kkmW3TTTBbZtHM9VNHEl6LJDA== - -vue@^2.5.17, vue@^2.5.3, vue@^2.6.10: - version "2.7.14" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17" - integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ== - dependencies: - "@vue/compiler-sfc" "2.7.14" - csstype "^3.1.0" - -vuedraggable@^2.24.0: - version "2.24.3" - resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.24.3.tgz#43c93849b746a24ce503e123d5b259c701ba0d19" - integrity sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g== - dependencies: - sortablejs "1.10.2" - -vuex@^3.1.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" - integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== - -w3c-hr-time@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" - integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== - dependencies: - domexception "^1.0.1" - webidl-conversions "^4.0.2" - xml-name-validator "^3.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" +vue@^2.6.11: + version "2.6.12" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" + integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== -warning@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" +vuex@^3.1.2: + version "3.5.1" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.5.1.tgz#f1b8dcea649bc25254cf4f4358081dbf5da18b3d" + integrity sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw== -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== dependencies: chokidar "^2.1.8" watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" + watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -11875,15 +8290,10 @@ wbuf@^1.1.0, wbuf@^1.7.3: wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - webpack-bundle-analyzer@^3.8.0: version "3.9.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" @@ -11912,9 +8322,9 @@ webpack-chain@^6.4.0: javascript-stringify "^2.0.1" webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -11923,11 +8333,11 @@ webpack-dev-middleware@^3.7.2: webpack-log "^2.0.0" webpack-dev-server@^3.11.0: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== dependencies: - ansi-html-community "0.0.8" + ansi-html "0.0.7" bonjour "^3.5.0" chokidar "^2.1.8" compression "^1.7.4" @@ -11947,11 +8357,11 @@ webpack-dev-server@^3.11.0: p-retry "^3.0.1" portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.8" + selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" + sockjs "0.3.20" + sockjs-client "1.4.0" spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" @@ -11976,7 +8386,7 @@ webpack-merge@^4.2.2: dependencies: lodash "^4.17.15" -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -11984,20 +8394,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-theme-color-replacer@^1.3.12: - version "1.4.5" - resolved "https://registry.yarnpkg.com/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.4.5.tgz#f3315d389721121c0a738e6b45b3760cdac0667e" - integrity sha512-nPRTFR1jIwc98WtRigYC6WBpB3bff48mAKQ10VgTXDLiQdXdKO/DKY1mXEZjuCwvq3onyItHCNHN8eCOyCHO4w== - webpack@^4.0.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -12007,7 +8407,7 @@ webpack@^4.0.0: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -12023,37 +8423,14 @@ webpack@^4.0.0: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5: - version "5.75.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.75.0.tgz#1e440468647b2505860e94c9ff3e44d5b582c152" - integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= + dependencies: + websocket-extensions ">=0.1.1" + +websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -12067,65 +8444,12 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -which@^1.2.9, which@^1.3.0: +which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12139,26 +8463,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== - -wolfy87-eventemitter@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011" - integrity sha512-VakY4+17DbamV2VW4nZERrSuilclCRcYtfchPWe6jlma8k0AeLJxBR+C5OSFFtICArDFdXk0yw67HUGrTCdrEg== - word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q== - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -12184,28 +8493,10 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write@1.0.3: version "1.0.3" @@ -12214,54 +8505,27 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^5.2.0: - version "5.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - ws@^6.0.0, ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" -ws@^7.0.0: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.2: version "3.1.1" @@ -12273,13 +8537,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@10.x: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -12288,12 +8545,15 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" -yargs@^13.3.0, yargs@^13.3.2: +yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== @@ -12309,28 +8569,22 @@ yargs@^13.3.0, yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^16.0.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^15.0.0: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A== - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" yorkie@^2.0.0: version "2.0.0"