From e232950802576dc186bc570459bc4abf01270093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=83=A1?= <140248955+xiaohu2002@users.noreply.github.com> Date: Thu, 12 Dec 2024 12:09:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=99=BE=E5=BA=A6=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8=EF=BC=8C=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E6=8F=92=E5=85=A5=E7=9A=84=E5=9B=BE=E7=89=87=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E9=A2=84=E8=A7=88=E9=97=AE=E9=A2=98=20(#275)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui-bootstrap-tpls.min.js | 10 - .../ui-codemirror.min.js | 7 - .../bower_components/angular/angular.min.js | 253 - .../bootstrap/dist/css/bootstrap.min.css | 6 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../bootstrap/dist/js/bootstrap.min.js | 7 - .../codemirror/addon/mode/overlay.js | 85 - .../codemirror/lib/codemirror.css | 318 - .../codemirror/lib/codemirror.js | 7922 -------------- .../codemirror/mode/css/css.js | 717 -- .../codemirror/mode/gfm/gfm.js | 123 - .../codemirror/mode/htmlmixed/htmlmixed.js | 121 - .../codemirror/mode/javascript/javascript.js | 684 -- .../codemirror/mode/markdown/markdown.js | 765 -- .../codemirror/mode/xml/xml.js | 384 - .../color-picker/dist/color-picker.min.css | 1 - .../color-picker/dist/color-picker.min.js | 12 - .../bower_components/hotbox/hotbox.css | 163 - .../bower_components/hotbox/hotbox.min.js | 10 - .../jquery/dist/jquery.min.js | 4 - .../bower_components/json-diff/json-diff.js | 240 - .../bower_components/kity/dist/kity.min.js | 12 - .../kityminder-core/dist/kityminder.core.css | 16 - .../kityminder-core/dist/kityminder.core.js | 9206 ----------------- .../dist/kityminder.core.min.js | 14 - .../bower_components/marked/marked.min.js | 6 - .../bower_components/seajs/dist/sea.js | 2 - .../dialogs/kityminder/dist/helpDlg.tpl.html | 4 - .../kityminder/dist/images/iconpriority.png | Bin 5570 -> 0 bytes .../kityminder/dist/images/iconprogress.png | Bin 4354 -> 0 bytes .../dialogs/kityminder/dist/images/icons.png | Bin 38275 -> 0 bytes .../kityminder/dist/images/template.png | Bin 7098 -> 0 bytes .../dialogs/kityminder/dist/index.html | 90 - .../kityminder/dist/kityminder.editor.css | 1622 --- .../kityminder/dist/kityminder.editor.js | 4670 --------- .../dialogs/kityminder/kityMinderDialog.html | 99 - dzz/system/ueditor/index.html | 175 - .../addKityFormulaDialog.js | 74 - .../kityformula-plugin/defaultFilterFix.js | 247 - .../kityformula-plugin/getKfContent.js | 66 - .../ueditor/kityformula-plugin/kf-icon.png | Bin 2936 -> 0 bytes .../kityformula-plugin/kityFormulaDialog.html | 107 - .../assets/images/scrollbar/custom/bar-bg.png | Bin 925 -> 0 bytes .../assets/images/scrollbar/custom/bar.png | Bin 1067 -> 0 bytes .../assets/images/scrollbar/custom/bg.png | Bin 945 -> 0 bytes .../assets/images/scrollbar/custom/bottom.png | Bin 1003 -> 0 bytes .../assets/images/scrollbar/custom/btn.png | Bin 926 -> 0 bytes .../assets/images/scrollbar/custom/down.png | Bin 926 -> 0 bytes .../assets/images/scrollbar/custom/top.png | Bin 996 -> 0 bytes .../assets/images/scrollbar/custom/up.png | Bin 926 -> 0 bytes .../assets/images/scrollbar/edit/bar-bg.png | Bin 938 -> 0 bytes .../assets/images/scrollbar/edit/bar-left.png | Bin 982 -> 0 bytes .../images/scrollbar/edit/bar-right.png | Bin 994 -> 0 bytes .../assets/images/scrollbar/edit/thumb-bg.png | Bin 941 -> 0 bytes .../images/scrollbar/edit/thumb-left.png | Bin 983 -> 0 bytes .../images/scrollbar/edit/thumb-right.png | Bin 988 -> 0 bytes .../images/toolbar/alphabetic/aleph.png | Bin 559 -> 0 bytes .../assets/images/toolbar/alphabetic/bbbk.png | Bin 519 -> 0 bytes .../assets/images/toolbar/alphabetic/beth.png | Bin 317 -> 0 bytes .../images/toolbar/alphabetic/circleds.png | Bin 874 -> 0 bytes .../images/toolbar/alphabetic/complement.png | Bin 371 -> 0 bytes .../images/toolbar/alphabetic/daleth.png | Bin 305 -> 0 bytes .../assets/images/toolbar/alphabetic/ell.png | Bin 467 -> 0 bytes .../assets/images/toolbar/alphabetic/eth.png | Bin 552 -> 0 bytes .../assets/images/toolbar/alphabetic/finv.png | Bin 239 -> 0 bytes .../assets/images/toolbar/alphabetic/game.png | Bin 492 -> 0 bytes .../images/toolbar/alphabetic/gimel.png | Bin 364 -> 0 bytes .../assets/images/toolbar/alphabetic/hbar.png | Bin 516 -> 0 bytes .../images/toolbar/alphabetic/hslash.png | Bin 542 -> 0 bytes .../assets/images/toolbar/alphabetic/im.png | Bin 571 -> 0 bytes .../assets/images/toolbar/alphabetic/mho.png | Bin 573 -> 0 bytes .../images/toolbar/alphabetic/partial.png | Bin 546 -> 0 bytes .../assets/images/toolbar/alphabetic/re.png | Bin 702 -> 0 bytes .../assets/images/toolbar/alphabetic/wp.png | Bin 524 -> 0 bytes .../images/toolbar/arrow/circlearrowleft.png | Bin 337 -> 0 bytes .../images/toolbar/arrow/circlearrowright.png | Bin 351 -> 0 bytes .../images/toolbar/arrow/curvearrowleft.png | Bin 347 -> 0 bytes .../images/toolbar/arrow/curvearrowright.png | Bin 338 -> 0 bytes .../assets/images/toolbar/arrow/downarrow.png | Bin 255 -> 0 bytes .../images/toolbar/arrow/downdownarrows.png | Bin 268 -> 0 bytes .../images/toolbar/arrow/downharpoonleft.png | Bin 190 -> 0 bytes .../images/toolbar/arrow/downharpoonright.png | Bin 191 -> 0 bytes .../assets/images/toolbar/arrow/gets.png | Bin 252 -> 0 bytes .../images/toolbar/arrow/leftarrowtail.png | Bin 259 -> 0 bytes .../images/toolbar/arrow/leftharpoondown.png | Bin 186 -> 0 bytes .../images/toolbar/arrow/leftharpoonup.png | Bin 187 -> 0 bytes .../images/toolbar/arrow/leftleftarrows.png | Bin 269 -> 0 bytes .../images/toolbar/arrow/leftrightarrow.png | Bin 309 -> 0 bytes .../images/toolbar/arrow/leftrightarrows.png | Bin 294 -> 0 bytes .../toolbar/arrow/leftrightharpoons.png | Bin 268 -> 0 bytes .../toolbar/arrow/leftrightsquigarrow.png | Bin 346 -> 0 bytes .../images/toolbar/arrow/longleftarrow.png | Bin 269 -> 0 bytes .../toolbar/arrow/longleftrightarrow.png | Bin 297 -> 0 bytes .../images/toolbar/arrow/longrightarrow.png | Bin 285 -> 0 bytes .../images/toolbar/arrow/looparrowleft.png | Bin 332 -> 0 bytes .../images/toolbar/arrow/looparrowright.png | Bin 339 -> 0 bytes .../assets/images/toolbar/arrow/multimap.png | Bin 254 -> 0 bytes .../assets/images/toolbar/arrow/nearrow.png | Bin 319 -> 0 bytes .../images/toolbar/arrow/nleftarrow.png | Bin 276 -> 0 bytes .../images/toolbar/arrow/nrightarrow.png | Bin 286 -> 0 bytes .../assets/images/toolbar/arrow/nwarrow.png | Bin 324 -> 0 bytes .../images/toolbar/arrow/rightarrowtail.png | Bin 250 -> 0 bytes .../images/toolbar/arrow/rightharpoondown.png | Bin 194 -> 0 bytes .../images/toolbar/arrow/rightharpoonup.png | Bin 185 -> 0 bytes .../images/toolbar/arrow/rightleftarrows.png | Bin 278 -> 0 bytes .../toolbar/arrow/rightleftharpoons.png | Bin 277 -> 0 bytes .../images/toolbar/arrow/rightrightarrows.png | Bin 266 -> 0 bytes .../images/toolbar/arrow/rightsquigarrow.png | Bin 304 -> 0 bytes .../assets/images/toolbar/arrow/searrow.png | Bin 317 -> 0 bytes .../assets/images/toolbar/arrow/swarrow.png | Bin 292 -> 0 bytes .../assets/images/toolbar/arrow/to.png | Bin 279 -> 0 bytes .../images/toolbar/arrow/twoheadleftarrow.png | Bin 266 -> 0 bytes .../toolbar/arrow/twoheadrightarrow.png | Bin 262 -> 0 bytes .../images/toolbar/arrow/u-downarrow.png | Bin 285 -> 0 bytes .../images/toolbar/arrow/u-leftarrow.png | Bin 275 -> 0 bytes .../images/toolbar/arrow/u-leftrightarrow.png | Bin 341 -> 0 bytes .../images/toolbar/arrow/u-lftarrow.png | Bin 277 -> 0 bytes .../images/toolbar/arrow/u-lleftarrow.png | Bin 305 -> 0 bytes .../images/toolbar/arrow/u-longleftarrow.png | Bin 281 -> 0 bytes .../toolbar/arrow/u-longleftrightarrow.png | Bin 330 -> 0 bytes .../images/toolbar/arrow/u-longrightarrow.png | Bin 288 -> 0 bytes .../assets/images/toolbar/arrow/u-lsh.png | Bin 252 -> 0 bytes .../images/toolbar/arrow/u-nleftarrow.png | Bin 350 -> 0 bytes .../toolbar/arrow/u-nleftrightarrow.png | Bin 400 -> 0 bytes .../images/toolbar/arrow/u-nrightarrow.png | Bin 349 -> 0 bytes .../images/toolbar/arrow/u-rightarrow.png | Bin 292 -> 0 bytes .../images/toolbar/arrow/u-rrightarrow.png | Bin 314 -> 0 bytes .../assets/images/toolbar/arrow/u-rsh.png | Bin 255 -> 0 bytes .../assets/images/toolbar/arrow/u-uparrow.png | Bin 282 -> 0 bytes .../images/toolbar/arrow/u-updownarrow.png | Bin 338 -> 0 bytes .../assets/images/toolbar/arrow/uparrow.png | Bin 251 -> 0 bytes .../images/toolbar/arrow/updownarrow.png | Bin 302 -> 0 bytes .../images/toolbar/arrow/upharpoonleft.png | Bin 188 -> 0 bytes .../images/toolbar/arrow/upharpoonright.png | Bin 200 -> 0 bytes .../images/toolbar/arrow/upuparrows.png | Bin 281 -> 0 bytes .../assets/images/toolbar/brackets/1.png | Bin 748 -> 0 bytes .../assets/images/toolbar/brackets/2.png | Bin 634 -> 0 bytes .../assets/images/toolbar/brackets/3.png | Bin 813 -> 0 bytes .../assets/images/toolbar/brackets/4.png | Bin 635 -> 0 bytes .../kityformula/assets/images/toolbar/btn.png | Bin 6784 -> 0 bytes .../assets/images/toolbar/button/brackets.png | Bin 1284 -> 0 bytes .../assets/images/toolbar/button/down.png | Bin 979 -> 0 bytes .../assets/images/toolbar/button/frac.png | Bin 801 -> 0 bytes .../assets/images/toolbar/button/fx.png | Bin 1738 -> 0 bytes .../assets/images/toolbar/button/int.png | Bin 4273 -> 0 bytes .../assets/images/toolbar/button/lim.png | Bin 4273 -> 0 bytes .../assets/images/toolbar/button/open.png | Bin 983 -> 0 bytes .../assets/images/toolbar/button/script.png | Bin 1311 -> 0 bytes .../assets/images/toolbar/button/sin.png | Bin 1084 -> 0 bytes .../assets/images/toolbar/button/sqrt.png | Bin 1381 -> 0 bytes .../assets/images/toolbar/button/sum.png | Bin 4273 -> 0 bytes .../assets/images/toolbar/button/tick.png | Bin 2960 -> 0 bytes .../assets/images/toolbar/button/up.png | Bin 969 -> 0 bytes .../assets/images/toolbar/char.png | Bin 89633 -> 0 bytes .../assets/images/toolbar/char/bb/a.png | Bin 609 -> 0 bytes .../assets/images/toolbar/char/bb/b.png | Bin 617 -> 0 bytes .../assets/images/toolbar/char/bb/c.png | Bin 582 -> 0 bytes .../assets/images/toolbar/char/bb/d.png | Bin 525 -> 0 bytes .../assets/images/toolbar/char/bb/e.png | Bin 543 -> 0 bytes .../assets/images/toolbar/char/bb/f.png | Bin 500 -> 0 bytes .../assets/images/toolbar/char/bb/g.png | Bin 706 -> 0 bytes .../assets/images/toolbar/char/bb/h.png | Bin 537 -> 0 bytes .../assets/images/toolbar/char/bb/i.png | Bin 319 -> 0 bytes .../assets/images/toolbar/char/bb/j.png | Bin 388 -> 0 bytes .../assets/images/toolbar/char/bb/k.png | Bin 719 -> 0 bytes .../assets/images/toolbar/char/bb/l.png | Bin 376 -> 0 bytes .../assets/images/toolbar/char/bb/m.png | Bin 778 -> 0 bytes .../assets/images/toolbar/char/bb/n.png | Bin 644 -> 0 bytes .../assets/images/toolbar/char/bb/o.png | Bin 680 -> 0 bytes .../assets/images/toolbar/char/bb/p.png | Bin 483 -> 0 bytes .../assets/images/toolbar/char/bb/q.png | Bin 825 -> 0 bytes .../assets/images/toolbar/char/bb/r.png | Bin 579 -> 0 bytes .../assets/images/toolbar/char/bb/s.png | Bin 665 -> 0 bytes .../assets/images/toolbar/char/bb/t.png | Bin 448 -> 0 bytes .../assets/images/toolbar/char/bb/u.png | Bin 468 -> 0 bytes .../assets/images/toolbar/char/bb/v.png | Bin 580 -> 0 bytes .../assets/images/toolbar/char/bb/w.png | Bin 861 -> 0 bytes .../assets/images/toolbar/char/bb/x.png | Bin 709 -> 0 bytes .../assets/images/toolbar/char/bb/y.png | Bin 556 -> 0 bytes .../assets/images/toolbar/char/bb/z.png | Bin 565 -> 0 bytes .../assets/images/toolbar/char/cal/a.png | Bin 499 -> 0 bytes .../assets/images/toolbar/char/cal/b.png | Bin 599 -> 0 bytes .../assets/images/toolbar/char/cal/c.png | Bin 482 -> 0 bytes .../assets/images/toolbar/char/cal/d.png | Bin 581 -> 0 bytes .../assets/images/toolbar/char/cal/e.png | Bin 471 -> 0 bytes .../assets/images/toolbar/char/cal/f.png | Bin 483 -> 0 bytes .../assets/images/toolbar/char/cal/g.png | Bin 579 -> 0 bytes .../assets/images/toolbar/char/cal/h.png | Bin 599 -> 0 bytes .../assets/images/toolbar/char/cal/i.png | Bin 467 -> 0 bytes .../assets/images/toolbar/char/cal/j.png | Bin 531 -> 0 bytes .../assets/images/toolbar/char/cal/k.png | Bin 600 -> 0 bytes .../assets/images/toolbar/char/cal/l.png | Bin 493 -> 0 bytes .../assets/images/toolbar/char/cal/m.png | Bin 722 -> 0 bytes .../assets/images/toolbar/char/cal/n.png | Bin 623 -> 0 bytes .../assets/images/toolbar/char/cal/o.png | Bin 597 -> 0 bytes .../assets/images/toolbar/char/cal/p.png | Bin 581 -> 0 bytes .../assets/images/toolbar/char/cal/q.png | Bin 663 -> 0 bytes .../assets/images/toolbar/char/cal/r.png | Bin 641 -> 0 bytes .../assets/images/toolbar/char/cal/s.png | Bin 527 -> 0 bytes .../assets/images/toolbar/char/cal/t.png | Bin 431 -> 0 bytes .../assets/images/toolbar/char/cal/u.png | Bin 603 -> 0 bytes .../assets/images/toolbar/char/cal/v.png | Bin 518 -> 0 bytes .../assets/images/toolbar/char/cal/w.png | Bin 759 -> 0 bytes .../assets/images/toolbar/char/cal/x.png | Bin 546 -> 0 bytes .../assets/images/toolbar/char/cal/y.png | Bin 559 -> 0 bytes .../assets/images/toolbar/char/cal/z.png | Bin 559 -> 0 bytes .../assets/images/toolbar/char/frak/a.png | Bin 393 -> 0 bytes .../assets/images/toolbar/char/frak/b.png | Bin 438 -> 0 bytes .../assets/images/toolbar/char/frak/c.png | Bin 330 -> 0 bytes .../assets/images/toolbar/char/frak/d.png | Bin 445 -> 0 bytes .../assets/images/toolbar/char/frak/e.png | Bin 356 -> 0 bytes .../assets/images/toolbar/char/frak/f.png | Bin 392 -> 0 bytes .../assets/images/toolbar/char/frak/g.png | Bin 480 -> 0 bytes .../assets/images/toolbar/char/frak/h.png | Bin 476 -> 0 bytes .../assets/images/toolbar/char/frak/i.png | Bin 296 -> 0 bytes .../assets/images/toolbar/char/frak/j.png | Bin 320 -> 0 bytes .../assets/images/toolbar/char/frak/k.png | Bin 448 -> 0 bytes .../assets/images/toolbar/char/frak/l.png | Bin 312 -> 0 bytes .../assets/images/toolbar/char/frak/m.png | Bin 450 -> 0 bytes .../assets/images/toolbar/char/frak/n.png | Bin 382 -> 0 bytes .../assets/images/toolbar/char/frak/o.png | Bin 382 -> 0 bytes .../assets/images/toolbar/char/frak/p.png | Bin 462 -> 0 bytes .../assets/images/toolbar/char/frak/q.png | Bin 439 -> 0 bytes .../assets/images/toolbar/char/frak/r.png | Bin 328 -> 0 bytes .../assets/images/toolbar/char/frak/s.png | Bin 405 -> 0 bytes .../assets/images/toolbar/char/frak/t.png | Bin 296 -> 0 bytes .../assets/images/toolbar/char/frak/u.png | Bin 389 -> 0 bytes .../assets/images/toolbar/char/frak/ua.png | Bin 653 -> 0 bytes .../assets/images/toolbar/char/frak/ub.png | Bin 707 -> 0 bytes .../assets/images/toolbar/char/frak/uc.png | Bin 517 -> 0 bytes .../assets/images/toolbar/char/frak/ud.png | Bin 658 -> 0 bytes .../assets/images/toolbar/char/frak/ue.png | Bin 566 -> 0 bytes .../assets/images/toolbar/char/frak/uf.png | Bin 616 -> 0 bytes .../assets/images/toolbar/char/frak/ug.png | Bin 662 -> 0 bytes .../assets/images/toolbar/char/frak/uh.png | Bin 574 -> 0 bytes .../assets/images/toolbar/char/frak/ui.png | Bin 483 -> 0 bytes .../assets/images/toolbar/char/frak/uj.png | Bin 533 -> 0 bytes .../assets/images/toolbar/char/frak/uk.png | Bin 577 -> 0 bytes .../assets/images/toolbar/char/frak/ul.png | Bin 537 -> 0 bytes .../assets/images/toolbar/char/frak/um.png | Bin 827 -> 0 bytes .../assets/images/toolbar/char/frak/un.png | Bin 686 -> 0 bytes .../assets/images/toolbar/char/frak/uo.png | Bin 606 -> 0 bytes .../assets/images/toolbar/char/frak/up.png | Bin 685 -> 0 bytes .../assets/images/toolbar/char/frak/uq.png | Bin 606 -> 0 bytes .../assets/images/toolbar/char/frak/ur.png | Bin 690 -> 0 bytes .../assets/images/toolbar/char/frak/us.png | Bin 674 -> 0 bytes .../assets/images/toolbar/char/frak/ut.png | Bin 562 -> 0 bytes .../assets/images/toolbar/char/frak/uu.png | Bin 532 -> 0 bytes .../assets/images/toolbar/char/frak/uv.png | Bin 696 -> 0 bytes .../assets/images/toolbar/char/frak/uw.png | Bin 847 -> 0 bytes .../assets/images/toolbar/char/frak/ux.png | Bin 575 -> 0 bytes .../assets/images/toolbar/char/frak/uy.png | Bin 726 -> 0 bytes .../assets/images/toolbar/char/frak/uz.png | Bin 527 -> 0 bytes .../assets/images/toolbar/char/frak/v.png | Bin 423 -> 0 bytes .../assets/images/toolbar/char/frak/w.png | Bin 496 -> 0 bytes .../assets/images/toolbar/char/frak/x.png | Bin 405 -> 0 bytes .../assets/images/toolbar/char/frak/y.png | Bin 450 -> 0 bytes .../assets/images/toolbar/char/frak/z.png | Bin 435 -> 0 bytes .../images/toolbar/char/greek/lower/alpha.png | Bin 339 -> 0 bytes .../images/toolbar/char/greek/lower/beta.png | Bin 382 -> 0 bytes .../images/toolbar/char/greek/lower/chi.png | Bin 344 -> 0 bytes .../images/toolbar/char/greek/lower/delta.png | Bin 329 -> 0 bytes .../toolbar/char/greek/lower/epsilon.png | Bin 265 -> 0 bytes .../images/toolbar/char/greek/lower/eta.png | Bin 311 -> 0 bytes .../images/toolbar/char/greek/lower/gamma.png | Bin 303 -> 0 bytes .../images/toolbar/char/greek/lower/iota.png | Bin 250 -> 0 bytes .../images/toolbar/char/greek/lower/kappa.png | Bin 304 -> 0 bytes .../toolbar/char/greek/lower/lambda.png | Bin 309 -> 0 bytes .../images/toolbar/char/greek/lower/mu.png | Bin 309 -> 0 bytes .../images/toolbar/char/greek/lower/nu.png | Bin 287 -> 0 bytes .../images/toolbar/char/greek/lower/omega.png | Bin 307 -> 0 bytes .../toolbar/char/greek/lower/omicron.png | Bin 298 -> 0 bytes .../images/toolbar/char/greek/lower/phi.png | Bin 369 -> 0 bytes .../images/toolbar/char/greek/lower/pi.png | Bin 276 -> 0 bytes .../images/toolbar/char/greek/lower/psi.png | Bin 362 -> 0 bytes .../images/toolbar/char/greek/lower/rho.png | Bin 328 -> 0 bytes .../images/toolbar/char/greek/lower/sigma.png | Bin 288 -> 0 bytes .../images/toolbar/char/greek/lower/tau.png | Bin 255 -> 0 bytes .../images/toolbar/char/greek/lower/theta.png | Bin 370 -> 0 bytes .../toolbar/char/greek/lower/upsilon.png | Bin 312 -> 0 bytes .../images/toolbar/char/greek/lower/xi.png | Bin 358 -> 0 bytes .../images/toolbar/char/greek/lower/zeta.png | Bin 322 -> 0 bytes .../toolbar/char/greek/misc/digamma.png | Bin 336 -> 0 bytes .../toolbar/char/greek/misc/varepsilon.png | Bin 375 -> 0 bytes .../toolbar/char/greek/misc/varkappa.png | Bin 446 -> 0 bytes .../images/toolbar/char/greek/misc/varphi.png | Bin 520 -> 0 bytes .../images/toolbar/char/greek/misc/varpi.png | Bin 476 -> 0 bytes .../images/toolbar/char/greek/misc/varrho.png | Bin 503 -> 0 bytes .../toolbar/char/greek/misc/varsigma.png | Bin 360 -> 0 bytes .../toolbar/char/greek/misc/vartheta.png | Bin 532 -> 0 bytes .../images/toolbar/char/greek/upper/alpha.png | Bin 349 -> 0 bytes .../images/toolbar/char/greek/upper/beta.png | Bin 326 -> 0 bytes .../images/toolbar/char/greek/upper/chi.png | Bin 364 -> 0 bytes .../images/toolbar/char/greek/upper/delta.png | Bin 332 -> 0 bytes .../toolbar/char/greek/upper/epsilon.png | Bin 319 -> 0 bytes .../images/toolbar/char/greek/upper/eta.png | Bin 265 -> 0 bytes .../images/toolbar/char/greek/upper/gamma.png | Bin 255 -> 0 bytes .../images/toolbar/char/greek/upper/iota.png | Bin 223 -> 0 bytes .../images/toolbar/char/greek/upper/kappa.png | Bin 364 -> 0 bytes .../toolbar/char/greek/upper/lambda.png | Bin 324 -> 0 bytes .../images/toolbar/char/greek/upper/mu.png | Bin 372 -> 0 bytes .../images/toolbar/char/greek/upper/nu.png | Bin 353 -> 0 bytes .../images/toolbar/char/greek/upper/omega.png | Bin 409 -> 0 bytes .../toolbar/char/greek/upper/omicron.png | Bin 370 -> 0 bytes .../images/toolbar/char/greek/upper/phi.png | Bin 364 -> 0 bytes .../images/toolbar/char/greek/upper/pi.png | Bin 250 -> 0 bytes .../images/toolbar/char/greek/upper/psi.png | Bin 344 -> 0 bytes .../images/toolbar/char/greek/upper/rho.png | Bin 293 -> 0 bytes .../images/toolbar/char/greek/upper/sigma.png | Bin 342 -> 0 bytes .../images/toolbar/char/greek/upper/tau.png | Bin 285 -> 0 bytes .../images/toolbar/char/greek/upper/theta.png | Bin 392 -> 0 bytes .../toolbar/char/greek/upper/upsilon.png | Bin 297 -> 0 bytes .../images/toolbar/char/greek/upper/xi.png | Bin 258 -> 0 bytes .../images/toolbar/char/greek/upper/zeta.png | Bin 364 -> 0 bytes .../assets/images/toolbar/char/math/aleph.png | Bin 551 -> 0 bytes .../images/toolbar/char/math/approx.png | Bin 494 -> 0 bytes .../assets/images/toolbar/char/math/ast.png | Bin 363 -> 0 bytes .../images/toolbar/char/math/baifenhao.png | Bin 690 -> 0 bytes .../images/toolbar/char/math/because.png | Bin 262 -> 0 bytes .../assets/images/toolbar/char/math/beth.png | Bin 324 -> 0 bytes .../images/toolbar/char/math/blacksquare.png | Bin 194 -> 0 bytes .../assets/images/toolbar/char/math/cap.png | Bin 318 -> 0 bytes .../assets/images/toolbar/char/math/cdot.png | Bin 187 -> 0 bytes .../assets/images/toolbar/char/math/circ.png | Bin 362 -> 0 bytes .../assets/images/toolbar/char/math/cong.png | Bin 424 -> 0 bytes .../assets/images/toolbar/char/math/cup.png | Bin 313 -> 0 bytes .../assets/images/toolbar/char/math/ddots.png | Bin 275 -> 0 bytes .../assets/images/toolbar/char/math/div.png | Bin 227 -> 0 bytes .../images/toolbar/char/math/downarrow.png | Bin 320 -> 0 bytes .../assets/images/toolbar/char/math/eq.png | Bin 176 -> 0 bytes .../assets/images/toolbar/char/math/equiv.png | Bin 221 -> 0 bytes .../images/toolbar/char/math/exists.png | Bin 272 -> 0 bytes .../images/toolbar/char/math/forall.png | Bin 444 -> 0 bytes .../assets/images/toolbar/char/math/geq.png | Bin 310 -> 0 bytes .../assets/images/toolbar/char/math/gets.png | Bin 325 -> 0 bytes .../assets/images/toolbar/char/math/gg.png | Bin 334 -> 0 bytes .../assets/images/toolbar/char/math/gt.png | Bin 278 -> 0 bytes .../assets/images/toolbar/char/math/in.png | Bin 368 -> 0 bytes .../assets/images/toolbar/char/math/infty.png | Bin 399 -> 0 bytes .../toolbar/char/math/leftrightarrow.png | Bin 448 -> 0 bytes .../assets/images/toolbar/char/math/leq.png | Bin 288 -> 0 bytes .../assets/images/toolbar/char/math/ll.png | Bin 340 -> 0 bytes .../assets/images/toolbar/char/math/lt.png | Bin 278 -> 0 bytes .../assets/images/toolbar/char/math/minus.png | Bin 190 -> 0 bytes .../assets/images/toolbar/char/math/mp.png | Bin 225 -> 0 bytes .../assets/images/toolbar/char/math/neg.png | Bin 223 -> 0 bytes .../images/toolbar/char/math/nexists.png | Bin 508 -> 0 bytes .../assets/images/toolbar/char/math/ni.png | Bin 373 -> 0 bytes .../images/toolbar/char/math/partial.png | Bin 551 -> 0 bytes .../assets/images/toolbar/char/math/plus.png | Bin 265 -> 0 bytes .../assets/images/toolbar/char/math/pm.png | Bin 234 -> 0 bytes .../images/toolbar/char/math/propto.png | Bin 489 -> 0 bytes .../assets/images/toolbar/char/math/sim.png | Bin 261 -> 0 bytes .../assets/images/toolbar/char/math/simeq.png | Bin 307 -> 0 bytes .../assets/images/toolbar/char/math/surd.png | Bin 477 -> 0 bytes .../images/toolbar/char/math/tanhao.png | Bin 216 -> 0 bytes .../images/toolbar/char/math/therefore.png | Bin 253 -> 0 bytes .../assets/images/toolbar/char/math/times.png | Bin 245 -> 0 bytes .../assets/images/toolbar/char/math/to.png | Bin 333 -> 0 bytes .../images/toolbar/char/math/uparrow.png | Bin 320 -> 0 bytes .../images/toolbar/char/math/varnothing.png | Bin 584 -> 0 bytes .../assets/images/toolbar/char/math/vdots.png | Bin 266 -> 0 bytes .../assets/images/toolbar/char/not/gneqq.png | Bin 408 -> 0 bytes .../assets/images/toolbar/char/not/gnsim.png | Bin 443 -> 0 bytes .../assets/images/toolbar/char/not/lneqq.png | Bin 411 -> 0 bytes .../assets/images/toolbar/char/not/lnsim.png | Bin 447 -> 0 bytes .../images/toolbar/char/not/nbdash-1.png | Bin 289 -> 0 bytes .../assets/images/toolbar/char/not/ncong.png | Bin 658 -> 0 bytes .../assets/images/toolbar/char/not/neq.png | Bin 415 -> 0 bytes .../assets/images/toolbar/char/not/nequiv.png | Bin 463 -> 0 bytes .../images/toolbar/char/not/nexists.png | Bin 317 -> 0 bytes .../assets/images/toolbar/char/not/ngeq.png | Bin 526 -> 0 bytes .../assets/images/toolbar/char/not/ngtr.png | Bin 432 -> 0 bytes .../assets/images/toolbar/char/not/nleq.png | Bin 515 -> 0 bytes .../assets/images/toolbar/char/not/nless.png | Bin 518 -> 0 bytes .../assets/images/toolbar/char/not/nmid.png | Bin 245 -> 0 bytes .../assets/images/toolbar/char/not/notin.png | Bin 383 -> 0 bytes .../images/toolbar/char/not/nparallel.png | Bin 253 -> 0 bytes .../assets/images/toolbar/char/not/nprec.png | Bin 353 -> 0 bytes .../assets/images/toolbar/char/not/nsim.png | Bin 468 -> 0 bytes .../images/toolbar/char/not/nsubseteq.png | Bin 401 -> 0 bytes .../assets/images/toolbar/char/not/nsucc.png | Bin 367 -> 0 bytes .../images/toolbar/char/not/nsupseteq.png | Bin 400 -> 0 bytes .../images/toolbar/char/not/ntriangleleft.png | Bin 409 -> 0 bytes .../toolbar/char/not/ntrianglelefteq.png | Bin 455 -> 0 bytes .../toolbar/char/not/ntriangleright.png | Bin 406 -> 0 bytes .../toolbar/char/not/ntrianglerighteq.png | Bin 440 -> 0 bytes .../images/toolbar/char/not/nvdash-1.png | Bin 321 -> 0 bytes .../images/toolbar/char/not/nvdash-2.png | Bin 342 -> 0 bytes .../images/toolbar/char/not/nvdash-3.png | Bin 340 -> 0 bytes .../assets/images/toolbar/char/not/nvdash.png | Bin 289 -> 0 bytes .../images/toolbar/char/not/precnsim.png | Bin 426 -> 0 bytes .../images/toolbar/char/not/subsetneq.png | Bin 339 -> 0 bytes .../images/toolbar/char/not/succnsim.png | Bin 465 -> 0 bytes .../images/toolbar/char/not/supsetneq.png | Bin 330 -> 0 bytes .../assets/images/toolbar/char/rm/a.png | Bin 303 -> 0 bytes .../assets/images/toolbar/char/rm/b.png | Bin 291 -> 0 bytes .../assets/images/toolbar/char/rm/c.png | Bin 291 -> 0 bytes .../assets/images/toolbar/char/rm/d.png | Bin 308 -> 0 bytes .../assets/images/toolbar/char/rm/e.png | Bin 311 -> 0 bytes .../assets/images/toolbar/char/rm/f.png | Bin 246 -> 0 bytes .../assets/images/toolbar/char/rm/g.png | Bin 354 -> 0 bytes .../assets/images/toolbar/char/rm/h.png | Bin 245 -> 0 bytes .../assets/images/toolbar/char/rm/i.png | Bin 208 -> 0 bytes .../assets/images/toolbar/char/rm/j.png | Bin 226 -> 0 bytes .../assets/images/toolbar/char/rm/k.png | Bin 301 -> 0 bytes .../assets/images/toolbar/char/rm/l.png | Bin 183 -> 0 bytes .../assets/images/toolbar/char/rm/m.png | Bin 288 -> 0 bytes .../assets/images/toolbar/char/rm/n.png | Bin 239 -> 0 bytes .../assets/images/toolbar/char/rm/o.png | Bin 308 -> 0 bytes .../assets/images/toolbar/char/rm/p.png | Bin 298 -> 0 bytes .../assets/images/toolbar/char/rm/q.png | Bin 314 -> 0 bytes .../assets/images/toolbar/char/rm/r.png | Bin 227 -> 0 bytes .../assets/images/toolbar/char/rm/s.png | Bin 296 -> 0 bytes .../assets/images/toolbar/char/rm/t.png | Bin 242 -> 0 bytes .../assets/images/toolbar/char/rm/u.png | Bin 259 -> 0 bytes .../assets/images/toolbar/char/rm/ua.png | Bin 343 -> 0 bytes .../assets/images/toolbar/char/rm/ub.png | Bin 363 -> 0 bytes .../assets/images/toolbar/char/rm/uc.png | Bin 378 -> 0 bytes .../assets/images/toolbar/char/rm/ud.png | Bin 310 -> 0 bytes .../assets/images/toolbar/char/rm/ue.png | Bin 308 -> 0 bytes .../assets/images/toolbar/char/rm/uf.png | Bin 260 -> 0 bytes .../assets/images/toolbar/char/rm/ug.png | Bin 394 -> 0 bytes .../assets/images/toolbar/char/rm/uh.png | Bin 266 -> 0 bytes .../assets/images/toolbar/char/rm/ui.png | Bin 212 -> 0 bytes .../assets/images/toolbar/char/rm/uj.png | Bin 242 -> 0 bytes .../assets/images/toolbar/char/rm/uk.png | Bin 345 -> 0 bytes .../assets/images/toolbar/char/rm/ul.png | Bin 228 -> 0 bytes .../assets/images/toolbar/char/rm/um.png | Bin 368 -> 0 bytes .../assets/images/toolbar/char/rm/un.png | Bin 338 -> 0 bytes .../assets/images/toolbar/char/rm/uo.png | Bin 371 -> 0 bytes .../assets/images/toolbar/char/rm/up.png | Bin 280 -> 0 bytes .../assets/images/toolbar/char/rm/uq.png | Bin 425 -> 0 bytes .../assets/images/toolbar/char/rm/ur.png | Bin 336 -> 0 bytes .../assets/images/toolbar/char/rm/us.png | Bin 363 -> 0 bytes .../assets/images/toolbar/char/rm/ut.png | Bin 259 -> 0 bytes .../assets/images/toolbar/char/rm/uu.png | Bin 297 -> 0 bytes .../assets/images/toolbar/char/rm/uv.png | Bin 361 -> 0 bytes .../assets/images/toolbar/char/rm/uw.png | Bin 442 -> 0 bytes .../assets/images/toolbar/char/rm/ux.png | Bin 374 -> 0 bytes .../assets/images/toolbar/char/rm/uy.png | Bin 341 -> 0 bytes .../assets/images/toolbar/char/rm/uz.png | Bin 366 -> 0 bytes .../assets/images/toolbar/char/rm/v.png | Bin 301 -> 0 bytes .../assets/images/toolbar/char/rm/w.png | Bin 339 -> 0 bytes .../assets/images/toolbar/char/rm/x.png | Bin 303 -> 0 bytes .../assets/images/toolbar/char/rm/y.png | Bin 329 -> 0 bytes .../assets/images/toolbar/char/rm/z.png | Bin 292 -> 0 bytes .../assets/images/toolbar/frac/1.png | Bin 965 -> 0 bytes .../assets/images/toolbar/frac/2.png | Bin 669 -> 0 bytes .../assets/images/toolbar/frac/3.png | Bin 596 -> 0 bytes .../assets/images/toolbar/frac/c1.png | Bin 1115 -> 0 bytes .../assets/images/toolbar/frac/c2.png | Bin 1077 -> 0 bytes .../assets/images/toolbar/frac/c4.png | Bin 1124 -> 0 bytes .../assets/images/toolbar/frac/c5.png | Bin 651 -> 0 bytes .../assets/images/toolbar/func/1.png | Bin 918 -> 0 bytes .../assets/images/toolbar/func/2.png | Bin 952 -> 0 bytes .../assets/images/toolbar/func/3.png | Bin 931 -> 0 bytes .../assets/images/toolbar/func/4.png | Bin 880 -> 0 bytes .../assets/images/toolbar/func/5.png | Bin 904 -> 0 bytes .../assets/images/toolbar/func/6.png | Bin 893 -> 0 bytes .../assets/images/toolbar/func/c1.png | Bin 857 -> 0 bytes .../assets/images/toolbar/func/c2.png | Bin 1003 -> 0 bytes .../assets/images/toolbar/func/c3.png | Bin 2532 -> 0 bytes .../assets/images/toolbar/int/1.png | Bin 873 -> 0 bytes .../assets/images/toolbar/int/2.png | Bin 1148 -> 0 bytes .../assets/images/toolbar/int/3.png | Bin 1151 -> 0 bytes .../assets/images/toolbar/int/4.png | Bin 1406 -> 0 bytes .../assets/images/toolbar/int/5.png | Bin 1486 -> 0 bytes .../assets/images/toolbar/int/6.png | Bin 1376 -> 0 bytes .../assets/images/toolbar/large/1.png | Bin 889 -> 0 bytes .../assets/images/toolbar/large/2.png | Bin 1221 -> 0 bytes .../assets/images/toolbar/large/3.png | Bin 988 -> 0 bytes .../assets/images/toolbar/other.png | Bin 40838 -> 0 bytes .../assets/images/toolbar/script/1.png | Bin 445 -> 0 bytes .../assets/images/toolbar/script/2.png | Bin 464 -> 0 bytes .../assets/images/toolbar/script/3.png | Bin 507 -> 0 bytes .../assets/images/toolbar/script/4.png | Bin 596 -> 0 bytes .../assets/images/toolbar/script/c1.png | Bin 829 -> 0 bytes .../assets/images/toolbar/script/c2.png | Bin 626 -> 0 bytes .../assets/images/toolbar/script/c3.png | Bin 753 -> 0 bytes .../assets/images/toolbar/sqrt/1.png | Bin 800 -> 0 bytes .../assets/images/toolbar/sqrt/2.png | Bin 916 -> 0 bytes .../assets/images/toolbar/sqrt/3.png | Bin 894 -> 0 bytes .../assets/images/toolbar/sqrt/4.png | Bin 916 -> 0 bytes .../assets/images/toolbar/sqrt/c1.png | Bin 2614 -> 0 bytes .../assets/images/toolbar/sqrt/c2.png | Bin 1794 -> 0 bytes .../assets/images/toolbar/ys/1.png | Bin 1927 -> 0 bytes .../assets/images/toolbar/ys/2.png | Bin 2553 -> 0 bytes .../assets/images/toolbar/ys/3.png | Bin 1200 -> 0 bytes .../kityformula/assets/styles/base.css | 40 - .../kityformula/assets/styles/page.css | 12 - .../kityformula/assets/styles/scrollbar.css | 78 - .../kityformula/assets/styles/ui.css | 536 - .../kityformula/assets/theme/default/fui.css | 540 - .../assets/theme/default/fui.min.css | 10 - .../assets/theme/default/images/close.png | Bin 836 -> 0 bytes .../assets/theme/default/images/down.png | Bin 1089 -> 0 bytes .../assets/theme/default/images/open.png | Bin 859 -> 0 bytes .../assets/theme/default/images/up.png | Bin 1080 -> 0 bytes .../kityformula/js/jquery-1.11.0.min.js | 4 - .../js/kity-formula-parser.all.min.js | 9 - .../kityformula/js/kity-formula-render.all.js | 5757 ----------- .../js/kityformula-editor.all.min.js | 12 - .../kityformula/js/kitygraph.all.js | 6195 ----------- .../kityformula/loading.gif | Bin 1787 -> 0 bytes .../kityformula/resource/KF_AMS_BB.woff | Bin 5764 -> 0 bytes .../kityformula/resource/KF_AMS_CAL.woff | Bin 5576 -> 0 bytes .../kityformula/resource/KF_AMS_FRAK.woff | Bin 9956 -> 0 bytes .../kityformula/resource/KF_AMS_MAIN.woff | Bin 52540 -> 0 bytes .../kityformula/resource/KF_AMS_ROMAN.woff | Bin 6560 -> 0 bytes dzz/system/ueditor/lang/zh-cn/zh-cn.js | 1 - .../ueditor/themes/default/css/ueditor.css | 3 - .../themes/default/css/ueditor.min.css | 8 - .../themes/default/images/kityminder.png | Bin 2429 -> 0 bytes .../third-party/dzzattach/dzzattach.js | 2 +- dzz/system/ueditor/ueditor.all.js | 4 +- dzz/system/ueditor/ueditor.all.min.js | 6 - dzz/system/ueditor/ueditor.config.js | 11 +- dzz/system/ueditor/ueditor.parse.min.js | 28 - 523 files changed, 7 insertions(+), 41779 deletions(-) delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/angular-ui-codemirror/ui-codemirror.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/angular/angular.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/css/bootstrap.min.css delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/js/bootstrap.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/addon/mode/overlay.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.css delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/css/css.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/gfm/gfm.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/htmlmixed/htmlmixed.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/javascript/javascript.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/markdown/markdown.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/xml/xml.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.css delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.css delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/jquery/dist/jquery.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/json-diff/json-diff.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/kity/dist/kity.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/kityminder-core/dist/kityminder.core.css delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/kityminder-core/dist/kityminder.core.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/kityminder-core/dist/kityminder.core.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/marked/marked.min.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/bower_components/seajs/dist/sea.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/helpDlg.tpl.html delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/images/iconpriority.png delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/images/iconprogress.png delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/images/icons.png delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/images/template.png delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/index.html delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.css delete mode 100644 dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.js delete mode 100644 dzz/system/ueditor/dialogs/kityminder/kityMinderDialog.html delete mode 100644 dzz/system/ueditor/index.html delete mode 100644 dzz/system/ueditor/kityformula-plugin/addKityFormulaDialog.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/defaultFilterFix.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/getKfContent.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/kf-icon.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityFormulaDialog.html delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bar-bg.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bar.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bg.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bottom.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/btn.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/down.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/top.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/up.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-bg.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-left.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-right.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-bg.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-left.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-right.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/aleph.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/bbbk.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/beth.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/circleds.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/complement.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/daleth.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/ell.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/eth.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/finv.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/game.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/gimel.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/hbar.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/hslash.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/im.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/mho.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/partial.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/re.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/wp.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/circlearrowleft.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/circlearrowright.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/curvearrowleft.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/curvearrowright.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downdownarrows.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downharpoonleft.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downharpoonright.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/gets.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftarrowtail.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftharpoondown.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftharpoonup.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftleftarrows.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightarrows.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightharpoons.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightsquigarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longleftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longleftrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/looparrowleft.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/looparrowright.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/multimap.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nearrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nleftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nwarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightarrowtail.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightharpoondown.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightharpoonup.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightleftarrows.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightleftharpoons.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightrightarrows.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightsquigarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/searrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/swarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/to.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/twoheadleftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/twoheadrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-downarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-leftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-leftrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-lftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-lleftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-longleftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-longleftrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-longrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-lsh.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-nleftarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-nleftrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-nrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-rightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-rrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-rsh.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-uparrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-updownarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/uparrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/updownarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upharpoonleft.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upharpoonright.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upuparrows.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/4.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/btn.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/brackets.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/down.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/frac.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/fx.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/int.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/lim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/open.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/script.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/sin.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/sqrt.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/sum.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/tick.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/up.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/a.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/b.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/c.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/d.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/e.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/f.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/g.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/h.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/i.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/j.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/k.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/l.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/m.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/n.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/o.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/p.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/q.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/r.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/s.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/t.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/u.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/v.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/w.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/x.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/y.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/z.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/a.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/b.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/c.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/d.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/e.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/f.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/g.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/h.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/i.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/j.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/k.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/l.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/m.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/n.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/o.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/p.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/q.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/r.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/s.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/t.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/u.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/v.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/w.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/x.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/y.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/z.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/a.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/b.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/c.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/d.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/e.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/f.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/g.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/h.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/i.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/j.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/k.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/l.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/m.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/n.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/o.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/p.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/q.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/r.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/s.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/t.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/u.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ua.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ub.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uc.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ud.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ue.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uf.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ug.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uh.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ui.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uj.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uk.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ul.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/um.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/un.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uo.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/up.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ur.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/us.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ut.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uu.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uv.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uw.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ux.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uy.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uz.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/v.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/w.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/x.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/y.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/z.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/alpha.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/beta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/chi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/delta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/epsilon.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/eta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/gamma.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/iota.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/kappa.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/lambda.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/mu.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/nu.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/omega.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/omicron.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/phi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/pi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/psi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/rho.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/sigma.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/tau.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/theta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/upsilon.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/xi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/zeta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/digamma.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varepsilon.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varkappa.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varphi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varpi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varrho.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varsigma.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/vartheta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/alpha.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/beta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/chi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/delta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/epsilon.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/eta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/gamma.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/iota.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/kappa.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/lambda.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/mu.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/nu.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/omega.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/omicron.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/phi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/pi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/psi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/rho.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/sigma.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/tau.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/theta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/upsilon.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/xi.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/zeta.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/aleph.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/approx.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ast.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/baifenhao.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/because.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/beth.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/blacksquare.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cap.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cdot.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/circ.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cong.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cup.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ddots.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/div.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/downarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/eq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/equiv.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/exists.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/forall.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/geq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/gets.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/gg.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/gt.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/in.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/infty.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/leftrightarrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/leq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ll.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/lt.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/minus.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/mp.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/neg.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/nexists.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ni.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/partial.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/plus.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/pm.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/propto.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/sim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/simeq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/surd.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/tanhao.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/therefore.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/times.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/to.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/uparrow.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/varnothing.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/vdots.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/gneqq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/gnsim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/lneqq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/lnsim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nbdash-1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ncong.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/neq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nequiv.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nexists.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ngeq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ngtr.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nleq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nless.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nmid.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/notin.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nparallel.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nprec.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsubseteq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsucc.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsupseteq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ntriangleleft.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ntrianglelefteq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ntriangleright.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ntrianglerighteq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash-1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash-2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash-3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/precnsim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/subsetneq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/succnsim.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/supsetneq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/a.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/b.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/c.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/d.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/e.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/f.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/g.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/h.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/i.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/j.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/k.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/l.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/m.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/n.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/o.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/p.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/q.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/r.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/s.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/t.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/u.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ua.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ub.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uc.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ud.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ue.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uf.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ug.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uh.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ui.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uj.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uk.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ul.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/um.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/un.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uo.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/up.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uq.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ur.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/us.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ut.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uu.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uv.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uw.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ux.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uy.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uz.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/v.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/w.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/x.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/y.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/z.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c4.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c5.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/4.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/5.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/6.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/4.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/5.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/6.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/large/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/large/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/large/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/other.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/4.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/c1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/c2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/c3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/4.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/c1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/c2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/ys/1.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/ys/2.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/ys/3.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/base.css delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/page.css delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/scrollbar.css delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/ui.css delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.css delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.min.css delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/close.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/down.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/open.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/up.png delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/js/jquery-1.11.0.min.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/js/kity-formula-parser.all.min.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/js/kity-formula-render.all.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/js/kityformula-editor.all.min.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/js/kitygraph.all.js delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/loading.gif delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/resource/KF_AMS_BB.woff delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/resource/KF_AMS_CAL.woff delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/resource/KF_AMS_FRAK.woff delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/resource/KF_AMS_MAIN.woff delete mode 100644 dzz/system/ueditor/kityformula-plugin/kityformula/resource/KF_AMS_ROMAN.woff delete mode 100644 dzz/system/ueditor/themes/default/css/ueditor.min.css delete mode 100644 dzz/system/ueditor/themes/default/images/kityminder.png delete mode 100644 dzz/system/ueditor/ueditor.all.min.js delete mode 100644 dzz/system/ueditor/ueditor.parse.min.js diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js deleted file mode 100644 index 4851b98..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * angular-ui-bootstrap - * http://angular-ui.github.io/bootstrap/ - - * Version: 0.12.1 - 2015-02-20 - * License: MIT - */ -angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var e=function(d,f,g){g=g||{};var h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return i&&d.bind(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&&d.css(f),i||h.resolve(d)}),h.promise.cancel=function(){i&&d.unbind(i,j),h.reject("Transition cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return j&&j.cancel(),j=e,e.then(d,d),e}function f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function g(){c.removeClass("collapsing"),c.addClass("collapse in"),c.css({height:"auto"})}function h(){if(k)k=!1,i(),c.css({height:0});else{c.css({height:c[0].scrollHeight+"px"});{c[0].offsetWidth}c.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(i)}}function i(){c.removeClass("collapsing"),c.addClass("collapse")}var j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.$watch("isOpen",function(b){b&&d.closeOthers(a)}),a.toggleOpen=function(){a.isDisabled||(a.isOpen=!a.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.accordionTransclude]},function(a){a&&(b.html(""),b.append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(a,b){a.closeable="close"in b,this.close=a.close}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}).directive("dismissOnTimeout",["$timeout",function(a){return{require:"alert",link:function(b,c,d,e){a(function(){e.close()},parseInt(d.dismissOnTimeout,10))}}}]),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(a,b,c){b.addClass("ng-binding").data("$binding",c.bindHtmlUnsafe),a.$watch(c.bindHtmlUnsafe,function(a){b.html(a||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){var e=d[0],f=d[1];f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.btnRadio)))},b.bind(e.toggleEvent,function(){var d=b.hasClass(e.activeClass);(!d||angular.isDefined(c.uncheckable))&&a.$apply(function(){f.$setViewValue(d?null:a.$eval(c.btnRadio)),f.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){var d=a.$eval(b);return angular.isDefined(d)?d:c}var h=d[0],i=d[1];i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.bind(h.toggleEvent,function(){a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$interval","$transition",function(a,b,c,d){function e(){f();var b=+a.interval;!isNaN(b)&&b>0&&(h=c(g,b))}function f(){h&&(c.cancel(h),h=null)}function g(){var b=+a.interval;i&&!isNaN(b)&&b>0?a.next():a.pause()}var h,i,j=this,k=j.slides=a.slides=[],l=-1;j.currentSlide=null;var m=!1;j.select=a.select=function(c,f){function g(){if(!m){if(j.currentSlide&&angular.isString(f)&&!a.noTransition&&c.$element){c.$element.addClass(f);{c.$element[0].offsetWidth}angular.forEach(k,function(a){angular.extend(a,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(c,{direction:f,active:!0,entering:!0}),angular.extend(j.currentSlide||{},{direction:f,leaving:!0}),a.$currentTransition=d(c.$element,{}),function(b,c){a.$currentTransition.then(function(){h(b,c)},function(){h(b,c)})}(c,j.currentSlide)}else h(c,j.currentSlide);j.currentSlide=c,l=i,e()}}function h(b,c){angular.extend(b,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(c||{},{direction:"",active:!1,leaving:!1,entering:!1}),a.$currentTransition=null}var i=k.indexOf(c);void 0===f&&(f=i>l?"next":"prev"),c&&c!==j.currentSlide&&(a.$currentTransition?(a.$currentTransition.cancel(),b(g)):g())},a.$on("$destroy",function(){m=!0}),j.indexOfSlide=function(a){return k.indexOf(a)},a.next=function(){var b=(l+1)%k.length;return a.$currentTransition?void 0:j.select(k[b],"next")},a.prev=function(){var b=0>l-1?k.length-1:l-1;return a.$currentTransition?void 0:j.select(k[b],"prev")},a.isActive=function(a){return j.currentSlide===a},a.$watch("interval",e),a.$on("$destroy",f),a.play=function(){i||(i=!0,e())},a.pause=function(){a.noPause||(i=!1,f())},j.addSlide=function(b,c){b.$element=c,k.push(b),1===k.length||b.active?(j.select(k[k.length-1]),1==k.length&&a.play()):b.active=!1},j.removeSlide=function(a){var b=k.indexOf(a);k.splice(b,1),k.length>0&&a.active?j.select(b>=k.length?k[b-1]:k[b]):l>b&&l--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(a,b){function c(a){var c=[],d=a.split("");return angular.forEach(e,function(b,e){var f=a.indexOf(e);if(f>-1){a=a.split(""),d[f]="("+b.regex+")",a[f]="$";for(var g=f+1,h=f+e.length;h>g;g++)d[g]="",a[g]="$";a=a.join(""),c.push({index:f,apply:b.apply})}}),{regex:new RegExp("^"+d.join("")+"$"),map:b(c,"index")}}function d(a,b,c){return 1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}this.parsers={};var e={yyyy:{regex:"\\d{4}",apply:function(a){this.year=+a}},yy:{regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},y:{regex:"\\d{1,4}",apply:function(a){this.year=+a}},MMMM:{regex:a.DATETIME_FORMATS.MONTH.join("|"),apply:function(b){this.month=a.DATETIME_FORMATS.MONTH.indexOf(b)}},MMM:{regex:a.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(b){this.month=a.DATETIME_FORMATS.SHORTMONTH.indexOf(b)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},M:{regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},EEEE:{regex:a.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:a.DATETIME_FORMATS.SHORTDAY.join("|")}};this.parse=function(b,e){if(!angular.isString(b)||!e)return b;e=a.DATETIME_FORMATS[e]||e,this.parsers[e]||(this.parsers[e]=c(e));var f=this.parsers[e],g=f.regex,h=f.map,i=b.match(g);if(i&&i.length){for(var j,k={year:1900,month:0,date:1,hours:0},l=1,m=i.length;m>l;l++){var n=h[l-1];n.apply&&n.apply.call(k,i[l])}return d(k.year,k.month,k.date)&&(j=new Date(k.year,k.month,k.date,k.hours)),j}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return"static"===(c(a,"position")||"static")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop("offsetWidth"),height:g.height||b.prop("offsetHeight"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}},positionElements:function(a,b,c,d){var e,f,g,h,i=c.split("-"),j=i[0],k=i[1]||"center";e=d?this.offset(a):this.position(a),f=b.prop("offsetWidth"),g=b.prop("offsetHeight");var l={center:function(){return e.left+e.width/2-f/2},left:function(){return e.left},right:function(){return e.left+e.width}},m={center:function(){return e.top+e.height/2-g/2},top:function(){return e.top},bottom:function(){return e.top+e.height}};switch(j){case"right":h={top:m[k](),left:l[j]()};break;case"left":h={top:m[k](),left:e.left-f};break;case"bottom":h={top:m[j](),left:l[k]()};break;default:h={top:e.top-g,left:l[k]()}}return h}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(a,b,c,d,e,f,g,h){var i=this,j={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(c,e){i[c]=angular.isDefined(b[c])?8>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):h[c]}),angular.forEach(["minDate","maxDate"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){i[d]=a?new Date(a):null,i.refreshView()}):i[d]=h[d]?new Date(h[d]):null}),a.datepickerMode=a.datepickerMode||h.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),this.activeDate=angular.isDefined(b.initDate)?a.$parent.$eval(b.initDate):new Date,a.isActive=function(b){return 0===i.compare(b.date,i.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){j=a,j.$render=function(){i.render()}},this.render=function(){if(j.$modelValue){var a=new Date(j.$modelValue),b=!isNaN(a);b?this.activeDate=a:f.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'),j.$setValidity("date",b)}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=j.$modelValue?new Date(j.$modelValue):null;j.$setValidity("date-disabled",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=j.$modelValue?new Date(j.$modelValue):null;return{date:a,label:g(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===i.minMode){var c=j.$modelValue?new Date(j.$modelValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),j.$setViewValue(c),j.$render()}else i.activeDate=b,a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=i.activeDate.getFullYear()+a*(i.step.years||0),c=i.activeDate.getMonth()+a*(i.step.months||0);i.activeDate.setFullYear(b,c,1),i.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===i.maxMode&&1===b||a.datepickerMode===i.minMode&&-1===b||(a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var k=function(){e(function(){i.element[0].focus()},0,!1)};a.$on("datepicker.focus",k),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),b.stopPropagation(),"enter"===c||"space"===c){if(i.isDisabled(i.activeDate))return;a.select(i.activeDate),k()}else!b.ctrlKey||"up"!==c&&"down"!==c?(i.handleKeyDown(c,b),i.refreshView()):(a.toggleMode("up"===c?1:-1),k())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f)}}}).directive("daypicker",["dateFilter",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(b,c,d,e){function f(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?i[b]:29}function g(a,b){var c=new Array(b),d=new Date(a),e=0;for(d.setHours(12);b>e;)c[e++]=new Date(d),d.setDate(d.getDate()+1);return c}function h(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}b.showWeeks=e.showWeeks,e.step={months:1},e.element=c;var i=[31,28,31,30,31,30,31,31,30,31,30,31];e._refreshView=function(){var c=e.activeDate.getFullYear(),d=e.activeDate.getMonth(),f=new Date(c,d,1),i=e.startingDay-f.getDay(),j=i>0?7-i:-i,k=new Date(f);j>0&&k.setDate(-j+1);for(var l=g(k,42),m=0;42>m;m++)l[m]=angular.extend(e.createDateObject(l[m],e.formatDay),{secondary:l[m].getMonth()!==d,uid:b.uniqueId+"-"+m});b.labels=new Array(7);for(var n=0;7>n;n++)b.labels[n]={abbr:a(l[n].date,e.formatDayHeader),full:a(l[n].date,"EEEE")};if(b.title=a(e.activeDate,e.formatDayTitle),b.rows=e.split(l,7),b.showWeeks){b.weekNumbers=[];for(var o=h(b.rows[0][0].date),p=b.rows.length;b.weekNumbers.push(o++)f;f++)c[f]=angular.extend(e.createDateObject(new Date(d,f,1),e.formatMonth),{uid:b.uniqueId+"-"+f});b.title=a(e.activeDate,e.formatMonthTitle),b.rows=e.split(c,3)},e.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},e.handleKeyDown=function(a){var b=e.activeDate.getMonth();if("left"===a)b-=1;else if("up"===a)b-=3;else if("right"===a)b+=1;else if("down"===a)b+=3;else if("pageup"===a||"pagedown"===a){var c=e.activeDate.getFullYear()+("pageup"===a?-1:1);e.activeDate.setFullYear(c)}else"home"===a?b=0:"end"===a&&(b=11);e.activeDate.setMonth(b)},e.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(a,b,c,d){function e(a){return parseInt((a-1)/f,10)*f+1}var f=d.yearRange;d.step={years:f},d.element=b,d._refreshView=function(){for(var b=new Array(f),c=0,g=e(d.activeDate.getFullYear());f>c;c++)b[c]=angular.extend(d.createDateObject(new Date(g+c,0,1),d.formatYear),{uid:a.uniqueId+"-"+c});a.title=[b[0].label,b[f-1].label].join(" - "),a.rows=d.split(b,5)},d.compare=function(a,b){return a.getFullYear()-b.getFullYear()},d.handleKeyDown=function(a){var b=d.activeDate.getFullYear();"left"===a?b-=1:"up"===a?b-=5:"right"===a?b+=1:"down"===a?b+=5:"pageup"===a||"pagedown"===a?b+=("pageup"===a?-1:1)*d.step.years:"home"===a?b=e(d.activeDate.getFullYear()):"end"===a&&(b=e(d.activeDate.getFullYear())+f-1),d.activeDate.setFullYear(b)},d.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(a,b,c,d,e,f,g){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(h,i,j,k){function l(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function m(a){if(a){if(angular.isDate(a)&&!isNaN(a))return k.$setValidity("date",!0),a;if(angular.isString(a)){var b=f.parse(a,n)||new Date(a);return isNaN(b)?void k.$setValidity("date",!1):(k.$setValidity("date",!0),b)}return void k.$setValidity("date",!1)}return k.$setValidity("date",!0),null}var n,o=angular.isDefined(j.closeOnDateSelection)?h.$parent.$eval(j.closeOnDateSelection):g.closeOnDateSelection,p=angular.isDefined(j.datepickerAppendToBody)?h.$parent.$eval(j.datepickerAppendToBody):g.appendToBody;h.showButtonBar=angular.isDefined(j.showButtonBar)?h.$parent.$eval(j.showButtonBar):g.showButtonBar,h.getText=function(a){return h[a+"Text"]||g[a+"Text"]},j.$observe("datepickerPopup",function(a){n=a||g.datepickerPopup,k.$render()});var q=angular.element("
");q.attr({"ng-model":"date","ng-change":"dateSelection()"});var r=angular.element(q.children()[0]);j.datepickerOptions&&angular.forEach(h.$parent.$eval(j.datepickerOptions),function(a,b){r.attr(l(b),a)}),h.watchData={},angular.forEach(["minDate","maxDate","datepickerMode"],function(a){if(j[a]){var c=b(j[a]);if(h.$parent.$watch(c,function(b){h.watchData[a]=b}),r.attr(l(a),"watchData."+a),"datepickerMode"===a){var d=c.assign;h.$watch("watchData."+a,function(a,b){a!==b&&d(h.$parent,a)})}}}),j.dateDisabled&&r.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),k.$parsers.unshift(m),h.dateSelection=function(a){angular.isDefined(a)&&(h.date=a),k.$setViewValue(h.date),k.$render(),o&&(h.isOpen=!1,i[0].focus())},i.bind("input change keyup",function(){h.$apply(function(){h.date=k.$modelValue})}),k.$render=function(){var a=k.$viewValue?e(k.$viewValue,n):"";i.val(a),h.date=m(k.$modelValue)};var s=function(a){h.isOpen&&a.target!==i[0]&&h.$apply(function(){h.isOpen=!1})},t=function(a){h.keydown(a)};i.bind("keydown",t),h.keydown=function(a){27===a.which?(a.preventDefault(),a.stopPropagation(),h.close()):40!==a.which||h.isOpen||(h.isOpen=!0)},h.$watch("isOpen",function(a){a?(h.$broadcast("datepicker.focus"),h.position=p?d.offset(i):d.position(i),h.position.top=h.position.top+i.prop("offsetHeight"),c.bind("click",s)):c.unbind("click",s)}),h.select=function(a){if("today"===a){var b=new Date;angular.isDate(k.$modelValue)?(a=new Date(k.$modelValue),a.setFullYear(b.getFullYear(),b.getMonth(),b.getDate())):a=new Date(b.setHours(0,0,0,0))}h.dateSelection(a)},h.close=function(){h.isOpen=!1,i[0].focus()};var u=a(q)(h);q.remove(),p?c.find("body").append(u):i.after(u),h.$on("$destroy",function(){u.remove(),i.unbind("keydown",t),c.unbind("click",s)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(a,b){b.bind("click",function(a){a.preventDefault(),a.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(a){var b=null;this.open=function(e){b||(a.bind("click",c),a.bind("keydown",d)),b&&b!==e&&(b.isOpen=!1),b=e},this.close=function(e){b===e&&(b=null,a.unbind("click",c),a.unbind("keydown",d))};var c=function(a){if(b){var c=b.getToggleElement();a&&c&&c[0].contains(a.target)||b.$apply(function(){b.isOpen=!1})}},d=function(a){27===a.which&&(b.focusToggleElement(),c())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(a,b,c,d,e,f){var g,h=this,i=a.$new(),j=d.openClass,k=angular.noop,l=b.onToggle?c(b.onToggle):angular.noop;this.init=function(d){h.$element=d,b.isOpen&&(g=c(b.isOpen),k=g.assign,a.$watch(g,function(a){i.isOpen=!!a}))},this.toggle=function(a){return i.isOpen=arguments.length?!!a:!i.isOpen},this.isOpen=function(){return i.isOpen},i.getToggleElement=function(){return h.toggleElement},i.focusToggleElement=function(){h.toggleElement&&h.toggleElement[0].focus()},i.$watch("isOpen",function(b,c){f[b?"addClass":"removeClass"](h.$element,j),b?(i.focusToggleElement(),e.open(i)):e.close(i),k(a,b),angular.isDefined(b)&&b!==c&&l(a,{open:!!b})}),a.$on("$locationChangeSuccess",function(){i.isOpen=!1}),a.$on("$destroy",function(){i.$destroy()})}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(a,b,c,d){d.init(b)}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(a,b,c,d){if(d){d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0),i()})}function i(){if(k&&-1==g()){var a=l;j(k,l,150,function(){a.$destroy(),a=null}),k=void 0,l=void 0}}function j(c,d,e,f){function g(){g.done||(g.done=!0,c.remove(),f&&f())}d.animate=!1;var h=a.transitionEndEventName;if(h){var i=b(g,e);c.bind(h,function(){b.cancel(i),g(),d.$apply()})}else b(g)}var k,l,m="modal-open",n=f.createNew(),o={};return e.$watch(g,function(a){l&&(l.index=a)}),c.bind("keydown",function(a){var b;27===a.which&&(b=n.top(),b&&b.value.keyboard&&(a.preventDefault(),e.$apply(function(){o.dismiss(b.key,"escape key press")})))}),o.open=function(a,b){n.add(a,{deferred:b.deferred,modalScope:b.scope,backdrop:b.backdrop,keyboard:b.keyboard});var f=c.find("body").eq(0),h=g();if(h>=0&&!k){l=e.$new(!0),l.index=h;var i=angular.element("
");i.attr("backdrop-class",b.backdropClass),k=d(i)(l),f.append(k)}var j=angular.element("
");j.attr({"template-url":b.windowTemplateUrl,"window-class":b.windowClass,size:b.size,index:n.length()-1,animate:"animate"}).html(b.content);var o=d(j)(b.scope);n.top().value.modalDomEl=o,f.append(o),f.addClass(m)},o.close=function(a,b){var c=n.get(a);c&&(c.value.deferred.resolve(b),h(a))},o.dismiss=function(a,b){var c=n.get(a);c&&(c.value.deferred.reject(b),h(a))},o.dismissAll=function(a){for(var b=this.getTop();b;)this.dismiss(b.key,a),b=this.getTop()},o.getTop=function(){return n.top()},o}]).provider("$modal",function(){var a={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?d.when(a.template):e.get(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl,{cache:f}).then(function(a){return a.data})}function j(a){var c=[];return angular.forEach(a,function(a){(angular.isFunction(a)||angular.isArray(a))&&c.push(d.when(b.invoke(a)))}),c}var k={};return k.open=function(b){var e=d.defer(),f=d.defer(),k={result:e.promise,opened:f.promise,close:function(a){h.close(k,a)},dismiss:function(a){h.dismiss(k,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error("One of template or templateUrl options is required.");var l=d.all([i(b)].concat(j(b.resolve)));return l.then(function(a){var d=(b.scope||c).$new();d.$close=k.close,d.$dismiss=k.dismiss;var f,i={},j=1;b.controller&&(i.$scope=d,i.$modalInstance=k,angular.forEach(b.resolve,function(b,c){i[c]=a[j++]}),f=g(b.controller,i),b.controllerAs&&(d[b.controllerAs]=f)),h.open(k,{scope:d,deferred:e,content:a[0],backdrop:b.backdrop,keyboard:b.keyboard,backdropClass:b.backdropClass,windowClass:b.windowClass,windowTemplateUrl:b.windowTemplateUrl,size:b.size})},function(a){e.reject(a)}),l.then(function(){f.resolve(!0)},function(){f.reject(!1)}),k},k}]};return a}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(a,b,c){var d=this,e={$setViewValue:angular.noop},f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(f,g){e=f,this.config=g,e.$render=function(){d.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){d.itemsPerPage=parseInt(b,10),a.totalPages=d.calculateTotalPages()}):this.itemsPerPage=g.itemsPerPage},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(e.$viewValue,10)||1},a.selectPage=function(b){a.page!==b&&b>0&&b<=a.totalPages&&(e.$setViewValue(b),e.$render())},a.getText=function(b){return a[b+"Text"]||d.config[b+"Text"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages},a.$watch("totalItems",function(){a.totalPages=d.calculateTotalPages()}),a.$watch("totalPages",function(b){f(a.$parent,b),a.page>b?a.selectPage(b):e.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(a,b){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(c,d,e,f){function g(a,b,c){return{number:a,text:b,active:c}}function h(a,b){var c=[],d=1,e=b,f=angular.isDefined(k)&&b>k;f&&(l?(d=Math.max(a-Math.floor(k/2),1),e=d+k-1,e>b&&(e=b,d=e-k+1)):(d=(Math.ceil(a/k)-1)*k+1,e=Math.min(d+k-1,b)));for(var h=d;e>=h;h++){var i=g(h,h,h===a);c.push(i)}if(f&&!l){if(d>1){var j=g(d-1,"...",!1);c.unshift(j)}if(b>e){var m=g(e+1,"...",!1);c.push(m)}}return c}var i=f[0],j=f[1];if(j){var k=angular.isDefined(e.maxSize)?c.$parent.$eval(e.maxSize):b.maxSize,l=angular.isDefined(e.rotate)?c.$parent.$eval(e.rotate):b.rotate;c.boundaryLinks=angular.isDefined(e.boundaryLinks)?c.$parent.$eval(e.boundaryLinks):b.boundaryLinks,c.directionLinks=angular.isDefined(e.directionLinks)?c.$parent.$eval(e.directionLinks):b.directionLinks,i.init(j,b),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){k=parseInt(a,10),i.render() -});var m=i.render;i.render=function(){m(),c.page>0&&c.page<=c.totalPages&&(c.pages=h(c.page,c.totalPages))}}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(a){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&(b.align=angular.isDefined(d.align)?b.$parent.$eval(d.align):a.align,f.init(g,a))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",animation:!0,popupDelay:0},c={mouseenter:"mouseleave",click:"click",focus:"blur"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$document","$position","$interpolate",function(e,f,g,h,i,j){return function(e,k,l){function m(a){var b=a||n.trigger||l,d=c[b]||b;return{show:b,hide:d}}var n=angular.extend({},b,d),o=a(e),p=j.startSymbol(),q=j.endSymbol(),r="
';return{restrict:"EA",compile:function(){var a=f(r);return function(b,c,d){function f(){D.isOpen?l():j()}function j(){(!C||b.$eval(d[k+"Enable"]))&&(s(),D.popupDelay?z||(z=g(o,D.popupDelay,!1),z.then(function(a){a()})):o()())}function l(){b.$apply(function(){p()})}function o(){return z=null,y&&(g.cancel(y),y=null),D.content?(q(),w.css({top:0,left:0,display:"block"}),D.$digest(),E(),D.isOpen=!0,D.$digest(),E):angular.noop}function p(){D.isOpen=!1,g.cancel(z),z=null,D.animation?y||(y=g(r,500)):r()}function q(){w&&r(),x=D.$new(),w=a(x,function(a){A?h.find("body").append(a):c.after(a)})}function r(){y=null,w&&(w.remove(),w=null),x&&(x.$destroy(),x=null)}function s(){t(),u()}function t(){var a=d[k+"Placement"];D.placement=angular.isDefined(a)?a:n.placement}function u(){var a=d[k+"PopupDelay"],b=parseInt(a,10);D.popupDelay=isNaN(b)?n.popupDelay:b}function v(){var a=d[k+"Trigger"];F(),B=m(a),B.show===B.hide?c.bind(B.show,f):(c.bind(B.show,j),c.bind(B.hide,l))}var w,x,y,z,A=angular.isDefined(n.appendToBody)?n.appendToBody:!1,B=m(void 0),C=angular.isDefined(d[k+"Enable"]),D=b.$new(!0),E=function(){var a=i.positionElements(c,w,D.placement,A);a.top+="px",a.left+="px",w.css(a)};D.isOpen=!1,d.$observe(e,function(a){D.content=a,!a&&D.isOpen&&p()}),d.$observe(k+"Title",function(a){D.title=a});var F=function(){c.unbind(B.show,j),c.unbind(B.hide,l)};v();var G=b.$eval(d[k+"Animation"]);D.animation=angular.isDefined(G)?!!G:n.animation;var H=b.$eval(d[k+"AppendToBody"]);A=angular.isDefined(H)?H:A,A&&b.$on("$locationChangeSuccess",function(){D.isOpen&&p()}),b.$on("$destroy",function(){g.cancel(y),g.cancel(z),F(),r(),D=null})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(a){return a("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(a){return a("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(a){return a("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max,this.addBar=function(b,c){e||c.css({transition:"none"}),this.bars.push(b),b.$watch("value",function(c){b.percent=+(100*c/a.max).toFixed(2)}),b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(f)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff},a[b]);return a},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect())}),a.active=!0,a.onSelect()},b.addTab=function(a){c.push(a),1===c.length?a.active=!0:a.active&&b.select(a)},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e==c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on("$destroy",function(){d=!0})}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("tab",["$parse",function(a){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(b,c,d){return function(b,c,e,f){b.$watch("active",function(a){a&&f.select(b)}),b.disabled=!1,e.disabled&&b.$parent.$watch(a(e.disabled),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},f.addTab(b),b.$on("$destroy",function(){f.removeTab(b)}),b.$transcludeFn=d}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}]).directive("tabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("tab-heading")||a.hasAttribute("data-tab-heading")||"tab-heading"===a.tagName.toLowerCase()||"data-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(b,c,d){var e=b.$eval(d.tabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(a,b,c,d,e,f){function g(){var b=parseInt(a.hours,10),c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===p[1]&&(b+=12)),b):void 0}function h(){var b=parseInt(a.minutes,10);return b>=0&&60>b?b:void 0}function i(a){return angular.isDefined(a)&&a.toString().length<2?"0"+a:a}function j(a){k(),o.$setViewValue(new Date(n)),l(a)}function k(){o.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1}function l(b){var c=n.getHours(),d=n.getMinutes();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:i(c),a.minutes="m"===b?d:i(d),a.meridian=n.getHours()<12?p[0]:p[1]}function m(a){var b=new Date(n.getTime()+6e4*a);n.setHours(b.getHours(),b.getMinutes()),j()}var n=new Date,o={$setViewValue:angular.noop},p=angular.isDefined(b.meridians)?a.$parent.$eval(b.meridians):f.meridians||e.DATETIME_FORMATS.AMPMS;this.init=function(c,d){o=c,o.$render=this.render;var e=d.eq(0),g=d.eq(1),h=angular.isDefined(b.mousewheel)?a.$parent.$eval(b.mousewheel):f.mousewheel;h&&this.setupMousewheelEvents(e,g),a.readonlyInput=angular.isDefined(b.readonlyInput)?a.$parent.$eval(b.readonlyInput):f.readonlyInput,this.setupInputEvents(e,g)};var q=f.hourStep;b.hourStep&&a.$parent.$watch(c(b.hourStep),function(a){q=parseInt(a,10)});var r=f.minuteStep;b.minuteStep&&a.$parent.$watch(c(b.minuteStep),function(a){r=parseInt(a,10)}),a.showMeridian=f.showMeridian,b.showMeridian&&a.$parent.$watch(c(b.showMeridian),function(b){if(a.showMeridian=!!b,o.$error.time){var c=g(),d=h();angular.isDefined(c)&&angular.isDefined(d)&&(n.setHours(c),j())}else l()}),this.setupMousewheelEvents=function(b,c){var d=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};b.bind("mousewheel wheel",function(b){a.$apply(d(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){a.$apply(d(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()})},this.setupInputEvents=function(b,c){if(a.readonlyInput)return a.updateHours=angular.noop,void(a.updateMinutes=angular.noop);var d=function(b,c){o.$setViewValue(null),o.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c)};a.updateHours=function(){var a=g();angular.isDefined(a)?(n.setHours(a),j("h")):d(!0)},b.bind("blur",function(){!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=i(a.hours)})}),a.updateMinutes=function(){var a=h();angular.isDefined(a)?(n.setMinutes(a),j("m")):d(void 0,!0)},c.bind("blur",function(){!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=i(a.minutes)})})},this.render=function(){var a=o.$modelValue?new Date(o.$modelValue):null;isNaN(a)?(o.$setValidity("time",!1),d.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(a&&(n=a),k(),l())},a.incrementHours=function(){m(60*q)},a.decrementHours=function(){m(60*-q)},a.incrementMinutes=function(){m(r)},a.decrementMinutes=function(){m(-r)},a.toggleMeridian=function(){m(720*(n.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(a){var b=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(a,b,c,d,e,f,g){var h=[9,13,27,38,40];return{require:"ngModel",link:function(i,j,k,l){var m,n=i.$eval(k.typeaheadMinLength)||1,o=i.$eval(k.typeaheadWaitMs)||0,p=i.$eval(k.typeaheadEditable)!==!1,q=b(k.typeaheadLoading).assign||angular.noop,r=b(k.typeaheadOnSelect),s=k.typeaheadInputFormatter?b(k.typeaheadInputFormatter):void 0,t=k.typeaheadAppendToBody?i.$eval(k.typeaheadAppendToBody):!1,u=i.$eval(k.typeaheadFocusFirst)!==!1,v=b(k.ngModel).assign,w=g.parse(k.typeahead),x=i.$new();i.$on("$destroy",function(){x.$destroy()});var y="typeahead-"+x.$id+"-"+Math.floor(1e4*Math.random());j.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":y});var z=angular.element("
");z.attr({id:y,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(k.typeaheadTemplateUrl)&&z.attr("template-url",k.typeaheadTemplateUrl);var A=function(){x.matches=[],x.activeIdx=-1,j.attr("aria-expanded",!1)},B=function(a){return y+"-option-"+a};x.$watch("activeIdx",function(a){0>a?j.removeAttr("aria-activedescendant"):j.attr("aria-activedescendant",B(a))});var C=function(a){var b={$viewValue:a};q(i,!0),c.when(w.source(i,b)).then(function(c){var d=a===l.$viewValue;if(d&&m)if(c.length>0){x.activeIdx=u?0:-1,x.matches.length=0;for(var e=0;e=n?o>0?(F(),E(a)):C(a):(q(i,!1),F(),A()),p?a:a?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),a)}),l.$formatters.push(function(a){var b,c,d={};return s?(d.$model=a,s(i,d)):(d[w.itemName]=a,b=w.viewMapper(i,d),d[w.itemName]=void 0,c=w.viewMapper(i,d),b!==c?b:a)}),x.select=function(a){var b,c,e={};e[w.itemName]=c=x.matches[a].model,b=w.modelMapper(i,e),v(i,b),l.$setValidity("editable",!0),r(i,{$item:c,$model:b,$label:w.viewMapper(i,e)}),A(),d(function(){j[0].focus()},0,!1)},j.bind("keydown",function(a){0!==x.matches.length&&-1!==h.indexOf(a.which)&&(-1!=x.activeIdx||13!==a.which&&9!==a.which)&&(a.preventDefault(),40===a.which?(x.activeIdx=(x.activeIdx+1)%x.matches.length,x.$digest()):38===a.which?(x.activeIdx=(x.activeIdx>0?x.activeIdx:x.matches.length)-1,x.$digest()):13===a.which||9===a.which?x.$apply(function(){x.select(x.activeIdx)}):27===a.which&&(a.stopPropagation(),A(),x.$digest()))}),j.bind("blur",function(){m=!1});var G=function(a){j[0]!==a.target&&(A(),x.$digest())};e.bind("click",G),i.$on("$destroy",function(){e.unbind("click",G),t&&H.remove()});var H=a(z)(x);t?e.find("body").append(H):j.after(H)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(a,b,c,d){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(e,f,g){var h=d(g.templateUrl)(e.$parent)||"template/typeahead/typeahead-match.html";a.get(h,{cache:b}).success(function(a){f.replaceWith(c(a.trim())(e))})}}}]).filter("typeaheadHighlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c?(""+b).replace(new RegExp(a(c),"gi"),"$&"):b}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion-group.html",'
\n
\n

\n {{heading}}\n

\n
\n
\n
\n
\n
\n')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion.html",'
')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("template/alert/alert.html",'\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("template/carousel/carousel.html",'\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("template/carousel/slide.html","
\n")}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/datepicker.html",'
\n \n \n \n
')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/day.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{label.abbr}}
{{ weekNumbers[$index] }}\n \n
\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/month.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/popup.html",'\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/year.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("template/modal/backdrop.html",'\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(a){a.put("template/modal/window.html",'')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pager.html",'')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pagination.html",'')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("template/popover/popover.html",'
\n
\n\n
\n

\n
\n
\n
\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/bar.html",'
')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progress.html",'
')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progressbar.html",'
\n
\n
')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("template/rating/rating.html",'\n \n ({{ $index < value ? \'*\' : \' \' }})\n \n')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tab.html",'
  • \n {{heading}}\n
  • \n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset.html",'
    \n \n
    \n
    \n
    \n
    \n
    \n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     
    \n \n :\n \n
     
    \n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-match.html",'') -}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-popup.html",'\n')}]); \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/angular-ui-codemirror/ui-codemirror.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/angular-ui-codemirror/ui-codemirror.min.js deleted file mode 100644 index aaa8fe8..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/angular-ui-codemirror/ui-codemirror.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * angular-ui-codemirror - This directive allows you to add CodeMirror to your textarea elements. - * @version v0.2.3 - 2015-01-27 - * @link http://angular-ui.github.com - * @license MIT - */ -"use strict";function uiCodemirrorDirective(a,b){function c(a,c,h,i){var j=angular.extend({value:c.text()},b.codemirror||{},a.$eval(h.uiCodemirror),a.$eval(h.uiCodemirrorOpts)),k=d(c,j);e(k,h.uiCodemirror||h.uiCodemirrorOpts,a),f(k,i,a),g(k,h.uiRefresh,a),a.$on("CodeMirror",function(a,b){if(!angular.isFunction(b))throw new Error("the CodeMirror event requires a callback function");b(k)}),angular.isFunction(j.onLoad)&&j.onLoad(k)}function d(a,b){var c;return"TEXTAREA"===a[0].tagName?c=window.CodeMirror.fromTextArea(a[0],b):(a.html(""),c=new window.CodeMirror(function(b){a.append(b)},b)),c}function e(a,b,c){function d(b,c){angular.isObject(b)&&e.forEach(function(d){if(b.hasOwnProperty(d)){if(c&&b[d]===c[d])return;a.setOption(d,b[d])}})}if(b){var e=Object.keys(window.CodeMirror.defaults);c.$watch(b,d,!0)}}function f(a,b,c){b&&(b.$formatters.push(function(a){if(angular.isUndefined(a)||null===a)return"";if(angular.isObject(a)||angular.isArray(a))throw new Error("ui-codemirror cannot use an object or an array as a model");return a}),b.$render=function(){var c=b.$viewValue||"";a.setValue(c)},a.on("change",function(a){var d=a.getValue();d!==b.$viewValue&&c.$evalAsync(function(){b.$setViewValue(d)})}))}function g(b,c,d){c&&d.$watch(c,function(c,d){c!==d&&a(function(){b.refresh()})})}return{restrict:"EA",require:"?ngModel",compile:function(){if(angular.isUndefined(window.CodeMirror))throw new Error("ui-codemirror need CodeMirror to work... (o rly?)");return c}}}angular.module("ui.codemirror",[]).constant("uiCodemirrorConfig",{}).directive("uiCodemirror",uiCodemirrorDirective),uiCodemirrorDirective.$inject=["$timeout","uiCodemirrorConfig"]; \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/angular/angular.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/angular/angular.min.js deleted file mode 100644 index 8dcf6e0..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/angular/angular.min.js +++ /dev/null @@ -1,253 +0,0 @@ -/* - AngularJS v1.3.20 - (c) 2010-2014 Google, Inc. http://angularjs.org - License: MIT -*/ -(function(R,W,u){'use strict';function S(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.20/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===bb?K(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(c)}}function qc(b){try{return decodeURIComponent(b)}catch(a){}} -function rc(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=qc(c[0]),y(d)&&(b=y(c[1])?qc(c[1]):!0,sc.call(a,d)?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Pb(b){var a=[];r(b,function(b,d){H(b)?r(b,function(b){a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))}):a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))});return a.length?a.join("&"):""}function sb(b){return Ea(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ea(b,a){return encodeURIComponent(b).replace(/%40/gi, -"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Id(b,a){var c,d,e=tb.length;b=B(b);for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=cb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", -d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;R&&e.test(R.name)&&(c.debugInfoEnabled=!0,R.name=R.name.replace(e,""));if(R&&!f.test(R.name))return d();R.name=R.name.replace(f,"");ca.resumeBootstrap=function(b){r(b,function(b){a.push(b)});return d()};z(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()}function Kd(){R.name="NG_ENABLE_DEBUG_INFO!"+R.name;R.location.reload()}function Ld(b){b=ca.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")} -function uc(b,a){a=a||"_";return b.replace(Md,function(b,d){return(d?a:"")+b.toLowerCase()})}function Nd(){var b;vc||((ta=R.jQuery)&&ta.fn.on?(B=ta,w(ta.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=ta.cleanData,ta.cleanData=function(a){var c;if(Qb)Qb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=ta._data(e,"events"))&&c.$destroy&&ta(e).triggerHandler("$destroy");b(a)}):B=T,ca.element=B,vc=!0)}function Rb(b,a,c){if(!b)throw Ja("areq", -a||"?",c||"required");return b}function La(b,a,c){c&&H(b)&&(b=b[b.length-1]);Rb(z(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ma(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function wc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Za(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)}); -return e}function T(b){if(b instanceof T)return b;var a;x(b)&&(b=N(b),a=!0);if(!(this instanceof T)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new T(b)}if(a){a=W;var c;b=(c=gf.exec(b))?[a.createElement(c[1])]:(c=Gc(b,a))?c.childNodes:[]}Hc(this,b)}function Ub(b){return b.cloneNode(!0)}function xb(b,a){a||yb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d 4096 bytes)!"));else{if(p.cookie!==y)for(y=p.cookie,d=y.split("; "),fa={},f=0;fk&&this.remove(q.key),b},get:function(a){if(k").parent()[0])});var f=O(a,b,a,c,d,e);G.$$addScopeClass(a); -var g=null;return function(b,c,d){Rb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("
    ").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);G.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function O(a,b,c,d,e,f){function g(a, -c,d,e){var f,l,k,q,p,s,t;if(m)for(t=Array(c.length),q=0;qJ.priority)break;if(V=J.scope)J.templateUrl||(L(V)?(Oa("new/isolated scope",Q||C,J,w),Q=J):Oa("new/isolated scope",Q,J,w)),C=C||J;da=J.name;!J.templateUrl&&J.controller&&(V=J.controller,O=O||{},Oa("'"+da+"' controller",O[da],J,w),O[da]=J);if(V=J.transclude)la=!0,J.$$tlb||(Oa("transclusion",fa,J,w),fa=J),"element"==V?(A=!0,E=J.priority,V=w,w=e.$$element=B(W.createComment(" "+da+": "+ -e[da]+" ")),d=w[0],T(g,$a.call(V,0),d),hb=G(V,f,E,l&&l.name,{nonTlbTranscludeDirective:fa})):(V=B(Ub(d)).contents(),w.empty(),hb=G(V,f));if(J.template)if(D=!0,Oa("template",na,J,w),na=J,V=z(J.template)?J.template(w,e):J.template,V=Sc(V),J.replace){l=J;V=Sb.test(V)?Tc(Xb(J.templateNamespace,N(V))):[];d=V[0];if(1!=V.length||d.nodeType!==qa)throw ma("tplrt",da,"");T(g,w,d);R={$attr:{}};V=X(d,[],R);var aa=a.splice(K+1,a.length-(K+1));Q&&y(V);a=a.concat(V).concat(aa);S(e,R);R=a.length}else w.html(V);if(J.templateUrl)D= -!0,Oa("template",na,J,w),na=J,J.replace&&(l=J),I=of(a.splice(K,a.length-K),w,e,g,la&&hb,k,p,{controllerDirectives:O,newIsolateScopeDirective:Q,templateDirective:na,nonTlbTranscludeDirective:fa}),R=a.length;else if(J.compile)try{za=J.compile(w,e,hb),z(za)?s(null,za,Pa,U):za&&s(za.pre,za.post,Pa,U)}catch(pf){c(pf,xa(w))}J.terminal&&(I.terminal=!0,E=Math.max(E,J.priority))}I.scope=C&&!0===C.scope;I.transcludeOnThisElement=la;I.elementTranscludeOnThisElement=A;I.templateOnThisElement=D;I.transclude=hb; -m.hasElementTranscludeDirective=A;return I}function y(a){for(var b=0,c=a.length;bq.priority)&&-1!=q.restrict.indexOf(f)&&(h&&(q=Ob(q,{$$start:h,$$end:k})),b.push(q),l=q)}catch(I){c(I)}}return l}function D(b){if(d.hasOwnProperty(b))for(var c=a.get(b+"Directive"),e=0,f=c.length;e"+b+"";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"== -b)return $.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return $.RESOURCE_URL}function Pa(a,c,d,e,f){var h=R(a,e);f=g[e]||f;var k=b(d,!0,h,f);if(k){if("multiple"===e&&"select"===wa(a))throw ma("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers={});if(l.test(e))throw ma("nodomevents");var p=g[e];p!==d&&(k=p&&b(p,!0,h,f),d=p);k&&(g[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(g.$$observers&&g.$$observers[e].$$scope|| -a).$watch(k,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e,a)}))}}}})}}function T(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,l;if(a)for(g=0,l=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&qf.call(b,a,1);return b}function Fe(){var b={},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ma(a,"controller");L(a)?w(b,a):b[a]=c};this.allowGlobals=function(){a= -!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!L(a.$scope))throw S("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var n,p,q;l=!0===l;k&&x(k)&&(q=k);if(x(g)){k=g.match(c);if(!k)throw rf("ctrlfmt",g);p=k[1];q=q||k[3];g=b.hasOwnProperty(p)?b[p]:wc(h.$scope,p,!0)||(a?wc(e,p,!0):u);La(g,p,!0)}if(l)return l=(H(g)?g[g.length-1]:g).prototype,n=Object.create(l||null),q&&f(h,q,n,p||g.name),w(function(){d.invoke(g,n,h,p);return n},{instance:n,identifier:q}); -n=d.instantiate(g,h,p);q&&f(h,q,n,p||g.name);return n}}]}function Ge(){this.$get=["$window",function(b){return B(b.document)}]}function He(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Zb(b,a){if(x(b)){var c=b.replace(sf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(Vc))||(d=(d=c.match(tf))&&uf[d[0]].test(c));d&&(b=pc(c))}}return b}function Wc(b){var a=ja(),c,d,e;if(!b)return a;r(b.split("\n"),function(b){e=b.indexOf(":");c=K(N(b.substr(0, -e)));d=N(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function Xc(b){var a=L(b)?b:u;return function(c){a||(a=Wc(b));return c?(c=a[K(c)],void 0===c&&(c=null),c):a}}function Yc(b,a,c,d){if(z(d))return d(b,a,c);r(d,function(d){b=d(b,a,c)});return b}function Ke(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return L(a)&&"[object File]"!==Ca.call(a)&&"[object Blob]"!==Ca.call(a)&&"[object FormData]"!==Ca.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"}, -post:sa($b),put:sa($b),patch:sa($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=w({},a);b.data=a.data?Yc(a.data,a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:h.reject(b)}function d(a){var b,c={};r(a,function(a,d){z(a)?(b= -a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ca.isObject(a))throw S("$http")("badreq",a);var e=w({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=w({},a.headers),f,g,c=w({},c.common,c[K(a.method)]);a:for(f in c){a=K(f);for(g in e)if(K(g)===a)continue a;e[f]=c[f]}return d(e)}(a);e.method=vb(e.method);var f=[function(a){var d=a.headers,e=Yc(a.data,Xc(d),u,a.transformRequest);D(e)&&r(d,function(a,b){"content-type"===K(b)&& -delete d[b]});D(a.withCredentials)&&!D(b.withCredentials)&&(a.withCredentials=b.withCredentials);return n(a,e).then(c,c)},u],g=h.when(e);for(r(t,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var l=f.shift(),g=g.then(a,l)}g.success=function(a){La(a,"fn");g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error=function(a){La(a,"fn");g.then(null,function(b){a(b.data, -b.status,b.headers,e)});return g};return g}function n(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}E&&(200<=b&&300>b?E.put(Q,[b,c,Wc(d),e]):E.remove(Q));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?I.resolve:I.reject)({data:a,status:b,headers:Xc(d),config:c,statusText:e})}function n(a){m(a.data,a.status,sa(a.headers()),a.statusText)}function t(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a,1)}var I=h.defer(),M=I.promise, -E,G,O=c.headers,Q=p(c.url,c.params);k.pendingRequests.push(c);M.then(t,t);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(E=L(c.cache)?c.cache:L(b.cache)?b.cache:q);E&&(G=E.get(Q),y(G)?G&&z(G.then)?G.then(n,n):H(G)?m(G[1],G[0],sa(G[2]),G[3]):m(G,200,{},"OK"):E.put(Q,M));D(G)&&((G=Zc(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:u)&&(O[c.xsrfHeaderName||b.xsrfHeaderName]=G),d(c.method,Q,f,l,O,c.timeout,c.withCredentials,c.responseType));return M}function p(a,b){if(!b)return a; -var c=[];Ed(b,function(a,b){null===a||D(a)||(H(a)||(a=[a]),r(a,function(a){L(a)&&(a=ha(a)?a.toISOString():ab(a));c.push(Ea(b)+"="+Ea(a))}))});0=l&&(s.resolve(q),p(F.$$intervalId),delete f[F.$$intervalId]);t||b.$apply()},h);f[F.$$intervalId]=s;return F}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0): -!1};return e}]}function Rd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), -DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}}function bc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=sb(b[a]); -return b.join("/")}function $c(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||xf[c.protocol]||null}function ad(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=rc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ua(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ga(b){var a=b.indexOf("#"); -return-1==a?b:b.substr(0,a)}function Gb(b){return b.replace(/(#.+)|#$/,"$1")}function cc(b,a,c){this.$$html5=!0;c=c||"";$c(b,this);this.$$parse=function(b){var c=ua(a,b);if(!x(c))throw Hb("ipthprfx",b,a);ad(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)), -!0;var f,g;(f=ua(b,d))!==u?(g=f,g=(f=ua(c,f))!==u?a+(ua("/",f)||f):b+g):(f=ua(a,d))!==u?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function dc(b,a,c){$c(b,this);this.$$parse=function(d){var e=ua(b,d)||ua(a,d),f;D(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",D(e)&&(b=d,this.replace())):(f=ua(c,e),D(f)&&(f=e));ad(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a= -Pb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ga(b)==Ga(a)?(this.$$parse(a),!0):!1}}function bd(b,a,c){this.$$html5=!0;dc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ga(d)?f=d:(g=ua(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search), -e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Ib(b){return function(){return this[b]}}function cd(b,a){return function(c){if(D(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Me(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return Xa(b)?(a.enabled=b,this):L(b)?(Xa(b.enabled)&&(a.enabled=b.enabled),Xa(b.requireBase)&& -(a.requireBase=b.requireBase),Xa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),q;if(a.enabled){if(!n&&a.requireBase)throw Hb("nobase");q=p.substring(0,p.indexOf("/", -p.indexOf("//")+2))+(n||"/");n=e.history?cc:bd}else q=Ga(p),n=dc;var t=q.substr(0,Ga(q).lastIndexOf("/")+1);k=new n(q,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state();var s=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var l=e.prop("href"),h=e.attr("href")||e.attr("xlink:href");L(l)&&"[object SVGAnimatedString]"===l.toString()&&(l= -Aa(l.animVal).href);s.test(l)||!l||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(l,h)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Gb(k.absUrl())!=Gb(p)&&d.url(k.absUrl(),!0);var F=!0;d.onUrlChange(function(a,b){D(ua(t,a))?g.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d, -!1,e)):(F=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Gb(d.url()),b=Gb(k.absUrl()),f=d.state(),g=k.$$replace,q=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(F||q)F=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(q&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Ne(){var b=!0,a=this;this.debugEnabled=function(a){return y(a)?(b= -a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"), -debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function va(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ga("isecfld",a);return b}function dd(b,a){b+="";if(!x(b))throw ga("iseccst",a);return b}function oa(b,a){if(b){if(b.constructor===b)throw ga("isecfn",a);if(b.window===b)throw ga("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ga("isecdom",a);if(b===Object)throw ga("isecobj", -a);}return b}function ec(b){return b.constant}function jb(b,a,c,d,e){oa(b,e);oa(a,e);c=c.split(".");for(var f,g=0;1h?ed(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=ed(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=u,a=f;while(e< -h);return f};else{var l="";d&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var k=d;r(g,function(a,b){va(a,c);var e=(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a;if(d||Qa(a))e="eso("+e+", fe)",k=!0;l+="if(s == null) return undefined;\ns="+e+";\n"});l+="return s;";a=new Function("s","l","eso","fe",l);a.toString=ea(l);k&&(a=yf(a,c));f=a}f.sharedGetter=!0;f.assign=function(a,c,d){return jb(a,d,b,c,b)};return e[b]=f}function fc(b){return z(b.valueOf)?b.valueOf():Cf.call(b)}function Oe(){var b=ja(), -a=ja();this.$get=["$filter","$sniffer",function(c,d){function e(a){var b=a;a.sharedGetter&&(b=function(b,c){return a(b,c)},b.literal=a.literal,b.constant=a.constant,b.assign=a.assign);return b}function f(a,b){for(var c=0,d=a.length;c=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in k++,f)e.hasOwnProperty(b)||(t--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1r&&(u=4-r,P[u]||(P[u]=[]),P[u].push({msg:z(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){n=!1;break a}}catch(D){g(D)}if(!(k=F.$$childHead||F!==this&&F.$$nextSibling))for(;F!==this&&!(k=F.$$nextSibling);)F=F.$parent}while(F=k);if((n||m.length)&&!r--)throw v.$$phase=null,c("infdig",a,P);}while(n||m.length);for(v.$$phase=null;C.length;)try{C.shift()()}catch(B){g(B)}}, -$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==v){for(var b in this.$$listenerCount)q(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync= -this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){v.$$phase||m.length||l.defer(function(){m.length&&v.$digest()});m.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){C.push(a)},$apply:function(a){try{return p("$apply"),this.$eval(a)}catch(b){g(b)}finally{v.$$phase= -null;try{v.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);F()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,q(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,l={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){l.defaultPrevented= -!0},defaultPrevented:!1},h=Za([l],arguments,1),k,q;do{d=e.$$listeners[a]||c;l.currentScope=e;k=0;for(q=d.length;kRa)throw Ba("iequirks");var d=sa(pa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=ra);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;r(pa,function(a,b){var c=K(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+ -c)]=function(b){return g(a,b)}});return d}]}function Ue(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(K((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=h.exec(p)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);n=!!("animation"in l||g+"Animation"in -l);!d||k&&n||(k=x(f.body.style.webkitTransition),n=x(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Ra)return!1;if(D(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:db(),vendorPrefix:g,transitions:k,animations:n,android:d}}]}function We(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;x(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h= -a.defaults&&a.defaults.transformResponse;H(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!g)throw ma("tpload",f);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function Xe(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var d= -ca.element(a).data("$binding");d&&r(d,function(d){c?(new RegExp("(^|\\s)"+gd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var n=g.match(/([\d\.]+)e(-?)(\d+)/);n&&"-"==n[2]&&n[3]>e+1?b=0:(h=g,k=!0)}if(k)0b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(od)[1]||"").length;D(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(od),k=g[0],g=g[1]||"",p=0,q=a.lgSize, -t=a.gSize;if(k.length>=q+t)for(p=k.length-q,n=0;nb&&(d="-",b=-b);for(b=""+b;b.length-c)e+= -c;0===e&&-12==c&&(e=12);return Jb(e,a,d)}}function Kb(b,a){return function(c,d){var e=c["get"+b](),f=vb(a?"SHORT"+b:b);return d[f][e]}}function pd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function qd(b){return function(a){var c=pd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Jb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function kd(b){function a(a){var b;if(b=a.match(c)){a= -new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;x(c)&&(c=Kf.test(c)? -aa(c):a(c));Y(c)&&(c=new Date(c));if(!ha(c))return c;for(;e;)(k=Lf.exec(e))?(h=Za(h,k,1),e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));r(h,function(a){l=Mf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ff(){return function(b,a){D(a)&&(a=2);return ab(b,a)}}function Gf(){return function(b,a){Y(b)&&(b=b.toString());return H(b)||x(b)?(a=Infinity===Math.abs(Number(a))?Number(a): -aa(a))?0b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Nb(b,a){return function(c,d){var e,f;if(ha(c))return c;if(x(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Nf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1, -dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(b,c){c=r};g.$observe("min",function(a){r=q(a);h.$validate()})}if(y(g.max)||g.ngMax){var v; -h.$validators.max=function(a){return!p(a)||D(v)||c(a)<=v};g.$observe("max",function(a){v=q(a);h.$validate()})}}}function td(b,a,c,d){(d.$$hasNativeValidators=L(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?u:b})}function ud(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw nb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,ef=/<([\w:]+)/,ff=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ka={option:[1,'"],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "], -td:[3,"","
    "],_default:[0,"",""]};ka.optgroup=ka.option;ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead;ka.th=ka.td;var Ka=T.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),T(R).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:Pf,sort:[].sort, -splice:[].splice},Fb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){Fb[K(b)]=b});var Nc={};r("input select option textarea button form details".split(" "),function(b){Nc[b]=!0});var Oc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Vb,removeData:yb},function(b,a){T[a]=b});r({data:Vb,inheritedData:Eb,scope:function(b){return B.data(b,"$scope")||Eb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b, -"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Jc,injector:function(b){return Eb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Bb,css:function(b,a,c){a=fb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==bb&&2!==d&&8!==d)if(d=K(a),Fb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:u;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b= -b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(D(b)){var d=a.nodeType;return d===qa||d===bb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(D(a)){if(b.multiple&&"select"===wa(b)){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(D(a))return b.innerHTML;xb(b,!0);b.innerHTML=a},empty:Kc},function(b,a){T.prototype[a]= -function(a,d){var e,f,g=this.length;if(b!==Kc&&(2==b.length&&b!==Bb&&b!==Jc?a:d)===u){if(L(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a, -c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Zf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"=== -typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ga("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.indexa){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a, -c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw ga("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=qb[a];return w(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=qb[c];return w(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a= -this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return zf(a,this.options,this.text)},constant:function(){var a=this.consume().value;return w(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a}, -additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(kb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier(); -return w(function(d,e,f){d=f||a(d,e);return null==d?u:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return w(function(e,f){var g=a(e,f),h=dd(d(e,f),c);va(h,c);return g?oa(g[h],c):u},{assign:function(e,f,g){var h=va(dd(d(e,g),c),c),l=oa(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression()); -while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?u:g,k=a(g,h,l)||A;if(f)for(var n=d.length;n--;)f[n]=oa(d[n](g,h),e);oa(l,e);if(k){if(k.constructor===k)throw ga("isecfn",e);if(k===Wf||k===Xf||k===Yf)throw ga("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return oa(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(",")) -}this.consume("]");return w(function(c,d){for(var e=[],f=0,g=a.length;fa.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Jb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Lf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, -Kf=/^\-?\d+$/;kd.$inject=["$locale"];var Hf=ea(K),If=ea(vb);md.$inject=["$parse"];var Td=ea({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Ca.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),wb={};r(Fb,function(a,c){if("multiple"!=a){var d=ya("ng-"+c);wb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d], -function(a){g.$set(c,!!a)})}}}}});r(Oc,function(a,c){wb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(Of))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});r(["src","srcset","href"],function(a){var c=ya("ng-"+a);wb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Ca.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href", -g=null);f.$observe(c,function(c){c?(f.$set(h,c),Ra&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a,c){a.$name=c},$removeControl:A,$setValidity:A,$setDirty:A,$setPristine:A,$setSubmitted:A};rd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:rd,compile:function(d,e){d.addClass(Sa).addClass(ob);var f=e.name?"name":a&&e.ngForm?"ngForm": -!1;return{pre:function(a,d,e,k){if(!("action"in e)){var n=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var p=k.$$parentForm;f&&(jb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(jb(a,null,k.$name,u,k.$name),p.$$renameControl(k,c),jb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){p.$removeControl(k); -f&&jb(a,null,e[f],u,k.$name);w(k,Lb)})}}}}}]},Ud=yd(),ge=yd(!0),Nf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,$f=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ag=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,bg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,zd=/^(\d{4})-(\d{2})-(\d{2})$/,Ad=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/,Bd=/^(\d{4})-(\d\d)$/, -Cd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Dd={text:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e)},date:mb("date",zd,Nb(zd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":mb("datetimelocal",Ad,Nb(Ad,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:mb("time",Cd,Nb(Cd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:mb("week",kc,function(a,c){if(ha(a))return a;if(x(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=pd(e),f=7*(f-1);c&&(d=c.getHours(),g= -c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:mb("month",Bd,Nb(Bd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){td(a,c,d,e);lb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:bg.test(a)?parseFloat(a):u});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Y(a))throw nb("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)|| -D(h)||a>=h};d.$observe("min",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));h=Y(a)&&!isNaN(a)?a:u;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||D(l)||a<=l};d.$observe("max",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));l=Y(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||$f.test(d)}},email:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e); -e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||ag.test(d)}},radio:function(a,c,d,e){D(d.name)&&c.attr("name",++rb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),n=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&& -a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ia(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:A,button:A,submit:A,reset:A,file:A},yc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[K(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],cg=/^(true|false|\d+)$/,ye=function(){return{restrict:"A",priority:100,compile:function(a, -c){return cg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate)); -c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],$d=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],xe=ea({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}), -be=jc("",!0),de=jc("Odd",0),ce=jc("Even",1),ee=Ia({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Dc={},dg={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Dc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h= -d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};dg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k= -ub(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,p,q,r){var s=0,u,v,m,C=function(){v&&(v.remove(),v=null);u&&(u.$destroy(),u=null);m&&(d.leave(m).then(function(){v=null}),v=m,m=null)};e.$watch(g,function(g){var p=function(){!y(l)||l&&!e.$eval(l)|| -c()},M=++s;g?(a(g,!0).then(function(a){if(M===s){var c=e.$new();q.template=a;a=r(c,function(a){C();d.enter(a,null,f).then(p)});u=c;m=a;u.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){M===s&&(C(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(C(),q.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Gc(f.template,W).childNodes)(c,function(a){d.append(a)}, -{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ke=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?N(f):f;e.$parsers.push(function(a){if(!D(a)){var c=[];a&&r(a.split(h),function(a){a&&c.push(g?N(a):a)});return c}});e.$formatters.push(function(a){return H(a)?a.join(f):u});e.$isEmpty=function(a){return!a|| -!a.length}}}},ob="ng-valid",vd="ng-invalid",Sa="ng-pristine",Mb="ng-dirty",xd="ng-pending",nb=S("ngModel"),eg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1; -this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=n(d.name||"",!1)(a);var p=f(d.ngModel),q=p.assign,t=p,s=q,F=null,v,m=this;this.$$setOptions=function(a){if((m.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);z(d)&&(d=c(a));return d};s=function(a,c){z(p(a))?g(a,{$$$p:m.$modelValue}):q(a,m.$modelValue)}}else if(!p.assign)throw nb("nonassign",d.ngModel,xa(e));};this.$render=A;this.$isEmpty=function(a){return D(a)|| -""===a||null===a||a!==a};var C=e.inheritedData("$formController")||Lb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:C,$animate:g});this.$setPristine=function(){m.$dirty=!1;m.$pristine=!0;g.removeClass(e,Mb);g.addClass(e,Sa)};this.$setDirty=function(){m.$dirty=!0;m.$pristine=!1;g.removeClass(e,Sa);g.addClass(e,Mb);C.$setDirty()};this.$setUntouched=function(){m.$touched=!1;m.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched= -function(){m.$touched=!0;m.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(F);m.$viewValue=m.$$lastCommittedViewValue;m.$render()};this.$validate=function(){if(!Y(m.$modelValue)||!isNaN(m.$modelValue)){var a=m.$$rawModelValue,c=m.$valid,d=m.$modelValue,e=m.$options&&m.$options.allowInvalid;m.$$runValidators(a,m.$$lastCommittedViewValue,function(f){e||c===f||(m.$modelValue=f?a:u,m.$modelValue!==d&&m.$$writeModelToScope())})}};this.$$runValidators= -function(a,c,d){function e(){var d=!0;r(m.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(r(m.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;r(m.$asyncValidators,function(f,h){var l=f(a,c);if(!l||!z(l.then))throw nb("$asyncValidators",l);g(h,u);d.push(l.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},A):h(!0)}function g(a,c){l===w&&m.$setValidity(a,c)}function h(a){l===w&&d(a)}w++;var l=w;(function(){var a= -m.$$parserName||"parse";if(v===u)g(a,null);else return v||(r(m.$validators,function(a,c){g(c,null)}),r(m.$asyncValidators,function(a,c){g(c,null)})),g(a,v),v;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=m.$viewValue;h.cancel(F);if(m.$$lastCommittedViewValue!==a||""===a&&m.$$hasNativeValidators)m.$$lastCommittedViewValue=a,m.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=m.$$lastCommittedViewValue;if(v=D(c)?u:!0)for(var d= -0;dE;)d=u.pop(),n(P,d.label,!1),d.element.remove()}for(;S.length>x;){k=S.pop();for(E=1;Ea&&q.removeOption(c)})}var v;if(!(v=s.match(d)))throw gg("iexp",s,xa(f));var z=c(v[2]||v[1]),A=v[4]||v[6],B=/ as /.test(v[0])&&v[1],x=B?c(B): -null,I=v[5],M=c(v[3]||""),E=c(v[2]?v[1]:A),L=c(v[7]),K=v[8]?c(v[8]):null,R={},S=[[{element:f,label:""}]],T={};w&&(a(w)(e),w.removeClass("ng-scope"),w.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=L(e)||[],c;if(t)c=[],r(f.val(),function(d){d=K?R[d]:d;c.push("?"===d?u:""===d?null:h(x?x:E,d,a[d]))});else{var d=K?R[f.val()]:f.val();c="?"===d?u:""===d?null:h(x?x:E,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(L,k);e.$watchCollection(function(){var a=L(e),c; -if(a&&H(a)){c=Array(a.length);for(var d=0,f=a.length;df||e.$isEmpty(c)||c.length<=f}}}}},Bc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength= -function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};R.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Nd(),Pd(ca),B(W).ready(function(){Jd(W,tc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document.head).prepend(''); -//# sourceMappingURL=angular.min.js.map diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/css/bootstrap.min.css b/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/css/bootstrap.min.css deleted file mode 100644 index fb90709..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/css/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;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,-webkit-box-shadow ease-in-out .15s;-o-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}.form-control: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)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-text{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-text{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-text{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-text,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-bs-toggle=buttons]>.btn input[type=checkbox],[data-bs-toggle=buttons]>.btn input[type=radio],[data-bs-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-bs-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-text,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-text,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-text,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-text,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-text,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-text,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-text,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-text,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-text,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-text:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-text,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-text{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-text.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-text.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-text:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-text:first-child{border-right:0}.input-group .form-control:last-child,.input-group-text:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-text:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-text,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953fff68df523aa7656497ee339d6026d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20127 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609ab6f21774de0cb7e01360095584f65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45404 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 G`u_lkUM?>H diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18028 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 diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/js/bootstrap.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/js/bootstrap.min.js deleted file mode 100644 index b0398d4..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/bootstrap/dist/js/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-bs-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-bs-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-bs-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-bs-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-bs-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-bs-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-bs-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-bs-toggle="collapse"][href="#'+b.id+'"],[data-bs-toggle="collapse"][data-bs-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-bs-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',function(d){var e=a(this);e.attr("data-bs-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-bs-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-bs-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-bs-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-bs-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-bs-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-bs-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-bs-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/addon/mode/overlay.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/addon/mode/overlay.js deleted file mode 100644 index e1b9ed3..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/addon/mode/overlay.js +++ /dev/null @@ -1,85 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Utility function that allows modes to be combined. The mode given -// as the base argument takes care of most of the normal mode -// functionality, but a second (typically simple) mode is used, which -// can override the style of text. Both modes get to parse all of the -// text, but when both assign a non-null style to a piece of code, the -// overlay wins, unless the combine argument was true and not overridden, -// or state.overlay.combineTokens was true, in which case the styles are -// combined. - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.overlayMode = function(base, overlay, combine) { - return { - startState: function() { - return { - base: CodeMirror.startState(base), - overlay: CodeMirror.startState(overlay), - basePos: 0, baseCur: null, - overlayPos: 0, overlayCur: null, - streamSeen: null - }; - }, - copyState: function(state) { - return { - base: CodeMirror.copyState(base, state.base), - overlay: CodeMirror.copyState(overlay, state.overlay), - basePos: state.basePos, baseCur: null, - overlayPos: state.overlayPos, overlayCur: null - }; - }, - - token: function(stream, state) { - if (stream != state.streamSeen || - Math.min(state.basePos, state.overlayPos) < stream.start) { - state.streamSeen = stream; - state.basePos = state.overlayPos = stream.start; - } - - if (stream.start == state.basePos) { - state.baseCur = base.token(stream, state.base); - state.basePos = stream.pos; - } - if (stream.start == state.overlayPos) { - stream.pos = stream.start; - state.overlayCur = overlay.token(stream, state.overlay); - state.overlayPos = stream.pos; - } - stream.pos = Math.min(state.basePos, state.overlayPos); - - // state.overlay.combineTokens always takes precedence over combine, - // unless set to null - if (state.overlayCur == null) return state.baseCur; - else if (state.baseCur != null && - state.overlay.combineTokens || - combine && state.overlay.combineTokens == null) - return state.baseCur + " " + state.overlayCur; - else return state.overlayCur; - }, - - indent: base.indent && function(state, textAfter) { - return base.indent(state.base, textAfter); - }, - electricChars: base.electricChars, - - innerMode: function(state) { return {state: state.base, mode: base}; }, - - blankLine: function(state) { - if (base.blankLine) base.blankLine(state.base); - if (overlay.blankLine) overlay.blankLine(state.overlay); - } - }; -}; - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.css b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.css deleted file mode 100644 index e2d4ec2..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.css +++ /dev/null @@ -1,318 +0,0 @@ -/* BASICS */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; -} -.CodeMirror-scroll { - /* Set scrolling behaviour here */ - overflow: auto; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap; -} -.CodeMirror-linenumbers {} -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.CodeMirror-guttermarker { color: black; } -.CodeMirror-guttermarker-subtle { color: #999; } - -/* CURSOR */ - -.CodeMirror div.CodeMirror-cursor { - border-left: 1px solid black; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} -.CodeMirror.cm-fat-cursor div.CodeMirror-cursor { - width: auto; - border: 0; - background: #7e7; -} -.CodeMirror.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1; -} - -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -@-moz-keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} -@-webkit-keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} -@keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} - -/* Can style cursor different in overwrite (non-insert) mode */ -div.CodeMirror-overwrite div.CodeMirror-cursor {} - -.cm-tab { display: inline-block; text-decoration: inherit; } - -.CodeMirror-ruler { - border-left: 1px solid #ccc; - position: absolute; -} - -/* DEFAULT THEME */ - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable, -.cm-s-default .cm-punctuation, -.cm-s-default .cm-property, -.cm-s-default .cm-operator {} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3 {color: #085;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} -.cm-strikethrough {text-decoration: line-through;} - -.cm-s-default .cm-error {color: #f00;} -.cm-invalidchar {color: #f00;} - -/* Default styles for common addons */ - -div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} -div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} -.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } -.CodeMirror-activeline-background {background: #e8f2ff;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - line-height: 1; - position: relative; - overflow: hidden; - background: white; - color: black; -} - -.CodeMirror-scroll { - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actuall scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none; -} -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; -} -.CodeMirror-gutter-filler { - left: 0; bottom: 0; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - padding-bottom: 30px; - z-index: 3; -} -.CodeMirror-gutter { - white-space: normal; - height: 100%; - -moz-box-sizing: content-box; - box-sizing: content-box; - padding-bottom: 30px; - margin-bottom: -32px; - display: inline-block; - /* Hack to make IE7 behave */ - *zoom:1; - *display:inline; -} -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - height: 100%; -} -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4; -} - -.CodeMirror-lines { - cursor: text; - min-height: 1px; /* prevents collapsing before first draw */ -} -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; -} -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; right: 0; top: 0; bottom: 0; - z-index: 0; -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - overflow: auto; -} - -.CodeMirror-widget {} - -.CodeMirror-wrap .CodeMirror-scroll { - overflow-x: hidden; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden; -} -.CodeMirror-measure pre { position: static; } - -.CodeMirror div.CodeMirror-cursor { - position: absolute; - border-right: none; - width: 0; -} - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3; -} -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } -.CodeMirror-crosshair { cursor: crosshair; } - -.cm-searching { - background: #ffa; - background: rgba(255, 255, 0, .4); -} - -/* IE7 hack to prevent it from returning funny offsetTops on the spans */ -.CodeMirror span { *vertical-align: text-bottom; } - -/* Used to force a border model for a node */ -.cm-force-border { padding-right: .1px; } - -@media print { - /* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursors { - visibility: hidden; - } -} - -/* See issue #2901 */ -.cm-tab-wrap-hack:after { content: ''; } - -/* Help users use markselection to safely style text background */ -span.CodeMirror-selectedtext { background: none; } diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.js deleted file mode 100644 index e6011f7..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/lib/codemirror.js +++ /dev/null @@ -1,7922 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// This is CodeMirror (http://codemirror.net), a code editor -// implemented in JavaScript on top of the browser's DOM. -// -// You can find some technical background for some of the code below -// at http://marijnhaverbeke.nl/blog/#cm-internals . - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - module.exports = mod(); - else if (typeof define == "function" && define.amd) // AMD - return define([], mod); - else // Plain browser env - this.CodeMirror = mod(); -})(function() { - "use strict"; - - // BROWSER SNIFFING - - // Kludges for bugs and behavior differences that can't be feature - // detected are enabled based on userAgent etc sniffing. - - var gecko = /gecko\/\d/i.test(navigator.userAgent); - // ie_uptoN means Internet Explorer version N or lower - var ie_upto10 = /MSIE \d/.test(navigator.userAgent); - var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent); - var ie = ie_upto10 || ie_11up; - var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]); - var webkit = /WebKit\//.test(navigator.userAgent); - var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(navigator.userAgent); - var chrome = /Chrome\//.test(navigator.userAgent); - var presto = /Opera\//.test(navigator.userAgent); - var safari = /Apple Computer/.test(navigator.vendor); - var khtml = /KHTML\//.test(navigator.userAgent); - var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent); - var phantom = /PhantomJS/.test(navigator.userAgent); - - var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); - // This is woefully incomplete. Suggestions for alternative methods welcome. - var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent); - var mac = ios || /Mac/.test(navigator.platform); - var windows = /win/i.test(navigator.platform); - - var presto_version = presto && navigator.userAgent.match(/Version\/(\d*\.\d*)/); - if (presto_version) presto_version = Number(presto_version[1]); - if (presto_version && presto_version >= 15) { presto = false; webkit = true; } - // Some browsers use the wrong event properties to signal cmd/ctrl on OS X - var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); - var captureRightClick = gecko || (ie && ie_version >= 9); - - // Optimize some code when these features are not used. - var sawReadOnlySpans = false, sawCollapsedSpans = false; - - // EDITOR CONSTRUCTOR - - // A CodeMirror instance represents an editor. This is the object - // that user code is usually dealing with. - - function CodeMirror(place, options) { - if (!(this instanceof CodeMirror)) return new CodeMirror(place, options); - - this.options = options = options ? copyObj(options) : {}; - // Determine effective options based on given values and defaults. - copyObj(defaults, options, false); - setGuttersForLineNumbers(options); - - var doc = options.value; - if (typeof doc == "string") doc = new Doc(doc, options.mode); - this.doc = doc; - - var display = this.display = new Display(place, doc); - display.wrapper.CodeMirror = this; - updateGutters(this); - themeChanged(this); - if (options.lineWrapping) - this.display.wrapper.className += " CodeMirror-wrap"; - if (options.autofocus && !mobile) focusInput(this); - - this.state = { - keyMaps: [], // stores maps added by addKeyMap - overlays: [], // highlighting overlays, as added by addOverlay - modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info - overwrite: false, focused: false, - suppressEdits: false, // used to disable editing during key handlers when in readOnly mode - pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in readInput - draggingText: false, - highlight: new Delayed(), // stores highlight worker timeout - keySeq: null // Unfinished key sequence - }; - - // Override magic textarea content restore that IE sometimes does - // on our hidden textarea on reload - if (ie && ie_version < 11) setTimeout(bind(resetInput, this, true), 20); - - registerEventHandlers(this); - ensureGlobalHandlers(); - - startOperation(this); - this.curOp.forceUpdate = true; - attachDoc(this, doc); - - if ((options.autofocus && !mobile) || activeElt() == display.input) - setTimeout(bind(onFocus, this), 20); - else - onBlur(this); - - for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt)) - optionHandlers[opt](this, options[opt], Init); - maybeUpdateLineNumberWidth(this); - for (var i = 0; i < initHooks.length; ++i) initHooks[i](this); - endOperation(this); - } - - // DISPLAY CONSTRUCTOR - - // The display handles the DOM integration, both for input reading - // and content drawing. It holds references to DOM nodes and - // display-related state. - - function Display(place, doc) { - var d = this; - - // The semihidden textarea that is focused when the editor is - // focused, and receives input. - var input = d.input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none"); - // The textarea is kept positioned near the cursor to prevent the - // fact that it'll be scrolled into view on input from scrolling - // our fake cursor out of view. On webkit, when wrap=off, paste is - // very slow. So make the area wide instead. - if (webkit) input.style.width = "1000px"; - else input.setAttribute("wrap", "off"); - // If border: 0; -- iOS fails to open keyboard (issue #1287) - if (ios) input.style.border = "1px solid black"; - input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); input.setAttribute("spellcheck", "false"); - - // Wraps and hides input textarea - d.inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); - // The fake scrollbar elements. - d.scrollbarH = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); - d.scrollbarV = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); - // Covers bottom-right square when both scrollbars are present. - d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); - // Covers bottom of gutter when coverGutterNextToScrollbar is on - // and h scrollbar is present. - d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); - // Will contain the actual code, positioned to cover the viewport. - d.lineDiv = elt("div", null, "CodeMirror-code"); - // Elements are added to these to represent selection and cursors. - d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); - d.cursorDiv = elt("div", null, "CodeMirror-cursors"); - // A visibility: hidden element used to find the size of things. - d.measure = elt("div", null, "CodeMirror-measure"); - // When lines outside of the viewport are measured, they are drawn in this. - d.lineMeasure = elt("div", null, "CodeMirror-measure"); - // Wraps everything that needs to exist inside the vertically-padded coordinate system - d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], - null, "position: relative; outline: none"); - // Moved around its parent to cover visible view. - d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative"); - // Set to the height of the document, allowing scrolling. - d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); - // Behavior of elts with overflow: auto and padding is - // inconsistent across browsers. This is used to ensure the - // scrollable area is big enough. - d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerCutOff + "px; width: 1px;"); - // Will contain the gutters, if any. - d.gutters = elt("div", null, "CodeMirror-gutters"); - d.lineGutter = null; - // Actual scrollable element. - d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); - d.scroller.setAttribute("tabIndex", "-1"); - // The element in which the editor lives. - d.wrapper = elt("div", [d.inputDiv, d.scrollbarH, d.scrollbarV, - d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); - - // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) - if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } - // Needed to hide big blue blinking cursor on Mobile Safari - if (ios) input.style.width = "0px"; - if (!webkit) d.scroller.draggable = true; - // Needed to handle Tab key in KHTML - if (khtml) { d.inputDiv.style.height = "1px"; d.inputDiv.style.position = "absolute"; } - // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). - if (ie && ie_version < 8) d.scrollbarH.style.minHeight = d.scrollbarV.style.minWidth = "18px"; - - if (place) { - if (place.appendChild) place.appendChild(d.wrapper); - else place(d.wrapper); - } - - // Current rendered range (may be bigger than the view window). - d.viewFrom = d.viewTo = doc.first; - // Information about the rendered lines. - d.view = []; - // Holds info about a single rendered line when it was rendered - // for measurement, while not in view. - d.externalMeasured = null; - // Empty space (in pixels) above the view - d.viewOffset = 0; - d.lastWrapHeight = d.lastWrapWidth = 0; - d.updateLineNumbers = null; - - // Used to only resize the line number gutter when necessary (when - // the amount of lines crosses a boundary that makes its width change) - d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; - // See readInput and resetInput - d.prevInput = ""; - // Set to true when a non-horizontal-scrolling line widget is - // added. As an optimization, line widget aligning is skipped when - // this is false. - d.alignWidgets = false; - // Flag that indicates whether we expect input to appear real soon - // now (after some event like 'keypress' or 'input') and are - // polling intensively. - d.pollingFast = false; - // Self-resetting timeout for the poller - d.poll = new Delayed(); - - d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; - - // Tracks when resetInput has punted to just putting a short - // string into the textarea instead of the full selection. - d.inaccurateSelection = false; - - // Tracks the maximum line length so that the horizontal scrollbar - // can be kept static when scrolling. - d.maxLine = null; - d.maxLineLength = 0; - d.maxLineChanged = false; - - // Used for measuring wheel scrolling granularity - d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; - - // True when shift is held down. - d.shift = false; - - // Used to track whether anything happened since the context menu - // was opened. - d.selForContextMenu = null; - } - - // STATE UPDATES - - // Used to get the editor into a consistent state again when options change. - - function loadMode(cm) { - cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption); - resetModeState(cm); - } - - function resetModeState(cm) { - cm.doc.iter(function(line) { - if (line.stateAfter) line.stateAfter = null; - if (line.styles) line.styles = null; - }); - cm.doc.frontier = cm.doc.first; - startWorker(cm, 100); - cm.state.modeGen++; - if (cm.curOp) regChange(cm); - } - - function wrappingChanged(cm) { - if (cm.options.lineWrapping) { - addClass(cm.display.wrapper, "CodeMirror-wrap"); - cm.display.sizer.style.minWidth = ""; - } else { - rmClass(cm.display.wrapper, "CodeMirror-wrap"); - findMaxLine(cm); - } - estimateLineHeights(cm); - regChange(cm); - clearCaches(cm); - setTimeout(function(){updateScrollbars(cm);}, 100); - } - - // Returns a function that estimates the height of a line, to use as - // first approximation until the line becomes visible (and is thus - // properly measurable). - function estimateHeight(cm) { - var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; - var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); - return function(line) { - if (lineIsHidden(cm.doc, line)) return 0; - - var widgetsHeight = 0; - if (line.widgets) for (var i = 0; i < line.widgets.length; i++) { - if (line.widgets[i].height) widgetsHeight += line.widgets[i].height; - } - - if (wrapping) - return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th; - else - return widgetsHeight + th; - }; - } - - function estimateLineHeights(cm) { - var doc = cm.doc, est = estimateHeight(cm); - doc.iter(function(line) { - var estHeight = est(line); - if (estHeight != line.height) updateLineHeight(line, estHeight); - }); - } - - function themeChanged(cm) { - cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + - cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); - clearCaches(cm); - } - - function guttersChanged(cm) { - updateGutters(cm); - regChange(cm); - setTimeout(function(){alignHorizontally(cm);}, 20); - } - - // Rebuild the gutter elements, ensure the margin to the left of the - // code matches their width. - function updateGutters(cm) { - var gutters = cm.display.gutters, specs = cm.options.gutters; - removeChildren(gutters); - for (var i = 0; i < specs.length; ++i) { - var gutterClass = specs[i]; - var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass)); - if (gutterClass == "CodeMirror-linenumbers") { - cm.display.lineGutter = gElt; - gElt.style.width = (cm.display.lineNumWidth || 1) + "px"; - } - } - gutters.style.display = i ? "" : "none"; - updateGutterSpace(cm); - } - - function updateGutterSpace(cm) { - var width = cm.display.gutters.offsetWidth; - cm.display.sizer.style.marginLeft = width + "px"; - cm.display.scrollbarH.style.left = cm.options.fixedGutter ? width + "px" : 0; - } - - // Compute the character length of a line, taking into account - // collapsed ranges (see markText) that might hide parts, and join - // other lines onto it. - function lineLength(line) { - if (line.height == 0) return 0; - var len = line.text.length, merged, cur = line; - while (merged = collapsedSpanAtStart(cur)) { - var found = merged.find(0, true); - cur = found.from.line; - len += found.from.ch - found.to.ch; - } - cur = line; - while (merged = collapsedSpanAtEnd(cur)) { - var found = merged.find(0, true); - len -= cur.text.length - found.from.ch; - cur = found.to.line; - len += cur.text.length - found.to.ch; - } - return len; - } - - // Find the longest line in the document. - function findMaxLine(cm) { - var d = cm.display, doc = cm.doc; - d.maxLine = getLine(doc, doc.first); - d.maxLineLength = lineLength(d.maxLine); - d.maxLineChanged = true; - doc.iter(function(line) { - var len = lineLength(line); - if (len > d.maxLineLength) { - d.maxLineLength = len; - d.maxLine = line; - } - }); - } - - // Make sure the gutters options contains the element - // "CodeMirror-linenumbers" when the lineNumbers option is true. - function setGuttersForLineNumbers(options) { - var found = indexOf(options.gutters, "CodeMirror-linenumbers"); - if (found == -1 && options.lineNumbers) { - options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]); - } else if (found > -1 && !options.lineNumbers) { - options.gutters = options.gutters.slice(0); - options.gutters.splice(found, 1); - } - } - - // SCROLLBARS - - function hScrollbarTakesSpace(cm) { - return cm.display.scroller.clientHeight - cm.display.wrapper.clientHeight < scrollerCutOff - 3; - } - - // Prepare DOM reads needed to update the scrollbars. Done in one - // shot to minimize update/measure roundtrips. - function measureForScrollbars(cm) { - var scroll = cm.display.scroller; - return { - clientHeight: scroll.clientHeight, - barHeight: cm.display.scrollbarV.clientHeight, - scrollWidth: scroll.scrollWidth, clientWidth: scroll.clientWidth, - hScrollbarTakesSpace: hScrollbarTakesSpace(cm), - barWidth: cm.display.scrollbarH.clientWidth, - docHeight: Math.round(cm.doc.height + paddingVert(cm.display)) - }; - } - - // Re-synchronize the fake scrollbars with the actual size of the - // content. - function updateScrollbars(cm, measure) { - if (!measure) measure = measureForScrollbars(cm); - var d = cm.display, sWidth = scrollbarWidth(d.measure); - var scrollHeight = measure.docHeight + scrollerCutOff; - var needsH = measure.scrollWidth > measure.clientWidth; - if (needsH && measure.scrollWidth <= measure.clientWidth + 1 && - sWidth > 0 && !measure.hScrollbarTakesSpace) - needsH = false; // (Issue #2562) - var needsV = scrollHeight > measure.clientHeight; - - if (needsV) { - d.scrollbarV.style.display = "block"; - d.scrollbarV.style.bottom = needsH ? sWidth + "px" : "0"; - // A bug in IE8 can cause this value to be negative, so guard it. - d.scrollbarV.firstChild.style.height = - Math.max(0, scrollHeight - measure.clientHeight + (measure.barHeight || d.scrollbarV.clientHeight)) + "px"; - } else { - d.scrollbarV.style.display = ""; - d.scrollbarV.firstChild.style.height = "0"; - } - if (needsH) { - d.scrollbarH.style.display = "block"; - d.scrollbarH.style.right = needsV ? sWidth + "px" : "0"; - d.scrollbarH.firstChild.style.width = - (measure.scrollWidth - measure.clientWidth + (measure.barWidth || d.scrollbarH.clientWidth)) + "px"; - } else { - d.scrollbarH.style.display = ""; - d.scrollbarH.firstChild.style.width = "0"; - } - if (needsH && needsV) { - d.scrollbarFiller.style.display = "block"; - d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = sWidth + "px"; - } else d.scrollbarFiller.style.display = ""; - if (needsH && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { - d.gutterFiller.style.display = "block"; - d.gutterFiller.style.height = sWidth + "px"; - d.gutterFiller.style.width = d.gutters.offsetWidth + "px"; - } else d.gutterFiller.style.display = ""; - - if (!cm.state.checkedOverlayScrollbar && measure.clientHeight > 0) { - if (sWidth === 0) { - var w = mac && !mac_geMountainLion ? "12px" : "18px"; - d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = w; - var barMouseDown = function(e) { - if (e_target(e) != d.scrollbarV && e_target(e) != d.scrollbarH) - operation(cm, onMouseDown)(e); - }; - on(d.scrollbarV, "mousedown", barMouseDown); - on(d.scrollbarH, "mousedown", barMouseDown); - } - cm.state.checkedOverlayScrollbar = true; - } - } - - // Compute the lines that are visible in a given viewport (defaults - // the the current scroll position). viewport may contain top, - // height, and ensure (see op.scrollToPos) properties. - function visibleLines(display, doc, viewport) { - var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; - top = Math.floor(top - paddingTop(display)); - var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; - - var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); - // Ensure is a {from: {line, ch}, to: {line, ch}} object, and - // forces those lines into the viewport (if possible). - if (viewport && viewport.ensure) { - var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; - if (ensureFrom < from) - return {from: ensureFrom, - to: lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight)}; - if (Math.min(ensureTo, doc.lastLine()) >= to) - return {from: lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight), - to: ensureTo}; - } - return {from: from, to: Math.max(to, from + 1)}; - } - - // LINE NUMBERS - - // Re-align line numbers and gutter marks to compensate for - // horizontal scrolling. - function alignHorizontally(cm) { - var display = cm.display, view = display.view; - if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return; - var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; - var gutterW = display.gutters.offsetWidth, left = comp + "px"; - for (var i = 0; i < view.length; i++) if (!view[i].hidden) { - if (cm.options.fixedGutter && view[i].gutter) - view[i].gutter.style.left = left; - var align = view[i].alignable; - if (align) for (var j = 0; j < align.length; j++) - align[j].style.left = left; - } - if (cm.options.fixedGutter) - display.gutters.style.left = (comp + gutterW) + "px"; - } - - // Used to ensure that the line number gutter is still the right - // size for the current document size. Returns true when an update - // is needed. - function maybeUpdateLineNumberWidth(cm) { - if (!cm.options.lineNumbers) return false; - var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; - if (last.length != display.lineNumChars) { - var test = display.measure.appendChild(elt("div", [elt("div", last)], - "CodeMirror-linenumber CodeMirror-gutter-elt")); - var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; - display.lineGutter.style.width = ""; - display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding); - display.lineNumWidth = display.lineNumInnerWidth + padding; - display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; - display.lineGutter.style.width = display.lineNumWidth + "px"; - updateGutterSpace(cm); - return true; - } - return false; - } - - function lineNumberFor(options, i) { - return String(options.lineNumberFormatter(i + options.firstLineNumber)); - } - - // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, - // but using getBoundingClientRect to get a sub-pixel-accurate - // result. - function compensateForHScroll(display) { - return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left; - } - - // DISPLAY DRAWING - - function DisplayUpdate(cm, viewport, force) { - var display = cm.display; - - this.viewport = viewport; - // Store some values that we'll need later (but don't want to force a relayout for) - this.visible = visibleLines(display, cm.doc, viewport); - this.editorIsHidden = !display.wrapper.offsetWidth; - this.wrapperHeight = display.wrapper.clientHeight; - this.wrapperWidth = display.wrapper.clientWidth; - this.oldViewFrom = display.viewFrom; this.oldViewTo = display.viewTo; - this.oldScrollerWidth = display.scroller.clientWidth; - this.force = force; - this.dims = getDimensions(cm); - } - - // Does the actual updating of the line display. Bails out - // (returning false) when there is nothing to be done and forced is - // false. - function updateDisplayIfNeeded(cm, update) { - var display = cm.display, doc = cm.doc; - if (update.editorIsHidden) { - resetView(cm); - return false; - } - - // Bail out if the visible area is already rendered and nothing changed. - if (!update.force && - update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && - (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && - countDirtyView(cm) == 0) - return false; - - if (maybeUpdateLineNumberWidth(cm)) { - resetView(cm); - update.dims = getDimensions(cm); - } - - // Compute a suitable new viewport (from & to) - var end = doc.first + doc.size; - var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); - var to = Math.min(end, update.visible.to + cm.options.viewportMargin); - if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom); - if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo); - if (sawCollapsedSpans) { - from = visualLineNo(cm.doc, from); - to = visualLineEndNo(cm.doc, to); - } - - var different = from != display.viewFrom || to != display.viewTo || - display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; - adjustView(cm, from, to); - - display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); - // Position the mover div to align with the current scroll position - cm.display.mover.style.top = display.viewOffset + "px"; - - var toUpdate = countDirtyView(cm); - if (!different && toUpdate == 0 && !update.force && - (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) - return false; - - // For big changes, we hide the enclosing element during the - // update, since that speeds up the operations on most browsers. - var focused = activeElt(); - if (toUpdate > 4) display.lineDiv.style.display = "none"; - patchDisplay(cm, display.updateLineNumbers, update.dims); - if (toUpdate > 4) display.lineDiv.style.display = ""; - // There might have been a widget with a focused element that got - // hidden or updated, if so re-focus it. - if (focused && activeElt() != focused && focused.offsetHeight) focused.focus(); - - // Prevent selection and cursors from interfering with the scroll - // width. - removeChildren(display.cursorDiv); - removeChildren(display.selectionDiv); - - if (different) { - display.lastWrapHeight = update.wrapperHeight; - display.lastWrapWidth = update.wrapperWidth; - startWorker(cm, 400); - } - - display.updateLineNumbers = null; - - return true; - } - - function postUpdateDisplay(cm, update) { - var force = update.force, viewport = update.viewport; - for (var first = true;; first = false) { - if (first && cm.options.lineWrapping && update.oldScrollerWidth != cm.display.scroller.clientWidth) { - force = true; - } else { - force = false; - // Clip forced viewport to actual scrollable area. - if (viewport && viewport.top != null) - viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - scrollerCutOff - - cm.display.scroller.clientHeight, viewport.top)}; - // Updated line heights might result in the drawn area not - // actually covering the viewport. Keep looping until it does. - update.visible = visibleLines(cm.display, cm.doc, viewport); - if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) - break; - } - if (!updateDisplayIfNeeded(cm, update)) break; - updateHeightsInViewport(cm); - var barMeasure = measureForScrollbars(cm); - updateSelection(cm); - setDocumentHeight(cm, barMeasure); - updateScrollbars(cm, barMeasure); - } - - signalLater(cm, "update", cm); - if (cm.display.viewFrom != update.oldViewFrom || cm.display.viewTo != update.oldViewTo) - signalLater(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); - } - - function updateDisplaySimple(cm, viewport) { - var update = new DisplayUpdate(cm, viewport); - if (updateDisplayIfNeeded(cm, update)) { - updateHeightsInViewport(cm); - postUpdateDisplay(cm, update); - var barMeasure = measureForScrollbars(cm); - updateSelection(cm); - setDocumentHeight(cm, barMeasure); - updateScrollbars(cm, barMeasure); - } - } - - function setDocumentHeight(cm, measure) { - cm.display.sizer.style.minHeight = cm.display.heightForcer.style.top = measure.docHeight + "px"; - cm.display.gutters.style.height = Math.max(measure.docHeight, measure.clientHeight - scrollerCutOff) + "px"; - } - - function checkForWebkitWidthBug(cm, measure) { - // Work around Webkit bug where it sometimes reserves space for a - // non-existing phantom scrollbar in the scroller (Issue #2420) - if (cm.display.sizer.offsetWidth + cm.display.gutters.offsetWidth < cm.display.scroller.clientWidth - 1) { - cm.display.sizer.style.minHeight = cm.display.heightForcer.style.top = "0px"; - cm.display.gutters.style.height = measure.docHeight + "px"; - } - } - - // Read the actual heights of the rendered lines, and update their - // stored heights to match. - function updateHeightsInViewport(cm) { - var display = cm.display; - var prevBottom = display.lineDiv.offsetTop; - for (var i = 0; i < display.view.length; i++) { - var cur = display.view[i], height; - if (cur.hidden) continue; - if (ie && ie_version < 8) { - var bot = cur.node.offsetTop + cur.node.offsetHeight; - height = bot - prevBottom; - prevBottom = bot; - } else { - var box = cur.node.getBoundingClientRect(); - height = box.bottom - box.top; - } - var diff = cur.line.height - height; - if (height < 2) height = textHeight(display); - if (diff > .001 || diff < -.001) { - updateLineHeight(cur.line, height); - updateWidgetHeight(cur.line); - if (cur.rest) for (var j = 0; j < cur.rest.length; j++) - updateWidgetHeight(cur.rest[j]); - } - } - } - - // Read and store the height of line widgets associated with the - // given line. - function updateWidgetHeight(line) { - if (line.widgets) for (var i = 0; i < line.widgets.length; ++i) - line.widgets[i].height = line.widgets[i].node.offsetHeight; - } - - // Do a bulk-read of the DOM positions and sizes needed to draw the - // view, so that we don't interleave reading and writing to the DOM. - function getDimensions(cm) { - var d = cm.display, left = {}, width = {}; - var gutterLeft = d.gutters.clientLeft; - for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { - left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft; - width[cm.options.gutters[i]] = n.clientWidth; - } - return {fixedPos: compensateForHScroll(d), - gutterTotalWidth: d.gutters.offsetWidth, - gutterLeft: left, - gutterWidth: width, - wrapperWidth: d.wrapper.clientWidth}; - } - - // Sync the actual display DOM structure with display.view, removing - // nodes for lines that are no longer in view, and creating the ones - // that are not there yet, and updating the ones that are out of - // date. - function patchDisplay(cm, updateNumbersFrom, dims) { - var display = cm.display, lineNumbers = cm.options.lineNumbers; - var container = display.lineDiv, cur = container.firstChild; - - function rm(node) { - var next = node.nextSibling; - // Works around a throw-scroll bug in OS X Webkit - if (webkit && mac && cm.display.currentWheelTarget == node) - node.style.display = "none"; - else - node.parentNode.removeChild(node); - return next; - } - - var view = display.view, lineN = display.viewFrom; - // Loop over the elements in the view, syncing cur (the DOM nodes - // in display.lineDiv) with the view as we go. - for (var i = 0; i < view.length; i++) { - var lineView = view[i]; - if (lineView.hidden) { - } else if (!lineView.node) { // Not drawn yet - var node = buildLineElement(cm, lineView, lineN, dims); - container.insertBefore(node, cur); - } else { // Already drawn - while (cur != lineView.node) cur = rm(cur); - var updateNumber = lineNumbers && updateNumbersFrom != null && - updateNumbersFrom <= lineN && lineView.lineNumber; - if (lineView.changes) { - if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false; - updateLineForChanges(cm, lineView, lineN, dims); - } - if (updateNumber) { - removeChildren(lineView.lineNumber); - lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); - } - cur = lineView.node.nextSibling; - } - lineN += lineView.size; - } - while (cur) cur = rm(cur); - } - - // When an aspect of a line changes, a string is added to - // lineView.changes. This updates the relevant part of the line's - // DOM structure. - function updateLineForChanges(cm, lineView, lineN, dims) { - for (var j = 0; j < lineView.changes.length; j++) { - var type = lineView.changes[j]; - if (type == "text") updateLineText(cm, lineView); - else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims); - else if (type == "class") updateLineClasses(lineView); - else if (type == "widget") updateLineWidgets(lineView, dims); - } - lineView.changes = null; - } - - // Lines with gutter elements, widgets or a background class need to - // be wrapped, and have the extra elements added to the wrapper div - function ensureLineWrapped(lineView) { - if (lineView.node == lineView.text) { - lineView.node = elt("div", null, null, "position: relative"); - if (lineView.text.parentNode) - lineView.text.parentNode.replaceChild(lineView.node, lineView.text); - lineView.node.appendChild(lineView.text); - if (ie && ie_version < 8) lineView.node.style.zIndex = 2; - } - return lineView.node; - } - - function updateLineBackground(lineView) { - var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; - if (cls) cls += " CodeMirror-linebackground"; - if (lineView.background) { - if (cls) lineView.background.className = cls; - else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } - } else if (cls) { - var wrap = ensureLineWrapped(lineView); - lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); - } - } - - // Wrapper around buildLineContent which will reuse the structure - // in display.externalMeasured when possible. - function getLineContent(cm, lineView) { - var ext = cm.display.externalMeasured; - if (ext && ext.line == lineView.line) { - cm.display.externalMeasured = null; - lineView.measure = ext.measure; - return ext.built; - } - return buildLineContent(cm, lineView); - } - - // Redraw the line's text. Interacts with the background and text - // classes because the mode may output tokens that influence these - // classes. - function updateLineText(cm, lineView) { - var cls = lineView.text.className; - var built = getLineContent(cm, lineView); - if (lineView.text == lineView.node) lineView.node = built.pre; - lineView.text.parentNode.replaceChild(built.pre, lineView.text); - lineView.text = built.pre; - if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { - lineView.bgClass = built.bgClass; - lineView.textClass = built.textClass; - updateLineClasses(lineView); - } else if (cls) { - lineView.text.className = cls; - } - } - - function updateLineClasses(lineView) { - updateLineBackground(lineView); - if (lineView.line.wrapClass) - ensureLineWrapped(lineView).className = lineView.line.wrapClass; - else if (lineView.node != lineView.text) - lineView.node.className = ""; - var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; - lineView.text.className = textClass || ""; - } - - function updateLineGutter(cm, lineView, lineN, dims) { - if (lineView.gutter) { - lineView.node.removeChild(lineView.gutter); - lineView.gutter = null; - } - var markers = lineView.line.gutterMarkers; - if (cm.options.lineNumbers || markers) { - var wrap = ensureLineWrapped(lineView); - var gutterWrap = lineView.gutter = - wrap.insertBefore(elt("div", null, "CodeMirror-gutter-wrapper", "left: " + - (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + - "px; width: " + dims.gutterTotalWidth + "px"), - lineView.text); - if (lineView.line.gutterClass) - gutterWrap.className += " " + lineView.line.gutterClass; - if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) - lineView.lineNumber = gutterWrap.appendChild( - elt("div", lineNumberFor(cm.options, lineN), - "CodeMirror-linenumber CodeMirror-gutter-elt", - "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " - + cm.display.lineNumInnerWidth + "px")); - if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) { - var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; - if (found) - gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + - dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); - } - } - } - - function updateLineWidgets(lineView, dims) { - if (lineView.alignable) lineView.alignable = null; - for (var node = lineView.node.firstChild, next; node; node = next) { - var next = node.nextSibling; - if (node.className == "CodeMirror-linewidget") - lineView.node.removeChild(node); - } - insertLineWidgets(lineView, dims); - } - - // Build a line's DOM representation from scratch - function buildLineElement(cm, lineView, lineN, dims) { - var built = getLineContent(cm, lineView); - lineView.text = lineView.node = built.pre; - if (built.bgClass) lineView.bgClass = built.bgClass; - if (built.textClass) lineView.textClass = built.textClass; - - updateLineClasses(lineView); - updateLineGutter(cm, lineView, lineN, dims); - insertLineWidgets(lineView, dims); - return lineView.node; - } - - // A lineView may contain multiple logical lines (when merged by - // collapsed spans). The widgets for all of them need to be drawn. - function insertLineWidgets(lineView, dims) { - insertLineWidgetsFor(lineView.line, lineView, dims, true); - if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++) - insertLineWidgetsFor(lineView.rest[i], lineView, dims, false); - } - - function insertLineWidgetsFor(line, lineView, dims, allowAbove) { - if (!line.widgets) return; - var wrap = ensureLineWrapped(lineView); - for (var i = 0, ws = line.widgets; i < ws.length; ++i) { - var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); - if (!widget.handleMouseEvents) node.ignoreEvents = true; - positionLineWidget(widget, node, lineView, dims); - if (allowAbove && widget.above) - wrap.insertBefore(node, lineView.gutter || lineView.text); - else - wrap.appendChild(node); - signalLater(widget, "redraw"); - } - } - - function positionLineWidget(widget, node, lineView, dims) { - if (widget.noHScroll) { - (lineView.alignable || (lineView.alignable = [])).push(node); - var width = dims.wrapperWidth; - node.style.left = dims.fixedPos + "px"; - if (!widget.coverGutter) { - width -= dims.gutterTotalWidth; - node.style.paddingLeft = dims.gutterTotalWidth + "px"; - } - node.style.width = width + "px"; - } - if (widget.coverGutter) { - node.style.zIndex = 5; - node.style.position = "relative"; - if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px"; - } - } - - // POSITION OBJECT - - // A Pos instance represents a position within the text. - var Pos = CodeMirror.Pos = function(line, ch) { - if (!(this instanceof Pos)) return new Pos(line, ch); - this.line = line; this.ch = ch; - }; - - // Compare two positions, return 0 if they are the same, a negative - // number when a is less, and a positive number otherwise. - var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; }; - - function copyPos(x) {return Pos(x.line, x.ch);} - function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; } - function minPos(a, b) { return cmp(a, b) < 0 ? a : b; } - - // SELECTION / CURSOR - - // Selection objects are immutable. A new one is created every time - // the selection changes. A selection is one or more non-overlapping - // (and non-touching) ranges, sorted, and an integer that indicates - // which one is the primary selection (the one that's scrolled into - // view, that getCursor returns, etc). - function Selection(ranges, primIndex) { - this.ranges = ranges; - this.primIndex = primIndex; - } - - Selection.prototype = { - primary: function() { return this.ranges[this.primIndex]; }, - equals: function(other) { - if (other == this) return true; - if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false; - for (var i = 0; i < this.ranges.length; i++) { - var here = this.ranges[i], there = other.ranges[i]; - if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false; - } - return true; - }, - deepCopy: function() { - for (var out = [], i = 0; i < this.ranges.length; i++) - out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); - return new Selection(out, this.primIndex); - }, - somethingSelected: function() { - for (var i = 0; i < this.ranges.length; i++) - if (!this.ranges[i].empty()) return true; - return false; - }, - contains: function(pos, end) { - if (!end) end = pos; - for (var i = 0; i < this.ranges.length; i++) { - var range = this.ranges[i]; - if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) - return i; - } - return -1; - } - }; - - function Range(anchor, head) { - this.anchor = anchor; this.head = head; - } - - Range.prototype = { - from: function() { return minPos(this.anchor, this.head); }, - to: function() { return maxPos(this.anchor, this.head); }, - empty: function() { - return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch; - } - }; - - // Take an unsorted, potentially overlapping set of ranges, and - // build a selection out of it. 'Consumes' ranges array (modifying - // it). - function normalizeSelection(ranges, primIndex) { - var prim = ranges[primIndex]; - ranges.sort(function(a, b) { return cmp(a.from(), b.from()); }); - primIndex = indexOf(ranges, prim); - for (var i = 1; i < ranges.length; i++) { - var cur = ranges[i], prev = ranges[i - 1]; - if (cmp(prev.to(), cur.from()) >= 0) { - var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); - var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; - if (i <= primIndex) --primIndex; - ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); - } - } - return new Selection(ranges, primIndex); - } - - function simpleSelection(anchor, head) { - return new Selection([new Range(anchor, head || anchor)], 0); - } - - // Most of the external API clips given positions to make sure they - // actually exist within the document. - function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));} - function clipPos(doc, pos) { - if (pos.line < doc.first) return Pos(doc.first, 0); - var last = doc.first + doc.size - 1; - if (pos.line > last) return Pos(last, getLine(doc, last).text.length); - return clipToLen(pos, getLine(doc, pos.line).text.length); - } - function clipToLen(pos, linelen) { - var ch = pos.ch; - if (ch == null || ch > linelen) return Pos(pos.line, linelen); - else if (ch < 0) return Pos(pos.line, 0); - else return pos; - } - function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;} - function clipPosArray(doc, array) { - for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]); - return out; - } - - // SELECTION UPDATES - - // The 'scroll' parameter given to many of these indicated whether - // the new cursor position should be scrolled into view after - // modifying the selection. - - // If shift is held or the extend flag is set, extends a range to - // include a given position (and optionally a second position). - // Otherwise, simply returns the range between the given positions. - // Used for cursor motion and such. - function extendRange(doc, range, head, other) { - if (doc.cm && doc.cm.display.shift || doc.extend) { - var anchor = range.anchor; - if (other) { - var posBefore = cmp(head, anchor) < 0; - if (posBefore != (cmp(other, anchor) < 0)) { - anchor = head; - head = other; - } else if (posBefore != (cmp(head, other) < 0)) { - head = other; - } - } - return new Range(anchor, head); - } else { - return new Range(other || head, head); - } - } - - // Extend the primary selection range, discard the rest. - function extendSelection(doc, head, other, options) { - setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options); - } - - // Extend all selections (pos is an array of selections with length - // equal the number of selections) - function extendSelections(doc, heads, options) { - for (var out = [], i = 0; i < doc.sel.ranges.length; i++) - out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null); - var newSel = normalizeSelection(out, doc.sel.primIndex); - setSelection(doc, newSel, options); - } - - // Updates a single range in the selection. - function replaceOneSelection(doc, i, range, options) { - var ranges = doc.sel.ranges.slice(0); - ranges[i] = range; - setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options); - } - - // Reset the selection to a single range. - function setSimpleSelection(doc, anchor, head, options) { - setSelection(doc, simpleSelection(anchor, head), options); - } - - // Give beforeSelectionChange handlers a change to influence a - // selection update. - function filterSelectionChange(doc, sel) { - var obj = { - ranges: sel.ranges, - update: function(ranges) { - this.ranges = []; - for (var i = 0; i < ranges.length; i++) - this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), - clipPos(doc, ranges[i].head)); - } - }; - signal(doc, "beforeSelectionChange", doc, obj); - if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj); - if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1); - else return sel; - } - - function setSelectionReplaceHistory(doc, sel, options) { - var done = doc.history.done, last = lst(done); - if (last && last.ranges) { - done[done.length - 1] = sel; - setSelectionNoUndo(doc, sel, options); - } else { - setSelection(doc, sel, options); - } - } - - // Set a new selection. - function setSelection(doc, sel, options) { - setSelectionNoUndo(doc, sel, options); - addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); - } - - function setSelectionNoUndo(doc, sel, options) { - if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) - sel = filterSelectionChange(doc, sel); - - var bias = options && options.bias || - (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); - setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); - - if (!(options && options.scroll === false) && doc.cm) - ensureCursorVisible(doc.cm); - } - - function setSelectionInner(doc, sel) { - if (sel.equals(doc.sel)) return; - - doc.sel = sel; - - if (doc.cm) { - doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true; - signalCursorActivity(doc.cm); - } - signalLater(doc, "cursorActivity", doc); - } - - // Verify that the selection does not partially select any atomic - // marked ranges. - function reCheckSelection(doc) { - setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll); - } - - // Return a selection that does not partially select any atomic - // ranges. - function skipAtomicInSelection(doc, sel, bias, mayClear) { - var out; - for (var i = 0; i < sel.ranges.length; i++) { - var range = sel.ranges[i]; - var newAnchor = skipAtomic(doc, range.anchor, bias, mayClear); - var newHead = skipAtomic(doc, range.head, bias, mayClear); - if (out || newAnchor != range.anchor || newHead != range.head) { - if (!out) out = sel.ranges.slice(0, i); - out[i] = new Range(newAnchor, newHead); - } - } - return out ? normalizeSelection(out, sel.primIndex) : sel; - } - - // Ensure a given position is not inside an atomic range. - function skipAtomic(doc, pos, bias, mayClear) { - var flipped = false, curPos = pos; - var dir = bias || 1; - doc.cantEdit = false; - search: for (;;) { - var line = getLine(doc, curPos.line); - if (line.markedSpans) { - for (var i = 0; i < line.markedSpans.length; ++i) { - var sp = line.markedSpans[i], m = sp.marker; - if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) && - (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) { - if (mayClear) { - signal(m, "beforeCursorEnter"); - if (m.explicitlyCleared) { - if (!line.markedSpans) break; - else {--i; continue;} - } - } - if (!m.atomic) continue; - var newPos = m.find(dir < 0 ? -1 : 1); - if (cmp(newPos, curPos) == 0) { - newPos.ch += dir; - if (newPos.ch < 0) { - if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1)); - else newPos = null; - } else if (newPos.ch > line.text.length) { - if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0); - else newPos = null; - } - if (!newPos) { - if (flipped) { - // Driven in a corner -- no valid cursor position found at all - // -- try again *with* clearing, if we didn't already - if (!mayClear) return skipAtomic(doc, pos, bias, true); - // Otherwise, turn off editing until further notice, and return the start of the doc - doc.cantEdit = true; - return Pos(doc.first, 0); - } - flipped = true; newPos = pos; dir = -dir; - } - } - curPos = newPos; - continue search; - } - } - } - return curPos; - } - } - - // SELECTION DRAWING - - // Redraw the selection and/or cursor - function drawSelection(cm) { - var display = cm.display, doc = cm.doc, result = {}; - var curFragment = result.cursors = document.createDocumentFragment(); - var selFragment = result.selection = document.createDocumentFragment(); - - for (var i = 0; i < doc.sel.ranges.length; i++) { - var range = doc.sel.ranges[i]; - var collapsed = range.empty(); - if (collapsed || cm.options.showCursorWhenSelecting) - drawSelectionCursor(cm, range, curFragment); - if (!collapsed) - drawSelectionRange(cm, range, selFragment); - } - - // Move the hidden textarea near the cursor to prevent scrolling artifacts - if (cm.options.moveInputWithCursor) { - var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); - var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); - result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, - headPos.top + lineOff.top - wrapOff.top)); - result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, - headPos.left + lineOff.left - wrapOff.left)); - } - - return result; - } - - function showSelection(cm, drawn) { - removeChildrenAndAdd(cm.display.cursorDiv, drawn.cursors); - removeChildrenAndAdd(cm.display.selectionDiv, drawn.selection); - if (drawn.teTop != null) { - cm.display.inputDiv.style.top = drawn.teTop + "px"; - cm.display.inputDiv.style.left = drawn.teLeft + "px"; - } - } - - function updateSelection(cm) { - showSelection(cm, drawSelection(cm)); - } - - // Draws a cursor for the given range - function drawSelectionCursor(cm, range, output) { - var pos = cursorCoords(cm, range.head, "div", null, null, !cm.options.singleCursorHeightPerLine); - - var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); - cursor.style.left = pos.left + "px"; - cursor.style.top = pos.top + "px"; - cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; - - if (pos.other) { - // Secondary cursor, shown when on a 'jump' in bi-directional text - var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); - otherCursor.style.display = ""; - otherCursor.style.left = pos.other.left + "px"; - otherCursor.style.top = pos.other.top + "px"; - otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; - } - } - - // Draws the given range as a highlighted selection - function drawSelectionRange(cm, range, output) { - var display = cm.display, doc = cm.doc; - var fragment = document.createDocumentFragment(); - var padding = paddingH(cm.display), leftSide = padding.left, rightSide = display.lineSpace.offsetWidth - padding.right; - - function add(left, top, width, bottom) { - if (top < 0) top = 0; - top = Math.round(top); - bottom = Math.round(bottom); - fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + - "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) + - "px; height: " + (bottom - top) + "px")); - } - - function drawForLine(line, fromArg, toArg) { - var lineObj = getLine(doc, line); - var lineLen = lineObj.text.length; - var start, end; - function coords(ch, bias) { - return charCoords(cm, Pos(line, ch), "div", lineObj, bias); - } - - iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) { - var leftPos = coords(from, "left"), rightPos, left, right; - if (from == to) { - rightPos = leftPos; - left = right = leftPos.left; - } else { - rightPos = coords(to - 1, "right"); - if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; } - left = leftPos.left; - right = rightPos.right; - } - if (fromArg == null && from == 0) left = leftSide; - if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part - add(left, leftPos.top, null, leftPos.bottom); - left = leftSide; - if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top); - } - if (toArg == null && to == lineLen) right = rightSide; - if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left) - start = leftPos; - if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right) - end = rightPos; - if (left < leftSide + 1) left = leftSide; - add(left, rightPos.top, right - left, rightPos.bottom); - }); - return {start: start, end: end}; - } - - var sFrom = range.from(), sTo = range.to(); - if (sFrom.line == sTo.line) { - drawForLine(sFrom.line, sFrom.ch, sTo.ch); - } else { - var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); - var singleVLine = visualLine(fromLine) == visualLine(toLine); - var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; - var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; - if (singleVLine) { - if (leftEnd.top < rightStart.top - 2) { - add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); - add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); - } else { - add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); - } - } - if (leftEnd.bottom < rightStart.top) - add(leftSide, leftEnd.bottom, null, rightStart.top); - } - - output.appendChild(fragment); - } - - // Cursor-blinking - function restartBlink(cm) { - if (!cm.state.focused) return; - var display = cm.display; - clearInterval(display.blinker); - var on = true; - display.cursorDiv.style.visibility = ""; - if (cm.options.cursorBlinkRate > 0) - display.blinker = setInterval(function() { - display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; - }, cm.options.cursorBlinkRate); - else if (cm.options.cursorBlinkRate < 0) - display.cursorDiv.style.visibility = "hidden"; - } - - // HIGHLIGHT WORKER - - function startWorker(cm, time) { - if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo) - cm.state.highlight.set(time, bind(highlightWorker, cm)); - } - - function highlightWorker(cm) { - var doc = cm.doc; - if (doc.frontier < doc.first) doc.frontier = doc.first; - if (doc.frontier >= cm.display.viewTo) return; - var end = +new Date + cm.options.workTime; - var state = copyState(doc.mode, getStateBefore(cm, doc.frontier)); - var changedLines = []; - - doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) { - if (doc.frontier >= cm.display.viewFrom) { // Visible - var oldStyles = line.styles; - var highlighted = highlightLine(cm, line, state, true); - line.styles = highlighted.styles; - var oldCls = line.styleClasses, newCls = highlighted.classes; - if (newCls) line.styleClasses = newCls; - else if (oldCls) line.styleClasses = null; - var ischange = !oldStyles || oldStyles.length != line.styles.length || - oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); - for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i]; - if (ischange) changedLines.push(doc.frontier); - line.stateAfter = copyState(doc.mode, state); - } else { - processLine(cm, line.text, state); - line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null; - } - ++doc.frontier; - if (+new Date > end) { - startWorker(cm, cm.options.workDelay); - return true; - } - }); - if (changedLines.length) runInOp(cm, function() { - for (var i = 0; i < changedLines.length; i++) - regLineChange(cm, changedLines[i], "text"); - }); - } - - // Finds the line to start with when starting a parse. Tries to - // find a line with a stateAfter, so that it can start with a - // valid state. If that fails, it returns the line with the - // smallest indentation, which tends to need the least context to - // parse correctly. - function findStartLine(cm, n, precise) { - var minindent, minline, doc = cm.doc; - var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); - for (var search = n; search > lim; --search) { - if (search <= doc.first) return doc.first; - var line = getLine(doc, search - 1); - if (line.stateAfter && (!precise || search <= doc.frontier)) return search; - var indented = countColumn(line.text, null, cm.options.tabSize); - if (minline == null || minindent > indented) { - minline = search - 1; - minindent = indented; - } - } - return minline; - } - - function getStateBefore(cm, n, precise) { - var doc = cm.doc, display = cm.display; - if (!doc.mode.startState) return true; - var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter; - if (!state) state = startState(doc.mode); - else state = copyState(doc.mode, state); - doc.iter(pos, n, function(line) { - processLine(cm, line.text, state); - var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo; - line.stateAfter = save ? copyState(doc.mode, state) : null; - ++pos; - }); - if (precise) doc.frontier = pos; - return state; - } - - // POSITION MEASUREMENT - - function paddingTop(display) {return display.lineSpace.offsetTop;} - function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;} - function paddingH(display) { - if (display.cachedPaddingH) return display.cachedPaddingH; - var e = removeChildrenAndAdd(display.measure, elt("pre", "x")); - var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; - var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; - if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data; - return data; - } - - // Ensure the lineView.wrapping.heights array is populated. This is - // an array of bottom offsets for the lines that make up a drawn - // line. When lineWrapping is on, there might be more than one - // height. - function ensureLineHeights(cm, lineView, rect) { - var wrapping = cm.options.lineWrapping; - var curWidth = wrapping && cm.display.scroller.clientWidth; - if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { - var heights = lineView.measure.heights = []; - if (wrapping) { - lineView.measure.width = curWidth; - var rects = lineView.text.firstChild.getClientRects(); - for (var i = 0; i < rects.length - 1; i++) { - var cur = rects[i], next = rects[i + 1]; - if (Math.abs(cur.bottom - next.bottom) > 2) - heights.push((cur.bottom + next.top) / 2 - rect.top); - } - } - heights.push(rect.bottom - rect.top); - } - } - - // Find a line map (mapping character offsets to text nodes) and a - // measurement cache for the given line number. (A line view might - // contain multiple lines when collapsed ranges are present.) - function mapFromLineView(lineView, line, lineN) { - if (lineView.line == line) - return {map: lineView.measure.map, cache: lineView.measure.cache}; - for (var i = 0; i < lineView.rest.length; i++) - if (lineView.rest[i] == line) - return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]}; - for (var i = 0; i < lineView.rest.length; i++) - if (lineNo(lineView.rest[i]) > lineN) - return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true}; - } - - // Render a line into the hidden node display.externalMeasured. Used - // when measurement is needed for a line that's not in the viewport. - function updateExternalMeasurement(cm, line) { - line = visualLine(line); - var lineN = lineNo(line); - var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); - view.lineN = lineN; - var built = view.built = buildLineContent(cm, view); - view.text = built.pre; - removeChildrenAndAdd(cm.display.lineMeasure, built.pre); - return view; - } - - // Get a {top, bottom, left, right} box (in line-local coordinates) - // for a given character. - function measureChar(cm, line, ch, bias) { - return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias); - } - - // Find a line view that corresponds to the given line number. - function findViewForLine(cm, lineN) { - if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) - return cm.display.view[findViewIndex(cm, lineN)]; - var ext = cm.display.externalMeasured; - if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) - return ext; - } - - // Measurement can be split in two steps, the set-up work that - // applies to the whole line, and the measurement of the actual - // character. Functions like coordsChar, that need to do a lot of - // measurements in a row, can thus ensure that the set-up work is - // only done once. - function prepareMeasureForLine(cm, line) { - var lineN = lineNo(line); - var view = findViewForLine(cm, lineN); - if (view && !view.text) - view = null; - else if (view && view.changes) - updateLineForChanges(cm, view, lineN, getDimensions(cm)); - if (!view) - view = updateExternalMeasurement(cm, line); - - var info = mapFromLineView(view, line, lineN); - return { - line: line, view: view, rect: null, - map: info.map, cache: info.cache, before: info.before, - hasHeights: false - }; - } - - // Given a prepared measurement object, measures the position of an - // actual character (or fetches it from the cache). - function measureCharPrepared(cm, prepared, ch, bias, varHeight) { - if (prepared.before) ch = -1; - var key = ch + (bias || ""), found; - if (prepared.cache.hasOwnProperty(key)) { - found = prepared.cache[key]; - } else { - if (!prepared.rect) - prepared.rect = prepared.view.text.getBoundingClientRect(); - if (!prepared.hasHeights) { - ensureLineHeights(cm, prepared.view, prepared.rect); - prepared.hasHeights = true; - } - found = measureCharInner(cm, prepared, ch, bias); - if (!found.bogus) prepared.cache[key] = found; - } - return {left: found.left, right: found.right, - top: varHeight ? found.rtop : found.top, - bottom: varHeight ? found.rbottom : found.bottom}; - } - - var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; - - function measureCharInner(cm, prepared, ch, bias) { - var map = prepared.map; - - var node, start, end, collapse; - // First, search the line map for the text node corresponding to, - // or closest to, the target character. - for (var i = 0; i < map.length; i += 3) { - var mStart = map[i], mEnd = map[i + 1]; - if (ch < mStart) { - start = 0; end = 1; - collapse = "left"; - } else if (ch < mEnd) { - start = ch - mStart; - end = start + 1; - } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) { - end = mEnd - mStart; - start = end - 1; - if (ch >= mEnd) collapse = "right"; - } - if (start != null) { - node = map[i + 2]; - if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) - collapse = bias; - if (bias == "left" && start == 0) - while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) { - node = map[(i -= 3) + 2]; - collapse = "left"; - } - if (bias == "right" && start == mEnd - mStart) - while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) { - node = map[(i += 3) + 2]; - collapse = "right"; - } - break; - } - } - - var rect; - if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. - for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned - while (start && isExtendingChar(prepared.line.text.charAt(mStart + start))) --start; - while (mStart + end < mEnd && isExtendingChar(prepared.line.text.charAt(mStart + end))) ++end; - if (ie && ie_version < 9 && start == 0 && end == mEnd - mStart) { - rect = node.parentNode.getBoundingClientRect(); - } else if (ie && cm.options.lineWrapping) { - var rects = range(node, start, end).getClientRects(); - if (rects.length) - rect = rects[bias == "right" ? rects.length - 1 : 0]; - else - rect = nullRect; - } else { - rect = range(node, start, end).getBoundingClientRect() || nullRect; - } - if (rect.left || rect.right || start == 0) break; - end = start; - start = start - 1; - collapse = "right"; - } - if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect); - } else { // If it is a widget, simply get the box for the whole widget. - if (start > 0) collapse = bias = "right"; - var rects; - if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) - rect = rects[bias == "right" ? rects.length - 1 : 0]; - else - rect = node.getBoundingClientRect(); - } - if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { - var rSpan = node.parentNode.getClientRects()[0]; - if (rSpan) - rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; - else - rect = nullRect; - } - - var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; - var mid = (rtop + rbot) / 2; - var heights = prepared.view.measure.heights; - for (var i = 0; i < heights.length - 1; i++) - if (mid < heights[i]) break; - var top = i ? heights[i - 1] : 0, bot = heights[i]; - var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, - right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, - top: top, bottom: bot}; - if (!rect.left && !rect.right) result.bogus = true; - if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } - - return result; - } - - // Work around problem with bounding client rects on ranges being - // returned incorrectly when zoomed on IE10 and below. - function maybeUpdateRectForZooming(measure, rect) { - if (!window.screen || screen.logicalXDPI == null || - screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) - return rect; - var scaleX = screen.logicalXDPI / screen.deviceXDPI; - var scaleY = screen.logicalYDPI / screen.deviceYDPI; - return {left: rect.left * scaleX, right: rect.right * scaleX, - top: rect.top * scaleY, bottom: rect.bottom * scaleY}; - } - - function clearLineMeasurementCacheFor(lineView) { - if (lineView.measure) { - lineView.measure.cache = {}; - lineView.measure.heights = null; - if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++) - lineView.measure.caches[i] = {}; - } - } - - function clearLineMeasurementCache(cm) { - cm.display.externalMeasure = null; - removeChildren(cm.display.lineMeasure); - for (var i = 0; i < cm.display.view.length; i++) - clearLineMeasurementCacheFor(cm.display.view[i]); - } - - function clearCaches(cm) { - clearLineMeasurementCache(cm); - cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; - if (!cm.options.lineWrapping) cm.display.maxLineChanged = true; - cm.display.lineNumChars = null; - } - - function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; } - function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; } - - // Converts a {top, bottom, left, right} box from line-local - // coordinates into another coordinate system. Context may be one of - // "line", "div" (display.lineDiv), "local"/null (editor), or "page". - function intoCoordSystem(cm, lineObj, rect, context) { - if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) { - var size = widgetHeight(lineObj.widgets[i]); - rect.top += size; rect.bottom += size; - } - if (context == "line") return rect; - if (!context) context = "local"; - var yOff = heightAtLine(lineObj); - if (context == "local") yOff += paddingTop(cm.display); - else yOff -= cm.display.viewOffset; - if (context == "page" || context == "window") { - var lOff = cm.display.lineSpace.getBoundingClientRect(); - yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); - var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); - rect.left += xOff; rect.right += xOff; - } - rect.top += yOff; rect.bottom += yOff; - return rect; - } - - // Coverts a box from "div" coords to another coordinate system. - // Context may be "window", "page", "div", or "local"/null. - function fromCoordSystem(cm, coords, context) { - if (context == "div") return coords; - var left = coords.left, top = coords.top; - // First move into "page" coordinate system - if (context == "page") { - left -= pageScrollX(); - top -= pageScrollY(); - } else if (context == "local" || !context) { - var localBox = cm.display.sizer.getBoundingClientRect(); - left += localBox.left; - top += localBox.top; - } - - var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); - return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}; - } - - function charCoords(cm, pos, context, lineObj, bias) { - if (!lineObj) lineObj = getLine(cm.doc, pos.line); - return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context); - } - - // Returns a box for a given cursor position, which may have an - // 'other' property containing the position of the secondary cursor - // on a bidi boundary. - function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { - lineObj = lineObj || getLine(cm.doc, pos.line); - if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj); - function get(ch, right) { - var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); - if (right) m.left = m.right; else m.right = m.left; - return intoCoordSystem(cm, lineObj, m, context); - } - function getBidi(ch, partPos) { - var part = order[partPos], right = part.level % 2; - if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) { - part = order[--partPos]; - ch = bidiRight(part) - (part.level % 2 ? 0 : 1); - right = true; - } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) { - part = order[++partPos]; - ch = bidiLeft(part) - part.level % 2; - right = false; - } - if (right && ch == part.to && ch > part.from) return get(ch - 1); - return get(ch, right); - } - var order = getOrder(lineObj), ch = pos.ch; - if (!order) return get(ch); - var partPos = getBidiPartAt(order, ch); - var val = getBidi(ch, partPos); - if (bidiOther != null) val.other = getBidi(ch, bidiOther); - return val; - } - - // Used to cheaply estimate the coordinates for a position. Used for - // intermediate scroll updates. - function estimateCoords(cm, pos) { - var left = 0, pos = clipPos(cm.doc, pos); - if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch; - var lineObj = getLine(cm.doc, pos.line); - var top = heightAtLine(lineObj) + paddingTop(cm.display); - return {left: left, right: left, top: top, bottom: top + lineObj.height}; - } - - // Positions returned by coordsChar contain some extra information. - // xRel is the relative x position of the input coordinates compared - // to the found position (so xRel > 0 means the coordinates are to - // the right of the character position, for example). When outside - // is true, that means the coordinates lie outside the line's - // vertical range. - function PosWithInfo(line, ch, outside, xRel) { - var pos = Pos(line, ch); - pos.xRel = xRel; - if (outside) pos.outside = true; - return pos; - } - - // Compute the character position closest to the given coordinates. - // Input must be lineSpace-local ("div" coordinate system). - function coordsChar(cm, x, y) { - var doc = cm.doc; - y += cm.display.viewOffset; - if (y < 0) return PosWithInfo(doc.first, 0, true, -1); - var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; - if (lineN > last) - return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1); - if (x < 0) x = 0; - - var lineObj = getLine(doc, lineN); - for (;;) { - var found = coordsCharInner(cm, lineObj, lineN, x, y); - var merged = collapsedSpanAtEnd(lineObj); - var mergedPos = merged && merged.find(0, true); - if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0)) - lineN = lineNo(lineObj = mergedPos.to.line); - else - return found; - } - } - - function coordsCharInner(cm, lineObj, lineNo, x, y) { - var innerOff = y - heightAtLine(lineObj); - var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth; - var preparedMeasure = prepareMeasureForLine(cm, lineObj); - - function getX(ch) { - var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure); - wrongLine = true; - if (innerOff > sp.bottom) return sp.left - adjust; - else if (innerOff < sp.top) return sp.left + adjust; - else wrongLine = false; - return sp.left; - } - - var bidi = getOrder(lineObj), dist = lineObj.text.length; - var from = lineLeft(lineObj), to = lineRight(lineObj); - var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine; - - if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1); - // Do a binary search between these bounds. - for (;;) { - if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) { - var ch = x < fromX || x - fromX <= toX - x ? from : to; - var xDiff = x - (ch == from ? fromX : toX); - while (isExtendingChar(lineObj.text.charAt(ch))) ++ch; - var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside, - xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0); - return pos; - } - var step = Math.ceil(dist / 2), middle = from + step; - if (bidi) { - middle = from; - for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1); - } - var middleX = getX(middle); - if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;} - else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;} - } - } - - var measureText; - // Compute the default text height. - function textHeight(display) { - if (display.cachedTextHeight != null) return display.cachedTextHeight; - if (measureText == null) { - measureText = elt("pre"); - // Measure a bunch of lines, for browsers that compute - // fractional heights. - for (var i = 0; i < 49; ++i) { - measureText.appendChild(document.createTextNode("x")); - measureText.appendChild(elt("br")); - } - measureText.appendChild(document.createTextNode("x")); - } - removeChildrenAndAdd(display.measure, measureText); - var height = measureText.offsetHeight / 50; - if (height > 3) display.cachedTextHeight = height; - removeChildren(display.measure); - return height || 1; - } - - // Compute the default character width. - function charWidth(display) { - if (display.cachedCharWidth != null) return display.cachedCharWidth; - var anchor = elt("span", "xxxxxxxxxx"); - var pre = elt("pre", [anchor]); - removeChildrenAndAdd(display.measure, pre); - var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; - if (width > 2) display.cachedCharWidth = width; - return width || 10; - } - - // OPERATIONS - - // Operations are used to wrap a series of changes to the editor - // state in such a way that each change won't have to update the - // cursor and display (which would be awkward, slow, and - // error-prone). Instead, display updates are batched and then all - // combined and executed at once. - - var operationGroup = null; - - var nextOpId = 0; - // Start a new operation. - function startOperation(cm) { - cm.curOp = { - cm: cm, - viewChanged: false, // Flag that indicates that lines might need to be redrawn - startHeight: cm.doc.height, // Used to detect need to update scrollbar - forceUpdate: false, // Used to force a redraw - updateInput: null, // Whether to reset the input textarea - typing: false, // Whether this reset should be careful to leave existing text (for compositing) - changeObjs: null, // Accumulated changes, for firing change events - cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on - cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already - selectionChanged: false, // Whether the selection needs to be redrawn - updateMaxLine: false, // Set when the widest line needs to be determined anew - scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet - scrollToPos: null, // Used to scroll to a specific position - id: ++nextOpId // Unique ID - }; - if (operationGroup) { - operationGroup.ops.push(cm.curOp); - } else { - cm.curOp.ownsGroup = operationGroup = { - ops: [cm.curOp], - delayedCallbacks: [] - }; - } - } - - function fireCallbacksForOps(group) { - // Calls delayed callbacks and cursorActivity handlers until no - // new ones appear - var callbacks = group.delayedCallbacks, i = 0; - do { - for (; i < callbacks.length; i++) - callbacks[i](); - for (var j = 0; j < group.ops.length; j++) { - var op = group.ops[j]; - if (op.cursorActivityHandlers) - while (op.cursorActivityCalled < op.cursorActivityHandlers.length) - op.cursorActivityHandlers[op.cursorActivityCalled++](op.cm); - } - } while (i < callbacks.length); - } - - // Finish an operation, updating the display and signalling delayed events - function endOperation(cm) { - var op = cm.curOp, group = op.ownsGroup; - if (!group) return; - - try { fireCallbacksForOps(group); } - finally { - operationGroup = null; - for (var i = 0; i < group.ops.length; i++) - group.ops[i].cm.curOp = null; - endOperations(group); - } - } - - // The DOM updates done when an operation finishes are batched so - // that the minimum number of relayouts are required. - function endOperations(group) { - var ops = group.ops; - for (var i = 0; i < ops.length; i++) // Read DOM - endOperation_R1(ops[i]); - for (var i = 0; i < ops.length; i++) // Write DOM (maybe) - endOperation_W1(ops[i]); - for (var i = 0; i < ops.length; i++) // Read DOM - endOperation_R2(ops[i]); - for (var i = 0; i < ops.length; i++) // Write DOM (maybe) - endOperation_W2(ops[i]); - for (var i = 0; i < ops.length; i++) // Read DOM - endOperation_finish(ops[i]); - } - - function endOperation_R1(op) { - var cm = op.cm, display = cm.display; - if (op.updateMaxLine) findMaxLine(cm); - - op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || - op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || - op.scrollToPos.to.line >= display.viewTo) || - display.maxLineChanged && cm.options.lineWrapping; - op.update = op.mustUpdate && - new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); - } - - function endOperation_W1(op) { - op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); - } - - function endOperation_R2(op) { - var cm = op.cm, display = cm.display; - if (op.updatedDisplay) updateHeightsInViewport(cm); - - op.barMeasure = measureForScrollbars(cm); - - // If the max line changed since it was last measured, measure it, - // and ensure the document's width matches it. - // updateDisplay_W2 will use these properties to do the actual resizing - if (display.maxLineChanged && !cm.options.lineWrapping) { - op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; - op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo + - scrollerCutOff - display.scroller.clientWidth); - } - - if (op.updatedDisplay || op.selectionChanged) - op.newSelectionNodes = drawSelection(cm); - } - - function endOperation_W2(op) { - var cm = op.cm; - - if (op.adjustWidthTo != null) { - cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; - if (op.maxScrollLeft < cm.doc.scrollLeft) - setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); - cm.display.maxLineChanged = false; - } - - if (op.newSelectionNodes) - showSelection(cm, op.newSelectionNodes); - if (op.updatedDisplay) - setDocumentHeight(cm, op.barMeasure); - if (op.updatedDisplay || op.startHeight != cm.doc.height) - updateScrollbars(cm, op.barMeasure); - - if (op.selectionChanged) restartBlink(cm); - - if (cm.state.focused && op.updateInput) - resetInput(cm, op.typing); - } - - function endOperation_finish(op) { - var cm = op.cm, display = cm.display, doc = cm.doc; - - if (op.adjustWidthTo != null && Math.abs(op.barMeasure.scrollWidth - cm.display.scroller.scrollWidth) > 1) - updateScrollbars(cm); - - if (op.updatedDisplay) postUpdateDisplay(cm, op.update); - - // Abort mouse wheel delta measurement, when scrolling explicitly - if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) - display.wheelStartX = display.wheelStartY = null; - - // Propagate the scroll position to the actual DOM scroller - if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) { - var top = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop)); - display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = top; - } - if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) { - var left = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft)); - display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = left; - alignHorizontally(cm); - } - // If we need to scroll a specific position into view, do so. - if (op.scrollToPos) { - var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), - clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); - if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords); - } - - // Fire events for markers that are hidden/unidden by editing or - // undoing - var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; - if (hidden) for (var i = 0; i < hidden.length; ++i) - if (!hidden[i].lines.length) signal(hidden[i], "hide"); - if (unhidden) for (var i = 0; i < unhidden.length; ++i) - if (unhidden[i].lines.length) signal(unhidden[i], "unhide"); - - if (display.wrapper.offsetHeight) - doc.scrollTop = cm.display.scroller.scrollTop; - - // Apply workaround for two webkit bugs - if (op.updatedDisplay && webkit) { - if (cm.options.lineWrapping) - checkForWebkitWidthBug(cm, op.barMeasure); // (Issue #2420) - if (op.barMeasure.scrollWidth > op.barMeasure.clientWidth && - op.barMeasure.scrollWidth < op.barMeasure.clientWidth + 1 && - !hScrollbarTakesSpace(cm)) - updateScrollbars(cm); // (Issue #2562) - } - - // Fire change events, and delayed event handlers - if (op.changeObjs) - signal(cm, "changes", cm, op.changeObjs); - } - - // Run the given function in an operation - function runInOp(cm, f) { - if (cm.curOp) return f(); - startOperation(cm); - try { return f(); } - finally { endOperation(cm); } - } - // Wraps a function in an operation. Returns the wrapped function. - function operation(cm, f) { - return function() { - if (cm.curOp) return f.apply(cm, arguments); - startOperation(cm); - try { return f.apply(cm, arguments); } - finally { endOperation(cm); } - }; - } - // Used to add methods to editor and doc instances, wrapping them in - // operations. - function methodOp(f) { - return function() { - if (this.curOp) return f.apply(this, arguments); - startOperation(this); - try { return f.apply(this, arguments); } - finally { endOperation(this); } - }; - } - function docMethodOp(f) { - return function() { - var cm = this.cm; - if (!cm || cm.curOp) return f.apply(this, arguments); - startOperation(cm); - try { return f.apply(this, arguments); } - finally { endOperation(cm); } - }; - } - - // VIEW TRACKING - - // These objects are used to represent the visible (currently drawn) - // part of the document. A LineView may correspond to multiple - // logical lines, if those are connected by collapsed ranges. - function LineView(doc, line, lineN) { - // The starting line - this.line = line; - // Continuing lines, if any - this.rest = visualLineContinued(line); - // Number of logical lines in this visual line - this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; - this.node = this.text = null; - this.hidden = lineIsHidden(doc, line); - } - - // Create a range of LineView objects for the given lines. - function buildViewArray(cm, from, to) { - var array = [], nextPos; - for (var pos = from; pos < to; pos = nextPos) { - var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); - nextPos = pos + view.size; - array.push(view); - } - return array; - } - - // Updates the display.view data structure for a given change to the - // document. From and to are in pre-change coordinates. Lendiff is - // the amount of lines added or subtracted by the change. This is - // used for changes that span multiple lines, or change the way - // lines are divided into visual lines. regLineChange (below) - // registers single-line changes. - function regChange(cm, from, to, lendiff) { - if (from == null) from = cm.doc.first; - if (to == null) to = cm.doc.first + cm.doc.size; - if (!lendiff) lendiff = 0; - - var display = cm.display; - if (lendiff && to < display.viewTo && - (display.updateLineNumbers == null || display.updateLineNumbers > from)) - display.updateLineNumbers = from; - - cm.curOp.viewChanged = true; - - if (from >= display.viewTo) { // Change after - if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) - resetView(cm); - } else if (to <= display.viewFrom) { // Change before - if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { - resetView(cm); - } else { - display.viewFrom += lendiff; - display.viewTo += lendiff; - } - } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap - resetView(cm); - } else if (from <= display.viewFrom) { // Top overlap - var cut = viewCuttingPoint(cm, to, to + lendiff, 1); - if (cut) { - display.view = display.view.slice(cut.index); - display.viewFrom = cut.lineN; - display.viewTo += lendiff; - } else { - resetView(cm); - } - } else if (to >= display.viewTo) { // Bottom overlap - var cut = viewCuttingPoint(cm, from, from, -1); - if (cut) { - display.view = display.view.slice(0, cut.index); - display.viewTo = cut.lineN; - } else { - resetView(cm); - } - } else { // Gap in the middle - var cutTop = viewCuttingPoint(cm, from, from, -1); - var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); - if (cutTop && cutBot) { - display.view = display.view.slice(0, cutTop.index) - .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) - .concat(display.view.slice(cutBot.index)); - display.viewTo += lendiff; - } else { - resetView(cm); - } - } - - var ext = display.externalMeasured; - if (ext) { - if (to < ext.lineN) - ext.lineN += lendiff; - else if (from < ext.lineN + ext.size) - display.externalMeasured = null; - } - } - - // Register a change to a single line. Type must be one of "text", - // "gutter", "class", "widget" - function regLineChange(cm, line, type) { - cm.curOp.viewChanged = true; - var display = cm.display, ext = cm.display.externalMeasured; - if (ext && line >= ext.lineN && line < ext.lineN + ext.size) - display.externalMeasured = null; - - if (line < display.viewFrom || line >= display.viewTo) return; - var lineView = display.view[findViewIndex(cm, line)]; - if (lineView.node == null) return; - var arr = lineView.changes || (lineView.changes = []); - if (indexOf(arr, type) == -1) arr.push(type); - } - - // Clear the view. - function resetView(cm) { - cm.display.viewFrom = cm.display.viewTo = cm.doc.first; - cm.display.view = []; - cm.display.viewOffset = 0; - } - - // Find the view element corresponding to a given line. Return null - // when the line isn't visible. - function findViewIndex(cm, n) { - if (n >= cm.display.viewTo) return null; - n -= cm.display.viewFrom; - if (n < 0) return null; - var view = cm.display.view; - for (var i = 0; i < view.length; i++) { - n -= view[i].size; - if (n < 0) return i; - } - } - - function viewCuttingPoint(cm, oldN, newN, dir) { - var index = findViewIndex(cm, oldN), diff, view = cm.display.view; - if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) - return {index: index, lineN: newN}; - for (var i = 0, n = cm.display.viewFrom; i < index; i++) - n += view[i].size; - if (n != oldN) { - if (dir > 0) { - if (index == view.length - 1) return null; - diff = (n + view[index].size) - oldN; - index++; - } else { - diff = n - oldN; - } - oldN += diff; newN += diff; - } - while (visualLineNo(cm.doc, newN) != newN) { - if (index == (dir < 0 ? 0 : view.length - 1)) return null; - newN += dir * view[index - (dir < 0 ? 1 : 0)].size; - index += dir; - } - return {index: index, lineN: newN}; - } - - // Force the view to cover a given range, adding empty view element - // or clipping off existing ones as needed. - function adjustView(cm, from, to) { - var display = cm.display, view = display.view; - if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { - display.view = buildViewArray(cm, from, to); - display.viewFrom = from; - } else { - if (display.viewFrom > from) - display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); - else if (display.viewFrom < from) - display.view = display.view.slice(findViewIndex(cm, from)); - display.viewFrom = from; - if (display.viewTo < to) - display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); - else if (display.viewTo > to) - display.view = display.view.slice(0, findViewIndex(cm, to)); - } - display.viewTo = to; - } - - // Count the number of lines in the view whose DOM representation is - // out of date (or nonexistent). - function countDirtyView(cm) { - var view = cm.display.view, dirty = 0; - for (var i = 0; i < view.length; i++) { - var lineView = view[i]; - if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty; - } - return dirty; - } - - // INPUT HANDLING - - // Poll for input changes, using the normal rate of polling. This - // runs as long as the editor is focused. - function slowPoll(cm) { - if (cm.display.pollingFast) return; - cm.display.poll.set(cm.options.pollInterval, function() { - readInput(cm); - if (cm.state.focused) slowPoll(cm); - }); - } - - // When an event has just come in that is likely to add or change - // something in the input textarea, we poll faster, to ensure that - // the change appears on the screen quickly. - function fastPoll(cm) { - var missed = false; - cm.display.pollingFast = true; - function p() { - var changed = readInput(cm); - if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);} - else {cm.display.pollingFast = false; slowPoll(cm);} - } - cm.display.poll.set(20, p); - } - - // This will be set to an array of strings when copying, so that, - // when pasting, we know what kind of selections the copied text - // was made out of. - var lastCopied = null; - - // Read input from the textarea, and update the document to match. - // When something is selected, it is present in the textarea, and - // selected (unless it is huge, in which case a placeholder is - // used). When nothing is selected, the cursor sits after previously - // seen text (can be empty), which is stored in prevInput (we must - // not reset the textarea when typing, because that breaks IME). - function readInput(cm) { - var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc; - // Since this is called a *lot*, try to bail out as cheaply as - // possible when it is clear that nothing happened. hasSelection - // will be the case when there is a lot of text in the textarea, - // in which case reading its value would be expensive. - if (!cm.state.focused || (hasSelection(input) && !prevInput) || isReadOnly(cm) || cm.options.disableInput || cm.state.keySeq) - return false; - // See paste handler for more on the fakedLastChar kludge - if (cm.state.pasteIncoming && cm.state.fakedLastChar) { - input.value = input.value.substring(0, input.value.length - 1); - cm.state.fakedLastChar = false; - } - var text = input.value; - // If nothing changed, bail. - if (text == prevInput && !cm.somethingSelected()) return false; - // Work around nonsensical selection resetting in IE9/10, and - // inexplicable appearance of private area unicode characters on - // some key combos in Mac (#2689). - if (ie && ie_version >= 9 && cm.display.inputHasSelection === text || - mac && /[\uf700-\uf7ff]/.test(text)) { - resetInput(cm); - return false; - } - - var withOp = !cm.curOp; - if (withOp) startOperation(cm); - cm.display.shift = false; - - if (text.charCodeAt(0) == 0x200b && doc.sel == cm.display.selForContextMenu && !prevInput) - prevInput = "\u200b"; - // Find the part of the input that is actually new - var same = 0, l = Math.min(prevInput.length, text.length); - while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same; - var inserted = text.slice(same), textLines = splitLines(inserted); - - // When pasing N lines into N selections, insert one line per selection - var multiPaste = null; - if (cm.state.pasteIncoming && doc.sel.ranges.length > 1) { - if (lastCopied && lastCopied.join("\n") == inserted) - multiPaste = doc.sel.ranges.length % lastCopied.length == 0 && map(lastCopied, splitLines); - else if (textLines.length == doc.sel.ranges.length) - multiPaste = map(textLines, function(l) { return [l]; }); - } - - // Normal behavior is to insert the new text into every selection - for (var i = doc.sel.ranges.length - 1; i >= 0; i--) { - var range = doc.sel.ranges[i]; - var from = range.from(), to = range.to(); - // Handle deletion - if (same < prevInput.length) - from = Pos(from.line, from.ch - (prevInput.length - same)); - // Handle overwrite - else if (cm.state.overwrite && range.empty() && !cm.state.pasteIncoming) - to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); - var updateInput = cm.curOp.updateInput; - var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines, - origin: cm.state.pasteIncoming ? "paste" : cm.state.cutIncoming ? "cut" : "+input"}; - makeChange(cm.doc, changeEvent); - signalLater(cm, "inputRead", cm, changeEvent); - // When an 'electric' character is inserted, immediately trigger a reindent - if (inserted && !cm.state.pasteIncoming && cm.options.electricChars && - cm.options.smartIndent && range.head.ch < 100 && - (!i || doc.sel.ranges[i - 1].head.line != range.head.line)) { - var mode = cm.getModeAt(range.head); - var end = changeEnd(changeEvent); - if (mode.electricChars) { - for (var j = 0; j < mode.electricChars.length; j++) - if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { - indentLine(cm, end.line, "smart"); - break; - } - } else if (mode.electricInput) { - if (mode.electricInput.test(getLine(doc, end.line).text.slice(0, end.ch))) - indentLine(cm, end.line, "smart"); - } - } - } - ensureCursorVisible(cm); - cm.curOp.updateInput = updateInput; - cm.curOp.typing = true; - - // Don't leave long text in the textarea, since it makes further polling slow - if (text.length > 1000 || text.indexOf("\n") > -1) input.value = cm.display.prevInput = ""; - else cm.display.prevInput = text; - if (withOp) endOperation(cm); - cm.state.pasteIncoming = cm.state.cutIncoming = false; - return true; - } - - // Reset the input to correspond to the selection (or to be empty, - // when not typing and nothing is selected) - function resetInput(cm, typing) { - var minimal, selected, doc = cm.doc; - if (cm.somethingSelected()) { - cm.display.prevInput = ""; - var range = doc.sel.primary(); - minimal = hasCopyEvent && - (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000); - var content = minimal ? "-" : selected || cm.getSelection(); - cm.display.input.value = content; - if (cm.state.focused) selectInput(cm.display.input); - if (ie && ie_version >= 9) cm.display.inputHasSelection = content; - } else if (!typing) { - cm.display.prevInput = cm.display.input.value = ""; - if (ie && ie_version >= 9) cm.display.inputHasSelection = null; - } - cm.display.inaccurateSelection = minimal; - } - - function focusInput(cm) { - if (cm.options.readOnly != "nocursor" && (!mobile || activeElt() != cm.display.input)) - cm.display.input.focus(); - } - - function ensureFocus(cm) { - if (!cm.state.focused) { focusInput(cm); onFocus(cm); } - } - - function isReadOnly(cm) { - return cm.options.readOnly || cm.doc.cantEdit; - } - - // EVENT HANDLERS - - // Attach the necessary event handlers when initializing the editor - function registerEventHandlers(cm) { - var d = cm.display; - on(d.scroller, "mousedown", operation(cm, onMouseDown)); - // Older IE's will not fire a second mousedown for a double click - if (ie && ie_version < 11) - on(d.scroller, "dblclick", operation(cm, function(e) { - if (signalDOMEvent(cm, e)) return; - var pos = posFromMouse(cm, e); - if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return; - e_preventDefault(e); - var word = cm.findWordAt(pos); - extendSelection(cm.doc, word.anchor, word.head); - })); - else - on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); }); - // Prevent normal selection in the editor (we handle our own) - on(d.lineSpace, "selectstart", function(e) { - if (!eventInWidget(d, e)) e_preventDefault(e); - }); - // Some browsers fire contextmenu *after* opening the menu, at - // which point we can't mess with it anymore. Context menu is - // handled in onMouseDown for these browsers. - if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);}); - - // Sync scrolling between fake scrollbars and real scrollable - // area, ensure viewport is updated when scrolling. - on(d.scroller, "scroll", function() { - if (d.scroller.clientHeight) { - setScrollTop(cm, d.scroller.scrollTop); - setScrollLeft(cm, d.scroller.scrollLeft, true); - signal(cm, "scroll", cm); - } - }); - on(d.scrollbarV, "scroll", function() { - if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop); - }); - on(d.scrollbarH, "scroll", function() { - if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft); - }); - - // Listen to wheel events in order to try and update the viewport on time. - on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);}); - on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);}); - - // Prevent clicks in the scrollbars from killing focus - function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); } - on(d.scrollbarH, "mousedown", reFocus); - on(d.scrollbarV, "mousedown", reFocus); - // Prevent wrapper from ever scrolling - on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); - - on(d.input, "keyup", function(e) { onKeyUp.call(cm, e); }); - on(d.input, "input", function() { - if (ie && ie_version >= 9 && cm.display.inputHasSelection) cm.display.inputHasSelection = null; - fastPoll(cm); - }); - on(d.input, "keydown", operation(cm, onKeyDown)); - on(d.input, "keypress", operation(cm, onKeyPress)); - on(d.input, "focus", bind(onFocus, cm)); - on(d.input, "blur", bind(onBlur, cm)); - - function drag_(e) { - if (!signalDOMEvent(cm, e)) e_stop(e); - } - if (cm.options.dragDrop) { - on(d.scroller, "dragstart", function(e){onDragStart(cm, e);}); - on(d.scroller, "dragenter", drag_); - on(d.scroller, "dragover", drag_); - on(d.scroller, "drop", operation(cm, onDrop)); - } - on(d.scroller, "paste", function(e) { - if (eventInWidget(d, e)) return; - cm.state.pasteIncoming = true; - focusInput(cm); - fastPoll(cm); - }); - on(d.input, "paste", function() { - // Workaround for webkit bug https://bugs.webkit.org/show_bug.cgi?id=90206 - // Add a char to the end of textarea before paste occur so that - // selection doesn't span to the end of textarea. - if (webkit && !cm.state.fakedLastChar && !(new Date - cm.state.lastMiddleDown < 200)) { - var start = d.input.selectionStart, end = d.input.selectionEnd; - d.input.value += "$"; - // The selection end needs to be set before the start, otherwise there - // can be an intermediate non-empty selection between the two, which - // can override the middle-click paste buffer on linux and cause the - // wrong thing to get pasted. - d.input.selectionEnd = end; - d.input.selectionStart = start; - cm.state.fakedLastChar = true; - } - cm.state.pasteIncoming = true; - fastPoll(cm); - }); - - function prepareCopyCut(e) { - if (cm.somethingSelected()) { - lastCopied = cm.getSelections(); - if (d.inaccurateSelection) { - d.prevInput = ""; - d.inaccurateSelection = false; - d.input.value = lastCopied.join("\n"); - selectInput(d.input); - } - } else { - var text = [], ranges = []; - for (var i = 0; i < cm.doc.sel.ranges.length; i++) { - var line = cm.doc.sel.ranges[i].head.line; - var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; - ranges.push(lineRange); - text.push(cm.getRange(lineRange.anchor, lineRange.head)); - } - if (e.type == "cut") { - cm.setSelections(ranges, null, sel_dontScroll); - } else { - d.prevInput = ""; - d.input.value = text.join("\n"); - selectInput(d.input); - } - lastCopied = text; - } - if (e.type == "cut") cm.state.cutIncoming = true; - } - on(d.input, "cut", prepareCopyCut); - on(d.input, "copy", prepareCopyCut); - - // Needed to handle Tab key in KHTML - if (khtml) on(d.sizer, "mouseup", function() { - if (activeElt() == d.input) d.input.blur(); - focusInput(cm); - }); - } - - // Called when the window resizes - function onResize(cm) { - var d = cm.display; - if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth) - return; - // Might be a text scaling operation, clear size caches. - d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; - cm.setSize(); - } - - // MOUSE EVENTS - - // Return true when the given mouse event happened in a widget - function eventInWidget(display, e) { - for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { - if (!n || n.ignoreEvents || n.parentNode == display.sizer && n != display.mover) return true; - } - } - - // Given a mouse event, find the corresponding position. If liberal - // is false, it checks whether a gutter or scrollbar was clicked, - // and returns null if it was. forRect is used by rectangular - // selections, and tries to estimate a character position even for - // coordinates beyond the right of the text. - function posFromMouse(cm, e, liberal, forRect) { - var display = cm.display; - if (!liberal) { - var target = e_target(e); - if (target == display.scrollbarH || target == display.scrollbarV || - target == display.scrollbarFiller || target == display.gutterFiller) return null; - } - var x, y, space = display.lineSpace.getBoundingClientRect(); - // Fails unpredictably on IE[67] when mouse is dragged around quickly. - try { x = e.clientX - space.left; y = e.clientY - space.top; } - catch (e) { return null; } - var coords = coordsChar(cm, x, y), line; - if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { - var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; - coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); - } - return coords; - } - - // A mouse down can be a single click, double click, triple click, - // start of selection drag, start of text drag, new cursor - // (ctrl-click), rectangle drag (alt-drag), or xwin - // middle-click-paste. Or it might be a click on something we should - // not interfere with, such as a scrollbar or widget. - function onMouseDown(e) { - if (signalDOMEvent(this, e)) return; - var cm = this, display = cm.display; - display.shift = e.shiftKey; - - if (eventInWidget(display, e)) { - if (!webkit) { - // Briefly turn off draggability, to allow widgets to do - // normal dragging things. - display.scroller.draggable = false; - setTimeout(function(){display.scroller.draggable = true;}, 100); - } - return; - } - if (clickInGutter(cm, e)) return; - var start = posFromMouse(cm, e); - window.focus(); - - switch (e_button(e)) { - case 1: - if (start) - leftButtonDown(cm, e, start); - else if (e_target(e) == display.scroller) - e_preventDefault(e); - break; - case 2: - if (webkit) cm.state.lastMiddleDown = +new Date; - if (start) extendSelection(cm.doc, start); - setTimeout(bind(focusInput, cm), 20); - e_preventDefault(e); - break; - case 3: - if (captureRightClick) onContextMenu(cm, e); - break; - } - } - - var lastClick, lastDoubleClick; - function leftButtonDown(cm, e, start) { - setTimeout(bind(ensureFocus, cm), 0); - - var now = +new Date, type; - if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) { - type = "triple"; - } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) { - type = "double"; - lastDoubleClick = {time: now, pos: start}; - } else { - type = "single"; - lastClick = {time: now, pos: start}; - } - - var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey; - if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && - type == "single" && sel.contains(start) > -1 && sel.somethingSelected()) - leftButtonStartDrag(cm, e, start, modifier); - else - leftButtonSelect(cm, e, start, type, modifier); - } - - // Start a text drag. When it ends, see if any dragging actually - // happen, and treat as a click if it didn't. - function leftButtonStartDrag(cm, e, start, modifier) { - var display = cm.display; - var dragEnd = operation(cm, function(e2) { - if (webkit) display.scroller.draggable = false; - cm.state.draggingText = false; - off(document, "mouseup", dragEnd); - off(display.scroller, "drop", dragEnd); - if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { - e_preventDefault(e2); - if (!modifier) - extendSelection(cm.doc, start); - focusInput(cm); - // Work around unexplainable focus problem in IE9 (#2127) - if (ie && ie_version == 9) - setTimeout(function() {document.body.focus(); focusInput(cm);}, 20); - } - }); - // Let the drag handler handle this. - if (webkit) display.scroller.draggable = true; - cm.state.draggingText = dragEnd; - // IE's approach to draggable - if (display.scroller.dragDrop) display.scroller.dragDrop(); - on(document, "mouseup", dragEnd); - on(display.scroller, "drop", dragEnd); - } - - // Normal selection, as opposed to text dragging. - function leftButtonSelect(cm, e, start, type, addNew) { - var display = cm.display, doc = cm.doc; - e_preventDefault(e); - - var ourRange, ourIndex, startSel = doc.sel; - if (addNew && !e.shiftKey) { - ourIndex = doc.sel.contains(start); - if (ourIndex > -1) - ourRange = doc.sel.ranges[ourIndex]; - else - ourRange = new Range(start, start); - } else { - ourRange = doc.sel.primary(); - } - - if (e.altKey) { - type = "rect"; - if (!addNew) ourRange = new Range(start, start); - start = posFromMouse(cm, e, true, true); - ourIndex = -1; - } else if (type == "double") { - var word = cm.findWordAt(start); - if (cm.display.shift || doc.extend) - ourRange = extendRange(doc, ourRange, word.anchor, word.head); - else - ourRange = word; - } else if (type == "triple") { - var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0))); - if (cm.display.shift || doc.extend) - ourRange = extendRange(doc, ourRange, line.anchor, line.head); - else - ourRange = line; - } else { - ourRange = extendRange(doc, ourRange, start); - } - - if (!addNew) { - ourIndex = 0; - setSelection(doc, new Selection([ourRange], 0), sel_mouse); - startSel = doc.sel; - } else if (ourIndex > -1) { - replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); - } else { - ourIndex = doc.sel.ranges.length; - setSelection(doc, normalizeSelection(doc.sel.ranges.concat([ourRange]), ourIndex), - {scroll: false, origin: "*mouse"}); - } - - var lastPos = start; - function extendTo(pos) { - if (cmp(lastPos, pos) == 0) return; - lastPos = pos; - - if (type == "rect") { - var ranges = [], tabSize = cm.options.tabSize; - var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); - var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); - var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); - for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); - line <= end; line++) { - var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); - if (left == right) - ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); - else if (text.length > leftPos) - ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); - } - if (!ranges.length) ranges.push(new Range(start, start)); - setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), - {origin: "*mouse", scroll: false}); - cm.scrollIntoView(pos); - } else { - var oldRange = ourRange; - var anchor = oldRange.anchor, head = pos; - if (type != "single") { - if (type == "double") - var range = cm.findWordAt(pos); - else - var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0))); - if (cmp(range.anchor, anchor) > 0) { - head = range.head; - anchor = minPos(oldRange.from(), range.anchor); - } else { - head = range.anchor; - anchor = maxPos(oldRange.to(), range.head); - } - } - var ranges = startSel.ranges.slice(0); - ranges[ourIndex] = new Range(clipPos(doc, anchor), head); - setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse); - } - } - - var editorSize = display.wrapper.getBoundingClientRect(); - // Used to ensure timeout re-tries don't fire when another extend - // happened in the meantime (clearTimeout isn't reliable -- at - // least on Chrome, the timeouts still happen even when cleared, - // if the clear happens after their scheduled firing time). - var counter = 0; - - function extend(e) { - var curCount = ++counter; - var cur = posFromMouse(cm, e, true, type == "rect"); - if (!cur) return; - if (cmp(cur, lastPos) != 0) { - ensureFocus(cm); - extendTo(cur); - var visible = visibleLines(display, doc); - if (cur.line >= visible.to || cur.line < visible.from) - setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150); - } else { - var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; - if (outside) setTimeout(operation(cm, function() { - if (counter != curCount) return; - display.scroller.scrollTop += outside; - extend(e); - }), 50); - } - } - - function done(e) { - counter = Infinity; - e_preventDefault(e); - focusInput(cm); - off(document, "mousemove", move); - off(document, "mouseup", up); - doc.history.lastSelOrigin = null; - } - - var move = operation(cm, function(e) { - if (!e_button(e)) done(e); - else extend(e); - }); - var up = operation(cm, done); - on(document, "mousemove", move); - on(document, "mouseup", up); - } - - // Determines whether an event happened in the gutter, and fires the - // handlers for the corresponding event. - function gutterEvent(cm, e, type, prevent, signalfn) { - try { var mX = e.clientX, mY = e.clientY; } - catch(e) { return false; } - if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false; - if (prevent) e_preventDefault(e); - - var display = cm.display; - var lineBox = display.lineDiv.getBoundingClientRect(); - - if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e); - mY -= lineBox.top - display.viewOffset; - - for (var i = 0; i < cm.options.gutters.length; ++i) { - var g = display.gutters.childNodes[i]; - if (g && g.getBoundingClientRect().right >= mX) { - var line = lineAtHeight(cm.doc, mY); - var gutter = cm.options.gutters[i]; - signalfn(cm, type, cm, line, gutter, e); - return e_defaultPrevented(e); - } - } - } - - function clickInGutter(cm, e) { - return gutterEvent(cm, e, "gutterClick", true, signalLater); - } - - // Kludge to work around strange IE behavior where it'll sometimes - // re-fire a series of drag-related events right after the drop (#1551) - var lastDrop = 0; - - function onDrop(e) { - var cm = this; - if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) - return; - e_preventDefault(e); - if (ie) lastDrop = +new Date; - var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; - if (!pos || isReadOnly(cm)) return; - // Might be a file drop, in which case we simply extract the text - // and insert it. - if (files && files.length && window.FileReader && window.File) { - var n = files.length, text = Array(n), read = 0; - var loadFile = function(file, i) { - var reader = new FileReader; - reader.onload = operation(cm, function() { - text[i] = reader.result; - if (++read == n) { - pos = clipPos(cm.doc, pos); - var change = {from: pos, to: pos, text: splitLines(text.join("\n")), origin: "paste"}; - makeChange(cm.doc, change); - setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change))); - } - }); - reader.readAsText(file); - }; - for (var i = 0; i < n; ++i) loadFile(files[i], i); - } else { // Normal drop - // Don't do a replace if the drop happened inside of the selected text. - if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { - cm.state.draggingText(e); - // Ensure the editor is re-focused - setTimeout(bind(focusInput, cm), 20); - return; - } - try { - var text = e.dataTransfer.getData("Text"); - if (text) { - if (cm.state.draggingText && !(mac ? e.metaKey : e.ctrlKey)) - var selected = cm.listSelections(); - setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); - if (selected) for (var i = 0; i < selected.length; ++i) - replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag"); - cm.replaceSelection(text, "around", "paste"); - focusInput(cm); - } - } - catch(e){} - } - } - - function onDragStart(cm, e) { - if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; } - if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return; - - e.dataTransfer.setData("Text", cm.getSelection()); - - // Use dummy image instead of default browsers image. - // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. - if (e.dataTransfer.setDragImage && !safari) { - var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); - img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; - if (presto) { - img.width = img.height = 1; - cm.display.wrapper.appendChild(img); - // Force a relayout, or Opera won't use our image for some obscure reason - img._top = img.offsetTop; - } - e.dataTransfer.setDragImage(img, 0, 0); - if (presto) img.parentNode.removeChild(img); - } - } - - // SCROLL EVENTS - - // Sync the scrollable area and scrollbars, ensure the viewport - // covers the visible area. - function setScrollTop(cm, val) { - if (Math.abs(cm.doc.scrollTop - val) < 2) return; - cm.doc.scrollTop = val; - if (!gecko) updateDisplaySimple(cm, {top: val}); - if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val; - if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val; - if (gecko) updateDisplaySimple(cm); - startWorker(cm, 100); - } - // Sync scroller and scrollbar, ensure the gutter elements are - // aligned. - function setScrollLeft(cm, val, isScroller) { - if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return; - val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); - cm.doc.scrollLeft = val; - alignHorizontally(cm); - if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; - if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val; - } - - // Since the delta values reported on mouse wheel events are - // unstandardized between browsers and even browser versions, and - // generally horribly unpredictable, this code starts by measuring - // the scroll effect that the first few mouse wheel events have, - // and, from that, detects the way it can convert deltas to pixel - // offsets afterwards. - // - // The reason we want to know the amount a wheel event will scroll - // is that it gives us a chance to update the display before the - // actual scrolling happens, reducing flickering. - - var wheelSamples = 0, wheelPixelsPerUnit = null; - // Fill in a browser-detected starting value on browsers where we - // know one. These don't have to be accurate -- the result of them - // being wrong would just be a slight flicker on the first wheel - // scroll (if it is large enough). - if (ie) wheelPixelsPerUnit = -.53; - else if (gecko) wheelPixelsPerUnit = 15; - else if (chrome) wheelPixelsPerUnit = -.7; - else if (safari) wheelPixelsPerUnit = -1/3; - - function onScrollWheel(cm, e) { - var dx = e.wheelDeltaX, dy = e.wheelDeltaY; - if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail; - if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail; - else if (dy == null) dy = e.wheelDelta; - - var display = cm.display, scroll = display.scroller; - // Quit if there's nothing to scroll here - if (!(dx && scroll.scrollWidth > scroll.clientWidth || - dy && scroll.scrollHeight > scroll.clientHeight)) return; - - // Webkit browsers on OS X abort momentum scrolls when the target - // of the scroll event is removed from the scrollable element. - // This hack (see related code in patchDisplay) makes sure the - // element is kept around. - if (dy && mac && webkit) { - outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { - for (var i = 0; i < view.length; i++) { - if (view[i].node == cur) { - cm.display.currentWheelTarget = cur; - break outer; - } - } - } - } - - // On some browsers, horizontal scrolling will cause redraws to - // happen before the gutter has been realigned, causing it to - // wriggle around in a most unseemly way. When we have an - // estimated pixels/delta value, we just handle horizontal - // scrolling entirely here. It'll be slightly off from native, but - // better than glitching out. - if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { - if (dy) - setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); - setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth))); - e_preventDefault(e); - display.wheelStartX = null; // Abort measurement, if in progress - return; - } - - // 'Project' the visible viewport to cover the area that is being - // scrolled into view (if we know enough to estimate it). - if (dy && wheelPixelsPerUnit != null) { - var pixels = dy * wheelPixelsPerUnit; - var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; - if (pixels < 0) top = Math.max(0, top + pixels - 50); - else bot = Math.min(cm.doc.height, bot + pixels + 50); - updateDisplaySimple(cm, {top: top, bottom: bot}); - } - - if (wheelSamples < 20) { - if (display.wheelStartX == null) { - display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; - display.wheelDX = dx; display.wheelDY = dy; - setTimeout(function() { - if (display.wheelStartX == null) return; - var movedX = scroll.scrollLeft - display.wheelStartX; - var movedY = scroll.scrollTop - display.wheelStartY; - var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || - (movedX && display.wheelDX && movedX / display.wheelDX); - display.wheelStartX = display.wheelStartY = null; - if (!sample) return; - wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); - ++wheelSamples; - }, 200); - } else { - display.wheelDX += dx; display.wheelDY += dy; - } - } - } - - // KEY EVENTS - - // Run a handler that was bound to a key. - function doHandleBinding(cm, bound, dropShift) { - if (typeof bound == "string") { - bound = commands[bound]; - if (!bound) return false; - } - // Ensure previous input has been read, so that the handler sees a - // consistent view of the document - if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false; - var prevShift = cm.display.shift, done = false; - try { - if (isReadOnly(cm)) cm.state.suppressEdits = true; - if (dropShift) cm.display.shift = false; - done = bound(cm) != Pass; - } finally { - cm.display.shift = prevShift; - cm.state.suppressEdits = false; - } - return done; - } - - function lookupKeyForEditor(cm, name, handle) { - for (var i = 0; i < cm.state.keyMaps.length; i++) { - var result = lookupKey(name, cm.state.keyMaps[i], handle); - if (result) return result; - } - return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle)) - || lookupKey(name, cm.options.keyMap, handle); - } - - var stopSeq = new Delayed; - function dispatchKey(cm, name, e, handle) { - var seq = cm.state.keySeq; - if (seq) { - if (isModifierKey(name)) return "handled"; - stopSeq.set(50, function() { - if (cm.state.keySeq == seq) { - cm.state.keySeq = null; - resetInput(cm); - } - }); - name = seq + " " + name; - } - var result = lookupKeyForEditor(cm, name, handle); - - if (result == "multi") - cm.state.keySeq = name; - if (result == "handled") - signalLater(cm, "keyHandled", cm, name, e); - - if (result == "handled" || result == "multi") { - e_preventDefault(e); - restartBlink(cm); - } - - if (seq && !result && /\'$/.test(name)) { - e_preventDefault(e); - return true; - } - return !!result; - } - - // Handle a key from the keydown event. - function handleKeyBinding(cm, e) { - var name = keyName(e, true); - if (!name) return false; - - if (e.shiftKey && !cm.state.keySeq) { - // First try to resolve full name (including 'Shift-'). Failing - // that, see if there is a cursor-motion command (starting with - // 'go') bound to the keyname without 'Shift-'. - return dispatchKey(cm, "Shift-" + name, e, function(b) {return doHandleBinding(cm, b, true);}) - || dispatchKey(cm, name, e, function(b) { - if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) - return doHandleBinding(cm, b); - }); - } else { - return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); }); - } - } - - // Handle a key from the keypress event - function handleCharBinding(cm, e, ch) { - return dispatchKey(cm, "'" + ch + "'", e, - function(b) { return doHandleBinding(cm, b, true); }); - } - - var lastStoppedKey = null; - function onKeyDown(e) { - var cm = this; - ensureFocus(cm); - if (signalDOMEvent(cm, e)) return; - // IE does strange things with escape. - if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false; - var code = e.keyCode; - cm.display.shift = code == 16 || e.shiftKey; - var handled = handleKeyBinding(cm, e); - if (presto) { - lastStoppedKey = handled ? code : null; - // Opera has no cut event... we try to at least catch the key combo - if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) - cm.replaceSelection("", null, "cut"); - } - - // Turn mouse into crosshair when Alt is held on Mac. - if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) - showCrossHair(cm); - } - - function showCrossHair(cm) { - var lineDiv = cm.display.lineDiv; - addClass(lineDiv, "CodeMirror-crosshair"); - - function up(e) { - if (e.keyCode == 18 || !e.altKey) { - rmClass(lineDiv, "CodeMirror-crosshair"); - off(document, "keyup", up); - off(document, "mouseover", up); - } - } - on(document, "keyup", up); - on(document, "mouseover", up); - } - - function onKeyUp(e) { - if (e.keyCode == 16) this.doc.sel.shift = false; - signalDOMEvent(this, e); - } - - function onKeyPress(e) { - var cm = this; - if (signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return; - var keyCode = e.keyCode, charCode = e.charCode; - if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} - if (((presto && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return; - var ch = String.fromCharCode(charCode == null ? keyCode : charCode); - if (handleCharBinding(cm, e, ch)) return; - if (ie && ie_version >= 9) cm.display.inputHasSelection = null; - fastPoll(cm); - } - - // FOCUS/BLUR EVENTS - - function onFocus(cm) { - if (cm.options.readOnly == "nocursor") return; - if (!cm.state.focused) { - signal(cm, "focus", cm); - cm.state.focused = true; - addClass(cm.display.wrapper, "CodeMirror-focused"); - // The prevInput test prevents this from firing when a context - // menu is closed (since the resetInput would kill the - // select-all detection hack) - if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { - resetInput(cm); - if (webkit) setTimeout(bind(resetInput, cm, true), 0); // Issue #1730 - } - } - slowPoll(cm); - restartBlink(cm); - } - function onBlur(cm) { - if (cm.state.focused) { - signal(cm, "blur", cm); - cm.state.focused = false; - rmClass(cm.display.wrapper, "CodeMirror-focused"); - } - clearInterval(cm.display.blinker); - setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150); - } - - // CONTEXT MENU HANDLING - - // To make the context menu work, we need to briefly unhide the - // textarea (making it as unobtrusive as possible) to let the - // right-click take effect on it. - function onContextMenu(cm, e) { - if (signalDOMEvent(cm, e, "contextmenu")) return; - var display = cm.display; - if (eventInWidget(display, e) || contextMenuInGutter(cm, e)) return; - - var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; - if (!pos || presto) return; // Opera is difficult. - - // Reset the current text selection only if the click is done outside of the selection - // and 'resetSelectionOnContextMenu' option is true. - var reset = cm.options.resetSelectionOnContextMenu; - if (reset && cm.doc.sel.contains(pos) == -1) - operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); - - var oldCSS = display.input.style.cssText; - display.inputDiv.style.position = "absolute"; - display.input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + - "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: " + - (ie ? "rgba(255, 255, 255, .05)" : "transparent") + - "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; - if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712) - focusInput(cm); - if (webkit) window.scrollTo(null, oldScrollY); - resetInput(cm); - // Adds "Select all" to context menu in FF - if (!cm.somethingSelected()) display.input.value = display.prevInput = " "; - display.selForContextMenu = cm.doc.sel; - clearTimeout(display.detectingSelectAll); - - // Select-all will be greyed out if there's nothing to select, so - // this adds a zero-width space so that we can later check whether - // it got selected. - function prepareSelectAllHack() { - if (display.input.selectionStart != null) { - var selected = cm.somethingSelected(); - var extval = display.input.value = "\u200b" + (selected ? display.input.value : ""); - display.prevInput = selected ? "" : "\u200b"; - display.input.selectionStart = 1; display.input.selectionEnd = extval.length; - // Re-set this, in case some other handler touched the - // selection in the meantime. - display.selForContextMenu = cm.doc.sel; - } - } - function rehide() { - display.inputDiv.style.position = "relative"; - display.input.style.cssText = oldCSS; - if (ie && ie_version < 9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos; - slowPoll(cm); - - // Try to detect the user choosing select-all - if (display.input.selectionStart != null) { - if (!ie || (ie && ie_version < 9)) prepareSelectAllHack(); - var i = 0, poll = function() { - if (display.selForContextMenu == cm.doc.sel && display.input.selectionStart == 0) - operation(cm, commands.selectAll)(cm); - else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500); - else resetInput(cm); - }; - display.detectingSelectAll = setTimeout(poll, 200); - } - } - - if (ie && ie_version >= 9) prepareSelectAllHack(); - if (captureRightClick) { - e_stop(e); - var mouseup = function() { - off(window, "mouseup", mouseup); - setTimeout(rehide, 20); - }; - on(window, "mouseup", mouseup); - } else { - setTimeout(rehide, 50); - } - } - - function contextMenuInGutter(cm, e) { - if (!hasHandler(cm, "gutterContextMenu")) return false; - return gutterEvent(cm, e, "gutterContextMenu", false, signal); - } - - // UPDATING - - // Compute the position of the end of a change (its 'to' property - // refers to the pre-change end). - var changeEnd = CodeMirror.changeEnd = function(change) { - if (!change.text) return change.to; - return Pos(change.from.line + change.text.length - 1, - lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); - }; - - // Adjust a position to refer to the post-change position of the - // same text, or the end of the change if the change covers it. - function adjustForChange(pos, change) { - if (cmp(pos, change.from) < 0) return pos; - if (cmp(pos, change.to) <= 0) return changeEnd(change); - - var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; - if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch; - return Pos(line, ch); - } - - function computeSelAfterChange(doc, change) { - var out = []; - for (var i = 0; i < doc.sel.ranges.length; i++) { - var range = doc.sel.ranges[i]; - out.push(new Range(adjustForChange(range.anchor, change), - adjustForChange(range.head, change))); - } - return normalizeSelection(out, doc.sel.primIndex); - } - - function offsetPos(pos, old, nw) { - if (pos.line == old.line) - return Pos(nw.line, pos.ch - old.ch + nw.ch); - else - return Pos(nw.line + (pos.line - old.line), pos.ch); - } - - // Used by replaceSelections to allow moving the selection to the - // start or around the replaced test. Hint may be "start" or "around". - function computeReplacedSel(doc, changes, hint) { - var out = []; - var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - var from = offsetPos(change.from, oldPrev, newPrev); - var to = offsetPos(changeEnd(change), oldPrev, newPrev); - oldPrev = change.to; - newPrev = to; - if (hint == "around") { - var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; - out[i] = new Range(inv ? to : from, inv ? from : to); - } else { - out[i] = new Range(from, from); - } - } - return new Selection(out, doc.sel.primIndex); - } - - // Allow "beforeChange" event handlers to influence a change - function filterChange(doc, change, update) { - var obj = { - canceled: false, - from: change.from, - to: change.to, - text: change.text, - origin: change.origin, - cancel: function() { this.canceled = true; } - }; - if (update) obj.update = function(from, to, text, origin) { - if (from) this.from = clipPos(doc, from); - if (to) this.to = clipPos(doc, to); - if (text) this.text = text; - if (origin !== undefined) this.origin = origin; - }; - signal(doc, "beforeChange", doc, obj); - if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj); - - if (obj.canceled) return null; - return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}; - } - - // Apply a change to a document, and add it to the document's - // history, and propagating it to all linked documents. - function makeChange(doc, change, ignoreReadOnly) { - if (doc.cm) { - if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly); - if (doc.cm.state.suppressEdits) return; - } - - if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { - change = filterChange(doc, change, true); - if (!change) return; - } - - // Possibly split or suppress the update based on the presence - // of read-only spans in its range. - var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); - if (split) { - for (var i = split.length - 1; i >= 0; --i) - makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text}); - } else { - makeChangeInner(doc, change); - } - } - - function makeChangeInner(doc, change) { - if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return; - var selAfter = computeSelAfterChange(doc, change); - addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); - - makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); - var rebased = []; - - linkedDocs(doc, function(doc, sharedHist) { - if (!sharedHist && indexOf(rebased, doc.history) == -1) { - rebaseHist(doc.history, change); - rebased.push(doc.history); - } - makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); - }); - } - - // Revert a change stored in a document's history. - function makeChangeFromHistory(doc, type, allowSelectionOnly) { - if (doc.cm && doc.cm.state.suppressEdits) return; - - var hist = doc.history, event, selAfter = doc.sel; - var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; - - // Verify that there is a useable event (so that ctrl-z won't - // needlessly clear selection events) - for (var i = 0; i < source.length; i++) { - event = source[i]; - if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) - break; - } - if (i == source.length) return; - hist.lastOrigin = hist.lastSelOrigin = null; - - for (;;) { - event = source.pop(); - if (event.ranges) { - pushSelectionToHistory(event, dest); - if (allowSelectionOnly && !event.equals(doc.sel)) { - setSelection(doc, event, {clearRedo: false}); - return; - } - selAfter = event; - } - else break; - } - - // Build up a reverse change object to add to the opposite history - // stack (redo when undoing, and vice versa). - var antiChanges = []; - pushSelectionToHistory(selAfter, dest); - dest.push({changes: antiChanges, generation: hist.generation}); - hist.generation = event.generation || ++hist.maxGeneration; - - var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); - - for (var i = event.changes.length - 1; i >= 0; --i) { - var change = event.changes[i]; - change.origin = type; - if (filter && !filterChange(doc, change, false)) { - source.length = 0; - return; - } - - antiChanges.push(historyChangeFromChange(doc, change)); - - var after = i ? computeSelAfterChange(doc, change) : lst(source); - makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); - if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); - var rebased = []; - - // Propagate to the linked documents - linkedDocs(doc, function(doc, sharedHist) { - if (!sharedHist && indexOf(rebased, doc.history) == -1) { - rebaseHist(doc.history, change); - rebased.push(doc.history); - } - makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); - }); - } - } - - // Sub-views need their line numbers shifted when text is added - // above or below them in the parent document. - function shiftDoc(doc, distance) { - if (distance == 0) return; - doc.first += distance; - doc.sel = new Selection(map(doc.sel.ranges, function(range) { - return new Range(Pos(range.anchor.line + distance, range.anchor.ch), - Pos(range.head.line + distance, range.head.ch)); - }), doc.sel.primIndex); - if (doc.cm) { - regChange(doc.cm, doc.first, doc.first - distance, distance); - for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) - regLineChange(doc.cm, l, "gutter"); - } - } - - // More lower-level change function, handling only a single document - // (not linked ones). - function makeChangeSingleDoc(doc, change, selAfter, spans) { - if (doc.cm && !doc.cm.curOp) - return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); - - if (change.to.line < doc.first) { - shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); - return; - } - if (change.from.line > doc.lastLine()) return; - - // Clip the change to the size of this doc - if (change.from.line < doc.first) { - var shift = change.text.length - 1 - (doc.first - change.from.line); - shiftDoc(doc, shift); - change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), - text: [lst(change.text)], origin: change.origin}; - } - var last = doc.lastLine(); - if (change.to.line > last) { - change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), - text: [change.text[0]], origin: change.origin}; - } - - change.removed = getBetween(doc, change.from, change.to); - - if (!selAfter) selAfter = computeSelAfterChange(doc, change); - if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans); - else updateDoc(doc, change, spans); - setSelectionNoUndo(doc, selAfter, sel_dontScroll); - } - - // Handle the interaction of a change to a document with the editor - // that this document is part of. - function makeChangeSingleDocInEditor(cm, change, spans) { - var doc = cm.doc, display = cm.display, from = change.from, to = change.to; - - var recomputeMaxLength = false, checkWidthStart = from.line; - if (!cm.options.lineWrapping) { - checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); - doc.iter(checkWidthStart, to.line + 1, function(line) { - if (line == display.maxLine) { - recomputeMaxLength = true; - return true; - } - }); - } - - if (doc.sel.contains(change.from, change.to) > -1) - signalCursorActivity(cm); - - updateDoc(doc, change, spans, estimateHeight(cm)); - - if (!cm.options.lineWrapping) { - doc.iter(checkWidthStart, from.line + change.text.length, function(line) { - var len = lineLength(line); - if (len > display.maxLineLength) { - display.maxLine = line; - display.maxLineLength = len; - display.maxLineChanged = true; - recomputeMaxLength = false; - } - }); - if (recomputeMaxLength) cm.curOp.updateMaxLine = true; - } - - // Adjust frontier, schedule worker - doc.frontier = Math.min(doc.frontier, from.line); - startWorker(cm, 400); - - var lendiff = change.text.length - (to.line - from.line) - 1; - // Remember that these lines changed, for updating the display - if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) - regLineChange(cm, from.line, "text"); - else - regChange(cm, from.line, to.line + 1, lendiff); - - var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); - if (changeHandler || changesHandler) { - var obj = { - from: from, to: to, - text: change.text, - removed: change.removed, - origin: change.origin - }; - if (changeHandler) signalLater(cm, "change", cm, obj); - if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); - } - cm.display.selForContextMenu = null; - } - - function replaceRange(doc, code, from, to, origin) { - if (!to) to = from; - if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; } - if (typeof code == "string") code = splitLines(code); - makeChange(doc, {from: from, to: to, text: code, origin: origin}); - } - - // SCROLLING THINGS INTO VIEW - - // If an editor sits on the top or bottom of the window, partially - // scrolled out of view, this ensures that the cursor is visible. - function maybeScrollWindow(cm, coords) { - if (signalDOMEvent(cm, "scrollCursorIntoView")) return; - - var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; - if (coords.top + box.top < 0) doScroll = true; - else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; - if (doScroll != null && !phantom) { - var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " + - (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " + - (coords.bottom - coords.top + scrollerCutOff) + "px; left: " + - coords.left + "px; width: 2px;"); - cm.display.lineSpace.appendChild(scrollNode); - scrollNode.scrollIntoView(doScroll); - cm.display.lineSpace.removeChild(scrollNode); - } - } - - // Scroll a given position into view (immediately), verifying that - // it actually became visible (as line heights are accurately - // measured, the position of something may 'drift' during drawing). - function scrollPosIntoView(cm, pos, end, margin) { - if (margin == null) margin = 0; - for (var limit = 0; limit < 5; limit++) { - var changed = false, coords = cursorCoords(cm, pos); - var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); - var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left), - Math.min(coords.top, endCoords.top) - margin, - Math.max(coords.left, endCoords.left), - Math.max(coords.bottom, endCoords.bottom) + margin); - var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; - if (scrollPos.scrollTop != null) { - setScrollTop(cm, scrollPos.scrollTop); - if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true; - } - if (scrollPos.scrollLeft != null) { - setScrollLeft(cm, scrollPos.scrollLeft); - if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true; - } - if (!changed) return coords; - } - } - - // Scroll a given set of coordinates into view (immediately). - function scrollIntoView(cm, x1, y1, x2, y2) { - var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2); - if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop); - if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft); - } - - // Calculate a new scroll position needed to scroll the given - // rectangle into view. Returns an object with scrollTop and - // scrollLeft properties. When these are undefined, the - // vertical/horizontal position does not need to be adjusted. - function calculateScrollPos(cm, x1, y1, x2, y2) { - var display = cm.display, snapMargin = textHeight(cm.display); - if (y1 < 0) y1 = 0; - var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; - var screen = display.scroller.clientHeight - scrollerCutOff, result = {}; - if (y2 - y1 > screen) y2 = y1 + screen; - var docBottom = cm.doc.height + paddingVert(display); - var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin; - if (y1 < screentop) { - result.scrollTop = atTop ? 0 : y1; - } else if (y2 > screentop + screen) { - var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen); - if (newTop != screentop) result.scrollTop = newTop; - } - - var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; - var screenw = display.scroller.clientWidth - scrollerCutOff - display.gutters.offsetWidth; - var tooWide = x2 - x1 > screenw; - if (tooWide) x2 = x1 + screenw; - if (x1 < 10) - result.scrollLeft = 0; - else if (x1 < screenleft) - result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10)); - else if (x2 > screenw + screenleft - 3) - result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw; - - return result; - } - - // Store a relative adjustment to the scroll position in the current - // operation (to be applied when the operation finishes). - function addToScrollPos(cm, left, top) { - if (left != null || top != null) resolveScrollToPos(cm); - if (left != null) - cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left; - if (top != null) - cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; - } - - // Make sure that at the end of the operation the current cursor is - // shown. - function ensureCursorVisible(cm) { - resolveScrollToPos(cm); - var cur = cm.getCursor(), from = cur, to = cur; - if (!cm.options.lineWrapping) { - from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur; - to = Pos(cur.line, cur.ch + 1); - } - cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true}; - } - - // When an operation has its scrollToPos property set, and another - // scroll action is applied before the end of the operation, this - // 'simulates' scrolling that position into view in a cheap way, so - // that the effect of intermediate scroll commands is not ignored. - function resolveScrollToPos(cm) { - var range = cm.curOp.scrollToPos; - if (range) { - cm.curOp.scrollToPos = null; - var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to); - var sPos = calculateScrollPos(cm, Math.min(from.left, to.left), - Math.min(from.top, to.top) - range.margin, - Math.max(from.right, to.right), - Math.max(from.bottom, to.bottom) + range.margin); - cm.scrollTo(sPos.scrollLeft, sPos.scrollTop); - } - } - - // API UTILITIES - - // Indent the given line. The how parameter can be "smart", - // "add"/null, "subtract", or "prev". When aggressive is false - // (typically set to true for forced single-line indents), empty - // lines are not indented, and places where the mode returns Pass - // are left alone. - function indentLine(cm, n, how, aggressive) { - var doc = cm.doc, state; - if (how == null) how = "add"; - if (how == "smart") { - // Fall back to "prev" when the mode doesn't have an indentation - // method. - if (!doc.mode.indent) how = "prev"; - else state = getStateBefore(cm, n); - } - - var tabSize = cm.options.tabSize; - var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); - if (line.stateAfter) line.stateAfter = null; - var curSpaceString = line.text.match(/^\s*/)[0], indentation; - if (!aggressive && !/\S/.test(line.text)) { - indentation = 0; - how = "not"; - } else if (how == "smart") { - indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); - if (indentation == Pass || indentation > 150) { - if (!aggressive) return; - how = "prev"; - } - } - if (how == "prev") { - if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize); - else indentation = 0; - } else if (how == "add") { - indentation = curSpace + cm.options.indentUnit; - } else if (how == "subtract") { - indentation = curSpace - cm.options.indentUnit; - } else if (typeof how == "number") { - indentation = curSpace + how; - } - indentation = Math.max(0, indentation); - - var indentString = "", pos = 0; - if (cm.options.indentWithTabs) - for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} - if (pos < indentation) indentString += spaceStr(indentation - pos); - - if (indentString != curSpaceString) { - replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); - } else { - // Ensure that, if the cursor was in the whitespace at the start - // of the line, it is moved to the end of that space. - for (var i = 0; i < doc.sel.ranges.length; i++) { - var range = doc.sel.ranges[i]; - if (range.head.line == n && range.head.ch < curSpaceString.length) { - var pos = Pos(n, curSpaceString.length); - replaceOneSelection(doc, i, new Range(pos, pos)); - break; - } - } - } - line.stateAfter = null; - } - - // Utility for applying a change to a line by handle or number, - // returning the number and optionally registering the line as - // changed. - function changeLine(doc, handle, changeType, op) { - var no = handle, line = handle; - if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle)); - else no = lineNo(handle); - if (no == null) return null; - if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType); - return line; - } - - // Helper for deleting text near the selection(s), used to implement - // backspace, delete, and similar functionality. - function deleteNearSelection(cm, compute) { - var ranges = cm.doc.sel.ranges, kill = []; - // Build up a set of ranges to kill first, merging overlapping - // ranges. - for (var i = 0; i < ranges.length; i++) { - var toKill = compute(ranges[i]); - while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { - var replaced = kill.pop(); - if (cmp(replaced.from, toKill.from) < 0) { - toKill.from = replaced.from; - break; - } - } - kill.push(toKill); - } - // Next, remove those actual ranges. - runInOp(cm, function() { - for (var i = kill.length - 1; i >= 0; i--) - replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); - ensureCursorVisible(cm); - }); - } - - // Used for horizontal relative motion. Dir is -1 or 1 (left or - // right), unit can be "char", "column" (like char, but doesn't - // cross line boundaries), "word" (across next word), or "group" (to - // the start of next group of word or non-word-non-whitespace - // chars). The visually param controls whether, in right-to-left - // text, direction 1 means to move towards the next index in the - // string, or towards the character to the right of the current - // position. The resulting position will have a hitSide=true - // property if it reached the end of the document. - function findPosH(doc, pos, dir, unit, visually) { - var line = pos.line, ch = pos.ch, origDir = dir; - var lineObj = getLine(doc, line); - var possible = true; - function findNextLine() { - var l = line + dir; - if (l < doc.first || l >= doc.first + doc.size) return (possible = false); - line = l; - return lineObj = getLine(doc, l); - } - function moveOnce(boundToLine) { - var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true); - if (next == null) { - if (!boundToLine && findNextLine()) { - if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj); - else ch = dir < 0 ? lineObj.text.length : 0; - } else return (possible = false); - } else ch = next; - return true; - } - - if (unit == "char") moveOnce(); - else if (unit == "column") moveOnce(true); - else if (unit == "word" || unit == "group") { - var sawType = null, group = unit == "group"; - var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); - for (var first = true;; first = false) { - if (dir < 0 && !moveOnce(!first)) break; - var cur = lineObj.text.charAt(ch) || "\n"; - var type = isWordChar(cur, helper) ? "w" - : group && cur == "\n" ? "n" - : !group || /\s/.test(cur) ? null - : "p"; - if (group && !first && !type) type = "s"; - if (sawType && sawType != type) { - if (dir < 0) {dir = 1; moveOnce();} - break; - } - - if (type) sawType = type; - if (dir > 0 && !moveOnce(!first)) break; - } - } - var result = skipAtomic(doc, Pos(line, ch), origDir, true); - if (!possible) result.hitSide = true; - return result; - } - - // For relative vertical movement. Dir may be -1 or 1. Unit can be - // "page" or "line". The resulting position will have a hitSide=true - // property if it reached the end of the document. - function findPosV(cm, pos, dir, unit) { - var doc = cm.doc, x = pos.left, y; - if (unit == "page") { - var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); - y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display)); - } else if (unit == "line") { - y = dir > 0 ? pos.bottom + 3 : pos.top - 3; - } - for (;;) { - var target = coordsChar(cm, x, y); - if (!target.outside) break; - if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; } - y += dir * 5; - } - return target; - } - - // EDITOR METHODS - - // The publicly visible API. Note that methodOp(f) means - // 'wrap f in an operation, performed on its `this` parameter'. - - // This is not the complete set of editor methods. Most of the - // methods defined on the Doc type are also injected into - // CodeMirror.prototype, for backwards compatibility and - // convenience. - - CodeMirror.prototype = { - constructor: CodeMirror, - focus: function(){window.focus(); focusInput(this); fastPoll(this);}, - - setOption: function(option, value) { - var options = this.options, old = options[option]; - if (options[option] == value && option != "mode") return; - options[option] = value; - if (optionHandlers.hasOwnProperty(option)) - operation(this, optionHandlers[option])(this, value, old); - }, - - getOption: function(option) {return this.options[option];}, - getDoc: function() {return this.doc;}, - - addKeyMap: function(map, bottom) { - this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map)); - }, - removeKeyMap: function(map) { - var maps = this.state.keyMaps; - for (var i = 0; i < maps.length; ++i) - if (maps[i] == map || maps[i].name == map) { - maps.splice(i, 1); - return true; - } - }, - - addOverlay: methodOp(function(spec, options) { - var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); - if (mode.startState) throw new Error("Overlays may not be stateful."); - this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque}); - this.state.modeGen++; - regChange(this); - }), - removeOverlay: methodOp(function(spec) { - var overlays = this.state.overlays; - for (var i = 0; i < overlays.length; ++i) { - var cur = overlays[i].modeSpec; - if (cur == spec || typeof spec == "string" && cur.name == spec) { - overlays.splice(i, 1); - this.state.modeGen++; - regChange(this); - return; - } - } - }), - - indentLine: methodOp(function(n, dir, aggressive) { - if (typeof dir != "string" && typeof dir != "number") { - if (dir == null) dir = this.options.smartIndent ? "smart" : "prev"; - else dir = dir ? "add" : "subtract"; - } - if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive); - }), - indentSelection: methodOp(function(how) { - var ranges = this.doc.sel.ranges, end = -1; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - if (!range.empty()) { - var from = range.from(), to = range.to(); - var start = Math.max(end, from.line); - end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; - for (var j = start; j < end; ++j) - indentLine(this, j, how); - var newRanges = this.doc.sel.ranges; - if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) - replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); - } else if (range.head.line > end) { - indentLine(this, range.head.line, how, true); - end = range.head.line; - if (i == this.doc.sel.primIndex) ensureCursorVisible(this); - } - } - }), - - // Fetch the parser token for a given character. Useful for hacks - // that want to inspect the mode state (say, for completion). - getTokenAt: function(pos, precise) { - return takeToken(this, pos, precise); - }, - - getLineTokens: function(line, precise) { - return takeToken(this, Pos(line), precise, true); - }, - - getTokenTypeAt: function(pos) { - pos = clipPos(this.doc, pos); - var styles = getLineStyles(this, getLine(this.doc, pos.line)); - var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; - var type; - if (ch == 0) type = styles[2]; - else for (;;) { - var mid = (before + after) >> 1; - if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid; - else if (styles[mid * 2 + 1] < ch) before = mid + 1; - else { type = styles[mid * 2 + 2]; break; } - } - var cut = type ? type.indexOf("cm-overlay ") : -1; - return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1); - }, - - getModeAt: function(pos) { - var mode = this.doc.mode; - if (!mode.innerMode) return mode; - return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode; - }, - - getHelper: function(pos, type) { - return this.getHelpers(pos, type)[0]; - }, - - getHelpers: function(pos, type) { - var found = []; - if (!helpers.hasOwnProperty(type)) return helpers; - var help = helpers[type], mode = this.getModeAt(pos); - if (typeof mode[type] == "string") { - if (help[mode[type]]) found.push(help[mode[type]]); - } else if (mode[type]) { - for (var i = 0; i < mode[type].length; i++) { - var val = help[mode[type][i]]; - if (val) found.push(val); - } - } else if (mode.helperType && help[mode.helperType]) { - found.push(help[mode.helperType]); - } else if (help[mode.name]) { - found.push(help[mode.name]); - } - for (var i = 0; i < help._global.length; i++) { - var cur = help._global[i]; - if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) - found.push(cur.val); - } - return found; - }, - - getStateAfter: function(line, precise) { - var doc = this.doc; - line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); - return getStateBefore(this, line + 1, precise); - }, - - cursorCoords: function(start, mode) { - var pos, range = this.doc.sel.primary(); - if (start == null) pos = range.head; - else if (typeof start == "object") pos = clipPos(this.doc, start); - else pos = start ? range.from() : range.to(); - return cursorCoords(this, pos, mode || "page"); - }, - - charCoords: function(pos, mode) { - return charCoords(this, clipPos(this.doc, pos), mode || "page"); - }, - - coordsChar: function(coords, mode) { - coords = fromCoordSystem(this, coords, mode || "page"); - return coordsChar(this, coords.left, coords.top); - }, - - lineAtHeight: function(height, mode) { - height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; - return lineAtHeight(this.doc, height + this.display.viewOffset); - }, - heightAtLine: function(line, mode) { - var end = false, last = this.doc.first + this.doc.size - 1; - if (line < this.doc.first) line = this.doc.first; - else if (line > last) { line = last; end = true; } - var lineObj = getLine(this.doc, line); - return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top + - (end ? this.doc.height - heightAtLine(lineObj) : 0); - }, - - defaultTextHeight: function() { return textHeight(this.display); }, - defaultCharWidth: function() { return charWidth(this.display); }, - - setGutterMarker: methodOp(function(line, gutterID, value) { - return changeLine(this.doc, line, "gutter", function(line) { - var markers = line.gutterMarkers || (line.gutterMarkers = {}); - markers[gutterID] = value; - if (!value && isEmpty(markers)) line.gutterMarkers = null; - return true; - }); - }), - - clearGutter: methodOp(function(gutterID) { - var cm = this, doc = cm.doc, i = doc.first; - doc.iter(function(line) { - if (line.gutterMarkers && line.gutterMarkers[gutterID]) { - line.gutterMarkers[gutterID] = null; - regLineChange(cm, i, "gutter"); - if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null; - } - ++i; - }); - }), - - addLineWidget: methodOp(function(handle, node, options) { - return addLineWidget(this, handle, node, options); - }), - - removeLineWidget: function(widget) { widget.clear(); }, - - lineInfo: function(line) { - if (typeof line == "number") { - if (!isLine(this.doc, line)) return null; - var n = line; - line = getLine(this.doc, line); - if (!line) return null; - } else { - var n = lineNo(line); - if (n == null) return null; - } - return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, - textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, - widgets: line.widgets}; - }, - - getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};}, - - addWidget: function(pos, node, scroll, vert, horiz) { - var display = this.display; - pos = cursorCoords(this, clipPos(this.doc, pos)); - var top = pos.bottom, left = pos.left; - node.style.position = "absolute"; - display.sizer.appendChild(node); - if (vert == "over") { - top = pos.top; - } else if (vert == "above" || vert == "near") { - var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), - hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); - // Default to positioning above (if specified and possible); otherwise default to positioning below - if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) - top = pos.top - node.offsetHeight; - else if (pos.bottom + node.offsetHeight <= vspace) - top = pos.bottom; - if (left + node.offsetWidth > hspace) - left = hspace - node.offsetWidth; - } - node.style.top = top + "px"; - node.style.left = node.style.right = ""; - if (horiz == "right") { - left = display.sizer.clientWidth - node.offsetWidth; - node.style.right = "0px"; - } else { - if (horiz == "left") left = 0; - else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2; - node.style.left = left + "px"; - } - if (scroll) - scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight); - }, - - triggerOnKeyDown: methodOp(onKeyDown), - triggerOnKeyPress: methodOp(onKeyPress), - triggerOnKeyUp: onKeyUp, - - execCommand: function(cmd) { - if (commands.hasOwnProperty(cmd)) - return commands[cmd](this); - }, - - findPosH: function(from, amount, unit, visually) { - var dir = 1; - if (amount < 0) { dir = -1; amount = -amount; } - for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { - cur = findPosH(this.doc, cur, dir, unit, visually); - if (cur.hitSide) break; - } - return cur; - }, - - moveH: methodOp(function(dir, unit) { - var cm = this; - cm.extendSelectionsBy(function(range) { - if (cm.display.shift || cm.doc.extend || range.empty()) - return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually); - else - return dir < 0 ? range.from() : range.to(); - }, sel_move); - }), - - deleteH: methodOp(function(dir, unit) { - var sel = this.doc.sel, doc = this.doc; - if (sel.somethingSelected()) - doc.replaceSelection("", null, "+delete"); - else - deleteNearSelection(this, function(range) { - var other = findPosH(doc, range.head, dir, unit, false); - return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}; - }); - }), - - findPosV: function(from, amount, unit, goalColumn) { - var dir = 1, x = goalColumn; - if (amount < 0) { dir = -1; amount = -amount; } - for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { - var coords = cursorCoords(this, cur, "div"); - if (x == null) x = coords.left; - else coords.left = x; - cur = findPosV(this, coords, dir, unit); - if (cur.hitSide) break; - } - return cur; - }, - - moveV: methodOp(function(dir, unit) { - var cm = this, doc = this.doc, goals = []; - var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected(); - doc.extendSelectionsBy(function(range) { - if (collapse) - return dir < 0 ? range.from() : range.to(); - var headPos = cursorCoords(cm, range.head, "div"); - if (range.goalColumn != null) headPos.left = range.goalColumn; - goals.push(headPos.left); - var pos = findPosV(cm, headPos, dir, unit); - if (unit == "page" && range == doc.sel.primary()) - addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top); - return pos; - }, sel_move); - if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++) - doc.sel.ranges[i].goalColumn = goals[i]; - }), - - // Find the word at the given position (as returned by coordsChar). - findWordAt: function(pos) { - var doc = this.doc, line = getLine(doc, pos.line).text; - var start = pos.ch, end = pos.ch; - if (line) { - var helper = this.getHelper(pos, "wordChars"); - if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end; - var startChar = line.charAt(start); - var check = isWordChar(startChar, helper) - ? function(ch) { return isWordChar(ch, helper); } - : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} - : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; - while (start > 0 && check(line.charAt(start - 1))) --start; - while (end < line.length && check(line.charAt(end))) ++end; - } - return new Range(Pos(pos.line, start), Pos(pos.line, end)); - }, - - toggleOverwrite: function(value) { - if (value != null && value == this.state.overwrite) return; - if (this.state.overwrite = !this.state.overwrite) - addClass(this.display.cursorDiv, "CodeMirror-overwrite"); - else - rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); - - signal(this, "overwriteToggle", this, this.state.overwrite); - }, - hasFocus: function() { return activeElt() == this.display.input; }, - - scrollTo: methodOp(function(x, y) { - if (x != null || y != null) resolveScrollToPos(this); - if (x != null) this.curOp.scrollLeft = x; - if (y != null) this.curOp.scrollTop = y; - }), - getScrollInfo: function() { - var scroller = this.display.scroller, co = scrollerCutOff; - return {left: scroller.scrollLeft, top: scroller.scrollTop, - height: scroller.scrollHeight - co, width: scroller.scrollWidth - co, - clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co}; - }, - - scrollIntoView: methodOp(function(range, margin) { - if (range == null) { - range = {from: this.doc.sel.primary().head, to: null}; - if (margin == null) margin = this.options.cursorScrollMargin; - } else if (typeof range == "number") { - range = {from: Pos(range, 0), to: null}; - } else if (range.from == null) { - range = {from: range, to: null}; - } - if (!range.to) range.to = range.from; - range.margin = margin || 0; - - if (range.from.line != null) { - resolveScrollToPos(this); - this.curOp.scrollToPos = range; - } else { - var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left), - Math.min(range.from.top, range.to.top) - range.margin, - Math.max(range.from.right, range.to.right), - Math.max(range.from.bottom, range.to.bottom) + range.margin); - this.scrollTo(sPos.scrollLeft, sPos.scrollTop); - } - }), - - setSize: methodOp(function(width, height) { - var cm = this; - function interpret(val) { - return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; - } - if (width != null) cm.display.wrapper.style.width = interpret(width); - if (height != null) cm.display.wrapper.style.height = interpret(height); - if (cm.options.lineWrapping) clearLineMeasurementCache(this); - var lineNo = cm.display.viewFrom; - cm.doc.iter(lineNo, cm.display.viewTo, function(line) { - if (line.widgets) for (var i = 0; i < line.widgets.length; i++) - if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; } - ++lineNo; - }); - cm.curOp.forceUpdate = true; - signal(cm, "refresh", this); - }), - - operation: function(f){return runInOp(this, f);}, - - refresh: methodOp(function() { - var oldHeight = this.display.cachedTextHeight; - regChange(this); - this.curOp.forceUpdate = true; - clearCaches(this); - this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop); - updateGutterSpace(this); - if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5) - estimateLineHeights(this); - signal(this, "refresh", this); - }), - - swapDoc: methodOp(function(doc) { - var old = this.doc; - old.cm = null; - attachDoc(this, doc); - clearCaches(this); - resetInput(this); - this.scrollTo(doc.scrollLeft, doc.scrollTop); - this.curOp.forceScroll = true; - signalLater(this, "swapDoc", this, old); - return old; - }), - - getInputField: function(){return this.display.input;}, - getWrapperElement: function(){return this.display.wrapper;}, - getScrollerElement: function(){return this.display.scroller;}, - getGutterElement: function(){return this.display.gutters;} - }; - eventMixin(CodeMirror); - - // OPTION DEFAULTS - - // The default configuration options. - var defaults = CodeMirror.defaults = {}; - // Functions to run when options are changed. - var optionHandlers = CodeMirror.optionHandlers = {}; - - function option(name, deflt, handle, notOnInit) { - CodeMirror.defaults[name] = deflt; - if (handle) optionHandlers[name] = - notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle; - } - - // Passed to option handlers when there is no old value. - var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}}; - - // These two are, on init, called from the constructor because they - // have to be initialized before the editor can start at all. - option("value", "", function(cm, val) { - cm.setValue(val); - }, true); - option("mode", null, function(cm, val) { - cm.doc.modeOption = val; - loadMode(cm); - }, true); - - option("indentUnit", 2, loadMode, true); - option("indentWithTabs", false); - option("smartIndent", true); - option("tabSize", 4, function(cm) { - resetModeState(cm); - clearCaches(cm); - regChange(cm); - }, true); - option("specialChars", /[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val) { - cm.options.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); - cm.refresh(); - }, true); - option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true); - option("electricChars", true); - option("rtlMoveVisually", !windows); - option("wholeLineUpdateBefore", true); - - option("theme", "default", function(cm) { - themeChanged(cm); - guttersChanged(cm); - }, true); - option("keyMap", "default", function(cm, val, old) { - var next = getKeyMap(val); - var prev = old != CodeMirror.Init && getKeyMap(old); - if (prev && prev.detach) prev.detach(cm, next); - if (next.attach) next.attach(cm, prev || null); - }); - option("extraKeys", null); - - option("lineWrapping", false, wrappingChanged, true); - option("gutters", [], function(cm) { - setGuttersForLineNumbers(cm.options); - guttersChanged(cm); - }, true); - option("fixedGutter", true, function(cm, val) { - cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; - cm.refresh(); - }, true); - option("coverGutterNextToScrollbar", false, updateScrollbars, true); - option("lineNumbers", false, function(cm) { - setGuttersForLineNumbers(cm.options); - guttersChanged(cm); - }, true); - option("firstLineNumber", 1, guttersChanged, true); - option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true); - option("showCursorWhenSelecting", false, updateSelection, true); - - option("resetSelectionOnContextMenu", true); - - option("readOnly", false, function(cm, val) { - if (val == "nocursor") { - onBlur(cm); - cm.display.input.blur(); - cm.display.disabled = true; - } else { - cm.display.disabled = false; - if (!val) resetInput(cm); - } - }); - option("disableInput", false, function(cm, val) {if (!val) resetInput(cm);}, true); - option("dragDrop", true); - - option("cursorBlinkRate", 530); - option("cursorScrollMargin", 0); - option("cursorHeight", 1, updateSelection, true); - option("singleCursorHeightPerLine", true, updateSelection, true); - option("workTime", 100); - option("workDelay", 100); - option("flattenSpans", true, resetModeState, true); - option("addModeClass", false, resetModeState, true); - option("pollInterval", 100); - option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;}); - option("historyEventDelay", 1250); - option("viewportMargin", 10, function(cm){cm.refresh();}, true); - option("maxHighlightLength", 10000, resetModeState, true); - option("moveInputWithCursor", true, function(cm, val) { - if (!val) cm.display.inputDiv.style.top = cm.display.inputDiv.style.left = 0; - }); - - option("tabindex", null, function(cm, val) { - cm.display.input.tabIndex = val || ""; - }); - option("autofocus", null); - - // MODE DEFINITION AND QUERYING - - // Known modes, by name and by MIME - var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; - - // Extra arguments are stored as the mode's dependencies, which is - // used by (legacy) mechanisms like loadmode.js to automatically - // load a mode. (Preferred mechanism is the require/define calls.) - CodeMirror.defineMode = function(name, mode) { - if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; - if (arguments.length > 2) - mode.dependencies = Array.prototype.slice.call(arguments, 2); - modes[name] = mode; - }; - - CodeMirror.defineMIME = function(mime, spec) { - mimeModes[mime] = spec; - }; - - // Given a MIME type, a {name, ...options} config object, or a name - // string, return a mode config object. - CodeMirror.resolveMode = function(spec) { - if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { - spec = mimeModes[spec]; - } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { - var found = mimeModes[spec.name]; - if (typeof found == "string") found = {name: found}; - spec = createObj(found, spec); - spec.name = found.name; - } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { - return CodeMirror.resolveMode("application/xml"); - } - if (typeof spec == "string") return {name: spec}; - else return spec || {name: "null"}; - }; - - // Given a mode spec (anything that resolveMode accepts), find and - // initialize an actual mode object. - CodeMirror.getMode = function(options, spec) { - var spec = CodeMirror.resolveMode(spec); - var mfactory = modes[spec.name]; - if (!mfactory) return CodeMirror.getMode(options, "text/plain"); - var modeObj = mfactory(options, spec); - if (modeExtensions.hasOwnProperty(spec.name)) { - var exts = modeExtensions[spec.name]; - for (var prop in exts) { - if (!exts.hasOwnProperty(prop)) continue; - if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop]; - modeObj[prop] = exts[prop]; - } - } - modeObj.name = spec.name; - if (spec.helperType) modeObj.helperType = spec.helperType; - if (spec.modeProps) for (var prop in spec.modeProps) - modeObj[prop] = spec.modeProps[prop]; - - return modeObj; - }; - - // Minimal default mode. - CodeMirror.defineMode("null", function() { - return {token: function(stream) {stream.skipToEnd();}}; - }); - CodeMirror.defineMIME("text/plain", "null"); - - // This can be used to attach properties to mode objects from - // outside the actual mode definition. - var modeExtensions = CodeMirror.modeExtensions = {}; - CodeMirror.extendMode = function(mode, properties) { - var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); - copyObj(properties, exts); - }; - - // EXTENSIONS - - CodeMirror.defineExtension = function(name, func) { - CodeMirror.prototype[name] = func; - }; - CodeMirror.defineDocExtension = function(name, func) { - Doc.prototype[name] = func; - }; - CodeMirror.defineOption = option; - - var initHooks = []; - CodeMirror.defineInitHook = function(f) {initHooks.push(f);}; - - var helpers = CodeMirror.helpers = {}; - CodeMirror.registerHelper = function(type, name, value) { - if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []}; - helpers[type][name] = value; - }; - CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { - CodeMirror.registerHelper(type, name, value); - helpers[type]._global.push({pred: predicate, val: value}); - }; - - // MODE STATE HANDLING - - // Utility functions for working with state. Exported because nested - // modes need to do this for their inner modes. - - var copyState = CodeMirror.copyState = function(mode, state) { - if (state === true) return state; - if (mode.copyState) return mode.copyState(state); - var nstate = {}; - for (var n in state) { - var val = state[n]; - if (val instanceof Array) val = val.concat([]); - nstate[n] = val; - } - return nstate; - }; - - var startState = CodeMirror.startState = function(mode, a1, a2) { - return mode.startState ? mode.startState(a1, a2) : true; - }; - - // Given a mode and a state (for that mode), find the inner mode and - // state at the position that the state refers to. - CodeMirror.innerMode = function(mode, state) { - while (mode.innerMode) { - var info = mode.innerMode(state); - if (!info || info.mode == mode) break; - state = info.state; - mode = info.mode; - } - return info || {mode: mode, state: state}; - }; - - // STANDARD COMMANDS - - // Commands are parameter-less actions that can be performed on an - // editor, mostly used for keybindings. - var commands = CodeMirror.commands = { - selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);}, - singleSelection: function(cm) { - cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); - }, - killLine: function(cm) { - deleteNearSelection(cm, function(range) { - if (range.empty()) { - var len = getLine(cm.doc, range.head.line).text.length; - if (range.head.ch == len && range.head.line < cm.lastLine()) - return {from: range.head, to: Pos(range.head.line + 1, 0)}; - else - return {from: range.head, to: Pos(range.head.line, len)}; - } else { - return {from: range.from(), to: range.to()}; - } - }); - }, - deleteLine: function(cm) { - deleteNearSelection(cm, function(range) { - return {from: Pos(range.from().line, 0), - to: clipPos(cm.doc, Pos(range.to().line + 1, 0))}; - }); - }, - delLineLeft: function(cm) { - deleteNearSelection(cm, function(range) { - return {from: Pos(range.from().line, 0), to: range.from()}; - }); - }, - delWrappedLineLeft: function(cm) { - deleteNearSelection(cm, function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - var leftPos = cm.coordsChar({left: 0, top: top}, "div"); - return {from: leftPos, to: range.from()}; - }); - }, - delWrappedLineRight: function(cm) { - deleteNearSelection(cm, function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); - return {from: range.from(), to: rightPos }; - }); - }, - undo: function(cm) {cm.undo();}, - redo: function(cm) {cm.redo();}, - undoSelection: function(cm) {cm.undoSelection();}, - redoSelection: function(cm) {cm.redoSelection();}, - goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));}, - goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));}, - goLineStart: function(cm) { - cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); }, - {origin: "+move", bias: 1}); - }, - goLineStartSmart: function(cm) { - cm.extendSelectionsBy(function(range) { - return lineStartSmart(cm, range.head); - }, {origin: "+move", bias: 1}); - }, - goLineEnd: function(cm) { - cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); }, - {origin: "+move", bias: -1}); - }, - goLineRight: function(cm) { - cm.extendSelectionsBy(function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); - }, sel_move); - }, - goLineLeft: function(cm) { - cm.extendSelectionsBy(function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - return cm.coordsChar({left: 0, top: top}, "div"); - }, sel_move); - }, - goLineLeftSmart: function(cm) { - cm.extendSelectionsBy(function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - var pos = cm.coordsChar({left: 0, top: top}, "div"); - if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head); - return pos; - }, sel_move); - }, - goLineUp: function(cm) {cm.moveV(-1, "line");}, - goLineDown: function(cm) {cm.moveV(1, "line");}, - goPageUp: function(cm) {cm.moveV(-1, "page");}, - goPageDown: function(cm) {cm.moveV(1, "page");}, - goCharLeft: function(cm) {cm.moveH(-1, "char");}, - goCharRight: function(cm) {cm.moveH(1, "char");}, - goColumnLeft: function(cm) {cm.moveH(-1, "column");}, - goColumnRight: function(cm) {cm.moveH(1, "column");}, - goWordLeft: function(cm) {cm.moveH(-1, "word");}, - goGroupRight: function(cm) {cm.moveH(1, "group");}, - goGroupLeft: function(cm) {cm.moveH(-1, "group");}, - goWordRight: function(cm) {cm.moveH(1, "word");}, - delCharBefore: function(cm) {cm.deleteH(-1, "char");}, - delCharAfter: function(cm) {cm.deleteH(1, "char");}, - delWordBefore: function(cm) {cm.deleteH(-1, "word");}, - delWordAfter: function(cm) {cm.deleteH(1, "word");}, - delGroupBefore: function(cm) {cm.deleteH(-1, "group");}, - delGroupAfter: function(cm) {cm.deleteH(1, "group");}, - indentAuto: function(cm) {cm.indentSelection("smart");}, - indentMore: function(cm) {cm.indentSelection("add");}, - indentLess: function(cm) {cm.indentSelection("subtract");}, - insertTab: function(cm) {cm.replaceSelection("\t");}, - insertSoftTab: function(cm) { - var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; - for (var i = 0; i < ranges.length; i++) { - var pos = ranges[i].from(); - var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); - spaces.push(new Array(tabSize - col % tabSize + 1).join(" ")); - } - cm.replaceSelections(spaces); - }, - defaultTab: function(cm) { - if (cm.somethingSelected()) cm.indentSelection("add"); - else cm.execCommand("insertTab"); - }, - transposeChars: function(cm) { - runInOp(cm, function() { - var ranges = cm.listSelections(), newSel = []; - for (var i = 0; i < ranges.length; i++) { - var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; - if (line) { - if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1); - if (cur.ch > 0) { - cur = new Pos(cur.line, cur.ch + 1); - cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), - Pos(cur.line, cur.ch - 2), cur, "+transpose"); - } else if (cur.line > cm.doc.first) { - var prev = getLine(cm.doc, cur.line - 1).text; - if (prev) - cm.replaceRange(line.charAt(0) + "\n" + prev.charAt(prev.length - 1), - Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose"); - } - } - newSel.push(new Range(cur, cur)); - } - cm.setSelections(newSel); - }); - }, - newlineAndIndent: function(cm) { - runInOp(cm, function() { - var len = cm.listSelections().length; - for (var i = 0; i < len; i++) { - var range = cm.listSelections()[i]; - cm.replaceRange("\n", range.anchor, range.head, "+input"); - cm.indentLine(range.from().line + 1, null, true); - ensureCursorVisible(cm); - } - }); - }, - toggleOverwrite: function(cm) {cm.toggleOverwrite();} - }; - - - // STANDARD KEYMAPS - - var keyMap = CodeMirror.keyMap = {}; - - keyMap.basic = { - "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", - "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", - "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", - "Tab": "defaultTab", "Shift-Tab": "indentAuto", - "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", - "Esc": "singleSelection" - }; - // Note that the save and find-related commands aren't defined by - // default. User code or addons can define them. Unknown commands - // are simply ignored. - keyMap.pcDefault = { - "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", - "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", - "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", - "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", - "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", - "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", - "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", - fallthrough: "basic" - }; - // Very basic readline/emacs-style bindings, which are standard on Mac. - keyMap.emacsy = { - "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", - "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", - "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", - "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" - }; - keyMap.macDefault = { - "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", - "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", - "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", - "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", - "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", - "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", - "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", - fallthrough: ["basic", "emacsy"] - }; - keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; - - // KEYMAP DISPATCH - - function normalizeKeyName(name) { - var parts = name.split(/-(?!$)/), name = parts[parts.length - 1]; - var alt, ctrl, shift, cmd; - for (var i = 0; i < parts.length - 1; i++) { - var mod = parts[i]; - if (/^(cmd|meta|m)$/i.test(mod)) cmd = true; - else if (/^a(lt)?$/i.test(mod)) alt = true; - else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true; - else if (/^s(hift)$/i.test(mod)) shift = true; - else throw new Error("Unrecognized modifier name: " + mod); - } - if (alt) name = "Alt-" + name; - if (ctrl) name = "Ctrl-" + name; - if (cmd) name = "Cmd-" + name; - if (shift) name = "Shift-" + name; - return name; - } - - // This is a kludge to keep keymaps mostly working as raw objects - // (backwards compatibility) while at the same time support features - // like normalization and multi-stroke key bindings. It compiles a - // new normalized keymap, and then updates the old object to reflect - // this. - CodeMirror.normalizeKeyMap = function(keymap) { - var copy = {}; - for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) { - var value = keymap[keyname]; - if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue; - if (value == "...") { delete keymap[keyname]; continue; } - - var keys = map(keyname.split(" "), normalizeKeyName); - for (var i = 0; i < keys.length; i++) { - var val, name; - if (i == keys.length - 1) { - name = keyname; - val = value; - } else { - name = keys.slice(0, i + 1).join(" "); - val = "..."; - } - var prev = copy[name]; - if (!prev) copy[name] = val; - else if (prev != val) throw new Error("Inconsistent bindings for " + name); - } - delete keymap[keyname]; - } - for (var prop in copy) keymap[prop] = copy[prop]; - return keymap; - }; - - var lookupKey = CodeMirror.lookupKey = function(key, map, handle) { - map = getKeyMap(map); - var found = map.call ? map.call(key) : map[key]; - if (found === false) return "nothing"; - if (found === "...") return "multi"; - if (found != null && handle(found)) return "handled"; - - if (map.fallthrough) { - if (Object.prototype.toString.call(map.fallthrough) != "[object Array]") - return lookupKey(key, map.fallthrough, handle); - for (var i = 0; i < map.fallthrough.length; i++) { - var result = lookupKey(key, map.fallthrough[i], handle); - if (result) return result; - } - } - }; - - // Modifier key presses don't count as 'real' key presses for the - // purpose of keymap fallthrough. - var isModifierKey = CodeMirror.isModifierKey = function(value) { - var name = typeof value == "string" ? value : keyNames[value.keyCode]; - return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; - }; - - // Look up the name of a key as indicated by an event object. - var keyName = CodeMirror.keyName = function(event, noShift) { - if (presto && event.keyCode == 34 && event["char"]) return false; - var base = keyNames[event.keyCode], name = base; - if (name == null || event.altGraphKey) return false; - if (event.altKey && base != "Alt") name = "Alt-" + name; - if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") name = "Ctrl-" + name; - if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") name = "Cmd-" + name; - if (!noShift && event.shiftKey && base != "Shift") name = "Shift-" + name; - return name; - }; - - function getKeyMap(val) { - return typeof val == "string" ? keyMap[val] : val; - } - - // FROMTEXTAREA - - CodeMirror.fromTextArea = function(textarea, options) { - if (!options) options = {}; - options.value = textarea.value; - if (!options.tabindex && textarea.tabindex) - options.tabindex = textarea.tabindex; - if (!options.placeholder && textarea.placeholder) - options.placeholder = textarea.placeholder; - // Set autofocus to true if this textarea is focused, or if it has - // autofocus and no other element is focused. - if (options.autofocus == null) { - var hasFocus = activeElt(); - options.autofocus = hasFocus == textarea || - textarea.getAttribute("autofocus") != null && hasFocus == document.body; - } - - function save() {textarea.value = cm.getValue();} - if (textarea.form) { - on(textarea.form, "submit", save); - // Deplorable hack to make the submit method do the right thing. - if (!options.leaveSubmitMethodAlone) { - var form = textarea.form, realSubmit = form.submit; - try { - var wrappedSubmit = form.submit = function() { - save(); - form.submit = realSubmit; - form.submit(); - form.submit = wrappedSubmit; - }; - } catch(e) {} - } - } - - textarea.style.display = "none"; - var cm = CodeMirror(function(node) { - textarea.parentNode.insertBefore(node, textarea.nextSibling); - }, options); - cm.save = save; - cm.getTextArea = function() { return textarea; }; - cm.toTextArea = function() { - cm.toTextArea = isNaN; // Prevent this from being ran twice - save(); - textarea.parentNode.removeChild(cm.getWrapperElement()); - textarea.style.display = ""; - if (textarea.form) { - off(textarea.form, "submit", save); - if (typeof textarea.form.submit == "function") - textarea.form.submit = realSubmit; - } - }; - return cm; - }; - - // STRING STREAM - - // Fed to the mode parsers, provides helper functions to make - // parsers more succinct. - - var StringStream = CodeMirror.StringStream = function(string, tabSize) { - this.pos = this.start = 0; - this.string = string; - this.tabSize = tabSize || 8; - this.lastColumnPos = this.lastColumnValue = 0; - this.lineStart = 0; - }; - - StringStream.prototype = { - eol: function() {return this.pos >= this.string.length;}, - sol: function() {return this.pos == this.lineStart;}, - peek: function() {return this.string.charAt(this.pos) || undefined;}, - next: function() { - if (this.pos < this.string.length) - return this.string.charAt(this.pos++); - }, - eat: function(match) { - var ch = this.string.charAt(this.pos); - if (typeof match == "string") var ok = ch == match; - else var ok = ch && (match.test ? match.test(ch) : match(ch)); - if (ok) {++this.pos; return ch;} - }, - eatWhile: function(match) { - var start = this.pos; - while (this.eat(match)){} - return this.pos > start; - }, - eatSpace: function() { - var start = this.pos; - while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; - return this.pos > start; - }, - skipToEnd: function() {this.pos = this.string.length;}, - skipTo: function(ch) { - var found = this.string.indexOf(ch, this.pos); - if (found > -1) {this.pos = found; return true;} - }, - backUp: function(n) {this.pos -= n;}, - column: function() { - if (this.lastColumnPos < this.start) { - this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); - this.lastColumnPos = this.start; - } - return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); - }, - indentation: function() { - return countColumn(this.string, null, this.tabSize) - - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); - }, - match: function(pattern, consume, caseInsensitive) { - if (typeof pattern == "string") { - var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; - var substr = this.string.substr(this.pos, pattern.length); - if (cased(substr) == cased(pattern)) { - if (consume !== false) this.pos += pattern.length; - return true; - } - } else { - var match = this.string.slice(this.pos).match(pattern); - if (match && match.index > 0) return null; - if (match && consume !== false) this.pos += match[0].length; - return match; - } - }, - current: function(){return this.string.slice(this.start, this.pos);}, - hideFirstChars: function(n, inner) { - this.lineStart += n; - try { return inner(); } - finally { this.lineStart -= n; } - } - }; - - // TEXTMARKERS - - // Created with markText and setBookmark methods. A TextMarker is a - // handle that can be used to clear or find a marked position in the - // document. Line objects hold arrays (markedSpans) containing - // {from, to, marker} object pointing to such marker objects, and - // indicating that such a marker is present on that line. Multiple - // lines may point to the same marker when it spans across lines. - // The spans will have null for their from/to properties when the - // marker continues beyond the start/end of the line. Markers have - // links back to the lines they currently touch. - - var TextMarker = CodeMirror.TextMarker = function(doc, type) { - this.lines = []; - this.type = type; - this.doc = doc; - }; - eventMixin(TextMarker); - - // Clear the marker. - TextMarker.prototype.clear = function() { - if (this.explicitlyCleared) return; - var cm = this.doc.cm, withOp = cm && !cm.curOp; - if (withOp) startOperation(cm); - if (hasHandler(this, "clear")) { - var found = this.find(); - if (found) signalLater(this, "clear", found.from, found.to); - } - var min = null, max = null; - for (var i = 0; i < this.lines.length; ++i) { - var line = this.lines[i]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text"); - else if (cm) { - if (span.to != null) max = lineNo(line); - if (span.from != null) min = lineNo(line); - } - line.markedSpans = removeMarkedSpan(line.markedSpans, span); - if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) - updateLineHeight(line, textHeight(cm.display)); - } - if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) { - var visual = visualLine(this.lines[i]), len = lineLength(visual); - if (len > cm.display.maxLineLength) { - cm.display.maxLine = visual; - cm.display.maxLineLength = len; - cm.display.maxLineChanged = true; - } - } - - if (min != null && cm && this.collapsed) regChange(cm, min, max + 1); - this.lines.length = 0; - this.explicitlyCleared = true; - if (this.atomic && this.doc.cantEdit) { - this.doc.cantEdit = false; - if (cm) reCheckSelection(cm.doc); - } - if (cm) signalLater(cm, "markerCleared", cm, this); - if (withOp) endOperation(cm); - if (this.parent) this.parent.clear(); - }; - - // Find the position of the marker in the document. Returns a {from, - // to} object by default. Side can be passed to get a specific side - // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the - // Pos objects returned contain a line object, rather than a line - // number (used to prevent looking up the same line twice). - TextMarker.prototype.find = function(side, lineObj) { - if (side == null && this.type == "bookmark") side = 1; - var from, to; - for (var i = 0; i < this.lines.length; ++i) { - var line = this.lines[i]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (span.from != null) { - from = Pos(lineObj ? line : lineNo(line), span.from); - if (side == -1) return from; - } - if (span.to != null) { - to = Pos(lineObj ? line : lineNo(line), span.to); - if (side == 1) return to; - } - } - return from && {from: from, to: to}; - }; - - // Signals that the marker's widget changed, and surrounding layout - // should be recomputed. - TextMarker.prototype.changed = function() { - var pos = this.find(-1, true), widget = this, cm = this.doc.cm; - if (!pos || !cm) return; - runInOp(cm, function() { - var line = pos.line, lineN = lineNo(pos.line); - var view = findViewForLine(cm, lineN); - if (view) { - clearLineMeasurementCacheFor(view); - cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; - } - cm.curOp.updateMaxLine = true; - if (!lineIsHidden(widget.doc, line) && widget.height != null) { - var oldHeight = widget.height; - widget.height = null; - var dHeight = widgetHeight(widget) - oldHeight; - if (dHeight) - updateLineHeight(line, line.height + dHeight); - } - }); - }; - - TextMarker.prototype.attachLine = function(line) { - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) - (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); - } - this.lines.push(line); - }; - TextMarker.prototype.detachLine = function(line) { - this.lines.splice(indexOf(this.lines, line), 1); - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); - } - }; - - // Collapsed markers have unique ids, in order to be able to order - // them, which is needed for uniquely determining an outer marker - // when they overlap (they may nest, but not partially overlap). - var nextMarkerId = 0; - - // Create a marker, wire it up to the right lines, and - function markText(doc, from, to, options, type) { - // Shared markers (across linked documents) are handled separately - // (markTextShared will call out to this again, once per - // document). - if (options && options.shared) return markTextShared(doc, from, to, options, type); - // Ensure we are in an operation. - if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type); - - var marker = new TextMarker(doc, type), diff = cmp(from, to); - if (options) copyObj(options, marker, false); - // Don't connect empty markers unless clearWhenEmpty is false - if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) - return marker; - if (marker.replacedWith) { - // Showing up as a widget implies collapsed (widget replaces text) - marker.collapsed = true; - marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget"); - if (!options.handleMouseEvents) marker.widgetNode.ignoreEvents = true; - if (options.insertLeft) marker.widgetNode.insertLeft = true; - } - if (marker.collapsed) { - if (conflictingCollapsedRange(doc, from.line, from, to, marker) || - from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) - throw new Error("Inserting collapsed marker partially overlapping an existing one"); - sawCollapsedSpans = true; - } - - if (marker.addToHistory) - addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); - - var curLine = from.line, cm = doc.cm, updateMaxLine; - doc.iter(curLine, to.line + 1, function(line) { - if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) - updateMaxLine = true; - if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0); - addMarkedSpan(line, new MarkedSpan(marker, - curLine == from.line ? from.ch : null, - curLine == to.line ? to.ch : null)); - ++curLine; - }); - // lineIsHidden depends on the presence of the spans, so needs a second pass - if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) { - if (lineIsHidden(doc, line)) updateLineHeight(line, 0); - }); - - if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); }); - - if (marker.readOnly) { - sawReadOnlySpans = true; - if (doc.history.done.length || doc.history.undone.length) - doc.clearHistory(); - } - if (marker.collapsed) { - marker.id = ++nextMarkerId; - marker.atomic = true; - } - if (cm) { - // Sync editor state - if (updateMaxLine) cm.curOp.updateMaxLine = true; - if (marker.collapsed) - regChange(cm, from.line, to.line + 1); - else if (marker.className || marker.title || marker.startStyle || marker.endStyle) - for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text"); - if (marker.atomic) reCheckSelection(cm.doc); - signalLater(cm, "markerAdded", cm, marker); - } - return marker; - } - - // SHARED TEXTMARKERS - - // A shared marker spans multiple linked documents. It is - // implemented as a meta-marker-object controlling multiple normal - // markers. - var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) { - this.markers = markers; - this.primary = primary; - for (var i = 0; i < markers.length; ++i) - markers[i].parent = this; - }; - eventMixin(SharedTextMarker); - - SharedTextMarker.prototype.clear = function() { - if (this.explicitlyCleared) return; - this.explicitlyCleared = true; - for (var i = 0; i < this.markers.length; ++i) - this.markers[i].clear(); - signalLater(this, "clear"); - }; - SharedTextMarker.prototype.find = function(side, lineObj) { - return this.primary.find(side, lineObj); - }; - - function markTextShared(doc, from, to, options, type) { - options = copyObj(options); - options.shared = false; - var markers = [markText(doc, from, to, options, type)], primary = markers[0]; - var widget = options.widgetNode; - linkedDocs(doc, function(doc) { - if (widget) options.widgetNode = widget.cloneNode(true); - markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); - for (var i = 0; i < doc.linked.length; ++i) - if (doc.linked[i].isParent) return; - primary = lst(markers); - }); - return new SharedTextMarker(markers, primary); - } - - function findSharedMarkers(doc) { - return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), - function(m) { return m.parent; }); - } - - function copySharedMarkers(doc, markers) { - for (var i = 0; i < markers.length; i++) { - var marker = markers[i], pos = marker.find(); - var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); - if (cmp(mFrom, mTo)) { - var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); - marker.markers.push(subMark); - subMark.parent = marker; - } - } - } - - function detachSharedMarkers(markers) { - for (var i = 0; i < markers.length; i++) { - var marker = markers[i], linked = [marker.primary.doc];; - linkedDocs(marker.primary.doc, function(d) { linked.push(d); }); - for (var j = 0; j < marker.markers.length; j++) { - var subMarker = marker.markers[j]; - if (indexOf(linked, subMarker.doc) == -1) { - subMarker.parent = null; - marker.markers.splice(j--, 1); - } - } - } - } - - // TEXTMARKER SPANS - - function MarkedSpan(marker, from, to) { - this.marker = marker; - this.from = from; this.to = to; - } - - // Search an array of spans for a span matching the given marker. - function getMarkedSpanFor(spans, marker) { - if (spans) for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if (span.marker == marker) return span; - } - } - // Remove a span from an array, returning undefined if no spans are - // left (we don't store arrays for lines without spans). - function removeMarkedSpan(spans, span) { - for (var r, i = 0; i < spans.length; ++i) - if (spans[i] != span) (r || (r = [])).push(spans[i]); - return r; - } - // Add a span to a line. - function addMarkedSpan(line, span) { - line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; - span.marker.attachLine(line); - } - - // Used for the algorithm that adjusts markers for a change in the - // document. These functions cut an array of spans at a given - // character position, returning an array of remaining chunks (or - // undefined if nothing remains). - function markedSpansBefore(old, startCh, isInsert) { - if (old) for (var i = 0, nw; i < old.length; ++i) { - var span = old[i], marker = span.marker; - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); - if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); - (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); - } - } - return nw; - } - function markedSpansAfter(old, endCh, isInsert) { - if (old) for (var i = 0, nw; i < old.length; ++i) { - var span = old[i], marker = span.marker; - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); - if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); - (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, - span.to == null ? null : span.to - endCh)); - } - } - return nw; - } - - // Given a change object, compute the new set of marker spans that - // cover the line in which the change took place. Removes spans - // entirely within the change, reconnects spans belonging to the - // same marker that appear on both sides of the change, and cuts off - // spans partially within the change. Returns an array of span - // arrays with one element for each line in (after) the change. - function stretchSpansOverChange(doc, change) { - var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; - var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; - if (!oldFirst && !oldLast) return null; - - var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; - // Get the spans that 'stick out' on both sides - var first = markedSpansBefore(oldFirst, startCh, isInsert); - var last = markedSpansAfter(oldLast, endCh, isInsert); - - // Next, merge those two ends - var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); - if (first) { - // Fix up .to properties of first - for (var i = 0; i < first.length; ++i) { - var span = first[i]; - if (span.to == null) { - var found = getMarkedSpanFor(last, span.marker); - if (!found) span.to = startCh; - else if (sameLine) span.to = found.to == null ? null : found.to + offset; - } - } - } - if (last) { - // Fix up .from in last (or move them into first in case of sameLine) - for (var i = 0; i < last.length; ++i) { - var span = last[i]; - if (span.to != null) span.to += offset; - if (span.from == null) { - var found = getMarkedSpanFor(first, span.marker); - if (!found) { - span.from = offset; - if (sameLine) (first || (first = [])).push(span); - } - } else { - span.from += offset; - if (sameLine) (first || (first = [])).push(span); - } - } - } - // Make sure we didn't create any zero-length spans - if (first) first = clearEmptySpans(first); - if (last && last != first) last = clearEmptySpans(last); - - var newMarkers = [first]; - if (!sameLine) { - // Fill gap with whole-line-spans - var gap = change.text.length - 2, gapMarkers; - if (gap > 0 && first) - for (var i = 0; i < first.length; ++i) - if (first[i].to == null) - (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null)); - for (var i = 0; i < gap; ++i) - newMarkers.push(gapMarkers); - newMarkers.push(last); - } - return newMarkers; - } - - // Remove spans that are empty and don't have a clearWhenEmpty - // option of false. - function clearEmptySpans(spans) { - for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) - spans.splice(i--, 1); - } - if (!spans.length) return null; - return spans; - } - - // Used for un/re-doing changes from the history. Combines the - // result of computing the existing spans with the set of spans that - // existed in the history (so that deleting around a span and then - // undoing brings back the span). - function mergeOldSpans(doc, change) { - var old = getOldSpans(doc, change); - var stretched = stretchSpansOverChange(doc, change); - if (!old) return stretched; - if (!stretched) return old; - - for (var i = 0; i < old.length; ++i) { - var oldCur = old[i], stretchCur = stretched[i]; - if (oldCur && stretchCur) { - spans: for (var j = 0; j < stretchCur.length; ++j) { - var span = stretchCur[j]; - for (var k = 0; k < oldCur.length; ++k) - if (oldCur[k].marker == span.marker) continue spans; - oldCur.push(span); - } - } else if (stretchCur) { - old[i] = stretchCur; - } - } - return old; - } - - // Used to 'clip' out readOnly ranges when making a change. - function removeReadOnlyRanges(doc, from, to) { - var markers = null; - doc.iter(from.line, to.line + 1, function(line) { - if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { - var mark = line.markedSpans[i].marker; - if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) - (markers || (markers = [])).push(mark); - } - }); - if (!markers) return null; - var parts = [{from: from, to: to}]; - for (var i = 0; i < markers.length; ++i) { - var mk = markers[i], m = mk.find(0); - for (var j = 0; j < parts.length; ++j) { - var p = parts[j]; - if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue; - var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); - if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) - newParts.push({from: p.from, to: m.from}); - if (dto > 0 || !mk.inclusiveRight && !dto) - newParts.push({from: m.to, to: p.to}); - parts.splice.apply(parts, newParts); - j += newParts.length - 1; - } - } - return parts; - } - - // Connect or disconnect spans from a line. - function detachMarkedSpans(line) { - var spans = line.markedSpans; - if (!spans) return; - for (var i = 0; i < spans.length; ++i) - spans[i].marker.detachLine(line); - line.markedSpans = null; - } - function attachMarkedSpans(line, spans) { - if (!spans) return; - for (var i = 0; i < spans.length; ++i) - spans[i].marker.attachLine(line); - line.markedSpans = spans; - } - - // Helpers used when computing which overlapping collapsed span - // counts as the larger one. - function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; } - function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; } - - // Returns a number indicating which of two overlapping collapsed - // spans is larger (and thus includes the other). Falls back to - // comparing ids when the spans cover exactly the same range. - function compareCollapsedMarkers(a, b) { - var lenDiff = a.lines.length - b.lines.length; - if (lenDiff != 0) return lenDiff; - var aPos = a.find(), bPos = b.find(); - var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); - if (fromCmp) return -fromCmp; - var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); - if (toCmp) return toCmp; - return b.id - a.id; - } - - // Find out whether a line ends or starts in a collapsed span. If - // so, return the marker for that span. - function collapsedSpanAtSide(line, start) { - var sps = sawCollapsedSpans && line.markedSpans, found; - if (sps) for (var sp, i = 0; i < sps.length; ++i) { - sp = sps[i]; - if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && - (!found || compareCollapsedMarkers(found, sp.marker) < 0)) - found = sp.marker; - } - return found; - } - function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); } - function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); } - - // Test whether there exists a collapsed span that partially - // overlaps (covers the start or end, but not both) of a new span. - // Such overlap is not allowed. - function conflictingCollapsedRange(doc, lineNo, from, to, marker) { - var line = getLine(doc, lineNo); - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) for (var i = 0; i < sps.length; ++i) { - var sp = sps[i]; - if (!sp.marker.collapsed) continue; - var found = sp.marker.find(0); - var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); - var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); - if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue; - if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) || - fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight))) - return true; - } - } - - // A visual line is a line as drawn on the screen. Folding, for - // example, can cause multiple logical lines to appear on the same - // visual line. This finds the start of the visual line that the - // given line is part of (usually that is the line itself). - function visualLine(line) { - var merged; - while (merged = collapsedSpanAtStart(line)) - line = merged.find(-1, true).line; - return line; - } - - // Returns an array of logical lines that continue the visual line - // started by the argument, or undefined if there are no such lines. - function visualLineContinued(line) { - var merged, lines; - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - (lines || (lines = [])).push(line); - } - return lines; - } - - // Get the line number of the start of the visual line that the - // given line number is part of. - function visualLineNo(doc, lineN) { - var line = getLine(doc, lineN), vis = visualLine(line); - if (line == vis) return lineN; - return lineNo(vis); - } - // Get the line number of the start of the next visual line after - // the given line. - function visualLineEndNo(doc, lineN) { - if (lineN > doc.lastLine()) return lineN; - var line = getLine(doc, lineN), merged; - if (!lineIsHidden(doc, line)) return lineN; - while (merged = collapsedSpanAtEnd(line)) - line = merged.find(1, true).line; - return lineNo(line) + 1; - } - - // Compute whether a line is hidden. Lines count as hidden when they - // are part of a visual line that starts with another line, or when - // they are entirely covered by collapsed, non-widget span. - function lineIsHidden(doc, line) { - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) for (var sp, i = 0; i < sps.length; ++i) { - sp = sps[i]; - if (!sp.marker.collapsed) continue; - if (sp.from == null) return true; - if (sp.marker.widgetNode) continue; - if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) - return true; - } - } - function lineIsHiddenInner(doc, line, span) { - if (span.to == null) { - var end = span.marker.find(1, true); - return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)); - } - if (span.marker.inclusiveRight && span.to == line.text.length) - return true; - for (var sp, i = 0; i < line.markedSpans.length; ++i) { - sp = line.markedSpans[i]; - if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && - (sp.to == null || sp.to != span.from) && - (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && - lineIsHiddenInner(doc, line, sp)) return true; - } - } - - // LINE WIDGETS - - // Line widgets are block elements displayed above or below a line. - - var LineWidget = CodeMirror.LineWidget = function(cm, node, options) { - if (options) for (var opt in options) if (options.hasOwnProperty(opt)) - this[opt] = options[opt]; - this.cm = cm; - this.node = node; - }; - eventMixin(LineWidget); - - function adjustScrollWhenAboveVisible(cm, line, diff) { - if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) - addToScrollPos(cm, null, diff); - } - - LineWidget.prototype.clear = function() { - var cm = this.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); - if (no == null || !ws) return; - for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1); - if (!ws.length) line.widgets = null; - var height = widgetHeight(this); - runInOp(cm, function() { - adjustScrollWhenAboveVisible(cm, line, -height); - regLineChange(cm, no, "widget"); - updateLineHeight(line, Math.max(0, line.height - height)); - }); - }; - LineWidget.prototype.changed = function() { - var oldH = this.height, cm = this.cm, line = this.line; - this.height = null; - var diff = widgetHeight(this) - oldH; - if (!diff) return; - runInOp(cm, function() { - cm.curOp.forceUpdate = true; - adjustScrollWhenAboveVisible(cm, line, diff); - updateLineHeight(line, line.height + diff); - }); - }; - - function widgetHeight(widget) { - if (widget.height != null) return widget.height; - if (!contains(document.body, widget.node)) { - var parentStyle = "position: relative;"; - if (widget.coverGutter) - parentStyle += "margin-left: -" + widget.cm.getGutterElement().offsetWidth + "px;"; - removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, parentStyle)); - } - return widget.height = widget.node.offsetHeight; - } - - function addLineWidget(cm, handle, node, options) { - var widget = new LineWidget(cm, node, options); - if (widget.noHScroll) cm.display.alignWidgets = true; - changeLine(cm.doc, handle, "widget", function(line) { - var widgets = line.widgets || (line.widgets = []); - if (widget.insertAt == null) widgets.push(widget); - else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); - widget.line = line; - if (!lineIsHidden(cm.doc, line)) { - var aboveVisible = heightAtLine(line) < cm.doc.scrollTop; - updateLineHeight(line, line.height + widgetHeight(widget)); - if (aboveVisible) addToScrollPos(cm, null, widget.height); - cm.curOp.forceUpdate = true; - } - return true; - }); - return widget; - } - - // LINE DATA STRUCTURE - - // Line objects. These hold state related to a line, including - // highlighting info (the styles array). - var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) { - this.text = text; - attachMarkedSpans(this, markedSpans); - this.height = estimateHeight ? estimateHeight(this) : 1; - }; - eventMixin(Line); - Line.prototype.lineNo = function() { return lineNo(this); }; - - // Change the content (text, markers) of a line. Automatically - // invalidates cached information and tries to re-estimate the - // line's height. - function updateLine(line, text, markedSpans, estimateHeight) { - line.text = text; - if (line.stateAfter) line.stateAfter = null; - if (line.styles) line.styles = null; - if (line.order != null) line.order = null; - detachMarkedSpans(line); - attachMarkedSpans(line, markedSpans); - var estHeight = estimateHeight ? estimateHeight(line) : 1; - if (estHeight != line.height) updateLineHeight(line, estHeight); - } - - // Detach a line from the document tree and its markers. - function cleanUpLine(line) { - line.parent = null; - detachMarkedSpans(line); - } - - function extractLineClasses(type, output) { - if (type) for (;;) { - var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); - if (!lineClass) break; - type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); - var prop = lineClass[1] ? "bgClass" : "textClass"; - if (output[prop] == null) - output[prop] = lineClass[2]; - else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) - output[prop] += " " + lineClass[2]; - } - return type; - } - - function callBlankLine(mode, state) { - if (mode.blankLine) return mode.blankLine(state); - if (!mode.innerMode) return; - var inner = CodeMirror.innerMode(mode, state); - if (inner.mode.blankLine) return inner.mode.blankLine(inner.state); - } - - function readToken(mode, stream, state, inner) { - for (var i = 0; i < 10; i++) { - if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode; - var style = mode.token(stream, state); - if (stream.pos > stream.start) return style; - } - throw new Error("Mode " + mode.name + " failed to advance stream."); - } - - // Utility for getTokenAt and getLineTokens - function takeToken(cm, pos, precise, asArray) { - function getObj(copy) { - return {start: stream.start, end: stream.pos, - string: stream.current(), - type: style || null, - state: copy ? copyState(doc.mode, state) : state}; - } - - var doc = cm.doc, mode = doc.mode, style; - pos = clipPos(doc, pos); - var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise); - var stream = new StringStream(line.text, cm.options.tabSize), tokens; - if (asArray) tokens = []; - while ((asArray || stream.pos < pos.ch) && !stream.eol()) { - stream.start = stream.pos; - style = readToken(mode, stream, state); - if (asArray) tokens.push(getObj(true)); - } - return asArray ? tokens : getObj(); - } - - // Run the given mode's parser over a line, calling f for each token. - function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) { - var flattenSpans = mode.flattenSpans; - if (flattenSpans == null) flattenSpans = cm.options.flattenSpans; - var curStart = 0, curStyle = null; - var stream = new StringStream(text, cm.options.tabSize), style; - var inner = cm.options.addModeClass && [null]; - if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses); - while (!stream.eol()) { - if (stream.pos > cm.options.maxHighlightLength) { - flattenSpans = false; - if (forceToEnd) processLine(cm, text, state, stream.pos); - stream.pos = text.length; - style = null; - } else { - style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses); - } - if (inner) { - var mName = inner[0].name; - if (mName) style = "m-" + (style ? mName + " " + style : mName); - } - if (!flattenSpans || curStyle != style) { - if (curStart < stream.start) f(stream.start, curStyle); - curStart = stream.start; curStyle = style; - } - stream.start = stream.pos; - } - while (curStart < stream.pos) { - // Webkit seems to refuse to render text nodes longer than 57444 characters - var pos = Math.min(stream.pos, curStart + 50000); - f(pos, curStyle); - curStart = pos; - } - } - - // Compute a style array (an array starting with a mode generation - // -- for invalidation -- followed by pairs of end positions and - // style strings), which is used to highlight the tokens on the - // line. - function highlightLine(cm, line, state, forceToEnd) { - // A styles array always starts with a number identifying the - // mode/overlays that it is based on (for easy invalidation). - var st = [cm.state.modeGen], lineClasses = {}; - // Compute the base array of styles - runMode(cm, line.text, cm.doc.mode, state, function(end, style) { - st.push(end, style); - }, lineClasses, forceToEnd); - - // Run overlays, adjust style array. - for (var o = 0; o < cm.state.overlays.length; ++o) { - var overlay = cm.state.overlays[o], i = 1, at = 0; - runMode(cm, line.text, overlay.mode, true, function(end, style) { - var start = i; - // Ensure there's a token end at the current position, and that i points at it - while (at < end) { - var i_end = st[i]; - if (i_end > end) - st.splice(i, 1, end, st[i+1], i_end); - i += 2; - at = Math.min(end, i_end); - } - if (!style) return; - if (overlay.opaque) { - st.splice(start, i - start, end, "cm-overlay " + style); - i = start + 2; - } else { - for (; start < i; start += 2) { - var cur = st[start+1]; - st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style; - } - } - }, lineClasses); - } - - return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}; - } - - function getLineStyles(cm, line, updateFrontier) { - if (!line.styles || line.styles[0] != cm.state.modeGen) { - var result = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line))); - line.styles = result.styles; - if (result.classes) line.styleClasses = result.classes; - else if (line.styleClasses) line.styleClasses = null; - if (updateFrontier === cm.doc.frontier) cm.doc.frontier++; - } - return line.styles; - } - - // Lightweight form of highlight -- proceed over this line and - // update state, but don't save a style array. Used for lines that - // aren't currently visible. - function processLine(cm, text, state, startAt) { - var mode = cm.doc.mode; - var stream = new StringStream(text, cm.options.tabSize); - stream.start = stream.pos = startAt || 0; - if (text == "") callBlankLine(mode, state); - while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) { - readToken(mode, stream, state); - stream.start = stream.pos; - } - } - - // Convert a style as returned by a mode (either null, or a string - // containing one or more styles) to a CSS style. This is cached, - // and also looks for line-wide styles. - var styleToClassCache = {}, styleToClassCacheWithMode = {}; - function interpretTokenStyle(style, options) { - if (!style || /^\s*$/.test(style)) return null; - var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; - return cache[style] || - (cache[style] = style.replace(/\S+/g, "cm-$&")); - } - - // Render the DOM representation of the text of a line. Also builds - // up a 'line map', which points at the DOM nodes that represent - // specific stretches of text, and is used by the measuring code. - // The returned object contains the DOM node, this map, and - // information about line-wide styles that were set by the mode. - function buildLineContent(cm, lineView) { - // The padding-right forces the element to have a 'border', which - // is needed on Webkit to be able to get line-level bounding - // rectangles for it (in measureChar). - var content = elt("span", null, null, webkit ? "padding-right: .1px" : null); - var builder = {pre: elt("pre", [content]), content: content, col: 0, pos: 0, cm: cm}; - lineView.measure = {}; - - // Iterate over the logical lines that make up this visual line. - for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { - var line = i ? lineView.rest[i - 1] : lineView.line, order; - builder.pos = 0; - builder.addToken = buildToken; - // Optionally wire in some hacks into the token-rendering - // algorithm, to deal with browser quirks. - if ((ie || webkit) && cm.getOption("lineWrapping")) - builder.addToken = buildTokenSplitSpaces(builder.addToken); - if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line))) - builder.addToken = buildTokenBadBidi(builder.addToken, order); - builder.map = []; - var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); - insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); - if (line.styleClasses) { - if (line.styleClasses.bgClass) - builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); - if (line.styleClasses.textClass) - builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); - } - - // Ensure at least a single node is present, for measuring. - if (builder.map.length == 0) - builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); - - // Store the map and a cache object for the current logical line - if (i == 0) { - lineView.measure.map = builder.map; - lineView.measure.cache = {}; - } else { - (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map); - (lineView.measure.caches || (lineView.measure.caches = [])).push({}); - } - } - - // See issue #2901 - if (webkit && /\bcm-tab\b/.test(builder.content.lastChild.className)) - builder.content.className = "cm-tab-wrap-hack"; - - signal(cm, "renderLine", cm, lineView.line, builder.pre); - if (builder.pre.className) - builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); - - return builder; - } - - function defaultSpecialCharPlaceholder(ch) { - var token = elt("span", "\u2022", "cm-invalidchar"); - token.title = "\\u" + ch.charCodeAt(0).toString(16); - return token; - } - - // Build up the DOM representation for a single token, and add it to - // the line map. Takes care to render special characters separately. - function buildToken(builder, text, style, startStyle, endStyle, title) { - if (!text) return; - var special = builder.cm.options.specialChars, mustWrap = false; - if (!special.test(text)) { - builder.col += text.length; - var content = document.createTextNode(text); - builder.map.push(builder.pos, builder.pos + text.length, content); - if (ie && ie_version < 9) mustWrap = true; - builder.pos += text.length; - } else { - var content = document.createDocumentFragment(), pos = 0; - while (true) { - special.lastIndex = pos; - var m = special.exec(text); - var skipped = m ? m.index - pos : text.length - pos; - if (skipped) { - var txt = document.createTextNode(text.slice(pos, pos + skipped)); - if (ie && ie_version < 9) content.appendChild(elt("span", [txt])); - else content.appendChild(txt); - builder.map.push(builder.pos, builder.pos + skipped, txt); - builder.col += skipped; - builder.pos += skipped; - } - if (!m) break; - pos += skipped + 1; - if (m[0] == "\t") { - var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; - var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); - builder.col += tabWidth; - } else { - var txt = builder.cm.options.specialCharPlaceholder(m[0]); - if (ie && ie_version < 9) content.appendChild(elt("span", [txt])); - else content.appendChild(txt); - builder.col += 1; - } - builder.map.push(builder.pos, builder.pos + 1, txt); - builder.pos++; - } - } - if (style || startStyle || endStyle || mustWrap) { - var fullStyle = style || ""; - if (startStyle) fullStyle += startStyle; - if (endStyle) fullStyle += endStyle; - var token = elt("span", [content], fullStyle); - if (title) token.title = title; - return builder.content.appendChild(token); - } - builder.content.appendChild(content); - } - - function buildTokenSplitSpaces(inner) { - function split(old) { - var out = " "; - for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0"; - out += " "; - return out; - } - return function(builder, text, style, startStyle, endStyle, title) { - inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title); - }; - } - - // Work around nonsense dimensions being reported for stretches of - // right-to-left text. - function buildTokenBadBidi(inner, order) { - return function(builder, text, style, startStyle, endStyle, title) { - style = style ? style + " cm-force-border" : "cm-force-border"; - var start = builder.pos, end = start + text.length; - for (;;) { - // Find the part that overlaps with the start of this text - for (var i = 0; i < order.length; i++) { - var part = order[i]; - if (part.to > start && part.from <= start) break; - } - if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title); - inner(builder, text.slice(0, part.to - start), style, startStyle, null, title); - startStyle = null; - text = text.slice(part.to - start); - start = part.to; - } - }; - } - - function buildCollapsedSpan(builder, size, marker, ignoreWidget) { - var widget = !ignoreWidget && marker.widgetNode; - if (widget) { - builder.map.push(builder.pos, builder.pos + size, widget); - builder.content.appendChild(widget); - } - builder.pos += size; - } - - // Outputs a number of spans to make up a line, taking highlighting - // and marked text into account. - function insertLineContent(line, builder, styles) { - var spans = line.markedSpans, allText = line.text, at = 0; - if (!spans) { - for (var i = 1; i < styles.length; i+=2) - builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options)); - return; - } - - var len = allText.length, pos = 0, i = 1, text = "", style; - var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed; - for (;;) { - if (nextChange == pos) { // Update current marker set - spanStyle = spanEndStyle = spanStartStyle = title = ""; - collapsed = null; nextChange = Infinity; - var foundBookmarks = []; - for (var j = 0; j < spans.length; ++j) { - var sp = spans[j], m = sp.marker; - if (sp.from <= pos && (sp.to == null || sp.to > pos)) { - if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; } - if (m.className) spanStyle += " " + m.className; - if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle; - if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle; - if (m.title && !title) title = m.title; - if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) - collapsed = sp; - } else if (sp.from > pos && nextChange > sp.from) { - nextChange = sp.from; - } - if (m.type == "bookmark" && sp.from == pos && m.widgetNode) foundBookmarks.push(m); - } - if (collapsed && (collapsed.from || 0) == pos) { - buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, - collapsed.marker, collapsed.from == null); - if (collapsed.to == null) return; - } - if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j) - buildCollapsedSpan(builder, 0, foundBookmarks[j]); - } - if (pos >= len) break; - - var upto = Math.min(len, nextChange); - while (true) { - if (text) { - var end = pos + text.length; - if (!collapsed) { - var tokenText = end > upto ? text.slice(0, upto - pos) : text; - builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, - spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title); - } - if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} - pos = end; - spanStartStyle = ""; - } - text = allText.slice(at, at = styles[i++]); - style = interpretTokenStyle(styles[i++], builder.cm.options); - } - } - } - - // DOCUMENT DATA STRUCTURE - - // By default, updates that start and end at the beginning of a line - // are treated specially, in order to make the association of line - // widgets and marker elements with the text behave more intuitive. - function isWholeLineUpdate(doc, change) { - return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && - (!doc.cm || doc.cm.options.wholeLineUpdateBefore); - } - - // Perform a change on the document data structure. - function updateDoc(doc, change, markedSpans, estimateHeight) { - function spansFor(n) {return markedSpans ? markedSpans[n] : null;} - function update(line, text, spans) { - updateLine(line, text, spans, estimateHeight); - signalLater(line, "change", line, change); - } - - var from = change.from, to = change.to, text = change.text; - var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); - var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; - - // Adjust the line structure - if (isWholeLineUpdate(doc, change)) { - // This is a whole-line replace. Treated specially to make - // sure line objects move the way they are supposed to. - for (var i = 0, added = []; i < text.length - 1; ++i) - added.push(new Line(text[i], spansFor(i), estimateHeight)); - update(lastLine, lastLine.text, lastSpans); - if (nlines) doc.remove(from.line, nlines); - if (added.length) doc.insert(from.line, added); - } else if (firstLine == lastLine) { - if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); - } else { - for (var added = [], i = 1; i < text.length - 1; ++i) - added.push(new Line(text[i], spansFor(i), estimateHeight)); - added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - doc.insert(from.line + 1, added); - } - } else if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); - doc.remove(from.line + 1, nlines); - } else { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); - for (var i = 1, added = []; i < text.length - 1; ++i) - added.push(new Line(text[i], spansFor(i), estimateHeight)); - if (nlines > 1) doc.remove(from.line + 1, nlines - 1); - doc.insert(from.line + 1, added); - } - - signalLater(doc, "change", doc, change); - } - - // The document is represented as a BTree consisting of leaves, with - // chunk of lines in them, and branches, with up to ten leaves or - // other branch nodes below them. The top node is always a branch - // node, and is the document object itself (meaning it has - // additional methods and properties). - // - // All nodes have parent links. The tree is used both to go from - // line numbers to line objects, and to go from objects to numbers. - // It also indexes by height, and is used to convert between height - // and line object, and to find the total height of the document. - // - // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html - - function LeafChunk(lines) { - this.lines = lines; - this.parent = null; - for (var i = 0, height = 0; i < lines.length; ++i) { - lines[i].parent = this; - height += lines[i].height; - } - this.height = height; - } - - LeafChunk.prototype = { - chunkSize: function() { return this.lines.length; }, - // Remove the n lines at offset 'at'. - removeInner: function(at, n) { - for (var i = at, e = at + n; i < e; ++i) { - var line = this.lines[i]; - this.height -= line.height; - cleanUpLine(line); - signalLater(line, "delete"); - } - this.lines.splice(at, n); - }, - // Helper used to collapse a small branch into a single leaf. - collapse: function(lines) { - lines.push.apply(lines, this.lines); - }, - // Insert the given array of lines at offset 'at', count them as - // having the given height. - insertInner: function(at, lines, height) { - this.height += height; - this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); - for (var i = 0; i < lines.length; ++i) lines[i].parent = this; - }, - // Used to iterate over a part of the tree. - iterN: function(at, n, op) { - for (var e = at + n; at < e; ++at) - if (op(this.lines[at])) return true; - } - }; - - function BranchChunk(children) { - this.children = children; - var size = 0, height = 0; - for (var i = 0; i < children.length; ++i) { - var ch = children[i]; - size += ch.chunkSize(); height += ch.height; - ch.parent = this; - } - this.size = size; - this.height = height; - this.parent = null; - } - - BranchChunk.prototype = { - chunkSize: function() { return this.size; }, - removeInner: function(at, n) { - this.size -= n; - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at < sz) { - var rm = Math.min(n, sz - at), oldHeight = child.height; - child.removeInner(at, rm); - this.height -= oldHeight - child.height; - if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } - if ((n -= rm) == 0) break; - at = 0; - } else at -= sz; - } - // If the result is smaller than 25 lines, ensure that it is a - // single leaf node. - if (this.size - n < 25 && - (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { - var lines = []; - this.collapse(lines); - this.children = [new LeafChunk(lines)]; - this.children[0].parent = this; - } - }, - collapse: function(lines) { - for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines); - }, - insertInner: function(at, lines, height) { - this.size += lines.length; - this.height += height; - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at <= sz) { - child.insertInner(at, lines, height); - if (child.lines && child.lines.length > 50) { - while (child.lines.length > 50) { - var spilled = child.lines.splice(child.lines.length - 25, 25); - var newleaf = new LeafChunk(spilled); - child.height -= newleaf.height; - this.children.splice(i + 1, 0, newleaf); - newleaf.parent = this; - } - this.maybeSpill(); - } - break; - } - at -= sz; - } - }, - // When a node has grown, check whether it should be split. - maybeSpill: function() { - if (this.children.length <= 10) return; - var me = this; - do { - var spilled = me.children.splice(me.children.length - 5, 5); - var sibling = new BranchChunk(spilled); - if (!me.parent) { // Become the parent node - var copy = new BranchChunk(me.children); - copy.parent = me; - me.children = [copy, sibling]; - me = copy; - } else { - me.size -= sibling.size; - me.height -= sibling.height; - var myIndex = indexOf(me.parent.children, me); - me.parent.children.splice(myIndex + 1, 0, sibling); - } - sibling.parent = me.parent; - } while (me.children.length > 10); - me.parent.maybeSpill(); - }, - iterN: function(at, n, op) { - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at < sz) { - var used = Math.min(n, sz - at); - if (child.iterN(at, used, op)) return true; - if ((n -= used) == 0) break; - at = 0; - } else at -= sz; - } - } - }; - - var nextDocId = 0; - var Doc = CodeMirror.Doc = function(text, mode, firstLine) { - if (!(this instanceof Doc)) return new Doc(text, mode, firstLine); - if (firstLine == null) firstLine = 0; - - BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); - this.first = firstLine; - this.scrollTop = this.scrollLeft = 0; - this.cantEdit = false; - this.cleanGeneration = 1; - this.frontier = firstLine; - var start = Pos(firstLine, 0); - this.sel = simpleSelection(start); - this.history = new History(null); - this.id = ++nextDocId; - this.modeOption = mode; - - if (typeof text == "string") text = splitLines(text); - updateDoc(this, {from: start, to: start, text: text}); - setSelection(this, simpleSelection(start), sel_dontScroll); - }; - - Doc.prototype = createObj(BranchChunk.prototype, { - constructor: Doc, - // Iterate over the document. Supports two forms -- with only one - // argument, it calls that for each line in the document. With - // three, it iterates over the range given by the first two (with - // the second being non-inclusive). - iter: function(from, to, op) { - if (op) this.iterN(from - this.first, to - from, op); - else this.iterN(this.first, this.first + this.size, from); - }, - - // Non-public interface for adding and removing lines. - insert: function(at, lines) { - var height = 0; - for (var i = 0; i < lines.length; ++i) height += lines[i].height; - this.insertInner(at - this.first, lines, height); - }, - remove: function(at, n) { this.removeInner(at - this.first, n); }, - - // From here, the methods are part of the public interface. Most - // are also available from CodeMirror (editor) instances. - - getValue: function(lineSep) { - var lines = getLines(this, this.first, this.first + this.size); - if (lineSep === false) return lines; - return lines.join(lineSep || "\n"); - }, - setValue: docMethodOp(function(code) { - var top = Pos(this.first, 0), last = this.first + this.size - 1; - makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), - text: splitLines(code), origin: "setValue"}, true); - setSelection(this, simpleSelection(top)); - }), - replaceRange: function(code, from, to, origin) { - from = clipPos(this, from); - to = to ? clipPos(this, to) : from; - replaceRange(this, code, from, to, origin); - }, - getRange: function(from, to, lineSep) { - var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); - if (lineSep === false) return lines; - return lines.join(lineSep || "\n"); - }, - - getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;}, - - getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);}, - getLineNumber: function(line) {return lineNo(line);}, - - getLineHandleVisualStart: function(line) { - if (typeof line == "number") line = getLine(this, line); - return visualLine(line); - }, - - lineCount: function() {return this.size;}, - firstLine: function() {return this.first;}, - lastLine: function() {return this.first + this.size - 1;}, - - clipPos: function(pos) {return clipPos(this, pos);}, - - getCursor: function(start) { - var range = this.sel.primary(), pos; - if (start == null || start == "head") pos = range.head; - else if (start == "anchor") pos = range.anchor; - else if (start == "end" || start == "to" || start === false) pos = range.to(); - else pos = range.from(); - return pos; - }, - listSelections: function() { return this.sel.ranges; }, - somethingSelected: function() {return this.sel.somethingSelected();}, - - setCursor: docMethodOp(function(line, ch, options) { - setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); - }), - setSelection: docMethodOp(function(anchor, head, options) { - setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); - }), - extendSelection: docMethodOp(function(head, other, options) { - extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); - }), - extendSelections: docMethodOp(function(heads, options) { - extendSelections(this, clipPosArray(this, heads, options)); - }), - extendSelectionsBy: docMethodOp(function(f, options) { - extendSelections(this, map(this.sel.ranges, f), options); - }), - setSelections: docMethodOp(function(ranges, primary, options) { - if (!ranges.length) return; - for (var i = 0, out = []; i < ranges.length; i++) - out[i] = new Range(clipPos(this, ranges[i].anchor), - clipPos(this, ranges[i].head)); - if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex); - setSelection(this, normalizeSelection(out, primary), options); - }), - addSelection: docMethodOp(function(anchor, head, options) { - var ranges = this.sel.ranges.slice(0); - ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); - setSelection(this, normalizeSelection(ranges, ranges.length - 1), options); - }), - - getSelection: function(lineSep) { - var ranges = this.sel.ranges, lines; - for (var i = 0; i < ranges.length; i++) { - var sel = getBetween(this, ranges[i].from(), ranges[i].to()); - lines = lines ? lines.concat(sel) : sel; - } - if (lineSep === false) return lines; - else return lines.join(lineSep || "\n"); - }, - getSelections: function(lineSep) { - var parts = [], ranges = this.sel.ranges; - for (var i = 0; i < ranges.length; i++) { - var sel = getBetween(this, ranges[i].from(), ranges[i].to()); - if (lineSep !== false) sel = sel.join(lineSep || "\n"); - parts[i] = sel; - } - return parts; - }, - replaceSelection: function(code, collapse, origin) { - var dup = []; - for (var i = 0; i < this.sel.ranges.length; i++) - dup[i] = code; - this.replaceSelections(dup, collapse, origin || "+input"); - }, - replaceSelections: docMethodOp(function(code, collapse, origin) { - var changes = [], sel = this.sel; - for (var i = 0; i < sel.ranges.length; i++) { - var range = sel.ranges[i]; - changes[i] = {from: range.from(), to: range.to(), text: splitLines(code[i]), origin: origin}; - } - var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); - for (var i = changes.length - 1; i >= 0; i--) - makeChange(this, changes[i]); - if (newSel) setSelectionReplaceHistory(this, newSel); - else if (this.cm) ensureCursorVisible(this.cm); - }), - undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), - redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), - undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), - redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), - - setExtending: function(val) {this.extend = val;}, - getExtending: function() {return this.extend;}, - - historySize: function() { - var hist = this.history, done = 0, undone = 0; - for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done; - for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone; - return {undo: done, redo: undone}; - }, - clearHistory: function() {this.history = new History(this.history.maxGeneration);}, - - markClean: function() { - this.cleanGeneration = this.changeGeneration(true); - }, - changeGeneration: function(forceSplit) { - if (forceSplit) - this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; - return this.history.generation; - }, - isClean: function (gen) { - return this.history.generation == (gen || this.cleanGeneration); - }, - - getHistory: function() { - return {done: copyHistoryArray(this.history.done), - undone: copyHistoryArray(this.history.undone)}; - }, - setHistory: function(histData) { - var hist = this.history = new History(this.history.maxGeneration); - hist.done = copyHistoryArray(histData.done.slice(0), null, true); - hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); - }, - - addLineClass: docMethodOp(function(handle, where, cls) { - return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) { - var prop = where == "text" ? "textClass" - : where == "background" ? "bgClass" - : where == "gutter" ? "gutterClass" : "wrapClass"; - if (!line[prop]) line[prop] = cls; - else if (classTest(cls).test(line[prop])) return false; - else line[prop] += " " + cls; - return true; - }); - }), - removeLineClass: docMethodOp(function(handle, where, cls) { - return changeLine(this, handle, "class", function(line) { - var prop = where == "text" ? "textClass" - : where == "background" ? "bgClass" - : where == "gutter" ? "gutterClass" : "wrapClass"; - var cur = line[prop]; - if (!cur) return false; - else if (cls == null) line[prop] = null; - else { - var found = cur.match(classTest(cls)); - if (!found) return false; - var end = found.index + found[0].length; - line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; - } - return true; - }); - }), - - markText: function(from, to, options) { - return markText(this, clipPos(this, from), clipPos(this, to), options, "range"); - }, - setBookmark: function(pos, options) { - var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), - insertLeft: options && options.insertLeft, - clearWhenEmpty: false, shared: options && options.shared}; - pos = clipPos(this, pos); - return markText(this, pos, pos, realOpts, "bookmark"); - }, - findMarksAt: function(pos) { - pos = clipPos(this, pos); - var markers = [], spans = getLine(this, pos.line).markedSpans; - if (spans) for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if ((span.from == null || span.from <= pos.ch) && - (span.to == null || span.to >= pos.ch)) - markers.push(span.marker.parent || span.marker); - } - return markers; - }, - findMarks: function(from, to, filter) { - from = clipPos(this, from); to = clipPos(this, to); - var found = [], lineNo = from.line; - this.iter(from.line, to.line + 1, function(line) { - var spans = line.markedSpans; - if (spans) for (var i = 0; i < spans.length; i++) { - var span = spans[i]; - if (!(lineNo == from.line && from.ch > span.to || - span.from == null && lineNo != from.line|| - lineNo == to.line && span.from > to.ch) && - (!filter || filter(span.marker))) - found.push(span.marker.parent || span.marker); - } - ++lineNo; - }); - return found; - }, - getAllMarks: function() { - var markers = []; - this.iter(function(line) { - var sps = line.markedSpans; - if (sps) for (var i = 0; i < sps.length; ++i) - if (sps[i].from != null) markers.push(sps[i].marker); - }); - return markers; - }, - - posFromIndex: function(off) { - var ch, lineNo = this.first; - this.iter(function(line) { - var sz = line.text.length + 1; - if (sz > off) { ch = off; return true; } - off -= sz; - ++lineNo; - }); - return clipPos(this, Pos(lineNo, ch)); - }, - indexFromPos: function (coords) { - coords = clipPos(this, coords); - var index = coords.ch; - if (coords.line < this.first || coords.ch < 0) return 0; - this.iter(this.first, coords.line, function (line) { - index += line.text.length + 1; - }); - return index; - }, - - copy: function(copyHistory) { - var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first); - doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; - doc.sel = this.sel; - doc.extend = false; - if (copyHistory) { - doc.history.undoDepth = this.history.undoDepth; - doc.setHistory(this.getHistory()); - } - return doc; - }, - - linkedDoc: function(options) { - if (!options) options = {}; - var from = this.first, to = this.first + this.size; - if (options.from != null && options.from > from) from = options.from; - if (options.to != null && options.to < to) to = options.to; - var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from); - if (options.sharedHist) copy.history = this.history; - (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); - copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; - copySharedMarkers(copy, findSharedMarkers(this)); - return copy; - }, - unlinkDoc: function(other) { - if (other instanceof CodeMirror) other = other.doc; - if (this.linked) for (var i = 0; i < this.linked.length; ++i) { - var link = this.linked[i]; - if (link.doc != other) continue; - this.linked.splice(i, 1); - other.unlinkDoc(this); - detachSharedMarkers(findSharedMarkers(this)); - break; - } - // If the histories were shared, split them again - if (other.history == this.history) { - var splitIds = [other.id]; - linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true); - other.history = new History(null); - other.history.done = copyHistoryArray(this.history.done, splitIds); - other.history.undone = copyHistoryArray(this.history.undone, splitIds); - } - }, - iterLinkedDocs: function(f) {linkedDocs(this, f);}, - - getMode: function() {return this.mode;}, - getEditor: function() {return this.cm;} - }); - - // Public alias. - Doc.prototype.eachLine = Doc.prototype.iter; - - // Set up methods on CodeMirror's prototype to redirect to the editor's document. - var dontDelegate = "iter insert remove copy getEditor".split(" "); - for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) - CodeMirror.prototype[prop] = (function(method) { - return function() {return method.apply(this.doc, arguments);}; - })(Doc.prototype[prop]); - - eventMixin(Doc); - - // Call f for all linked documents. - function linkedDocs(doc, f, sharedHistOnly) { - function propagate(doc, skip, sharedHist) { - if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) { - var rel = doc.linked[i]; - if (rel.doc == skip) continue; - var shared = sharedHist && rel.sharedHist; - if (sharedHistOnly && !shared) continue; - f(rel.doc, shared); - propagate(rel.doc, doc, shared); - } - } - propagate(doc, null, true); - } - - // Attach a document to an editor. - function attachDoc(cm, doc) { - if (doc.cm) throw new Error("This document is already in use."); - cm.doc = doc; - doc.cm = cm; - estimateLineHeights(cm); - loadMode(cm); - if (!cm.options.lineWrapping) findMaxLine(cm); - cm.options.mode = doc.modeOption; - regChange(cm); - } - - // LINE UTILITIES - - // Find the line object corresponding to the given line number. - function getLine(doc, n) { - n -= doc.first; - if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document."); - for (var chunk = doc; !chunk.lines;) { - for (var i = 0;; ++i) { - var child = chunk.children[i], sz = child.chunkSize(); - if (n < sz) { chunk = child; break; } - n -= sz; - } - } - return chunk.lines[n]; - } - - // Get the part of a document between two positions, as an array of - // strings. - function getBetween(doc, start, end) { - var out = [], n = start.line; - doc.iter(start.line, end.line + 1, function(line) { - var text = line.text; - if (n == end.line) text = text.slice(0, end.ch); - if (n == start.line) text = text.slice(start.ch); - out.push(text); - ++n; - }); - return out; - } - // Get the lines between from and to, as array of strings. - function getLines(doc, from, to) { - var out = []; - doc.iter(from, to, function(line) { out.push(line.text); }); - return out; - } - - // Update the height of a line, propagating the height change - // upwards to parent nodes. - function updateLineHeight(line, height) { - var diff = height - line.height; - if (diff) for (var n = line; n; n = n.parent) n.height += diff; - } - - // Given a line object, find its line number by walking up through - // its parent links. - function lineNo(line) { - if (line.parent == null) return null; - var cur = line.parent, no = indexOf(cur.lines, line); - for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { - for (var i = 0;; ++i) { - if (chunk.children[i] == cur) break; - no += chunk.children[i].chunkSize(); - } - } - return no + cur.first; - } - - // Find the line at the given vertical position, using the height - // information in the document tree. - function lineAtHeight(chunk, h) { - var n = chunk.first; - outer: do { - for (var i = 0; i < chunk.children.length; ++i) { - var child = chunk.children[i], ch = child.height; - if (h < ch) { chunk = child; continue outer; } - h -= ch; - n += child.chunkSize(); - } - return n; - } while (!chunk.lines); - for (var i = 0; i < chunk.lines.length; ++i) { - var line = chunk.lines[i], lh = line.height; - if (h < lh) break; - h -= lh; - } - return n + i; - } - - - // Find the height above the given line. - function heightAtLine(lineObj) { - lineObj = visualLine(lineObj); - - var h = 0, chunk = lineObj.parent; - for (var i = 0; i < chunk.lines.length; ++i) { - var line = chunk.lines[i]; - if (line == lineObj) break; - else h += line.height; - } - for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { - for (var i = 0; i < p.children.length; ++i) { - var cur = p.children[i]; - if (cur == chunk) break; - else h += cur.height; - } - } - return h; - } - - // Get the bidi ordering for the given line (and cache it). Returns - // false for lines that are fully left-to-right, and an array of - // BidiSpan objects otherwise. - function getOrder(line) { - var order = line.order; - if (order == null) order = line.order = bidiOrdering(line.text); - return order; - } - - // HISTORY - - function History(startGen) { - // Arrays of change events and selections. Doing something adds an - // event to done and clears undo. Undoing moves events from done - // to undone, redoing moves them in the other direction. - this.done = []; this.undone = []; - this.undoDepth = Infinity; - // Used to track when changes can be merged into a single undo - // event - this.lastModTime = this.lastSelTime = 0; - this.lastOp = this.lastSelOp = null; - this.lastOrigin = this.lastSelOrigin = null; - // Used by the isClean() method - this.generation = this.maxGeneration = startGen || 1; - } - - // Create a history change event from an updateDoc-style change - // object. - function historyChangeFromChange(doc, change) { - var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; - attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); - linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true); - return histChange; - } - - // Pop all selection events off the end of a history array. Stop at - // a change event. - function clearSelectionEvents(array) { - while (array.length) { - var last = lst(array); - if (last.ranges) array.pop(); - else break; - } - } - - // Find the top change event in the history. Pop off selection - // events that are in the way. - function lastChangeEvent(hist, force) { - if (force) { - clearSelectionEvents(hist.done); - return lst(hist.done); - } else if (hist.done.length && !lst(hist.done).ranges) { - return lst(hist.done); - } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { - hist.done.pop(); - return lst(hist.done); - } - } - - // Register a change in the history. Merges changes that are within - // a single operation, ore are close together with an origin that - // allows merging (starting with "+") into a single event. - function addChangeToHistory(doc, change, selAfter, opId) { - var hist = doc.history; - hist.undone.length = 0; - var time = +new Date, cur; - - if ((hist.lastOp == opId || - hist.lastOrigin == change.origin && change.origin && - ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) || - change.origin.charAt(0) == "*")) && - (cur = lastChangeEvent(hist, hist.lastOp == opId))) { - // Merge this change into the last event - var last = lst(cur.changes); - if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { - // Optimized case for simple insertion -- don't want to add - // new changesets for every character typed - last.to = changeEnd(change); - } else { - // Add new sub-event - cur.changes.push(historyChangeFromChange(doc, change)); - } - } else { - // Can not be merged, start a new event. - var before = lst(hist.done); - if (!before || !before.ranges) - pushSelectionToHistory(doc.sel, hist.done); - cur = {changes: [historyChangeFromChange(doc, change)], - generation: hist.generation}; - hist.done.push(cur); - while (hist.done.length > hist.undoDepth) { - hist.done.shift(); - if (!hist.done[0].ranges) hist.done.shift(); - } - } - hist.done.push(selAfter); - hist.generation = ++hist.maxGeneration; - hist.lastModTime = hist.lastSelTime = time; - hist.lastOp = hist.lastSelOp = opId; - hist.lastOrigin = hist.lastSelOrigin = change.origin; - - if (!last) signal(doc, "historyAdded"); - } - - function selectionEventCanBeMerged(doc, origin, prev, sel) { - var ch = origin.charAt(0); - return ch == "*" || - ch == "+" && - prev.ranges.length == sel.ranges.length && - prev.somethingSelected() == sel.somethingSelected() && - new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500); - } - - // Called whenever the selection changes, sets the new selection as - // the pending selection in the history, and pushes the old pending - // selection into the 'done' array when it was significantly - // different (in number of selected ranges, emptiness, or time). - function addSelectionToHistory(doc, sel, opId, options) { - var hist = doc.history, origin = options && options.origin; - - // A new event is started when the previous origin does not match - // the current, or the origins don't allow matching. Origins - // starting with * are always merged, those starting with + are - // merged when similar and close together in time. - if (opId == hist.lastSelOp || - (origin && hist.lastSelOrigin == origin && - (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || - selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) - hist.done[hist.done.length - 1] = sel; - else - pushSelectionToHistory(sel, hist.done); - - hist.lastSelTime = +new Date; - hist.lastSelOrigin = origin; - hist.lastSelOp = opId; - if (options && options.clearRedo !== false) - clearSelectionEvents(hist.undone); - } - - function pushSelectionToHistory(sel, dest) { - var top = lst(dest); - if (!(top && top.ranges && top.equals(sel))) - dest.push(sel); - } - - // Used to store marked span information in the history. - function attachLocalSpans(doc, change, from, to) { - var existing = change["spans_" + doc.id], n = 0; - doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) { - if (line.markedSpans) - (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; - ++n; - }); - } - - // When un/re-doing restores text containing marked spans, those - // that have been explicitly cleared should not be restored. - function removeClearedSpans(spans) { - if (!spans) return null; - for (var i = 0, out; i < spans.length; ++i) { - if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); } - else if (out) out.push(spans[i]); - } - return !out ? spans : out.length ? out : null; - } - - // Retrieve and filter the old marked spans stored in a change event. - function getOldSpans(doc, change) { - var found = change["spans_" + doc.id]; - if (!found) return null; - for (var i = 0, nw = []; i < change.text.length; ++i) - nw.push(removeClearedSpans(found[i])); - return nw; - } - - // Used both to provide a JSON-safe object in .getHistory, and, when - // detaching a document, to split the history in two - function copyHistoryArray(events, newGroup, instantiateSel) { - for (var i = 0, copy = []; i < events.length; ++i) { - var event = events[i]; - if (event.ranges) { - copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); - continue; - } - var changes = event.changes, newChanges = []; - copy.push({changes: newChanges}); - for (var j = 0; j < changes.length; ++j) { - var change = changes[j], m; - newChanges.push({from: change.from, to: change.to, text: change.text}); - if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) { - if (indexOf(newGroup, Number(m[1])) > -1) { - lst(newChanges)[prop] = change[prop]; - delete change[prop]; - } - } - } - } - return copy; - } - - // Rebasing/resetting history to deal with externally-sourced changes - - function rebaseHistSelSingle(pos, from, to, diff) { - if (to < pos.line) { - pos.line += diff; - } else if (from < pos.line) { - pos.line = from; - pos.ch = 0; - } - } - - // Tries to rebase an array of history events given a change in the - // document. If the change touches the same lines as the event, the - // event, and everything 'behind' it, is discarded. If the change is - // before the event, the event's positions are updated. Uses a - // copy-on-write scheme for the positions, to avoid having to - // reallocate them all on every rebase, but also avoid problems with - // shared position objects being unsafely updated. - function rebaseHistArray(array, from, to, diff) { - for (var i = 0; i < array.length; ++i) { - var sub = array[i], ok = true; - if (sub.ranges) { - if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } - for (var j = 0; j < sub.ranges.length; j++) { - rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); - rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); - } - continue; - } - for (var j = 0; j < sub.changes.length; ++j) { - var cur = sub.changes[j]; - if (to < cur.from.line) { - cur.from = Pos(cur.from.line + diff, cur.from.ch); - cur.to = Pos(cur.to.line + diff, cur.to.ch); - } else if (from <= cur.to.line) { - ok = false; - break; - } - } - if (!ok) { - array.splice(0, i + 1); - i = 0; - } - } - } - - function rebaseHist(hist, change) { - var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; - rebaseHistArray(hist.done, from, to, diff); - rebaseHistArray(hist.undone, from, to, diff); - } - - // EVENT UTILITIES - - // Due to the fact that we still support jurassic IE versions, some - // compatibility wrappers are needed. - - var e_preventDefault = CodeMirror.e_preventDefault = function(e) { - if (e.preventDefault) e.preventDefault(); - else e.returnValue = false; - }; - var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) { - if (e.stopPropagation) e.stopPropagation(); - else e.cancelBubble = true; - }; - function e_defaultPrevented(e) { - return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false; - } - var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);}; - - function e_target(e) {return e.target || e.srcElement;} - function e_button(e) { - var b = e.which; - if (b == null) { - if (e.button & 1) b = 1; - else if (e.button & 2) b = 3; - else if (e.button & 4) b = 2; - } - if (mac && e.ctrlKey && b == 1) b = 3; - return b; - } - - // EVENT HANDLING - - // Lightweight event framework. on/off also work on DOM nodes, - // registering native DOM handlers. - - var on = CodeMirror.on = function(emitter, type, f) { - if (emitter.addEventListener) - emitter.addEventListener(type, f, false); - else if (emitter.attachEvent) - emitter.attachEvent("on" + type, f); - else { - var map = emitter._handlers || (emitter._handlers = {}); - var arr = map[type] || (map[type] = []); - arr.push(f); - } - }; - - var off = CodeMirror.off = function(emitter, type, f) { - if (emitter.removeEventListener) - emitter.removeEventListener(type, f, false); - else if (emitter.detachEvent) - emitter.detachEvent("on" + type, f); - else { - var arr = emitter._handlers && emitter._handlers[type]; - if (!arr) return; - for (var i = 0; i < arr.length; ++i) - if (arr[i] == f) { arr.splice(i, 1); break; } - } - }; - - var signal = CodeMirror.signal = function(emitter, type /*, values...*/) { - var arr = emitter._handlers && emitter._handlers[type]; - if (!arr) return; - var args = Array.prototype.slice.call(arguments, 2); - for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args); - }; - - var orphanDelayedCallbacks = null; - - // Often, we want to signal events at a point where we are in the - // middle of some work, but don't want the handler to start calling - // other methods on the editor, which might be in an inconsistent - // state or simply not expect any other events to happen. - // signalLater looks whether there are any handlers, and schedules - // them to be executed when the last operation ends, or, if no - // operation is active, when a timeout fires. - function signalLater(emitter, type /*, values...*/) { - var arr = emitter._handlers && emitter._handlers[type]; - if (!arr) return; - var args = Array.prototype.slice.call(arguments, 2), list; - if (operationGroup) { - list = operationGroup.delayedCallbacks; - } else if (orphanDelayedCallbacks) { - list = orphanDelayedCallbacks; - } else { - list = orphanDelayedCallbacks = []; - setTimeout(fireOrphanDelayed, 0); - } - function bnd(f) {return function(){f.apply(null, args);};}; - for (var i = 0; i < arr.length; ++i) - list.push(bnd(arr[i])); - } - - function fireOrphanDelayed() { - var delayed = orphanDelayedCallbacks; - orphanDelayedCallbacks = null; - for (var i = 0; i < delayed.length; ++i) delayed[i](); - } - - // The DOM events that CodeMirror handles can be overridden by - // registering a (non-DOM) handler on the editor for the event name, - // and preventDefault-ing the event in that handler. - function signalDOMEvent(cm, e, override) { - if (typeof e == "string") - e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; - signal(cm, override || e.type, cm, e); - return e_defaultPrevented(e) || e.codemirrorIgnore; - } - - function signalCursorActivity(cm) { - var arr = cm._handlers && cm._handlers.cursorActivity; - if (!arr) return; - var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); - for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1) - set.push(arr[i]); - } - - function hasHandler(emitter, type) { - var arr = emitter._handlers && emitter._handlers[type]; - return arr && arr.length > 0; - } - - // Add on and off methods to a constructor's prototype, to make - // registering events on such objects more convenient. - function eventMixin(ctor) { - ctor.prototype.on = function(type, f) {on(this, type, f);}; - ctor.prototype.off = function(type, f) {off(this, type, f);}; - } - - // MISC UTILITIES - - // Number of pixels added to scroller and sizer to hide scrollbar - var scrollerCutOff = 30; - - // Returned or thrown by various protocols to signal 'I'm not - // handling this'. - var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; - - // Reused option objects for setSelection & friends - var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; - - function Delayed() {this.id = null;} - Delayed.prototype.set = function(ms, f) { - clearTimeout(this.id); - this.id = setTimeout(f, ms); - }; - - // Counts the column offset in a string, taking tabs into account. - // Used mostly to find indentation. - var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) { - if (end == null) { - end = string.search(/[^\s\u00a0]/); - if (end == -1) end = string.length; - } - for (var i = startIndex || 0, n = startValue || 0;;) { - var nextTab = string.indexOf("\t", i); - if (nextTab < 0 || nextTab >= end) - return n + (end - i); - n += nextTab - i; - n += tabSize - (n % tabSize); - i = nextTab + 1; - } - }; - - // The inverse of countColumn -- find the offset that corresponds to - // a particular column. - function findColumn(string, goal, tabSize) { - for (var pos = 0, col = 0;;) { - var nextTab = string.indexOf("\t", pos); - if (nextTab == -1) nextTab = string.length; - var skipped = nextTab - pos; - if (nextTab == string.length || col + skipped >= goal) - return pos + Math.min(skipped, goal - col); - col += nextTab - pos; - col += tabSize - (col % tabSize); - pos = nextTab + 1; - if (col >= goal) return pos; - } - } - - var spaceStrs = [""]; - function spaceStr(n) { - while (spaceStrs.length <= n) - spaceStrs.push(lst(spaceStrs) + " "); - return spaceStrs[n]; - } - - function lst(arr) { return arr[arr.length-1]; } - - var selectInput = function(node) { node.select(); }; - if (ios) // Mobile Safari apparently has a bug where select() is broken. - selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; - else if (ie) // Suppress mysterious IE10 errors - selectInput = function(node) { try { node.select(); } catch(_e) {} }; - - function indexOf(array, elt) { - for (var i = 0; i < array.length; ++i) - if (array[i] == elt) return i; - return -1; - } - if ([].indexOf) indexOf = function(array, elt) { return array.indexOf(elt); }; - function map(array, f) { - var out = []; - for (var i = 0; i < array.length; i++) out[i] = f(array[i], i); - return out; - } - if ([].map) map = function(array, f) { return array.map(f); }; - - function createObj(base, props) { - var inst; - if (Object.create) { - inst = Object.create(base); - } else { - var ctor = function() {}; - ctor.prototype = base; - inst = new ctor(); - } - if (props) copyObj(props, inst); - return inst; - }; - - function copyObj(obj, target, overwrite) { - if (!target) target = {}; - for (var prop in obj) - if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) - target[prop] = obj[prop]; - return target; - } - - function bind(f) { - var args = Array.prototype.slice.call(arguments, 1); - return function(){return f.apply(null, args);}; - } - - var nonASCIISingleCaseWordChar = /[\u00df\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; - var isWordCharBasic = CodeMirror.isWordChar = function(ch) { - return /\w/.test(ch) || ch > "\x80" && - (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); - }; - function isWordChar(ch, helper) { - if (!helper) return isWordCharBasic(ch); - if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true; - return helper.test(ch); - } - - function isEmpty(obj) { - for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false; - return true; - } - - // Extending unicode characters. A series of a non-extending char + - // any number of extending chars is treated as a single unit as far - // as editing and measuring is concerned. This is not fully correct, - // since some scripts/fonts/browsers also treat other configurations - // of code points as a group. - var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; - function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); } - - // DOM UTILITIES - - function elt(tag, content, className, style) { - var e = document.createElement(tag); - if (className) e.className = className; - if (style) e.style.cssText = style; - if (typeof content == "string") e.appendChild(document.createTextNode(content)); - else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); - return e; - } - - var range; - if (document.createRange) range = function(node, start, end) { - var r = document.createRange(); - r.setEnd(node, end); - r.setStart(node, start); - return r; - }; - else range = function(node, start, end) { - var r = document.body.createTextRange(); - try { r.moveToElementText(node.parentNode); } - catch(e) { return r; } - r.collapse(true); - r.moveEnd("character", end); - r.moveStart("character", start); - return r; - }; - - function removeChildren(e) { - for (var count = e.childNodes.length; count > 0; --count) - e.removeChild(e.firstChild); - return e; - } - - function removeChildrenAndAdd(parent, e) { - return removeChildren(parent).appendChild(e); - } - - function contains(parent, child) { - if (parent.contains) - return parent.contains(child); - while (child = child.parentNode) - if (child == parent) return true; - } - - function activeElt() { return document.activeElement; } - // Older versions of IE throws unspecified error when touching - // document.activeElement in some cases (during loading, in iframe) - if (ie && ie_version < 11) activeElt = function() { - try { return document.activeElement; } - catch(e) { return document.body; } - }; - - function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); } - var rmClass = CodeMirror.rmClass = function(node, cls) { - var current = node.className; - var match = classTest(cls).exec(current); - if (match) { - var after = current.slice(match.index + match[0].length); - node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); - } - }; - var addClass = CodeMirror.addClass = function(node, cls) { - var current = node.className; - if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls; - }; - function joinClasses(a, b) { - var as = a.split(" "); - for (var i = 0; i < as.length; i++) - if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i]; - return b; - } - - // WINDOW-WIDE EVENTS - - // These must be handled carefully, because naively registering a - // handler for each editor will cause the editors to never be - // garbage collected. - - function forEachCodeMirror(f) { - if (!document.body.getElementsByClassName) return; - var byClass = document.body.getElementsByClassName("CodeMirror"); - for (var i = 0; i < byClass.length; i++) { - var cm = byClass[i].CodeMirror; - if (cm) f(cm); - } - } - - var globalsRegistered = false; - function ensureGlobalHandlers() { - if (globalsRegistered) return; - registerGlobalHandlers(); - globalsRegistered = true; - } - function registerGlobalHandlers() { - // When the window resizes, we need to refresh active editors. - var resizeTimer; - on(window, "resize", function() { - if (resizeTimer == null) resizeTimer = setTimeout(function() { - resizeTimer = null; - knownScrollbarWidth = null; - forEachCodeMirror(onResize); - }, 100); - }); - // When the window loses focus, we want to show the editor as blurred - on(window, "blur", function() { - forEachCodeMirror(onBlur); - }); - } - - // FEATURE DETECTION - - // Detect drag-and-drop - var dragAndDrop = function() { - // There is *some* kind of drag-and-drop support in IE6-8, but I - // couldn't get it to work yet. - if (ie && ie_version < 9) return false; - var div = elt('div'); - return "draggable" in div || "dragDrop" in div; - }(); - - var knownScrollbarWidth; - function scrollbarWidth(measure) { - if (knownScrollbarWidth != null) return knownScrollbarWidth; - var test = elt("div", null, null, "width: 50px; height: 50px; overflow-x: scroll"); - removeChildrenAndAdd(measure, test); - if (test.offsetWidth) - knownScrollbarWidth = test.offsetHeight - test.clientHeight; - return knownScrollbarWidth || 0; - } - - var zwspSupported; - function zeroWidthElement(measure) { - if (zwspSupported == null) { - var test = elt("span", "\u200b"); - removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); - if (measure.firstChild.offsetHeight != 0) - zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); - } - if (zwspSupported) return elt("span", "\u200b"); - else return elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); - } - - // Feature-detect IE's crummy client rect reporting for bidi text - var badBidiRects; - function hasBadBidiRects(measure) { - if (badBidiRects != null) return badBidiRects; - var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); - var r0 = range(txt, 0, 1).getBoundingClientRect(); - if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780) - var r1 = range(txt, 1, 2).getBoundingClientRect(); - return badBidiRects = (r1.right - r0.right < 3); - } - - // See if "".split is the broken IE version, if so, provide an - // alternative way to split lines. - var splitLines = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { - var pos = 0, result = [], l = string.length; - while (pos <= l) { - var nl = string.indexOf("\n", pos); - if (nl == -1) nl = string.length; - var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); - var rt = line.indexOf("\r"); - if (rt != -1) { - result.push(line.slice(0, rt)); - pos += rt + 1; - } else { - result.push(line); - pos = nl + 1; - } - } - return result; - } : function(string){return string.split(/\r\n?|\n/);}; - - var hasSelection = window.getSelection ? function(te) { - try { return te.selectionStart != te.selectionEnd; } - catch(e) { return false; } - } : function(te) { - try {var range = te.ownerDocument.selection.createRange();} - catch(e) {} - if (!range || range.parentElement() != te) return false; - return range.compareEndPoints("StartToEnd", range) != 0; - }; - - var hasCopyEvent = (function() { - var e = elt("div"); - if ("oncopy" in e) return true; - e.setAttribute("oncopy", "return;"); - return typeof e.oncopy == "function"; - })(); - - var badZoomedRects = null; - function hasBadZoomedRects(measure) { - if (badZoomedRects != null) return badZoomedRects; - var node = removeChildrenAndAdd(measure, elt("span", "x")); - var normal = node.getBoundingClientRect(); - var fromRange = range(node, 0, 1).getBoundingClientRect(); - return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1; - } - - // KEY NAMES - - var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", - 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", - 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", - 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", 107: "=", 109: "-", 127: "Delete", - 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", - 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", - 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"}; - CodeMirror.keyNames = keyNames; - (function() { - // Number keys - for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i); - // Alphabetic keys - for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); - // Function keys - for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; - })(); - - // BIDI HELPERS - - function iterateBidiSections(order, from, to, f) { - if (!order) return f(from, to, "ltr"); - var found = false; - for (var i = 0; i < order.length; ++i) { - var part = order[i]; - if (part.from < to && part.to > from || from == to && part.to == from) { - f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr"); - found = true; - } - } - if (!found) f(from, to, "ltr"); - } - - function bidiLeft(part) { return part.level % 2 ? part.to : part.from; } - function bidiRight(part) { return part.level % 2 ? part.from : part.to; } - - function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; } - function lineRight(line) { - var order = getOrder(line); - if (!order) return line.text.length; - return bidiRight(lst(order)); - } - - function lineStart(cm, lineN) { - var line = getLine(cm.doc, lineN); - var visual = visualLine(line); - if (visual != line) lineN = lineNo(visual); - var order = getOrder(visual); - var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); - return Pos(lineN, ch); - } - function lineEnd(cm, lineN) { - var merged, line = getLine(cm.doc, lineN); - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - lineN = null; - } - var order = getOrder(line); - var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line); - return Pos(lineN == null ? lineNo(line) : lineN, ch); - } - function lineStartSmart(cm, pos) { - var start = lineStart(cm, pos.line); - var line = getLine(cm.doc, start.line); - var order = getOrder(line); - if (!order || order[0].level == 0) { - var firstNonWS = Math.max(0, line.text.search(/\S/)); - var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; - return Pos(start.line, inWS ? 0 : firstNonWS); - } - return start; - } - - function compareBidiLevel(order, a, b) { - var linedir = order[0].level; - if (a == linedir) return true; - if (b == linedir) return false; - return a < b; - } - var bidiOther; - function getBidiPartAt(order, pos) { - bidiOther = null; - for (var i = 0, found; i < order.length; ++i) { - var cur = order[i]; - if (cur.from < pos && cur.to > pos) return i; - if ((cur.from == pos || cur.to == pos)) { - if (found == null) { - found = i; - } else if (compareBidiLevel(order, cur.level, order[found].level)) { - if (cur.from != cur.to) bidiOther = found; - return i; - } else { - if (cur.from != cur.to) bidiOther = i; - return found; - } - } - } - return found; - } - - function moveInLine(line, pos, dir, byUnit) { - if (!byUnit) return pos + dir; - do pos += dir; - while (pos > 0 && isExtendingChar(line.text.charAt(pos))); - return pos; - } - - // This is needed in order to move 'visually' through bi-directional - // text -- i.e., pressing left should make the cursor go left, even - // when in RTL text. The tricky part is the 'jumps', where RTL and - // LTR text touch each other. This often requires the cursor offset - // to move more than one unit, in order to visually move one unit. - function moveVisually(line, start, dir, byUnit) { - var bidi = getOrder(line); - if (!bidi) return moveLogically(line, start, dir, byUnit); - var pos = getBidiPartAt(bidi, start), part = bidi[pos]; - var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit); - - for (;;) { - if (target > part.from && target < part.to) return target; - if (target == part.from || target == part.to) { - if (getBidiPartAt(bidi, target) == pos) return target; - part = bidi[pos += dir]; - return (dir > 0) == part.level % 2 ? part.to : part.from; - } else { - part = bidi[pos += dir]; - if (!part) return null; - if ((dir > 0) == part.level % 2) - target = moveInLine(line, part.to, -1, byUnit); - else - target = moveInLine(line, part.from, 1, byUnit); - } - } - } - - function moveLogically(line, start, dir, byUnit) { - var target = start + dir; - if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir; - return target < 0 || target > line.text.length ? null : target; - } - - // Bidirectional ordering algorithm - // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm - // that this (partially) implements. - - // One-char codes used for character types: - // L (L): Left-to-Right - // R (R): Right-to-Left - // r (AL): Right-to-Left Arabic - // 1 (EN): European Number - // + (ES): European Number Separator - // % (ET): European Number Terminator - // n (AN): Arabic Number - // , (CS): Common Number Separator - // m (NSM): Non-Spacing Mark - // b (BN): Boundary Neutral - // s (B): Paragraph Separator - // t (S): Segment Separator - // w (WS): Whitespace - // N (ON): Other Neutrals - - // Returns null if characters are ordered as they appear - // (left-to-right), or an array of sections ({from, to, level} - // objects) in the order in which they occur visually. - var bidiOrdering = (function() { - // Character types for codepoints 0 to 0xff - var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; - // Character types for codepoints 0x600 to 0x6ff - var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm"; - function charType(code) { - if (code <= 0xf7) return lowTypes.charAt(code); - else if (0x590 <= code && code <= 0x5f4) return "R"; - else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600); - else if (0x6ee <= code && code <= 0x8ac) return "r"; - else if (0x2000 <= code && code <= 0x200b) return "w"; - else if (code == 0x200c) return "b"; - else return "L"; - } - - var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; - var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; - // Browsers seem to always treat the boundaries of block elements as being L. - var outerType = "L"; - - function BidiSpan(level, from, to) { - this.level = level; - this.from = from; this.to = to; - } - - return function(str) { - if (!bidiRE.test(str)) return false; - var len = str.length, types = []; - for (var i = 0, type; i < len; ++i) - types.push(type = charType(str.charCodeAt(i))); - - // W1. Examine each non-spacing mark (NSM) in the level run, and - // change the type of the NSM to the type of the previous - // character. If the NSM is at the start of the level run, it will - // get the type of sor. - for (var i = 0, prev = outerType; i < len; ++i) { - var type = types[i]; - if (type == "m") types[i] = prev; - else prev = type; - } - - // W2. Search backwards from each instance of a European number - // until the first strong type (R, L, AL, or sor) is found. If an - // AL is found, change the type of the European number to Arabic - // number. - // W3. Change all ALs to R. - for (var i = 0, cur = outerType; i < len; ++i) { - var type = types[i]; - if (type == "1" && cur == "r") types[i] = "n"; - else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; } - } - - // W4. A single European separator between two European numbers - // changes to a European number. A single common separator between - // two numbers of the same type changes to that type. - for (var i = 1, prev = types[0]; i < len - 1; ++i) { - var type = types[i]; - if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"; - else if (type == "," && prev == types[i+1] && - (prev == "1" || prev == "n")) types[i] = prev; - prev = type; - } - - // W5. A sequence of European terminators adjacent to European - // numbers changes to all European numbers. - // W6. Otherwise, separators and terminators change to Other - // Neutral. - for (var i = 0; i < len; ++i) { - var type = types[i]; - if (type == ",") types[i] = "N"; - else if (type == "%") { - for (var end = i + 1; end < len && types[end] == "%"; ++end) {} - var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; - for (var j = i; j < end; ++j) types[j] = replace; - i = end - 1; - } - } - - // W7. Search backwards from each instance of a European number - // until the first strong type (R, L, or sor) is found. If an L is - // found, then change the type of the European number to L. - for (var i = 0, cur = outerType; i < len; ++i) { - var type = types[i]; - if (cur == "L" && type == "1") types[i] = "L"; - else if (isStrong.test(type)) cur = type; - } - - // N1. A sequence of neutrals takes the direction of the - // surrounding strong text if the text on both sides has the same - // direction. European and Arabic numbers act as if they were R in - // terms of their influence on neutrals. Start-of-level-run (sor) - // and end-of-level-run (eor) are used at level run boundaries. - // N2. Any remaining neutrals take the embedding direction. - for (var i = 0; i < len; ++i) { - if (isNeutral.test(types[i])) { - for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {} - var before = (i ? types[i-1] : outerType) == "L"; - var after = (end < len ? types[end] : outerType) == "L"; - var replace = before || after ? "L" : "R"; - for (var j = i; j < end; ++j) types[j] = replace; - i = end - 1; - } - } - - // Here we depart from the documented algorithm, in order to avoid - // building up an actual levels array. Since there are only three - // levels (0, 1, 2) in an implementation that doesn't take - // explicit embedding into account, we can build up the order on - // the fly, without following the level-based algorithm. - var order = [], m; - for (var i = 0; i < len;) { - if (countsAsLeft.test(types[i])) { - var start = i; - for (++i; i < len && countsAsLeft.test(types[i]); ++i) {} - order.push(new BidiSpan(0, start, i)); - } else { - var pos = i, at = order.length; - for (++i; i < len && types[i] != "L"; ++i) {} - for (var j = pos; j < i;) { - if (countsAsNum.test(types[j])) { - if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j)); - var nstart = j; - for (++j; j < i && countsAsNum.test(types[j]); ++j) {} - order.splice(at, 0, new BidiSpan(2, nstart, j)); - pos = j; - } else ++j; - } - if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i)); - } - } - if (order[0].level == 1 && (m = str.match(/^\s+/))) { - order[0].from = m[0].length; - order.unshift(new BidiSpan(0, 0, m[0].length)); - } - if (lst(order).level == 1 && (m = str.match(/\s+$/))) { - lst(order).to -= m[0].length; - order.push(new BidiSpan(0, len - m[0].length, len)); - } - if (order[0].level != lst(order).level) - order.push(new BidiSpan(order[0].level, len, len)); - - return order; - }; - })(); - - // THE END - - CodeMirror.version = "4.8.0"; - - return CodeMirror; -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/css/css.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/css/css.js deleted file mode 100644 index 55082bf..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/css/css.js +++ /dev/null @@ -1,717 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("css", function(config, parserConfig) { - if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode("text/css"); - - var indentUnit = config.indentUnit, - tokenHooks = parserConfig.tokenHooks, - mediaTypes = parserConfig.mediaTypes || {}, - mediaFeatures = parserConfig.mediaFeatures || {}, - propertyKeywords = parserConfig.propertyKeywords || {}, - nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {}, - colorKeywords = parserConfig.colorKeywords || {}, - valueKeywords = parserConfig.valueKeywords || {}, - fontProperties = parserConfig.fontProperties || {}, - allowNested = parserConfig.allowNested; - - var type, override; - function ret(style, tp) { type = tp; return style; } - - // Tokenizers - - function tokenBase(stream, state) { - var ch = stream.next(); - if (tokenHooks[ch]) { - var result = tokenHooks[ch](stream, state); - if (result !== false) return result; - } - if (ch == "@") { - stream.eatWhile(/[\w\\\-]/); - return ret("def", stream.current()); - } else if (ch == "=" || (ch == "~" || ch == "|") && stream.eat("=")) { - return ret(null, "compare"); - } else if (ch == "\"" || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } else if (ch == "#") { - stream.eatWhile(/[\w\\\-]/); - return ret("atom", "hash"); - } else if (ch == "!") { - stream.match(/^\s*\w*/); - return ret("keyword", "important"); - } else if (/\d/.test(ch) || ch == "." && stream.eat(/\d/)) { - stream.eatWhile(/[\w.%]/); - return ret("number", "unit"); - } else if (ch === "-") { - if (/[\d.]/.test(stream.peek())) { - stream.eatWhile(/[\w.%]/); - return ret("number", "unit"); - } else if (stream.match(/^\w+-/)) { - return ret("meta", "meta"); - } - } else if (/[,+>*\/]/.test(ch)) { - return ret(null, "select-op"); - } else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) { - return ret("qualifier", "qualifier"); - } else if (/[:;{}\[\]\(\)]/.test(ch)) { - return ret(null, ch); - } else if (ch == "u" && stream.match("rl(")) { - stream.backUp(1); - state.tokenize = tokenParenthesized; - return ret("property", "word"); - } else if (/[\w\\\-]/.test(ch)) { - stream.eatWhile(/[\w\\\-]/); - return ret("property", "word"); - } else { - return ret(null, null); - } - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) { - if (quote == ")") stream.backUp(1); - break; - } - escaped = !escaped && ch == "\\"; - } - if (ch == quote || !escaped && quote != ")") state.tokenize = null; - return ret("string", "string"); - }; - } - - function tokenParenthesized(stream, state) { - stream.next(); // Must be '(' - if (!stream.match(/\s*[\"\')]/, false)) - state.tokenize = tokenString(")"); - else - state.tokenize = null; - return ret(null, "("); - } - - // Context management - - function Context(type, indent, prev) { - this.type = type; - this.indent = indent; - this.prev = prev; - } - - function pushContext(state, stream, type) { - state.context = new Context(type, stream.indentation() + indentUnit, state.context); - return type; - } - - function popContext(state) { - state.context = state.context.prev; - return state.context.type; - } - - function pass(type, stream, state) { - return states[state.context.type](type, stream, state); - } - function popAndPass(type, stream, state, n) { - for (var i = n || 1; i > 0; i--) - state.context = state.context.prev; - return pass(type, stream, state); - } - - // Parser - - function wordAsValue(stream) { - var word = stream.current().toLowerCase(); - if (valueKeywords.hasOwnProperty(word)) - override = "atom"; - else if (colorKeywords.hasOwnProperty(word)) - override = "keyword"; - else - override = "variable"; - } - - var states = {}; - - states.top = function(type, stream, state) { - if (type == "{") { - return pushContext(state, stream, "block"); - } else if (type == "}" && state.context.prev) { - return popContext(state); - } else if (type == "@media") { - return pushContext(state, stream, "media"); - } else if (type == "@font-face") { - return "font_face_before"; - } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) { - return "keyframes"; - } else if (type && type.charAt(0) == "@") { - return pushContext(state, stream, "at"); - } else if (type == "hash") { - override = "builtin"; - } else if (type == "word") { - override = "tag"; - } else if (type == "variable-definition") { - return "maybeprop"; - } else if (type == "interpolation") { - return pushContext(state, stream, "interpolation"); - } else if (type == ":") { - return "pseudo"; - } else if (allowNested && type == "(") { - return pushContext(state, stream, "parens"); - } - return state.context.type; - }; - - states.block = function(type, stream, state) { - if (type == "word") { - var word = stream.current().toLowerCase(); - if (propertyKeywords.hasOwnProperty(word)) { - override = "property"; - return "maybeprop"; - } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) { - override = "string-2"; - return "maybeprop"; - } else if (allowNested) { - override = stream.match(/^\s*:(?:\s|$)/, false) ? "property" : "tag"; - return "block"; - } else { - override += " error"; - return "maybeprop"; - } - } else if (type == "meta") { - return "block"; - } else if (!allowNested && (type == "hash" || type == "qualifier")) { - override = "error"; - return "block"; - } else { - return states.top(type, stream, state); - } - }; - - states.maybeprop = function(type, stream, state) { - if (type == ":") return pushContext(state, stream, "prop"); - return pass(type, stream, state); - }; - - states.prop = function(type, stream, state) { - if (type == ";") return popContext(state); - if (type == "{" && allowNested) return pushContext(state, stream, "propBlock"); - if (type == "}" || type == "{") return popAndPass(type, stream, state); - if (type == "(") return pushContext(state, stream, "parens"); - - if (type == "hash" && !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) { - override += " error"; - } else if (type == "word") { - wordAsValue(stream); - } else if (type == "interpolation") { - return pushContext(state, stream, "interpolation"); - } - return "prop"; - }; - - states.propBlock = function(type, _stream, state) { - if (type == "}") return popContext(state); - if (type == "word") { override = "property"; return "maybeprop"; } - return state.context.type; - }; - - states.parens = function(type, stream, state) { - if (type == "{" || type == "}") return popAndPass(type, stream, state); - if (type == ")") return popContext(state); - if (type == "(") return pushContext(state, stream, "parens"); - if (type == "word") wordAsValue(stream); - return "parens"; - }; - - states.pseudo = function(type, stream, state) { - if (type == "word") { - override = "variable-3"; - return state.context.type; - } - return pass(type, stream, state); - }; - - states.media = function(type, stream, state) { - if (type == "(") return pushContext(state, stream, "media_parens"); - if (type == "}") return popAndPass(type, stream, state); - if (type == "{") return popContext(state) && pushContext(state, stream, allowNested ? "block" : "top"); - - if (type == "word") { - var word = stream.current().toLowerCase(); - if (word == "only" || word == "not" || word == "and") - override = "keyword"; - else if (mediaTypes.hasOwnProperty(word)) - override = "attribute"; - else if (mediaFeatures.hasOwnProperty(word)) - override = "property"; - else - override = "error"; - } - return state.context.type; - }; - - states.media_parens = function(type, stream, state) { - if (type == ")") return popContext(state); - if (type == "{" || type == "}") return popAndPass(type, stream, state, 2); - return states.media(type, stream, state); - }; - - states.font_face_before = function(type, stream, state) { - if (type == "{") - return pushContext(state, stream, "font_face"); - return pass(type, stream, state); - }; - - states.font_face = function(type, stream, state) { - if (type == "}") return popContext(state); - if (type == "word") { - if (!fontProperties.hasOwnProperty(stream.current().toLowerCase())) - override = "error"; - else - override = "property"; - return "maybeprop"; - } - return "font_face"; - }; - - states.keyframes = function(type, stream, state) { - if (type == "word") { override = "variable"; return "keyframes"; } - if (type == "{") return pushContext(state, stream, "top"); - return pass(type, stream, state); - }; - - states.at = function(type, stream, state) { - if (type == ";") return popContext(state); - if (type == "{" || type == "}") return popAndPass(type, stream, state); - if (type == "word") override = "tag"; - else if (type == "hash") override = "builtin"; - return "at"; - }; - - states.interpolation = function(type, stream, state) { - if (type == "}") return popContext(state); - if (type == "{" || type == ";") return popAndPass(type, stream, state); - if (type != "variable") override = "error"; - return "interpolation"; - }; - - return { - startState: function(base) { - return {tokenize: null, - state: "top", - context: new Context("top", base || 0, null)}; - }, - - token: function(stream, state) { - if (!state.tokenize && stream.eatSpace()) return null; - var style = (state.tokenize || tokenBase)(stream, state); - if (style && typeof style == "object") { - type = style[1]; - style = style[0]; - } - override = style; - state.state = states[state.state](type, stream, state); - return override; - }, - - indent: function(state, textAfter) { - var cx = state.context, ch = textAfter && textAfter.charAt(0); - var indent = cx.indent; - if (cx.type == "prop" && (ch == "}" || ch == ")")) cx = cx.prev; - if (cx.prev && - (ch == "}" && (cx.type == "block" || cx.type == "top" || cx.type == "interpolation" || cx.type == "font_face") || - ch == ")" && (cx.type == "parens" || cx.type == "media_parens") || - ch == "{" && (cx.type == "at" || cx.type == "media"))) { - indent = cx.indent - indentUnit; - cx = cx.prev; - } - return indent; - }, - - electricChars: "}", - blockCommentStart: "/*", - blockCommentEnd: "*/", - fold: "brace" - }; -}); - - function keySet(array) { - var keys = {}; - for (var i = 0; i < array.length; ++i) { - keys[array[i]] = true; - } - return keys; - } - - var mediaTypes_ = [ - "all", "aural", "braille", "handheld", "print", "projection", "screen", - "tty", "tv", "embossed" - ], mediaTypes = keySet(mediaTypes_); - - var mediaFeatures_ = [ - "width", "min-width", "max-width", "height", "min-height", "max-height", - "device-width", "min-device-width", "max-device-width", "device-height", - "min-device-height", "max-device-height", "aspect-ratio", - "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", - "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", - "max-color", "color-index", "min-color-index", "max-color-index", - "monochrome", "min-monochrome", "max-monochrome", "resolution", - "min-resolution", "max-resolution", "scan", "grid" - ], mediaFeatures = keySet(mediaFeatures_); - - var propertyKeywords_ = [ - "align-content", "align-items", "align-self", "alignment-adjust", - "alignment-baseline", "anchor-point", "animation", "animation-delay", - "animation-direction", "animation-duration", "animation-fill-mode", - "animation-iteration-count", "animation-name", "animation-play-state", - "animation-timing-function", "appearance", "azimuth", "backface-visibility", - "background", "background-attachment", "background-clip", "background-color", - "background-image", "background-origin", "background-position", - "background-repeat", "background-size", "baseline-shift", "binding", - "bleed", "bookmark-label", "bookmark-level", "bookmark-state", - "bookmark-target", "border", "border-bottom", "border-bottom-color", - "border-bottom-left-radius", "border-bottom-right-radius", - "border-bottom-style", "border-bottom-width", "border-collapse", - "border-color", "border-image", "border-image-outset", - "border-image-repeat", "border-image-slice", "border-image-source", - "border-image-width", "border-left", "border-left-color", - "border-left-style", "border-left-width", "border-radius", "border-right", - "border-right-color", "border-right-style", "border-right-width", - "border-spacing", "border-style", "border-top", "border-top-color", - "border-top-left-radius", "border-top-right-radius", "border-top-style", - "border-top-width", "border-width", "bottom", "box-decoration-break", - "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", - "caption-side", "clear", "clip", "color", "color-profile", "column-count", - "column-fill", "column-gap", "column-rule", "column-rule-color", - "column-rule-style", "column-rule-width", "column-span", "column-width", - "columns", "content", "counter-increment", "counter-reset", "crop", "cue", - "cue-after", "cue-before", "cursor", "direction", "display", - "dominant-baseline", "drop-initial-after-adjust", - "drop-initial-after-align", "drop-initial-before-adjust", - "drop-initial-before-align", "drop-initial-size", "drop-initial-value", - "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", - "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", - "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings", - "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust", - "font-stretch", "font-style", "font-synthesis", "font-variant", - "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", - "font-variant-ligatures", "font-variant-numeric", "font-variant-position", - "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", - "grid-auto-position", "grid-auto-rows", "grid-column", "grid-column-end", - "grid-column-start", "grid-row", "grid-row-end", "grid-row-start", - "grid-template", "grid-template-areas", "grid-template-columns", - "grid-template-rows", "hanging-punctuation", "height", "hyphens", - "icon", "image-orientation", "image-rendering", "image-resolution", - "inline-box-align", "justify-content", "left", "letter-spacing", - "line-break", "line-height", "line-stacking", "line-stacking-ruby", - "line-stacking-shift", "line-stacking-strategy", "list-style", - "list-style-image", "list-style-position", "list-style-type", "margin", - "margin-bottom", "margin-left", "margin-right", "margin-top", - "marker-offset", "marks", "marquee-direction", "marquee-loop", - "marquee-play-count", "marquee-speed", "marquee-style", "max-height", - "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", - "nav-left", "nav-right", "nav-up", "object-fit", "object-position", - "opacity", "order", "orphans", "outline", - "outline-color", "outline-offset", "outline-style", "outline-width", - "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", - "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", - "page", "page-break-after", "page-break-before", "page-break-inside", - "page-policy", "pause", "pause-after", "pause-before", "perspective", - "perspective-origin", "pitch", "pitch-range", "play-during", "position", - "presentation-level", "punctuation-trim", "quotes", "region-break-after", - "region-break-before", "region-break-inside", "region-fragment", - "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness", - "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang", - "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin", - "shape-outside", "size", "speak", "speak-as", "speak-header", - "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", - "tab-size", "table-layout", "target", "target-name", "target-new", - "target-position", "text-align", "text-align-last", "text-decoration", - "text-decoration-color", "text-decoration-line", "text-decoration-skip", - "text-decoration-style", "text-emphasis", "text-emphasis-color", - "text-emphasis-position", "text-emphasis-style", "text-height", - "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow", - "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position", - "text-wrap", "top", "transform", "transform-origin", "transform-style", - "transition", "transition-delay", "transition-duration", - "transition-property", "transition-timing-function", "unicode-bidi", - "vertical-align", "visibility", "voice-balance", "voice-duration", - "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", - "voice-volume", "volume", "white-space", "widows", "width", "word-break", - "word-spacing", "word-wrap", "z-index", - // SVG-specific - "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color", - "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events", - "color-interpolation", "color-interpolation-filters", - "color-rendering", "fill", "fill-opacity", "fill-rule", "image-rendering", - "marker", "marker-end", "marker-mid", "marker-start", "shape-rendering", "stroke", - "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", - "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-rendering", - "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal", - "glyph-orientation-vertical", "text-anchor", "writing-mode" - ], propertyKeywords = keySet(propertyKeywords_); - - var nonStandardPropertyKeywords_ = [ - "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color", - "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color", - "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside", - "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", - "searchfield-results-decoration", "zoom" - ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_); - - var colorKeywords_ = [ - "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", - "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", - "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", - "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", - "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen", - "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", - "darkslateblue", "darkslategray", "darkturquoise", "darkviolet", - "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick", - "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", - "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", - "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", - "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", - "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightpink", - "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", - "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", - "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", - "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", - "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", - "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", - "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", - "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", - "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", - "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", - "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan", - "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", - "whitesmoke", "yellow", "yellowgreen" - ], colorKeywords = keySet(colorKeywords_); - - var valueKeywords_ = [ - "above", "absolute", "activeborder", "activecaption", "afar", - "after-white-space", "ahead", "alias", "all", "all-scroll", "alternate", - "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", - "arabic-indic", "armenian", "asterisks", "auto", "avoid", "avoid-column", "avoid-page", - "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary", - "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", - "both", "bottom", "break", "break-all", "break-word", "button", "button-bevel", - "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "cambodian", - "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", - "cell", "center", "checkbox", "circle", "cjk-earthly-branch", - "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", - "col-resize", "collapse", "column", "compact", "condensed", "contain", "content", - "content-box", "context-menu", "continuous", "copy", "cover", "crop", - "cross", "crosshair", "currentcolor", "cursive", "dashed", "decimal", - "decimal-leading-zero", "default", "default-button", "destination-atop", - "destination-in", "destination-out", "destination-over", "devanagari", - "disc", "discard", "document", "dot-dash", "dot-dot-dash", "dotted", - "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", - "element", "ellipse", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", - "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", - "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", - "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", - "ethiopic-halehame-gez", "ethiopic-halehame-om-et", - "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", - "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", - "ethiopic-halehame-tig", "ew-resize", "expanded", "extra-condensed", - "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "footnotes", - "forwards", "from", "geometricPrecision", "georgian", "graytext", "groove", - "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew", - "help", "hidden", "hide", "higher", "highlight", "highlighttext", - "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore", - "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", - "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", - "inline-block", "inline-table", "inset", "inside", "intrinsic", "invert", - "italic", "justify", "kannada", "katakana", "katakana-iroha", "keep-all", "khmer", - "landscape", "lao", "large", "larger", "left", "level", "lighter", - "line-through", "linear", "lines", "list-item", "listbox", "listitem", - "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", - "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", - "lower-roman", "lowercase", "ltr", "malayalam", "match", - "media-controls-background", "media-current-time-display", - "media-fullscreen-button", "media-mute-button", "media-play-button", - "media-return-to-realtime-button", "media-rewind-button", - "media-seek-back-button", "media-seek-forward-button", "media-slider", - "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", - "media-volume-slider-container", "media-volume-sliderthumb", "medium", - "menu", "menulist", "menulist-button", "menulist-text", - "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", - "mix", "mongolian", "monospace", "move", "multiple", "myanmar", "n-resize", - "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", - "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", - "ns-resize", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", - "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", - "outside", "outside-shape", "overlay", "overline", "padding", "padding-box", - "painted", "page", "paused", "persian", "plus-darker", "plus-lighter", "pointer", - "polygon", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", - "radio", "read-only", "read-write", "read-write-plaintext-only", "rectangle", "region", - "relative", "repeat", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", - "ridge", "right", "round", "row-resize", "rtl", "run-in", "running", - "s-resize", "sans-serif", "scroll", "scrollbar", "se-resize", "searchfield", - "searchfield-cancel-button", "searchfield-decoration", - "searchfield-results-button", "searchfield-results-decoration", - "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", - "single", "skip-white-space", "slide", "slider-horizontal", - "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", - "small", "small-caps", "small-caption", "smaller", "solid", "somali", - "source-atop", "source-in", "source-out", "source-over", "space", "square", - "square-button", "start", "static", "status-bar", "stretch", "stroke", - "sub", "subpixel-antialiased", "super", "sw-resize", "table", - "table-caption", "table-cell", "table-column", "table-column-group", - "table-footer-group", "table-header-group", "table-row", "table-row-group", - "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", - "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", - "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", - "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", - "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", - "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", - "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", - "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", - "visibleStroke", "visual", "w-resize", "wait", "wave", "wider", - "window", "windowframe", "windowtext", "x-large", "x-small", "xor", - "xx-large", "xx-small" - ], valueKeywords = keySet(valueKeywords_); - - var fontProperties_ = [ - "font-family", "src", "unicode-range", "font-variant", "font-feature-settings", - "font-stretch", "font-weight", "font-style" - ], fontProperties = keySet(fontProperties_); - - var allWords = mediaTypes_.concat(mediaFeatures_).concat(propertyKeywords_) - .concat(nonStandardPropertyKeywords_).concat(colorKeywords_).concat(valueKeywords_); - CodeMirror.registerHelper("hintWords", "css", allWords); - - function tokenCComment(stream, state) { - var maybeEnd = false, ch; - while ((ch = stream.next()) != null) { - if (maybeEnd && ch == "/") { - state.tokenize = null; - break; - } - maybeEnd = (ch == "*"); - } - return ["comment", "comment"]; - } - - function tokenSGMLComment(stream, state) { - if (stream.skipTo("-->")) { - stream.match("-->"); - state.tokenize = null; - } else { - stream.skipToEnd(); - } - return ["comment", "comment"]; - } - - CodeMirror.defineMIME("text/css", { - mediaTypes: mediaTypes, - mediaFeatures: mediaFeatures, - propertyKeywords: propertyKeywords, - nonStandardPropertyKeywords: nonStandardPropertyKeywords, - colorKeywords: colorKeywords, - valueKeywords: valueKeywords, - fontProperties: fontProperties, - tokenHooks: { - "<": function(stream, state) { - if (!stream.match("!--")) return false; - state.tokenize = tokenSGMLComment; - return tokenSGMLComment(stream, state); - }, - "/": function(stream, state) { - if (!stream.eat("*")) return false; - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } - }, - name: "css" - }); - - CodeMirror.defineMIME("text/x-scss", { - mediaTypes: mediaTypes, - mediaFeatures: mediaFeatures, - propertyKeywords: propertyKeywords, - nonStandardPropertyKeywords: nonStandardPropertyKeywords, - colorKeywords: colorKeywords, - valueKeywords: valueKeywords, - fontProperties: fontProperties, - allowNested: true, - tokenHooks: { - "/": function(stream, state) { - if (stream.eat("/")) { - stream.skipToEnd(); - return ["comment", "comment"]; - } else if (stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } else { - return ["operator", "operator"]; - } - }, - ":": function(stream) { - if (stream.match(/\s*\{/)) - return [null, "{"]; - return false; - }, - "$": function(stream) { - stream.match(/^[\w-]+/); - if (stream.match(/^\s*:/, false)) - return ["variable-2", "variable-definition"]; - return ["variable-2", "variable"]; - }, - "#": function(stream) { - if (!stream.eat("{")) return false; - return [null, "interpolation"]; - } - }, - name: "css", - helperType: "scss" - }); - - CodeMirror.defineMIME("text/x-less", { - mediaTypes: mediaTypes, - mediaFeatures: mediaFeatures, - propertyKeywords: propertyKeywords, - nonStandardPropertyKeywords: nonStandardPropertyKeywords, - colorKeywords: colorKeywords, - valueKeywords: valueKeywords, - fontProperties: fontProperties, - allowNested: true, - tokenHooks: { - "/": function(stream, state) { - if (stream.eat("/")) { - stream.skipToEnd(); - return ["comment", "comment"]; - } else if (stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } else { - return ["operator", "operator"]; - } - }, - "@": function(stream) { - if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, false)) return false; - stream.eatWhile(/[\w\\\-]/); - if (stream.match(/^\s*:/, false)) - return ["variable-2", "variable-definition"]; - return ["variable-2", "variable"]; - }, - "&": function() { - return ["atom", "atom"]; - } - }, - name: "css", - helperType: "less" - }); - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/gfm/gfm.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/gfm/gfm.js deleted file mode 100644 index 80a8e2c..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/gfm/gfm.js +++ /dev/null @@ -1,123 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../markdown/markdown"), require("../../addon/mode/overlay")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../markdown/markdown", "../../addon/mode/overlay"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("gfm", function(config, modeConfig) { - var codeDepth = 0; - function blankLine(state) { - state.code = false; - return null; - } - var gfmOverlay = { - startState: function() { - return { - code: false, - codeBlock: false, - ateSpace: false - }; - }, - copyState: function(s) { - return { - code: s.code, - codeBlock: s.codeBlock, - ateSpace: s.ateSpace - }; - }, - token: function(stream, state) { - state.combineTokens = null; - - // Hack to prevent formatting override inside code blocks (block and inline) - if (state.codeBlock) { - if (stream.match(/^```/)) { - state.codeBlock = false; - return null; - } - stream.skipToEnd(); - return null; - } - if (stream.sol()) { - state.code = false; - } - if (stream.sol() && stream.match(/^```/)) { - stream.skipToEnd(); - state.codeBlock = true; - return null; - } - // If this block is changed, it may need to be updated in Markdown mode - if (stream.peek() === '`') { - stream.next(); - var before = stream.pos; - stream.eatWhile('`'); - var difference = 1 + stream.pos - before; - if (!state.code) { - codeDepth = difference; - state.code = true; - } else { - if (difference === codeDepth) { // Must be exact - state.code = false; - } - } - return null; - } else if (state.code) { - stream.next(); - return null; - } - // Check if space. If so, links can be formatted later on - if (stream.eatSpace()) { - state.ateSpace = true; - return null; - } - if (stream.sol() || state.ateSpace) { - state.ateSpace = false; - if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/)) { - // User/Project@SHA - // User@SHA - // SHA - state.combineTokens = true; - return "link"; - } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) { - // User/Project#Num - // User#Num - // #Num - state.combineTokens = true; - return "link"; - } - } - if (stream.match(/^((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i) && - stream.string.slice(stream.start - 2, stream.start) != "](") { - // URLs - // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls - // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine - state.combineTokens = true; - return "link"; - } - stream.next(); - return null; - }, - blankLine: blankLine - }; - - var markdownConfig = { - underscoresBreakWords: false, - taskLists: true, - fencedCodeBlocks: true, - strikethrough: true - }; - for (var attr in modeConfig) { - markdownConfig[attr] = modeConfig[attr]; - } - markdownConfig.name = "markdown"; - CodeMirror.defineMIME("gfmBase", markdownConfig); - return CodeMirror.overlayMode(CodeMirror.getMode(config, "gfmBase"), gfmOverlay); -}, "markdown"); - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/htmlmixed/htmlmixed.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/htmlmixed/htmlmixed.js deleted file mode 100644 index 1cc438f..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/htmlmixed/htmlmixed.js +++ /dev/null @@ -1,121 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../xml/xml"), require("../javascript/javascript"), require("../css/css")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript", "../css/css"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("htmlmixed", function(config, parserConfig) { - var htmlMode = CodeMirror.getMode(config, {name: "xml", - htmlMode: true, - multilineTagIndentFactor: parserConfig.multilineTagIndentFactor, - multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag}); - var cssMode = CodeMirror.getMode(config, "css"); - - var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes; - scriptTypes.push({matches: /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i, - mode: CodeMirror.getMode(config, "javascript")}); - if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) { - var conf = scriptTypesConf[i]; - scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)}); - } - scriptTypes.push({matches: /./, - mode: CodeMirror.getMode(config, "text/plain")}); - - function html(stream, state) { - var tagName = state.htmlState.tagName; - if (tagName) tagName = tagName.toLowerCase(); - var style = htmlMode.token(stream, state.htmlState); - if (tagName == "script" && /\btag\b/.test(style) && stream.current() == ">") { - // Script block: mode to change to depends on type attribute - var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i); - scriptType = scriptType ? scriptType[1] : ""; - if (scriptType && /[\"\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1); - for (var i = 0; i < scriptTypes.length; ++i) { - var tp = scriptTypes[i]; - if (typeof tp.matches == "string" ? scriptType == tp.matches : tp.matches.test(scriptType)) { - if (tp.mode) { - state.token = script; - state.localMode = tp.mode; - state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, "")); - } - break; - } - } - } else if (tagName == "style" && /\btag\b/.test(style) && stream.current() == ">") { - state.token = css; - state.localMode = cssMode; - state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); - } - return style; - } - function maybeBackup(stream, pat, style) { - var cur = stream.current(); - var close = cur.search(pat), m; - if (close > -1) stream.backUp(cur.length - close); - else if (m = cur.match(/<\/?$/)) { - stream.backUp(cur.length); - if (!stream.match(pat, false)) stream.match(cur); - } - return style; - } - function script(stream, state) { - if (stream.match(/^<\/\s*script\s*>/i, false)) { - state.token = html; - state.localState = state.localMode = null; - return null; - } - return maybeBackup(stream, /<\/\s*script\s*>/, - state.localMode.token(stream, state.localState)); - } - function css(stream, state) { - if (stream.match(/^<\/\s*style\s*>/i, false)) { - state.token = html; - state.localState = state.localMode = null; - return null; - } - return maybeBackup(stream, /<\/\s*style\s*>/, - cssMode.token(stream, state.localState)); - } - - return { - startState: function() { - var state = htmlMode.startState(); - return {token: html, localMode: null, localState: null, htmlState: state}; - }, - - copyState: function(state) { - if (state.localState) - var local = CodeMirror.copyState(state.localMode, state.localState); - return {token: state.token, localMode: state.localMode, localState: local, - htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; - }, - - token: function(stream, state) { - return state.token(stream, state); - }, - - indent: function(state, textAfter) { - if (!state.localMode || /^\s*<\//.test(textAfter)) - return htmlMode.indent(state.htmlState, textAfter); - else if (state.localMode.indent) - return state.localMode.indent(state.localState, textAfter); - else - return CodeMirror.Pass; - }, - - innerMode: function(state) { - return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode}; - } - }; -}, "xml", "javascript", "css"); - -CodeMirror.defineMIME("text/html", "htmlmixed"); - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/javascript/javascript.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/javascript/javascript.js deleted file mode 100644 index b0ba8d0..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/javascript/javascript.js +++ /dev/null @@ -1,684 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// TODO actually recognize syntax of TypeScript constructs - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("javascript", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var statementIndent = parserConfig.statementIndent; - var jsonldMode = parserConfig.jsonld; - var jsonMode = parserConfig.json || jsonldMode; - var isTS = parserConfig.typescript; - var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/; - - // Tokenizer - - var keywords = function(){ - function kw(type) {return {type: type, style: "keyword"};} - var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); - var operator = kw("operator"), atom = {type: "atom", style: "atom"}; - - var jsKeywords = { - "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, - "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, "debugger": C, - "var": kw("var"), "const": kw("var"), "let": kw("var"), - "function": kw("function"), "catch": kw("catch"), - "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), - "in": operator, "typeof": operator, "instanceof": operator, - "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom, - "this": kw("this"), "module": kw("module"), "class": kw("class"), "super": kw("atom"), - "yield": C, "export": kw("export"), "import": kw("import"), "extends": C - }; - - // Extend the 'normal' keywords with the TypeScript language extensions - if (isTS) { - var type = {type: "variable", style: "variable-3"}; - var tsKeywords = { - // object-like things - "interface": kw("interface"), - "extends": kw("extends"), - "constructor": kw("constructor"), - - // scope modifiers - "public": kw("public"), - "private": kw("private"), - "protected": kw("protected"), - "static": kw("static"), - - // types - "string": type, "number": type, "bool": type, "any": type - }; - - for (var attr in tsKeywords) { - jsKeywords[attr] = tsKeywords[attr]; - } - } - - return jsKeywords; - }(); - - var isOperatorChar = /[+\-*&%=<>!?|~^]/; - var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/; - - function readRegexp(stream) { - var escaped = false, next, inSet = false; - while ((next = stream.next()) != null) { - if (!escaped) { - if (next == "/" && !inSet) return; - if (next == "[") inSet = true; - else if (inSet && next == "]") inSet = false; - } - escaped = !escaped && next == "\\"; - } - } - - // Used as scratch variables to communicate multiple values without - // consing up tons of objects. - var type, content; - function ret(tp, style, cont) { - type = tp; content = cont; - return style; - } - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"' || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) { - return ret("number", "number"); - } else if (ch == "." && stream.match("..")) { - return ret("spread", "meta"); - } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) { - return ret(ch); - } else if (ch == "=" && stream.eat(">")) { - return ret("=>", "operator"); - } else if (ch == "0" && stream.eat(/x/i)) { - stream.eatWhile(/[\da-f]/i); - return ret("number", "number"); - } else if (/\d/.test(ch)) { - stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); - return ret("number", "number"); - } else if (ch == "/") { - if (stream.eat("*")) { - state.tokenize = tokenComment; - return tokenComment(stream, state); - } else if (stream.eat("/")) { - stream.skipToEnd(); - return ret("comment", "comment"); - } else if (state.lastType == "operator" || state.lastType == "keyword c" || - state.lastType == "sof" || /^[\[{}\(,;:]$/.test(state.lastType)) { - readRegexp(stream); - stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla - return ret("regexp", "string-2"); - } else { - stream.eatWhile(isOperatorChar); - return ret("operator", "operator", stream.current()); - } - } else if (ch == "`") { - state.tokenize = tokenQuasi; - return tokenQuasi(stream, state); - } else if (ch == "#") { - stream.skipToEnd(); - return ret("error", "error"); - } else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return ret("operator", "operator", stream.current()); - } else if (wordRE.test(ch)) { - stream.eatWhile(wordRE); - var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; - return (known && state.lastType != ".") ? ret(known.type, known.style, word) : - ret("variable", "variable", word); - } - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next; - if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){ - state.tokenize = tokenBase; - return ret("jsonld-keyword", "meta"); - } - while ((next = stream.next()) != null) { - if (next == quote && !escaped) break; - escaped = !escaped && next == "\\"; - } - if (!escaped) state.tokenize = tokenBase; - return ret("string", "string"); - }; - } - - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return ret("comment", "comment"); - } - - function tokenQuasi(stream, state) { - var escaped = false, next; - while ((next = stream.next()) != null) { - if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) { - state.tokenize = tokenBase; - break; - } - escaped = !escaped && next == "\\"; - } - return ret("quasi", "string-2", stream.current()); - } - - var brackets = "([{}])"; - // This is a crude lookahead trick to try and notice that we're - // parsing the argument patterns for a fat-arrow function before we - // actually hit the arrow token. It only works if the arrow is on - // the same line as the arguments and there's no strange noise - // (comments) in between. Fallback is to only notice when we hit the - // arrow, and not declare the arguments as locals for the arrow - // body. - function findFatArrow(stream, state) { - if (state.fatArrowAt) state.fatArrowAt = null; - var arrow = stream.string.indexOf("=>", stream.start); - if (arrow < 0) return; - - var depth = 0, sawSomething = false; - for (var pos = arrow - 1; pos >= 0; --pos) { - var ch = stream.string.charAt(pos); - var bracket = brackets.indexOf(ch); - if (bracket >= 0 && bracket < 3) { - if (!depth) { ++pos; break; } - if (--depth == 0) break; - } else if (bracket >= 3 && bracket < 6) { - ++depth; - } else if (wordRE.test(ch)) { - sawSomething = true; - } else if (sawSomething && !depth) { - ++pos; - break; - } - } - if (sawSomething && !depth) state.fatArrowAt = pos; - } - - // Parser - - var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true}; - - function JSLexical(indented, column, type, align, prev, info) { - this.indented = indented; - this.column = column; - this.type = type; - this.prev = prev; - this.info = info; - if (align != null) this.align = align; - } - - function inScope(state, varname) { - for (var v = state.localVars; v; v = v.next) - if (v.name == varname) return true; - for (var cx = state.context; cx; cx = cx.prev) { - for (var v = cx.vars; v; v = v.next) - if (v.name == varname) return true; - } - } - - function parseJS(state, style, type, content, stream) { - var cc = state.cc; - // Communicate our context to the combinators. - // (Less wasteful than consing up a hundred closures on every call.) - cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style; - - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = true; - - while(true) { - var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; - if (combinator(type, content)) { - while(cc.length && cc[cc.length - 1].lex) - cc.pop()(); - if (cx.marked) return cx.marked; - if (type == "variable" && inScope(state, content)) return "variable-2"; - return style; - } - } - } - - // Combinator utils - - var cx = {state: null, column: null, marked: null, cc: null}; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - function register(varname) { - function inList(list) { - for (var v = list; v; v = v.next) - if (v.name == varname) return true; - return false; - } - var state = cx.state; - if (state.context) { - cx.marked = "def"; - if (inList(state.localVars)) return; - state.localVars = {name: varname, next: state.localVars}; - } else { - if (inList(state.globalVars)) return; - if (parserConfig.globalVars) - state.globalVars = {name: varname, next: state.globalVars}; - } - } - - // Combinators - - var defaultVars = {name: "this", next: {name: "arguments"}}; - function pushcontext() { - cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; - cx.state.localVars = defaultVars; - } - function popcontext() { - cx.state.localVars = cx.state.context.vars; - cx.state.context = cx.state.context.prev; - } - function pushlex(type, info) { - var result = function() { - var state = cx.state, indent = state.indented; - if (state.lexical.type == "stat") indent = state.lexical.indented; - else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev) - indent = outer.indented; - state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info); - }; - result.lex = true; - return result; - } - function poplex() { - var state = cx.state; - if (state.lexical.prev) { - if (state.lexical.type == ")") - state.indented = state.lexical.indented; - state.lexical = state.lexical.prev; - } - } - poplex.lex = true; - - function expect(wanted) { - function exp(type) { - if (type == wanted) return cont(); - else if (wanted == ";") return pass(); - else return cont(exp); - }; - return exp; - } - - function statement(type, value) { - if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex); - if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); - if (type == "keyword b") return cont(pushlex("form"), statement, poplex); - if (type == "{") return cont(pushlex("}"), block, poplex); - if (type == ";") return cont(); - if (type == "if") { - if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex) - cx.state.cc.pop()(); - return cont(pushlex("form"), expression, statement, poplex, maybeelse); - } - if (type == "function") return cont(functiondef); - if (type == "for") return cont(pushlex("form"), forspec, statement, poplex); - if (type == "variable") return cont(pushlex("stat"), maybelabel); - if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), - block, poplex, poplex); - if (type == "case") return cont(expression, expect(":")); - if (type == "default") return cont(expect(":")); - if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), - statement, poplex, popcontext); - if (type == "module") return cont(pushlex("form"), pushcontext, afterModule, popcontext, poplex); - if (type == "class") return cont(pushlex("form"), className, poplex); - if (type == "export") return cont(pushlex("form"), afterExport, poplex); - if (type == "import") return cont(pushlex("form"), afterImport, poplex); - return pass(pushlex("stat"), expression, expect(";"), poplex); - } - function expression(type) { - return expressionInner(type, false); - } - function expressionNoComma(type) { - return expressionInner(type, true); - } - function expressionInner(type, noComma) { - if (cx.state.fatArrowAt == cx.stream.start) { - var body = noComma ? arrowBodyNoComma : arrowBody; - if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext); - else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext); - } - - var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma; - if (atomicTypes.hasOwnProperty(type)) return cont(maybeop); - if (type == "function") return cont(functiondef, maybeop); - if (type == "keyword c") return cont(noComma ? maybeexpressionNoComma : maybeexpression); - if (type == "(") return cont(pushlex(")"), maybeexpression, comprehension, expect(")"), poplex, maybeop); - if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression); - if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop); - if (type == "{") return contCommasep(objprop, "}", null, maybeop); - if (type == "quasi") { return pass(quasi, maybeop); } - return cont(); - } - function maybeexpression(type) { - if (type.match(/[;\}\)\],]/)) return pass(); - return pass(expression); - } - function maybeexpressionNoComma(type) { - if (type.match(/[;\}\)\],]/)) return pass(); - return pass(expressionNoComma); - } - - function maybeoperatorComma(type, value) { - if (type == ",") return cont(expression); - return maybeoperatorNoComma(type, value, false); - } - function maybeoperatorNoComma(type, value, noComma) { - var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma; - var expr = noComma == false ? expression : expressionNoComma; - if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext); - if (type == "operator") { - if (/\+\+|--/.test(value)) return cont(me); - if (value == "?") return cont(expression, expect(":"), expr); - return cont(expr); - } - if (type == "quasi") { return pass(quasi, me); } - if (type == ";") return; - if (type == "(") return contCommasep(expressionNoComma, ")", "call", me); - if (type == ".") return cont(property, me); - if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me); - } - function quasi(type, value) { - if (type != "quasi") return pass(); - if (value.slice(value.length - 2) != "${") return cont(quasi); - return cont(expression, continueQuasi); - } - function continueQuasi(type) { - if (type == "}") { - cx.marked = "string-2"; - cx.state.tokenize = tokenQuasi; - return cont(quasi); - } - } - function arrowBody(type) { - findFatArrow(cx.stream, cx.state); - return pass(type == "{" ? statement : expression); - } - function arrowBodyNoComma(type) { - findFatArrow(cx.stream, cx.state); - return pass(type == "{" ? statement : expressionNoComma); - } - function maybelabel(type) { - if (type == ":") return cont(poplex, statement); - return pass(maybeoperatorComma, expect(";"), poplex); - } - function property(type) { - if (type == "variable") {cx.marked = "property"; return cont();} - } - function objprop(type, value) { - if (type == "variable" || cx.style == "keyword") { - cx.marked = "property"; - if (value == "get" || value == "set") return cont(getterSetter); - return cont(afterprop); - } else if (type == "number" || type == "string") { - cx.marked = jsonldMode ? "property" : (cx.style + " property"); - return cont(afterprop); - } else if (type == "jsonld-keyword") { - return cont(afterprop); - } else if (type == "[") { - return cont(expression, expect("]"), afterprop); - } - } - function getterSetter(type) { - if (type != "variable") return pass(afterprop); - cx.marked = "property"; - return cont(functiondef); - } - function afterprop(type) { - if (type == ":") return cont(expressionNoComma); - if (type == "(") return pass(functiondef); - } - function commasep(what, end) { - function proceed(type) { - if (type == ",") { - var lex = cx.state.lexical; - if (lex.info == "call") lex.pos = (lex.pos || 0) + 1; - return cont(what, proceed); - } - if (type == end) return cont(); - return cont(expect(end)); - } - return function(type) { - if (type == end) return cont(); - return pass(what, proceed); - }; - } - function contCommasep(what, end, info) { - for (var i = 3; i < arguments.length; i++) - cx.cc.push(arguments[i]); - return cont(pushlex(end, info), commasep(what, end), poplex); - } - function block(type) { - if (type == "}") return cont(); - return pass(statement, block); - } - function maybetype(type) { - if (isTS && type == ":") return cont(typedef); - } - function typedef(type) { - if (type == "variable"){cx.marked = "variable-3"; return cont();} - } - function vardef() { - return pass(pattern, maybetype, maybeAssign, vardefCont); - } - function pattern(type, value) { - if (type == "variable") { register(value); return cont(); } - if (type == "[") return contCommasep(pattern, "]"); - if (type == "{") return contCommasep(proppattern, "}"); - } - function proppattern(type, value) { - if (type == "variable" && !cx.stream.match(/^\s*:/, false)) { - register(value); - return cont(maybeAssign); - } - if (type == "variable") cx.marked = "property"; - return cont(expect(":"), pattern, maybeAssign); - } - function maybeAssign(_type, value) { - if (value == "=") return cont(expressionNoComma); - } - function vardefCont(type) { - if (type == ",") return cont(vardef); - } - function maybeelse(type, value) { - if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex); - } - function forspec(type) { - if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex); - } - function forspec1(type) { - if (type == "var") return cont(vardef, expect(";"), forspec2); - if (type == ";") return cont(forspec2); - if (type == "variable") return cont(formaybeinof); - return pass(expression, expect(";"), forspec2); - } - function formaybeinof(_type, value) { - if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); } - return cont(maybeoperatorComma, forspec2); - } - function forspec2(type, value) { - if (type == ";") return cont(forspec3); - if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); } - return pass(expression, expect(";"), forspec3); - } - function forspec3(type) { - if (type != ")") cont(expression); - } - function functiondef(type, value) { - if (value == "*") {cx.marked = "keyword"; return cont(functiondef);} - if (type == "variable") {register(value); return cont(functiondef);} - if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, statement, popcontext); - } - function funarg(type) { - if (type == "spread") return cont(funarg); - return pass(pattern, maybetype); - } - function className(type, value) { - if (type == "variable") {register(value); return cont(classNameAfter);} - } - function classNameAfter(type, value) { - if (value == "extends") return cont(expression, classNameAfter); - if (type == "{") return cont(pushlex("}"), classBody, poplex); - } - function classBody(type, value) { - if (type == "variable" || cx.style == "keyword") { - cx.marked = "property"; - if (value == "get" || value == "set") return cont(classGetterSetter, functiondef, classBody); - return cont(functiondef, classBody); - } - if (value == "*") { - cx.marked = "keyword"; - return cont(classBody); - } - if (type == ";") return cont(classBody); - if (type == "}") return cont(); - } - function classGetterSetter(type) { - if (type != "variable") return pass(); - cx.marked = "property"; - return cont(); - } - function afterModule(type, value) { - if (type == "string") return cont(statement); - if (type == "variable") { register(value); return cont(maybeFrom); } - } - function afterExport(_type, value) { - if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); } - if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); } - return pass(statement); - } - function afterImport(type) { - if (type == "string") return cont(); - return pass(importSpec, maybeFrom); - } - function importSpec(type, value) { - if (type == "{") return contCommasep(importSpec, "}"); - if (type == "variable") register(value); - return cont(); - } - function maybeFrom(_type, value) { - if (value == "from") { cx.marked = "keyword"; return cont(expression); } - } - function arrayLiteral(type) { - if (type == "]") return cont(); - return pass(expressionNoComma, maybeArrayComprehension); - } - function maybeArrayComprehension(type) { - if (type == "for") return pass(comprehension, expect("]")); - if (type == ",") return cont(commasep(maybeexpressionNoComma, "]")); - return pass(commasep(expressionNoComma, "]")); - } - function comprehension(type) { - if (type == "for") return cont(forspec, comprehension); - if (type == "if") return cont(expression, comprehension); - } - - // Interface - - return { - startState: function(basecolumn) { - var state = { - tokenize: tokenBase, - lastType: "sof", - cc: [], - lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), - localVars: parserConfig.localVars, - context: parserConfig.localVars && {vars: parserConfig.localVars}, - indented: 0 - }; - if (parserConfig.globalVars && typeof parserConfig.globalVars == "object") - state.globalVars = parserConfig.globalVars; - return state; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = false; - state.indented = stream.indentation(); - findFatArrow(stream, state); - } - if (state.tokenize != tokenComment && stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (type == "comment") return style; - state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type; - return parseJS(state, style, type, content, stream); - }, - - indent: function(state, textAfter) { - if (state.tokenize == tokenComment) return CodeMirror.Pass; - if (state.tokenize != tokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; - // Kludge to prevent 'maybelse' from blocking lexical scope pops - if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) { - var c = state.cc[i]; - if (c == poplex) lexical = lexical.prev; - else if (c != maybeelse) break; - } - if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; - if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat") - lexical = lexical.prev; - var type = lexical.type, closing = firstChar == type; - - if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0); - else if (type == "form" && firstChar == "{") return lexical.indented; - else if (type == "form") return lexical.indented + indentUnit; - else if (type == "stat") - return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? statementIndent || indentUnit : 0); - else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false) - return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); - else if (lexical.align) return lexical.column + (closing ? 0 : 1); - else return lexical.indented + (closing ? 0 : indentUnit); - }, - - electricInput: /^\s*(?:case .*?:|default:|\{|\})$/, - blockCommentStart: jsonMode ? null : "/*", - blockCommentEnd: jsonMode ? null : "*/", - lineComment: jsonMode ? null : "//", - fold: "brace", - - helperType: jsonMode ? "json" : "javascript", - jsonldMode: jsonldMode, - jsonMode: jsonMode - }; -}); - -CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/); - -CodeMirror.defineMIME("text/javascript", "javascript"); -CodeMirror.defineMIME("text/ecmascript", "javascript"); -CodeMirror.defineMIME("application/javascript", "javascript"); -CodeMirror.defineMIME("application/x-javascript", "javascript"); -CodeMirror.defineMIME("application/ecmascript", "javascript"); -CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); -CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true}); -CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true}); -CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); -CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true }); - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/markdown/markdown.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/markdown/markdown.js deleted file mode 100644 index 7c87984..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/markdown/markdown.js +++ /dev/null @@ -1,765 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror", require("../xml/xml"), require("../meta"))); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../xml/xml", "../meta"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) { - - var htmlFound = CodeMirror.modes.hasOwnProperty("xml"); - var htmlMode = CodeMirror.getMode(cmCfg, htmlFound ? {name: "xml", htmlMode: true} : "text/plain"); - - function getMode(name) { - if (CodeMirror.findModeByName) { - var found = CodeMirror.findModeByName(name); - if (found) name = found.mime || found.mimes[0]; - } - var mode = CodeMirror.getMode(cmCfg, name); - return mode.name == "null" ? null : mode; - } - - // Should characters that affect highlighting be highlighted separate? - // Does not include characters that will be output (such as `1.` and `-` for lists) - if (modeCfg.highlightFormatting === undefined) - modeCfg.highlightFormatting = false; - - // Maximum number of nested blockquotes. Set to 0 for infinite nesting. - // Excess `>` will emit `error` token. - if (modeCfg.maxBlockquoteDepth === undefined) - modeCfg.maxBlockquoteDepth = 0; - - // Should underscores in words open/close em/strong? - if (modeCfg.underscoresBreakWords === undefined) - modeCfg.underscoresBreakWords = true; - - // Turn on fenced code blocks? ("```" to start/end) - if (modeCfg.fencedCodeBlocks === undefined) modeCfg.fencedCodeBlocks = false; - - // Turn on task lists? ("- [ ] " and "- [x] ") - if (modeCfg.taskLists === undefined) modeCfg.taskLists = false; - - // Turn on strikethrough syntax - if (modeCfg.strikethrough === undefined) - modeCfg.strikethrough = false; - - var codeDepth = 0; - - var header = 'header' - , code = 'comment' - , quote = 'quote' - , list1 = 'variable-2' - , list2 = 'variable-3' - , list3 = 'keyword' - , hr = 'hr' - , image = 'tag' - , formatting = 'formatting' - , linkinline = 'link' - , linkemail = 'link' - , linktext = 'link' - , linkhref = 'string' - , em = 'em' - , strong = 'strong' - , strikethrough = 'strikethrough'; - - var hrRE = /^([*\-=_])(?:\s*\1){2,}\s*$/ - , ulRE = /^[*\-+]\s+/ - , olRE = /^[0-9]+\.\s+/ - , taskListRE = /^\[(x| )\](?=\s)/ // Must follow ulRE or olRE - , atxHeaderRE = /^#+/ - , setextHeaderRE = /^(?:\={1,}|-{1,})$/ - , textRE = /^[^#!\[\]*_\\<>` "'(~]+/; - - function switchInline(stream, state, f) { - state.f = state.inline = f; - return f(stream, state); - } - - function switchBlock(stream, state, f) { - state.f = state.block = f; - return f(stream, state); - } - - - // Blocks - - function blankLine(state) { - // Reset linkTitle state - state.linkTitle = false; - // Reset EM state - state.em = false; - // Reset STRONG state - state.strong = false; - // Reset strikethrough state - state.strikethrough = false; - // Reset state.quote - state.quote = 0; - if (!htmlFound && state.f == htmlBlock) { - state.f = inlineNormal; - state.block = blockNormal; - } - // Reset state.trailingSpace - state.trailingSpace = 0; - state.trailingSpaceNewLine = false; - // Mark this line as blank - state.thisLineHasContent = false; - return null; - } - - function blockNormal(stream, state) { - - var sol = stream.sol(); - - var prevLineIsList = (state.list !== false); - if (state.list !== false && state.indentationDiff >= 0) { // Continued list - if (state.indentationDiff < 4) { // Only adjust indentation if *not* a code block - state.indentation -= state.indentationDiff; - } - state.list = null; - } else if (state.list !== false && state.indentation > 0) { - state.list = null; - state.listDepth = Math.floor(state.indentation / 4); - } else if (state.list !== false) { // No longer a list - state.list = false; - state.listDepth = 0; - } - - var match = null; - if (state.indentationDiff >= 4) { - state.indentation -= 4; - stream.skipToEnd(); - return code; - } else if (stream.eatSpace()) { - return null; - } else if (match = stream.match(atxHeaderRE)) { - state.header = match[0].length <= 6 ? match[0].length : 6; - if (modeCfg.highlightFormatting) state.formatting = "header"; - state.f = state.inline; - return getType(state); - } else if (state.prevLineHasContent && (match = stream.match(setextHeaderRE))) { - state.header = match[0].charAt(0) == '=' ? 1 : 2; - if (modeCfg.highlightFormatting) state.formatting = "header"; - state.f = state.inline; - return getType(state); - } else if (stream.eat('>')) { - state.indentation++; - state.quote = sol ? 1 : state.quote + 1; - if (modeCfg.highlightFormatting) state.formatting = "quote"; - stream.eatSpace(); - return getType(state); - } else if (stream.peek() === '[') { - return switchInline(stream, state, footnoteLink); - } else if (stream.match(hrRE, true)) { - return hr; - } else if ((!state.prevLineHasContent || prevLineIsList) && (stream.match(ulRE, false) || stream.match(olRE, false))) { - var listType = null; - if (stream.match(ulRE, true)) { - listType = 'ul'; - } else { - stream.match(olRE, true); - listType = 'ol'; - } - state.indentation += 4; - state.list = true; - state.listDepth++; - if (modeCfg.taskLists && stream.match(taskListRE, false)) { - state.taskList = true; - } - state.f = state.inline; - if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType]; - return getType(state); - } else if (modeCfg.fencedCodeBlocks && stream.match(/^```[ \t]*([\w+#]*)/, true)) { - // try switching mode - state.localMode = getMode(RegExp.$1); - if (state.localMode) state.localState = state.localMode.startState(); - state.f = state.block = local; - if (modeCfg.highlightFormatting) state.formatting = "code-block"; - state.code = true; - return getType(state); - } - - return switchInline(stream, state, state.inline); - } - - function htmlBlock(stream, state) { - var style = htmlMode.token(stream, state.htmlState); - if ((htmlFound && state.htmlState.tagStart === null && !state.htmlState.context) || - (state.md_inside && stream.current().indexOf(">") > -1)) { - state.f = inlineNormal; - state.block = blockNormal; - state.htmlState = null; - } - return style; - } - - function local(stream, state) { - if (stream.sol() && stream.match("```", false)) { - state.localMode = state.localState = null; - state.f = state.block = leavingLocal; - return null; - } else if (state.localMode) { - return state.localMode.token(stream, state.localState); - } else { - stream.skipToEnd(); - return code; - } - } - - function leavingLocal(stream, state) { - stream.match("```"); - state.block = blockNormal; - state.f = inlineNormal; - if (modeCfg.highlightFormatting) state.formatting = "code-block"; - state.code = true; - var returnType = getType(state); - state.code = false; - return returnType; - } - - // Inline - function getType(state) { - var styles = []; - - if (state.formatting) { - styles.push(formatting); - - if (typeof state.formatting === "string") state.formatting = [state.formatting]; - - for (var i = 0; i < state.formatting.length; i++) { - styles.push(formatting + "-" + state.formatting[i]); - - if (state.formatting[i] === "header") { - styles.push(formatting + "-" + state.formatting[i] + "-" + state.header); - } - - // Add `formatting-quote` and `formatting-quote-#` for blockquotes - // Add `error` instead if the maximum blockquote nesting depth is passed - if (state.formatting[i] === "quote") { - if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { - styles.push(formatting + "-" + state.formatting[i] + "-" + state.quote); - } else { - styles.push("error"); - } - } - } - } - - if (state.taskOpen) { - styles.push("meta"); - return styles.length ? styles.join(' ') : null; - } - if (state.taskClosed) { - styles.push("property"); - return styles.length ? styles.join(' ') : null; - } - - if (state.linkHref) { - styles.push(linkhref); - return styles.length ? styles.join(' ') : null; - } - - if (state.strong) { styles.push(strong); } - if (state.em) { styles.push(em); } - if (state.strikethrough) { styles.push(strikethrough); } - - if (state.linkText) { styles.push(linktext); } - - if (state.code) { styles.push(code); } - - if (state.header) { styles.push(header); styles.push(header + "-" + state.header); } - - if (state.quote) { - styles.push(quote); - - // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth - if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { - styles.push(quote + "-" + state.quote); - } else { - styles.push(quote + "-" + modeCfg.maxBlockquoteDepth); - } - } - - if (state.list !== false) { - var listMod = (state.listDepth - 1) % 3; - if (!listMod) { - styles.push(list1); - } else if (listMod === 1) { - styles.push(list2); - } else { - styles.push(list3); - } - } - - if (state.trailingSpaceNewLine) { - styles.push("trailing-space-new-line"); - } else if (state.trailingSpace) { - styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b")); - } - - return styles.length ? styles.join(' ') : null; - } - - function handleText(stream, state) { - if (stream.match(textRE, true)) { - return getType(state); - } - return undefined; - } - - function inlineNormal(stream, state) { - var style = state.text(stream, state); - if (typeof style !== 'undefined') - return style; - - if (state.list) { // List marker (*, +, -, 1., etc) - state.list = null; - return getType(state); - } - - if (state.taskList) { - var taskOpen = stream.match(taskListRE, true)[1] !== "x"; - if (taskOpen) state.taskOpen = true; - else state.taskClosed = true; - if (modeCfg.highlightFormatting) state.formatting = "task"; - state.taskList = false; - return getType(state); - } - - state.taskOpen = false; - state.taskClosed = false; - - if (state.header && stream.match(/^#+$/, true)) { - if (modeCfg.highlightFormatting) state.formatting = "header"; - return getType(state); - } - - // Get sol() value now, before character is consumed - var sol = stream.sol(); - - var ch = stream.next(); - - if (ch === '\\') { - stream.next(); - if (modeCfg.highlightFormatting) { - var type = getType(state); - return type ? type + " formatting-escape" : "formatting-escape"; - } - } - - // Matches link titles present on next line - if (state.linkTitle) { - state.linkTitle = false; - var matchCh = ch; - if (ch === '(') { - matchCh = ')'; - } - matchCh = (matchCh+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); - var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh; - if (stream.match(new RegExp(regex), true)) { - return linkhref; - } - } - - // If this block is changed, it may need to be updated in GFM mode - if (ch === '`') { - var previousFormatting = state.formatting; - if (modeCfg.highlightFormatting) state.formatting = "code"; - var t = getType(state); - var before = stream.pos; - stream.eatWhile('`'); - var difference = 1 + stream.pos - before; - if (!state.code) { - codeDepth = difference; - state.code = true; - return getType(state); - } else { - if (difference === codeDepth) { // Must be exact - state.code = false; - return t; - } - state.formatting = previousFormatting; - return getType(state); - } - } else if (state.code) { - return getType(state); - } - - if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) { - stream.match(/\[[^\]]*\]/); - state.inline = state.f = linkHref; - return image; - } - - if (ch === '[' && stream.match(/.*\](\(| ?\[)/, false)) { - state.linkText = true; - if (modeCfg.highlightFormatting) state.formatting = "link"; - return getType(state); - } - - if (ch === ']' && state.linkText) { - if (modeCfg.highlightFormatting) state.formatting = "link"; - var type = getType(state); - state.linkText = false; - state.inline = state.f = linkHref; - return type; - } - - if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) { - state.f = state.inline = linkInline; - if (modeCfg.highlightFormatting) state.formatting = "link"; - var type = getType(state); - if (type){ - type += " "; - } else { - type = ""; - } - return type + linkinline; - } - - if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) { - state.f = state.inline = linkInline; - if (modeCfg.highlightFormatting) state.formatting = "link"; - var type = getType(state); - if (type){ - type += " "; - } else { - type = ""; - } - return type + linkemail; - } - - if (ch === '<' && stream.match(/^\w/, false)) { - if (stream.string.indexOf(">") != -1) { - var atts = stream.string.substring(1,stream.string.indexOf(">")); - if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) { - state.md_inside = true; - } - } - stream.backUp(1); - state.htmlState = CodeMirror.startState(htmlMode); - return switchBlock(stream, state, htmlBlock); - } - - if (ch === '<' && stream.match(/^\/\w*?>/)) { - state.md_inside = false; - return "tag"; - } - - var ignoreUnderscore = false; - if (!modeCfg.underscoresBreakWords) { - if (ch === '_' && stream.peek() !== '_' && stream.match(/(\w)/, false)) { - var prevPos = stream.pos - 2; - if (prevPos >= 0) { - var prevCh = stream.string.charAt(prevPos); - if (prevCh !== '_' && prevCh.match(/(\w)/, false)) { - ignoreUnderscore = true; - } - } - } - } - if (ch === '*' || (ch === '_' && !ignoreUnderscore)) { - if (sol && stream.peek() === ' ') { - // Do nothing, surrounded by newline and space - } else if (state.strong === ch && stream.eat(ch)) { // Remove STRONG - if (modeCfg.highlightFormatting) state.formatting = "strong"; - var t = getType(state); - state.strong = false; - return t; - } else if (!state.strong && stream.eat(ch)) { // Add STRONG - state.strong = ch; - if (modeCfg.highlightFormatting) state.formatting = "strong"; - return getType(state); - } else if (state.em === ch) { // Remove EM - if (modeCfg.highlightFormatting) state.formatting = "em"; - var t = getType(state); - state.em = false; - return t; - } else if (!state.em) { // Add EM - state.em = ch; - if (modeCfg.highlightFormatting) state.formatting = "em"; - return getType(state); - } - } else if (ch === ' ') { - if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces - if (stream.peek() === ' ') { // Surrounded by spaces, ignore - return getType(state); - } else { // Not surrounded by spaces, back up pointer - stream.backUp(1); - } - } - } - - if (modeCfg.strikethrough) { - if (ch === '~' && stream.eatWhile(ch)) { - if (state.strikethrough) {// Remove strikethrough - if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; - var t = getType(state); - state.strikethrough = false; - return t; - } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough - state.strikethrough = true; - if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; - return getType(state); - } - } else if (ch === ' ') { - if (stream.match(/^~~/, true)) { // Probably surrounded by space - if (stream.peek() === ' ') { // Surrounded by spaces, ignore - return getType(state); - } else { // Not surrounded by spaces, back up pointer - stream.backUp(2); - } - } - } - } - - if (ch === ' ') { - if (stream.match(/ +$/, false)) { - state.trailingSpace++; - } else if (state.trailingSpace) { - state.trailingSpaceNewLine = true; - } - } - - return getType(state); - } - - function linkInline(stream, state) { - var ch = stream.next(); - - if (ch === ">") { - state.f = state.inline = inlineNormal; - if (modeCfg.highlightFormatting) state.formatting = "link"; - var type = getType(state); - if (type){ - type += " "; - } else { - type = ""; - } - return type + linkinline; - } - - stream.match(/^[^>]+/, true); - - return linkinline; - } - - function linkHref(stream, state) { - // Check if space, and return NULL if so (to avoid marking the space) - if(stream.eatSpace()){ - return null; - } - var ch = stream.next(); - if (ch === '(' || ch === '[') { - state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]"); - if (modeCfg.highlightFormatting) state.formatting = "link-string"; - state.linkHref = true; - return getType(state); - } - return 'error'; - } - - function getLinkHrefInside(endChar) { - return function(stream, state) { - var ch = stream.next(); - - if (ch === endChar) { - state.f = state.inline = inlineNormal; - if (modeCfg.highlightFormatting) state.formatting = "link-string"; - var returnState = getType(state); - state.linkHref = false; - return returnState; - } - - if (stream.match(inlineRE(endChar), true)) { - stream.backUp(1); - } - - state.linkHref = true; - return getType(state); - }; - } - - function footnoteLink(stream, state) { - if (stream.match(/^[^\]]*\]:/, false)) { - state.f = footnoteLinkInside; - stream.next(); // Consume [ - if (modeCfg.highlightFormatting) state.formatting = "link"; - state.linkText = true; - return getType(state); - } - return switchInline(stream, state, inlineNormal); - } - - function footnoteLinkInside(stream, state) { - if (stream.match(/^\]:/, true)) { - state.f = state.inline = footnoteUrl; - if (modeCfg.highlightFormatting) state.formatting = "link"; - var returnType = getType(state); - state.linkText = false; - return returnType; - } - - stream.match(/^[^\]]+/, true); - - return linktext; - } - - function footnoteUrl(stream, state) { - // Check if space, and return NULL if so (to avoid marking the space) - if(stream.eatSpace()){ - return null; - } - // Match URL - stream.match(/^[^\s]+/, true); - // Check for link title - if (stream.peek() === undefined) { // End of line, set flag to check next line - state.linkTitle = true; - } else { // More content on line, check if link title - stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true); - } - state.f = state.inline = inlineNormal; - return linkhref; - } - - var savedInlineRE = []; - function inlineRE(endChar) { - if (!savedInlineRE[endChar]) { - // Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741) - endChar = (endChar+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); - // Match any non-endChar, escaped character, as well as the closing - // endChar. - savedInlineRE[endChar] = new RegExp('^(?:[^\\\\]|\\\\.)*?(' + endChar + ')'); - } - return savedInlineRE[endChar]; - } - - var mode = { - startState: function() { - return { - f: blockNormal, - - prevLineHasContent: false, - thisLineHasContent: false, - - block: blockNormal, - htmlState: null, - indentation: 0, - - inline: inlineNormal, - text: handleText, - - formatting: false, - linkText: false, - linkHref: false, - linkTitle: false, - em: false, - strong: false, - header: 0, - taskList: false, - list: false, - listDepth: 0, - quote: 0, - trailingSpace: 0, - trailingSpaceNewLine: false, - strikethrough: false - }; - }, - - copyState: function(s) { - return { - f: s.f, - - prevLineHasContent: s.prevLineHasContent, - thisLineHasContent: s.thisLineHasContent, - - block: s.block, - htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState), - indentation: s.indentation, - - localMode: s.localMode, - localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null, - - inline: s.inline, - text: s.text, - formatting: false, - linkTitle: s.linkTitle, - em: s.em, - strong: s.strong, - strikethrough: s.strikethrough, - header: s.header, - taskList: s.taskList, - list: s.list, - listDepth: s.listDepth, - quote: s.quote, - trailingSpace: s.trailingSpace, - trailingSpaceNewLine: s.trailingSpaceNewLine, - md_inside: s.md_inside - }; - }, - - token: function(stream, state) { - - // Reset state.formatting - state.formatting = false; - - if (stream.sol()) { - var forceBlankLine = !!state.header; - - // Reset state.header - state.header = 0; - - if (stream.match(/^\s*$/, true) || forceBlankLine) { - state.prevLineHasContent = false; - blankLine(state); - return forceBlankLine ? this.token(stream, state) : null; - } else { - state.prevLineHasContent = state.thisLineHasContent; - state.thisLineHasContent = true; - } - - // Reset state.taskList - state.taskList = false; - - // Reset state.code - state.code = false; - - // Reset state.trailingSpace - state.trailingSpace = 0; - state.trailingSpaceNewLine = false; - - state.f = state.block; - var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, ' ').length; - var difference = Math.floor((indentation - state.indentation) / 4) * 4; - if (difference > 4) difference = 4; - var adjustedIndentation = state.indentation + difference; - state.indentationDiff = adjustedIndentation - state.indentation; - state.indentation = adjustedIndentation; - if (indentation > 0) return null; - } - return state.f(stream, state); - }, - - innerMode: function(state) { - if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode}; - if (state.localState) return {state: state.localState, mode: state.localMode}; - return {state: state, mode: mode}; - }, - - blankLine: blankLine, - - getType: getType, - - fold: "markdown" - }; - return mode; -}, "xml"); - -CodeMirror.defineMIME("text/x-markdown", "markdown"); - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/xml/xml.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/xml/xml.js deleted file mode 100644 index 2f3b8f8..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/codemirror/mode/xml/xml.js +++ /dev/null @@ -1,384 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("xml", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1; - var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag; - if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true; - - var Kludges = parserConfig.htmlMode ? { - autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, - 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, - 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, - 'track': true, 'wbr': true, 'menuitem': true}, - implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, - 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, - 'th': true, 'tr': true}, - contextGrabbers: { - 'dd': {'dd': true, 'dt': true}, - 'dt': {'dd': true, 'dt': true}, - 'li': {'li': true}, - 'option': {'option': true, 'optgroup': true}, - 'optgroup': {'optgroup': true}, - 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, - 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, - 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, - 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, - 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, - 'rp': {'rp': true, 'rt': true}, - 'rt': {'rp': true, 'rt': true}, - 'tbody': {'tbody': true, 'tfoot': true}, - 'td': {'td': true, 'th': true}, - 'tfoot': {'tbody': true}, - 'th': {'td': true, 'th': true}, - 'thead': {'tbody': true, 'tfoot': true}, - 'tr': {'tr': true} - }, - doNotIndent: {"pre": true}, - allowUnquoted: true, - allowMissing: true, - caseFold: true - } : { - autoSelfClosers: {}, - implicitlyClosed: {}, - contextGrabbers: {}, - doNotIndent: {}, - allowUnquoted: false, - allowMissing: false, - caseFold: false - }; - var alignCDATA = parserConfig.alignCDATA; - - // Return variables for tokenizers - var type, setStyle; - - function inText(stream, state) { - function chain(parser) { - state.tokenize = parser; - return parser(stream, state); - } - - var ch = stream.next(); - if (ch == "<") { - if (stream.eat("!")) { - if (stream.eat("[")) { - if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); - else return null; - } else if (stream.match("--")) { - return chain(inBlock("comment", "-->")); - } else if (stream.match("DOCTYPE", true, true)) { - stream.eatWhile(/[\w\._\-]/); - return chain(doctype(1)); - } else { - return null; - } - } else if (stream.eat("?")) { - stream.eatWhile(/[\w\._\-]/); - state.tokenize = inBlock("meta", "?>"); - return "meta"; - } else { - type = stream.eat("/") ? "closeTag" : "openTag"; - state.tokenize = inTag; - return "tag bracket"; - } - } else if (ch == "&") { - var ok; - if (stream.eat("#")) { - if (stream.eat("x")) { - ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); - } else { - ok = stream.eatWhile(/[\d]/) && stream.eat(";"); - } - } else { - ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); - } - return ok ? "atom" : "error"; - } else { - stream.eatWhile(/[^&<]/); - return null; - } - } - - function inTag(stream, state) { - var ch = stream.next(); - if (ch == ">" || (ch == "/" && stream.eat(">"))) { - state.tokenize = inText; - type = ch == ">" ? "endTag" : "selfcloseTag"; - return "tag bracket"; - } else if (ch == "=") { - type = "equals"; - return null; - } else if (ch == "<") { - state.tokenize = inText; - state.state = baseState; - state.tagName = state.tagStart = null; - var next = state.tokenize(stream, state); - return next ? next + " tag error" : "tag error"; - } else if (/[\'\"]/.test(ch)) { - state.tokenize = inAttribute(ch); - state.stringStartCol = stream.column(); - return state.tokenize(stream, state); - } else { - stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); - return "word"; - } - } - - function inAttribute(quote) { - var closure = function(stream, state) { - while (!stream.eol()) { - if (stream.next() == quote) { - state.tokenize = inTag; - break; - } - } - return "string"; - }; - closure.isInAttribute = true; - return closure; - } - - function inBlock(style, terminator) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.match(terminator)) { - state.tokenize = inText; - break; - } - stream.next(); - } - return style; - }; - } - function doctype(depth) { - return function(stream, state) { - var ch; - while ((ch = stream.next()) != null) { - if (ch == "<") { - state.tokenize = doctype(depth + 1); - return state.tokenize(stream, state); - } else if (ch == ">") { - if (depth == 1) { - state.tokenize = inText; - break; - } else { - state.tokenize = doctype(depth - 1); - return state.tokenize(stream, state); - } - } - } - return "meta"; - }; - } - - function Context(state, tagName, startOfLine) { - this.prev = state.context; - this.tagName = tagName; - this.indent = state.indented; - this.startOfLine = startOfLine; - if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent)) - this.noIndent = true; - } - function popContext(state) { - if (state.context) state.context = state.context.prev; - } - function maybePopContext(state, nextTagName) { - var parentTagName; - while (true) { - if (!state.context) { - return; - } - parentTagName = state.context.tagName; - if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) || - !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { - return; - } - popContext(state); - } - } - - function baseState(type, stream, state) { - if (type == "openTag") { - state.tagStart = stream.column(); - return tagNameState; - } else if (type == "closeTag") { - return closeTagNameState; - } else { - return baseState; - } - } - function tagNameState(type, stream, state) { - if (type == "word") { - state.tagName = stream.current(); - setStyle = "tag"; - return attrState; - } else { - setStyle = "error"; - return tagNameState; - } - } - function closeTagNameState(type, stream, state) { - if (type == "word") { - var tagName = stream.current(); - if (state.context && state.context.tagName != tagName && - Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName)) - popContext(state); - if (state.context && state.context.tagName == tagName) { - setStyle = "tag"; - return closeState; - } else { - setStyle = "tag error"; - return closeStateErr; - } - } else { - setStyle = "error"; - return closeStateErr; - } - } - - function closeState(type, _stream, state) { - if (type != "endTag") { - setStyle = "error"; - return closeState; - } - popContext(state); - return baseState; - } - function closeStateErr(type, stream, state) { - setStyle = "error"; - return closeState(type, stream, state); - } - - function attrState(type, _stream, state) { - if (type == "word") { - setStyle = "attribute"; - return attrEqState; - } else if (type == "endTag" || type == "selfcloseTag") { - var tagName = state.tagName, tagStart = state.tagStart; - state.tagName = state.tagStart = null; - if (type == "selfcloseTag" || - Kludges.autoSelfClosers.hasOwnProperty(tagName)) { - maybePopContext(state, tagName); - } else { - maybePopContext(state, tagName); - state.context = new Context(state, tagName, tagStart == state.indented); - } - return baseState; - } - setStyle = "error"; - return attrState; - } - function attrEqState(type, stream, state) { - if (type == "equals") return attrValueState; - if (!Kludges.allowMissing) setStyle = "error"; - return attrState(type, stream, state); - } - function attrValueState(type, stream, state) { - if (type == "string") return attrContinuedState; - if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return attrState;} - setStyle = "error"; - return attrState(type, stream, state); - } - function attrContinuedState(type, stream, state) { - if (type == "string") return attrContinuedState; - return attrState(type, stream, state); - } - - return { - startState: function() { - return {tokenize: inText, - state: baseState, - indented: 0, - tagName: null, tagStart: null, - context: null}; - }, - - token: function(stream, state) { - if (!state.tagName && stream.sol()) - state.indented = stream.indentation(); - - if (stream.eatSpace()) return null; - type = null; - var style = state.tokenize(stream, state); - if ((style || type) && style != "comment") { - setStyle = null; - state.state = state.state(type || style, stream, state); - if (setStyle) - style = setStyle == "error" ? style + " error" : setStyle; - } - return style; - }, - - indent: function(state, textAfter, fullLine) { - var context = state.context; - // Indent multi-line strings (e.g. css). - if (state.tokenize.isInAttribute) { - if (state.tagStart == state.indented) - return state.stringStartCol + 1; - else - return state.indented + indentUnit; - } - if (context && context.noIndent) return CodeMirror.Pass; - if (state.tokenize != inTag && state.tokenize != inText) - return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; - // Indent the starts of attribute names. - if (state.tagName) { - if (multilineTagIndentPastTag) - return state.tagStart + state.tagName.length + 2; - else - return state.tagStart + indentUnit * multilineTagIndentFactor; - } - if (alignCDATA && /$/, - blockCommentStart: "", - - configuration: parserConfig.htmlMode ? "html" : "xml", - helperType: parserConfig.htmlMode ? "html" : "xml" - }; -}); - -CodeMirror.defineMIME("text/xml", "xml"); -CodeMirror.defineMIME("application/xml", "xml"); -if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) - CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true}); - -}); diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.css b/dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.css deleted file mode 100644 index 1f0161a..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.css +++ /dev/null @@ -1 +0,0 @@ -.colorpicker-container,.colorpicker-container div,.colorpicker-container span{box-sizing:content-box}.colorpicker-container{border:1px solid #d3d3d3;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:9999;position:absolute;display:none}.colorpicker-container:active:focus,.colorpicker-container:focus{outline:0}.colorpicker-container .colorpicker-colors{margin:0;padding:0;font-size:0;line-height:0}.colorpicker-container .colorpicker-colors-line0{margin-bottom:3px}.colorpicker-container .colorpicker-colors-item{display:inline-block;margin:0 2px;width:13px;height:13px;border-style:solid;border-width:1px}.colorpicker-container .colorpicker-commoncolor,.colorpicker-container .colorpicker-latestcolor,.colorpicker-container .colorpicker-standardcolor{margin:4px 3px;white-space:nowrap}.colorpicker-toolbar{margin:8px 4px;height:27px;position:relative}.colorpicker-toolbar .colorpicker-preview{display:inline-block;height:25px;line-height:25px;width:115px;border:1px solid #d3d3d3}.colorpicker-toolbar .colorpicker-clear{display:inline-block;height:25px;line-height:25px;width:60px;border:1px solid #d3d3d3;font-size:12px;text-align:center;position:absolute;right:5px;cursor:pointer}.colorpicker-title{padding:2px 4px}.colorpicker-title,.colorpicker-toolbar{font-size:12px;color:#000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.colorpicker-morecolor label{width:100%;display:inline-block;height:20px;line-height:20px;margin:0;font-weight:400}.colorpicker-morecolor .native-color-picker{visibility:hidden;position:absolute;top:-9999px;right:-9999px}.colorpicker-morecolor:hover{background-color:#dedede}.colorpicker-morecolor:active{background-color:#999} \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.js deleted file mode 100644 index c078a07..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/color-picker/dist/color-picker.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/*! - * ==================================================== - * angular colorpicker - v1.0.9 - 2016-06-10 - * https://github.com/zhangbobell/color-picker#readme - * GitHub: git+https://github.com/zhangbobell/color-picker.git - * Copyright (c) 2016 ; Licensed - * ==================================================== - */ - - -angular.module("ui.colorpicker",[]).directive("colorPicker",["$compile","localize",function(a,b){return{restrict:"EA",scope:{setColor:"&"},link:function(c,d,e){function f(){var a=s(d);y.css(a)}function g(){return angular.isDefined(e.disabled)?!e.disabled:!0}function h(a){c.$emit("colorPicked",a),c.hoveredColor=a,q(a),c.latestColor=p()}function i(a){h(a),k()}function j(a){c.hoveredColor=a}function k(){y.css("display","none")}function l(a){var b=g();if(b){a.stopPropagation();var c=s(d);y.css(c),y.css("display","block"),y[0].focus()}}function m(a){a.stopPropagation()}function n(){var a=document.createElement("input");return a.setAttribute("type","color"),"text"!==a.type}function o(){var a=window.localStorage.getItem("ui-color-picker");if(!a)return null;try{a=JSON.parse(a)}catch(b){return null}return a}function p(){var a=o();return a?a.latestColor:[]}function q(a){var b=o()||{},c=p();if(c&&c instanceof Array){var d=c.indexOf(a);-1!=d&&c.splice(d,1),c.unshift(a)}else c=[a];c.length>10&&(c=c.slice(0,10)),b.latestColor=c,window.localStorage.setItem("ui-color-picker",JSON.stringify(b))}function r(a,b){for(var c=0,d=0,e=0,f=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,b||"BODY"!==a.tagName?(e+=a.scrollLeft,f+=a.scrollTop):(e+=document.documentElement.scrollLeft||a.scrollLeft,f+=document.documentElement.scrollTop||a.scrollTop),a=a.offsetParent;return{top:d,left:c,scrollX:e,scrollY:f}}function s(a){var b,c=r(a[0]);return"top"===z?b={top:c.top-147,left:c.left}:"right"===z?b={top:c.top,left:c.left+126}:"bottom"===z?b={top:c.top+a[0].offsetHeight+2,left:c.left}:"left"===z&&(b={top:c.top,left:c.left-150}),{top:b.top+"px",left:b.left+"px"}}var t=c.setColor()||e.defaultColor||"#fff",u={clearText:b.get("default_color"),defaultColor:t,latestText:b.get("latest_used"),commonText:b.get("theme_color"),commonColor:[["#ffffff","#000000","#eeece1","#1f497d","#4f81bd","#c0504d","#9bbb59","#8064a2","#4bacc6","#f79646"],["#f2f2f2","#808080","#ddd8c2","#c6d9f1","#dbe5f1","#f2dbdb","#eaf1dd","#e5dfec","#daeef3","#fde9d9"],["#d9d9d9","#595959","#c4bc96","#8db3e2","#b8cce4","#e5b8b7","#d6e3bc","#ccc0d9","#b6dde8","#fbd4b4"],["#bfbfbf","#404040","#938953","#548dd4","#95b3d7","#d99594","#c2d69b","#b2a1c7","#92cddc","#fabf8f"],["#a6a6a6","#262626","#4a442a","#17365d","#365f91","#943634","#76923c","#5f497a","#31849b","#e36c0a"],["#7f7f7f","#0d0d0d","#1c1a10","#0f243e","#243f60","#622423","#4e6128","#3f3151","#205867","#974706"]],standardText:b.get("standard_color"),standardColor:["#c00000","#ff0000","#ffc000","#ffff00","#92d050","#00b050","#00b0f0","#0070c0","#002060","#7030a0"],moreText:b.get("more_color")},v=(1e6*+new Date+Math.floor(1e6*Math.random())).toString(36),w='
    ',x=angular.element,y=x(w),z=angular.isDefined(e.colorpickerPosition)?e.colorpickerPosition:"bottom";c.defaultOptions=u,c.isSupportNativeColorPicker=n(),c.latestColor=p(),c.selectColor=h,c.previewColor=j,c.selectColorAndClose=i,c.keepPickerOpen=m,c.hoveredColor=u.defaultColor,a(y)(c),x(document.body).append(y),d.on("click",l),x(document).on("click",k),c.$on("openColorPicker",l),c.$on("closeColorPicker",k),window.attachEvent?window.attachEvent("onresize",f):window.addEventListener&&window.addEventListener("resize",f)}}}]),angular.module("ui.colorpicker").provider("localize",function(){this.map={"zh-cn":{default_color:"默认颜色",latest_used:"最近使用",theme_color:"主题颜色",standard_color:"标准颜色",more_color:"更多颜色.."},"en-us":{default_color:"default",latest_used:"latest used",theme_color:"theme color",standard_color:"standard color",more_color:"more.."}},this.defaultLang="zh-cn",this.setDefaultLang=function(a){var b=Object.keys(this.map);return-1===b.indexOf(a)?void console.error("Unsupported language: ",a,", please choose in :",b.join(", ")):void(this.defaultLang=a)},this.$get=function(){var a=this;return{get:function(b){return a.map[a.defaultLang].hasOwnProperty(b)?a.map[a.defaultLang][b]:(console.warn("Missing lang pair for : ",b),"")}}}}); -//# sourceMappingURL=color-picker.min.map \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.css b/dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.css deleted file mode 100644 index a86b047..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.css +++ /dev/null @@ -1,163 +0,0 @@ -.hotbox { - font-family: Arial, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; - position: absolute; - left: 0; - top: 0; - overflow: visible; -} -.hotbox .state { - position: absolute; - overflow: visible; - display: none; -} -.hotbox .state .center .button, -.hotbox .state .ring .button { - position: absolute; - width: 70px; - height: 70px; - margin-left: -35px; - margin-top: -35px; - border-radius: 100%; - box-shadow: 0 0 30px rgba(0, 0, 0, 0.3); -} -.hotbox .state .center .label, -.hotbox .state .ring .label, -.hotbox .state .center .key, -.hotbox .state .ring .key { - display: block; - text-align: center; - line-height: 1.4em; - vertical-align: middle; -} -.hotbox .state .center .label, -.hotbox .state .ring .label { - font-size: 16px; - margin-top: 17px; - color: black; - font-weight: normal; - line-height: 1em; -} -.hotbox .state .center .key, -.hotbox .state .ring .key { - font-size: 12px; - color: #999; -} -.hotbox .state .ring-shape { - position: absolute; - left: -25px; - top: -25px; - border: 25px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - box-sizing: content-box; -} -.hotbox .state .top, -.hotbox .state .bottom { - position: absolute; - white-space: nowrap; -} -.hotbox .state .top .button, -.hotbox .state .bottom .button { - display: inline-block; - padding: 8px 15px; - margin: 0 10px; - border-radius: 15px; - box-shadow: 0 0 30px rgba(0, 0, 0, 0.3); - position: relative; -} -.hotbox .state .top .button .label, -.hotbox .state .bottom .button .label { - font-size: 14px; - line-height: 14px; - vertical-align: middle; - color: black; - line-height: 1em; -} -.hotbox .state .top .button .key, -.hotbox .state .bottom .button .key { - font-size: 12px; - line-height: 12px; - vertical-align: middle; - color: #999; - margin-left: 3px; -} -.hotbox .state .top .button .key:before, -.hotbox .state .bottom .button .key:before { - content: '('; -} -.hotbox .state .top .button .key:after, -.hotbox .state .bottom .button .key:after { - content: ')'; -} -.hotbox .state .button { - background: #F9F9F9; - overflow: hidden; - cursor: default; -} -.hotbox .state .button .key, -.hotbox .state .button .label { - opacity: 0.3; -} -.hotbox .state .button.enabled { - background: white; -} -.hotbox .state .button.enabled .key, -.hotbox .state .button.enabled .label { - opacity: 1; -} -.hotbox .state .button.enabled:hover { - background: #e87372; -} -.hotbox .state .button.enabled:hover .label { - color: white; -} -.hotbox .state .button.enabled:hover .key { - color: #fadfdf; -} -.hotbox .state .button.enabled.selected { - -webkit-animation: selected .1s ease; - background: #e45d5c; -} -.hotbox .state .button.enabled.selected .label { - color: white; -} -.hotbox .state .button.enabled.selected .key { - color: #fadfdf; -} -.hotbox .state .button.enabled.pressed, -.hotbox .state .button.enabled:active { - background: #FF974D; -} -.hotbox .state .button.enabled.pressed .label, -.hotbox .state .button.enabled:active .label { - color: white; -} -.hotbox .state .button.enabled.pressed .key, -.hotbox .state .button.enabled:active .key { - color: #fff0e6; -} -.hotbox .state.active { - display: block; -} -@-webkit-keyframes selected { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - 50% { - -webkit-transform: scale(1.1); - transform: scale(1.1); - } - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} -.hotbox-key-receiver { - position: absolute; - left: -999999px; - top: -999999px; - width: 20px; - height: 20px; - outline: none; - margin: 0; -} diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.min.js deleted file mode 100644 index 50106e0..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/hotbox/hotbox.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * ==================================================== - * Hot Box UI - v1.0.14 - 2015-11-02 - * https://github.com/fex-team/hotbox - * GitHub: https://github.com/fex-team/hotbox.git - * Copyright (c) 2015 Baidu FEX; Licensed BSD - * ==================================================== - */ - -!function(){function a(a){b.r([c[a]])}var b={r:function(a){if(b[a].inited)return b[a].value;if("function"!=typeof b[a].value)return b[a].inited=!0,b[a].value;var c={exports:{}},d=b[a].value(null,c.exports,c);if(b[a].inited=!0,b[a].value=d,void 0!==d)return d;for(var e in c.exports)if(c.exports.hasOwnProperty(e))return b[a].inited=!0,b[a].value=c.exports,c.exports}};b[0]={value:function(a,c,d){d.exports=window.HotBox=b.r(1)}},b[1]={value:function(a,c,d){function e(a){return document.createElement(a)}function f(a,b){a.classList.add(b)}function g(a,b){a.classList.remove(b)}function h(a,b){a.appendChild(b)}function i(a,b){return"object"!=typeof b&&(b=[].slice.apply(arguments,1)),String(a).replace(/\{(\w+)\}/g,function(a,c){return b[c]||a})}function j(a){function b(a){return q?void q.active():(a=a||m,q=new a(v),q.active(),p.onmousedown=function(a){a.stopPropagation(),a.preventDefault()},v)}function c(b){var c=b.type.toLowerCase();if(b.keyHash=l.hash(b),b.isKey=function(a){if(!a)return!1;for(var c=a.split(/\s*\|\s*/);c.length;)if(b.keyHash==l.hash(c.shift()))return!0;return!1},b[c]=!0,b.keyup&&v.activeKey&&b.isKey(v.activeKey)&&t==n&&s)return void g("main",{x:a.clientWidth/2,y:a.clientHeight/2});var d=t==n?s:t;if(d){var e=d.handleKeyEvent(b);return"function"==typeof v.onkeyevent&&(b.handleResult=e,v.onkeyevent(b,e)),e}return null}function d(a){if(!a)return t;if(a==n)throw new Error("Can not define or use the `idle` state.");return r[a]=r[a]||new k(this,a),"main"==a&&(s=r[a]),r[a]}function g(a,b){if(v.position=b,a==n)t!=n&&(u.shift().deactive(),u=[]),t=n;else if("back"==a)t!=n&&(t.deactive(),u.shift(),t=u[0],t?t.active():t="idle");else{t!=n&&t.deactive();var c=r[a];u.unshift(c),"function"==typeof v.position&&(b=v.position(b)),c.active(b),t=c}}function i(a){v._parentFSM=a}function j(){return v._parentFSM}if("string"==typeof a&&(a=document.querySelector(a)),!(a&&a instanceof HTMLElement))throw new Error("No container or not invalid container for hot box");var p=e(o);f(p,"hotbox"),h(a,p),this.$element=p,this.$container=a,this.isIME=!1,this.browser={sg:/se[\s\S]+metasr/.test(navigator.userAgent.toLowerCase())},this._parentFSM={},this.position={};var q,r={},s=null,t=n,u=[],v=this;this.control=b,this.state=d,this.active=g,this.dispatch=c,this.setParentFSM=i,this.getParentFSM=j,this.activeKey="space",this.actionKey="space"}function k(a,b){function c(){function a(a){var b=B.ring,c=2*Math.PI/b.length;B.center&&(B.center.indexedPosition=[0,0]),y.style.marginLeft=y.style.marginTop=-a+"px",y.style.width=y.style.height=a+a+"px";for(var d,e,f,g,h=0;h2&&(g.push(d>0?"right":"left"),g.push(f+m(e))),m(e)>2&&(g.push(e>0?"down":"up"),g.push(f+m(d)));g.length;)h=g.shift(),j=g.shift(),(!i[h]||j{label}{key}',{label:b.label,key:b.key&&b.key.split("|")[0]})}function l(b){b=b||{x:a.$container.clientWidth/2,y:a.$container.clientHeight/2},b&&(v.style.left=b.x+"px",v.style.top=b.y+"px"),C.forEach(function(a){var b=a.$button;b&&b.classList[a.enable()?"add":"remove"]("enabled"),a.beforeShow&&a.beforeShow()}),f(v,u),G&&c(),D||q(B.center||B.ring[0]||B.top[0]||B.bottom[0]),F=!0}function m(){g(v,u),q(null),F=!1}function p(a){E&&E.$button&&g(E.$button,t),E=a,E&&E.$button&&f(E.$button,t)}function q(a){D&&D.$button&&D.$button&&g(D.$button,s),D=a,D&&D.$button&&f(D.$button,s)}function r(b){b&&((!b.enable||b.enable())&&(b.action&&b.action(b),a.active(b.next||n,a.position)),p(null),q(null))}var s="selected",t="pressed",u="active",v=e(o),w=e(o),x=e(o),y=e("div"),z=e(o),A=e(o);f(v,"state"),f(v,b),f(w,"center"),f(x,"ring"),f(y,"ring-shape"),f(z,"top"),f(A,"bottom"),h(a.$element,v),h(v,y),h(v,w),h(v,x),h(v,z),h(v,A),this.name=b;var B={center:null,ring:[],top:[],bottom:[],behind:[]},C=[],D=null,E=null,F=!1,G=!0;this.button=function(a){var b=j(a);"center"==a.position?B.center=b:B[a.position]&&B[a.position].push(b),C.push(b),G=!0},this.active=l,this.deactive=m,v.onmouseup=function(a){if(!a.button)for(var b=a.target;b&&b!=v;)b.classList.contains("button")&&C.forEach(function(a){a.$button==b&&r(a)}),b=b.parentNode},this.handleKeyEvent=function(c){var d=null;if(a.browser.sg&&c.isKey("esc"))return E?c.isKey(E.key)||p(null):a.active("back",a.position),"back";if(c.keydown||a.isIME&&c.keyup){if(C.forEach(function(e){if(e.enable()&&c.isKey(e.key)){if(F||a.hintDeactiveMainState){if(q(e),p(e),d="buttonpress",c.keyup)return r(e),d="execute"}else r(e),d="execute";c.preventDefault(),c.stopPropagation(),!F&&a.hintDeactiveMainState&&a.active(b,a.position)}}),F){if(c.isKey("esc"))return E?c.isKey(E.key)||p(null):a.active("back",a.position),"back";["up","down","left","right"].forEach(function(a){if(c.isKey(a)){if(!D)return void q(B.center||B.ring[0]||B.top[0]||B.bottom[0]);for(var b=D.neighbor[a];b&&!b.enable();)b=b.neighbor[a];b&&q(b),d="navigate"}}),c.isKey("space")&&c.keyup?(r(D),c.preventDefault(),c.stopPropagation(),d="execute"):c.isKey("space")&&D?(p(D),d="buttonpress"):E&&E!=D&&(p(null),d="selectcancel")}}else!c.keyup||!F&&a.hintDeactiveMainState||E&&(c.isKey("space")&&D==E||c.isKey(E.key))&&(r(E),c.preventDefault(),c.stopPropagation(),d="execute");return a.isIME=229==c.keyCode&&c.keydown,d}}var l=b.r(2),m=b.r(3),n=j.STATE_IDLE="idle",o="div";d.exports=j}},b[2]={value:function(a,c,d){function e(a){return"string"==typeof a?h(a):g(a)}function f(a,b){return a&&b&&e(a)==e(b)}function g(a){var b=0;return(a.ctrlKey||a.metaKey)&&(b|=j),a.altKey&&(b|=k),a.shiftKey&&(b|=l),-1==[16,17,18,91].indexOf(a.keyCode)&&(b|=a.keyCode),b}function h(a){var b=0;return a.toLowerCase().split(/\s*\+\s*/).forEach(function(a){switch(a){case"ctrl":case"cmd":b|=j;break;case"alt":b|=k;break;case"shift":b|=l;break;default:b|=i[a]}}),b}var i=b.r(4),j=4096,k=8192,l=16384;c.hash=e,c.is=f}},b[3]={value:function(a,c,d){function e(a){function b(){j=document.createElement("input"),j.classList.add(g),m.appendChild(j),l=!0}function c(){j.onkeyup=e,j.onkeypress=e,j.onkeydown=e,j.onfocus=h,j.onblur=i,l&&(j.oninput=function(a){j.value=null})}function d(){m.onmousedown=function(a){h(),a.preventDefault()}}function e(b){k&&a.dispatch(b)}function h(){j.select(),j.focus(),k=!0,m.classList.add(f)}function i(){j.blur(),k=!1,m.classList.remove(f)}var j,k=!0,l=!1,m=a.$container;b(),c(),d(),h(),this.handle=e,this.active=h,this.deactive=i}var f=(b.r(2),"hotbox-focus"),g="hotbox-key-receiver";d.exports=e}},b[4]={value:function(a,b,c){var d={Shift:16,Control:17,Alt:18,CapsLock:20,BackSpace:8,Tab:9,Enter:13,Esc:27,Space:32,PageUp:33,PageDown:34,End:35,Home:36,Insert:45,Left:37,Up:38,Right:39,Down:40,Direction:{37:1,38:1,39:1,40:1},Delete:46,NumLock:144,Cmd:91,CmdFF:224,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"`":192,"=":187,"-":189,"/":191,".":190};for(var e in d)d.hasOwnProperty(e)&&(d[e.toLowerCase()]=d[e]);var f=65,g="a".charCodeAt(0);"abcdefghijklmnopqrstuvwxyz".split("").forEach(function(a){d[a]=f+(a.charCodeAt(0)-g)});var h=9;do d[h.toString()]=h+48;while(--h);c.exports=d}};var c={expose:0};a("expose")}(); \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/bower_components/jquery/dist/jquery.min.js b/dzz/system/ueditor/dialogs/kityminder/bower_components/jquery/dist/jquery.min.js deleted file mode 100644 index 4c5be4c..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/bower_components/jquery/dist/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.css b/dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.css deleted file mode 100644 index 3a13276..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.css +++ /dev/null @@ -1,1622 +0,0 @@ -.km-editor { - overflow: hidden; - z-index: 2; -} -.km-editor > .mask { - display: block; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: transparent; -} -.km-editor > .receiver { - position: absolute; - background: white; - outline: none; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); - left: 0; - top: 0; - padding: 3px 5px; - margin-left: -3px; - margin-top: -5px; - max-width: 300px; - width: auto; - font-size: 14px; - line-height: 1.4em; - min-height: 1.4em; - box-sizing: border-box; - overflow: hidden; - word-break: break-all; - word-wrap: break-word; - border: none; - -webkit-user-select: text; - pointer-events: none; - opacity: 0; - z-index: -1000; -} -.km-editor > .receiver.debug { - opacity: 1; - outline: 1px solid green; - background: none; - z-index: 0; -} -.km-editor > .receiver.input { - pointer-events: all; - opacity: 1; - z-index: 999; - background: white; - outline: none; -} -div.minder-editor-container { - position: absolute; - top: 40px; - bottom: 0; - left: 0; - right: 0; - font-family: Arial, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; -} -.minder-editor { - position: absolute; - top: 92px; - left: 0; - right: 0; - bottom: 0; -} -.minder-viewer { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} -.control-panel { - position: absolute; - top: 0; - right: 0; - width: 250px; - bottom: 0; - border-left: 1px solid #CCC; -} -.minder-divider { - position: absolute; - top: 0; - right: 250px; - bottom: 0; - width: 2px; - background-color: #fbfbfb; - cursor: ew-resize; -} -.panel-body { - padding: 10px; -} -.upload-image { - width: 0.1px; - height: 0.1px; - opacity: 0; - overflow: hidden; - position: absolute; - z-index: -1; -} -.top-tab .nav-tabs { - background-color: #e1e1e1; - border: 0; - height: 32px; -} -.top-tab .nav-tabs li { - margin: 0; -} -.top-tab .nav-tabs li a { - margin: 0; - border: 0; - padding: 6px 15px; - border-radius: 0; - vertical-align: middle; -} -.top-tab .nav-tabs li a:hover, -.top-tab .nav-tabs li a:focus { - background: inherit; - border: 0; -} -.top-tab .nav-tabs li.active a { - border: 0; - background-color: #fff; -} -.top-tab .nav-tabs li.active a:hover, -.top-tab .nav-tabs li.active a:focus { - border: 0; -} -.top-tab .tab-content { - height: 60px; - background-color: #fff; - border-bottom: 1px solid #dbdbdb; -} -.top-tab .tab-pane { - font-size: 0; -} -.km-btn-group { - display: inline-block; - margin: 5px 0; - padding: 0 5px; - vertical-align: middle; - border-right: 1px dashed #eee; -} -.km-btn-item { - display: inline-block; - margin: 0 3px; - font-size: 0; - cursor: default; -} -.km-btn-item[disabled] { - opacity: 0.5; -} -.km-btn-item[disabled]:hover, -.km-btn-item[disabled]:active { - background-color: #fff; -} -.km-btn-item .km-btn-icon { - display: inline-block; - background: url(images/icons.png) no-repeat; - background-position: 0 20px; - width: 20px; - height: 20px; - padding: 2px; - margin: 1px; - vertical-align: middle; -} -.km-btn-item .km-btn-caption { - display: inline-block; - font-size: 12px; - vertical-align: middle; -} -.km-btn-item:hover { - background-color: #eff3fa; -} -.km-btn-item:active { - background-color: #c4d0ee; -} -.do-group { - width: 38px; -} -.undo .km-btn-icon { - background-position: 0 -1240px; -} -.redo .km-btn-icon { - background-position: 0 -1220px; -} -.append-group { - width: 212px; -} -.append-child-node .km-btn-icon { - background-position: 0 0; -} -.append-sibling-node .km-btn-icon { - background-position: 0 -20px; -} -.append-parent-node .km-btn-icon { - background-position: 0 -40px; -} -.arrange-group { - width: 64px; -} -.arrange-up .km-btn-icon { - background-position: 0 -280px; -} -.arrange-down .km-btn-icon { - background-position: 0 -300px; -} -.operation-group { - width: 64px; -} -.edit-node .km-btn-icon { - background-position: 0 -60px; -} -.remove-node .km-btn-icon { - background-position: 0 -80px; -} -.btn-group-vertical { - vertical-align: middle; - margin: 5px; -} -.btn-group-vertical .hyperlink, -.btn-group-vertical .hyperlink-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .hyperlink:hover, -.btn-group-vertical .hyperlink-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .hyperlink:active, -.btn-group-vertical .hyperlink-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .hyperlink.active, -.btn-group-vertical .hyperlink-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .hyperlink { - height: 25px; - background: url(images/icons.png) no-repeat center -100px; -} -.btn-group-vertical .hyperlink-caption { - height: 20px; -} -.btn-group-vertical .hyperlink-caption .caption { - font-size: 12px; -} -.open > .dropdown-toggle.btn-default { - background-color: #eff3fa; -} -.btn-group-vertical .image-btn, -.btn-group-vertical .image-btn-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .image-btn:hover, -.btn-group-vertical .image-btn-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .image-btn:active, -.btn-group-vertical .image-btn-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .image-btn.active, -.btn-group-vertical .image-btn-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .image-btn { - height: 25px; - background: url(images/icons.png) no-repeat center -125px; -} -.btn-group-vertical .image-btn-caption { - height: 20px; -} -.btn-group-vertical .image-btn-caption .caption { - font-size: 12px; -} -.image-preview { - display: block; - max-width: 50%; -} -.modal-body .tab-pane { - font-size: inherit; - padding-top: 15px; -} -.search-result { - margin-top: 15px; - height: 370px; - overflow: hidden; -} -.search-result ul { - margin: 0; - padding: 0; - list-style: none; - clear: both; - height: 100%; - overflow-x: hidden; - overflow-y: auto; -} -.search-result ul li { - list-style: none; - float: left; - display: block; - width: 130px; - height: 130px; - line-height: 130px; - margin: 6px; - padding: 0; - font-size: 12px; - position: relative; - vertical-align: top; - text-align: center; - overflow: hidden; - cursor: pointer; - border: 2px solid #fcfcfc; -} -.search-result ul li.selected { - border: 2px solid #fc8383; -} -.search-result ul li img { - max-width: 126px; - max-height: 130px; - vertical-align: middle; -} -.search-result ul li span { - display: block; - position: absolute; - bottom: 0; - height: 20px; - background: rgba(0, 0, 0, 0.5); - left: 0; - right: 0; - color: white; - line-height: 20px; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - white-space: nowrap; - opacity: 0; - -webkit-transform: translate(0, 20px); - -ms-transform: translate(0, 20px); - transform: translate(0, 20px); - -webkit-transition: all .2s ease; - transition: all .2s ease; -} -.search-result ul li:hover span { - opacity: 1; - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} -@media (min-width: 768px) { - .form-inline .form-control { - width: 422px; - } -} -.btn-group-vertical { - vertical-align: top; - margin: 5px; -} -.btn-group-vertical.note-btn-group { - border-right: 1px dashed #eee; - padding-right: 5px; -} -.btn-group-vertical .note-btn, -.btn-group-vertical .note-btn-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .note-btn:hover, -.btn-group-vertical .note-btn-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .note-btn:active, -.btn-group-vertical .note-btn-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .note-btn.active, -.btn-group-vertical .note-btn-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .note-btn { - height: 25px; - background: url(images/icons.png) no-repeat center -1150px; -} -.btn-group-vertical .note-btn-caption { - height: 20px; -} -.btn-group-vertical .note-btn-caption .caption { - font-size: 12px; -} -.open > .dropdown-toggle.btn-default { - background-color: #eff3fa; -} -.gfm-render { - font-size: 12px; - -webkit-user-select: text; - color: #333; - line-height: 1.8em; -} -.gfm-render blockquote, -.gfm-render ul, -.gfm-render table, -.gfm-render p, -.gfm-render pre, -.gfm-render hr { - margin: 1em 0; - cursor: text; -} -.gfm-render blockquote:first-child:last-child, -.gfm-render ul:first-child:last-child, -.gfm-render table:first-child:last-child, -.gfm-render p:first-child:last-child, -.gfm-render pre:first-child:last-child, -.gfm-render hr:first-child:last-child { - margin: 0; -} -.gfm-render img { - max-width: 100%; -} -.gfm-render a { - color: blue; -} -.gfm-render a:hover { - color: red; -} -.gfm-render blockquote { - display: block; - border-left: 4px solid #E4AD91; - color: #da8e68; - padding-left: 10px; - font-style: italic; - margin-left: 2em; -} -.gfm-render ul, -.gfm-render ol { - padding-left: 3em; -} -.gfm-render table { - width: 100%; - border-collapse: collapse; - margin: 1em 0; -} -.gfm-render table th, -.gfm-render table td { - border: 1px solid #666; - padding: 2px 4px; -} -.gfm-render table th { - background: rgba(45, 141, 234, 0.2); -} -.gfm-render table tr:nth-child(even) td { - background: rgba(45, 141, 234, 0.03); -} -.gfm-render em { - color: red; -} -.gfm-render del { - color: #999; -} -.gfm-render pre { - background: rgba(45, 141, 234, 0.1); - padding: 5px; - border-radius: 5px; - word-break: break-all; - word-wrap: break-word; -} -.gfm-render code { - background: rgba(45, 141, 234, 0.1); - /* display: inline-block; */ - padding: 0 5px; - border-radius: 3px; -} -.gfm-render pre code { - background: none; -} -.gfm-render hr { - border: none; - border-top: 1px solid #CCC; -} -.gfm-render .highlight { - background: yellow; - color: red; -} -.km-note { - width: 300px; - border-left: 1px solid #babfcd; - padding: 5px 10px; - background: white; - position: absolute; - top: 92px; - right: 0; - bottom: 0; - left: auto; - z-index: 3; -} -.km-note.panel { - margin: 0; - padding: 0; -} -.km-note.panel .panel-heading h3 { - display: inline-block; -} -.km-note.panel .panel-heading .close-note-editor { - width: 15px; - height: 15px; - display: inline-block; - float: right; -} -.km-note.panel .panel-heading .close-note-editor:hover { - cursor: pointer; -} -.km-note.panel .panel-body { - padding: 0; -} -.km-note .CodeMirror { - position: absolute; - top: 41px; - bottom: 0; - height: auto; - cursor: text; - font-size: 14px; - line-height: 1.3em; - font-family: consolas; -} -.km-note-tips { - color: #ccc; - padding: 3px 8px; -} -#previewer-content { - position: absolute; - background: #FFD; - padding: 5px 15px; - border-radius: 5px; - max-width: 400px; - max-height: 200px; - overflow: auto; - z-index: 10; - box-shadow: 0 0 15px rgba(0, 0, 0, 0.5); - word-break: break-all; - font-size: 12px; - -webkit-user-select: text; - color: #333; - line-height: 1.8em; -} -#previewer-content blockquote, -#previewer-content ul, -#previewer-content table, -#previewer-content p, -#previewer-content pre, -#previewer-content hr { - margin: 1em 0; - cursor: text; -} -#previewer-content blockquote:first-child:last-child, -#previewer-content ul:first-child:last-child, -#previewer-content table:first-child:last-child, -#previewer-content p:first-child:last-child, -#previewer-content pre:first-child:last-child, -#previewer-content hr:first-child:last-child { - margin: 0; -} -#previewer-content img { - max-width: 100%; -} -#previewer-content a { - color: blue; -} -#previewer-content a:hover { - color: red; -} -#previewer-content blockquote { - display: block; - border-left: 4px solid #E4AD91; - color: #da8e68; - padding-left: 10px; - font-style: italic; - margin-left: 2em; -} -#previewer-content ul, -#previewer-content ol { - padding-left: 3em; -} -#previewer-content table { - width: 100%; - border-collapse: collapse; - margin: 1em 0; -} -#previewer-content table th, -#previewer-content table td { - border: 1px solid #666; - padding: 2px 4px; -} -#previewer-content table th { - background: rgba(45, 141, 234, 0.2); -} -#previewer-content table tr:nth-child(even) td { - background: rgba(45, 141, 234, 0.03); -} -#previewer-content em { - color: red; -} -#previewer-content del { - color: #999; -} -#previewer-content pre { - background: rgba(45, 141, 234, 0.1); - padding: 5px; - border-radius: 5px; - word-break: break-all; - word-wrap: break-word; -} -#previewer-content code { - background: rgba(45, 141, 234, 0.1); - /* display: inline-block; */ - padding: 0 5px; - border-radius: 3px; -} -#previewer-content pre code { - background: none; -} -#previewer-content hr { - border: none; - border-top: 1px solid #CCC; -} -#previewer-content .highlight { - background: yellow; - color: red; -} -#previewer-content.ng-hide { - display: block!important; - left: -99999px !important; - top: -99999px !important; -} -.panel-body { - padding: 10px; -} -.tab-content .km-priority { - vertical-align: middle; - font-size: inherit; - display: inline-block; - width: 140px; - margin: 5px; - border-right: 1px dashed #eee; -} -.tab-content .km-priority .km-priority-item { - margin: 0 1px; - padding: 1px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon { - background: url(images/iconpriority.png) repeat-y; - background-color: transparent; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-0 { - background-position: 0 20px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-1 { - background-position: 0 0px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-2 { - background-position: 0 -20px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-3 { - background-position: 0 -40px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-4 { - background-position: 0 -60px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-5 { - background-position: 0 -80px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-6 { - background-position: 0 -100px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-7 { - background-position: 0 -120px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-8 { - background-position: 0 -140px; -} -.tab-content .km-priority .km-priority-item .km-priority-icon.priority-9 { - background-position: 0 -160px; -} -.tab-content .km-progress { - vertical-align: middle; - font-size: inherit; - display: inline-block; - width: 140px; - margin: 5px; - border-right: 1px dashed #eee; -} -.tab-content .km-progress .km-progress-item { - margin: 0 1px; - padding: 1px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon { - background: url(images/iconprogress.png) repeat-y; - background-color: transparent; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-0 { - background-position: 0 20px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-1 { - background-position: 0 0px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-2 { - background-position: 0 -20px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-3 { - background-position: 0 -40px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-4 { - background-position: 0 -60px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-5 { - background-position: 0 -80px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-6 { - background-position: 0 -100px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-7 { - background-position: 0 -120px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-8 { - background-position: 0 -140px; -} -.tab-content .km-progress .km-progress-item .km-progress-icon.progress-9 { - background-position: 0 -160px; -} -.resource-editor { - vertical-align: middle; - display: inline-block; - margin: 5px; -} -.resource-editor .input-group, -.resource-editor .km-resource { - font-size: 12px; -} -.resource-editor .input-group { - height: 20px; - width: 168px; -} -.resource-editor .resource-dropdown { - position: relative; - width: 168px; - border: 1px solid #ccc; - margin-top: -1px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.resource-editor .resource-dropdown .km-resource { - position: absolute; - width: 154px; - margin-bottom: 3px; - padding: 0; - list-style-type: none; - overflow: scroll; - max-height: 500px; -} -.resource-editor .resource-dropdown .km-resource.open { - z-index: 3; - background-color: #fff; -} -.resource-editor .resource-dropdown .km-resource li { - display: inline-block; - padding: 1px 2px; - border-radius: 4px; - margin: 2px 3px; -} -.resource-editor .resource-dropdown .km-resource li[disabled] { - opacity: 0.5; -} -.resource-editor .resource-dropdown .resource-caret { - display: block; - float: right; - vertical-align: middle; - width: 12px; - height: 24px; - padding: 8px 1px; -} -.resource-editor .resource-dropdown .resource-caret:hover { - background-color: #eff3fa; -} -.resource-editor .resource-dropdown .resource-caret:active { - background-color: #c4d0ee; -} -.resource-editor input.form-control, -.resource-editor .btn { - font-size: 12px; -} -.resource-editor input.form-control { - padding: 2px 4px; - height: 24px; - border-bottom-left-radius: 0; -} -.resource-editor .input-group-btn { - line-height: 24px; -} -.resource-editor .input-group-btn .btn { - padding: 2px 4px; - height: 24px; - border-bottom-right-radius: 0; -} -.temp-panel { - margin: 5px 5px 5px 10px; - border-right: 1px dashed #eee; - display: inline-block; - vertical-align: middle; -} -.temp-list { - min-width: 124px; -} -.temp-item-wrap { - width: 50px; - height: 40px; - padding: 0 2px; - margin: 5px; - display: inline-block; -} -.temp-item { - display: inline-block; - width: 50px; - height: 40px; - background-image: url(images/template.png); - background-repeat: no-repeat; -} -.temp-item.default { - background-position: 0 0; -} -.temp-item.structure { - background-position: -50px 0; -} -.temp-item.filetree { - background-position: -100px 0; -} -.temp-item.right { - background-position: -150px 0; -} -.temp-item.fish-bone { - background-position: -200px 0; -} -.temp-item.tianpan { - background-position: -250px 0; -} -.current-temp-item { - width: 74px; - padding: 0 0 0 5px; - border: 1px solid #fff; -} -.current-temp-item:hover { - background-color: #eff3fa; -} -.current-temp-item[disabled] { - opacity: 0.5; -} -.current-temp-item .caret { - margin-left: 5px; -} -.temp-item-selected { - background-color: #87a9da; -} -.theme-panel { - height: 42px; - margin: 5px; - padding: 0 5px 0 0; - border-right: 1px dashed #eee; - display: inline-block; - vertical-align: middle; -} -.theme-list { - min-width: 162px; -} -div a.theme-item { - display: inline-block; - width: 70px; - height: 30px; - text-align: center; - line-height: 30px; - padding: 0 5px; - font-size: 12px; - cursor: pointer; - text-decoration: none; - color: #000; -} -.theme-item-selected { - width: 100px; - padding: 6px 7px; - border: 1px solid #fff; -} -.theme-item-selected:hover { - background-color: #eff3fa; -} -.theme-item-selected .caret { - margin-left: 5px; -} -.theme-item-selected[disabled] { - opacity: 0.5; -} -.theme-item-wrap { - display: inline-block; - width: 80px; - height: 40px; - padding: 5px; -} -.theme-item-wrap:hover { - background-color: #eff3fa; -} -.readjust-layout { - display: inline-block; - vertical-align: middle; - padding: 0 10px 0 5px; - border-right: 1px dashed #eee; -} -.btn-icon { - width: 25px; - height: 25px; - margin-left: 12px; - display: block; -} -.btn-label { - font-size: 12px; -} -.btn-wrap { - width: 50px; - height: 42px; - cursor: pointer; - display: inline-block; - text-decoration: none; -} -.btn-wrap[disabled] span { - opacity: 0.5; -} -.btn-wrap[disabled] { - cursor: default; -} -.btn-wrap[disabled]:hover { - background-color: transparent; -} -.btn-wrap[disabled]:active { - background-color: transparent; -} -.btn-wrap:link { - text-decoration: none; -} -.btn-wrap:visited { - text-decoration: none; -} -.btn-wrap:hover { - background-color: #eff3fa; - text-decoration: none; -} -.btn-wrap:active { - background-color: #c4d0ee; -} -.reset-layout-icon { - background: url(images/icons.png) no-repeat; - background-position: 0 -150px; -} -.style-operator { - display: inline-block; - vertical-align: middle; - padding: 0 5px; - border-right: 1px dashed #eee; -} -.style-operator .clear-style { - vertical-align: middle; -} -.clear-style-icon { - background: url(images/icons.png) no-repeat; - background-position: 0 -175px; -} -.s-btn-group-vertical { - display: inline-block; - vertical-align: middle; -} -.s-btn-icon { - width: 20px; - height: 20px; - margin-right: 3px; - display: inline-block; - vertical-align: middle; -} -.s-btn-label { - font-size: 12px; - vertical-align: middle; - display: inline-block; -} -.s-btn-wrap { - padding: 0 5px 0 3px; - display: inline-block; - text-decoration: none; - font-size: 0; -} -.s-btn-wrap[disabled] span { - opacity: 0.5; -} -.s-btn-wrap[disabled] { - cursor: default; -} -.s-btn-wrap[disabled]:hover { - background-color: transparent; -} -.s-btn-wrap[disabled]:active { - background-color: transparent; -} -.s-btn-wrap:hover { - background-color: #eff3fa; - text-decoration: none; -} -.s-btn-wrap:active { - background-color: #c4d0ee; -} -.copy-style-icon { - background: url(images/icons.png) no-repeat; - background-position: 0 -200px; -} -.paste-style-wrap { - display: block; -} -.paste-style-icon { - background: url(images/icons.png) no-repeat; - background-position: 0 -220px; -} -.font-operator { - width: 170px; - display: inline-block; - vertical-align: middle; - font-size: 12px; - padding: 0 5px; -} -.font-operator .font-size-list { - display: inline-block; - border: 1px solid #eee; - padding: 2px 4px; -} -.font-operator .font-family-list { - display: inline-block; - border: 1px solid #eee; - padding: 2px 4px; -} -.current-font-item a { - text-decoration: none; - display: inline-block; -} -.current-font-family { - width: 75px; - height: 18px; - overflow: hidden; - vertical-align: bottom; -} -.current-font-size { - width: 32px; - height: 18px; - overflow: hidden; - vertical-align: bottom; -} -.current-font-item[disabled] { - opacity: 0.5; -} -.font-item { - line-height: 1em; - text-align: left; -} -.font-item-selected { - background-color: #87a9da; -} -.font-bold, -.font-italics { - display: inline-block; - background: url(images/icons.png) no-repeat; - cursor: pointer; - margin: 0 3px; -} -.font-bold:hover, -.font-italics:hover { - background-color: #eff3fa; -} -.font-bold:active, -.font-italics:active { - background-color: #c4d0ee; -} -.font-bold[disabled], -.font-italics[disabled] { - opacity: 0.5; -} -.font-bold { - background-position: 0 -240px; -} -.font-italics { - background-position: 0 -260px; -} -.font-bold-selected, -.font-italics-selected { - background-color: #87a9da; -} -.font-color-wrap { - display: inline-block; - width: 30px; - height: 22px; - margin: 3px 3px 0 0; - border: 1px #efefef solid; - vertical-align: middle; - font-size: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.font-color-wrap[disabled] { - opacity: 0.5; -} -.font-color-wrap .quick-font-color { - display: inline-block; - width: 20px; - height: 16px; - font-size: 14px; - line-height: 16px; - vertical-align: top; - text-align: center; - cursor: default; - color: #000; -} -.font-color-wrap .quick-font-color:hover { - background-color: #eff3fa; -} -.font-color-wrap .quick-font-color:active { - background-color: #c4d0ee; -} -.font-color-wrap .quick-font-color[disabled] { - opacity: 0.5; -} -.font-color-wrap .font-color-preview { - display: inline-block; - width: 12px; - height: 2px; - margin: 0 4px 0; - background-color: #000; -} -.font-color-wrap .font-color-preview[disabled] { - opacity: 0.5; -} -.font-color { - display: inline-block; - width: 8px; - height: 16px; -} -.font-color:hover { - background-color: #eff3fa; -} -.font-color:active { - background-color: #c4d0ee; -} -.font-color[disabled] { - opacity: 0.5; -} -.font-color .caret { - margin-left: -2px; - margin-top: 7px; -} -.bg-color-wrap { - display: inline-block; - width: 30px; - height: 22px; - margin: 3px 3px 0 0; - border: 1px #efefef solid; - vertical-align: middle; - font-size: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.bg-color-wrap[disabled] { - opacity: 0.5; -} -.bg-color-wrap .quick-bg-color { - display: inline-block; - width: 20px; - height: 16px; - font-size: 14px; - line-height: 16px; - vertical-align: top; - text-align: center; - cursor: default; - color: #000; - background: url(images/icons.png) no-repeat center -1260px; -} -.bg-color-wrap .quick-bg-color:hover { - background-color: #eff3fa; -} -.bg-color-wrap .quick-bg-color:active { - background-color: #c4d0ee; -} -.bg-color-wrap .quick-bg-color[disabled] { - opacity: 0.5; -} -.bg-color-wrap .bg-color-preview { - display: inline-block; - width: 12px; - height: 2px; - margin: 0 4px 0; - background-color: #fff; -} -.bg-color-wrap .bg-color-preview[disabled] { - opacity: 0.5; -} -.bg-color { - display: inline-block; - width: 8px; - height: 16px; -} -.bg-color:hover { - background-color: #eff3fa; -} -.bg-color:active { - background-color: #c4d0ee; -} -.bg-color[disabled] { - opacity: 0.5; -} -.bg-color .caret { - margin-left: -2px; - margin-top: 7px; -} -.btn-group-vertical { - vertical-align: middle; - margin: 5px; -} -.btn-group-vertical .expand, -.btn-group-vertical .expand-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .expand:hover, -.btn-group-vertical .expand-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .expand:active, -.btn-group-vertical .expand-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .expand.active, -.btn-group-vertical .expand-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .expand { - height: 25px; - background: url(images/icons.png) no-repeat 0 -995px; - background-position-x: 50%; -} -.btn-group-vertical .expand-caption { - height: 20px; -} -.btn-group-vertical .expand-caption .caption { - font-size: 12px; -} -.btn-group-vertical { - vertical-align: middle; - margin: 5px; -} -.btn-group-vertical .select, -.btn-group-vertical .select-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .select:hover, -.btn-group-vertical .select-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .select:active, -.btn-group-vertical .select-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .select.active, -.btn-group-vertical .select-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .select { - height: 25px; - background: url(images/icons.png) no-repeat 7px -1175px; -} -.btn-group-vertical .select-caption { - height: 20px; -} -.btn-group-vertical .select-caption .caption { - font-size: 12px; -} -.btn-group-vertical { - vertical-align: middle; - margin: 5px; -} -.btn-group-vertical .search, -.btn-group-vertical .search-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .search:hover, -.btn-group-vertical .search-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .search:active, -.btn-group-vertical .search-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .search.active, -.btn-group-vertical .search-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .search { - height: 25px; - background: url(images/icons.png) no-repeat 0 -345px; - background-position-x: 50%; -} -.btn-group-vertical .search-caption { - height: 20px; -} -.btn-group-vertical .search-caption .caption { - font-size: 12px; -} -.btn-group-vertical { - vertical-align: middle; - margin: 5px; -} -.btn-group-vertical .help, -.btn-group-vertical .help-caption { - width: 40px; - margin: 0; - padding: 0; - border: none!important; - border-radius: 0!important; -} -.btn-group-vertical .help:hover, -.btn-group-vertical .help-caption:hover { - background-color: #eff3fa; -} -.btn-group-vertical .help:active, -.btn-group-vertical .help-caption:active { - background-color: #c4d0ee; -} -.btn-group-vertical .help.active, -.btn-group-vertical .help-caption.active { - box-shadow: none; - background-color: #eff3fa; -} -.btn-group-vertical .help { - height: 25px; - background: url(images/icons.png) no-repeat 0 -470px; - background-position-x: 50%; -} -.btn-group-vertical .help-caption { - height: 20px; -} -.btn-group-vertical .help-caption .caption { - font-size: 12px; -} -.search-box { - float: right; - background-color: #fff; - border: 1px solid #dbdbdb; - position: relative; - top: 0; - z-index: 3; - width: 360px; - height: 40px; - padding: 3px 6px; - opacity: 1; -} -.search-box .search-input-wrap, -.search-box .prev-and-next-btn { - float: left; -} -.search-box .close-search { - float: right; - height: 16px; - width: 16px; - padding: 1px; - border-radius: 100%; - margin-top: 6px; - margin-right: 10px; -} -.search-box .close-search .glyphicon { - top: -1px; -} -.search-box .close-search:hover { - background-color: #efefef; -} -.search-box .close-search:active { - background-color: #999; -} -.search-box .search-input-wrap { - width: 240px; -} -.search-box .prev-and-next-btn { - margin-left: 5px; -} -.search-box .prev-and-next-btn .btn:focus { - outline: none; -} -.search-box .search-addon { - background-color: #fff; -} -.tool-group { - padding: 0; -} -.tool-group[disabled] { - opacity: 0.5; -} -.tool-group .tool-group-item { - display: inline-block; - border-radius: 4px; -} -.tool-group .tool-group-item .tool-group-icon { - width: 20px; - height: 20px; - padding: 2px; - margin: 1px; -} -.tool-group .tool-group-item:hover { - background-color: #eff3fa; -} -.tool-group .tool-group-item:active { - background-color: #c4d0ee; -} -.tool-group .tool-group-item.active { - background-color: #c4d0ee; -} -.nav-bar { - position: absolute; - width: 35px; - height: 240px; - padding: 5px 0; - left: 10px; - bottom: 10px; - background: #fc8383; - color: #fff; - border-radius: 4px; - z-index: 10; - box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2); - transition: -webkit-transform 0.7s 0.1s ease; - transition: transform .7s 0.1s ease; -} -.nav-bar .nav-btn { - width: 35px; - height: 24px; - line-height: 24px; - text-align: center; -} -.nav-bar .nav-btn .icon { - background: url(images/icons.png); - width: 20px; - height: 20px; - margin: 2px auto; - display: block; -} -.nav-bar .nav-btn.active { - background-color: #5A6378; -} -.nav-bar .zoom-in .icon { - background-position: 0 -730px; -} -.nav-bar .zoom-out .icon { - background-position: 0 -750px; -} -.nav-bar .hand .icon { - background-position: 0 -770px; - width: 25px; - height: 25px; - margin: 0 auto; -} -.nav-bar .camera .icon { - background-position: 0 -870px; - width: 25px; - height: 25px; - margin: 0 auto; -} -.nav-bar .nav-trigger .icon { - background-position: 0 -845px; - width: 25px; - height: 25px; - margin: 0 auto; -} -.nav-bar .zoom-pan { - width: 2px; - height: 70px; - box-shadow: 0 1px #E50000; - position: relative; - background: white; - margin: 3px auto; - overflow: visible; -} -.nav-bar .zoom-pan .origin { - position: absolute; - width: 20px; - height: 8px; - left: -9px; - margin-top: -4px; - background: transparent; -} -.nav-bar .zoom-pan .origin:after { - content: ' '; - display: block; - width: 6px; - height: 2px; - background: white; - left: 7px; - top: 3px; - position: absolute; -} -.nav-bar .zoom-pan .indicator { - position: absolute; - width: 8px; - height: 8px; - left: -3px; - background: white; - border-radius: 100%; - margin-top: -4px; -} -.nav-previewer { - background: #fff; - width: 140px; - height: 120px; - position: absolute; - left: 45px; - bottom: 30px; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.2); - border-radius: 0 2px 2px 0; - padding: 1px; - z-index: 9; - cursor: crosshair; - transition: -webkit-transform 0.7s 0.1s ease; - transition: transform .7s 0.1s ease; -} -.nav-previewer.grab { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - cursor: grabbing; -} -/*# sourceMappingURL=kityminder.editor.css.map */ -body,header,html { -font-family:Arial,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif; -margin:0; -} -.shortcut-dialog { -height:400px; -overflow:scroll; --moz-user-select:none; --webkit-user-select:none; --ms-user-select:none; --khtml-user-select:none; -user-select:none; -} -.shortcut-dialog section { -min-width:300px; -margin:0 20px 20px 0; -} -.shortcut-dialog section h3 { -border-bottom:1px solid #EEE; -font-size:16px; -font-weight:700; -padding-bottom:5px; -margin-top:0; -} -.shortcut-dialog section div.shortcut-group { - margin: 5px auto; -} -.shortcut-dialog section div.shortcut-group span.shortcut { - display: inline-block; - width: 220px; - text-align: right; - margin-right: 10px; -} -.shortcut-dialog section div.shortcut-group span.shortcut .shortcut-key { - display: inline-block; - padding: 3px 8px 5px; - font-size: 12px; - font-weight: normal; - line-height: 14px; - color: #6e6e6e; - /* text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); */ - white-space: nowrap; - vertical-align: middle; - background-color: #fcfcfc; - border-radius: 3px; - border: 1px solid #cccccc; - text-transform: capitalize; - box-shadow: inset 0 -2px #ebebeb, inset 0 -3px #ffffff, 0 1px 2px rgba(255, 255, 255, 0.3); -} -.shortcut-dialog section div.shortcut-group span.shortcut .shortcut-key:active { - padding-top: 4px; - padding-bottom: 4px; - box-shadow: inset 0 -1px #ebebeb, inset 0 -2px #ffffff, 0 1px 1px rgba(255, 255, 255, 0.3); -} -.shortcut-dialog section div.shortcut-group span.shortcut .shortcut-key:active:after { - -webkit-transform: translate(0, 1px); - transform: translate(0, 1px); -} \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.js b/dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.js deleted file mode 100644 index 00ed3f3..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/dist/kityminder.editor.js +++ /dev/null @@ -1,4670 +0,0 @@ -/*! - * ==================================================== - * kityminder-editor - v1.0.56 - 2016-12-22 - * https://github.com/fex-team/kityminder-editor - * GitHub: https://github.com/fex-team/kityminder-editor - * Copyright (c) 2016 ; Licensed - * ==================================================== - */ - -(function () { -var _p = { - r: function(index) { - if (_p[index].inited) { - return _p[index].value; - } - if (typeof _p[index].value === "function") { - var module = { - exports: {} - }, returnValue = _p[index].value(null, module.exports, module); - _p[index].inited = true; - _p[index].value = returnValue; - if (returnValue !== undefined) { - return returnValue; - } else { - for (var key in module.exports) { - if (module.exports.hasOwnProperty(key)) { - _p[index].inited = true; - _p[index].value = module.exports; - return module.exports; - } - } - } - } else { - _p[index].inited = true; - return _p[index].value; - } - } -}; - -//src/editor.js -_p[0] = { - value: function(require, exports, module) { - /** - * 运行时 - */ - var runtimes = []; - function assemble(runtime) { - runtimes.push(runtime); - } - function KMEditor(selector) { - this.selector = selector; - for (var i = 0; i < runtimes.length; i++) { - if (typeof runtimes[i] == "function") { - runtimes[i].call(this, this); - } - } - } - KMEditor.assemble = assemble; - assemble(_p.r(7)); - assemble(_p.r(9)); - assemble(_p.r(14)); - assemble(_p.r(18)); - assemble(_p.r(11)); - assemble(_p.r(12)); - assemble(_p.r(5)); - assemble(_p.r(6)); - assemble(_p.r(8)); - assemble(_p.r(15)); - assemble(_p.r(10)); - assemble(_p.r(13)); - assemble(_p.r(16)); - assemble(_p.r(17)); - return module.exports = KMEditor; - } -}; - -//src/expose-editor.js -/** - * @fileOverview - * - * 打包暴露 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[1] = { - value: function(require, exports, module) { - return module.exports = kityminder.Editor = _p.r(0); - } -}; - -//src/hotbox.js -_p[2] = { - value: function(require, exports, module) { - return module.exports = window.HotBox; - } -}; - -//src/lang.js -_p[3] = { - value: function(require, exports, module) {} -}; - -//src/minder.js -_p[4] = { - value: function(require, exports, module) { - return module.exports = window.kityminder.Minder; - } -}; - -//src/runtime/clipboard-mimetype.js -/** - * @Desc: 新增一个用于处理系统ctrl+c ctrl+v等方式导入导出节点的MIMETYPE处理,如系统不支持clipboardEvent或者是FF则不初始化改class - * @Editor: Naixor - * @Date: 2015.9.21 - */ -_p[5] = { - value: function(require, exports, module) { - function MimeType() { - /** - * 私有变量 - */ - var SPLITOR = "\ufeff"; - var MIMETYPE = { - "application/km": "￿" - }; - var SIGN = { - "\ufeff": "SPLITOR", - "￿": "application/km" - }; - /** - * 用于将一段纯文本封装成符合其数据格式的文本 - * @method process private - * @param {MIMETYPE} mimetype 数据格式 - * @param {String} text 原始文本 - * @return {String} 符合该数据格式下的文本 - * @example - * var str = "123"; - * str = process('application/km', str); // 返回的内容再经过MimeType判断会读取出其数据格式为application/km - * process('text/plain', str); // 若接受到一个非纯文本信息,则会将其转换为新的数据格式 - */ - function process(mimetype, text) { - if (!this.isPureText(text)) { - var _mimetype = this.whichMimeType(text); - if (!_mimetype) { - throw new Error("unknow mimetype!"); - } - text = this.getPureText(text); - } - if (mimetype === false) { - return text; - } - return mimetype + SPLITOR + text; - } - /** - * 注册数据类型的标识 - * @method registMimeTypeProtocol public - * @param {String} type 数据类型 - * @param {String} sign 标识 - */ - this.registMimeTypeProtocol = function(type, sign) { - if (sign && SIGN[sign]) { - throw new Error("sing has registed!"); - } - if (type && !!MIMETYPE[type]) { - throw new Error("mimetype has registed!"); - } - SIGN[sign] = type; - MIMETYPE[type] = sign; - }; - /** - * 获取已注册数据类型的协议 - * @method getMimeTypeProtocol public - * @param {String} type 数据类型 - * @param {String} text|undefiend 文本内容或不传入 - * @return {String|Function} - * @example - * text若不传入则直接返回对应数据格式的处理(process)方法 - * 若传入文本则直接调用对应的process方法进行处理,此时返回处理后的内容 - * var m = new MimeType(); - * var kmprocess = m.getMimeTypeProtocol('application/km'); - * kmprocess("123") === m.getMimeTypeProtocol('application/km', "123"); - * - */ - this.getMimeTypeProtocol = function(type, text) { - var mimetype = MIMETYPE[type] || false; - if (text === undefined) { - return process.bind(this, mimetype); - } - return process(mimetype, text); - }; - this.getSpitor = function() { - return SPLITOR; - }; - this.getMimeType = function(sign) { - if (sign !== undefined) { - return SIGN[sign] || null; - } - return MIMETYPE; - }; - } - MimeType.prototype.isPureText = function(text) { - return !~text.indexOf(this.getSpitor()); - }; - MimeType.prototype.getPureText = function(text) { - if (this.isPureText(text)) { - return text; - } - return text.split(this.getSpitor())[1]; - }; - MimeType.prototype.whichMimeType = function(text) { - if (this.isPureText(text)) { - return null; - } - return this.getMimeType(text.split(this.getSpitor())[0]); - }; - function MimeTypeRuntime() { - if (this.minder.supportClipboardEvent && !kity.Browser.gecko) { - this.MimeType = new MimeType(); - } - } - return module.exports = MimeTypeRuntime; - } -}; - -//src/runtime/clipboard.js -/** - * @Desc: 处理editor的clipboard事件,只在支持ClipboardEvent并且不是FF的情况下工作 - * @Editor: Naixor - * @Date: 2015.9.21 - */ -_p[6] = { - value: function(require, exports, module) { - function ClipboardRuntime() { - var minder = this.minder; - var Data = window.kityminder.data; - if (!minder.supportClipboardEvent || kity.Browser.gecko) { - return; - } - var fsm = this.fsm; - var receiver = this.receiver; - var MimeType = this.MimeType; - var kmencode = MimeType.getMimeTypeProtocol("application/km"), decode = Data.getRegisterProtocol("json").decode; - var _selectedNodes = []; - /* - * 增加对多节点赋值粘贴的处理 - */ - function encode(nodes) { - var _nodes = []; - for (var i = 0, l = nodes.length; i < l; i++) { - _nodes.push(minder.exportNode(nodes[i])); - } - return kmencode(Data.getRegisterProtocol("json").encode(_nodes)); - } - var beforeCopy = function(e) { - if (document.activeElement == receiver.element) { - var clipBoardEvent = e; - var state = fsm.state(); - switch (state) { - case "input": - { - break; - } - - case "normal": - { - var nodes = [].concat(minder.getSelectedNodes()); - if (nodes.length) { - // 这里由于被粘贴复制的节点的id信息也都一样,故做此算法 - // 这里有个疑问,使用node.getParent()或者node.parent会离奇导致出现非选中节点被渲染成选中节点,因此使用isAncestorOf,而没有使用自行回溯的方式 - if (nodes.length > 1) { - var targetLevel; - nodes.sort(function(a, b) { - return a.getLevel() - b.getLevel(); - }); - targetLevel = nodes[0].getLevel(); - if (targetLevel !== nodes[nodes.length - 1].getLevel()) { - var plevel, pnode, idx = 0, l = nodes.length, pidx = l - 1; - pnode = nodes[pidx]; - while (pnode.getLevel() !== targetLevel) { - idx = 0; - while (idx < l && nodes[idx].getLevel() === targetLevel) { - if (nodes[idx].isAncestorOf(pnode)) { - nodes.splice(pidx, 1); - break; - } - idx++; - } - pidx--; - pnode = nodes[pidx]; - } - } - } - var str = encode(nodes); - clipBoardEvent.clipboardData.setData("text/plain", str); - } - e.preventDefault(); - break; - } - } - } - }; - var beforeCut = function(e) { - if (document.activeElement == receiver.element) { - if (minder.getStatus() !== "normal") { - e.preventDefault(); - return; - } - var clipBoardEvent = e; - var state = fsm.state(); - switch (state) { - case "input": - { - break; - } - - case "normal": - { - var nodes = minder.getSelectedNodes(); - if (nodes.length) { - clipBoardEvent.clipboardData.setData("text/plain", encode(nodes)); - minder.execCommand("removenode"); - } - e.preventDefault(); - break; - } - } - } - }; - var beforePaste = function(e) { - if (document.activeElement == receiver.element) { - if (minder.getStatus() !== "normal") { - e.preventDefault(); - return; - } - var clipBoardEvent = e; - var state = fsm.state(); - var textData = clipBoardEvent.clipboardData.getData("text/plain"); - switch (state) { - case "input": - { - // input状态下如果格式为application/km则不进行paste操作 - if (!MimeType.isPureText(textData)) { - e.preventDefault(); - return; - } - break; - } - - case "normal": - { - /* - * 针对normal状态下通过对选中节点粘贴导入子节点文本进行单独处理 - */ - var sNodes = minder.getSelectedNodes(); - if (MimeType.whichMimeType(textData) === "application/km") { - var nodes = decode(MimeType.getPureText(textData)); - var _node; - sNodes.forEach(function(node) { - // 由于粘贴逻辑中为了排除子节点重新排序导致逆序,因此复制的时候倒过来 - for (var i = nodes.length - 1; i >= 0; i--) { - _node = minder.createNode(null, node); - minder.importNode(_node, nodes[i]); - _selectedNodes.push(_node); - node.appendChild(_node); - } - }); - minder.select(_selectedNodes, true); - _selectedNodes = []; - minder.refresh(); - } else if (clipBoardEvent.clipboardData && clipBoardEvent.clipboardData.items[0].type.indexOf("image") > -1) { - var imageFile = clipBoardEvent.clipboardData.items[0].getAsFile(); - var serverService = angular.element(document.body).injector().get("server"); - return serverService.uploadImage(imageFile).then(function(json) { - var resp = json.data; - if (resp.errno === 0) { - minder.execCommand("image", resp.data.url); - } - }); - } else { - sNodes.forEach(function(node) { - minder.Text2Children(node, textData); - }); - } - e.preventDefault(); - break; - } - } - } - }; - /** - * 由editor的receiver统一处理全部事件,包括clipboard事件 - * @Editor: Naixor - * @Date: 2015.9.24 - */ - document.addEventListener("copy", beforeCopy); - document.addEventListener("cut", beforeCut); - document.addEventListener("paste", beforePaste); - } - return module.exports = ClipboardRuntime; - } -}; - -//src/runtime/container.js -/** - * @fileOverview - * - * 初始化编辑器的容器 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[7] = { - value: function(require, exports, module) { - /** - * 最先执行的 Runtime,初始化编辑器容器 - */ - function ContainerRuntime() { - var container; - if (typeof this.selector == "string") { - container = document.querySelector(this.selector); - } else { - container = this.selector; - } - if (!container) throw new Error("Invalid selector: " + this.selector); - // 这个类名用于给编辑器添加样式 - container.classList.add("km-editor"); - // 暴露容器给其他运行时使用 - this.container = container; - } - return module.exports = ContainerRuntime; - } -}; - -//src/runtime/drag.js -/** - * @fileOverview - * - * 用于拖拽节点时屏蔽键盘事件 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[8] = { - value: function(require, exports, module) { - var Hotbox = _p.r(2); - var Debug = _p.r(19); - var debug = new Debug("drag"); - function DragRuntime() { - var fsm = this.fsm; - var minder = this.minder; - var hotbox = this.hotbox; - var receiver = this.receiver; - var receiverElement = receiver.element; - // setup everything to go - setupFsm(); - // listen the fsm changes, make action. - function setupFsm() { - // when jumped to drag mode, enter - fsm.when("* -> drag", function() {}); - fsm.when("drag -> *", function(exit, enter, reason) { - if (reason == "drag-finish") {} - }); - } - var downX, downY; - var MOUSE_HAS_DOWN = 0; - var MOUSE_HAS_UP = 1; - var BOUND_CHECK = 20; - var flag = MOUSE_HAS_UP; - var maxX, maxY, osx, osy, containerY; - var freeHorizen = false, freeVirtical = false; - var frame; - function move(direction, speed) { - if (!direction) { - freeHorizen = freeVirtical = false; - frame && kity.releaseFrame(frame); - frame = null; - return; - } - if (!frame) { - frame = kity.requestFrame(function(direction, speed, minder) { - return function(frame) { - switch (direction) { - case "left": - minder._viewDragger.move({ - x: -speed, - y: 0 - }, 0); - break; - - case "top": - minder._viewDragger.move({ - x: 0, - y: -speed - }, 0); - break; - - case "right": - minder._viewDragger.move({ - x: speed, - y: 0 - }, 0); - break; - - case "bottom": - minder._viewDragger.move({ - x: 0, - y: speed - }, 0); - break; - - default: - return; - } - frame.next(); - }; - }(direction, speed, minder)); - } - } - minder.on("mousedown", function(e) { - flag = MOUSE_HAS_DOWN; - var rect = minder.getPaper().container.getBoundingClientRect(); - downX = e.originEvent.clientX; - downY = e.originEvent.clientY; - containerY = rect.top; - maxX = rect.width; - maxY = rect.height; - }); - minder.on("mousemove", function(e) { - if (fsm.state() === "drag" && flag == MOUSE_HAS_DOWN && minder.getSelectedNode() && (Math.abs(downX - e.originEvent.clientX) > BOUND_CHECK || Math.abs(downY - e.originEvent.clientY) > BOUND_CHECK)) { - osx = e.originEvent.clientX; - osy = e.originEvent.clientY - containerY; - if (osx < BOUND_CHECK) { - move("right", BOUND_CHECK - osx); - } else if (osx > maxX - BOUND_CHECK) { - move("left", BOUND_CHECK + osx - maxX); - } else { - freeHorizen = true; - } - if (osy < BOUND_CHECK) { - move("bottom", osy); - } else if (osy > maxY - BOUND_CHECK) { - move("top", BOUND_CHECK + osy - maxY); - } else { - freeVirtical = true; - } - if (freeHorizen && freeVirtical) { - move(false); - } - } - if (fsm.state() !== "drag" && flag === MOUSE_HAS_DOWN && minder.getSelectedNode() && (Math.abs(downX - e.originEvent.clientX) > BOUND_CHECK || Math.abs(downY - e.originEvent.clientY) > BOUND_CHECK)) { - if (fsm.state() === "hotbox") { - hotbox.active(Hotbox.STATE_IDLE); - } - return fsm.jump("drag", "user-drag"); - } - }); - window.addEventListener("mouseup", function() { - flag = MOUSE_HAS_UP; - if (fsm.state() === "drag") { - move(false); - return fsm.jump("normal", "drag-finish"); - } - }, false); - } - return module.exports = DragRuntime; - } -}; - -//src/runtime/fsm.js -/** - * @fileOverview - * - * 编辑器状态机 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[9] = { - value: function(require, exports, module) { - var Debug = _p.r(19); - var debug = new Debug("fsm"); - function handlerConditionMatch(condition, when, exit, enter) { - if (condition.when != when) return false; - if (condition.enter != "*" && condition.enter != enter) return false; - if (condition.exit != "*" && condition.exit != exit) return; - return true; - } - function FSM(defaultState) { - var currentState = defaultState; - var BEFORE_ARROW = " - "; - var AFTER_ARROW = " -> "; - var handlers = []; - /** - * 状态跳转 - * - * 会通知所有的状态跳转监视器 - * - * @param {string} newState 新状态名称 - * @param {any} reason 跳转的原因,可以作为参数传递给跳转监视器 - */ - this.jump = function(newState, reason) { - if (!reason) throw new Error("Please tell fsm the reason to jump"); - var oldState = currentState; - var notify = [ oldState, newState ].concat([].slice.call(arguments, 1)); - var i, handler; - // 跳转前 - for (i = 0; i < handlers.length; i++) { - handler = handlers[i]; - if (handlerConditionMatch(handler.condition, "before", oldState, newState)) { - if (handler.apply(null, notify)) return; - } - } - currentState = newState; - debug.log("[{0}] {1} -> {2}", reason, oldState, newState); - // 跳转后 - for (i = 0; i < handlers.length; i++) { - handler = handlers[i]; - if (handlerConditionMatch(handler.condition, "after", oldState, newState)) { - handler.apply(null, notify); - } - } - return currentState; - }; - /** - * 返回当前状态 - * @return {string} - */ - this.state = function() { - return currentState; - }; - /** - * 添加状态跳转监视器 - * - * @param {string} condition - * 监视的时机 - * "* => *" (默认) - * - * @param {Function} handler - * 监视函数,当状态跳转的时候,会接收三个参数 - * * from - 跳转前的状态 - * * to - 跳转后的状态 - * * reason - 跳转的原因 - */ - this.when = function(condition, handler) { - if (arguments.length == 1) { - handler = condition; - condition = "* -> *"; - } - var when, resolved, exit, enter; - resolved = condition.split(BEFORE_ARROW); - if (resolved.length == 2) { - when = "before"; - } else { - resolved = condition.split(AFTER_ARROW); - if (resolved.length == 2) { - when = "after"; - } - } - if (!when) throw new Error("Illegal fsm condition: " + condition); - exit = resolved[0]; - enter = resolved[1]; - handler.condition = { - when: when, - exit: exit, - enter: enter - }; - handlers.push(handler); - }; - } - function FSMRumtime() { - this.fsm = new FSM("normal"); - } - return module.exports = FSMRumtime; - } -}; - -//src/runtime/history.js -/** - * @fileOverview - * - * 历史管理 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[10] = { - value: function(require, exports, module) { - var jsonDiff = _p.r(22); - function HistoryRuntime() { - var minder = this.minder; - var hotbox = this.hotbox; - var MAX_HISTORY = 100; - var lastSnap; - var patchLock; - var undoDiffs; - var redoDiffs; - function reset() { - undoDiffs = []; - redoDiffs = []; - lastSnap = minder.exportJson(); - } - function makeUndoDiff() { - var headSnap = minder.exportJson(); - var diff = jsonDiff(headSnap, lastSnap); - if (diff.length) { - undoDiffs.push(diff); - while (undoDiffs.length > MAX_HISTORY) { - undoDiffs.shift(); - } - lastSnap = headSnap; - return true; - } - } - function makeRedoDiff() { - var revertSnap = minder.exportJson(); - redoDiffs.push(jsonDiff(revertSnap, lastSnap)); - lastSnap = revertSnap; - } - function undo() { - patchLock = true; - var undoDiff = undoDiffs.pop(); - if (undoDiff) { - minder.applyPatches(undoDiff); - makeRedoDiff(); - } - patchLock = false; - } - function redo() { - patchLock = true; - var redoDiff = redoDiffs.pop(); - if (redoDiff) { - minder.applyPatches(redoDiff); - makeUndoDiff(); - } - patchLock = false; - } - function changed() { - if (patchLock) return; - if (makeUndoDiff()) redoDiffs = []; - } - function hasUndo() { - return !!undoDiffs.length; - } - function hasRedo() { - return !!redoDiffs.length; - } - function updateSelection(e) { - if (!patchLock) return; - var patch = e.patch; - switch (patch.express) { - case "node.add": - minder.select(patch.node.getChild(patch.index), true); - break; - - case "node.remove": - case "data.replace": - case "data.remove": - case "data.add": - minder.select(patch.node, true); - break; - } - } - this.history = { - reset: reset, - undo: undo, - redo: redo, - hasUndo: hasUndo, - hasRedo: hasRedo - }; - reset(); - minder.on("contentchange", changed); - minder.on("import", reset); - minder.on("patch", updateSelection); - var main = hotbox.state("main"); - main.button({ - position: "top", - label: "撤销", - key: "Ctrl + Z", - enable: hasUndo, - action: undo, - next: "idle" - }); - main.button({ - position: "top", - label: "重做", - key: "Ctrl + Y", - enable: hasRedo, - action: redo, - next: "idle" - }); - } - window.diff = jsonDiff; - return module.exports = HistoryRuntime; - } -}; - -//src/runtime/hotbox.js -/** - * @fileOverview - * - * 热盒 Runtime - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[11] = { - value: function(require, exports, module) { - var Hotbox = _p.r(2); - function HotboxRuntime() { - var fsm = this.fsm; - var minder = this.minder; - var receiver = this.receiver; - var container = this.container; - var hotbox = new Hotbox(container); - hotbox.setParentFSM(fsm); - fsm.when("normal -> hotbox", function(exit, enter, reason) { - var node = minder.getSelectedNode(); - var position; - if (node) { - var box = node.getRenderBox(); - position = { - x: box.cx, - y: box.cy - }; - } - hotbox.active("main", position); - }); - fsm.when("normal -> normal", function(exit, enter, reason, e) { - if (reason == "shortcut-handle") { - var handleResult = hotbox.dispatch(e); - if (handleResult) { - e.preventDefault(); - } else { - minder.dispatchKeyEvent(e); - } - } - }); - fsm.when("modal -> normal", function(exit, enter, reason, e) { - if (reason == "import-text-finish") { - receiver.element.focus(); - } - }); - this.hotbox = hotbox; - } - return module.exports = HotboxRuntime; - } -}; - -//src/runtime/input.js -/** - * @fileOverview - * - * 文本输入支持 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[12] = { - value: function(require, exports, module) { - _p.r(21); - var Debug = _p.r(19); - var debug = new Debug("input"); - function InputRuntime() { - var fsm = this.fsm; - var minder = this.minder; - var hotbox = this.hotbox; - var receiver = this.receiver; - var receiverElement = receiver.element; - var isGecko = window.kity.Browser.gecko; - // setup everything to go - setupReciverElement(); - setupFsm(); - setupHotbox(); - // expose editText() - this.editText = editText; - // listen the fsm changes, make action. - function setupFsm() { - // when jumped to input mode, enter - fsm.when("* -> input", enterInputMode); - // when exited, commit or exit depends on the exit reason - fsm.when("input -> *", function(exit, enter, reason) { - switch (reason) { - case "input-cancel": - return exitInputMode(); - - case "input-commit": - default: - return commitInputResult(); - } - }); - // lost focus to commit - receiver.onblur(function(e) { - if (fsm.state() == "input") { - fsm.jump("normal", "input-commit"); - } - }); - minder.on("beforemousedown", function() { - if (fsm.state() == "input") { - fsm.jump("normal", "input-commit"); - } - }); - minder.on("dblclick", function() { - if (minder.getSelectedNode()) { - editText(); - } - }); - } - // let the receiver follow the current selected node position - function setupReciverElement() { - if (debug.flaged) { - receiverElement.classList.add("debug"); - } - receiverElement.onmousedown = function(e) { - e.stopPropagation(); - }; - minder.on("layoutallfinish viewchange viewchanged selectionchange", function(e) { - // viewchange event is too frequenced, lazy it - if (e.type == "viewchange" && fsm.state() != "input") return; - updatePosition(); - }); - updatePosition(); - } - // edit entrance in hotbox - function setupHotbox() { - hotbox.state("main").button({ - position: "center", - label: "编辑", - key: "F2", - enable: function() { - return minder.queryCommandState("text") != -1; - }, - action: editText - }); - } - /** - * 增加对字体的鉴别,以保证用户在编辑状态ctrl/cmd + b/i所触发的加粗斜体与显示一致 - * @editor Naixor - * @Date 2015-12-2 - */ - // edit for the selected node - function editText() { - var node = minder.getSelectedNode(); - if (!node) { - return; - } - var textContainer = receiverElement; - receiverElement.innerText = ""; - if (node.getData("font-weight") === "bold") { - var b = document.createElement("b"); - textContainer.appendChild(b); - textContainer = b; - } - if (node.getData("font-style") === "italic") { - var i = document.createElement("i"); - textContainer.appendChild(i); - textContainer = i; - } - textContainer.innerText = minder.queryCommandValue("text"); - if (isGecko) { - receiver.fixFFCaretDisappeared(); - } - fsm.jump("input", "input-request"); - receiver.selectAll(); - } - /** - * 增加对字体的鉴别,以保证用户在编辑状态ctrl/cmd + b/i所触发的加粗斜体与显示一致 - * @editor Naixor - * @Date 2015-12-2 - */ - function enterInputMode() { - var node = minder.getSelectedNode(); - if (node) { - var fontSize = node.getData("font-size") || node.getStyle("font-size"); - receiverElement.style.fontSize = fontSize + "px"; - receiverElement.style.minWidth = 0; - receiverElement.style.minWidth = receiverElement.clientWidth + "px"; - receiverElement.style.fontWeight = node.getData("font-weight") || ""; - receiverElement.style.fontStyle = node.getData("font-style") || ""; - receiverElement.classList.add("input"); - receiverElement.focus(); - } - } - /** - * 按照文本提交操作处理 - * @Desc: 从其他节点复制文字到另一个节点时部分浏览器(chrome)会自动包裹一个span标签,这样试用一下逻辑出来的就不是text节点二是span节点因此导致undefined的情况发生 - * @Warning: 下方代码使用[].slice.call来将HTMLDomCollection处理成为Array,ie8及以下会有问题 - * @Editor: Naixor - * @Date: 2015.9.16 - */ - function commitInputText(textNodes) { - var text = ""; - var TAB_CHAR = " ", ENTER_CHAR = "\n", STR_CHECK = /\S/, SPACE_CHAR = " ", // 针对FF,SG,BD,LB,IE等浏览器下SPACE的charCode存在为32和160的情况做处理 - SPACE_CHAR_REGEXP = new RegExp("( |" + String.fromCharCode(160) + ")"), BR = document.createElement("br"); - var isBold = false, isItalic = false; - for (var str, _divChildNodes, space_l, space_num, tab_num, i = 0, l = textNodes.length; i < l; i++) { - str = textNodes[i]; - switch (Object.prototype.toString.call(str)) { - // 正常情况处理 - case "[object HTMLBRElement]": - { - text += ENTER_CHAR; - break; - } - - case "[object Text]": - { - // SG下会莫名其妙的加上 影响后续判断,干掉! - /** - * FF下的wholeText会导致如下问题: - * |123| -> 在一个节点中输入一段字符,此时TextNode为[#Text 123] - * 提交并重新编辑,在后面追加几个字符 - * |123abc| -> 此时123为一个TextNode为[#Text 123, #Text abc],但是对这两个任意取值wholeText均为全部内容123abc - * 上述BUG仅存在在FF中,故将wholeText更改为textContent - */ - str = str.textContent.replace(" ", " "); - if (!STR_CHECK.test(str)) { - space_l = str.length; - while (space_l--) { - if (SPACE_CHAR_REGEXP.test(str[space_l])) { - text += SPACE_CHAR; - } else if (str[space_l] === TAB_CHAR) { - text += TAB_CHAR; - } - } - } else { - text += str; - } - break; - } - - // ctrl + b/i 会给字体加上/标签来实现黑体和斜体 - case "[object HTMLElement]": - { - switch (str.nodeName) { - case "B": - { - isBold = true; - break; - } - - case "I": - { - isItalic = true; - break; - } - - default: - {} - } - [].splice.apply(textNodes, [ i, 1 ].concat([].slice.call(str.childNodes))); - l = textNodes.length; - i--; - break; - } - - // 被增加span标签的情况会被处理成正常情况并会推交给上面处理 - case "[object HTMLSpanElement]": - { - [].splice.apply(textNodes, [ i, 1 ].concat([].slice.call(str.childNodes))); - l = textNodes.length; - i--; - break; - } - - // 若标签为image标签,则判断是否为合法url,是将其加载进来 - case "[object HTMLImageElement]": - { - if (str.src) { - if (/http(|s):\/\//.test(str.src)) { - minder.execCommand("Image", str.src, str.alt); - } else {} - } - break; - } - - // 被增加div标签的情况会被处理成正常情况并会推交给上面处理 - case "[object HTMLDivElement]": - { - _divChildNodes = []; - for (var di = 0, l = str.childNodes.length; di < l; di++) { - _divChildNodes.push(str.childNodes[di]); - } - _divChildNodes.push(BR); - [].splice.apply(textNodes, [ i, 1 ].concat(_divChildNodes)); - l = textNodes.length; - i--; - break; - } - - default: - { - if (str && str.childNodes.length) { - _divChildNodes = []; - for (var di = 0, l = str.childNodes.length; di < l; di++) { - _divChildNodes.push(str.childNodes[di]); - } - _divChildNodes.push(BR); - [].splice.apply(textNodes, [ i, 1 ].concat(_divChildNodes)); - l = textNodes.length; - i--; - } else { - if (str && str.textContent !== undefined) { - text += str.textContent; - } else { - text += ""; - } - } - } - } - } - text = text.replace(/^\n*|\n*$/g, ""); - text = text.replace(new RegExp("(\n|\r|\n\r)( |" + String.fromCharCode(160) + "){4}", "g"), "$1 "); - minder.getSelectedNode().setText(text); - if (isBold) { - minder.queryCommandState("bold") || minder.execCommand("bold"); - } else { - minder.queryCommandState("bold") && minder.execCommand("bold"); - } - if (isItalic) { - minder.queryCommandState("italic") || minder.execCommand("italic"); - } else { - minder.queryCommandState("italic") && minder.execCommand("italic"); - } - exitInputMode(); - return text; - } - /** - * 判断节点的文本信息是否是 - * @Desc: 从其他节点复制文字到另一个节点时部分浏览器(chrome)会自动包裹一个span标签,这样使用以下逻辑出来的就不是text节点二是span节点因此导致undefined的情况发生 - * @Notice: 此处逻辑应该拆分到 kityminder-core/core/data中去,单独增加一个对某个节点importJson的事件 - * @Editor: Naixor - * @Date: 2015.9.16 - */ - function commitInputNode(node, text) { - try { - minder.decodeData("text", text).then(function(json) { - function importText(node, json, minder) { - var data = json.data; - node.setText(data.text || ""); - var childrenTreeData = json.children || []; - for (var i = 0; i < childrenTreeData.length; i++) { - var childNode = minder.createNode(null, node); - importText(childNode, childrenTreeData[i], minder); - } - return node; - } - importText(node, json, minder); - minder.fire("contentchange"); - minder.getRoot().renderTree(); - minder.layout(300); - }); - } catch (e) { - minder.fire("contentchange"); - minder.getRoot().renderTree(); - // 无法被转换成脑图节点则不处理 - if (e.toString() !== "Error: Invalid local format") { - throw e; - } - } - } - function commitInputResult() { - /** - * @Desc: 进行如下处理: - * 根据用户的输入判断是否生成新的节点 - * fix #83 https://github.com/fex-team/kityminder-editor/issues/83 - * @Editor: Naixor - * @Date: 2015.9.16 - */ - var textNodes = [].slice.call(receiverElement.childNodes); - /** - * @Desc: 增加setTimeout的原因:ie下receiverElement.innerHTML=""会导致后 - * 面commitInputText中使用textContent报错,不要问我什么原因! - * @Editor: Naixor - * @Date: 2015.12.14 - */ - setTimeout(function() { - // 解决过大内容导致SVG窜位问题 - receiverElement.innerHTML = ""; - }, 0); - var node = minder.getSelectedNode(); - textNodes = commitInputText(textNodes); - commitInputNode(node, textNodes); - if (node.type == "root") { - var rootText = minder.getRoot().getText(); - minder.fire("initChangeRoot", { - text: rootText - }); - } - } - function exitInputMode() { - receiverElement.classList.remove("input"); - receiver.selectAll(); - } - function updatePosition() { - var planed = updatePosition; - var focusNode = minder.getSelectedNode(); - if (!focusNode) return; - if (!planed.timer) { - planed.timer = setTimeout(function() { - var box = focusNode.getRenderBox("TextRenderer"); - receiverElement.style.left = Math.round(box.x) + "px"; - receiverElement.style.top = (debug.flaged ? Math.round(box.bottom + 30) : Math.round(box.y)) + "px"; - //receiverElement.focus(); - planed.timer = 0; - }); - } - } - } - return module.exports = InputRuntime; - } -}; - -//src/runtime/jumping.js -/** - * @fileOverview - * - * 根据按键控制状态机的跳转 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[13] = { - value: function(require, exports, module) { - var Hotbox = _p.r(2); - // Nice: http://unixpapa.com/js/key.html - function isIntendToInput(e) { - if (e.ctrlKey || e.metaKey || e.altKey) return false; - // a-zA-Z - if (e.keyCode >= 65 && e.keyCode <= 90) return true; - // 0-9 以及其上面的符号 - if (e.keyCode >= 48 && e.keyCode <= 57) return true; - // 小键盘区域 (除回车外) - if (e.keyCode != 108 && e.keyCode >= 96 && e.keyCode <= 111) return true; - // 小键盘区域 (除回车外) - // @yinheli from pull request - if (e.keyCode != 108 && e.keyCode >= 96 && e.keyCode <= 111) return true; - // 输入法 - if (e.keyCode == 229 || e.keyCode === 0) return true; - return false; - } - /** - * @Desc: 下方使用receiver.enable()和receiver.disable()通过 - * 修改div contenteditable属性的hack来解决开启热核后依然无法屏蔽浏览器输入的bug; - * 特别: win下FF对于此种情况必须要先blur在focus才能解决,但是由于这样做会导致用户 - * 输入法状态丢失,因此对FF暂不做处理 - * @Editor: Naixor - * @Date: 2015.09.14 - */ - function JumpingRuntime() { - var fsm = this.fsm; - var minder = this.minder; - var receiver = this.receiver; - var container = this.container; - var receiverElement = receiver.element; - var hotbox = this.hotbox; - // normal -> * - receiver.listen("normal", function(e) { - // 为了防止处理进入edit模式而丢失处理的首字母,此时receiver必须为enable - receiver.enable(); - // normal -> hotbox - if (e.is("Space")) { - e.preventDefault(); - // safari下Space触发hotbox,然而这时Space已在receiver上留下作案痕迹,因此抹掉 - if (kity.Browser.safari) { - receiverElement.innerHTML = ""; - } - return fsm.jump("hotbox", "space-trigger"); - } - /** - * check - * @editor Naixor - * @Date 2015-12-2 - */ - switch (e.type) { - case "keydown": - { - if (minder.getSelectedNode()) { - if (isIntendToInput(e)) { - return fsm.jump("input", "user-input"); - } - } else { - receiverElement.innerHTML = ""; - } - // normal -> normal shortcut - fsm.jump("normal", "shortcut-handle", e); - break; - } - - case "keyup": - { - break; - } - - default: - {} - } - }); - // hotbox -> normal - receiver.listen("hotbox", function(e) { - receiver.disable(); - e.preventDefault(); - var handleResult = hotbox.dispatch(e); - if (hotbox.state() == Hotbox.STATE_IDLE && fsm.state() == "hotbox") { - return fsm.jump("normal", "hotbox-idle"); - } - }); - // input => normal - receiver.listen("input", function(e) { - receiver.enable(); - if (e.type == "keydown") { - if (e.is("Enter")) { - e.preventDefault(); - return fsm.jump("normal", "input-commit"); - } - if (e.is("Esc")) { - e.preventDefault(); - return fsm.jump("normal", "input-cancel"); - } - if (e.is("Tab") || e.is("Shift + Tab")) { - e.preventDefault(); - } - } else if (e.type == "keyup" && e.is("Esc")) { - e.preventDefault(); - return fsm.jump("normal", "input-cancel"); - } - }); - ////////////////////////////////////////////// - /// 右键呼出热盒 - /// 判断的标准是:按下的位置和结束的位置一致 - ////////////////////////////////////////////// - var downX, downY; - var MOUSE_RB = 2; - // 右键 - container.addEventListener("mousedown", function(e) { - if (e.button == MOUSE_RB) { - e.preventDefault(); - } - if (fsm.state() == "hotbox") { - hotbox.active(Hotbox.STATE_IDLE); - fsm.jump("normal", "blur"); - } else if (fsm.state() == "normal" && e.button == MOUSE_RB) { - downX = e.clientX; - downY = e.clientY; - } - }, false); - container.addEventListener("mousewheel", function(e) { - if (fsm.state() == "hotbox") { - hotbox.active(Hotbox.STATE_IDLE); - fsm.jump("normal", "mousemove-blur"); - } - }, false); - container.addEventListener("contextmenu", function(e) { - e.preventDefault(); - }); - container.addEventListener("mouseup", function(e) { - if (fsm.state() != "normal") { - return; - } - if (e.button != MOUSE_RB || e.clientX != downX || e.clientY != downY) { - return; - } - if (!minder.getSelectedNode()) { - return; - } - fsm.jump("hotbox", "content-menu"); - }, false); - // 阻止热盒事件冒泡,在热盒正确执行前导致热盒关闭 - hotbox.$element.addEventListener("mousedown", function(e) { - e.stopPropagation(); - }); - } - return module.exports = JumpingRuntime; - } -}; - -//src/runtime/minder.js -/** - * @fileOverview - * - * 脑图示例运行时 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[14] = { - value: function(require, exports, module) { - var Minder = _p.r(4); - function MinderRuntime() { - // 不使用 kityminder 的按键处理,由 ReceiverRuntime 统一处理 - var minder = new Minder({ - enableKeyReceiver: false, - enableAnimation: true - }); - // 渲染,初始化 - minder.renderTo(this.selector); - minder.setTheme(null); - minder.select(minder.getRoot(), true); - minder.execCommand("text", "中心主题"); - // 导出给其它 Runtime 使用 - this.minder = minder; - } - return module.exports = MinderRuntime; - } -}; - -//src/runtime/node.js -_p[15] = { - value: function(require, exports, module) { - function NodeRuntime() { - var runtime = this; - var minder = this.minder; - var hotbox = this.hotbox; - var fsm = this.fsm; - var main = hotbox.state("main"); - var buttons = [ "前移:Alt+Up:ArrangeUp", "下级:Tab|Insert:AppendChildNode", "同级:Enter:AppendSiblingNode", "后移:Alt+Down:ArrangeDown", "删除:Delete|Backspace:RemoveNode", "上级:Shift+Tab|Shift+Insert:AppendParentNode" ]; - var AppendLock = 0; - buttons.forEach(function(button) { - var parts = button.split(":"); - var label = parts.shift(); - var key = parts.shift(); - var command = parts.shift(); - main.button({ - position: "ring", - label: label, - key: key, - action: function() { - if (command.indexOf("Append") === 0) { - AppendLock++; - minder.execCommand(command, "分支主题"); - // provide in input runtime - function afterAppend() { - if (!--AppendLock) { - runtime.editText(); - } - minder.off("layoutallfinish", afterAppend); - } - minder.on("layoutallfinish", afterAppend); - } else { - minder.execCommand(command); - fsm.jump("normal", "command-executed"); - } - }, - enable: function() { - return minder.queryCommandState(command) != -1; - } - }); - }); - main.button({ - position: "bottom", - label: "导入节点", - key: "Alt + V", - enable: function() { - var selectedNodes = minder.getSelectedNodes(); - return selectedNodes.length == 1; - }, - action: importNodeData, - next: "idle" - }); - main.button({ - position: "bottom", - label: "导出节点", - key: "Alt + C", - enable: function() { - var selectedNodes = minder.getSelectedNodes(); - return selectedNodes.length == 1; - }, - action: exportNodeData, - next: "idle" - }); - function importNodeData() { - minder.fire("importNodeData"); - } - function exportNodeData() { - minder.fire("exportNodeData"); - } - } - return module.exports = NodeRuntime; - } -}; - -//src/runtime/priority.js -_p[16] = { - value: function(require, exports, module) { - function PriorityRuntime() { - var minder = this.minder; - var hotbox = this.hotbox; - var main = hotbox.state("main"); - main.button({ - position: "top", - label: "优先级", - key: "P", - next: "priority", - enable: function() { - return minder.queryCommandState("priority") != -1; - } - }); - var priority = hotbox.state("priority"); - "123456789".replace(/./g, function(p) { - priority.button({ - position: "ring", - label: "P" + p, - key: p, - action: function() { - minder.execCommand("Priority", p); - } - }); - }); - priority.button({ - position: "center", - label: "移除", - key: "Del", - action: function() { - minder.execCommand("Priority", 0); - } - }); - priority.button({ - position: "top", - label: "返回", - key: "esc", - next: "back" - }); - } - return module.exports = PriorityRuntime; - } -}; - -//src/runtime/progress.js -_p[17] = { - value: function(require, exports, module) { - function ProgressRuntime() { - var minder = this.minder; - var hotbox = this.hotbox; - var main = hotbox.state("main"); - main.button({ - position: "top", - label: "进度", - key: "G", - next: "progress", - enable: function() { - return minder.queryCommandState("progress") != -1; - } - }); - var progress = hotbox.state("progress"); - "012345678".replace(/./g, function(p) { - progress.button({ - position: "ring", - label: "G" + p, - key: p, - action: function() { - minder.execCommand("Progress", parseInt(p) + 1); - } - }); - }); - progress.button({ - position: "center", - label: "移除", - key: "Del", - action: function() { - minder.execCommand("Progress", 0); - } - }); - progress.button({ - position: "top", - label: "返回", - key: "esc", - next: "back" - }); - } - return module.exports = ProgressRuntime; - } -}; - -//src/runtime/receiver.js -/** - * @fileOverview - * - * 键盘事件接收/分发器 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[18] = { - value: function(require, exports, module) { - var key = _p.r(23); - var hotbox = _p.r(2); - function ReceiverRuntime() { - var fsm = this.fsm; - var minder = this.minder; - var me = this; - // 接收事件的 div - var element = document.createElement("div"); - element.contentEditable = true; - /** - * @Desc: 增加tabindex属性使得element的contenteditable不管是trur还是false都能有focus和blur事件 - * @Editor: Naixor - * @Date: 2015.09.14 - */ - element.setAttribute("tabindex", -1); - element.classList.add("receiver"); - element.onkeydown = element.onkeypress = element.onkeyup = dispatchKeyEvent; - this.container.appendChild(element); - // receiver 对象 - var receiver = { - element: element, - selectAll: function() { - // 保证有被选中的 - if (!element.innerHTML) element.innerHTML = " "; - var range = document.createRange(); - var selection = window.getSelection(); - range.selectNodeContents(element); - selection.removeAllRanges(); - selection.addRange(range); - element.focus(); - }, - /** - * @Desc: 增加enable和disable方法用于解决热核态的输入法屏蔽问题 - * @Editor: Naixor - * @Date: 2015.09.14 - */ - enable: function() { - element.setAttribute("contenteditable", true); - }, - disable: function() { - element.setAttribute("contenteditable", false); - }, - /** - * @Desc: hack FF下div contenteditable的光标丢失BUG - * @Editor: Naixor - * @Date: 2015.10.15 - */ - fixFFCaretDisappeared: function() { - element.removeAttribute("contenteditable"); - element.setAttribute("contenteditable", "true"); - element.blur(); - element.focus(); - }, - /** - * 以此事件代替通过mouse事件来判断receiver丢失焦点的事件 - * @editor Naixor - * @Date 2015-12-2 - */ - onblur: function(handler) { - element.onblur = handler; - } - }; - receiver.selectAll(); - minder.on("beforemousedown", receiver.selectAll); - minder.on("receiverfocus", receiver.selectAll); - minder.on("readonly", function() { - // 屏蔽minder的事件接受,删除receiver和hotbox - minder.disable(); - editor.receiver.element.parentElement.removeChild(editor.receiver.element); - editor.hotbox.$container.removeChild(editor.hotbox.$element); - }); - // 侦听器,接收到的事件会派发给所有侦听器 - var listeners = []; - // 侦听指定状态下的事件,如果不传 state,侦听所有状态 - receiver.listen = function(state, listener) { - if (arguments.length == 1) { - listener = state; - state = "*"; - } - listener.notifyState = state; - listeners.push(listener); - }; - function dispatchKeyEvent(e) { - e.is = function(keyExpression) { - var subs = keyExpression.split("|"); - for (var i = 0; i < subs.length; i++) { - if (key.is(this, subs[i])) return true; - } - return false; - }; - var listener, jumpState; - for (var i = 0; i < listeners.length; i++) { - listener = listeners[i]; - // 忽略不在侦听状态的侦听器 - if (listener.notifyState != "*" && listener.notifyState != fsm.state()) { - continue; - } - /** - * - * 对于所有的侦听器,只允许一种处理方式:跳转状态。 - * 如果侦听器确定要跳转,则返回要跳转的状态。 - * 每个事件只允许一个侦听器进行状态跳转 - * 跳转动作由侦听器自行完成(因为可能需要在跳转时传递 reason),返回跳转结果即可。 - * 比如: - * - * ```js - * receiver.listen('normal', function(e) { - * if (isSomeReasonForJumpState(e)) { - * return fsm.jump('newstate', e); - * } - * }); - * ``` - */ - if (listener.call(null, e)) { - return; - } - } - } - this.receiver = receiver; - } - return module.exports = ReceiverRuntime; - } -}; - -//src/tool/debug.js -/** - * @fileOverview - * - * 支持各种调试后门 - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[19] = { - value: function(require, exports, module) { - var format = _p.r(20); - function noop() {} - function stringHash(str) { - var hash = 0; - for (var i = 0; i < str.length; i++) { - hash += str.charCodeAt(i); - } - return hash; - } - /* global console */ - function Debug(flag) { - var debugMode = this.flaged = window.location.search.indexOf(flag) != -1; - if (debugMode) { - var h = stringHash(flag) % 360; - var flagStyle = format("background: hsl({0}, 50%, 80%); " + "color: hsl({0}, 100%, 30%); " + "padding: 2px 3px; " + "margin: 1px 3px 0 0;" + "border-radius: 2px;", h); - var textStyle = "background: none; color: black;"; - this.log = function() { - var output = format.apply(null, arguments); - console.log(format("%c{0}%c{1}", flag, output), flagStyle, textStyle); - }; - } else { - this.log = noop; - } - } - return module.exports = Debug; - } -}; - -//src/tool/format.js -_p[20] = { - value: function(require, exports, module) { - function format(template, args) { - if (typeof args != "object") { - args = [].slice.call(arguments, 1); - } - return String(template).replace(/\{(\w+)\}/gi, function(match, $key) { - return args[$key] || $key; - }); - } - return module.exports = format; - } -}; - -//src/tool/innertext.js -/** - * @fileOverview - * - * innerText polyfill - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[21] = { - value: function(require, exports, module) { - if (!("innerText" in document.createElement("a")) && "getSelection" in window) { - HTMLElement.prototype.__defineGetter__("innerText", function() { - var selection = window.getSelection(), ranges = [], str, i; - // Save existing selections. - for (i = 0; i < selection.rangeCount; i++) { - ranges[i] = selection.getRangeAt(i); - } - // Deselect everything. - selection.removeAllRanges(); - // Select `el` and all child nodes. - // 'this' is the element .innerText got called on - selection.selectAllChildren(this); - // Get the string representation of the selected nodes. - str = selection.toString(); - // Deselect everything. Again. - selection.removeAllRanges(); - // Restore all formerly existing selections. - for (i = 0; i < ranges.length; i++) { - selection.addRange(ranges[i]); - } - // Oh look, this is what we wanted. - // String representation of the element, close to as rendered. - return str; - }); - HTMLElement.prototype.__defineSetter__("innerText", function(text) { - /** - * @Desc: 解决FireFox节点内容删除后text为null,出现报错的问题 - * @Editor: Naixor - * @Date: 2015.9.16 - */ - this.innerHTML = (text || "").replace(//g, ">").replace(/\n/g, "
    "); - }); - } - } -}; - -//src/tool/jsondiff.js -/** - * @fileOverview - * - * - * - * @author: techird - * @copyright: Baidu FEX, 2014 - */ -_p[22] = { - value: function(require, exports, module) { - /*! - * https://github.com/Starcounter-Jack/Fast-JSON-Patch - * json-patch-duplex.js 0.5.0 - * (c) 2013 Joachim Wester - * MIT license - */ - var _objectKeys = function() { - if (Object.keys) return Object.keys; - return function(o) { - var keys = []; - for (var i in o) { - if (o.hasOwnProperty(i)) { - keys.push(i); - } - } - return keys; - }; - }(); - function escapePathComponent(str) { - if (str.indexOf("/") === -1 && str.indexOf("~") === -1) return str; - return str.replace(/~/g, "~0").replace(/\//g, "~1"); - } - function deepClone(obj) { - if (typeof obj === "object") { - return JSON.parse(JSON.stringify(obj)); - } else { - return obj; - } - } - // Dirty check if obj is different from mirror, generate patches and update mirror - function _generate(mirror, obj, patches, path) { - var newKeys = _objectKeys(obj); - var oldKeys = _objectKeys(mirror); - var changed = false; - var deleted = false; - for (var t = oldKeys.length - 1; t >= 0; t--) { - var key = oldKeys[t]; - var oldVal = mirror[key]; - if (obj.hasOwnProperty(key)) { - var newVal = obj[key]; - if (typeof oldVal == "object" && oldVal != null && typeof newVal == "object" && newVal != null) { - _generate(oldVal, newVal, patches, path + "/" + escapePathComponent(key)); - } else { - if (oldVal != newVal) { - changed = true; - patches.push({ - op: "replace", - path: path + "/" + escapePathComponent(key), - value: deepClone(newVal) - }); - } - } - } else { - patches.push({ - op: "remove", - path: path + "/" + escapePathComponent(key) - }); - deleted = true; - } - } - if (!deleted && newKeys.length == oldKeys.length) { - return; - } - for (var t = 0; t < newKeys.length; t++) { - var key = newKeys[t]; - if (!mirror.hasOwnProperty(key)) { - patches.push({ - op: "add", - path: path + "/" + escapePathComponent(key), - value: deepClone(obj[key]) - }); - } - } - } - function compare(tree1, tree2) { - var patches = []; - _generate(tree1, tree2, patches, ""); - return patches; - } - return module.exports = compare; - } -}; - -//src/tool/key.js -_p[23] = { - value: function(require, exports, module) { - var keymap = _p.r(24); - var CTRL_MASK = 4096; - var ALT_MASK = 8192; - var SHIFT_MASK = 16384; - function hash(unknown) { - if (typeof unknown == "string") { - return hashKeyExpression(unknown); - } - return hashKeyEvent(unknown); - } - function is(a, b) { - return a && b && hash(a) == hash(b); - } - exports.hash = hash; - exports.is = is; - function hashKeyEvent(keyEvent) { - var hashCode = 0; - if (keyEvent.ctrlKey || keyEvent.metaKey) { - hashCode |= CTRL_MASK; - } - if (keyEvent.altKey) { - hashCode |= ALT_MASK; - } - if (keyEvent.shiftKey) { - hashCode |= SHIFT_MASK; - } - // Shift, Control, Alt KeyCode ignored. - if ([ 16, 17, 18, 91 ].indexOf(keyEvent.keyCode) === -1) { - /** - * 解决浏览器输入法状态下对keyDown的keyCode判断不准确的问题,使用keyIdentifier, - * 可以解决chrome和safari下的各种问题,其他浏览器依旧有问题,然而那并不影响我们对特 - * 需判断的按键进行判断(比如Space在safari输入法态下就是229,其他的就不是) - * @editor Naixor - * @Date 2015-12-2 - */ - if (keyEvent.keyCode === 229 && keyEvent.keyIdentifier) { - return hashCode |= parseInt(keyEvent.keyIdentifier.substr(2), 16); - } - hashCode |= keyEvent.keyCode; - } - return hashCode; - } - function hashKeyExpression(keyExpression) { - var hashCode = 0; - keyExpression.toLowerCase().split(/\s*\+\s*/).forEach(function(name) { - switch (name) { - case "ctrl": - case "cmd": - hashCode |= CTRL_MASK; - break; - - case "alt": - hashCode |= ALT_MASK; - break; - - case "shift": - hashCode |= SHIFT_MASK; - break; - - default: - hashCode |= keymap[name]; - } - }); - return hashCode; - } - } -}; - -//src/tool/keymap.js -_p[24] = { - value: function(require, exports, module) { - var keymap = { - Shift: 16, - Control: 17, - Alt: 18, - CapsLock: 20, - BackSpace: 8, - Tab: 9, - Enter: 13, - Esc: 27, - Space: 32, - PageUp: 33, - PageDown: 34, - End: 35, - Home: 36, - Insert: 45, - Left: 37, - Up: 38, - Right: 39, - Down: 40, - Direction: { - 37: 1, - 38: 1, - 39: 1, - 40: 1 - }, - Del: 46, - NumLock: 144, - Cmd: 91, - CmdFF: 224, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123, - "`": 192, - "=": 187, - "-": 189, - "/": 191, - ".": 190 - }; - // 小写适配 - for (var key in keymap) { - if (keymap.hasOwnProperty(key)) { - keymap[key.toLowerCase()] = keymap[key]; - } - } - var aKeyCode = 65; - var aCharCode = "a".charCodeAt(0); - // letters - "abcdefghijklmnopqrstuvwxyz".split("").forEach(function(letter) { - keymap[letter] = aKeyCode + (letter.charCodeAt(0) - aCharCode); - }); - // numbers - var n = 9; - do { - keymap[n.toString()] = n + 48; - } while (--n); - module.exports = keymap; - } -}; - -var moduleMapping = { - "expose-editor": 1 -}; - -function use(name) { - _p.r([ moduleMapping[name] ]); -} -angular.module('kityminderEditor', [ - 'ui.bootstrap', - 'ui.codemirror', - 'ui.colorpicker' -]) - .config(["$sceDelegateProvider", function($sceDelegateProvider) { - $sceDelegateProvider.resourceUrlWhitelist([ - // Allow same origin resource loads. - 'self', - // Allow loading from our assets domain. Notice the difference between * and **. - 'http://agroup.baidu.com:8910/**', - 'http://cq01-fe-rdtest01.vm.baidu.com:8910/**', - 'http://agroup.baidu.com:8911/**' - ]); - }]); -angular.module('kityminderEditor').run(['$templateCache', function($templateCache) { - 'use strict'; - - $templateCache.put('ui/directive/appendNode/appendNode.html', - "
    {{ 'appendchildnode' | lang:'ui/command' }}
    {{ 'appendparentnode' | lang:'ui/command' }}
    {{ 'appendsiblingnode' | lang:'ui/command' }}
    " - ); - - - $templateCache.put('ui/directive/arrange/arrange.html', - "
    {{ 'arrangeup' | lang:'ui/command' }}
    {{ 'arrangedown' | lang:'ui/command' }}
    " - ); - - - $templateCache.put('ui/directive/colorPanel/colorPanel.html', - "
    " - ); - - - $templateCache.put('ui/directive/expandLevel/expandLevel.html', - "
    " - ); - - - $templateCache.put('ui/directive/fontOperator/fontOperator.html', - "" - ); - - - $templateCache.put('ui/directive/hyperLink/hyperLink.html', - "
    " - ); - - - $templateCache.put('ui/directive/imageBtn/imageBtn.html', - "
    " - ); - - - $templateCache.put('ui/directive/kityminderEditor/kityminderEditor.html', - "
    " - ); - - - $templateCache.put('ui/directive/kityminderViewer/kityminderViewer.html', - "
    " - ); - - - $templateCache.put('ui/directive/layout/layout.html', - "" - ); - - - $templateCache.put('ui/directive/navigator/navigator.html', - "
    " - ); - - - $templateCache.put('ui/directive/noteBtn/noteBtn.html', - "
    " - ); - - - $templateCache.put('ui/directive/noteEditor/noteEditor.html', - "

    请选择节点编辑备注

    " - ); - - - $templateCache.put('ui/directive/notePreviewer/notePreviewer.html', - "
    " - ); - - - $templateCache.put('ui/directive/operation/operation.html', - "
    {{ 'editnode' | lang:'ui/command' }}
    {{ 'removenode' | lang:'ui/command' }}
    " - ); - - - $templateCache.put('ui/directive/priorityEditor/priorityEditor.html', - "
    " - ); - - - $templateCache.put('ui/directive/progressEditor/progressEditor.html', - "
    " - ); - - - $templateCache.put('ui/directive/resourceEditor/resourceEditor.html', - "
    " - ); - - - $templateCache.put('ui/directive/searchBox/searchBox.html', - "
    " - ); - - - $templateCache.put('ui/directive/searchBtn/searchBtn.html', - "
    " - ); - - - $templateCache.put('ui/directive/selectAll/selectAll.html', - "
    " - ); - - - $templateCache.put('ui/directive/styleOperator/styleOperator.html', - "" - ); - - - $templateCache.put('ui/directive/templateList/templateList.html', - "
    " - ); - - - $templateCache.put('ui/directive/themeList/themeList.html', - "" - ); - - - $templateCache.put('ui/directive/topTab/topTab.html', - "" - ); - - - $templateCache.put('ui/directive/undoRedo/undoRedo.html', - "
    " - ); - - - $templateCache.put('ui/dialog/hyperlink/hyperlink.tpl.html', - "

    链接

    " - ); - - - $templateCache.put('ui/dialog/imExportNode/imExportNode.tpl.html', - "

    {{ title }}

    " - ); - - - $templateCache.put('ui/dialog/image/image.tpl.html', - "

    图片

    • \"{{ {{ image.title }}
    \"{{
    \"{{
    " - ); - - $templateCache.put('ui/directive/helpBtn/helpBtn.html', - "
    " - ); - -}]); - -angular.module('kityminderEditor').service('commandBinder', function() { - return { - bind: function(minder, command, scope) { - - minder.on('interactchange', function() { - scope.commandDisabled = minder.queryCommandState(command) === -1; - scope.commandValue = minder.queryCommandValue(command); - scope.$apply(); - }); - } - }; -}); -angular.module('kityminderEditor') - .provider('config', function() { - - this.config = { - // 右侧面板最小宽度 - ctrlPanelMin: 250, - - // 右侧面板宽度 - ctrlPanelWidth: parseInt(window.localStorage.__dev_minder_ctrlPanelWidth) || 250, - - // 分割线宽度 - dividerWidth: 3, - - // 默认语言 - defaultLang: 'zh-cn', - - // 放大缩小比例 - zoom: [10, 20, 30, 50, 80, 100, 120, 150, 200], - - // 图片上传接口 - imageUpload: 'server/imageUpload.php' - }; - - this.set = function(key, value) { - var supported = Object.keys(this.config); - var configObj = {}; - - // 支持全配置 - if (typeof key === 'object') { - configObj = key; - } - else { - configObj[key] = value; - } - - for (var i in configObj) { - if (configObj.hasOwnProperty(i) && supported.indexOf(i) !== -1) { - this.config[i] = configObj[i]; - } - else { - console.error('Unsupported config key: ', key, ', please choose in :', supported.join(', ')); - return false; - } - } - - return true; - }; - - this.$get = function () { - var me = this; - - return { - get: function (key) { - if (arguments.length === 0) { - return me.config; - } - - if (me.config.hasOwnProperty(key)) { - return me.config[key]; - } - - console.warn('Missing config key pair for : ', key); - return ''; - } - - }; - } - }); -angular.module('kityminderEditor') - .service('lang.zh-cn', function() { - return { - 'zh-cn': { - 'template': { - 'default': '思维导图', - 'tianpan': '天盘图', - 'structure': '组织结构图', - 'filetree': '目录组织图', - 'right': '逻辑结构图', - 'fish-bone': '鱼骨头图' - }, - 'theme': { - 'classic': '脑图经典', - 'classic-compact': '紧凑经典', - 'snow': '温柔冷光', - 'snow-compact': '紧凑冷光', - 'fish': '鱼骨图', - 'wire': '线框', - 'fresh-red': '清新红', - 'fresh-soil': '泥土黄', - 'fresh-green': '文艺绿', - 'fresh-blue': '天空蓝', - 'fresh-purple': '浪漫紫', - 'fresh-pink': '脑残粉', - 'fresh-red-compat': '紧凑红', - 'fresh-soil-compat': '紧凑黄', - 'fresh-green-compat': '紧凑绿', - 'fresh-blue-compat': '紧凑蓝', - 'fresh-purple-compat': '紧凑紫', - 'fresh-pink-compat': '紧凑粉', - 'tianpan':'经典天盘', - 'tianpan-compact': '紧凑天盘' - }, - 'maintopic': '中心主题', - 'topic': '分支主题', - 'panels': { - 'history': '历史', - 'template': '模板', - 'theme': '皮肤', - 'layout': '布局', - 'style': '样式', - 'font': '文字', - 'color': '颜色', - 'background': '背景', - 'insert': '插入', - 'arrange': '调整', - 'nodeop': '当前', - 'priority': '优先级', - 'progress': '进度', - 'resource': '资源', - 'note': '备注', - 'attachment': '附件', - 'word': '文字' - }, - 'error_message': { - 'title': '哎呀,脑图出错了', - - 'err_load': '加载脑图失败', - 'err_save': '保存脑图失败', - 'err_network': '网络错误', - 'err_doc_resolve': '文档解析失败', - 'err_unknown': '发生了奇怪的错误', - 'err_localfile_read': '文件读取错误', - 'err_download': '文件下载失败', - 'err_remove_share': '取消分享失败', - 'err_create_share': '分享失败', - 'err_mkdir': '目录创建失败', - 'err_ls': '读取目录失败', - 'err_share_data': '加载分享内容出错', - 'err_share_sync_fail': '分享内容同步失败', - 'err_move_file': '文件移动失败', - 'err_rename': '重命名失败', - - 'unknownreason': '可能是外星人篡改了代码...', - 'pcs_code': { - 3: "不支持此接口", - 4: "没有权限执行此操作", - 5: "IP未授权", - 110: "用户会话已过期,请重新登录", - 31001: "数据库查询错误", - 31002: "数据库连接错误", - 31003: "数据库返回空结果", - 31021: "网络错误", - 31022: "暂时无法连接服务器", - 31023: "输入参数错误", - 31024: "app id为空", - 31025: "后端存储错误", - 31041: "用户的cookie不是合法的百度cookie", - 31042: "用户未登陆", - 31043: "用户未激活", - 31044: "用户未授权", - 31045: "用户不存在", - 31046: "用户已经存在", - 31061: "文件已经存在", - 31062: "文件名非法", - 31063: "文件父目录不存在", - 31064: "无权访问此文件", - 31065: "目录已满", - 31066: "文件不存在", - 31067: "文件处理出错", - 31068: "文件创建失败", - 31069: "文件拷贝失败", - 31070: "文件删除失败", - 31071: "不能读取文件元信息", - 31072: "文件移动失败", - 31073: "文件重命名失败", - 31079: "未找到文件MD5,请使用上传API上传整个文件。", - 31081: "superfile创建失败", - 31082: "superfile 块列表为空", - 31083: "superfile 更新失败", - 31101: "tag系统内部错误", - 31102: "tag参数错误", - 31103: "tag系统错误", - 31110: "未授权设置此目录配额", - 31111: "配额管理只支持两级目录", - 31112: "超出配额", - 31113: "配额不能超出目录祖先的配额", - 31114: "配额不能比子目录配额小", - 31141: "请求缩略图服务失败", - 31201: "签名错误", - 31202: "文件不存在", - 31203: "设置acl失败", - 31204: "请求acl验证失败", - 31205: "获取acl失败", - 31206: "acl不存在", - 31207: "bucket已存在", - 31208: "用户请求错误", - 31209: "服务器错误", - 31210: "服务器不支持", - 31211: "禁止访问", - 31212: "服务不可用", - 31213: "重试出错", - 31214: "上传文件data失败", - 31215: "上传文件meta失败", - 31216: "下载文件data失败", - 31217: "下载文件meta失败", - 31218: "容量超出限额", - 31219: "请求数超出限额", - 31220: "流量超出限额", - 31298: "服务器返回值KEY非法", - 31299: "服务器返回值KEY不存在" - } - }, - 'ui': { - 'shared_file_title': '[分享的] {0} (只读)', - 'load_share_for_edit': '正在加载分享的文件...', - 'share_sync_success': '分享内容已同步', - 'recycle_clear_confirm': '确认清空回收站么?清空后的文件无法恢复。', - - 'fullscreen_exit_hint': '按 Esc 或 F11 退出全屏', - - 'error_detail': '详细信息', - 'copy_and_feedback': '复制并反馈', - 'move_file_confirm': '确定把 "{0}" 移动到 "{1}" 吗?', - 'rename': '重命名', - 'rename_success': '{0} 重命名成功', - 'move_success': '{0} 移动成功到 {1}', - - 'command': { - 'appendsiblingnode': '插入同级主题', - 'appendparentnode': '插入上级主题', - 'appendchildnode': '插入下级主题', - 'removenode': '删除', - 'editnode': '编辑', - 'arrangeup': '上移', - 'arrangedown': '下移', - 'resetlayout': '整理布局', - 'expandtoleaf': '展开全部节点', - 'expandtolevel1': '展开到一级节点', - 'expandtolevel2': '展开到二级节点', - 'expandtolevel3': '展开到三级节点', - 'expandtolevel4': '展开到四级节点', - 'expandtolevel5': '展开到五级节点', - 'expandtolevel6': '展开到六级节点', - 'fullscreen': '全屏', - 'outline': '大纲' - }, - - 'search':'搜索', - - 'expandtoleaf': '展开', - - 'back': '返回', - - 'undo': '撤销 (Ctrl + Z)', - 'redo': '重做 (Ctrl + Y)', - - 'tabs': { - 'idea': '思路', - 'appearence': '外观', - 'view': '视图' - }, - - 'quickvisit': { - 'new': '新建 (Ctrl + Alt + N)', - 'save': '保存 (Ctrl + S)', - 'share': '分享 (Ctrl + Alt + S)', - 'feedback': '反馈问题(F1)', - 'editshare': '编辑' - }, - - 'menu': { - - 'mainmenutext': '百度脑图', // 主菜单按钮文本 - - 'newtab': '新建', - 'opentab': '打开', - 'savetab': '保存', - 'sharetab': '分享', - 'preferencetab': '设置', - 'helptab': '帮助', - 'feedbacktab': '反馈', - 'recenttab': '最近使用', - 'netdisktab': '百度云存储', - 'localtab': '本地文件', - 'drafttab': '草稿箱', - 'downloadtab': '导出到本地', - 'createsharetab': '当前脑图', - 'managesharetab': '已分享', - - 'newheader': '新建脑图', - 'openheader': '打开', - 'saveheader': '保存到', - 'draftheader': '草稿箱', - 'shareheader': '分享我的脑图', - 'downloadheader': '导出到指定格式', - 'preferenceheader': '偏好设置', - 'helpheader': '帮助', - 'feedbackheader': '反馈' - }, - - 'mydocument': '我的文档', - 'emptydir': '目录为空!', - 'pickfile': '选择文件...', - 'acceptfile': '支持的格式:{0}', - 'dropfile': '或将文件拖至此处', - 'unsupportedfile': '不支持的文件格式', - 'untitleddoc': '未命名文档', - 'overrideconfirm': '{0} 已存在,确认覆盖吗?', - 'checklogin': '检查登录状态中...', - 'loggingin': '正在登录...', - 'recent': '最近打开', - 'clearrecent': '清空', - 'clearrecentconfirm': '确认清空最近文档列表?', - 'cleardraft': '清空', - 'cleardraftconfirm': '确认清空草稿箱?', - - 'none_share': '不分享', - 'public_share': '公开分享', - 'password_share': '私密分享', - 'email_share': '邮件邀请', - 'url_share': '脑图 URL 地址:', - 'sns_share': '社交网络分享:', - 'sns_share_text': '“{0}” - 我用百度脑图制作的思维导图,快看看吧!(地址:{1})', - 'none_share_description': '不分享当前脑图', - 'public_share_description': '创建任何人可见的分享', - 'share_button_text': '创建', - 'password_share_description': '创建需要密码才可见的分享', - 'email_share_description': '创建指定人可见的分享,您还可以允许他们编辑', - 'ondev': '敬请期待!', - 'create_share_failed': '分享失败:{0}', - 'remove_share_failed': '删除失败:{1}', - 'copy': '复制', - 'copied': '已复制', - 'shared_tip': '当前脑图被 {0} 分享,你可以修改之后保存到自己的网盘上或再次分享', - 'current_share': '当前脑图', - 'manage_share': '我的分享', - 'share_remove_action': '不分享该脑图', - 'share_view_action': '打开分享地址', - 'share_edit_action': '编辑分享的文件', - - 'login': '登录', - 'logout': '注销', - 'switchuser': '切换账户', - 'userinfo': '个人信息', - 'gotonetdisk': '我的网盘', - 'requirelogin': '请 后使用', - 'saveas': '保存为', - 'filename': '文件名', - 'fileformat': '保存格式', - 'save': '保存', - 'mkdir': '新建目录', - 'recycle': '回收站', - 'newdir': '未命名目录', - - 'bold': '加粗', - 'italic': '斜体', - 'forecolor': '字体颜色', - 'fontfamily': '字体', - 'fontsize': '字号', - 'layoutstyle': '主题', - 'node': '节点操作', - 'saveto': '另存为', - 'hand': '允许拖拽', - 'camera': '定位根节点', - 'zoom-in': '放大(Ctrl+)', - 'zoom-out': '缩小(Ctrl-)', - 'markers': '标签', - 'resource': '资源', - 'help': '帮助', - 'preference': '偏好设置', - 'expandnode': '展开到叶子', - 'collapsenode': '收起到一级节点', - 'template': '模板', - 'theme': '皮肤', - 'clearstyle': '清除样式', - 'copystyle': '复制样式', - 'pastestyle': '粘贴样式', - 'appendsiblingnode': '同级主题', - 'appendchildnode': '下级主题', - 'arrangeup': '前调', - 'arrangedown': '后调', - 'editnode': '编辑', - 'removenode': '移除', - 'priority': '优先级', - 'progress': { - 'p1': '未开始', - 'p2': '完成 1/8', - 'p3': '完成 1/4', - 'p4': '完成 3/8', - 'p5': '完成一半', - 'p6': '完成 5/8', - 'p7': '完成 3/4', - 'p8': '完成 7/8', - 'p9': '已完成', - 'p0': '清除进度' - }, - 'link': '链接', - 'image': '图片', - 'note': '备注', - 'insertlink': '插入链接', - 'insertimage': '插入图片', - 'insertnote': '插入备注', - 'removelink': '移除已有连接', - 'removeimage': '移除已有图片', - 'removenote': '移除已有备注', - 'resetlayout': '整理', - - 'justnow': '刚刚', - 'minutesago': '{0} 分钟前', - 'hoursago': '{0} 小时前', - 'yesterday': '昨天', - 'daysago': '{0} 天前', - 'longago': '很久之前', - - 'redirect': '您正在打开连接 {0},百度脑图不能保证连接的安全性,是否要继续?', - 'navigator': '导航器', - - 'unsavedcontent': '当前文件还没有保存到网盘:\n\n{0}\n\n虽然未保存的数据会缓存在草稿箱,但是清除浏览器缓存会导致草稿箱清除。', - - 'shortcuts': '快捷键', - 'contact': '联系与反馈', - 'email': '邮件组', - 'qq_group': 'QQ 群', - 'github_issue': 'Github', - 'baidu_tieba': '贴吧', - - 'clipboardunsupported': '您的浏览器不支持剪贴板,请使用快捷键复制', - - 'load_success': '{0} 加载成功', - 'save_success': '{0} 已保存于 {1}', - 'autosave_success': '{0} 已自动保存于 {1}', - - 'selectall': '全选', - 'selectrevert': '反选', - 'selectsiblings': '选择兄弟节点', - 'selectlevel': '选择同级节点', - 'selectpath': '选择路径', - 'selecttree': '选择子树' - }, - 'popupcolor': { - 'clearColor': '清空颜色', - 'standardColor': '标准颜色', - 'themeColor': '主题颜色' - }, - 'dialogs': { - 'markers': { - 'static': { - 'lang_input_text': '文本内容:', - 'lang_input_url': '链接地址:', - 'lang_input_title': '标题:', - 'lang_input_target': '是否在新窗口:' - }, - 'priority': '优先级', - 'none': '无', - 'progress': { - 'title': '进度', - 'notdone': '未完成', - 'done1': '完成 1/8', - 'done2': '完成 1/4', - 'done3': '完成 3/8', - 'done4': '完成 1/2', - 'done5': '完成 5/8', - 'done6': '完成 3/4', - 'done7': '完成 7/8', - 'done': '已完成' - } - }, - 'help': { - - }, - 'hyperlink': {}, - 'image': {}, - 'resource': {} - }, - 'hyperlink': { - 'hyperlink': '链接...', - 'unhyperlink': '移除链接' - }, - 'image': { - 'image': '图片...', - 'removeimage': '移除图片' - }, - 'marker': { - 'marker': '进度/优先级...' - }, - 'resource': { - 'resource': '资源...' - } - } - } - }); -/** - * @fileOverview - * - * UI 状态的 LocalStorage 的存取文件,未来可能在离线编辑的时候升级 - * - * @author: zhangbobell - * @email : zhangbobell@163.com - * - * @copyright: Baidu FEX, 2015 - */ -angular.module('kityminderEditor') - .service('memory', function() { - - function isQuotaExceeded(e) { - var quotaExceeded = false; - if (e) { - if (e.code) { - switch (e.code) { - case 22: - quotaExceeded = true; - break; - case 1014: - // Firefox - if (e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { - quotaExceeded = true; - } - break; - } - } else if (e.number === -2147024882) { - // Internet Explorer 8 - quotaExceeded = true; - } - } - return quotaExceeded; - } - - return { - get: function(key) { - var value = window.localStorage.getItem(key); - return null || JSON.parse(value); - }, - - set: function(key, value) { - try { - window.localStorage.setItem(key, JSON.stringify(value)); - return true; - } catch(e) { - if (isQuotaExceeded(e)) { - return false; - } - } - }, - remove: function(key) { - var value = window.localStorage.getItem(key); - window.localStorage.removeItem(key); - return value; - }, - clear: function() { - window.localStorage.clear(); - } - } -}); -angular.module('kityminderEditor') - .service('minder.service', function() { - - var callbackQueue = []; - - function registerEvent(callback) { - callbackQueue.push(callback); - } - - function executeCallback() { - callbackQueue.forEach(function(ele) { - ele.apply(this, arguments); - }) - } - - return { - registerEvent: registerEvent, - executeCallback: executeCallback - } - }); -angular.module('kityminderEditor') - .service('resourceService', ['$document', function($document) { - var openScope = null; - - this.open = function( dropdownScope ) { - if ( !openScope ) { - $document.bind('click', closeDropdown); - $document.bind('keydown', escapeKeyBind); - } - - if ( openScope && openScope !== dropdownScope ) { - openScope.resourceListOpen = false; - } - - openScope = dropdownScope; - }; - - this.close = function( dropdownScope ) { - if ( openScope === dropdownScope ) { - openScope = null; - $document.unbind('click', closeDropdown); - $document.unbind('keydown', escapeKeyBind); - } - }; - - var closeDropdown = function( evt ) { - // This method may still be called during the same mouse event that - // unbound this event handler. So check openScope before proceeding. - //console.log(evt, openScope); - if (!openScope) { return; } - - var toggleElement = openScope.getToggleElement(); - if ( evt && toggleElement && toggleElement[0].contains(evt.target) ) { - return; - } - - openScope.$apply(function() { - console.log('to close the resourcelist'); - openScope.resourceListOpen = false; - }); - }; - - var escapeKeyBind = function( evt ) { - if ( evt.which === 27 ) { - openScope.focusToggleElement(); - closeDropdown(); - } - }; -}]) -angular.module('kityminderEditor').service('revokeDialog', ['$modal', 'minder.service', function($modal, minderService) { - - minderService.registerEvent(function() { - - // 触发导入节点或导出节点对话框 - var minder = window.minder; - var editor = window.editor; - var parentFSM = editor.hotbox.getParentFSM(); - - - minder.on('importNodeData', function() { - parentFSM.jump('modal', 'import-text-modal'); - - var importModal = $modal.open({ - animation: true, - templateUrl: 'ui/dialog/imExportNode/imExportNode.tpl.html', - controller: 'imExportNode.ctrl', - size: 'md', - resolve: { - title: function() { - return '导入节点'; - }, - defaultValue: function() { - return ''; - }, - type: function() { - return 'import'; - } - } - }); - - importModal.result.then(function(result) { - try{ - minder.Text2Children(minder.getSelectedNode(), result); - } catch(e) { - alert(e); - } - parentFSM.jump('normal', 'import-text-finish'); - editor.receiver.selectAll(); - }, function() { - parentFSM.jump('normal', 'import-text-finish'); - editor.receiver.selectAll(); - }); - }); - - minder.on('exportNodeData', function() { - parentFSM.jump('modal', 'export-text-modal'); - - var exportModal = $modal.open({ - animation: true, - templateUrl: 'ui/dialog/imExportNode/imExportNode.tpl.html', - controller: 'imExportNode.ctrl', - size: 'md', - resolve: { - title: function() { - return '导出节点'; - }, - defaultValue: function() { - var selectedNode = minder.getSelectedNode(), - Node2Text = window.kityminder.data.getRegisterProtocol('text').Node2Text; - - return Node2Text(selectedNode); - }, - type: function() { - return 'export'; - } - } - }); - - exportModal.result.then(function(result) { - parentFSM.jump('normal', 'export-text-finish'); - editor.receiver.selectAll(); - }, function() { - parentFSM.jump('normal', 'export-text-finish'); - editor.receiver.selectAll(); - }); - }); - - }); - - return {}; -}]); -/** - * @fileOverview - * - * 与后端交互的服务 - * - * @author: zhangbobell - * @email : zhangbobell@163.com - * - * @copyright: Baidu FEX, 2015 - */ -angular.module('kityminderEditor') - .service('server', ['config', '$http', function(config, $http) { - - return { - uploadImage: function(file) { - var url = config.get('imageUpload'); - var fd = new FormData(); - fd.append('upload_file', file); - - return $http.post(url, fd, { - transformRequest: angular.identity, - headers: {'Content-Type': undefined} - }); - } - } - }]); -angular.module('kityminderEditor') - .service('valueTransfer', function() { - return {}; - }); -angular.module('kityminderEditor') - .filter('commandState', function() { - return function(minder, command) { - return minder.queryCommandState(command); - } - }) - .filter('commandValue', function() { - return function(minder, command) { - return minder.queryCommandValue(command); - } - }); - - -angular.module('kityminderEditor') - .filter('lang', ['config', 'lang.zh-cn', function(config, lang) { - return function(text, block) { - var defaultLang = config.get('defaultLang'); - - if (lang[defaultLang] == undefined) { - return '未发现对应语言包,请检查 lang.xxx.service.js!'; - } else { - - var dict = lang[defaultLang]; - block.split('/').forEach(function(ele, idx) { - dict = dict[ele]; - }); - - return dict[text] || null; - } - - }; - }]); -angular.module('kityminderEditor') - .controller('hyperlink.ctrl', ["$scope", "$modalInstance", "link", function ($scope, $modalInstance, link) { - - $scope.R_URL = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/; - - $scope.url = link.url || ''; - $scope.title = link.title || ''; - - setTimeout(function() { - var $linkUrl = $('#link-url'); - $linkUrl.focus(); - $linkUrl[0].setSelectionRange(0, $scope.url.length); - }, 30); - - $scope.shortCut = function(e) { - e.stopPropagation(); - - if (e.keyCode == 13) { - $scope.ok(); - } else if (e.keyCode == 27) { - $scope.cancel(); - } - }; - - $scope.ok = function () { - if($scope.R_URL.test($scope.url)) { - $modalInstance.close({ - url: $scope.url, - title: $scope.title - }); - } else { - $scope.urlPassed = false; - - var $linkUrl = $('#link-url'); - $linkUrl.focus(); - $linkUrl[0].setSelectionRange(0, $scope.url.length); - } - editor.receiver.selectAll(); - }; - - $scope.cancel = function () { - $modalInstance.dismiss('cancel'); - editor.receiver.selectAll(); - }; - - }]); -angular.module('kityminderEditor') - .controller('imExportNode.ctrl', ["$scope", "$modalInstance", "title", "defaultValue", "type", function ($scope, $modalInstance, title, defaultValue, type) { - - $scope.title = title; - - $scope.value = defaultValue; - - $scope.type = type; - - $scope.ok = function () { - if ($scope.value == '') { - return; - } - $modalInstance.close($scope.value); - editor.receiver.selectAll(); - }; - - $scope.cancel = function () { - $modalInstance.dismiss('cancel'); - editor.receiver.selectAll(); - }; - - setTimeout(function() { - $('.single-input').focus(); - - $('.single-input')[0].setSelectionRange(0, defaultValue.length); - - }, 30); - - $scope.shortCut = function(e) { - e.stopPropagation(); - - //if (e.keyCode == 13 && e.shiftKey == false) { - // $scope.ok(); - //} - - if (e.keyCode == 27) { - $scope.cancel(); - } - - // tab 键屏蔽默认事件 和 backspace 键屏蔽默认事件 - if (e.keyCode == 8 && type == 'export') { - e.preventDefault(); - } - - if (e.keyCode == 9) { - e.preventDefault(); - var $textarea = e.target; - var pos = getCursortPosition($textarea); - var str = $textarea.value; - $textarea.value = str.substr(0, pos) + '\t' + str.substr(pos); - setCaretPosition($textarea, pos + 1); - } - - }; - - /* - * 获取 textarea 的光标位置 - * @Author: Naixor - * @date: 2015.09.23 - * */ - function getCursortPosition (ctrl) { - var CaretPos = 0; // IE Support - if (document.selection) { - ctrl.focus (); - var Sel = document.selection.createRange (); - Sel.moveStart ('character', -ctrl.value.length); - CaretPos = Sel.text.length; - } - // Firefox support - else if (ctrl.selectionStart || ctrl.selectionStart == '0') { - CaretPos = ctrl.selectionStart; - } - return (CaretPos); - } - - /* - * 设置 textarea 的光标位置 - * @Author: Naixor - * @date: 2015.09.23 - * */ - function setCaretPosition(ctrl, pos){ - if(ctrl.setSelectionRange) { - ctrl.focus(); - ctrl.setSelectionRange(pos,pos); - } else if (ctrl.createTextRange) { - var range = ctrl.createTextRange(); - range.collapse(true); - range.moveEnd('character', pos); - range.moveStart('character', pos); - range.select(); - } - } - - }]); -angular.module('kityminderEditor') - .controller('image.ctrl', ['$http', '$scope', '$modalInstance', 'image', 'server', function($http, $scope, $modalInstance, image, server) { - - $scope.data = { - list: [], - url: image.url || '', - title: image.title || '', - R_URL: /^https?\:\/\/\w+/ - }; - - setTimeout(function() { - var $imageUrl = $('#image-url'); - $imageUrl.focus(); - $imageUrl[0].setSelectionRange(0, $scope.data.url.length); - }, 300); - - - // 搜索图片按钮点击事件 - $scope.searchImage = function() { - $scope.list = []; - - getImageData() - .success(function(json) { - if(json && json.data) { - for(var i = 0; i < json.data.length; i++) { - if(json.data[i].objURL) { - $scope.list.push({ - title: json.data[i].fromPageTitleEnc, - src: json.data[i].middleURL, - url: json.data[i].middleURL - }); - } - } - } - }) - .error(function() { - - }); - }; - - // 选择图片的鼠标点击事件 - $scope.selectImage = function($event) { - var targetItem = $('#img-item'+ (this.$index)); - var targetImg = $('#img-'+ (this.$index)); - - targetItem.siblings('.selected').removeClass('selected'); - targetItem.addClass('selected'); - - $scope.data.url = targetImg.attr('src'); - $scope.data.title = targetImg.attr('alt'); - }; - - // 自动上传图片,后端需要直接返回图片 URL - $scope.uploadImage = function() { - var fileInput = $('#upload-image'); - if (!fileInput.val()) { - return; - } - if (/^.*\.(jpg|JPG|jpeg|JPEG|gif|GIF|png|PNG)$/.test(fileInput.val())) { - var file = fileInput[0].files[0]; - return server.uploadImage(file).then(function (json) { - var resp = json.data; - if (resp.errno === 0) { - $scope.data.url = resp.data.url; - } - }); - } else { - alert("后缀只能是 jpg、gif 及 png"); - } - }; - - $scope.shortCut = function(e) { - e.stopPropagation(); - - if (e.keyCode == 13) { - $scope.ok(); - } else if (e.keyCode == 27) { - $scope.cancel(); - } - }; - - $scope.ok = function () { - if($scope.data.R_URL.test($scope.data.url)) { - $modalInstance.close({ - url: $scope.data.url, - title: $scope.data.title - }); - } else { - $scope.urlPassed = false; - - var $imageUrl = $('#image-url'); - if ($imageUrl) { - $imageUrl.focus(); - $imageUrl[0].setSelectionRange(0, $scope.data.url.length); - } - - } - - editor.receiver.selectAll(); - }; - - $scope.cancel = function () { - $modalInstance.dismiss('cancel'); - editor.receiver.selectAll(); - }; - - function getImageData() { - var key = $scope.data.searchKeyword2; - var currentTime = new Date(); - var url = 'http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&fp=result&queryWord='+ key +'&cl=2&lm=-1&ie=utf-8&oe=utf-8&st=-1&ic=0&word='+ key +'&face=0&istype=2&nc=1&pn=60&rn=60&gsm=3c&'+ currentTime.getTime() +'=&callback=JSON_CALLBACK'; - - return $http.jsonp(url); - } - }]); -angular.module('kityminderEditor') - .directive('appendNode', ['commandBinder', function(commandBinder) { - return { - restrict: 'E', - templateUrl: 'ui/directive/appendNode/appendNode.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - - commandBinder.bind(minder, 'appendchildnode', $scope) - - $scope.execCommand = function(command) { - minder.execCommand(command, '分支主题'); - editText(); - }; - - function editText() { - var receiverElement = editor.receiver.element; - var fsm = editor.fsm; - var receiver = editor.receiver; - - receiverElement.innerText = minder.queryCommandValue('text'); - fsm.jump('input', 'input-request'); - receiver.selectAll(); - } - } - } - }]); -angular.module('kityminderEditor') - .directive('arrange', ['commandBinder', function(commandBinder) { - return { - restrict: 'E', - templateUrl: 'ui/directive/arrange/arrange.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - - //commandBinder.bind(minder, 'priority', $scope); - } - } - }]); -angular.module('kityminderEditor') - .directive('colorPanel', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/colorPanel/colorPanel.html', - scope: { - minder: '=' - }, - replace: true, - link: function(scope) { - - var minder = scope.minder; - var currentTheme = minder.getThemeItems(); - - scope.$on('colorPicked', function(event, color) { - event.stopPropagation(); - scope.bgColor = color; - minder.execCommand('background', color); - }); - - scope.setDefaultBg = function() { - var currentNode = minder.getSelectedNode(); - var bgColor = minder.getNodeStyle(currentNode, 'background'); - - // 有可能是 kity 的颜色类 - return typeof bgColor === 'object' ? bgColor.toHEX() : bgColor; - }; - - scope.bgColor = scope.setDefaultBg() || '#fff'; - - } - } - }); -angular.module('kityminderEditor') - .directive('expandLevel', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/expandLevel/expandLevel.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - - $scope.levels = [1, 2, 3, 4, 5, 6]; - } - } - }); -angular.module('kityminderEditor') - .directive('fontOperator', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/fontOperator/fontOperator.html', - scope: { - minder: '=' - }, - replace: true, - link: function(scope) { - var minder = scope.minder; - var currentTheme = minder.getThemeItems(); - - scope.fontSizeList = [10, 12, 16, 18, 24, 32, 48]; - scope.fontFamilyList = [{ - name: '宋体', - val: '宋体,SimSun' - }, { - name: '微软雅黑', - val: '微软雅黑,Microsoft YaHei' - }, { - name: '楷体', - val: '楷体,楷体_GB2312,SimKai' - }, { - name: '黑体', - val: '黑体, SimHei' - }, { - name: '隶书', - val: '隶书, SimLi' - }, { - name: 'Andale Mono', - val: 'andale mono' - }, { - name: 'Arial', - val: 'arial,helvetica,sans-serif' - }, { - name: 'arialBlack', - val: 'arial black,avant garde' - }, { - name: 'Comic Sans Ms', - val: 'comic sans ms' - }, { - name: 'Impact', - val: 'impact,chicago' - }, { - name: 'Times New Roman', - val: 'times new roman' - }, { - name: 'Sans-Serif', - val: 'sans-serif' - }]; - - scope.$on('colorPicked', function(event, color) { - event.stopPropagation(); - - scope.foreColor = color; - minder.execCommand('forecolor', color); - }); - - scope.setDefaultColor = function() { - var currentNode = minder.getSelectedNode(); - var fontColor = minder.getNodeStyle(currentNode, 'color'); - - // 有可能是 kity 的颜色类 - return typeof fontColor === 'object' ? fontColor.toHEX() : fontColor; - }; - - scope.foreColor = scope.setDefaultColor() || '#000'; - - scope.getFontfamilyName = function(val) { - var fontName = ''; - scope.fontFamilyList.forEach(function(ele, idx, arr) { - if (ele.val === val) { - fontName = ele.name; - return ''; - } - }); - - return fontName; - } - } - } - }); -angular.module('kityminderEditor') - .directive('hyperLink', ['$modal', function($modal) { - return { - restrict: 'E', - templateUrl: 'ui/directive/hyperLink/hyperLink.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - - $scope.addHyperlink = function() { - - var link = minder.queryCommandValue('HyperLink'); - - var hyperlinkModal = $modal.open({ - animation: true, - templateUrl: 'ui/dialog/hyperlink/hyperlink.tpl.html', - controller: 'hyperlink.ctrl', - size: 'md', - resolve: { - link: function() { - return link; - } - } - }); - - hyperlinkModal.result.then(function(result) { - minder.execCommand('HyperLink', result.url, result.title || ''); - }); - } - } - } - }]); -angular.module('kityminderEditor') - .directive('imageBtn', ['$modal', function($modal) { - return { - restrict: 'E', - templateUrl: 'ui/directive/imageBtn/imageBtn.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - - $scope.addImage = function() { - - var image = minder.queryCommandValue('image'); - - var imageModal = $modal.open({ - animation: true, - templateUrl: 'ui/dialog/image/image.tpl.html', - controller: 'image.ctrl', - size: 'md', - resolve: { - image: function() { - return image; - } - } - }); - - imageModal.result.then(function(result) { - minder.execCommand('image', result.url, result.title || ''); - }); - } - } - } - }]); -angular.module('kityminderEditor') - .directive('kityminderEditor', ['config', 'minder.service', 'revokeDialog', function(config, minderService, revokeDialog) { - return { - restrict: 'EA', - templateUrl: 'ui/directive/kityminderEditor/kityminderEditor.html', - replace: true, - scope: { - onInit: '&' - }, - link: function(scope, element, attributes) { - - var $minderEditor = element.children('.minder-editor')[0]; - - function onInit(editor, minder) { - scope.onInit({ - editor: editor, - minder: minder - }); - - minderService.executeCallback(); - } - - if (typeof(seajs) != 'undefined') { - /* global seajs */ - seajs.config({ - base: './src' - }); - - define('demo', function(require) { - var Editor = require('editor'); - - var editor = window.editor = new Editor($minderEditor); - - if (window.localStorage.__dev_minder_content) { - editor.minder.importJson(JSON.parse(window.localStorage.__dev_minder_content)); - } - - editor.minder.on('contentchange', function() { - window.localStorage.__dev_minder_content = JSON.stringify(editor.minder.exportJson()); - }); - - window.minder = window.km = editor.minder; - - scope.editor = editor; - scope.minder = minder; - scope.config = config.get(); - - //scope.minder.setDefaultOptions(scope.config); - scope.$apply(); - - onInit(editor, minder); - }); - - seajs.use('demo'); - - } else if (window.kityminder && window.kityminder.Editor) { - var editor = new kityminder.Editor($minderEditor); - - window.editor = scope.editor = editor; - window.minder = scope.minder = editor.minder; - - scope.config = config.get(); - - //scope.minder.setDefaultOptions(config.getConfig()); - - onInit(editor, editor.minder); - } - - } - } - }]); -angular.module('kityminderEditor') - .directive('kityminderViewer', ['config', 'minder.service', function(config, minderService) { - return { - restrict: 'EA', - templateUrl: 'ui/directive/kityminderViewer/kityminderViewer.html', - replace: true, - scope: { - onInit: '&' - }, - link: function(scope, element, attributes) { - - var $minderEditor = element.children('.minder-viewer')[0]; - - function onInit(editor, minder) { - scope.onInit({ - editor: editor, - minder: minder - }); - - minderService.executeCallback(); - } - - if (window.kityminder && window.kityminder.Editor) { - var editor = new kityminder.Editor($minderEditor); - - window.editor = scope.editor = editor; - window.minder = scope.minder = editor.minder; - - onInit(editor, editor.minder); - } - - } - } - }]); -angular.module('kityminderEditor') - .directive('layout', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/layout/layout.html', - scope: { - minder: '=' - }, - replace: true, - link: function(scope) { - - } - } - }); -/** - * @fileOverview - * - * 左下角的导航器 - * - * @author: zhangbobell - * @email : zhangbobell@163.com - * - * @copyright: Baidu FEX, 2015 */ -angular.module('kityminderEditor') - .directive('navigator', ['memory', 'config', function(memory, config) { - return { - restrict: 'A', - templateUrl: 'ui/directive/navigator/navigator.html', - scope: { - minder: '=' - }, - link: function(scope) { - minder.setDefaultOptions({zoom: config.get('zoom')}); - - scope.isNavOpen = !memory.get('navigator-hidden'); - - scope.getZoomRadio = function(value) { - var zoomStack = minder.getOption('zoom'); - var minValue = zoomStack[0]; - var maxValue = zoomStack[zoomStack.length - 1]; - var valueRange = maxValue - minValue; - - return (1 - (value - minValue) / valueRange); - }; - - scope.getHeight = function(value) { - var totalHeight = $('.zoom-pan').height(); - - return scope.getZoomRadio(value) * totalHeight; - }; - - // 初始的缩放倍数 - scope.zoom = 100; - - // 发生缩放事件时 - minder.on('zoom', function(e) { - scope.zoom = e.zoom; - }); - - scope.toggleNavOpen = function() { - scope.isNavOpen = !scope.isNavOpen; - memory.set('navigator-hidden', !scope.isNavOpen); - - if (scope.isNavOpen) { - bind(); - updateContentView(); - updateVisibleView(); - } else{ - unbind(); - } - }; - - setTimeout(function() { - if (scope.isNavOpen) { - bind(); - updateContentView(); - updateVisibleView(); - } else{ - unbind(); - } - }, 0); - - - - function bind() { - minder.on('layout layoutallfinish', updateContentView); - minder.on('viewchange', updateVisibleView); - } - - function unbind() { - minder.off('layout layoutallfinish', updateContentView); - minder.off('viewchange', updateVisibleView); - } - - - /** 以下部分是缩略图导航器 * - * */ - - var $previewNavigator = $('.nav-previewer'); - - // 画布,渲染缩略图 - var paper = new kity.Paper($previewNavigator[0]); - - // 用两个路径来挥之节点和连线的缩略图 - var nodeThumb = paper.put(new kity.Path()); - var connectionThumb = paper.put(new kity.Path()); - - // 表示可视区域的矩形 - var visibleRect = paper.put(new kity.Rect(100, 100).stroke('red', '1%')); - - var contentView = new kity.Box(), visibleView = new kity.Box(); - - /** - * 增加一个对天盘图情况缩略图的处理, - * @Editor: Naixor line 104~129 - * @Date: 2015.11.3 - */ - var pathHandler = getPathHandler(minder.getTheme()); - - // 主题切换事件 - minder.on('themechange', function(e) { - pathHandler = getPathHandler(e.theme); - }); - - function getPathHandler(theme) { - switch (theme) { - case "tianpan": - case "tianpan-compact": - return function(nodePathData, x, y, width, height) { - var r = width >> 1; - nodePathData.push('M', x, y + r, - 'a', r, r, 0, 1, 1, 0, 0.01, - 'z'); - } - default: { - return function(nodePathData, x, y, width, height) { - nodePathData.push('M', x, y, - 'h', width, 'v', height, - 'h', -width, 'z'); - } - } - } - } - - navigate(); - - function navigate() { - - function moveView(center, duration) { - var box = visibleView; - center.x = -center.x; - center.y = -center.y; - - var viewMatrix = minder.getPaper().getViewPortMatrix(); - box = viewMatrix.transformBox(box); - - var targetPosition = center.offset(box.width / 2, box.height / 2); - - minder.getViewDragger().moveTo(targetPosition, duration); - } - - var dragging = false; - - paper.on('mousedown', function(e) { - dragging = true; - moveView(e.getPosition('top'), 200); - $previewNavigator.addClass('grab'); - }); - - paper.on('mousemove', function(e) { - if (dragging) { - moveView(e.getPosition('top')); - } - }); - - $(window).on('mouseup', function() { - dragging = false; - $previewNavigator.removeClass('grab'); - }); - } - - function updateContentView() { - - var view = minder.getRenderContainer().getBoundaryBox(); - - contentView = view; - - var padding = 30; - - paper.setViewBox( - view.x - padding - 0.5, - view.y - padding - 0.5, - view.width + padding * 2 + 1, - view.height + padding * 2 + 1); - - var nodePathData = []; - var connectionThumbData = []; - - minder.getRoot().traverse(function(node) { - var box = node.getLayoutBox(); - pathHandler(nodePathData, box.x, box.y, box.width, box.height); - if (node.getConnection() && node.parent && node.parent.isExpanded()) { - connectionThumbData.push(node.getConnection().getPathData()); - } - }); - - paper.setStyle('background', minder.getStyle('background')); - - if (nodePathData.length) { - nodeThumb - .fill(minder.getStyle('root-background')) - .setPathData(nodePathData); - } else { - nodeThumb.setPathData(null); - } - - if (connectionThumbData.length) { - connectionThumb - .stroke(minder.getStyle('connect-color'), '0.5%') - .setPathData(connectionThumbData); - } else { - connectionThumb.setPathData(null); - } - - updateVisibleView(); - } - - function updateVisibleView() { - visibleView = minder.getViewDragger().getView(); - visibleRect.setBox(visibleView.intersect(contentView)); - } - - } - } - }]); -angular.module('kityminderEditor') - .directive('noteBtn', ['valueTransfer', function(valueTransfer) { - return { - restrict: 'E', - templateUrl: 'ui/directive/noteBtn/noteBtn.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - - $scope.addNote =function() { - valueTransfer.noteEditorOpen = true; - }; - } - } - }]); -angular.module('kityminderEditor') - - .directive('noteEditor', ['valueTransfer', function(valueTransfer) { - return { - restrict: 'A', - templateUrl: 'ui/directive/noteEditor/noteEditor.html', - scope: { - minder: '=' - }, - replace: true, - controller: ["$scope", function($scope) { - var minder = $scope.minder; - var isInteracting = false; - var cmEditor; - - $scope.codemirrorLoaded = function(_editor) { - - cmEditor = $scope.cmEditor = _editor; - - _editor.setSize('100%', '100%'); - }; - - function updateNote() { - var enabled = $scope.noteEnabled = minder.queryCommandState('note') != -1; - var noteValue = minder.queryCommandValue('note') || ''; - - if (enabled) { - $scope.noteContent = noteValue; - } - - isInteracting = true; - $scope.$apply(); - isInteracting = false; - } - - - $scope.$watch('noteContent', function(content) { - var enabled = minder.queryCommandState('note') != -1; - - if (content && enabled && !isInteracting) { - minder.execCommand('note', content); - } - - setTimeout(function() { - cmEditor.refresh(); - }); - }); - - - var noteEditorOpen = function() { - return valueTransfer.noteEditorOpen; - }; - - // 监听面板状态变量的改变 - $scope.$watch(noteEditorOpen, function(newVal, oldVal) { - if (newVal) { - setTimeout(function() { - cmEditor.refresh(); - cmEditor.focus(); - }); - } - $scope.noteEditorOpen = valueTransfer.noteEditorOpen; - }, true); - - - $scope.closeNoteEditor = function() { - valueTransfer.noteEditorOpen = false; - editor.receiver.selectAll(); - }; - - - - minder.on('interactchange', updateNote); - }] - } - }]); -// TODO: 使用一个 div 容器作为 previewer,而不是两个 -angular.module('kityminderEditor') - - .directive('notePreviewer', ['$sce', 'valueTransfer', function($sce, valueTransfer) { - return { - restrict: 'A', - templateUrl: 'ui/directive/notePreviewer/notePreviewer.html', - link: function(scope, element) { - var minder = scope.minder; - var $container = element.parent(); - var $previewer = element.children(); - scope.showNotePreviewer = false; - - marked.setOptions({ - gfm: true, - tables: true, - breaks: true, - pedantic: false, - sanitize: true, - smartLists: true, - smartypants: false - }); - - - var previewTimer; - minder.on('shownoterequest', function(e) { - - previewTimer = setTimeout(function() { - preview(e.node, e.keyword); - }, 300); - }); - minder.on('hidenoterequest', function() { - clearTimeout(previewTimer); - - scope.showNotePreviewer = false; - //scope.$apply(); - }); - - var previewLive = false; - $(document).on('mousedown mousewheel DOMMouseScroll', function() { - if (!previewLive) return; - scope.showNotePreviewer = false; - scope.$apply(); - }); - - element.on('mousedown mousewheel DOMMouseScroll', function(e) { - e.stopPropagation(); - }); - - function preview(node, keyword) { - var icon = node.getRenderer('NoteIconRenderer').getRenderShape(); - var b = icon.getRenderBox('screen'); - var note = node.getData('note'); - - $previewer[0].scrollTop = 0; - - var html = marked(note); - if (keyword) { - html = html.replace(new RegExp('(' + keyword + ')', 'ig'), '$1'); - } - scope.noteContent = $sce.trustAsHtml(html); - scope.$apply(); // 让浏览器重新渲染以获取 previewer 提示框的尺寸 - - var cw = $($container[0]).width(); - var ch = $($container[0]).height(); - var pw = $($previewer).outerWidth(); - var ph = $($previewer).outerHeight(); - - var x = b.cx - pw / 2 - $container[0].offsetLeft; - var y = b.bottom + 10 - $container[0].offsetTop; - - if (x < 0) x = 10; - if (x + pw > cw) x = b.left - pw - 10 - $container[0].offsetLeft; - if (y + ph > ch) y = b.top - ph - 10 - $container[0].offsetTop; - - - scope.previewerStyle = { - 'left': Math.round(x) + 'px', - 'top': Math.round(y) + 'px' - }; - - scope.showNotePreviewer = true; - - var view = $previewer[0].querySelector('.highlight'); - if (view) { - view.scrollIntoView(); - } - previewLive = true; - - scope.$apply(); - } - } - } -}]); -angular.module('kityminderEditor') - .directive('operation', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/operation/operation.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - $scope.editNode = function() { - - var receiverElement = editor.receiver.element; - var fsm = editor.fsm; - var receiver = editor.receiver; - - receiverElement.innerText = minder.queryCommandValue('text'); - fsm.jump('input', 'input-request'); - receiver.selectAll(); - - } - - } - } - }); -angular.module('kityminderEditor') - - .directive('priorityEditor', ['commandBinder', function(commandBinder) { - return { - restrict: 'E', - templateUrl: 'ui/directive/priorityEditor/priorityEditor.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - var priorities = []; - - for (var i = 0; i < 10; i++) { - priorities.push(i); - } - - commandBinder.bind(minder, 'priority', $scope); - - $scope.priorities = priorities; - - $scope.getPriorityTitle = function(p) { - switch(p) { - case 0: return '移除优先级'; - default: return '优先级' + p; - } - } - } - - } - }]); -angular.module('kityminderEditor') - .directive('progressEditor', ['commandBinder', function(commandBinder) { - return { - restrict: 'E', - templateUrl: 'ui/directive/progressEditor/progressEditor.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - var progresses = []; - - for (var i = 0; i < 10; i++) { - progresses.push(i); - } - - commandBinder.bind(minder, 'progress', $scope); - - $scope.progresses = progresses; - - $scope.getProgressTitle = function(p) { - switch(p) { - case 0: return '移除进度'; - case 1: return '未开始'; - case 9: return '全部完成'; - default: return '完成' + (p - 1) + '/8'; - - } - } - } - } - }]) -angular.module('kityminderEditor') - .directive('resourceEditor', function () { - return { - restrict: 'E', - templateUrl: 'ui/directive/resourceEditor/resourceEditor.html', - scope: { - minder: '=' - }, - replace: true, - controller: ["$scope", function ($scope) { - var minder = $scope.minder; - - var isInteracting = false; - - minder.on('interactchange', function () { - var enabled = $scope.enabled = minder.queryCommandState('resource') != -1; - var selected = enabled ? minder.queryCommandValue('resource') : []; - var used = minder.getUsedResource().map(function (resourceName) { - return { - name: resourceName, - selected: selected.indexOf(resourceName) > -1 - } - }); - $scope.used = used; - - isInteracting = true; - $scope.$apply(); - isInteracting = false; - }); - - $scope.$watch('used', function (used) { - if (minder.queryCommandState('resource') != -1 && used) { - var resource = used.filter(function (resource) { - return resource.selected; - }).map(function (resource) { - return resource.name; - }); - - // 由于 interactchange 带来的改变则不用执行 resource 命令 - if (isInteracting) { - return; - } - minder.execCommand('resource', resource); - } - }, true); - - $scope.resourceColor = function (resource) { - return minder.getResourceColor(resource).toHEX(); - }; - - $scope.addResource = function (resourceName) { - var origin = minder.queryCommandValue('resource'); - if (!resourceName || !/\S/.test(resourceName)) return; - - if (origin.indexOf(resourceName) == -1) { - $scope.used.push({ - name: resourceName, - selected: true - }); - } - - $scope.newResourceName = null; - }; - - }] - }; - }) - - .directive('clickAnywhereButHere', ['$document', function ($document) { - return { - link: function(scope, element, attrs) { - var onClick = function (event) { - var isChild = $('#resource-dropdown').has(event.target).length > 0; - var isSelf = $('#resource-dropdown') == event.target; - var isInside = isChild || isSelf; - if (!isInside) { - scope.$apply(attrs.clickAnywhereButHere) - } - }; - - scope.$watch(attrs.isActive, function(newValue, oldValue) { - if (newValue !== oldValue && newValue == true) { - $document.bind('click', onClick); - } - else if (newValue !== oldValue && newValue == false) { - $document.unbind('click', onClick); - } - }); - } - }; - }]); -angular.module('kityminderEditor') - .directive('searchBox', function() { - return { - restrict: 'A', - templateUrl: 'ui/directive/searchBox/searchBox.html', - scope: { - minder: '=' - }, - replace: true, - controller: ["$scope", function ($scope) { - var minder = $scope.minder; - var editor = window.editor; - $scope.handleKeyDown = handleKeyDown; - $scope.doSearch = doSearch; - $scope.exitSearch = exitSearch; - $scope.showTip = false; - $scope.showSearch = false; - - // 处理输入框按键事件 - function handleKeyDown(e) { - if (e.keyCode == 13) { - var direction = e.shiftKey ? 'prev' : 'next'; - doSearch($scope.keyword, direction); - } - if (e.keyCode == 27) { - exitSearch(); - } - } - - function exitSearch() { - $('#search-input').blur(); - $scope.showSearch = false; - minder.fire('hidenoterequest'); - editor.receiver.selectAll(); - } - - function enterSearch() { - $scope.showSearch = true; - setTimeout(function() { - $('#search-input').focus(); - }, 10); - - if ($scope.keyword) { - $('#search-input')[0].setSelectionRange(0, $scope.keyword.length); - } - } - - $('body').on('keydown', function(e) { - if (e.keyCode == 70 && (e.ctrlKey || e.metaKey) && !e.shiftKey) { - enterSearch(); - - $scope.$apply(); - e.preventDefault(); - } - }); - - minder.on('searchNode', function() { - enterSearch(); - }); - - - var nodeSequence = []; - var searchSequence = []; - - - minder.on('contentchange', makeNodeSequence); - - makeNodeSequence(); - - - function makeNodeSequence() { - nodeSequence = []; - minder.getRoot().traverse(function(node) { - nodeSequence.push(node); - }); - } - - function makeSearchSequence(keyword) { - searchSequence = []; - - for (var i = 0; i < nodeSequence.length; i++) { - var node = nodeSequence[i]; - var text = node.getText().toLowerCase(); - if (text.indexOf(keyword) != -1) { - searchSequence.push({node:node}); - } - var note = node.getData('note'); - if (note && note.toLowerCase().indexOf(keyword) != -1) { - searchSequence.push({node: node, keyword: keyword}); - } - } - } - - - function doSearch(keyword, direction) { - $scope.showTip = false; - minder.fire('hidenoterequest'); - - if (!keyword || !/\S/.exec(keyword)) { - $('#search-input').focus(); - return; - } - - // 当搜索不到节点时候默认的选项 - $scope.showTip = true; - $scope.curIndex = 0; - $scope.resultNum = 0; - - - keyword = keyword.toLowerCase(); - var newSearch = doSearch.lastKeyword != keyword; - - doSearch.lastKeyword = keyword; - - if (newSearch) { - makeSearchSequence(keyword); - } - - $scope.resultNum = searchSequence.length; - - if (searchSequence.length) { - var curIndex = newSearch ? 0 : (direction === 'next' ? doSearch.lastIndex + 1 : doSearch.lastIndex - 1) || 0; - curIndex = (searchSequence.length + curIndex) % searchSequence.length; - - setSearchResult(searchSequence[curIndex].node, searchSequence[curIndex].keyword); - - doSearch.lastIndex = curIndex; - - $scope.curIndex = curIndex + 1; - - function setSearchResult(node, previewKeyword) { - minder.execCommand('camera', node, 50); - setTimeout(function () { - minder.select(node, true); - if (!node.isExpanded()) minder.execCommand('expand', true); - if (previewKeyword) { - minder.fire('shownoterequest', {node: node, keyword: previewKeyword}); - } - }, 60); - } - } - } - - - }] - } - }); -angular.module('kityminderEditor') - .directive('searchBtn', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/searchBtn/searchBtn.html', - scope: { - minder: '=' - }, - replace: true, - link: function (scope) { - scope.enterSearch = enterSearch; - - function enterSearch() { - minder.fire('searchNode'); - } - } - } - }); -angular.module('kityminderEditor') - .directive('helpBtn', ['$modal', function($modal) { - return { - restrict: 'E', - templateUrl: 'ui/directive/helpBtn/helpBtn.html', - scope: { - minder: '=' - }, - replace: true, - link: function ($scope) { - - $scope.enterHelp = function() { - var hyperlinkModal = $modal.open({ - animation: true, - templateUrl: 'dist/helpDlg.tpl.html', - size: 'md' - }); - } - } - } - }]); -angular.module('kityminderEditor') - .directive('selectAll', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/selectAll/selectAll.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - var minder = $scope.minder; - - $scope.items = ['revert', 'siblings', 'level', 'path', 'tree']; - - $scope.select = { - all: function() { - var selection = []; - minder.getRoot().traverse(function(node) { - selection.push(node); - }); - minder.select(selection, true); - minder.fire('receiverfocus'); - }, - revert: function() { - var selected = minder.getSelectedNodes(); - var selection = []; - minder.getRoot().traverse(function(node) { - if (selected.indexOf(node) == -1) { - selection.push(node); - } - }); - minder.select(selection, true); - minder.fire('receiverfocus'); - }, - siblings: function() { - var selected = minder.getSelectedNodes(); - var selection = []; - selected.forEach(function(node) { - if (!node.parent) return; - node.parent.children.forEach(function(sibling) { - if (selection.indexOf(sibling) == -1) selection.push(sibling); - }); - }); - minder.select(selection, true); - minder.fire('receiverfocus'); - }, - level: function() { - var selectedLevel = minder.getSelectedNodes().map(function(node) { - return node.getLevel(); - }); - var selection = []; - minder.getRoot().traverse(function(node) { - if (selectedLevel.indexOf(node.getLevel()) != -1) { - selection.push(node); - } - }); - minder.select(selection, true); - minder.fire('receiverfocus'); - }, - path: function() { - var selected = minder.getSelectedNodes(); - var selection = []; - selected.forEach(function(node) { - while(node && selection.indexOf(node) == -1) { - selection.push(node); - node = node.parent; - } - }); - minder.select(selection, true); - minder.fire('receiverfocus'); - }, - tree: function() { - var selected = minder.getSelectedNodes(); - var selection = []; - selected.forEach(function(parent) { - parent.traverse(function(node) { - if (selection.indexOf(node) == -1) selection.push(node); - }); - }); - minder.select(selection, true); - minder.fire('receiverfocus'); - } - }; - } - } - }); -angular.module('kityminderEditor') - .directive('styleOperator', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/styleOperator/styleOperator.html', - scope: { - minder: '=' - }, - replace: true - } - }); -angular.module('kityminderEditor') - .directive('templateList', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/templateList/templateList.html', - scope: { - minder: '=' - }, - replace: true, - link: function($scope) { - $scope.templateList = kityminder.Minder.getTemplateList(); - - } - } - }); -angular.module('kityminderEditor') - .directive('themeList', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/themeList/themeList.html', - replace: true, - link: function($scope) { - var themeList = kityminder.Minder.getThemeList(); - - //$scope.themeList = themeList; - - $scope.getThemeThumbStyle = function (theme) { - var themeObj = themeList[theme]; - if (!themeObj) { - return; - } - var style = { - 'color': themeObj['root-color'], - 'border-radius': themeObj['root-radius'] / 2 - }; - - if (themeObj['root-background']) { - style['background'] = themeObj['root-background'].toString(); - } - - return style; - }; - - // 维护 theme key 列表以保证列表美观(不按字母顺序排序) - $scope.themeKeyList = [ - 'classic', - 'classic-compact', - 'fresh-blue', - 'fresh-blue-compat', - 'fresh-green', - 'fresh-green-compat', - 'fresh-pink', - 'fresh-pink-compat', - 'fresh-purple', - 'fresh-purple-compat', - 'fresh-red', - 'fresh-red-compat', - 'fresh-soil', - 'fresh-soil-compat', - 'snow', - 'snow-compact', - 'tianpan', - 'tianpan-compact', - 'fish', - 'wire' - ]; - } - } - }); -angular.module('kityminderEditor') - .directive('topTab', function() { - return { - restrict: 'A', - templateUrl: 'ui/directive/topTab/topTab.html', - scope: { - minder: '=topTab', - editor: '=' - }, - link: function(scope) { - - /* - * - * 用户选择一个新的选项卡会执行 setCurTab 和 foldTopTab 两个函数 - * 用户点击原来的选项卡会执行 foldTopTop 一个函数 - * - * 也就是每次选择新的选项卡都会执行 setCurTab,初始化的时候也会执行 setCurTab 函数 - * 因此用 executedCurTab 记录是否已经执行了 setCurTab 函数 - * 用 isInit 记录是否是初始化的状态,在任意一个函数时候 isInit 设置为 false - * 用 isOpen 记录是否打开了 topTab - * - * 因此用到了三个 mutex - * */ - var executedCurTab = false; - var isInit = true; - var isOpen = true; - - scope.setCurTab = function(tabName) { - setTimeout(function() { - //console.log('set cur tab to : ' + tabName); - executedCurTab = true; - //isOpen = false; - if (tabName != 'idea') { - isInit = false; - } - }); - }; - - scope.toggleTopTab = function() { - setTimeout(function() { - if(!executedCurTab || isInit) { - isInit = false; - - isOpen ? closeTopTab(): openTopTab(); - isOpen = !isOpen; - } - - executedCurTab = false; - }); - }; - - function closeTopTab() { - var $tabContent = $('.tab-content'); - var $minderEditor = $('.minder-editor'); - - $tabContent.animate({ - height: 0, - display: 'none' - }); - - $minderEditor.animate({ - top: '32px' - }); - } - - function openTopTab() { - var $tabContent = $('.tab-content'); - var $minderEditor = $('.minder-editor'); - - $tabContent.animate({ - height: '60px', - display: 'block' - }); - - $minderEditor.animate({ - top: '92px' - }); - } - } - } - }); -angular.module('kityminderEditor') - .directive('undoRedo', function() { - return { - restrict: 'E', - templateUrl: 'ui/directive/undoRedo/undoRedo.html', - scope: { - editor: '=' - }, - replace: true, - link: function($scope) { - - } - } - }); -use('expose-editor'); -})(); \ No newline at end of file diff --git a/dzz/system/ueditor/dialogs/kityminder/kityMinderDialog.html b/dzz/system/ueditor/dialogs/kityminder/kityMinderDialog.html deleted file mode 100644 index 911eef7..0000000 --- a/dzz/system/ueditor/dialogs/kityminder/kityMinderDialog.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - KityMinder - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dzz/system/ueditor/index.html b/dzz/system/ueditor/index.html deleted file mode 100644 index a416418..0000000 --- a/dzz/system/ueditor/index.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - 完整demo - - - - - - - - - - -
    -

    完整demo

    - -
    -
    -
    - - - - - - - - - - - -
    -
    - - - - - - - -
    - -
    - - -
    - -
    -
    - - -
    - - - - \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/addKityFormulaDialog.js b/dzz/system/ueditor/kityformula-plugin/addKityFormulaDialog.js deleted file mode 100644 index c9b7e55..0000000 --- a/dzz/system/ueditor/kityformula-plugin/addKityFormulaDialog.js +++ /dev/null @@ -1,74 +0,0 @@ -UE.registerUI('kityformula', function(editor, uiname){ - - // 创建dialog - var kfDialog = new UE.ui.Dialog({ - - // 指定弹出层路径 - iframeUrl: editor.options.UEDITOR_HOME_URL + 'kityformula-plugin/kityFormulaDialog.html', - // 编辑器实例 - editor: editor, - // dialog 名称 - name: uiname, - // dialog 标题 - title: '插入公式 - KityFormula', - - // dialog 外围 css - cssRules: 'width:783px; height: 386px;', - - //如果给出了buttons就代表dialog有确定和取消 - buttons:[ - { - className:'edui-okbutton', - label:'确定', - onclick:function () { - kfDialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:'取消', - onclick:function () { - kfDialog.close(false); - } - } - ]}); - - editor.ready(function(){ - UE.utils.cssRule('kfformula', 'img.kfformula{vertical-align: middle;}', editor.document); - }); - - var iconUrl = editor.options.UEDITOR_HOME_URL + 'kityformula-plugin/kf-icon.png'; - var tmpLink = document.createElement('a'); - tmpLink.href = iconUrl; - tmpLink.href = tmpLink.href; - iconUrl = tmpLink.href; - - var kfBtn = new UE.ui.Button({ - name:'插入' + uiname, - title:'插入公式-' + uiname, - //需要添加的额外样式,指定icon图标 - cssRules :'background: url("' + iconUrl + '") !important', - onclick:function () { - //渲染dialog - kfDialog.render(); - kfDialog.open(); - } - }); - - //当点到编辑内容上时,按钮要做的状态反射 - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState(uiname); - if (state == -1) { - kfBtn.setDisabled(true); - kfBtn.setChecked(false); - } else { - kfBtn.setDisabled(false); - kfBtn.setChecked(state); - } - }); - - return kfBtn; - - -}); - diff --git a/dzz/system/ueditor/kityformula-plugin/defaultFilterFix.js b/dzz/system/ueditor/kityformula-plugin/defaultFilterFix.js deleted file mode 100644 index cf8d9bb..0000000 --- a/dzz/system/ueditor/kityformula-plugin/defaultFilterFix.js +++ /dev/null @@ -1,247 +0,0 @@ -///import core -///plugin 编辑器默认的过滤转换机制 - -UE.plugins['defaultfilter'] = function () { - var me = this; - me.setOpt({ - 'allowDivTransToP':true, - 'disabledTableInTable':true, - 'rgb2Hex':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 (!UE.dom.dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && UE.dom.dtd.$inline[node.tagName] && !UE.dom.dtd.$empty[node.tagName] && (!node.attrs || UE.utils.isEmptyObject(node.attrs))) { - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || UE.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 (UE.browser.webkit && (val = node.getStyle('white-space'))) { - if (/nowrap|normal/.test(val)) { - node.setStyle('white-space', ''); - if (me.options.autoClearEmptyNode && UE.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标签不允许嵌套 - UE.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(UE.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.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(UE.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 && UE.dom.dtd.$inline[node.tagName] && !UE.dom.dtd.$empty[node.tagName] && (!node.attrs || UE.utils.isEmptyObject(node.attrs))) { - - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || UE.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': UE.utils.html(val), - '_href': '' - }) - } - break; - break; - case 'span': - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - //将color的rgb格式转换为#16进制格式 - if(me.getOpt('rgb2Hex')){ - var cssStyle = node.getAttr('style'); - if(cssStyle){ - node.setAttr('style',cssStyle.replace(/rgba?\(([\d,\s]+)\)/g,function(a,value){ - var array = value.split(","); - if (array.length > 3) - return ""; - value = "#"; - for (var i = 0, color; color = array[i++];) { - color = parseInt(color.replace(/[^\d]/gi, ''), 10).toString(16); - value += color.length == 1 ? "0" + color : color; - } - return value.toUpperCase(); - - })) - } - } - break; - case 'img': - if (val = node.getAttr('_src')) { - node.setAttr({ - 'src': node.getAttr('_src'), - '_src': '' - }) - } - - - } - } - - }) - - - }); -}; diff --git a/dzz/system/ueditor/kityformula-plugin/getKfContent.js b/dzz/system/ueditor/kityformula-plugin/getKfContent.js deleted file mode 100644 index dcfed46..0000000 --- a/dzz/system/ueditor/kityformula-plugin/getKfContent.js +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Created by zhangbo21 on 14-9-2. - */ -/* - * getKfContent : 将image的src从base64替换为文件名 - * param : callback -- 回调函数 其参数为替换之后的内容 - * return : void - * */ - -UE.Editor.prototype.getKfContent = function(callback){ - - var me = this; - var actionUrl = me.getActionUrl(me.getOpt('scrawlActionName')), - params = UE.utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = UE.utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - - // 找到所有的base64 - var count = 0; - var imgs =me.body.getElementsByTagName('img'); - var base64Imgs = []; - UE.utils.each(imgs, function(item){ - var imgType = item.getAttribute('src').match(/^[^;]+/)[0]; - if ( imgType === 'data:image/png') { - base64Imgs.push(item); - } - }); - - if (base64Imgs.length == 0){ - execCallback(); - } else { - UE.utils.each(base64Imgs, function(item){ - - var opt ={}; - opt[me.getOpt('scrawlFieldName')]= item.getAttribute('src').replace(/^[^,]+,/, ''); - opt.onsuccess = function(xhr){ - var json = UE.utils.str2json(xhr.responseText), - url = me.options.scrawlUrlPrefix + json.url; - - item.setAttribute('src', url); - item.setAttribute('_src', url); - - count++; - - execCallback(); - } - opt.onerror = function(err){ - console.error(err); - count++; - - execCallback(); - } - - - UE.ajax.request(url, opt); - - }); - } - - function execCallback(){ - if (count >= base64Imgs.length) { - ue.sync(); - callback(me.getContent()); - } - } - -}; \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/kf-icon.png b/dzz/system/ueditor/kityformula-plugin/kf-icon.png deleted file mode 100644 index e9977cbe54374f5aad6e58a074f6ecac9291a3b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2936 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 - - - - - - - - - - - -
    -
    - sorry! Beta版本仅支持IE9及以上版本的浏览器,正式版本将会支持低版本浏览器,谢谢您的关注! -
    -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bar-bg.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bar-bg.png deleted file mode 100644 index 9dedcc678245832448f459c712e72039d36a2d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmaJ=J#W)M7&fg0RizFrNHCo)3zdk!61&YQrfTejTEbCCA~hq9eMwHKedc_@PDU04 z{{SKW0y_c;Rwj1Df8Z~0PUDn;aI$@0&-1*We$(qdIXZlBC`rrkNt4@;yZ3i(mo`^5g&O^Q9vWvFEDZ*C4wzU z&9gl5gE{74jHe{F;P200At0dzFAY!i5*yFR#fssSg4a%sydJPA!@!Vh)j-uWV4AX4H%wD|1awu?6;(WDRjVVz zMEVKX3@EIzaDw_yXJbq3EI8vlL5h-PnVi*R%BG6eXfz59U9Sp6HC@Ks&#Q4-DHR-? z28<+}&=?eo{+KSf1%;>AAwi1cuC@rX6f-7?|I0LQ|`wB zb{z`}1(}c#)#|54-7y@eqlwY3weB&L~A;|0;BOB)X?qZrfIDwvCTt(d|sM u^^g4hYw=6mb)EBJ{&W263$gZZO9!fS{B7^vr)O`AOUZ3_osX^Oul@jSrWpJH diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bar.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bar.png deleted file mode 100644 index f98ded737e1ec99b2daf3b72dd53012f84a6439d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1067 zcmaJ=&ui0A9M2pM9h6mNuuafs=H}G3Y1%bw!@3_$nyp~U))m&9rpenHw&Z2W+nNoL zO++Vx>>qGmJc@eoq=$iQ2l3!R5%H$rS&QHhM1ASn>R~k`dEfW=d_Lcw@AhP7+}GOG zN>P+AJt1bvdW?KSM_R~#?ef%dvUK899#5lLTvBXEjcKR=LE2E}U=}Lc%Hm5nL{ZJO zp3CFBe2G_)5mY=(&^0W=CSoJ5rKs}|g94n>%>@1B`8Ex7EkVyj<&bO%u&7V0+HiU` zlT%mc)wo8F41*z;Cjth<3UG}D)8X9&UD4%4 zWX~~dJRbKn!r=fx1e_HUD{jDax@!s|bW~fnu#QaNDJliDgcCH0bUy{ds>_;AwM?X7 zjH_4-8w`0V)qt}6f2d*9(GJeSzwsU@?BrG~$Yh~|mTZ+YZnoQVW$}Uy6^!g0LJPGj zP8JbHP7zr^nC3v=jBaYE5xFS-Q3~1sSSF3a5p@v*<6by@a7NM;#Lrt=g0V*l;dgEBchI&=5 z)-aY>sv(yl!7yH9|7mpXh)j=X*2k7?>VpqWGVL}Q>xnJlGr1D?)8bgp{ZRP%`}asQ z_XK`x@%J?Cyjg#Lcw>)R?DcPdE&E2NUcFd5xj~iHvr%wwc(niM4%%!Fe`Fu{?(~3b z=bk06-V{Ii+q!rCrwY5}&g4KxRC~KQB}l%`gACyNk$e~%7T%q>c=z>Y0sOkv`@QW# s=INQo>-nyY!9(TKeSzlo@g}ONh0=C9ZtN{@@!s`Kr!wNB*X!WnmBXq@IQ>f`ZLQ(`N0^xMZ8u223e!VSCdwnYN)#CQha%ErOsI z_vS$a|A8kj-t^$vzp!Ty;>C+6L2=S;st0RGG9Nt8^S<-G&zyGJclY|SL5AH`T>!&PbyXb+EQ;t<5?9v&iK1f2MenNFd;Qju94(xl-#ev{t z7$FTJ#^$*CQ5re!6j3llV?WgRZy!GL!1px%q-slc)IbxzwIrywZ1>&e)UA2^(H&4v zArlA?bwC=-!WgC+ztV+lo^6XfSV8DiRwC8_ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bottom.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/bottom.png deleted file mode 100644 index e3df3d1c4a4291c9f812ac4a35ad4592e1cc671e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmaJ=&ui0A98Vq0F&yHMvAGG4H`EC>Y0@@p!{XeU%mtb;y5f2ewlsNN!QQ9ijv~nZ0GTgc+j+2tB<}~G&*%Gn-|y#b&(7TJ z>Auj-Fiej&trX~Zj((k8r|AFHw}Xdt7$9ni%;5^D89rhrEL=uFbBrZaK!&xkx`)OX zrUTl=5-I6<$;1w8L>M-7Jj!O6vGLF|%wgv&{=Tiz0sw2nk-`67&`0d`e1-k}wJy52Vq2t0EPYsYWcil3|q)PvW>*t;W`p zEcTZ;KAX)(8iEj~hrHwp@-T!$pn#tI^FZ>YixYvMpV-jE`LEcAwgM|Kiif^hzvf%0w~zTE6r9$M*e~ zsgB<8@aN&t(a|Hde_-I!3+wys%bjO-_dY#fKW@V<^(^QFf6)77Xz1CE yD=`fWj%>ZYdoMP)Sg!P)??bz>C;ii>nOG;Yu-g6h^ZJKd(e=~R8RgC7;?^H97C9jR diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/btn.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/btn.png deleted file mode 100644 index 31c0b52f0662a08b3265963960c222f5e72ddda5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 926 zcmaJ=J#W)M7fW^I=Z$e3jw#X>V6BMj`wo8Uh7g2l6Q+z^E8FdVwfb)F!fM50$< z#5_tkTM!z@dE)sq%)kgw!q|X6KYxKB3=DW$cVs6q@iaVHQao68hyHTr>j6A|2pT!! z0ug2&$fL73MY#c2x`@wI1NTAdg0aG3r~Lbu7Lz;FPfhNm7<&VpbCgok)tV>xG7@Rym@YE@I~8 z)i~WR6)c?kG)!1XVo)f0BQj?O5DVsAc;Qmf2Lzw%#nc7V+m1j#~`1s(0cmn E57{#v_5c6? diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/down.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/down.png deleted file mode 100644 index 31c0b52f0662a08b3265963960c222f5e72ddda5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 926 zcmaJ=J#W)M7fW^I=Z$e3jw#X>V6BMj`wo8Uh7g2l6Q+z^E8FdVwfb)F!fM50$< z#5_tkTM!z@dE)sq%)kgw!q|X6KYxKB3=DW$cVs6q@iaVHQao68hyHTr>j6A|2pT!! z0ug2&$fL73MY#c2x`@wI1NTAdg0aG3r~Lbu7Lz;FPfhNm7<&VpbCgok)tV>xG7@Rym@YE@I~8 z)i~WR6)c?kG)!1XVo)f0BQj?O5DVsAc;Qmf2Lzw%#nc7V+m1j#~`1s(0cmn E57{#v_5c6? diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/top.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/custom/top.png deleted file mode 100644 index ecda0704e84186b1f8088cc3a81f0050780b663f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmaJ=PiWIn9L}7ZGTlKhGI#Ltc2TfNleTX*EE~0HU9lOXE3D#SrpfCXw&ca+&1OZY zI24AU;z1PAfkzMGT~Nf+@Zwp-!A>Gb^(vG3(zTrjYe@3`@O|I!_kO?ctkxmX{4;^LmKk1KVY6j+>YYT-{j06qNCz}xGg}?g3u)e?j=>yWG7$o>u#E6O_ zK!_LP353M6K#Gcz5M?ilh;ccAWN93)_pQec%*R~Cd?t;W}4Jn;%t>r z;#Y|a(sKx$p0^y6)ci9oyr#)H$EUhu;GC*Jroda4DN9k5kPwPxP)riVOe`7Crq7}A zR8~x+;_2~NhpQ4}#l{ZpaLs*gyeBubg6*=%D)y{v*vxvw2CXB@R_|QIo_cMr**h1h zCs$y}2w`LYYIJ9dxhI@2?X&BpP*BmL+{ zb8G9~sV}=bKi8hFt!*saUw=Gu>EXbW+YMo3>ej2q_1!^r`+=0t=iPz)qxxjy*NugP pcb+x3-fW+E_x#Y;i#w3(8|03TmOccd_V@7KfW^I=Z$e3jw#X>V6BMj`wo8Uh7g2l6Q+z^E8FdVwfb)F!fM50$< z#5_tkTM!z@dE)sq%)kgw!q|X6KYxKB3=DW$cVs6q@iaVHQao68hyHTr>j6A|2pT!! z0ug2&$fL73MY#c2x`@wI1NTAdg0aG3r~Lbu7Lz;FPfhNm7<&VpbCgok)tV>xG7@Rym@YE@I~8 z)i~WR6)c?kG)!1XVo)f0BQj?O5DVsAc;Qmf2Lzw%#nc7V+m1j#~`1s(0cmn E57{#v_5c6? diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-bg.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-bg.png deleted file mode 100644 index 4f9db6bee66f6ae920fbb433cc772c840a723437..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmaJ=yN=U96g8wET4^N^6hMJSvkgeZ&)6uVm?#@3tR);piKV2(u_uX@wa3^K?4+Pr zBqaWTf`Sgw@B+O}YzY zQIZ9by;?=8B2`23J+OHoixztm)HgbtSZt-k8Kn^tgfvb0RN+ZH6{K3NmTSmzg&``* zGNevc36q0D!N7?d`w{g?2y#VdOcqp!EYtHN1kqMDOg3d=1rstS5+q*Ck5m9H>;KRo z*rF5K$A9wur*L8~BP{fBLKd;h8aFw}Lq(_+V~3L1CgixNVsAz$NoFJht$_w^5B<<1 zX>wg$g-*$qFitd;w}Ol z(t_)4xth3>n_D4>SY!jo{uAtVViJJ$k&(YU7h|X1hU@LjMQ!io3M?5RZ|q-6yX6w^uFKu=uZka~Y&OVQSoSikUmP)0)r@y{md4Bzx^7`$ivd9fz Vl~2EZdb7xHkJ;`T?+zcG{07G#ARYh! diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-left.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-left.png deleted file mode 100644 index 2f8c46ee09d0ff24cf64b524f9ad08792278bfa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 982 zcmaJ=O=#0l91nKrm<+u6fv`vBLBZyuU9;uUY_>`3DrStXbG^AVd0j)7yqLV%Y$5|e zL=eQ2HxGUuMDgN94?BDC;7wE*vdeCjfr3M+FJ0Stu!bb>gWvD>|G)qL_ioS5oF5)K zF~l&;aA8_2((w@ejtm~4|M{(*XLLADa%D1ytE6H0h{;&Ef~Kbe;X=owY=%isg`Q#75djsnWV;I6e7nH{+fvwtlrHF=ifZ=snvdqz zW=iH--IOhMY7(SFNCg~33=lfYZU94tZR~LfuzN|B^;w`|AAuB?jGKZe z0!iY;v6Lis$y z#EY^lM;eJloFd}Es!NP8?gpb>1q}tJZ+pbXE{GJ33SJ=!OEcX&g5&jM-Jnw@S};B| zJYM94=ty0luKyqEI6ZVgifBLIe+mbsRS)q+6yO!#q>ZbNMxi{Y`p6*IFJZjgt>SDA z6CBjA2h=$UoL;b93pau@ZM?3-f*TOSHBmuRSgOF;wgoe4HZzeQ&*r3LQWSH^tUMuS zgp@cTnhYN`_OC{Fx2SufY0tKF(K9}BsoQ;O>sL>7-uMF|l0NeQ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-right.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/bar-right.png deleted file mode 100644 index 9772c54a68519446ef3c4a307c7c6477f390086c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 994 zcmaJ=KTOn69Ik?3NI(okBa1J+0Zq96z3bVAis!Y!B^L2G~n~S4^qfr(Y7Y7yw4GtzI8Vw-69(SjMXVdom$@hJ~-~0W(cYAtjqPJ(L zhoY$7;-pq0V>kKwj~*uft6N{6k>M29D|iOYdHIS4j;+$OS%WkD0<1ZcYXO{D zn<`stiX_<$=CiWS ziNZNCCrEN$Z*nzcExXXeO|ISIX1TW9#0suYB5N>kR-io|AQ#k+tT^p+(c0=YxOUrI zGJ0DsOOj!e#{Sjl<`!{JGHuzGELz5g9&vj>Z0+t0eI{4pT2afF;}6x{{r$0yuDPcV zKfM?}mLE)|hEL|$$JD^Uz`c#m`<>fAzJJ@;_;~r(-p-x=TQ~2X-n5SI{oLw4ab=~i qZ{*4D?)rrXN45vcxp!}0Q-`{!N7vc+(FD7h+`6JZr9HnmxBeS?8#|N$ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-bg.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-bg.png deleted file mode 100644 index 450faa2763dc0392583e797081f2ddb2be0c94c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 941 zcmaJ=O^ee&7|w2?E{h8*qM)ZS1yR`Mqitr}&{*0ebpxi9Ze@EkO{Q(=CKHpXNsA|M z{tEpC!k#>M@Fs|Q7W@-}KfpTaHeCpdOr5Pd*S@rcA$h?u5>hX@#+HAX#TIrHbAQJrCOtlJ-uf%!zXvBy~{ zhD*GFvKgk{NCL~AA_9hJ?D`7(^TS6LxQ@b}Nv2>1Dw?<_ix8bII(>UFwQCOBcm(Q+ zOa(kdERcBTek3OfyV8~EJl*D5u!4}O!d@mdFuOp-Ap#OtF4}@90th*=B0(q~fs!DW zc!9pKC{|<%%B5qlepnhUbVhPdYp-L`mBLO431ps+%P-KU0KwRvDRM8sZ8Bti8>E#i;U?b~C>oU=T@rf1iA}6Fr%7CW%f2ike z&=KjOt9<_{9QEe`;(I8~7Dcyj5?_b++eH*~;ZYvAH(0vWg~Ypclh?k*ZZIH%L@bS<&PFSyVsd` V_u9qNa^YoqfegK)y=y&t^#_8)AY1?d diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-left.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-left.png deleted file mode 100644 index 01b9255a2b102faaf4f70ff8a54aad65b71bcfae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcmaJ=J8aWH7`FOSsZ>-61_}cwmjR^4j-A9IrG6 zctVndWgtcck&n_>iU@I-kf4|ZgNLQjJhKLiYJL!lu4J}BhzohX)9G-X7>B(&FQihb zP(u_W6cO>e4$*^%<1Y;rROB0;V0@svyud}n zBMpI?_J62tkI+6TqSJi;DeRZJF5-*G$8FD`jjJt%pe2CWdJ*1*jZY5^d>WXw|D-1sW)DTsnWHDS52t3M Y%>Cb2T6gx>FN9aEklRpStyX$}0Ls}k`2YX_ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-right.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/scrollbar/edit/thumb-right.png deleted file mode 100644 index f74673a3a57b3b421d8c0310a992e3f73e804980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 988 zcmaJ=PiWIn9L_cz+hnkVhdB>EG8hwV{&k7#W3g+K&K1lkU12>gOe$ z5A)zjP{ErF@uVmy6Az+zk!>e$9z1yRCc6vsrE5D6){x}A-{bqf-`{tyuySL3Y-)^Q znDP9wUZm?e`b~@s)Bkt!=7=sANv=#*ag{X905KUGR}jd%<_0Pv({A1Rf)*HNh;>S3 zQZ{Zv3%i^dW4OrmDVt#y(vfdkbwoe~Z8)CF{(Ap`1&*zYOWw^mBl zR^3Y3Z2CG_h#(bk5ivpJZh9e%RJN@P={`Q@SD^1YXu3 z18r3SvuloL<7RlJjW-OK_d;TN7Ru`?OBFcBv0+A#<<$I=o>SzEDCUy$x~6MlR?jA> zDW;?@SI1VvMIPyL?K5t!FE<_q*QcI!6gan$y%b;DBu zoL&!24f z!VNxYd%kCU4&Rq^#!yP}o3i1T^#ObU&1Umkzgn%Ts`?gz{#%>PhGCd*Lw>)%(P+>& z^a^k~odDG9_2*C|5&^K^?^RVb51^Em%Vhx5>D1uwb~^x0r}KP1TLMr@jKQ@a{z)MXs?w@g%Hy3_uX!HEEfBLqvCeE0dP1Ry3_0R^7;H= zFi0koR*wow>2Np%FdB^vzPA16;V@HVZ6C5MKbnf71Ofp7m&?T}pw(&t2!%ohUzTON z-5w5ytpX%T(hF_~Efxy^+wIo;BrA%tUaz%hpU-EAX0zE~F!=00ih1#0bUYs0?Y7tJ x^>{pmLLrezJg-?Umzhk)B;a%De*k|3@CD!kB;@88S<(Oi002ovPDHLkV1m@;_M!j) diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/bbbk.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/bbbk.png deleted file mode 100644 index a793366065a08f1d8e1e50ff1f2a7b20e3e8d94f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)6ov1^C~9FL z1cTTJ0l|oZNWfkTi(nyQD}vbC+4=x>mih#-5m7;`t!xAXX+#@;ili5fdbikRSy)_G z9oa2%%3+v~Ip@w{2qMBO#lVYY0sbDq-rS+RskaJgJKj=P(HKWekt0D#x)6-CkI zat((=yi+$U^85X&s!Ecis%ouPGYo@%20YKN*J}Vcolb-h`hX{&`ahVW?>Zij<#O3H zO+;i__Iy6K+ikboP3;B_ha(sa?)Q65(1N!pO2bFgpkAGplO;YigvqwI-LrF zKp_J{$k(`sfJyvcmW+jf>9`!(>JDx6%As)xyPBY|dQ4nx-&C%U@;c!F+N4~@JM2|hKovQ5y zA6euWwN0(WtZwI*MZ{b`EB0sF!~Oh?jBOqF=6>2c`zgbJUW>lPt5$V495A@HEjM!7 z>s@M|PFLUjp7*?R*0Lqsmo7y`AA7T_&&ZHbU}A9|vw%|oUt?w3{qI4i5+x*(^|>vc z`(D;L{pqAw}YeTu7O>WQx^yxs=GX`E!fhU7ppI@fAe!M>S7g7^PXe1?W!( MPgg&ebxsLQ0MLMa5C8xG diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/circleds.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/circleds.png deleted file mode 100644 index 7f455e85c607d3634d43780d2c1ef6f6789364f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmV-w1C{)VP) zI^D>~2!5gG=jVZefv&DDkH<4RJBtunU0ucVrcfwmW@d^4gu~(b`g&Zsxw%m)m5D^6 z@EVWDO(qin?C$P<`P|;#7Aj2`P*G8FaBzStYPEW6YYSJ>=`;ZB?d{=WZ*OlP5D);w z#cniwnY2uh$cR^Ye3xq6jy#lQ%avySuw_rO*Mx!^4E9&1S2tti%ceP zd3m|V<9T~~;{rN5Iu;fd_)>%r%IEWhD3wYxnatAClH2W8DwVlhZfxLmG$KL7olT(GmVv%$f^ zwzjsivNEYuT3uajG#Z1!Ab0w6jr#xV`0oQg0eA0$40-K#w68ju5&+~b%VHmoupUbvwB>=K41As6L z_kBN|Wmy7%<2Vukp63C;PeB9~ex77XDFATJe`%S1za2>_wQXA!01*X6ds8Ap$kmH3 zz~_LXD4M2`(5`*o2Y{~YRP`d|5*?Qne_1aBjtMgi!@YBwCIB!^Q$h|HW5>=Q2&$^8 z>pD%-!;|N^gn@&I5340f5|LOU__O1jGseboB!pO&700orX+mxB`a1r7zzt(gPYN&R RA>;r6002ovPDHLkV1fyKj{N`t diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/daleth.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/daleth.png deleted file mode 100644 index ac705c36d25fcf682b8c89de7e79535b0d49978b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvcm7LGZJ;(0)!3!W~HAs)xyPP67~Q4nZj-@3tY<^K2kR~}qu zjug`@jlF)n@WHm1Hs^OV)ZQ;-jLQDvX?E-Z)3)5htR9;3|C*jJKVkX(hWy)erzW!` z^e{GT{if6MSFl~l&~xE?D4k)Ej z6d8sA0IgQ5kpC$vpzC@Z$9bHlX~`aJHk)3rC(AMbJRT24QA+jz0DRxi@YL$+81Ee3*PI5oL6^(lgAPi(BQh`vJ9QkxN2n?ucELCjYdz{F+=VP(h?RK;M2_D&0W4>V2VIIh?0$+9fVvSnF3&jT2ZMxnkUN7ZVz zQmK56G#ZV~W&= z03wk{D8O#F13;3b+lt5I0K6BGKftmqXUcAiAP4{q!-N8`EDOLiO}Awj27q?E9SR_d zA^=_2-PUTg0?_St!`_2ht>#X9y`sfJyvcmE~$^w-YbAYeV#6kAs)xyPBY|UR^V|J7Sz>Kk~`R4EtCIn-2*kN%;RO6 zT}KzH=Kp)B$r(7O_>iweOdE^69*5!@=g(87ObW`9wBFCC)MvQjqzc1>-xuc?C$DFo z8no?{+46hU=Pm2^C@$S{O^^HI58I5jlF3!?w^s#ZyShkS-Y=H1cK_XFhHig)1P)nl izxV2kz7iwn15Pd8Q<^XI3F@ArFe0(q%gt?qWa=lNEv1pt%D#C^Fpz(t&M0N89cq5wqH>2x$r z69^!pa5y{|3`c>Sj5+OtA8}Jev@A=KBvG9#%ktrH@YBiL?KYRo zS(fz}1_FWcc>J7pyC!77b1S0000l;a+3rssK|0sd0g zb@`t-j&)sUS@pyIwJ7;$6(0000< KMNUMnLSTYW{*!$G diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/hbar.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/hbar.png deleted file mode 100644 index 8809ef3681740ad6cba9eaf95f4746247111061c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)d?=6rY}-~2v_>_j_LgLKY1M14)ubqY;43W;379Iq$k|tyWVMC1?h!szxFa+qR3vVk(t# zU6=E>+btT6hL8afEtg9GyvFlg+%A27ygmZ|U*H?}=e;lWs))z{0000Z1Z@N>!PZyj1H?*EP_VH|{=h;-ajys*xfJIs z2M6a=yTk4d%{AcWvI@qu5)Ti_oEQ1>h9klZ079XV!mQWpLZQI({9>`t!6E>Y$pnDOWQxb*k|c?uSSpoRmVMQt z>-9LPiG&Ur5JDJ+ zp(skb6NtrPI`lx6<-_5S&1Ti)YPAC3^?G&4px^HU5ClO@b~+u!G#xTf0??2ym&<50 z>eB;;VKfbpWf?#&ms6&j&F1+GlmNb-AO+QG6+k|p2QVIwN2Ag67S-!@0Nrj^P5S+Q zmSvT(AP6rtx!3Cf2#3RJ(&O>aG_ABc8jZemi+ny`u~^iQ&1Tc#aAY!>%jJ?xCVxJ` g@cwwc1^&LkCl8Po`2kk;QUCw|07*qoM6N<$f*B(1djJ3c diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/im.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/im.png deleted file mode 100644 index 201ec05e4bb3069cfc4cfb6853f389e5bb63bdbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmV-B0>u4^P)5et8S zR@x{jf~}Ph5MpD}CbfmyX<=n+C1Mf8Sc$!zwb~dE5fn_P1Vj*w5>WgWbZ#-Qg!LwO z&Go`A_;z#749_|9&J05!gy1Lj3w~H{!2bi#H0^%BzaF3{3d1nTWU^AJ@I3EyI<955@ zNW0zM@AuCENRqUuE1%B;0LO6%q2+SvcDv1HnwsqQ`xlFaSvHr;O{Y_z&nF0iD2l48 zn!agf-8ETG?`31 z9uELCo6VP9LEKN!E`#kTCKiZMZ7;=Z@|9~_yG6SF_sT%SX=-A002ov JPDHLkV1hqr{M-Nl diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/mho.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/mho.png deleted file mode 100644 index 291f75054e0feea3b0bdb119589c534eca78aec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P);oVDL%dMx#-^US}8v!0mQxHk)R%S!GM5 z(sH>ZI1mWr^Lgzm%JWF4)A!2lc6-m-?e_1~p&ik5I#qS?c-&&K+_N0VscfN85Jgd6 z4>p@kI2A=6pUs(~xyisZ?H^gI22rAdyIDvSk18JpZFf9t;KmQmNF#{dT(zAeYP0(?7rb zBqftcMNz8Ns?Xx(^9g|EatR<7i{0q5ECVnM!zq9e zl1`^5lgWMG07#Pbgcf}V2JpB`?jOyZs;Y{jcs!nBvB2w0H-|wH`gVAUd3%;$4eRRQ>XKBqotG#caac)Q)YT<-<-dcAtR9tZ>gghC-lJ`hC_fUfH| z`fxb(`~3h`tJUuxd9&F7Xti4Rso88sQ=(0p=Xn5&#o|6S7z_YZDiue72Q}7ewd-8{ z9-wI&fJ`Ry^?U2>%9@f;czyarCcZWKFH;Ai9|wC6iw6m{XWaG-ENnDUokWvul0H@%kuGf3#n2ex8TtxtAjlLhzGP!4K;f@c#q8T|zlPp-?zJK8{AC)9G~C ze|>$;FpSx3rfHfWi0?~SDM1iou^2+A(P#ibybFwDjP%+PAJZ*OlRU@#a+ zat4C|4&B||t-M5TP1S1k)zy_C2%_ifQnuS|k|ZOMh}-R6eTn=MQxw(hc11Ij$?WXx zAcQm;&CAOR$8k=lv)OD?6t%X>b%AoZd~k5^{{FtZyDRxs^z_u@@#yvXuTia5`!^4fTnEx^0|0=2 zzmH9y&j$cJ&nxd>rHn@7@;a&2YUR)Ma5$8BtX8Xdw%Kd|@bK`U5P%;`p69Xo^z;M( zEX#@skB^T4V7J>90!WgqR4ScL2b;xW5dbbOF2n?f!vO%zW)t`7a=AV}J~kdQ%d**Q z79m8_bSjlv4!yp1wqa4u`#7ucWNSViAwW34%B~ kJCnJA`2Dl{1^lx<0meu{g?ijT^Z)<=07*qoM6N<$f{6`4UjP6A diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/wp.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/alphabetic/wp.png deleted file mode 100644 index 23f6541296fc04941c3eb652a55349b9b7cd8a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)f(q&E zM6j_4!6u+s36?&91Q9_jEW#ibO2Ed>#wYLrv=j?Ltn9oXsbgU}3$c)BVZ0DBTMP`# zdWlADmi*P3Gylm4;hdRqVT|FE`hpM30XTqv1W;8qolbAJ+h+l;M<#i>Tnd6PnM`PA zJRWyC9n&;5O{-KY;c)n7F@8XyP>9Bx%_fyf_4|FA@pwG5+3Z%WHK5z=7K=p^%d#wr z;vYk;R*OcX_5q1RVmh6grny)w3WdU@q0wmE`4iRvTAWNKuNn|SZvY^Kj>qFw1IKYJ z%ibz~s7;&AW*`u7yWN*tr_)JMlw2-nzl-AWH~<_D2eMQY#V`!ITd&vef5aNFTCD&e z7K@Q(Bofgyjl{aH1Hf=Nd9>`o7;k=kqxj43bz71cqUrJ?tz1vMh5PN8-U? z(ChWyd|Z3I-u-@0NG!|x{r)!tc%IjFT~*c5Xw+`EZCp4m=Vj*rUe*tN$eqU2O%6i< O0000`sfJyrpBE%uH`2RWe72TvEr5Rc<;rv>sJRuE{ruIa!eG@+sS(E=eqC)F6)0CrpU zD~^R1tQgq0vrn>J6Pb8+Rx0Or7e2lCe~;^&4xibs{kU$oh1LS5IyQ;6M497@7XR_I zc+TLU`E-u9&PnYL_oS0AMP;v@l6AXmUb@n+rl!=$U;FAknHY?tv)68oWOZ*4aJpXl z`;Uq5O4p7VZ?6h62s(2d|LS@6q;-cOmtvo_PD_Vj+zaNlTfhICKX*^=>?xmA6mH)a zIxy4l?)ldz4Sn65kCdN3wtFop00i_>zopr0K52ro&W#< diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/circlearrowright.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/circlearrowright.png deleted file mode 100644 index d29116286697f520bbbecf48c4710b0ef7a81164..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmV-l0igbgP)`sfJyrpBO{oJ#^(;W4U!E?GAs)xyPCeM$rXbK-xVc=DQMz!2eJDza6liWM0GhK2@XdvBLW+?3J616qt<~CY*PFC-Hb& zZi~RVpJyjNdbUd9c%ekwCLKnFV;vo#p_)ru1jHvFpX$Wn#F6a7@$mW1@AHb+ZT0J) zeEK$H!mMS+%~OIjzgiuTxLg{0>$1sNoAc`#oH$Bj$hvv7)+X1{dQ^{;1Uo@yxm qw|W-mT*j_H>gf(_DF^HsY8Wql2sEs_&SeD*1qM%7KbLh*2~7a*^N4@| diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/curvearrowright.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/curvearrowright.png deleted file mode 100644 index 265e1e018eba5388b2fce042a9b5ae1b271b7d9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmV-Y0j>UtP)HMzi5;sT*t|B~Ez&Y2pZ6e^6Xsl8y(Y*6K zhhYGKx~{FYSIRukxl@FQ+qMBf+M$$Uj9m^y?E5}`sfJyrpB0loK5Y}`Phd7dtgAs)xyPIKgCQRHz=>`h=~cV!YPV9;=25-V^BaFT6c zRw>~xzI``k2J=a|UwupL^;?#?3Qe>)=`GX7s`Epwr68=K;}4ro0wZ@_;@aG`wKC@{ zlY72TZZ?xhu6WOwu$GmWo8m66#^t#z~QMl-wQ^#we**3xg x6N6TL-xvRXNB5lKsMmk1PRi?x{n`J3*V0()xR;#7S)fZ9JYD@<);T3K0RUldQ}_S? diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downdownarrows.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downdownarrows.png deleted file mode 100644 index 457598cdfa6d802453d64fe782bd0d52ec574524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBWj4Jzrw;;!R(rZQhIkx*d+j3UVFdxUgv+ky1Z9p2-f?g*V7}{c_W*AR zi}}vm2kb<=JQi@8WX8X%|MT&Oz{7%>#a-5)1^&5V>m%Wx@!B#aTrJ{45np1=3 zuQTXRS}W?bWXe5WC7>S^9zFbF*wCTa;(IeHd+k}_$RFv)4_vQgdNc3oi`gOj8-dPd N@O1TaS?83{1OR1_W;Xx; diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downharpoonleft.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downharpoonleft.png deleted file mode 100644 index f1de8a25bcc216fa1f6ad507e3ec99e304071537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB1>Q-?j$J^ZSWg$n5Rc<;uWjT!5WwLYST9yAB75-cKdrn4vu7x!&XN#t zs@Psvz$G0XdNGBam!08&t?_KuJF@0Ly$A9cL(iTuce2%1a!GlA_RQ7JsBFQRta^*L g##iiNsFAl|Ob=5u$~<_b9H^MV)78&qol`;+0F>i5VE_OC diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downharpoonright.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/downharpoonright.png deleted file mode 100644 index b94a0b8643e221b70bf529188b36e5df8afd79be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB1eFqBp>qSqV;+g&Y8qg*NPgg&ebxsLQ0J76UUH||9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/gets.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/gets.png deleted file mode 100644 index 8d659f01a2c3ecc6e43c8a15337b137d15785a00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBevv047uA76vproLLp+YZof63FtjObfKU$4}-6KO*gww)-+v@ChIvnmo8}lR<@qo$ ztlj#OCA{gLwNjfvMdRnYyZa2Q-cJp>cI%)~#|eqgMtl0VY%f`UT~zR5lB<2}r^!<$ w73VE(n7Q>@HS5wT@8_@FlP%cspr3_*!c~@k0R=wmfX-y_boFyt=akR{0KlMID*ylh diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftarrowtail.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftarrowtail.png deleted file mode 100644 index d36a75aaa41615c556991242053ac2fdcb60086f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBRg0a=3*P{R7J0fjhIkx*J2jD$*^sAoeKM1ls*u)FJ}=QLPO2eJs&kr; zIBG5AGh#gL#%(R(e((H~iSHd13YCgtRvs_h$dkapd`H&c*o|3Bf7vr-t&MKDc8jf{ zHz3Ow8$9BlgpBbH<^?GHP>yz|)ClkdaP1k9y9h$0Jm%e9U z*z^5)rQR|Y28IiN`sfJyrpBS*748lU$%sq^FBxh{y4_R~>m73^`l^cePDuVNp?7IcY*eOC)p3WZ%Op zKd)E$+^54}bW{1Tpn^lg0nvs9-l6~B?WnfC%FJ*k=Y8+vCy&$8LQOeR(p+Siy7ebB dFfy4l=)YO(B`{0qaV*dh22WQ%mvv4FO#nCtI5PkM diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftharpoonup.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftharpoonup.png deleted file mode 100644 index d9fd9f2d0636c9af03a1c431494c0e13c2283411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB8IyfeH`D@!qC8z3Lp+YZy&A}Sz<{IWVOiURCYB`)$~spWh4PrDnMQiZ zPrIYvpubaGt)XyJwoD%bBNNN715w&aQB2!bW`!=i$Y-$mjLZ6P2bX<)58s`)p3L74 dQu2@CPT1WK$tkV+H-WY=c)I$ztaD0e0syFuIq(1g diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftleftarrows.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftleftarrows.png deleted file mode 100644 index f4cd7c07b31aee31c45fe8438fdcea03acb4c3ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBMJwZ@SC0UN)_A%&hIkx*JI$AuMUkg9ajF6%r-cUJ3YH}g7*u$;CNS|G zaQto%?ooEwY_e~~b+sDK_g~$GCO)|0ZSb0b@4P-T8OMsp4%i2N*vv-}|{OzMud6SqGrI O89ZJ6T-G@yGywp3EMf%! diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightarrow.png deleted file mode 100644 index 4d8d86b40de8628cb7e90267bc2d6a2c529edab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBK?T8wQocZ;E1oWnAs)xyP6-rjHsEPXG-tGMaC*d`@?e3`gbRlqWgD6w zEh%N-3u3={JMNlUPKYX{SZd+vV~TRz*QGI_Hx z1nw{P(^Or?E&JwoU&loOrK`)@bfQP;ZZCv>bC z1TN|_7=N#=f4=x6!}A!gC1<|0n67=ki%ILjeg^$pS6QQfP280Y^dEz#tDnm{r-UW| D1#5J~ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightarrows.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightarrows.png deleted file mode 100644 index 6f0717c7237f5b2bec9a988fbfb65d0e326b2586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBWtq$WjCKQsj(WN{hIkx*JIzt>hysu6>2q8wTD&@#3xZ@y0s=T6FmQVu zV6<2e8X%LxU(I@I%F_+Tf3zEq`#Z5Ubp-qGU3N~Yf$>NEfkGKsMz5894DV}uCK_Jj zP&gTx(j(|paPBq#qA6qw9JznS@yrR!?eDG4w4<3BW<0+cb^G+eaK)CQ18Yyu zF5jTzZOOpUV|ZTnO2%!o=P`MvcbCoi{MqL9=Qn$&2Q9n3>u%$+h84jc<(o`)US nweEVUDAS1_+jtHzd||I)*fAqjKVn5W$U_XCu6{1-oD!MN diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightharpoons.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightharpoons.png deleted file mode 100644 index 10a057fd01d2a79f6b691eabe4126aeeac1bd24a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBMV>$P4zWO?)t)YnAs)xyUb)E2A}GN2;O=R$1{+qSIX1Hmjr$$EG8Gfne!X{IZs9$ZV<#-v zU$&e*fA06VY+eSAh39&cdN>vLe>F?!k=)DawNhY_c*W%zac8v{rUbP~CH71W+RLzX z%l=Z1gHf;NNK0Qn_hgP_GCy}3qh@MPq2h--f4?n!`@V`q)akFCu=vGXy%D N!PC{xWt~$(699`lW7Yrw diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightsquigarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/leftrightsquigarrow.png deleted file mode 100644 index d515001e032b759a11508f71ca4c26085d3e2ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB9p;;P%8fvwpPnv`As)xyPCdA`MM0n~@$(_kb z3h=ti#&dYW$zzk}6xZHgF2TT|c<=Y)Yt{Z7j18Ng#%x=ceS6!-?Qy~q$snkidcE{o z6vKikZ2|&LiY#853=!E|ubo`9)$Y`iDVI&&{yrz+J#ESS@0kKlzLz-^FCEiZ8kMcs z64WIy=}}1ifhj@9W?Wgg?zR2e7Z+^KhlW}{Kj(SQ^7)^jnX!Vq<{U4KnWlR0lC=@D q2mem?6HFfZ%Y);RGNZFyiIFnGH9xvX`sfJyrpBQR9!s^QHrZ)_A%&hIkx*JJnW@MUlsC`dnclb`J+8j{}TC2N=a1IE5xK zXfUwvd^BtC{JYv>yY_TRc1_ox%;0<^SM~Qc384uMEaFW9hh&)N9k4tu`6m6T_R=ub z7ki7(Rlg4ws^Ka+=hQLB*sn=;e)ihZ9zh0%2Y%r#0_S#K|5>=F;9Rd^RQ9!7)=k@g z?Q^bt-)p!z>PxlH(kYrtTbqKqrW8GtV{lkodP>UR*B4I*CZRviIcMnmteo|B85_{u N44$rjF6*2UngGhGU!MQ~ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longleftrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longleftrightarrow.png deleted file mode 100644 index fe3141daa36519f3ffeec6c0adb5b1e11997cc2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBF^zy~mK{K$6P_-PAs)xyUUL*}Q4nBDxVfD%BY`E?fmParS^0<00^Ti* zCI(Gr2iTmO>-pa?TE0m=viHON8Ha1~+4wjZTu<%kI&#v1&FBMr!u@i;-H$EyeBaNo z)|7q2wWw@;RTjfzTXMPG<`jFa+)%{0YE{v>#_8)`_ZS*FxRl18|IAa?;i0*8-Rnvb zhH0siZH`_yP0s4-AFsCeoqTQA``_gy!rK|r=jU%PSSO-g^=guQ)iQ=to1QQ{ws5QN qYs|epLs%d%Lh$G9NsT;9*zG>fVaZUfn5GT%6N9I#pUXO@geCwXa%=ej diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/longrightarrow.png deleted file mode 100644 index ec988e1dfdb85a9d4fbcd926301d305a6f431d43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBF}|j}7A5^Z91Z`SV{b`i>Xg;mo>i<}&Ab<*a4XKQnr0 zDn6R47nwaZ==3HIMXvh|9c_sP=dNa5+_kRuzI1ZdRt|@KXa6st+iTfMEt_0 zuOsqD0RR!Dl+LL)T-0^l(kCkkA$IyL@z@*y+O|D=mHm8c?Nt@LTjj5ho$pll*fjhH e0T2N90z3iOGGMJo+Gmdd0000`sfJyrpBRi^sYE8>7cpFCY0Lp+YZop!PJumVq;=T*iNY&jEh4scYow5IeBcIqKC$$=welRy=t3BHrKkaDs z`YA@oJT&*uWK?2eFwS1<%)ua#{6~e=?}UW2OaD`w^N%e)6{<4&UbfNi^vM4EO+~O( zAn5xW(@4#!oqm@~ZZIzuQF@o2fBTzR)Y4<6J%S9ccIDmvw(aqp*Sqvu3(rMn|K4~1 z_Oc)^moNUiW>3qV#vJ=))s&NGYbP0l+XkKID&?5 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/multimap.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/multimap.png deleted file mode 100644 index c7a0bb8acf9fd2ddd635b1fe25894f80cb369d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBZP^@!4ppGgTu&Fr5Rc<;ryk^GR^(yvonjZ$^pe4a&DX!MWVrq~Ec}C8D#nPbw_>UU$z!v-q6;w%@z&>|+WOKRJ;vOv!3t y%G#|{E=d#@oecggxLat?WXS^zY=0OZFfL}h%m3}P`sfJyrpB32QI6j2A$md!8!tIacdXdzcX`X}UCEY(`!X07Y;|*CkT|~a{qJqLy0(u}=RIGwYRQz#CXw806qy@> zvLxCRmS-$akKE>a=-%TuXLhao9psgn%Vk&V9XajvrV4?Gmo6zw_lwQBsISy?DW2ob z3xC#gU)-7a{>B|xa-ZYJ7wtyzUn>uY{|&id(kpHyxYOR^W4Ive|33^|3QlD*aXfxN PpE7v5`njxgN@xNA(oBCq diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nleftarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nleftarrow.png deleted file mode 100644 index df714e174f027fa32dd9eefda881425fda6fc707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBDU%oH#eV~ZHha1_hIkx*JJpewSy8}sdK&8k2F(WvItq;JEbJZ!7+*7R zMjT+YSkN9PwLs@~%4D^<`sfJyrpBX^wllqilgfdp%toLp+YZoqCb;hyqXB?Zw;{o`ubM4>dQ>16z?NE7o2(eCXiQdatB2?e%hRg1zoet}5l{2AXp~p1H^H^{!_-uFZO< z-D1#}%#rBNsc5P9mAAog*_2Z&i~EAAuG+-x_2GE9SO2x4o2IJMiKyA#x3?wsSU$gO zBKxa-SM}2p#UnQ7+ZW&6&St$}O5Lo@^kdIltG&JI$7DvJ djei&(@b0_wL-Z$$`(GfJ!PC{xWt~$(69AAHY)1e9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nwarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/nwarrow.png deleted file mode 100644 index bf7b7d23d8897a32cec3900c15a438c4a85ced3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBNzDaMG#&zl9(%ethIkx*d+j1`vw{HIgUv4)@(x%s<~-8)8&3j%N+qq)h zYk{WXyvS*VGJ=NUD;D)W+nYbjE&Fb%EQ5fc;MA!a`UB5_IOy z_rE5-Iwuq_YIV!-Y*(UNMdk(`NvvZ7P%D4Vs{kv&5V__VFriJR0 TVx1R2?=pD0`njxgN@xNAIoEx5 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightarrowtail.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightarrowtail.png deleted file mode 100644 index 27cdc5bf6850ee18e46d9717e72d5e82ba6d21b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBHGVDgb_Jl&Oivfb5Rc<;uWsaJR^(y5u=_<-Sc0fpBFkpR)fLQcmiZ0l z2GSO}Tn-9PgIxZpO3Y(8IcHUs&CKf`3wR6;H2i1n$jBB?yT>fBaqBidg+~`I#JQ*( zTXA~kmHCUyd|fn`3LJW**wHc5Tl3!U^B=SK<^0`VaPDjO{!&+l3v*vFGbkv%b~v~5 u+AhXB-`848zO}1P$rfdkNI1aXXs#|iJ5}t@ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightharpoondown.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightharpoondown.png deleted file mode 100644 index e384cf845a1a22e8d2297cc59074f3fd7091f31f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBIc}??{|^C$5`Ysn7Q}h3f9G9Jy8Z(2Rk-2JhV4U z$j|p*W%={x&xqbbd5oS4_V)Gv{`}mLqRG36nVpY=gF{6{WrCQ?5$5{(|KH!=e;jzg kA}X~Hq<;mg@mdKI;Vst08G_DH~;_u diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightharpoonup.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightharpoonup.png deleted file mode 100644 index 187e1eb24d08e9fdcf342cc78cd033850ce7741a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBdB(%s>T`iY5uPrNAs)w*|NQ@N&#cQR%-nl$1?yt5o+yK?g9RHD6crmA zy8cgT{QLX+_3PIk2Rf|emywaNtNF1Z;ULqcnuPp(|5d&}fBuZVL dK<*U`4DIIASRXz6Dh9NJ!PC{xWt~$(696muJ)Qsn diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightleftarrows.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightleftarrows.png deleted file mode 100644 index cdec5d9e416f3e0e851b00cefcd52a767e51e9b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBWj$%lWNV<%R!o6Wyh*ymfW=y=fkkZoMYZv~^nXKigkUVP={?N`7tDjS`he4)XF~Jh*%FwMR@f-x?Ec+~pA$DmW&Q zobz$fm*iDbKHV!%{@x`sfJyrpBMdk2ywJboPEuJopAs)xyPI2UARuphuxRODohq;NVfI)*n)5GDA)d42I z1B@06+T~6MnWga0{;>YflhhyeY}>D0m|L}Q_Etve4UDfF=6sfSkDhF(w$#L64U?DV zoX?F9@5*W)>oA=6M|G`fvQ7&F!~XR=eM2r8h9(X9xxx2 Wo6oShW~nOB{S2P2elF{r5}E*SM`iK= diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightrightarrows.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightrightarrows.png deleted file mode 100644 index 52a7f0f0f1769315be59ac067bd19238f51e4431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBCDF~6yW@aDD?MEtLp+YZo#x2PqR8W#xY=n!facVO=0^-N3XI&3TdW+I z7Btwt5uJ3C*OvGHFXwo#Tk~HTwoSU?&H0*v?}224K$8vw!@Ac|x02gCG@jdR{i4+^ zuDXmD-X@e_sg%bIcTPa*77%WWUbW>ui^hzBPhsOme9k<@chn|+V%4k zld|6~H)Lg4Y4|t&;=9+gg*!B+x}MpyYTcAe&vPsrm?yB;Ff4u&wbdairV8k222WQ% Jmvv4FO#pe!UCICe diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightsquigarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/rightsquigarrow.png deleted file mode 100644 index f471054f45716f22ed94250302c27b14d2c2f3f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBU6we(_GF;Yc~2L|5Rc<;uO8%WHsE0m*#3$kO-O=KO~J>(EP+Mhp!5U5 zO^i7Yau}pjSgIVHR%8W*Y6bECJFc&-U&OaF_cmMjGd^*5MplskhJ@Jb*^Fu5?k!i_ z=CNy?vx}hRbfu;amlD0(+jtd^oU7aux^`=ah3{m;W0v6}tPB>`sfJyrpBDURa{vTJ}scRXDjLp+YZz2?i?Vj#f!AhDTIq@nqsW1)lW0!G$|1DvH7 z7A&w}VDD*uS6Uyn&F6Gx<@L&$`o6Qa%-kxr?hLcuIo?0I3QJWMnKYFil~8WE@%^qF zdrfl)o6MO>5(PGW<`2@9FEvaE>S1iO-NyJZbROgKTRhC?G*Go_OeaPiGY~UN5^x$g7?Xc{(Z(R1Wm&W!#)>vxu;>nx0r#GGX?Bn7ZsIj!h z=UnvN@3oQBd@n035?~VCo?AT4_}KC8j*b`sfJyrpBDLLbkd%8fO!=5gVAs)xyUNaOts=(8bSiu*-AXFfr@_<1`fs=D>i&duT z5yxHoo2LogI5BJYe`$#h6(z&sx};A!35;)rllQF4786J=IVYLSWu4^Dq4+%JcGt>M zy$@08jJjXz7Hqu7x#fCwga6m_2d-C%TAVNT*vpl%_J7a5D$x^`%cuPKy4;+Bq3$o| zg{aT3^%?g2xooP~rm!gJRMhLe;!YON84{kf7t6SFC@y7TVAzm5du!SK?|cqsa&a9U l9Z&UBIX0~8V!iU5O+;MBaffaA7NB<+JYD@<);T3K0RSgMX`sfJyrpB0S4nK+(&>y+dN$yLp+YZo#M#LtSI1GKAY=q1~ z9t^BK%vBlrxe;ZYp8S7a|9O)7?EIOy?7L~NHu_#;(mBA?1GIdpiQt5wOHuQGziQA} zx^&96bdCpm!@aiJIxBK3G8~Ay{o#%M{jJ4%&+l{^9y2)B_xQn_`tbR^IaZAGBjaB! zh!65=nP8Z9YGJFuJ>^+jmq|RnY`XWpW6wmxHi4|$@6v%Tb>NuE8u7l0QS3oIgMQcM WutO#v`sfJyrpB9f@G>SGho;m7Xq+As)xyUcJb9M1hAb!8WfUFU9=@+pZ?z7i^_d@-7I@ z;yuHb)_kXVj?D3`{Fj^_ezIphQX}MOYP?$ebAY%z10%~1W(L7%M;CQw&82KdB-#@# zfR-vr9pC76Zs$J1m-Ekm-K2Bx_bm}Y#)MhR9=jczQ8jD5&37|{;;ldDo{N4qH|MsP z(~7S)=U?wC3cqsjR(gE)+n)@^&*wx3dc9=W^5-NIhr$8g2J!!X0Uv`tKLh!L!PC{x JWt~$(69AE2VnhG{ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/twoheadrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/twoheadrightarrow.png deleted file mode 100644 index 9242bc210394005cb0fe00eedc55db71bc428cbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB9gWgUw+;e@mU_B4hIkx*JM|(bv!Z~@^#axm^=%29VGHJFaF#8QjpfW@ zy>;-Jvjvln|;O? zkA|}_Bu@}%`aZAt-$^#h=gLLrD)Z95s0%kRu>4>=Aj><`Gx$f+e-@yF89ZJ6T-G@y GGywpu23%JF diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-downarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-downarrow.png deleted file mode 100644 index b2264cbfb669bc614780abe35eb65829ba425b92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBVZ9^yp(lVsdpunnLp+YZo#x1UL_xqckyn9HCWM)51&hiRN8J!6zX=Yq z3XO#yzF$b;pPeRosm%Yg-(*gEekV0aUI*Kg-nKm)E+4`VZqix)HMgnuzJK;lX2FgJ zyB>V^DOF#m@1c42vyV%Btza#S`$ zRQ9nML0sx5L}lJ{C^B#;7QCxl(0*;2#Ny(rr)@ps~ dX5oXW_b#k|&b(G`sfJyrpB6DyVi;|oBcO`a}}As)xyPP@y?A}HeaJde4=iG4)_pN3;PkWsRL<@bh@ zcD?gw%uLz*(Y9iu#mRDh#;w;LpWM^ezL`;a1LI_d_qFFLCkD7{E){Tkm355aSOiC+ zB*Wk1=OmaJj?Jj!)ZMyX0r$U4Eg*l5q6c9 SZHz$IGkCiCxvXtB=r diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-leftrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-leftrightarrow.png deleted file mode 100644 index 288dcc11f9b080ae207cc642d315848fb0e14d9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB5tZ!UT7p2KFP<)rAs)xyPCJ;}YQWR>cvbZT-a~AO%?DUEFv=+^Z(vlO zz{?}Oq48!z&ICEFuK}MXUD{W^@{|1E)BmR2=wni3`RKK`Q+zc8*8+w*j)HTs&98UK z9iQmWXKA=O=#`YZ(%MopTYiIM0)bav{jQ6gR`RR*SIuP;Mh1qQ+hwJ@*Ezdrrp8|H z*K&AdD%*CjdcMcMEH`sfJyrpBAsNxdrkp^bEuJopAs)xyPCLlStSI1GeyO2sk?fAJ1+p2OWy|Jfu-|G_ zo#Cu7J?GBBRK=E`?EFSQ9{gX=k=*mv&vx5vR|X~l27V9Ct=Gahm>1sLEs&(c$r|AG zbk22#f?qc(-!mSlwwF)t@zk{cp574T#gTZwyyt3=SGKNMv&7=9*DS-cWv_qP>bkd_ zVMpBM;_fZiW;C}5w2Lits#`Byc#hxM?dlbY%`unn@5opmx7L*FMYtma(;vnMoZoaJ V?8;tsy$8CV!PC{xWt~$(69DhOW3m7M diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-lleftarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-lleftarrow.png deleted file mode 100644 index 6bed12114c738d03186804fb5a466c7e6d4ffb67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB3!e1)m##pe3!W~HAs)xyPEF)JtRT>OJC$id0DC!~1Cz#r&;ZY)jHN*` zAxsuKI3-?hEYmrC=(p#I-;=73FIHc)ZdqPzs;L8W4Znbsh35jMx4-!qO1xYdvfpmf zdCp)PEvm?p+*ADShZF;c;=J>c4ql#`OSh)E+x9&+;CY`aknG~}-ZnO%{DI!mJum(l zHJ8RN&kXWXOnPW`?(>|p56-R2@2tKy>*RxAJzhVGt4rl!X>1aG>Qc74l>g_&z_ zwzqZsRLKfInmNmHh-(>jDU%`-fwJ}G*Y{L_v-xxey{an^LB{Ts5`sfJyrpBaY>1NriXz-J3L(+Lp+YZopzA-umX?kV?7762HphbNt}n+44llGeG{5f znEM_0C$5NUl}lRWCHg<1@X^8V$C--G9iCgoW4@Z%Y60^;W+#r{`+_-lD!EJvO53!G zVQp#8M81a0iO=USGd#az8ZMFSwKDlHr-$a+*H*s5N6QqCye@dEcdt6RXKUH*ZFl_g zHJw}-GNdmTcR#CKmUGHdUo3QX%q!O3#}Tt)dS7nR@lE=*yS?m5*F23E`@8sFG}trP ZFupkuVJDM))CK4V22WQ%mvv4FO#tpWX1o9Z diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-longleftrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-longleftrightarrow.png deleted file mode 100644 index def0c9ee946544160a53d1c1e7984b11d7f6fa3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB2`M)Hifurlm!2+;As)xyPCL!pq9D*V^Q_nc(FFFzq7hBH7aA`&mMxIY zV87A0klE@0-v;Jy8^j+gPc)4&`*WP}S#lgp!MTkSsx}_zYT)Q-&^}<|8y7b%b*IfE zKBHp_i#|`>I;}Wwt*zc%hE=O(J-=D$&1WfSg(AyWngFsI;HKMIZJElu|g52 zoVOcleOm=y?|N4Guh?_zHP=8B-_7d}8t`;zEG_B3T6*_d=n6C6Nl$EC878FOoGdam z)zjs`sfJyrpBajRW7T{Z%R_ItWGhIkx*JMExgivo}9*>hqEoMj5K0bSFk@NHoBZs1$c zQZgaJ@!JDe*{=!}Hy_G>POmVw=VVxQYtKsm&zrOsFljB|Xy^#?n!YWqd*<(b>Cb|< zGdP4kuas+hc%|uWs<;zFL%O44((P^Mb~@LxJGcl|-r*5cRC0N`sfJyrpBHKU^V(}qBy*`6+rAs)xyPI2UAQRH#8o-NqWVx_^ip@Bsvfsyk82dBjf zR+*A~;k?UdbgExj|C_MKWa)na!5b&p&61gf|M(j`f3r7V2)MLov3I=KTmP-w;flfM vb)4%g*J$~Ca6VXdHGlVsvIHjKJ`sfJyrpBX*sR@_c=hJzn(6RAs)xyPPyCLsvyvsxS91vV+li;f@}hNP?Ky1`!s{H z2PI0fJwWDW{@D^m;o&~t>~aoOK6p6c!$f2INi&aHe^tDz)=upI{QLL4-}AqQc*TnTbewJX>KuD<0Z-KZ?+hQl tGo;OXKC?s4)c@6jr=@clB|qph#9P>kEX&e$otxQ1&iQqBaHTBElu~=Rt}DiPyC;OWr9*xD z@sv`85JG60rY)njPSbP?8DoqwAw-fSXD6Vux2d(ZX&L~C41?Q5UDr}d&ycUzbl=5!p3Aa4EO~SdFvbu<0HCTWckD{3E&p2p u0Bq;BZR;kLQip5vBozKC0w4hX0pI~TeHrM5{#JPa0000l1z-ibl-`S4t%b);r<7FN$ItS5;+pu$8Hz~&UuvV zx{fhcmgP1@M6LCCDTe@SZ3tnXM8xPwLI^|z0H3y~X&SBdKHvAflu{|>oZGM7a1jv^ z(c2{eIO@b9z*@U3%WGzy=eBM4uJzuZwCL=RBX=sLBI6?>B3}6Qt~;NRXwxKsF(%r} vIVYt|(Wc(ys1KVpQ-nPKDl#Ag{sG_@p!K|`sfJyrpBA+vK5f9?Z?4tu&dhIkx*JMAp*VFjMn!mHJLJWsH!Im98Ss9e#K(`4>p zrl4#gd?7njbAr8|==)Q`^WUT^D=baPdX=iRno(*2<2weIl*nnD^kYMNHopJ8i1*zd z*E2aiii>)l&&_9INZ~nbARwqz_5QofPOce|q1~k`UhP_U*+lWtWXT%smIre_-#h>L zPw|%`sfJyrpB4N=c)!B>DnH$7b(Lp+YZoqABPMS;h)^f=QSl`;pb143_HtPNBHm}EWJ zFEoiZh;Cp{-!n6{^ro%O&Pg-b?SIaAIWB&9P0$v=6Yg4Q882OHE z(#b#Xpt*Hj_NiGd0#kwx8}vNBu`Tx%PuW+Y?-R1m=>~pNG(R)zv)zrqHs_14mxk9g zbnM~p@bLP1h$X(Gt2@!%rS^V0k9GFi@BhMXOx54a@Q>pI%Y{2PPgQ=2kOz8_!PC{x JWt~$(69BqDd>Q}% diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-rsh.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-rsh.png deleted file mode 100644 index 05e8974d689ec6b008136cc9ad3d43c6309be6d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBb>6#5*L{IP^E_P~Lp+YZo#xHUqR7+MepbqX(Sw2Y0gLw30QLw6CZSgh zoKp|nJ2A&B)+j~)ufIv==dYqc#?SZoy(*QR#w7AV-r@aUi-wLR_lmujilj}e*wH|JVj_Wvo?vWYl@WQrxLxjjQI;uW8SMx(o`^PjqlF@bmwSJ1F72 ykI!1P;{Dgv0SDL~EI+&R^oyH|7+B}9*Dx@#8*|3({W%BdQU*^~KbLh*2~7Z#K3K;9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-uparrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-uparrow.png deleted file mode 100644 index e539f6517c5518046effd7267c2912b3faf608fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBVe#2ncMkxCc6z!vhIkx*JMALxVFex+PjLn53A_o+>nHIZ;^;Y~mcqQL zadYF%1Am=ES7}{P3$m}7pFVe9$q6xL<^E*O0OiQM$*?MfoD~aSa zTQ!$*Go0SUz#z!zV7mJ8-v6Qjt1TG#F8f>6r#!!NJ$R=plYoQ%gVN=G-&bc%=%3E; cPyPeTQ?V<;tgX6BfSzFRboFyt=akR{0A(X*AOHXW diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-updownarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/u-updownarrow.png deleted file mode 100644 index 4aa9faa2793f21f080054d1849dc7574deda8119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBQK7w2eJ6oJA3a?hLp+YZopv$zr~;4c+*QpfEM^-vJDN54Oc4CQmeQQk z(sO_$SO4IaT-RrC&9rxw)7gsVQ-#dy*q2N>#S$f?#KfRf z6n9BvtEQk}pjT$>_1E4<&K#3S%e!3`Ij!6K$=-T99)`;%a|Qp^G)p93FJ)-x=vPsC z_uJ3K@Ywx(2coL?XerrEIv(Y+X6yQ=tg&B23w%5CR_|b}XLvB@v}OJ7sl{?_54ZmL z%X7f8e8*As_uYm@#k!lh73TA-JYv$ gb^lKM@&Eik7#8$$J^d;g4GJ{|Pgg&ebxsLQ06C+Bd;kCd diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/uparrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/uparrow.png deleted file mode 100644 index aa8f571aed79db6f7609092ff43a3117d91d4f45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpB0jYD}KJ5bv&GK|{4DmSr_S!*C7DXP`fOP2%B5xmTPhihtotD7qr@l`sfJyrpBLDL$Wf6IVEXFXjULp+YZopzA7MM1!|PRKDVOxh0!?*2HjO|Mg z$5buLy?sw3G&JPEZU)5`>7^_O40vkqzqfYeNR)A3`&CoHvFz9k4eKe|P)r3vUU22WQ%mvv4FO#txcc-sH~ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upharpoonleft.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upharpoonleft.png deleted file mode 100644 index 72d093d219db4183e4f06a8ac1ff25b5476f00a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBc`=6@i=u!+(Vi}jAs)xyUfalfz=6X#FkUUGS(-J!F6R-?1T_(l&L{E8 zwo)q7RD8-3EtuKnO_X8r2)oJ=5UR5KHFLwgsWYF;cvk0^Hq9z!yx+*k%vQ(g;*wqW f^P|y++6QdYf1PAyR&%KYTEpP!>gTe~DWM4fBD^=H diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upharpoonright.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upharpoonright.png deleted file mode 100644 index 76c7335543e8cbc93d1e41d6c4ea90941c510d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBd1LN7WwJn_bWaz@5Rc<;uN~xMFyvryC>CAH9PO#Taq^TT?rD?wzWw{& z#qK1xyIwL(ActXzQNKt#L!mdKI;Vst01>%7PXGV_ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upuparrows.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/arrow/upuparrows.png deleted file mode 100644 index 129a3383587a640f46949c70667330b9abfc7c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyrpBC5_jC-~E9?J3L(+Lp+YZo#x1S#DT~4aw=<2^Tq)7V9tpKd{XSm3;EQ7 zlokp-N;u~DZNmlU#M_60UMT+m;aTy=!HLbd+4^hK?57Ou3=Z#WBd5*PR8lJHOh}*g zT#_Mc?d;1@-G;{`qO+I3b>|Eb6)Zldxm35kLqJeTNl9?-GYcjIW8?nE91JcdzQRhY zw2a#YoH)*`S@n9?KT{=RZ_T%Jg1j`JdaZxo$Sm`qL7m}Vc-KDmuQz@!Jt(iwZX^GJ Zabe7p??p~V8-adc@O1TaS?83{1OWDqVSWGr diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/1.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/1.png deleted file mode 100644 index 3b1ed2604fd80a290eb50c70dd88ab817998ba27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVMu2(fp|MWlg?c5H8rJ|7zc!MmDr9OoR0E%Hgj z`q)SC_NMuK-tHC(h1buk)rq?|r&eo$avb*-t^Y|=hRKSge<1ybNxR)HQ#^P{?RL9N zCW8=KEEenaT2YjAI-Seq%H=Xb=yJKFQYki4jtgGGUTuQs)bUm1aM|XR5VG6tsGPsv zuYcUj<>JXse9`H2nBo+$_kr}60ZR%`18^E@w#BDLG?HnY;zYDEo6lI(HIT`rei zwa-a4O*r4WUcO2z+ng!vcO2ZO<&Uaym|sMTt{UXQhkS?GK|7X-l(JfF{sq8Ns; z*=(#Ehs|bV7>1%K=kwXoUJ!)obQ-NtjPYF*=86dzkO{pqgd@$4L-;Fi~1gW94d^+Z@w;f^!K8!MR#H! z$VmKXlw4A0@;4;-cwx=``Wa7u|GWF^!W6Cbmp|JubS!#NV;8^v`qQGFaqBr1=RKG0 zKR$2SRu09M3FY51i@mS#RZqI78~Ijrjq%I8?XRcwowu9Cm(&%^<$F=Yx83~g=a^0G zg)-{rKdZ0*x=kW^YRDv}^Rwk$0|Q0AmIjIhitJtJ->h(XW*v9@tIJ1|6gllPKcz=ryW@E6;p%0ZZ~6$88DBLyyY20>ZCiF4Z_SOqY*O=n zvF5Brnssw|R_XsxcM4!}g`f);9VV+RoU$xa%lgTWhgVd5gS|2*sl;lB{@$8zH1o{! z&+E#4mtX#M&tAIfoMrMFozoV5j1Nkz7#(Der$!nbvv@w=$X(RckjFVR^s)(K!seR{ z4Vkl6t&(c{ID5aha-$qy`@Nluo8Eo@4Wi=orh}+;VXHw@)HKnyg#w34V;OGbZD)9} zYn^}+&*6C47Q4`^u|0-fD+QEJZ}Kxwi&Se_FvZUHRvx$gbU_hEINJR}`jsgE&%c)w Rp99kkgQu&X%Q~loCIF=@6Jh`W diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/3.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/3.png deleted file mode 100644 index 8abe1967dd22b51f7d729b9bca875f27b29be623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmV+|1JeA7P)yIo5kJ+ML3>9leWI3H~HE0xOK+?7ft zOZ`7=vR$9;9gjyr5H6RC&*x(pCL9i{dXLBR%rq56F%Srt^^zp{{eGDH5cEw!;gy1* z5EOzsA9TH5H=9kIwO+3;mrLRuN-!9--$~dwV41qzZdK^@dV(ORvLFb(UeDn0Oim}0 z3Bxd|%rMMkGI>6yxm?cvfR)W=$#PmK6f~J-S-nYL%;)oDyFP6k^m|8rF%pU3>SBY^ zG_4A!(@C$_ikbt#=&(P&gG76*gDql^_oq*AGJxol7x?tkuD ztJP{Ml_F}Fm?+0_=IbZJ?blr^P1Cp!tj}L;Jp%h{$ww|Nzkf2_Za4iWSrxTfZL`@( zlEiTwMNzF*i=rrw<0MJiY&Nx8&AeC;|MDy3n9t|2Sgc;JFBS`;iqq+|(P$(RiPdUF r+9({CfhZ6KqCgag0#P6eL`m=ga(>!t>00000NkvXXu0mjfvKw{7 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/4.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/brackets/4.png deleted file mode 100644 index 31ad7f74479356eabf76a76e8bb97454a87d3834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)Q2HWC6$!x=aD*!)BrN$WEJap+oLvGe`)OWJzm4NqJy=7mc0CimSziR>^gl*ehTgxyL&p}k_9y4MLI-cGU2-Lu*3?jNg~ zyWI|bA4!KJ#Uq8JNQ$I`keb7gmZY!35IvV}b43F{6h*G<20^f1uOD;gmZYxh9u5aR zFCdEIP3MX0y?o^ZC33(#d4<81{_v@atiol(K1>4oIIyeeI9bW4vft zmWnU&-bYd-MN-U82EZ5m5ui{Mib7E+3PqtPbYP)`5XRW|$1}zVA-^EhvMiNH_B6g1 z(_bzZ0Lb%P2*DU*j0quB-CK2i4*PQoA%y370O0#RX!R=9^gPc{ejjv4Ips8N-5_&3_}1&l0nxd3hkrpqW4g`!Xtib7E+3Pqtm!9Q5k V#~#b6-emv)002ovPDHLkV1g$~6*B+; diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/btn.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/btn.png deleted file mode 100644 index 77d7c10b296c249d3d557fc6a29a5221b4173d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6784 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 i+iO?PToSNf0{;&Q$@k<}p6WUP0000b!J z!r;*0CzHuZ3L$_9P`Fp%=!H>FGd-6kn}j)Tk|f$TktFhW^Pa%6EX2p+O2M)$B&U)j z36R9hr!yppyT=P4VqM;9a^8xk|qGjt9erQj!F@JW80q?8htWidVP zxnFH2E+^Efx~}&HNX@1wrFWQRS&&k8d=QJq6rY?!M_XT84|zAcm}UNMUK2v#tT+n* z5JGfCp#``t7eWa2j!2i=yL4VTjITEjP8YyEayh;Ta|7w3bCP>^1R=BRHa(mVChNeEqy=_>jv{6zno`&Ij>G$`EG@55_{!6 zN+}_wgltHpW>c)zswzi%+Ng+#z7$rn7D734`fPk<3r@Wp{Pzs7Z5x*+E-`a8L)*4P zLr0tI+<3Ube)8>~I>S*g0}J;Hyl7rz=}D<~zngLC`80jr`}Kh&s?V!TP9;0?CVReh z9OupCR5HX9g*)frI)@H|J-5dL`hbquxmbuRmHi4cUuKY9%t8pE>Tb`sx?atFlSAfe zhUNV-gVjLSJ>2d}*<(PxUPo*=7Lu(#ScNfSAQp{je|NaQjPr&Ti^j0Ex#iXGw#$vT z4IlzIFP+WMbPaehs?}*#63>2qMj-^#^XbrR6d#K-{%%~&L*23OekMMcpfO^E z^ou)13L%)gm7{a$z;PUO`blttn@aY6{J2PC#Gqf8k2~D@!-6qlaOJ^@H!U{%;5Lp) z!hXd(aXF!_udO3JpYEY$_ey=9V*YL(lOIiLVxWT+!i^k5!{Sbn=D5lAjdcbs^*e9w zR*rk+J$BQq`n<~Aog8ID_Rv%|B+PM>OV^ir!q~qTw1E0i{SD`(^QZmNra5M6A*=lf uHF&E&vf4q-Yrw;u(OJ>>|7P@WG2kzFYjbyphIGjQ0000La=QK$f2$t>p(DOX+d++<)Xmew2Y2oq$!!S#= zb+b;#^T~Jm6#ZZQacI*aO{z_@h1+Cchmg@-+=8Iy*&SGiw!3%l9V{_SibahkXUOg zmT!SltWp6F5*x(ct{|eGmF%%5{&qmATx+3SK}Xn=nN8p}QJl4~&njqWQTfbM+=%cYZGVTrN+O;giPx z)#&LKbx$&#*_JM5#)m$2dq{14t+M`!UWv7usW;-!tzUK$q0OSHMQw1a2sU(SyV$>=rClU(D0Grup_00b zm%%~~EaX7~_rQbCA+3#AHScUJ^@F#(;rD*u_kQ2+`xGL=dB!E2b6iXUob%M?`X*Uf zi)LnL$UpF@FjXKcYfC|$KwiP3{d|J zqeiZs3M7+Bh_-mK`Q`1 z(pDnuw!`ycixeKifn*cHZ@ zC*>|O|J8k*Nr&_yof?e>Wpi2bK6(_i0ubx4UFf3GR6u40i(G+tEbfhFM!{6} f;8c2FViFh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdkBY3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)yHM2BwGB9y5 zb2c)E>2=9ZF3nBND}m`vLFl!>sTY(KatnYqyQCInmZhe+73JqDfW2&$iQ6rvIL(9V zO~LIJGn{($fsWA!MJ!T8!-RmT2gHOYTObFX@Kf`Esl5o8tQmIRZ3E^OJ5LwKkcwMx zBD^z%14ZU`iq6Vgv)}>y>qT4FahZwjca8nQ%-Xxv%e-lY0>{VA8=H0sty;H;+gz(m z)or!toh?ckOCO~#eCe07Yl6^b9~Q-?s}*{4)UO}+G4jlw+{(}Q{#j$TN61u-&?}OK_s@)uMnK(gD}a8+e>%x&L?U-5zrKU}%`feXVMa87h;vr-!Jd zZkc=P9{ZECtPvt?vscBYm1+O>TzmE42Cnrjg{!W~TzOb~s?PAjkMrDH`=h=y*)9rN za9GG)Iyulya`zK2UjmRsH5;3kolFEROC? zkBs{ySH1H|iuQ+9GJ*?TEMG;=zSx_nBfiQ(=F%j)*G~?{H+((dzjd)mmB8gVmzW}d zp}t)U8+2aB>{&PCsxQmeriJ@?L@F*xsy}|)^-%smbzimRPk{)&E9`{@3rp|5-?&U% zf<;N|&7niO4~*Bd|4fcw{ri!f{Ws~~rjFZo#h#k?g=4+JWp~aw}`9 zo=ZzO^n9+G?IlNvJuBWg^UTc?T2=h2;K8Pj(>FNgb`|^0xpOLgiOsyF{3?wyB5l(} zXPW<9e7J1d_n5%s@Ts**44Q)9yuB@Nq_vhGne{&DzaQsB-I65p_Y=^iX@In`sIasq<$oj*YHhjk+-dLMeku z85QP%@YhFC6VI2EEwm8LW_kg#}hP0fo=^`OZ0Mk4T6^}xf zzu(H0>r;u|`1;uvP2CiJ64!>gDwK*JP3`&g)TyDSPuf`Ovt7&dkDVY9cnsWJ^n7lVBjdktrqS292 zMQhV6;~e?H!v|$fJ9fq>IXtL<4LFwoYJ}@M1&C<$+^Fb?c95>?L~IPvW^ZIgrBbOz z7i)WOyu%o7|kfOeU824z-Ee8V;cS~&8J zOnr^WWe5Ig(ByRCNbeWOm@}yVSig)avMoY)f4r;A{4qnJts&_My(e!^3N@fo&x*}G1wkv!w zVEk@a-RyovTr%%ds)SG}9>kB|>p^UzD%haPOrMy^f zXX@M8*=+V&Mv?PiIp8{@JpmYh+R@iBAgjR!I|lVmNcfMru)MC82~Pl(MSF=Mng+ck z&C5Li6aaY?Uz1R^9jmJ98Igy-70tc?Aae65QRMZ=3IqSP!XE(X#k71iNJBGVe3_ei zJk^YCUt>HO;N|7ZP_vyp0hs^T)HmzFW1J@doB?ZDJOQkwbJ+F`fcN?}!Qu}9uN54- zjdsFj(fI&i?S43R*P?g=klQdb5ZNBFbbycj-2qxtCC|+}&GPMQBT`>htrWP1HvW*R zm{oG|VG$>#RLKx5P|4%x$EzyY696B_0`y1Ujw-8}1JQS)6x|V3a5uCh7FS!X@ z#RLpwZ(7EYcYTLW$rH(Vs4esW10B)fIF(c`GX{3h$LR-^j7tpPn1}_c0uk%9Im284 zU=UKf^jC?3n}e3*whg+Z759VOs#VYrPH}-5zc4Pwz8F(tyJDiJw+F)2%@7RWcIou&-uvFso`XBKKenBSc7zUf_VV0_$Mqopj*N~j^W=Wx(D4zXhaSOW(8rUz zShy_~I?}amvCiXuc;~NwK6{%*-dI;(tmE~ep@Gve>KGn485?-D@y%1Q*BTFojvRgI zot+Itp1q;Y_80oxMx!TRG?Y?ow{_!ztqWa_eE$MS&8I5KF@H0uSN^q|WBktgq?UK+nNZn)}P)ZNpq@;CG3srL{AGh8kgQC&^qQ&kDZKPU%<`_giW zN_R?h;r$B+f-^XyR4UabvgM`vJ6PhXcM-l4!Fff#Cw=ne61>{tKLM)B0KB>D+?--g zvmOA&fU?)JQU-haGe2fT3-iR~iB%k#xI9I(U(BwOX_tC-{2l~Dnf18%;YG^d$SY(f z&=xR|m9e+S)Y8(D0GpYeAzhlm;Xw)>2pXyHQ?kJ@Z7F>Gwv<$qEVad>< z-d)~GS3nPegg=}{yoU@Ks@UH3T-^n>cmHaMtl7B%V<*{Kr;Zs|tF-BV2PUBu_cCe& z;9erFqjUcOz_tsp`I`l7KC*U_G4thJ;g;wL+4T95&ZNowoyqr2g7W!-e0y{_s+_u@ z>MVfL((;n97Il^ci772BmYFp_Ds{=qvZ0UBgRs#TDtBtUd_hLCXj$~2*-t^QUyiW6TaC~zR4np>LH`FGDd)~;6g1VH$BnB4U^fQT}g z48^a+Rs7Sq?A?3@Nd27%v=#(_<0Al^&kXq(*ok~!S&sL!U)l~RTuSk@J=3NRhYqX$ zll`iAtJqR378`s|`P7-W&fq_(+hslILO%Y{xU$QVsU)@SZ&S%snxG$_juZSX-dGg< z{(*jxC%Mc;#v87g>q(&{7?H;@3An69|i_F-?S)vBCN0$PMT)<;A!30O5WYxMYKzHA*-Zi zIL}~jv%gvT-k$cU&!+HKMTepWj@;hodpr66ce>T&EZ`E1jmE@>zUcTK_tC_q2|1j~ z0Ir(~%8_Fc)V+b9zcN2%DA*n>w;^lg7IJbO)8~GmJ)j~lMksP3VxZ1`zn}OnInU%Z zG{~{hF;(e#_MzJscTVUFucZF_gHn5>32EUnNQ#kCq*l_*X~&F5r@xX`mg(Ap3n)?a zR8&C^a&Q6MfPC_kN#V-eS94OTN-&THwMPKFgfVA8<*wxfl$~%`1E|!R^@YeR18-1s z*kXoHfW!>q+2tTAe8@&5mxWSk52r}#k4uDUn$+|}6E*E_s$5caYGvlM%a9^kYnEBQ zECEkQJ+^7Q!)3;@gA7l3C)CbhW;v8vL#}IQ4+OpSh7M%CuWY~T$T!}KEdcAqs)c-G g0JVs)iH|M6knHXGxwED3m26THl42^Zv+I%d1pJUE0F~ipv U9@IYl`WRldVxgqH$~Er)0j{AjO8@`> diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/script.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/script.png deleted file mode 100644 index e29e594005eca1fc12b32117e9da1e6d277f8f7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1311 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 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/sum.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/button/sum.png deleted file mode 100644 index 8c663e2bc0b315ae98a5892227b9bd27c4a393a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4273 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 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char.png deleted file mode 100644 index 4eef3c380b0f322363f83f032d27ff8367f54a71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89633 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 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/b.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/b.png deleted file mode 100644 index cc75c7d20cc48c337e251efffd52093c306f721b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmV-v0+#)WP)1${ibmA%lZI5fS*hIY+=9O7YYTF$wUyu?RG;55d?wbxG0Kx zz20WCktCVPWbAhP8v;BR!!YCV7{jpTayg&RDT*qW%ZtULR;wX|TCJAD;mBsQ@KOlg zNvqW=h9t?u;h^|RrP6M<0iakcmdj;z0HIKb=Xu4mEE|i({)Tv&hHn*&S$zP*Fcd{0goeXmDwR^92EkzPcswdzk|ZVXG)-G97G*yEzx^3l z6ve?{a5|l2Sssl>_xs&qvE*{Od_KQkuW6b#7z`MORjbv@M-XVelzgRnR&w)!%xZvKdcwvKLjX>@?pg=j7JUl5479u%H?t}7z6;C zrU4)tjdr_TP17*OsZ?q^Z7g;j{|_i;jr0k)9KVA03p=x z_a#YU80PnEwOTC{3Z+uXA|Rbk4+aB_aVQiz91fq>6pKXwumX@IDU-=yjAdD-DC)sJ zECO=5+;X|Z7>lA$U0qX95U<`1PG22;#{Azu&*zZq1mYsQrHbWI!MgxB()Oh%C#`A9g&?PbL!p z;5g0=$8oJzizG>}*SlCO?o~D#4TfPX zj_X7sQLEL?=d;V@G7RHGR@e1>K93N(Ua#LifvL@A1NLMftM#?e+0`0sei!J08-4 UmN$%iEdT%j07*qoM6N<$g6iS~BLDyZ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/d.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/d.png deleted file mode 100644 index 66e23a897c4a97b2da18e9c2db42d91b51ec0ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)@5XNWMM6nYk z(MD{vMJ#*+o4km%58x{ZfmC(@A%(Hh&RRrR|5O$d<6IH(O;R-hh7q;O+$&W0bn!ZQB+_@d*ODX}Mgc(`ia+G#bt2a*`y4 z!(jj@6bjBRS(bafo@H71li-`!d_HeBo0oMrrKqY30E(heN(Y01cfe+|$!4>T=Q!>* zG?`3NsT3ksDiuXhJOUVFk|enT5V2OPjYcCxlx11dH2(p*uD4n(L_8c0p-{+w03u%V zw%cvPFkF-T>K@p(?U-t{s_VM{7cCNr?Du;BD3{BoY5EUHBoe37$?-hT`ww7@34#Cs zi^U?7$@mZ0ZnusxO*5a*KQSsEIYpLbiK6KEKp=20iT4hM!(qK%2LM%78;!G^ziJR#&Zq-h$@^MWA6VzJq577PZxbYK`pr_;F(yWR14j1P#sKVEOZ-v@jEvb#&?OK31t P00000NkvXXu0mjf6gAv^goX7~m$~GA8E(!Yh;t6Fln-94H{d@2;4gZXWtpb=ohh;`i=z0jg}(4Xxm+HP z$LsYv7K;gjaJgIz!_YL1F=m?PZnpyfMNvYbP#_SP&1R3M@MkI(izu91h>Nvf1qMcD6lWg>hZ0)q=s`4*>`v=lb`Vaj$y4-syBcOXcT)<#L%w zBmf{9jjmQJ_xyUj4h92NRc+gDG#c@E{Ey?hP$)RBj4{R-JGCf^82@HZNs<6yv)Mcx hg5Ez~Z@|9~_yzANC6IOHq{#pP002ovPDHLkV1k(^@6-SQ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/f.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/f.png deleted file mode 100644 index e0f76fc95c9bef8111333e5973497f492d23bdd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVTUHE_rI zs$pkm9=kJd1_JbFh{xl;?<0gl8)F;<0b{J) zZYzp%GYRJCV87q*cDrV?X&6SaSX?X?)9KVSO~%;qcwDVk{eC~6&sVF})9GXw#_cR{ z50ui$WC8%4PRF+GE3c}m>2zAtw6DVN*C3Hdc%B!2iy&Oz9}EV$T<-Jv3yNH+R6;{l zRmRvOMdo8Rn}tTB(crw`K?28dE_No9d5sPLK$0Yc(0o3x*Xyqr8X=_BYGI5OML8S} zu~_U`pz7A7xXxm<3yTidp?+3aXEa$UFE?VitPQ50*n+BbE;+Xv(Ec(d6MLV_T; qXf50@x~_|&_$Awkn3Bd>EFy~Y;k!pzm0000iV#5#X4EPTL!{P7`&t|hZm4H5>cDwEI zcq9@D04Nj+0FcRKu~=+89wUUbT5YXX`zZJC0GrK5k|aS8Hk)nlEEbDOr4j&mJRYCV zFPF;<0R%xjJUkQ%1+`jz7`?fZr_&{qNraG8D(!SSN7pzU4gg>R$mjEV zy&fSn7z{2iFHh6~0Hspt%K)?4T(8#=LXVG+fk5B{AQFkZzP^4Luy3&2+uKYggP7|0 zJ{XNgBuUaXMNtGneDg-@_xp4g0zjkDpnLy20bDM3KPOl$7Kg)O3^<;7adFXXHfdWb zl@102u~@v1S}c~yWP)MXVzHn-0)b$?Ui*ALm&^6pqk_ZX(1z3Le13lZH8dO!pPrs@ z9PjmdqtS?>C_bN`%jLG)?csB_dP;q0neF z;c!@^(Nrpx)oOM4ZI71xsh>ApS=Zn`F@b3fO0nhcC@66(+-v9sr07*qoM6N<$g6+pL9RL6T diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/h.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/h.png deleted file mode 100644 index 0347c9327748445a525e29c28e8a6698f30bcee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)!2>3|_zz@p@`~v{})RiP@xm+>~W7{?%grX>hVJyo^r_+r_ zV>ld6r&E??FPDq!x&VM+Flbp;G#c%8yZ61wGZ}`VD2gbGqtQsyw83BykH;5_g<%+k z5YseORn6scolZy7G+CCz;V{Nn*Y(F%&nFNBK@fyOp#UL72O&fIJ^ev1A$z_P4RC8yog`sfJysqzQ3LWKfpHFb71=B1M&ynA< zW1sg8#d=Fw7@RtSPOV$Xs*}(-pCRa!0tbVGrmLnY`T-|~Oaw%qNxi>KWC{Z?ZG&b`|?!`GHCF@#ls;M{25o PK4tK9^>bP0l+XkK+Y5f6 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/j.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/j.png deleted file mode 100644 index c9ad651dd102a424bfe686e6c5eeedde9b72d871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek+5P)Oa3@C=?Hcklp$t(BF6t%U&#D@80)*y!6Lutf?pOOP$rzj_Sw_y&IF ze~%y{Y$*yGYX|&2;7jmc*L9S>zGhh#RaFTgYn>>dvMf#0Je^JeVB0q5+%OCP;G9QM zwB9QO_>rP0&mstdIF3bHe&>O%>wVt?Kwa0Ws%~g9rBpBi_J6PgcECRXWLf6>ev%|F z=Y$Z^ZDAz{$8kI!k9nSJnpRa6B67~Vu0ur2vYy39Y1%Z6<2aYg#kTFXZ2@4KCP|X= zJfG)TFiqdg1J`x0*X#LwM#MBt4~Ih-hK#Xc7z9Vin~_-*#qD;x-|v)CS(ZJ|V~jl> i4{?*pzS-@7kM#`=1%9=aMn66P0000&sBOD~f+5hLof{YG#-LgSAqt8@P0l~i zRL-Q%eGA{_*$~E?Ab6eSxrgtEd(ZcrOJI!QE5iU^96x~n0Dv^J`}_O1x3@;4QBf3( zF+mVUqfwUS)z#JQ?QH;v#bT3_lih9?08Azm#@J%993LNRXko1o1mW`Xa&~q$o6TNd zU!Rb0Y}Cu;A|QjwH!Kp^#3e0U(pfRI61@DQ&K+M51@*6DPnrl!`{*I!>> zBaz6%!^4<+ep~?0^Mk>FWm$}IqtTe3pMQIM(-V+LBt%hMT3UK~dZH+*SS&6qEa(Yv zI-S$g)8%rRVHf}ihr=5i8_{S~XBUOT;mys>P$&cdTU%QIu(!9T^Biy-M^RKNl>&f# zK7Vv{R4SEpu<6K>U>L^l_s3$fR;y*TTAR(L$KxRg;&T95mPwKX0992H`m3^5tJ!R} zU@++Mc$&>7P1DcM&l3|9??ry??(V+NUR_;PDwTtS1BPMl@9#xXJUl$4C`ytfx7!T> zk|aGoKAxYS69gd$g4t|lS$27Od2ViQM2gUyms~Dauh$Vm{eJ(?O%dw%`-_W<@pv2n z+U@q~=_x{JFc=J91|ej(+gX+!3-I&l{{X%f;5T7vZ3}A2W32!H002ovPDHLkV1fy- BNO1rF diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/l.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/l.png deleted file mode 100644 index 72015ab4143687e0e4434d81ba4ea3b25e7dcc94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmV-;0f+vHP)E4ynuHwF!c_Go}P?b3nKjh0000)P6y*=*M7 zbgfoPQ4~T*I-RCz`qRmhB>DY*06;{FqDDqWBuR?JVpCI7Zz6mjxm@nx-~a&D*Vk`u zZZ%r8t9(ZXfy!8VzD5iEXy=a_c8#0(b3UH zqk)JE3k$Vcty|Nx2BA(~*qDZOb#Wd+T<))taxau5ug~kH@vq?-p4Nhr>~=RuR!= zvwax)2agBduP7c zY#Iy(0ALvA@$s<_fh^1Mc--l9j*pK!9FD!cJxP+(AyE_oAe+r<;7-xb1KmgzO5RFFP-rjhge}8`m01U&5 z#UeovTS7LQeRy~fi^Tx2TCJQ;XDk-`rV!eLPNx$Nht+Czzu#{(8i_>W>gsBjFqupq zA0IC-F9D!jE>EY^Z|m$8KnQUh2LQ=ra&z^1y_rnr6Q@)vnM@{uB0>W5`5XX9lI-<* zJkKM92!a?6hr66&v1qYa1d8AXT^fx>7Z(>VFE0SVFpO5K-TdriT_lxC^ZC5dXv8o~ zrBbESX`jz`;x-M1LK=0mIp37P;ffrYbJEEEdGCqg6= zAxScoN&$e`Y^Eq`Hk-BE?Gt#gYev0ZM+mLgYaGXIHrr`D*n(jghr_X4E=3|ywOSR9 z#W4bMx%~eA-e52QfKI1dtyZTW*M7g>(G{QQ+BlgVnennWTwG6(0S ee-`*h1U>+}I&RA2*NI600000hSOo08lIz)y2VJKoCSA5U|;7FE1~f11uIxtyW_g z=KTEp_jN^4o}Zs7ijpMBWHPZVy9vPW_ut;$qMU0Q&d$z;!{K~BCkW!>kdNY7?7k|bBX;y8{Y5eNiEqmkaAy}rJBJRYP) zQMB9bYs0j=yE~ao^a9Lg^K!XVW2h&s7={@b6(mUtf`GKk<(f{XtC~MQKar3mNxkXy zfW5sv^+0!ab|gt!xjWO(_J@ZD^|9$1c8Nry)9C;Jj*pL7meuqKf^c+ng!J9r-O0&` zfnmpSoZIb&5I#LU1%p9NPrY6*6bcYRhGCE}HYzfi%=Ps(3Xv?!e;W=C4tSpDIL>Od zZaD0GK3_hcuU4zcWb%(o?RGm7iFCVN48ufG+NY z3dyppD9Yvl2;uwtd%0W=hr=khIF37=&dbY7p6B&^aIo!<*B0>a1AYK#xe|k7XKA@5XQgNl{CJ9 zA&LZIEL0Ft!P-VFQwhF;TG)w=U@v(Id%@B&m4$_kg4hHt1g!)MiH=1Mi#soR8jpj^ zS1t2re+#oS3?m}EQ$D;|9^fAUxP$L_Jnr}Vo33CmC1r_%|5 zBuT5)%6))kS$@ACfN7ecP{@6NVHl}Y3P8PHZ#J9m0DQiW`0aMPSS%z-DijK`ENhzf zOrw3hUDx&DaCkTz27>{BY&NUwdZ|=;vXejQd_I@U#@H*H$9=$LGD#+r07Ow-uh%~&I853~rDDejg1|YqyDSh0wA*cZSj=0zJiy-v ZTmWFeIro}|6xIL$002ovPDHLkV1h$w%b)-N diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/q.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/q.png deleted file mode 100644 index e47c32ea6b18aa30d7b9285a958a28dcb5bdb234..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmV-91IGM`P)Z?MxHuUh<`gtFMT6B6BGu9mNMkfKG$>>t1a7&BMmQ)QS(M_X z1m%!k&uF{mrA9g(P%!Oe|dS) zXf#t(Q#PCJXLhi^zfaTj*x1lPm-2D8!EX#JgogfI0$0N(~H}$Bj=jUg=Uca)k zVzF3ucXvOgBuVP&={Y(&qG>vrOn$M*R{(>-5Q#)msg%iN`kdX{+gn{-l_ZHI$=lmo z)c~K*x4yoPh%T4w?Ch+mhoUG%OsCU4&#MNIB-sc$J3Ey;6B83RH#dlAx7(x9X!CWN z9!w|{@_N0En5Jo^^D~>xi9`YbHa0eb!Jvv;6bgl$PA337K0Xc(4k`fzLC9n>05CZ@ z84ib40E)$;R;vYoTrOuY7?c2geSJ?)PmP#mSrq_L6bA+d06>;yifXADtJSIsfFKC@ zd>#N8hN;)a?rs$Thr@AlasmJx$EDM0C4eZ3 zI-L#xE-o${4u`r?!7xlC=gGd$8lP%_Vo0$ zX%*4l)A9WLJe$pyN~NKpq4Du?qtU43B>vu}{~hoTaD5yG{k=yJ00000NkvXXu0mjf D!6SZ{ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/r.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/r.png deleted file mode 100644 index 44ae3c0d6484ff0336f451432bd3a86bc819ed40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)~0005vNklq!bieKKc(4fugWK&E`^93x^ZaNuN~KbT zLgD@lU+jUd>)2?T=61WW4~0VYdVMyVsjBL5I2w({!%Jj}rs*4l)$jMqx7%UwbULk%>E&{{Ua#02hG9KmI-RD|X@pR_-Iit9f<2%p$}Fx{E1u`O-EOH= zk|gPLIz1m#6X0^W5{X16lc8xEA;hw5Hk<8qIzK%JCV*iW0PuRfgTVj*Se88=kMIpW z7SrW&DM=Cl42Q!=Bw{@P0BW_Gq9_26%jH_Fmh}Jt5Jhpb*__X3j^oVx!%Bdvs)0ZN z0LJ67-|x2uK$7J9dZkinHk$yTC`z$dd=hXt9DF_>_R(n6FpT$Ij^p|TH$>kVMCEDKP2 RG`Ii&002ovPDHLkV1iEf|4{${ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/s.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/s.png deleted file mode 100644 index 93dd1c61d6ac04beca23465cf78704952acf934f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)D=G%-1E8J@9+H1AwUShUkU+#tT*6401$sTuhZ#NtJT?TMx)WxYPHQ~BNB<-Zg;g> z84QM7Z^E0xaeTYo3WY)dfW=~|R4T<{QLonn0H{#bTAqWvkWt6d;qyB$G*})7fY=u2R$K6ae6MyKk>>$7B>mtyU|W&7RNaS1FN5 z6buIMyLX!}kw`Y1&EarB5M($UUS$V^K_ZcO>KA#v-cqTA<2Z(4d_Ldda9|h)f1^8q z#bQCBP)?^4j^hx*LZQInaFj}AwOV}*078hOD49%dx7+8cg%D0A6O+lr{_k%xd+K)^2-2ct=DUbL}Ihq&X3V( zG?hv{4v0h|D2jfK`~CiKIDD=Gl}h#aMx#(Dh=1^$H(LC8pm-Gi4+I~a=F}9YPZ|*cs!j>HyVu|Zx!))Je$o51Ol(u zdl?@NhX4R3lliSfzc4u#i_z(HkH@1>C;$LPqtR}+%jI$afZ1$buh)00j&S?pg<%+% z%RP^e$78S8LlA_)V2H)yA0CB-_s#ANcv}Aeod}3@%EiT=00000NkvXXu0mjf*;_Ht diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/t.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/t.png deleted file mode 100644 index c359ccd2717878d307dc9f28b9f42a92dd293680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)@+~05&#muxnw}@; z^zCUO=N$Y}2>e(AAOPR1Rkn~MiR-!uAz79I0E{t=@$>oQoJ*3F=Q+k0A(UkqW6ZKF z&-0p9a5|lCx0`92`~AM%ZciqY=I%f&E^(P%^n34&lgpKrI@(h_)y2qBuL z^?JSg{a!={gF%ucob%~)N(d=}o6Sa1l;Ln#mZw$GzVrE8@ka*u975Gs`lGxJdT1^!{b-!~c!08kXA*=)AkZ2+j% zYPzmpuh%5wI8LEZ006@<06^0;$?4ZKe?7=nVB(7v)Aj*W;5i&6&#O8%d!wL zilSDl#mvm-b7l|j;l5-HT^bhKiyr77I)RQWN9xSQN!lsU%6#XfzrQ zhm_KMKEGP6@CC?=2e0*dz1!`AATSK0)9Fx3U);weJK1G|kGTP^Z5U$P)5={^W4 zC9AyDIfH+IQc7X*7bwYqO<9yvW`p^ZOk`jZS!6OB)X6{@7#NPhBFXm|&YgO^-1p&j z4^R0_=Umry&ga+F?@a}OeiJqQGH=0K@N@oLhYp9sZnwJ#0H;>xo3-x@NoGy4~(Vp}_Mz?nCzykw~Q1>j4;zM$u^WW{tsMU>F8pa#t{) z&z(-^XVI-rE*1+S%IEV>3IMPyJDE%XB$LT@yM2)r1c8VoNqSz;?REo!002=Gyg3<;_xq2J4*)#R$K&x= z3No3DAP4|rvDjcRARf?D|~Ql!}+2!gnY zTBs-*MNeoOJgit6%L`_Xihlht+R9swav)N8gPKc1RC<1V~T&Jg} zS`>@LR9Bt7*Xy-ftzXsB7;J5A_4f7xSX)~Q1Oi&r*4AdRST;8|0d#eB?d|QUsI;_n zet!O22I}Y(Md5i~?M$UoM09a+;c~eEL?RK7$HP!EnIxju*VpeFba!{}?(PC`I2`Ba z=d9D`^Uci60N{B(l}c$-nwy)etE)>t*0jBmNTj{JouxD~GNKE8c6N4RVgkUxz(6=0 z24J__S>w9~0630gDKXvE)m5+8%h21~8{27;Bvn;aso(s}KpkCeZLK6pJkQ_W-m0{| zzCIR<0VpXc@%#PiV*J2Bk|c-20bqT7-Db17-EJ-2-rnx)>{Pe^&d$z{4FH%-rk9r& zmj2PvQKp@iB_9BW@$vCYH?5*5XJ=;>6%{KhE6dBvI{NVN@cjH7kH>kQ@95~rcwc8R ze|mZ{o6TcmV+#ulX)|;>ovp2{?AZTHMC=?C6%}Qo<>lpOvpKs0m;HY9cKiAHc{m*2*w{dM0y%?9rIN{HLPSv%RVoz#OeT}x1R&z>?rtKHK*WoS z3#ZeGvLzQFiXs3EheJfPSS*=L=9dA8SglqK1_L6F$72AHPGzBf@KoI0-8CAGR4T>u zydVfpr&HE6naj`Ra?+}mO6B{FlCx2=0QGtu0D8S1A*5I=TCLVkr?NbN5Yle90ia&5 zznfO8wOA}7;?>oaUawysKnUq}yEIKlqtTE4a5&^RPOA6z_F}Qvl7L>X$1u#+*4F*~ z{io>Y=;-9+M5&yh$(r_=fUev`>`czD=oG^D80=?H=_7!1{ZTrSUTMa}&$8jVKLXq4l)*Vk8yqSn^d^m_gN{yqRSn@vFwSe7M(h@wbQ r6adgPtZ88`{8NB8GDH4y)neSV00000NkvXXu0mjfv@=m- diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/y.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/bb/y.png deleted file mode 100644 index 7b1ecf62a2ea93f55a5b60180258324b5b9e1b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)9{|LgS9iNzp-}L8y_d@c0C=7!gb+g7?e@E; z)oM*969BMnTaqNd-><6bjV`=1ubYyyHylL5Cm0K1A)L| zvAEfD7l4ShTCG$nQ7uW*;c)oqNvG2QU|H6^l1BjAyWj5-aWEL9QmK!INF*{G4j(i; z0rdO*OeRBhI2@kMX4j{q(I}ZrK5lpdKtx%V=kvMix`tr{gTd<~kH=%0=63;xVaT#f zbvB#r^?Fnni^WEx@ihJ%KzlV!LqyXw1wlZ>&1U2C`B<_{0Mj%jNus)3E;pM^S(cZ} z<&Obquc9ba6GHO&JY$d*KwqhC+lW}HRJz?RW9k#%qEIMwI-LN35W>C(KLPmKa{X8P zz;#{Mb*W%~Tq27})3oF9xLU1rT|b}CmSxrJbpVJ)qw#qBah7Abmuj`j^E}6Kj^l6~ u2LPfdI*yY_Byzdj4**_&6)(Ww0^R`8)1&asQC+_P0000XafZY zaS*J7)=6;E#YG*(!NJKz5&RQ6xJq|X7Z(xdE)E3|M-g3|q#X)w9TZ%vbjrCy-jhpx z*4}b2Ja~T7$vI#8qah~=1_1Pv`h|X2Z@_;52)NX2+rD0}?(-?7(P-4gfL;0kV_YZ{ zw%aWmilWGI975=LJch$z_FYZWZnqmDF8MsNe59^2K6NRaF2uolZQ@!z(=ntX8W`CgVshm&;r($Kq@@yI!v;rTzhm zqBxSFQ0Q{G0Kj}cuT(1FK?pock|bG{S&T8ZEbBV~=kxi#;+;-sI2?MM=oKJ};%>L2 zlp2N+iA22rwzg#z_Khth@+~isvromEDr{Q>2&&K zfN7ctAwozX@cTvz{1L|Ze$=yTz`ZT-`{DHl{QH0pob+c7bM=cO00000NkvXXu0mjf Dz_0ww diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/a.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/a.png deleted file mode 100644 index bbbc10267ecf51ec4f06128c516b65cd9d887fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmV7?s=qtReBrnOp)5OUjEmK7vmu~d0%_f+ed^j8c*tUH;8IQ*RqS0tDH#wir4+aC8 zHB~a11VF)`R?zG900@F`=jAw#GCaJT??2hHEI|GTT~ z++`Gx#|a@1v*URlK)2iVsNewrz<$4{>r5u2D9T^vY&Hv^TrR%=n9t{Q1gq7mBuSzu zdYGHdCJkP#R;^a+DS&O;;c%FCFBXgKb~_J%X__=Lkx0yDvu9hhUaxbxT%}SupU;lt pcn{ciyIn4qA5GEs+42SW=?X6_)14Nr{Mi5i002ovPDHLkV1i@^(arz> diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/b.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/b.png deleted file mode 100644 index 1f2d08ac31c91b8c8f480920fd8fe6eb1c54e709..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)mrNEZB9e$0?!LpPF6qmCfA{UX zc~AHGJfG)z^*o>Fo;!o0DELeL!yoGd_y8VtKA)d<4u`|xaL{m5exPQvX|Y&}#Ufd* zR;zS6twu1L&6COGm9GY1xm-G(PP^R>pwsCnijvFa+-`Tf-5!lbf*_boCIA#g=>**G zcSTWrJ|BSDY{oE5Hk*AsFdmOd9>?QR4}gfKX#gzCG7R%g2*7MM>&$>8p_Y5M+dZ0O zSso6D0Q&vDe!yTbAkp*r{F7<1SWpxtisBo0Z9uJ7BY@NCq;5)*#BrS0>s_zc@7=Wl z$z&1$$8ls?DwV8OD*(UWKcCMv-L(O3w;KSdLm&`f7{=rAsJ9Xdg?=O z7K_D*DU-?Q2ap?9>+_^|JgzwoG-gq+*8>m^hrhMf>vi(5*=%&qqF^uxV87pM7Eou2 z0JvPPSJunr0)Xdvod8i30aUBiR|f<^FdB_-^3wpYEDNAgsn~2bNs^wd-ENnr>FIQ; zvrWmprBW#X27>`WB9Uk`8m(5VTrN8tj%YM`yh48(v0n6nQz<4}<@D0NtgzWcwUO+aRRTSmfw{4p-Mk(b2tX3-kjYflg zs~3Pur2=3!n|%!s!ry~LBH?)+&zlhjxLhu>EC;<3%Pg{O8$dFdjBD5(k4FHm>&690 zrBcCSx7+<0u-$Ik?Kamm4Pu_llv280uK~>GbFMPgbv2#7L zNe~18rBZ1!nV6>8YPHhoboh*W7eFaJ91g`|@ph%EstyK&$QtdTs0blZHrnso@&ml5 YD|ai| zQcMP2qC{QlN)#DPvND~)Xkk!BbvC6Wg)%UkZZPO(G9kOcl@hL#`wgC?$KO-Gdg}4s z?)!Ot?)9y^&$llj%QAj5D*ST3g8x9ERzz>NTTv8MDwWY_e78q_m0qtGi9~cd-EFVU zW=p5jlgZ>s`!fN@ab~kQl}gp?^-LxMAQTF59M^8Qi^U>M(-#v(QIaGn6I3b{yTWd}jnXvz z;aT*D0Nif(?Ybz6E|-g8m>2EO%dJ)mK&#cdUOXHQg+jq(GVwhBdP1N7pyhHI06`F) zPDc=g#bPlS3@Gn9 T+4U}w00000NkvXXu0mjf3BBZ@1g)_4;@` z?)Q6)amcW3y8wVBNz>`{vmc;Ztrp;5Hk{F(+wB$t6h-;i(sf-F#pm;xcSIOt%d!BV z)9EORA_#)-`>WLoV{DpcF)>{(mpsph#f?ToRaM7vii~Obt0)0+`UNv5G5>$Ul!*WU N002ovPDHLkV1f?U%`*T1 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/f.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/f.png deleted file mode 100644 index 28a6cffc0febaf5fd4e7a82b7abb382242902dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmV<90UZ8`P)_Y{!VbNd^|Au8jv>OG3&L9T=2cxhgcCA(sG#C__O%?`nLBXQz3p3C=#B&jB#7FGAx0jD7jpYzr_QA<2Z#vp`^m;uWfTw5CVzD5EWV6|TpG@-ov-=7H Za|LDowplw^g>V1>002ovPDHLkV1kQ))lC2Z diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/g.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/g.png deleted file mode 100644 index a8f1999bdd520beec47c4aa1e5d9b06e4641ad8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)@jQ{Orqij*<%&k5)oN8ylwPlw&1Pwu1`vzI^a3iC3d1n-`TU=FE|&vPEEaVE%H=YE z!{Kn95(I%|**j~=fbn6_3Z4%jNy$1b{5d0P^|# z`B@PFKA(@+1YH24SL*e8DwVoZaL>t;$piq)vbPG_?Y1b2Mx*gbC-?h(02D>tDhLLH z02D=evPFZz;PMii&E`6L*&lJ(JoF9H>GXBV?REq3`~A8Akx1mikY)KJxZCYK9*@J} z08lEGbOE;8t-hUa;jrYVY&Bx$i& z*ladMQ6xzspBvBFCz(tF*zfmxjrOHhs}+D+t@Z;>et&;Ao6X^HSXI@JAjffqLg8md zMJN>d+)u03YOz>4ozCOieIwrNj>luG)f$aPCX~!Y}EM%C4J`y@B4o5@RfTz z&vo7R^>p3mzIzBk5b&F!!Y{{1;QtZ0-ERM0V7J>9i$$8I34+jQG?hw4jv0@~1A%}v zCdfoSpZ9n?^?H3c9EQVT00x6Wl3AH5!f2C*5urKsucklX;#8kjZ4^1pe;9;c(DuwcG9X`Ea#b0r2^JVu!2MDu7%r zC)-Kkjfll!049@(7_wTe%0=E1uvjdTRXC0VkW3~Oa$nEE^?Kzv&gF86p?13sAeBlf zq?5|kN2AenIt5^}**cxh^KK_eve|3`xEuJL9_aP@JBJ_$aUw-g02qc*wpYob%jF^n zg4t|VtJUJn@pud%5{dk17i~5hp63&Zgc$1g`v5|r(2oRqy&iyUHY)uUTX=nMjh9 zgj%f@0Gg)P>-A!>(CKvLa`|f(u`Ekb6w9)b=xjE7T+wc~4+aCdI>fghUgz`qcsx3t lPL)c@XX5j+`w09v{s53-g&g?I_Mrd(002ovPDHLkV1kf_4X^+J diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/i.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/i.png deleted file mode 100644 index a149116cbd55f5ad964efc2d6aab15facc6967ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)VHNNj>{3}M*rc$tuu%{{z)mE6ibO5a3fU_JkzjI(XSm{= za@g5f-g~pV#27=7_(H+>82kf+(hHi?=|n`2OcX`+dj0uomI0H=q}%OQDwQNlj^n~G ze5$4NpzU_Me!p*;rX)!m$2FVHa=Cmw9tVSgZQHUeGscLh-EJptk#g|ub_-y=UdQ-q zwW_Kr%Z4-qK@dixQH&gq#{ibgwY>$;xj8HQ0*4jjh; zpzC@L4a);XQEoZNE}>lS0TJ;$e?FfJDbZ%L0ibDGQFqa5wF1!V_3~XT*{dmvV&0zp z5VS{JE*Ai%X%=N*Sr!1#^J4traCnaafZ=c$BRidrD2nOAQc`1x$Z?$O^-4t3>9kg> zsj51k&+qfPSS*4d*zfnRG}-t4bXBX>n$2eK58CHf@iF)lgKwE2iC9>2d~pB(002ov JPDHLkV1j&L$`=3t diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/j.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/j.png deleted file mode 100644 index cf94ff276a68cbaedf599779e91267d3e4780547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)A|? z;R9G;HCD=25sAGuN?FWCiq9dX*l6Md$Og$5u#<(Al@ya2v9fY4yv4jR!<~8bdgUzt z_x$_ad+s@RhEPiJ&T!z(@d5lj;Om$E{eJIoeD9J{>hX9uj{A{8t;cXU%w#f#yuo0g zOD2})V7Xi-5{Y;`o=hfvKA#{6JkQtb_33mf%W^Ch({JC>3EJ(p+wDG|&swq9>j5|( zk7h1bK)2fka5|l|;&!_Q&}cLs7?}Wyq5vosi#k0TjS7PB*vkYc6bgR7|8O{H#noyB zpjNBB0AN_+d_E6AQIr<|jGaI*7<`&$bCM^M34m-i`#ja&_H(%$fcbp>G?Uo-;CQ`W zRaIHMc1pC_Y*bY>do5l77>~yQQmGVEwv7u&r_%s-yB$-r8LFjH=>Z#nD2lAzd@n5) z3ji*c%g`XpGGqUk0%o(>t$OSA`hJz?`D(RlVIIwj03Z|!T`m``9tZ@=<+8PbH&k1# z){Vh&oFqw|PN!0-IGxUZzi;_PFP5}V1t#Ue5&i_XMgpi|1Aq)>_s>iZ3+PB+}^ zp5M>iJlpp^?|Yu_d%pKQ=e!X@@SFI9U&c$|B_N?ztF>CKyVPp6%4V~%SZuLa+@Z-M zwA*d1Rtq4VPG3>u@z~*Tc)ebZ;{Z4uj@$D0?>9c1%|@dU%d(9|!)P>0@#FCr3WXF3 zMZe!S7z_Zq-7Zbj|8fFCh|A>y(ChWYWu;Ql>2#CHuh#$=h5^8` ztl4bdZnsxCYPI@)@lQ@5Wl|K?Y&MA;JQkSG=KunMfYoZPR;xrN9t)JqWdPy@68U&M z2gBhIfY<8#x2@&w#&H-O9K@;R7Fr2yn|xvOM~qCP%8WC&a?7XW_0|CTbDOaMBajuhcI&Sta8 zv#3}s0^oW6mfG+4;uj(u4#(qhtyY^%Cck>lmv2+0QYi?6#bUXoG#brzyUpkGr_+gH mm{O_qO_#pC{_I`?|Bb&3aC|#3A7Tgq0000E-{0004uNkl@5XQef{FBZE z6-{TMSPCHzp|P=vMH)e|RvYas#0L<3fuLZUfDd3{VPWkH*og>2VhRh_A|S`X#bhxY z2l=`kX86qvGs6-}DZ`q0B{_~eX6Pofa5rikN^O~FaYSf{<2Ia6So47DB}NAB$LT_JZ{_e z%d%Rnc%D}jfv+0 z-xG-hO9k`!+}+sU9BkXJR;#isGfol5aR5Y7OsCV5Bn^kd?RNX!q0wjnI3ABIi>4@w zD2l48mdoWIY00wO>-9#XQ7jfa91bj--0%16_4@60ds$4=>~_0_LcwJSf-oMBDW#9c j<1^PZ`c*`LzXCh~Wd|aycr%7@00000NkvXXu0mjfK@`uf diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/m.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/m.png deleted file mode 100644 index 08eccac594fe14fe65d7acb9fe63d5d9768ad626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmV;@0xkWCP)i6#qQofrSpi z6LJt56htBfi>7oDF+pd zsrbIbjrTQwJ%ew{7eCWI=bn2$+|N1Zaw$oY@S9NKm$4z(5Qw74aolh?{87?}hljt0 zv=Vl^9l+Dmle9K2FE9OmzicWH&@>I;=H_P2?AdGwOS;; zR4T1SP$(3vRx5zr-CacjQ501w6-7}1CXE_Zcx1%T&y#lo7+=0G4INz&HV z7NJotvdv}_1mWP|0KoI}^NL8P(|LG!*l08WoSd9YZ>_pPr_-9Q-R4OGqO(qk7TCJu` zkk98ij+4z;ECwJFiOAV`o~I}(9*=*kr%DB&-|s6Ecs!m~t0kN7@9zM#TCF^QG)+gN z(V0^Vm0UnD8jXxbG=5A zU@#mV9nGIAm&*VchEXP-C5N`}_L~RV6a&bh;V;*BrQ9uKWA@@pv2#hc7NJ z=KFnTXNP53i^W2keIBF+L@3$(T9FYam={sTcsyS5TD043lEG%Pxm>Pq5`BJtG7Lku zYqi?+TlgceEPHl#mP{rW*Pv3Vh@vR{Yfzi7f!H-zw3uBm7!0#43M&?iN$_8AhyyWL6bu>^Oe?~M?cT7Ly)XW` zsXPx)c`ohuz3=@#_dD)(XF~|VcQ!kGbNdDSJb?JxbgHT+ilKA(R&9zT6e)578Ka=8Qm zkH_=SQ!bY=#aRG`!(pjZLI@EA0RXGj>fRFw1TYyamS{X4r&1{ZC=?1do2}h$-xw~J z3r*9w6!;3F(WtKL2q8sL9_}Scl3J}6CW8gQ=kuB0Znql%`u+a@hFmVU-|s&JOeT|Z zxon2DS`7fw>GX>m)EZDKm1eV<8Jsy&eEKolYanX0ylR@k2ndSd?Y?UUxVg03ZkgLg?AidkNt6dLQb7 zAOL{NHV{Bu&$*)hf^P7&ZXVG~H-4-T)j9hkrM<-HsVE7z_;CZnt{_ zplMn#7_|H|n`dG)8ohEG+HRhX+wGR3D3T<<>KS1BeVhI`;17@>|B2ZQUK0QS002ov JPDHLkV1i431<3#a diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/o.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/o.png deleted file mode 100644 index a6568588bc3bbbc1fce0a8fb0be937f6745ca252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)NklL7K<#)&So=eTdmestJQ9|)9Ew-LI{BAbb2@UH9!yqhr>bbR4QdK z7;aBxS*8G=&-W*QXf$fG*{I!YHUZFk+)5P1C(U>Us8lKdR;!h&s+Y?JKqwUY9=6$R zC}1!cyaAvuB#}r^Hy)1zSg+T2gLOI`fL^cn1|S#=0yrEF)Xn8`+wJyIu-R+|FdmP! z0?y|%0FTF`YLi~C2XMV!?_BQg+if%&0Q`Qx#wj_SP8`S4Mrj(fPNxHa=XovFX)tZ6 zR={L30l+Yf7C^mT2SA5TD`3Ch16VGXFRLqx^7Zv42!hdQd;?&ySO9dp-Isu9G|Dhc zwOV~|7iF_qEt{&}?*ot|Nl}zXG51R>77Gf9#bS>#hr{8c>D4r7fk1#VL{a>HS|}7) zmZe+dxyX}mi`(rUjYa@Cj*CPhcDtPr((m_cwOTTn%w#f}X5=|PpU*p;&fmdaueV$- jtM7<>K3*TdzYq8YE;zyD3(J&500000NkvXXu0mjf)BpVD diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/p.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/p.png deleted file mode 100644 index fc24a272aa555adf2dcf027c43951fa314447876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)M*DwW%(BuM~dS-zv0rWp(d0Wb{nhCsPo z<~UB*^_wM=$p9FQMvvs#Y-UsK=hoF~buHA*5)Ov}oX_V+@_xSu@b&feUWx8`08P_R zU5mv6K&@7DFR)xL0c5k;r`}Sj4*ITdGgpg}Hy>||- z$mjFdSaf6OBd-g~DAgxDilQ6+kYRn@lDikLS8? zNs@NEos;BV{{ux)02GTwUDp*wiO1uDAiQzgy-XpQOad@XleoeQf#dNAAe~MVw|FrR zWLXAKtybL+1bh8RB;v4@-IQpv+1T6x4nf&GykuE645QI#{A6TOpO@W7;K%q2y?nP| TviJ<)00000NkvXXu0mjfH#Pmk diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/q.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/q.png deleted file mode 100644 index 44ebb8de0dd2921149e440d6ab387fbc5b272093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P){oqBb`pO1T2?J z04Nj+&jK_W4FCv*LY4p&MSVWsivS$Q=_F>e+1miC)ym~^8QVhxn$6}z@6#zF2%=mr zM$GcoEYygA7;MPEg!;wm*!r?H6VRpNnBuR>*8jS`3OePchmW`5U zvzg6ilSm|dK3}C$g+iglVnMqql?sQ$nNFw7GNj(L>-FmKc=USx>2!Mi?hHDht<&j{ zBuOi7JRX-yrCzU>%jLelzV1Ikk0t$#Tr3vvgNu z%49N5r<23s+%N`%A)C$acDq}oPNy>(jsMz%dcE#)xxSMG0)bwy7mLMSua|uf?ycMH x)@rrYYPH|*wOXy)?dJ3OuTH9;U&sF+@Edn{t^vvb+W`Oo002ovPDHLkV1kx}D-Zwx diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/r.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/r.png deleted file mode 100644 index be3017a4a29fdcc6487596b1e22941f08da6e039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)=t>#h|2=!C+CcGnyz?Bdbu?;7{R}+{++EO+*Wq@%1ptboM1y@k9{}WX zIZ?03DH@GNcDtQr+3Ui`<1qlZTrSa_RH;+|;PraH^OCVjr4j%n5(!bSMx(LWY|nBf z9n;}(2mo%k`_WacRs}&A3oMbSIQ$F%_lfIpu~=Y0JRbi6fFK9}5C{Zrjgd%1`T_YOs8A>XK&@80HF6w>0r`CX zE`Bh zu~-ZM7K??bm!|2zA4P&7Nivhkyxl4c2E%5v!M*HJl}g3q@k}NYhr7{{M8g)x!W zuV802Woe^WPMQUog^jRLlD&^$MM~L`m9mo(cCxi)DJ8KQ3yYcOE>7uohq?1Y-CO?4 z^E}V_opb)@jUXbtQw+RWAHaVGoK7c0d1yw*s3 zx7X|SWHPDO>m0`sLI7aD-`fQUf)I^He>AG9O6M^g4s8Kitrh@Gr&Dc+=Xr)~uP> z2Owg<-w%hw6ytKa27|$i0e1|w1OO_Pid}%BD7V{9+n!7&DPumLTL%;hg+L&1KA#^( zgTWvGlu9Liz|(V(PN#dl-sN(k9ch)%=K&xT3R$`AuGcF7c)eboq19?N0N8G~R+ebB zT2cIFvr$#`VUEM$_;r2sJfHxUWp}%sHX4t|GntH$T}PgMTNaB&B9S13AYv+&5=GJD z@hFP2TrNkWQMcR8X0vu5oWtRe%jMi|H_i05a8Mb-k=Q?1VJ!_x;=5`j%&#-Ejhz4XLt6S zo!QAOM+m`^`oO|k0V{x2!!U$l_|x)9INZ9xT3}UfJkTO~&Vqi5G*jcQ84h9lwA_l35&0-Lu!qTCkcW5Fv=k)El zwGEwVH|`lWVuz zc|0Dg)v7ovl?utZ-|qn=5{b`}79g9=3W6ZZax$3&(CKtY&SJ3$U_PJ!AK+DfzaM}o ziX?;CY&Mxps?yg0Ns<6WA`y~dFc<(R6bd>4&1Mt8U@#yV7={6`TrPD2XqvWIEUMD; z`5cW#04RzgJ^lrN<2V3~MuTLq*=zvP>9kHjJRaAGaX#@D1bm9pc6n*l-+Jul~|T_I2_$>7eKjO)&rQ$W&rZ}{Aa1x z>j5~Q=j0LO8904&P_Xt&!R`aI7ASg+Tw2x-UUH)%R53yGrmcXPAZc)ebp=NX2P zBGb)0>I;$n-Q)34-V{JA7UOyTgF%T9fMT(zu?L3l pT)Ym4gUjX8_88tbyEow5^#=$0z&)9g@U#E`002ovPDHLkV1kL#2^jzY diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/v.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/v.png deleted file mode 100644 index 2c51c10dfa13fca1efc357fb580242dcd2710820..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)8mEbN7VPayaLwib#)N{OO{Bw%BcYY|vvP2x3} zX7O~HIWr$~ZzhBxguqGtz+rs>Ux0&v+wIovb~~NUcDuExZ@1fv#lng}Ow{Z3LZOiE z8IQ+?p2=jQ8>Z8#Sszn?uEAiSx7h7=&)I&z@AvxwB$G*-076K$S_M$4RLl&8LV;yj z`v6&%tq*g#T;}t6v+V1)h~v0eECyh+*%%s*$788fdi#2&&Xx!9io zKqiv`a5x;EQ=%xQQYn^Y&1zjVfJ7nz;Cj9OiL0vGXf&SVZ*Q`uX@>D^Hai>+eLkNf zpNew19F0a>t(LXTMc?spj(WYmTCL9K^UEqK0K+f<;_2%UGjZlkf z0!fkpcsw3OQM_KSekGrr06?)=B(_8a7>!26u9)wyvk zk`#v&2U~&$MTbC=1{Xzw5JAYn#Yt#rwIFb4YX}6F3nEQANYJ9V1&R(LC>0?@i=&EM z#q);q-hFmGUEhP(^6;DP{m=iO@BHWg&VLS}l;S&~!8c<`uq61G1f$W&XfzT+1VJd3 zN?!#?l4P}7T`m`Q)aUaNLY|+Wf1BtpNRm{m)xzO0vp1Vf%0s`!b zL^fi6icly7!0mQ(3A|qK=H@1VTrM|1`tb0uv$NxLI@JjJ{k|f(+2z~q_Eahb;PmvA zyMjz6jCn+-svQc>8=W^=pUZZsMIR##WKvG@1)=jZ1O2x74q08tbbk%2(q zXBYsW*Xzy427|#)r?Y_I>go!><>lq9QKQlH`+fH9@pu3f3I#+5Sl5ZJHV?FLXTmlc7DMB?V==97t=fhdXq(&;p%bUK|@tJU@O^;w5vu?S$c zn3U3wkB^Ow4aHPi{_)dj0IaO6FkQP`E>>6>4u=E4)6>(e@#yF%pU?kMt9W^NkqM&F zXgnU@+uNIU*xK3xFdPnL%iZ0b!C*K%JXFrb-J*+&3jmEqIL+uK`q=;mQG z8re~ZL?Zk9`>ermz)fGL)2Xy0hGa6ygd_-piW^5o+9cLIP5ZLwOUN9UxC#ipU>~^?y9(PGANhJ#bVK9GO1rxgTWw~O#1zPbvH8qvZIu; p^wlw$Otf0}?A95h*$Z?_u&Q55s}yvHd|5}i(`N~OZG zY^hXQE|;37QP0$y67_n$a5(I0Qm@wml*?uBsy>s*FpP9MZQHhGS%M${NG6j2G)?pO zhoWLKnZ)Dq!{P8VIh{@cM59q3&ZcHXQOsmAk9k>^{d$km+U<4$%x1I4lCJA6fubn) z``xmvcDwDHpin3P5ClQjb;{BL0RX8~N|Gc1qtVDW!C)`|P^;Ch*Xv_dk|dX-SS)Tf ko0k%i&&BIQ@c#+E0CWR_T2(BDHUIzs07*qoM6N<$f?PlB)&Kwi diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/y.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/y.png deleted file mode 100644 index 6670417a7b73caadb525e084ca2ae229364529fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)nq)q5ebn2V zXEk%qea>^wJ?Gpms;UZ~#1DKJUxB|ZuwJj@@i-zPVltVOB+1xv+wB$+!{PAxd^V4w zT41?cy4`M36#M;tFc<^?ilR=Z)7`ScV4%e*6bhzsECnG60pdN-R5!!V}AM~h6;bS{?zfOflW^j}|fg+ifT zug9|N`vn{h2gh;6Vo{rn_X}jRS)b2mI?}HSXcNFN%yc?^lw(!>L?Ur#+3j{Nmy73l zqQ)~9n9XJYFdPnbORLoafP6l$62dYAEx%MMRjbwfem?*-8V!{kmI9;ENI%9%B(hj6 x)Te+pFFRS5$K!D{8s&NZ>2bmD)A9cc`~tKKlO1JOmjnO+002ovPDHLkV1lPt?~woi diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/z.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/cal/z.png deleted file mode 100644 index 2489eda0e59883c60371ad2540319227c3d509e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)1MFbTr^1Jv#xAO?#Ti?C$TXtK!4tO`DUAczimtU4Fm35Np* z{Fsi{_Y|+V`?{}RxOZ(9UDv@o^$WaNAHWCjbAZKSk;~;EgqFWz7)B6;dc7`+qQ~PI zjYc;YEzcA!l}ag!l1`^}T}KFw$K&aA`mdqgZs+s)+spbxX_`jUbR-hF9vu#c?RE`-n|jSFdWC}MzWau*zr8S-|uBvHgtZO zNKYn{7~^NsjgS0Co6Ux0SqP!i=_E-K0O0j{IgUFXkA}NX^#DRxtJNe)a=BdbcwClc zK@b#0v0AN$yD!`zkx0-qEsEk>nj8v+!r}0%=}+B2RaJ_j8jZ$11IE~74=$I>Zntwd z9Q}U(o`>goilR&cCX)$45X0f{o}pAK0RTFkjv2sUFaQ8Fn@vfQR;!h&s@EQy%@&PD z%`~~yY88vc>*qe7FAxX>gF%ucWm)$7{oQW&<=3=QsUU<3g~I7{(ll+kT&~ya`FxHL x!Wf^=XM!MDmaSH+u~_Uod+_-ue*pgr@Eb7WB@o=qWm*6L002ovPDHLkV1iP;_7VU9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/a.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/a.png deleted file mode 100644 index e8a6950a011de8bed9b29907242982b6529a26bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmV;40e1e0P)w+cp3sNx}vo2*R(+B!mFK?RML(-GAg|S*B?+3}c%TMUlZ2 zQAz-w?lHEi3K0buQ&Qo6dVC<@E6 zPNx$91VIqTaaorCb+YTaKj(elN5n7;*D%X6HcmE8ljr%>YpWzls;X+Ykb82g==&ZK nRaJfUbL5V-_o1e%nFhSdUEfYfTWl9MQk7K=swfcyP^yWJeexm+$$6jcIzsTg&;-G09h z;B-1QScA!A(o_vPoeqG(V9*qx*XseGl*;A#e4fwed7jq>kPT6e%jME>oH&jR!w7<) zv{zQB!Q=55kH?f!&+`BfLe}ebmSyG9m1?)!0T>R4oO8MJd_Hwu2aqJm-@X-2Fr7{b zA#$$kx@B24U(;XH{i^&&08M*q#yPJ6aJ^pNQEl6<0ZEUn)!%$Qd gX+K^q;Qs@@0jA*b;6S1&FaQ7m07*qoM6N<$g62QKQUCw| diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/c.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/c.png deleted file mode 100644 index e0417c53e7b25ceec69b85978b9d0101db7e512a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 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 G2~7ZXlyz4C diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/m.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/m.png deleted file mode 100644 index f5a79ce813b0201e6d0d42c8f5f95f54cb233065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)ztQLR=1K-09rV9;nZZqGECOk`PpD5U^^bG}}$ zecuNFK@g_XDI)H6JIk^to$I>f9FNDOP+0{kK*afc4gl?T`_BF2R_pb8KHz1OB}t-O zZ(CRnT7EFbehD}n4%EH;{bY#axbUC_K|qGlXhh0twIandO;S#$6Dfiq=(;|e%?dnI z&N*%FbULJ5k12}ce!nMCRaM4VrBYcgm&N7)5go_r^?J9;a5z*HckzW@LL diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/n.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/n.png deleted file mode 100644 index e9b7491a7bd9b8187349d4e03009094b6a941a73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)U#RmUs-Vcv&hBq_3 z6A@ug3D{W&-~fCIfO9@SW?A+N0xik+eE?~i5>eAMhG773T{q8jTA>Ai=Xp~ewrw-U zL{Xe4SJ(9>z%UF|RRuu+K$4{U{Z2%j^DqooR=->U5k*l1z;T?n^L#$n1B5k?1VGcY zx1*{m09lszYEwZFezw-%&q3e!|76g*uA4gY?KDj@1+Ui&z&MVZ07X#%h~xP2cuY=N zmQ!F^*7bUA+jbK`lB91NLf7@nPx# diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/o.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/o.png deleted file mode 100644 index f386683e561d8ac0d040377c8b1202885217a541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)o8qIZGarymz3q{j3 z&+{my$CT+X463RMhNfvj5af9-*`ZPZ#u%kkQ4~T*mSwx9%T02t`0ASb?%{a5)|Lx! c0nP_}0J+w6G^wFA2><{907*qoM6N<$g6VjbIRF3v diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/p.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/p.png deleted file mode 100644 index 334a11890098e231dbe0f3f9177f05d084a231a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)PZPn}zJPxPc(31B0h7r@5CmR;PN&msHlKNxB0tg|~=@fvbY1{3VdSAqXeOyPNzzx^4#C+^){Q0@B0AO>-DEXyId~)e&4oj0H$ebnnp2= zM#J}gmKJBy!D6uhU|AL+WImsFyWQLEmSq`BEK`vmkH=FDqtR%$+f}Po#>bTj5Cj3= zfkQizBY<9!BuQ@o1eQU#TCMK)`(QBO1^9kjzJNme0fBmE9D#G)kN^Mx07*qoM6N<$ Ef}p>|n*aa+ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/q.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/q.png deleted file mode 100644 index 205df6aa1f8e3dec251846aa059302cd22e353bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9IdP)IeZ7lY&vA>1K2?j#7;#jSu}SDl=d#>_G%~3mY*Cx z&!0c4CWJtr8lh(mfC2DrK$c~W<3v#efKuvtUb{yq%lG}KYciPtI3AC!E~NyNQqweb zU8j_uPN&^&XBY;6*=*KL0?V=hR8{q?91aHnK@fD4AW4$xbSm2-^>{o0)OFp#As0mf zU_PI}7Sl8ZuvjcQ0Nidj0ORra%{CeVXqu)2Kv|aGxCgRPPyGt?FM#aB^?D_Q$jbSA zW{jyuXq_|8xtw|cgpl=m%^2HkHUQ!{ZnZ1jgUjV20o(1Cb1sBftyYQvT_vS$+hG`% zW$C)^Uk_PV+_&HFUzeJuDGu0&uj?d90OWbz7eJ1d%+U+re!l})E|;x4wGV#0gb*sv h{yAXy=nsH*{Q%hRmesQWCwBk<002ovPDHLkV1j`7vwHvl diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/r.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/r.png deleted file mode 100644 index fc8bc8b0ae880e53cfe630bc7e2ccfd49d80129a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysr8J)^~EYYTuv&pllnLp+YZoo0Kg#XzD({dQNALIo=~xA(zQrw%c9^ez|h z-rFO0D7%6=+f_h^rTb^sfoby#Z<=^7ods*yvbtzwth1?r-PFG*4b`1?Z z>3RQqe71??Sp%M>s=mSZzaKCBljgH@kp|NQm6Mh8y2NbGel_6ff7SYPn?wWS3-&*Z Ymw%-%TO%HG3+QDAPgg&ebxsLQ09M+BdjJ3c diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/s.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/s.png deleted file mode 100644 index bd6c50c094f3539b1a895fe0d07706d20fab5f25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmV;G0c!qu8~)-fX!E4GmpStd zbGR@JBEpek;b5JB6L1241r$Xg%W|5gr0n~CS(XhCQp<51j^l{ya=GZb9t6Rriwe+n z9nbT&Z6o62@h}WS5QNw3MdPIcJfBYhh@uF87gYu<%L2eK4Bt+k=i@k1n#4rrs@AtR7Uava?{>gP+04U3H zpOCXGyWMVpA!O4uMN$0jC(|HF631~n%t4lAZQGKy=Xr!7Nm81o zh`6rnCV=_rSCJ&iJkP%G(_5JH+j0U`sfJysr8eI19Jg&>W`JzX3_JdVGeV#wE`AmG}*_Ns71L{y!6s#jV?&JIp>X6UyhPrAn=IGNmyY~@w#=dE9Y(g ov+Q}b{Q0jb?5X@+544-iRXwLJTzszYIM7QBp00i_>zopr0O8YZ&Hw-a diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/u.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/u.png deleted file mode 100644 index 8c1dfbcf105e9f02883f4d6a0f9a286af94a0fbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmV;00eb$4P)KuhZYF5ny-L925Ctwtw8;$I}9m@On5vAglhqS^RXFW)zl&*Z(CWGF<0 zJM{rK>j6A~{{m>5=0|^;rV9X`=Lv!k$MMz-!|?Tb<#~Qw9saI)o-NBFga7~`WP7#d zR#k;Zg2RX?iU2?mgzo@+L&rf~*PQ_z|H1l1JkQ_TrX0uZ9F}FT0n~L30For_e43`O z0Te|60J1Fa{Hm(10iN*8zZG7~l61F$e<3an@W_RSm<) zvg}lwx~{t|C`l4Tv~3#zL{V(p_Us%WVp*1oqR6s5j^pYK!=P!}vMh(W)ZexWM5HL{ jok;3gTOPmzxF7HdKM4w$-7NIH00000NkvXXu0mjfM9iJ) diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ua.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ua.png deleted file mode 100644 index cc049efe2a4f36ffb323bb03540b0987ac409e90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)3poEa@Z!#K8`Nh~T7yf`gljgFi|!f))f(O1HK{&0t-m z^>qkezMx-2P21_~+1|PL=Dd@4-{nz+5d0(z_+k7C{09QY&m@VWSglqc9v&EmNhA`- z$H(eurBX2%4B>G2-^D}|q9~r8o^l+=vaC{ad3mWMoSmITA`y)*XbI$UId$>lGysm{2q9Lh6~OiNwT8flhs^W*E=f^TI-LeE zolXJRY&Llldb)^V7>c6YZub@+3jSP()y9uI(izpv+zW!&A} z@jQQcc&IShY&IMYTP&7ua1e{dip8Ru5d^{S_bbcKIM5mu^50O9&*$g!d9&HvN?R_M z-!SZw$)qGng+gIB^z`(kf7lU1*6X#;=c8%*>gsAM`ttGuU^1EL@1oIYbaZs2B#*~q zWiENWUWda0z-%__9CoQxie=eYET+CzyJjOZ00000NkvXXu0mjfW+5)X diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ub.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ub.png deleted file mode 100644 index 841e8cc19703f08479e5897f3d0129f7312f0db0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)jpdBnt zo$O?xx5I@H{KI^uo9~wQo}1_9oWso_5JK>m`UiikEno`(06`EUk%-sphsJU>5U1^~#i ztoZqS9soFw(*Wppy8z(#`{(@2%S!+_J3CXGolXY;bUNMB(~~4g8v$fl#+fY?3TmI{ zc>pk*&2#Z2Ndf>()1oMDnxarBgc<#QUol@^UKU$pG#b$~{rLE(tp;CTUq+*mAc#O9 zpqL*YA8NpGIAmG&`uZBJ*19&u$yJwHNnI|NqbN%0_1)dwo0}VL0EAGrS~ZzWpP!$K z)9dvBz+^Hhd22Kp4u=C{&d<*^07Ov?27|NNOl`K?Z2$-cgLAo+FFUnfUtf=p zk2#KOwOXrUD2lS%?b^BsE1gcyohcfP&Rq$`Vlf;JFWpY88C!Us&tx(z%eq{y$z)Qm z*DIBZvPzO?9=zV) p-}mOF6((0004`Nkl0zO;EQCEQBbpKnXG2O++!=#K2=Xb<=OSm+Ri`ey4Mu z^PKZJf1dO7n1~2^>JK{002lxn4Tr-{r=#pg->Y7)+wFD$KA%s~`3pd!(U?poX0v%P z7_?d~w!hVCB?!X(e*XzjsZ9yQ$cfa5N=TNKFN~Mx|!1MV$olZ`t^F1y?p-?)VP9~F9t5q>= ze44I#o{z`l?--8bL{U_nXi`yl9S#SF!||cB$*AlMz|VRC?tT@H6iOT100000NkvXX Hu0mjfQi0006pNklMfx^-ckl%Vhw_ zWHKzvN~@2Lj}C`Jz>LS^;{Xi90KjxQ6(?_QZfdofICFP*#{-N;<8c6=&)06Z`7y_F zo6SbA*H^1msj^rs@{C5KaRlJ%>Pi@M9Ean$-|zoSY%-YuAel@`OY(idFibEQ6sDz8 z>2Nr_yu5sN71QZ70L*4HrH%IX_U83^h3R6k0Dw-X^YHK>t9Q9v0HD!mPV57OkXEbZ z^}F3pTAk1501$~pl>Q>=N6<9Qk7KczRG`!80O0!i`b00nFpMCGcsvdOEXzs-qtOTe z+-~<@nH_IF`F#E;fYLKqtyVaWQxqjz4Fm$AP)N4)jhlA6-G0CS{QUg-`nuomWi{LF z_Wu5UI2<1BruBMVth~6mh(@DAdkbN=+XsWe(Pp|MmNtifQwFicviR4UD8 s(_*n?vsr|Ytme-ZKR>+Afd3!x0T->L_LGj*%K!iX07*qoM6N<$g2mA?8UO$Q diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ue.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ue.png deleted file mode 100644 index 69b1f086851cfdf496a42485fd301fa1e05a1599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)TCHq0TPl?v{rP;J49n#*Lg>l#X8@k(-EMcM)4>>z zMkDe^MN!Dt<#MTKiJk#$Hd`up64%@ zi`i^e6y-&LEXx3JyWP}`#bN<~TCFyjOe9Gv7K@wBhN7q!4_Y#r1b}|OuVx$$hsWc2 zz9|hfIUEiHz+$lgfM&B9i^baQwkV2LtJT=8qDAiYdg?L8Z%7kxJRS)kl}ddCfH6)a z5`*U%0MqI8tqN3) z$Ky;U^N7jia_93|&s>wyhnFNtPN!49-}HUieF1Ol7m!cud$y6`p8x;=07*qoM6N<$ Ef`B>r>i_@% diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uf.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uf.png deleted file mode 100644 index 9fd1e6a1f73ad2c54f5e4f9c399f48732dc3052e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)f zc#YTG=5bH89A@^+?%CO0Oi>j0N&JBy#;?Fj{M8dQ8jWhT+WCBTxm@XVnjnZb6qHwB z7)FzlN~JV0{eJ&h`U`<2z#1n|eWlAjq=(Y=*B)ZZsODQb|J|4hNUZmCxr1g0NUDlgY&4a9|kr9S?Y(*D%Rs zlH)k#9f1B&p64lwQr^TH0s!Fi`OsLF<@I`9E|(1x5JeGf>E&{fWqG&Tp>CMXW?v`j z?PQC^g3c(zF!TA`=kxjfegGH@2A?*Xx|>i+BoaYPrBX4{14U8d@i@}BUatn2+-x?z zUM~Q2yWIy#k|c&0aPQ7;~HL) zq;NQFz>9`z+-|pO&swb(0MzSs158F!<2b(G?-3(O5=oNN>C~{xE|bZiQj*DJG#X`D z_IA7J?@dh4&rT48;c)15Izyq*yT1zT_v`ro3;YAeCXGC%@$6o_h~P2*FR90Y7XT!2b+5IXPJ=j_5H-lG5q4 zBuVjj96+H^Q1r!Ou`FdJz~|@Z)z#I_%?$va=LsPU!zk}(x7&R_-_z66`hZHM5{X2z z+3dG3&gF6dj7H;RGSNua0`NTVbUGW21|g)~Zhr;HvMfo`{{H^Q$A>J-YXY{nx7}{H zvVMMkRsfHWkAx78WJ!_$a2%(&udlBx%i3(Vd_Mm*?C|i= zY&HX+C`uo|S->P)%v)NoM7DWNnYBd1FVljLf3WXSkDHICvc>G-RR4Vm6 zfMFP%<#0FzgTd`~dv+}r3+(cEJkJ9-j>B2BTJ5zrkw^f5TrL;YrVfV#0E|ZCwToq0 z;>Sb=G@DJFWxZZsxR%Q$c5ODB=K%;IjYb0i-EQ~7KA+EtPjJ^PibNs+Ad|^nJnYKl z@_0N30HsoCv)O2xz8R)csU9A7yWLK&*W-XpCPUNoe!ssC!!_`Fy$=`JVzGq7VS~Yd z8KcqYbUIy!4F&@MNT<_}0jASwuh+xtXf#@@)&AO?%jNJ2&paUF>;q zp=z}X0Lf(1>2&t{ePaCAqiwfZt?YLDWHMn{R-sT3<0YS8$Nvxb2K2o@2QsxxYXATM M07*qoM6N<$f@5XQd*Z8Vjj zZy>R<5X4w&WnrHtP0%N>wG7x;r0_))Svw0!7qGF=QZa>?7!X7W@aTyDMU(!V0{4p0FdBDP)egH>UO)H=V_W|7)Bbcs7?#bPlG!*;uUKA(rf;bybByXy7&bUNjCfFVLityX)q ztk>&Kr=zOsY&M%rCjEY&{Q?KjY&M^{Y}?i}joV=sV87q@dc7ZAmSq7LkH>ETSZM$N z*LAs(f1HC{E(c(>T8SF8R4N7FbUKLwls%nPgqACz3utyAR-P ZT>-WXL*43-sP$cj~qK~yk5MQny8F&a!3!Q?kE_yr7B&Ay-_%qIB4+z|HMFpzOyba&Tr zxo}S!=j@yx=jA^}IOp)w0`S@X0e=c`KA-&p7>1Efrzxd`kWQ!bJpy-Okx0aulF#Rz z(Zk{JAon?dF{Y}j{oHQ1ZH6ESjYgwbELN-4_GF0gT6E(=($gJ$*};ClPo+|v^FpD(IbSRm z&S)Z$06;1AJ|a;RGnotk#+cpc$9HnM+zZZB(=-6VV9@F8^?KoO*v*-`y5&G10AMs4 z-941j^?Get)@uO$e&24lUavQsO<9(AyPZo_x)s`Hvl$MDgb+!RWLf@(B>(?Se;x1! XUiw9ZoiIq600000NkvXXu0mjfoh<07 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uk.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uk.png deleted file mode 100644 index adb3b00ae8019b75416edd3e0f2028ec1cf1f47d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)0005tNkl>6VZUV_{(<3(d%ug@3}zihn>^jIFYhQZ}=(P!=|_CN)Y^q=*;z_6Ga{z~`%i`Ft+R@^-tm+wG}TDi(_w2=LQ3 z9*+@1JkN`w$Z;Hzhr?lg)w6(FttLs*V`Q~jA%p;6I2_Uf>h*f7)%tRYVVKEeLIqeZ zmpYj&6biH{N+c32%ii67zaI<+0YDT*jPdPuqXHa{$H!jCX0y3m?%p|r!N72T1^`Xd z$iEatNvG52^O?j2K>z@r=V<{LW2e&z02Yhoa5&t9v)PP*1wm-H+f;y3sRRJ!a`~@# zBog5`uG{U>oaLkk98MuG{VYHUJq6o6Ux} z`~BWzG6BGJIyKZjHBCJp4*;+%OI(M;QK?h_U^E(i&$u?5&CzJ|F_KIs0if6G8H@jS zw0JzeSS-jz^?JRh)9G-B{ikPO&twq~=L&*#_c^}i$GzD29mS}Yb{ zE3&Gpfj|HNGMS8~X4WPC^-bUUJ+n;hD P00000NkvXXu0mjfjGqDA diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ul.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ul.png deleted file mode 100644 index 9f138ee71d6febb585fc3233651a826de42a1c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)Y%7X~uskL_(w zcn>`7e(yPaw(q(3a4A9vyfePw&G7;JLjcBjzuzN-^cE0(fiW%?i!96D3OSCuTrQf0 zx&YJZG!lu3q9`xh?Y7Lw=ksO(7~{oa!7z+UkH_Nx!1KH&K%)l~MTJ74bULll{eHi^ zYqrUaM&o=w-|MpI^?J<$Hk%Cqbh}-ZE=dvq^m@H!v$@;ti~~511AzH_zFx1Dx*!NN zO(zlwhr?mF+f5x)o6QCQu~>{43T;5WUcdSN762i{?REn|wOTa*&^0P5l?nhH4hJK{ zNY7V{$783{`RpeCf<@tQ7$Nj*w_Gm2sI|QKxlX4u91i>a{^@jjmeXprd_JEMi%O-E zGA)3NHR`^I}O3h%vEuWvQ;%{lYUnK|b$0ukXmVZb-zN8rB|2#3RKYipB}laeI8zP{Go z<>27JZnrxej#8gEQ%ttlq89&Q6-ScWXxuBxm;$`L?Y4B(gMI_G7-`8^77{9=JxhB+pD3WAr_0d zTrOrD3VQOlMcQ+c10H&v>y;W0l=`?_@t}fov@Am`XuPC3-1CV7|B~X>7 zXJ==fot-Rpg=}hS(&nYM2hYyV0vH(?sZ$5xa2UYAz<`R^m1%EpSH`j|kB*MkFSKkn zYcLoN4-bD^7z_Y(oyW(=+2HQ(4nRjoht|f(PtMQJkB*K?r4oPMr>7^~m;g*nOt3+X zYOfM-I-O3ZQ)Th^_y}Neagis>=kD%qmJtdBLHHAai;D}T zJt(-ky4u;~_?-Nn6SR5J}T3uaLmM$+ZPft&YXm@wl z?RJwMa=Bb%V`DOzRPloD$BT$`Q=%@kj>6B+?nmIS@eADw_>(U7=A9dG!{fr zYB0*mlr0No!AO>BHvRz?v$9fFnws@26v;{oODh)2j2TWm~P*u}#DcR;!iGW($YIu~^LG@c>{LMx)Vi97hPLR;vny zB9%&IG8w5<3c&02US}Ya$=2)j{n^-F)%$^D_Wp>rb_aVHmU7?DzZSayea3@$~dW=Z-HP4u=3F zlA{C5idM(taj8_Q)oT2r$z%ecR;v$Ab9#_j(OZedV$1ONa407*qoM6N<$g6twVe*gdg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uo.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uo.png deleted file mode 100644 index 0340b6d03416fa966c0b2e8970395e09e140558d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)RQ z<{93^nc925_kPZ8&iURF7-RU&AmNwe1Ng51&1UlrfbK<|+wH~}(=_e(`@LST-EJqz z*OJ38#Ar17zEH2%a~wAq43yUrs*SeYZap4PwOSQLQO=qqNl_G6tCcK>L?ZL~{LK@D z!{PCG{B#N-6pO{=O_IsvPdg|9d_G^jURTZ_7!1mcp+_PNh;w8DO*7 z9tmlyqG&WKYc7|If-Id*13;xx(e{Y|U^1D=58ZB8LAGA60f1o`&0b_OnTo|C0O)i| zj8NTRPNligFvfvEV6j*z2>Sg#00@Gh4IoL<;c#GCw%u+kXW(!+ zve~TC`JV2+-|r0ugZvFG7E3OdTP~O1l^nvTFzrBZ(`aXOu~T1`Hys*yau4=~0ALHsp{ s5V~HkMx)VeHotyl5}!Z258$8U3z7%h*~Ah(EC2ui07*qoM6N<$f-77Gw*UYD diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/up.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/up.png deleted file mode 100644 index f5a1d38d7583f7516237fe38ebb33ecf0a919c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)SXCIf(vj}Ht$tyX(`d%IL#US2rH`FwUdo%8vew|qVy0K{T33;+O>%VnVm049^^ z%1Wox0H9DP`u%>d*ZVVII-LRlK@eAZB9Q<9wOW0pFBS`qZMWMGhr@SA001tR>r(7? zy8xikXoT%alFVka7{4f=&vT4Ip}>pV?e-?1*=*WuHnCz6ts;lR0RRq%gID(Zy%2Cb z9swX8k7ENUiUNRQv3MWQ>2&U|Cs8912>AW}OXVhjpRiCUgaK$Y8p47T1LSf!j&VAj zFh(E@F#tlyVzB@~y9gRkR0(gCWO(v5J!+d>xH5!d8l3uTmL?YpE*ladq zmnlN%^YfD=N#P`qMkBA+%VRtq&z&Uq0GrL`^7U{yTvgF{JQh1=ep05B$piqDN+rSx zj54KZnmceFb*osf*W3fcFb@F?heMT0wOXy@a{2ealHlG=5keA) TfhFW&00000NkvXXu0mjfCNCx` diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uq.png deleted file mode 100644 index bfb7f505109971e0bd98e5fcdc2f59c943f658d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)1xPwJ59D%t8j44Rlfr7Uj>SNaE62j_Wd6l(^sUDSi9pj`RE3 zyr)ms`}w?jy7%+kVWKF)C#8Z9>kIgw06`Ew2%sn`9*@5Pz+Q>2!(#sCd0z%eR=z-CBNnM~%P zK{BS}@fZLKg~F4Vt5kNo9ROICRW=7Gm-Tvmxm?OK%w{tHU>K$h(C_!rAs7tG0~`*= z9isrC*XtXN271qf!9WI}(P#j`X0s_?72$B$>2&_?=Al-r6##g>-ghRsTCD=Wa5$9l zSS%Kqd!8&imSz2Zzt88BGMrAQ{eGWHrQX>^48xElDc@o?o7HNy@9d&7UK%i7A zT`m`?X*U{;9LL>mH)Q~H`)~dH{FKY(?RJX{=kpmYiOFOl-{J#6rBaDRA{@u@JYTET z2!fD`CQ`fIMupSq^d-P%v-#`E;czGxi?LWN8jU8C$yTc+isE1}FququjMwXB7)J5; s;HjF;W+)UIjYd)i?E7c;1^l!A04f&oAMt=3b^rhX07*qoM6N<$f(0xQy#N3J diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ur.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ur.png deleted file mode 100644 index 959804cd94498599d5e680a83343f22cf101af42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)C|xP*|aVuMRwK?SD-g`x&+OrlLUH)&N|BLasUT$FSWL{V~yP{9cNKspT< z1+9sPhX+ArG#XuGtyb&q?(Sck5Yg&fI-Nc|Je*FaMAYy1tyU}7D4)+0k<;mX zdwV0I=jUgRm&;`l0@Z32!0YQP9~zBD02+-7TYcDsDo zZnwF^CX-1%x7+Oi4h|0P@9!TUAD6qWFj=8cFbs2abi{``oo;`BAAnY?<@2+%GlfFY z>-9c9J{%6mk4$d0T3pKIa`Cy_?FJB!$N4ZGkEhdV(I#JCUvnCbMq>d_Pfr2d-Q97o zg+jq#FmP^*79b*%$poO)Y6%1)k%+}&;m_dYTZym7C;$Ke07*qoM6N<$f*$-arvLx| diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/us.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/us.png deleted file mode 100644 index 1d77b1d70537a413d909b19e7f4c6b201bc15c9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)!KYxCHIF6fP{C_c-t_hL6$*vs%kc2lQ`T2QwcXxk(-)uHNK0c0*j}wW6R;yLfrqO5=0MGM;kb1o? zd(t%R^?E6a`ZtK#Y+jbZVr;+P2QVIw0Wb_xDwRAQkI`tfTCE(%Rjbvvw>P>^5xVQkYzrU|y7KOuM0FopX z3Wc?Ry}dmEE|*K)EHW4j0CsnG*On-s&##EH)NpfiBcI^l;9xbtrQL4la=BnISSS=W85Q&5dEV)C z{&jNddTAHJ!C5UK@K&Z(v2pY06Y6^ld3~~q}?>qP+eSP_U zEQrb&{N&1RR&<$ArQX*!)w=W;p6EZ9M-)v8b^+?a-8a2$u9 zkz)n5S`8s|W5(n0PN(x+8#$3#mL*AYyWQH3EXxEz7>4mw1&&>m$z(2<3(xbm(`+^g zf@rl`uc-iITr3u^m!(q4+A^EX9|7V$3X~% zuBTkx?{`U(w%aWsB;eZb_bh_%`( z5&-1$`Tt*XDwSe`>2w+f5VkVGCD-e90O8C5j82utCl^7AM zC>eB7EH0ug>Sp^79O~3DgLKrTljH}u2wKpgwP=SrxCo+F2zBd{PQ{8&4kc=cwa}qL z#k}D{$V;P`_g<&hv*mo}ekbQ9-{oSGB*AyW0N;!sga5z)-%#uK`=wHe=XtN!%PsH~@&p<0`Sk;m~ccx3~BB_^2YUudh!| zPHlgY&Gc3)jxJv=<5)9KyaU1SrDM#tmvZ|ec_`Mk6q+6m6i z&Qwe;my^@PVzF|$T&-4v!63(R(nf%!2Moi=X^xMNQQXZ-us^tX&FAx-ogI=Sw-IAM eH@hE$zs4`LQ9?CPO?xW<00009d!Cv9%+EIJ$x8nC&!$$CSfkXEa$R4SCj<8hTr1)#01Egp|cMw1FeqfwX36^%y2;jqDA zAR1d+Tf}RzSP0SU^^HbD6vaRwFf=se^ZDq6dU|@6mzNI?4ip4pvDoC~BungeJL&fL z_&72$Qm@wqK_FyycGmCrpPru5V4mlRYhq$Tc?AFjL6EKy0HD+9-rn8_86O`fFq6qh zg7f*j#bQz3qFgQqz-Tl|`YbFg0O;@Ur=(OW(Pgobl}d%U22cyx3G zz+f=2u)VzrrG05nfE>sZ^>^C|Iplp68pJn-za(+~39PPvG|p Z{0IIo#$xdaS+M{B002ovPDHLkV1kyLgsA`k diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ux.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/ux.png deleted file mode 100644 index e87b75546c5db940206bcf3b68534f1875d8b56b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575 zcmV-F0>J%=P)uo$d1!D5J&1Umt*EFqOufHZxOHHTKdt^47z1v5l zk!hSvCe|6O0JGT)Kqiy%csyph(P%^|?e%)1C~_P}2ywgJk|d4CW7~lBdR;D;@5fXs z1wasl&1O@nR4Ap_>opJv0LbU_*Xz|V410ifyZsyr00@V}kH+Ki`1ck)DVD#< zj%-|0pU(#%nM{7_9q>F4AR3L@0ubwUz1?n`%_hSzx~}i{ds&tfi3H2C01U(EbUKkp z#2Ua@yA?%gG#a|Da~vm%qAbhRYW3&m$LVw`it;l1>xcHJQmF($lB7=!`FuVD*zI*P2_x}r6tyYCX;eJdc5~tIN zQYwm~S@&QtFkPCaJ+7>`0II5*Swf*uJRawHURBlmF7x~Sgb*{p>-DlM`{;eQf>x^q zz~OLoyWJ<(?RJaBVkRJ$%e`z7`P;|qa=EzOZkNmT-&OJbReS+&=oc8(vHp)XKpFr5 N002ovPDHLkV1lty0%-sM diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uy.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uy.png deleted file mode 100644 index b51e8ee870f14ae9c5f76bc8060982c49f44225f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmV;{0xA88P)D~4L5UKq#2?rhwGhNK5i7eO3W8QC0?|eV(aK7j!$y>p`2*BKPOuQM5lLYo7HVQZ zMBP^$EXR2o&%6|m_omwY=G*&rZf16uhY*6FG(P;W{UZX4#bP?0o~VEhS}vCpi9{6B zU@(kEqwRK!y(CGVpPxIO&I4cAE3jNH^?H3Y8cn5A_xJYzz~k`*0>Q_}2So^lLKFx9 z*VotY@9*3M#A5N=+Z&#CyIm>{x7&>nayT57N@X^isnu#qMyJzp5O{ie+WmXkY?jh+ zxm>H&3gcH-SCj?^fxEjq07#`$Of~=j)M_<4ND#ziGnvdLs}Yy<$%ZnptoyWKV#4f<{X;Ns$f zK^6*yr}Tl}?`IG^9uMmhsZ_czf)Ol*-zB$-Syz*4DXx7!adJW8NYC{Vj;wOSaA zMx)_y_{+6N3G{kB9I;F$yS%)-xw#=p@|d;X&B6bd-CrQ^8@v^NgnoT@#sB~S07*qo IM6N<$f)?32CjbBd diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uz.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/uz.png deleted file mode 100644 index 58ee470185ca5a4a093d49efdd61cb7a1aeda038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)i7FzuUFHwVzC$q1g`NV5()NqKnU4xw`Q}MCI$z*z6oo`GutJSKi>Tb6aMKKr*x?HYUEOs~?SPuRFAFsa+_yum;F=?GK RBK-gW002ovPDHLkV1ke7;;sMy diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/v.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/v.png deleted file mode 100644 index 3aed0031cacf3ad6303d9435a42333a56835ca9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)HQ0003-Nkl2XiY`I*%Hn-pJTLCR28jVJ->jJpn?@5xJ&u8EFpU0992ri-I5kxZQ3X0PH=VPN&V{WHJGuCSyk2d?FK|q?2?1_4$?GbeJF}@ zxm*Bvo<|7T?RFfJ%(PywUw+dxx7#i4EOhkQwhh3tEc&K|;a4#L2Eac6d;!#^)mRhK RsI&k8002ovPDHLkV1k@huzdgk diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/w.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/frak/w.png deleted file mode 100644 index 008b3613484ed1bbb12f6f0be6630cdcced5fe67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVD^E~!LB2r@DPPACWk0Sbu7ah&`89+cpEy;dp}S(bwmXqt9B9>uWV?{~Z1mpP3_ zV>+FFG0<;Wtya9+Y&MCgUa#|^q9~)$h=>-8MJyKMFrUxQ=X3H1yb8Ho4nQ;-t<`F# zY4&VI6ccs%Y~AW4!}$#ER?K`SQKP17ywwW*S=4YVHkY5 za=H8>0FcRKX0zFDw@W6I!{Ly;gAcV*sRUrTTnchH9G<(O>pFeQCjn#3vaEM*+jghZ mab1`G5Gnj^2?e1bc)XK6{w}RaGJ4d*3X}@;uixttg5`FB4!=9LE4)nkMpyqsY_LQdM>9gU@Q3 zW-Wjyia!C1&j|%8L6?wnkmt|?&c9JB0-}BvT#*r+-9Q%L7F>a@z&)hR0;WnSxCKdRs(1NT)W-wa{{Z<;c%GG=c02ypP96(0qu5M*Y&b2DW#0D<#GwY z^E^pR1>kf#0njvUu~=L#m*H?|+ctLq?Du;G6>K&ezT$el=1vqvhG768geU+Uk4FIA zZdWv?(G3@dZ<{bhSnktYw&k#r%h>b`DAt-jPbBl!(w^}b7xP_-%+1YP) z&d#7hMEIsud|4A<0{l|fb-Uf}`FxIuAz|HaH(l2iMFDWRTm+*;0jJX`48tTz=JWZe z%!Kwa#?mw;qG1^FJO{AdZUq6#*ipe4GfngLdVT8^`MxiH`Z$xju3N2E08G<791fCA zCZgl<=y~2Jv;BTA8Nl^;JUAc-0+IddsA8678AZ|cdIeBbm1Gavw&hvZbq!#%*~q*> z-}hk{p3i3h!!Q6a3_~PP7X&zt!z%-TPYcVkr1e1@$EvC>77M;CiUNS^x^g^dng+mZ zHv4>u<5<(Qs;cBXQ^puC%W}EQvMkSY+qU2Dx6DSn-|rtw*X#ADz7ZOBM8u8#gOusV dYXba#zz?JukpQNi4>JG&002ovPDHLkV1j`sxL*JO diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/alpha.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/alpha.png deleted file mode 100644 index 91907f256e28c86774b8ce4260234f5ca0cdac6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*eybgy1C)S5pFCY0Lp+YZof_MFL_y&A@^l87EkXqsyjCz51aMAe;G5te z8^Hd6K}LkVm|w+r^K9LmZ)Q8$|K;=e)O}_x>EO73g})|}_W}d&2YE)rW82S_f6bp5 zq;<^Vd~wgk>h)7jeVZb*^vhD|Yn{dCEcfeez1ESjw)EUxi!jC>!uukEXvwJb*O{oif5P948( jc71zk?!au~5V?QZ$tOLDJd2ruzGv`s^>bP0l+XkKZViHX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/beta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/beta.png deleted file mode 100644 index 95edb82f59d4cda867805b03112ad4ba60a4a6a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)l)Gp-GMO%A;cK_-FpS< zg)(r?mD7zeZQGs(Ii=JzO<8izl~SOkLB6Au(t9tZWQ$MNBb5P}eL8e~F98Q>UW+qTx) za}2!qLWp^u@1@qd?|b<4ob&fn0K+gKgw}OUDKW;N`2sR{NWcMo^uh@tV2ochsIEV| c%iv|*0PbkToCs2G7ytkO07*qoM6N<$f=QE}8UO$Q diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/chi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/chi.png deleted file mode 100644 index 2c5f2f28f499555ec79523d8adf36a3b5c09f88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*Ii|xJr`G_5zI(bjhIkx*JMCa$gMx_5^pFJh04CW8rl`iU1kPy=oHrPw z8cQ5FZyj9DTvTxEqzb#jMejCSrr+|LKS)OO2!{ccp$2}zxsWzp=Y&Jfw$(;DO#)I*bI&_C@3k-dTx0+ z6v$vWCb713-)aVd7&<8Oc0eSa`tNompiMxMh8OH0l@y%YXzcl^<> oES!pyv?Kp+3vpoG!~cV&{H|x;clM?4fI-0E>FVdQ&MBb@08S~0mjD0& diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/delta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/delta.png deleted file mode 100644 index 847f5c1469dbb348de397f17e25dd88cfaaf9779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*QIRVg%gum7FFaiwLp+YZowkwphysu6*_T!6%_+<`8hR!PZgK=cHxDxd z=?6X&1SJ}^CkWhaJR++8Q9C%|{*Rj+5BIjmzhboyGtOYEPxzqcYjBK1Q6Nw=^grA0 zeasAky^kdxz5k>dHBFV}+|DyojF>f->W4&jPYHUxYnr3B*7M4F2NdjGpV(i&UTSD; zeE+-boUD5fEc$Y9@A>Y+!tlKET8ocM)a!~jzwP>hWlwyz@xLt6f7l?Tjfdgo18>dj zZ6~5;Uwb&m`N*m6whqm=H4Ho13R~7}je7m(6Zf}`sfJr+J*Q6n~1rPDy66`n4RAs)xyPCdxWDk#u){F&$i=3pk-7Y^K37n_8pEMT^} z(8TxRfVIcH(wl2epRQ3CI{92)`0z1_f=S$b&P+lR9>}xIUwc`xWlr&XS;4*E^|{w< zy}VI8am~Xy!cIN4Hy)LrwG8*lT>Jc*<@dCvATEX_Q{+^3h^^;m=%`rbD;UTTm|c5m zdADb<*RdJbZpEyh-o5txlc?+-L7>9@*Y~wvyr9m==}~ZAyy$?robndyJwP`zc)I$z JtaD0e0suLQU(x^o diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/eta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/eta.png deleted file mode 100644 index 206d0142761401395213686294b78561c25d17ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*F_oKtjzj{5u6epRhIkx*JIzvuoQ#(+U6^Q77k1n4D22mGFyZm zEwDHtH{)jF4Q5UI?fasQUe@@=ExYXH^1!$DL8_<&qez3$hIOy)Ql6fYS;cAEWFPxdo8Ygrp4lCPKgUe5U`vAE1_R&P&BSv!p~v!ri~3bD!HLCr@=A{;XaC~A(Oz!5Be~&J^OQ@QbguJU zm{nsSBlz{}&HTW5jFD&K3?7{7SeAKe)%sKWS1@of?2GxvroTPO(FEv222WQ%mvv4F FO#tELb(;VH diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/gamma.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/gamma.png deleted file mode 100644 index 97a09a08c45a6c7f9ce729f9de7844ed8af47eb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*5yLidCj+3+IZqeI5Rc<;ryb;NRp4>BXyM@gf+LSX`h`Z$A&y;)ISjK8 zu$3|YYdkXH56i@sBh2qps$MKUYUX3;c5U*^(lm~?1P(hD4n-5GN5aPo85ojz1owWg zv7vs6SpAbU_BRu$MN-N?tPjqmHcY+c8-pW```PTN@K14iVp8Mo3HP{aWU}0 yoY%LNlvd4IFTPtt{l4o|pT`ePS?-JfVc6d5@OtBxC(1ydF?hQAxvX`sfJr+J*aoPEgY6XBoGd*1#Lp+YZy>?KrMUaOz;onWB5(oAY2TrdGlCl|!vKJU- zFEsAmx$exG(|Px7KcC#q5ud$rcIAzy0uBs}^_*uc^_etP-~V-GV3-oLW2(4X(5X4b zSuBiGf+UiYc|<-e__gsGmttP%lC6D)?{fFW1ZL-czZ`Y@((ye3uelT%7JQd;vXFWB te7+sSm8iMJ$7XysFWjZYq40pc!CZ%@?;*QSp(N0e44$rjF6*2UngG06R~P^Q diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/kappa.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/kappa.png deleted file mode 100644 index 7a8571dd2749b7e6bbc3c1969576a2e0aff20a03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*ann`dS6=~z&U?BzhIkx*d+j1;ivbVY0}XQrGY_`{7Wb1JeGk}nHQqcR zYUN~}F?T`Ug=&o{&CI$h^vnOwU-IGiMYkosJ%aOmxcQeeiLN;CpYiuTdyW-Z_rFI5 zg}Tgn{&UAyE%qM6*z1f9TdzfFE8VLWw9GSox<5Nj?zo_!pke+~n~gf>EEyD(1Pzb1 z2yk^TJ+Mi~MI@O=(dV*@%ekGClA`SzN_09bc$ke>XGQIQu6@eEPwoeA!}q$|+x#15 yUcP<#@Kwd-#sA|XuYcWg`%1JctJVkR1JZR?Zf_2ng#8D4jlt8^&t;ucLK6V69dly< diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/lambda.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/lambda.png deleted file mode 100644 index b619ecd3dcc1a19882a61eb13d65f76104b3f25b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*2~n|yFW&-%u6VjQhIkx*d(Dxz#Xx}dLZaw{1*HspT`V#^EGh~Mg&0_Q zxh5D`tY|rS@J*sHA2+*N=JyRR?aeadKdbvjb#gp8!)>&jf%S*1!THTw%kGzNRp@W- zh`ruv#HG-}z+iYRrlCV3dC&J%y1Nv=*Y4NxUMJbXA($D>^!7rJ;bDU(t6o_2?OJ!e z^lXrzvGSvBxeN|2o!Uuh&t;6eJuaJ^k8XOteE#-t_oA~WGoHD#?X8LLbFUsj1}6^A zhVw5UThy(!elB3hTkyN2^Tn!r%e3})F^N3jZ!njT|Kyim+jAG_KL$@%KbLh*2~7Y6 ClyWry diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/mu.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/mu.png deleted file mode 100644 index 016d4642008c5a2eea36b59f2d63c38f85160b10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*Nk-8Go{K=CE1oWnAs)xyPCLlks=(8Bk+p<5fl0P8@Q#c5O6eU=cMtGJ zsUP62U>9<}cd*@N$H)7(mi%=3FP1THcQyv&`OkO0-+jM1HL}OB_P%kkhp+ifX$P0jHp~rMuc<5h=GE;xdD-OW zwkf-`;(BVFy5oFPPRT`NZ_h2RU$OH4BCZt-9~mnjG9O*zwR;B8e+-_kelF{r5}E*X C7ICBi diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/nu.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/nu.png deleted file mode 100644 index 0f00fc4117d938236eb5eb6c32ba21c43106016f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*Nlk^TOSFMP`#fD7Lp+YZofgP@M1iMmcd!Bb0|u1`ESx@EdDK?)oo4^}xj>hbTkzoIs)L7THE_;ouxGv!r9bo9t-ZYxT#6iu zEdtM%Y`tb#{yLSht4?al41++Y8B8cek$FOc2krFm>d^83B-UvDtfU7E2rI{WrEMu(n{&Fu$r4g^lS$F?t`VUDrVrSPa{ g>ywz&9zopr0LF!Ac>n+a diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/omega.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/omega.png deleted file mode 100644 index 3c0220f4d0cd21495d0de45a33d6a0f5b87e0024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*Im;qtr4FFbB~KT}5Rc<;r(Wc3HsEp5k7ejTz}CVm(a3v(Bj*6e0hJ0C zw*=-*jtNa)^tp1cY*|_pa_VpFnjews-eT9HVpdA)g)yl(F#TanxV=rD;nudRQTF?_ zm!8^W!+jx2IB?!`M+bqL3B4;{TP62we!c70)n%D+_4V3HN=2R8OaDxo@+rqE@*TmORda8%JJ)@8U`sfJr+J*DTN{xe;=UGNlzEY5Rc<;r*7nJG2n4M+$raFg3Z9mtbx~tD@W+Y0cjQG z11uleDw<;og}O2d7%z$bi`|#B*F%5O>N%S$jpaWVi7a4X{iED4b7o}S{%P^9E-oeK z1O)|kPb*2C-o$Xgfahu9EVYvfx;4Ldtvg;gr+2H_u^%&FVdQ&MBb@0DdiS$N&HU diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/phi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/phi.png deleted file mode 100644 index 5b6fc9e50b7ea1a2a986346a8321bca119f08884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmV-%0gnEOP)?=nRCuv*TopCxpjc|UMW@L7^C;T#MatrnyTq_55{qv=Xo#GUKU}eKB_&lZJROX zbpjAk;`sfJr+J*DdTUm_$C2`Hha1_hIkx*d(Dyeu!0EN10&W44?I_}%-ON2!?zV0>ChFoa|2E~^6#vm@i$n2$46k96iS=&#XQWSgr{M0FzCaBGS9(h`xrQ6>xP&~a!BKg&g>iZR|mSwIk)_eYEmfZ1+d>sEm4GtWTXYjAS X^F`x~V8{`m^BFu{{an^LB{Ts5skUmE diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/psi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/psi.png deleted file mode 100644 index 92054d2b8e0b687eed39d9c0ff6a64c4813f7fc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)_AGm9e@=`2bRF?KssO_Ovq&1tUuArZsK{=8&2Z)0X|Yn>`K1a#oU5h z@FPUzy}wZ4y|1e3LP3m?bN;U~h%vqf007J92L(igh{l+z#QmQOVB04T0qPZ>3xn*rQ=TgemIz4}R2LJ#-M19|f5Z(fq2TlmtdoP5T z*UACR-|95M>!NuFAflA=1OWgntKyu?))mqk(=-Vo5HW;ctqmb)t;cap+h7~#hGD4d zT5D~sO?zP5N4u^|`}s5X!P^el&ST?$(XJ!WfCH2?qr diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/rho.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/rho.png deleted file mode 100644 index 48cc456e69b154f92b63299cd8a3ed8376448c3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*Y2hpH<)wi_&pllnLp+YZopzA7MM1!|aC7-f2k#BcFI}uI2)%KzVzA!8 ze4J|ovzLTb0>8?!ikpVo(|P~1s2omy=HH;yav`sfJr+J*83Cr{H`0JY`#oJ8Lp+YZo$4sqV!-2i*)%|=q1kH%%K=8A2@TC2D_CAF zC=HMaaZ*Xi=h@w!EBRnc7dU$6gNlBIgkXmQ%YT&)!@kEW>}D=oSu+vR%>zxc|~O_-4b3~%CRsgU|q(%=c$pimff8E_-B@@3k!qgbNQ1? zyPP=U=NFud%zi)TV4#D`u^Ce?&1G_NaY;L8`MtLORcTt7sdeRTv-h>vOAi~&nQhQ8 hX{kPwV8?`sfJr+J*8STw$44r^N^E_P~Lp+YZo$AZ$tjN=lcvH3@fYZZ)NvME9XhIW<$^#ae zhURx$RINYmvhjOeuJ`lTbS1&SIZqV%4l{{ucrc$uQ#HBg&oRsLeud{e413F6dJG@U zzIN-|+hXaB*O(dvngo)17H(DB>M`kDsitf8+r9RtPoh?Doo1H0=ggd7%~lr<(Jj|b zyqp{rlD&7+^e4K%9_;p902??0Zomk-fw%!1;0EXfxB+b7cOW6&>`V0WVo#Q|`L(5gERN$qPud4PY%kyi z{3u{uS9oyom6EmAF-A)1vMl2`f^rV9P1D3VPv1?`IOiZ)P(TQQ5E4R2F6Ue+1xbY7 zLEra`v9c_a8)F0}{y~EFeV^yqIhRl108j_U7>sdU*ZE}IHcIJj9T;PZqG;RpTs~v$ zwk<*k4a1OKr4%6qxE=DkMd{h7dUC@ZltbK6YAbgpd#-i}{h)^!=l~fZqiC13}EH*U&1Q Qf&c&j07*qoM6N<$g7GYweE`sfJr+J*SswnqTQh({*F9YvLp+YZoqCb8#ek=6@txh02YFwySv4u|=(K9gd%$(` zK;8oB8N8Qxi}+bJk2|&o?`W^f|EpQ!DV(uv)dv+z8y_JRN1;Cx4_J!(?)%hrFCi^k z*O>W$0gv6B=an+!*yLp`nZnf~LO3&pIUJ>R%nW z&dqSVu;rnNuX)J>MWtk)$Y~E-1V3)m-E^(ahC{G4wtO~&;Nhz8wfwtxCbHe$CYkKw z5_-M#Yjx?wH;?9@IpgwVPWJ6<@2|RU`tnlU5$K*d=GK{>55Bae=K;OQ;OXk;vd$@? F2>=WTb|nA+ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/xi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/xi.png deleted file mode 100644 index a00c3829d177de5ea599de8145998680341975ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 358 zcmV-s0h#`ZP);Ouz153aXumVev4x|I@fa!oecyY6r!DzAv-+AB<|4$}VIcK<&7u?Jv@Cf`e zj$={%yHp^A;G7deAY#{bSH2*Gpp@D#_1+61NXIgb7$akBp66T$RbUtf&Ur3}YSFfB zR8PLCh|4a7(6;R~O^h)B;G7fns8b|_FvhIw3IL3;x~{2Dp!k?l(psmKPGmq5&|1eB z^C^JRzLYYboVzQ7J>-3U`o1s91L&nGC2K9`8~~POxnAHn zRMuKzalyLw-XmhuGyq_XxiaLVOLTK~s^{bN2>idm2WA<@_K>}J`Tzg`07*qoM6N<$ Ef>>6QCjbBd diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/zeta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/lower/zeta.png deleted file mode 100644 index 683d9bca83ea455961ba22637f470c94fb8b68c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J*F@YZ*25*2u4?SHRLp+YZoqABPMS;h)`SIN;4(!tsIBzuS-e^?yV2@yu zox!(-`7MKW0)I^Tv6jehN9@}x=joYWH##48fU8gd{!_jZ_AL&vo!rAHHvFub=F zR8$hoTpRy9dZp$0&k@x`e2krFVC&lgvNBYVn*QLB{=k?Mj(9zw>%L`z)W= z@q2J7>YQd`ICH`AOwj%BXHJGiE!7nMY-8Nt@p$sLsliufHvD=Se&9c&yxc}!mD)Y4 RS%98p@O1TaS?83{1OUL+e6s)m diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/digamma.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/digamma.png deleted file mode 100644 index b9ab6f1448fe0eba3714206132e00a1b3ce0d9ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJytG3HVXyDye&YX_nt0}As)xyPBY|cF%WP)z9S<$IX(BGU`xWvh*jdB<+4_8 zo9EiEu<>+`;D(4YLqqGi`=ur|`aki{X=v`pHIKhP5(t7{1lUPkU;^f7rlt(tgP$nOZFt+b2)?6#nRp0=HsF^zCgG z-aR4*OjA~~yy)>zU9c{DkG9+NhS%aHvCFHjm8w=AH1TD4@Oz)smH*;=&+nARuKvkj gasK=}!wuJ@mv=CH?bq741L$=IPgg&ebxsLQ0Nv4qe*gdg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varepsilon.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varepsilon.png deleted file mode 100644 index 2f3ae9c94835bd79f04304c5b68e39be5c712940..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmV--0f_#IP)uuX0 zgni%7^DIfy3tu=aqT@JqUEk%wx~>R<&@_G5B*$?q%ksZZZQEW`B8Fl926bKUy6#Mg zj#q{6`w&9IFj$ryhM}seq9~#$!g2hvHl3y^48yW4F$_~xRnxSK=ioUw58wfOrXNec V1jITqZ8rb_002ovPDHLkV1k|AnsNXD diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varkappa.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varkappa.png deleted file mode 100644 index ddc85a22758f76099117875787aeeacbbb86e3b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)Ska)hV*Q@2>e>&Vh z_x%3%4ENp!BEly{!G~1?YCsKm2H?8xXf*2edQlXW-7L#wS*B?^&-0)6W2H>f1OSSn z0ARb_esdkiAx#X!xYwZyu-ol8jtj#O5p`Y9^SrRKER!S&0GiEa5Cj!XssNYE<$Ar6 zdN>>w>#Nm@1m}4k9|`aYrD>|FDk2__N0wzt@NTzzKA+zMn9XKMl312Sf@_)<$8p8n ze+>{tvET0l0K+h3;*-hbbUM8UpePCnKA+Ev#lc{JNKB#9shx50@#&s!`Oq#lpQ zhr{6&fNk65;6&^7y3^@!90vf?>GYKo?Du;BXt&$G@0Z=pW&;4NR%^LjJ{(cw-lLzU oDNWOVzl$36uc8LjfPVn^0$XNCsPaLfKL7v#07*qoM6N<$f^&wulK=n! diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varphi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varphi.png deleted file mode 100644 index a198b26921f9af5f8e825491313443f073105e4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)&zuW&dV7K=qZq0{Ne zvK$VF+3!Ip6slAzhrT5M`_aR@{R92}yymOg{6et`x-aB*l6YKsJM2pSc1Zp!pFJcuy0e9-dn zO!xlJx#xGd_Z+woAq2i@Kj6z&0V+TR0H9Xj+wFE3hJBa_$8n0HG8`z&Ow;^Bv6-oA zuR({yVKSN6w%uyASeDf^?RL8r}_PA5&%Qb#VA3y$OEE)F3ypUv>+g-F|FURjt?SaU8QOyI!v!I>Rul)vCC`a^C<#*y(h5o^Lc7&1Td0{Uk{?n+*V9 zI2>{u2LO;H>1_w+0$kS}jYfmPKv9%uT~U-?uQwi#P1F2jL}2x+r~nn<9{}z^`f5pB S+iC~^0000yXdAO?fYZZY~3Z2kt5QR5baANUa#1PvC8$Ql$4yC#_z1X-Dl^Pd8cD^;9Z#I2`Oquh$z422A}&y+XBGozLgtaQJpy zEEWJXO=EmO^b9;6PbQPmG_6vpM59qc$mMeJ`~9r5<+1*1wYtrQr-RZ(r_*V(*}O7M zU5}T(Wm$nhpja#>lS#MR4L}sdL?V&T=bb4LA!IZf<#IVe5F(LCEEbbxnd7+ec+6NL t*Aw5C^Z9(eUPV!KphVxD{1x~JfgheZ2g)B9vbq2O002ovPDHLkV1lld(=Px3 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varsigma.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/misc/varsigma.png deleted file mode 100644 index a5409dd4b923662dd2b59335466910ad94a801dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360 zcmV-u0hj)XP)$-|GIHoMif*|+^3L%tA%Yw5~FF8$9-}i5HQQ!Ac%JVi-_UL&YV~lftZbWLpIF1M*jB%dlw*Ua3 zZChQ}5kjVE)^&Y7005+vVHm!r>Nw8zfVb9lwQUJ^otJ$A3yp+ z2ui6Cf-!d7xL?#V3`1F#`@YZf3;-D8i#vEO+5>n1XY~iin5?d03g37D0000)m9~P|q!0^>*w~4URdg+FMeqlRU>B_=)?yd@_ybmoc9wz?D-A*2D})$4xFlYL zJ8+6+XLgroVdmW(hEj@mngegP58!_S*6TGPq|s=Y+D$E*D2nZNn^HQT&sml=+;0tV zI-Lk1kHf%zzqb=mtJM@m(Oj?BI~)#wK4L8g$K%oIbUqU3aI97FjjIZmD+4Jnw!mLd%a#F zkua-%!z=7|JD1DF^Za-`<~U9e1WOMvW7ro_N*RV(E|-VHA)QWJ{r;FwE5!5h(ZYSJii)CM2L7y z4Yby85v7z;>X;gQoDGP$EKAeaXgPjLsg5(o>YLU23y@MGBF;Gx)m<%wkWxD5KH{JH vr^t-4$9SlvwSE|I`sfJr)605#|q~NlSo2Pd!~6Lp+YZopzSDMM0po@bO(C9Y*U5Ld%4sHZZ?su)e@| zge%SK0@obAH2&E$&gLl{nR-}lkMKiv`44jTGdotys9JHttAXVQvqRlI8=mIkyxZG$ zt?TznV{2HJ*~Ibavdwwxyl2|hTGnTFAr24nC>i8=j8L8 Up%mI$1N1P1r>mdKI;Vst0Mej%D*ylh diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/chi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/chi.png deleted file mode 100644 index 774804af196fa73fe550b41b349f228a05914a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP)xtPjX9AaGvDy%pM)18l5fTj`Epc1 z1yn#5V6Bx>c3r2G+P3Y?kK@>Nos@E(=L`XJ0RWUz=iHw>=NtgC<#_-idhaQvF~&3F zoGa;G3P8lZ?}ZS@ImYO{FDxtt06^Qe#uxy&%Jl#M5km-s5Uq8gIJW_aI1Gaj;uhe> z9_;(h7y|%n?Ttk!pXHD~#z+VWAv`RR_x`l0G3I#6V}Pr3IOj^K#{gGf9zvCD1Nl7o zx~@{nt8-FHjIpL^mSssPeQ5HVwSd<8->YewN=)>s|Dp=00P+R~;PtZ(vR)ei0000< KMNUMnLSTY`>5%>a diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/delta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/delta.png deleted file mode 100644 index c3baf6253586ab872c62ccae51d725760af5ec11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)60QQH+ErtnLZT zn;dT*s5UU1{`t$QRz> zeDa>nt%l21t(wmeef)X%k57}fUQ3O9r^BJhaNy2jzU^I8f;bw3k4L>;doJ)vzBgOS cfxivv)3@@Ll`s9w4D>dGr>mdKI;Vst07XcFvj6}9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/epsilon.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/epsilon.png deleted file mode 100644 index c8f85ef3fbef563dd92dd43417f489a61ac84ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)60QRDO1lRbe#_dH!3Lp+YZofgR3svy#KQL=%C)Y_ddHs^0(UZ z$NS#TU-m+X!RK;|K-4tVWyUWxFGU4=$oDfibtFuf zm7uY7%JWJu&FiIKU(flRd%J1&ig)#*b+78B-raA|Z20s*#DQ_oLjEp4rj6MtlRJPu OW$<+Mb6Mw<&;$Stw0uPX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/eta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/eta.png deleted file mode 100644 index c02a78af3eeba4366aa30e51fb4c7732fd6d6e76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)60ap7bAip)Tv6`n4RAs)xyPP@o?SV5poe<`y?lk$$nzDc|>2YF>2-FMzT zAUKKl49oTQ2A11wnkT(?{(t#{#eTy4!<{o9p0j!ItiyptiJ@Yiy#DD)#d=E_8Vu9s zrLX`sfJr)605veJ4r&54I^E_P~Lp+YZopzCzS&^gd{Vcu*Y?}^lY}DS_sQiMXPf6LL zv1ftsh4$)~v)^tt%RKboh2shL1p7qsiMdPjZYOCvFxE5d@YkMU`8>wU@R-7*nQ!)9 zkLrKyq3QeUsj202Cyw(oug%(8cB`V+mEpnO_-baClxM9B3_lJ{v}ajyQRD-+!~3}% z$0S@_T!PbMKQ?w8kvRY0E@xS7w8(;nuMO`sfJr)603BxJnH5x#nI!_nJ5Rc<;uQ~F%DDtpe*c8d=;lRX~#mXLW=#<3@mI4Ef z2lv0l@crN5`P}W$6V(uzBzHRokw4X|8*=)AN07 z=z6Vk|0%_N@gfck^*j?;7!ua9HZ0jZV@@`=r}1yu?6v1MPE6A0QedcLP_}JT%$e+X Q59ksGPgg&ebxsLQ00I<9GXMYp diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/kappa.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/kappa.png deleted file mode 100644 index 44aa91f3c746c532ba9456a24e136b884d30a70d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP) z&paum^mU1d-uro;i`+rVZj32%$(OQUCP2i#@1>MQWSVM!JRVx>3q|Ft$T^q9(=^RA zO-CMb34{>OrE`u_`lmn>a$CeXf7-^Fwrw*T_2H=S-iHuMy#qoBW6WBswMN8$5g;M} z?E4M?0PvcQbB>6^FaW^k!!F6pIhTyn@CYIN^q+96|DsAz3CK6h(rgg`c1n8y0000< KMNUMnLSTY}Op-zX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/lambda.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/lambda.png deleted file mode 100644 index cf67ea5de45ba58bbf2a9fc0fbcfc1b490b9ed33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)60N!97wW{LoX9(%ethIkx*JMAFvVFeynPT`8?4UQ6u(g!+n5{w*gFqkPw z&)|K*sM%Gt;?cGh;{Q%=GKl~G^U=y{T2)?M=cL#UKj3FOUig7cEBLd`=6j!c1Oho4 zJI=eSOz$^5R((I4ogrcE-EC`6^9dL}_i@qjnsn4%la&EPFBi4((y?2c7C1@AE?p$q zhvVV&4nI5J*SqYNeo;y5F+5iB_Q{-9f$h(pckKBd^*Y;KbE{5w@w?kBE>Gq#H`LzG zpSfl$gMgF5B6EA6_v^cYyu4PveITW@G{h@&>$P9o7Oq}axQ(Yd@xuKFtoKwx`1z~3 R`GMYL@O1TaS?83{1OTT#d>8-# diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/mu.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/mu.png deleted file mode 100644 index 7284125d1d9b94b23b811982b93e41cb8e463bdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)00003KNklIBA+?6PY1=^B*3|val=Vi(M=? z;0F8y!1tEHIX4W0wKhqTzVAQYK}5zF0MvE8NmzEJEKAP$JkRf@X_~SutEy`Mgt*5f!{ILU}eM9#TG?jHaMA&R0f#vCfZv0bE;>bmZ5jD-i)eOx@0^*lSbH`D)D((W_@o)5OEhBai#raszI_^?)CA^!miu SbglmY0000ItDpXD!^A>xBlZx3SK zfE(}+0PnA#bI#uTloDfXnx<#FwRYRKvMiNSLWm!~zzgd8z9@=e7!LNPX-<7F0gN%@ zIC9SSeSfwu%W~>_wFYh5erAKP$lm)9!n&?h03n1irt3PwHdRU?qP3O^z&Ur$Ip=cD zRD)L6byZbb>%SSaZ{?hmQqJ?tIVV{aLI|al)*1k)c9FFf5mQRP1pq*dF@z9fJjCn0 zzY+?2eN_O!SC~@DL(&1@v<&P%TW-J&pa*;asIU(}wxA`)00000NkvXXu0mjfjRlMW diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/omega.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/omega.png deleted file mode 100644 index 3b9466db6b0cf618d1ba1359d750ae3afc6535c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmV;K0cQS*P)X!!T@}Qc3`j zQaZOg05(xw*ZYty)Hsfp0Gx9Gcsstex~>7BEXzxPgEDqqXB&Q;!O>)UgJoIvA?p-E zTvAa{6jnvQN^4#4cNH095b^nZ?n8*^tdF|~M5L73t3^tQh{l)?0EnonsyDT8&bzKV zvlou*qm;7WVHj@pv+|s?2F@{F3$-4(EK6G)V~leS9?l;eV~jDDWm(_%)~U7jeV;Mr z`@ZLS#~Il1vqfvY4uKHDs($N?qUe~x?sw4*xB>72CRs*o0xrGj00000NkvXXu0mjf DKOm$M diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/omicron.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/omicron.png deleted file mode 100644 index 6d31fbd95e6ace84ef6f1b317ac700c9da502a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmV-&0ge8NP)0003INklJ2haigVY1n*Ph}tRV-xQu0~}_COK5V=aHl@tW<7uh z@DBi=C6iK0(=@ehi-;*D?>!<4A&Ln3O3pdPm~-yupw?PSnG19Qh%q9fwRRtpQYxit z0ZOT^>t2RJ2mla5IN#x-$;OzYT2o31A;y@h9st10`fOs1F~;7{V4mmm!?kT&<%7%h zDWxg^A_9Q-{scfNt#UHw{HRbVrDa+AzOQPswH5$kjQfz*`sfD#!3Ucagb;fJ5<-62 z`%OU3c^t=K7{2px&T-C5cF#FCg};h*U5zo@V+R1GFC9Shd|MvC1GpdX1==;FbG^FT Q5&!@I07*qoM6N<$f<&~D)Bpeg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/phi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/phi.png deleted file mode 100644 index 1a928d65d4f45299b2b7bd405b61624d49db8367..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP)~=P||~7CGnAG(Ev0rIay-G4{L;0M^<=7OiEI=lRQBDP`AnhXjNW zYrMb7Kfi2u$VE}SyyjX|Wm%rk2U_d8t{+2=F>0-wrg_V~Z5)~2dqhOUs;ZoGM5L5@ z>(5_w@_knuhY$cDgpeeOlyVDkt3^cg_(L$pP8PT(+9hxa9Kbi7cgzu3r%9Or0000< KMNUMnLSTYR8Ih>~ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/pi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/pi.png deleted file mode 100644 index a1e1314b03fe7c4c585d9699e614dfce48f123ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)608Dlxo8$c0;nVv3=As)xyPCLlStSI1`?##8JMe`tE&QU&{gF-rv-i1~h zSl%YAIUpm}bhAZ8r6OWR{iN>`*^PMel6fL#a_jVQxD+rQ{8}5E?W_58j-a66^Ho!r z7^1SX-!7~=@k8mD#QVR-CFg4Q{Jt)%xiqEAMWIQUW5&#ms`oA~E@x`m*KU>kx8u#X rR8glJ{Kh?oat}`De99GUOd|q9BOQPf&XDV0)w3Sj1(^WSG+trZafXsw-3 zLkJq8E{41;OYi+|nK4EpverJUB1F98;aQp9rKpqw051Rlfb*PNYqi$b01y!~pY?-? znpIGBKt$gA@8x^%LkJprC*_;W%*-5PwAKQ^wr!XC`KL|R-bFd*-g~XJ)|yh9=ULgo qO|NJX+4ud+(PvHLUo-#)fcXRxwJFvG85Q6F0000`sfJr)60S&>C7FjVcd2Hc(d8;A+1PO*`mH+b2oNws3wJr5olVbkuu`sfJr)60Idg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/tau.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/tau.png deleted file mode 100644 index 7ad430550b442ecdcc55b7995c1e2fac5f05729a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)60IVHErvkHJhdpunnLp+YZopzA7MM1#zf6g~O*$nnujMI|X1Da$bgch<` zNoY6l-C*v#dAQ5%`t3i$lNCQ389!t{W%<~1?}rU63Ji=4@2je0+?6gxF?(pX3f$WE zb{8Lm@%q=hbWR)aY!%wMYTx_ho@kB(mfKs8&3OM|IiFj~+EA~zsn09Zp1rnCcxKdV ztGP6fk>Ls>!?Mg>`<@(rmHzI8v+#k(aUmfw8cSIYRQtQkR{qN#ptCwt>UoUi{Pzt{ e;#C+JA26ps@3lE}IF1$Q4+c+HKbLh*2~7Z^#A$&5 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/theta.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/theta.png deleted file mode 100644 index b5d78300c31402f09f77c5ca91245b8ebf36b22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmV;30eAk1P)4KnG|AU!IRJR5EY-m!Pt!z1Pc1~`oKMqqDn-k(5RvyjwTv;0u|vSS6d7ao zLDzNbx<0r<2qL<#`3rzCwhxF15mS5!;cQF+U>wI+t`OodtOs{c*Y%r2nCJOb1ad3T zT9;+HZCh$7r8wtj`(ST{+wGP%Am`j#`wxH^W8e3E-{0$S&ee6DvwMuO$o#f=?~O5t mxF;v~r2{Cgf6)cF0Pq8V(6X@sR^_e$0000`sfJr)60d9Ey5=F>o-6P_-PAs)xyPCLlkq9DNV@KO942I~zh$*fa0EDh)?X^<7r z4$xKzQwZDeU12A`CBNRo?Vp>@zT@j}Js>#o>XV~d&P+lR9xOi~ak*6XdCjb40!}=7 zrzf%PZ|c`ry65}#(#*BT3te2^*WTWC&eEmiT;|&O);65mayMVA+s2TvmbKxAtZ>zDF~-6kjZwsIc(lncLt0?tA~)rvGuo^-!;w smg{~0MLs$#ApSFS&OcWb1;%RTIMWWZr%fuhKtC~fy85}Sb4q9e06oWY;{X5v diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/xi.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/greek/upper/xi.png deleted file mode 100644 index a478d75912ca67133ab024ee8ea449bb68968c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr)60X(P4ZxZ=GF=py0%h2iy*b z*z?cqShMxqPVey0nWmX_}|$oU7}4S(bxvMu>Ah&vWT`?+GEsn8PdzFbu;hQV4;` zqDlk+CWFWL?G|9~&h9$%f8c7+WVFc^L0AyiEd~+X4dO--S@GPkaQRU0 z{p60q7d-8}@4z!>=FDLj5#g2b2QQ8{;J*iKx7)kAVHl4R==(5DGZu^8wM0>z&1UpK z`~;XzrvO%~)ve|C`y-JEFMx=AK3^aZIG@i~dZW<*P_0(E0GG>UKA!`K$K$tdHk$>| zY&N+nAfkT14_*wGV-#OZY6?IPQ@0gOf?Ck=&nXIasUp81Mf?A0KH!CuB9l-F9C*O6pO`RFbE)-Oxm`6yC$E{|GYWI p|1TmU#@Ki669DgT%Ny`&z$db<4@E?goxlJ9002ovPDHLkV1gY9^5Fmg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/approx.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/approx.png deleted file mode 100644 index 7ef6f5dab254b82b474171509f3743e7f5995ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmVi0s_SV89}G7Jq?B0}S0oC2^~tsa&AejklS0aPlLN4?wazM8{S zm&;`)lVP^{{k|Xw03=D0W!dF&0hmlCJOFz|q9~?PDP}8?NSx2-dc965RaG?>i|uy1 zNF>5rHTm&BSS%J+tJUxKzwlfxm*ersj)C&4TrPhdgpg9H#B(Z&QmfSrWN@Euu~?eT zrmCvz^}1TE3W8v_+sEVavpJj14u?Zy005`c>6=(66aXZX$<1c-DHe-GQ522cqSbBv~W1gOLab<4+aBW*8_n-E|^KnO{a^oy5e`9KEe?Y3_*Xw0`znarDnWo9}d=LZ=_kdxTaU4C* z0{~su<2Vk(@Ub!7w#{)IS(XjMNRnip=cZ}0EMr+VilPUa+_vrK^Qr3^0Q$ZcMe&Sd zj4jK$w37{Wp69Q;gP-<&CtVdR>8HPKn;-};0_eJ?01EhrfG@Z6{5)89q7ncA002ov JPDHLkV1oDbmtX(@ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/baifenhao.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/baifenhao.png deleted file mode 100644 index 624539c19693627bc2a55f333ef657a165abf1db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)r) zLRql#2T0A5#Kub27B=#$q~ynfl&sjv1}T!oSja{Su~W=$l%hn0g-J|t?qcdRVO-bO zt*@{9tj_bCch1w9^PcxT2mpZdlla5=Vf-5W!v+9=-EJ2Q21B7xzu#vITd&vAX!Mx_ zV8L#;Q>j$+IG@jFv)TKY4@@SL)9KXf^)xk`&04KiE|;SyDwD~k z(cp(qN{WHJc=pePE%uv{+J?REhGTrQU+N$?bp4R9R4@ou-< zolb|T*lf0RIt{)8@8Px%hXaBjOhqgf@ArF1$K!FY*DIAuUuMx`1BF6yb2h8hN+y#* zs?+I4qtQ!w%6j?;GM~>O_51yB91e$lJ|B1utOoITJdsF13Rhe%mjZzRybR8hIg7UG?q#wdOVp-=uD$gsZZbN~PV07*qoM6N<$g0&kr1ONa4 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/because.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/because.png deleted file mode 100644 index 51070efc10f886dc762a36d25e73749c6655b905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`Esb@24VQsJOFdm2Lp+YZy<*69L_vV{f<5;=CHK>gMXU#pIY&I<%DlX6 z^Tt`+9AZhDyVN_@Y|t#58Gru6k0$56l4`sfJyvc`JteK}Yfb`%9(%ethIkx*JJpb@#X!Kdmt~_6)1-T+qC0MQO7$ls9$>y% z&Bkrpx3|}iVJ%F>c~Q(oKXaR114n6)hTb{(g~0dw81 zMX#;AUY5qLnxnumYuU-qF`g5$3eTC|X6bU+SSS-4{(9oF%plQ&2R3SSwFsQv#Gx2s z`Pt@pAMU;MszVBPgn(^Ymn%`;=?KaUKZ`n=L=wVLN7ozw5u_*k=xEm$rd;>4{` Ts++YP=v@X+S3j3^P6`sfJyvc`ea4BW-~0j!C3?CzhIkx*du<~pgCPg&1(!TV?(h0B$71g|<}E3&-% zANC2PVeD4m%g@c{>dx=jrO_vd$@?2>^TBL2Cd2 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cap.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cap.png deleted file mode 100644 index 59d6a754347ad2e7fb94068e40e71eade8447ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`VLi{6D`J2`cRgJkLp+YZoun3nsm}xA(ojUTW(be0y8vJmsWmsX<=O8;vx(7AbHXEBv$N)Fu`N z#UqvT!k@A^1d0^OWHZHHS6rl)z`)QjC1}3q>(Gdc*(# diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cdot.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/cdot.png deleted file mode 100644 index 4f923c17780c032655a7aa14dc94f1a709565e07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`9g{bq)lxvAC{Gv15Rc<;uWaN!V8G!Ls3)sz+_(KB)0zf}#y*`1$EIm0 z-Hm_H*y2!rI;Ee-y@7#|$)5S$zjurb4xx-G&o~~u3sqIBe&4*YPb@y$wPmI+qfIaq e3x~jucdUyvWKO+f6*~m9g~8L+&t;ucLK6UndpIuu diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/circ.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/circ.png deleted file mode 100644 index a27d47748e475c55a752c387bcb6a86bcf633a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)b@ZYe^X>+)TkIM;n zAf*(%Qy<{X;s6fdfIk3yvX3@RgE3y$)p49Cik{qH-*-*Z;y6|m#j>obsvv}Y-!l;? zgH%;b)AYO3bsYd;S(e-EJ)kHG&-1Q+k|bdmJ^%=UpswqyKTVS;insCm4(54A2wi=I z(6((4lq7RrX0>v8S> zw_n)1a!Ip29*@`SwOA|$G@yrV+kNL| zv!OXX&pRHEgAx^RI-M}aNs{~zecu;FQI_Sd>j)ul=G|_WW!W@j^BH6O%`S#vSe7*npsH%yw%_C#08~|FNoD{BpvNCWf!T-W SXo&j&0000`sfJyvc`VWG6PE4P6{H#}V&Lp+YZy=KVg>L9@OAaW{)`otVp-P>7P^&Uv^J>=+H zFu~(XmCM4dih&m{%qVY64_DbW^Vj_U+RG%{IzBv=`0!D{;lOqWiMHI^S=uqz?|%Qw zYv6l%TW(Z>%<<1QFHf)teBdjPdA>_8_h_Navdn#qHTT!A^18cEhnwNXw%XYTeoqWy zI$(3Y%SV7EbCwp97K32-B8CQ=^Z!51DOPOR)tI@zD^cQ+Mcyp6E~RspO6y)nO-sH1 zJ#w0==c2fD{`+E@sj=5%uS>QiMotqr^m&hZch5g1CXNPqsrqkhi%g2Y0R70|>FVdQ I&MBb@0P?zewEzGB diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ddots.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ddots.png deleted file mode 100644 index c609835e5a42f761cd4139dfc7b6e93904c4a017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`T{X7v)<8LiO`a}}As)xyPEq7Lq9EX!D17ef?T`W`J%F zr2g#K73sJsNqW{@hP3I=A3jb0$K&d9X)^oEGXgx0?vD5RC6d=Na?g40sj1qcv2;UI z64U!yzKyxj(^)z+T4p?#WXKY_V87e-c%jAfS!W;g3OLnmT9@4{7F+q&#p~tg@cX=x zUYrbbKF2l1+mxN&B$0e;%ZsjSR`r|SS2v5@Js|PgG$mU%IcL_gi;EN`nvDF7uFjb{ TPyG@*(De+Su6{1-oD!M`sfJr+J5EtUz3zefUvnmk<`Lp+YZoqCY>fC7iB_v5>wGL5`*4hG&iz?&j01EgF0 z0<_sDn>~&HY0uBc&~aj8@bit4Yz7UCAq|FZUYgI>D4*CgBT`yWaPIDFr_QY6sQGte zr{~)5abAoKoyV*FT@+iang6_z7YNLL8(aP0TD0R431y{KYz)=EK!(gKWfYCm?zPlD R$p&-{gQu&X%Q~loCIDMpOR)d| diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/downarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/downarrow.png deleted file mode 100644 index fe285ddba4ab2b6092b93113f114fb899d96f899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`O}5Cd_wECQ?t8j8hIkx*drgtA*+7Kt!S#(Tx40adjtRP~Z*cl1Gl#*3 z@7)1Lfd>!xBy=Q1Ja`(H2v7Dlle(r8`RmQ=`Tl#ltvFx%R$3V~=4=z`W<{S1;1wQ0#jg!}MyG-0_W> zQl~d<%Vlmz=UzBvS>~;6Z%ur|^Am2DMNW&HCfUZwAd!6kd$YoeUFSaUIq&{pxw@xN z&&GAHdp3U7R0-MRb9v75NR1-#U&VnUUu*S61ep&Rl*EQ>G=-S|wfw*kr9Geb@{`H+ QK(8`*y85}Sb4q9e06V;Y9RL6T diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/eq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/eq.png deleted file mode 100644 index 21820cadf2fc50656cc6abac4a4f3b6e0f357db3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J5Wr673Gjf4K{+=$5As)w*|NQ@N&#cQR%-nl$1?yt5o+yK?g9#fNSoeQv zV&xXoi}AQH`sfJr+J5OF14r|BXPQ8c!F;5Rc<;uN>q(puoWzkWqD9Q0Cy-n1g{btmYSd?>LzM zF!Rj`Vh(S0KX4+M=a!^+E*~?G!2^~DZ0W0_ydtM{7+O8Q$Dr7vZrk+A<;ed3zT(y% znuf+Zl$9*g4VG?pzfzsQ_F;|S!G2!Gtzn_D-(KvsuVQDDNI1ZLfaT0a6>Ei~4y{0U OFnGH9xvX`sfJyvc`RRwil5j~*LdQTU}5Rc<;Cp&T-RuFKV8>G_Rkn;Reb;{JwuUPlA|GwkU zDq!4^pr62Nvh~8Xn{~&x&-kzK+$ZW>ugN^VAIt~#${m+jI%O)mQ%B{zcy^2DQ-Tf~ zhy=S_iE0*$!;dIW{9Hy6D_v zi)+{QD+^?foA~nD-uS+^`on96V>dE6{TW{GI`nzrl%jLeRTuj2FwSSRVbH$irf{7< R&J^f$22WQ%mvv4FO#q*mXkY*U diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/forall.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/forall.png deleted file mode 100644 index c2a01c859c410ff2d669a4cd0c8c09283079ca79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmV;t0Ym>=`GcQ;WC&wtz9 z_y2yk?>oLz7-Qg-`T{T32k_4UuIo}tg((n1m&@f5fMFP681l1cSw<;^5Vl6Jc9mtx z4`7UWo)-iGCqUr0EGv#{sw_j`m;+b$u*G);a60f2wT>2yj6;oBAAu=9O? zx7(?z`e(h@>!oR0*EQcR2Aoc(!C-Ja9-E&3+7tz2-0$}>#)4bSBs3b0k|en=9i>!U zVHv=7yPeHuw=0LkLDzK|uN0s;Z&g*-PseehD0(Kqwrz}Y8}A8#+nQ`PoB4b$`|C_v z*RBqS!~32;0kB@L7mLODe3ra>jlSh4`*OL|Gz~(yTCF-f2&{`HlL-JI&+`t2?F1l% mjK||n7V)U~Jo+EN+W|i#$Gq!U0w@*$0000`sfJr+J56Y&Evoe@BxtDY{7As)xyPP@q4tRT>~^(8~!12%J}Jcl_9a}Eef927jj znb2I!>~?@xqS0=`j|(P?!X}wLtbY2bp7YMc)y^EDesZB{T?;t66f^_8cn@z__qx>C zqp_n!;M~rwW^4k`p+^MYZ((}E#tn} z&ayo3vGUjZ`J(5aqxKo2r_y85}Sb4q9e E07r^>Q~&?~ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/gets.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/gets.png deleted file mode 100644 index 702b6da64d3590519fd342b1d443265210f123a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`b>*HSbupmO6Hgb%5Rc<;r`d8f8;CT-ze*Ad7c3X#f2di+Xxr#s_*rC~ zWT}XV>{lK>F21I2&vqwG-7u9}?~~h8e^uiw$2Y z@FZL!Idhg5D<7*`sfJr+J51I^UH!0$kzx1KJJAs)xyUW;CPL_vTpp=|0EMxkYV6Bzv1*smOXut4a5 zqpFW=Ps=-IPQ|-#=GpGuW0?Q<@}KxqsxOmoo0UGdxq9|;BVWk_e}(6Bit{E*Jl?hL zzreQjhtFJ#Vn}#4N#`^Z!?~TaYUID3_TC!e;x#FViQ#>%uOH)luTGC_Ti?s34$)G{ zYdDqOO$v61wmM&2DI(~?(lF(csl(0xi4q+vVx5Xr#4JS&u0yY*|)-eh*hw6b$s&40>Tvo4uZ_S?zopr0P@v`sfJr+J5eU1A(`Tv1JTRmMILp+YZy>^lFh=Ksig(o|h-l(X~;M>-+k;U3$jmk?0 z>l;E_nspUl9{A01C*P+-M&{i14-svQzvmQ(8?RqiBz2*I?T;LXqQ&!Xwfps-Y&I|! zjLddbiT4lxp?8df!J%g(SAmNQgMgrMIAdSVZ8P7=*Q#Q#YaN(=F^YLb(LtN@hYfU2 zf2v`>7Nzv*p8cK14vA!jDc7U93_e@*F}!>Gpmx`jDU-g(X_n@nsQn#kvVgIkp@w1M XN9T?obML+fdVs;x)z4*}Q$iB}2pef% diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/in.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/in.png deleted file mode 100644 index 271d61905f992c930cbf76769743ffdf71b501dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)&V6rv>}Vy?LBE=PV#=c_0C?aa>15=4Y25#V87 z!7JeB>!awRDC)ZIx=s*&Z?>+h=XtU$^JWkP0U^Y3oU$xMQM@w)L}ZL9iqiMJrfDD7 z2+uGK!*yM}%84L~BE}eUa3Y|TR#n9#AP3uYo@Yua=ej+5|6?COkLL@1Y-66~((&7T}&wARKLDW&H(afFs- t*|x21+pg;{#!s76<K0w{pb`UNxk0gRWap-lh)002ovPDHLkV1i>Rpw0jQ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/leftrightarrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/leftrightarrow.png deleted file mode 100644 index 989a47dc39a40d1cfceb4012d77213382f9eb980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)? zuHVD=oZ&r(!yzIR86FBwDJTX1UvRtK&gU})*zflY15#s}=5#ux0JU0ex7$$wh5!KK zIHmxO;|vCaF9ksmbh};p3DPtLfamj>Pe2HX;}`(0*DJCzpU<1kWJRaGT~FpG$Yl}g1hjMM4ld7h?ezo(yq#bPlUjQ~KF z<=5-Qaa@+NBjV%nI3ACpD6UqkR;$IRsjlmdMgub^3`0Q>T-VLfBFnNQNy@T4NfH1! z91gi_+Uay=vl&xRuh*B$=V`sfJr+J5L#e~F7#9GA_ItWGhIkx*JMAFvVFeyn&#R1^ICC7#8Ut@AC`+g*NE&$YmdTGeHpB8;# z>+UU?@@UTFpm)FHynfCUmtD))P~WAhpp^ag?zI?3hBdFHlGns?oJ(PF@OnAtG0)!r ze0scsyn=I%NNl}!EozzD7hkibC0PQ69S>Lpdkv#r2R6MHG+%Z4@%3ru&x5%Yw-{?K i&0m_DR~G!iT>cdQQjUO(u6;nSFnGH9xvXIP diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ll.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/ll.png deleted file mode 100644 index d0cc99f3daaeaead992b145969645ce4d285359b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J5J^p0b*H?i;pFLe1Lp+YZy>^keSwVm;;kIX9v-HD9EU#ELaOOPV*ua>_ zAZ@{vSD<{MU9Dx(m0MBwf5_|qs^@I)+&(3!JoVk(qnQrOQXixRoH!JxOiqpb$DDK9 z%y;ruF$SY+-)o=lRgvX3_SWpoh`s(?<(Ng^VgaRNJ3c3sFNw-6ONjLAGo zQpsLCg8d=&40DP*R!q?{R62D-^MC|1!_$XciVO`iFHe8@jo&>x)_2X;|BUlyKHsU6 znzr=H!LN0N-K&Dq#GIyte-oLIUmGfwEYs%bRr$?&g@lrp_ulU=A?sd=Oz>VUYw`S^ kZB6!mUEYiXUk@`sfJr+J5U4f$(TOR|3wtBiahIkx*do7TcS&@hB!R}P1f~FQP2KJ+jLJo%(GR$dU zR#9M-*>L@|9NV4Vl*k|Rz4w{5w(PyO>+G52*>hNR5*Y1yEuL?=_I8)mj5(hRWf&6H zzFk@WZF`KD;jtqUmd_Pi?j_sCE}7CI!0=$N{M;Rk74I#dcgzS{HT@IkhHFAjNj+cP zZV59q2qc|ic`mD`sfJyvc`ZMA^4bEX1?Vm)0PLp+YZy}FV2fB^@KgSFRb4V@!A>uyf)6v%cE+n~C9 zgNWw;x85-yS@*8Gbu#8{0Z`sfJr+J5Q?6Z(R}KJ$8a!PbLp+YZopzA-fC7i>(w7W<2iW=^Wc0CVTQnLmDqmPV zecQz=&cgpb3jeeIz~3;lb*|N+G|K~w_6&3QH{aXcvB&Mnoa>BdY^=`obaYtE(p)O> zIJfKUiYZPm!P@s0^+&5HZ4G0%adpwPSuO44SyTBk0`m9 UR12g#0o}sj>FVdQ&MBb@0BHtL=Kufz diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/neg.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/neg.png deleted file mode 100644 index 164bfa842c13b5e45098b4c1d81ab2a7ec846d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`9X6FFtyw^!I!_nJ5Rc<;rx|h`P~c$*eWfpRXYQX~eV!jo^^e~@TBr1q zTPpg<%AKZd-6|~}E+XoIj|_AY7`Y=pa3B0C@?tM@!?juG++E)9Eq=Fo!L?aIL0KP< z&e^=x?3l;Y4a^KJ0v+tTZD$mJnxU7uRxog9WoVC~m*%kL S(g{G9FnGH9xvXHbFtq zrGtA%aW9CVIEten-2}V(GrDyX`b)%C5d<9^92^9}?tWm46x6}ILGXR>=+|o|&y=<| zIrrq|G#61yfh9O#jJG8)3}d(3g^5J*ii{9C9*>1Wfr$dgank8@nAHIQs4uqLZ7P+* zKS2lq073{Mq}goxuMoUN`~9BdzJzid*YEcwN$PgHr_-raDqXMF_zM0+u~=NKR+Q4i z;eavr4~|3dN-GROpsWN6RE1|{eB04+wF!i_MaY1(CKt++eQchz<4~CWx3I4JRT1KxLhuy(J09+ zQWQnk_19zaJ`hE5yUp>zg1R)s(wr%HfxokH3{beST84L!=_`ooXcDo(p-yT-Ma5$`1 yt8p5Tkcs5;`ORj-P(iEJigeHXw=a69-t-gplY1P!*rDkF0000KP)!g$-hCV%+~kEJ zgaDfQ0+jUt9>9IEr;a2^+P3{UavZ0ss%e^nAW)eAV;ls5D2j$*48w5VK&~nbLjXXU zrpLDH07A$-&j5h3ENKC@ZEKo_Wm#H)Z|S-oMbTdM12J_RC(rZiG4(vJuImHCvMiD$ z?Nyo6eK3yWG))JFs;Y{j$g=F>1Q0?9;ep}xdTE;W`Frr2695oGdsXJ<%Cv2JUDr5{ zsZ8LyuA(T%o+~j$2>HIx^E}45@B6!Nk*@21T4Y(aEUW9f|4hj|-ni9`y8f`sgLyHF@Z2mxTVT3-^F&*x^dIh{_2!{IYX)3m{0sMTseb?<>a z(ChU!n@x^48V%_MK@e`x?^Fu(J0v{PbCrw0GUkY z`9<4oHUJ1ASF=v1Q%Q$!?ZI$31mJSH7Fc002ovPDHLkV1oGe><0h< diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/plus.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/plus.png deleted file mode 100644 index 7055190c44bfa7f28cd4ee6f59f8c92199efd112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`ZJutiP-mdf3Qrfu5Rc<;r)}gssvyv2Tgbo}v80IitkX=#0%7rjmK>#~ zUcQ9MW(TjI_D)RfDhU5~=Y4s5yWEy*C(bNLDN8DTyxt#VdL_`+h&SKCa@OhJ25bw;AdNEzHFTb_e!9f89ZJ6 KT-G@yGywpN`sfJr+J56&YC{r$(Sqr>Bc!h{y4_(*k)9DDb%Sr!q|lV1K~i>2W}akAc0kfmLQh z{H9cu-w7wD-Fv?D&hHmX9lze&7$hy`&A?P4ec;U6t*s3b%EqVp?AQV(XU{6uTRKNZ zNomo=FZZ(7zIXb@`A39h!L_WOjo12~smLD#=YL)DX z4an#7O#g5=+#mLOz1jq@hs<#t)AxG4jYb1NtyZ(Ur%Y_QT(+tx91cgLQ2?9G=KT&N zNt(~+&wjJnOsCV6$pk<$nS8$kBFbbk56*Bn6a?Yt*5-1#H-}6_i^U?F%^r_OBHHiw zs;b6fvD4{fCg{2j!0-2WI-M6Qix=?icB?2#BodKjc`z6}C!Eh`P17VvN~Ka(m$;l? fg#&N^{{V0UkweYyYlbiy00000NkvXXu0mjfz`sfJr+J5b;Uf+*kGX05>FS$5Rc<;uln*bD+;haxT|%LQAmQFg*AbZH9~^@K|)~z zt4ss4iVwfQP+ka-{V0hVo79Edo*5uhV)G*RnFW zxVR`D*`#xyIl4W$Cn`Jp?ZdY&CZDID1e*Paxq!WmRpH^?&oe#)-OJ$V>gTe~DWM4f D{FYf# diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/simeq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/simeq.png deleted file mode 100644 index ac4b64b65c6a1e93dea9b3d3f317f0676fdcbbef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJr+J5Gwx^E+ouABE_u2*hIkx*JM|)Ovw}d|#+TMP4{{ZhEt;fHux)BweTO4& zfpmj#hwuxw>+HhGS=DB~IYEd2AFDr5E;GTq!(-0M*%pz40*rzMtOx!UuqpLDUNJ@M zbdcs(5ne?OMTQ5bg(Z>&CU(pzj(WW;^V^SRmX~{PZCkr4OP25Ogw&Z^%VsTG>%7Lo zA@=&~xaeT7%pT1yCEwuZGW;Gh>K^R99`*jO0Fx4v!@TD{U&U4H?-%Syw>n>Z|NEaR z&8Mf0>R3M9D~~Ooq0I2+|MAv$3QS50Omz$u3^JMbrm+OfHUavM!PC{xWt~$(696`5 BbM62D diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/surd.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/surd.png deleted file mode 100644 index 9ddfd4db77f349593e7d2eee602b0f83acfa7fcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)FI=HlxL{(WP8BqY3O5`3e#!W;Z{Akwzf90dqD8Z1)Xr21Wi}!n?gEo^#-L z4)>hr(xa53OZ!2`_NM@nB>BGI72te6XIVBLkKY57kxeEO*L6SrYyj8mwcqdOhS&h6 z)2ZV)T>(7L<2deHlmS3dl*8fB6(9(L;z>dK@@?BLNa(fEqBxEPK`4Ght3_L{*QRL} z=QQsiilX6gSo(NT2dmZUd4{>R-EJ+*Dla7WWFC))BuM~tUC&KO(-c6GB&Ac31GwF8 z%jNRbdzz-7IfM{GNR=@w8dE|DfX!y}=1-F38@L|ee!u5_#@%jb7)HfKDOt3|VgcZ7 zl>mfc$OiD7qQPMB@|dQnX`sfJr+J5ZNAK0eKw#_xu=U`h{y4_*Bp5dDDbdeI4|;mLFK^&1y0t81DvHF%4alw zy}+{VUv;IYH&>&IPVqqtK8p{Q4lY&itr}-tiDK+Ayf^(%E}LaK!%~rGg<};(-9cX4 z4qRS3IlT217b8dY-jl`WuFdMm+0tEdAj-Sc>g0p}O6)QRc#YY$pGTcuWdU>ogQu&X J%Q~loCIE)!NYnrT diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/therefore.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/therefore.png deleted file mode 100644 index 7fd47cf7f8c60d97f3fdeb2ee00d85886a46dc76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`Esm)P3#5TUb39!fLp+YZonp(yqR7+w_@1{--}DbAWpU0T2anyl7M3!@ zjhlP>hIupRGK!a-T+Q_J=Om^69>avCaT_8y91d(}>@jrem{KI_kj=|*?UuCd`sfJr+J5P0@>XEg3+eDV{ElAs)xyP6^~aYQW)oddd~fpaoo63;hl_>OScCzI%_Z z`sfJyvc`4Xq-x=31c88&4O<5Rc<;r!C}aaS&*mo9q~HLH&l#4VL?dw)j8bj;P_^ z?bf`0p|1f4+vI~PYLh!E^<-q)S3IbkocDjnXJdKm!*6sH7CEhKchcdU&|uF{G0)sr zSn+_#S)J48WGehaLtpNyOWMKh;BtH0WEDl0JyjRB>54K4?p~MN^Y$LI+4)idmek0) zi*HjSf9*5pQ9fUMz4ZR`=mQ2kk1gWPu3MEQ(dK)3Nv2lI51x&^Q;W}8?&lJ4VmM%P z-um_HI_5_fWirn-xW0$0F|2vLDpTsDihJOb-~R%?$xk`4Y0V-H4)vYuUKcZ;$nR$H dV6c6_dAa|<+$Y(Y=0JZlc)I$ztaD0e0swwefcF3Z diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/uparrow.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/uparrow.png deleted file mode 100644 index 0c619451ae4cf406ac66c39ca6662f3cfd395802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyvc`4bBUJpZI}7_dQ)4Lp+YZy|$6F#XyAZ!Sm2-T{qGh9VhT4WD5rrFqjuG zl@~BuYaa}15eYkJ%2LXx{dt{*#X6HY4=ql_v&qHFy%$VURC;lS+2lBbIrH<%cfZ#O zzWBXwUG`S70M*P{Y>o>;7BQ@O{cG1{6W=I?>!sa`7EEC}uq`*}ly>O!v<*7lk1aw& zj~4oHNVXmPUaNS7*Z9F4<6{g9a-&^xW~rSocA4}1=C)j~%4bz)Fw>c3_7?DH%HAL=!w^Lqik O%HZkh=d#Wzp$Pz_=650h diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/varnothing.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/math/varnothing.png deleted file mode 100644 index ea1b6c1d9e5035dee7006127814bf632eb5bd878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)k+iJA{ARG>NyWJN7@pznNSwpK(C=di8Nz!Vy za=Bcu0AyJ`sfJyvc`UBP``^JIWRD?MEtLp+YZovg@rL_xr{-IjgXJZ;6_1 z)X;Hy6N5ufp^Tu7iCB%e6vMjLN+KMJOQxK&6gpTa^Or+$f{vu%+O4;@*`7b_oP6+n zQ_!gx_vKkp*>6wmd;j>#5%%x3-<6;Hn3}xbYq)IdF`yFnd*%vn!!)8VYzI1;!PC{x JWt~$(699L?U&a6c diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/gneqq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/gneqq.png deleted file mode 100644 index b299d23031ec9249af036beb8a18214c36b3fb28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmV;J0cZY+P)ftSgSQDnztvzhZ`fSfP)4@sPJaHqcDW_y;sgZ&JUDtW*h*5x3Yav8Y6me7LoclhW z^L1T~F^sX@Edbcvx^`9U%36zvAz>xQzszZxwrzV|FUyjMq?7=FhzAZQDH_M|H8XA7 zR#j!K)mj5Unx>rd_oT>LE2TUguE;rva6hksF(ye8|6SKL=bVUsocUD^rfKr+*fb3h zF~)q}pCyDiYSxf2l~PwTbFBu$Fht+#$>-_#{{asr{FRnF)4Hkv0000bh>1Kaf%)V&C_d%jNNSv@pav008IQ7!yK>Yd}^-0|2FT97jal zg&@H>Cxob^X(7mIq?F$Kg|K#+_I-akok9q=+iim;=LjJfV<@Fs>tfH>5g?*5hI0-8 z8#fsd$8n^T)~Bu|NU4Po&bfwq76`1h&8ZU(Z3}0f=Om=ftl|fR5S7DRI|sSbP1D2} zV~lNMb^wsPnlWarjWKf0bNM^x7MetA{2*1sT1zRFQfjU9nDhC(;1&e}rBwd0i1=O- z>BM`llv>D8*l1nX<-6>9y#m1fem@?MQc6OI_x@L2louBfIp^1=xXhfE{25&;eS3`(d)#>`PF1Yxc+cWym;Zn5zTXzVC3SKHz3O zfCmuJx~^^8GRB;9e++QWwQXAz1*OzE#~2Gm?=iC0A|jh-Hciv( z5bgWEu50hT)*1jPrJ;Ej+nGGiuTQ!-4-&GUdoa&)mSx9t(=?1RMEn)=mIuqStm_H@ zUDqKZA>`=$PjSu(A#ZsgrHt)NoCo7LCjXDwb2t5Wz!$^%oE}^G<{bb4002ovPDHLk FV1kg^t9bwb diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/lnsim.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/lnsim.png deleted file mode 100644 index 1365188a04e6085031a6046ccf2e296cf6d7aa3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLtVP)T_tJ0KlE2e<=rK(Z{Ygb9idE9IX!jOJN0pN|hQM%Yt7 zu(Q5^eF4)n-S78}qF5y&YTH&y>72_~LPcvt9EM@D^?QI2!u5JZM5R;+q5OlOy!GvN zd#m*}AcSzaTo93nVy$v6^4@E$&*!rcqTXtSTkZS4aI2L|HpXzy`@XlIZaj)G0^r)g-dkH@1BLMgSb8HOQ$Gjf2g>((FZoC5$M z#IgWuZP#`A8T@9Z*ECI2ylzWUZa1seT9R;X3CKaXBlch^WL%r8bpP pmd8U4fOB5=9@Iz0_s8qs0A4T3#DZWY`Az@;002ovPDHLkV1jZuz|8;v diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nbdash-1.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nbdash-1.png deleted file mode 100644 index 07cce702f4abfb4d7d235f5e19449aea32fa5672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyro$9jSed@%lia1D-C9As)xyUfsyq;vm3!VgKuy(p*`rVH+3D{Mn=`DUqSr z#`dhMQQ_DrvjoOh5r^&`)RVdMr>27Eb0Ul2!BiEQc1AXdAI1rhVhpc$F)1v{z1{bC z1Lv1o{soy*N=C;*LPc2)-d=hAd4m8`!}H4D`^sa(r!Ac<-Sar&dg;99$7cNAmz&3s zFl(7c*Cw6W&wuV(XTY;`%C&|>iAyHEk0Ufw_q*oaR`Xmm#p?WJPv6@6*Q1yiwBxV0Gg&f z9*@;(b-7%%TJ2h3x7$ml(&agkNC*SuaybBi!C68;wQ*fL5!8VOX=-WLfrbIB*;{olbo|9{|AX^+E_aj>B=h(P&)s9*-v$iwOWY z9FBZGf4yEVm(^-D03Z|!5d^VbuZP2-&*wu?RDcIO&&y=8dkGA~q*AG`ZKBufCzHuN zJ#upvb-P`g&33Qx+-^65An|ydWm%n0N0Q`EwrRiL7nCI!;B-2x)#|$dg+f8A)e1_v z?Ljh`tW+u}ihivmhGCP*M4?dNIR01G@puddgPBa``cpRm5W>-D#4rqkAfJmEhUId( z`Fx&Er}z8)b&5)*A_(GnlNp8q0L*5y^ZEP(CAtoZqLfNyy^kNB7?!;;(=H!UaeM}&4wU|)9G|`m*?}DB*|X{O4w_6;?Tdmg9htfX)*=+XX_q?DA>jen(LjGvva0qYUA zwknFEX`0PJs}Vu~z$*t)6lGcVzWyA5F?Lw^?f|6}0JLp;>Q3LbG)~jBah7F?F}~mL z!!X#2K8m7E4y;v_=lQc|o@ZkWA!Mhe0HChxZSsF{D!At$P187z-Fp5QAcWYT_+Efh zQ^5tm7z@MDXJ_mI#&JXl2_bv{2TPwZ_H(G6GT)v2`SJP(fCqT_R+JdNI;sEw002ov JPDHLkV1i~lt1$oo diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nequiv.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nequiv.png deleted file mode 100644 index 83427dc84ec60897226f5ac9be13a5a6a0f8086c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)kWEXysH4$8oBoKM+~lL5mpNs^!ey0@umniNHG9EW~ox9EDk(lqV5F7n0K0q{I; zxm-2_)B)gmJ`BSlfVK>>EE5D_u~-awc|fo0|F`Mr`UWU0;BEe#z{&ss002ovPDHLk FV1kSX%k=;N diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nexists.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nexists.png deleted file mode 100644 index c5e3e583c6d81cdb274f5d83ad06160c578d37e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyroWS<4%Lr*8ua-SKpB4DmSrcG^bX76Tqv#=8tTLS`H@8w49XB{~H?)DB3i z%w))apq-&H;ap!q@uTp}HPhecyRYnAaVaEN^EK<9hG@m4``^157#=WdC7qBcj<)W5 zeEwEj<U6>1JxAV7q-9lo_0u%QqB{?|O?+7;W4L&C+ zD0tCQUHOB1hD2NKeNPR>0}{?frc(MDiQP#(tbDJ&zy9&RLBDaSjDC6YM^Hd9c)I$z JtaD0e0sxn-bV2|C diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ngeq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ngeq.png deleted file mode 100644 index d3385e4cd6dce61f029f9b76541095347ec01231..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)1r|V7XjjJ07=i zx%ZzAoagZ4c|QRFp#0Pa<+J`cK+`lI0rUBMGMTvB0jZM7D+EN{8w0jcDo%4 zh05h}x7&R+XHJ0o{a&xvW3kwDIt74KDrH%gmw@y6yjUzAXTvZGg#y7$#LYpqTE!eb zKNP@R`jJTFbUG2tT_=ET+s$SZA*Ad2cDpT=O3yY7!?ap02Y^!_AcQKFN;n+OX0xiQ z+P3{{L(}xTeXw4y6-6OleC~jJK5rNXF~EIg%CekDB#8e8xK;H3v-`z>FJew|?N;%r QO#lD@07*qoM6N<$f{>u-1^@s6 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ngtr.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ngtr.png deleted file mode 100644 index 033a1d168126cf8e29d8b725a10ba0434d57e7ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)1&`N`Rjh~?74fF1x_(W92tK&IDUX* z0guOH9LGdb+!{nwRh9RCJ#Bjj)>~~!UKnSr9z!+nUd97a8b<;HW`+c7wbIyr~h^)19>6|f~GM~)b z?FQg{KF>R>wH88T-B~&EopW=tQYwD~vMlo6YpnrDDZee9066Eg){L=vjo)vi%=rH{ zou=t}y>iZ{X_^O6Rn^9KBWY2I{PYZzQmblB#%~55tf~na08Kc*Gdz z^ZEP!vUgw@hU>bfX^NtlC}swnPA33BtyWtumo$0?z$NggpkEzq3e1!fG`XZLb|TsZny76MNxtv$jpJ~d7>z) zs=D9r??|5KSwjI6gS^>nEX#rravY~=TC3H95HfTPQ#$MQy61UJ4rn`hwOS1ZgZX?u znM^RowrywZpjxd)QFMQfqNv;LmdoYwc$`fi1VNxE%Hz7@IN1OU!|;7S-Q0yVhkmJ4 zx?Zp8PL8L5IF5V09zy7FIP7-2X0!RIDHIC*e*b5{=d%|Gp?14nEEXk6@_j#!<3~*{ zmwPouDTWW*Pi{0Ctiy+`(K?+D$8oP*Tc}d>f3y4DfG?DvE5W^y-znE zcQVB(V7XkjS}j2kc%B~)htAhz19&_h>-D-=EOH#TSS(JbQ!<%!W!efbnM`7_SgBMx z9*^&cD2n6pI2eGYX#k+A>Q4kAl*{GZUO6iV`~6-N#Y`qM8jT1c<#KsCodyYb>w3LP zk^}%0MLnO--~n&dYPC+M0|4D_*A>9N&??|uLV;Dx3<-_6NcZ=rpc{ZE`sfJyroWY3qcQfigg$DV{ElAs)xyPCLlUqR8Po^X#3i!ny~AbQ*;;faF2HB`nqx z`R*JxYcT$}f%8Alo|ga4JFZ0)1j$?IF#nNG=n3?)eH>tF4Rg zRreUS7(5TzmUH}yp1YMV0tI~4qxDjP7ae2z5*kERm l##XUb|Nh*jmsLkvHv&Z&JYD@<);T3K0RS6#SCRk# diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/notin.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/notin.png deleted file mode 100644 index d0012918e033082e4f727ec48169322da7fa3c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)LJ!9a@F2i( z9Nzl}0mgCMw(UAEwT2L)B(1Rn?>%FzD7CG8DdoDZC7IvlRXgXFWjTrU-tYTP2$|>k zh7MwkN+}_PF(!myj2VWZuvb*br`Eb*K1Bdp>woo9O3T^02B4IN5PqLk^GPY;OS{Gx zkK>qA4FCXu5CQ-x`sfJyroW8KK;$`0YTUIi4<#As)xyPTS3UK!L}F_Y_0V0W||A=?7;cS_35-c|F<# zx)SX478OjD{(W$6tH4r`2UA$mWDhK7IJYxO`B9z2xt-TEmriC3G<0)gP%1k-LHqLB zt$$0kQY4eJco`H~ysq;csJ?&bp6c^C4{s^0dS5KLW#47pMND%0^3Nq)`M!}SttP)@ xqul(G=BY31tJh5p+IlTYc=wT?H)RiO$`du|*rD3xxee$}22WQ%mvv4FO#mqxT?POE diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nprec.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nprec.png deleted file mode 100644 index a929e3b024b53f8a690da1c901403673d44d83ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmV-n0iOPeP)>msc^zF!N=XQDWaa0kzO^=lP`SZgUkH&>s@!1HpXXUh*)&bf1~Ep?IT3m9 zi~2+aXK&MS9033kIp@~ef<9wk#c8bTx_$T|gc##649>Z>ZR;Gg{cx6L0RRBVIUlWj zYWiK*5z#bFecvmkiW@*gCjeS&@BQ}Zz2}@48SJe7KF&FFfyhn(`liQ=^ z;eWe-{_x|Rd+y;<7-RUPzTm?u00p1``~?ulvEw+oi-3B2Rmie@yWI|lLrxCAC0*AU zhKb`iH~Aaja=A#7)a&&GK`>48<*(Q4YPEVkpVQ&lY(@q+9*>z?MNzz7ub$^sDwXYa zn-2TF-)^@F06`D{K&@6o2-&v1-|q*50RS|cO_pUhn@uLaSS&`P5dlC|)mE#OBuUyt z2mwH;RMIpp48xbd+wA~gxm*$eI-QPT7#UL(MMY7@<1qj<8jWtZJDE&)o(F*8a7b{; zNs`p-^^7^4PC1T?q6lL=pU)YF`5AMH>i7Hi`~C5F5LDp%e)_mtt;*$cx-CHv*tU%j za$PsmNrEx`mStH0a5|mddoekHD2iyB&I~1ysNz>q01CiA06YOE7(F=js&pp+0000< KMNUMnLSTZxy~b?- diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsubseteq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsubseteq.png deleted file mode 100644 index 9e530e2767f3d70ea8ca7dbf8c2324b50852367f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401 zcmV;C0dD?@P)Ih zI=SrzH;=M15B5{&C1jZOCdY(==HPq(+6cmNE7;J^|pEUyPAS-8E6P(pk_b@5`soRX8=aP9JXp}FEb!BR_(!m1?sXle8Yrctl<|EbOU^mQSjx^w1kV^#@uLw`Rpp$^#*atPb)8ZwA3x;|gb+%p zJp6bBgb=N@wU%?fEQ|MEN_hgGkRowhBcj%Np67kv0RRAgm-@b^ls-H7eS)PZj^kjA zm1UX!iX<6GDYtC{fU2sDF&`ck08rPpF$NLGaXj7euWMkMrePRD2-aF5L`Ki2Hd@=Z z>$+wbL{ii=4W$$j5%F*3d@Myj%EphU=$-7R8oYxaLMZN!*KP3s4Ib>;D&rq+_@@8> N002ovPDHLkV1gE7j^zLV diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsupseteq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nsupseteq.png deleted file mode 100644 index 4c1866b401e2fa89deb23d995a79a4f8e04cc3f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmV;B0dM|^P)~0003mNklR*i1nEGn06IV`zz(njv;y~FK4LtG61{xcIq}R(24>!m?`2tDPvY}>7(aq% z2`Hrx5;RT27z^huu>b&TZ7?l4re}=J^St|*Wm)=%`(I$Kl~Q7iDW%T2V1A55&N)Je zlo9}f95Dn{Rn>L99?G)3pMVhJFHQ(KPQF~GN-0VyLTC-sG#!TFAU}yHe<6eq5kk{6 z-Bv}`S^(I|b*Dr^h@vQb*mYfaT3of)pN%mX<6tu<5yNL3$F^;?)=H^hGrx~lCS%Nd z*!MjEtj03Nwp!gFkuipI9?>*s2{`9k>!%2ua~R{esea0XaU2mszI%5|ZQFN|9&Crt uReY`vpUVhdAyX zfCunNob!2}gG}9Vt?P<04m3WKft0eY>rm?x8DNapbyZ3+#;mp9jbA6iPt&w4%Ph;B za{!R%`DI0xQjX)8W!W@MQc6OI*X0%dv=9OzL1DwvFRR2mt`CH6i3cdA%9z z&CVFpS|>>Y002-F#l?dbMbUl`LL3d>1K^x%t>ZW@ieeZBt@XtKgiw+sZQB}SthL*= zbzKJlx9lQgj4=jd%ouB$<^U#Sbf;&_nV)3<%&e4h&H;dk zAmU~WnE7-%A!65c%&fIu&wqn~_x^sr9}b6ko{4DX)^9WL-fOLy`F6WG=c=m8JpDDm zaJS)(l#ay%ZtD{`ry%>XW!3o}pCq_w_YuOS3P%-1LD4FF()Nh!5$ ztCWf{Ztq0^Fbo3#7-O2IIiJt#{Z-Nji#=FtLkM+UTWkBie?Fg^nO)a)<2e5OGLEA$ z=J9x}{8hbWp9Q9yD-jVjO;ci9nHMp}Ow&}rK&`JW)>;vXF^b4V~wH898^O7ZS&b8Km95wsn$A#(6+7jK1Zrt4eGjdl|Uo`8w5<(bb z&*zhKP6)Z+i4J)0kBCwVV=RRDp!Vr89mnx~IuSyNi*l-iW4V-4l+s}sl9T#4yIcq% z0OLYr#tEdT%j07*qoM6N<$g0dp1 Ae*gdg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ntrianglerighteq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/ntrianglerighteq.png deleted file mode 100644 index abff3af7dcdb933014f0be241e50dba2a5827422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)0pTdL}{Fb=F$W`8?12 zspAL`vG4n7ng9R*4j*tt4-ipnEu|!cZ0d(+52_%`GD66*EZf*nO2ug!J3eD4ZiG#Z zF;dECQ-|Lr&-1|X@Ds`5+M<*K07L`;&iSL_9(6tm+>6F>M8vwTuaYR_cYMCdh)5}o ivVXKh@5SpM6MO;Y0yxP?(3jc(0000mSa<%**=I-Z|%-J8)0BqB)_i>u#xm_r9vCmwrC1H`uJG)=~s82c-2s;YHew{3f+ zA7V0KW)azZXs0@H5D`S2qyHWtB1A+)2csehKtv+49yRN^6sbr4wq!sC+z)sIHCj2* TtT@y?00000NkvXXu0mjfq*8p> diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash-2.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash-2.png deleted file mode 100644 index 4079f6fba03da755909ea184176debbd6bfe8b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)Nklfpnl9pp|F`Qi2_z6)+{x0dz3;KytZ<+g;X^mks~ZWM;w_X8r^UBD$s2{gzl6 zkO7|p7>40dX&guI{eJ=0+DG83su*KQMzkzTxWV(buXCp>rS^T_w(VtSEZ{hfpV)gp zO_Ne8Bsu370JPR2Ktx28QW|4I1^}L|fg;2?4}o(I0E{sdtv3M9xw@{k*7S~wm`sfJyroWS*;l7YZ*YH&z>%hAs)xyPP@q4tRT?VzwG^{gGV__mpPqc?Ny)fM`@|AkrJ+3k?$I1|Mk{)$cfG_%bEeTJylN53txIe&ZG zU#a|hPY%Pa_RqDKP6^U}*zWbjEaduERk@6{OQ*cP$@pNOdH(g%ysJGM4R~VByOhrT zw6xBc<>n>H!l+~y_v-gQlgW=Q)~z~~ca86WMIXZk?cH0;RrG) j-t{xTo4w+|*9LVBw+*u#?r`4#dY{45)z4*}Q$iB}gg1dH diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/nvdash.png deleted file mode 100644 index 4f4fb1f2e91b0d3c523f84f4e909e1f85fea3cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyro$Ey==5D}izh2RvOILp+YZy}FUJ#X*4e!v5DYrMa?L!!|CQ`Ljt?QX)gK zjqO=iqr$OMW(kb1A`aa>s3&vhPfZ2S=R_94gQ+Sq?Tl;^Ka3M1#TZ`iVp3R?d%N%P z2F@?F{0lOrl#Gsrgo?5pyuI@J^9BK?hUb;P_m#(nPg^=!y617k_0oCIkIneKFE@`N zVb(H@u1z|#pa0yo&VXm>lxq!%5|>PRA4h1W?sv_-t>(FCiq-kcp1!sBuSYR!bUo5` i_~4(`z{pm|P{H8Du;cxLd34?Qpk^pw)g(?`D}K3?~O6m zT0|rw&Uwm3A1O6-&N=72_sg<0O(UgD{QD7$rfHH=3L&)CDg1+7G|#gTf{1bntPnz2 zYjd?J0JLqJH_1)Yc<`sfJyroW9)$P#?|c7n!J~$K@0VwC?d+;(=y2j#Te^>P{?8yUB`(&kP7$h^EVl$$sE_ezsz5Asa&q-9QjN^rG3|;u8T78RR*ZGHFn(EcJ{>UMiIl}>!t3| gQStV>xdYb7n}+AK1}qfa3iLgLr>mdKI;Vst058{sX#fBK diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/succnsim.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/succnsim.png deleted file mode 100644 index 7eafb5bd473d4db551059509427c895ec984db19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP)65N5*f!u-Afz*KropGTZ@c}ao$qOu=Apj!YZnsq<^vUYFj#AonU7uSp+hL61oM&UelBNMeYn=g8EZk&7 z)LLt;4~K&gf)FC59Bxrc8DqaaxVv7jO91x!{qcBwymu0DxiZTAN1~EoTskL@1kvZqy`)r%eELsRb2$7bhRD$VJ`{Cxie1 zizdrswk*qqc3K+Oh&YW{##myx-kU%vMF;@^#+Wf?@YOUkthEUf&j46!M>dQxlu{{W z(=^kb%jJ^r@eDv!Rnw1+F#>>;aumROUsYA&4c}=32_XYNLusv*Qf=FwPNyO4y!Xzz zd<~}L#uz#0<8{+COQPuwo1V|-j6{OByq~c##pmew{{emg&fMTr9Krp*00000NkvXX Hu0mjf)11jg diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/supsetneq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/not/supsetneq.png deleted file mode 100644 index b43f091926deaaf19d55f0a596f49a512a1c6a61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJyroW0TsT`Rwba&OHUWa5Rc<;!w&McCuk1}U4YH%oIVRXsiOd#Ysr0p$sO{y(BPHm-a9On~9mw%l21 z{SJjC7X$Xc=9ZP%RQ*z1Mo)@}_fstK)l|G!t%spW8SUFe;SzKjfl z-#7J3DJ%`~di&fxYRkujdFjV)yf0upV8C-d_AHB`l3iLFCr>mdKI;Vst0I(l`761SM diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/a.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/a.png deleted file mode 100644 index 9da4fafe5aeab01be22acaaf52aa64c6229129c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWM(ab9FKh-1o%3{Y4DmSrcA6vaVFMo5%b5&k7PKXBGzPGRN=h_oia2r| z6yRCN!?ZAQf~?ll4ZcxUTc_*(7x?+$$4UE*lk}dyS$E}Z>>9R=2DTsS2X?Jnm6dj8 zPLP$u3DGXYHUY0Y-~VpQ-RT!9JL9I!`RbmIj*PVQs3&{nkAFP5(d)ooHBQ0yL;*nt zg+)UFO0~il5-+1`v=qe8TD4@?6JYD@<);T3K0RRW(b*BIT diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/b.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/b.png deleted file mode 100644 index c14fe4f1dac6ab7d710dc32043867d2824a980b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWCb2b%_gR5Lhdf;zLp+YZy>^hdML~cy;BF3Mi9(qJdjfme0@VO6)c_`0 z2liWyHx9l}`1T;R|M9VtaX-{O8r)|%yy#pp`OIozKW3>5415OXKb!a}vS=zSb#Y;c z;%)i#j9+(Y%v6RA>$J`sfJysrWCSBPqGew}#Ax{^_5Rc<;ryk@ztia8waR8-OJJyD*l~G#R5oLSAsa(fc2?w4 zPYyvRi)%|ol6f{xNV&L4C&)`PHT&s{XGYz7zIWVka>?0{t;59dJjPaalIxt$bBd2= zcXb#Zdw$0I$68lS)pM1aOH;3vsz#Xzx~KIN-Zoo$#pb-G>e{a#74BvI%20d%+t22^ jO2VII%mxhgTonvAs~zqw)>2mm`i8;N)z4*}Q$iB}Ym;Vt diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/d.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/d.png deleted file mode 100644 index 2c9a95d8df8530ebcb7a5893e59960da4a457e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWX0{b)|0w{4E_=E-hIkx*J8dIxvjdN-@1(Xq-Vbd1CSA%oz>#xk>Xa=d z=1j^5*m4+r7<8{L?GSOzOj24Svh)7kll#l9H2#t+gBTg}cFKcA!2 z(DAG?EGKZ1N`3MtU%6LvoR8$*e)88cz%g>#F^M$2E+)a>`|O1;nD8=4B+I$Gq&zcb zjJ!gDdQX^xp7s}|L zHtJJm*pj>Z{qOY8e+AdR{`sfJysrWX8AMA!X5yHu6epRhIkx*JM|!Mi-Le_;^y+@EY=BD24xAHKs2R6^#)_v z0@()i;jJu>Cv3^k&YF?K2tljpZfg7KfF;T9_BcDB{5Qhxq~LI&V$i%SX;A zIl07MU)aKoPbfsfe4 zLYdp!R2Svm{Md5>s;*3wtbsLy|I3D0Gv|hZ@X2--`sfJysrWW|IV|^$UPPQ$1ZALp+YZo#x2PqR8WFKU*|FbE*N~h6Z6RM)n6R1r5v- z8koOrJIWbQew$g_mZYt1RsVeGa9|@>2*V!##%obtogEAvC(erY7|tnHWJ$Z1 zdd;)w+_hWEPu4UAojQ2?|K*g;|6{v7)`}h|jb+&L-JE-0@@8Y3T_?4EOtgG1xncho qL$@?FCBc__^Ml;pD~YaPkiYZlHi!THnyWwuGI+ZBxvX;899xK8dg9!>9z6 zpb|9AxBO@bfti`vT1!Mk1OU#to3tXsFbwOumQr%gN~xT4&N-!YnX7DiSY=?t!&7#(3Rf=55>B zw!O`j+BAf4+7ti~k(r%yTI;tF)DNc;RDu`q0}6#|8F&p06951J07*qoM6N<$g4276 AVgLXD diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/h.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/h.png deleted file mode 100644 index fa3c006d3324d8d6e96bde3eb5431e84a6b9be44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW7WwAq2h@Q=Q#@T9Lp+YZz2?ZvqR7JJI;&C~x~`78wNZmlklin;%s1L!^mPgg&ebxsLQ06k7t6951J diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/i.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/i.png deleted file mode 100644 index 58e2a69325c503ece628a44281d8f3f31322f4ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW77Mkvr9MERd`}n05Rc<;uLSZQP~c$+n9=lzgl`D)gYJe^R!nE+1kEazdvhbP>b+7?z1_bx-BH;~rx>;= zD=3|LQ=z1ENS(PNNOWtM(kaXJTLVNH81}H=*xqm{>%;M2H=xxFp00i_>zopr0Ky|f AU;qFB diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/j.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/j.png deleted file mode 100644 index 592148aa81b4deca5fe1021338f129399c805f1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWR>|V|A;CbQMo$;V5Rc<;uQ&?2C~~kR++Z>LxITe-afXuijRRaR3mVN5 z-dA6m`TVKwf5~UF8yU@vcg^IF?PKQq UbK9q_K*un6y85}Sb4q9e0LaEnUH||9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/k.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/k.png deleted file mode 100644 index e2daf2e56154174a51fef2078d029b1093729bab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P}!2~4N?RmZ#NO2Z;L>4nJa0`PlBg3pY5H=O_Is>6+^l-1l|IG*h0b`oIEHu}e>=@lu*HDKb+>i3x{%gFz9^Xo4IT#=JytLm zILIh0oERX|(EO&+`gZEA=>MA2|9?`SdGd*>(yAHvRxQ!md#U@v?seI>uT{sl__-(* z%}bwKtye2oF)j7x_gKx;wWa4$&#l|ar}(9|zQ1mg?J`sfJysrWHugn(tv&;V!aQ9ZLp+YZy=ExLV94Qe@rj56E4M|5vd#krZjZwU=e6EB zbMfu_nc+Ey**2(EUn^kY5ct6|r}&JH(z1qCOc(CnX<%Sv+TZ^APOM9asqy>uX8)C# bSgvt9pUbqBF^RGQ+Q8uH>gTe~DWM4f3~V^U diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/m.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/m.png deleted file mode 100644 index 9f020cc1b7d489578334cee644e972473ff7ab32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWHu;Sg7cB(}?e}zX4DmSrcIrXi!wNjEb5}7}Os;6jad11qmdJeLfbs-i zCp8Y~7QquN?;49cuV}3b`FVfdgg+`j#O8J!m|J<^Y+xf-$OrzW^v7qa_vcC*Gdp;# zoWjI#?be*)9zg~#&1<)~n@ui%w>5tMJMN;y;WLUYUFUXI&buwFw~j-w_?%0~#ExmH zGncJ=WWb}jH2*$>p!5pUzk46poIjuaYL2su(yF~YiUNX4RqtI>Vy_p`sfJysrWHsfZ_b8bMPK2I0N5Rc<;ryk^GR^(yXsll3~o}<3SL461F^aoKZ7`zq; ze{$&hWG#1G{nH<@#9jlpnBsE`sfJysrWc0vE5eUE`cmpxq^Lp+YZoqC_M#enD7$CCpjS_duiXg5Vto za{=`g(l>Z7@mBFSaWp+yaH#N0b(XzU-4lLaF{cLguTAY!88{~}{AZ{*J)iGzLkGiy zz3+GVNr|Ogii*zuZfu;rwzYAQkYuvJ##O8Sc6GR1`Chw)=hZH`;~(Fg`5ZGXbqmk5 z)SIj8rxokn5)pMRH2rMT&!(^_bJn?YyVkjgtYts5W=hht!+~D8x79k&wpib^Oz+8@ z#m2B^Ywm41=hF3WZZCbmcfXm9n!?{@Kxf!<{9w3iVbin3`KKe$dkmhgelF{r5}E+A COnR#T diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/p.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/p.png deleted file mode 100644 index b3e837cd82eb88546ceb17b73624dbff1683e838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWcE!xqef~h9lb$Y)As)xyPCLlkq9EYvzM0jB-GOyV!(0c>GKIMg?AsV* zZ!{*eUSg~^xLG0GD`WO>ZUR$f`%mW=Mdt!0%V}L^@x8#pF#ojhwObO4ugxm`sfJysrWb^~VVb$fwAH$7b(Lp+YZofgY`M1kk{&8I9^7%gt7gdBRtz-b{NG@+p- zYDTkV0^b3~?-!mF-3)$z=v%?V{|-S+e_NNy^K1<(T`Kn~snmhJcWa z9FuTSSyVZ1_TGkC%javhG6*E!`Mx)@!--?5NVe|m%O;$Ay%}9vI_6t5ToBrjdz`sfJysrW4t}Gj^ZkKBO`a}}As)xyP6^~~HsomOPi4|tC^R8}(_>}xHOH+F8>|*^ zS#kfJT*}Y=ou@|exMOwxoh#haMH?7c9`sfJysrW4%L@&VKae3$30yfLp+YZo#x2fX28>WTAt+!<5UK&F!l!w+7>fdReYHE z+L|L*H2-T?ZFy{cp!JRHG`VZFmATW`7ME8A+gC;MUSQz;!0N#N&Uo{bNgXpJ1?N8B znJYcz<&0~kdmqgy=3w-3@h*`$F53Ti#j1?n0`^tA-dAfLz5BY0gLOxBk6}xI?2|e2 zYh diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/t.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/t.png deleted file mode 100644 index 00432047f5efe9ce1711d81a8f11162336eba2bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW4s)sJ>KB1R6FprVLp+YZo#x2PqR8WVT4I6F1O~1y5fuf_DFK`w4orMA z4yzR3P26nzX3775pD!K$y)rVpF@;Z{k4fZ%+krX3VgX(gS-;$4WjteZ?8d4Y&y%MY zuiL7WgcT&TVCvqLde{?dnqFNO)$?V(~oh;-2sJ-yUpZ6m;gec1vAuhW@^; m?DqnJPnf`sfJysrWPJw0L7XJncE%J164DmSr_Ub~xBMJhn7oMzZd{D5(fpZCq)dChThafi9 z7Cwzez5|QG7JqX&vyywKXP)1i^7ucM#@z{SM_!(@SvK35fsy48_k%gn*G*eCTo-7% zb}On{m4RXFwY^fwEdrL$wf(o~oNo8(|HGZ|=S4hI(5dgca&JHQ@N$kc%bxE&8?Qxq zbr#DdzuBw3ly6#v8qiH05nhsW&U|?(?7+ZyypnO*q%M~^Z!$jtWf(kN{an^LB{Ts5 DemY@* diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ua.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ua.png deleted file mode 100644 index 7d36a0e98a63a6fd1968e086ae446731a4585e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrZg#PYdYwR_Z=NoWAs)xyh8^rZtRQe_&Zl(m0?vR&?*pnA8lwx?^%!?E zEns@W<->mA;HAd*;*lrsp42FlQ-8Ky`7NKZj?nhp+Yh{I4jx^>6#C#YlV!T1%gjSz zOlwUUB$E5Ki&$sez7|#O>0+7g65?g~T(8q3+t+ibo7<)wn|0k=Cd7@*u9RK;oMIH no_e1hSL0npS1|o|cpx3Qe1+JJsXGIJA;942>gTe~DWM4f847}V diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ub.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ub.png deleted file mode 100644 index d1eacb7ef8cd2dcb0d0c6fb4d7f2ad23e18424fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmV-x0hIoUP)OV6WpkIDn_YS1f0~&v`2znyxE;pY6+(!0T>&6Tk~B>Lz&ZDLJj$~4>4}aPRM#~kK39}dh}d=AY482Tol;7l zQ^uH-GRrc?Sf1xWJYb9gz&y{POm@xzz^M)I1B4KWSXI@hQ{=Vp`?4%P)><25ybTwO zsTU!HbM9kA)LKg^$8ju*;+iq#oc}6r+eQfK`~Lsl_dTGL3L)CI4f|ABYXbtTwTO6) z$$urK9EL$D^(mlfnrWJ})<4JXoHND%fHCIuqTS-ZC;}n?z5!3j06NQ6{=WbK002ov JPDHLkV1kG!kc0pL diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uc.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uc.png deleted file mode 100644 index e1f8bb9e0e7e3950f920b95f633e496466f4f1f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)yL^jFi$40;N@-Af2bB*&Bu!@w8= zfHyw?V2qolIZjUi0Dur;t=*0GeV+s*imbK97z-hGqf*MWzQ=sVSWy%Q2R=RStV9T* zqzIQJy1mizJonz;2oORn%X0h+E*05Yix67ZbvL@M>o|^=iX3CCs!B@vsSo}(;MYag zS_42`*Khu9awJDZc5+I!z5oCK diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ud.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ud.png deleted file mode 100644 index a5d2343dcfe16517550e55bbc0f8feee106bbb29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrQ_&@BUG@Nlu6nvShIkx*JMAEEvjLAQ?<mI+2{d3L;v^dE?eGPGh8X{ z?O-U7aldSmd;3^&l;YBT@8eI+DLy8l#3lb?c89>kndd*NC<(Gp=VyqR_VhcSp8PS1 z?6nEvnQNa{im@mx`W`37z;Jt;C*!r!UPn*HJ>R`F4|dG3wB&j^_xkEpuXg#d95{2? z#PIXoRC6BZH(v^6*58?19QFEz0;k5O?W)X14sst@HuJsTB)mLB9_T>^Pgg&ebxsLQ E00UWZb^rhX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ue.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ue.png deleted file mode 100644 index 974322c69f5280bd2b88512e5d688b18474f9938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrQ{A5Rf0Teimpxq^Lp+YZopzA-umX>(@73zC1m;bQJqOq%RZp^<0TLu+ZD=iJd*rdkmhgelF{r5}E)= Cx^<%f diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uf.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uf.png deleted file mode 100644 index 253244e6002ffc49dd28a84f6a071cca1a7136aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrGnS_Y=Dk3n#hxyXAs)w*|NQ@N&#cQR%-nl$1?yrl9!Bm6j#U{M83`#V zM^vNZ?d{)-sT zxtPe;#{BSvcNjtvLO^%g2fEoF zzytUPfX|b8%d&J`7eb(v0sy77swx05##B{x6=00fT3c%=rK<-3)_n;fk>U`uzV8`h z-usQ;dyg@0n&!AX0`T4wLWW`3jVh(0fJl?I))-?U#BQ`GinzYVe8yOw=LZSj9qz0| z2%)G5mn6D<4$?GTmSy7vfN7fEON=q+{Fjp~g!sDGrgKtCrPQS+55s^En&){pnq}G5 zYbu10Qr3078wG$rc`sfJysqrGu`D)>mLGzR(iTPhIkx*JMADRiz1J!@oBLn&RdPDHyWo+;L~yS-oU(- z$y>mB1M_zSgXyg45(PI}|74r+KY2bow}(;tYtvCB2F8C3ALdOL+_?3a#Okd|i>3%M z?D?+9qUhq~nVs7+bE`!9rfYTb+DjQ6dOm*nbyoe+oXOpCMHd&&`5blNZT@4eg!v4o z7RfVxx%Y6F?K8(M%bAqqPClL!?8Vp+bjs5F{f3LToEVtau-7m&O*xwCIAz;rpraW) MUHx3vIVCg!08tuZVE_OC diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ui.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ui.png deleted file mode 100644 index f69e3f857e6a7c7e11ecaed284b3bd53d33a5e8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrbJlJhvnZfYv8Rh;h{y5dKmY&RGwU)6Gxr``!Ma$Chmkv?BmCBd3k44k zu{t{+{`~wrI}3}7ii*I}xAvL|e}8@D;o*6If4_Phcc!C?f&zoOd+@JL8VaB*=xJ3rrliQch`X{SN*7w$1Jv^_n@oOtS%Ezo)fPgg&ebxsLQ09cDc AmH+?% diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uj.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uj.png deleted file mode 100644 index ffefb31042c96f3fdd04d151cfe32eb1f9007674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrbBPyPQO!W1iJmTwAs)xyUOULktiZt`sfJysqrb7Pljiw^^Zet5b#hIkx*JMH4c76qQRo3nKttQW9&Enu-a5z$zZ5Ve8n zjf3?8J|FfB)=P}P51ct`duQd2(}&M~*zc$y&&hdMx#d97tM1e=Mv(*d3^x5|qh9CU zws?Nda_!bBpKdRivg-A%YJLW3a%;;MvbLcdMluIs`VpuYUjcIisQRWs_C`0YgQgEmnQWGEv!*$=7Zb z_?G`#kQ;sOXC}MLUCm$@ACD`0{rWnirm1?f^cZTYGMM-l#|17wF79+B{QdKzR?i>p o5jZ4K{NQ2WK3&!ThM$c33B8}g^nX{^0mFd7)78&qol`;+0Hh>|(f|Me diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ul.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ul.png deleted file mode 100644 index 47d868a0cbacd1e3148c7fca84eb9a9f820e9b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqr3!c)9Nrph7W=|K#5Rc<;uN~xVP~c&`kadUMt(midGeP9W0%ZfIn+v2L z99+z9x{=-Y|HhwZy%iL7iv1>>;W`xP(8$klJN2-o`LPYxlolB-oASwLhPjZ_j+-{_ z`jL(MnYV^TF8Hp;VX*mupyB54|K=XoJ9Z1opD; Xzgk3!mmjtPI)}m2)z4*}Q$iB}sSQvX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/um.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/um.png deleted file mode 100644 index c45333e6034076b8fabc626ab19d9e2314ee5655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)SfD)zy zDM2c5tN==&153~j&w1L?qfATgU;b#+%CE^(g758(smp9zm?n#h&$LoSXR za0C81Kqbsw&H}x~>;zwbq1?zVA17c>hF7sjll5 zrvQKuLMiY`p(Q|imJmYn&zS(m7yzV8c<=Z4=Wwf#Qmz%mIRHd-&h51S0l;iW z04R#W7_&bCZ+ejsf>H_q*4nxGXsy%OTC0>wH=D)Rc--HX8*l@z2mAt)S@#guVlb=# O0000`sfJysqr3-cq%)uKS5kDe}$As)xyPCIzEMM0o7-TePu%|^aCLR*;LHbgWAFh(#= zX%O{bzttprqcMu{f9dA5tIc;Rj=MkbPOF$)*(#v0?4Cd*=L7~$h7aX+IxRDvOER=2 zIvnw@zhBO9V$+$Z>TfPPCIxAoFFyBkdVY`Lv6#61p-RtV?ti~*Qaj7V#pV2$hK^g? za%ZU}P2PI#^{%Y7$&3OQEz{S=PE);RzV`L3jwMqBiyzGSe6RX_GNVMYm!{^^ZMhpK z>9lYt#CElQ=nO#+dy!WsF@NG|st{^3jhmVvLP3R{=3b zLdY--E0a>XGEV~X=cJTMsr>WNS_>f#_nuX~bZxQL=C;|HzLlzSFDifnfL~)P?e{fw RnV|px002ovPDHLkV1j#yn6>}_ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/up.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/up.png deleted file mode 100644 index d48be7b8cfb41d25ad1e53532bd9c29a7dc776bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrOX>Fu)V2eKwtKobhIkx*J8dIxivf@8T;bXq3ilKw8wEEpYNs@B;MA^Y zu3%M5U^Q}F=U_Egqwjzw>!kXphrVh5`I;K))i|xnF`3hWfr;UTpS2Um=}im`hHQe{ zbA!DUA6fL(-k&e*)tc1Pes0R7t!49`U%olJVeZ1Mao4|ofAd$G=kSDLwMEBwb7Biq17(8A5T-G@yGywqEYH9}n diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uq.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uq.png deleted file mode 100644 index d20612bf0e3f1f77cf23b2f812d1e18c0b5b66d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)SD+F!N8m#Tem}y2FQc z0WQFKeeFEwoO8|*LgslUgaAO(G-;7h+##h@UDvNWh)5|##O$|uK-YDg^W{Dw7DW+4 zI0f+D1Hjr%>$?7t+1mgqC8cyNYK#GZ?IiBm+A_x0qCyA&===V7n~vl7cs$mksf(s* z`o~5qiemeM0I-o_9#B=)2EaK702@Wh8_ik^0N(qx9{bfI?-{KuOQlp=Ypsnj#+Vpm z2!RliHFF*iLZFlyV-V3=o6_>$mu0E7{)17G7)mKAW!tvNU!3zjgJ>_{wItSBM0`G4 zdbi_FURqZO!5EvSX&8p&vU#4*j_akg)`SotM7GWc0na(ub=~%{+x2I60Z!{1>qGYX Tagem$00000NkvXXu0mjfbHTL+ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ur.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ur.png deleted file mode 100644 index e812c3186f8143411f9e41e603b163045099ea97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)S3m_HX z65Ii#lCl65ahgz#@sV~)79nb;) z0Py|RgNXKhS4tUU06;{>akSPt=WY?|4SDaco~4u!g0;4k@;3I#6KSo92oa}gYM2A( z95XX>D}dJeJevSwjPpDLz~=$XOhf<>WBfpwo=Pbxr9>p9bmX~JnbulE2#9zm_95W- z2bX1O(g)XMw4FsF(hy*+J#VnC>+>Xg?-B8sdfT?0_MEdZCg+@UzS>_j{AFzs5oQK} iU)pWxdr=2;fcgOyy_CfoKG2r{0000)FhWKkBV>cH0VBW$WCPfM9x6Rmd6DW$yhEk@H!NG9jg7_7T4V3j2Ya(_ zzzz5ZfKQ@dO38Z<04XIQgfYf@Z;bgpvJn(Q&{{u_rIdM|rIeId5O8IGtG4=#p z7HX}f#FCoKIrrY5jMFrcx<|=kSr!1;wyphLjOb^r{Z2?JwXSQ7YXyKlW6BtF&Yc=ge95F`H_x+D z$`~__BO)HhvG4n3S+5!>-9H9Xw^q8o4n*cXu0RV)r0LO1{b002ov JPDHLkV1l=yjwJv9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ut.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ut.png deleted file mode 100644 index d897d27c64780aa6b2917b04be971d4991fb5c21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrE4@i}8^eJ@i#%N%Lp+YZopzAZS&^r$c4_(M&b$P-0v7WNyl2#Qb*_HF zmY2ZKTG@UrT&_an$^O48zgk;5j!QVdx#FB7#w>AwL2=&ef^$2!Zadd$xb9H0X0nf0 zX4Lz=L0Pwgx~3G>9(L_sv-RB0OhyKVWv)jA4&9SfNLu^V?m^7^?Jf6y|5cp-`*UDa zcAN>@AKM3ybZ2>K3SO*!@5JHq`sfJysqrYmP__*4IFx6P_-PAs)xyPP@o?SV5poU-f+O^oddj+cx4U> z8Z}8CyZS$0zdOIPSf`|95iD*I$&+wEp5fKw2z3} z-(2jMUHg4|E;EDXQv)7%{{X+*`}TXE?frf){qfi1_2FKH;)V~x8Js$b8Q1@^UE0zS z&ycZp_A*aR+aIrYO=I}9xT(X5Blq^ZxrH*xJ*qbs1zs$bWspc-v(>3XLRm>F*=y6) p==6GZdd>S diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uv.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uv.png deleted file mode 100644 index 8d6cd3bbdea1f593e8b09140f47ea859542679af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysqrYgv=84}l_#9G)(YAs)xyPK)hrF%USue0nuI`xQnD4ZZ^h6&Tq)fHaUJ zRNx@HMPo*7hLc(K?tl}M?l}MVU&8!(wttYDOTqHG2WhMh3@i)>-uJCtrFBe#K_dCq zwx@IKqhIfeyM8sQyCXHS?u*mzNkQ-SD7QpROTB-X@qh#~L+tgvTkEXs85NXVbh;j` z{eJkvUIs5sh99rJy*%Zt<}I>0KUwAF?|(l7vj1NC-0fSIHLI<-PO)Y^&z(J4YnNy4 z+Qc!hkwa17qAma72bbgStK}O%HhULRTjTv?m5A#_i@s~OEc*7xD{U8uoaU(+D;Iz6 zz~7o@mHP~tmAo#8XqLX3T+HzQ;msq5j%qXfvwy&-#=UdFKl4A1z(8T}boFyt=akR{ E0N?qLH2?qr diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uw.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uw.png deleted file mode 100644 index 0d5f3890cb01ceade5bb9d1b17eb32a5feb383ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmV;r0Y(0aP)YnB{xewo;FEDTB%?vSd&cP?~1s}#O za0}c50N*d!vMiG%0RUr+Qp%HB>#pn4G+maZX&TPC=li}N$B|M>2zXl! z$aP%-V45bxw{6?D?aMg30@E}Bz`Cx8CxkRjgGedmUYy+?aLx%K!5@!p+ZbcxIHJRp z(ko3CLLdRHb>H{PvTWNHNNerIDH1}=^NjB2dH#4jVqv9JX!vP?*d=SNw}NwyD!XVA zilvkiLhMzx3wH=9WjGU$3L(UQ4#QxKIf(G40-rK6B<_Fk?c65E<`zZaV|lS)T~$@T za>>1el#)`4R>>Fx0CinIZ{j(Ne6rSBl&r5zYt0zD^4P^-jAdCC`xDymHx~If?wK^k k9M6wOa{qYU0{>s&2kbm4AE-gYjQ{`u07*qoM6N<$f}$t8hyVZp diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ux.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/ux.png deleted file mode 100644 index 024bade9b32aa3d20452de9f458bc00beba8f155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW20;d64HX6kMo~`}#}JR>Z>L@CZBY<$y`S?<-b!LE!`lOV8<<}>SRdfi zU<49S_6&X@<3h8p$zRX^KK@j-z5Jo7jT1+~(z*vpcN?S&m>KHIzx~=L-==uJ__<7S zPqEzJ%6XR0QzOrP_R);}yI-{I>0b2~5!a0$mrm(1d|zuJBoh{q&FGN*H;+rvX_mrL z4~|B|xbv&0%v$!+o>7s-$s_jqM#ZHe9${Juv(#E9Ofj;ZQ`}Ioks)F2Uao|mO1t@? zp>vs*@ZH*^b8cs$%-XH7*XPdI@}=gH_NA!#TwFqj4Uety_ImmJMJ@k_d)}Jnd`=o4 zEoGTCmd;P(d9` diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uy.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uy.png deleted file mode 100644 index cfa70de56d26d1a4158a9fb9759877fd01d17a68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW28F=48gf9PFP<)rAs)xyPP@CdMM0po{p>zxc0cxM37pd$IBztTIdEpM z9^ukyj9`pl+}L!JJ^swS*Y}@QP4>0$Z#jHsy38RKH^~Yg=YW& diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uz.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/uz.png deleted file mode 100644 index 8d1fcc83fe1d05564a170ac03ede1fc843b345e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmV-!0g?WRP)VI0003ENkl649ELj?j1(Z z319==fDs%)H^2?l4R8Y707t+HU<25|@4@6^_>!~6^WhTzPo!!43oR|LbzR|3eZkFo z01x0F0KPF!N~v)iw=-jmQVIYu#${Qglx1071$gg62z}r0bG2>joa3Ay1g{7QA)Ir2 zi*pVDwAP2QD1ekQu@priguuk2N|a?;(h_T}wHDRo^`t@wl+v#2kp8CuRaG&@@c!oj z#uxxF#@q#9jMa6WRP4_HQc6NdlJWC_CBm)>@BJ_gN~vv(@p>WuRrpMF0Q* diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/v.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/v.png deleted file mode 100644 index 0ad4cd8a334f33a21d9548486e4f6c2a2129e8bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWPJ_8KnvH=%XFOdTLp+YZopzA7Re`7Nba(mP19=BHHZ&@qV6$qPeS&Qb zgRp^<`vu-#d@9FgKYeiY!+fbr&$Rz4E|?*C?+Slh7_*53a}DDK+q9h9%cd|fB=>9; zV@T@JRArd)TvAZ}Rpf%qS<_N?u9rye@CedodNSvD;hyzxexEaHH1N-sb z?Cl$O{c3gmqt7<;-Q%A!8p|KQ_}x}e@Zwg{&MALfi_a-4DOo+&I=6Dq^rWqK?paON wU;Xr3SpSL});!KveZ$^{Uu59@z<5CZxsQwKY$3%2puZSAUHx3vIVCg!0Gt7FhyVZp diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/w.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/w.png deleted file mode 100644 index c6edcb49b5f460c2664587157b62cd46b45ed5ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrWE@6>N3!8vKpFCY0Lp+YZoqCYBMM1!|{p`Jk%r6fJX)sz{@Y}%b9iV-I zZwvEVhP4TA8f<->Y~FCS-?jb7pR!Nj{uzGGGu8b2uQ1oG;W^R3^Mm<8<>u=qyvaNa zt5z{JBuc#4y;Y3i*FO6`#JYmrh!w8{qZXX8mig-u9XMgawx_nZmVAqib8PFyr|tn!Sd<_r`sfJysrWZn@%$H+4XvbDl1aAs)xyUOmX$q9DL};d~nR2IdzBgf_5PH}D-3deb1Z zf!TWli!e`gL?$O0yQhWD3cA6sZGWr)b$ zy^h(y_wu$}hB?K@W=#G(Y2p;2hSJ#YMUi69?*#ty6H`z!bjx1bVNlHBxM}gH_~7@o zmrah%NR;4en{c1oID2h!PtYVLg{2}+7oyVd)kz*WQ~mz4&Gy{WXTq7z__(-xy4?GH xnnCGS`tQ9=3*P^pQ@P@odiVk+(I3nYm^V4Joa|Oy`VQzb22WQ%mvv4FO#nNkab^Gj diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/y.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/y.png deleted file mode 100644 index 98c8626b14f31920ca63cb8c34911db9b173174d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW9wrS7wQoS77oIMTAs)xyPCK}|uZ9lzZ+x77cS`HU9*$@4i^%rU;R(tbyzXaJ+=2j&BhbC1}Z_tIo= zII`|FL&E*MbUl*4xxzS?YC*|i9%Jdpui+W#s(01x|Czq(# z0#15@BCg7d?%Xq)ygqhUc8I~|;&;C{pRg>S_q^DthM~ga)}b?J{>Zp24f+}%!YIn{ ZKk1OKwfSF%SfHO7JYD@<);T3K0RU`Qfaw4L diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/z.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/char/rm/z.png deleted file mode 100644 index 644a5b3158bab6d2441751b15836855112cc0d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJysrW9*L___j`ashdo^!Lp+YZz3Rw&L_vV{LfK}f0teZKW;WKT418V8Dj`fk zR-p|nT}%ZBfX@E3 kUiPKGS_1>qKZYL++P_^-R9%kp2Z}Rzy85}Sb4q9e06MK|egFUf diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/1.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/1.png deleted file mode 100644 index 3894249db8e513cde9912875bba551de948fdb46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 965 zcmV;$13LVPP)7S}9L000AINkl^N*{QcFhN`G*0aB*?*=k4Dpgb+~_r>Cc# zQ2v1Q@pxPi1bZJ>u5fo_xXH^q6mU8Gc!X7iN#`pKmY(jq0q|8 z3IOcx?p|MCQ=XnQO}o3hGYmsj)mSWsh?Po(<2XbV1R)-eBVr7?Xs8*{y&jUaFn&3Wtr!Bzu%9D(P(sWaS;)>x3`ywQS^Gf{r&y+rT+Q(d17LMCTP80cez~l z8zv%tetvd$chk)J_4W0`!$W(YR4VoD&iP{ztyC%<9UVPAJ@$t*NsaR0S=m$`}PkK?=y3`{njE{-7?_ukIf*!9Ul;JEqm_KWEo1Y9lzS>Jb9Q_If! z_K4RToh_R#UOJ?{L7-cNEw`!HDM-Ue^&bc+0&w(haY}$w_desRqpL=x!JSY z1SYAR?4KvPE#Ugs8aw$jEa7)^e`sI$TbD1_ci7<2 zn%7^etmeLpI+}E`Q07!p&&Jog*1i6hBFCoErw|l$GX472kyVGFT%AnNb}LSVY|9D5tn|__dEZd0=`P*m9 zYpQw%tqnV@f1z1+?e*7*(=uo6jeGCCDQM-3U4D^ox}R4bdg#jPHLvQj$$pj1H+58G1+<}}SbnQ|#>t44S8C6lw&i-f-DA7ZYzkjdMAd%m6QqMcJzgg8Ti z;Hd?lqKO30pB*uJ#xr~3D{bT^pG=96pO)$x=)zGb^L_8b95e21RnIDdM2>FKIlW25 z^`J!eq8IMxKWWcC`>blO+7_;LyKYZdbK>3Nl_6e%Q?ADzR%W)He_rSGK1Pi_cNlR* d;J>MMj7v<+T&BDbumvV922WQ%mvv4FO#qE@B{={9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/3.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/3.png deleted file mode 100644 index fad9d20cfe5e5b62a221a7ce9847dca79eae0e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)H}S_Bo$H_!nbQ-+;jDu5E`06Op=m|+}7Bbtz?**&e|;1ia&Z`WcN1~`KK!9fgxB2Wa1 zKoKYcMW6_D_dxr;Cxm#XC<=cwIE0YC@5fG7E6$)tyRI|FEKXsJ>ADVM^h{f?wRX-e zPT`!>T4Rjj*5|Te-rBa6QVvTdrEJ@F$ZU{fQYobnB3yFL!w07ieF7-we7sixz&T$# zv;yd^w!Zk?-jmk)dcAJr0mc|(Y&B5ESjzjf*3s-)cIio2D5b2mi_v4PRZ8WK(Pt}K z*R@Zf&bi0q5!7^)4vaB%U4Ju1LlQT}csM=pizb5F)htecM0O1?fYPUBYvdTBfS1s;U;#$^Cx6-EL96HKqbWNT{pQhYneV zo+3s!Hy}O@G_gP{%W|?DL*cydpAGm!?2{`RjL!B2WbSiv0udZFR4YSI^i00000heao;{}ayT3S z5R1iFZ;8d?FLT1-FaW&1zB0|Cq9UWwm}-yi@9&qFm*Y6jdh7E6Wu({Zo0^*Vd_HqP zL!ppDp-A>#nw*>*sZ^TKHA*&US|lZpkB@I} zZ=B;yZf-8~7D&2B=jP^aZ*RGQQWUkewpLM5fwumydU$x)+uMsoA_|3~wzf8XGkiXu zpO=@nu&|Ksbv=&brKP0+kPLTzbIo*od`u9;5BO4Ix7#_Vn@PX*7K`Ql{9GgwwY0P- zl}eY(RZ~;Lj_Pzek|do@r$(bOnM^p2UtC-q92}%N&C}_0-QC@cJwHGHWwouXEw9&0 z)AZHV6#%&1Zj;IMxq3-a_T=;Vn5e`wmzS3bg7`dPdU~2M%w{uNPBG{y1sxn5l*wdl zlOTwtr6soc@$tdhDwRs5QYDx)atF=I%F=4JzZU{>KXGR=*RjZ~M*Wo2b-#F&_vsH&<00I%1}mU|e60l?1A4gfG8q;_|A z+uGW=JuXA7R&)DhdwcuH$Vfp!!OF_Y=H{kWtHm&^va(Vtl>$H{61lm#;qiExnVCYN z(Bttq91ej%z&+3=cyxlnAbWM#2*8ML! hB2Wa1KoRIa>ldJcqhTm*w2%M*002ovPDHLkV1ftF2Y&zn diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c2.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c2.png deleted file mode 100644 index a8c95a87123b926713695f00e1ccf64b5821debb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1077 zcmV-51j_q~P)Bqd&dvD&({&wHY&b(O;gb-AMa6yF#2F0Kl6oX<=42nT9C@HZ*OlQgakn} zH#e6r==}UVQog>v005Vlm)SA9ySv-l+vy(kZ0v!0JRXn7lQO5Krerc%MvTE=@caEL zm1=Em4S6gUi$EYK;C6-2dYjGG+1Z&g^?LpF_4U=&ReDS$5|K)!UavP6iy@E86aD@DDKi)hhC(4UDrlNU&W47Dy}dp5QlCm?x`e}F0D#Zu%ZTji z>OwlhFaUt}_ji_39|#26+S;=Hb#-+Lg+irLr8^xChg>d4y3^?t2n1rWn5ERu&dz?< z6p2It0HIJQ<&j7vXJ=1%<}Sb%G78yRaI5(?d@{8oM9L~ zpZ^DI{m94@%4yi=c-m`tYX>S_Rh z-EQC6*%6DyKaZK;9HaTl=jSH?pr)p#$bL!=`dgCU=gD9&oS&Z;f7e(nw!gnG6beiA zMroRk$K$_JR*1!7E|<${>R(=7nwpx*y|{aNdXh?|6;Oqqo}M-~Hm zx7!_$$45s;lgVWHmdmIFMKdGk4z(F8~}4N6Jhj5;r$DNLMPAN~MzRF`7suva<{! z)ai6BEiE}Okw_#~tCej~y27@6Qjs6_d(a|wDI7rj9$z);}W?^B0qNu~eLq4Cc)9L>6jWhl$ vfY* diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c4.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/frac/c4.png deleted file mode 100644 index 74c5cdfe2e677593d0fd24cc0f6d506a0a9ca6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmV-q1e^PbP)h|<2K3Z>C#e!su2t}a{i{#CnPB9Vy2;xx*& zwY8m{om9`|Vo129H@$r$zb|xa5zq7!0OzIGs*DpPxEFp-{+VGD7=&z6^u%`KfogTrDjv zWHS&5NTt%$0o&W#GMS9fHk(Z-6jJjD<#M@9CX;Ngudna!?xqfiL?TU1O@y}F?HMi5 z%-87q`#XftZnvw|>a^b4+FF~<1|i(q+5!Ohe7;QXmC=EZ2&Ak=XZB^d3kx?A}RT!Jv}`!7>wN9+;5aUecw{V zY&M%rrceCv_4W1O;Nb5?6vHqw+xWM8x45{NvZ?oYJUEW?c)YT*vhSNX8w>^v!;X%Q z1Omaz%1X8tY34_!TrP*%w=aljC=`mtVn5(bi9(@hY;4T>`IPyjJU>4J0LI3~()_o# zw~LF5XJ=;+LXXEYKR+Lj$3I>5XS(YrCnq@^PE}P^UteD=7Aq+!A^Z-9BODHoj*dzs z5|Kz$Q&Ur3UOq4|5Rbot~bu*=(g!`M*e<(N_@!ia-%4 q0!5$*6oDd81d2crC<6Ttfc^##Mp87^nZJSn0000S=51)mYdzBso1Cy4gi(^Q}y|*{4S3hzPVR+za5T`35=-S<(z{PdYX-$qx z$BoXWsjUhfW>FojQ|+B{*66reA9VA0y;$_fAt%9uez_)(np5&7y1o&V zW~#{8sTr#qCmI}kA=~7dFT}vA;lRih(7+_J0K&Xb&#+2)cAnA97bW&jLqbgjI3je! zq84nwefItL>b>_azibgmiY(iGcUO$w6NUlVOpYV zV>Lv?x>*lC;rSyE^h0LU*PSu%YV7{MTDM4JYm}~3@4vsH^;UC3LjRs+R-63t@#Dw) zHT+e$?T*bzoDsHq>;3o18zYn^E+`2uvXGf{@=4LoJ8#PtX?(KLKW((~iORy6KF_kR zKP))%xKL^#$HEe;zpt{SMS@Oxp1W9MC(qX&AGHdYskQ&<)$T< iFr&p+K*K)yFT(8CKZtES;$jI*NDQ8?elF{r5}E*BMj2)R diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/1.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/1.png deleted file mode 100644 index 3654ff91c867daf6eabdb97f02ee3ac19116b676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^7C`LH!2~2%1zlDHQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{T_<|yQ)RY@rW1(24+)F7srr{dv9mjdb|!0Iqv`J^I}og?(VBgIrMgkZ+Y-Q z&FY1MlGB|#C1MA)EG#;@tvW1zgtCjuw(#*Sbvn3f>V+nSur)J0cn_M~ny_VWK1a)i zYf`5BzCW33{B%zByR-ep@9f#5x&)Z)59WMu=5Z7h!H(>Ce{HW@{mUT3Z1z%(R}UUM zh-Y8BX3dh!U8`5WzP!H2Z83v_XOPiMmIeEZKfZP8&>^PNn-(u#eE06%C>05wd2{D}wAsIJUtLYj8V#<) z2Ael;4h;=Gs_s2$%eHN1wzhx8UOar5=K4`3-o0}t=WVN|qFUeMxcKRQGGx^Qjoo+Wc`fboKlilg{Q2{#THil?QaZh9Wf#+dw{O?3S{1i` z`l1#4_Sr4JoOw0o#PiQG$EV&r@wvuouGv>vQP)6$ma}JlT>~rTmG6w%yLWHcO1sG? z=ggTi#gn7`@W+ZfA+P1-<)1%)-YdBL^3RLcu3xz_C1>x{q)j(-R`y~Z)!N+WpSJ_YnE2<#i>)LUcMY0Ec(&#CzySvZfel_hs%pV{(=T@w*4M9Jwd(fU zYwee>FAp)By?5u%%>4X%ZN-^Bx88nRwrtt=qf550*}66Kcgm}R`1wo2x?b+?O_Xr* zu$sGX_ip8un3$N1qAPb!pZ4CI^egZ7jT;ON?d|QKKNmAZ#Ko~SRM^PzwKFDUX0Cjq n$MrwfEr7)pE4uJs_KUgM)w27srr{dv9m#_Wm3oam?SzRW*b&#AS(v*F}4$f{$Ig zB?3|A?BcBY3K^v$>QlR%1s67#ePHVHie-`Q3JJ)%#C5Mti(_rBlT*uw**+t)mtaP!J;&g!>MDD#^jSOlT>^!b0}`U zxhAUr_~er*UVk?Dm6w;#ojZ47Ku79LAXvU!-RAVBHJ4weM1K4Du`ng&$)iV1=k;`S zSehOC9 z)2B~Y)b783|L)zj(;k1^aW(7g)1s)d>gwGylC!g4zj?EU>BWs3GZZ-D8@6rRrl+Sj zE&EW?MiwSU8zH{-k3Ws=?D_;=y?8NW{(OHGp;PZY_sQG; zJzZT@A1kS_W3hsWMpI>+}yi&@5`5& zTVuk*x9{G)dg-lOw=}x6-fbwc0>)RXTy16LMc$Ck+AYhMFWF%R%%Bl_BHAHsp-Mg0I)%V|Yo@ELd~)aNmyaIH_Pf4vd|*8*I~{*wJ}Hi0cN!9B9TT*u() L>gTe~DWM4f&I!Ff diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/3.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/3.png deleted file mode 100644 index 3fc2186ac8cbb7ae187e6b1f41a990feb3a1dc60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 zcmV;U16=%xP)rP3Q&Lo6rcbF zC_n)UP=EsTUqI98v?z){0J^`we|2?L=!sLQ6wmVrp`)WCgit&lm#2at2!ikjXgC}; z8jXd9USD4a0s(}O$K#PE4F-cW4TVCXQ0UVEL=jb0Re~Up0!K2L)GxTdzn7=1+wG?4 zKp@cH-+z97jxpZZ*;!j#>*(l^pOw$&3x~riD=TKR*=#oFERxgd+}PMCD=W)nGTYnR zo12?YPfs;9HL5G>a=Gkwdr?u5){;9Mj-H+#y%jAkF8=uVkhVopq~o)*vvj+@zW(6g zAm_k%JZ`hu#>dC$uIA?E-QC?Uthan#Db%5=mmVRswY4Q}`~Cjb)>dUrUteEuZ!b;9 z#>R$*hEyrT!^4k{k2=<_t}c1{7kzYUYRYQ0O54@d)vvFw${IpQOG}G9O(v77zvgzk zOG`_2rkkIim#4q-hq_#@xw*MWBx1AKqR}YJvdS7!6qWa`YVbU7GMNkp&6SEqqvhr0 zdA*r1#<5t8rdF#JV>~l6GcYjF-rlbDQpoe8z|zu^>NTMu^(j55D2mdFVvH{@FQvhS zg@sfqH8L_Hr7X*4G8u%>;^N}h`l!d_F_}zSdkG<{tE=*JR)N;l)m>a%AcQ!MYiw+k z25)a~D=RB$&GGRu$8iXuY&I)DHs^jY7z|n$x3jbJ;o(6G$}mh*Qxn55dhKa%Z?CPb z?d0TSdU~1;zP-KG*49o=PDUb;<>lp@o12D)hKY%Z_4RdHGdMVCG#V=^D!g7VA;jzT zS}c~5l9JKUQROU&L?WBb>OA#1od;>v@jR~_e13k8#bUJ2y}!R}bw2%+5OQ{QmQJU2 zpofQtc|i*uPNx%NtW(h4-ThxcUtV4~j-x9l2!cGlySqyy5?^fi-y1y7>;HQ?Jw5&O zc)_<&fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rkT5zX4>ZCm)Tw9Kiqp002ovPDHLk FV1hvCtsDRV diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/4.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/4.png deleted file mode 100644 index 6f528dbf975e917eadde81809ad3ab663a78e272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmeAS@N?(olHy`uVBq!ia0vp^7C`LH!2~2%1zlDHQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{T_<|yN3Lfuu#IaXfu(gw@IiiX5M&Oy|3Ke?r3a z7ra&;0u`^4Qrd-H2TWJlCE;4;(ZQ2{SII`@#?j<}=?+sO#8N(|9v6=ZD%^hfkU`Gt zs6Q{#4}P{iVe|Q^q`k4#=JR}uHMo9p8!fa~VqguxfiC2G6x*lQ#9o)bFnRLi+qa|J z66g4-%bq)TPO0V4!w;W7Z&qu4d3tN|>Z?H_t*JMIR;Fyesp2UmA(0R%mYlOSO4UiOsI-@Ti4Hf{IacO_O*;ggoMx3f1-6c-ogy_2x0 zUcTXa^|k8o!wm`?K+%m6J=@I8%;ebS$J3&&y4`brg8v;yFpc z>1NKi<#oR*Z1T27?e6{b@1LESS(`vqRFsvi?bOtn5f?MAOF3qt-U2NXCr+Ff9cMdr%j{V~$0`yN9iLyh`r_Ze zxXb?M|9$u{VcWLt+npCqxaFrJ#Mb$L$IOzjlB%j(DMm{#XI2?KfBrmccZ5#b=E$VV zy>UGoZ2{v02BQ9g8O(8dUzS*}YDXKl?goBcc9_Gpsf<5!)Jcf<$UPAu}=UX^7c trE{8(kMEnjNSrH!hyx>5^hNw7vpHA88@1HxbYN~_@O1TaS?83{1OP2(k}v=O diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/5.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/5.png deleted file mode 100644 index e22d59278cf4d3e295d481848a2ec245d5281ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmeAS@N?(olHy`uVBq!ia0vp^7C`LH!2~2%1zlDHQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{T_<|yC(PaMP+Ub49x1DE{-7?_ukI1^>`g1a{T>T5s@ib8~t{r6%_;r+_BP% zIC${n(W8!u32>KcC-u^6$mo=TC%kB-nm&Zdxd>#K0PW16|mp;u)kh)rn*7ym_;7Eo9s{ zRE0X1FJGR|SXEIW(S20FNn2YxZTGHST>@Ne&6{+d-)Z`PI{kQwRcv^8cv8cvRebG- zrM|p*<0EnuC>9#}w7}xlty?jA;-|H`9)15k*KfIs=j6$g%XZ(b$v2w$@_b)e8eDdkj zroDUTM#Wx_)tkQVbH+hC$efTgj`@-zm(k%k#KVQFoy)7|i z^Udqm!)JB5Ew=1_@csAQJo8>w#|^jNK6`WL&Yj=CtN)4QbaHuJ|JvTpo*i)5z-eKC zyF2?`>1VkcwrvZGjorI@xAvbf1%VqkZ!Wxf^r&m!<5Q8xf!-FnxqbWg0*f5ps*;i; zk33Wk72f&v%WCWG+qWeiCkg+k*#``(B8T677`tZvpY46{?+qHZ5 z+1)^|UbL~3>b>L;IOWf)Jv(-s*y+TPxc}*Dhr{bvu8fR|N}48c>CT-qZ_b=K^W(>k zoex``6s62fOul^o4)pZq90LiJmM7ctdZMGE434Sp%JKK_FFhz3AI5Ykk^XB=fO>S;(UZkPbWn^TObdHaQ$HdI6thCfsNpSh)mme!W1qQ7QsjaOw z3~=gLwQ6U6OOvZRbD)UvOrMQgJB~lTnX@gz^vL6n^>IG&3(jjU)1RPoddt*H`^_eL z1XS16`Mo`Ty1Ue{w(;AyZ(eieef$1h)$^Cwa&?P`%o+_$I8a^8eukUk3ev^_wUxkJ O#Ng@b=d#Wzp$P!Esi%7Y diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/6.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/6.png deleted file mode 100644 index 2eed1bcd0533a3b6ecfc54f6f9d1cab3ef4c81f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^7C`LH!2~2%1zlDHQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{T_<|yQco?g_EW;Ffhw_x;Tbp+8!9J5xLWz|wEaqfp;vT?p5&*yg* z$-47w9?rRH`@H`B&ixP1S>BQK3KTKn`NqxL$*9r5gaawH1nj;m$9G}zV&%`A{{H@p zG?ZF4-PCdFcx(|UVm+77_wp)hj)1nrGwLcrob#RwIxSzmoMWMf%AwCStFKzw+lR*{ zaemeR*B=xzf6M##@A=vfdrVE;c{8W4w>PtS|Mzd-z684l-no1CsKoKdh3l_pZ;a6B zx|Ao()oRhVd-v|ybLMP`TDwZ5*R9s>{_*4PyYKe7E!H`G?#!7NpY?%2S68wzsps&+ z4{zSQi4Sy5|5n zojZT7ZQH+fYv}5$f9mR2h6uS9=H~jYW@BQUe%jRDe!k!G%vpAJc52h+&z&0^7su9o zu)V$g>(|oSf7h>H|M;;``GVi_%UN5uyp^0eJ$+-upI^U>g1B3oPJZ;96tXs~_ezLX z>ZbJy91@TJ)s`@9+p!~K(X*nR&CSjKnYIM2bP0 Hl+XkKMhBl+ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c1.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c1.png deleted file mode 100644 index d797cb8341215b0d5ec100495ae914f7f342f376..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmV-f1E&0mP)T5g zNu1PH(a@qp8X;7RgIw{TrU=5Nz$J*lL8MGEA{rVTqK2!6A{!eV5`vaMiEs-WR2mwR zK#M#v^!&f!c*mh-zPtB$#QVPK`~H4>{O<4n?gR;?6uv{~;F|3Ul zm25Vv*Xz|lkB^Vf&(DX3h8TufUtbRfgVH)7#OL$rbh^#WO}Y8{`r2x>_V)G`i^a3E zvrHzlw6qishd&#BbaXU3J1du&Oa=h@`}@`0OdQ84OTXW*EJLACC=_bG!=llsvJ^$J zd9ok~05CW>_~TbN9F7*AFV5)2#l`FEYgbp7R8CAxv~%*Nr>EuIU@#O41(szSdakan z0O024rn|daT5-GG%?GL7um0fRz+^I6EEccVn@Xi7Cnwv18jZ#;d+zV=0YFv)z{$zU z;^LwjD5Z2^VWC_u`+Pn@5bSpQ;o;$*dKHyQrIC@5h7Dd`URDDoghV0{qtWPgyZ86^ z>-BnzEB@UOMNxU*Y;SLGY;351g(@F%gpjeZF%>34Nb{o2W~)}KQl3ty6N$vy+M0Uk z<>h56m6GymwQ8|gl+V$8KL7UirhKfHN~MMgl}hE|;h}l*%*;$OnUr#u%azS$zqs1g ze~887@y^c9$HzxPNTE>hcs%k)tE;Po5K5`pY+hMe0f5`v+tbrilgU&p7U$>ZS(e?| z*|V6aetCj0p^J zF&HhujBFf)YOzl zqxoJ7{NE3r=T}x%5JDK^R4Uck*=ey@zT4z)K(DT@>gwta4-ZMYyu3_NlpqM-YNGtZ zOozka*Vk8uVHk!fDJdcKY&Ls)d&~2DadELmqtR-$r2g{q^8EbFvTSK-DaUa&H8pZ8 zhGC3GV_{(-NlB2&WN4bEC<-BzNF)jh3iNt?EEeN9uBxhvVVHcsdY8*}aB!g4>sgld zcsz1_ettd_3h8t@j^o^JH$q5$o~G&A+FFFr;^Ja%D~4gbUTQBd9UUEYI-U9M(Qr6iQBgr+gpgLNC2=4SFq_TtV@F3vHk*ya z4Gj%)eRFg3s}&3c0xc~qkw}E3OG``1WD;XMH#bLG?eFhLqtSf#sMG1}>gxKv?r=El zcDtNDK0X?aMvmh!#vYGHrBe0x_it@&eWheswzs$U?Ck6xbwLoUR_of@+8_4l=S!c- zWIjGVey>ZClzTaWF_t7Lo6S-bWwBW9?(RA|I%a2Q?RNX8=jhDL%*4cm$z)04U+bPN$R8WHLz(7oX49+}teJPfkwcgJy7WP_DPNwTYsb z+c1?%t*)-hD?U9vEeOK<`}^_nu^ir zr?QTUj7(f9EP=Epypa2CZKmiI+fC3bt00k&O0SZun0`y-Q ZzW^ diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c3.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/func/c3.png deleted file mode 100644 index 0f55b7e17fa552ec9a97f0624582e5c8ab9c1c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2532 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 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/2.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/2.png deleted file mode 100644 index 09cb7f882c266d4f44fa14fd9e9d01009ded3ffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1148 zcmV-?1cUpDP)r6qN000CVNklB^;KP6E%As_6m@ubxVX58AL8|T8HUN} z<8(U38d08WbbEW7<2a+ysL^P2I$i!A!oqQ!Xq%MZ|Lg4RoS&aBr6XH!#?lv6)9H<$mzcs!mz z*PoxCVr?eix8L=8eU6f4S*O!!x7!gycDvo@^L>1L;HEU7Pft$(u)MsCepkv~qen+a z05Ci}T^*E3hQ+Z_&v!{IQV zD6A|fR9WvhJv{}0?(S|Opc4}l05Cp24geaBMy*!k8vvM`oD>K2{QMjM^m;vSN{`2b zZ~FTB0HC$C6*ueZ>Hxsya<#R!sZ=VV4!^gz7XXfrk9m8UL?V$$B#K$1(P**Upgd6g z-(s;CZ_r>c7z_rBSU2kaJ00v zd}Gz=bj2!yGDh_B@)AEw2q;a{G))(?Zf$L`EGsm7!aK?3av>=M%H2tCZ*M~0XSdtG zNvW2WmLidepepqF`MJ5dS*21%qtS{!De?RLq9jcok0;~v^TlGZFbpGTjjpb)0>H+` zhQOs3kH^#LbUK|b77mIz{8C5s;^G1T3pLQ_*y6*u+x8;Dqk^FIq(xuu8qtq&9akFjvMjuTAEUJI~@QzQ=R;%yXXSoaf9apePD|g8hX*#CT91ln3QOc~Bmd z2jxL|&FFswtw_Y^m@IerKPpCwX{AlG11r82cV*&LZMLn zzDLz+bzWW`OAG`805&!@D6TDi(A?bI{{DWJI6puC&2UO&X(rR%-5p7it*xyreSLjh zEEZ=`)~~It0cdV+X6ZJYO)8aU5vavt0U(h`Vnw^%{we)$f|^XG^73+)Xti3i3-s#h z3V>WLXX)G9+W;CG8nOj+e}5l9Wo2c2fEE`QXVDQ#d#^t0z6QW-`&j|Hx3>qN zzP>)5KHkkN^LRXFvl)P1uV-4b+3fLnm@aNkrk9r&00cp>^xocH07j!R`S4&c=<#?c ziaI+xV_LV{O_C%@l3uTuvy*9SYYRYodpk?d&(84~!=^x)ties9{{-KEQ=FNfRhcIK(#&1SQ4mP~Xl z%wnR`tFf^$l^FyA!H<`DE|=@mQEhE)02UV)znmcu2xMaEFD@?PHzokb$HxFv9Yn|=jTMR zt5T^FM(}@nXpu++;NjsRR-B!k1u#53oGl&=hr@4gZv;Wmdpl$FwX>zAC6!5ZIvstl z`qZPNqoW*n^ziTyKv!26OQ#q8{{B9dNl21R;=Dj0z(Lm2sm%&ddMh9ZqNu1Sl}T=H zZuELR6OJmCiY`qY4u`|xSYBS{AnS*Qh5*oI1Y>Tu8$eG_Puk&_C@9nSD4pHa)z$F< z8h;&4<#38^xvWPoFE5*#npon=$q9hY&dzLkNp^dC3!tN;<5N)9b@Vqu6M4>RwbBWZ zEueID$6ETw$Hzz{67S|8u@v)EB9SPSN|tCa7y$TuKI-Q!C67iT5vS8RFfhQU27aqH=O_=H}+8j94;ItyW9FxT~tF(rUH; zjsXS-2Q3zhP$;A_Wr8GsehCJHGMTKPpg<@T8jVIqpPrufdc6jN!D_YE)YN3=tBBys zf9ZrmA%Y-SVl)~R3Wb^ceDgIZ|3Qogna=s)!sZ9nuW Re)9kT002ovPDHLkV1hQz7aafq diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/4.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/4.png deleted file mode 100644 index 483092e69a6bd7acc836a05ef1cfd97870c578c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmV-^1%djBP)8w$CT3z7@Pg;t7^#kC9Byi>^g>%@d)jb>g-8Jm}}IXnN0 zQ>XKsV|zB+{P*-fpNmub{Laok`@a8vn}8%q{0;EIUjkkzFO(O`3+09KLV2OQP&dG8 zwR)q_`T6 zb#-}pc}#v_U?4g=x}>CJX=#ZhNwe9^eeai~r-W8iR8&<}O-@b%pe>})XeiGF2L~r4 zBzVZ8|2Q5bx3{;WqoYctk|2oi@bI{}IEt^Wtt~Dt1`r<~pP!#^D|KAWC&#~2YisMT zU%yzS#bN<4GBQFlR;!i1+9y5b`q0qO^73*PIXpZJfR$cjV`JR6e@QwHN6V95ufM;) z&&kPQ@d|~)-``&-6f()MurTfuz9il6`oY0L04FCWY>xnCWo0b#{r#QASglqUv))mQ z&dtpMh>eY9lIQ2=0CID4SvM<{N|VVXm&FMd*RtX?8Gt*m!lG)i=04XUcEPiHYMko~e`T2Q^(8a|? zs-81RolXZpEEapwn76R703ahHy*8N=cuA|e1BA0K}^k-NIO z3iEkjdxcel}Kv}MtTh6YD1dU|>afVG7uNisDxm22j2;Q9I4&c4rRG&-8~R8{8= z@COG6Tr+ zz1jVBl&jL#2R}VMQHLl@oSvRiW0x2Gau*a7WU*K-E-tiMtxP8S`1sh^*tod3NJvO< zyHJ5Ef6yXH^2;&87XP0K<$qn~h4Mmqp}bIDC@+*3$_wR%{$GUt3jq?uS`N^A`2YX_ M07*qoM6N<$f;T9e%K!iX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/5.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/5.png deleted file mode 100644 index 604128ceda81954571b399706eec20a83e427dbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1486 zcmV;<1u^=GP)<{P+91{3MKt(I2;xau`K&v5z2Ag^z^h!rD|+!Y;A274%O7un9b%3 z7cQ)=t?}gN&!1CLQf}V7dH??X-74iIA}J}Ur>Cc(p#i}5_BJ6qJ3G~CHIdlX*2WtH z`10k;)vH(kU?B?sNV==Xj~}xvTT@drH#euzXcP(s;Vl-+lP6EMx3{yiv(KMDPsqD> z@201x=jP_>bh^aE!~^wcUS6KrY^KQG-d+HqP>AA_lapIoTDU!e1fk!*e+OW**(ly@ zHfLsLQl!`G1>kbI;vm#!vjLc$ou#J$>g($%vaPLc_i-tNgwT2U@+E-Nr%ww>;<p(NO>+92jEG49-@bi|mIT~l7j#oJ$h8gzkT~w{D?_3pE`AF z_vt7hAwgPOl}e>FkB*IviE9#R`2bL5X>f25 zfYE4-I_=QV5V_Tec=YJe&!0b~C491zUc7iAB>VdM0OaN6McheaV`JQ2Bf3!Dg+lV) zy?X$fnwlaS$Fi{9ZnxX*JB{ACb7ysRRf5pvwjHTAQ86$uz~_81+S}WI{P-bZ*H2DPMqE1(2rvvo_3#rD69BGU zxe|*|qtSTi&>@cFs5C^-+}up<`Y4ayY&MgmBP4x3AAs`ma?03XFaTItS&8v!k{QU= zYPEX3Ua!|{wOV;nLX48sO_AN*-2fgwd`R(1rBWQtJK@)_U(_|?P^>XJH#bN8B#uR@ zFAjx5TU%Qd6%~>SkMJ6CD5iuzGc&`tVdC;b6;G1tuV23&heI+_ImALgeE1;F1Ehe7 zjSoU7S-YsHNJuU&E&?bkE2E5uhld%4q2Brr=$$DiC&yqgP~`LH&q*c{pYn;1r4A_J zPfku&R#u8%M->VM6`;XjFcb<^S6A=jk@HS>K-$fvr6r2b%*?EgwvWS}h?L7ZC>m&J|iLaf9bF+%P>s5e!h_)RQ^Fs7Agysg~~!@ op|Vg}s4P?#Dhri`{_lkT3+S5(IQogUxBvhE07*qoM6N<$f-DWpApigX diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/6.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/int/6.png deleted file mode 100644 index 287b6ca3da36e44daef8c3baa8ed58678a40ded8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 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 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/large/3.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/large/3.png deleted file mode 100644 index 70b0f3e1d0603800b7411651fb2172f01955bb46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 988 zcmV<210(#2P)Vd>x zh(89UNOW*>QgO)OB#6#}?xK^_;^wF*)WJW%MQ15?D&nL=hbjRBL6Xuz)E0}iw$`TD zJnwK4Uh3PLUXog0?ip@)?$;;JU7q{q!U6#E8;oOqiBV7rN?B^%u^3{ez^hK5`Rl_Y6-d6{7tgwWR3R-sU+(Kwk*777Jf zmTzuu%zKTwxw&vS>_AB2JDZ=M$1M*I4#2V{5{b>tP24e;%YkiUtTbwGZ^u(65{bG- zFPF=rC~jEx3{_PzXkT9+!5pF}HYlP1u)Dj9Sr-=<>zyN&N`=GW27v;=^z<}l z4TVDBgc*immQI2ei^bN~R?M1Cr|lq0k`xRE0bq7^)+~d;pd?9V6*(vXTwGjW(2*RNq_>K#202w>Lr^>t#zwY9b9=jUp*IKXy60YDH0%zAlw2~JzJjY|TW&1OG^ z0>|mPPB6mG&Q3O)tya6by6Q|s0U#6#Vb+O>39?5mm&?^^|G6s|;x)n=fMJ-ImzR3` zo}Zt;zrRLizW`}_M0!(3lqcXV_Rbgx^H5l58g`JG$^bhKGl3CQH{7{@K|X$8p7C z(ed2w*b!=~();^+i+aa2MNujQmy4q0?d^^D%p4mVt2d(Ld311a@bK`^l%y6dl}e3{ zj?T=?)JUa&mv-~$fUOm6d2T>h*f3rl!6< zZ0_#v9v&VH!!VtKAed^)#qat^ByxOw+|$#eD2l}qySuypzJT!i{f^{Ul7vt1p4^{v9v>eyO>0I_^NX~G=jTB)nT#yU{r&ws&kKU!@puLX24q>zWHQYK ziV*Vod=*Zg&xa6l36$`y$638%t#w^*X=x$8Om!uq`FuVWi&Z#du~`f__Rb3(g+~)pb1{k5@S3@wl$*%>~NyJVHoS)pR-?jYdnQ((UanLWt-2pZP0N z!@9b<+S=L>LcP7c9LIHbc6z;D_Yyu8B@~o`Qcwy?K`H3}4f+Sw?_4!#iGgVV0000< KMNUMnLSTYc2hrsK diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/other.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/other.png deleted file mode 100644 index a5796aa82861db92a8d248df72c151f187032dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40838 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 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/2.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/2.png deleted file mode 100644 index 1eac155aae83d21adcf8317a8dcf8f80d0d964bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)kFIhEeSa-?0_iGXe9`6j}$k%mcCFp|{B7g!Epa2CZ zKmiI+fC3bt?*hs>H^!vc7{fWgx|C6$$A`9UD}+d~5Tb3{t4q1Wi~kEHA|kqR;<7Bm zFf7ZGnRMMz(=<)ftk>neXN-C8*R0x2eX_Hz>l=;|QC-(nRiQ>p1XW5YrEZ)^L|xb2 zyNFLa`Wxkh8b!lL!^dSp!$-qMjiTYB;b(C)yR5Y_#uOyKz4s}IF zRsfT3sK2D5(ex;&k1kQIb)M%Tk$Il` zyWd}=o>D4=@U{?wQu?av@Qd^N$+YL?Ohn(rL!!{ zvTVa;UMWQgQA(ZhQkbCLmorV%ZKq|Lrb&{ZM`KKsa~}A>9rsL86x#;z>WZG%Na#@r zJ_H}b1i^>kqemh55d57LJsee4HBI9UUvH(9H=3rYs%mJ=VS1Q^5YN9WTI7#8R{9H&!njA4w0L^8$}R%h7UMRzh`Y5Q-f$I=$m-<^6aZSPu9ENx?a xg@$bIR<8ti5&R@cmS1V09*H7RB#K1$;RE-1D=}0)oB99%002ovPDHLkV1iV9H}S_Bo$H_!nbQ-+;jDu5E`06Op=m|+}7Bbtz?**&e|;1ia&Z`WcN1~`KK!9fgxB2Wa1 zKoKYcMW6_D_dxr;Cxm#XC<=cwIE0YC@5fG7E6$)tyRI|FEKXsJ>ADVM^h{f?wRX-e zPT`!>T4Rjj*5|Te-rBa6QVvTdrEJ@F$ZU{fQYobnB3yFL!w07ieF7-we7sixz&T$# zv;yd^w!Zk?-jmk)dcAJr0mc|(Y&B5ESjzjf*3s-)cIio2D5b2mi_v4PRZ8WK(Pt}K z*R@Zf&bi0q5!7^)4vaB%U4Ju1LlQT}csM=pizb5F)htecM0O1?fYPUBYvdTBfS1s;U;#$^Cx6-EL96HKqbWNT{pQhYneV zo+3s!Hy}O@G_gP{%W|?DL*cydpAGm!?2{`RjL!B2WbSiv0udZFR4YSI^i00000g8T0lfZwA=02AVwwz zM&8`=`8)swgTc4lN~IFM7YhIig+g+&_6}b#=waxej~e#(_tk3k!^6Y$^z`7RHAt)j z5Nfqr-z^e#34$O9LVap&Zf@3_nnPQ4e}CT`+Gx;Luc1Dl?^Amk1M*B5S-zi4$&}+b z0C;+O5{s9Ym+5rcXf%GyG!zPzN+pFt;dZ+L;PLU1n4FyK-nDi8 z6+bL4E@HQ$xlg7Ni-r`Lk|~+~FjIzMq&F3p%3`rtuW`9t7Z(?ue)roR!vsOdX0wQR za&i(5hhJV^5HXodiZMe&Lv8LqI_U3zjg5@~K($&`tJNNl2LOhLhfhyW0bpxuD;A4= zfwWc6&(DaMN~O~2v{>W!`)jpY&vz(@Xf~VQj=GX;&?Y7(5V24w;5XEqKEp`xKtAmK z#*rw&Gv#?607gegX){5lWJ;z#^mH;X*%K&%5-5QZD1j2_?*SDzJu)5~dn}&kr>3U* z2I_P=6N$w7`nq^2n~ zFDjMFTrLLyM@L64xw1WKR;+8g}?rgtsVb*VU-00000NkvXX Hu0mjf&?kid diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/c2.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/script/c2.png deleted file mode 100644 index 572ad1ffba49478afcee3e46fee8198be363a0f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)k^+-H{C=?P8pdyM%m_&y}rBd<=I*AF*BpP182#HA;fs8*|az23=Wa^H2mUMG`DriI<@ zc2=vE5Q2Nalmqi4*GK5PL2Wi00Ho7t&Ra^;w9RJY@pxWrpB|4#08kVq7K^def3Ost zPA5VLr8F1};xR?&Z-L@IMJPfM${N*bRZ)~%74*RvjYgExMx$|~=E=L1-EQA*w>;Y~ zm&-SZ&$K_A%|fA2AQ0f+K8MwBx7z?9NfImdZoiTw8QmNXhvjm~GDWO&DhLAmyx)h4 zqDU#7PN(e9`*Z4aI>+O2tJP9f6(7+EMJPfMYU-`;ZMsKM6h%=KMNt$*QBF}Rm5jvY zat#K9*A*26!ALThOsCU%20=}XL?W?REY9ci6W=xIHLuxh`g}fz!(p*ldc9sgpU3yn zUn81IrS|*%d_IpvBH3&f0NieOx7+1r%H@>EvTP*7;qZqJC}(Ii8m-ssMy{$VM>2<{ zmt~m{vRbVQg@Uf@@pv2nipApfe@yUKD2k#eilQirq9}@@D2jfHzc(*hEZq7lZ=Pp& z{kpuzzH_Q`?>)ZvbLQSV_kaNa^1*(P&+N3`cDt?k%;szi^WOX&`}X#xL@?B3%*As% zxR>Yo^OAk8aD>1$gfa|s!)bksCAfjmMx#LpQK?jf5QoF@#~6HJola+~hhnwtcKe~B zudlDTUC!_XE;2ug{%@k`bo$}p;b>LZY0Kpj0Q`P`p-=#TZnv9Cr2rt2NbLC39?_5H z@p$&e>`8wznb>T$&6krXii^d9Dt!R3*=)yVgJ&N_&uqA*P!vT`6h*g96vcYIZZsM< zuXNh7Cmap~Krk3wHyu0N_5{U%IanH}syTgty z&2y*p)Opk`N_xFSluh&aSNqd+ol}a+1bi3VO1*B3b$|=sa^gPc80)dy8m#zL%sZ^`g z?(XggA%Y-0Jw2IBrhoQC0bn|vp73Yy33f9#6V=kUS}jSE)M~XTiawuDuh(BGC>A9M jil7LJpa_bfS8qQ7ClFT@Dkzn>00000NkvXXu0mjf=doX; diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/1.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/1.png deleted file mode 100644 index f6d0f2e56f9112404f1e0371b7c6de48d3056e20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmV+*1K<3KP)20008NNkl zJGj(A9E27Jhq|b^xw*Lb4;0jYz{S}=A+teO9kk%Af?ATr#UEJEE=7Y%(SVT1c|#s~ z)*5T_;xFF$rh89LzI-?L}8y*gaK|k=@M^cl4A%&z!ilj%+P+neMtXAuW@#*Qw z$ZV>j*Xx;_p%jZnT~qX4q#ln40P^`f$8kHd9et$g65q63Dw#~GspPtSbET&%q&`1C zl|r-G{8v)1*Q*p5hA}Pp8;u6f^M1cyD=H0UeKwmdo6V}#L?Xem>_&I#?)|}F0EU3` zK9V9SlKzLQlZ$CR3PqtP6osNt6pBL62DG_!JkQ7D@nA4WQPghF>+9=ODs{5#$>nmj z+wF7j`amF{ZdWMBN_d_Z1VIo4p66BL-xDXg049N9m|QNWloyKy%d$KE*K-`Fm){(r zqtPf73aM2|lDgflmh*T#-e)iCAo~ywhvV(-?Hq@v<#MT(qtR%&Tt2&Tbg@_vLM#@G zQZ1EAZnxX%bRK*lH5QbWO6B?ad9_-3z25IvB}wY{`&#!-CKCfOYOw2lKHtsFjlds?HH&40000C=?1yLZyXP+SwbUg;vWCAfdn?AjSq8jEx;6K-6eR4C`m1Awe{{?k?vQ zlecdlyWp8|N?x@BMJ@bvTq;PUcPvv4Qi_@^s?rKKf(wOXxe%&D}85yz4iWaEVYFfEeDy^-p0Vos-nz2wQ2!ddGZ%a~BEG{nUtKo3i zHmUZ$N+c4zkj-ZG9k#Z%-l8-bjSdbDYSqWbNBxWP>gvk$E_(Kf)M1cI5h;-p={F@! zr_*O=XR<7}+d12P^+}S{)z!sgo{o+VXO!OD-0;G~!vkY15C}Lxy0^E-3+LzOjIouK z6~e94z*2xVFfd@uM6`h=mpVQ^<^_u@ z)-LFc#bSJC+tbs-jb5+!T|qB^?d@#fl!Lit(T$;rvl(NQ9ikR&OYO!CvYxw*Mwv1oC$b|;v@A!M`J<>h7T%kpVL zM@L7Ej@u?@Wigv)FRf>UAP5r^6XkN5SI5T2N~Ka$pIj~{%W^A*{r!D+pL#vIySo9b zuCDIx?iyRy*Vo%*R`nlsxxVzdTyAo5a(;f^v{e+vOeO<>AIDVW2LO-}IEfzEtZQp)l}hEa0002+`1lAKIBe43 zu(xmBZnsjYyuQBbd<_5`4u_2z^m#21e7C7fTWGafu~@9pXcUV@#ga%Qh}IjU;CX)3 zINbE&;sOlt;~w~N0e`8fYt&RI6r4`yxYH${&vP92#dJv~lPuFkU9CFZy1u^tXV5k6 zhP6IFKZ7xFx>)dlE#F7dUr8zm0wKiX@vyLhDSEvg02GTwumUoE(`K_dG16={t31fE z{9V$^%S!+Vhr_zHgTY`h7_cby`~AQKT>D5mVc?WPQY1xE`$>m13@a*htnnEoHCE0A&>-DD7X+p@#%F4mP!S3#^Qq}2n&d<;1 z=H|X6SzcZ?Jjh_%jGN%;>1lp`UTX;kgJ2sNg(eb-Znvw*RV+rinjaHNDV?32otc?& zxm<*hhld9M$mMeCm5hGB-)gl0;O6E=NrlO>%=0|Y^Rg`8-``KwqgveE-NoZ^wJ1rF zNlMN90LNaT3kwU{BFAyMw_?-*nefrhnAqCds@LmU%kAy0lC{-EtyY`HfAr+!#O-#g z_cKbRQZyPJN+a_;|Nj1N#L#ZH8C}9K3LcLK07Ow-U0ofmEtktCxn%R>&HNC}@$z+&+G`}d3jnNYdMWHAZg`!XtibAd812|k# UAGE!VT>t<807*qoM6N<$f(pB&>i_@% diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/4.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/images/toolbar/sqrt/4.png deleted file mode 100644 index 66470a6b0d6767dbe7e4b9d716d09a6e32ee3256..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 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 V=M|+_tOS-e44$rjF6*2UngE4UFRK6m diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/base.css b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/base.css deleted file mode 100644 index 355d9b0..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/base.css +++ /dev/null @@ -1,40 +0,0 @@ - -.kf-editor { - width: 100%; - height: 100%; - border: 1px solid #e0e0e0; - position: relative; - top: 0; - left: 0; - - overflow: hidden; - z-index: 2; - background-color: #f6f5ee; -} - -.kf-editor-edit-area { - position: relative; - top: 0; - left: 0; - - z-index: 1; - height: 0; - background-color: white; - /*background-color: white;*/ - /*background-size: 21px 21px;*/ - /*background-position: 0 0,10px 10px;*/ - /*background-image: -webkit-linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef),-webkit-linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef);*/ - /*background-image: linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef),linear-gradient(45deg,#efefef 25%,transparent 25%,transparent 75%,#efefef 75%,#efefef);*/ -} - -.kf-editor-canvas-container { - width: 100%; - height: 100%; -} - -.kf-editor-input-box { - position: fixed; - top: 0; - left: -99999999px; - z-index: 999999; -} \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/page.css b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/page.css deleted file mode 100644 index 8026403..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/page.css +++ /dev/null @@ -1,12 +0,0 @@ - -html, body { - width: 100%; - height: 100%; - padding: 0; - margin: 0; - background: rgba( 48, 48, 48, 0.5 ); -} - -body { - height: 1000px; -} diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/scrollbar.css b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/scrollbar.css deleted file mode 100644 index b8254b0..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/scrollbar.css +++ /dev/null @@ -1,78 +0,0 @@ -/*! - * 滚动条 - **/ - -.kf-editor-edit-scrollbar { - width: 100%; - height: 16px; - position: absolute; - bottom: 0; - left: 0; - z-index: 994; - border-top: 1px solid #ddd; -} - -.kf-editor-ui-left-button { - position: absolute; - top: 0; - left: 0; - width: 5px; - height: 100%; - background: white; -} - -.kf-editor-ui-right-button { - position: absolute; - top: 0; - right: 0; - width: 5px; - height: 100%; - background: white; -} - -.kf-editor-ui-track { - position: absolute; - top: 0; - left: 5px; - width: 0; - height: 100%; - background-image: url(../images/scrollbar/edit/bar-left.png), url(../images/scrollbar/edit/bar-right.png), url(../images/scrollbar/edit/bar-bg.png); - background-repeat: no-repeat, no-repeat, repeat-x; - background-position: 0 0, right 0, 0 0; -} - -.kf-editor-ui-thumb { - position: absolute; - top: 0; - left: 0; - width: 0; - height: 100%; -} - -.kf-editor-ui-thumb-left { - width: 5px; - height: 100%; - position: absolute; - top: 0; - left: 0; - background: url(../images/scrollbar/edit/thumb-left.png) no-repeat 0 0; - z-index: 1; -} - -.kf-editor-ui-thumb-right { - width: 5px; - height: 100%; - position: absolute; - top: 0; - right: 0; - background: url(../images/scrollbar/edit/thumb-right.png) no-repeat 0 0; -} - -.kf-editor-ui-thumb-body { - position: absolute; - top: 0; - left: 5px; - width: 0; - height: 100%; - background: url(../images/scrollbar/edit/thumb-bg.png) repeat-x 0 0; -} \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/ui.css b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/ui.css deleted file mode 100644 index e8ac470..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/styles/ui.css +++ /dev/null @@ -1,536 +0,0 @@ -/* 工具栏 */ -.kf-editor-toolbar { - width: 100%; - padding: 1px 10px; - position: relative; - top: 0; - left: 0; - z-index: 2; - background-color: #f6f5ee; - border-bottom: 1px solid #ccc; - -moz-box-shadow:1px 1px 1px rgba( 0, 0, 0, 0.1 ); - -webkit-box-shadow:1px 1px 1px rgba( 0, 0, 0, 0.1 ); - box-shadow:1px 1px 1px rgba( 0, 0, 0, 0.1 ); - color: #000; - font-family: Helvetica, Arial, "微软雅黑", "Microsoft YaHei", "宋体", sans-serif; -} - -/* 按钮 */ -.kf-editor-ui-button { - padding: 8px 6px; - height: 79px; - font-size: 12px; - display: inline-block; - border: 1px solid transparent; - border-radius: 3px; - cursor: default; - position: relative; - top: 0; - left: 0; - z-index: 3; - vertical-align: top; - opacity: 0.5; - margin-right: 1px; -} - -.kf-editor-toolbar .kf-editor-ui-overlap-button { - width: 100%; - height: 25px; - background: #53b856; - border-radius: 0; -} - -.kf-editor-ui-button-icon { - width: 32px; - height: 32px; - margin: 2px auto; -} - -.kf-editor-ui-button-label { - color: #666; - text-align: center; - display: block; - font-size: 12px; - line-height: 20px; -} - -.kf-editor-ui-overlap-button .kf-editor-ui-button-label { - padding: 3px 5px; - text-align: left; - color: white; - font-size: 12px; -} - -.kf-editor-ui-button-sign { - border: 4px solid transparent; - border-top-color: #2d2d2d; - width: 0; - height: 0; - display: inline-block; - margin: 8px auto; - vertical-align: top; -} - -.kf-editor-ui-button-mount-point { - display: none; - position: absolute; - bottom: -2px; - left: -1px; -} - -.kf-editor-ui-overlap-button .kf-editor-ui-button-mount-point { - width: 100%; - height: 10000px; -} - -.kf-editor-ui-wrap-group { - overflow-x: hidden; - overflow-y: auto; -} - -.kf-editor-ui-overlap-button .kf-editor-ui-button-mount-point { - top: 27px; -} - -.kf-editor-toolbar .kf-editor-ui-button-in { - border-color: #8fcc91!important; - background: #e0f0dd!important; -} - -.kf-editor-toolbar .kf-editor-ui-overlap-button { - padding-top: 0; - padding-bottom: 0; - border-color: #61b864!important; - background: #61b864!important; -} - -/* 分割符 */ -.kf-editor-ui-delimiter { - width: 11px; - height: 100%; - display: none; -} - -.kf-editor-ui-enabled.kf-editor-ui-button:HOVER { - border: 1px solid #a9d9ab; - background: #ebf7e6; -} - -.kf-editor-ui-enabled.kf-editor-ui-overlap-button:HOVER { - border: 1px solid #53b856; - background: #53b856; -} - -.kf-editor-ui-delimiter-line { - width: 1px; - height: 100%; - margin: 0 auto; - background: -webkit-linear-gradient(top, rgba(233, 233, 233, 0.11), rgba(92, 92, 92, 0.20) 60%, rgba(92, 92, 92, 0.41) 80%, rgba(123, 123, 123, 0.50)); -} - -/* box */ -.kf-editor-ui-box { - border: 1px solid #b3aead; - border-radius: 3px; - box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.11); - background: white; - position: absolute; - top: 0; - left: -1px; - overflow-x: hidden; - overflow-y: auto; -} - -.kf-editor-ui-area .kf-editor-ui-box { - border-color: #61b864; -} - -.kf-editor-ui-box-container { - font-size: 12px; -} - -.kf-editor-ui-box-group-title { - background-color: #f7f6f0; - height: 23px; - line-height: 23px; - font-size: 12px; - border: 1px solid #ebeae4; - border-width: 1px 0; - padding-left: 12px; -} - -.kf-editor-ui-box-group-item-container { - padding: 7px 9px 17px 9px; -} - -.kf-editor-ui-overlap-container { - overflow: hidden; -} - -.kf-editor-ui-area .kf-editor-ui-box { - top: -1px; -} - -.kf-editor-ui-overlap-container .kf-editor-ui-button-sign { - border-top-color: white; - border-width: 4px; - margin-left: 10px; - margin-top: 8px; -} - -.kf-editor-ui-yushe-btn .kf-editor-ui-box-item { - border: 1px solid transparent; - padding: 5px; -} - -.kf-editor-ui-box-item { - display: inline-block; - margin: 4px; -} - -.kf-editor-ui-box-item-content:HOVER { - border-color: #dff3df; -} - -.kf-editor-ui-box-item-content:HOVER .kf-editor-ui-box-item-val { - border-color: #6eb864; -} - -.kf-editor-ui-area .kf-editor-ui-box-item { - position: relative; - top: 0; - left: 0; - width: 32px; - height: 32px; - border: 0; - margin: 3px; - padding: 0; - z-index: 1; -} - -.kf-editor-ui-area .kf-editor-ui-box-item img { - width: 32px; - height: 32px; -} - - -.kf-editor-ui-box-item-label { - margin-bottom: 5px; -} - -.kf-editor-ui-box-item-content { - background: white; - border: 1px solid white; -} - -.kf-editor-ui-area .kf-editor-ui-box-item-content { - position: absolute; - top: 0; - left: 0; -} - -.kf-editor-ui-area .kf-editor-ui-box-item-content:HOVER { - border: 1px solid #dff3df; -} - -.kf-editor-ui-box-item-val { - padding: 5px; - line-height: 0; - border: 1px solid #808080; -} - -.kf-editor-ui-area .kf-editor-ui-box-item-val { - padding: 0; - margin: 0; -} - -/* area */ -.kf-editor-ui-area { - height: 79px; - display: inline-block; - cursor: default; - position: relative; - top: 0; - left: 0; - vertical-align: top; - opacity: 0.5; - z-index: 4; - border: 1px solid #e0dfd5; - border-radius: 4px; - background: white; - margin: 8px 10px; -} - -.kf-editor-ui-area-container { - width: 293px; - height: 70px; - /*margin: 7px 5px 5px 5px;*/ - margin: 5px; - display: inline-block; - border-right: 0; - vertical-align: top; - position: relative; - top: 0; - left: 0; - overflow: hidden; -} - -.kf-editor-ui-area-panel { - position: absolute; - top: 0; - left: 0; - line-height: 0; - background: white; - -webkit-transition: top 0.5s linear; - -moz-transition: top 0.5s linear; - transition: top 0.5s linear; -} - -.kf-editor-ui-area-button-container { - display: inline-block; - width: 16px; - height: 100%; - overflow: hidden; - text-align: center; - border: 0 solid #D3D3D3; - border-left-width: 1px; - background-color: #f2f0e6; -} - -.kf-editor-ui-moveup-button, .kf-editor-ui-movedown-button { - line-height: 25px; - height: 30px; -} - -.kf-editor-ui-moveup-button { - background: url("../images/toolbar/btn.png") -304px 9px no-repeat; -} - -.kf-editor-ui-movedown-button { - border: 1px solid #D3D3D3; - border-width: 1px 0; - background: url("../images/toolbar/btn.png") -325px 9px no-repeat; -} - -.kf-editor-ui-area-button { - width: 100%; - height: 50px; - line-height: 26px; - background: url("../images/toolbar/btn.png") -346px 0 no-repeat; -} - -.kf-editor-ui-enabled .kf-editor-ui-area-button:HOVER { - background-color: #e5e4e1; -} - -.kf-editor-ui-enabled .kf-editor-ui-moveup-button:HOVER { - background-color: #e5e4e1; -} - -.kf-editor-ui-enabled .kf-editor-ui-movedown-button:HOVER { - background-color: #e5e4e1; -} - -.kf-editor-ui-area-button-container .kf-editor-ui-disabled { - opacity: 0.25; - background-color: transparent!important; -} - -.kf-editor-ui-area-mount { - position: absolute; - top: 0; - left: 0; - display: none; -} - -.kf-editor-ui-overlap-title { - width: 100%; - line-height: 1.5; -} - -/* list */ -.kf-editor-ui-list { - background: #f9f8f5; - border: 1px solid #b3aead; - border-radius: 3px; - position: fixed; - top: 0; - left: 0; - box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.11); -} - -.kf-editor-ui-list-bg { - display: none; -} - -.kf-editor-ui-list-item-container { - position: relative; - top: 0; - left: 0; - z-index: 2; -} - -.kf-editor-ui-list-item { - line-height: 24px; - padding: 2px 6px; - border: 1px solid transparent; - border-width: 1px 0; -} - -.kf-editor-ui-list-item-select { - color: #61b864; - font-weight: bold; -} - -.kf-editor-ui-list-item-select .kf-editor-ui-list-item-icon { - visibility: visible; - width: 16px; - height: 16px; - background: url(../images/toolbar/btn.png) no-repeat -367px 0; -} - -.kf-editor-ui-list-item:HOVER { - border-color: #beddbf; - background-color: #ecf3e9; -} - -.kf-editor-ui-list-item-icon { - width: 16px; - height: 16px; - display: inline-block; - vertical-align: middle; - margin-top: -2px; - margin-right: 4px; - visibility: hidden; -} - -/* area 内容区 */ -.kf-editor-ui-area-item { - width: 26px; - height: 26px; - position: absolute; - top: 0; - left: 0; -} - -.kf-editor-ui-area-item-inner { - width: 34px; - height: 34px; - border: 1px solid white; - position: absolute; - top: -4px; - left: -4px; - -webkit-transition: all 0.1s linear; - -moz-transition: all 0.1s linear; - transition: all 0.1s linear; - - -webkit-transform: scale( 0.76 ); - -moz-transform: scale( 0.76 ); - transform: scale( 0.76 ); -} - -.kf-editor-ui-enabled .kf-editor-ui-area-item-inner:HOVER { - border-color: #dff3df; - - -webkit-transform: scale( 1 ); - -moz-transform: scale( 1 ); - transform: scale( 1 ); -} - -.kf-editor-ui-area-item-img { - width: 32px; - height: 32px; - border: 1px solid #808080; - -webkit-transition: all 0.1s linear; - -moz-transition: all 0.1s linear; - transition: all 0.1s linear; -} - -.kf-editor-ui-enabled .kf-editor-ui-area-item-inner:HOVER .kf-editor-ui-area-item-img { - border-color: #6eb864; -} - -.kf-editor-ui-enabled { - opacity: 1; -} - -.kf-editor-ui-overlap-container .kf-editor-ui-box-item { - width: 34px; - height: 34px; - border: 1px solid white; -} - -.kf-editor-ui-overlap-container .kf-editor-ui-box-item-content:HOVER { -} - -.kf-editor-ui-overlap-container .kf-editor-ui-box-item-val { - width: 32px; - height: 32px; -} - -/* scrollbar */ -.kf-editor-ui-box::-webkit-scrollbar { - width: 17px; - background: url(../images/scrollbar/custom/bg.png) 0 0 repeat-y white; -} - -.kf-editor-ui-box::-webkit-scrollbar-button:end:increment { - height: 5px; - background: url(../images/scrollbar/custom/down.png) 0 0 repeat-y white; -} -/*定义滚动条渐减按扭的样式 */ -.kf-editor-ui-box::-webkit-scrollbar-button:start:decrement { - height: 5px; - background: url(../images/scrollbar/custom/up.png) 0 0 repeat-y white; -} - -/* 垂直滚动条的第三层轨道的上段 */ -.kf-editor-ui-box::-webkit-scrollbar-track-piece:vertical:start { - background-image: url(../images/scrollbar/custom/top.png), url(../images/scrollbar/custom/bg.png); - background-repeat: no-repeat, repeat-y; -} -/* 垂直滚动条的第三层轨道的下段 */ -.kf-editor-ui-box::-webkit-scrollbar-track-piece:vertical:end { - background-image: url(../images/scrollbar/custom/bottom.png), url(../images/scrollbar/custom/bg.png); - background-repeat: no-repeat, repeat-y; - background-position: 0 bottom, 0 0; -} -/* 垂直滚动条的滑动块 */ -.kf-editor-ui-box::-webkit-scrollbar-thumb:vertical { - /*background: url(./images2/bar.png) 6px 0 no-repeat;*/ - /*background-size: 6px;*/ - -webkit-border-image: url(../images/scrollbar/custom/bar.png) 8; - border-width: 10px; -} - -.kf-editor-ui-wrap-group::-webkit-scrollbar { - width: 17px; - background: url(../images/scrollbar/custom/bg.png) 0 0 repeat-y white; -} - -.kf-editor-ui-wrap-group::-webkit-scrollbar-button:end:increment { - height: 5px; - background: url(../images/scrollbar/custom/down.png) 0 0 repeat-y white; -} -/*定义滚动条渐减按扭的样式 */ -.kf-editor-ui-wrap-group::-webkit-scrollbar-button:start:decrement { - height: 5px; - background: url(../images/scrollbar/custom/up.png) 0 0 repeat-y white; -} - -/* 垂直滚动条的第三层轨道的上段 */ -.kf-editor-ui-wrap-group::-webkit-scrollbar-track-piece:vertical:start { - background-image: url(../images/scrollbar/custom/top.png), url(../images/scrollbar/custom/bg.png); - background-repeat: no-repeat, repeat-y; -} -/* 垂直滚动条的第三层轨道的下段 */ -.kf-editor-ui-wrap-group::-webkit-scrollbar-track-piece:vertical:end { - background-image: url(../images/scrollbar/custom/bottom.png), url(../images/scrollbar/custom/bg.png); - background-repeat: no-repeat, repeat-y; - background-position: 0 bottom, 0 0; -} -/* 垂直滚动条的滑动块 */ -.kf-editor-ui-wrap-group::-webkit-scrollbar-thumb:vertical { - -webkit-border-image: url(../images/scrollbar/custom/bar.png) 8; - border-width: 10px; -} \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.css b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.css deleted file mode 100644 index de07bba..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.css +++ /dev/null @@ -1,540 +0,0 @@ -/** - * 所有构件样式规则 - **/ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-widget { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-user-drag: none; - color: #000000; - line-height: 1.5; - font-size: 12px; - font-family: "ff-tisa-web-pro-1", "ff-tisa-web-pro-2", "Lucida Grande", "Hiragino Sans GB", "Hiragino Sans GB W3", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; - -webkit-font-smoothing: antialiased; - outline: none; - display: inline-block; - vertical-align: top; - position: relative; - top: 0; - left: 0; -} -.fui-widget.fui-selectable { - -webkit-user-select: text; - -khtml-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - -webkit-user-drag: text; -} -.fui-widget * { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-user-drag: none; -} -.fui-widget.fui-disabled { - opacity: 0.3!important; -} -.fui-widget.fui-hide { - display: none!important; -} -.fui-widget.fui-mask-animate { - -webkit-transition: all 0.2s; -} -.fui-widget.fui-mask-hint { - -webkit-transform: perspective(600px) translateZ(30px); -} - -/** - * 容器类通用样式 - **/ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-container { - overflow: hidden; - position: relative; - top: 0; - left: 0; -} -.fui-container.fui-disabled { - opacity: 1!important; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-button-menu { - border: 1px solid white; -} -.fui-button-menu:HOVER { - border-color: #d5e1f2; -} -.fui-button-menu.fui-button-active { - border-color: #d5e1f2; - background: #d5e1f2; -} -.fui-button-menu.fui-button-active .fui-button { - background: #d5e1f2; -} -.fui-button-menu.fui-layout-top, -.fui-button-menu.fui-layout-bottom { - text-align: center; -} -.fui-button-menu.fui-layout-top .fui-open-btn, -.fui-button-menu.fui-layout-bottom .fui-open-btn { - display: block; -} - -/** - * 通用button - */ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-button { - overflow: hidden; - cursor: default; - font-size: 0; -} -.fui-button ._layout .fui-label { - display: block; -} -.fui-button ._layout .fui-icon { - display: block; -} -.fui-button .fui-icon { - display: inline-block; - vertical-align: middle; -} -.fui-button .fui-label { - display: inline-block; - vertical-align: middle; -} -.fui-button.fui-button-layout-top .fui-label { - display: block; -} -.fui-button.fui-button-layout-top .fui-icon { - display: block; -} -.fui-button.fui-button-layout-bottom .fui-label { - display: block; -} -.fui-button.fui-button-layout-bottom .fui-icon { - display: block; -} -.fui-button:HOVER { - background-color: #d5e1f2 !important; - color: #000000 !important; -} -.fui-button:ACTIVE { - background-color: #87a9da !important; - color: #000000 !important; -} -.fui-button.fui-disabled:HOVER { - background-color: #ffffff !important; - color: #000000 !important; -} -.fui-button.fui-disabled:ACTIVE { - background-color: #ffffff !important; - color: #000000 !important; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-colorpicker { - background-color: #fff; -} -.fui-colorpicker-container { - border: 1px solid #d3d3d3; -} -.fui-colorpicker-container .fui-colorpicker-title { - background: #eee; - padding: 2px 4px; -} -.fui-colorpicker-container .fui-colorpicker-colors { - margin: 0; - padding: 0; - font-size: 0; - line-height: 0; -} -.fui-colorpicker-container .fui-colorpicker-colors-line0 { - margin-bottom: 3px; -} -.fui-colorpicker-container .fui-colorpicker-item { - display: inline-block; - margin: 0 2px; - width: 13px; - height: 13px; - border-style: solid; - border-width: 1px; -} -.fui-colorpicker-container .fui-colorpicker-commoncolor, -.fui-colorpicker-container .fui-colorpicker-standardcolor { - margin: 4px 3px; - white-space: nowrap; -} -.fui-colorpicker-container .fui-colorpicker-toolbar { - margin: 4px; - height: 27px; -} -.fui-colorpicker-container .fui-colorpicker-toolbar .fui-colorpicker-preview { - display: inline-block; - height: 25px; - line-height: 25px; - width: 120px; - border: 1px solid #d3d3d3; -} -.fui-colorpicker-container .fui-colorpicker-toolbar .fui-colorpicker-clear { - display: inline-block; - height: 25px; - line-height: 25px; - width: 60px; - border: 1px solid #d3d3d3; - font-size: 12px; - text-align: center; - position: absolute; - right: 5px; - cursor: pointer; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ - -/** - * 通用button - */ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-dialog { - position: fixed; - top: -1000000px; - left: -100000px; - border: 1px solid #B1B1B1; - background: #fff; -} -.fui-dialog .fui-panel-content { - width: auto!important; - height: auto!important; - padding: 2px; -} -.fui-dialog .fui-dialog-caption { - margin: 0; - padding: 5px; - font-size: 16px; - font-weight: normal; - line-height: 1; - display: inline-block; -} -.fui-dialog .fui-dialog-head .fui-close-button { - float: right; -} -.fui-dialog .fui-dialog-head .fui-close-button .fui-close-button-icon { - width: 16px; - height: 16px; - background: url("images/close.png") no-repeat 0 0; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-drop-panel { - border: 1px solid #d3d3d3; - overflow: hidden; - position: relative; -} -.fui-drop-panel .fui-drop-panel-content { - display: inline-block; -} -.fui-drop-panel .fui-drop-panel-placeholder { - display: none; -} -.fui-drop-panel .fui-drop-panel-button { - border-left: 1px solid #d3d3d3; - visibility: visible; -} -.fui-drop-panel .fui-drop-panel-button:HOVER { - border-color: #d5e1f2; -} -.fui-drop-panel .fui-drop-panel-button:ACTIVE { - border-color: #87a9da; -} -.fui-drop-panel:HOVER { - border-color: #d5e1f2; -} -.fui-drop-panel:HOVER .fui-drop-panel-button { - border-left-color: #d5e1f2; -} -.fui-drop-panel:ACTIVE { - border-color: #87a9da; -} -.fui-drop-panel:ACTIVE .fui-drop-panel-button { - border-left-color: #d5e1f2; -} -.fui-drop-panel.fui-drop-panel-open { - overflow: visible; -} -.fui-drop-panel.fui-drop-panel-open .fui-drop-panel-content { - border: 1px solid #d3d3d3; - position: absolute; - top: -1px; - left: -1px; -} -.fui-drop-panel.fui-drop-panel-open .fui-drop-panel-button { - visibility: hidden; -} -.fui-drop-panel.fui-drop-panel-open .fui-drop-panel-placeholder { - display: inline-block; -} -.fui-drop-panel-popup { - border: 1px solid #d3d3d3; -} -.fui-drop-panel-popup:HOVER { - border-color: #d5e1f2; -} -.fui-drop-panel-popup:HOVER .fui-drop-panel-button { - border-left-color: #d5e1f2; -} -.fui-drop-panel-popup:ACTIVE { - border-color: #87a9da; -} -.fui-drop-panel-popup:ACTIVE .fui-drop-panel-button { - border-left-color: #d5e1f2; -} - -.fui-icon { - text-align: center; - font-size: 0; -} -.fui-icon img { - display: inline-block; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-input-button { - border: 1px solid #ababab; -} -.fui-input-button .fui-input { - vertical-align: middle; - border: none!important; -} -.fui-input-button .fui-button { - vertical-align: middle; -} -.fui-input-button:HOVER { - border-color: #87a9da; -} -.fui-input-button:ACTIVE { - border-color: #87a9da; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-input { - border: 1px solid #d3d3d3; - padding: 1px; - margin: 0; -} -.fui-input:HOVER, -.fui-input:FOCUS { - border-color: #4d90fe!important; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-item { - font-size: 0; -} -.fui-item .fui-icon { - vertical-align: middle; -} -.fui-item .fui-label { - vertical-align: middle; -} -.fui-item.fui-item-selected { - background: #87a9da; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-label-panel .fui-label-panel-label { - width: 100%; - color: #666; -} -.fui-label-panel.fui-no-position .fui-label-panel-label { - position: static!important; -} -.fui-label-panel.fui-layout-bottom .fui-label-panel-label { - position: absolute; - bottom: 0; - left: 0; - top: auto; - z-index: 2; -} - -.fui-label { - cursor: default; - display: inline-block; - white-space: nowrap; -} - -/** - * 通用button - */ -.fui-mask { - position: fixed; - z-index: 99998; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-menu { - background-color: #fff; - border: 1px solid #d3d3d3; -} -.fui-menu .fui-item { - padding: 2px 5px; - display: block!important; -} -.fui-menu .fui-item:HOVER { - background: #d5e1f2; -} - -/** - * 通用button - */ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-panel { - display: inline-block; - vertical-align: top; - overflow-y: auto; - overflow-x: hidden; -} -.fui-panel .fui-panel-content { - position: relative; - top: 0; - left: 0; -} -.fui-panel .fui-panel-content { - width: 100%; - height: 100%; -} -.fui-panel.fui-container-column { - font-size: 0; -} -.fui-panel.fui-container-column .fui-column { - display: block; -} - -/** - * 通用button - */ -.fui-ppanel::-webkit-scrollbar { - width: 15px; -} -.fui-ppanel::-webkit-scrollbar-button:start:decrement, -.fui-ppanel::-webkit-scrollbar-button:end:decrement, -.fui-ppanel::-webkit-scrollbar-button:start:increment, -.fui-ppanel::-webkit-scrollbar-button:end:increment, -.fui-ppanel::-webkit-scrollbar-thumb { - border: 1px solid #e7e7e7; -} -.fui-ppanel.fui-ppanel-position { - position: fixed; - z-index: 99999; -} - -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-separator { - background: #6d6d6d; -} - -/** - * Spin-button - */ -.fui-spin-button .fui-spin-up-btn .fui-icon, -.fui-spin-button .fui-spin-down-btn .fui-icon { - width: 16px; - height: 9px; - background: url("images/up.png") no-repeat 3px 1.5px; -} -.fui-spin-button .fui-spin-down-btn .fui-icon { - background-image: url("images/down.png"); -} - -/** - * 通用button - */ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-tabs .fui-selected { - background-color: #d5e1f2; -} - -/** - * 可切换Button (ToggleButton) - */ -/** - * FUI 通用样式定义 - */ -/*------------ var*/ -/*------------ mixin*/ -.fui-toggle-button.fui-button-pressed { - background-color: #aec5e6; -} -.fui-toggle-button.fui-button-pressed.fui-disabled { - background-color: #aec5e6 !important; -} diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.min.css b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.min.css deleted file mode 100644 index 3faab2a..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/fui.min.css +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * ==================================================== - * Themes file * Flex UI - v1.0.0 - 2014-07-28 - * https://github.com/fex-team/fui - * GitHub: https://github.com/fex-team/fui.git - * Copyright (c) 2014 Baidu Kity Group; Licensed MIT - * ==================================================== - */ - -.fui-widget{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;color:#000;line-height:1.5;font-size:12px;font-family:ff-tisa-web-pro-1,ff-tisa-web-pro-2,"Lucida Grande","Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;-webkit-font-smoothing:antialiased;outline:0;display:inline-block;vertical-align:top;position:relative;top:0;left:0}.fui-widget.fui-selectable{-webkit-user-select:text;-khtml-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;-webkit-user-drag:text}.fui-widget *{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.fui-widget.fui-disabled{opacity:.3!important}.fui-widget.fui-hide{display:none!important}.fui-widget.fui-mask-animate{-webkit-transition:all .2s}.fui-widget.fui-mask-hint{-webkit-transform:perspective(600px) translateZ(30px)}.fui-container{overflow:hidden;position:relative;top:0;left:0}.fui-container.fui-disabled{opacity:1!important}.fui-button-menu{border:1px solid #fff}.fui-button-menu:HOVER{border-color:#d5e1f2}.fui-button-menu.fui-button-active{border-color:#d5e1f2;background:#d5e1f2}.fui-button-menu.fui-button-active .fui-button{background:#d5e1f2}.fui-button-menu.fui-layout-bottom,.fui-button-menu.fui-layout-top{text-align:center}.fui-button-menu.fui-layout-bottom .fui-open-btn,.fui-button-menu.fui-layout-top .fui-open-btn{display:block}.fui-button{overflow:hidden;cursor:default;font-size:0}.fui-button ._layout .fui-icon,.fui-button ._layout .fui-label{display:block}.fui-button .fui-icon,.fui-button .fui-label{display:inline-block;vertical-align:middle}.fui-button.fui-button-layout-bottom .fui-icon,.fui-button.fui-button-layout-bottom .fui-label,.fui-button.fui-button-layout-top .fui-icon,.fui-button.fui-button-layout-top .fui-label{display:block}.fui-button:HOVER{background-color:#d5e1f2!important;color:#000!important}.fui-button:ACTIVE{background-color:#87a9da!important;color:#000!important}.fui-button.fui-disabled:ACTIVE,.fui-button.fui-disabled:HOVER{background-color:#fff!important;color:#000!important}.fui-colorpicker{background-color:#fff}.fui-colorpicker-container{border:1px solid #d3d3d3}.fui-colorpicker-container .fui-colorpicker-title{background:#eee;padding:2px 4px}.fui-colorpicker-container .fui-colorpicker-colors{margin:0;padding:0;font-size:0;line-height:0}.fui-colorpicker-container .fui-colorpicker-colors-line0{margin-bottom:3px}.fui-colorpicker-container .fui-colorpicker-item{display:inline-block;margin:0 2px;width:13px;height:13px;border-style:solid;border-width:1px}.fui-colorpicker-container .fui-colorpicker-commoncolor,.fui-colorpicker-container .fui-colorpicker-standardcolor{margin:4px 3px;white-space:nowrap}.fui-colorpicker-container .fui-colorpicker-toolbar{margin:4px;height:27px}.fui-colorpicker-container .fui-colorpicker-toolbar .fui-colorpicker-preview{display:inline-block;height:25px;line-height:25px;width:120px;border:1px solid #d3d3d3}.fui-colorpicker-container .fui-colorpicker-toolbar .fui-colorpicker-clear{display:inline-block;height:25px;line-height:25px;width:60px;border:1px solid #d3d3d3;font-size:12px;text-align:center;position:absolute;right:5px;cursor:pointer}.fui-dialog{position:fixed;top:-1000000px;left:-100000px;border:1px solid #B1B1B1;background:#fff}.fui-dialog .fui-panel-content{width:auto!important;height:auto!important;padding:2px}.fui-dialog .fui-dialog-caption{margin:0;padding:5px;font-size:16px;font-weight:400;line-height:1;display:inline-block}.fui-dialog .fui-dialog-head .fui-close-button{float:right}.fui-dialog .fui-dialog-head .fui-close-button .fui-close-button-icon{width:16px;height:16px;background:url(images/close.png) no-repeat}.fui-drop-panel{border:1px solid #d3d3d3;overflow:hidden;position:relative}.fui-drop-panel .fui-drop-panel-content{display:inline-block}.fui-drop-panel .fui-drop-panel-placeholder{display:none}.fui-drop-panel .fui-drop-panel-button{border-left:1px solid #d3d3d3;visibility:visible}.fui-drop-panel .fui-drop-panel-button:HOVER{border-color:#d5e1f2}.fui-drop-panel .fui-drop-panel-button:ACTIVE{border-color:#87a9da}.fui-drop-panel:HOVER{border-color:#d5e1f2}.fui-drop-panel:HOVER .fui-drop-panel-button{border-left-color:#d5e1f2}.fui-drop-panel:ACTIVE{border-color:#87a9da}.fui-drop-panel:ACTIVE .fui-drop-panel-button{border-left-color:#d5e1f2}.fui-drop-panel.fui-drop-panel-open{overflow:visible}.fui-drop-panel.fui-drop-panel-open .fui-drop-panel-content{border:1px solid #d3d3d3;position:absolute;top:-1px;left:-1px}.fui-drop-panel.fui-drop-panel-open .fui-drop-panel-button{visibility:hidden}.fui-drop-panel.fui-drop-panel-open .fui-drop-panel-placeholder{display:inline-block}.fui-drop-panel-popup{border:1px solid #d3d3d3}.fui-drop-panel-popup:HOVER{border-color:#d5e1f2}.fui-drop-panel-popup:HOVER .fui-drop-panel-button{border-left-color:#d5e1f2}.fui-drop-panel-popup:ACTIVE{border-color:#87a9da}.fui-drop-panel-popup:ACTIVE .fui-drop-panel-button{border-left-color:#d5e1f2}.fui-icon{text-align:center;font-size:0}.fui-icon img{display:inline-block}.fui-input-button{border:1px solid #ababab}.fui-input-button .fui-input{vertical-align:middle;border:none!important}.fui-input-button .fui-button{vertical-align:middle}.fui-input-button:ACTIVE,.fui-input-button:HOVER{border-color:#87a9da}.fui-input{border:1px solid #d3d3d3;padding:1px;margin:0}.fui-input:FOCUS,.fui-input:HOVER{border-color:#4d90fe!important}.fui-item{font-size:0}.fui-item .fui-icon,.fui-item .fui-label{vertical-align:middle}.fui-item.fui-item-selected{background:#87a9da}.fui-label-panel .fui-label-panel-label{width:100%;color:#666}.fui-label-panel.fui-no-position .fui-label-panel-label{position:static!important}.fui-label-panel.fui-layout-bottom .fui-label-panel-label{position:absolute;bottom:0;left:0;top:auto;z-index:2}.fui-label{cursor:default;display:inline-block;white-space:nowrap}.fui-mask{position:fixed;z-index:99998}.fui-menu{background-color:#fff;border:1px solid #d3d3d3}.fui-menu .fui-item{padding:2px 5px;display:block!important}.fui-menu .fui-item:HOVER{background:#d5e1f2}.fui-panel{display:inline-block;vertical-align:top;overflow-y:auto;overflow-x:hidden}.fui-panel .fui-panel-content{position:relative;top:0;left:0;width:100%;height:100%}.fui-panel.fui-container-column{font-size:0}.fui-panel.fui-container-column .fui-column{display:block}.fui-ppanel::-webkit-scrollbar{width:15px}.fui-ppanel::-webkit-scrollbar-button:end:decrement,.fui-ppanel::-webkit-scrollbar-button:end:increment,.fui-ppanel::-webkit-scrollbar-button:start:decrement,.fui-ppanel::-webkit-scrollbar-button:start:increment,.fui-ppanel::-webkit-scrollbar-thumb{border:1px solid #e7e7e7}.fui-ppanel.fui-ppanel-position{position:fixed;z-index:99999}.fui-separator{background:#6d6d6d}.fui-spin-button .fui-spin-down-btn .fui-icon,.fui-spin-button .fui-spin-up-btn .fui-icon{width:16px;height:9px;background:url(images/up.png) 3px 1.5px no-repeat}.fui-spin-button .fui-spin-down-btn .fui-icon{background-image:url(images/down.png)}.fui-tabs .fui-selected{background-color:#d5e1f2}.fui-toggle-button.fui-button-pressed{background-color:#aec5e6}.fui-toggle-button.fui-button-pressed.fui-disabled{background-color:#aec5e6!important} \ No newline at end of file diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/close.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/close.png deleted file mode 100644 index 4f8885f47e0ce084c2a963bad9a3d9998e4c292d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1O92G;jkLPtXOMsMzWR&J6Sy{Q{Czpb>SXl)C zO)h3IT>gKzKAIY^ORcOtQZv&tN*GLyjZf`ioC;JUj${s0O?YNXNd`zsq;KE}pb|+W zCBB)tsU?*KsSIFG=ojRr+iwc%W1gMI^(Ad(<+{D7f)T~Q8m<^~z7|ERA%qn2y z=vkV1J2~ZkTHXkhPC}9n4f142%gjjyhM0aver~FMT1kPvp{bF9erjTIWo9xkD3bF~ t*vTn*x|zA@ddTuX*XbJ?niv~HNHZfnpa{bxe=VSG44$rjF6*2UngElh3X%W- diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/down.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/down.png deleted file mode 100644 index cf92db68069cad3c42ef007f543f905fe00fb2b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 zcmaJ=Ye*DP6rPCG7VH5P6%@m0nAFZ|cgJo_jdoch0%zyWO$c z^~J8GE)2tpqcuVt?T%egRDk~9C+6Nk+Y%T_!aAc7rX>qtA;o9_cvO>`KpaR)+qSzP zfMGLB)kG2|#SOe{Xr$!CkQvQHXbcNfWlTwK0T6EhO{yLw#;;r_a8(Hs8+{@znqkna z*0fuouDv!Px3|cZ3Q@Hd4`g^mpaCf187-yTd?rX_d3j_zZi>LOA+RM#{3$9a#_+IV z0o+G=+%nBDILDEU*T-?pYMiARmZH((+>Dp^aXedrPksc-W+{z)T&SMRg-$`D8A6k% zsB}6_rah!#HBn4uWu?QxvThXNw%c?lW!$=5l4B5nEnBJyRYS)eMybJQg+T&U`lkiW zoTAn3$!kIvMr9{n0UC3!&i!utm=-VJc|%TKC0VL(q#}8f&}6qRaN1=6}Fx-P4#XwXD zB{EOFwf(MJ^nxAT?_#d{=P!PA`ahQ)I5x2PZQ)mOPUnK+Jx>-DmhXL?*g95!b9W&% zcqQF?_QJEk{lmn=jv1$W=6wp>bKSVSeBZ0ojgE7x*Q9o;$4l>AD!TBv;n0z?2VZ_h z-`qOW_r8AEyKwFVvH#RXZI$&XHq@0aI*EO(IV$++k*i;34c;DFOm>aE9O+ftL)Yhb vulP08KTeb`K6q{8=%!txMK@0be|?=zW7=RMaef)Q+j-Q{NUhMfZcFEHB|va9 diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/open.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/open.png deleted file mode 100644 index 861a04e883c7eeabda06bf1ea385218b2c34ff3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&V!2%?m`@?4fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{+S z7I;J!1L+hn=AU--E|4+Z)5S4F<9zLTL%t>hiMEI0yJu7|i1R&MraXJMw)#ZT{6|@j z9*Oeo5?GfYQJ|*c6TqJQ=lAvxrP=qE_$%kV*?8tH7bkDovpqK&71QVVu=Tkx7(Pu2 z+3;`gtV`^Z`wq|F_DHDboX%7JZF}}ENqbyZe9-eF`zHNJzt60ZexGDF&3U3-)bV~| zZQX=7pS0y><%C?hRQ&v9Tph!N@T$#BUq5yMov2#k8c~vxSdwa$T$Bo=7>o=IO>_-R zbqx$dj0~(y%&iQ}wGAw+3=CMEvM!@&$jwj5OsmALp+x>tK2U=%$cEzlw370~qErUY z+{E-$-^BFHlpinIKI- z4Ai8TUz8rXB)%TzlH#&-tK|IL+|;}h1_k%jywoC~CsGuWDiu7F^L_L4^Yk+F6%0{uKbLh*2~7Yx9TzJA diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/up.png b/dzz/system/ueditor/kityformula-plugin/kityformula/assets/theme/default/images/up.png deleted file mode 100644 index 4e4a6d1f9831b280fc99774f19b835ae0ff96c7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmaJ=T}TvB6dp;$Br^(1MQ9q0655%a+1=3{cQe~rbE7d^m)d@HoVo4}>-;oxZCCLr z5t4kdqN2AT0|o2Fel#r%3Zk;7it@!Eis->0BB`M6=&ttAHeBYOdpO^B&bjBi{Y{N~ z3JXdLFbpdUHSl4y+jd@l9{T_IQuG*YB`_F;&3ZdbiYCD7WW5dGAytflFc9UglTUyT z!&X%&ktmD``#4EgNzslWQ>uZ`80M=@8KRT`5N`u9Me`H$_Z|?qBKwI$9>FOX0T5Rj zx=qmB-58O&6OvaZYIowk6o&{@07X2dc4!ut@)L`^9I|aUMc|7eFySYbii!$NctAG+ z?jc|&bsR6z%nTZ4QQUpa_T6r9m;}(5&(d0}m|8R1B!-8g4U+ZF(p46R6Uq7F1)I zRsgo6 z<@8hsXgcVwbMXvc$9jUnDu$tho(z`PrA`%SFoTs>u&r3!RlOjg_<4!eqr#s2Iu~?O&tLxR8Eqb6L3Puq=I`A-$VO*c;z?2GOG!3GsE2 z)LY;Fse*^jb@wZXd~LYbtycDjb1zMfonKgAQa16uvaDuEnWUmcWKU1+c+I=1ZCi4$ zzUtgsITX7a`*m>dftm5KYb`?;b{!kNHSOJWd7^iAq1<$BRs jrDjcgU*e40*OHTmbscRzN6p+Rwcm0m*vQ}5-Fo^Dnsa3k diff --git a/dzz/system/ueditor/kityformula-plugin/kityformula/js/jquery-1.11.0.min.js b/dzz/system/ueditor/kityformula-plugin/kityformula/js/jquery-1.11.0.min.js deleted file mode 100644 index 73f33fb..0000000 --- a/dzz/system/ueditor/kityformula-plugin/kityformula/js/jquery-1.11.0.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="

    ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f -}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
    a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("':'"}var i=this;return{outputRule:function(i){t.each(i.getNodesByTagName("img"),function(t){var r,i;t.getAttr("class")=="edui-faked-webapp"&&(r=n({title:t.getAttr("title"),width:t.getAttr("width"),height:t.getAttr("height"),align:t.getAttr("align"),cssfloat:t.getStyle("float"),url:t.getAttr("_url"),logo:t.getAttr("_logo_url")},!0),i=UE.uNode.createElement(r),t.parentNode.replaceChild(i,t))})},inputRule:function(i){t.each(i.getNodesByTagName("iframe"),function(t){if(t.getAttr("class")=="edui-faked-webapp"){var i=UE.uNode.createElement(n({title:t.getAttr("title"),width:t.getAttr("width"),height:t.getAttr("height"),align:t.getAttr("align"),cssfloat:t.getStyle("float"),url:t.getAttr("src"),logo:t.getAttr("logo_url")}));t.parentNode.replaceChild(i,t)}})},commands:{webapp:{execCommand:function(i,r){var f=this,u=n(t.extend(r,{align:"none"}),!1);f.execCommand("inserthtml",u)},queryCommandState:function(){var i=this,n=i.selection.getRange().getClosedNode(),t=n&&n.className=="edui-faked-webapp";return t?1:0}}}}}),UE.plugins.template=function(){UE.commands.template={execCommand:function(n,t){t.html&&this.execCommand("inserthtml",t.html)}},this.addListener("click",function(t,i){var u=i.target||i.srcElement,f=this.selection.getRange(),r=n.findParent(u,function(t){if(t.className&&n.hasClass(t,"ue_t"))return t},!0);r&&f.selectNode(r).shrinkBoundary().select()}),this.addListener("keydown",function(t,i){var u=this.selection.getRange(),r;u.collapsed||!i.ctrlKey&&!i.metaKey&&!i.shiftKey&&!i.altKey&&(r=n.findParent(u.startContainer,function(t){if(t.className&&n.hasClass(t,"ue_t"))return t},!0),r&&n.removeClasses(r,["ue_t"]))})},UE.plugin.register("music",function(){function n(n,t,r,u,f,e){return e?'':"'}var i=this;return{outputRule:function(i){t.each(i.getNodesByTagName("img"),function(t){var u,f,i,r;t.getAttr("class")=="edui-faked-music"&&(f=t.getStyle("float"),i=t.getAttr("align"),u=n(t.getAttr("_url"),t.getAttr("width"),t.getAttr("height"),i,f,!0),r=UE.uNode.createElement(u),t.parentNode.replaceChild(r,t))})},inputRule:function(i){t.each(i.getNodesByTagName("embed"),function(t){var u,r,i;t.getAttr("class")=="edui-faked-music"&&(u=t.getStyle("float"),r=t.getAttr("align"),html=n(t.getAttr("src"),t.getAttr("width"),t.getAttr("height"),r,u,!1),i=UE.uNode.createElement(html),t.parentNode.replaceChild(i,t))})},commands:{music:{execCommand:function(t,i){var u=this,r=n(i.url,i.width||400,i.height||95,"none",!1);u.execCommand("inserthtml",r)},queryCommandState:function(){var i=this,n=i.selection.getRange().getClosedNode(),t=n&&n.className=="edui-faked-music";return t?1:0}}}}}),UE.plugin.register("autoupload",function(){function u(i,r){var u=r,p,a,w,l,y,v,o,c,f=/image\/\w+/i.test(i.type)?"image":"file",e="loading_"+(+new Date).toString(36),b;p=u.getOpt(f+"FieldName"),a=u.getOpt(f+"UrlPrefix"),w=u.getOpt(f+"MaxSize"),l=u.getOpt(f+"AllowFiles"),y=u.getActionUrl(u.getOpt(f+"ActionName")),o=function(t){var i=u.document.getElementById(e);i&&n.remove(i),u.fireEvent("showmessage",{id:e,content:t,type:"error",timeout:4e3})},f=="image"?(v='',c=function(t){var r=a+t.url,i=u.document.getElementById(e);i&&(i.setAttribute("src",r),i.setAttribute("_src",r),i.setAttribute("title",t.title||""),i.setAttribute("alt",t.original||""),i.setAttribute("class","dzz-image"),i.setAttribute("path","attach::"+t.attach.aid),i.setAttribute("apath",t.attach.apath),i.setAttribute("aid",t.attach.aid),i.setAttribute("ext",t.attach.filetype),i.setAttribute("dsize",t.attach.filesize),i.removeAttribute("id"),n.removeClasses(i,"loadingclass"))}):(v='

    ',c=function(n){var r=a+n.url,f=u.document.getElementById(e),t=u.selection.getRange(),i=t.createBookmark();t.selectNode(f).select(),u.execCommand("insertfile",{url:r,attach:n.attach}),t.moveToBookmark(i).select()}),u.execCommand("inserthtml",v);if(!u.getOpt(f+"ActionName")){o(u.getLang("autoupload.errorLoadConfig"));return}if(i.size>w){o(u.getLang("autoupload.exceedSizeError"));return}b=i.name?i.name.substr(i.name.lastIndexOf(".")):"";if(l&&(l.join("")+".").indexOf(b.toLowerCase()+".")==-1){o(u.getLang("autoupload.exceedTypeError"));return}var s=new XMLHttpRequest,h=new FormData,d=t.serializeParam(u.queryCommandValue("serverparam"))||"",k=t.formatUrl(y+(y.indexOf("?")==-1?"?":"&")+d);h.append(p,i,i.name||"blob."+i.type.substr("image/".length)),h.append("type","ajax"),s.open("post",k,!0),s.setRequestHeader("X-Requested-With","XMLHttpRequest"),s.addEventListener("load",function(n){try{var i=new Function("return "+t.trim(n.target.response))();i.state=="SUCCESS"&&i.url?c(i):o(i.state)}catch(r){o(u.getLang("autoupload.loadError"))}}),s.send(h)}function r(n){return n.clipboardData&&n.clipboardData.items&&n.clipboardData.items.length==1&&/^image\//.test(n.clipboardData.items[0].type)?n.clipboardData.items:null}function i(n){return n.dataTransfer&&n.dataTransfer.files?n.dataTransfer.files:null}return{outputRule:function(n){t.each(n.getNodesByTagName("img"),function(n){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr("class"))&&n.parentNode.removeChild(n)}),t.each(n.getNodesByTagName("p"),function(n){/\bloadpara\b/.test(n.getAttr("class"))&&n.parentNode.removeChild(n)})},bindEvents:{ready:function(){var e=this;if(window.FormData&&window.FileReader){n.on(e.body,"paste drop",function(n){var s=!1,f,o,t;f=n.type=="paste"?r(n):i(n);if(f){o=f.length;while(o--)t=f[o],t.getAsFile&&(t=t.getAsFile()),t&&t.size>0&&(u(t,e),s=!0);s&&n.preventDefault()}});n.on(e.body,"dragover",function(n){n.dataTransfer.types[0]=="Files"&&n.preventDefault()});t.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 r(n){var r;if(new Date-u0?t._saveFlag=window.setTimeout(function(){r(t)},t.options.saveInterval):r(t)}},commands:{clearlocaldata:{execCommand:function(){i&&t.getPreferences(i)&&t.removePreferences(i)},notNeedUndo:!0,ignoreContentChange:!0},getlocaldata:{execCommand:function(){return i?t.getPreferences(i)||"":""},notNeedUndo:!0,ignoreContentChange:!0},drafts:{execCommand:function(){i&&(t.body.innerHTML=t.getPreferences(i)||"

    "+n.fillHtml+"

    ",t.focus(!0))},queryCommandState:function(){return i?t.getPreferences(i)===null?-1:0:-1},notNeedUndo:!0,ignoreContentChange:!0}}}}),UE.plugin.register("charts",function(){function i(n){var o=null,s=0,i,u,e,r,f;if(n.rows.length<2)return!1;if(n.rows[0].cells.length<2)return!1;for(o=n.rows[0].cells,s=o.length,i=0;r=o[i];i++)if(r.tagName.toLowerCase()!=="th")return!1;for(i=1;u=n.rows[i];i++){if(u.cells.length!=s)return!1;if(u.cells[0].tagName.toLowerCase()!=="th")return!1;for(e=1;r=u.cells[e];e++){f=t.trim(r.innerText||r.textContent||""),f=f.replace(new RegExp(UE.dom.domUtils.fillChar,"g"),"").replace(/^\s+|\s+$/g,"");if(!/^\d*\.?\d+$/.test(f))return!1}}return!0}var r=this;return{bindEvents:{chartserror:function(){}},commands:{charts:{execCommand:function(t,u){var o=n.findParentByTagName(this.selection.getRange().startContainer,"table",!0),s=[],f={},e;if(!o)return!1;if(!i(o))return r.fireEvent("chartserror"),!1;f.title=u.title||"",f.subTitle=u.subTitle||"",f.xTitle=u.xTitle||"",f.yTitle=u.yTitle||"",f.suffix=u.suffix||"",f.tip=u.tip||"",f.dataFormat=u.tableDataFormat||"",f.chartType=u.chartType||0;for(e in f){if(!f.hasOwnProperty(e))continue;s.push(e+":"+f[e])}o.setAttribute("data-chart",s.join(";")),n.addClass(o,"edui-charts-table")},queryCommandState:function(){var u=n.findParentByTagName(this.selection.getRange().startContainer,"table",!0);return u&&i(u)?0:-1}}},inputRule:function(n){t.each(n.getNodesByTagName("table"),function(n){n.getAttr("data-chart")!==undefined&&n.setAttr("style")})},outputRule:function(n){t.each(n.getNodesByTagName("table"),function(n){n.getAttr("data-chart")!==undefined&&n.setAttr("style","display: none;")})}}}),UE.plugin.register("section",function(){function f(){this.tag="",this.level=-1,this.dom=null,this.nextSection=null,this.previousSection=null,this.parentSection=null,this.startAddress=[],this.endAddress=[],this.children=[]}function u(n){var i=new f;return t.extend(i,n)}function r(n,t){for(var r=t,i=0;i=0){y=h.selection.getRange().selectNode(r).createAddress(!0).startAddress,o=u({tag:r.tagName,title:r.innerText||r.textContent||"",level:v,dom:r,startAddress:t.clone(y,[]),endAddress:t.clone(y,[]),children:[]}),e.nextSection=o,o.previousSection=e,f=e;while(v<=f.level)f=f.parentSection;o.parentSection=f,f.children.push(o),a=e=o}else r.nodeType===1&&s(r,i),a&&a.endAddress[a.endAddress.length-1]++}}for(var f=i||["h1","h2","h3","h4","h5","h6"],r=0;r=i.length)break;if(i[r]>n[r]){u=!0;break}else if(i[r]=i.length)break;if(i[r]n[r])break}return u&&f}var c=this,l,o,a,s,e,h;if(!i||!u||u.level==-1)return;l=f?u.endAddress:u.startAddress,o=r(l,c.body);if(!l||!o||v(i.startAddress,i.endAddress,l))return;a=r(i.startAddress,c.body),s=r(i.endAddress,c.body);if(f){e=s;while(e&&!(n.getPosition(a,e)&n.POSITION_FOLLOWING)){h=e.previousSibling,n.insertAfter(o,e);if(e==a)break;e=h}}else{e=a;while(e&&!(n.getPosition(e,s)&n.POSITION_FOLLOWING)){h=e.nextSibling,o.parentNode.insertBefore(e,o);if(e==s)break;e=h}}c.fireEvent("updateSections")}},deletesection:{execCommand:function(t,i,r){function s(n){for(var i=f.body,t=0;t',a.className="edui-"+i.options.theme,a.id=i.ui.id+"_iframeupload",r.style.cssText=e,r.style.width=o+"px",r.style.height=s+"px",r.appendChild(a),r.parentNode&&(r.parentNode.style.width=o+"px",r.parentNode.style.height=o+"px");var y=c.getElementById("edui_form_"+h),l=c.getElementById("edui_input_"+h),v=c.getElementById("edui_iframe_"+h);n.on(l,"change",function(){function h(){try{var e,f,t,o=(v.contentDocument||v.contentWindow.document).body,s=o.innerText||o.textContent||"";f=new Function("return "+s)(),e=i.options.imageUrlPrefix+f.url,f.state=="SUCCESS"&&f.url?(t=i.document.getElementById(u),t.setAttribute("src",e),t.setAttribute("_src",e),t.setAttribute("title",f.title||""),t.setAttribute("alt",f.original||""),t.setAttribute("class","dzz-image"),t.setAttribute("path","attach::"+f.attach.aid),t.setAttribute("apath",f.attach.apath),t.setAttribute("aid",f.attach.aid),t.setAttribute("ext",f.attach.filetype),t.setAttribute("dsize",f.attach.filesize),t.removeAttribute("id"),n.removeClasses(t,"loadingclass")):r&&r(f.state)}catch(c){r&&r(i.getLang("simpleupload.loadError"))}y.reset(),n.un(v,"load",h)}function r(t){if(u){var r=i.document.getElementById(u);r&&n.remove(r),i.fireEvent("showmessage",{id:u,content:t,type:"error",timeout:4e3})}}var f,e;if(!l.value)return;var u="loading_"+(+new Date).toString(36),c=t.serializeParam(i.queryCommandValue("serverparam"))||"",s=i.getActionUrl(i.getOpt("imageActionName")),o=i.getOpt("imageAllowFiles");i.focus(),i.execCommand("inserthtml",'');if(!i.getOpt("imageActionName")){errorHandler(i.getLang("autoupload.errorLoadConfig"));return}f=l.value,e=f?f.substr(f.lastIndexOf(".")):"";if(!e||o&&(o.join("")+".").indexOf(e.toLowerCase()+".")==-1){r(i.getLang("simpleupload.exceedTypeError"));return}n.on(v,"load",h);y.action=t.formatUrl(s+(s.indexOf("?")==-1?"?":"&")+c),y.submit()});i.addListener("selectionchange",function(){clearTimeout(p),p=setTimeout(function(){var n=i.queryCommandState("simpleupload");l.disabled=n==-1?"disabled":!1},400)}),u=!0});f.style.cssText=e,r.appendChild(f)}var i=this,u=!1,r;return{bindEvents:{ready:function(){t.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(n,t){r=t,i.afterConfigReady(f)}},outputRule:function(n){t.each(n.getNodesByTagName("img"),function(n){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr("class"))&&n.parentNode.removeChild(n)})},commands:{simpleupload:{queryCommandState:function(){return u?0:-1}}}}}),UE.plugin.register("serverparam",function(){var i=this,n={};return{commands:{serverparam:{execCommand:function(i,r,u){r===undefined||r===null?n={}:t.isString(r)?u===undefined||u===null?delete n[r]:n[r]=u:t.isObject(r)?t.extend(n,r,!0):t.isFunction(r)&&t.extend(n,r(),!0)},queryCommandValue:function(){return n||{}}}}}}),UE.plugin.register("insertfile",function(){function i(n){var i=n.substr(n.lastIndexOf(".")+1).toLowerCase(),t={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 t[i]?t[i]:t.txt}var n=this;return{commands:{insertfile:{execCommand:function(r,u){u=t.isArray(u)?u:[u];for(var f,o,e,c="",h=n.getOpt("UEDITOR_HOME_URL"),l=h+(h.substr(h.length-1)=="/"?"":"/")+"dialogs/attachment/fileTypeImages/",s=0;s0?''+e+"":'

    '+e+"

    ";n.execCommand("insertHtml",c)}}}}}),u=u||{},u.editor=u.editor||{},UE.ui=u.editor.ui={},(function(){function f(){var n=document.getElementById("edui_fixedlayer");t.setViewportOffset(n,{left:0,top:0})}function h(){i.on(window,"scroll",f);i.on(window,"resize",u.editor.utils.defer(f,0,!0))}var n=u.editor.browser,i=u.editor.dom.domUtils,r="$EDITORUI",o=window[r]={},s="ID"+r,e=0,t=u.editor.ui.uiUtils={uid:function(n){return n?n[s]||(n[s]=++e):++e},hook:function(n,t){var i;return n&&n._callbacks?i=n:(i=function(){var t,u,r,f;n&&(t=n.apply(this,arguments)),u=i._callbacks,r=u.length;while(r--)f=u[r].apply(this,arguments),t===undefined&&(t=f);return t},i._callbacks=[]),i._callbacks.push(t),i},createElementByHtml:function(n){var t=document.createElement("div");return t.innerHTML=n,t=t.firstChild,t.parentNode.removeChild(t),t},getViewportElement:function(){return n.ie&&n.quirks?document.body:document.documentElement},getClientRect:function(n){var t,r,u;try{t=n.getBoundingClientRect()}catch(f){t={left:0,top:0,height:0,width:0}}r={left:Math.round(t.left),top:Math.round(t.top),height:Math.round(t.bottom-t.top),width:Math.round(t.right-t.left)};while((u=n.ownerDocument)!==document&&(n=i.getWindow(u).frameElement))t=n.getBoundingClientRect(),r.left+=t.left,r.top+=t.top;return r.bottom=r.top+r.height,r.right=r.left+r.width,r},getViewportRect:function(){var r=t.getViewportElement(),i=(window.innerWidth||r.clientWidth)|0,n=(window.innerHeight||r.clientHeight)|0;return{left:0,top:0,height:n,width:i,bottom:n,right:i}},setViewportOffset:function(n,r){var f,u=t.getFixedLayer();n.parentNode===u?(n.style.left=r.left+"px",n.style.top=r.top+"px"):i.setViewportOffset(n,r)},getEventOffset:function(n){var u=n.target||n.srcElement,i=t.getClientRect(u),r=t.getViewportOffsetByEvent(n);return{left:r.left-i.left,top:r.top-i.top}},getViewportOffsetByEvent:function(n){var e=n.target||n.srcElement,f=i.getWindow(e).frameElement,r={left:n.clientX,top:n.clientY},u;return f&&e.ownerDocument!==document&&(u=t.getClientRect(f),r.left+=u.left,r.top+=u.top),r},setGlobal:function(n,t){return o[n]=t,r+'["'+n+'"]'},unsetGlobal:function(n){delete o[n]},copyAttributes:function(t,r){var f=r.attributes,e=f.length,u;while(e--)u=f[e],u.nodeName!="style"&&u.nodeName!="class"&&(!n.ie||u.specified)&&t.setAttribute(u.nodeName,u.nodeValue);r.className&&i.addClass(t,r.className),r.style.cssText&&(t.style.cssText+=";"+r.style.cssText)},removeStyle:function(n,t){if(n.style.removeProperty)n.style.removeProperty(t);else if(n.style.removeAttribute)n.style.removeAttribute(t);else throw"";},contains:function(n,t){return n&&t&&(n===t?!1:n.contains?n.contains(t):n.compareDocumentPosition(t)&16)},startDrag:function(n,t,i){function f(n){var r=n.clientX-s,i=n.clientY-o;t.ondragmove(r,i,n);n.stopPropagation?n.stopPropagation():n.cancelBubble=!0}var i=i||document,s=n.clientX,o=n.clientY,r;if(i.addEventListener){function u(){i.removeEventListener("mousemove",f,!0),i.removeEventListener("mouseup",u,!0),window.removeEventListener("mouseup",u,!0),t.ondragstop()}i.addEventListener("mousemove",f,!0),i.addEventListener("mouseup",u,!0),window.addEventListener("mouseup",u,!0),n.preventDefault()}else{r=n.srcElement,r.setCapture();function e(){r.releaseCapture(),r.detachEvent("onmousemove",f),r.detachEvent("onmouseup",e),r.detachEvent("onlosecaptrue",e),t.ondragstop()}r.attachEvent("onmousemove",f),r.attachEvent("onmouseup",e),r.attachEvent("onlosecaptrue",e),n.returnValue=!1}t.ondragstart()},getFixedLayer:function(){var t=document.getElementById("edui_fixedlayer");return t==null&&(t=document.createElement("div"),t.id="edui_fixedlayer",document.body.appendChild(t),n.ie&&n.version<=8?(t.style.position="absolute",h(),setTimeout(f)):t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.width="0",t.style.height="0"),t},makeUnselectable:function(i){if(n.opera||n.ie&&n.version<9){i.unselectable="on";if(i.hasChildNodes())for(var r=0;r'}},t.inherits(n,i)})(),(function(){var i=u.editor.utils,r=u.editor.dom.domUtils,f=u.editor.ui.UIBase,t=u.editor.ui.uiUtils,n=u.editor.ui.Mask=function(n){this.initOptions(n),this.initUIBase()};n.prototype={getHtmlTpl:function(){return'
    '},postRender:function(){var n=this;r.on(window,"resize",function(){setTimeout(function(){n.isHidden()||n._fill()})})},show:function(n){this._fill(),this.getDom().style.display="",this.getDom().style.zIndex=n},hide:function(){this.getDom().style.display="none",this.getDom().style.zIndex=""},isHidden:function(){return this.getDom().style.display=="none"},_onMouseDown:function(){return!1},_onClick:function(n,t){this.fireEvent("click",n,t)},_fill:function(){var i=this.getDom(),n=t.getViewportRect();i.style.width=n.width+"px",i.style.height=n.height+"px"}},i.inherits(n,f)})(),(function(){function r(n,t){for(var r,u=0;u
    '+this.getContentHtmlTpl()+"
    "},getContentHtmlTpl:function(){return this.content?typeof this.content=="string"?this.content:this.content.renderHtml():""},_UIBase_postRender:e.prototype.postRender,postRender:function(){this.content instanceof e&&this.content.postRender();if(this.captureWheel&&!this.captured){this.captured=!0;var o=(document.documentElement.clientHeight||document.body.clientHeight)-80,u=this.getDom().offsetHeight,s=n.getClientRect(this.combox.getDom()).top,r=this.getDom("content"),i=this.getDom("body").getElementsByTagName("iframe"),f=this;i.length&&(i=i[0]);while(s+u>o)u-=30;r.style.height=u+"px",i&&(i.style.height=u+"px");if(window.XMLHttpRequest)t.on(r,"onmousewheel"in document.body?"mousewheel":"DOMMouseScroll",function(n){n.preventDefault?n.preventDefault():n.returnValue=!1,r.scrollTop-=n.wheelDelta?n.wheelDelta/2:n.detail*-20});else t.on(this.getDom(),"mousewheel",function(n){n.returnValue=!1,f.getDom("content").scrollTop-=n.wheelDelta/2})}this.fireEvent("postRenderAfter"),this.hide(!0),this._UIBase_postRender()},_doAutoRender:function(){!this.getDom()&&this.autoRender&&this.render()},mesureSize:function(){var t=this.getDom("content");return n.getClientRect(t)},fitSize:function(){var t,n,i;return this.captureWheel&&this.sized?this.__size:(this.sized=!0,t=this.getDom("body"),t.style.width="",t.style.height="",n=this.mesureSize(),this.captureWheel?(t.style.width=-(-20-n.width)+"px",i=parseInt(this.getDom("content").style.height,10),!window.isNaN(i)&&(n.height=i)):t.style.width=n.width+"px",t.style.height=n.height+"px",this.__size=n,this.captureWheel&&(this.getDom("content").style.overflow="auto"),n)},showAnchor:function(t,i){this.showAnchorRect(n.getClientRect(t),i)},showAnchorRect:function(i,r){var h,e,l,c,a,v,s;this._doAutoRender(),h=n.getViewportRect(),this.getDom().style.visibility="hidden",this._show(),e=this.fitSize(),r?(l=this.canSideLeft&&i.right+e.width>h.right&&i.left>e.width,c=this.canSideUp&&i.top+e.height>h.bottom&&i.bottom>e.height,a=l?i.left-e.width:i.right,v=c?i.bottom-e.height:i.top):(l=this.canSideLeft&&i.right+e.width>h.right&&i.left>e.width,c=this.canSideUp&&i.top+e.height>h.bottom&&i.bottom>e.height,a=l?i.right-e.width:i.left,v=c?i.top-e.height:i.bottom),s=this.getDom(),n.setViewportOffset(s,{left:a,top:v}),t.removeClasses(s,o),s.className+=" "+o[(c?1:0)*2+(l?1:0)],this.editor&&(s.style.zIndex=this.editor.container.style.zIndex*1+10,u.editor.ui.uiUtils.getFixedLayer().style.zIndex=s.style.zIndex-1),this.getDom().style.visibility="visible"},showAt:function(n){var i=n.left,t=n.top,r={left:i,top:t,right:i,bottom:t,height:0,width:0};this.showAnchorRect(r,!1,!0)},_show:function(){if(this._hidden){var n=this.getDom();n.style.display="",this._hidden=!1,this.fireEvent("show")}},isHidden:function(){return this._hidden},show:function(){this._doAutoRender(),this._show()},hide:function(n){!this._hidden&&this.getDom()&&(this.getDom().style.display="none",this._hidden=!0,n||this.fireEvent("hide"))},queryAutoHide:function(t){return!t||!n.contains(this.getDom(),t)}},s.inherits(f,e);t.on(document,"mousedown",function(n){var t=n.target||n.srcElement;r(n,t)});t.on(window,"scroll",function(n,t){r(n,t)})})(),(function(){function i(t,i){for(var u='
    '+t+'
    ',r=0;r"+(r==60?'":"")+""),u+=r<70?'':"";return u+="
    '+i.getLang("themeColor")+'
    '+i.getLang("standardColor")+"
    =60?"border-width:1px;":r>=10&&r<20?"border-width:1px 1px 0 1px;":"border-width:0 1px 0 1px;")+'">
    "}var f=u.editor.utils,r=u.editor.ui.UIBase,t=u.editor.ui.ColorPicker=function(n){this.initOptions(n),this.noColorText=this.noColorText||this.editor.getLang("clearColor"),this.initUIBase()},n;t.prototype={getHtmlTpl:function(){return i(this.noColorText,this.editor)},_onTableClick:function(n){var i=n.target||n.srcElement,t=i.getAttribute("data-color");t&&this.fireEvent("pickcolor",t)},_onTableOver:function(n){var i=n.target||n.srcElement,t=i.getAttribute("data-color");t&&(this.getDom("preview").style.backgroundColor=t)},_onTableOut:function(){this.getDom("preview").style.backgroundColor=""},_onPickNoColor:function(){this.fireEvent("picknocolor")}},f.inherits(t,r),n="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 r=u.editor.utils,n=u.editor.ui.uiUtils,t=u.editor.ui.UIBase,i=u.editor.ui.TablePicker=function(n){this.initOptions(n),this.initTablePicker()};i.prototype={defaultNumRows:10,defaultNumCols:10,maxNumRows:20,maxNumCols:20,numRows:10,numCols:10,lengthOfCellSide:22,initTablePicker:function(){this.initUIBase()},getHtmlTpl:function(){var n=this;return'
    '},_UIBase_render:t.prototype.render,render:function(n){this._UIBase_render(n),this.getDom("label").innerHTML="0"+this.editor.getLang("t_row")+" x 0"+this.editor.getLang("t_col")},_track:function(n,t){var u=this.getDom("overlay").style,r=this.lengthOfCellSide,i;u.width=n*r+"px",u.height=t*r+"px",i=this.getDom("label"),i.innerHTML=n+this.editor.getLang("t_col")+" x "+t+this.editor.getLang("t_row"),this.numCols=n,this.numRows=t},_onMouseOver:function(t,i){var r=t.relatedTarget||t.fromElement;!n.contains(i,r)&&i!==r&&(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="")},_onMouseOut:function(t,i){var r=t.relatedTarget||t.toElement;!n.contains(i,r)&&i!==r&&(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(t){var o=this.getDom("overlay").style,u=n.getEventOffset(t),r=this.lengthOfCellSide,e=Math.ceil(u.left/r),f=Math.ceil(u.top/r);this._track(e,f)},_onClick:function(){this.fireEvent("picktable",this.numCols,this.numRows)}},r.inherits(i,t)})(),(function(){var r=u.editor.browser,t=u.editor.dom.domUtils,n=u.editor.ui.uiUtils,i='onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"'+(r.ie?' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"':' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"');u.editor.ui.Stateful={alwalysHoverable:!1,target:null,Stateful_init:function(){this._Stateful_dGetHtmlTpl=this.getHtmlTpl,this.getHtmlTpl=this.Stateful_getHtmlTpl},Stateful_getHtmlTpl:function(){var n=this._Stateful_dGetHtmlTpl();return n.replace(/stateful/g,function(){return i})},Stateful_onMouseEnter:function(n,t){this.target=t,(!this.isDisabled()||this.alwalysHoverable)&&(this.addState("hover"),this.fireEvent("over"))},Stateful_onMouseLeave:function(){(!this.isDisabled()||this.alwalysHoverable)&&(this.removeState("hover"),this.removeState("active"),this.fireEvent("out"))},Stateful_onMouseOver:function(t,i){var r=t.relatedTarget;!n.contains(i,r)&&i!==r&&this.Stateful_onMouseEnter(t,i)},Stateful_onMouseOut:function(t,i){var r=t.relatedTarget;!n.contains(i,r)&&i!==r&&this.Stateful_onMouseLeave(t,i)},Stateful_onMouseDown:function(){this.isDisabled()||this.addState("active")},Stateful_onMouseUp:function(){this.isDisabled()||this.removeState("active")},Stateful_postRender:function(){this.disabled&&!this.hasState("disabled")&&this.addState("disabled")},hasState:function(n){return t.hasClass(this.getStateDom(),"edui-state-"+n)},addState:function(n){this.hasState(n)||(this.getStateDom().className+=" edui-state-"+n)},removeState:function(n){this.hasState(n)&&t.removeClasses(this.getStateDom(),["edui-state-"+n])},getStateDom:function(){return this.getDom("state")},isChecked:function(){return this.hasState("checked")},setChecked:function(n){!this.isDisabled()&&n?this.addState("checked"):this.removeState("checked")},isDisabled:function(){return this.hasState("disabled")},setDisabled:function(n){n?(this.removeState("hover"),this.removeState("checked"),this.removeState("active"),this.addState("disabled")):this.removeState("disabled")}}})(),(function(){var t=u.editor.utils,i=u.editor.ui.UIBase,r=u.editor.ui.Stateful,n=u.editor.ui.Button=function(n){if(n.name){var t=n.name,i=n.cssRules;n.className||(n.className="edui-for-"+t),n.cssRules=".edui-default .edui-for-"+t+" .edui-icon {"+i+"}"}this.initOptions(n),this.initButton()};n.prototype={uiName:"button",label:"",title:"",showIcon:!0,showText:!0,cssRules:"",initButton:function(){this.initUIBase(),this.Stateful_init(),this.cssRules&&t.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(n){var i=n.target||n.srcElement,t=i&&i.tagName&&i.tagName.toLowerCase();if(t=="input"||t=="object"||t=="object")return!1},_onClick:function(){this.isDisabled()||this.fireEvent("click")},setTitle:function(n){var t=this.getDom("label");t.innerHTML=n}},t.inherits(n,i),t.extend(n.prototype,r)})(),(function(){var n=u.editor.utils,i=u.editor.ui.uiUtils,e=u.editor.dom.domUtils,r=u.editor.ui.UIBase,f=u.editor.ui.Stateful,t=u.editor.ui.SplitButton=function(n){this.initOptions(n),this.initSplitButton()};t.prototype={popup:null,uiName:"splitbutton",title:"",initSplitButton:function(){var t,n;this.initUIBase(),this.Stateful_init(),t=this,this.popup!=null&&(n=this.popup,this.popup=null,this.setPopup(n))},_UIBase_postRender:r.prototype.postRender,postRender:function(){this.Stateful_postRender(),this._UIBase_postRender()},setPopup:function(t){if(this.popup===t)return;this.popup!=null&&this.popup.dispose(),t.addListener("show",n.bind(this._onPopupShow,this)),t.addListener("hide",n.bind(this._onPopupHide,this)),t.addListener("postrender",n.bind(function(){t.getDom("body").appendChild(i.createElementByHtml('
    ')),t.getDom().className+=" "+this.className},this)),this.popup=t},_onPopupShow:function(){this.addState("opened")},_onPopupHide:function(){this.removeState("opened")},getHtmlTpl:function(){return'
    '},showPopup:function(){var n=i.getClientRect(this.getDom());n.top-=this.popup.SHADOW_RADIUS,n.height+=this.popup.SHADOW_RADIUS,this.popup.showAnchorRect(n)},_onArrowClick:function(){this.isDisabled()||this.showPopup()},_onButtonClick:function(){this.isDisabled()||this.fireEvent("buttonclick")}},n.inherits(t,r),n.extend(t.prototype,f,!0)})(),(function(){var i=u.editor.utils,f=u.editor.ui.uiUtils,e=u.editor.ui.ColorPicker,r=u.editor.ui.Popup,n=u.editor.ui.SplitButton,t=u.editor.ui.ColorButton=function(n){this.initOptions(n),this.initColorButton()};t.prototype={initColorButton:function(){var n=this;this.popup=new r({content:new e({noColorText:n.editor.getLang("clearColor"),editor:n.editor,onpickcolor:function(t,i){n._onPickColor(i)},onpicknocolor:function(t,i){n._onPickNoColor(i)}}),editor:n.editor}),this.initSplitButton()},_SplitButton_postRender:n.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.getDom("button_body").appendChild(f.createElementByHtml('
    ')),this.getDom().className+=" edui-colorbutton"},setColor:function(n){this.getDom("colorlump").style.backgroundColor=n,this.color=n},_onPickColor:function(n){this.fireEvent("pickcolor",n)!==!1&&(this.setColor(n),this.popup.hide())},_onPickNoColor:function(){this.fireEvent("picknocolor")!==!1&&this.popup.hide()}},i.inherits(t,n)})(),(function(){var i=u.editor.utils,r=u.editor.ui.Popup,f=u.editor.ui.TablePicker,t=u.editor.ui.SplitButton,n=u.editor.ui.TableButton=function(n){this.initOptions(n),this.initTableButton()};n.prototype={initTableButton:function(){var n=this;this.popup=new r({content:new f({editor:n.editor,onpicktable:function(t,i,r){n._onPickTable(i,r)}}),editor:n.editor}),this.initSplitButton()},_onPickTable:function(n,t){this.fireEvent("picktable",n,t)!==!1&&this.popup.hide()}},i.inherits(n,t)})(),(function(){var i=u.editor.utils,t=u.editor.ui.UIBase,n=u.editor.ui.AutoTypeSetPicker=function(n){this.initOptions(n),this.initAutoTypeSetPicker()};n.prototype={initAutoTypeSetPicker:function(){this.initUIBase()},getHtmlTpl:function(){var i=this.editor,n=i.options.autotypeset,t=i.getLang("autoTypeSet"),u="textAlignValue"+i.uid,r="imageBlockLineValue"+i.uid,f="symbolConverValue"+i.uid;return'
    "+t.mergeLine+'"+t.delLine+'
    "+t.removeFormat+'"+t.indent+'
    "+t.alignment+'"+i.getLang("justifyleft")+'"+i.getLang("justifycenter")+'"+i.getLang("justifyright")+'
    "+t.imageFloat+'"+i.getLang("default")+'"+i.getLang("justifyleft")+'"+i.getLang("justifycenter")+'"+i.getLang("justifyright")+'
    "+t.removeFontsize+'"+t.removeFontFamily+'
    "+t.removeHtml+'
    "+t.pasteFilter+'
    "+t.symbol+'"+t.bdc2sb+'"+t.tobdc+'
    "},_UIBase_render:t.prototype.render},i.inherits(n,t)})(),(function(){function t(t){for(var i={},p=t.getDom(),b=t.editor.uid,y=null,u=null,v=n.getElementsByTagName(p,"input"),f,e,l,w,h,a,c,s,o=v.length-1;f=v[o--];){y=f.getAttribute("type");if(y=="checkbox"){u=f.getAttribute("name"),i[u]&&delete i[u];if(f.checked){e=document.getElementById(u+"Value"+b);if(e){if(/input/ig.test(e.tagName))i[u]=e.value;else for(l=e.getElementsByTagName("input"),w=l.length-1;h=l[w--];)if(h.checked){i[u]=h.value;break}}else i[u]=!0}else i[u]=!1}else i[f.getAttribute("value")]=f.checked}for(a=n.getElementsByTagName(p,"select"),o=0;c=a[o++];)s=c.getAttribute("name"),i[s]=i[s]?c.value:"";r.extend(t.editor.options.autotypeset,i),t.editor.setPreferences("autotypeset",i)}var r=u.editor.utils,e=u.editor.ui.Popup,f=u.editor.ui.AutoTypeSetPicker,o=u.editor.ui.SplitButton,i=u.editor.ui.AutoTypeSetButton=function(n){this.initOptions(n),this.initAutoTypeSetButton()};i.prototype={initAutoTypeSetButton:function(){var i=this,r;this.popup=new e({content:new f({editor:i.editor}),editor:i.editor,hide:function(){!this._hidden&&this.getDom()&&(t(this),this.getDom().style.display="none",this._hidden=!0,this.fireEvent("hide"))}}),r=0,this.popup.addListener("postRenderAfter",function(){var f=this,u,e;if(r)return;u=this.getDom(),e=u.getElementsByTagName("button")[0],e.onclick=function(){t(f),i.editor.execCommand("autotypeset"),f.hide()};n.on(u,"click",function(n){var r=n.target||n.srcElement,s=i.editor.uid,u,o;if(r&&r.tagName=="INPUT"){if(r.name=="imageBlockLine"||r.name=="textAlign"||r.name=="symbolConver"){var c=r.checked,h=document.getElementById(r.name+"Value"+s),e=h.getElementsByTagName("input"),l={imageBlockLine:"none",textAlign:"left",symbolConver:"tobdc"};for(u=0;u"),i.push('
    '),t===2&&i.push("");return'
    '+i.join("")+"
    "},getStateDom:function(){return this.target},_onClick:function(n){var t=n.target||n.srcElement;/icon/.test(t.className)&&(this.items[t.parentNode.getAttribute("index")].onclick(),f.postHide(n))},_UIBase_render:t.prototype.render},i.inherits(n,t),i.extend(n.prototype,r,!0)})(),(function(){var r=u.editor.utils,e=u.editor.ui.Stateful,f=u.editor.ui.uiUtils,i=u.editor.ui.UIBase,t=u.editor.ui.PastePicker=function(n){this.initOptions(n),this.initPastePicker()};t.prototype={initPastePicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){return'
    '+this.editor.getLang("pasteOpt")+'
    '},getStateDom:function(){return this.target},format:function(n){this.editor.ui._isTransfer=!0,this.editor.fireEvent("pasteTransfer",n)},_onClick:function(t){var i=n.getNextDomNode(t),u=f.getViewportRect().height,r=f.getClientRect(i);i.style.top=r.top+r.height>u?-r.height-t.offsetHeight+"px":"",/hidden/ig.test(n.getComputedStyle(i,"visibility"))?(i.style.visibility="visible",n.addClass(t,"edui-state-opened")):(i.style.visibility="hidden",n.removeClasses(t,"edui-state-opened"))},_UIBase_render:i.prototype.render},r.inherits(t,i),r.extend(t.prototype,e,!0)})(),(function(){var t=u.editor.utils,r=u.editor.ui.uiUtils,i=u.editor.ui.UIBase,n=u.editor.ui.Toolbar=function(n){this.initOptions(n),this.initToolbar()};n.prototype={items:null,initToolbar:function(){this.items=this.items||[],this.initUIBase()},add:function(n,t){t===undefined?this.items.push(n):this.items.splice(t,0,n)},getHtmlTpl:function(){for(var t=[],n=0;n'+t.join("")+""},postRender:function(){for(var t=this.getDom(),n=0;n
    '},postRender:function(){},queryAutoHide:function(){return!0}},n;f.prototype={items:null,uiName:"menu",initMenu:function(){this.items=this.items||[],this.initPopup(),this.initItems()},initItems:function(){for(var t,i=0;i'+t.join("")+""},_Popup_postRender:t.prototype.postRender,postRender:function(){for(var u=this,t,n=0;n
    '+this.renderLabelHtml()+"
    "},postRender:function(){var n=this;this.addListener("over",function(){n.ownerMenu.fireEvent("submenuover",n),n.subMenu&&n.delayShowSubMenu()}),this.subMenu&&(this.getDom().className+=" edui-hassubmenu",this.subMenu.render(),this.addListener("out",function(){n.delayHideSubMenu()}),this.subMenu.addListener("over",function(){clearTimeout(n._closingTimer),n._closingTimer=null,n.addState("opened")}),this.ownerMenu.addListener("hide",function(){n.hideSubMenu()}),this.ownerMenu.addListener("submenuover",function(t,i){i!==n&&n.delayHideSubMenu()}),this.subMenu._bakQueryAutoHide=this.subMenu.queryAutoHide,this.subMenu.queryAutoHide=function(t){return t&&i.contains(n.getDom(),t)?!1:this._bakQueryAutoHide(t)}),this.getDom().style.tabIndex="-1",i.makeUnselectable(this.getDom()),this.Stateful_postRender()},delayShowSubMenu:function(){var n=this;n.isDisabled()||(n.addState("opened"),clearTimeout(n._showingTimer),clearTimeout(n._closingTimer),n._closingTimer=null,n._showingTimer=setTimeout(function(){n.showSubMenu()},250))},delayHideSubMenu:function(){var n=this;n.isDisabled()||(n.removeState("opened"),clearTimeout(n._showingTimer),n._closingTimer||(n._closingTimer=setTimeout(function(){n.hasState("opened")||n.hideSubMenu(),n._closingTimer=null},400)))},renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "},getStateDom:function(){return this.getDom()},queryAutoHide:function(n){if(this.subMenu&&this.hasState("opened"))return this.subMenu.queryAutoHide(n)},_onClick:function(n,i){if(this.hasState("disabled"))return;this.fireEvent("click",n,i)!==!1&&(this.subMenu?this.showSubMenu():t.postHide(n))},showSubMenu:function(){var n=i.getClientRect(this.getDom());n.right-=5,n.left+=2,n.width-=7,n.top-=4,n.bottom+=4,n.height+=8,this.subMenu.showAnchorRect(n,!0,!0)},hideSubMenu:function(){this.subMenu.hide()}},e.inherits(n,o),e.extend(n.prototype,h,!0)})(),(function(){var i=u.editor.utils,r=u.editor.ui.uiUtils,f=u.editor.ui.Menu,n=u.editor.ui.SplitButton,t=u.editor.ui.Combox=function(n){this.initOptions(n),this.initCombox()};t.prototype={uiName:"combox",onbuttonclick:function(){this.showPopup()},initCombox:function(){var i=this,n,t;for(this.items=this.items||[],n=0;nu.right&&(f=u.right-i.width),r=t.top,r+i.height>u.bottom&&(r=u.bottom-i.height),e.style.left=Math.max(f,0)+"px",e.style.top=Math.max(r,0)+"px"},showAtCenter:function(){var r=n.getViewportRect(),i,u,f,e;if(this.fullscreen)i=this.getDom(),u=this.getDom("content"),i.style.display="block",f=UE.ui.uiUtils.getClientRect(i),e=UE.ui.uiUtils.getClientRect(u),i.style.left="-100000px",u.style.width=r.width-f.width+e.width+"px",u.style.height=r.height-f.height+e.height+"px",i.style.width=r.width+"px",i.style.height=r.height+"px",i.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 s=this.fitSize(),o=this.getDom("titlebar").offsetHeight|0,l=r.width/2-s.width/2,c=r.height/2-(s.height-o)/2-o,h=this.getDom();this.safeSetOffset({left:Math.max(l|0,0),top:Math.max(c|0,0)}),t.hasClass(h,"edui-state-centered")||(h.className+=" edui-state-centered")}this._show()},getContentHtml:function(){var n="";return typeof this.content=="string"?n=this.content:this.iframeUrl&&(n=''),n},getHtmlTpl:function(){var i="",t,n;if(this.buttons){for(t=[],n=0;n
    '+t.join("")+"
    "}return'
    '+(this.title||"")+"
    "+this.closeButton.renderHtml()+'
    '+(this.autoReset?"":this.getContentHtml())+"
    "+i+"
    "},postRender:function(){var i,r;this.modalMask.getDom()||(this.modalMask.render(),this.modalMask.hide()),this.dragMask.getDom()||(this.dragMask.render(),this.dragMask.hide()),i=this,this.addListener("show",function(){i.modalMask.show(this.getDom().style.zIndex-2)}),this.addListener("hide",function(){i.modalMask.hide()});if(this.buttons)for(r=0;r',n.editor.container.style.zIndex&&(this.getDom().style.zIndex=n.editor.container.style.zIndex*1+1))}}),this.onbuttonclick=function(){this.showPopup()},this.initSplitButton()}},t.inherits(n,i)})(),(function(){function o(t){var f=t.target||t.srcElement,u=n.findParent(f,function(t){return n.hasClass(t,"edui-shortcutmenu")||n.hasClass(t,"edui-popup")},!0),i,r;if(!u)for(i=0;r=h[i++];)r.hide()}var t=u.editor.ui,l=t.UIBase,s=t.uiUtils,f=u.editor.utils,n=u.editor.dom.domUtils,h=[],c,i=!1,e=t.ShortCutMenu=function(n){this.initOptions(n),this.initShortCutMenu()};e.postHide=o,e.prototype={isHidden:!0,SPACE:5,initShortCutMenu:function(){this.items=this.items||[],this.initUIBase(),this.initItems(),this.initEvent(),h.push(this)},initEvent:function(){var t=this,u=t.editor.document;n.on(u,"mousemove",function(n){if(t.isHidden===!1){if(t.getSubMenuMark()||t.eventType=="contextmenu")return;var o=!0,u=t.getDom(),h=u.offsetWidth,s=u.offsetHeight,e=h/2+t.SPACE,f=s/2,r=Math.abs(n.screenX-t.left),i=Math.abs(n.screenY-t.top);clearTimeout(c),c=setTimeout(function(){i>0&&if&&if+70&&i0&&re&&re+70&&r'+n+""}},f.inherits(e,l);n.on(document,"mousedown",function(n){o(n)});n.on(window,"scroll",function(n){o(n)})})(),(function(){var t=u.editor.utils,i=u.editor.ui.UIBase,n=u.editor.ui.Breakline=function(n){this.initOptions(n),this.initSeparator()};n.prototype={uiName:"Breakline",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return"
    "}},t.inherits(n,i)})(),(function(){var t=u.editor.utils,r=u.editor.dom.domUtils,i=u.editor.ui.UIBase,n=u.editor.ui.Message=function(n){this.initOptions(n),this.initMessage()};n.prototype={initMessage:function(){this.initUIBase()},getHtmlTpl:function(){return'
    \u00d7
    '},reset:function(n){var t=this;n.keepshow||(clearTimeout(this.timer),t.timer=setTimeout(function(){t.hide()},n.timeout||4e3)),n.content!==undefined&&t.setContent(n.content),n.type!==undefined&&t.setType(n.type),t.show()},postRender:function(){var t=this,n=this.getDom("closer");n&&r.on(n,"click",function(){t.hide()})},setContent:function(n){this.getDom("content").innerHTML=n},setType:function(n){n=n||"info";var t=this.getDom("body");t.className=t.className.replace(/edui-message-type-[\w-]+/,"edui-message-type-"+n)},getContent:function(){return this.getDom("content").innerHTML},getType:function(){var n=this.getDom("body").match(/edui-message-type-([\w-]+)/);return n?n[1]:""},show:function(){this.getDom().style.display="block"},hide:function(){var n=this.getDom();n&&(n.style.display="none",n.parentNode&&n.parentNode.removeChild(n))}},t.inherits(n,i)})(),(function(){var f=u.editor.utils,n=u.editor.ui,b=n.Dialog,o,y,h,e,t,s,i,p,w,l,c,v,a;for(n.buttons={},n.Dialog=function(n){var t=new b(n);return t.addListener("hide",function(){var n,u,i;if(t.editor){n=t.editor;try{r.gecko?(u=n.window.scrollY,i=n.window.scrollX,n.body.focus(),n.window.scrollTo(i,u)):n.focus()}catch(f){}}}),t},o={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"},y=["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"],e=0;t=y[e++];)t=t.toLowerCase(),n[t]=function(t){return function(i){var r=new n.Button({className:"edui-for-"+t,title:i.options.labelMap[t]||i.getLang("labelMap."+t)||"",onclick:function(){i.execCommand(t)},theme:i.options.theme,showText:!1});return n.buttons[t]=r,i.addListener("selectionchange",function(n,u,f){var e=i.queryCommandState(t);e==-1?(r.setDisabled(!0),r.setChecked(!1)):f||(r.setDisabled(!1),r.setChecked(e))}),r}}(t);n.cleardoc=function(t){var i=new n.Button({className:"edui-for-cleardoc",title:t.options.labelMap.cleardoc||t.getLang("labelMap.cleardoc")||"",theme:t.options.theme,onclick:function(){confirm(t.getLang("confirmClear"))&&t.execCommand("cleardoc")}});return n.buttons.cleardoc=i,t.addListener("selectionchange",function(){i.setDisabled(t.queryCommandState("cleardoc")==-1)}),i},n.dzzfile=function(t){var i=new n.Button({className:"edui-for-dzzfile",title:t.options.labelMap.dzzfile||t.getLang("labelMap.dzzfile")||"",theme:t.options.theme,onclick:function(){t.execCommand("dzzfile")}});return n.buttons.dzzfile=i,t.addListener("selectionchange",function(){i.setDisabled(t.queryCommandState("dzzfile")==-1)}),i},n.insertcharts=function(t){var i=new n.Button({className:"edui-for-insertcharts",title:t.options.labelMap.insertcharts||t.getLang("labelMap.insertcharts")||"",theme:t.options.theme,onclick:function(){var n=t.options.chartsTmpl||'

    1\u67082\u67083\u6708
    \u90e8\u95e81245932430824932
    \u90e8\u95e82136581654113600
    \u90e8\u95e8399808970012380
    ';t.execCommand("insertHtml",n)}});return n.buttons.insertcharts=i,t.addListener("selectionchange",function(){i.setDisabled(t.queryCommandState("insertcharts")==-1)}),i},h={justify:["left","right","center","justify"],imagefloat:["none","left","center","right"],directionality:["ltr","rtl"]};for(i in h)(function(t,i){for(var u=0,r;r=i[u++];)(function(i){n[t.replace("float","")+i]=function(r){var u=new n.Button({className:"edui-for-"+t.replace("float","")+i,title:r.options.labelMap[t.replace("float","")+i]||r.getLang("labelMap."+t.replace("float","")+i)||"",theme:r.options.theme,onclick:function(){r.execCommand(t,i)}});return n.buttons[t]=u,r.addListener("selectionchange",function(n,f,e){u.setDisabled(r.queryCommandState(t)==-1),u.setChecked(r.queryCommandValue(t)==i&&!e)}),u}})(r)})(i,h[i]);for(e=0;t=(["backcolor","forecolor"])[e++];)n[t]=function(t){return function(i){var r=new n.ColorButton({className:"edui-for-"+t,color:"default",title:i.options.labelMap[t]||i.getLang("labelMap."+t)||"",editor:i,onpickcolor:function(n,r){i.execCommand(t,r)},onpicknocolor:function(){i.execCommand(t,"default"),this.setColor("transparent"),this.color="default"},onbuttonclick:function(){i.execCommand(t,this.color)}});return n.buttons[t]=r,i.addListener("selectionchange",function(){r.setDisabled(i.queryCommandState(t)==-1)}),r}}(t);s={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(i in s)(function(t,i){for(var e=0,u;u=i[e++];){if(r.opera&&u==="searchreplace")continue;(function(i){n[i]=function(r,u,e){var s,h;return u=u||(r.options.iframeUrlMap||{})[i]||o[i],e=r.options.labelMap[i]||r.getLang("labelMap."+i)||"",u&&(s=new n.Dialog(f.extend({iframeUrl:r.ui.mapUrl(u),editor:r,className:"edui-for-"+i,title:e,holdScroll:i==="insertimage",fullscreen:/charts|preview/.test(i),closeDialog:r.getLang("closeDialog")},t=="ok"?{buttons:[{className:"edui-okbutton",label:r.getLang("ok"),editor:r,onclick:function(){s.close(!0)}},{className:"edui-cancelbutton",label:r.getLang("cancel"),editor:r,onclick:function(){s.close(!1)}}]}:{})),r.ui._dialogs[i+"Dialog"]=s),h=new n.Button({className:"edui-for-"+i,title:e,onclick:function(){if(s)switch(i){case"wordimage":var n=r.execCommand("wordimage");n&&n.length&&(s.render(),s.open());break;case"scrawl":r.queryCommandState("scrawl")!=-1&&(s.render(),s.open());break;default:s.render(),s.open()}},theme:r.options.theme,disabled:i=="scrawl"&&r.queryCommandState("scrawl")==-1||i=="charts"}),n.buttons[i]=h,r.addListener("selectionchange",function(){var t={edittable:1},n;if(i in t)return;n=r.queryCommandState(i),h.getDom()&&(h.setDisabled(n==-1),h.setChecked(n))}),h}})(u.toLowerCase())}})(i,s[i]);for(n.snapscreen=function(t,i,r){var f,u;return r=t.options.labelMap.snapscreen||t.getLang("labelMap.snapscreen")||"",f=new n.Button({className:"edui-for-snapscreen",title:r,onclick:function(){t.execCommand("snapscreen")},theme:t.options.theme}),n.buttons.snapscreen=f,i=i||(t.options.iframeUrlMap||{}).snapscreen||o.snapscreen,i&&(u=new n.Dialog({iframeUrl:t.ui.mapUrl(i),editor:t,className:"edui-for-snapscreen",title:r,buttons:[{className:"edui-okbutton",label:t.getLang("ok"),editor:t,onclick:function(){u.close(!0)}},{className:"edui-cancelbutton",label:t.getLang("cancel"),editor:t,onclick:function(){u.close(!1)}}]}),u.render(),t.ui._dialogs.snapscreenDialog=u),t.addListener("selectionchange",function(){f.setDisabled(t.queryCommandState("snapscreen")==-1)}),f},n.insertcode=function(t,i,r){var e,u;return i=t.options.insertcode||[],r=t.options.labelMap.insertcode||t.getLang("labelMap.insertcode")||"",e=[],f.each(i,function(n,i){e.push({label:n,value:i,theme:t.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})}),u=new n.Combox({editor:t,items:e,onselect:function(n,i){t.execCommand("insertcode",this.items[i].value)},onbuttonclick:function(){this.showPopup()},title:r,initValue:r,className:"edui-for-insertcode",indexByValue:function(n){if(n)for(var t=0,i;i=this.items[t];t++)if(i.value.indexOf(n)!=-1)return t;return-1}}),n.buttons.insertcode=u,t.addListener("selectionchange",function(n,i,f){var o,e;if(!f){o=t.queryCommandState("insertcode");if(o==-1)u.setDisabled(!0);else{u.setDisabled(!1),e=t.queryCommandValue("insertcode");if(!e){u.setValue(r);return}e&&(e=e.replace(/['"]/g,"").split(",")[0]),u.setValue(e)}}}),u},n.fontfamily=function(t,i,r){var o,e,s,h,u;i=t.options.fontfamily||[],r=t.options.labelMap.fontfamily||t.getLang("labelMap.fontfamily")||"";if(!i.length)return;for(o=0,s=[];e=i[o];o++)h=t.getLang("fontfamily")[e.name]||"",(function(n,i){s.push({label:n,value:i,theme:t.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})})(e.label||h,e.val);return u=new n.Combox({editor:t,items:s,onselect:function(n,i){t.execCommand("FontFamily",this.items[i].value)},onbuttonclick:function(){this.showPopup()},title:r,initValue:r,className:"edui-for-fontfamily",indexByValue:function(n){if(n)for(var t=0,i;i=this.items[t];t++)if(i.value.indexOf(n)!=-1)return t;return-1}}),n.buttons.fontfamily=u,t.addListener("selectionchange",function(n,i,r){var e,f;r||(e=t.queryCommandState("FontFamily"),e==-1?u.setDisabled(!0):(u.setDisabled(!1),f=t.queryCommandValue("FontFamily"),f&&(f=f.replace(/['"]/g,"").split(",")[0]),u.setValue(f)))}),u},n.fontsize=function(t,i,r){var e,f,o,u;r=t.options.labelMap.fontsize||t.getLang("labelMap.fontsize")||"",i=i||t.options.fontsize||[];if(!i.length)return;for(e=[],f=0;f'+(this.label||"")+""}});return u=new n.Combox({editor:t,items:e,title:r,initValue:r,onselect:function(n,i){t.execCommand("FontSize",this.items[i].value)},onbuttonclick:function(){this.showPopup()},className:"edui-for-fontsize"}),n.buttons.fontsize=u,t.addListener("selectionchange",function(n,i,r){if(!r){var f=t.queryCommandState("FontSize");f==-1?u.setDisabled(!0):(u.setDisabled(!1),u.setValue(t.queryCommandValue("FontSize")))}}),u},n.paragraph=function(t,i,r){var o,e,u;r=t.options.labelMap.paragraph||t.getLang("labelMap.paragraph")||"",i=t.options.paragraph||[];if(f.isEmptyObject(i))return;o=[];for(e in i)o.push({value:e,label:i[e]||t.getLang("paragraph")[e],theme:t.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}});return u=new n.Combox({editor:t,items:o,title:r,initValue:r,className:"edui-for-paragraph",onselect:function(n,i){t.execCommand("Paragraph",this.items[i].value)},onbuttonclick:function(){this.showPopup()}}),n.buttons.paragraph=u,t.addListener("selectionchange",function(n,i,r){var o,f,e;r||(o=t.queryCommandState("Paragraph"),o==-1?u.setDisabled(!0):(u.setDisabled(!1),f=t.queryCommandValue("Paragraph"),e=u.indexByValue(f),e!=-1?u.setValue(f):u.setValue(u.initValue)))}),u},n.customstyle=function(t){var o=t.options.customstyle||[],e=t.options.labelMap.customstyle||t.getLang("labelMap.customstyle")||"",u,s,r,f,i;if(!o.length)return;for(u=t.getLang("customstyle"),s=0,r=[];f=o[s++];)(function(n){var i={};i.label=n.label?n.label:u[n.name],i.style=n.style,i.className=n.className,i.tag=n.tag,r.push({label:i.label,value:i,theme:t.options.theme,renderLabelHtml:function(){return'
    <'+i.tag+" "+(i.className?' class="'+i.className+'"':"")+(i.style?' style="'+i.style+'"':"")+">"+i.label+"
    "}})})(f);return i=new n.Combox({editor:t,items:r,title:e,initValue:e,className:"edui-for-customstyle",onselect:function(n,i){t.execCommand("customstyle",this.items[i].value)},onbuttonclick:function(){this.showPopup()},indexByValue:function(n){for(var i=0,t;t=this.items[i++];)if(t.label==n)return i-1;return-1}}),n.buttons.customstyle=i,t.addListener("selectionchange",function(n,r,u){var o,f,e;u||(o=t.queryCommandState("customstyle"),o==-1?i.setDisabled(!0):(i.setDisabled(!1),f=t.queryCommandValue("customstyle"),e=i.indexByValue(f),e!=-1?i.setValue(f):i.setValue(i.initValue)))}),i},n.inserttable=function(t,i,r){r=t.options.labelMap.inserttable||t.getLang("labelMap.inserttable")||"";var u=new n.TableButton({editor:t,title:r,className:"edui-for-inserttable",onpicktable:function(n,i,r){t.execCommand("InsertTable",{numRows:r,numCols:i,border:1})},onbuttonclick:function(){this.showPopup()}});return n.buttons.inserttable=u,t.addListener("selectionchange",function(){u.setDisabled(t.queryCommandState("inserttable")==-1)}),u},n.lineheight=function(t){var e=t.options.lineheight||[],f,u,r,i;if(!e.length)return;for(f=0,r=[];u=e[f++];)r.push({label:u,value:u,theme:t.options.theme,onclick:function(){t.execCommand("lineheight",this.value)}});return i=new n.MenuButton({editor:t,className:"edui-for-lineheight",title:t.options.labelMap.lineheight||t.getLang("labelMap.lineheight")||"",items:r,onbuttonclick:function(){var n=t.queryCommandValue("LineHeight")||this.value;t.execCommand("LineHeight",n)}}),n.buttons.lineheight=i,t.addListener("selectionchange",function(){var r=t.queryCommandState("LineHeight"),n;r==-1?i.setDisabled(!0):(i.setDisabled(!1),n=t.queryCommandValue("LineHeight"),n&&i.setValue((n+"").replace(/cm/,"")),i.setChecked(r))}),i},p=["top","bottom"],w=0;l=p[w++];)(function(t){n["rowspacing"+t]=function(i){var o=i.options["rowspacing"+t]||[],e,f,u,r;if(!o.length)return null;for(e=0,u=[];f=o[e++];)u.push({label:f,value:f,theme:i.options.theme,onclick:function(){i.execCommand("rowspacing",this.value,t)}});return r=new n.MenuButton({editor:i,className:"edui-for-rowspacing"+t,title:i.options.labelMap["rowspacing"+t]||i.getLang("labelMap.rowspacing"+t)||"",items:u,onbuttonclick:function(){var n=i.queryCommandValue("rowspacing",t)||this.value;i.execCommand("rowspacing",n,t)}}),n.buttons[t]=r,i.addListener("selectionchange",function(){var u=i.queryCommandState("rowspacing",t),n;u==-1?r.setDisabled(!0):(r.setDisabled(!1),n=i.queryCommandValue("rowspacing",t),n&&r.setValue((n+"").replace(/%/,"")),r.setChecked(u))}),r}})(l);for(c=["insertorderedlist","insertunorderedlist"],v=0;a=c[v++];)(function(t){n[t]=function(i){var e=i.options[t],o=function(){i.execCommand(t,this.value)},f=[],u,r;for(u in e)f.push({label:e[u]||i.getLang()[t][u]||"",value:u,theme:i.options.theme,onclick:o});return r=new n.MenuButton({editor:i,className:"edui-for-"+t,title:i.getLang("labelMap."+t)||"",items:f,onbuttonclick:function(){var n=i.queryCommandValue(t)||this.value;i.execCommand(t,n)}}),n.buttons[t]=r,i.addListener("selectionchange",function(){var u=i.queryCommandState(t),n;u==-1?r.setDisabled(!0):(r.setDisabled(!1),n=i.queryCommandValue(t),r.setValue(n),r.setChecked(u))}),r}})(a);n.fullscreen=function(t,i){i=t.options.labelMap.fullscreen||t.getLang("labelMap.fullscreen")||"";var r=new n.Button({className:"edui-for-fullscreen",title:i,theme:t.options.theme,onclick:function(){t.ui&&t.ui.setFullScreen(!t.ui.isFullScreen()),this.setChecked(t.ui.isFullScreen())}});return n.buttons.fullscreen=r,t.addListener("selectionchange",function(){var n=t.queryCommandState("fullscreen");r.setDisabled(n==-1),r.setChecked(t.ui.isFullScreen())}),r},n.emotion=function(t,i){var r="emotion",u=new n.MultiMenuPop({title:t.options.labelMap[r]||t.getLang("labelMap."+r+"")||"",editor:t,className:"edui-for-"+r,iframeUrl:t.ui.mapUrl(i||(t.options.iframeUrlMap||{})[r]||o[r])});return n.buttons[r]=u,t.addListener("selectionchange",function(){u.setDisabled(t.queryCommandState(r)==-1)}),u},n.autotypeset=function(t){var i=new n.AutoTypeSetButton({editor:t,title:t.options.labelMap.autotypeset||t.getLang("labelMap.autotypeset")||"",className:"edui-for-autotypeset",onbuttonclick:function(){t.execCommand("autotypeset")}});return n.buttons.autotypeset=i,t.addListener("selectionchange",function(){i.setDisabled(t.queryCommandState("autotypeset")==-1)}),i},n.simpleupload=function(t){var r="simpleupload",i=new n.Button({className:"edui-for-"+r,title:t.options.labelMap[r]||t.getLang("labelMap."+r)||"",onclick:function(){},theme:t.options.theme,showText:!1});return n.buttons[r]=i,t.addListener("ready",function(){var r=i.getDom("body"),n=r.children[0];t.fireEvent("simpleuploadbtnready",n)}),t.addListener("selectionchange",function(n,u,f){var e=t.queryCommandState(r);e==-1?(i.setDisabled(!0),i.setChecked(!1)):f||(i.setDisabled(!1),i.setChecked(e))}),i}})(),(function(){function f(n){this.initOptions(n),this.initEditorUI()}var i=u.editor.utils,s=u.editor.ui.uiUtils,o=u.editor.ui.UIBase,n=u.editor.dom.domUtils,e=[],t;f.prototype={uiName:"editor",initEditorUI:function(){function s(n,t){var i;n.setOpt({wordCount:!0,maximumWords:1e4,wordCountMsg:n.options.wordCountMsg||n.getLang("wordCountMsg"),wordOverFlowMsg:n.options.wordOverFlowMsg||n.getLang("wordOverFlowMsg")});var r=n.options,f=r.maximumWords,o=r.wordCountMsg,e=r.wordOverFlowMsg,u=t.getDom("wordcount");if(!r.wordCount)return;i=n.getContentLength(!0),i>f?(u.innerHTML=e,n.fireEvent("wordcountoverflow")):u.innerHTML=o.replace("{#leave}",f-i).replace("{#count}",i)}var t,f,r,e,o,i;this.editor.ui=this,this._dialogs={},this.initUIBase(),this._initToolbars(),t=this.editor,f=this,t.addListener("ready",function(){t.getDialog=function(n){return t.ui._dialogs[n+"Dialog"]};n.on(t.window,"scroll",function(n){u.editor.ui.Popup.postHide(n)});t.ui._actualFrameWidth=t.options.initialFrameWidth,UE.browser.ie&&UE.browser.version===6&&t.container.ownerDocument.execCommand("BackgroundImageCache",!1,!0),t.options.elementPathEnabled&&(t.ui.getDom("elementpath").innerHTML='
    '+t.getLang("elementPathTip")+":
    ");if(t.options.wordCount){function i(){s(t,f),n.un(t.document,"click",arguments.callee)}n.on(t.document,"click",i);t.ui.getDom("wordcount").innerHTML=t.getLang("wordCountTip")}t.ui._scale(),t.options.scaleEnabled?(t.autoHeightEnabled&&t.disableAutoHeight(),f.enableScale()):f.disableScale(),!t.options.elementPathEnabled&&!t.options.wordCount&&!t.options.scaleEnabled&&(t.ui.getDom("elementpath").style.display="none",t.ui.getDom("wordcount").style.display="none",t.ui.getDom("scale").style.display="none");if(!t.selection.isFocus())return;t.fireEvent("selectionchange",!1,!0)}),t.addListener("mousedown",function(n,t){var i=t.target||t.srcElement;u.editor.ui.Popup.postHide(t,i),u.editor.ui.ShortCutMenu.postHide(t)}),t.addListener("delcells",function(){UE.ui.edittip&&new UE.ui.edittip(t),t.getDialog("edittip").open()}),e=!1,t.addListener("afterpaste",function(){if(t.queryCommandState("pasteplain"))return;u.editor.ui.PastePicker&&(r=new u.editor.ui.Popup({content:new u.editor.ui.PastePicker({editor:t}),editor:t,className:"edui-wordpastepop"}),r.render()),e=!0}),t.addListener("afterinserthtml",function(){clearTimeout(o),o=setTimeout(function(){var u,f,i;r&&(e||t.ui._isTransfer)&&(r.isHidden()?(u=n.createElement(t.document,"span",{style:"line-height:0px;",innerHTML:"\ufeff"}),f=t.selection.getRange(),f.insertNode(u),i=c(u,"firstChild","previousSibling"),i&&r.showAnchor(i.nodeType==3?i.parentNode:i),n.remove(u)):r.show(),delete t.ui._isTransfer,e=!1)},200)}),t.addListener("contextmenu",function(n,t){u.editor.ui.Popup.postHide(t)}),t.addListener("keydown",function(n,t){r&&r.dispose(t);var i=t.keyCode||t.which;t.altKey&&i==90&&UE.ui.buttons.fullscreen.onclick()}),t.addListener("wordcount",function(){s(this,f)}),t.addListener("selectionchange",function(){t.options.elementPathEnabled&&f[(t.queryCommandState("elementpath")==-1?"dis":"en")+"ableElementPath"](),t.options.scaleEnabled&&f[(t.queryCommandState("scale")==-1?"dis":"en")+"ableScale"]()}),i=new u.editor.ui.Popup({editor:t,content:"",className:"edui-bubble",_onEditButtonClick:function(){this.hide(),t.ui._dialogs.linkDialog.open()},_onImgEditButtonClick:function(n){this.hide(),t.ui._dialogs[n]&&t.ui._dialogs[n].open()},_onImgSetFloat:function(n){this.hide(),t.execCommand("imagefloat",n)},_setIframeAlign:function(t){var u=i.anchorEl,r=u.cloneNode(!0);switch(t){case-2:r.setAttribute("align","");break;case-1:r.setAttribute("align","left");break;case 1:r.setAttribute("align","right")}u.parentNode.insertBefore(r,u),n.remove(u),i.anchorEl=r,i.showAnchor(i.anchorEl)},_updateIframe:function(){var r=t._iframe=i.anchorEl;n.hasClass(r,"ueditor_baidumap")?(t.selection.getRange().selectNode(r).select(),t.ui._dialogs.mapDialog.open(),i.hide()):(t.ui._dialogs.insertframeDialog.open(),i.hide())},_onRemoveButtonClick:function(n){t.execCommand(n),this.hide()},queryAutoHide:function(r){if(r&&r.ownerDocument==t.document)if(r.tagName.toLowerCase()=="img"||n.findParentByTagName(r,"a",!0))return r!==i.anchorEl;return u.editor.ui.Popup.prototype.queryAutoHide.call(this,r)}}),i.render(),t.options.imagePopup&&(t.addListener("mouseover",function(n,r){var f,u;r=r||window.event,f=r.target||r.srcElement,t.ui._dialogs.insertframeDialog&&/iframe/ig.test(f.tagName)&&(u=i.formatHtml(""+t.getLang("property")+': '+t.getLang("default")+'  '+t.getLang("justifyleft")+'  '+t.getLang("justifyright")+'   '+t.getLang("modify")+""),u?(i.getDom("content").innerHTML=u,i.anchorEl=f,i.showAnchor(i.anchorEl)):i.hide())}),t.addListener("selectionchange",function(r,u){var e,s,h,c;if(!u)return;var o="",l="",f=t.selection.getRange().getClosedNode(),a=t.ui._dialogs;if(f&&f.tagName=="IMG"){e="insertimageDialog",(f.className.indexOf("edui-faked-video")!=-1||f.className.indexOf("edui-upload-video")!=-1)&&(e="insertvideoDialog"),f.className.indexOf("edui-faked-webapp")!=-1&&(e="webappDialog"),f.src.indexOf("http://api.map.baidu.com")!=-1&&(e="mapDialog"),f.className.indexOf("edui-faked-music")!=-1&&(e="musicDialog"),f.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1&&(e="gmapDialog"),f.getAttribute("anchorname")&&(e="anchorDialog",o=i.formatHtml(""+t.getLang("property")+': '+t.getLang("modify")+"  "+t.getLang("delete")+"")),f.getAttribute("word_img")&&(t.word_img=[f.getAttribute("word_img")],e="wordimageDialog"),(n.hasClass(f,"loadingclass")||n.hasClass(f,"loaderrorclass"))&&(e="");if(!a[e])return;l=""+t.getLang("property")+': '+t.getLang("default")+'  '+t.getLang("justifyleft")+'  '+t.getLang("justifyright")+'  '+t.getLang("justifycenter")+"  '+t.getLang("modify")+"",!o&&(o=i.formatHtml(l))}t.ui._dialogs.linkDialog&&(s=t.queryCommandValue("link"),s&&(h=s.getAttribute("_href")||s.getAttribute("href",2))&&(c=h,h.length>30&&(c=h.substring(0,20)+"..."),o&&(o+='
    '),o+=i.formatHtml(""+t.getLang("anthorMsg")+': '+c+' '+t.getLang("modify")+' '+t.getLang("clear")+""),i.showAnchor(s))),o?(i.getDom("content").innerHTML=o,i.anchorEl=f||s,i.showAnchor(i.anchorEl)):i.hide()}))},_initToolbars:function(){for(var f=this.editor,c=this.toolbars||[],e=[],h,r,s,n,t,o=0;o
    '+(this.toolbars.length?'
    '+this.renderToolbarBoxHtml()+"
    ":"")+'
    '},showWordImageDialog:function(){this._dialogs.wordimageDialog.open()},renderToolbarBoxHtml:function(){for(var t=[],n=0;n'+i+"");u.innerHTML='
    '+this.editor.getLang("elementPathTip")+": "+t.join(" > ")+"
    "}else u.style.display="none"},disableElementPath:function(){var n=this.getDom("elementpath");n.innerHTML="",n.style.display="none",this.elementPathEnabled=!1},enableElementPath:function(){var n=this.getDom("elementpath");n.style.display="",this.elementPathEnabled=!0,this._updateElementPath()},_scale:function(){function y(){v=n.getXY(h),a||(a=t.options.minFrameHeight+p.offsetHeight+d.offsetHeight),u.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:"+(t.options.zIndex+1);n.on(f,"mousemove",b);n.on(w,"mouseup",s);n.on(f,"mouseup",s)}function b(n){g();var t=n||window.event;k=t.pageX||f.documentElement.scrollLeft+t.clientX,nt=t.pageY||f.documentElement.scrollTop+t.clientY,c=k-v.x,l=nt-v.y,c>=tt&&(o=!0,u.style.width=c+"px"),l>=a&&(o=!0,u.style.height=l+"px")}function s(){o&&(o=!1,t.ui._actualFrameWidth=u.offsetWidth-2,h.style.width=t.ui._actualFrameWidth+"px",t.setHeight(u.offsetHeight-d.offsetHeight-p.offsetHeight-2,!0)),u&&(u.style.display="none"),g(),n.un(f,"mousemove",b),n.un(w,"mouseup",s),n.un(f,"mouseup",s)}function g(){r.ie?f.selection.clear():window.getSelection().removeAllRanges()}var f=document,t=this.editor,h=t.container,w=t.document,p=this.getDom("toolbarbox"),d=this.getDom("bottombar"),e=this.getDom("scale"),u=this.getDom("scalelayer"),o=!1,v=null,a=0,tt=t.options.minFrameWidth,k=0,nt=0,c=0,l=0,i=this;this.editor.addListener("fullscreenchanged",function(t,r){if(r)i.disableScale();else if(i.editor.options.scaleEnabled){i.enableScale();var u=i.editor.document.createElement("span");i.editor.body.appendChild(u),i.editor.body.style.height=Math.max(n.getXY(u).y,i.editor.iframe.offsetHeight-20)+"px",n.remove(u)}}),this.enableScale=function(){if(t.queryCommandState("source")==1)return;e.style.display="",this.scaleEnabled=!0;n.on(e,"mousedown",y)},this.disableScale=function(){e.style.display="none",this.scaleEnabled=!1,n.un(e,"mousedown",y)}},isFullScreen:function(){return this._fullscreen},postRender:function(){var n;for(o.prototype.postRender.call(this),n=0;n[\n\r\t]+([ ]{4})+/g,">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<"),r.className&&(o.className=r.className),r.style.cssText&&(o.style.cssText=r.style.cssText),/textarea/i.test(r.tagName)?(u.textarea=r,u.textarea.style.display="none"):r.parentNode.removeChild(r),r.id&&(o.id=r.id,n.removeAttributes(r,"id")),r=o,r.innerHTML="")),n.addClass(r,"edui-"+u.options.theme),u.ui.render(r),t=u.options,u.container=u.ui.getDom(),l=n.findParents(r,!0),a=[],i=0;s=l[i];i++)a[i]=s.style.display,s.style.display="block";for(t.initialFrameWidth?t.minFrameWidth=t.initialFrameWidth:(t.minFrameWidth=t.initialFrameWidth=r.offsetWidth,h=r.style.width,/%$/.test(h)&&(t.initialFrameWidth=h)),t.initialFrameHeight?t.minFrameHeight=t.initialFrameHeight:t.initialFrameHeight=t.minFrameHeight=r.offsetHeight,i=0;s=l[i];i++)s.style.display=a[i];r.style.height&&(r.style.height="");try{u.container.style.width=t.initialFrameWidth+(/%$/.test(t.initialFrameWidth)?"":"px")}catch(v){}u.container.style.zIndex=t.zIndex,e.call(u,u.ui.getDom("iframeholder")),u.fireEvent("afteruiready")}u.langIsReady?t():u.addListener("langReady",t)})},u},UE.getEditor=function(n,i){var r=t[n];return r||(r=t[n]=new UE.ui.Editor(i),r.render(n)),r},UE.delEditor=function(n){var i;(i=t[n])&&(i.key&&i.destroy(),delete t[n])},UE.registerUI=function(n,t,r,u){i.each(n.split(/\s+/),function(n){UE._customizeUI[n]={id:u,execFn:t,index:r}})}})(),UE.registerUI("message",function(n){function f(){var n=i.ui.getDom("toolbarbox");n&&(r.style.top=n.offsetHeight+3+"px"),r.style.zIndex=Math.max(i.options.zIndex,i.iframe.style.zIndex)+1}var s=u.editor.ui,o=s.Message,r,e=[],i=n;i.addListener("ready",function(){r=document.getElementById(i.ui.id+"_message_holder"),f(),setTimeout(function(){f()},500)}),i.addListener("showmessage",function(n,u){u=t.isString(u)?{content:u}:u;var s=new o({timeout:u.timeout,type:u.type,content:u.content,keepshow:u.keepshow,editor:i}),h=u.id||"msg_"+(+new Date).toString(36);return s.render(r),e[h]=s,s.reset(u),f(),h}),i.addListener("updatemessage",function(n,i,u){u=t.isString(u)?{content:u}:u;var f=e[i];f.render(r),f&&f.reset(u)}),i.addListener("hidemessage",function(n,t){var i=e[t];i&&i.hide()})}),UE.registerUI("autosave",function(n){var i=null,t=null;n.on("afterautosave",function(){clearTimeout(i),i=setTimeout(function(){t&&n.trigger("hidemessage",t),t=n.trigger("showmessage",{content:n.getLang("autosave.success"),timeout:2e3})},2e3)})})})() \ No newline at end of file diff --git a/dzz/system/ueditor/ueditor.config.js b/dzz/system/ueditor/ueditor.config.js index 215dcd3..ae04689 100644 --- a/dzz/system/ueditor/ueditor.config.js +++ b/dzz/system/ueditor/ueditor.config.js @@ -141,7 +141,6 @@ "searchreplace", // 查询替换 "|", 'dzzfile', - 'kityminder', "|", "contentimport", "help", // 帮助 @@ -685,24 +684,24 @@ UEDITOR_CONFIG.mode = { mini_exam: [ ['bold', 'italic', 'underline', 'strikethrough','superscript', 'subscript','removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', - 'insertorderedlist', 'insertunorderedlist','|','spechars','inserttable', 'scrawl','wordimage','kityformula','|','simpleupload','dzzfile' + 'insertorderedlist', 'insertunorderedlist','|','spechars','inserttable', 'scrawl','wordimage','|','simpleupload','dzzfile' ] ], mini_shou: [ ['bold', 'italic', 'underline', 'strikethrough','superscript', 'subscript','removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', - 'insertorderedlist', 'insertunorderedlist','|','spechars','inserttable', 'scrawl','wordimage','kityformula','|','simpleupload','attachment' + 'insertorderedlist', 'insertunorderedlist','|','spechars','inserttable', 'scrawl','wordimage','|','simpleupload','attachment' ] ], simple: [ - ["fullscreen","source","|","undo","redo",'drafts',"|","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","imagecenter","imageright","|","simpleupload","insertimage","emotion","scrawl","insertvideo","attachment",'map',"insertframe","insertcode","pagebreak","template","background","formula","|","horizontal","date","time","spechars","wordimage","|","inserttable","deletetable","insertparagraphbeforetable","insertrow","deleterow","insertcol","deletecol","mergecells","mergeright","mergedown","splittocells","splittorows","splittocols","|","print","preview","searchreplace","|",'dzzfile',"kityminder","contentimport","help", + ["fullscreen","source","|","undo","redo",'drafts',"|","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","imagecenter","imageright","|","simpleupload","insertimage","emotion","scrawl","insertvideo","attachment",'map',"insertframe","insertcode","pagebreak","template","background","formula","|","horizontal","date","time","spechars","wordimage","|","inserttable","deletetable","insertparagraphbeforetable","insertrow","deleterow","insertcol","deletecol","mergecells","mergeright","mergedown","splittocells","splittorows","splittocols","|","print","preview","searchreplace","|","dzzfile","contentimport","help", ] ], simple_source: [ - ["fullscreen","source","|","undo","redo",'drafts',"|","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","imagecenter","imageright","|","simpleupload","insertimage","emotion","scrawl","insertvideo","attachment",'map',"insertframe","insertcode","pagebreak","template","background","formula","|","horizontal","date","time","spechars","wordimage","|","inserttable","deletetable","insertparagraphbeforetable","insertrow","deleterow","insertcol","deletecol","mergecells","mergeright","mergedown","splittocells","splittorows","splittocols","|","print","preview","searchreplace","|",'dzzfile',"kityminder","contentimport","help", + ["fullscreen","source","|","undo","redo",'drafts',"|","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","imagecenter","imageright","|","simpleupload","insertimage","emotion","scrawl","insertvideo","attachment",'map',"insertframe","insertcode","pagebreak","template","background","formula","|","horizontal","date","time","spechars","wordimage","|","inserttable","deletetable","insertparagraphbeforetable","insertrow","deleterow","insertcol","deletecol","mergecells","mergeright","mergedown","splittocells","splittorows","splittocols","|","print","preview","searchreplace","|","dzzfile","contentimport","help", ] ], full:[[ - "fullscreen","source","|","undo","redo",'drafts',"|","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","imagecenter","imageright","|","simpleupload","insertimage","emotion","scrawl","insertvideo","attachment",'map',"insertframe","insertcode","pagebreak","template","background","formula","|","horizontal","date","time","spechars","wordimage","|","inserttable","deletetable","insertparagraphbeforetable","insertrow","deleterow","insertcol","deletecol","mergecells","mergeright","mergedown","splittocells","splittorows","splittocols","|","print","preview","searchreplace","|",'dzzfile',"kityminder","contentimport","help", + "fullscreen","source","|","undo","redo",'drafts',"|","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","imagecenter","imageright","|","simpleupload","insertimage","emotion","scrawl","insertvideo","attachment",'map',"insertframe","insertcode","pagebreak","template","background","formula","|","horizontal","date","time","spechars","wordimage","|","inserttable","deletetable","insertparagraphbeforetable","insertrow","deleterow","insertcol","deletecol","mergecells","mergeright","mergedown","splittocells","splittorows","splittocols","|","print","preview","searchreplace","|","dzzfile","contentimport","help", ]], }; \ No newline at end of file diff --git a/dzz/system/ueditor/ueditor.parse.min.js b/dzz/system/ueditor/ueditor.parse.min.js deleted file mode 100644 index 1888454..0000000 --- a/dzz/system/ueditor/ueditor.parse.min.js +++ /dev/null @@ -1,28 +0,0 @@ -(function(){(function(){UE=window.UE||{};var f=!!window.ActiveXObject,h={removeLastbs:function(a){return a.replace(/\/$/,"")},extend:function(a,d){for(var b=arguments,c=this.isBoolean(b[b.length-1])?b[b.length-1]:!1,e=this.isBoolean(b[b.length-1])?b.length-1:b.length,k=1;k=b&&a===d)return c=k,!1});return c},hasClass:function(a,d){d=d.replace(/(^[ ]+)|([ ]+$)/g,"").replace(/[ ]{2,}/g," ").split(" ");for(var b=0,c,e=a.className;c=d[b++];)if(!RegExp("\\b"+c+"\\b","i").test(e))return!1;return b-1==d.length},addClass:function(a,d){if(a){d=this.trim(d).replace(/[ ]{2,}/g, -" ").split(" ");for(var b=0,c,e=a.className;c=d[b++];)RegExp("\\b"+c+"\\b").test(e)||(e+=" "+c);a.className=h.trim(e)}},removeClass:function(a,d){d=this.isArray(d)?d:this.trim(d).replace(/[ ]{2,}/g," ").split(" ");for(var b=0,c,e=a.className;c=d[b++];)e=e.replace(RegExp("\\b"+c+"\\b"),"");e=this.trim(e).replace(/[ ]{2,}/g," ");a.className=e;!e&&a.removeAttribute("className")},on:function(a,d,b){var c=this.isArray(d)?d:d.split(/\s+/),e=c.length;if(e)for(;e--;)if(d=c[e],a.addEventListener)a.addEventListener(d, -b,!1);else{b._d||(b._d={els:[]});var k=d+b.toString(),n=h.indexOf(b._d.els,a);b._d[k]&&-1!=n||(-1==n&&b._d.els.push(a),b._d[k]||(b._d[k]=function(a){return b.call(a.srcElement,a||window.event)}),a.attachEvent("on"+d,b._d[k]))}a=null},off:function(a,d,b){var c=this.isArray(d)?d:d.split(/\s+/),e=c.length;if(e)for(;e--;)if(d=c[e],a.removeEventListener)a.removeEventListener(d,b,!1);else{var k=d+b.toString();try{a.detachEvent("on"+d,b._d?b._d[k]:b)}catch(n){}b._d&&b._d[k]&&(d=h.indexOf(b._d.els,a),-1!= -d&&b._d.els.splice(d,1),0==b._d.els.length&&delete b._d[k])}},loadFile:function(){function a(a,c){try{for(var e=0,k;k=d[e++];)if(k.doc===a&&k.url==(c.src||c.href))return k}catch(n){return null}}var d=[];return function(b,c,e){var k=a(b,c);if(k)k.ready?e&&e():k.funs.push(e);else if(d.push({doc:b,url:c.src||c.href,funs:[e]}),!b.body){e=[];for(var n in c)"tag"!=n&&e.push(n+'="'+c[n]+'"');b.write("<"+c.tag+" "+e.join(" ")+" >")}else if(!c.id||!b.getElementById(c.id)){var l=b.createElement(c.tag); -delete c.tag;for(n in c)l.setAttribute(n,c[n]);l.onload=l.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){k=a(b,c);if(0