tui_editor-rails 1.0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.ruby-version +1 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +20 -0
- data/README.md +69 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/example/.gitignore +30 -0
- data/example/.ruby-version +1 -0
- data/example/Gemfile +64 -0
- data/example/Gemfile.lock +224 -0
- data/example/README.md +67 -0
- data/example/Rakefile +6 -0
- data/example/app/assets/config/manifest.js +3 -0
- data/example/app/assets/images/.keep +0 -0
- data/example/app/assets/images/screen_capture.png +0 -0
- data/example/app/assets/javascripts/application.js +23 -0
- data/example/app/assets/javascripts/cable.js +13 -0
- data/example/app/assets/javascripts/channels/.keep +0 -0
- data/example/app/assets/javascripts/home.coffee +3 -0
- data/example/app/assets/javascripts/posts.coffee +3 -0
- data/example/app/assets/stylesheets/application.scss +4 -0
- data/example/app/assets/stylesheets/home.scss +3 -0
- data/example/app/assets/stylesheets/posts.scss +3 -0
- data/example/app/assets/stylesheets/scaffolds.scss +84 -0
- data/example/app/channels/application_cable/channel.rb +4 -0
- data/example/app/channels/application_cable/connection.rb +4 -0
- data/example/app/controllers/application_controller.rb +2 -0
- data/example/app/controllers/concerns/.keep +0 -0
- data/example/app/controllers/home_controller.rb +4 -0
- data/example/app/controllers/posts_controller.rb +74 -0
- data/example/app/helpers/application_helper.rb +2 -0
- data/example/app/helpers/home_helper.rb +2 -0
- data/example/app/helpers/posts_helper.rb +2 -0
- data/example/app/jobs/application_job.rb +2 -0
- data/example/app/mailers/application_mailer.rb +4 -0
- data/example/app/models/application_record.rb +3 -0
- data/example/app/models/concerns/.keep +0 -0
- data/example/app/models/post.rb +2 -0
- data/example/app/views/home/index.html.erb +11 -0
- data/example/app/views/layouts/application.html.erb +14 -0
- data/example/app/views/layouts/mailer.html.erb +13 -0
- data/example/app/views/layouts/mailer.text.erb +1 -0
- data/example/app/views/posts/_form.html.erb +27 -0
- data/example/app/views/posts/_post.json.jbuilder +2 -0
- data/example/app/views/posts/edit.html.erb +6 -0
- data/example/app/views/posts/index.html.erb +29 -0
- data/example/app/views/posts/index.json.jbuilder +1 -0
- data/example/app/views/posts/new.html.erb +5 -0
- data/example/app/views/posts/show.html.erb +14 -0
- data/example/app/views/posts/show.json.jbuilder +1 -0
- data/example/bin/bundle +3 -0
- data/example/bin/rails +9 -0
- data/example/bin/rake +9 -0
- data/example/bin/setup +36 -0
- data/example/bin/spring +17 -0
- data/example/bin/update +31 -0
- data/example/bin/yarn +11 -0
- data/example/config.ru +5 -0
- data/example/config/application.rb +19 -0
- data/example/config/boot.rb +4 -0
- data/example/config/cable.yml +10 -0
- data/example/config/credentials.yml.enc +1 -0
- data/example/config/database.yml +25 -0
- data/example/config/environment.rb +5 -0
- data/example/config/environments/development.rb +61 -0
- data/example/config/environments/production.rb +94 -0
- data/example/config/environments/test.rb +46 -0
- data/example/config/initializers/application_controller_renderer.rb +8 -0
- data/example/config/initializers/assets.rb +14 -0
- data/example/config/initializers/backtrace_silencers.rb +7 -0
- data/example/config/initializers/content_security_policy.rb +22 -0
- data/example/config/initializers/cookies_serializer.rb +5 -0
- data/example/config/initializers/filter_parameter_logging.rb +4 -0
- data/example/config/initializers/inflections.rb +16 -0
- data/example/config/initializers/mime_types.rb +4 -0
- data/example/config/initializers/wrap_parameters.rb +14 -0
- data/example/config/locales/en.yml +33 -0
- data/example/config/puma.rb +34 -0
- data/example/config/routes.rb +6 -0
- data/example/config/spring.rb +6 -0
- data/example/config/storage.yml +35 -0
- data/example/db/migrate/20180208210404_create_posts.rb +10 -0
- data/example/db/schema.rb +22 -0
- data/example/db/seeds.rb +7 -0
- data/example/lib/assets/.keep +0 -0
- data/example/lib/tasks/.keep +0 -0
- data/example/log/.keep +0 -0
- data/example/package.json +5 -0
- data/example/public/404.html +67 -0
- data/example/public/422.html +67 -0
- data/example/public/500.html +66 -0
- data/example/public/apple-touch-icon-precomposed.png +0 -0
- data/example/public/apple-touch-icon.png +0 -0
- data/example/public/favicon.ico +0 -0
- data/example/public/robots.txt +1 -0
- data/example/test/application_system_test_case.rb +5 -0
- data/example/test/controllers/.keep +0 -0
- data/example/test/controllers/home_controller_test.rb +9 -0
- data/example/test/controllers/posts_controller_test.rb +48 -0
- data/example/test/fixtures/.keep +0 -0
- data/example/test/fixtures/files/.keep +0 -0
- data/example/test/fixtures/posts.yml +9 -0
- data/example/test/helpers/.keep +0 -0
- data/example/test/integration/.keep +0 -0
- data/example/test/mailers/.keep +0 -0
- data/example/test/models/.keep +0 -0
- data/example/test/models/post_test.rb +7 -0
- data/example/test/system/.keep +0 -0
- data/example/test/system/posts_test.rb +45 -0
- data/example/test/test_helper.rb +10 -0
- data/example/tmp/.keep +0 -0
- data/example/vendor/.keep +0 -0
- data/lib/tui_editor/rails.rb +8 -0
- data/lib/tui_editor/rails/version.rb +5 -0
- data/tui_editor-rails.gemspec +34 -0
- data/vendor/assets/components/codemirror/.bower.json +31 -0
- data/vendor/assets/components/codemirror/AUTHORS +714 -0
- data/vendor/assets/components/codemirror/CHANGELOG.md +1316 -0
- data/vendor/assets/components/codemirror/CONTRIBUTING.md +92 -0
- data/vendor/assets/components/codemirror/LICENSE +21 -0
- data/vendor/assets/components/codemirror/README.md +35 -0
- data/vendor/assets/components/codemirror/addon/comment/comment.js +209 -0
- data/vendor/assets/components/codemirror/addon/comment/continuecomment.js +78 -0
- data/vendor/assets/components/codemirror/addon/dialog/dialog.css +32 -0
- data/vendor/assets/components/codemirror/addon/dialog/dialog.js +157 -0
- data/vendor/assets/components/codemirror/addon/display/autorefresh.js +47 -0
- data/vendor/assets/components/codemirror/addon/display/fullscreen.css +6 -0
- data/vendor/assets/components/codemirror/addon/display/fullscreen.js +41 -0
- data/vendor/assets/components/codemirror/addon/display/panel.js +123 -0
- data/vendor/assets/components/codemirror/addon/display/placeholder.js +63 -0
- data/vendor/assets/components/codemirror/addon/display/rulers.js +51 -0
- data/vendor/assets/components/codemirror/addon/edit/closebrackets.js +194 -0
- data/vendor/assets/components/codemirror/addon/edit/closetag.js +175 -0
- data/vendor/assets/components/codemirror/addon/edit/continuelist.js +89 -0
- data/vendor/assets/components/codemirror/addon/edit/matchbrackets.js +145 -0
- data/vendor/assets/components/codemirror/addon/edit/matchtags.js +66 -0
- data/vendor/assets/components/codemirror/addon/edit/trailingspace.js +27 -0
- data/vendor/assets/components/codemirror/addon/fold/brace-fold.js +105 -0
- data/vendor/assets/components/codemirror/addon/fold/comment-fold.js +59 -0
- data/vendor/assets/components/codemirror/addon/fold/foldcode.js +152 -0
- data/vendor/assets/components/codemirror/addon/fold/foldgutter.css +20 -0
- data/vendor/assets/components/codemirror/addon/fold/foldgutter.js +146 -0
- data/vendor/assets/components/codemirror/addon/fold/indent-fold.js +48 -0
- data/vendor/assets/components/codemirror/addon/fold/markdown-fold.js +49 -0
- data/vendor/assets/components/codemirror/addon/fold/xml-fold.js +182 -0
- data/vendor/assets/components/codemirror/addon/hint/anyword-hint.js +41 -0
- data/vendor/assets/components/codemirror/addon/hint/css-hint.js +60 -0
- data/vendor/assets/components/codemirror/addon/hint/html-hint.js +348 -0
- data/vendor/assets/components/codemirror/addon/hint/javascript-hint.js +155 -0
- data/vendor/assets/components/codemirror/addon/hint/show-hint.css +36 -0
- data/vendor/assets/components/codemirror/addon/hint/show-hint.js +432 -0
- data/vendor/assets/components/codemirror/addon/hint/sql-hint.js +286 -0
- data/vendor/assets/components/codemirror/addon/hint/xml-hint.js +110 -0
- data/vendor/assets/components/codemirror/addon/lint/coffeescript-lint.js +47 -0
- data/vendor/assets/components/codemirror/addon/lint/css-lint.js +40 -0
- data/vendor/assets/components/codemirror/addon/lint/html-lint.js +53 -0
- data/vendor/assets/components/codemirror/addon/lint/javascript-lint.js +63 -0
- data/vendor/assets/components/codemirror/addon/lint/json-lint.js +37 -0
- data/vendor/assets/components/codemirror/addon/lint/lint.css +73 -0
- data/vendor/assets/components/codemirror/addon/lint/lint.js +252 -0
- data/vendor/assets/components/codemirror/addon/lint/yaml-lint.js +41 -0
- data/vendor/assets/components/codemirror/addon/merge/merge.css +113 -0
- data/vendor/assets/components/codemirror/addon/merge/merge.js +1001 -0
- data/vendor/assets/components/codemirror/addon/mode/loadmode.js +64 -0
- data/vendor/assets/components/codemirror/addon/mode/multiplex.js +123 -0
- data/vendor/assets/components/codemirror/addon/mode/multiplex_test.js +33 -0
- data/vendor/assets/components/codemirror/addon/mode/overlay.js +90 -0
- data/vendor/assets/components/codemirror/addon/mode/simple.js +216 -0
- data/vendor/assets/components/codemirror/addon/runmode/colorize.js +40 -0
- data/vendor/assets/components/codemirror/addon/runmode/runmode-standalone.js +158 -0
- data/vendor/assets/components/codemirror/addon/runmode/runmode.js +72 -0
- data/vendor/assets/components/codemirror/addon/runmode/runmode.node.js +197 -0
- data/vendor/assets/components/codemirror/addon/scroll/annotatescrollbar.js +122 -0
- data/vendor/assets/components/codemirror/addon/scroll/scrollpastend.js +48 -0
- data/vendor/assets/components/codemirror/addon/scroll/simplescrollbars.css +66 -0
- data/vendor/assets/components/codemirror/addon/scroll/simplescrollbars.js +152 -0
- data/vendor/assets/components/codemirror/addon/search/jump-to-line.js +49 -0
- data/vendor/assets/components/codemirror/addon/search/match-highlighter.js +165 -0
- data/vendor/assets/components/codemirror/addon/search/matchesonscrollbar.css +8 -0
- data/vendor/assets/components/codemirror/addon/search/matchesonscrollbar.js +97 -0
- data/vendor/assets/components/codemirror/addon/search/search.js +252 -0
- data/vendor/assets/components/codemirror/addon/search/searchcursor.js +289 -0
- data/vendor/assets/components/codemirror/addon/selection/active-line.js +72 -0
- data/vendor/assets/components/codemirror/addon/selection/mark-selection.js +119 -0
- data/vendor/assets/components/codemirror/addon/selection/selection-pointer.js +98 -0
- data/vendor/assets/components/codemirror/addon/tern/tern.css +87 -0
- data/vendor/assets/components/codemirror/addon/tern/tern.js +718 -0
- data/vendor/assets/components/codemirror/addon/tern/worker.js +44 -0
- data/vendor/assets/components/codemirror/addon/wrap/hardwrap.js +144 -0
- data/vendor/assets/components/codemirror/bower.json +17 -0
- data/vendor/assets/components/codemirror/component-tools/bower.json +17 -0
- data/vendor/assets/components/codemirror/component-tools/build.sh +31 -0
- data/vendor/assets/components/codemirror/component-tools/update.py +38 -0
- data/vendor/assets/components/codemirror/keymap/emacs.js +416 -0
- data/vendor/assets/components/codemirror/keymap/sublime.js +685 -0
- data/vendor/assets/components/codemirror/keymap/vim.js +5219 -0
- data/vendor/assets/components/codemirror/lib/codemirror.css +346 -0
- data/vendor/assets/components/codemirror/lib/codemirror.js +9669 -0
- data/vendor/assets/components/codemirror/mode/apl/apl.js +174 -0
- data/vendor/assets/components/codemirror/mode/asciiarmor/asciiarmor.js +74 -0
- data/vendor/assets/components/codemirror/mode/asn.1/asn.1.js +204 -0
- data/vendor/assets/components/codemirror/mode/asterisk/asterisk.js +196 -0
- data/vendor/assets/components/codemirror/mode/brainfuck/brainfuck.js +85 -0
- data/vendor/assets/components/codemirror/mode/clike/clike.js +817 -0
- data/vendor/assets/components/codemirror/mode/clojure/clojure.js +306 -0
- data/vendor/assets/components/codemirror/mode/cmake/cmake.js +97 -0
- data/vendor/assets/components/codemirror/mode/cobol/cobol.js +255 -0
- data/vendor/assets/components/codemirror/mode/coffeescript/coffeescript.js +359 -0
- data/vendor/assets/components/codemirror/mode/commonlisp/commonlisp.js +124 -0
- data/vendor/assets/components/codemirror/mode/crystal/crystal.js +433 -0
- data/vendor/assets/components/codemirror/mode/css/css.js +832 -0
- data/vendor/assets/components/codemirror/mode/cypher/cypher.js +150 -0
- data/vendor/assets/components/codemirror/mode/d/d.js +218 -0
- data/vendor/assets/components/codemirror/mode/dart/dart.js +157 -0
- data/vendor/assets/components/codemirror/mode/diff/diff.js +47 -0
- data/vendor/assets/components/codemirror/mode/django/django.js +356 -0
- data/vendor/assets/components/codemirror/mode/dockerfile/dockerfile.js +79 -0
- data/vendor/assets/components/codemirror/mode/dtd/dtd.js +142 -0
- data/vendor/assets/components/codemirror/mode/dylan/dylan.js +352 -0
- data/vendor/assets/components/codemirror/mode/ebnf/ebnf.js +195 -0
- data/vendor/assets/components/codemirror/mode/ecl/ecl.js +206 -0
- data/vendor/assets/components/codemirror/mode/eiffel/eiffel.js +160 -0
- data/vendor/assets/components/codemirror/mode/elm/elm.js +205 -0
- data/vendor/assets/components/codemirror/mode/erlang/erlang.js +619 -0
- data/vendor/assets/components/codemirror/mode/factor/factor.js +85 -0
- data/vendor/assets/components/codemirror/mode/fcl/fcl.js +173 -0
- data/vendor/assets/components/codemirror/mode/forth/forth.js +180 -0
- data/vendor/assets/components/codemirror/mode/fortran/fortran.js +188 -0
- data/vendor/assets/components/codemirror/mode/gas/gas.js +345 -0
- data/vendor/assets/components/codemirror/mode/gfm/gfm.js +129 -0
- data/vendor/assets/components/codemirror/mode/gherkin/gherkin.js +178 -0
- data/vendor/assets/components/codemirror/mode/go/go.js +187 -0
- data/vendor/assets/components/codemirror/mode/groovy/groovy.js +230 -0
- data/vendor/assets/components/codemirror/mode/haml/haml.js +161 -0
- data/vendor/assets/components/codemirror/mode/handlebars/handlebars.js +62 -0
- data/vendor/assets/components/codemirror/mode/haskell-literate/haskell-literate.js +43 -0
- data/vendor/assets/components/codemirror/mode/haskell/haskell.js +267 -0
- data/vendor/assets/components/codemirror/mode/haxe/haxe.js +515 -0
- data/vendor/assets/components/codemirror/mode/htmlembedded/htmlembedded.js +37 -0
- data/vendor/assets/components/codemirror/mode/htmlmixed/htmlmixed.js +152 -0
- data/vendor/assets/components/codemirror/mode/http/http.js +113 -0
- data/vendor/assets/components/codemirror/mode/idl/idl.js +290 -0
- data/vendor/assets/components/codemirror/mode/javascript/javascript.js +865 -0
- data/vendor/assets/components/codemirror/mode/jinja2/jinja2.js +142 -0
- data/vendor/assets/components/codemirror/mode/jsx/jsx.js +148 -0
- data/vendor/assets/components/codemirror/mode/julia/julia.js +418 -0
- data/vendor/assets/components/codemirror/mode/livescript/livescript.js +280 -0
- data/vendor/assets/components/codemirror/mode/lua/lua.js +159 -0
- data/vendor/assets/components/codemirror/mode/markdown/markdown.js +872 -0
- data/vendor/assets/components/codemirror/mode/mathematica/mathematica.js +176 -0
- data/vendor/assets/components/codemirror/mode/mbox/mbox.js +129 -0
- data/vendor/assets/components/codemirror/mode/meta.js +217 -0
- data/vendor/assets/components/codemirror/mode/mirc/mirc.js +193 -0
- data/vendor/assets/components/codemirror/mode/mllike/mllike.js +356 -0
- data/vendor/assets/components/codemirror/mode/modelica/modelica.js +245 -0
- data/vendor/assets/components/codemirror/mode/mscgen/mscgen.js +175 -0
- data/vendor/assets/components/codemirror/mode/mumps/mumps.js +148 -0
- data/vendor/assets/components/codemirror/mode/nginx/nginx.js +178 -0
- data/vendor/assets/components/codemirror/mode/nsis/nsis.js +95 -0
- data/vendor/assets/components/codemirror/mode/ntriples/ntriples.js +195 -0
- data/vendor/assets/components/codemirror/mode/octave/octave.js +139 -0
- data/vendor/assets/components/codemirror/mode/oz/oz.js +252 -0
- data/vendor/assets/components/codemirror/mode/pascal/pascal.js +109 -0
- data/vendor/assets/components/codemirror/mode/pegjs/pegjs.js +114 -0
- data/vendor/assets/components/codemirror/mode/perl/perl.js +837 -0
- data/vendor/assets/components/codemirror/mode/php/php.js +234 -0
- data/vendor/assets/components/codemirror/mode/pig/pig.js +178 -0
- data/vendor/assets/components/codemirror/mode/powershell/powershell.js +398 -0
- data/vendor/assets/components/codemirror/mode/properties/properties.js +78 -0
- data/vendor/assets/components/codemirror/mode/protobuf/protobuf.js +69 -0
- data/vendor/assets/components/codemirror/mode/pug/pug.js +591 -0
- data/vendor/assets/components/codemirror/mode/puppet/puppet.js +220 -0
- data/vendor/assets/components/codemirror/mode/python/python.js +334 -0
- data/vendor/assets/components/codemirror/mode/q/q.js +139 -0
- data/vendor/assets/components/codemirror/mode/r/r.js +183 -0
- data/vendor/assets/components/codemirror/mode/rpm/rpm.js +109 -0
- data/vendor/assets/components/codemirror/mode/rst/rst.js +557 -0
- data/vendor/assets/components/codemirror/mode/ruby/ruby.js +296 -0
- data/vendor/assets/components/codemirror/mode/rust/rust.js +72 -0
- data/vendor/assets/components/codemirror/mode/sas/sas.js +303 -0
- data/vendor/assets/components/codemirror/mode/sass/sass.js +454 -0
- data/vendor/assets/components/codemirror/mode/scheme/scheme.js +249 -0
- data/vendor/assets/components/codemirror/mode/shell/shell.js +151 -0
- data/vendor/assets/components/codemirror/mode/sieve/sieve.js +193 -0
- data/vendor/assets/components/codemirror/mode/slim/slim.js +575 -0
- data/vendor/assets/components/codemirror/mode/smalltalk/smalltalk.js +168 -0
- data/vendor/assets/components/codemirror/mode/smarty/smarty.js +225 -0
- data/vendor/assets/components/codemirror/mode/solr/solr.js +104 -0
- data/vendor/assets/components/codemirror/mode/soy/soy.js +354 -0
- data/vendor/assets/components/codemirror/mode/sparql/sparql.js +180 -0
- data/vendor/assets/components/codemirror/mode/spreadsheet/spreadsheet.js +112 -0
- data/vendor/assets/components/codemirror/mode/sql/sql.js +488 -0
- data/vendor/assets/components/codemirror/mode/stex/stex.js +251 -0
- data/vendor/assets/components/codemirror/mode/stylus/stylus.js +771 -0
- data/vendor/assets/components/codemirror/mode/swift/swift.js +219 -0
- data/vendor/assets/components/codemirror/mode/tcl/tcl.js +139 -0
- data/vendor/assets/components/codemirror/mode/textile/textile.js +469 -0
- data/vendor/assets/components/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- data/vendor/assets/components/codemirror/mode/tiddlywiki/tiddlywiki.js +308 -0
- data/vendor/assets/components/codemirror/mode/tiki/tiki.css +26 -0
- data/vendor/assets/components/codemirror/mode/tiki/tiki.js +312 -0
- data/vendor/assets/components/codemirror/mode/toml/toml.js +88 -0
- data/vendor/assets/components/codemirror/mode/tornado/tornado.js +68 -0
- data/vendor/assets/components/codemirror/mode/troff/troff.js +84 -0
- data/vendor/assets/components/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
- data/vendor/assets/components/codemirror/mode/ttcn/ttcn.js +283 -0
- data/vendor/assets/components/codemirror/mode/turtle/turtle.js +162 -0
- data/vendor/assets/components/codemirror/mode/twig/twig.js +141 -0
- data/vendor/assets/components/codemirror/mode/vb/vb.js +275 -0
- data/vendor/assets/components/codemirror/mode/vbscript/vbscript.js +350 -0
- data/vendor/assets/components/codemirror/mode/velocity/velocity.js +201 -0
- data/vendor/assets/components/codemirror/mode/verilog/verilog.js +675 -0
- data/vendor/assets/components/codemirror/mode/vhdl/vhdl.js +189 -0
- data/vendor/assets/components/codemirror/mode/vue/vue.js +77 -0
- data/vendor/assets/components/codemirror/mode/webidl/webidl.js +195 -0
- data/vendor/assets/components/codemirror/mode/xml/xml.js +401 -0
- data/vendor/assets/components/codemirror/mode/xquery/xquery.js +448 -0
- data/vendor/assets/components/codemirror/mode/yacas/yacas.js +204 -0
- data/vendor/assets/components/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +68 -0
- data/vendor/assets/components/codemirror/mode/yaml/yaml.js +118 -0
- data/vendor/assets/components/codemirror/mode/z80/z80.js +116 -0
- data/vendor/assets/components/codemirror/rollup.config.js +18 -0
- data/vendor/assets/components/codemirror/src/codemirror.js +3 -0
- data/vendor/assets/components/codemirror/src/display/Display.js +106 -0
- data/vendor/assets/components/codemirror/src/display/focus.js +47 -0
- data/vendor/assets/components/codemirror/src/display/gutters.js +34 -0
- data/vendor/assets/components/codemirror/src/display/highlight_worker.js +55 -0
- data/vendor/assets/components/codemirror/src/display/line_numbers.js +48 -0
- data/vendor/assets/components/codemirror/src/display/mode_state.js +22 -0
- data/vendor/assets/components/codemirror/src/display/operations.js +205 -0
- data/vendor/assets/components/codemirror/src/display/scroll_events.js +115 -0
- data/vendor/assets/components/codemirror/src/display/scrollbars.js +192 -0
- data/vendor/assets/components/codemirror/src/display/scrolling.js +184 -0
- data/vendor/assets/components/codemirror/src/display/selection.js +158 -0
- data/vendor/assets/components/codemirror/src/display/update_display.js +260 -0
- data/vendor/assets/components/codemirror/src/display/update_line.js +188 -0
- data/vendor/assets/components/codemirror/src/display/update_lines.js +64 -0
- data/vendor/assets/components/codemirror/src/display/view_tracking.js +153 -0
- data/vendor/assets/components/codemirror/src/edit/CodeMirror.js +214 -0
- data/vendor/assets/components/codemirror/src/edit/commands.js +178 -0
- data/vendor/assets/components/codemirror/src/edit/deleteNearSelection.js +30 -0
- data/vendor/assets/components/codemirror/src/edit/drop_events.js +119 -0
- data/vendor/assets/components/codemirror/src/edit/fromTextArea.js +61 -0
- data/vendor/assets/components/codemirror/src/edit/global_events.js +44 -0
- data/vendor/assets/components/codemirror/src/edit/key_events.js +159 -0
- data/vendor/assets/components/codemirror/src/edit/legacy.js +62 -0
- data/vendor/assets/components/codemirror/src/edit/main.js +69 -0
- data/vendor/assets/components/codemirror/src/edit/methods.js +539 -0
- data/vendor/assets/components/codemirror/src/edit/mouse_events.js +407 -0
- data/vendor/assets/components/codemirror/src/edit/options.js +191 -0
- data/vendor/assets/components/codemirror/src/edit/utils.js +7 -0
- data/vendor/assets/components/codemirror/src/input/ContentEditableInput.js +517 -0
- data/vendor/assets/components/codemirror/src/input/TextareaInput.js +350 -0
- data/vendor/assets/components/codemirror/src/input/indent.js +71 -0
- data/vendor/assets/components/codemirror/src/input/input.js +135 -0
- data/vendor/assets/components/codemirror/src/input/keymap.js +148 -0
- data/vendor/assets/components/codemirror/src/input/keynames.js +17 -0
- data/vendor/assets/components/codemirror/src/input/movement.js +110 -0
- data/vendor/assets/components/codemirror/src/line/highlight.js +284 -0
- data/vendor/assets/components/codemirror/src/line/line_data.js +337 -0
- data/vendor/assets/components/codemirror/src/line/pos.js +40 -0
- data/vendor/assets/components/codemirror/src/line/saw_special_spans.js +10 -0
- data/vendor/assets/components/codemirror/src/line/spans.js +372 -0
- data/vendor/assets/components/codemirror/src/line/utils_line.js +85 -0
- data/vendor/assets/components/codemirror/src/measurement/position_measurement.js +700 -0
- data/vendor/assets/components/codemirror/src/measurement/widgets.js +26 -0
- data/vendor/assets/components/codemirror/src/model/Doc.js +432 -0
- data/vendor/assets/components/codemirror/src/model/change_measurement.js +61 -0
- data/vendor/assets/components/codemirror/src/model/changes.js +330 -0
- data/vendor/assets/components/codemirror/src/model/chunk.js +167 -0
- data/vendor/assets/components/codemirror/src/model/document_data.js +111 -0
- data/vendor/assets/components/codemirror/src/model/history.js +228 -0
- data/vendor/assets/components/codemirror/src/model/line_widget.js +78 -0
- data/vendor/assets/components/codemirror/src/model/mark_text.js +292 -0
- data/vendor/assets/components/codemirror/src/model/selection.js +82 -0
- data/vendor/assets/components/codemirror/src/model/selection_updates.js +208 -0
- data/vendor/assets/components/codemirror/src/modes.js +96 -0
- data/vendor/assets/components/codemirror/src/util/StringStream.js +90 -0
- data/vendor/assets/components/codemirror/src/util/bidi.js +214 -0
- data/vendor/assets/components/codemirror/src/util/browser.js +33 -0
- data/vendor/assets/components/codemirror/src/util/dom.js +97 -0
- data/vendor/assets/components/codemirror/src/util/event.js +103 -0
- data/vendor/assets/components/codemirror/src/util/feature_detection.js +84 -0
- data/vendor/assets/components/codemirror/src/util/misc.js +150 -0
- data/vendor/assets/components/codemirror/src/util/operation_group.js +72 -0
- data/vendor/assets/components/codemirror/theme/3024-day.css +41 -0
- data/vendor/assets/components/codemirror/theme/3024-night.css +39 -0
- data/vendor/assets/components/codemirror/theme/abcdef.css +32 -0
- data/vendor/assets/components/codemirror/theme/ambiance-mobile.css +5 -0
- data/vendor/assets/components/codemirror/theme/ambiance.css +74 -0
- data/vendor/assets/components/codemirror/theme/base16-dark.css +38 -0
- data/vendor/assets/components/codemirror/theme/base16-light.css +38 -0
- data/vendor/assets/components/codemirror/theme/bespin.css +34 -0
- data/vendor/assets/components/codemirror/theme/blackboard.css +32 -0
- data/vendor/assets/components/codemirror/theme/cobalt.css +25 -0
- data/vendor/assets/components/codemirror/theme/colorforth.css +33 -0
- data/vendor/assets/components/codemirror/theme/dracula.css +40 -0
- data/vendor/assets/components/codemirror/theme/duotone-dark.css +35 -0
- data/vendor/assets/components/codemirror/theme/duotone-light.css +36 -0
- data/vendor/assets/components/codemirror/theme/eclipse.css +23 -0
- data/vendor/assets/components/codemirror/theme/elegant.css +13 -0
- data/vendor/assets/components/codemirror/theme/erlang-dark.css +34 -0
- data/vendor/assets/components/codemirror/theme/hopscotch.css +34 -0
- data/vendor/assets/components/codemirror/theme/icecoder.css +43 -0
- data/vendor/assets/components/codemirror/theme/isotope.css +34 -0
- data/vendor/assets/components/codemirror/theme/lesser-dark.css +47 -0
- data/vendor/assets/components/codemirror/theme/liquibyte.css +95 -0
- data/vendor/assets/components/codemirror/theme/material.css +53 -0
- data/vendor/assets/components/codemirror/theme/mbo.css +37 -0
- data/vendor/assets/components/codemirror/theme/mdn-like.css +46 -0
- data/vendor/assets/components/codemirror/theme/midnight.css +43 -0
- data/vendor/assets/components/codemirror/theme/monokai.css +36 -0
- data/vendor/assets/components/codemirror/theme/neat.css +12 -0
- data/vendor/assets/components/codemirror/theme/neo.css +43 -0
- data/vendor/assets/components/codemirror/theme/night.css +27 -0
- data/vendor/assets/components/codemirror/theme/oceanic-next.css +44 -0
- data/vendor/assets/components/codemirror/theme/panda-syntax.css +85 -0
- data/vendor/assets/components/codemirror/theme/paraiso-dark.css +38 -0
- data/vendor/assets/components/codemirror/theme/paraiso-light.css +38 -0
- data/vendor/assets/components/codemirror/theme/pastel-on-dark.css +52 -0
- data/vendor/assets/components/codemirror/theme/railscasts.css +34 -0
- data/vendor/assets/components/codemirror/theme/rubyblue.css +25 -0
- data/vendor/assets/components/codemirror/theme/seti.css +44 -0
- data/vendor/assets/components/codemirror/theme/shadowfox.css +52 -0
- data/vendor/assets/components/codemirror/theme/solarized.css +168 -0
- data/vendor/assets/components/codemirror/theme/the-matrix.css +30 -0
- data/vendor/assets/components/codemirror/theme/tomorrow-night-bright.css +35 -0
- data/vendor/assets/components/codemirror/theme/tomorrow-night-eighties.css +38 -0
- data/vendor/assets/components/codemirror/theme/ttcn.css +64 -0
- data/vendor/assets/components/codemirror/theme/twilight.css +32 -0
- data/vendor/assets/components/codemirror/theme/vibrant-ink.css +34 -0
- data/vendor/assets/components/codemirror/theme/xq-dark.css +53 -0
- data/vendor/assets/components/codemirror/theme/xq-light.css +43 -0
- data/vendor/assets/components/codemirror/theme/yeti.css +44 -0
- data/vendor/assets/components/codemirror/theme/zenburn.css +37 -0
- data/vendor/assets/components/eve/.bower.json +12 -0
- data/vendor/assets/components/eve/LICENSE +202 -0
- data/vendor/assets/components/eve/README.md +7 -0
- data/vendor/assets/components/eve/component.json +13 -0
- data/vendor/assets/components/eve/e.html +66 -0
- data/vendor/assets/components/eve/eve.js +371 -0
- data/vendor/assets/components/eve/package.json +18 -0
- data/vendor/assets/components/highlightjs/.bower.json +24 -0
- data/vendor/assets/components/highlightjs/LICENSE +24 -0
- data/vendor/assets/components/highlightjs/Makefile +21 -0
- data/vendor/assets/components/highlightjs/README.md +12 -0
- data/vendor/assets/components/highlightjs/bower.json +14 -0
- data/vendor/assets/components/highlightjs/component.json +12 -0
- data/vendor/assets/components/highlightjs/composer.json +26 -0
- data/vendor/assets/components/highlightjs/highlight.pack.js +16645 -0
- data/vendor/assets/components/highlightjs/highlight.pack.min.js +15 -0
- data/vendor/assets/components/highlightjs/package.json +8 -0
- data/vendor/assets/components/highlightjs/styles/agate.css +108 -0
- data/vendor/assets/components/highlightjs/styles/androidstudio.css +66 -0
- data/vendor/assets/components/highlightjs/styles/arduino-light.css +88 -0
- data/vendor/assets/components/highlightjs/styles/arta.css +73 -0
- data/vendor/assets/components/highlightjs/styles/ascetic.css +45 -0
- data/vendor/assets/components/highlightjs/styles/atelier-cave-dark.css +83 -0
- data/vendor/assets/components/highlightjs/styles/atelier-cave-light.css +85 -0
- data/vendor/assets/components/highlightjs/styles/atelier-cave.dark.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-cave.light.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-dune-dark.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-dune-light.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-dune.dark.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-dune.light.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-estuary-dark.css +84 -0
- data/vendor/assets/components/highlightjs/styles/atelier-estuary-light.css +84 -0
- data/vendor/assets/components/highlightjs/styles/atelier-estuary.dark.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-estuary.light.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-forest-dark.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-forest-light.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-forest.dark.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-forest.light.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-heath-dark.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-heath-light.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-heath.dark.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-heath.light.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-lakeside-dark.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-lakeside-light.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-lakeside.dark.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-lakeside.light.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-plateau-dark.css +84 -0
- data/vendor/assets/components/highlightjs/styles/atelier-plateau-light.css +84 -0
- data/vendor/assets/components/highlightjs/styles/atelier-plateau.dark.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-plateau.light.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-savanna-dark.css +84 -0
- data/vendor/assets/components/highlightjs/styles/atelier-savanna-light.css +84 -0
- data/vendor/assets/components/highlightjs/styles/atelier-savanna.dark.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-savanna.light.css +113 -0
- data/vendor/assets/components/highlightjs/styles/atelier-seaside-dark.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-seaside-light.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-seaside.dark.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-seaside.light.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-sulphurpool-dark.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-sulphurpool-light.css +69 -0
- data/vendor/assets/components/highlightjs/styles/atelier-sulphurpool.dark.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atelier-sulphurpool.light.css +94 -0
- data/vendor/assets/components/highlightjs/styles/atom-one-dark.css +96 -0
- data/vendor/assets/components/highlightjs/styles/atom-one-light.css +96 -0
- data/vendor/assets/components/highlightjs/styles/brown-paper.css +64 -0
- data/vendor/assets/components/highlightjs/styles/brown-papersq.png +0 -0
- data/vendor/assets/components/highlightjs/styles/brown_paper.css +103 -0
- data/vendor/assets/components/highlightjs/styles/brown_papersq.png +0 -0
- data/vendor/assets/components/highlightjs/styles/codepen-embed.css +60 -0
- data/vendor/assets/components/highlightjs/styles/color-brewer.css +71 -0
- data/vendor/assets/components/highlightjs/styles/darcula.css +77 -0
- data/vendor/assets/components/highlightjs/styles/dark.css +63 -0
- data/vendor/assets/components/highlightjs/styles/darkula.css +6 -0
- data/vendor/assets/components/highlightjs/styles/default.css +99 -0
- data/vendor/assets/components/highlightjs/styles/docco.css +97 -0
- data/vendor/assets/components/highlightjs/styles/dracula.css +76 -0
- data/vendor/assets/components/highlightjs/styles/far.css +71 -0
- data/vendor/assets/components/highlightjs/styles/foundation.css +88 -0
- data/vendor/assets/components/highlightjs/styles/github-gist.css +71 -0
- data/vendor/assets/components/highlightjs/styles/github.css +99 -0
- data/vendor/assets/components/highlightjs/styles/googlecode.css +89 -0
- data/vendor/assets/components/highlightjs/styles/grayscale.css +101 -0
- data/vendor/assets/components/highlightjs/styles/gruvbox-dark.css +108 -0
- data/vendor/assets/components/highlightjs/styles/gruvbox-light.css +108 -0
- data/vendor/assets/components/highlightjs/styles/hopscotch.css +83 -0
- data/vendor/assets/components/highlightjs/styles/hybrid.css +102 -0
- data/vendor/assets/components/highlightjs/styles/idea.css +97 -0
- data/vendor/assets/components/highlightjs/styles/ir-black.css +73 -0
- data/vendor/assets/components/highlightjs/styles/ir_black.css +106 -0
- data/vendor/assets/components/highlightjs/styles/kimbie.dark.css +74 -0
- data/vendor/assets/components/highlightjs/styles/kimbie.light.css +74 -0
- data/vendor/assets/components/highlightjs/styles/magula.css +70 -0
- data/vendor/assets/components/highlightjs/styles/mono-blue.css +59 -0
- data/vendor/assets/components/highlightjs/styles/monokai-sublime.css +83 -0
- data/vendor/assets/components/highlightjs/styles/monokai.css +70 -0
- data/vendor/assets/components/highlightjs/styles/monokai_sublime.css +154 -0
- data/vendor/assets/components/highlightjs/styles/obsidian.css +88 -0
- data/vendor/assets/components/highlightjs/styles/ocean.css +74 -0
- data/vendor/assets/components/highlightjs/styles/paraiso-dark.css +72 -0
- data/vendor/assets/components/highlightjs/styles/paraiso-light.css +72 -0
- data/vendor/assets/components/highlightjs/styles/paraiso.dark.css +96 -0
- data/vendor/assets/components/highlightjs/styles/paraiso.light.css +96 -0
- data/vendor/assets/components/highlightjs/styles/pojoaque.css +83 -0
- data/vendor/assets/components/highlightjs/styles/pojoaque.jpg +0 -0
- data/vendor/assets/components/highlightjs/styles/purebasic.css +96 -0
- data/vendor/assets/components/highlightjs/styles/qtcreator_dark.css +83 -0
- data/vendor/assets/components/highlightjs/styles/qtcreator_light.css +83 -0
- data/vendor/assets/components/highlightjs/styles/railscasts.css +106 -0
- data/vendor/assets/components/highlightjs/styles/rainbow.css +85 -0
- data/vendor/assets/components/highlightjs/styles/routeros.css +108 -0
- data/vendor/assets/components/highlightjs/styles/school-book.css +72 -0
- data/vendor/assets/components/highlightjs/styles/school-book.png +0 -0
- data/vendor/assets/components/highlightjs/styles/school_book.css +111 -0
- data/vendor/assets/components/highlightjs/styles/school_book.png +0 -0
- data/vendor/assets/components/highlightjs/styles/solarized-dark.css +84 -0
- data/vendor/assets/components/highlightjs/styles/solarized-light.css +84 -0
- data/vendor/assets/components/highlightjs/styles/solarized_dark.css +107 -0
- data/vendor/assets/components/highlightjs/styles/solarized_light.css +107 -0
- data/vendor/assets/components/highlightjs/styles/sunburst.css +102 -0
- data/vendor/assets/components/highlightjs/styles/tomorrow-night-blue.css +75 -0
- data/vendor/assets/components/highlightjs/styles/tomorrow-night-bright.css +74 -0
- data/vendor/assets/components/highlightjs/styles/tomorrow-night-eighties.css +74 -0
- data/vendor/assets/components/highlightjs/styles/tomorrow-night.css +75 -0
- data/vendor/assets/components/highlightjs/styles/tomorrow.css +72 -0
- data/vendor/assets/components/highlightjs/styles/vs.css +68 -0
- data/vendor/assets/components/highlightjs/styles/vs2015.css +115 -0
- data/vendor/assets/components/highlightjs/styles/xcode.css +93 -0
- data/vendor/assets/components/highlightjs/styles/xt256.css +92 -0
- data/vendor/assets/components/highlightjs/styles/zenburn.css +80 -0
- data/vendor/assets/components/jquery/.bower.json +25 -0
- data/vendor/assets/components/jquery/AUTHORS.txt +313 -0
- data/vendor/assets/components/jquery/LICENSE.txt +36 -0
- data/vendor/assets/components/jquery/README.md +67 -0
- data/vendor/assets/components/jquery/bower.json +14 -0
- data/vendor/assets/components/jquery/dist/core.js +399 -0
- data/vendor/assets/components/jquery/dist/jquery.js +10364 -0
- data/vendor/assets/components/jquery/dist/jquery.min.js +2 -0
- data/vendor/assets/components/jquery/dist/jquery.min.map +1 -0
- data/vendor/assets/components/jquery/dist/jquery.slim.js +8269 -0
- data/vendor/assets/components/jquery/dist/jquery.slim.min.js +2 -0
- data/vendor/assets/components/jquery/dist/jquery.slim.min.map +1 -0
- data/vendor/assets/components/jquery/external/sizzle/LICENSE.txt +36 -0
- data/vendor/assets/components/jquery/external/sizzle/dist/sizzle.js +2272 -0
- data/vendor/assets/components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
- data/vendor/assets/components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
- data/vendor/assets/components/jquery/src/.eslintrc.json +5 -0
- data/vendor/assets/components/jquery/src/ajax.js +856 -0
- data/vendor/assets/components/jquery/src/ajax/jsonp.js +103 -0
- data/vendor/assets/components/jquery/src/ajax/load.js +77 -0
- data/vendor/assets/components/jquery/src/ajax/parseXML.js +30 -0
- data/vendor/assets/components/jquery/src/ajax/script.js +77 -0
- data/vendor/assets/components/jquery/src/ajax/var/location.js +5 -0
- data/vendor/assets/components/jquery/src/ajax/var/nonce.js +5 -0
- data/vendor/assets/components/jquery/src/ajax/var/rquery.js +5 -0
- data/vendor/assets/components/jquery/src/ajax/xhr.js +170 -0
- data/vendor/assets/components/jquery/src/attributes.js +13 -0
- data/vendor/assets/components/jquery/src/attributes/attr.js +141 -0
- data/vendor/assets/components/jquery/src/attributes/classes.js +186 -0
- data/vendor/assets/components/jquery/src/attributes/prop.js +143 -0
- data/vendor/assets/components/jquery/src/attributes/support.js +33 -0
- data/vendor/assets/components/jquery/src/attributes/val.js +191 -0
- data/vendor/assets/components/jquery/src/callbacks.js +236 -0
- data/vendor/assets/components/jquery/src/core.js +399 -0
- data/vendor/assets/components/jquery/src/core/DOMEval.js +30 -0
- data/vendor/assets/components/jquery/src/core/access.js +72 -0
- data/vendor/assets/components/jquery/src/core/camelCase.js +23 -0
- data/vendor/assets/components/jquery/src/core/init.js +129 -0
- data/vendor/assets/components/jquery/src/core/nodeName.js +13 -0
- data/vendor/assets/components/jquery/src/core/parseHTML.js +65 -0
- data/vendor/assets/components/jquery/src/core/ready-no-deferred.js +97 -0
- data/vendor/assets/components/jquery/src/core/ready.js +86 -0
- data/vendor/assets/components/jquery/src/core/readyException.js +13 -0
- data/vendor/assets/components/jquery/src/core/stripAndCollapse.js +14 -0
- data/vendor/assets/components/jquery/src/core/support.js +20 -0
- data/vendor/assets/components/jquery/src/core/toType.js +20 -0
- data/vendor/assets/components/jquery/src/core/var/rsingleTag.js +6 -0
- data/vendor/assets/components/jquery/src/css.js +481 -0
- data/vendor/assets/components/jquery/src/css/addGetHookIf.js +26 -0
- data/vendor/assets/components/jquery/src/css/adjustCSS.js +73 -0
- data/vendor/assets/components/jquery/src/css/curCSS.js +65 -0
- data/vendor/assets/components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
- data/vendor/assets/components/jquery/src/css/showHide.js +105 -0
- data/vendor/assets/components/jquery/src/css/support.js +102 -0
- data/vendor/assets/components/jquery/src/css/var/cssExpand.js +5 -0
- data/vendor/assets/components/jquery/src/css/var/getStyles.js +17 -0
- data/vendor/assets/components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
- data/vendor/assets/components/jquery/src/css/var/rboxStyle.js +7 -0
- data/vendor/assets/components/jquery/src/css/var/rnumnonpx.js +7 -0
- data/vendor/assets/components/jquery/src/css/var/swap.js +26 -0
- data/vendor/assets/components/jquery/src/data.js +180 -0
- data/vendor/assets/components/jquery/src/data/Data.js +162 -0
- data/vendor/assets/components/jquery/src/data/var/acceptData.js +19 -0
- data/vendor/assets/components/jquery/src/data/var/dataPriv.js +7 -0
- data/vendor/assets/components/jquery/src/data/var/dataUser.js +7 -0
- data/vendor/assets/components/jquery/src/deferred.js +399 -0
- data/vendor/assets/components/jquery/src/deferred/exceptionHook.js +21 -0
- data/vendor/assets/components/jquery/src/deprecated.js +98 -0
- data/vendor/assets/components/jquery/src/dimensions.js +57 -0
- data/vendor/assets/components/jquery/src/effects.js +702 -0
- data/vendor/assets/components/jquery/src/effects/Tween.js +123 -0
- data/vendor/assets/components/jquery/src/effects/animatedSelector.js +15 -0
- data/vendor/assets/components/jquery/src/event.js +748 -0
- data/vendor/assets/components/jquery/src/event/ajax.js +22 -0
- data/vendor/assets/components/jquery/src/event/alias.js +29 -0
- data/vendor/assets/components/jquery/src/event/focusin.js +55 -0
- data/vendor/assets/components/jquery/src/event/support.js +11 -0
- data/vendor/assets/components/jquery/src/event/trigger.js +199 -0
- data/vendor/assets/components/jquery/src/exports/amd.js +26 -0
- data/vendor/assets/components/jquery/src/exports/global.js +34 -0
- data/vendor/assets/components/jquery/src/jquery.js +40 -0
- data/vendor/assets/components/jquery/src/manipulation.js +486 -0
- data/vendor/assets/components/jquery/src/manipulation/_evalUrl.js +23 -0
- data/vendor/assets/components/jquery/src/manipulation/buildFragment.js +105 -0
- data/vendor/assets/components/jquery/src/manipulation/getAll.js +32 -0
- data/vendor/assets/components/jquery/src/manipulation/setGlobalEval.js +22 -0
- data/vendor/assets/components/jquery/src/manipulation/support.js +35 -0
- data/vendor/assets/components/jquery/src/manipulation/var/rcheckableType.js +5 -0
- data/vendor/assets/components/jquery/src/manipulation/var/rscriptType.js +5 -0
- data/vendor/assets/components/jquery/src/manipulation/var/rtagName.js +5 -0
- data/vendor/assets/components/jquery/src/manipulation/wrapMap.js +29 -0
- data/vendor/assets/components/jquery/src/offset.js +233 -0
- data/vendor/assets/components/jquery/src/queue.js +145 -0
- data/vendor/assets/components/jquery/src/queue/delay.js +24 -0
- data/vendor/assets/components/jquery/src/selector-native.js +237 -0
- data/vendor/assets/components/jquery/src/selector-sizzle.js +19 -0
- data/vendor/assets/components/jquery/src/selector.js +3 -0
- data/vendor/assets/components/jquery/src/serialize.js +132 -0
- data/vendor/assets/components/jquery/src/traversing.js +191 -0
- data/vendor/assets/components/jquery/src/traversing/findFilter.js +97 -0
- data/vendor/assets/components/jquery/src/traversing/var/dir.js +22 -0
- data/vendor/assets/components/jquery/src/traversing/var/rneedsContext.js +8 -0
- data/vendor/assets/components/jquery/src/traversing/var/siblings.js +17 -0
- data/vendor/assets/components/jquery/src/var/ObjectFunctionString.js +7 -0
- data/vendor/assets/components/jquery/src/var/arr.js +5 -0
- data/vendor/assets/components/jquery/src/var/class2type.js +6 -0
- data/vendor/assets/components/jquery/src/var/concat.js +7 -0
- data/vendor/assets/components/jquery/src/var/document.js +5 -0
- data/vendor/assets/components/jquery/src/var/documentElement.js +7 -0
- data/vendor/assets/components/jquery/src/var/fnToString.js +7 -0
- data/vendor/assets/components/jquery/src/var/getProto.js +5 -0
- data/vendor/assets/components/jquery/src/var/hasOwn.js +7 -0
- data/vendor/assets/components/jquery/src/var/indexOf.js +7 -0
- data/vendor/assets/components/jquery/src/var/isFunction.js +13 -0
- data/vendor/assets/components/jquery/src/var/isWindow.js +8 -0
- data/vendor/assets/components/jquery/src/var/pnum.js +5 -0
- data/vendor/assets/components/jquery/src/var/push.js +7 -0
- data/vendor/assets/components/jquery/src/var/rcssNum.js +9 -0
- data/vendor/assets/components/jquery/src/var/rnothtmlwhite.js +8 -0
- data/vendor/assets/components/jquery/src/var/slice.js +7 -0
- data/vendor/assets/components/jquery/src/var/support.js +6 -0
- data/vendor/assets/components/jquery/src/var/toString.js +7 -0
- data/vendor/assets/components/jquery/src/wrap.js +78 -0
- data/vendor/assets/components/markdown-it/.bower.json +38 -0
- data/vendor/assets/components/markdown-it/CHANGELOG.md +442 -0
- data/vendor/assets/components/markdown-it/CONTRIBUTING.md +15 -0
- data/vendor/assets/components/markdown-it/LICENSE +22 -0
- data/vendor/assets/components/markdown-it/Procfile +1 -0
- data/vendor/assets/components/markdown-it/README.md +294 -0
- data/vendor/assets/components/markdown-it/bin/markdown-it.js +113 -0
- data/vendor/assets/components/markdown-it/bower.json +28 -0
- data/vendor/assets/components/markdown-it/dist/markdown-it.js +7963 -0
- data/vendor/assets/components/markdown-it/dist/markdown-it.min.js +1 -0
- data/vendor/assets/components/markdown-it/package.json +64 -0
- data/vendor/assets/components/plantuml-encoder/.bower.json +29 -0
- data/vendor/assets/components/plantuml-encoder/LICENSE +19 -0
- data/vendor/assets/components/plantuml-encoder/README.md +38 -0
- data/vendor/assets/components/plantuml-encoder/bower.json +20 -0
- data/vendor/assets/components/plantuml-encoder/dist/plantuml-encoder.js +3994 -0
- data/vendor/assets/components/plantuml-encoder/dist/plantuml-encoder.min.js +1 -0
- data/vendor/assets/components/plantuml-encoder/package.json +33 -0
- data/vendor/assets/components/raphael/.bower.json +45 -0
- data/vendor/assets/components/raphael/bower.json +31 -0
- data/vendor/assets/components/raphael/dev/banner.txt +8 -0
- data/vendor/assets/components/raphael/dev/raphael.amd.js +14 -0
- data/vendor/assets/components/raphael/dev/raphael.core.js +5413 -0
- data/vendor/assets/components/raphael/dev/raphael.svg.js +1428 -0
- data/vendor/assets/components/raphael/dev/raphael.vml.js +1010 -0
- data/vendor/assets/components/raphael/dev/test/svg/dom.js +295 -0
- data/vendor/assets/components/raphael/dev/test/vml/dom.js +5 -0
- data/vendor/assets/components/raphael/license.txt +21 -0
- data/vendor/assets/components/raphael/raphael.js +8330 -0
- data/vendor/assets/components/raphael/raphael.min.js +3 -0
- data/vendor/assets/components/raphael/raphael.no-deps.js +7959 -0
- data/vendor/assets/components/raphael/raphael.no-deps.min.js +3 -0
- data/vendor/assets/components/raphael/webpack.config.js +62 -0
- data/vendor/assets/components/squire-rte/.bower.json +34 -0
- data/vendor/assets/components/squire-rte/Demo.html +143 -0
- data/vendor/assets/components/squire-rte/LICENSE +21 -0
- data/vendor/assets/components/squire-rte/Makefile +22 -0
- data/vendor/assets/components/squire-rte/README.md +473 -0
- data/vendor/assets/components/squire-rte/bower.json +24 -0
- data/vendor/assets/components/squire-rte/build/document.html +54 -0
- data/vendor/assets/components/squire-rte/build/squire-raw.js +4722 -0
- data/vendor/assets/components/squire-rte/build/squire.js +2 -0
- data/vendor/assets/components/squire-rte/package.json +31 -0
- data/vendor/assets/components/squire-rte/source/Clean.js +358 -0
- data/vendor/assets/components/squire-rte/source/Clipboard.js +331 -0
- data/vendor/assets/components/squire-rte/source/Constants.js +60 -0
- data/vendor/assets/components/squire-rte/source/Editor.js +2201 -0
- data/vendor/assets/components/squire-rte/source/KeyHandlers.js +502 -0
- data/vendor/assets/components/squire-rte/source/Node.js +553 -0
- data/vendor/assets/components/squire-rte/source/Range.js +540 -0
- data/vendor/assets/components/squire-rte/source/TreeWalker.js +118 -0
- data/vendor/assets/components/squire-rte/source/document.html +54 -0
- data/vendor/assets/components/squire-rte/source/exports.js +42 -0
- data/vendor/assets/components/squire-rte/source/intro.js +6 -0
- data/vendor/assets/components/squire-rte/source/outro.js +22 -0
- data/vendor/assets/components/to-mark/.bower.json +35 -0
- data/vendor/assets/components/to-mark/bower.json +22 -0
- data/vendor/assets/components/to-mark/demo/demo.html +24 -0
- data/vendor/assets/components/to-mark/demo/demo2.html +94 -0
- data/vendor/assets/components/to-mark/dist/to-mark.js +1283 -0
- data/vendor/assets/components/to-mark/dist/to-mark.min.js +1 -0
- data/vendor/assets/components/to-mark/gulpfile.js +112 -0
- data/vendor/assets/components/to-mark/karma.conf.js +260 -0
- data/vendor/assets/components/to-mark/package-lock.json +13061 -0
- data/vendor/assets/components/to-mark/package.json +53 -0
- data/vendor/assets/components/tui-chart/.bower.json +44 -0
- data/vendor/assets/components/tui-chart/CODE_OF_CONDUCT.md +73 -0
- data/vendor/assets/components/tui-chart/CONTRIBUTING.md +91 -0
- data/vendor/assets/components/tui-chart/LICENSE +21 -0
- data/vendor/assets/components/tui-chart/README.md +142 -0
- data/vendor/assets/components/tui-chart/bower.json +33 -0
- data/vendor/assets/components/tui-chart/dist/maps/china.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/japan.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/singapore.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/south-korea.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/taiwan.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/thailand.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/usa.js +10 -0
- data/vendor/assets/components/tui-chart/dist/maps/world.js +11 -0
- data/vendor/assets/components/tui-chart/dist/tui-chart.css +704 -0
- data/vendor/assets/components/tui-chart/dist/tui-chart.js +40567 -0
- data/vendor/assets/components/tui-chart/dist/tui-chart.min.css +10 -0
- data/vendor/assets/components/tui-chart/dist/tui-chart.min.js +20 -0
- data/vendor/assets/components/tui-chart/docs/COMMIT_MESSAGE_CONVENTION.md +49 -0
- data/vendor/assets/components/tui-chart/docs/ISSUE_TEMPLATE.md +24 -0
- data/vendor/assets/components/tui-chart/docs/PULL_REQUEST_TEMPLATE.md +42 -0
- data/vendor/assets/components/tui-chart/docs/README.md +11 -0
- data/vendor/assets/components/tui-chart/docs/wiki/README.md +27 -0
- data/vendor/assets/components/tui-chart/docs/wiki/_Sidebar.md +31 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-export-menu.md +66 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-type-radial.md +121 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-bar,column.md +312 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-bubble.md +63 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-column-line-combo.md +104 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-heatmap.md +39 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-line,area.md +333 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-line-area-combo.md +78 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-line-scatter-combo.md +101 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-map.md +153 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-pie-donut-combo.md +98 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-pie.md +186 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-scatter.md +58 -0
- data/vendor/assets/components/tui-chart/docs/wiki/chart-types-treemap.md +158 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-china-map.md +38 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-japan-map.md +51 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-singapore-map.md +9 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-south-korea-map.md +21 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-taiwan-map.md +26 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-thailand-map.md +82 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-usa-map.md +55 -0
- data/vendor/assets/components/tui-chart/docs/wiki/code-table-of-world-map.md +180 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-axes.md +209 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-chart.md +157 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-circle-legend.md +20 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-legend.md +89 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-plot.md +141 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-series.md +240 -0
- data/vendor/assets/components/tui-chart/docs/wiki/features-tooltip.md +223 -0
- data/vendor/assets/components/tui-chart/docs/wiki/getting-started.md +74 -0
- data/vendor/assets/components/tui-chart/docs/wiki/import-chart-data-from-existing-table-element.md +150 -0
- data/vendor/assets/components/tui-chart/docs/wiki/table-of-supported-options.md +344 -0
- data/vendor/assets/components/tui-chart/docs/wiki/theme.md +338 -0
- data/vendor/assets/components/tui-chart/package-lock.json +8881 -0
- data/vendor/assets/components/tui-code-snippet/.bower.json +31 -0
- data/vendor/assets/components/tui-code-snippet/LICENSE +21 -0
- data/vendor/assets/components/tui-code-snippet/README.md +109 -0
- data/vendor/assets/components/tui-code-snippet/bower.json +20 -0
- data/vendor/assets/components/tui-code-snippet/demo/postBridge/README.md +26 -0
- data/vendor/assets/components/tui-code-snippet/demo/postBridge/public/popup.html +27 -0
- data/vendor/assets/components/tui-code-snippet/demo/postBridge/public/postBridge.html +31 -0
- data/vendor/assets/components/tui-code-snippet/demo/postBridge/server.js +28 -0
- data/vendor/assets/components/tui-code-snippet/dist/tui-code-snippet.js +4228 -0
- data/vendor/assets/components/tui-code-snippet/dist/tui-code-snippet.min.js +7 -0
- data/vendor/assets/components/tui-code-snippet/package-lock.json +6038 -0
- data/vendor/assets/components/tui-color-picker/.bower.json +37 -0
- data/vendor/assets/components/tui-color-picker/ISSUE_TEMPLATE.md +26 -0
- data/vendor/assets/components/tui-color-picker/LICENSE +34 -0
- data/vendor/assets/components/tui-color-picker/README.md +69 -0
- data/vendor/assets/components/tui-color-picker/bower.json +26 -0
- data/vendor/assets/components/tui-color-picker/dist/tui-color-picker.css +148 -0
- data/vendor/assets/components/tui-color-picker/dist/tui-color-picker.js +3146 -0
- data/vendor/assets/components/tui-color-picker/dist/tui-color-picker.min.css +7 -0
- data/vendor/assets/components/tui-color-picker/dist/tui-color-picker.min.js +9 -0
- data/vendor/assets/components/tui-color-picker/package-lock.json +8440 -0
- data/vendor/assets/components/tui-editor/.bower.json +71 -0
- data/vendor/assets/components/tui-editor/CODE_OF_CONDUCT.md +73 -0
- data/vendor/assets/components/tui-editor/CONTRIBUTING.md +92 -0
- data/vendor/assets/components/tui-editor/LICENSE +21 -0
- data/vendor/assets/components/tui-editor/README.md +204 -0
- data/vendor/assets/components/tui-editor/bower.json +59 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Editor-all.js +36850 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Editor-all.min.js +13 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Editor.js +24646 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Editor.min.js +7 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Viewer-all.js +14768 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Viewer-all.min.js +13 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Viewer.js +3686 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-Viewer.min.js +7 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-contents.css +239 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-contents.min.css +1 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extChart.js +7040 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extChart.min.js +13 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extColorSyntax.js +472 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extColorSyntax.min.js +7 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extScrollSync.js +1241 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extScrollSync.min.js +7 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extTable.js +3930 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extTable.min.js +7 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extUML.js +212 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor-extUML.min.js +7 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor.css +1166 -0
- data/vendor/assets/components/tui-editor/dist/tui-editor.min.css +1 -0
- data/vendor/assets/components/tui-editor/docs/COMMIT_MESSAGE_CONVENTION.md +49 -0
- data/vendor/assets/components/tui-editor/docs/PULL_REQUEST_TEMPLATE.md +41 -0
- data/vendor/assets/components/tui-editor/docs/README.md +13 -0
- data/vendor/assets/components/tui-editor/docs/getting-started-with-bower.md +93 -0
- data/vendor/assets/components/tui-editor/docs/getting-started.md +76 -0
- data/vendor/assets/components/tui-editor/docs/using-extensions.md +91 -0
- data/vendor/assets/components/tui-editor/docs/writing-your-own-extension.md +167 -0
- data/vendor/assets/components/tui-editor/examples/example00-demo.html +85 -0
- data/vendor/assets/components/tui-editor/examples/example01-basic.html +37 -0
- data/vendor/assets/components/tui-editor/examples/example02-viewer-basic.html +68 -0
- data/vendor/assets/components/tui-editor/examples/example03-jquery.html +36 -0
- data/vendor/assets/components/tui-editor/examples/example04-viewer-jquery.html +67 -0
- data/vendor/assets/components/tui-editor/examples/example05-scrollsync.html +77 -0
- data/vendor/assets/components/tui-editor/examples/example06-colorsyntax.html +44 -0
- data/vendor/assets/components/tui-editor/examples/example07-table.html +48 -0
- data/vendor/assets/components/tui-editor/examples/example08-uml.html +69 -0
- data/vendor/assets/components/tui-editor/examples/example09-multiple-extensions.html +85 -0
- data/vendor/assets/components/tui-editor/examples/example10-viewer-multiple-extensions.html +86 -0
- data/vendor/assets/components/tui-editor/examples/example11-chart.html +60 -0
- data/vendor/assets/components/tui-editor/examples/example12-writing-extension.html +66 -0
- data/vendor/assets/components/tui-editor/examples/examples.json +41 -0
- data/vendor/assets/components/tui-editor/examples/explain.css +7 -0
- data/vendor/assets/components/tui-editor/package-lock.json +13289 -0
- data/vendor/assets/components/tui-editor/package.json +90 -0
- metadata +956 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
/*!
|
2
|
+
* tui-editor
|
3
|
+
* @version 1.0.2
|
4
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com> (https://nhnent.github.io/tui.editor/)
|
5
|
+
* @license MIT
|
6
|
+
*/
|
7
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery"),require("tui-code-snippet"),require("to-mark"),require("tui-chart"),require("markdown-it"),require("highlight.js"),require("tui-color-picker"),require("plantuml-encoder")):"function"==typeof define&&define.amd?define(["jquery","tui-code-snippet","to-mark","tui-chart","markdown-it","highlight.js","tui-color-picker","plantuml-encoder"],t):"object"==typeof exports?exports.Editor=t(require("jquery"),require("tui-code-snippet"),require("to-mark"),require("tui-chart"),require("markdown-it"),require("highlight.js"),require("tui-color-picker"),require("plantuml-encoder")):(e.tui=e.tui||{},e.tui.Editor=t(e.$,e.tui&&e.tui.util,e.toMark,e.tui&&e.tui.chart,e.markdownit,e.hljs,e.tui&&e.tui.colorPicker,e.plantumlEncoder))}("undefined"!=typeof self?self:this,function(e,t,n,r,o,a,i,u){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="dist/",t(t.s=27)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=void 0;try{r=n(!function(){var e=new Error('Cannot find module "../editor"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}if(!r)try{r=n(16)}catch(e){}t.default=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){var r=(0,w.default)(e),o=r.attr("colspan"),a=r.attr("rowspan"),i=e.nodeName;if("TH"!==i&&"TD"!==i)return null;var u={nodeName:e.nodeName,colspan:o?parseInt(o,10):1,rowspan:a?parseInt(a,10):1,content:r.html(),elementIndex:{rowIndex:t,colIndex:n}};return"TH"===e.nodeName&&e.align&&(u.align=e.align),u}function a(e,t,n,r){var o=t.colspan,a=t.rowspan,i=t.nodeName,u=o>1,l=a>1;if(u||l){var s=n+a,c=r+o;E.default.range(n,s).forEach(function(t){e[t]=e[t]||[],E.default.range(r,c).forEach(function(o){var a={nodeName:i};t===n&&o===r||(u&&(a.colMergeWith=r),l&&(a.rowMergeWith=n),e[t][o]=a)})})}}function i(e){var t=[];return e.find("tr").each(function(e,n){var r=0;t[e]=t[e]||[],(0,w.default)(n).children().each(function(n,i){var u=o(i,e,n);if(u){for(var l=n+r;t[e][l];)l+=1,r+=1;t[e][l]=u,a(t,u,e,l)}})}),e[0].className&&(t.className=e[0].className),t}function u(e){var t=[];return e.forEach(function(e,n){var r=[];e.forEach(function(e,t){E.default.isUndefined(e.colMergeWith)&&E.default.isUndefined(e.rowMergeWith)&&r.push({rowIndex:n,colIndex:t})}),t.push(r)}),t}function l(e){var t=e[0];return t.map(function(e){return E.default.isExisty(e.colMergeWith)?t[e.colMergeWith].align:e.align})}function s(e,t){var n=l(e),r=t.map(function(t){return t.map(function(t){var r=t.rowIndex,o=t.colIndex;return E.default.extend({align:n[o]},e[r][o])})});return e.className&&(r.className=e.className),r}function c(e,t,n){return{nodeName:n||"TD",colspan:1,rowspan:1,content:k,elementIndex:{rowIndex:e,colIndex:t}}}function f(e){var t=e.closest("tr"),n=t.prevAll().length;return"TBODY"===t.parent()[0].nodeName&&(n+=1),n}function d(e){return e.closest("td, th").prevAll().length}function h(e,t){var n=f(t),r=d(t);return e[n][r]}function p(e,t,n){var r=e[t][n],o=t;return r.rowspan>1&&(o+=r.rowspan-1),o}function g(e,t,n){var r=e[t][n],o=n;return r.colspan>1&&(o+=r.colspan-1),o}function v(e,t,n){var r=e[t][n];return t=E.default.isExisty(r.rowMergeWith)?r.rowMergeWith:t,n=E.default.isExisty(r.colMergeWith)?r.colMergeWith:n,e[t][n].elementIndex}function m(e,t){e.forEach(function(e,n){var r=e.length,o=e[0].nodeName;E.default.range(r,t).forEach(function(t){e.push(c(n,t,o))})})}function b(e){var t=e[0],n=t.length,r=!0;if(!n&&e[1])E.default.range(0,e[1].length).forEach(function(e){t.push(c(0,e,"TH"))});else if("TH"!==e[0][0].nodeName){var o,a=E.default.range(0,n).map(function(e){return c(0,e,"TH")});(o=[]).concat.apply(o,e).forEach(function(e){e.elementIndex&&(e.elementIndex.rowIndex+=1)}),e.unshift(a)}else if(1===e.length){var i=E.default.range(0,n).map(function(e){return c(1,e,"TD")});e.push(i)}else r=!1;return r}Object.defineProperty(t,"__esModule",{value:!0}),t.createTableData=i,t.createCellIndexData=u;var y=n(0),w=r(y),_=n(1),E=r(_),k=E.default.browser.msie?"":"<br>";t.default={createTableData:i,createCellIndexData:u,createRenderData:s,findElementRowIndex:f,findElementColIndex:d,findCellIndex:h,createBasicCell:c,findRowMergedLastIndex:p,findColMergedLastIndex:g,findElementIndex:v,stuffCellsIntoIncompleteRow:m,addTbodyOrTheadIfNeed:b}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.colspan>1?' colspan="'+e.colspan+'"':"";return t+=e.rowspan>1?' rowspan="'+e.rowspan+'"':"",t+=e.align?' align="'+e.align+'"':"","<"+e.nodeName+t+">"+e.content+"</"+e.nodeName+">"}function a(e,t){var n="";return e.length&&(n=e.map(function(e){return"<tr>"+e.map(o).join("")+"</tr>"}).join(""),n="<"+t+">"+n+"</"+t+">"),n}function i(e){var t=[e[0]],n=e.slice(1),r=a(t,"THEAD"),o=a(n,"TBODY");return"<table"+(e.className?' class="'+e.className+'"':"")+">"+(r+o)+"</renderData>"}function u(e,t){var n=d.default.createCellIndexData(t),r=d.default.createRenderData(t,n),o=(0,c.default)(i(r));return e.replaceWith(o),o}function l(e,t,n){t.selectNodeContents(n),t.collapse(!0),e.setSelection(t)}Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),c=r(s),f=n(3),d=r(f);t.default={createTableHtml:i,replaceTable:u,focusToCell:l}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){var r=g.default.createCellIndexData(e),o=g.default.findCellIndex(r,t),a=g.default.findCellIndex(r,n),i=void 0,u=void 0,l=void 0,s=void 0;return o.rowIndex>a.rowIndex?(i=a.rowIndex,u=o.rowIndex):(i=o.rowIndex,u=a.rowIndex),o.colIndex>a.colIndex?(l=a.colIndex,s=o.colIndex):(l=o.colIndex,s=a.colIndex),{start:{rowIndex:i,colIndex:l},end:{rowIndex:u,colIndex:s}}}function a(e,t,n){var r=t[n].rowIndex,o=e[r];h.default.range(t.start.colIndex,t.end.colIndex+1).forEach(function(n){var a=o[n],i=a.rowMergeWith,u=-1;h.default.isExisty(i)?(i<t.start.rowIndex&&(t.start.rowIndex=i),u=i+e[i][n].rowspan-1):a.rowspan>1&&(u=r+a.rowspan-1),u>t.end.rowIndex&&(t.end.rowIndex=u)})}function i(e,t,n,r){var o=e[n],a=o[r],i=a.colMergeWith,u=-1;h.default.isExisty(i)?(i<t.start.colIndex&&(t.start.colIndex=i),u=i+o[i].colspan-1):a.colspan>1&&(u=r+a.colspan-1),u>t.end.colIndex&&(t.end.colIndex=u)}function u(e,t){for(var n="";n!==JSON.stringify(t);)n=JSON.stringify(t),a(e,t,"start"),a(e,t,"end"),h.default.range(t.start.rowIndex,t.end.rowIndex+1).forEach(function(n){i(e,t,n,t.start.colIndex),i(e,t,n,t.end.colIndex)});return t}function l(e,t,n){return u(e,o(e,t,n))}function s(e,t,n){var r=g.default.createCellIndexData(e),o={};if(t.length){var a=g.default.findCellIndex(r,t.first()),i=h.default.extend({},a);t.each(function(t,n){var o=g.default.findCellIndex(r,(0,f.default)(n)),a=e[o.rowIndex][o.colIndex],u=o.rowIndex+a.rowspan-1,l=o.colIndex+a.colspan-1;i.rowIndex=Math.max(i.rowIndex,u),i.colIndex=Math.max(i.colIndex,l)}),o.start=a,o.end=i}else{var u=g.default.findCellIndex(r,n);o.start=u,o.end=h.default.extend({},u)}return o}Object.defineProperty(t,"__esModule",{value:!0});var c=n(0),f=r(c),d=n(1),h=r(d),p=n(3),g=r(p);t.default={findSelectionRange:l,getTableSelectionRange:s}},function(e,t,n){"use strict";function r(e){if(!(this instanceof r))return new r(e);s.call(this,e),c.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",o)}function o(){this.allowHalfOpen||this._writableState.ended||i(a,this)}function a(e){e.end()}var i=n(11),u=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=r;var l=n(9);l.inherits=n(7);var s=n(20),c=n(15);l.inherits(r,s);for(var f=u(c.prototype),d=0;d<f.length;d++){var h=f[d];r.prototype[h]||(r.prototype[h]=c.prototype[h])}Object.defineProperty(r.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),r.prototype._destroy=function(e,t){this.push(null),this.end(),i(t,e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){(function(e){function n(e){return Array.isArray?Array.isArray(e):"[object Array]"===v(e)}function r(e){return"boolean"==typeof e}function o(e){return null===e}function a(e){return null==e}function i(e){return"number"==typeof e}function u(e){return"string"==typeof e}function l(e){return"symbol"==typeof e}function s(e){return void 0===e}function c(e){return"[object RegExp]"===v(e)}function f(e){return"object"==typeof e&&null!==e}function d(e){return"[object Date]"===v(e)}function h(e){return"[object Error]"===v(e)||e instanceof Error}function p(e){return"function"==typeof e}function g(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function v(e){return Object.prototype.toString.call(e)}t.isArray=n,t.isBoolean=r,t.isNull=o,t.isNullOrUndefined=a,t.isNumber=i,t.isString=u,t.isSymbol=l,t.isUndefined=s,t.isRegExp=c,t.isObject=f,t.isDate=d,t.isError=h,t.isFunction=p,t.isPrimitive=g,t.isBuffer=e.isBuffer}).call(t,n(23).Buffer)},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(c===setTimeout)return setTimeout(e,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function a(e){if(f===clearTimeout)return clearTimeout(e);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function i(){g&&h&&(g=!1,h.length?p=h.concat(p):v=-1,p.length&&u())}function u(){if(!g){var e=o(i);g=!0;for(var t=p.length;t;){for(h=p,p=[];++v<t;)h&&h[v].run();v=-1,t=p.length}h=null,g=!1,a(e)}}function l(e,t){this.fun=e,this.array=t}function s(){}var c,f,d=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:n}catch(e){c=n}try{f="function"==typeof clearTimeout?clearTimeout:r}catch(e){f=r}}();var h,p=[],g=!1,v=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];p.push(new l(e,t)),1!==p.length||g||o(u)},l.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=s,d.addListener=s,d.once=s,d.off=s,d.removeListener=s,d.removeAllListeners=s,d.emit=s,d.prependListener=s,d.prependOnceListener=s,d.listeners=function(e){return[]},d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,t,n){"use strict";(function(t){function n(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,i,u=arguments.length;switch(u){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,o)});default:for(a=new Array(u-1),i=0;i<a.length;)a[i++]=arguments[i];return t.nextTick(function(){e.apply(null,a)})}}!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports=n:e.exports=t.nextTick}).call(t,n(10))},function(e,t,n){function r(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}var a=n(23),i=a.Buffer;i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=a:(r(a,t),t.Buffer=o),r(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return a.SlowBuffer(e)}},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function o(e){return"number"==typeof e}function a(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,o,u,l,s;if(this._events||(this._events={}),"error"===e&&(!this._events.error||a(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(n=this._events[e],i(n))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:u=Array.prototype.slice.call(arguments,1),n.apply(this,u)}else if(a(n))for(u=Array.prototype.slice.call(arguments,1),s=n.slice(),o=s.length,l=0;l<o;l++)s[l].apply(this,u);return!0},n.prototype.addListener=function(e,t){var o;if(!r(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(t.listener)?t.listener:t),this._events[e]?a(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,a(this._events[e])&&!this._events[e].warned&&(o=i(this._maxListeners)?n.defaultMaxListeners:this._maxListeners)&&o>0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),o||(o=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var o=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,o,i,u;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],i=n.length,o=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(a(n)){for(u=i;u-- >0;)if(n[u]===t||n[u].listener&&n[u].listener===t){o=u;break}if(o<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],r(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){t=e.exports=n(20),t.Stream=t,t.Readable=t,t.Writable=n(15),t.Duplex=n(6),t.Transform=n(26),t.PassThrough=n(57)},function(e,t,n){"use strict";(function(t,r,o){function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){M(t,e)}}function i(e){return N.from(e)}function u(e){return N.isBuffer(e)||e instanceof L}function l(){}function s(e,t){I=I||n(6),e=e||{},this.objectMode=!!e.objectMode,t instanceof I&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,o=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:o,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===e.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){b(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function c(e){if(I=I||n(6),!(B.call(c,this)||this instanceof I))return new c(e);this._writableState=new s(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),P.call(this)}function f(e,t){var n=new Error("write after end");e.emit("error",n),S(t,n)}function d(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),S(r,a),o=!1),o}function h(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=N.from(t,n)),t}function p(e,t,n,r,o,a){if(!n){var i=h(t,r,o);r!==i&&(n=!0,o="buffer",r=i)}var u=t.objectMode?1:r.length;t.length+=u;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:a,next:null},s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else g(e,t,!1,u,r,o,a);return l}function g(e,t,n,r,o,a,i){t.writelen=r,t.writecb=i,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,a,t.onwrite),t.sync=!1}function v(e,t,n,r,o){--t.pendingcb,n?(S(o,r),S(C,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),C(e,t))}function m(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function b(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(m(n),t)v(e,n,r,t,o);else{var a=E(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||_(e,n),r?R(y,e,n,a,o):y(e,n,a,o)}}function y(e,t,n,r){n||w(e,t),t.pendingcb--,r(),C(e,t)}function w(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function _(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var u=0,l=!0;n;)o[u]=n,n.isBuf||(l=!1),n=n.next,u+=1;o.allBuffers=l,g(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t)}else{for(;n;){var s=n.chunk,c=n.encoding,f=n.callback;if(g(e,t,!1,t.objectMode?1:s.length,s,c,f),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function E(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function k(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),C(e,t)})}function x(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,S(k,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function C(e,t){var n=E(t);return n&&(x(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}function T(e,t,n){t.ending=!0,C(e,t),n&&(t.finished?S(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function M(e,t,n){var r=e.entry;for(e.entry=null;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}var S=n(11);e.exports=c;var I,R=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:S;c.WritableState=s;var A=n(9);A.inherits=n(7);var O={deprecate:n(56)},P=n(22),N=n(12).Buffer,L=o.Uint8Array||function(){},D=n(24);A.inherits(c,P),s.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(s.prototype,"buffer",{get:O.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var B;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(B=Function.prototype[Symbol.hasInstance],Object.defineProperty(c,Symbol.hasInstance,{value:function(e){return!!B.call(this,e)||e&&e._writableState instanceof s}})):B=function(e){return e instanceof this},c.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},c.prototype.write=function(e,t,n){var r=this._writableState,o=!1,a=u(e)&&!r.objectMode;return a&&!N.isBuffer(e)&&(e=i(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=l),r.ended?f(this,n):(a||d(this,r,e,n))&&(r.pendingcb++,o=p(this,r,a,e,t,n)),o},c.prototype.cork=function(){this._writableState.corked++},c.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||_(this,e))},c.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},c.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},c.prototype._writev=null,c.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||T(this,r,n)},Object.defineProperty(c.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),c.prototype.destroy=D.destroy,c.prototype._undestroy=D.undestroy,c.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,n(10),n(54).setImmediate,n(8))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),u=r(i),l=n(1),s=r(l),c=n(30),f=r(c),d=n(33),h=r(d),p=n(34),g=r(p),v=n(36),m=r(v),b=n(37),y=r(b),w=n(48),_=r(w),E=n(18),k=r(E),x=function(){function e(t){var n=this;o(this,e),this.options=t,this.eventManager=new h.default,this.commandManager=new g.default(this),this.convertor=new y.default(this.eventManager),this.toMarkOptions=null,this.options.hooks&&s.default.forEach(this.options.hooks,function(e,t){n.addHook(t,e)}),this.options.events&&s.default.forEach(this.options.events,function(e,t){n.on(t,e)}),this.preview=new f.default((0,u.default)(this.options.el),this.eventManager,this.convertor,!0),this.preview.$el.on("mousedown",u.default.proxy(this._toggleTask,this)),m.default.applyExtension(this,this.options.exts),this.setValue(this.options.initialValue),this.eventManager.emit("load",this)}return a(e,[{key:"_toggleTask",value:function(e){var t=e.offsetX<18&&e.offsetY>18;e.target.hasAttribute("data-te-task")&&!t&&((0,u.default)(e.target).toggleClass("checked"),this.eventManager.emit("change",{source:"viewer",data:e}))}},{key:"setMarkdown",value:function(e){this.markdownValue=e=e||"",this.preview.refresh(this.markdownValue),this.eventManager.emit("setMarkdownAfter",this.markdownValue)}},{key:"setValue",value:function(e){this.setMarkdown(e)}},{key:"on",value:function(e,t){this.eventManager.listen(e,t)}},{key:"off",value:function(e){this.eventManager.removeEventHandler(e)}},{key:"remove",value:function(){this.eventManager.emit("removeEditor"),this.preview.$el.off("mousedown",u.default.proxy(this._toggleTask,this)),this.options=null,this.eventManager=null,this.commandManager=null,this.convertor=null,this.preview=null}},{key:"addHook",value:function(e,t){this.eventManager.removeEventHandler(e),this.eventManager.listen(e,t)}},{key:"isViewer",value:function(){return!0}},{key:"isMarkdownMode",value:function(){return!1}},{key:"isWysiwygMode",value:function(){return!1}}],[{key:"defineExtension",value:function(e,t){m.default.defineExtension(e,t)}}]),e}();x.isViewer=!0,x.domUtils=_.default,x.codeBlockManager=k.default,x.markdownitHighlight=y.default.getMarkdownitHighlightRenderer(),x.i18n=null,x.Button=null,x.WwCodeBlockManager=null,x.WwTableManager=null,x.WwTableSelectionManager=null,e.exports=x},function(e,t){e.exports=n},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}Object.defineProperty(t,"__esModule",{value:!0}),t.CodeBlockManager=void 0;var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(47),u=function(e){return e&&e.__esModule?e:{default:e}}(i),l=function(){function e(){r(this,e),this._replacers={}}return a(e,[{key:"setReplacer",value:function(e,t){this._replacers[e]=t}},{key:"getReplacer",value:function(e){return this._replacers[e]}},{key:"createCodeBlockHtml",value:function(e,t){var n=this.getReplacer(e);return n?n(t,e):u.default.getLanguage(e)?u.default.highlight(e,t).value:o(t,!1)}}],[{key:"getHighlightJSLanguages",value:function(){return u.default.listLanguages()}}]),e}();t.CodeBlockManager=l,t.default=new l},function(e,t,n){function r(){o.call(this)}e.exports=r;var o=n(13).EventEmitter;n(7)(r,o),r.Readable=n(14),r.Writable=n(58),r.Duplex=n(59),r.Transform=n(60),r.PassThrough=n(61),r.Stream=r,r.prototype.pipe=function(e,t){function n(t){e.writable&&!1===e.write(t)&&s.pause&&s.pause()}function r(){s.readable&&s.resume&&s.resume()}function a(){c||(c=!0,e.end())}function i(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function u(e){if(l(),0===o.listenerCount(this,"error"))throw e}function l(){s.removeListener("data",n),e.removeListener("drain",r),s.removeListener("end",a),s.removeListener("close",i),s.removeListener("error",u),e.removeListener("error",u),s.removeListener("end",l),s.removeListener("close",l),e.removeListener("close",l)}var s=this;s.on("data",n),e.on("drain",r),e._isStdio||t&&!1===t.end||(s.on("end",a),s.on("close",i));var c=!1;return s.on("error",u),e.on("error",u),s.on("end",l),s.on("close",l),e.on("close",l),e.emit("pipe",s),e}},function(e,t,n){"use strict";(function(t,r){function o(e){return B.from(e)}function a(e){return B.isBuffer(e)||e instanceof j}function i(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?N(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}function u(e,t){P=P||n(6),e=e||{},this.objectMode=!!e.objectMode,t instanceof P&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,o=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new F,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(q||(q=n(25).StringDecoder),this.decoder=new q(e.encoding),this.encoding=e.encoding)}function l(e){if(P=P||n(6),!(this instanceof l))return new l(e);this._readableState=new u(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),D.call(this)}function s(e,t,n,r,a){var i=e._readableState;if(null===t)i.reading=!1,g(e,i);else{var u;a||(u=f(i,t)),u?e.emit("error",u):i.objectMode||t&&t.length>0?("string"==typeof t||i.objectMode||Object.getPrototypeOf(t)===B.prototype||(t=o(t)),r?i.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):c(e,i,t,!0):i.ended?e.emit("error",new Error("stream.push() after EOF")):(i.reading=!1,i.decoder&&!n?(t=i.decoder.write(t),i.objectMode||0!==t.length?c(e,i,t,!1):b(e,i)):c(e,i,t,!1))):r||(i.reading=!1)}return d(i)}function c(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&v(e)),b(e,t)}function f(e,t){var n;return a(t)||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function d(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function h(e){return e>=z?e=z:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function p(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=h(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function g(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,v(e)}}function v(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(H("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?O(m,e):m(e))}function m(e){H("emit readable"),e.emit("readable"),x(e)}function b(e,t){t.readingMore||(t.readingMore=!0,O(y,e,t))}function y(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(H("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function w(e){return function(){var t=e._readableState;H("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&L(e,"data")&&(t.flowing=!0,x(e))}}function _(e){H("readable nexttick read 0"),e.read(0)}function E(e,t){t.resumeScheduled||(t.resumeScheduled=!0,O(k,e,t))}function k(e,t){t.reading||(H("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(H("flow",t.flowing);t.flowing&&null!==e.read(););}function C(e,t){if(0===t.length)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=T(e,t.buffer,t.decoder),n}function T(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?M(e,t):S(e,t),r}function M(e,t){var n=t.head,r=1,o=n.data;for(e-=o.length;n=n.next;){var a=n.data,i=e>a.length?a.length:e;if(i===a.length?o+=a:o+=a.slice(0,e),0===(e-=i)){i===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(i));break}++r}return t.length-=r,o}function S(e,t){var n=B.allocUnsafe(e),r=t.head,o=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,i=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,i),0===(e-=i)){i===a.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(i));break}++o}return t.length-=o,n}function I(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,O(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}var O=n(11);e.exports=l;var P,N=n(21);l.ReadableState=u;var L=(n(13).EventEmitter,function(e,t){return e.listeners(t).length}),D=n(22),B=n(12).Buffer,j=t.Uint8Array||function(){},U=n(9);U.inherits=n(7);var W=n(52),H=void 0;H=W&&W.debuglog?W.debuglog("stream"):function(){};var q,F=n(53),Y=n(24);U.inherits(l,D);var $=["error","close","destroy","pause","resume"];Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),l.prototype.destroy=Y.destroy,l.prototype._undestroy=Y.undestroy,l.prototype._destroy=function(e,t){this.push(null),t(e)},l.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=B.from(e,t),t=""),n=!0),s(this,e,t,!1,n)},l.prototype.unshift=function(e){return s(this,e,null,!0,!1)},l.prototype.isPaused=function(){return!1===this._readableState.flowing},l.prototype.setEncoding=function(e){return q||(q=n(25).StringDecoder),this._readableState.decoder=new q(e),this._readableState.encoding=e,this};var z=8388608;l.prototype.read=function(e){H("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return H("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?I(this):v(this),null;if(0===(e=p(e,t))&&t.ended)return 0===t.length&&I(this),null;var r=t.needReadable;H("need readable",r),(0===t.length||t.length-e<t.highWaterMark)&&(r=!0,H("length less than watermark",r)),t.ended||t.reading?(r=!1,H("reading or ended",r)):r&&(H("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=p(n,t)));var o;return o=e>0?C(e,t):null,null===o?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&I(this)),null!==o&&this.emit("data",o),o},l.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},l.prototype.pipe=function(e,t){function n(e,t){H("onunpipe"),e===d&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,a())}function o(){H("onend"),e.end()}function a(){H("cleanup"),e.removeListener("close",s),e.removeListener("finish",c),e.removeListener("drain",v),e.removeListener("error",l),e.removeListener("unpipe",n),d.removeListener("end",o),d.removeListener("end",f),d.removeListener("data",u),m=!0,!h.awaitDrain||e._writableState&&!e._writableState.needDrain||v()}function u(t){H("ondata"),b=!1,!1!==e.write(t)||b||((1===h.pipesCount&&h.pipes===e||h.pipesCount>1&&-1!==A(h.pipes,e))&&!m&&(H("false write response, pause",d._readableState.awaitDrain),d._readableState.awaitDrain++,b=!0),d.pause())}function l(t){H("onerror",t),f(),e.removeListener("error",l),0===L(e,"error")&&e.emit("error",t)}function s(){e.removeListener("finish",c),f()}function c(){H("onfinish"),e.removeListener("close",s),f()}function f(){H("unpipe"),d.unpipe(e)}var d=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=e;break;case 1:h.pipes=[h.pipes,e];break;default:h.pipes.push(e)}h.pipesCount+=1,H("pipe count=%d opts=%j",h.pipesCount,t);var p=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,g=p?o:f;h.endEmitted?O(g):d.once("end",g),e.on("unpipe",n);var v=w(d);e.on("drain",v);var m=!1,b=!1;return d.on("data",u),i(e,"error",l),e.once("close",s),e.once("finish",c),e.emit("pipe",d),h.flowing||(H("pipe resume"),d.resume()),e},l.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<o;a++)r[a].emit("unpipe",this,n);return this}var i=A(t.pipes,e);return-1===i?this:(t.pipes.splice(i,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n),this)},l.prototype.on=function(e,t){var n=D.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&v(this):O(_,this))}return n},l.prototype.addListener=l.prototype.on,l.prototype.resume=function(){var e=this._readableState;return e.flowing||(H("resume"),e.flowing=!0,E(this,e)),this},l.prototype.pause=function(){return H("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(H("pause"),this._readableState.flowing=!1,this.emit("pause")),this},l.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(H("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)}),e.on("data",function(o){if(H("wrapped data"),t.decoder&&(o=t.decoder.write(o)),(!t.objectMode||null!==o&&void 0!==o)&&(t.objectMode||o&&o.length)){r.push(o)||(n=!0,e.pause())}});for(var o in e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var a=0;a<$.length;a++)e.on($[a],r.emit.bind(r,$[a]));return r._read=function(t){H("wrapped _read",t),n&&(n=!1,e.resume())},r},l._fromList=C}).call(t,n(8),n(10))},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){e.exports=n(13).EventEmitter},function(e,t,n){"use strict";(function(e){function r(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(r()<t)throw new RangeError("Invalid typed array length");return a.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=a.prototype):(null===e&&(e=new a(t)),e.length=t),e}function a(e,t,n){if(!(a.TYPED_ARRAY_SUPPORT||this instanceof a))return new a(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return s(this,e)}return i(this,e,t,n)}function i(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?d(e,t,n,r):"string"==typeof t?c(e,t,n):h(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function l(e,t,n,r){return u(t),t<=0?o(e,t):void 0!==n?"string"==typeof r?o(e,t).fill(n,r):o(e,t).fill(n):o(e,t)}function s(e,t){if(u(t),e=o(e,t<0?0:0|p(t)),!a.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function c(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!a.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|v(t,n);e=o(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function f(e,t){var n=t.length<0?0:0|p(t.length);e=o(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function d(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),a.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=a.prototype):e=f(e,t),e}function h(e,t){if(a.isBuffer(t)){var n=0|p(t.length);return e=o(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||X(t.length)?o(e,0):f(e,t);if("Buffer"===t.type&&K(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function p(e){if(e>=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),a.alloc(+e)}function v(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(e).length;default:if(r)return Y(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return R(this,t,n);case"latin1":case"binary":return A(this,t,n);case"base64":return M(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=a.from(t,r)),a.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,o);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,o){function a(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}var i=1,u=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;i=2,u/=2,l/=2,n/=2}var s;if(o){var c=-1;for(s=n;s<u;s++)if(a(e,s)===a(t,-1===c?0:s-c)){if(-1===c&&(c=s),s-c+1===l)return c*i}else-1!==c&&(s-=s-c),c=-1}else for(n+l>u&&(n=u-l),s=n;s>=0;s--){for(var f=!0,d=0;d<l;d++)if(a(e,s+d)!==a(t,d)){f=!1;break}if(f)return s}return-1}function _(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var i=0;i<r;++i){var u=parseInt(t.substr(2*i,2),16);if(isNaN(u))return i;e[n+i]=u}return i}function E(e,t,n,r){return G(Y(t,e.length-n),e,n,r)}function k(e,t,n,r){return G($(t),e,n,r)}function x(e,t,n,r){return k(e,t,n,r)}function C(e,t,n,r){return G(V(t),e,n,r)}function T(e,t,n,r){return G(z(t,e.length-n),e,n,r)}function M(e,t,n){return 0===t&&n===e.length?J.fromByteArray(e):J.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var a=e[o],i=null,u=a>239?4:a>223?3:a>191?2:1;if(o+u<=n){var l,s,c,f;switch(u){case 1:a<128&&(i=a);break;case 2:l=e[o+1],128==(192&l)&&(f=(31&a)<<6|63&l)>127&&(i=f);break;case 3:l=e[o+1],s=e[o+2],128==(192&l)&&128==(192&s)&&(f=(15&a)<<12|(63&l)<<6|63&s)>2047&&(f<55296||f>57343)&&(i=f);break;case 4:l=e[o+1],s=e[o+2],c=e[o+3],128==(192&l)&&128==(192&s)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&s)<<6|63&c)>65535&&f<1114112&&(i=f)}}null===i?(i=65533,u=1):i>65535&&(i-=65536,r.push(i>>>10&1023|55296),i=56320|1023&i),r.push(i),o+=u}return I(r)}function I(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Q));return n}function R(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function A(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function O(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",a=t;a<n;++a)o+=F(e[a]);return o}function P(e,t,n){for(var r=e.slice(t,n),o="",a=0;a<r.length;a+=2)o+=String.fromCharCode(r[a]+256*r[a+1]);return o}function N(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,a=Math.min(e.length-n,2);o<a;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,a=Math.min(e.length-n,4);o<a;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function j(e,t,n,r,o,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(e,t,n,r,o){return o||j(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function W(e,t,n,r,o){return o||j(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function H(e){if(e=q(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function F(e){return e<16?"0"+e.toString(16):e.toString(16)}function Y(e,t){t=t||1/0;for(var n,r=e.length,o=null,a=[],i=0;i<r;++i){if((n=e.charCodeAt(i))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===r){(t-=3)>-1&&a.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function $(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function z(e,t){for(var n,r,o,a=[],i=0;i<e.length&&!((t-=2)<0);++i)n=e.charCodeAt(i),r=n>>8,o=n%256,a.push(o),a.push(r);return a}function V(e){return J.toByteArray(H(e))}function G(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function X(e){return e!==e}/*!
|
8
|
+
* The buffer module from node.js, for the browser.
|
9
|
+
*
|
10
|
+
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
|
11
|
+
* @license MIT
|
12
|
+
*/
|
13
|
+
var J=n(50),Z=n(51),K=n(21);t.Buffer=a,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=r(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return i(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return l(null,e,t,n)},a.allocUnsafe=function(e){return s(null,e)},a.allocUnsafeSlow=function(e){return s(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!K(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=a.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var i=e[n];if(!a.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,o),o+=i.length}return r},a.byteLength=v,a.prototype._isBuffer=!0,a.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},a.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},a.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},a.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?S(this,0,e):m.apply(this,arguments)},a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===a.compare(this,e)},a.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},a.prototype.compare=function(e,t,n,r,o){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,o>>>=0,this===e)return 0;for(var i=o-r,u=n-t,l=Math.min(i,u),s=this.slice(r,o),c=e.slice(t,n),f=0;f<l;++f)if(s[f]!==c[f]){i=s[f],u=c[f];break}return i<u?-1:u<i?1:0},a.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},a.prototype.indexOf=function(e,t,n){return y(this,e,t,n,!0)},a.prototype.lastIndexOf=function(e,t,n){return y(this,e,t,n,!1)},a.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return E(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return x(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n)<0&&(e=0):e>n&&(e=n),t<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);var r;if(a.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=a.prototype;else{var o=t-e;r=new a(o,void 0);for(var i=0;i<o;++i)r[i]=this[i+e]}return r},a.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],o=1,a=0;++a<t&&(o*=256);)r+=this[e+a]*o;return r},a.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},a.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],o=1,a=0;++a<t&&(o*=256);)r+=this[e+a]*o;return o*=128,r>=o&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=t,o=1,a=this[e+--r];r>0&&(o*=256);)a+=this[e+--r]*o;return o*=128,a>=o&&(a-=Math.pow(2,8*t)),a},a.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),Z.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),Z.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),Z.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),Z.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){L(this,e,t,n,Math.pow(2,8*n)-1,0)}var o=1,a=0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n},a.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){L(this,e,t,n,Math.pow(2,8*n)-1,0)}var o=n-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var a=0,i=1,u=0;for(this[t]=255&e;++a<n&&(i*=256);)e<0&&0===u&&0!==this[t+a-1]&&(u=1),this[t+a]=(e/i>>0)-u&255;return t+n},a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var a=n-1,i=1,u=0;for(this[t+a]=255&e;--a>=0&&(i*=256);)e<0&&0===u&&0!==this[t+a+1]&&(u=1),this[t+a]=(e/i>>0)-u&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return U(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return U(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return W(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return W(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!a.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},a.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!a.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var i;if("number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var u=a.isBuffer(e)?e:Y(new a(e,r).toString()),l=u.length;for(i=0;i<n-t;++i)this[i+t]=u[i%l]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;if(r||o)return void(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||i(a,this,e));this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(i(a,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(e,t){e.emit("error",t)}var i=n(11);e.exports={destroy:r,undestroy:o}},function(e,t,n){"use strict";function r(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function o(e){var t=r(e);if("string"!=typeof t&&(b.isEncoding===y||!y(e)))throw new Error("Unknown encoding: "+e);return t||e}function a(e){this.encoding=o(e);var t;switch(this.encoding){case"utf16le":this.text=d,this.end=h,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=p,this.end=g,t=3;break;default:return this.write=v,void(this.end=m)}this.lastNeed=0,this.lastTotal=0,this.lastChar=b.allocUnsafe(t)}function i(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function u(e,t,n){var r=t.length-1;if(r<n)return 0;var o=i(t[r]);return o>=0?(o>0&&(e.lastNeed=o-1),o):--r<n?0:(o=i(t[r]))>=0?(o>0&&(e.lastNeed=o-2),o):--r<n?0:(o=i(t[r]),o>=0?(o>0&&(2===o?o=0:e.lastNeed=o-3),o):0)}function l(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�".repeat(n);if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�".repeat(n+2)}}function s(e){var t=this.lastTotal-this.lastNeed,n=l(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){var n=u(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function d(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function h(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function p(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function m(e){return e&&e.length?this.write(e):""}var b=n(12).Buffer,y=b.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},a.prototype.end=f,a.prototype.text=c,a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";function r(e){this.afterTransform=function(t,n){return o(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function o(e,t,n){var r=e._transformState;r.transforming=!1;var o=r.writecb;if(!o)return e.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),o(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);u.call(this,e),this._transformState=new r(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,n){i(t,e,n)}):i(t)})}function i(e,t,n){if(t)return e.emit("error",t);null!==n&&void 0!==n&&e.push(n);var r=e._writableState,o=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(o.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}e.exports=a;var u=n(6),l=n(9);l.inherits=n(7),l.inherits(a,u),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,u.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;u.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},function(e,t,n){"use strict";n(28),n(63),n(78),n(80);var r=n(82);e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e,t){e=p(e);var n=e.split(/\n{2,}/),r=n[0],o=n[1],a=h(r),i=a&&a.editorChart&&a.editorChart.url,u=void 0;if(S.default.isString(i)){var s=function(e){u=l(e,r),t(u)},c=function(){return t(null)};T.default.get(i).done(s).fail(c)}else u=l(r,o),t(u)}function l(e,t){return{data:f(e),options:h(t)}}function s(e){e=p(e);var t=e.split(j).slice(0,10).join("\n");return U.map(function(e){return{delimiter:e,delta:c(t,e)}}).sort(function(e,t){return e.delta-t.delta})[0].delimiter}function c(e,t){var n=void 0,r=void 0;try{if(N.default.COLUMN_SEPARATOR=t,n=N.default.parse(e),n[0].length<2)throw new Error("parser fail");r=n.map(function(e){return e.length}).reduce(function(e,t){return{deltaSum:e.deltaSum+Math.abs(e.length-t),length:t}},{deltaSum:0,length:n[0].length}).deltaSum}catch(e){r=1/0}return r}function f(e,t){e=p(e),N.default.COLUMN_SEPARATOR=t||s(e);var n=N.default.parse(e);n=n.map(function(e){return e.map(function(e){return e.trim()})});var r=n[0].filter(function(e,t){return t>0}).reduce(function(e,t){return e||!g(t)},!1),o=r?n.shift():[],a=n.slice(1).reduce(function(e,t){return e||!g(t[0])},!1),i=a?n.map(function(e){return e.shift()}):[];return a&&o.shift(),n=n[0].map(function(e,t){return n.map(function(e){return parseFloat(e[t])})}),{categories:i,series:n.map(function(e,t){return r?{name:o[t],data:e}:{data:e}})}}function d(e,t){var n=function(e){var n=f(e);t(n)},r=function(){return t(null)};T.default.get(e).done(n).fail(r)}function h(e){var t=["type","url"],n={};return S.default.isUndefined(e)?n:(e.split(j).forEach(function(e){var r=e.split(W),o=r[0],a=r.slice(1),i=a.join(W);if(o=o.trim(),0!==i.length){try{i=JSON.parse(i.trim())}catch(e){i=i.trim()}var u=o.split("."),l=u.slice(0),s=l[0];S.default.inArray(s,t)>=0?l.unshift("editorChart"):1===l.length?l.unshift("chart"):"x"!==s&&"y"!==s||(l[0]=s+"Axis");for(var c=n,f=0;f<l.length;f+=1){var d=l[f];c[d]=c[d]||(l.length-1===f?i:{}),c=c[d]}}}),n)}function p(e){return e.replace(/(^(\s*[\n\r])+)|([\n\r]+\s*$)/g,"")}function g(e){return!isNaN(e)&&isFinite(e)}function v(e,t){e=S.default.extend({editorChart:{},chart:{},chartExportMenu:{}},e);var n=e.chart,r=n.width,o=n.height,a=S.default.isUndefined(r),i=S.default.isUndefined(o);if(a||i){var u=t.getBoundingClientRect(),l=u.width;e.chart.width=a?l:r,e.chart.height=i?l:o}return e.editorChart.type=e.editorChart.type?e.editorChart.type+"Chart":"columnChart",e.chartExportMenu.visible=e.chartExportMenu.visible||!1,e}function m(e){var t="chart-"+Math.random().toString(36).substr(2,10),n='<div id="'+t+'" class="chart" />';return setTimeout(function(){var n=document.querySelector("#"+t);try{u(e,function(e){var t=e.data,r=e.options;r=v(r,n);var o=r.editorChart.type;H.indexOf(o)<0?n.innerHTML="invalid chart type. type: bar, column, line, area, pie":q.indexOf(o)>-1&&t.categories.length!==t.series[0].data.length?n.innerHTML="invalid chart data":R.default[o](n,t,r)})}catch(e){n.innerHTML="invalid chart data"}},0),n}function b(e){return e.reduce(function(e,t){var n=t.map(function(e){return!g(e)&&e.indexOf(" ")>=0&&(e='"'+e+'"'),e});return e.push(n.join("\t")),e},[])}function y(e){var t=e.wwEditor.componentManager;t.removeManager("codeblock"),t.addManager(function(e){function t(){return o(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),k(t,[{key:"convertToCodeblock",value:function(e){if(1!==e.length||"TABLE"!==e[0].tagName)return x(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"convertToCodeblock",this).call(this,e);var n=(0,T.default)("<pre />"),r=e.shift(),o=[].slice.call(r.rows).map(function(e){return[].slice.call(e.cells).map(function(e){return e.innerText.trim()})}),a=b(o);return n.append(a.reduce(function(e,t){return e+"<div>"+t+"</div>"},[])),n.attr("data-te-codeblock",""),n[0]}}]),t}(L))}function w(e,t,n){var r="markdown"===t&&e.getTokenAt(n.from).state.overlay.codeBlock;return r=r||"codeblock"===t,r=r&&"wysiwyg"!==t}function _(e,t){var n=t.source,r=t.data;if(w(e,n,r)){var o=r.text.join("\n");if(0===c(o,"\t")){N.default.COLUMN_SEPARATOR="\t";var a=b(N.default.parse(o));r.update(r.from,r.to,a)}}}function E(e){var t=e.options.codeBlockLanguages;t&&t.indexOf(B)<0&&t.push(B),D.setReplacer(B,m),e.isViewer()||(y(e),e.eventManager.listen("pasteBefore",function(t){return _(e.mdEditor.cm,t)}))}Object.defineProperty(t,"__esModule",{value:!0}),t.detectDelimiter=t.parseDSV2ChartData=t.parseCode2ChartOption=t.parseURL2ChartData=t.parseCode2DataAndOptions=void 0;var k=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),x=function e(t,n,r){null===t&&(t=Function.prototype);var o=Object.getOwnPropertyDescriptor(t,n);if(void 0===o){var a=Object.getPrototypeOf(t);return null===a?void 0:e(a,n,r)}if("value"in o)return o.value;var i=o.get;if(void 0!==i)return i.call(r)},C=n(0),T=r(C),M=n(1),S=r(M),I=n(29),R=r(I),A=n(2),O=r(A),P=n(49),N=r(P),L=O.default.WwCodeBlockManager,D=O.default.codeBlockManager,B="chart";N.default.IGNORE_QUOTE_WHITESPACE=!1,N.default.IGNORE_RECORD_LENGTH=!0,N.default.DETECT_TYPES=!1;var j=/[\n\r]/,U=[",","\t",/\s+/],W=":",H=["barChart","columnChart","lineChart","areaChart","pieChart"],q=["lineChart","areaChart"];O.default.defineExtension("chart",E),t.parseCode2DataAndOptions=u,t.parseURL2ChartData=d,t.parseCode2ChartOption=h,t.parseDSV2ChartData=f,t.detectDelimiter=s},function(e,t){e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function e(t,n,r){null===t&&(t=Function.prototype);var o=Object.getOwnPropertyDescriptor(t,n);if(void 0===o){var a=Object.getPrototypeOf(t);return null===a?void 0:e(a,n,r)}if("value"in o)return o.value;var i=o.get;if(void 0!==i)return i.call(r)},l=n(31),s=function(e){return e&&e.__esModule?e:{default:e}}(l),c=function(e){function t(e,n,a,i){r(this,t);var u=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,a,i));return u._initEvent(),u}return a(t,e),i(t,[{key:"_initEvent",value:function(){var e=this,t="";this.eventManager.listen("contentChangedFromMarkdown",function(n){t=n.getValue(),e.isVisible()&&e.lazyRunner.run("refresh",t.replace(/<br>\n/g,"<br>"))}),this.eventManager.listen("previewNeedsRefresh",function(n){e.refresh(n||t)}),this.$el.on("scroll",function(t){e.eventManager.emit("scroll",{source:"preview",data:t})})}},{key:"render",value:function(e){u(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this,e),this.eventManager.emit("previewRenderAfter",this)}}]),t}(s.default);t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),u=r(i),l=n(32),s=r(l),c=function(){function e(t,n,r,a){o(this,e),this.eventManager=n,this.convertor=r,this.$el=t,this.isViewer=!!a,this._initContentSection(),this.lazyRunner=new s.default,this.lazyRunner.registerLazyRunFunction("refresh",this.refresh,800,this)}return a(e,[{key:"_initContentSection",value:function(){this._$previewContent=(0,u.default)('<div class="tui-editor-contents" />'),this.$el.append(this._$previewContent)}},{key:"refresh",value:function(e){this.render(this.convertor.toHTMLWithCodeHightlight(e))}},{key:"getHTML",value:function(){return this._$previewContent.html()}},{key:"setHTML",value:function(e){this._$previewContent.html(e)}},{key:"render",value:function(e){var t=this._$previewContent;e=this.eventManager.emit("previewBeforeHook",e)||e,t.empty(),t.html(e)}},{key:"setHeight",value:function(e){this.$el.get(0).style.height=e+"px"}},{key:"setMinHeight",value:function(e){this.$el.get(0).style.minHeight=e+"px"}},{key:"isVisible",value:function(){return"none"!==this.$el.css("display")}}]),e}();t.default=c},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(1),i=function(e){return e&&e.__esModule?e:{default:e}}(a),u=function(){function e(){r(this,e),this.globalTOID=null,this.lazyRunFunctions={}}return o(e,[{key:"run",value:function(e,t,n,r){var o=void 0;return i.default.isString(e)?o=this._runRegisteredRun(e,t,n,r):(o=this._runSingleRun(e,t,n,r,this.globalTOID),this.globalTOID=o),o}},{key:"registerLazyRunFunction",value:function(e,t,n,r){r=r||this,this.lazyRunFunctions[e]={fn:t,delay:n,context:r,TOID:null}}},{key:"_runSingleRun",value:function(e,t,n,r,o){return this._clearTOIDIfNeed(o),o=setTimeout(function(){e.call(n,t)},r)}},{key:"_runRegisteredRun",value:function(e,t,n,r){var o=this.lazyRunFunctions[e],a=o.fn,i=o.TOID;return r=r||o.delay,n=n||o.context,i=this._runSingleRun(a,t,n,r,i),o.TOID=i,i}},{key:"_clearTOIDIfNeed",value:function(e){e&&clearTimeout(e)}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(1),i=function(e){return e&&e.__esModule?e:{default:e}}(a),u=["previewBeforeHook","previewRenderAfter","previewNeedsRefresh","addImageBlobHook","setMarkdownAfter","contentChangedFromWysiwyg","changeFromWysiwyg","contentChangedFromMarkdown","changeFromMarkdown","change","changeModeToWysiwyg","changeModeToMarkdown","changeModeBefore","changeMode","changePreviewStyle","openPopupAddLink","openPopupAddImage","openPopupAddTable","openPopupTableUtils","openHeadingSelect","openPopupCodeBlockLanguages","openPopupCodeBlockEditor","closePopupCodeBlockLanguages","closePopupCodeBlockEditor","closeAllPopup","command","addCommandBefore","htmlUpdate","markdownUpdate","renderedHtmlUpdated","removeEditor","convertorAfterMarkdownToHtmlConverted","convertorBeforeHtmlToMarkdownConverted","convertorAfterHtmlToMarkdownConverted","stateChange","wysiwygSetValueAfter","wysiwygSetValueBefore","wysiwygGetValueBefore","wysiwygProcessHTMLText","wysiwygRangeChangeAfter","wysiwygKeyEvent","scroll","click","mousedown","mouseover","mouseout","mouseup","contextmenu","keydown","keyup","keyMap","load","focus","blur","paste","pasteBefore","willPaste","copy","copyBefore","copyAfter","cut","cutAfter","drop","show","hide"],l=function(){function e(){r(this,e),this.events=new i.default.Map,this.TYPE=new i.default.Enum(u)}return o(e,[{key:"listen",value:function(e,t){var n=this._getTypeInfo(e),r=this.events.get(n.type)||[];if(!this._hasEventType(n.type))throw new Error("There is no event type "+n.type);n.namespace&&(t.namespace=n.namespace),r.push(t),this.events.set(n.type,r)}},{key:"emit",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.shift(),o=this._getTypeInfo(r),a=this.events.get(o.type),u=void 0;return a&&i.default.forEach(a,function(e){var n=e.apply(void 0,t);i.default.isUndefined(n)||(u=u||[],u.push(n))}),u}},{key:"emitReduce",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.shift(),o=this.events.get(r);return o&&i.default.forEach(o,function(e){var n=e.apply(void 0,t);i.default.isFalsy(n)||(t[0]=n)}),t[0]}},{key:"_getTypeInfo",value:function(e){var t=e.split(".");return{type:t[0],namespace:t[1]}}},{key:"_hasEventType",value:function(e){return!i.default.isUndefined(this.TYPE[this._getTypeInfo(e).type])}},{key:"addEventType",value:function(e){if(this._hasEventType(e))throw new Error("There is already have event type "+e);this.TYPE.set(e)}},{key:"removeEventHandler",value:function(e,t){var n=this,r=this._getTypeInfo(e),o=r.type,a=r.namespace;o&&t?this._removeEventHandlerWithHandler(o,t):o&&!a?this.events.delete(o):!o&&a?this.events.forEach(function(e,t){n._removeEventHandlerWithTypeInfo(t,a)}):o&&a&&this._removeEventHandlerWithTypeInfo(o,a)}},{key:"_removeEventHandlerWithHandler",value:function(e,t){var n=this.events.get(e)||[],r=n.indexOf(t);r>=0&&n.splice(r,1)}},{key:"_removeEventHandlerWithTypeInfo",value:function(e,t){var n=[],r=this.events.get(e);r&&(r.map(function(e){e.namespace!==t&&n.push(e)}),this.events.set(e,n))}}]),e}();t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),u=r(i),l=n(1),s=r(l),c=n(35),f=r(c),d=/Mac/.test(navigator.platform),h=d?1:0,p=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this._command=new s.default.Map,this._mdCommand=new s.default.Map,this._wwCommand=new s.default.Map,this._options=u.default.extend({useCommandShortcut:!0},n),this.base=t,this.keyMapCommand={},this._initEvent()}return a(e,[{key:"_addCommandBefore",value:function(e){var t={command:e};return this.base.eventManager.emit("addCommandBefore",t),t.command||e}},{key:"addCommand",value:function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];r.length&&(t=e.command.apply(e,[t].concat(r))),t=this._addCommandBefore(t);var a=t.getName(),i=void 0;return t.isMDType()?i=this._mdCommand:t.isWWType()?i=this._wwCommand:t.isGlobalType()&&(i=this._command),i.set(a,t),t.keyMap&&(this.keyMapCommand[t.keyMap[h]]=a),t}},{key:"_initEvent",value:function(){var e=this;this.base.eventManager.listen("command",function(){e.exec.apply(e,arguments)}),this.base.eventManager.listen("keyMap",function(t){if(e._options.useCommandShortcut){var n=e.keyMapCommand[t.keyMap];n&&(t.data.preventDefault(),e.exec(n))}})}},{key:"exec",value:function(e){var t=void 0,n=void 0,r=this.base;if(t=this._command.get(e),t||(this.base.isMarkdownMode()?(t=this._mdCommand.get(e),r=this.base.mdEditor):(t=this._wwCommand.get(e),r=this.base.wwEditor)),t){for(var o,a=arguments.length,i=Array(a>1?a-1:0),u=1;u<a;u++)i[u-1]=arguments[u];i.unshift(r),n=(o=t).exec.apply(o,i)}return n}}]),e}();p.command=function(e,t){var n=f.default.factory(e,t.name,t.keyMap);return s.default.extend(n,t),n},t.default=p},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(1),i=function(e){return e&&e.__esModule?e:{default:e}}(a),u=function(){function e(t,n,o){r(this,e),this.name=t,this.type=n,o&&this.setKeyMap(o)}return o(e,[{key:"getName",value:function(){return this.name}},{key:"getType",value:function(){return this.type}},{key:"isMDType",value:function(){return this.type===e.TYPE.MD}},{key:"isWWType",value:function(){return this.type===e.TYPE.WW}},{key:"isGlobalType",value:function(){return this.type===e.TYPE.GB}},{key:"setKeyMap",value:function(e,t){this.keyMap=[e,t]}}]),e}();u.factory=function(e,t){var n=void 0;"markdown"===e?n=u.TYPE.MD:"wysiwyg"===e?n=u.TYPE.WW:"global"===e&&(n=u.TYPE.GB);var r=new u(t.name,n);return i.default.extend(r,t),r},u.TYPE={MD:0,WW:1,GB:2},t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(1),i=function(e){return e&&e.__esModule?e:{default:e}}(a),u=function(){function e(){r(this,e),this.exts=new i.default.Map}return o(e,[{key:"defineExtension",value:function(e,t){this.exts.set(e,t)}},{key:"applyExtension",value:function(e,t){var n=this;t&&t.forEach(function(t){var r=i.default.isObject(t),o=r?t.name:t;if(n.exts.has(o)){var a=n.exts.get(o);r?a(e,t):a(e)}})}}]),e}();t.default=new u},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),u=r(i),l=n(1),s=r(l),c=n(38),f=r(c),d=n(17),h=r(d),p=n(39),g=r(p),v=n(40),m=r(v),b=n(41),y=r(b),w=n(42),_=r(w),E=n(43),k=r(E),x=n(44),C=r(x),T=n(45),M=r(T),S=n(46),I=r(S),R=n(18),A=r(R),O=new f.default({html:!0,breaks:!0,quotes:"“”‘’",langPrefix:"lang-",highlight:function(e,t){return A.default.createCodeBlockHtml(t,e)}}),P=new f.default({html:!0,breaks:!0,quotes:"“”‘’",langPrefix:"lang-"});O.block.ruler.at("code",_.default),O.block.ruler.at("table",C.default,{alt:["paragraph","reference"]}),O.block.ruler.at("blockquote",k.default,{alt:["paragraph","reference","blockquote","list"]}),O.block.ruler.at("html_block",M.default,{alt:["paragraph","reference","blockquote"]}),O.inline.ruler.at("backticks",I.default),O.use(m.default),O.use(y.default),P.block.ruler.at("code",_.default),P.block.ruler.at("table",C.default,{alt:["paragraph","reference"]}),P.block.ruler.at("blockquote",k.default,{alt:["paragraph","reference","blockquote","list"]}),P.block.ruler.at("html_block",M.default,{alt:["paragraph","reference","blockquote"]}),P.inline.ruler.at("backticks",I.default),P.use(m.default),P.use(y.default);var N=function(){function e(t){o(this,e),this.eventManager=t}return a(e,[{key:"_markdownToHtmlWithCodeHighlight",value:function(e){e=e.replace(/<br>/gi,"<br data-tomark-pass>");for(var t=/(<img[^>]*)(onerror\s*=\s*[\"']?[^\"']*[\"']?)(.*)/i;t.exec(e);)e=e.replace(t,"$1$3");var n=O.render(e);return n=this._removeBrToMarkPassAttributeInCode(n)}},{key:"_markdownToHtml",value:function(e){e=e.replace(/<br>/gi,"<br data-tomark-pass>");for(var t=/(<img[^>]*)(onerror\s*=\s*[\"']?[^\"']*[\"']?)(.*)/i;t.exec(e);)e=e.replace(t,"$1$3");var n=P.render(e);return n=this._removeBrToMarkPassAttributeInCode(n)}},{key:"_removeBrToMarkPassAttributeInCode",value:function(e){var t=(0,u.default)("<div />");return t.html(e),t.find("code, pre").each(function(e,t){var n=(0,u.default)(t);n.html(n.html().replace(/<br data-tomark-pass>/,"<br>"))}),e=t.html()}},{key:"toHTMLWithCodeHightlight",value:function(e){var t=this._markdownToHtmlWithCodeHighlight(e);return t=this.eventManager.emitReduce("convertorAfterMarkdownToHtmlConverted",t)}},{key:"toHTML",value:function(e){var t=this._markdownToHtml(e);return t=this.eventManager.emitReduce("convertorAfterMarkdownToHtmlConverted",t)}},{key:"initHtmlSanitizer",value:function(){this.eventManager.listen("convertorAfterMarkdownToHtmlConverted",function(e){return(0,g.default)(e,!0)})}},{key:"toMarkdown",value:function(e,t){var n=[];e=this.eventManager.emitReduce("convertorBeforeHtmlToMarkdownConverted",e);var r=(0,h.default)(this._appendAttributeForBrIfNeed(e),t);return r=this.eventManager.emitReduce("convertorAfterHtmlToMarkdownConverted",r),s.default.forEach(r.split("\n"),function(e,t){var r=/^\|[^|]*\|/gi;/`[^`]*<br>[^`]*`/gi.test(e)||r.test(e)||(e=e.replace(/<br>/gi,"<br>\n")),n[t]=e}),n.join("\n")}},{key:"_appendAttributeForBrIfNeed",value:function(e){var t=/<br>/gi,n=/<br \/><br \/>/gi,r=/<br data-tomark-pass \/><br \/>(.)/gi,o=/([^>]|<\/b>|<\/i>|<\/s>|<img [^>]*>)/,a=/<br data-tomark-pass \/><br data-tomark-pass \/>/,i=new RegExp(o.source+a.source,"g");e=e.replace(t,"<br />"),e=e.replace(n,"<br data-tomark-pass /><br data-tomark-pass />");var l=document.createElement("div"),s=(0,u.default)(l);return s.html(e),s.find("pre br,code br").each(function(e,t){t.hasAttribute("data-tomark-pass")&&t.removeAttribute("data-tomark-pass")}),e=s.html().replace(/<br data-tomark-pass="">/gi,"<br data-tomark-pass />"),e=e.replace(t,"<br />"),e=e.replace(r,"<br data-tomark-pass /><br data-tomark-pass />$1"),e=e.replace(i,"$1<br /><br />")}}],[{key:"getMarkdownitHighlightRenderer",value:function(){return O}}]),e}();t.default=N},function(e,t){e.exports=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=(0,s.default)("<div />");return e=e.replace(/<!--[\s\S]*?-->/g,""),n.append(e),a(n),i(n),u(n,t)}function a(e){e.find("script, iframe, textarea, form, button, select, meta, style, link, title").remove()}function i(e){e.find("*").each(function(e,t){var n=t.attributes,r=f.default.toArray(n).filter(function(e){var t=e.name.match(d),n=e.name.match(h);return!t&&!n});f.default.forEachArray(r,function(e){n.getNamedItem(e.name)&&n.removeNamedItem(e.name)})})}function u(e,t){var n=void 0;if(t)n=e[0].innerHTML;else{for(var r=document.createDocumentFragment(),o=f.default.toArray(e[0].childNodes),a=o.length,i=0;i<a;i+=1)r.appendChild(o[i]);n=r}return n}Object.defineProperty(t,"__esModule",{value:!0});var l=n(0),s=r(l),c=n(1),f=r(c),d=new RegExp("^(abbr|align|alt|axis|bgcolor|border|cellpadding|cellspacing|class|clear|color|cols|compact|coords|dir|face|headers|height|hreflang|hspace|ismap|lang|language|nohref|nowrap|rel|rev|rows|rules|scope|scrolling|shape|size|span|start|summary|tabindex|target|title|type|valign|value|vspace|width|checked|mathvariant|encoding|id|name|background|cite|href|longdesc|src|usemap|xlink:href|data-+|checked|style)","g"),h=new RegExp("^(accent-height|accumulate|additive|alphabetic|arabic-form|ascent|baseProfile|bbox|begin|by|calcMode|cap-height|class|color|color-rendering|content|cx|cy|d|dx|dy|descent|display|dur|end|fill|fill-rule|font-family|font-size|font-stretch|font-style|font-variant|font-weight|from|fx|fy|g1|g2|glyph-name|gradientUnits|hanging|height|horiz-adv-x|horiz-origin-x|ideographic|k|keyPoints|keySplines|keyTimes|lang|marker-end|marker-mid|marker-start|markerHeight|markerUnits|markerWidth|mathematical|max|min|offset|opacity|orient|origin|overline-position|overline-thickness|panose-1|path|pathLength|points|preserveAspectRatio|r|refX|refY|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|rotate|rx|ry|slope|stemh|stemv|stop-color|stop-opacity|strikethrough-position|strikethrough-thickness|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|systemLanguage|target|text-anchor|to|transform|type|u1|u2|underline-position|underline-thickness|unicode|unicode-range|units-per-em|values|version|viewBox|visibility|width|widths|x|x-height|x1|x2|xlink:actuate|xlink:arcrole|xlink:role|xlink:show|xlink:title|xlink:type|xml:base|xml:lang|xml:space|xmlns|xmlns:xlink|y|y1|y2|zoomAndPan)","g");t.default=o},function(e,t,n){"use strict";function r(e){e.content=e.content.slice(4),e.children[0].content=e.children[0].content.slice(4)}function o(e){var t=!1;return 0!==e.content.indexOf("[x]")&&0!==e.content.indexOf("[X]")||(t=!0),t}function a(e,t,n){var r=e.attrIndex(t),o=[t,n];r<0?e.attrPush(o):e.attrs[r]=o}function i(e,t){return"inline"===e[t].type&&"paragraph_open"===e[t-1].type&&"list_item_open"===e[t-2].type&&(0===e[t].content.indexOf("[ ]")||0===e[t].content.indexOf("[x]")||0===e[t].content.indexOf("[X]"))}var u=function(e){e.core.ruler.after("inline","tui-task-list",function(e){var t,n,u=e.tokens;for(n=2;n<u.length;n+=1)i(u,n)&&(t=o(u[n])?"task-list-item checked":"task-list-item",r(u[n]),a(u[n-2],"class",t),a(u[n-2],"data-te-task",""))})};e.exports=u},function(e,t,n){"use strict";function r(e,t,n){var r=e.attrIndex(t),o=[t,n];r<0?e.attrPush(o):e.attrs[r]=o}function o(e){return!0===e.block&&"code"===e.tag&&"fence"===e.type}function a(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var i=function(e){e.core.ruler.after("block","tui-code-block",function(e){var t,n,i=e.tokens;for(n=0;n<i.length;n+=1)t=i[n],o(t)&&t.info&&r(t,"data-language",a(t.info.replace(" ",""),!0))})};e.exports=i},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,o,a,i=/ {0,3}(?:-|\*|\d\.) /,u=e.src.split("\n"),l=u[t],s=0;if(l.match(i)||e.sCount[t]-e.blkIndent<4)return!1;for(o=r=t+1;r<n;)if(e.isEmpty(r)){if(++s>=2&&"list"===e.parentType)break;r++}else{if(s=0,!(e.sCount[r]-e.blkIndent>=4))break;r++,o=r}return e.line=o,a=e.push("code_block","code",0),a.content=e.getLines(t,o,4+e.blkIndent,!0),a.map=[t,e.line],!0}},function(e,t,n){"use strict";function r(e){switch(e){case 9:case 32:return!0}return!1}e.exports=function(e,t,n,o){var a,i,u,l,s,c,f,d,h,p,g,v,m,b,y,w,_,E,k,x,C=e.lineMax,T=e.bMarks[t]+e.tShift[t],M=e.eMarks[t],S=/(?:-|\*|\d+\.) {1,4}(?:> {0,3})[^>]*$/,I=e.src.split("\n"),R=I[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(T++))return!1;if(R.match(S))return!1;if(o)return!0;for(l=h=e.sCount[t]+T-(e.bMarks[t]+e.tShift[t]),32===e.src.charCodeAt(T)?(T++,l++,h++,a=!1,w=!0):9===e.src.charCodeAt(T)?(w=!0,(e.bsCount[t]+h)%4==3?(T++,l++,h++,a=!1):a=!0):w=!1,p=[e.bMarks[t]],e.bMarks[t]=T;T<M&&(i=e.src.charCodeAt(T),r(i));)9===i?h+=4-(h+e.bsCount[t]+(a?1:0))%4:h++,T++;for(g=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(w?1:0),c=T>=M,b=[e.sCount[t]],e.sCount[t]=h-l,y=[e.tShift[t]],e.tShift[t]=T-e.bMarks[t],E=e.md.block.ruler.getRules("blockquote"),m=e.parentType,e.parentType="blockquote",x=!1,d=t+1;d<n&&(e.sCount[d]<e.blkIndent&&(x=!0),T=e.bMarks[d]+e.tShift[d],M=e.eMarks[d],!(T>=M));d++)if(62!==e.src.charCodeAt(T++)||x){if(c)break;for(_=!1,u=0,s=E.length;u<s;u++)if(E[u](e,d,n,!0)){_=!0;break}if(_){e.lineMax=d,0!==e.blkIndent&&(p.push(e.bMarks[d]),g.push(e.bsCount[d]),y.push(e.tShift[d]),b.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}p.push(e.bMarks[d]),g.push(e.bsCount[d]),y.push(e.tShift[d]),b.push(e.sCount[d]),e.sCount[d]=-1}else{for(l=h=e.sCount[d]+T-(e.bMarks[d]+e.tShift[d]),32===e.src.charCodeAt(T)?(T++,l++,h++,a=!1,w=!0):9===e.src.charCodeAt(T)?(w=!0,(e.bsCount[d]+h)%4==3?(T++,l++,h++,a=!1):a=!0):w=!1,p.push(e.bMarks[d]),e.bMarks[d]=T;T<M&&(i=e.src.charCodeAt(T),r(i));)9===i?h+=4-(h+e.bsCount[d]+(a?1:0))%4:h++,T++;c=T>=M,g.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(w?1:0),b.push(e.sCount[d]),e.sCount[d]=h-l,y.push(e.tShift[d]),e.tShift[d]=T-e.bMarks[d]}for(v=e.blkIndent,e.blkIndent=0,k=e.push("blockquote_open","blockquote",1),k.markup=">",k.map=f=[t,0],e.md.block.tokenize(e,t,d),k=e.push("blockquote_close","blockquote",-1),k.markup=">",e.lineMax=C,e.parentType=m,f[1]=e.line,u=0;u<y.length;u++)e.bMarks[u+t]=p[u],e.tShift[u+t]=y[u],e.sCount[u+t]=b[u],e.bsCount[u+t]=g[u];return e.blkIndent=v,!0}},function(e,t,n){"use strict";function r(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}function o(e){var t,n=[],r=0,o=e.length,a=0,i=0,u=!1,l=0;for(t=e.charCodeAt(r);r<o;)96===t&&a%2==0?(u=!u,l=r):124!==t||a%2!=0||u?92===t?a+=1:a=0:(n.push(e.substring(i,r)),i=r+1),r+=1,r===o&&u&&(u=!1,r=l+1),t=e.charCodeAt(r);return n.push(e.substring(i)),n}e.exports=function(e,t,n,a){var i,u,l,s,c,f,d,h,p,g,v,m,b;if(t+2>n)return!1;if(c=t+1,e.sCount[c]<e.blkIndent)return!1;if((l=e.bMarks[c]+e.tShift[c])>=e.eMarks[c])return!1;if(124!==(i=e.src.charCodeAt(l))&&45!==i&&58!==i)return!1;if(u=r(e,t+1),!/^[-:| ]+$/.test(u))return!1;for(f=u.split("|"),p=[],s=0;s<f.length;s+=1){if(!(v=f[s].trim())){if(0===s||s===f.length-1)continue;return!1}if(!/^:?-+:?$/.test(v))return!1;58===v.charCodeAt(v.length-1)?p.push(58===v.charCodeAt(0)?"center":"right"):58===v.charCodeAt(0)?p.push("left"):p.push("")}if(g=p.length,u=r(e,t).trim(),-1===u.indexOf("|"))return!1;if(f=o(u.replace(/^\||\|$/g,"")),(d=f.length)>g)return!1;if(d<g){for(s=0;s<g-d;s+=1)f.push("");d=f.length}if(a)return!0;for(h=e.push("table_open","table",1),h.map=m=[t,0],h=e.push("thead_open","thead",1),h.map=[t,t+1],h=e.push("tr_open","tr",1),h.map=[t,t+1],s=0;s<d;s+=1)h=e.push("th_open","th",1),h.map=[t,t+1],p[s]&&(h.attrs=[["align",p[s]]]),h=e.push("inline","",0),h.content=f[s].trim(),h.map=[t,t+1],h.children=[],h=e.push("th_close","th",-1);for(h=e.push("tr_close","tr",-1),h=e.push("thead_close","thead",-1),h=e.push("tbody_open","tbody",1),h.map=b=[t+2,0],c=t+2;c<n&&!(e.sCount[c]<e.blkIndent)&&(u=r(e,c),-1!==u.indexOf("|"));c+=1){for(f=o(u.replace(/^\||\|\s*$/g,"")),h=e.push("tr_open","tr",1),s=0;s<d;s+=1)h=e.push("td_open","td",1),p[s]&&(h.attrs=[["align",p[s]]]),h=e.push("inline","",0),h.content=f[s]?f[s].trim():"",h.children=[],h=e.push("td_close","td",-1);h=e.push("tr_close","tr",-1)}return h=e.push("tbody_close","tbody",-1),h=e.push("table_close","table",-1),m[1]=b[1]=c,e.line=c,!0}},function(e,t,n){"use strict";var r=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],o=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^<("+r.join("|")+")","i"),/^\/?>$/,!0],[new RegExp("^</?(address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|pre|section|source|title|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?=(\\s|/?>|$))","i"),/^$/,!0],[/^(?:<[A-Za-z][A-Za-z0-9\-]*(?:\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\s*=\s*(?:[^"'=<>`\x00-\x20]+|'[^']*'|"[^"]*"))?)*\s*\/?>|<\/[A-Za-z][A-Za-z0-9\-]*\s*>)\s*$/,/^$/,!1]];e.exports=function(e,t,n,r){var a,i,u,l,s=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(s))return!1;for(l=e.src.slice(s,c),a=0;a<o.length;a++)if(o[a][0].test(l)){if(5===a)return!1;break}if(a===o.length)return!1;if(r)return o[a][2];if(i=t+1,!o[a][1].test(l))for(;i<n&&!(e.sCount[i]<e.blkIndent);i++)if(s=e.bMarks[i]+e.tShift[i],c=e.eMarks[i],l=e.src.slice(s,c),o[a][1].test(l)){0!==l.length&&i++;break}return e.line=i,u=e.push("html_block","",0),u.map=[t,i],u.content=e.getLines(t,i,e.blkIndent,!0),!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,a,i,u,l=e.pos;if(96!==e.src.charCodeAt(l))return!1;for(n=l,l++,r=e.posMax;l<r&&96===e.src.charCodeAt(l);)l++;for(o=e.src.slice(n,l),a=i=l;-1!==(a=e.src.indexOf("`",i));){for(i=a+1;i<r&&96===e.src.charCodeAt(i);)i++;if(i-a===o.length)return t||(u=e.push("code_inline","code",0),u.markup=o,u.content=e.src.slice(l,a).replace(/[ \n]+/g," ").trim(),u.attrSet("data-backticks",u.markup.length)),e.pos=i,!0}return t||(e.pending+=o),e.pos+=o.length,!0}},function(e,t){e.exports=a},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=r(o),i=n(1),u=r(i),l=/\u200B/g,s=function(e){return e&&e.nodeType===Node.TEXT_NODE},c=function(e){return e&&e.nodeType===Node.ELEMENT_NODE},f=function(e){return c(e)?e.tagName:"TEXT"},d=function(e){var t=void 0;return c(e)?t=e.textContent.replace(l,"").length:s(e)&&(t=e.nodeValue.replace(l,"").length),t},h=function(e){var t=void 0;return c(e)?t=e.childNodes.length:s(e)&&(t=e.nodeValue.replace(l,"").length),t},p=function(e){var t=e.parentNode.childNodes,n=void 0,r=void 0,o=void 0;for(n=0,r=t.length;n<r;n+=1)if(t[n]===e){o=n;break}return o},g=function(e,t){var n=void 0;return s(e)?n=e:e.childNodes.length&&t>=0&&(n=e.childNodes[t]),n},v=function(e,t,n){for(var r=e+"Sibling",o=void 0,a=void 0;t&&!t[r]&&(o=f(t.parentNode))!==n&&"BODY"!==o;)t=t.parentNode;return t[r]&&(a=t[r]),a},m=function(e,t,n){return t>0?g(e,t-1):v("previous",e,n)},b=function(e,t){for(var n=void 0;e.parentNode&&!t(e.parentNode);)e=e.parentNode;return t(e.parentNode)&&(n=e),n},y=function(e,t){return u.default.isString(t)?b(e,function(e){return t===f(e)}):b(e,function(e){return t===e})},w=function(e,t,n){var r=e+"Sibling",o=void 0;return t=y(t,n),t&&t[r]&&(o=t[r]),o},_=function(e,t){return w("previous",e,t)},E=function(e,t){return w("next",e,t)},k=function(e){return y(e,"BODY")},x=function(e){for(e=e.previousSibling||e.parentNode;!s(e)&&"BODY"!==f(e);)if(e.previousSibling)for(e=e.previousSibling;e.lastChild;)e=e.lastChild;else e=e.parentNode;return"BODY"===f(e)&&(e=null),e},C=function(e,t,n){var r=[],o="",a=0,i=void 0;if(!t.length)return r;for(var l=t.shift(),s=document.createTreeWalker(e,4,null,!1);s.nextNode();){for(o=s.currentNode.nodeValue||"",n&&(o=n(o)),i=a+o.length;i>=l;){if(r.push({container:s.currentNode,offsetInContainer:l-a,offset:l}),!t.length)return r;l=t.shift()}a=i}do{r.push({container:s.currentNode,offsetInContainer:o.length,offset:l}),l=t.shift()}while(!u.default.isUndefined(l));return r},T=function(e){var t={};t.tagName=e.nodeName,e.id&&(t.id=e.id);var n=e.className.trim();return n&&(t.className=n),t},M=function(e,t){for(var n=[];e&&e!==t;)c(e)&&n.unshift(T(e)),e=e.parentNode;return n},S=function(e,t){var n=!0;return u.default.isUndefined(t)||"next"!==t&&"previous"!==t?null:("previous"===t&&(n=!1),n?e.nextElementSibling:e.previousElementSibling)},I=function(e,t,n){var r=!0,o=null,i=void 0,l=void 0,s=void 0,c=void 0,d=void 0,h=void 0;return u.default.isUndefined(t)||"next"!==t&&"previous"!==t?null:("previous"===t&&(r=!1),e?(i=(0,a.default)(e),r?(s=i.parent().next(),c=i.parents("thead"),d=c[0]&&c.next(),h=d&&"TBODY"===f(d[0]),l=0):(s=i.parent().prev(),c=i.parents("tbody"),d=c[0]&&c.prev(),h=d&&"THEAD"===f(d[0]),l=e.parentNode.childNodes.length-1),!u.default.isUndefined(n)&&n||(l=p(e)),s[0]?o=s.children("td,th")[l]:c[0]&&h&&(o=d.find("td,th")[l]),o):null)};t.default={getNodeName:f,isTextNode:s,isElemNode:c,getTextLength:d,getOffsetLength:h,getPrevOffsetNodeUntil:m,getNodeOffsetOfParent:p,getChildNodeByOffset:g,getTopPrevNodeUnder:_,getTopNextNodeUnder:E,getParentUntil:y,getTopBlockNode:k,getPrevTextNode:x,findOffsetNode:C,getPath:M,getNodeInfo:T,getTableCellByDirection:S,getSiblingRowCellByDirection:I}},function(e,t,n){"use strict";"function"==typeof Symbol&&Symbol.iterator;!function(r){var o={};o.RELAXED=!1,o.IGNORE_RECORD_LENGTH=!1,o.IGNORE_QUOTES=!1,o.LINE_FEED_OK=!0,o.CARRIAGE_RETURN_OK=!0,o.DETECT_TYPES=!0,o.IGNORE_QUOTE_WHITESPACE=!0,o.DEBUG=!1,o.COLUMN_SEPARATOR=",",o.ERROR_EOF="UNEXPECTED_END_OF_FILE",o.ERROR_CHAR="UNEXPECTED_CHARACTER",o.ERROR_EOL="UNEXPECTED_END_OF_RECORD",o.WARN_SPACE="UNEXPECTED_WHITESPACE";o.parse=function(e){var t=o.result=[];o.COLUMN_SEPARATOR=o.COLUMN_SEPARATOR instanceof RegExp?new RegExp("^"+o.COLUMN_SEPARATOR.source):o.COLUMN_SEPARATOR,o.offset=0,o.str=e,o.record_begin(),o.debug("parse()",e);for(var n;;){if(n=e[o.offset++],o.debug("c",n),null==n){o.escaped&&o.error(o.ERROR_EOF),o.record&&(o.token_end(),o.record_end()),o.debug("...bail",n,o.state,o.record),o.reset();break}if(null==o.record){if(o.RELAXED&&("\n"==n||"\r"==n&&"\n"==e[o.offset+1]))continue;o.record_begin()}if(0==o.state){if((" "===n||"\t"===n)&&'"'==o.next_nonspace()){if(o.RELAXED||o.IGNORE_QUOTE_WHITESPACE)continue;o.warn(o.WARN_SPACE)}if('"'==n&&!o.IGNORE_QUOTES){o.debug("...escaped start",n),o.escaped=!0,o.state=1;continue}o.state=1}1==o.state&&o.escaped?'"'==n?'"'==e[o.offset]?(o.debug("...escaped quote",n),o.token+='"',o.offset++):(o.debug("...escaped end",n),o.escaped=!1,o.state=2):(o.token+=n,o.debug("...escaped add",n,o.token)):"\r"==n?("\n"==e[o.offset]?o.offset++:o.CARRIAGE_RETURN_OK||o.error(o.ERROR_CHAR),o.token_end(),o.record_end()):"\n"==n?(o.LINE_FEED_OK||o.RELAXED||o.error(o.ERROR_CHAR),o.token_end(),o.record_end()):o.test_regex_separator(e)||o.COLUMN_SEPARATOR==n?o.token_end():1==o.state?(o.token+=n,o.debug("...add",n,o.token)):" "===n||"\t"===n?o.IGNORE_QUOTE_WHITESPACE||o.error(o.WARN_SPACE):o.RELAXED||o.error(o.ERROR_CHAR)}return t},o.stream=function(){var e=n(19),t=new e.Transform({objectMode:!0});return t.EOL="\n",t.prior="",t.emitter=function(e){return function(t){e.push(o.parse(t+e.EOL))}}(t),t._transform=function(e,t,n){var r=""==this.prior?e.toString().split(this.EOL):(this.prior+e.toString()).split(this.EOL);this.prior=r.pop(),r.forEach(this.emitter),n()},t._flush=function(e){""!=this.prior&&(this.emitter(this.prior),this.prior=""),e()},t},o.test_regex_separator=function(e){if(!(o.COLUMN_SEPARATOR instanceof RegExp))return!1;var t;return e=e.slice(o.offset-1),t=o.COLUMN_SEPARATOR.exec(e),t&&(o.offset+=t[0].length-1),null!==t},o.stream.json=function(){var e=n(62),t=(n(19),new streamTransform({objectMode:!0}));return t._transform=function(n,r,o){t.push(JSON.stringify(n.toString())+e.EOL),o()},t},o.reset=function(){o.state=null,o.token=null,o.escaped=null,o.record=null,o.offset=null,o.result=null,o.str=null},o.next_nonspace=function(){for(var e,t=o.offset;t<o.str.length;)if(" "!=(e=o.str[t++])&&"\t"!==e)return e;return null},o.record_begin=function(){o.escaped=!1,o.record=[],o.token_begin(),o.debug("record_begin")},o.record_end=function(){o.state=4,!o.IGNORE_RECORD_LENGTH&&!o.RELAXED&&o.result.length>0&&o.record.length!=o.result[0].length&&o.error(o.ERROR_EOL),o.result.push(o.record),o.debug("record end",o.record),o.record=null},o.resolve_type=function(e){return e.match(/^[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/)?e=parseFloat(e):e.match(/^(true|false)$/i)?e=Boolean(e.match(/true/i)):"undefined"===e?e=void 0:"null"===e&&(e=null),e},o.token_begin=function(){o.state=0,o.token=""},o.token_end=function(){o.DETECT_TYPES&&(o.token=o.resolve_type(o.token)),o.record.push(o.token),o.debug("token end",o.token),o.token_begin()},o.debug=function(){o.DEBUG&&console.log(arguments)},o.dump=function(e){return[e,"at char",o.offset,":",o.str.substr(o.offset-50,50).replace(/\r/gm,"\\r").replace(/\n/gm,"\\n").replace(/\t/gm,"\\t")].join(" ")},o.error=function(e){var t=o.dump(e);throw o.reset(),t},o.warn=function(e){if(o.DEBUG){var t=o.dump(e);try{return void console.warn(t)}catch(e){}try{console.log(t)}catch(e){}}},void 0!==e&&e.exports?e.exports=o:t.CSV=o}()},function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function o(e){return 3*e.length/4-r(e)}function a(e){var t,n,o,a,i,u=e.length;a=r(e),i=new f(3*u/4-a),n=a>0?u-4:u;var l=0;for(t=0;t<n;t+=4)o=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],i[l++]=o>>16&255,i[l++]=o>>8&255,i[l++]=255&o;return 2===a?(o=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,i[l++]=255&o):1===a&&(o=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,i[l++]=o>>8&255,i[l++]=255&o),i}function i(e){return s[e>>18&63]+s[e>>12&63]+s[e>>6&63]+s[63&e]}function u(e,t,n){for(var r,o=[],a=t;a<n;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],o.push(i(r));return o.join("")}function l(e){for(var t,n=e.length,r=n%3,o="",a=[],i=0,l=n-r;i<l;i+=16383)a.push(u(e,i,i+16383>l?l:i+16383));return 1===r?(t=e[n-1],o+=s[t>>2],o+=s[t<<4&63],o+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],o+=s[t>>10],o+=s[t>>4&63],o+=s[t<<2&63],o+="="),a.push(o),a.join("")}t.byteLength=o,t.toByteArray=a,t.fromByteArray=l;for(var s=[],c=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,p=d.length;h<p;++h)s[h]=d[h],c[d.charCodeAt(h)]=h;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var a,i,u=8*o-r-1,l=(1<<u)-1,s=l>>1,c=-7,f=n?o-1:0,d=n?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-c)-1,h>>=-c,c+=u;c>0;a=256*a+e[t+f],f+=d,c-=8);for(i=a&(1<<-c)-1,a>>=-c,c+=r;c>0;i=256*i+e[t+f],f+=d,c-=8);if(0===a)a=1-s;else{if(a===l)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,r),a-=s}return(h?-1:1)*i*Math.pow(2,a-r)},t.write=function(e,t,n,r,o,a){var i,u,l,s=8*a-o-1,c=(1<<s)-1,f=c>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(u=isNaN(t)?1:0,i=c):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),t+=i+f>=1?d/l:d*Math.pow(2,1-f),t*l>=2&&(i++,l/=2),i+f>=c?(u=0,i=c):i+f>=1?(u=(t*l-1)*Math.pow(2,o),i+=f):(u=t*Math.pow(2,f-1)*Math.pow(2,o),i=0));o>=8;e[n+h]=255&u,h+=p,u/=256,o-=8);for(i=i<<o|u,s+=o;s>0;e[n+h]=255&i,h+=p,i/=256,s-=8);e[n+h-p]|=128*g}},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t,n){e.copy(t,n)}var a=n(12).Buffer;e.exports=function(){function e(){r(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return a.alloc(0);if(1===this.length)return this.head.data;for(var t=a.allocUnsafe(e>>>0),n=this.head,r=0;n;)o(n.data,t,r),r+=n.data.length,n=n.next;return t},e}()},function(e,t,n){function r(e,t){this._id=e,this._clearFn=t}var o=Function.prototype.apply;t.setTimeout=function(){return new r(o.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new r(o.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(55),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){(function(e,t){!function(e,n){"use strict";function r(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var r={callback:e,args:t};return s[l]=r,u(l),l++}function o(e){delete s[e]}function a(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}function i(e){if(c)setTimeout(i,0,e);else{var t=s[e];if(t){c=!0;try{a(t)}finally{o(e),c=!1}}}}if(!e.setImmediate){var u,l=1,s={},c=!1,f=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?function(){u=function(e){t.nextTick(function(){i(e)})}}():function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?function(){var t="setImmediate$"+Math.random()+"$",n=function(n){n.source===e&&"string"==typeof n.data&&0===n.data.indexOf(t)&&i(+n.data.slice(t.length))};e.addEventListener?e.addEventListener("message",n,!1):e.attachEvent("onmessage",n),u=function(n){e.postMessage(t+n,"*")}}():e.MessageChannel?function(){var e=new MessageChannel;e.port1.onmessage=function(e){i(e.data)},u=function(t){e.port2.postMessage(t)}}():f&&"onreadystatechange"in f.createElement("script")?function(){var e=f.documentElement;u=function(t){var n=f.createElement("script");n.onreadystatechange=function(){i(t),n.onreadystatechange=null,e.removeChild(n),n=null},e.appendChild(n)}}():function(){u=function(e){setTimeout(i,0,e)}}(),d.setImmediate=r,d.clearImmediate=o}}("undefined"==typeof self?void 0===e?this:e:self)}).call(t,n(8),n(10))},function(e,t,n){(function(t){function n(e,t){function n(){if(!o){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),o=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var o=!1;return n}function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=n}).call(t,n(8))},function(e,t,n){"use strict";function r(e){if(!(this instanceof r))return new r(e);o.call(this,e)}e.exports=r;var o=n(26),a=n(9);a.inherits=n(7),a.inherits(r,o),r.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){e.exports=n(15)},function(e,t,n){e.exports=n(6)},function(e,t,n){e.exports=n(14).Transform},function(e,t,n){e.exports=n(14).PassThrough},function(e,t){t.endianness=function(){return"LE"},t.hostname=function(){return"undefined"!=typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.eventManager;if(e.toMarkOptions=e.toMarkOptions||{},e.toMarkOptions.renderer=y.default,s(t),!e.isViewer()){var n=e.wwEditor.componentManager,r=e._ui.popupTableUtils;a(e),i(n),e._ui.popupTableUtils&&U.default.updateContextMenu(r,t,n.getManager("tableSelection"))}}function a(e){e.addCommand(L.default),e.addCommand(B.default)}function i(e){e.removeManager("table"),e.removeManager("tableSelection"),e.addManager(_.default),e.addManager(k.default)}function u(e,t){var n=(0,f.default)("<div>"+e+"</div>"),r=n.find("table");return r.length&&(r.get().forEach(function(e){var n=t(e);(0,f.default)(e).replaceWith(n)}),e=n.html()),e}function l(e){var t=e.command;if(t.isWWType())switch(t.getName()){case"AddRow":e.command=C.default;break;case"AddCol":e.command=M.default;break;case"RemoveRow":e.command=I.default;break;case"RemoveCol":e.command=A.default;break;case"AlignCol":e.command=P.default}}function s(e){e.listen("convertorAfterMarkdownToHtmlConverted",function(e){return u(e,g.default)}),e.listen("convertorBeforeHtmlToMarkdownConverted",function(e){return u(e,m.default)}),e.listen("addCommandBefore",l)}var c=n(0),f=r(c),d=n(2),h=r(d);n(64);var p=n(65),g=r(p),v=n(66),m=r(v),b=n(67),y=r(b),w=n(68),_=r(w),E=n(69),k=r(E),x=n(70),C=r(x),T=n(71),M=r(T),S=n(72),I=r(S),R=n(73),A=r(R),O=n(74),P=r(O),N=n(75),L=r(N),D=n(76),B=r(D),j=n(77),U=r(j);h.default.defineExtension("table",o)},function(e,t,n){"use strict";var r=n(2),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=o.default.i18n;a&&(a.setLanguage(["ko","ko_KR"],{"Merge cells":"셀 병합","Unmerge cells":"셀 병합해제","Cannot change part of merged cell":"병합 된 셀의 일부를 변경할 수 없습니다.","Cannot paste row merged cells into the table header":"테이블 헤더에는 행 병합된 셀을 붙여넣을 수 없습니다."}),a.setLanguage(["en","en_US"],{"Merge cells":"Merge cells","Unmerge cells":"Unmerge cells","Cannot change part of merged cell":"Cannot change part of merged cell.","Cannot paste row merged cells into the table header":"Cannot paste row merged cells into the table header."}),a.setLanguage(["es","es_ES"],{"Merge cells":"Combinar celdas","Unmerge cells":"Separar celdas","Cannot change part of merged cell":"No se puede cambiar parte de una celda combinada.","Cannot paste row merged cells into the table header":"No se pueden pegar celdas combinadas en el encabezado de tabla."}),a.setLanguage(["ja","ja_JP"],{"Merge cells":"セルの結合","Unmerge cells":"セルの結合を解除","Cannot change part of merged cell":"結合されたセルの一部を変更することはできません。","Cannot paste row merged cells into the table header":"行にマージされたセルをヘッダーに貼り付けることはできません。"}),a.setLanguage(["nl","nl_NL"],{"Merge cells":"cellen samenvoegen","Unmerge cells":"Samenvoegen cellen ongedaan maken","Cannot change part of merged cell":"Kan geen deel uit van samengevoegde cel te veranderen.","Cannot paste row merged cells into the table header":"Kan niet plakken rij samengevoegde cellen in de koptekst. "}),a.setLanguage(["zh","zh_CN"],{"Merge cells":"合并单元格","Unmerge cells":"取消合并单元格","Cannot change part of merged cell":"无法更改合并单元格的一部分。","Cannot paste row merged cells into the table header":"无法将行合并单元格粘贴到标题中。"}),a.setLanguage(["de","de_DE"],{"Merge cells":"Zellen zusammenführen","Unmerge cells":"Zusammenführen rückgängig machen","Cannot change part of merged cell":"Der Teil der verbundenen Zelle kann nicht geändert werden.","Cannot paste row merged cells into the table header":"Die Zeile der verbundenen Zellen kann nicht in die Kopfzeile eingefügt werden."}),a.setLanguage(["ru","ru_RU"],{"Merge cells":"Объединить ячейки","Unmerge cells":"Разъединить ячейки","Cannot change part of merged cell":"Вы не можете изменять часть комбинированной ячейки.","Cannot paste row merged cells into the table header":"Вы не можете вставлять объединенные ячейки в заголовок таблицы."}),a.setLanguage(["fr","fr_FR"],{"Merge cells":"Fusionner les cellules","Unmerge cells":"Séparer les cellules","Cannot change part of merged cell":"Impossible de modifier une partie de la cellule fusionnée.","Cannot paste row merged cells into the table header":"Impossible de coller les cellules fusionnées dans l'en-tête du tableau."}))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){var r=new RegExp("^((?:"+n+"=[0-9]+:)?)"+t+"=([0-9]+):(.*)"),o=r.exec(e),a=1;return o&&(a=parseInt(o[2],10),e=o[1]+o[3]),[a,e]}function a(e){var t=e.nodeName,n=e.align||"",r=e.innerHTML.trim(),a=null,i=null,u=o(r,"@cols","@rows");a=u[0],r=u[1];var l=o(r,"@rows","@cols");return i=l[0],r=l[1],{nodeName:t,colspan:a,rowspan:i,content:r,align:n}}function i(e){return e.find("tr").get().map(function(e){return(0,p.default)(e).find("td, th").get().map(a)})}function u(e,t){var n=-1;return v.default.forEach(e,function(e,r){var o=!0;return t(e,r)&&(n=r,o=!1),o}),n}function l(e){var t=u(e,function(e){return"TD"===e[0].nodeName});return[e.slice(0,t),e.slice(t)]}function s(e){e.forEach(function(e){var t=e.length,n=0;e.forEach(function(e){n+=e.colspan-1}),e.splice(t-n)})}function c(e){var t=e.map(function(e,t){return t}),n=t.map(function(){return 0});return e.forEach(function(e,r){var o=e.filter(function(e){return e.rowspan>1}),a=r+1;o.forEach(function(e){var r=e.colspan,o=a+(e.rowspan-1);t.slice(a,o).forEach(function(e){n[e]+=r})})}),n}function f(e){var t=c(e);e.forEach(function(e,n){e.splice(e.length-t[n])})}function d(e){var t=i((0,p.default)(e)),n=l(t),r=n[0],o=n[1];return s(r),s(o),f(o),(0,p.default)(b.default.createTableHtml(t))[0]}Object.defineProperty(t,"__esModule",{value:!0}),t._extractPropertiesForMerge=o,t._parseTableCell=a,t._createTableObjectFrom$Table=i,t._divideTrs=l,t._mergeByColspan=s,t._getRemovalTdCountsByRowspan=c,t._mergeByRowspan=f,t.default=d;var h=n(0),p=r(h),g=n(1),v=r(g),m=n(4),b=r(m)},function(e,t,n){"use strict";function r(e){var t=(0,i.default)(e),n=t.attr("colspan")||"",r=t.attr("rowspan")||"",o=t.html();n&&(o="@cols="+n+":"+o),r&&(o="@rows="+r+":"+o),o&&t.html(o)}function o(e){return(0,i.default)(e).find("td, th").get().forEach(r),e}Object.defineProperty(t,"__esModule",{value:!0}),t._prependMergeSyntaxToContent=r,t.default=o;var a=n(0),i=function(e){return e&&e.__esModule?e:{default:e}}(a)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){return f.default.range(0,t).map(function(){return e}).join("")}function a(e){var t=e.align,n=(e.textContent||e.innerText).replace(p,""),r=n.length,a="",i="";return t&&("left"===t?(a=":",r-=1):"right"===t?(i=":",r-=1):"center"===t&&(i=":",a=":",r-=2)),r=Math.max(r,3),a+o("-",r)+i}function i(e){var t=0;return e.filter(function(e){return(0,s.default)(e).attr("colspan")}).forEach(function(e){t+=parseInt((0,s.default)(e).attr("colspan"),10)-1}),t}function u(e,t){var n=(0,s.default)(e).find("th").get(),r=n.map(function(e){return" "+a(e)+" |"}).join("");return r+=o(" --- |",i(n)),t?t+"|"+r+"\n":""}Object.defineProperty(t,"__esModule",{value:!0}),t._getAdditionalThCount=i,t._createTheadMarkdown=u;var l=n(0),s=r(l),c=n(1),f=r(c),d=n(17),h=r(d),p=/@cols=[0-9]+:/g;t.default=h.default.Renderer.factory(h.default.gfmRenderer,{THEAD:u})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e,t){var n=!1;return d.default.forEach(e,function(e){return!(n=t(e))}),n}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(0),c=r(s),f=n(1),d=r(f),h=n(2),p=r(h),g=n(3),v=r(g),m=n(4),b=r(m),y=n(5),w=r(y),_=p.default.WwTableManager,E=p.default.i18n,k=function(e){function t(){return o(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"_updateCopyDataMergeWith",value:function(e,t){e.forEach(function(e){e.forEach(function(e){d.default.isExisty(e.rowMergeWith)&&(e.rowMergeWith-=t.rowIndex),d.default.isExisty(e.colMergeWith)&&(e.colMergeWith-=t.colIndex)})})}},{key:"_createCopyTableData",value:function(e,t,n){var r=e.slice(t.rowIndex,n.rowIndex+1);return r=r.map(function(e){return e.slice(t.colIndex,n.colIndex+1)}),this._updateCopyDataMergeWith(r,t),r}},{key:"updateTableHtmlOfClipboardIfNeed",value:function(e){var t=this.wwe.componentManager.getManager("tableSelection").getSelectedCells();if(t.length){var n=v.default.createTableData((0,c.default)(t[0]).closest("TABLE")),r=w.default.getTableSelectionRange(n,t),o=r.start,a=r.end,i=this._createCopyTableData(n,o,a),u=v.default.createCellIndexData(i),l=v.default.createRenderData(i,u);e.html(b.default.createTableHtml(l))}}},{key:"prepareToTableCellStuffing",value:function(e){var t=e[0].length,n=!1;return e.slice(1).forEach(function(e){var r=e.length;t!==r&&(n=!0,t<r&&(t=r))}),{maximumCellLength:t,needTableCellStuffingAid:n}}},{key:"tableCellAppendAidForTableElement",value:function(e){var t=(0,c.default)(e),n=v.default.createTableData(t),r=v.default.addTbodyOrTheadIfNeed(n),o=this.prepareToTableCellStuffing(n),a=o.needTableCellStuffingAid;a&&v.default.stuffCellsIntoIncompleteRow(n,o.maximumCellLength),(r||a)&&b.default.replaceTable(t,n)}},{key:"_findStartCell",value:function(e){return 1===e.length?e.get(0):this.wwe.getEditor().getSelection().startContainer}},{key:"_findStartCellIndex",value:function(e,t){var n=v.default.createCellIndexData(e);return v.default.findCellIndex(n,t)}},{key:"_hasRowMergedHeader",value:function(e,t,n){var r="TH"===t[n.rowIndex][n.colIndex].nodeName,o=u(e[0],function(e){return e.rowspan&&e.rowspan>1});return r&&o}},{key:"_isExactlyFit",value:function(e,t,n){return t%e.length==0&&n%e[0].length==0}},{key:"_updateClipboardTableData",value:function(e,t,n){var r=e.length,o=e[0].length,a=parseInt(t/r,10),i=parseInt(n/o,10);if(a>1){var u=JSON.parse(JSON.stringify(e));d.default.range(0,a-1).forEach(function(){var t=JSON.parse(JSON.stringify(u));e.push.apply(e,t)})}if(i>1){var l=JSON.parse(JSON.stringify(e));d.default.range(0,i-1).forEach(function(){var t=JSON.parse(JSON.stringify(l));e.forEach(function(e,n){e.push.apply(e,t[n])})})}}},{key:"_updateTableDataByClipboardData",value:function(e,t,n){var r=n.rowIndex,o=n.colIndex;e.forEach(function(e,n){var a=r+n;e.forEach(function(e,n){var r=o+n,i=t[a][r];e.nodeName=i.nodeName,t[a][r]=e})})}},{key:"_isPossibleToPaste",value:function(e,t,n){var r=t.rowIndex,o=t.colIndex,a=n.rowIndex,i=n.colIndex,l=e.slice(r,a+1),s=l[0].slice(o,i+1),c=!u(s,function(e){return d.default.isExisty(e.rowMergeWith)});if(c){c=!u(d.default.pluck(l,o),function(e){return d.default.isExisty(e.colMergeWith)})}if(c&&e.length>a+1){c=!u(e[a+1].slice(o,i+1),function(e){return d.default.isExisty(e.rowMergeWith)})}if(c&&e[0].length>i+1){c=!u(d.default.pluck(l,i+1),function(e){return d.default.isExisty(e.colMergeWith)})}return c}},{key:"_spliceClipboardData",value:function(e,t,n){e.splice(t),e.forEach(function(e){e.splice(n)})}},{key:"_bookmarkLastTd",value:function(e){var t=e.rowIndex,n=e.colIndex,r=this.wwe.getEditor(),o=r.get$Body().find(".tui-paste-table-bookmark"),a=v.default.createTableData(o),i=a[t][n];t=d.default.isExisty(i.rowMergeWith)?i.rowMergeWith:t,n=d.default.isExisty(i.colMergeWith)?i.colMergeWith:n;var u=a[t][n].elementIndex,l=o.find("tr").eq(u.rowIndex).children()[u.colIndex];o.removeClass("tui-paste-table-bookmark"),(0,c.default)(l).addClass("tui-paste-table-cell-bookmark")}},{key:"_updateClipboardDataForPasteToSamllerSelectedArea",value:function(e,t,n,r,o){var a=!0,i={rowIndex:0,colIndex:0},u={rowIndex:n-1,colIndex:r-1};return this._isPossibleToPaste(e,i,u)?(this._spliceClipboardData(e,n,r),this._updateTableDataByClipboardData(e,t,o)):a=!1,a}},{key:"_pasteToSelectedArea",value:function(e,t,n,r){var o=w.default.getTableSelectionRange(n,r),a=o.start,i=o.end,u=i.rowIndex-a.rowIndex+1,l=i.colIndex-a.colIndex+1,s=t.length,c=t[0].length,f=u>=s&&l>=c,d=E.get("Cannot change part of merged cell"),h=!0,p=void 0;this._hasRowMergedHeader(t,n,a)?(d=E.get("Cannot paste row merged cells into the table header"),h=!1):this._isExactlyFit(t,u,l)?(p=i,this._updateClipboardTableData(t,u,l),this._updateTableDataByClipboardData(t,n,a)):f?(p={rowIndex:a.rowIndex+s-1,colIndex:a.colIndex+c-1},this._isPossibleToPaste(n,a,p)?this._updateTableDataByClipboardData(t,n,a):h=!1):(p={rowIndex:a.rowIndex+u-1,colIndex:a.colIndex+l-1},h=this._updateClipboardDataForPasteToSamllerSelectedArea(t,n,u,l,a)),h?(n.className+=" tui-paste-table-bookmark",b.default.replaceTable(e,n),this._bookmarkLastTd(p)):(alert(d),this.wwe.focus())}},{key:"_findEndCellIndex",value:function(e,t){var n=t.rowIndex,r=t.colIndex;return{rowIndex:n+e.length-1,colIndex:r+e[0].length-1}}},{key:"_expandRow",value:function(e,t){var n=e.length,r=e[0].length,o=d.default.range(n,n+t).map(function(e){return d.default.range(0,r).map(function(t){return v.default.createBasicCell(e,t)})});e.push.apply(e,o)}},{key:"_expandCoumn",value:function(e,t){var n=e[0].length,r=d.default.range(n,n+t);e.forEach(function(e,t){var n=e[0].nodeName,o=r.map(function(e){return v.default.createBasicCell(t,e,n)});e.push.apply(e,o)})}},{key:"_expandTableDataIfNeed",value:function(e,t,n){var r=n.rowIndex-e.length+1,o=n.colIndex-e[0].length+1;r>0&&this._expandRow(e,r),o>0&&this._expandCoumn(e,o)}},{key:"_pasteAllClipboardTableData",value:function(e,t,n,r){var o=this._findEndCellIndex(t,r);if(this._hasRowMergedHeader(t,n,r))return alert(E.get("Cannot paste row merged cells into the table header")),void this.wwe.focus();this._expandTableDataIfNeed(n,r,o),this._isPossibleToPaste(n,r,o)?(this._updateTableDataByClipboardData(t,n,r),n.className+=" tui-paste-table-bookmark",b.default.replaceTable(e,n),this._bookmarkLastTd(o)):(alert(E.get("Cannot change part of merged cell")),this.wwe.focus())}},{key:"pasteClipboardData",value:function(e){var t=v.default.createTableData(e),n=this.wwe.componentManager.getManager("tableSelection"),r=n.getSelectedCells(),o=(0,c.default)(this._findStartCell(r)),a=o.closest("table"),i=v.default.createTableData(a),u=this._findStartCellIndex(i,o);r.length>1?this._pasteToSelectedArea(a,t,i,r):this._pasteAllClipboardTableData(a,t,i,u)}}]),t}(_);t.default=k},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),s=r(l),c=n(1),f=r(c),d=n(2),h=r(d),p=n(3),g=r(p),v=n(5),m=r(v),b=h.default.WwTableSelectionManager,y=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n._tableData=null,n.mergedTableSelectionManager=!0,n}return i(t,e),u(t,[{key:"_addClassToSelectedCells",value:function(e,t,n){var r=n.start,o=n.end,a=f.default.range(r.colIndex,o.colIndex+1),i=e.find("tr");f.default.range(r.rowIndex,o.rowIndex+1).forEach(function(e){var n=t[e],r=i.eq(e).find("td, th");return a.forEach(function(e){n[e].elementIndex&&r.eq(n[e].elementIndex.colIndex).addClass("te-cell-selected")})})}},{key:"onDragStart",value:function(e){var t=(0,s.default)(e).closest("[contenteditable=true] table");this._tableData=g.default.createTableData(t)}},{key:"onDragEnd",value:function(){this._tableData=null}},{key:"highlightTableCellsBy",value:function(e,t){var n=(0,s.default)(e),r=(0,s.default)(t),o=n.closest("[contenteditable=true] table"),a=m.default.findSelectionRange(this._tableData,n,r);this.removeClassAttrbuteFromAllCellsIfNeed(),this._addClassToSelectedCells(o,this._tableData,a)}},{key:"styleToSelectedCells",value:function(e){var t=this.wwe.getEditor(),n=t.getSelection().cloneRange();(0,s.default)(n.startContainer).closest("[contenteditable=true] table").find("tr").get().forEach(function(r){var o=(0,s.default)(r).find(".te-cell-selected"),a=o.first().get(0),i=o.last().get(0);o.length&&(n.setStart(a,0),n.setEnd(i,i.childNodes.length),t.setSelection(n),e(t))})}},{key:"hasSelectedBothThAndTd",value:function(e){return e=e||this.getSelectedCells(),e.first()[0].nodeName!==e.last()[0].nodeName}}]),t}(b);t.default=y},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){return{nodeName:"TD",rowMergeWith:e}}function a(e,t){var n=null;return e[t].map(function(r,a){var i=void 0;if(f.default.isExisty(r.rowMergeWith)){var u=r.rowMergeWith,l=e[u][a],s=u+l.rowspan-1;f.default.isExisty(l.colMergeWith)&&n?i=f.default.extend({},n):s>t&&(l.rowspan+=1,i=f.default.extend({},r))}else r.rowspan>1&&(r.rowspan+=1,i=o(t));return i||(i=g.default.createBasicCell(t+1,a)),n=i,i})}function i(e,t){var n=t.start.rowIndex,r=t.end,o=g.default.findRowMergedLastIndex(e,r.rowIndex,r.colIndex),i=f.default.range(n,o+1).map(function(){return a(e,o)});e.splice.apply(e,[o+1,0].concat(i))}function u(e,t,n){var r=g.default.createTableData(e),o=g.default.findRowMergedLastIndex(r,t,n)+1,a=g.default.findElementIndex(r,o,n);return e.find("tr").eq(a.rowIndex).find("td")[a.colIndex]}Object.defineProperty(t,"__esModule",{value:!0}),t._createNewRow=a,t._addRow=i;var l=n(0),s=r(l),c=n(1),f=r(c),d=n(2),h=r(d),p=n(3),g=r(p),v=n(5),m=r(v),b=n(4),y=r(b),w=h.default.CommandManager,_=void 0;w&&(_=w.command("wysiwyg",{name:"AddRow",exec:function(e){var t=e.getEditor(),n=t.getSelection().cloneRange();if(e.focus(),t.hasFormat("TABLE")){var r=(0,s.default)(n.startContainer),o=r.closest("table"),a=g.default.createTableData(o),l=e.componentManager.getManager("tableSelection").getSelectedCells(),c=m.default.getTableSelectionRange(a,l,r);t.saveUndoState(n),i(a,c);var f=y.default.replaceTable(o,a),d=u(f,c.end.rowIndex,c.start.colIndex);y.default.focusToCell(t,n,d)}}})),t.default=_},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){return{nodeName:t,colMergeWith:e}}function a(e,t,n,r){var a=e[n],i=void 0;if(d.default.isExisty(a.colMergeWith)){var u=a.colMergeWith,l=e[u],s=u+l.colspan-1;d.default.isExisty(l.rowMergeWith)&&r?i=d.default.extend({},r):s>n&&(l.colspan+=1,i=d.default.extend({},a))}else a.colspan>1&&(a.colspan+=1,i=o(n,a.nodeName));return i||(i=v.default.createBasicCell(t,n+1,a.nodeName)),i}function i(e,t,n){var r=d.default.range(t,n+1),o=[],i=null;return e.forEach(function(e,t){var u=r.map(function(r,o){var u=i?i[o-1]:null;return a(e,t,n,u)});i=u,o.push(u)}),o}function u(e,t){var n=t.end,r=v.default.findColMergedLastIndex(e,n.rowIndex,n.colIndex),o=i(e,t.start.colIndex,r),a=r+1;e.forEach(function(e,t){e.splice.apply(e,[a,0].concat(o[t]))})}function l(e,t,n){var r=v.default.createTableData(e),o=v.default.findColMergedLastIndex(r,t,n)+1,a=v.default.findElementIndex(r,t,o);return e.find("tr").eq(a.rowIndex).find("td, th")[a.colIndex]}Object.defineProperty(t,"__esModule",{value:!0}),t._createNewColumns=i,t._addColumns=u;var s=n(0),c=r(s),f=n(1),d=r(f),h=n(2),p=r(h),g=n(3),v=r(g),m=n(5),b=r(m),y=n(4),w=r(y),_=p.default.CommandManager,E=void 0;_&&(E=_.command("wysiwyg",{name:"AddCol",exec:function(e){var t=e.getEditor(),n=t.getSelection().cloneRange();if(e.focus(),t.hasFormat("TABLE")){var r=(0,c.default)(n.startContainer),o=r.closest("table"),a=v.default.createTableData(o),i=e.componentManager.getManager("tableSelection").getSelectedCells(),s=b.default.getTableSelectionRange(a,i,r);t.saveUndoState(n),u(a,s);var f=w.default.replaceTable(o,a),d=l(f,s.start.rowIndex,s.end.colIndex);w.default.focusToCell(t,n,d)}}})),t.default=E},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){f.default.range(t,n+1).forEach(function(t){e[t].forEach(function(r,o){if(f.default.isExisty(r.rowMergeWith)){var a=e[r.rowMergeWith][o];a.rowspan&&(a.rowspan-=1)}else if(r.rowspan>1){var i=t+r.rowspan-1;r.rowspan-=n-t+1,i>n&&(e[n+1][o]=f.default.extend({},r))}})})}function a(e,t,n){e.slice(n+1).forEach(function(e){e.forEach(function(e){f.default.isExisty(e.rowMergeWith)&&e.rowMergeWith>=t&&(e.rowMergeWith=n+1)})})}function i(e,t){var n=t.start.rowIndex,r=t.end,i=g.default.findRowMergedLastIndex(e,r.rowIndex,r.colIndex);if(0!==n||0!==i){n=Math.max(n,1),i=Math.max(i,1);var u=i-n+1;e.length-u<2?e.splice(0,e.length):(o(e,n,i),a(e,n,i),e.splice(n,u))}}function u(e,t,n){var r=g.default.createTableData(e);r.length-1<t&&(t-=1);var o=g.default.findElementIndex(r,t,n);return e.find("tr").eq(o.rowIndex).find("th,td")[o.colIndex]}Object.defineProperty(t,"__esModule",{value:!0}),t._removeRow=i;var l=n(0),s=r(l),c=n(1),f=r(c),d=n(2),h=r(d),p=n(3),g=r(p),v=n(5),m=r(v),b=n(4),y=r(b),w=h.default.CommandManager,_=void 0;w&&(_=w.command("wysiwyg",{name:"RemoveRow",exec:function(e){var t=e.getEditor(),n=t.getSelection().cloneRange();if(e.focus(),t.hasFormat("TABLE")){var r=(0,s.default)(n.startContainer),o=r.closest("table"),a=g.default.createTableData(o),l=a.length,c=e.componentManager.getManager("tableSelection").getSelectedCells(),f=m.default.getTableSelectionRange(a,c,r);if(t.saveUndoState(n),i(a,f),a.length<2)o.remove();else if(l!==a.length){var d=y.default.replaceTable(o,a),h=f.start.rowIndex,p=h<a.length?h:h-1,v=u(d,p,f.start.colIndex);y.default.focusToCell(t,n,v)}}}})),t.default=_},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){e.forEach(function(e){f.default.range(t,n+1).forEach(function(t){var r=e[t];if(f.default.isExisty(r.colMergeWith)){var o=e[r.colMergeWith];o.colspan&&(o.colspan-=1)}else if(r.colspan>1){var a=t+r.colspan-1;r.colspan-=n-t+1,a>n&&(e[n+1]=f.default.extend({},r))}})})}function a(e,t,n){e.forEach(function(e){e.slice(n+1).forEach(function(e){f.default.isExisty(e.colMergeWith)&&e.colMergeWith>=t&&(e.colMergeWith=n+1)})})}function i(e,t){var n=t.start.colIndex,r=t.end,i=g.default.findColMergedLastIndex(e,r.rowIndex,r.colIndex),u=i-n+1;o(e,n,i),a(e,n,i),e.forEach(function(e){e.splice(n,u)})}function u(e,t,n){var r=g.default.createTableData(e);r[0].length-1<n&&(n-=1);var o=g.default.findElementIndex(r,t,n);return e.find("tr").eq(o.rowIndex).find("td, th")[o.colIndex]}Object.defineProperty(t,"__esModule",{value:!0}),t._removeColumns=i;var l=n(0),s=r(l),c=n(1),f=r(c),d=n(2),h=r(d),p=n(3),g=r(p),v=n(5),m=r(v),b=n(4),y=r(b),w=h.default.CommandManager,_=void 0;w&&(_=w.command("wysiwyg",{name:"RemoveCol",exec:function(e){var t=e.getEditor(),n=t.getSelection().cloneRange();if(e.focus(),t.hasFormat("TABLE")){var r=(0,s.default)(n.startContainer),o=r.closest("table"),a=g.default.createTableData(o),l=e.componentManager.getManager("tableSelection").getSelectedCells(),c=m.default.getTableSelectionRange(a,l,r),f=a[0].length;if(t.saveUndoState(n),i(a,c),0===a[0].length)o.remove();else if(f!==a[0].length){var d=y.default.replaceTable(o,a),h=c.start.colIndex,p=h>=a[0].length?h-1:h,v=u(d,c.start.rowIndex,p);y.default.focusToCell(t,n,v)}}}})),t.default=_},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n,r){s.default.range(t,n+1).forEach(function(t){var n=e[t];s.default.isExisty(n.colMergeWith)?e[n.colMergeWith].align=r:n.align=r})}function a(e,t){var n=h.default.findElementRowIndex(t),r=h.default.findElementColIndex(t);return e.find("tr").eq(n).find("td, th")[r]}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),u=r(i),l=n(1),s=r(l),c=n(2),f=r(c),d=n(3),h=r(d),p=n(5),g=r(p),v=n(4),m=r(v),b=f.default.CommandManager,y=void 0;b&&(y=b.command("wysiwyg",{name:"AlignCol",exec:function(e,t){var n=e.getEditor(),r=n.getSelection().cloneRange();if(e.focus(),n.hasFormat("TABLE")){var i=(0,u.default)(r.startContainer),l=i.closest("table"),s=h.default.createTableData(l),c=e.componentManager.getManager("tableSelection").getSelectedCells(),f=g.default.getTableSelectionRange(s,c,i);o(s[0],f.start.colIndex,f.end.colIndex,t);var d=m.default.replaceTable(l,s),p=a(d,i);m.default.focusToCell(n,r,p)}}})),t.default=y},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){var r,o=n+1,a=(r=[]).concat.apply(r,e.map(function(e){return e.slice(t,o)})),i=a.filter(function(e){var t=e.content;return t&&t!==k});return i.length?i[0].content:k}function a(e,t,n){var r,o=n+1,a=e.map(function(e){return e.slice(t,o)});(r=[]).concat.apply(r,a).slice(1).forEach(function(e){var t=e.nodeName;h.default.forEach(e,function(t,n){return delete e[n]}),e.nodeName=t})}function i(e,t,n,r){var o=n+1;e.forEach(function(e){e.slice(t,o).forEach(function(e){e.rowMergeWith=r})})}function u(e,t,n,r){var o=n+1;e.forEach(function(e){e.slice(t,o).forEach(function(e){e.colMergeWith=r})})}function l(e,t){var n=t.start,r=t.end,l=n.rowIndex,s=n.colIndex,c=r.rowIndex,f=r.colIndex,d=e[l][s],h=e.slice(l,c+1),p=c-l+1,g=f-s+1;d.rowspan=p,d.colspan=g,d.content=o(h,s,f),a(h,s,f),p>1&&i(h.slice(1),s,f,l),g>1&&u(h,s+1,f,s)}function s(e,t,n){var r=m.default.createTableData(e),o=m.default.findElementIndex(r,t,n);return e.find("tr").eq(o.rowIndex).find("td, th")[o.colIndex]}Object.defineProperty(t,"__esModule",{value:!0}),t._mergeCells=l;var c=n(0),f=r(c),d=n(1),h=r(d),p=n(2),g=r(p),v=n(3),m=r(v),b=n(5),y=r(b),w=n(4),_=r(w),E=g.default.CommandManager,k=h.default.browser.msie?"":"<br>",x=void 0;E&&(x=E.command("wysiwyg",{name:"MergeCells",exec:function(e){var t=e.getEditor();if(e.focus(),t.hasFormat("TABLE")){var n=e.componentManager.getManager("tableSelection"),r=n.getSelectedCells();if(!(r.length<2||n.hasSelectedBothThAndTd(r))){var o=t.getSelection().cloneRange(),a=(0,f.default)(o.startContainer),i=a.closest("table"),u=m.default.createTableData(i),c=y.default.getTableSelectionRange(u,r,a);l(u,c);var d=_.default.replaceTable(i,u),h=s(d,c.start.rowIndex,c.start.colIndex);_.default.focusToCell(t,o,h)}}}})),t.default=x},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n,r=t.start,o=t.end,a=r.colIndex,i=o.colIndex+1,u=e.slice(r.rowIndex,o.rowIndex+1),l=u.map(function(e){return e.slice(a,i)});return!!(n=[]).concat.apply(n,l).filter(function(e){return e.colspan>1||e.rowspan>1}).length}function a(e,t,n,r,o){var a=t+r,i=n+o,u=f.default.range(n,i);f.default.range(t,a).forEach(function(n){var r=e[n],o=n===t?1:0;u.slice(o).forEach(function(e){r[e]=g.default.createBasicCell(n,e,r[e].nodeName)})})}function i(e,t){var n=t.start,r=t.end,o=f.default.range(n.colIndex,r.colIndex+1);f.default.range(n.rowIndex,r.rowIndex+1).forEach(function(t){o.forEach(function(n){var r=e[t][n],o=r.colspan,i=r.rowspan;(o>1||i>1)&&(r.colspan=1,r.rowspan=1,a(e,t,n,i,o))})})}function u(e,t,n){var r=g.default.createTableData(e),o=g.default.findElementIndex(r,t,n);return e.find("tr").eq(o.rowIndex).find("td, th")[o.colIndex]}Object.defineProperty(t,"__esModule",{value:!0}),t._hasMergedCell=o,t._unmergeCells=i;var l=n(0),s=r(l),c=n(1),f=r(c),d=n(2),h=r(d),p=n(3),g=r(p),v=n(5),m=r(v),b=n(4),y=r(b),w=h.default.CommandManager,_=void 0;w&&(_=w.command("wysiwyg",{name:"UnmergeCells",exec:function(e){var t=e.getEditor(),n=t.getSelection().cloneRange();if(e.focus(),t.hasFormat("TABLE")){var r=(0,s.default)(n.startContainer),a=r.closest("table"),l=g.default.createTableData(a),c=e.componentManager.getManager("tableSelection").getSelectedCells(),f=m.default.getTableSelectionRange(l,c,r);if(o(l,f)){i(l,f);var d=y.default.replaceTable(a,l),h=u(d,f.start.rowIndex,f.start.colIndex);y.default.focusToCell(t,n,h)}}}})),t.default=_},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=['<button type="button" class="te-table-add-row">'+f.get("Add row")+"</button>",'<button type="button" class="te-table-add-col">'+f.get("Add col")+"</button>",'<button type="button" class="te-table-remove-row">'+f.get("Remove row")+"</button>",'<button type="button" class="te-table-remove-col">'+f.get("Remove col")+"</button>","<hr/>",'<button type="button" class="te-table-merge">'+f.get("Merge cells")+"</button>",'<button type="button" class="te-table-unmerge">'+f.get("Unmerge cells")+"</button>","<hr/>",'<button type="button" class="te-table-col-align-left">'+f.get("Align left")+"</button>",'<button type="button" class="te-table-col-align-center">'+f.get("Align center")+"</button>",'<button type="button" class="te-table-col-align-right">'+f.get("Align right")+"</button>","<hr/>",'<button type="button" class="te-table-remove">'+f.get("Remove table")+"</button>"].join(""),n=(0,l.default)(t);e.setContent(n)}function a(e,t,n){var r=e.$content,o=(0,l.default)(r[5]),a=(0,l.default)(r[6]),i=(0,l.default)(r[7]);e.on("click .te-table-merge",function(){t.emit("command","MergeCells")}),e.on("click .te-table-unmerge",function(){t.emit("command","UnmergeCells")}),t.listen("openPopupTableUtils",function(){var e=n.getSelectedCells(),t=e.length;t?(t<2||n.hasSelectedBothThAndTd(e)?o.hide():o.show(),e.is("[rowspan], [colspan]")?a.show():a.hide(),i.show()):(o.hide(),a.hide(),i.hide())})}function i(e,t,n){o(e),a(e,t,n)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(0),l=r(u),s=n(2),c=r(s),f=c.default.i18n;t.default={updateContextMenu:i}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.options.colorSyntax,n=void 0===t?{}:t,r=n.preset,o=n.useCustomSyntax,l=void 0!==o&&o;e.eventManager.listen("convertorAfterMarkdownToHtmlConverted",function(e){return l?e.replace(b,function(e,t,n){return u(n,t).result}):e}),e.eventManager.listen("convertorAfterHtmlToMarkdownConverted",function(e){var t=l?w:y;return e.replace(t,function(e,t,n){return t.match(_)&&(t=s(t)),l?i(n,t).result:e.replace(/ ?class="colour" ?/g," ").replace(_,t)})}),e.isViewer()||"default"!==e.getUI().name||(e.addCommand("markdown",{name:"color",exec:function(e,t){var n=e.getEditor(),r=n.getCursor("from"),o=n.getCursor("to"),a=void 0,s=void 0;if(t){if(l){var c=i(n.getSelection(),t);a=c.result,s=c.from,n.replaceSelection(a)}else{var f=u(n.getSelection(),t);a=f.result,s=f.from,n.replaceSelection(a)}n.setSelection({line:r.line,ch:r.ch+s},{line:o.line,ch:r.line===o.line?o.ch+s:o.ch}),e.focus()}}}),e.addCommand("wysiwyg",{name:"color",exec:function(e,t){var n=e.getEditor();t&&(n.hasFormat("PRE")||(t===E?n.changeFormat(null,{class:"colour",tag:"span"}):n.setTextColour(t)),e.focus())}}),a(e,r))}function a(e,t){var n=e.i18n;e.eventManager.addEventType("colorButtonClicked"),e.getUI().toolbar.addButton({className:"tui-color",event:"colorButtonClicked",tooltip:n.get("Text color")},4);var r=e.getUI().toolbar.$el.find("button.tui-color"),o=(0,h.default)("<div />"),a=(0,h.default)('<button type="button" class="te-apply-button">입력</button>'),i={container:o[0]};t&&(i.preset=t);var u=g.default.create(i),l=u.getColor();o.append(a);var s=e.getUI().createPopup({header:!1,title:!1,content:o,className:"tui-popup-color",$target:e.getUI().$el,css:{width:"auto",position:"absolute"}});e.eventManager.listen("focus",function(){s.hide()}),e.eventManager.listen("colorButtonClicked",function(){if(e.eventManager.emit("closeAllPopup"),s.isShow())s.hide();else{var t=r.position();s.$el.css({top:t.top+r.outerHeight(!0),left:t.left}),s.show(),u.slider.toggle(!0)}}),e.eventManager.listen("closeAllPopup",function(){s.hide()}),e.eventManager.listen("removeEditor",function(){u.off("selectColor")}),u.on("selectColor",function(t){l=t.color,"palette"===t.origin&&(e.exec("color",l),s.hide())}),s.$el.find(".te-apply-button").on("click",function(){e.exec("color",l)})}function i(e,t){return l("{color:"+t+"}",e,"{color}")}function u(e,t){return l('<span style="color:'+t+'">',e,"</span>")}function l(e,t,n){return{result:""+e+t+n,from:e.length,to:e.length+t.length}}function s(e){return e.replace(_,function(e,t,n,r){return"#"+c(t)+c(n)+c(r)})}function c(e){var t=parseInt(e,10);return t=t.toString(16),t=f(t)}function f(e){var t="00"+e;return t.substr(t.length-2)}Object.defineProperty(t,"__esModule",{value:!0});var d=n(0),h=r(d),p=n(79),g=r(p),v=n(2),m=r(v),b=/\{color:(.+?)}(.*?)\{color}/g,y=/<span (?:class="colour" )?style="color:(.+?)"(?: class="colour")?>(.*?)/g,w=/<span (?:class="colour" )?style="color:(.+?)"(?: class="colour")?>(.*?)<\/span>/g,_=/rgb\((\d+)[, ]+(\d+)[, ]+(\d+)\)/g,E="#181818";m.default.defineExtension("colorSyntax",o),t.default=o},function(e,t){e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){function t(e){var t=void 0;try{if(!i.default)throw new Error("plantuml-encoder dependency required");t='<img src="'+o+i.default.encode(e)+'" />'}catch(e){t="Error occurred on encoding uml: "+e.message}return t}var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.rendererURL,o=void 0===r?c:r,a=e.options.codeBlockLanguages;a&&a.indexOf(f)<0&&a.push(f),s.setReplacer(f,t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(81),i=r(a),u=n(2),l=r(u),s=l.default.codeBlockManager,c="http://www.plantuml.com/plantuml/png/",f="uml";l.default.defineExtension("uml",o),t.default=o},function(e,t){e.exports=u},function(e,t,n){"use strict";var r=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=n(16);o.default.fn.tuiEditor=function(){var e=void 0,t=void 0,n=this.get(0);if(n){for(var r=arguments.length,i=Array(r),u=0;u<r;u++)i[u]=arguments[u];if(e=i[0]||{},t=o.default.data(n,"tuiEditor")){if("string"==typeof e){var l;return(l=t)[e].apply(l,i.slice(1))}}else e.el=n,t=new a(e),o.default.data(n,"tuiEditor",t)}return this},e.exports=a}])});
|
@@ -0,0 +1,3686 @@
|
|
1
|
+
/*!
|
2
|
+
* tui-editor
|
3
|
+
* @version 1.0.2
|
4
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com> (https://nhnent.github.io/tui.editor/)
|
5
|
+
* @license MIT
|
6
|
+
*/
|
7
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
8
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
9
|
+
module.exports = factory(require("jquery"), require("tui-code-snippet"), require("markdown-it"), require("to-mark"), require("highlight.js"));
|
10
|
+
else if(typeof define === 'function' && define.amd)
|
11
|
+
define(["jquery", "tui-code-snippet", "markdown-it", "to-mark", "highlight.js"], factory);
|
12
|
+
else if(typeof exports === 'object')
|
13
|
+
exports["Editor"] = factory(require("jquery"), require("tui-code-snippet"), require("markdown-it"), require("to-mark"), require("highlight.js"));
|
14
|
+
else
|
15
|
+
root["tui"] = root["tui"] || {}, root["tui"]["Editor"] = factory(root["$"], (root["tui"] && root["tui"]["util"]), root["markdownit"], root["toMark"], root["hljs"]);
|
16
|
+
})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_19__, __WEBPACK_EXTERNAL_MODULE_20__, __WEBPACK_EXTERNAL_MODULE_28__) {
|
17
|
+
return /******/ (function(modules) { // webpackBootstrap
|
18
|
+
/******/ // The module cache
|
19
|
+
/******/ var installedModules = {};
|
20
|
+
/******/
|
21
|
+
/******/ // The require function
|
22
|
+
/******/ function __webpack_require__(moduleId) {
|
23
|
+
/******/
|
24
|
+
/******/ // Check if module is in cache
|
25
|
+
/******/ if(installedModules[moduleId]) {
|
26
|
+
/******/ return installedModules[moduleId].exports;
|
27
|
+
/******/ }
|
28
|
+
/******/ // Create a new module (and put it into the cache)
|
29
|
+
/******/ var module = installedModules[moduleId] = {
|
30
|
+
/******/ i: moduleId,
|
31
|
+
/******/ l: false,
|
32
|
+
/******/ exports: {}
|
33
|
+
/******/ };
|
34
|
+
/******/
|
35
|
+
/******/ // Execute the module function
|
36
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
37
|
+
/******/
|
38
|
+
/******/ // Flag the module as loaded
|
39
|
+
/******/ module.l = true;
|
40
|
+
/******/
|
41
|
+
/******/ // Return the exports of the module
|
42
|
+
/******/ return module.exports;
|
43
|
+
/******/ }
|
44
|
+
/******/
|
45
|
+
/******/
|
46
|
+
/******/ // expose the modules object (__webpack_modules__)
|
47
|
+
/******/ __webpack_require__.m = modules;
|
48
|
+
/******/
|
49
|
+
/******/ // expose the module cache
|
50
|
+
/******/ __webpack_require__.c = installedModules;
|
51
|
+
/******/
|
52
|
+
/******/ // define getter function for harmony exports
|
53
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
54
|
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
55
|
+
/******/ Object.defineProperty(exports, name, {
|
56
|
+
/******/ configurable: false,
|
57
|
+
/******/ enumerable: true,
|
58
|
+
/******/ get: getter
|
59
|
+
/******/ });
|
60
|
+
/******/ }
|
61
|
+
/******/ };
|
62
|
+
/******/
|
63
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
64
|
+
/******/ __webpack_require__.n = function(module) {
|
65
|
+
/******/ var getter = module && module.__esModule ?
|
66
|
+
/******/ function getDefault() { return module['default']; } :
|
67
|
+
/******/ function getModuleExports() { return module; };
|
68
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
69
|
+
/******/ return getter;
|
70
|
+
/******/ };
|
71
|
+
/******/
|
72
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
73
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
74
|
+
/******/
|
75
|
+
/******/ // __webpack_public_path__
|
76
|
+
/******/ __webpack_require__.p = "dist/";
|
77
|
+
/******/
|
78
|
+
/******/ // Load entry module and return exports
|
79
|
+
/******/ return __webpack_require__(__webpack_require__.s = 124);
|
80
|
+
/******/ })
|
81
|
+
/************************************************************************/
|
82
|
+
/******/ ({
|
83
|
+
|
84
|
+
/***/ 0:
|
85
|
+
/***/ (function(module, exports) {
|
86
|
+
|
87
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
|
88
|
+
|
89
|
+
/***/ }),
|
90
|
+
|
91
|
+
/***/ 1:
|
92
|
+
/***/ (function(module, exports) {
|
93
|
+
|
94
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
|
95
|
+
|
96
|
+
/***/ }),
|
97
|
+
|
98
|
+
/***/ 10:
|
99
|
+
/***/ (function(module, exports, __webpack_require__) {
|
100
|
+
|
101
|
+
"use strict";
|
102
|
+
|
103
|
+
|
104
|
+
Object.defineProperty(exports, "__esModule", {
|
105
|
+
value: true
|
106
|
+
});
|
107
|
+
|
108
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
109
|
+
* @fileoverview Implements preview
|
110
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
111
|
+
*/
|
112
|
+
|
113
|
+
|
114
|
+
var _jquery = __webpack_require__(0);
|
115
|
+
|
116
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
117
|
+
|
118
|
+
var _lazyRunner = __webpack_require__(16);
|
119
|
+
|
120
|
+
var _lazyRunner2 = _interopRequireDefault(_lazyRunner);
|
121
|
+
|
122
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
123
|
+
|
124
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
125
|
+
|
126
|
+
/**
|
127
|
+
* Class Preview
|
128
|
+
**/
|
129
|
+
var Preview = function () {
|
130
|
+
/**
|
131
|
+
* Creates an instance of Preview.
|
132
|
+
* @param {jQuery} $el Container element for preview
|
133
|
+
* @param {EventManager} eventManager Event manager instance
|
134
|
+
* @param {Convertor} convertor Convertor instance
|
135
|
+
* @param {boolean} isViewer - whether viewer mode or not
|
136
|
+
* @memberof Preview
|
137
|
+
*/
|
138
|
+
function Preview($el, eventManager, convertor, isViewer) {
|
139
|
+
_classCallCheck(this, Preview);
|
140
|
+
|
141
|
+
this.eventManager = eventManager;
|
142
|
+
this.convertor = convertor;
|
143
|
+
this.$el = $el;
|
144
|
+
this.isViewer = !!isViewer;
|
145
|
+
|
146
|
+
this._initContentSection();
|
147
|
+
|
148
|
+
this.lazyRunner = new _lazyRunner2.default();
|
149
|
+
|
150
|
+
this.lazyRunner.registerLazyRunFunction('refresh', this.refresh, 800, this);
|
151
|
+
}
|
152
|
+
|
153
|
+
/**
|
154
|
+
* Initialize content selection
|
155
|
+
* @private
|
156
|
+
*/
|
157
|
+
|
158
|
+
|
159
|
+
_createClass(Preview, [{
|
160
|
+
key: '_initContentSection',
|
161
|
+
value: function _initContentSection() {
|
162
|
+
this._$previewContent = (0, _jquery2.default)('<div class="tui-editor-contents" />');
|
163
|
+
this.$el.append(this._$previewContent);
|
164
|
+
}
|
165
|
+
|
166
|
+
/**
|
167
|
+
* Refresh rendering
|
168
|
+
* @memberof Preview
|
169
|
+
* @param {string} markdown Markdown text
|
170
|
+
*/
|
171
|
+
|
172
|
+
}, {
|
173
|
+
key: 'refresh',
|
174
|
+
value: function refresh(markdown) {
|
175
|
+
this.render(this.convertor.toHTMLWithCodeHightlight(markdown));
|
176
|
+
}
|
177
|
+
|
178
|
+
/**
|
179
|
+
* get html string
|
180
|
+
* @returns {string} - html preview string
|
181
|
+
* @memberof Preview
|
182
|
+
*/
|
183
|
+
|
184
|
+
}, {
|
185
|
+
key: 'getHTML',
|
186
|
+
value: function getHTML() {
|
187
|
+
return this._$previewContent.html();
|
188
|
+
}
|
189
|
+
|
190
|
+
/**
|
191
|
+
* set html string
|
192
|
+
* @param {string} html - html preview string
|
193
|
+
* @memberof Preview
|
194
|
+
*/
|
195
|
+
|
196
|
+
}, {
|
197
|
+
key: 'setHTML',
|
198
|
+
value: function setHTML(html) {
|
199
|
+
this._$previewContent.html(html);
|
200
|
+
}
|
201
|
+
|
202
|
+
/**
|
203
|
+
* Render HTML on preview
|
204
|
+
* @memberof Preview
|
205
|
+
* @param {string} html HTML string
|
206
|
+
* @protected
|
207
|
+
*/
|
208
|
+
|
209
|
+
}, {
|
210
|
+
key: 'render',
|
211
|
+
value: function render(html) {
|
212
|
+
var _$previewContent = this._$previewContent;
|
213
|
+
|
214
|
+
html = this.eventManager.emit('previewBeforeHook', html) || html;
|
215
|
+
|
216
|
+
_$previewContent.empty();
|
217
|
+
_$previewContent.html(html);
|
218
|
+
}
|
219
|
+
|
220
|
+
/**
|
221
|
+
* Set preview height
|
222
|
+
* @memberof Preview
|
223
|
+
* @param {number} height - Height for preview container
|
224
|
+
*/
|
225
|
+
|
226
|
+
}, {
|
227
|
+
key: 'setHeight',
|
228
|
+
value: function setHeight(height) {
|
229
|
+
this.$el.get(0).style.height = height + 'px';
|
230
|
+
}
|
231
|
+
|
232
|
+
/**
|
233
|
+
* set min height
|
234
|
+
* @param {number} minHeight - min height
|
235
|
+
* @memberof Preview
|
236
|
+
*/
|
237
|
+
|
238
|
+
}, {
|
239
|
+
key: 'setMinHeight',
|
240
|
+
value: function setMinHeight(minHeight) {
|
241
|
+
this.$el.get(0).style.minHeight = minHeight + 'px';
|
242
|
+
}
|
243
|
+
|
244
|
+
/**
|
245
|
+
* Is Preview visible
|
246
|
+
* @returns {boolean} result
|
247
|
+
*/
|
248
|
+
|
249
|
+
}, {
|
250
|
+
key: 'isVisible',
|
251
|
+
value: function isVisible() {
|
252
|
+
return this.$el.css('display') !== 'none';
|
253
|
+
}
|
254
|
+
}]);
|
255
|
+
|
256
|
+
return Preview;
|
257
|
+
}();
|
258
|
+
|
259
|
+
exports.default = Preview;
|
260
|
+
|
261
|
+
/***/ }),
|
262
|
+
|
263
|
+
/***/ 11:
|
264
|
+
/***/ (function(module, exports, __webpack_require__) {
|
265
|
+
|
266
|
+
"use strict";
|
267
|
+
|
268
|
+
|
269
|
+
Object.defineProperty(exports, "__esModule", {
|
270
|
+
value: true
|
271
|
+
});
|
272
|
+
|
273
|
+
var _jquery = __webpack_require__(0);
|
274
|
+
|
275
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
276
|
+
|
277
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
278
|
+
|
279
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
280
|
+
|
281
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
282
|
+
|
283
|
+
/**
|
284
|
+
* @fileoverview Implements htmlSanitizer
|
285
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
286
|
+
*/
|
287
|
+
var HTML_ATTR_LIST_RX = new RegExp('^(abbr|align|alt|axis|bgcolor|border|cellpadding|cellspacing|class|clear|' + 'color|cols|compact|coords|dir|face|headers|height|hreflang|hspace|' + 'ismap|lang|language|nohref|nowrap|rel|rev|rows|rules|' + 'scope|scrolling|shape|size|span|start|summary|tabindex|target|title|type|' + 'valign|value|vspace|width|checked|mathvariant|encoding|id|name|' + 'background|cite|href|longdesc|src|usemap|xlink:href|data-+|checked|style)', 'g');
|
288
|
+
|
289
|
+
var SVG_ATTR_LIST_RX = new RegExp('^(accent-height|accumulate|additive|alphabetic|arabic-form|ascent|' + 'baseProfile|bbox|begin|by|calcMode|cap-height|class|color|color-rendering|content|' + 'cx|cy|d|dx|dy|descent|display|dur|end|fill|fill-rule|font-family|font-size|font-stretch|' + 'font-style|font-variant|font-weight|from|fx|fy|g1|g2|glyph-name|gradientUnits|hanging|' + 'height|horiz-adv-x|horiz-origin-x|ideographic|k|keyPoints|keySplines|keyTimes|lang|' + 'marker-end|marker-mid|marker-start|markerHeight|markerUnits|markerWidth|mathematical|' + 'max|min|offset|opacity|orient|origin|overline-position|overline-thickness|panose-1|' + 'path|pathLength|points|preserveAspectRatio|r|refX|refY|repeatCount|repeatDur|' + 'requiredExtensions|requiredFeatures|restart|rotate|rx|ry|slope|stemh|stemv|stop-color|' + 'stop-opacity|strikethrough-position|strikethrough-thickness|stroke|stroke-dasharray|' + 'stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit|stroke-opacity|' + 'stroke-width|systemLanguage|target|text-anchor|to|transform|type|u1|u2|underline-position|' + 'underline-thickness|unicode|unicode-range|units-per-em|values|version|viewBox|visibility|' + 'width|widths|x|x-height|x1|x2|xlink:actuate|xlink:arcrole|xlink:role|xlink:show|xlink:title|' + 'xlink:type|xml:base|xml:lang|xml:space|xmlns|xmlns:xlink|y|y1|y2|zoomAndPan)', 'g');
|
290
|
+
|
291
|
+
/**
|
292
|
+
* htmlSanitizer
|
293
|
+
* @param {string|Node} html html or Node
|
294
|
+
* @param {boolean} [needHtmlText] pass true if need html text
|
295
|
+
* @returns {string|DocumentFragment} result
|
296
|
+
* @ignore
|
297
|
+
*/
|
298
|
+
function htmlSanitizer(html, needHtmlText) {
|
299
|
+
var $html = (0, _jquery2.default)('<div />');
|
300
|
+
|
301
|
+
html = html.replace(/<!--[\s\S]*?-->/g, '');
|
302
|
+
|
303
|
+
$html.append(html);
|
304
|
+
|
305
|
+
removeUnnecessaryTags($html);
|
306
|
+
leaveOnlyWhitelistAttribute($html);
|
307
|
+
|
308
|
+
return finalizeHtml($html, needHtmlText);
|
309
|
+
}
|
310
|
+
|
311
|
+
/**
|
312
|
+
* Remove unnecessary tags
|
313
|
+
* @private
|
314
|
+
* @param {jQuery} $html jQuery instance
|
315
|
+
*/
|
316
|
+
function removeUnnecessaryTags($html) {
|
317
|
+
$html.find('script, iframe, textarea, form, button, select, meta, style, link, title').remove();
|
318
|
+
}
|
319
|
+
|
320
|
+
/**
|
321
|
+
* Leave only white list attributes
|
322
|
+
* @private
|
323
|
+
* @param {jQuery} $html jQuery instance
|
324
|
+
*/
|
325
|
+
function leaveOnlyWhitelistAttribute($html) {
|
326
|
+
$html.find('*').each(function (index, node) {
|
327
|
+
var attrs = node.attributes;
|
328
|
+
var blacklist = _tuiCodeSnippet2.default.toArray(attrs).filter(function (attr) {
|
329
|
+
var isHTMLAttr = attr.name.match(HTML_ATTR_LIST_RX);
|
330
|
+
var isSVGAttr = attr.name.match(SVG_ATTR_LIST_RX);
|
331
|
+
|
332
|
+
return !isHTMLAttr && !isSVGAttr;
|
333
|
+
});
|
334
|
+
|
335
|
+
_tuiCodeSnippet2.default.forEachArray(blacklist, function (attr) {
|
336
|
+
// Edge svg attribute name returns uppercase bug. error guard.
|
337
|
+
// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/5579311/
|
338
|
+
if (attrs.getNamedItem(attr.name)) {
|
339
|
+
attrs.removeNamedItem(attr.name);
|
340
|
+
}
|
341
|
+
});
|
342
|
+
});
|
343
|
+
}
|
344
|
+
|
345
|
+
/**
|
346
|
+
* Finalize html result
|
347
|
+
* @private
|
348
|
+
* @param {jQuery} $html jQuery instance
|
349
|
+
* @param {boolean} needHtmlText pass true if need html text
|
350
|
+
* @returns {string|DocumentFragment} result
|
351
|
+
*/
|
352
|
+
function finalizeHtml($html, needHtmlText) {
|
353
|
+
var returnValue = void 0;
|
354
|
+
|
355
|
+
if (needHtmlText) {
|
356
|
+
returnValue = $html[0].innerHTML;
|
357
|
+
} else {
|
358
|
+
var frag = document.createDocumentFragment();
|
359
|
+
var childNodes = _tuiCodeSnippet2.default.toArray($html[0].childNodes);
|
360
|
+
var length = childNodes.length;
|
361
|
+
|
362
|
+
|
363
|
+
for (var i = 0; i < length; i += 1) {
|
364
|
+
frag.appendChild(childNodes[i]);
|
365
|
+
}
|
366
|
+
returnValue = frag;
|
367
|
+
}
|
368
|
+
|
369
|
+
return returnValue;
|
370
|
+
}
|
371
|
+
|
372
|
+
exports.default = htmlSanitizer;
|
373
|
+
|
374
|
+
/***/ }),
|
375
|
+
|
376
|
+
/***/ 12:
|
377
|
+
/***/ (function(module, exports, __webpack_require__) {
|
378
|
+
|
379
|
+
"use strict";
|
380
|
+
|
381
|
+
|
382
|
+
Object.defineProperty(exports, "__esModule", {
|
383
|
+
value: true
|
384
|
+
});
|
385
|
+
|
386
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
387
|
+
* @fileoverview Implements EventManager
|
388
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
389
|
+
*/
|
390
|
+
|
391
|
+
|
392
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
393
|
+
|
394
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
395
|
+
|
396
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
397
|
+
|
398
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
399
|
+
|
400
|
+
var eventList = ['previewBeforeHook', 'previewRenderAfter', 'previewNeedsRefresh', 'addImageBlobHook', 'setMarkdownAfter', 'contentChangedFromWysiwyg', 'changeFromWysiwyg', 'contentChangedFromMarkdown', 'changeFromMarkdown', 'change', 'changeModeToWysiwyg', 'changeModeToMarkdown', 'changeModeBefore', 'changeMode', 'changePreviewStyle', 'openPopupAddLink', 'openPopupAddImage', 'openPopupAddTable', 'openPopupTableUtils', 'openHeadingSelect', 'openPopupCodeBlockLanguages', 'openPopupCodeBlockEditor', 'closePopupCodeBlockLanguages', 'closePopupCodeBlockEditor', 'closeAllPopup', 'command', 'addCommandBefore', 'htmlUpdate', 'markdownUpdate', 'renderedHtmlUpdated', 'removeEditor', 'convertorAfterMarkdownToHtmlConverted', 'convertorBeforeHtmlToMarkdownConverted', 'convertorAfterHtmlToMarkdownConverted', 'stateChange', 'wysiwygSetValueAfter', 'wysiwygSetValueBefore', 'wysiwygGetValueBefore', 'wysiwygProcessHTMLText', 'wysiwygRangeChangeAfter', 'wysiwygKeyEvent', 'scroll', 'click', 'mousedown', 'mouseover', 'mouseout', 'mouseup', 'contextmenu', 'keydown', 'keyup', 'keyMap', 'load', 'focus', 'blur', 'paste', 'pasteBefore', 'willPaste', 'copy', 'copyBefore', 'copyAfter', 'cut', 'cutAfter', 'drop', 'show', 'hide'];
|
401
|
+
|
402
|
+
/**
|
403
|
+
* Class EventManager
|
404
|
+
*/
|
405
|
+
|
406
|
+
var EventManager = function () {
|
407
|
+
/**
|
408
|
+
* Creates an instance of EventManager.
|
409
|
+
* @memberof EventManager
|
410
|
+
*/
|
411
|
+
function EventManager() {
|
412
|
+
_classCallCheck(this, EventManager);
|
413
|
+
|
414
|
+
this.events = new _tuiCodeSnippet2.default.Map();
|
415
|
+
this.TYPE = new _tuiCodeSnippet2.default.Enum(eventList);
|
416
|
+
}
|
417
|
+
|
418
|
+
/**
|
419
|
+
* Listen event and bind event handler
|
420
|
+
* @memberof EventManager
|
421
|
+
* @param {string} typeStr Event type string
|
422
|
+
* @param {function} handler Event handler
|
423
|
+
*/
|
424
|
+
|
425
|
+
|
426
|
+
_createClass(EventManager, [{
|
427
|
+
key: 'listen',
|
428
|
+
value: function listen(typeStr, handler) {
|
429
|
+
var typeInfo = this._getTypeInfo(typeStr);
|
430
|
+
var eventHandlers = this.events.get(typeInfo.type) || [];
|
431
|
+
|
432
|
+
if (!this._hasEventType(typeInfo.type)) {
|
433
|
+
throw new Error('There is no event type ' + typeInfo.type);
|
434
|
+
}
|
435
|
+
|
436
|
+
if (typeInfo.namespace) {
|
437
|
+
handler.namespace = typeInfo.namespace;
|
438
|
+
}
|
439
|
+
|
440
|
+
eventHandlers.push(handler);
|
441
|
+
|
442
|
+
this.events.set(typeInfo.type, eventHandlers);
|
443
|
+
}
|
444
|
+
|
445
|
+
/**
|
446
|
+
* Emit event
|
447
|
+
* @memberof EventManager
|
448
|
+
* @param {string} eventName Event name to emit
|
449
|
+
* @returns {Array}
|
450
|
+
*/
|
451
|
+
|
452
|
+
}, {
|
453
|
+
key: 'emit',
|
454
|
+
value: function emit() {
|
455
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
456
|
+
args[_key] = arguments[_key];
|
457
|
+
}
|
458
|
+
|
459
|
+
var typeStr = args.shift();
|
460
|
+
var typeInfo = this._getTypeInfo(typeStr);
|
461
|
+
var eventHandlers = this.events.get(typeInfo.type);
|
462
|
+
var results = void 0;
|
463
|
+
|
464
|
+
if (eventHandlers) {
|
465
|
+
_tuiCodeSnippet2.default.forEach(eventHandlers, function (handler) {
|
466
|
+
var result = handler.apply(undefined, args);
|
467
|
+
|
468
|
+
if (!_tuiCodeSnippet2.default.isUndefined(result)) {
|
469
|
+
results = results || [];
|
470
|
+
results.push(result);
|
471
|
+
}
|
472
|
+
});
|
473
|
+
}
|
474
|
+
|
475
|
+
return results;
|
476
|
+
}
|
477
|
+
|
478
|
+
/**
|
479
|
+
* Emit given event and return result
|
480
|
+
* @memberof EventManager
|
481
|
+
* @param {string} eventName Event name to emit
|
482
|
+
* @param {string} sourceText Source text to change
|
483
|
+
* @returns {string}
|
484
|
+
*/
|
485
|
+
|
486
|
+
}, {
|
487
|
+
key: 'emitReduce',
|
488
|
+
value: function emitReduce() {
|
489
|
+
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
490
|
+
args[_key2] = arguments[_key2];
|
491
|
+
}
|
492
|
+
|
493
|
+
var type = args.shift();
|
494
|
+
var eventHandlers = this.events.get(type);
|
495
|
+
|
496
|
+
if (eventHandlers) {
|
497
|
+
_tuiCodeSnippet2.default.forEach(eventHandlers, function (handler) {
|
498
|
+
var result = handler.apply(undefined, args);
|
499
|
+
|
500
|
+
if (!_tuiCodeSnippet2.default.isFalsy(result)) {
|
501
|
+
args[0] = result;
|
502
|
+
}
|
503
|
+
});
|
504
|
+
}
|
505
|
+
|
506
|
+
return args[0];
|
507
|
+
}
|
508
|
+
|
509
|
+
/**
|
510
|
+
* Get event type and namespace
|
511
|
+
* @memberof EventManager
|
512
|
+
* @param {string} typeStr Event type name
|
513
|
+
* @returns {{type: string, namespace: string}}
|
514
|
+
* @private
|
515
|
+
*/
|
516
|
+
|
517
|
+
}, {
|
518
|
+
key: '_getTypeInfo',
|
519
|
+
value: function _getTypeInfo(typeStr) {
|
520
|
+
var splited = typeStr.split('.');
|
521
|
+
|
522
|
+
return {
|
523
|
+
type: splited[0],
|
524
|
+
namespace: splited[1]
|
525
|
+
};
|
526
|
+
}
|
527
|
+
|
528
|
+
/**
|
529
|
+
* Check whether event type exists or not
|
530
|
+
* @param {string} type Event type name
|
531
|
+
* @returns {boolean}
|
532
|
+
* @private
|
533
|
+
*/
|
534
|
+
|
535
|
+
}, {
|
536
|
+
key: '_hasEventType',
|
537
|
+
value: function _hasEventType(type) {
|
538
|
+
return !_tuiCodeSnippet2.default.isUndefined(this.TYPE[this._getTypeInfo(type).type]);
|
539
|
+
}
|
540
|
+
|
541
|
+
/**
|
542
|
+
* Add event type when given event not exists
|
543
|
+
* @memberof EventManager
|
544
|
+
* @param {string} type Event type name
|
545
|
+
*/
|
546
|
+
|
547
|
+
}, {
|
548
|
+
key: 'addEventType',
|
549
|
+
value: function addEventType(type) {
|
550
|
+
if (this._hasEventType(type)) {
|
551
|
+
throw new Error('There is already have event type ' + type);
|
552
|
+
}
|
553
|
+
|
554
|
+
this.TYPE.set(type);
|
555
|
+
}
|
556
|
+
|
557
|
+
/**
|
558
|
+
* Remove event handler from given event type
|
559
|
+
* @memberof EventManager
|
560
|
+
* @param {string} typeStr Event type name
|
561
|
+
* @param {function} [handler] - registered event handler
|
562
|
+
*/
|
563
|
+
|
564
|
+
}, {
|
565
|
+
key: 'removeEventHandler',
|
566
|
+
value: function removeEventHandler(typeStr, handler) {
|
567
|
+
var _this = this;
|
568
|
+
|
569
|
+
var _getTypeInfo2 = this._getTypeInfo(typeStr),
|
570
|
+
type = _getTypeInfo2.type,
|
571
|
+
namespace = _getTypeInfo2.namespace;
|
572
|
+
|
573
|
+
if (type && handler) {
|
574
|
+
this._removeEventHandlerWithHandler(type, handler);
|
575
|
+
} else if (type && !namespace) {
|
576
|
+
// dont use dot notation cuz eslint
|
577
|
+
this.events['delete'](type);
|
578
|
+
} else if (!type && namespace) {
|
579
|
+
this.events.forEach(function (eventHandlers, eventType) {
|
580
|
+
_this._removeEventHandlerWithTypeInfo(eventType, namespace);
|
581
|
+
});
|
582
|
+
} else if (type && namespace) {
|
583
|
+
this._removeEventHandlerWithTypeInfo(type, namespace);
|
584
|
+
}
|
585
|
+
}
|
586
|
+
|
587
|
+
/**
|
588
|
+
* Remove event handler with event handler
|
589
|
+
* @param {string} type - event type name
|
590
|
+
* @param {function} handler - event handler
|
591
|
+
* @memberof EventManager
|
592
|
+
* @private
|
593
|
+
*/
|
594
|
+
|
595
|
+
}, {
|
596
|
+
key: '_removeEventHandlerWithHandler',
|
597
|
+
value: function _removeEventHandlerWithHandler(type, handler) {
|
598
|
+
var eventHandlers = this.events.get(type) || [];
|
599
|
+
var handlerIndex = eventHandlers.indexOf(handler);
|
600
|
+
if (handlerIndex >= 0) {
|
601
|
+
eventHandlers.splice(handlerIndex, 1);
|
602
|
+
}
|
603
|
+
}
|
604
|
+
|
605
|
+
/**
|
606
|
+
* Remove event handler with event type information
|
607
|
+
* @memberof EventManager
|
608
|
+
* @param {string} type Event type name
|
609
|
+
* @param {string} namespace Event namespace
|
610
|
+
* @private
|
611
|
+
*/
|
612
|
+
|
613
|
+
}, {
|
614
|
+
key: '_removeEventHandlerWithTypeInfo',
|
615
|
+
value: function _removeEventHandlerWithTypeInfo(type, namespace) {
|
616
|
+
var handlersToSurvive = [];
|
617
|
+
var eventHandlers = this.events.get(type);
|
618
|
+
|
619
|
+
if (!eventHandlers) {
|
620
|
+
return;
|
621
|
+
}
|
622
|
+
|
623
|
+
eventHandlers.map(function (handler) {
|
624
|
+
if (handler.namespace !== namespace) {
|
625
|
+
handlersToSurvive.push(handler);
|
626
|
+
}
|
627
|
+
});
|
628
|
+
|
629
|
+
this.events.set(type, handlersToSurvive);
|
630
|
+
}
|
631
|
+
}]);
|
632
|
+
|
633
|
+
return EventManager;
|
634
|
+
}();
|
635
|
+
|
636
|
+
exports.default = EventManager;
|
637
|
+
|
638
|
+
/***/ }),
|
639
|
+
|
640
|
+
/***/ 124:
|
641
|
+
/***/ (function(module, exports, __webpack_require__) {
|
642
|
+
|
643
|
+
"use strict";
|
644
|
+
|
645
|
+
|
646
|
+
var _jquery = __webpack_require__(0);
|
647
|
+
|
648
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
649
|
+
|
650
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
651
|
+
|
652
|
+
var Viewer = __webpack_require__(29);
|
653
|
+
|
654
|
+
// for jquery
|
655
|
+
/**
|
656
|
+
* @fileoverview entry point for viewer
|
657
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
658
|
+
*/
|
659
|
+
_jquery2.default.fn.tuiEditor = function () {
|
660
|
+
var options = void 0,
|
661
|
+
instance = void 0;
|
662
|
+
|
663
|
+
var el = this.get(0);
|
664
|
+
|
665
|
+
if (el) {
|
666
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
667
|
+
args[_key] = arguments[_key];
|
668
|
+
}
|
669
|
+
|
670
|
+
options = args[0] || {};
|
671
|
+
|
672
|
+
instance = _jquery2.default.data(el, 'tuiEditor');
|
673
|
+
|
674
|
+
if (instance) {
|
675
|
+
if (typeof options === 'string') {
|
676
|
+
var _instance;
|
677
|
+
|
678
|
+
return (_instance = instance)[options].apply(_instance, args.slice(1));
|
679
|
+
}
|
680
|
+
} else {
|
681
|
+
options.el = el;
|
682
|
+
instance = new Viewer(options);
|
683
|
+
_jquery2.default.data(el, 'tuiEditor', instance);
|
684
|
+
}
|
685
|
+
}
|
686
|
+
|
687
|
+
return this;
|
688
|
+
};
|
689
|
+
|
690
|
+
module.exports = Viewer;
|
691
|
+
|
692
|
+
/***/ }),
|
693
|
+
|
694
|
+
/***/ 13:
|
695
|
+
/***/ (function(module, exports, __webpack_require__) {
|
696
|
+
|
697
|
+
"use strict";
|
698
|
+
|
699
|
+
|
700
|
+
Object.defineProperty(exports, "__esModule", {
|
701
|
+
value: true
|
702
|
+
});
|
703
|
+
|
704
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
705
|
+
* @fileoverview extension manager
|
706
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
707
|
+
*/
|
708
|
+
|
709
|
+
|
710
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
711
|
+
|
712
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
713
|
+
|
714
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
715
|
+
|
716
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
717
|
+
|
718
|
+
/**
|
719
|
+
* Class ExtManager
|
720
|
+
*/
|
721
|
+
var ExtManager = function () {
|
722
|
+
/**
|
723
|
+
* Creates an instance of ExtManager.
|
724
|
+
* @memberof ExtManager
|
725
|
+
*/
|
726
|
+
function ExtManager() {
|
727
|
+
_classCallCheck(this, ExtManager);
|
728
|
+
|
729
|
+
this.exts = new _tuiCodeSnippet2.default.Map();
|
730
|
+
}
|
731
|
+
|
732
|
+
/**
|
733
|
+
* defineExtension
|
734
|
+
* Defined Extension
|
735
|
+
* @memberof ExtManager
|
736
|
+
* @param {string} name extension name
|
737
|
+
* @param {ExtManager~extension} ext extension
|
738
|
+
*/
|
739
|
+
|
740
|
+
|
741
|
+
_createClass(ExtManager, [{
|
742
|
+
key: 'defineExtension',
|
743
|
+
value: function defineExtension(name, ext) {
|
744
|
+
this.exts.set(name, ext);
|
745
|
+
}
|
746
|
+
|
747
|
+
/**
|
748
|
+
* Apply extensions
|
749
|
+
* @memberof ExtManager
|
750
|
+
* @param {object} context Context
|
751
|
+
* @param {Array.<string|object>} options - options or names array
|
752
|
+
*/
|
753
|
+
|
754
|
+
}, {
|
755
|
+
key: 'applyExtension',
|
756
|
+
value: function applyExtension(context, options) {
|
757
|
+
var _this = this;
|
758
|
+
|
759
|
+
if (options) {
|
760
|
+
options.forEach(function (option) {
|
761
|
+
var hasOption = _tuiCodeSnippet2.default.isObject(option);
|
762
|
+
var name = hasOption ? option.name : option;
|
763
|
+
|
764
|
+
if (_this.exts.has(name)) {
|
765
|
+
var ext = _this.exts.get(name);
|
766
|
+
if (hasOption) {
|
767
|
+
ext(context, option);
|
768
|
+
} else {
|
769
|
+
ext(context);
|
770
|
+
}
|
771
|
+
}
|
772
|
+
});
|
773
|
+
}
|
774
|
+
}
|
775
|
+
}]);
|
776
|
+
|
777
|
+
return ExtManager;
|
778
|
+
}();
|
779
|
+
|
780
|
+
exports.default = new ExtManager();
|
781
|
+
|
782
|
+
/***/ }),
|
783
|
+
|
784
|
+
/***/ 14:
|
785
|
+
/***/ (function(module, exports, __webpack_require__) {
|
786
|
+
|
787
|
+
"use strict";
|
788
|
+
|
789
|
+
|
790
|
+
Object.defineProperty(exports, "__esModule", {
|
791
|
+
value: true
|
792
|
+
});
|
793
|
+
|
794
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
795
|
+
* @fileoverview Convertor have responsible to convert markdown and html
|
796
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
797
|
+
*/
|
798
|
+
|
799
|
+
|
800
|
+
var _jquery = __webpack_require__(0);
|
801
|
+
|
802
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
803
|
+
|
804
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
805
|
+
|
806
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
807
|
+
|
808
|
+
var _markdownIt = __webpack_require__(19);
|
809
|
+
|
810
|
+
var _markdownIt2 = _interopRequireDefault(_markdownIt);
|
811
|
+
|
812
|
+
var _toMark = __webpack_require__(20);
|
813
|
+
|
814
|
+
var _toMark2 = _interopRequireDefault(_toMark);
|
815
|
+
|
816
|
+
var _htmlSanitizer = __webpack_require__(11);
|
817
|
+
|
818
|
+
var _htmlSanitizer2 = _interopRequireDefault(_htmlSanitizer);
|
819
|
+
|
820
|
+
var _markdownitTaskPlugin = __webpack_require__(21);
|
821
|
+
|
822
|
+
var _markdownitTaskPlugin2 = _interopRequireDefault(_markdownitTaskPlugin);
|
823
|
+
|
824
|
+
var _markdownitCodeBlockPlugin = __webpack_require__(22);
|
825
|
+
|
826
|
+
var _markdownitCodeBlockPlugin2 = _interopRequireDefault(_markdownitCodeBlockPlugin);
|
827
|
+
|
828
|
+
var _markdownitCodeRenderer = __webpack_require__(23);
|
829
|
+
|
830
|
+
var _markdownitCodeRenderer2 = _interopRequireDefault(_markdownitCodeRenderer);
|
831
|
+
|
832
|
+
var _markdownitBlockQuoteRenderer = __webpack_require__(24);
|
833
|
+
|
834
|
+
var _markdownitBlockQuoteRenderer2 = _interopRequireDefault(_markdownitBlockQuoteRenderer);
|
835
|
+
|
836
|
+
var _markdownitTableRenderer = __webpack_require__(25);
|
837
|
+
|
838
|
+
var _markdownitTableRenderer2 = _interopRequireDefault(_markdownitTableRenderer);
|
839
|
+
|
840
|
+
var _markdownitHtmlBlockRenderer = __webpack_require__(26);
|
841
|
+
|
842
|
+
var _markdownitHtmlBlockRenderer2 = _interopRequireDefault(_markdownitHtmlBlockRenderer);
|
843
|
+
|
844
|
+
var _markdownitBackticksRenderer = __webpack_require__(27);
|
845
|
+
|
846
|
+
var _markdownitBackticksRenderer2 = _interopRequireDefault(_markdownitBackticksRenderer);
|
847
|
+
|
848
|
+
var _codeBlockManager = __webpack_require__(7);
|
849
|
+
|
850
|
+
var _codeBlockManager2 = _interopRequireDefault(_codeBlockManager);
|
851
|
+
|
852
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
853
|
+
|
854
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
855
|
+
|
856
|
+
var markdownitHighlight = new _markdownIt2.default({
|
857
|
+
html: true,
|
858
|
+
breaks: true,
|
859
|
+
quotes: '“”‘’',
|
860
|
+
langPrefix: 'lang-',
|
861
|
+
highlight: function highlight(codeText, type) {
|
862
|
+
return _codeBlockManager2.default.createCodeBlockHtml(type, codeText);
|
863
|
+
}
|
864
|
+
});
|
865
|
+
var markdownit = new _markdownIt2.default({
|
866
|
+
html: true,
|
867
|
+
breaks: true,
|
868
|
+
quotes: '“”‘’',
|
869
|
+
langPrefix: 'lang-'
|
870
|
+
});
|
871
|
+
|
872
|
+
// markdownitHighlight
|
873
|
+
markdownitHighlight.block.ruler.at('code', _markdownitCodeRenderer2.default);
|
874
|
+
markdownitHighlight.block.ruler.at('table', _markdownitTableRenderer2.default, {
|
875
|
+
alt: ['paragraph', 'reference']
|
876
|
+
});
|
877
|
+
markdownitHighlight.block.ruler.at('blockquote', _markdownitBlockQuoteRenderer2.default, {
|
878
|
+
alt: ['paragraph', 'reference', 'blockquote', 'list']
|
879
|
+
});
|
880
|
+
markdownitHighlight.block.ruler.at('html_block', _markdownitHtmlBlockRenderer2.default, {
|
881
|
+
alt: ['paragraph', 'reference', 'blockquote']
|
882
|
+
});
|
883
|
+
markdownitHighlight.inline.ruler.at('backticks', _markdownitBackticksRenderer2.default);
|
884
|
+
markdownitHighlight.use(_markdownitTaskPlugin2.default);
|
885
|
+
markdownitHighlight.use(_markdownitCodeBlockPlugin2.default);
|
886
|
+
|
887
|
+
// markdownit
|
888
|
+
markdownit.block.ruler.at('code', _markdownitCodeRenderer2.default);
|
889
|
+
markdownit.block.ruler.at('table', _markdownitTableRenderer2.default, {
|
890
|
+
alt: ['paragraph', 'reference']
|
891
|
+
});
|
892
|
+
markdownit.block.ruler.at('blockquote', _markdownitBlockQuoteRenderer2.default, {
|
893
|
+
alt: ['paragraph', 'reference', 'blockquote', 'list']
|
894
|
+
});
|
895
|
+
markdownit.block.ruler.at('html_block', _markdownitHtmlBlockRenderer2.default, {
|
896
|
+
alt: ['paragraph', 'reference', 'blockquote']
|
897
|
+
});
|
898
|
+
markdownit.inline.ruler.at('backticks', _markdownitBackticksRenderer2.default);
|
899
|
+
markdownit.use(_markdownitTaskPlugin2.default);
|
900
|
+
markdownit.use(_markdownitCodeBlockPlugin2.default);
|
901
|
+
|
902
|
+
/**
|
903
|
+
* Class Convertor
|
904
|
+
*/
|
905
|
+
|
906
|
+
var Convertor = function () {
|
907
|
+
/**
|
908
|
+
* Convertor constructor
|
909
|
+
* @param {EventManager} em - EventManager instance
|
910
|
+
*/
|
911
|
+
function Convertor(em) {
|
912
|
+
_classCallCheck(this, Convertor);
|
913
|
+
|
914
|
+
this.eventManager = em;
|
915
|
+
}
|
916
|
+
|
917
|
+
/**
|
918
|
+
* _markdownToHtmlWithCodeHighlight
|
919
|
+
* Convert markdown to html with Codehighlight
|
920
|
+
* @private
|
921
|
+
* @memberof Convertor
|
922
|
+
* @param {string} markdown markdown text
|
923
|
+
* @returns {string} html text
|
924
|
+
*/
|
925
|
+
|
926
|
+
|
927
|
+
_createClass(Convertor, [{
|
928
|
+
key: '_markdownToHtmlWithCodeHighlight',
|
929
|
+
value: function _markdownToHtmlWithCodeHighlight(markdown) {
|
930
|
+
markdown = markdown.replace(/<br>/ig, '<br data-tomark-pass>');
|
931
|
+
// eslint-disable-next-line
|
932
|
+
var onerrorStripeRegex = /(<img[^>]*)(onerror\s*=\s*[\"']?[^\"']*[\"']?)(.*)/i;
|
933
|
+
while (onerrorStripeRegex.exec(markdown)) {
|
934
|
+
markdown = markdown.replace(onerrorStripeRegex, '$1$3');
|
935
|
+
}
|
936
|
+
|
937
|
+
var renderedHTML = markdownitHighlight.render(markdown);
|
938
|
+
renderedHTML = this._removeBrToMarkPassAttributeInCode(renderedHTML);
|
939
|
+
|
940
|
+
return renderedHTML;
|
941
|
+
}
|
942
|
+
|
943
|
+
/**
|
944
|
+
* _markdownToHtml
|
945
|
+
* Convert markdown to html
|
946
|
+
* @private
|
947
|
+
* @memberof Convertor
|
948
|
+
* @param {string} markdown markdown text
|
949
|
+
* @returns {string} html text
|
950
|
+
*/
|
951
|
+
|
952
|
+
}, {
|
953
|
+
key: '_markdownToHtml',
|
954
|
+
value: function _markdownToHtml(markdown) {
|
955
|
+
markdown = markdown.replace(/<br>/ig, '<br data-tomark-pass>');
|
956
|
+
// eslint-disable-next-line
|
957
|
+
var onerrorStripeRegex = /(<img[^>]*)(onerror\s*=\s*[\"']?[^\"']*[\"']?)(.*)/i;
|
958
|
+
while (onerrorStripeRegex.exec(markdown)) {
|
959
|
+
markdown = markdown.replace(onerrorStripeRegex, '$1$3');
|
960
|
+
}
|
961
|
+
|
962
|
+
var renderedHTML = markdownit.render(markdown);
|
963
|
+
renderedHTML = this._removeBrToMarkPassAttributeInCode(renderedHTML);
|
964
|
+
|
965
|
+
return renderedHTML;
|
966
|
+
}
|
967
|
+
|
968
|
+
/**
|
969
|
+
* Remove BR's data-tomark-pass attribute text when br in code element
|
970
|
+
* @param {string} renderedHTML Rendered HTML string from markdown editor
|
971
|
+
* @returns {string}
|
972
|
+
* @private
|
973
|
+
*/
|
974
|
+
|
975
|
+
}, {
|
976
|
+
key: '_removeBrToMarkPassAttributeInCode',
|
977
|
+
value: function _removeBrToMarkPassAttributeInCode(renderedHTML) {
|
978
|
+
var $wrapperDiv = (0, _jquery2.default)('<div />');
|
979
|
+
|
980
|
+
$wrapperDiv.html(renderedHTML);
|
981
|
+
|
982
|
+
$wrapperDiv.find('code, pre').each(function (i, codeOrPre) {
|
983
|
+
var $code = (0, _jquery2.default)(codeOrPre);
|
984
|
+
$code.html($code.html().replace(/<br data-tomark-pass>/, '<br>'));
|
985
|
+
});
|
986
|
+
|
987
|
+
renderedHTML = $wrapperDiv.html();
|
988
|
+
|
989
|
+
return renderedHTML;
|
990
|
+
}
|
991
|
+
|
992
|
+
/**
|
993
|
+
* toHTMLWithCodeHightlight
|
994
|
+
* Convert markdown to html with Codehighlight
|
995
|
+
* emit convertorAfterMarkdownToHtmlConverted
|
996
|
+
* @memberof Convertor
|
997
|
+
* @param {string} markdown markdown text
|
998
|
+
* @returns {string} html text
|
999
|
+
*/
|
1000
|
+
|
1001
|
+
}, {
|
1002
|
+
key: 'toHTMLWithCodeHightlight',
|
1003
|
+
value: function toHTMLWithCodeHightlight(markdown) {
|
1004
|
+
var html = this._markdownToHtmlWithCodeHighlight(markdown);
|
1005
|
+
html = this.eventManager.emitReduce('convertorAfterMarkdownToHtmlConverted', html);
|
1006
|
+
|
1007
|
+
return html;
|
1008
|
+
}
|
1009
|
+
|
1010
|
+
/**
|
1011
|
+
* toHTML
|
1012
|
+
* Convert markdown to html
|
1013
|
+
* emit convertorAfterMarkdownToHtmlConverted
|
1014
|
+
* @memberof Convertor
|
1015
|
+
* @param {string} markdown markdown text
|
1016
|
+
* @returns {string} html text
|
1017
|
+
*/
|
1018
|
+
|
1019
|
+
}, {
|
1020
|
+
key: 'toHTML',
|
1021
|
+
value: function toHTML(markdown) {
|
1022
|
+
var html = this._markdownToHtml(markdown);
|
1023
|
+
|
1024
|
+
html = this.eventManager.emitReduce('convertorAfterMarkdownToHtmlConverted', html);
|
1025
|
+
|
1026
|
+
return html;
|
1027
|
+
}
|
1028
|
+
}, {
|
1029
|
+
key: 'initHtmlSanitizer',
|
1030
|
+
value: function initHtmlSanitizer() {
|
1031
|
+
this.eventManager.listen('convertorAfterMarkdownToHtmlConverted', function (html) {
|
1032
|
+
return (0, _htmlSanitizer2.default)(html, true);
|
1033
|
+
});
|
1034
|
+
}
|
1035
|
+
|
1036
|
+
/**
|
1037
|
+
* toMarkdown
|
1038
|
+
* Convert html to markdown
|
1039
|
+
* emit convertorAfterHtmlToMarkdownConverted
|
1040
|
+
* @memberof Convertor
|
1041
|
+
* @param {string} html html text
|
1042
|
+
* @param {object | null} toMarkOptions - toMark library options
|
1043
|
+
* @returns {string} markdown text
|
1044
|
+
*/
|
1045
|
+
|
1046
|
+
}, {
|
1047
|
+
key: 'toMarkdown',
|
1048
|
+
value: function toMarkdown(html, toMarkOptions) {
|
1049
|
+
var resultArray = [];
|
1050
|
+
|
1051
|
+
html = this.eventManager.emitReduce('convertorBeforeHtmlToMarkdownConverted', html);
|
1052
|
+
|
1053
|
+
var markdown = (0, _toMark2.default)(this._appendAttributeForBrIfNeed(html), toMarkOptions);
|
1054
|
+
|
1055
|
+
markdown = this.eventManager.emitReduce('convertorAfterHtmlToMarkdownConverted', markdown);
|
1056
|
+
|
1057
|
+
_tuiCodeSnippet2.default.forEach(markdown.split('\n'), function (line, index) {
|
1058
|
+
var FIND_TABLE_RX = /^\|[^|]*\|/ig;
|
1059
|
+
var FIND_CODE_RX = /`[^`]*<br>[^`]*`/ig;
|
1060
|
+
|
1061
|
+
if (!FIND_CODE_RX.test(line) && !FIND_TABLE_RX.test(line)) {
|
1062
|
+
line = line.replace(/<br>/ig, '<br>\n');
|
1063
|
+
}
|
1064
|
+
resultArray[index] = line;
|
1065
|
+
});
|
1066
|
+
|
1067
|
+
return resultArray.join('\n');
|
1068
|
+
}
|
1069
|
+
}, {
|
1070
|
+
key: '_appendAttributeForBrIfNeed',
|
1071
|
+
value: function _appendAttributeForBrIfNeed(html) {
|
1072
|
+
var FIND_BR_RX = /<br>/ig;
|
1073
|
+
var FIND_DOUBLE_BR_RX = /<br \/><br \/>/ig;
|
1074
|
+
var FIND_PASSING_AND_NORMAL_BR_RX = /<br data-tomark-pass \/><br \/>(.)/ig;
|
1075
|
+
var FIRST_TWO_BRS_BEFORE_RX = /([^>]|<\/b>|<\/i>|<\/s>|<img [^>]*>)/;
|
1076
|
+
var TWO_BRS_RX = /<br data-tomark-pass \/><br data-tomark-pass \/>/;
|
1077
|
+
var FIND_FIRST_TWO_BRS_RX = new RegExp(FIRST_TWO_BRS_BEFORE_RX.source + TWO_BRS_RX.source, 'g');
|
1078
|
+
|
1079
|
+
html = html.replace(FIND_BR_RX, '<br />');
|
1080
|
+
|
1081
|
+
html = html.replace(FIND_DOUBLE_BR_RX, '<br data-tomark-pass /><br data-tomark-pass />');
|
1082
|
+
|
1083
|
+
var div = document.createElement('div');
|
1084
|
+
var $div = (0, _jquery2.default)(div);
|
1085
|
+
$div.html(html);
|
1086
|
+
$div.find('pre br,code br').each(function (index, node) {
|
1087
|
+
if (node.hasAttribute('data-tomark-pass')) {
|
1088
|
+
node.removeAttribute('data-tomark-pass');
|
1089
|
+
}
|
1090
|
+
});
|
1091
|
+
|
1092
|
+
html = $div.html().replace(/<br data-tomark-pass="">/ig, '<br data-tomark-pass />');
|
1093
|
+
html = html.replace(FIND_BR_RX, '<br />');
|
1094
|
+
|
1095
|
+
html = html.replace(FIND_PASSING_AND_NORMAL_BR_RX, '<br data-tomark-pass /><br data-tomark-pass />$1');
|
1096
|
+
html = html.replace(FIND_FIRST_TWO_BRS_RX, '$1<br /><br />');
|
1097
|
+
|
1098
|
+
return html;
|
1099
|
+
}
|
1100
|
+
|
1101
|
+
/**
|
1102
|
+
* get markdownit with code highlight
|
1103
|
+
* @returns {markdownit} - markdownit instance
|
1104
|
+
* @memberof Convertor
|
1105
|
+
* @static
|
1106
|
+
*/
|
1107
|
+
|
1108
|
+
}], [{
|
1109
|
+
key: 'getMarkdownitHighlightRenderer',
|
1110
|
+
value: function getMarkdownitHighlightRenderer() {
|
1111
|
+
return markdownitHighlight;
|
1112
|
+
}
|
1113
|
+
}]);
|
1114
|
+
|
1115
|
+
return Convertor;
|
1116
|
+
}();
|
1117
|
+
|
1118
|
+
exports.default = Convertor;
|
1119
|
+
|
1120
|
+
/***/ }),
|
1121
|
+
|
1122
|
+
/***/ 16:
|
1123
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1124
|
+
|
1125
|
+
"use strict";
|
1126
|
+
|
1127
|
+
|
1128
|
+
Object.defineProperty(exports, "__esModule", {
|
1129
|
+
value: true
|
1130
|
+
});
|
1131
|
+
|
1132
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
1133
|
+
* @fileoverview Implements LazyRunner
|
1134
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
1135
|
+
*/
|
1136
|
+
|
1137
|
+
|
1138
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
1139
|
+
|
1140
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
1141
|
+
|
1142
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1143
|
+
|
1144
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
1145
|
+
|
1146
|
+
/**
|
1147
|
+
* Class LazyRunner
|
1148
|
+
*/
|
1149
|
+
var LazyRunner = function () {
|
1150
|
+
/**
|
1151
|
+
* Creates an instance of LazyRunner.
|
1152
|
+
* @memberof LazyRunner
|
1153
|
+
*/
|
1154
|
+
function LazyRunner() {
|
1155
|
+
_classCallCheck(this, LazyRunner);
|
1156
|
+
|
1157
|
+
this.globalTOID = null;
|
1158
|
+
this.lazyRunFunctions = {};
|
1159
|
+
}
|
1160
|
+
|
1161
|
+
_createClass(LazyRunner, [{
|
1162
|
+
key: 'run',
|
1163
|
+
value: function run(fn, params, context, delay) {
|
1164
|
+
var TOID = void 0;
|
1165
|
+
|
1166
|
+
if (_tuiCodeSnippet2.default.isString(fn)) {
|
1167
|
+
TOID = this._runRegisteredRun(fn, params, context, delay);
|
1168
|
+
} else {
|
1169
|
+
TOID = this._runSingleRun(fn, params, context, delay, this.globalTOID);
|
1170
|
+
this.globalTOID = TOID;
|
1171
|
+
}
|
1172
|
+
|
1173
|
+
return TOID;
|
1174
|
+
}
|
1175
|
+
}, {
|
1176
|
+
key: 'registerLazyRunFunction',
|
1177
|
+
value: function registerLazyRunFunction(name, fn, delay, context) {
|
1178
|
+
context = context || this;
|
1179
|
+
|
1180
|
+
this.lazyRunFunctions[name] = {
|
1181
|
+
fn: fn,
|
1182
|
+
delay: delay,
|
1183
|
+
context: context,
|
1184
|
+
TOID: null
|
1185
|
+
};
|
1186
|
+
}
|
1187
|
+
}, {
|
1188
|
+
key: '_runSingleRun',
|
1189
|
+
value: function _runSingleRun(fn, params, context, delay, TOID) {
|
1190
|
+
this._clearTOIDIfNeed(TOID);
|
1191
|
+
|
1192
|
+
TOID = setTimeout(function () {
|
1193
|
+
fn.call(context, params);
|
1194
|
+
}, delay);
|
1195
|
+
|
1196
|
+
return TOID;
|
1197
|
+
}
|
1198
|
+
}, {
|
1199
|
+
key: '_runRegisteredRun',
|
1200
|
+
value: function _runRegisteredRun(lazyRunName, params, context, delay) {
|
1201
|
+
var lazyRunFunction = this.lazyRunFunctions[lazyRunName];
|
1202
|
+
var fn = lazyRunFunction.fn;
|
1203
|
+
var TOID = lazyRunFunction.TOID;
|
1204
|
+
|
1205
|
+
delay = delay || lazyRunFunction.delay;
|
1206
|
+
context = context || lazyRunFunction.context;
|
1207
|
+
|
1208
|
+
TOID = this._runSingleRun(fn, params, context, delay, TOID);
|
1209
|
+
|
1210
|
+
lazyRunFunction.TOID = TOID;
|
1211
|
+
|
1212
|
+
return TOID;
|
1213
|
+
}
|
1214
|
+
}, {
|
1215
|
+
key: '_clearTOIDIfNeed',
|
1216
|
+
value: function _clearTOIDIfNeed(TOID) {
|
1217
|
+
if (TOID) {
|
1218
|
+
clearTimeout(TOID);
|
1219
|
+
}
|
1220
|
+
}
|
1221
|
+
}]);
|
1222
|
+
|
1223
|
+
return LazyRunner;
|
1224
|
+
}();
|
1225
|
+
|
1226
|
+
exports.default = LazyRunner;
|
1227
|
+
|
1228
|
+
/***/ }),
|
1229
|
+
|
1230
|
+
/***/ 17:
|
1231
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1232
|
+
|
1233
|
+
"use strict";
|
1234
|
+
|
1235
|
+
|
1236
|
+
Object.defineProperty(exports, "__esModule", {
|
1237
|
+
value: true
|
1238
|
+
});
|
1239
|
+
|
1240
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
1241
|
+
* @fileoverview Implements Command
|
1242
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
1243
|
+
*/
|
1244
|
+
|
1245
|
+
|
1246
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
1247
|
+
|
1248
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
1249
|
+
|
1250
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1251
|
+
|
1252
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
1253
|
+
|
1254
|
+
/**
|
1255
|
+
* Class Command
|
1256
|
+
*/
|
1257
|
+
var Command = function () {
|
1258
|
+
/**
|
1259
|
+
* @param {string} name Command name
|
1260
|
+
* @param {number} type Command type (Command.TYPE)
|
1261
|
+
* @param {Array.<string>} [keyMap] keyMap
|
1262
|
+
*/
|
1263
|
+
function Command(name, type, keyMap) {
|
1264
|
+
_classCallCheck(this, Command);
|
1265
|
+
|
1266
|
+
this.name = name;
|
1267
|
+
this.type = type;
|
1268
|
+
|
1269
|
+
if (keyMap) {
|
1270
|
+
this.setKeyMap(keyMap);
|
1271
|
+
}
|
1272
|
+
}
|
1273
|
+
/**
|
1274
|
+
* getName
|
1275
|
+
* returns Name of command
|
1276
|
+
* @memberof Command
|
1277
|
+
* @returns {string} Command Name
|
1278
|
+
*/
|
1279
|
+
|
1280
|
+
|
1281
|
+
_createClass(Command, [{
|
1282
|
+
key: 'getName',
|
1283
|
+
value: function getName() {
|
1284
|
+
return this.name;
|
1285
|
+
}
|
1286
|
+
|
1287
|
+
/**
|
1288
|
+
* getType
|
1289
|
+
* returns Type of command
|
1290
|
+
* @memberof Command
|
1291
|
+
* @returns {number} Command Command type number
|
1292
|
+
*/
|
1293
|
+
|
1294
|
+
}, {
|
1295
|
+
key: 'getType',
|
1296
|
+
value: function getType() {
|
1297
|
+
return this.type;
|
1298
|
+
}
|
1299
|
+
|
1300
|
+
/**
|
1301
|
+
* isMDType
|
1302
|
+
* returns whether Command Type is Markdown or not
|
1303
|
+
* @memberof Command
|
1304
|
+
* @returns {boolean} result
|
1305
|
+
*/
|
1306
|
+
|
1307
|
+
}, {
|
1308
|
+
key: 'isMDType',
|
1309
|
+
value: function isMDType() {
|
1310
|
+
return this.type === Command.TYPE.MD;
|
1311
|
+
}
|
1312
|
+
|
1313
|
+
/**
|
1314
|
+
* isWWType
|
1315
|
+
* returns whether Command Type is Wysiwyg or not
|
1316
|
+
* @memberof Command
|
1317
|
+
* @returns {boolean} result
|
1318
|
+
*/
|
1319
|
+
|
1320
|
+
}, {
|
1321
|
+
key: 'isWWType',
|
1322
|
+
value: function isWWType() {
|
1323
|
+
return this.type === Command.TYPE.WW;
|
1324
|
+
}
|
1325
|
+
|
1326
|
+
/**
|
1327
|
+
* isGlobalType
|
1328
|
+
* returns whether Command Type is Global or not
|
1329
|
+
* @memberof Command
|
1330
|
+
* @returns {boolean} result
|
1331
|
+
*/
|
1332
|
+
|
1333
|
+
}, {
|
1334
|
+
key: 'isGlobalType',
|
1335
|
+
value: function isGlobalType() {
|
1336
|
+
return this.type === Command.TYPE.GB;
|
1337
|
+
}
|
1338
|
+
|
1339
|
+
/**
|
1340
|
+
* setKeyMap
|
1341
|
+
* Set keymap value for each os
|
1342
|
+
* @memberof Command
|
1343
|
+
* @param {string} win Windows Key(and etc)
|
1344
|
+
* @param {string} mac Mac osx key
|
1345
|
+
*/
|
1346
|
+
|
1347
|
+
}, {
|
1348
|
+
key: 'setKeyMap',
|
1349
|
+
value: function setKeyMap(win, mac) {
|
1350
|
+
this.keyMap = [win, mac];
|
1351
|
+
}
|
1352
|
+
}]);
|
1353
|
+
|
1354
|
+
return Command;
|
1355
|
+
}();
|
1356
|
+
|
1357
|
+
/**
|
1358
|
+
* Command factory method
|
1359
|
+
* @memberof Command
|
1360
|
+
* @param {string} typeStr Editor type name
|
1361
|
+
* @param {object} props Property
|
1362
|
+
* @param {string} props.name Command name
|
1363
|
+
* @param {number} props.type Command type number
|
1364
|
+
* @returns {Command}
|
1365
|
+
*/
|
1366
|
+
|
1367
|
+
|
1368
|
+
Command.factory = function (typeStr, props) {
|
1369
|
+
var type = void 0;
|
1370
|
+
|
1371
|
+
if (typeStr === 'markdown') {
|
1372
|
+
type = Command.TYPE.MD;
|
1373
|
+
} else if (typeStr === 'wysiwyg') {
|
1374
|
+
type = Command.TYPE.WW;
|
1375
|
+
} else if (typeStr === 'global') {
|
1376
|
+
type = Command.TYPE.GB;
|
1377
|
+
}
|
1378
|
+
|
1379
|
+
var command = new Command(props.name, type);
|
1380
|
+
|
1381
|
+
_tuiCodeSnippet2.default.extend(command, props);
|
1382
|
+
|
1383
|
+
return command;
|
1384
|
+
};
|
1385
|
+
|
1386
|
+
/**
|
1387
|
+
* Command Type Constant
|
1388
|
+
* markdown : 0
|
1389
|
+
* wysiwyg : 1
|
1390
|
+
* global : 2
|
1391
|
+
* @memberof Command
|
1392
|
+
* @type {object}
|
1393
|
+
*/
|
1394
|
+
Command.TYPE = {
|
1395
|
+
MD: 0,
|
1396
|
+
WW: 1,
|
1397
|
+
GB: 2
|
1398
|
+
};
|
1399
|
+
|
1400
|
+
exports.default = Command;
|
1401
|
+
|
1402
|
+
/***/ }),
|
1403
|
+
|
1404
|
+
/***/ 19:
|
1405
|
+
/***/ (function(module, exports) {
|
1406
|
+
|
1407
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_19__;
|
1408
|
+
|
1409
|
+
/***/ }),
|
1410
|
+
|
1411
|
+
/***/ 2:
|
1412
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1413
|
+
|
1414
|
+
"use strict";
|
1415
|
+
|
1416
|
+
|
1417
|
+
Object.defineProperty(exports, "__esModule", {
|
1418
|
+
value: true
|
1419
|
+
});
|
1420
|
+
|
1421
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
1422
|
+
* @fileoverview Implements CommandManager
|
1423
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
1424
|
+
*/
|
1425
|
+
|
1426
|
+
|
1427
|
+
var _jquery = __webpack_require__(0);
|
1428
|
+
|
1429
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
1430
|
+
|
1431
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
1432
|
+
|
1433
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
1434
|
+
|
1435
|
+
var _command = __webpack_require__(17);
|
1436
|
+
|
1437
|
+
var _command2 = _interopRequireDefault(_command);
|
1438
|
+
|
1439
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1440
|
+
|
1441
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
1442
|
+
|
1443
|
+
var isMac = /Mac/.test(navigator.platform);
|
1444
|
+
var KEYMAP_OS_INDEX = isMac ? 1 : 0;
|
1445
|
+
|
1446
|
+
/**
|
1447
|
+
* Class CommandManager
|
1448
|
+
*/
|
1449
|
+
|
1450
|
+
var CommandManager = function () {
|
1451
|
+
/**
|
1452
|
+
* @param {ToastUIEditor} base nedInstance
|
1453
|
+
* @param {object} [options={}] - option object
|
1454
|
+
* @param {boolean} [options.useCommandShortcut=true] - execute command with keyMap
|
1455
|
+
*/
|
1456
|
+
function CommandManager(base) {
|
1457
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1458
|
+
|
1459
|
+
_classCallCheck(this, CommandManager);
|
1460
|
+
|
1461
|
+
this._command = new _tuiCodeSnippet2.default.Map();
|
1462
|
+
this._mdCommand = new _tuiCodeSnippet2.default.Map();
|
1463
|
+
this._wwCommand = new _tuiCodeSnippet2.default.Map();
|
1464
|
+
this._options = _jquery2.default.extend({
|
1465
|
+
'useCommandShortcut': true
|
1466
|
+
}, options);
|
1467
|
+
|
1468
|
+
this.base = base;
|
1469
|
+
|
1470
|
+
this.keyMapCommand = {};
|
1471
|
+
|
1472
|
+
this._initEvent();
|
1473
|
+
}
|
1474
|
+
|
1475
|
+
/**
|
1476
|
+
* You can change command before command addition by addCommandBefore event.
|
1477
|
+
* @param {object} command - command
|
1478
|
+
* @returns {object}
|
1479
|
+
* @private
|
1480
|
+
*/
|
1481
|
+
|
1482
|
+
|
1483
|
+
_createClass(CommandManager, [{
|
1484
|
+
key: '_addCommandBefore',
|
1485
|
+
value: function _addCommandBefore(command) {
|
1486
|
+
var commandWrapper = { command: command };
|
1487
|
+
|
1488
|
+
this.base.eventManager.emit('addCommandBefore', commandWrapper);
|
1489
|
+
|
1490
|
+
return commandWrapper.command || command;
|
1491
|
+
}
|
1492
|
+
|
1493
|
+
/**
|
1494
|
+
* Add command
|
1495
|
+
* @memberof CommandManager
|
1496
|
+
* @param {Command} command Command instance
|
1497
|
+
* @returns {Command} Command
|
1498
|
+
*/
|
1499
|
+
|
1500
|
+
}, {
|
1501
|
+
key: 'addCommand',
|
1502
|
+
value: function addCommand(command) {
|
1503
|
+
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
1504
|
+
args[_key - 1] = arguments[_key];
|
1505
|
+
}
|
1506
|
+
|
1507
|
+
if (args.length) {
|
1508
|
+
command = CommandManager.command.apply(CommandManager, [command].concat(args));
|
1509
|
+
}
|
1510
|
+
|
1511
|
+
command = this._addCommandBefore(command);
|
1512
|
+
|
1513
|
+
var name = command.getName();
|
1514
|
+
|
1515
|
+
var commandBase = void 0;
|
1516
|
+
|
1517
|
+
if (command.isMDType()) {
|
1518
|
+
commandBase = this._mdCommand;
|
1519
|
+
} else if (command.isWWType()) {
|
1520
|
+
commandBase = this._wwCommand;
|
1521
|
+
} else if (command.isGlobalType()) {
|
1522
|
+
commandBase = this._command;
|
1523
|
+
}
|
1524
|
+
|
1525
|
+
commandBase.set(name, command);
|
1526
|
+
|
1527
|
+
if (command.keyMap) {
|
1528
|
+
this.keyMapCommand[command.keyMap[KEYMAP_OS_INDEX]] = name;
|
1529
|
+
}
|
1530
|
+
|
1531
|
+
return command;
|
1532
|
+
}
|
1533
|
+
|
1534
|
+
/**
|
1535
|
+
* _initEvent
|
1536
|
+
* Bind event handler to eventManager
|
1537
|
+
* @private
|
1538
|
+
* @memberof CommandManager
|
1539
|
+
*/
|
1540
|
+
|
1541
|
+
}, {
|
1542
|
+
key: '_initEvent',
|
1543
|
+
value: function _initEvent() {
|
1544
|
+
var _this = this;
|
1545
|
+
|
1546
|
+
this.base.eventManager.listen('command', function () {
|
1547
|
+
_this.exec.apply(_this, arguments);
|
1548
|
+
});
|
1549
|
+
|
1550
|
+
this.base.eventManager.listen('keyMap', function (ev) {
|
1551
|
+
if (!_this._options.useCommandShortcut) {
|
1552
|
+
return;
|
1553
|
+
}
|
1554
|
+
var command = _this.keyMapCommand[ev.keyMap];
|
1555
|
+
|
1556
|
+
if (command) {
|
1557
|
+
ev.data.preventDefault();
|
1558
|
+
_this.exec(command);
|
1559
|
+
}
|
1560
|
+
});
|
1561
|
+
}
|
1562
|
+
|
1563
|
+
/**
|
1564
|
+
* Execute command
|
1565
|
+
* @memberof CommandManager
|
1566
|
+
* @param {String} name Command name
|
1567
|
+
* @returns {*}
|
1568
|
+
*/
|
1569
|
+
|
1570
|
+
}, {
|
1571
|
+
key: 'exec',
|
1572
|
+
value: function exec(name) {
|
1573
|
+
var commandToRun = void 0,
|
1574
|
+
result = void 0;
|
1575
|
+
var context = this.base;
|
1576
|
+
|
1577
|
+
commandToRun = this._command.get(name);
|
1578
|
+
|
1579
|
+
if (!commandToRun) {
|
1580
|
+
if (this.base.isMarkdownMode()) {
|
1581
|
+
commandToRun = this._mdCommand.get(name);
|
1582
|
+
context = this.base.mdEditor;
|
1583
|
+
} else {
|
1584
|
+
commandToRun = this._wwCommand.get(name);
|
1585
|
+
context = this.base.wwEditor;
|
1586
|
+
}
|
1587
|
+
}
|
1588
|
+
|
1589
|
+
if (commandToRun) {
|
1590
|
+
var _commandToRun;
|
1591
|
+
|
1592
|
+
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
1593
|
+
args[_key2 - 1] = arguments[_key2];
|
1594
|
+
}
|
1595
|
+
|
1596
|
+
args.unshift(context);
|
1597
|
+
result = (_commandToRun = commandToRun).exec.apply(_commandToRun, args);
|
1598
|
+
}
|
1599
|
+
|
1600
|
+
return result;
|
1601
|
+
}
|
1602
|
+
}]);
|
1603
|
+
|
1604
|
+
return CommandManager;
|
1605
|
+
}();
|
1606
|
+
|
1607
|
+
/**
|
1608
|
+
* Create command by given editor type and property object
|
1609
|
+
* @memberof ComponentManager
|
1610
|
+
* @param {string} type Command type
|
1611
|
+
* @param {{name: string, keyMap: object}} props Property
|
1612
|
+
* @returns {*}
|
1613
|
+
*/
|
1614
|
+
|
1615
|
+
|
1616
|
+
CommandManager.command = function (type, props) {
|
1617
|
+
var command = _command2.default.factory(type, props.name, props.keyMap);
|
1618
|
+
|
1619
|
+
_tuiCodeSnippet2.default.extend(command, props);
|
1620
|
+
|
1621
|
+
return command;
|
1622
|
+
};
|
1623
|
+
|
1624
|
+
exports.default = CommandManager;
|
1625
|
+
|
1626
|
+
/***/ }),
|
1627
|
+
|
1628
|
+
/***/ 20:
|
1629
|
+
/***/ (function(module, exports) {
|
1630
|
+
|
1631
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_20__;
|
1632
|
+
|
1633
|
+
/***/ }),
|
1634
|
+
|
1635
|
+
/***/ 21:
|
1636
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1637
|
+
|
1638
|
+
"use strict";
|
1639
|
+
|
1640
|
+
|
1641
|
+
// Copyright (c) 2016, Revin Guillen.
|
1642
|
+
// Distributed under an MIT license: https://github.com/revin/markdown-it-task-lists/
|
1643
|
+
|
1644
|
+
/**
|
1645
|
+
* @fileoverview Implements markdownitTaskPlugin
|
1646
|
+
* @modifier Sungho Kim(sungho-kim@nhnent.com) FE Development Lab/NHN Ent.
|
1647
|
+
* @modifier Junghwan Park(junghwan.park@nhnent.com) FE Development Lab/NHN Ent.
|
1648
|
+
*/
|
1649
|
+
/* eslint-disable */
|
1650
|
+
|
1651
|
+
/**
|
1652
|
+
* Task list renderer for Markdown-it
|
1653
|
+
* @param {object} markdownit Markdown-it instance
|
1654
|
+
* @ignore
|
1655
|
+
*/
|
1656
|
+
var MarkdownitTaskRenderer = function MarkdownitTaskRenderer(markdownit) {
|
1657
|
+
markdownit.core.ruler.after('inline', 'tui-task-list', function (state) {
|
1658
|
+
var TASK_LIST_ITEM_CLASS_NAME = 'task-list-item';
|
1659
|
+
var CHECKED_CLASS_NAME = 'checked';
|
1660
|
+
var tokens = state.tokens;
|
1661
|
+
var className;
|
1662
|
+
var tokenIndex;
|
1663
|
+
|
1664
|
+
// tokenIndex=0 'ul', tokenIndex=1 'li', tokenIndex=2 'p_open'
|
1665
|
+
for (tokenIndex = 2; tokenIndex < tokens.length; tokenIndex += 1) {
|
1666
|
+
if (isTaskListItemToken(tokens, tokenIndex)) {
|
1667
|
+
if (isChecked(tokens[tokenIndex])) {
|
1668
|
+
className = TASK_LIST_ITEM_CLASS_NAME + ' ' + CHECKED_CLASS_NAME;
|
1669
|
+
} else {
|
1670
|
+
className = TASK_LIST_ITEM_CLASS_NAME;
|
1671
|
+
}
|
1672
|
+
|
1673
|
+
removeMarkdownTaskFormatText(tokens[tokenIndex]);
|
1674
|
+
|
1675
|
+
setTokenAttribute(tokens[tokenIndex - 2], 'class', className);
|
1676
|
+
setTokenAttribute(tokens[tokenIndex - 2], 'data-te-task', '');
|
1677
|
+
}
|
1678
|
+
}
|
1679
|
+
});
|
1680
|
+
};
|
1681
|
+
|
1682
|
+
/**
|
1683
|
+
* Remove task format text for rendering
|
1684
|
+
* @param {object} token Token object
|
1685
|
+
* @ignore
|
1686
|
+
*/
|
1687
|
+
function removeMarkdownTaskFormatText(token) {
|
1688
|
+
// '[X] ' length is 4
|
1689
|
+
// FIXED: we don't need first space
|
1690
|
+
token.content = token.content.slice(4);
|
1691
|
+
token.children[0].content = token.children[0].content.slice(4);
|
1692
|
+
}
|
1693
|
+
|
1694
|
+
/**
|
1695
|
+
* Return boolean value whether task checked or not
|
1696
|
+
* @param {object} token Token object
|
1697
|
+
* @returns {boolean}
|
1698
|
+
* @ignore
|
1699
|
+
*/
|
1700
|
+
function isChecked(token) {
|
1701
|
+
var checked = false;
|
1702
|
+
|
1703
|
+
if (token.content.indexOf('[x]') === 0 || token.content.indexOf('[X]') === 0) {
|
1704
|
+
checked = true;
|
1705
|
+
}
|
1706
|
+
|
1707
|
+
return checked;
|
1708
|
+
}
|
1709
|
+
|
1710
|
+
/**
|
1711
|
+
* Set attribute of passed token
|
1712
|
+
* @param {object} token Token object
|
1713
|
+
* @param {string} attributeName Attribute name for set
|
1714
|
+
* @param {string} attributeValue Attribute value for set
|
1715
|
+
* @ignore
|
1716
|
+
*/
|
1717
|
+
function setTokenAttribute(token, attributeName, attributeValue) {
|
1718
|
+
var index = token.attrIndex(attributeName);
|
1719
|
+
var attr = [attributeName, attributeValue];
|
1720
|
+
|
1721
|
+
if (index < 0) {
|
1722
|
+
token.attrPush(attr);
|
1723
|
+
} else {
|
1724
|
+
token.attrs[index] = attr;
|
1725
|
+
}
|
1726
|
+
}
|
1727
|
+
|
1728
|
+
/**
|
1729
|
+
* Return boolean value whether task list item or not
|
1730
|
+
* @param {array} tokens Token object
|
1731
|
+
* @param {number} index Number of token index
|
1732
|
+
* @returns {boolean}
|
1733
|
+
* @ignore
|
1734
|
+
*/
|
1735
|
+
function isTaskListItemToken(tokens, index) {
|
1736
|
+
return tokens[index].type === 'inline' && tokens[index - 1].type === 'paragraph_open' && tokens[index - 2].type === 'list_item_open' && (tokens[index].content.indexOf('[ ]') === 0 || tokens[index].content.indexOf('[x]') === 0 || tokens[index].content.indexOf('[X]') === 0);
|
1737
|
+
}
|
1738
|
+
/* eslint-enable */
|
1739
|
+
|
1740
|
+
module.exports = MarkdownitTaskRenderer;
|
1741
|
+
|
1742
|
+
/***/ }),
|
1743
|
+
|
1744
|
+
/***/ 22:
|
1745
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1746
|
+
|
1747
|
+
"use strict";
|
1748
|
+
|
1749
|
+
|
1750
|
+
// Copyright (c) 2016, Revin Guillen.
|
1751
|
+
// Distributed under an MIT license: https://github.com/revin/markdown-it-task-lists/
|
1752
|
+
/* eslint-disable */
|
1753
|
+
/**
|
1754
|
+
* @fileoverview Implements markdownitCodeBlockPlugin
|
1755
|
+
* @modifier NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
1756
|
+
*/
|
1757
|
+
|
1758
|
+
/**
|
1759
|
+
* Code block renderer for Markdown-it
|
1760
|
+
* @param {object} markdownit Markdown-it instance
|
1761
|
+
* @ignore
|
1762
|
+
*/
|
1763
|
+
var MarkdownitCodeBlockRenderer = function MarkdownitCodeBlockRenderer(markdownit) {
|
1764
|
+
markdownit.core.ruler.after('block', 'tui-code-block', function (state) {
|
1765
|
+
var tokens = state.tokens;
|
1766
|
+
var currentToken, tokenIndex;
|
1767
|
+
|
1768
|
+
for (tokenIndex = 0; tokenIndex < tokens.length; tokenIndex += 1) {
|
1769
|
+
currentToken = tokens[tokenIndex];
|
1770
|
+
|
1771
|
+
if (isCodeFenceToken(currentToken) && currentToken.info) {
|
1772
|
+
setTokenAttribute(currentToken, 'data-language', escape(currentToken.info.replace(' ', ''), true));
|
1773
|
+
}
|
1774
|
+
}
|
1775
|
+
});
|
1776
|
+
};
|
1777
|
+
|
1778
|
+
/**
|
1779
|
+
* Set attribute of passed token
|
1780
|
+
* @param {object} token Token object
|
1781
|
+
* @param {string} attributeName Attribute name for set
|
1782
|
+
* @param {string} attributeValue Attribute value for set
|
1783
|
+
* @ignore
|
1784
|
+
*/
|
1785
|
+
function setTokenAttribute(token, attributeName, attributeValue) {
|
1786
|
+
var index = token.attrIndex(attributeName);
|
1787
|
+
var attr = [attributeName, attributeValue];
|
1788
|
+
|
1789
|
+
if (index < 0) {
|
1790
|
+
token.attrPush(attr);
|
1791
|
+
} else {
|
1792
|
+
token.attrs[index] = attr;
|
1793
|
+
}
|
1794
|
+
}
|
1795
|
+
/**
|
1796
|
+
* Return boolean value whether passed token is code fence or not
|
1797
|
+
* @param {object} token Token object
|
1798
|
+
* @returns {boolean}
|
1799
|
+
* @ignore
|
1800
|
+
*/
|
1801
|
+
function isCodeFenceToken(token) {
|
1802
|
+
return token.block === true && token.tag === 'code' && token.type === 'fence';
|
1803
|
+
}
|
1804
|
+
|
1805
|
+
/**
|
1806
|
+
* escape code from markdown-it
|
1807
|
+
* @param {string} html HTML string
|
1808
|
+
* @param {string} encode Boolean value of whether encode or not
|
1809
|
+
* @returns {string}
|
1810
|
+
* @ignore
|
1811
|
+
*/
|
1812
|
+
function escape(html, encode) {
|
1813
|
+
return html.replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
1814
|
+
}
|
1815
|
+
/* eslint-enable */
|
1816
|
+
|
1817
|
+
module.exports = MarkdownitCodeBlockRenderer;
|
1818
|
+
|
1819
|
+
/***/ }),
|
1820
|
+
|
1821
|
+
/***/ 23:
|
1822
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1823
|
+
|
1824
|
+
"use strict";
|
1825
|
+
|
1826
|
+
|
1827
|
+
// Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
1828
|
+
// Distributed under an ISC license: https://github.com/markdown-it/markdown-it/
|
1829
|
+
/**
|
1830
|
+
* @fileoverview Implements MarkdownItCodeRenderer
|
1831
|
+
* @modifier NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
1832
|
+
*/
|
1833
|
+
|
1834
|
+
/* eslint-disable */
|
1835
|
+
module.exports = function code(state, startLine, endLine /*, silent*/) {
|
1836
|
+
// Added by Junghwan Park
|
1837
|
+
var FIND_LIST_RX = / {0,3}(?:-|\*|\d\.) /;
|
1838
|
+
var lines = state.src.split('\n');
|
1839
|
+
var currentLine = lines[startLine];
|
1840
|
+
// Added by Junghwan Park
|
1841
|
+
|
1842
|
+
var nextLine,
|
1843
|
+
last,
|
1844
|
+
token,
|
1845
|
+
emptyLines = 0;
|
1846
|
+
|
1847
|
+
// Add condition by Junghwan Park
|
1848
|
+
if (currentLine.match(FIND_LIST_RX) || state.sCount[startLine] - state.blkIndent < 4) {
|
1849
|
+
// Add condition by Junghwan Park
|
1850
|
+
return false;
|
1851
|
+
}
|
1852
|
+
|
1853
|
+
last = nextLine = startLine + 1;
|
1854
|
+
|
1855
|
+
while (nextLine < endLine) {
|
1856
|
+
if (state.isEmpty(nextLine)) {
|
1857
|
+
emptyLines++;
|
1858
|
+
|
1859
|
+
// workaround for lists: 2 blank lines should terminate indented
|
1860
|
+
// code block, but not fenced code block
|
1861
|
+
if (emptyLines >= 2 && state.parentType === 'list') {
|
1862
|
+
break;
|
1863
|
+
}
|
1864
|
+
|
1865
|
+
nextLine++;
|
1866
|
+
continue;
|
1867
|
+
}
|
1868
|
+
|
1869
|
+
emptyLines = 0;
|
1870
|
+
|
1871
|
+
if (state.sCount[nextLine] - state.blkIndent >= 4) {
|
1872
|
+
nextLine++;
|
1873
|
+
last = nextLine;
|
1874
|
+
continue;
|
1875
|
+
}
|
1876
|
+
break;
|
1877
|
+
}
|
1878
|
+
|
1879
|
+
state.line = last;
|
1880
|
+
|
1881
|
+
token = state.push('code_block', 'code', 0);
|
1882
|
+
token.content = state.getLines(startLine, last, 4 + state.blkIndent, true);
|
1883
|
+
token.map = [startLine, state.line];
|
1884
|
+
|
1885
|
+
return true;
|
1886
|
+
};
|
1887
|
+
/* eslint-enable */
|
1888
|
+
|
1889
|
+
/***/ }),
|
1890
|
+
|
1891
|
+
/***/ 24:
|
1892
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1893
|
+
|
1894
|
+
"use strict";
|
1895
|
+
// Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
1896
|
+
// Distributed under MIT license: https://github.com/markdown-it/markdown-it/
|
1897
|
+
/**
|
1898
|
+
* @fileoverview Implements markdownitCodeBlockQuoteRenderer
|
1899
|
+
* @modifier NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
1900
|
+
*/
|
1901
|
+
|
1902
|
+
/* eslint-disable */
|
1903
|
+
|
1904
|
+
// Block quotes
|
1905
|
+
|
1906
|
+
|
1907
|
+
|
1908
|
+
// prevent quote, pre in list #811
|
1909
|
+
// ref: #989
|
1910
|
+
// #811 START
|
1911
|
+
// var isSpace = require('../common/utils').isSpace;
|
1912
|
+
|
1913
|
+
function isSpace(code) {
|
1914
|
+
switch (code) {
|
1915
|
+
case 0x09:
|
1916
|
+
case 0x20:
|
1917
|
+
return true;
|
1918
|
+
}
|
1919
|
+
return false;
|
1920
|
+
}
|
1921
|
+
// #811 END
|
1922
|
+
|
1923
|
+
module.exports = function blockquote(state, startLine, endLine, silent) {
|
1924
|
+
var adjustTab,
|
1925
|
+
ch,
|
1926
|
+
i,
|
1927
|
+
initial,
|
1928
|
+
l,
|
1929
|
+
lastLineEmpty,
|
1930
|
+
lines,
|
1931
|
+
nextLine,
|
1932
|
+
offset,
|
1933
|
+
oldBMarks,
|
1934
|
+
oldBSCount,
|
1935
|
+
oldIndent,
|
1936
|
+
oldParentType,
|
1937
|
+
oldSCount,
|
1938
|
+
oldTShift,
|
1939
|
+
spaceAfterMarker,
|
1940
|
+
terminate,
|
1941
|
+
terminatorRules,
|
1942
|
+
token,
|
1943
|
+
wasOutdented,
|
1944
|
+
oldLineMax = state.lineMax,
|
1945
|
+
pos = state.bMarks[startLine] + state.tShift[startLine],
|
1946
|
+
max = state.eMarks[startLine];
|
1947
|
+
|
1948
|
+
// #811 START
|
1949
|
+
var FIND_LIST_RX = /(?:-|\*|\d+\.) {1,4}(?:> {0,3})[^>]*$/;
|
1950
|
+
var sourceLines = state.src.split('\n');
|
1951
|
+
var currentLine = sourceLines[startLine];
|
1952
|
+
// #811 END
|
1953
|
+
|
1954
|
+
// if it's indented more than 3 spaces, it should be a code block
|
1955
|
+
if (state.sCount[startLine] - state.blkIndent >= 4) {
|
1956
|
+
return false;
|
1957
|
+
}
|
1958
|
+
|
1959
|
+
// check the block quote marker
|
1960
|
+
if (state.src.charCodeAt(pos++) !== 0x3E /* > */) {
|
1961
|
+
return false;
|
1962
|
+
}
|
1963
|
+
// #811 START
|
1964
|
+
// check block quote in list
|
1965
|
+
if (currentLine.match(FIND_LIST_RX) /*&& !currentLine.match(/^ {0,6}>/)*/) {
|
1966
|
+
return false;
|
1967
|
+
}
|
1968
|
+
// #811 END
|
1969
|
+
|
1970
|
+
// we know that it's going to be a valid blockquote,
|
1971
|
+
// so no point trying to find the end of it in silent mode
|
1972
|
+
if (silent) {
|
1973
|
+
return true;
|
1974
|
+
}
|
1975
|
+
|
1976
|
+
// skip spaces after ">" and re-calculate offset
|
1977
|
+
initial = offset = state.sCount[startLine] + pos - (state.bMarks[startLine] + state.tShift[startLine]);
|
1978
|
+
|
1979
|
+
// skip one optional space after '>'
|
1980
|
+
if (state.src.charCodeAt(pos) === 0x20 /* space */) {
|
1981
|
+
// ' > test '
|
1982
|
+
// ^ -- position start of line here:
|
1983
|
+
pos++;
|
1984
|
+
initial++;
|
1985
|
+
offset++;
|
1986
|
+
adjustTab = false;
|
1987
|
+
spaceAfterMarker = true;
|
1988
|
+
} else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {
|
1989
|
+
spaceAfterMarker = true;
|
1990
|
+
|
1991
|
+
if ((state.bsCount[startLine] + offset) % 4 === 3) {
|
1992
|
+
// ' >\t test '
|
1993
|
+
// ^ -- position start of line here (tab has width===1)
|
1994
|
+
pos++;
|
1995
|
+
initial++;
|
1996
|
+
offset++;
|
1997
|
+
adjustTab = false;
|
1998
|
+
} else {
|
1999
|
+
// ' >\t test '
|
2000
|
+
// ^ -- position start of line here + shift bsCount slightly
|
2001
|
+
// to make extra space appear
|
2002
|
+
adjustTab = true;
|
2003
|
+
}
|
2004
|
+
} else {
|
2005
|
+
spaceAfterMarker = false;
|
2006
|
+
}
|
2007
|
+
|
2008
|
+
oldBMarks = [state.bMarks[startLine]];
|
2009
|
+
state.bMarks[startLine] = pos;
|
2010
|
+
|
2011
|
+
while (pos < max) {
|
2012
|
+
ch = state.src.charCodeAt(pos);
|
2013
|
+
|
2014
|
+
if (isSpace(ch)) {
|
2015
|
+
if (ch === 0x09) {
|
2016
|
+
offset += 4 - (offset + state.bsCount[startLine] + (adjustTab ? 1 : 0)) % 4;
|
2017
|
+
} else {
|
2018
|
+
offset++;
|
2019
|
+
}
|
2020
|
+
} else {
|
2021
|
+
break;
|
2022
|
+
}
|
2023
|
+
|
2024
|
+
pos++;
|
2025
|
+
}
|
2026
|
+
|
2027
|
+
oldBSCount = [state.bsCount[startLine]];
|
2028
|
+
state.bsCount[startLine] = state.sCount[startLine] + 1 + (spaceAfterMarker ? 1 : 0);
|
2029
|
+
|
2030
|
+
lastLineEmpty = pos >= max;
|
2031
|
+
|
2032
|
+
oldSCount = [state.sCount[startLine]];
|
2033
|
+
state.sCount[startLine] = offset - initial;
|
2034
|
+
|
2035
|
+
oldTShift = [state.tShift[startLine]];
|
2036
|
+
state.tShift[startLine] = pos - state.bMarks[startLine];
|
2037
|
+
|
2038
|
+
terminatorRules = state.md.block.ruler.getRules('blockquote');
|
2039
|
+
|
2040
|
+
oldParentType = state.parentType;
|
2041
|
+
state.parentType = 'blockquote';
|
2042
|
+
wasOutdented = false;
|
2043
|
+
|
2044
|
+
// Search the end of the block
|
2045
|
+
//
|
2046
|
+
// Block ends with either:
|
2047
|
+
// 1. an empty line outside:
|
2048
|
+
// ```
|
2049
|
+
// > test
|
2050
|
+
//
|
2051
|
+
// ```
|
2052
|
+
// 2. an empty line inside:
|
2053
|
+
// ```
|
2054
|
+
// >
|
2055
|
+
// test
|
2056
|
+
// ```
|
2057
|
+
// 3. another tag:
|
2058
|
+
// ```
|
2059
|
+
// > test
|
2060
|
+
// - - -
|
2061
|
+
// ```
|
2062
|
+
for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {
|
2063
|
+
// check if it's outdented, i.e. it's inside list item and indented
|
2064
|
+
// less than said list item:
|
2065
|
+
//
|
2066
|
+
// ```
|
2067
|
+
// 1. anything
|
2068
|
+
// > current blockquote
|
2069
|
+
// 2. checking this line
|
2070
|
+
// ```
|
2071
|
+
if (state.sCount[nextLine] < state.blkIndent) wasOutdented = true;
|
2072
|
+
|
2073
|
+
pos = state.bMarks[nextLine] + state.tShift[nextLine];
|
2074
|
+
max = state.eMarks[nextLine];
|
2075
|
+
|
2076
|
+
if (pos >= max) {
|
2077
|
+
// Case 1: line is not inside the blockquote, and this line is empty.
|
2078
|
+
break;
|
2079
|
+
}
|
2080
|
+
|
2081
|
+
if (state.src.charCodeAt(pos++) === 0x3E /* > */ && !wasOutdented) {
|
2082
|
+
// This line is inside the blockquote.
|
2083
|
+
|
2084
|
+
// skip spaces after ">" and re-calculate offset
|
2085
|
+
initial = offset = state.sCount[nextLine] + pos - (state.bMarks[nextLine] + state.tShift[nextLine]);
|
2086
|
+
|
2087
|
+
// skip one optional space after '>'
|
2088
|
+
if (state.src.charCodeAt(pos) === 0x20 /* space */) {
|
2089
|
+
// ' > test '
|
2090
|
+
// ^ -- position start of line here:
|
2091
|
+
pos++;
|
2092
|
+
initial++;
|
2093
|
+
offset++;
|
2094
|
+
adjustTab = false;
|
2095
|
+
spaceAfterMarker = true;
|
2096
|
+
} else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {
|
2097
|
+
spaceAfterMarker = true;
|
2098
|
+
|
2099
|
+
if ((state.bsCount[nextLine] + offset) % 4 === 3) {
|
2100
|
+
// ' >\t test '
|
2101
|
+
// ^ -- position start of line here (tab has width===1)
|
2102
|
+
pos++;
|
2103
|
+
initial++;
|
2104
|
+
offset++;
|
2105
|
+
adjustTab = false;
|
2106
|
+
} else {
|
2107
|
+
// ' >\t test '
|
2108
|
+
// ^ -- position start of line here + shift bsCount slightly
|
2109
|
+
// to make extra space appear
|
2110
|
+
adjustTab = true;
|
2111
|
+
}
|
2112
|
+
} else {
|
2113
|
+
spaceAfterMarker = false;
|
2114
|
+
}
|
2115
|
+
|
2116
|
+
oldBMarks.push(state.bMarks[nextLine]);
|
2117
|
+
state.bMarks[nextLine] = pos;
|
2118
|
+
|
2119
|
+
while (pos < max) {
|
2120
|
+
ch = state.src.charCodeAt(pos);
|
2121
|
+
|
2122
|
+
if (isSpace(ch)) {
|
2123
|
+
if (ch === 0x09) {
|
2124
|
+
offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;
|
2125
|
+
} else {
|
2126
|
+
offset++;
|
2127
|
+
}
|
2128
|
+
} else {
|
2129
|
+
break;
|
2130
|
+
}
|
2131
|
+
|
2132
|
+
pos++;
|
2133
|
+
}
|
2134
|
+
|
2135
|
+
lastLineEmpty = pos >= max;
|
2136
|
+
|
2137
|
+
oldBSCount.push(state.bsCount[nextLine]);
|
2138
|
+
state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);
|
2139
|
+
|
2140
|
+
oldSCount.push(state.sCount[nextLine]);
|
2141
|
+
state.sCount[nextLine] = offset - initial;
|
2142
|
+
|
2143
|
+
oldTShift.push(state.tShift[nextLine]);
|
2144
|
+
state.tShift[nextLine] = pos - state.bMarks[nextLine];
|
2145
|
+
continue;
|
2146
|
+
}
|
2147
|
+
|
2148
|
+
// Case 2: line is not inside the blockquote, and the last line was empty.
|
2149
|
+
if (lastLineEmpty) {
|
2150
|
+
break;
|
2151
|
+
}
|
2152
|
+
|
2153
|
+
// Case 3: another tag found.
|
2154
|
+
terminate = false;
|
2155
|
+
for (i = 0, l = terminatorRules.length; i < l; i++) {
|
2156
|
+
if (terminatorRules[i](state, nextLine, endLine, true)) {
|
2157
|
+
terminate = true;
|
2158
|
+
break;
|
2159
|
+
}
|
2160
|
+
}
|
2161
|
+
|
2162
|
+
if (terminate) {
|
2163
|
+
// Quirk to enforce "hard termination mode" for paragraphs;
|
2164
|
+
// normally if you call `tokenize(state, startLine, nextLine)`,
|
2165
|
+
// paragraphs will look below nextLine for paragraph continuation,
|
2166
|
+
// but if blockquote is terminated by another tag, they shouldn't
|
2167
|
+
state.lineMax = nextLine;
|
2168
|
+
|
2169
|
+
if (state.blkIndent !== 0) {
|
2170
|
+
// state.blkIndent was non-zero, we now set it to zero,
|
2171
|
+
// so we need to re-calculate all offsets to appear as
|
2172
|
+
// if indent wasn't changed
|
2173
|
+
oldBMarks.push(state.bMarks[nextLine]);
|
2174
|
+
oldBSCount.push(state.bsCount[nextLine]);
|
2175
|
+
oldTShift.push(state.tShift[nextLine]);
|
2176
|
+
oldSCount.push(state.sCount[nextLine]);
|
2177
|
+
state.sCount[nextLine] -= state.blkIndent;
|
2178
|
+
}
|
2179
|
+
|
2180
|
+
break;
|
2181
|
+
}
|
2182
|
+
|
2183
|
+
oldBMarks.push(state.bMarks[nextLine]);
|
2184
|
+
oldBSCount.push(state.bsCount[nextLine]);
|
2185
|
+
oldTShift.push(state.tShift[nextLine]);
|
2186
|
+
oldSCount.push(state.sCount[nextLine]);
|
2187
|
+
|
2188
|
+
// A negative indentation means that this is a paragraph continuation
|
2189
|
+
//
|
2190
|
+
state.sCount[nextLine] = -1;
|
2191
|
+
}
|
2192
|
+
|
2193
|
+
oldIndent = state.blkIndent;
|
2194
|
+
state.blkIndent = 0;
|
2195
|
+
|
2196
|
+
token = state.push('blockquote_open', 'blockquote', 1);
|
2197
|
+
token.markup = '>';
|
2198
|
+
token.map = lines = [startLine, 0];
|
2199
|
+
|
2200
|
+
state.md.block.tokenize(state, startLine, nextLine);
|
2201
|
+
|
2202
|
+
token = state.push('blockquote_close', 'blockquote', -1);
|
2203
|
+
token.markup = '>';
|
2204
|
+
|
2205
|
+
state.lineMax = oldLineMax;
|
2206
|
+
state.parentType = oldParentType;
|
2207
|
+
lines[1] = state.line;
|
2208
|
+
|
2209
|
+
// Restore original tShift; this might not be necessary since the parser
|
2210
|
+
// has already been here, but just to make sure we can do that.
|
2211
|
+
for (i = 0; i < oldTShift.length; i++) {
|
2212
|
+
state.bMarks[i + startLine] = oldBMarks[i];
|
2213
|
+
state.tShift[i + startLine] = oldTShift[i];
|
2214
|
+
state.sCount[i + startLine] = oldSCount[i];
|
2215
|
+
state.bsCount[i + startLine] = oldBSCount[i];
|
2216
|
+
}
|
2217
|
+
state.blkIndent = oldIndent;
|
2218
|
+
|
2219
|
+
return true;
|
2220
|
+
};
|
2221
|
+
|
2222
|
+
/***/ }),
|
2223
|
+
|
2224
|
+
/***/ 25:
|
2225
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2226
|
+
|
2227
|
+
"use strict";
|
2228
|
+
|
2229
|
+
|
2230
|
+
// Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
2231
|
+
// Distributed under an ISC license: https://github.com/markdown-it/markdown-it/
|
2232
|
+
|
2233
|
+
/**
|
2234
|
+
* @fileoverview Implements markdownitTableRenderer
|
2235
|
+
* @modifier NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
2236
|
+
*/
|
2237
|
+
|
2238
|
+
/*eslint-disable */
|
2239
|
+
function getLine(state, line) {
|
2240
|
+
var pos = state.bMarks[line] + state.blkIndent,
|
2241
|
+
max = state.eMarks[line];
|
2242
|
+
|
2243
|
+
return state.src.substr(pos, max - pos);
|
2244
|
+
}
|
2245
|
+
|
2246
|
+
function escapedSplit(str) {
|
2247
|
+
var result = [],
|
2248
|
+
pos = 0,
|
2249
|
+
max = str.length,
|
2250
|
+
ch,
|
2251
|
+
escapes = 0,
|
2252
|
+
lastPos = 0,
|
2253
|
+
backTicked = false,
|
2254
|
+
lastBackTick = 0;
|
2255
|
+
|
2256
|
+
ch = str.charCodeAt(pos);
|
2257
|
+
|
2258
|
+
while (pos < max) {
|
2259
|
+
if (ch === 0x60 /* ` */ && escapes % 2 === 0) {
|
2260
|
+
backTicked = !backTicked;
|
2261
|
+
lastBackTick = pos;
|
2262
|
+
} else if (ch === 0x7c /* | */ && escapes % 2 === 0 && !backTicked) {
|
2263
|
+
result.push(str.substring(lastPos, pos));
|
2264
|
+
lastPos = pos + 1;
|
2265
|
+
} else if (ch === 0x5c /* \ */) {
|
2266
|
+
escapes += 1;
|
2267
|
+
} else {
|
2268
|
+
escapes = 0;
|
2269
|
+
}
|
2270
|
+
|
2271
|
+
pos += 1;
|
2272
|
+
|
2273
|
+
// If there was an un-closed backtick, go back to just after
|
2274
|
+
// the last backtick, but as if it was a normal character
|
2275
|
+
if (pos === max && backTicked) {
|
2276
|
+
backTicked = false;
|
2277
|
+
pos = lastBackTick + 1;
|
2278
|
+
}
|
2279
|
+
|
2280
|
+
ch = str.charCodeAt(pos);
|
2281
|
+
}
|
2282
|
+
|
2283
|
+
result.push(str.substring(lastPos));
|
2284
|
+
|
2285
|
+
return result;
|
2286
|
+
}
|
2287
|
+
|
2288
|
+
module.exports = function table(state, startLine, endLine, silent) {
|
2289
|
+
var ch, lineText, pos, i, nextLine, columns, columnCount, token, aligns, alignCount, t, tableLines, tbodyLines;
|
2290
|
+
|
2291
|
+
// should have at least three lines
|
2292
|
+
if (startLine + 2 > endLine) {
|
2293
|
+
return false;
|
2294
|
+
}
|
2295
|
+
|
2296
|
+
nextLine = startLine + 1;
|
2297
|
+
|
2298
|
+
if (state.sCount[nextLine] < state.blkIndent) {
|
2299
|
+
return false;
|
2300
|
+
}
|
2301
|
+
|
2302
|
+
// first character of the second line should be '|' or '-'
|
2303
|
+
|
2304
|
+
pos = state.bMarks[nextLine] + state.tShift[nextLine];
|
2305
|
+
if (pos >= state.eMarks[nextLine]) {
|
2306
|
+
return false;
|
2307
|
+
}
|
2308
|
+
|
2309
|
+
ch = state.src.charCodeAt(pos);
|
2310
|
+
if (ch !== 0x7C /* | */ && ch !== 0x2D /* - */ && ch !== 0x3A /* : */) {
|
2311
|
+
return false;
|
2312
|
+
}
|
2313
|
+
|
2314
|
+
lineText = getLine(state, startLine + 1);
|
2315
|
+
if (!/^[-:| ]+$/.test(lineText)) {
|
2316
|
+
return false;
|
2317
|
+
}
|
2318
|
+
|
2319
|
+
columns = lineText.split('|');
|
2320
|
+
aligns = [];
|
2321
|
+
for (i = 0; i < columns.length; i += 1) {
|
2322
|
+
t = columns[i].trim();
|
2323
|
+
if (!t) {
|
2324
|
+
// allow empty columns before and after table, but not in between columns;
|
2325
|
+
// e.g. allow ` |---| `, disallow ` ---||--- `
|
2326
|
+
if (i === 0 || i === columns.length - 1) {
|
2327
|
+
continue;
|
2328
|
+
} else {
|
2329
|
+
return false;
|
2330
|
+
}
|
2331
|
+
}
|
2332
|
+
|
2333
|
+
if (!/^:?-+:?$/.test(t)) {
|
2334
|
+
return false;
|
2335
|
+
}
|
2336
|
+
if (t.charCodeAt(t.length - 1) === 0x3A /* : */) {
|
2337
|
+
aligns.push(t.charCodeAt(0) === 0x3A /* : */ ? 'center' : 'right');
|
2338
|
+
} else if (t.charCodeAt(0) === 0x3A /* : */) {
|
2339
|
+
aligns.push('left');
|
2340
|
+
} else {
|
2341
|
+
aligns.push('');
|
2342
|
+
}
|
2343
|
+
}
|
2344
|
+
alignCount = aligns.length;
|
2345
|
+
|
2346
|
+
lineText = getLine(state, startLine).trim();
|
2347
|
+
if (lineText.indexOf('|') === -1) {
|
2348
|
+
return false;
|
2349
|
+
}
|
2350
|
+
columns = escapedSplit(lineText.replace(/^\||\|$/g, ''));
|
2351
|
+
|
2352
|
+
// header row will define an amount of columns in the entire table,
|
2353
|
+
// and align row shouldn't be smaller than that (the rest of the rows can)
|
2354
|
+
columnCount = columns.length;
|
2355
|
+
if (columnCount > alignCount) {
|
2356
|
+
return false;
|
2357
|
+
} else if (columnCount < alignCount) {
|
2358
|
+
for (i = 0; i < alignCount - columnCount; i += 1) {
|
2359
|
+
columns.push('');
|
2360
|
+
}
|
2361
|
+
columnCount = columns.length;
|
2362
|
+
}
|
2363
|
+
|
2364
|
+
if (silent) {
|
2365
|
+
return true;
|
2366
|
+
}
|
2367
|
+
|
2368
|
+
token = state.push('table_open', 'table', 1);
|
2369
|
+
token.map = tableLines = [startLine, 0];
|
2370
|
+
|
2371
|
+
token = state.push('thead_open', 'thead', 1);
|
2372
|
+
token.map = [startLine, startLine + 1];
|
2373
|
+
|
2374
|
+
token = state.push('tr_open', 'tr', 1);
|
2375
|
+
token.map = [startLine, startLine + 1];
|
2376
|
+
|
2377
|
+
for (i = 0; i < columnCount; i += 1) {
|
2378
|
+
token = state.push('th_open', 'th', 1);
|
2379
|
+
token.map = [startLine, startLine + 1];
|
2380
|
+
if (aligns[i]) {
|
2381
|
+
// FIXED: change property style to align
|
2382
|
+
token.attrs = [['align', aligns[i]]];
|
2383
|
+
}
|
2384
|
+
|
2385
|
+
token = state.push('inline', '', 0);
|
2386
|
+
token.content = columns[i].trim();
|
2387
|
+
token.map = [startLine, startLine + 1];
|
2388
|
+
token.children = [];
|
2389
|
+
|
2390
|
+
token = state.push('th_close', 'th', -1);
|
2391
|
+
}
|
2392
|
+
|
2393
|
+
token = state.push('tr_close', 'tr', -1);
|
2394
|
+
token = state.push('thead_close', 'thead', -1);
|
2395
|
+
|
2396
|
+
token = state.push('tbody_open', 'tbody', 1);
|
2397
|
+
token.map = tbodyLines = [startLine + 2, 0];
|
2398
|
+
|
2399
|
+
for (nextLine = startLine + 2; nextLine < endLine; nextLine += 1) {
|
2400
|
+
if (state.sCount[nextLine] < state.blkIndent) {
|
2401
|
+
break;
|
2402
|
+
}
|
2403
|
+
|
2404
|
+
lineText = getLine(state, nextLine);
|
2405
|
+
if (lineText.indexOf('|') === -1) {
|
2406
|
+
break;
|
2407
|
+
}
|
2408
|
+
|
2409
|
+
// keep spaces at beginning of line to indicate an empty first cell, but
|
2410
|
+
// strip trailing whitespace
|
2411
|
+
columns = escapedSplit(lineText.replace(/^\||\|\s*$/g, ''));
|
2412
|
+
|
2413
|
+
token = state.push('tr_open', 'tr', 1);
|
2414
|
+
for (i = 0; i < columnCount; i += 1) {
|
2415
|
+
token = state.push('td_open', 'td', 1);
|
2416
|
+
if (aligns[i]) {
|
2417
|
+
// FIXED: change property style to align
|
2418
|
+
token.attrs = [['align', aligns[i]]];
|
2419
|
+
}
|
2420
|
+
|
2421
|
+
token = state.push('inline', '', 0);
|
2422
|
+
token.content = columns[i] ? columns[i].trim() : '';
|
2423
|
+
token.children = [];
|
2424
|
+
|
2425
|
+
token = state.push('td_close', 'td', -1);
|
2426
|
+
}
|
2427
|
+
token = state.push('tr_close', 'tr', -1);
|
2428
|
+
}
|
2429
|
+
token = state.push('tbody_close', 'tbody', -1);
|
2430
|
+
token = state.push('table_close', 'table', -1);
|
2431
|
+
|
2432
|
+
tableLines[1] = tbodyLines[1] = nextLine;
|
2433
|
+
state.line = nextLine;
|
2434
|
+
return true;
|
2435
|
+
};
|
2436
|
+
|
2437
|
+
/***/ }),
|
2438
|
+
|
2439
|
+
/***/ 26:
|
2440
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2441
|
+
|
2442
|
+
"use strict";
|
2443
|
+
// Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
2444
|
+
// Distributed under an ISC license: https://github.com/markdown-it/markdown-it/
|
2445
|
+
|
2446
|
+
/**
|
2447
|
+
* @fileoverview Implements markdownitHtmlBlockRenderer
|
2448
|
+
* @modifier NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
2449
|
+
*/
|
2450
|
+
/* eslint-disable */
|
2451
|
+
// HTML block
|
2452
|
+
|
2453
|
+
|
2454
|
+
|
2455
|
+
// An array of opening and corresponding closing sequences for html tags,
|
2456
|
+
// last argument defines whether it can terminate a paragraph or not
|
2457
|
+
//
|
2458
|
+
|
2459
|
+
// void tag names --- Added by Junghwan Park
|
2460
|
+
|
2461
|
+
var voidTagNames = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
|
2462
|
+
var HTML_SEQUENCES = [[/^<(script|pre|style)(?=(\s|>|$))/i, /<\/(script|pre|style)>/i, true], [/^<!--/, /-->/, true], [/^<\?/, /\?>/, true], [/^<![A-Z]/, />/, true], [/^<!\[CDATA\[/, /\]\]>/, true], [new RegExp('^<(' + voidTagNames.join('|') + ')', 'i'), /^\/?>$/, true], [new RegExp('^</?(address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|pre|section|source|title|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?=(\\s|/?>|$))', 'i'), /^$/, true], [/^(?:<[A-Za-z][A-Za-z0-9\-]*(?:\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\s*=\s*(?:[^"'=<>`\x00-\x20]+|'[^']*'|"[^"]*"))?)*\s*\/?>|<\/[A-Za-z][A-Za-z0-9\-]*\s*>)\s*$/, /^$/, false]];
|
2463
|
+
|
2464
|
+
module.exports = function html_block(state, startLine, endLine, silent) {
|
2465
|
+
var i,
|
2466
|
+
nextLine,
|
2467
|
+
token,
|
2468
|
+
lineText,
|
2469
|
+
pos = state.bMarks[startLine] + state.tShift[startLine],
|
2470
|
+
max = state.eMarks[startLine];
|
2471
|
+
|
2472
|
+
if (!state.md.options.html) {
|
2473
|
+
return false;
|
2474
|
+
}
|
2475
|
+
|
2476
|
+
if (state.src.charCodeAt(pos) !== 0x3C /* < */) {
|
2477
|
+
return false;
|
2478
|
+
}
|
2479
|
+
|
2480
|
+
lineText = state.src.slice(pos, max);
|
2481
|
+
|
2482
|
+
for (i = 0; i < HTML_SEQUENCES.length; i++) {
|
2483
|
+
if (HTML_SEQUENCES[i][0].test(lineText)) {
|
2484
|
+
// add condition for return when meet void element --- Added by Junghwan Park
|
2485
|
+
if (i === 5) {
|
2486
|
+
return false;
|
2487
|
+
} else {
|
2488
|
+
break;
|
2489
|
+
}
|
2490
|
+
}
|
2491
|
+
}
|
2492
|
+
|
2493
|
+
if (i === HTML_SEQUENCES.length) {
|
2494
|
+
return false;
|
2495
|
+
}
|
2496
|
+
|
2497
|
+
if (silent) {
|
2498
|
+
// true if this sequence can be a terminator, false otherwise
|
2499
|
+
return HTML_SEQUENCES[i][2];
|
2500
|
+
}
|
2501
|
+
|
2502
|
+
nextLine = startLine + 1;
|
2503
|
+
|
2504
|
+
// If we are here - we detected HTML block.
|
2505
|
+
// Let's roll down till block end.
|
2506
|
+
if (!HTML_SEQUENCES[i][1].test(lineText)) {
|
2507
|
+
for (; nextLine < endLine; nextLine++) {
|
2508
|
+
if (state.sCount[nextLine] < state.blkIndent) {
|
2509
|
+
break;
|
2510
|
+
}
|
2511
|
+
|
2512
|
+
pos = state.bMarks[nextLine] + state.tShift[nextLine];
|
2513
|
+
max = state.eMarks[nextLine];
|
2514
|
+
lineText = state.src.slice(pos, max);
|
2515
|
+
|
2516
|
+
if (HTML_SEQUENCES[i][1].test(lineText)) {
|
2517
|
+
if (lineText.length !== 0) {
|
2518
|
+
nextLine++;
|
2519
|
+
}
|
2520
|
+
break;
|
2521
|
+
}
|
2522
|
+
}
|
2523
|
+
}
|
2524
|
+
|
2525
|
+
state.line = nextLine;
|
2526
|
+
|
2527
|
+
token = state.push('html_block', '', 0);
|
2528
|
+
token.map = [startLine, nextLine];
|
2529
|
+
token.content = state.getLines(startLine, nextLine, state.blkIndent, true);
|
2530
|
+
|
2531
|
+
return true;
|
2532
|
+
};
|
2533
|
+
/* eslint-enable */
|
2534
|
+
|
2535
|
+
/***/ }),
|
2536
|
+
|
2537
|
+
/***/ 27:
|
2538
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2539
|
+
|
2540
|
+
"use strict";
|
2541
|
+
|
2542
|
+
|
2543
|
+
// Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
2544
|
+
// Distributed under MIT license: https://github.com/markdown-it/markdown-it/
|
2545
|
+
/**
|
2546
|
+
* @fileoverview Implements markdownitBackticksRenderer
|
2547
|
+
* @modifier NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
2548
|
+
*/
|
2549
|
+
/* eslint-disable */
|
2550
|
+
|
2551
|
+
// Parse backticks
|
2552
|
+
module.exports = function backtick(state, silent) {
|
2553
|
+
var start,
|
2554
|
+
max,
|
2555
|
+
marker,
|
2556
|
+
matchStart,
|
2557
|
+
matchEnd,
|
2558
|
+
token,
|
2559
|
+
pos = state.pos,
|
2560
|
+
ch = state.src.charCodeAt(pos);
|
2561
|
+
|
2562
|
+
if (ch !== 0x60 /* ` */) {
|
2563
|
+
return false;
|
2564
|
+
}
|
2565
|
+
|
2566
|
+
start = pos;
|
2567
|
+
pos++;
|
2568
|
+
max = state.posMax;
|
2569
|
+
|
2570
|
+
while (pos < max && state.src.charCodeAt(pos) === 0x60 /* ` */) {
|
2571
|
+
pos++;
|
2572
|
+
}
|
2573
|
+
|
2574
|
+
marker = state.src.slice(start, pos);
|
2575
|
+
|
2576
|
+
matchStart = matchEnd = pos;
|
2577
|
+
|
2578
|
+
while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {
|
2579
|
+
matchEnd = matchStart + 1;
|
2580
|
+
|
2581
|
+
while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60 /* ` */) {
|
2582
|
+
matchEnd++;
|
2583
|
+
}
|
2584
|
+
|
2585
|
+
if (matchEnd - matchStart === marker.length) {
|
2586
|
+
if (!silent) {
|
2587
|
+
token = state.push('code_inline', 'code', 0);
|
2588
|
+
token.markup = marker;
|
2589
|
+
token.content = state.src.slice(pos, matchStart).replace(/[ \n]+/g, ' ').trim();
|
2590
|
+
// TUI.EDITOR MODIFICATION START
|
2591
|
+
// store number of backtick in data-backtick
|
2592
|
+
// https://github.nhnent.com/fe/tui.editor/pull/981
|
2593
|
+
token.attrSet('data-backticks', token.markup.length);
|
2594
|
+
// TUI.EDITOR MODIFICATION END
|
2595
|
+
}
|
2596
|
+
state.pos = matchEnd;
|
2597
|
+
return true;
|
2598
|
+
}
|
2599
|
+
}
|
2600
|
+
|
2601
|
+
if (!silent) {
|
2602
|
+
state.pending += marker;
|
2603
|
+
}
|
2604
|
+
state.pos += marker.length;
|
2605
|
+
return true;
|
2606
|
+
};
|
2607
|
+
|
2608
|
+
/***/ }),
|
2609
|
+
|
2610
|
+
/***/ 28:
|
2611
|
+
/***/ (function(module, exports) {
|
2612
|
+
|
2613
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_28__;
|
2614
|
+
|
2615
|
+
/***/ }),
|
2616
|
+
|
2617
|
+
/***/ 29:
|
2618
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2619
|
+
|
2620
|
+
"use strict";
|
2621
|
+
|
2622
|
+
|
2623
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
2624
|
+
* @fileoverview Implements editor preivew
|
2625
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
2626
|
+
*/
|
2627
|
+
|
2628
|
+
|
2629
|
+
var _jquery = __webpack_require__(0);
|
2630
|
+
|
2631
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
2632
|
+
|
2633
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
2634
|
+
|
2635
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
2636
|
+
|
2637
|
+
var _mdPreview = __webpack_require__(9);
|
2638
|
+
|
2639
|
+
var _mdPreview2 = _interopRequireDefault(_mdPreview);
|
2640
|
+
|
2641
|
+
var _eventManager = __webpack_require__(12);
|
2642
|
+
|
2643
|
+
var _eventManager2 = _interopRequireDefault(_eventManager);
|
2644
|
+
|
2645
|
+
var _commandManager = __webpack_require__(2);
|
2646
|
+
|
2647
|
+
var _commandManager2 = _interopRequireDefault(_commandManager);
|
2648
|
+
|
2649
|
+
var _extManager = __webpack_require__(13);
|
2650
|
+
|
2651
|
+
var _extManager2 = _interopRequireDefault(_extManager);
|
2652
|
+
|
2653
|
+
var _convertor = __webpack_require__(14);
|
2654
|
+
|
2655
|
+
var _convertor2 = _interopRequireDefault(_convertor);
|
2656
|
+
|
2657
|
+
var _domUtils = __webpack_require__(3);
|
2658
|
+
|
2659
|
+
var _domUtils2 = _interopRequireDefault(_domUtils);
|
2660
|
+
|
2661
|
+
var _codeBlockManager = __webpack_require__(7);
|
2662
|
+
|
2663
|
+
var _codeBlockManager2 = _interopRequireDefault(_codeBlockManager);
|
2664
|
+
|
2665
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
2666
|
+
|
2667
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
2668
|
+
|
2669
|
+
var TASK_ATTR_NAME = 'data-te-task';
|
2670
|
+
var TASK_CHECKED_CLASS_NAME = 'checked';
|
2671
|
+
|
2672
|
+
/**
|
2673
|
+
* Class ToastUIEditorViewer
|
2674
|
+
*/
|
2675
|
+
|
2676
|
+
var ToastUIEditorViewer = function () {
|
2677
|
+
/**
|
2678
|
+
* Viewer
|
2679
|
+
* @param {object} options Option object
|
2680
|
+
* @param {string} options.initialValue Editor's initial value
|
2681
|
+
* @param {object} options.events eventlist Event list
|
2682
|
+
* @param {function} options.events.load It would be emitted when editor fully load
|
2683
|
+
* @param {function} options.events.change It would be emitted when content changed
|
2684
|
+
* @param {function} options.events.stateChange It would be emitted when format change by cursor position
|
2685
|
+
* @param {function} options.events.focus It would be emitted when editor get focus
|
2686
|
+
* @param {function} options.events.blur It would be emitted when editor loose focus
|
2687
|
+
* @param {object} options.hooks Hook list
|
2688
|
+
* @param {function} options.hooks.previewBeforeHook Submit preview to hook URL before preview be shown
|
2689
|
+
*/
|
2690
|
+
function ToastUIEditorViewer(options) {
|
2691
|
+
var _this = this;
|
2692
|
+
|
2693
|
+
_classCallCheck(this, ToastUIEditorViewer);
|
2694
|
+
|
2695
|
+
this.options = options;
|
2696
|
+
|
2697
|
+
this.eventManager = new _eventManager2.default();
|
2698
|
+
this.commandManager = new _commandManager2.default(this);
|
2699
|
+
this.convertor = new _convertor2.default(this.eventManager);
|
2700
|
+
this.toMarkOptions = null;
|
2701
|
+
|
2702
|
+
if (this.options.hooks) {
|
2703
|
+
_tuiCodeSnippet2.default.forEach(this.options.hooks, function (fn, key) {
|
2704
|
+
_this.addHook(key, fn);
|
2705
|
+
});
|
2706
|
+
}
|
2707
|
+
|
2708
|
+
if (this.options.events) {
|
2709
|
+
_tuiCodeSnippet2.default.forEach(this.options.events, function (fn, key) {
|
2710
|
+
_this.on(key, fn);
|
2711
|
+
});
|
2712
|
+
}
|
2713
|
+
|
2714
|
+
this.preview = new _mdPreview2.default((0, _jquery2.default)(this.options.el), this.eventManager, this.convertor, true);
|
2715
|
+
|
2716
|
+
this.preview.$el.on('mousedown', _jquery2.default.proxy(this._toggleTask, this));
|
2717
|
+
|
2718
|
+
_extManager2.default.applyExtension(this, this.options.exts);
|
2719
|
+
|
2720
|
+
this.setValue(this.options.initialValue);
|
2721
|
+
|
2722
|
+
this.eventManager.emit('load', this);
|
2723
|
+
}
|
2724
|
+
|
2725
|
+
/**
|
2726
|
+
* Toggle task by detecting mousedown event.
|
2727
|
+
* @param {MouseEvent} ev - event
|
2728
|
+
* @private
|
2729
|
+
*/
|
2730
|
+
|
2731
|
+
|
2732
|
+
_createClass(ToastUIEditorViewer, [{
|
2733
|
+
key: '_toggleTask',
|
2734
|
+
value: function _toggleTask(ev) {
|
2735
|
+
var isBeneathTaskBox = ev.offsetX < 18 && ev.offsetY > 18;
|
2736
|
+
|
2737
|
+
if (ev.target.hasAttribute(TASK_ATTR_NAME) && !isBeneathTaskBox) {
|
2738
|
+
(0, _jquery2.default)(ev.target).toggleClass(TASK_CHECKED_CLASS_NAME);
|
2739
|
+
this.eventManager.emit('change', {
|
2740
|
+
source: 'viewer',
|
2741
|
+
data: ev
|
2742
|
+
});
|
2743
|
+
}
|
2744
|
+
}
|
2745
|
+
|
2746
|
+
/**
|
2747
|
+
* Set content for preview
|
2748
|
+
* @memberof ToastUIEditorViewer
|
2749
|
+
* @param {string} markdown Markdown text
|
2750
|
+
*/
|
2751
|
+
|
2752
|
+
}, {
|
2753
|
+
key: 'setMarkdown',
|
2754
|
+
value: function setMarkdown(markdown) {
|
2755
|
+
this.markdownValue = markdown = markdown || '';
|
2756
|
+
|
2757
|
+
this.preview.refresh(this.markdownValue);
|
2758
|
+
this.eventManager.emit('setMarkdownAfter', this.markdownValue);
|
2759
|
+
}
|
2760
|
+
|
2761
|
+
/**
|
2762
|
+
* Set content for preview
|
2763
|
+
* @memberof ToastUIEditorViewer
|
2764
|
+
* @param {string} markdown Markdown text
|
2765
|
+
* @deprecated
|
2766
|
+
*/
|
2767
|
+
|
2768
|
+
}, {
|
2769
|
+
key: 'setValue',
|
2770
|
+
value: function setValue(markdown) {
|
2771
|
+
this.setMarkdown(markdown);
|
2772
|
+
}
|
2773
|
+
|
2774
|
+
/**
|
2775
|
+
* Bind eventHandler to event type
|
2776
|
+
* @memberof ToastUIEditorViewer
|
2777
|
+
* @param {string} type Event type
|
2778
|
+
* @param {function} handler Event handler
|
2779
|
+
*/
|
2780
|
+
|
2781
|
+
}, {
|
2782
|
+
key: 'on',
|
2783
|
+
value: function on(type, handler) {
|
2784
|
+
this.eventManager.listen(type, handler);
|
2785
|
+
}
|
2786
|
+
|
2787
|
+
/**
|
2788
|
+
* Unbind eventHandler from event type
|
2789
|
+
* @memberof ToastUIEditorViewer
|
2790
|
+
* @param {string} type Event type
|
2791
|
+
*/
|
2792
|
+
|
2793
|
+
}, {
|
2794
|
+
key: 'off',
|
2795
|
+
value: function off(type) {
|
2796
|
+
this.eventManager.removeEventHandler(type);
|
2797
|
+
}
|
2798
|
+
|
2799
|
+
/**
|
2800
|
+
* Remove Viewer preview from document
|
2801
|
+
* @memberof ToastUIEditorViewer
|
2802
|
+
*/
|
2803
|
+
|
2804
|
+
}, {
|
2805
|
+
key: 'remove',
|
2806
|
+
value: function remove() {
|
2807
|
+
this.eventManager.emit('removeEditor');
|
2808
|
+
this.preview.$el.off('mousedown', _jquery2.default.proxy(this._toggleTask, this));
|
2809
|
+
this.options = null;
|
2810
|
+
this.eventManager = null;
|
2811
|
+
this.commandManager = null;
|
2812
|
+
this.convertor = null;
|
2813
|
+
this.preview = null;
|
2814
|
+
}
|
2815
|
+
|
2816
|
+
/**
|
2817
|
+
* Add hook to Viewer preview's event
|
2818
|
+
* @memberof ToastUIEditorViewer
|
2819
|
+
* @param {string} type Event type
|
2820
|
+
* @param {function} handler Event handler
|
2821
|
+
*/
|
2822
|
+
|
2823
|
+
}, {
|
2824
|
+
key: 'addHook',
|
2825
|
+
value: function addHook(type, handler) {
|
2826
|
+
this.eventManager.removeEventHandler(type);
|
2827
|
+
this.eventManager.listen(type, handler);
|
2828
|
+
}
|
2829
|
+
|
2830
|
+
/**
|
2831
|
+
* Return true
|
2832
|
+
* @memberof ToastUIEditorViewer
|
2833
|
+
* @returns {boolean}
|
2834
|
+
*/
|
2835
|
+
|
2836
|
+
}, {
|
2837
|
+
key: 'isViewer',
|
2838
|
+
value: function isViewer() {
|
2839
|
+
return true;
|
2840
|
+
}
|
2841
|
+
|
2842
|
+
/**
|
2843
|
+
* Return false
|
2844
|
+
* @memberof ToastUIEditorViewer
|
2845
|
+
* @returns {boolean}
|
2846
|
+
*/
|
2847
|
+
|
2848
|
+
}, {
|
2849
|
+
key: 'isMarkdownMode',
|
2850
|
+
value: function isMarkdownMode() {
|
2851
|
+
return false;
|
2852
|
+
}
|
2853
|
+
|
2854
|
+
/**
|
2855
|
+
* Return false
|
2856
|
+
* @memberof ToastUIEditorViewer
|
2857
|
+
* @returns {boolean}
|
2858
|
+
*/
|
2859
|
+
|
2860
|
+
}, {
|
2861
|
+
key: 'isWysiwygMode',
|
2862
|
+
value: function isWysiwygMode() {
|
2863
|
+
return false;
|
2864
|
+
}
|
2865
|
+
|
2866
|
+
/**
|
2867
|
+
* Define extension
|
2868
|
+
* @memberof ToastUIEditorViewer
|
2869
|
+
* @param {string} name Extension name
|
2870
|
+
* @param {ExtManager~extension} ext extension
|
2871
|
+
*/
|
2872
|
+
|
2873
|
+
}], [{
|
2874
|
+
key: 'defineExtension',
|
2875
|
+
value: function defineExtension(name, ext) {
|
2876
|
+
_extManager2.default.defineExtension(name, ext);
|
2877
|
+
}
|
2878
|
+
}]);
|
2879
|
+
|
2880
|
+
return ToastUIEditorViewer;
|
2881
|
+
}();
|
2882
|
+
|
2883
|
+
/**
|
2884
|
+
* check whther is viewer
|
2885
|
+
* @type {boolean}
|
2886
|
+
*/
|
2887
|
+
|
2888
|
+
|
2889
|
+
ToastUIEditorViewer.isViewer = true;
|
2890
|
+
|
2891
|
+
/**
|
2892
|
+
* domUtil instance
|
2893
|
+
* @type {DomUtil}
|
2894
|
+
*/
|
2895
|
+
ToastUIEditorViewer.domUtils = _domUtils2.default;
|
2896
|
+
|
2897
|
+
/**
|
2898
|
+
* CodeBlockManager instance
|
2899
|
+
* @type {CodeBlockManager}
|
2900
|
+
*/
|
2901
|
+
ToastUIEditorViewer.codeBlockManager = _codeBlockManager2.default;
|
2902
|
+
|
2903
|
+
/**
|
2904
|
+
* MarkdownIt hightlight instance
|
2905
|
+
* @type {MarkdownIt}
|
2906
|
+
*/
|
2907
|
+
ToastUIEditorViewer.markdownitHighlight = _convertor2.default.getMarkdownitHighlightRenderer();
|
2908
|
+
|
2909
|
+
/**
|
2910
|
+
* @ignore
|
2911
|
+
*/
|
2912
|
+
ToastUIEditorViewer.i18n = null;
|
2913
|
+
|
2914
|
+
/**
|
2915
|
+
* @ignore
|
2916
|
+
*/
|
2917
|
+
ToastUIEditorViewer.Button = null;
|
2918
|
+
|
2919
|
+
/**
|
2920
|
+
* @ignore
|
2921
|
+
*/
|
2922
|
+
ToastUIEditorViewer.WwCodeBlockManager = null;
|
2923
|
+
|
2924
|
+
/**
|
2925
|
+
* @ignore
|
2926
|
+
*/
|
2927
|
+
ToastUIEditorViewer.WwTableManager = null;
|
2928
|
+
|
2929
|
+
/**
|
2930
|
+
* @ignore
|
2931
|
+
*/
|
2932
|
+
ToastUIEditorViewer.WwTableSelectionManager = null;
|
2933
|
+
|
2934
|
+
module.exports = ToastUIEditorViewer;
|
2935
|
+
|
2936
|
+
/***/ }),
|
2937
|
+
|
2938
|
+
/***/ 3:
|
2939
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2940
|
+
|
2941
|
+
"use strict";
|
2942
|
+
|
2943
|
+
|
2944
|
+
Object.defineProperty(exports, "__esModule", {
|
2945
|
+
value: true
|
2946
|
+
});
|
2947
|
+
|
2948
|
+
var _jquery = __webpack_require__(0);
|
2949
|
+
|
2950
|
+
var _jquery2 = _interopRequireDefault(_jquery);
|
2951
|
+
|
2952
|
+
var _tuiCodeSnippet = __webpack_require__(1);
|
2953
|
+
|
2954
|
+
var _tuiCodeSnippet2 = _interopRequireDefault(_tuiCodeSnippet);
|
2955
|
+
|
2956
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
2957
|
+
|
2958
|
+
/**
|
2959
|
+
* @fileoverview DOM Utils
|
2960
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
2961
|
+
*/
|
2962
|
+
var FIND_ZWB = /\u200B/g;
|
2963
|
+
|
2964
|
+
/**
|
2965
|
+
* isTextNode
|
2966
|
+
* Check if node is text node
|
2967
|
+
* @param {Node} node node to check
|
2968
|
+
* @returns {boolean} result
|
2969
|
+
* @ignore
|
2970
|
+
*/
|
2971
|
+
var isTextNode = function isTextNode(node) {
|
2972
|
+
return node && node.nodeType === Node.TEXT_NODE;
|
2973
|
+
};
|
2974
|
+
|
2975
|
+
/**
|
2976
|
+
* isElemNode
|
2977
|
+
* Check if node is element node
|
2978
|
+
* @param {Node} node node to check
|
2979
|
+
* @returns {boolean} result
|
2980
|
+
* @ignore
|
2981
|
+
*/
|
2982
|
+
var isElemNode = function isElemNode(node) {
|
2983
|
+
return node && node.nodeType === Node.ELEMENT_NODE;
|
2984
|
+
};
|
2985
|
+
|
2986
|
+
/**
|
2987
|
+
* getNodeName
|
2988
|
+
* Get node name of node
|
2989
|
+
* @param {Node} node node
|
2990
|
+
* @returns {string} node name
|
2991
|
+
* @ignore
|
2992
|
+
*/
|
2993
|
+
var getNodeName = function getNodeName(node) {
|
2994
|
+
if (isElemNode(node)) {
|
2995
|
+
return node.tagName;
|
2996
|
+
}
|
2997
|
+
|
2998
|
+
return 'TEXT';
|
2999
|
+
};
|
3000
|
+
|
3001
|
+
/**
|
3002
|
+
* getTextLength
|
3003
|
+
* Get node offset length of node(for Range API)
|
3004
|
+
* @param {Node} node node
|
3005
|
+
* @returns {number} length
|
3006
|
+
* @ignore
|
3007
|
+
*/
|
3008
|
+
var getTextLength = function getTextLength(node) {
|
3009
|
+
var len = void 0;
|
3010
|
+
|
3011
|
+
if (isElemNode(node)) {
|
3012
|
+
len = node.textContent.replace(FIND_ZWB, '').length;
|
3013
|
+
} else if (isTextNode(node)) {
|
3014
|
+
len = node.nodeValue.replace(FIND_ZWB, '').length;
|
3015
|
+
}
|
3016
|
+
|
3017
|
+
return len;
|
3018
|
+
};
|
3019
|
+
|
3020
|
+
/**
|
3021
|
+
* getOffsetLength
|
3022
|
+
* Get node offset length of node(for Range API)
|
3023
|
+
* @param {Node} node node
|
3024
|
+
* @returns {number} length
|
3025
|
+
* @ignore
|
3026
|
+
*/
|
3027
|
+
var getOffsetLength = function getOffsetLength(node) {
|
3028
|
+
var len = void 0;
|
3029
|
+
|
3030
|
+
if (isElemNode(node)) {
|
3031
|
+
len = node.childNodes.length;
|
3032
|
+
} else if (isTextNode(node)) {
|
3033
|
+
len = node.nodeValue.replace(FIND_ZWB, '').length;
|
3034
|
+
}
|
3035
|
+
|
3036
|
+
return len;
|
3037
|
+
};
|
3038
|
+
|
3039
|
+
/**
|
3040
|
+
* getNodeOffsetOfParent
|
3041
|
+
* get node offset between parent's childnodes
|
3042
|
+
* @param {Node} node node
|
3043
|
+
* @returns {number} offset(index)
|
3044
|
+
* @ignore
|
3045
|
+
*/
|
3046
|
+
var getNodeOffsetOfParent = function getNodeOffsetOfParent(node) {
|
3047
|
+
var childNodesOfParent = node.parentNode.childNodes;
|
3048
|
+
var i = void 0,
|
3049
|
+
t = void 0,
|
3050
|
+
found = void 0;
|
3051
|
+
|
3052
|
+
for (i = 0, t = childNodesOfParent.length; i < t; i += 1) {
|
3053
|
+
if (childNodesOfParent[i] === node) {
|
3054
|
+
found = i;
|
3055
|
+
break;
|
3056
|
+
}
|
3057
|
+
}
|
3058
|
+
|
3059
|
+
return found;
|
3060
|
+
};
|
3061
|
+
|
3062
|
+
/**
|
3063
|
+
* getChildNodeByOffset
|
3064
|
+
* get child node by offset
|
3065
|
+
* @param {Node} node node
|
3066
|
+
* @param {number} index offset index
|
3067
|
+
* @returns {Node} foudned node
|
3068
|
+
* @ignore
|
3069
|
+
*/
|
3070
|
+
var getChildNodeByOffset = function getChildNodeByOffset(node, index) {
|
3071
|
+
var currentNode = void 0;
|
3072
|
+
|
3073
|
+
if (isTextNode(node)) {
|
3074
|
+
currentNode = node;
|
3075
|
+
} else if (node.childNodes.length && index >= 0) {
|
3076
|
+
currentNode = node.childNodes[index];
|
3077
|
+
}
|
3078
|
+
|
3079
|
+
return currentNode;
|
3080
|
+
};
|
3081
|
+
|
3082
|
+
/**
|
3083
|
+
* getNodeWithDirectionUntil
|
3084
|
+
* find next node from passed node
|
3085
|
+
* @param {strong} direction previous or next
|
3086
|
+
* @param {Node} node node
|
3087
|
+
* @param {string} untilNodeName parent node name to limit
|
3088
|
+
* @returns {Node} founded node
|
3089
|
+
* @ignore
|
3090
|
+
*/
|
3091
|
+
var getNodeWithDirectionUntil = function getNodeWithDirectionUntil(direction, node, untilNodeName) {
|
3092
|
+
var directionKey = direction + 'Sibling';
|
3093
|
+
var nodeName = void 0,
|
3094
|
+
foundedNode = void 0;
|
3095
|
+
|
3096
|
+
while (node && !node[directionKey]) {
|
3097
|
+
nodeName = getNodeName(node.parentNode);
|
3098
|
+
|
3099
|
+
if (nodeName === untilNodeName || nodeName === 'BODY') {
|
3100
|
+
break;
|
3101
|
+
}
|
3102
|
+
|
3103
|
+
node = node.parentNode;
|
3104
|
+
}
|
3105
|
+
|
3106
|
+
if (node[directionKey]) {
|
3107
|
+
foundedNode = node[directionKey];
|
3108
|
+
}
|
3109
|
+
|
3110
|
+
return foundedNode;
|
3111
|
+
};
|
3112
|
+
|
3113
|
+
/**
|
3114
|
+
* getPrevOffsetNodeUntil
|
3115
|
+
* get prev node of childnode pointed with index
|
3116
|
+
* @param {Node} node node
|
3117
|
+
* @param {number} index offset index
|
3118
|
+
* @param {string} untilNodeName parent node name to limit
|
3119
|
+
* @returns {Node} founded node
|
3120
|
+
* @ignore
|
3121
|
+
*/
|
3122
|
+
var getPrevOffsetNodeUntil = function getPrevOffsetNodeUntil(node, index, untilNodeName) {
|
3123
|
+
var prevNode = void 0;
|
3124
|
+
|
3125
|
+
if (index > 0) {
|
3126
|
+
prevNode = getChildNodeByOffset(node, index - 1);
|
3127
|
+
} else {
|
3128
|
+
prevNode = getNodeWithDirectionUntil('previous', node, untilNodeName);
|
3129
|
+
}
|
3130
|
+
|
3131
|
+
return prevNode;
|
3132
|
+
};
|
3133
|
+
|
3134
|
+
var getParentUntilBy = function getParentUntilBy(node, condition) {
|
3135
|
+
var foundedNode = void 0;
|
3136
|
+
|
3137
|
+
while (node.parentNode && !condition(node.parentNode)) {
|
3138
|
+
node = node.parentNode;
|
3139
|
+
}
|
3140
|
+
|
3141
|
+
if (condition(node.parentNode)) {
|
3142
|
+
foundedNode = node;
|
3143
|
+
}
|
3144
|
+
|
3145
|
+
return foundedNode;
|
3146
|
+
};
|
3147
|
+
|
3148
|
+
/**
|
3149
|
+
* getParentUntil
|
3150
|
+
* get parent node until paseed node name
|
3151
|
+
* @param {Node} node node
|
3152
|
+
* @param {string|HTMLNode} untilNode node name or node to limit
|
3153
|
+
* @returns {Node} founded node
|
3154
|
+
* @ignore
|
3155
|
+
*/
|
3156
|
+
var getParentUntil = function getParentUntil(node, untilNode) {
|
3157
|
+
var foundedNode = void 0;
|
3158
|
+
|
3159
|
+
if (_tuiCodeSnippet2.default.isString(untilNode)) {
|
3160
|
+
foundedNode = getParentUntilBy(node, function (targetNode) {
|
3161
|
+
return untilNode === getNodeName(targetNode);
|
3162
|
+
});
|
3163
|
+
} else {
|
3164
|
+
foundedNode = getParentUntilBy(node, function (targetNode) {
|
3165
|
+
return untilNode === targetNode;
|
3166
|
+
});
|
3167
|
+
}
|
3168
|
+
|
3169
|
+
return foundedNode;
|
3170
|
+
};
|
3171
|
+
|
3172
|
+
/**
|
3173
|
+
* getNodeWithDirectionUnderParent
|
3174
|
+
* get node on the given direction under given parent
|
3175
|
+
* @param {strong} direction previous or next
|
3176
|
+
* @param {Node} node node
|
3177
|
+
* @param {string|Node} underNode parent node name to limit
|
3178
|
+
* @returns {Node} founded node
|
3179
|
+
* @ignore
|
3180
|
+
*/
|
3181
|
+
var getNodeWithDirectionUnderParent = function getNodeWithDirectionUnderParent(direction, node, underNode) {
|
3182
|
+
var directionKey = direction + 'Sibling';
|
3183
|
+
var foundedNode = void 0;
|
3184
|
+
|
3185
|
+
node = getParentUntil(node, underNode);
|
3186
|
+
|
3187
|
+
if (node && node[directionKey]) {
|
3188
|
+
foundedNode = node[directionKey];
|
3189
|
+
}
|
3190
|
+
|
3191
|
+
return foundedNode;
|
3192
|
+
};
|
3193
|
+
|
3194
|
+
/**
|
3195
|
+
* getTopPrevNodeUnder
|
3196
|
+
* get top previous top level node under given node
|
3197
|
+
* @param {Node} node node
|
3198
|
+
* @param {Node} underNode underNode
|
3199
|
+
* @returns {Node} founded node
|
3200
|
+
* @ignore
|
3201
|
+
*/
|
3202
|
+
var getTopPrevNodeUnder = function getTopPrevNodeUnder(node, underNode) {
|
3203
|
+
return getNodeWithDirectionUnderParent('previous', node, underNode);
|
3204
|
+
};
|
3205
|
+
|
3206
|
+
/**
|
3207
|
+
* getNextTopBlockNode
|
3208
|
+
* get next top level block node
|
3209
|
+
* @param {Node} node node
|
3210
|
+
* @param {Node} underNode underNode
|
3211
|
+
* @returns {Node} founded node
|
3212
|
+
* @ignore
|
3213
|
+
*/
|
3214
|
+
var getTopNextNodeUnder = function getTopNextNodeUnder(node, underNode) {
|
3215
|
+
return getNodeWithDirectionUnderParent('next', node, underNode);
|
3216
|
+
};
|
3217
|
+
|
3218
|
+
/**
|
3219
|
+
* Get parent element the body element
|
3220
|
+
* @param {Node} node Node for start searching
|
3221
|
+
* @returns {Node}
|
3222
|
+
* @ignore
|
3223
|
+
*/
|
3224
|
+
var getTopBlockNode = function getTopBlockNode(node) {
|
3225
|
+
return getParentUntil(node, 'BODY');
|
3226
|
+
};
|
3227
|
+
|
3228
|
+
/**
|
3229
|
+
* Get previous text node
|
3230
|
+
* @param {Node} node Node for start searching
|
3231
|
+
* @returns {Node}
|
3232
|
+
* @ignore
|
3233
|
+
*/
|
3234
|
+
var getPrevTextNode = function getPrevTextNode(node) {
|
3235
|
+
node = node.previousSibling || node.parentNode;
|
3236
|
+
|
3237
|
+
while (!isTextNode(node) && getNodeName(node) !== 'BODY') {
|
3238
|
+
if (node.previousSibling) {
|
3239
|
+
node = node.previousSibling;
|
3240
|
+
|
3241
|
+
while (node.lastChild) {
|
3242
|
+
node = node.lastChild;
|
3243
|
+
}
|
3244
|
+
} else {
|
3245
|
+
node = node.parentNode;
|
3246
|
+
}
|
3247
|
+
}
|
3248
|
+
|
3249
|
+
if (getNodeName(node) === 'BODY') {
|
3250
|
+
node = null;
|
3251
|
+
}
|
3252
|
+
|
3253
|
+
return node;
|
3254
|
+
};
|
3255
|
+
|
3256
|
+
/**
|
3257
|
+
* find node by offset
|
3258
|
+
* @param {HTMLElement} root Root element
|
3259
|
+
* @param {Array.<number>} offsetList offset list
|
3260
|
+
* @param {function} textNodeFilter Text node filter
|
3261
|
+
* @returns {Array}
|
3262
|
+
* @ignore
|
3263
|
+
*/
|
3264
|
+
var findOffsetNode = function findOffsetNode(root, offsetList, textNodeFilter) {
|
3265
|
+
var result = [];
|
3266
|
+
var text = '';
|
3267
|
+
var walkerOffset = 0;
|
3268
|
+
var newWalkerOffset = void 0;
|
3269
|
+
|
3270
|
+
if (!offsetList.length) {
|
3271
|
+
return result;
|
3272
|
+
}
|
3273
|
+
|
3274
|
+
var offset = offsetList.shift();
|
3275
|
+
var walker = document.createTreeWalker(root, 4, null, false);
|
3276
|
+
|
3277
|
+
while (walker.nextNode()) {
|
3278
|
+
text = walker.currentNode.nodeValue || '';
|
3279
|
+
|
3280
|
+
if (textNodeFilter) {
|
3281
|
+
text = textNodeFilter(text);
|
3282
|
+
}
|
3283
|
+
|
3284
|
+
newWalkerOffset = walkerOffset + text.length;
|
3285
|
+
|
3286
|
+
while (newWalkerOffset >= offset) {
|
3287
|
+
result.push({
|
3288
|
+
container: walker.currentNode,
|
3289
|
+
offsetInContainer: offset - walkerOffset,
|
3290
|
+
offset: offset
|
3291
|
+
});
|
3292
|
+
|
3293
|
+
if (!offsetList.length) {
|
3294
|
+
return result;
|
3295
|
+
}
|
3296
|
+
offset = offsetList.shift();
|
3297
|
+
}
|
3298
|
+
walkerOffset = newWalkerOffset;
|
3299
|
+
}
|
3300
|
+
|
3301
|
+
// there should be offset left
|
3302
|
+
do {
|
3303
|
+
result.push({
|
3304
|
+
container: walker.currentNode,
|
3305
|
+
offsetInContainer: text.length,
|
3306
|
+
offset: offset
|
3307
|
+
});
|
3308
|
+
offset = offsetList.shift();
|
3309
|
+
} while (!_tuiCodeSnippet2.default.isUndefined(offset));
|
3310
|
+
|
3311
|
+
return result;
|
3312
|
+
};
|
3313
|
+
|
3314
|
+
var getNodeInfo = function getNodeInfo(node) {
|
3315
|
+
var path = {};
|
3316
|
+
|
3317
|
+
path.tagName = node.nodeName;
|
3318
|
+
|
3319
|
+
if (node.id) {
|
3320
|
+
path.id = node.id;
|
3321
|
+
}
|
3322
|
+
|
3323
|
+
var className = node.className.trim();
|
3324
|
+
|
3325
|
+
if (className) {
|
3326
|
+
path.className = className;
|
3327
|
+
}
|
3328
|
+
|
3329
|
+
return path;
|
3330
|
+
};
|
3331
|
+
|
3332
|
+
var getPath = function getPath(node, root) {
|
3333
|
+
var paths = [];
|
3334
|
+
|
3335
|
+
while (node && node !== root) {
|
3336
|
+
if (isElemNode(node)) {
|
3337
|
+
paths.unshift(getNodeInfo(node));
|
3338
|
+
}
|
3339
|
+
|
3340
|
+
node = node.parentNode;
|
3341
|
+
}
|
3342
|
+
|
3343
|
+
return paths;
|
3344
|
+
};
|
3345
|
+
|
3346
|
+
/**
|
3347
|
+
* Find next, previous TD or TH element by given TE element
|
3348
|
+
* @param {HTMLElement} node TD element
|
3349
|
+
* @param {string} direction Boolean value for direction true is find next cell
|
3350
|
+
* @returns {HTMLElement|null}
|
3351
|
+
* @ignore
|
3352
|
+
*/
|
3353
|
+
var getTableCellByDirection = function getTableCellByDirection(node, direction) {
|
3354
|
+
var isForward = true;
|
3355
|
+
var targetElement = null;
|
3356
|
+
|
3357
|
+
if (_tuiCodeSnippet2.default.isUndefined(direction) || direction !== 'next' && direction !== 'previous') {
|
3358
|
+
return null;
|
3359
|
+
} else if (direction === 'previous') {
|
3360
|
+
isForward = false;
|
3361
|
+
}
|
3362
|
+
|
3363
|
+
if (isForward) {
|
3364
|
+
targetElement = node.nextElementSibling;
|
3365
|
+
} else {
|
3366
|
+
targetElement = node.previousElementSibling;
|
3367
|
+
}
|
3368
|
+
|
3369
|
+
return targetElement;
|
3370
|
+
};
|
3371
|
+
|
3372
|
+
/**
|
3373
|
+
* Find sibling TR's TD element by given TD and direction
|
3374
|
+
* @param {HTMLElement} node TD element
|
3375
|
+
* @param {string} direction Boolean value for find first TD in next line
|
3376
|
+
* @param {boolean} [needEdgeCell=false] Boolean value for find first TD in next line
|
3377
|
+
* @returns {HTMLElement|null}
|
3378
|
+
* @ignore
|
3379
|
+
*/
|
3380
|
+
var getSiblingRowCellByDirection = function getSiblingRowCellByDirection(node, direction, needEdgeCell) {
|
3381
|
+
var isForward = true;
|
3382
|
+
var tableCellElement = null;
|
3383
|
+
var $node = void 0,
|
3384
|
+
index = void 0,
|
3385
|
+
$targetRowElement = void 0,
|
3386
|
+
$currentContainer = void 0,
|
3387
|
+
$siblingContainer = void 0,
|
3388
|
+
isSiblingContainerExists = void 0;
|
3389
|
+
|
3390
|
+
if (_tuiCodeSnippet2.default.isUndefined(direction) || direction !== 'next' && direction !== 'previous') {
|
3391
|
+
return null;
|
3392
|
+
} else if (direction === 'previous') {
|
3393
|
+
isForward = false;
|
3394
|
+
}
|
3395
|
+
|
3396
|
+
if (node) {
|
3397
|
+
$node = (0, _jquery2.default)(node);
|
3398
|
+
|
3399
|
+
if (isForward) {
|
3400
|
+
$targetRowElement = $node.parent().next();
|
3401
|
+
$currentContainer = $node.parents('thead');
|
3402
|
+
$siblingContainer = $currentContainer[0] && $currentContainer.next();
|
3403
|
+
isSiblingContainerExists = $siblingContainer && getNodeName($siblingContainer[0]) === 'TBODY';
|
3404
|
+
|
3405
|
+
index = 0;
|
3406
|
+
} else {
|
3407
|
+
$targetRowElement = $node.parent().prev();
|
3408
|
+
$currentContainer = $node.parents('tbody');
|
3409
|
+
$siblingContainer = $currentContainer[0] && $currentContainer.prev();
|
3410
|
+
isSiblingContainerExists = $siblingContainer && getNodeName($siblingContainer[0]) === 'THEAD';
|
3411
|
+
|
3412
|
+
index = node.parentNode.childNodes.length - 1;
|
3413
|
+
}
|
3414
|
+
|
3415
|
+
if (_tuiCodeSnippet2.default.isUndefined(needEdgeCell) || !needEdgeCell) {
|
3416
|
+
index = getNodeOffsetOfParent(node);
|
3417
|
+
}
|
3418
|
+
|
3419
|
+
if ($targetRowElement[0]) {
|
3420
|
+
tableCellElement = $targetRowElement.children('td,th')[index];
|
3421
|
+
} else if ($currentContainer[0] && isSiblingContainerExists) {
|
3422
|
+
tableCellElement = $siblingContainer.find('td,th')[index];
|
3423
|
+
}
|
3424
|
+
|
3425
|
+
return tableCellElement;
|
3426
|
+
}
|
3427
|
+
|
3428
|
+
return null;
|
3429
|
+
};
|
3430
|
+
|
3431
|
+
exports.default = {
|
3432
|
+
getNodeName: getNodeName,
|
3433
|
+
isTextNode: isTextNode,
|
3434
|
+
isElemNode: isElemNode,
|
3435
|
+
getTextLength: getTextLength,
|
3436
|
+
getOffsetLength: getOffsetLength,
|
3437
|
+
getPrevOffsetNodeUntil: getPrevOffsetNodeUntil,
|
3438
|
+
getNodeOffsetOfParent: getNodeOffsetOfParent,
|
3439
|
+
getChildNodeByOffset: getChildNodeByOffset,
|
3440
|
+
getTopPrevNodeUnder: getTopPrevNodeUnder,
|
3441
|
+
getTopNextNodeUnder: getTopNextNodeUnder,
|
3442
|
+
getParentUntil: getParentUntil,
|
3443
|
+
getTopBlockNode: getTopBlockNode,
|
3444
|
+
getPrevTextNode: getPrevTextNode,
|
3445
|
+
findOffsetNode: findOffsetNode,
|
3446
|
+
getPath: getPath,
|
3447
|
+
getNodeInfo: getNodeInfo,
|
3448
|
+
getTableCellByDirection: getTableCellByDirection,
|
3449
|
+
getSiblingRowCellByDirection: getSiblingRowCellByDirection
|
3450
|
+
};
|
3451
|
+
|
3452
|
+
/***/ }),
|
3453
|
+
|
3454
|
+
/***/ 7:
|
3455
|
+
/***/ (function(module, exports, __webpack_require__) {
|
3456
|
+
|
3457
|
+
"use strict";
|
3458
|
+
|
3459
|
+
|
3460
|
+
Object.defineProperty(exports, "__esModule", {
|
3461
|
+
value: true
|
3462
|
+
});
|
3463
|
+
exports.CodeBlockManager = undefined;
|
3464
|
+
|
3465
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
3466
|
+
* @fileoverview Implements CodeBlockManager
|
3467
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
3468
|
+
*/
|
3469
|
+
|
3470
|
+
|
3471
|
+
var _highlight = __webpack_require__(28);
|
3472
|
+
|
3473
|
+
var _highlight2 = _interopRequireDefault(_highlight);
|
3474
|
+
|
3475
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
3476
|
+
|
3477
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
3478
|
+
|
3479
|
+
/**
|
3480
|
+
* Class Code Block Manager
|
3481
|
+
*/
|
3482
|
+
var CodeBlockManager = function () {
|
3483
|
+
/**
|
3484
|
+
* Creates an instance of CodeBlockManager.
|
3485
|
+
* @memberof CodeBlockManager
|
3486
|
+
*/
|
3487
|
+
function CodeBlockManager() {
|
3488
|
+
_classCallCheck(this, CodeBlockManager);
|
3489
|
+
|
3490
|
+
this._replacers = {};
|
3491
|
+
}
|
3492
|
+
|
3493
|
+
/**
|
3494
|
+
* Set replacer for code block
|
3495
|
+
* @param {string} language - code block language
|
3496
|
+
* @param {function} replacer - replacer function to code block element
|
3497
|
+
*/
|
3498
|
+
|
3499
|
+
|
3500
|
+
_createClass(CodeBlockManager, [{
|
3501
|
+
key: 'setReplacer',
|
3502
|
+
value: function setReplacer(language, replacer) {
|
3503
|
+
this._replacers[language] = replacer;
|
3504
|
+
}
|
3505
|
+
|
3506
|
+
/**
|
3507
|
+
* get replacer for code block
|
3508
|
+
* @param {string} language - code block type
|
3509
|
+
* @returns {function} - replacer function
|
3510
|
+
* @memberof CodeBlockManager
|
3511
|
+
*/
|
3512
|
+
|
3513
|
+
}, {
|
3514
|
+
key: 'getReplacer',
|
3515
|
+
value: function getReplacer(language) {
|
3516
|
+
return this._replacers[language];
|
3517
|
+
}
|
3518
|
+
|
3519
|
+
/**
|
3520
|
+
* Create code block html.
|
3521
|
+
* @param {string} language - code block language
|
3522
|
+
* @param {string} codeText - code text
|
3523
|
+
* @returns {string}
|
3524
|
+
*/
|
3525
|
+
|
3526
|
+
}, {
|
3527
|
+
key: 'createCodeBlockHtml',
|
3528
|
+
value: function createCodeBlockHtml(language, codeText) {
|
3529
|
+
var replacer = this.getReplacer(language);
|
3530
|
+
var html = void 0;
|
3531
|
+
|
3532
|
+
if (replacer) {
|
3533
|
+
html = replacer(codeText, language);
|
3534
|
+
} else {
|
3535
|
+
html = _highlight2.default.getLanguage(language) ? _highlight2.default.highlight(language, codeText).value : escape(codeText, false);
|
3536
|
+
}
|
3537
|
+
|
3538
|
+
return html;
|
3539
|
+
}
|
3540
|
+
|
3541
|
+
/**
|
3542
|
+
* get supported languages by highlight-js
|
3543
|
+
* @returns {Array<string>} - supported languages by highlight-js
|
3544
|
+
* @static
|
3545
|
+
*/
|
3546
|
+
|
3547
|
+
}], [{
|
3548
|
+
key: 'getHighlightJSLanguages',
|
3549
|
+
value: function getHighlightJSLanguages() {
|
3550
|
+
return _highlight2.default.listLanguages();
|
3551
|
+
}
|
3552
|
+
}]);
|
3553
|
+
|
3554
|
+
return CodeBlockManager;
|
3555
|
+
}();
|
3556
|
+
|
3557
|
+
/**
|
3558
|
+
* escape code from markdown-it
|
3559
|
+
* @param {string} html HTML string
|
3560
|
+
* @param {string} encode Boolean value of whether encode or not
|
3561
|
+
* @returns {string}
|
3562
|
+
* @ignore
|
3563
|
+
*/
|
3564
|
+
|
3565
|
+
|
3566
|
+
function escape(html, encode) {
|
3567
|
+
return html.replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
3568
|
+
}
|
3569
|
+
|
3570
|
+
exports.CodeBlockManager = CodeBlockManager;
|
3571
|
+
exports.default = new CodeBlockManager();
|
3572
|
+
|
3573
|
+
/***/ }),
|
3574
|
+
|
3575
|
+
/***/ 9:
|
3576
|
+
/***/ (function(module, exports, __webpack_require__) {
|
3577
|
+
|
3578
|
+
"use strict";
|
3579
|
+
|
3580
|
+
|
3581
|
+
Object.defineProperty(exports, "__esModule", {
|
3582
|
+
value: true
|
3583
|
+
});
|
3584
|
+
|
3585
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
3586
|
+
|
3587
|
+
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
|
3588
|
+
|
3589
|
+
var _preview = __webpack_require__(10);
|
3590
|
+
|
3591
|
+
var _preview2 = _interopRequireDefault(_preview);
|
3592
|
+
|
3593
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
3594
|
+
|
3595
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
3596
|
+
|
3597
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
3598
|
+
|
3599
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**
|
3600
|
+
* @fileoverview Implements markdown preview
|
3601
|
+
* @author NHN Ent. FE Development Lab <dl_javascript@nhnent.com>
|
3602
|
+
*/
|
3603
|
+
|
3604
|
+
|
3605
|
+
/**
|
3606
|
+
* Class Markdown Preview
|
3607
|
+
* @extends {Preview}
|
3608
|
+
*/
|
3609
|
+
var MarkdownPreview = function (_Preview) {
|
3610
|
+
_inherits(MarkdownPreview, _Preview);
|
3611
|
+
|
3612
|
+
/**
|
3613
|
+
* Creates an instance of MarkdownPreview.
|
3614
|
+
* @param {jQuery} $el - base jQuery element
|
3615
|
+
* @param {EventManager} eventManager - event manager
|
3616
|
+
* @param {Convertor} convertor - convertor
|
3617
|
+
* @param {boolean} isViewer - true for view only mode
|
3618
|
+
* @memberof MarkdownPreview
|
3619
|
+
*/
|
3620
|
+
function MarkdownPreview($el, eventManager, convertor, isViewer) {
|
3621
|
+
_classCallCheck(this, MarkdownPreview);
|
3622
|
+
|
3623
|
+
var _this = _possibleConstructorReturn(this, (MarkdownPreview.__proto__ || Object.getPrototypeOf(MarkdownPreview)).call(this, $el, eventManager, convertor, isViewer));
|
3624
|
+
|
3625
|
+
_this._initEvent();
|
3626
|
+
return _this;
|
3627
|
+
}
|
3628
|
+
|
3629
|
+
/**
|
3630
|
+
* Initialize event
|
3631
|
+
* @private
|
3632
|
+
*/
|
3633
|
+
|
3634
|
+
|
3635
|
+
_createClass(MarkdownPreview, [{
|
3636
|
+
key: '_initEvent',
|
3637
|
+
value: function _initEvent() {
|
3638
|
+
var _this2 = this;
|
3639
|
+
|
3640
|
+
var latestMarkdownValue = '';
|
3641
|
+
|
3642
|
+
this.eventManager.listen('contentChangedFromMarkdown', function (markdownEditor) {
|
3643
|
+
latestMarkdownValue = markdownEditor.getValue();
|
3644
|
+
|
3645
|
+
if (_this2.isVisible()) {
|
3646
|
+
_this2.lazyRunner.run('refresh', latestMarkdownValue.replace(/<br>\n/g, '<br>'));
|
3647
|
+
}
|
3648
|
+
});
|
3649
|
+
|
3650
|
+
this.eventManager.listen('previewNeedsRefresh', function (value) {
|
3651
|
+
_this2.refresh(value || latestMarkdownValue);
|
3652
|
+
});
|
3653
|
+
|
3654
|
+
this.$el.on('scroll', function (event) {
|
3655
|
+
_this2.eventManager.emit('scroll', {
|
3656
|
+
source: 'preview',
|
3657
|
+
data: event
|
3658
|
+
});
|
3659
|
+
});
|
3660
|
+
}
|
3661
|
+
|
3662
|
+
/**
|
3663
|
+
* render
|
3664
|
+
* @param {string} html - html string to render
|
3665
|
+
* @memberof MarkdownPreview
|
3666
|
+
* @override
|
3667
|
+
*/
|
3668
|
+
|
3669
|
+
}, {
|
3670
|
+
key: 'render',
|
3671
|
+
value: function render(html) {
|
3672
|
+
_get(MarkdownPreview.prototype.__proto__ || Object.getPrototypeOf(MarkdownPreview.prototype), 'render', this).call(this, html);
|
3673
|
+
|
3674
|
+
this.eventManager.emit('previewRenderAfter', this);
|
3675
|
+
}
|
3676
|
+
}]);
|
3677
|
+
|
3678
|
+
return MarkdownPreview;
|
3679
|
+
}(_preview2.default);
|
3680
|
+
|
3681
|
+
exports.default = MarkdownPreview;
|
3682
|
+
|
3683
|
+
/***/ })
|
3684
|
+
|
3685
|
+
/******/ });
|
3686
|
+
});
|