tui_editor-rails 1.0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
});
|