administrate-field-simple_mde_markdown 0.1.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/.circleci/config.yml +72 -0
- data/.circleci/setup-rubygems.sh +3 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +196 -0
- data/LICENSE.txt +21 -0
- data/README.md +44 -0
- data/Rakefile +8 -0
- data/administrate-field-simple_mde_markdown.gemspec +31 -0
- data/app/assets/javascripts/administrate-field-simple_mde_markdown/application.js +6 -0
- data/app/assets/stylesheets/administrate-field-simple_mde_markdown/application.css +3 -0
- data/app/views/fields/simple_mde_markdown/_form.html.erb +6 -0
- data/app/views/fields/simple_mde_markdown/_index.html.erb +1 -0
- data/app/views/fields/simple_mde_markdown/_show.html.erb +1 -0
- data/lib/administrate/field/simple_mde_markdown.rb +31 -0
- data/node_modules/.bin/marked +1 -0
- data/node_modules/codemirror-spell-checker/.eslintrc +23 -0
- data/node_modules/codemirror-spell-checker/.npmignore +2 -0
- data/node_modules/codemirror-spell-checker/.travis.yml +18 -0
- data/node_modules/codemirror-spell-checker/CONTRIBUTING 2.md +10 -0
- data/node_modules/codemirror-spell-checker/CONTRIBUTING.md +10 -0
- data/node_modules/codemirror-spell-checker/LICENSE +22 -0
- data/node_modules/codemirror-spell-checker/README.md +50 -0
- data/node_modules/codemirror-spell-checker/bower.json +27 -0
- data/node_modules/codemirror-spell-checker/debug/.spell-checker 2.css.icloud +0 -0
- data/node_modules/codemirror-spell-checker/debug/spell-checker.css +9 -0
- data/node_modules/codemirror-spell-checker/debug/spell-checker.debug.js +2844 -0
- data/node_modules/codemirror-spell-checker/debug/spell-checker.js +2841 -0
- data/node_modules/codemirror-spell-checker/dist/.spell-checker.min 2.css.icloud +0 -0
- data/node_modules/codemirror-spell-checker/dist/en_US.aff +201 -0
- data/node_modules/codemirror-spell-checker/dist/en_US.dic +62120 -0
- data/node_modules/codemirror-spell-checker/dist/spell-checker.min 2.js +7 -0
- data/node_modules/codemirror-spell-checker/dist/spell-checker.min.css +7 -0
- data/node_modules/codemirror-spell-checker/dist/spell-checker.min.js +7 -0
- data/node_modules/codemirror-spell-checker/gulpfile.js +94 -0
- data/node_modules/codemirror-spell-checker/package.json +75 -0
- data/node_modules/codemirror-spell-checker/src/css/spell-checker.css +3 -0
- data/node_modules/codemirror-spell-checker/src/data/en_US.aff +201 -0
- data/node_modules/codemirror-spell-checker/src/data/en_US.dic +62120 -0
- data/node_modules/codemirror-spell-checker/src/js/spell-checker.js +119 -0
- data/node_modules/codemirror/.package 2.json.icloud +0 -0
- data/node_modules/codemirror/AUTHORS +773 -0
- data/node_modules/codemirror/CHANGELOG.md +1486 -0
- data/node_modules/codemirror/CONTRIBUTING.md +92 -0
- data/node_modules/codemirror/LICENSE +21 -0
- data/node_modules/codemirror/README.md +49 -0
- data/node_modules/codemirror/addon/comment/comment.js +209 -0
- data/node_modules/codemirror/addon/comment/continuecomment.js +78 -0
- data/node_modules/codemirror/addon/dialog/dialog.css +32 -0
- data/node_modules/codemirror/addon/dialog/dialog.js +161 -0
- data/node_modules/codemirror/addon/display/autorefresh.js +47 -0
- data/node_modules/codemirror/addon/display/fullscreen.css +6 -0
- data/node_modules/codemirror/addon/display/fullscreen.js +41 -0
- data/node_modules/codemirror/addon/display/panel.js +127 -0
- data/node_modules/codemirror/addon/display/placeholder.js +63 -0
- data/node_modules/codemirror/addon/display/rulers.js +51 -0
- data/node_modules/codemirror/addon/edit/closebrackets.js +187 -0
- data/node_modules/codemirror/addon/edit/closetag.js +175 -0
- data/node_modules/codemirror/addon/edit/continuelist.js +89 -0
- data/node_modules/codemirror/addon/edit/matchbrackets.js +145 -0
- data/node_modules/codemirror/addon/edit/matchtags.js +66 -0
- data/node_modules/codemirror/addon/edit/trailingspace.js +27 -0
- data/node_modules/codemirror/addon/fold/brace-fold.js +105 -0
- data/node_modules/codemirror/addon/fold/comment-fold.js +59 -0
- data/node_modules/codemirror/addon/fold/foldcode.js +152 -0
- data/node_modules/codemirror/addon/fold/foldgutter.css +20 -0
- data/node_modules/codemirror/addon/fold/foldgutter.js +146 -0
- data/node_modules/codemirror/addon/fold/indent-fold.js +48 -0
- data/node_modules/codemirror/addon/fold/markdown-fold.js +49 -0
- data/node_modules/codemirror/addon/fold/xml-fold.js +184 -0
- data/node_modules/codemirror/addon/hint/anyword-hint.js +41 -0
- data/node_modules/codemirror/addon/hint/css-hint.js +60 -0
- data/node_modules/codemirror/addon/hint/html-hint.js +348 -0
- data/node_modules/codemirror/addon/hint/javascript-hint.js +157 -0
- data/node_modules/codemirror/addon/hint/show-hint.css +36 -0
- data/node_modules/codemirror/addon/hint/show-hint.js +434 -0
- data/node_modules/codemirror/addon/hint/sql-hint.js +299 -0
- data/node_modules/codemirror/addon/hint/xml-hint.js +110 -0
- data/node_modules/codemirror/addon/lint/coffeescript-lint.js +47 -0
- data/node_modules/codemirror/addon/lint/css-lint.js +40 -0
- data/node_modules/codemirror/addon/lint/html-lint.js +53 -0
- data/node_modules/codemirror/addon/lint/javascript-lint.js +63 -0
- data/node_modules/codemirror/addon/lint/json-lint.js +40 -0
- data/node_modules/codemirror/addon/lint/lint.css +73 -0
- data/node_modules/codemirror/addon/lint/lint.js +252 -0
- data/node_modules/codemirror/addon/lint/yaml-lint.js +41 -0
- data/node_modules/codemirror/addon/merge/merge.css +119 -0
- data/node_modules/codemirror/addon/merge/merge.js +1002 -0
- data/node_modules/codemirror/addon/mode/loadmode.js +64 -0
- data/node_modules/codemirror/addon/mode/multiplex.js +131 -0
- data/node_modules/codemirror/addon/mode/multiplex_test.js +33 -0
- data/node_modules/codemirror/addon/mode/overlay.js +90 -0
- data/node_modules/codemirror/addon/mode/simple.js +216 -0
- data/node_modules/codemirror/addon/runmode/colorize.js +40 -0
- data/node_modules/codemirror/addon/runmode/runmode-standalone.js +158 -0
- data/node_modules/codemirror/addon/runmode/runmode.js +72 -0
- data/node_modules/codemirror/addon/runmode/runmode.node.js +197 -0
- data/node_modules/codemirror/addon/scroll/annotatescrollbar.js +122 -0
- data/node_modules/codemirror/addon/scroll/scrollpastend.js +48 -0
- data/node_modules/codemirror/addon/scroll/simplescrollbars.css +66 -0
- data/node_modules/codemirror/addon/scroll/simplescrollbars.js +152 -0
- data/node_modules/codemirror/addon/search/jump-to-line.js +50 -0
- data/node_modules/codemirror/addon/search/match-highlighter.js +165 -0
- data/node_modules/codemirror/addon/search/matchesonscrollbar.css +8 -0
- data/node_modules/codemirror/addon/search/matchesonscrollbar.js +97 -0
- data/node_modules/codemirror/addon/search/search.js +258 -0
- data/node_modules/codemirror/addon/search/searchcursor.js +293 -0
- data/node_modules/codemirror/addon/selection/active-line.js +72 -0
- data/node_modules/codemirror/addon/selection/mark-selection.js +119 -0
- data/node_modules/codemirror/addon/selection/selection-pointer.js +98 -0
- data/node_modules/codemirror/addon/tern/tern.css +87 -0
- data/node_modules/codemirror/addon/tern/tern.js +718 -0
- data/node_modules/codemirror/addon/tern/worker.js +44 -0
- data/node_modules/codemirror/addon/wrap/hardwrap.js +145 -0
- data/node_modules/codemirror/bin/source-highlight +48 -0
- data/node_modules/codemirror/keymap/emacs.js +417 -0
- data/node_modules/codemirror/keymap/sublime.js +691 -0
- data/node_modules/codemirror/keymap/vim.js +5467 -0
- data/node_modules/codemirror/lib/codemirror.css +346 -0
- data/node_modules/codemirror/lib/codemirror.js +9698 -0
- data/node_modules/codemirror/mode/apl/apl.js +174 -0
- data/node_modules/codemirror/mode/asciiarmor/asciiarmor.js +74 -0
- data/node_modules/codemirror/mode/asn.1/asn.1.js +204 -0
- data/node_modules/codemirror/mode/asterisk/asterisk.js +196 -0
- data/node_modules/codemirror/mode/brainfuck/brainfuck.js +85 -0
- data/node_modules/codemirror/mode/clike/clike.js +879 -0
- data/node_modules/codemirror/mode/clojure/clojure.js +292 -0
- data/node_modules/codemirror/mode/cmake/cmake.js +97 -0
- data/node_modules/codemirror/mode/cobol/cobol.js +255 -0
- data/node_modules/codemirror/mode/coffeescript/coffeescript.js +359 -0
- data/node_modules/codemirror/mode/commonlisp/commonlisp.js +124 -0
- data/node_modules/codemirror/mode/crystal/crystal.js +433 -0
- data/node_modules/codemirror/mode/css/css.js +832 -0
- data/node_modules/codemirror/mode/cypher/cypher.js +150 -0
- data/node_modules/codemirror/mode/d/d.js +223 -0
- data/node_modules/codemirror/mode/dart/dart.js +157 -0
- data/node_modules/codemirror/mode/diff/diff.js +47 -0
- data/node_modules/codemirror/mode/django/django.js +356 -0
- data/node_modules/codemirror/mode/dockerfile/dockerfile.js +211 -0
- data/node_modules/codemirror/mode/dtd/dtd.js +142 -0
- data/node_modules/codemirror/mode/dylan/dylan.js +352 -0
- data/node_modules/codemirror/mode/ebnf/ebnf.js +195 -0
- data/node_modules/codemirror/mode/ecl/ecl.js +206 -0
- data/node_modules/codemirror/mode/eiffel/eiffel.js +160 -0
- data/node_modules/codemirror/mode/elm/elm.js +205 -0
- data/node_modules/codemirror/mode/erlang/erlang.js +619 -0
- data/node_modules/codemirror/mode/factor/factor.js +85 -0
- data/node_modules/codemirror/mode/fcl/fcl.js +173 -0
- data/node_modules/codemirror/mode/forth/forth.js +180 -0
- data/node_modules/codemirror/mode/fortran/fortran.js +188 -0
- data/node_modules/codemirror/mode/gas/gas.js +345 -0
- data/node_modules/codemirror/mode/gfm/gfm.js +129 -0
- data/node_modules/codemirror/mode/gherkin/gherkin.js +178 -0
- data/node_modules/codemirror/mode/go/go.js +187 -0
- data/node_modules/codemirror/mode/groovy/groovy.js +230 -0
- data/node_modules/codemirror/mode/haml/haml.js +161 -0
- data/node_modules/codemirror/mode/handlebars/handlebars.js +66 -0
- data/node_modules/codemirror/mode/haskell-literate/haskell-literate.js +43 -0
- data/node_modules/codemirror/mode/haskell/haskell.js +268 -0
- data/node_modules/codemirror/mode/haxe/haxe.js +515 -0
- data/node_modules/codemirror/mode/htmlembedded/htmlembedded.js +37 -0
- data/node_modules/codemirror/mode/htmlmixed/htmlmixed.js +152 -0
- data/node_modules/codemirror/mode/http/http.js +113 -0
- data/node_modules/codemirror/mode/idl/idl.js +290 -0
- data/node_modules/codemirror/mode/javascript/javascript.js +899 -0
- data/node_modules/codemirror/mode/jinja2/jinja2.js +144 -0
- data/node_modules/codemirror/mode/jsx/jsx.js +148 -0
- data/node_modules/codemirror/mode/julia/julia.js +433 -0
- data/node_modules/codemirror/mode/livescript/livescript.js +280 -0
- data/node_modules/codemirror/mode/lua/lua.js +159 -0
- data/node_modules/codemirror/mode/markdown/markdown.js +884 -0
- data/node_modules/codemirror/mode/mathematica/mathematica.js +176 -0
- data/node_modules/codemirror/mode/mbox/mbox.js +129 -0
- data/node_modules/codemirror/mode/meta.js +217 -0
- data/node_modules/codemirror/mode/mirc/mirc.js +193 -0
- data/node_modules/codemirror/mode/mllike/mllike.js +359 -0
- data/node_modules/codemirror/mode/modelica/modelica.js +245 -0
- data/node_modules/codemirror/mode/mscgen/mscgen.js +175 -0
- data/node_modules/codemirror/mode/mumps/mumps.js +148 -0
- data/node_modules/codemirror/mode/nginx/nginx.js +178 -0
- data/node_modules/codemirror/mode/nsis/nsis.js +95 -0
- data/node_modules/codemirror/mode/ntriples/ntriples.js +195 -0
- data/node_modules/codemirror/mode/octave/octave.js +139 -0
- data/node_modules/codemirror/mode/oz/oz.js +252 -0
- data/node_modules/codemirror/mode/pascal/pascal.js +121 -0
- data/node_modules/codemirror/mode/pegjs/pegjs.js +114 -0
- data/node_modules/codemirror/mode/perl/perl.js +837 -0
- data/node_modules/codemirror/mode/php/php.js +234 -0
- data/node_modules/codemirror/mode/pig/pig.js +178 -0
- data/node_modules/codemirror/mode/powershell/powershell.js +398 -0
- data/node_modules/codemirror/mode/properties/properties 2.js +78 -0
- data/node_modules/codemirror/mode/properties/properties.js +78 -0
- data/node_modules/codemirror/mode/protobuf/protobuf.js +69 -0
- data/node_modules/codemirror/mode/pug/pug.js +591 -0
- data/node_modules/codemirror/mode/puppet/puppet.js +220 -0
- data/node_modules/codemirror/mode/python/python.js +409 -0
- data/node_modules/codemirror/mode/q/q.js +139 -0
- data/node_modules/codemirror/mode/r/r.js +190 -0
- data/node_modules/codemirror/mode/rpm/changes/index.html +66 -0
- data/node_modules/codemirror/mode/rpm/rpm.js +109 -0
- data/node_modules/codemirror/mode/rst/rst.js +557 -0
- data/node_modules/codemirror/mode/ruby/ruby.js +296 -0
- data/node_modules/codemirror/mode/rust/rust.js +72 -0
- data/node_modules/codemirror/mode/sas/sas.js +303 -0
- data/node_modules/codemirror/mode/sass/sass.js +454 -0
- data/node_modules/codemirror/mode/scheme/scheme.js +265 -0
- data/node_modules/codemirror/mode/shell/shell.js +152 -0
- data/node_modules/codemirror/mode/sieve/sieve.js +193 -0
- data/node_modules/codemirror/mode/slim/slim.js +575 -0
- data/node_modules/codemirror/mode/smalltalk/smalltalk.js +168 -0
- data/node_modules/codemirror/mode/smarty/smarty.js +225 -0
- data/node_modules/codemirror/mode/solr/solr.js +104 -0
- data/node_modules/codemirror/mode/soy/soy 2.js +359 -0
- data/node_modules/codemirror/mode/soy/soy.js +235 -0
- data/node_modules/codemirror/mode/sparql/sparql.js +180 -0
- data/node_modules/codemirror/mode/spreadsheet/spreadsheet.js +112 -0
- data/node_modules/codemirror/mode/sql/sql.js +499 -0
- data/node_modules/codemirror/mode/stex/stex.js +264 -0
- data/node_modules/codemirror/mode/stylus/stylus.js +771 -0
- data/node_modules/codemirror/mode/swift/swift.js +219 -0
- data/node_modules/codemirror/mode/tcl/tcl.js +139 -0
- data/node_modules/codemirror/mode/textile/textile.js +469 -0
- data/node_modules/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- data/node_modules/codemirror/mode/tiddlywiki/tiddlywiki.js +308 -0
- data/node_modules/codemirror/mode/tiki/tiki.css +26 -0
- data/node_modules/codemirror/mode/tiki/tiki.js +312 -0
- data/node_modules/codemirror/mode/toml/toml.js +88 -0
- data/node_modules/codemirror/mode/tornado/tornado.js +68 -0
- data/node_modules/codemirror/mode/troff/troff.js +84 -0
- data/node_modules/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
- data/node_modules/codemirror/mode/ttcn/ttcn.js +283 -0
- data/node_modules/codemirror/mode/turtle/turtle.js +162 -0
- data/node_modules/codemirror/mode/twig/twig.js +141 -0
- data/node_modules/codemirror/mode/vb/vb.js +275 -0
- data/node_modules/codemirror/mode/vbscript/vbscript.js +350 -0
- data/node_modules/codemirror/mode/velocity/velocity.js +201 -0
- data/node_modules/codemirror/mode/verilog/verilog.js +675 -0
- data/node_modules/codemirror/mode/vhdl/vhdl.js +189 -0
- data/node_modules/codemirror/mode/vue/vue.js +77 -0
- data/node_modules/codemirror/mode/webidl/webidl.js +195 -0
- data/node_modules/codemirror/mode/xml/xml.js +402 -0
- data/node_modules/codemirror/mode/xquery/xquery.js +448 -0
- data/node_modules/codemirror/mode/yacas/yacas.js +204 -0
- data/node_modules/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +68 -0
- data/node_modules/codemirror/mode/yaml/yaml.js +120 -0
- data/node_modules/codemirror/mode/z80/z80.js +116 -0
- data/node_modules/codemirror/package.json +2395 -0
- data/node_modules/codemirror/rollup.config.js +20 -0
- data/node_modules/codemirror/src/codemirror.js +3 -0
- data/node_modules/codemirror/src/display/Display.js +106 -0
- data/node_modules/codemirror/src/display/focus.js +47 -0
- data/node_modules/codemirror/src/display/gutters.js +34 -0
- data/node_modules/codemirror/src/display/highlight_worker.js +55 -0
- data/node_modules/codemirror/src/display/line_numbers.js +48 -0
- data/node_modules/codemirror/src/display/mode_state.js +22 -0
- data/node_modules/codemirror/src/display/operations.js +205 -0
- data/node_modules/codemirror/src/display/scroll_events.js +115 -0
- data/node_modules/codemirror/src/display/scrollbars.js +193 -0
- data/node_modules/codemirror/src/display/scrolling.js +184 -0
- data/node_modules/codemirror/src/display/selection.js +158 -0
- data/node_modules/codemirror/src/display/update_display.js +260 -0
- data/node_modules/codemirror/src/display/update_line.js +188 -0
- data/node_modules/codemirror/src/display/update_lines.js +64 -0
- data/node_modules/codemirror/src/display/view_tracking.js +153 -0
- data/node_modules/codemirror/src/edit/CodeMirror.js +215 -0
- data/node_modules/codemirror/src/edit/commands.js +178 -0
- data/node_modules/codemirror/src/edit/deleteNearSelection.js +30 -0
- data/node_modules/codemirror/src/edit/drop_events.js +119 -0
- data/node_modules/codemirror/src/edit/fromTextArea.js +61 -0
- data/node_modules/codemirror/src/edit/global_events.js +42 -0
- data/node_modules/codemirror/src/edit/key_events.js +159 -0
- data/node_modules/codemirror/src/edit/legacy.js +62 -0
- data/node_modules/codemirror/src/edit/main.js +69 -0
- data/node_modules/codemirror/src/edit/methods.js +544 -0
- data/node_modules/codemirror/src/edit/mouse_events.js +407 -0
- data/node_modules/codemirror/src/edit/options.js +193 -0
- data/node_modules/codemirror/src/edit/utils.js +7 -0
- data/node_modules/codemirror/src/input/ContentEditableInput.js +527 -0
- data/node_modules/codemirror/src/input/TextareaInput.js +355 -0
- data/node_modules/codemirror/src/input/indent.js +71 -0
- data/node_modules/codemirror/src/input/input.js +135 -0
- data/node_modules/codemirror/src/input/keymap.js +148 -0
- data/node_modules/codemirror/src/input/keynames.js +17 -0
- data/node_modules/codemirror/src/input/movement.js +110 -0
- data/node_modules/codemirror/src/line/highlight.js +284 -0
- data/node_modules/codemirror/src/line/line_data.js +339 -0
- data/node_modules/codemirror/src/line/pos.js +40 -0
- data/node_modules/codemirror/src/line/saw_special_spans.js +10 -0
- data/node_modules/codemirror/src/line/spans.js +382 -0
- data/node_modules/codemirror/src/line/utils_line.js +85 -0
- data/node_modules/codemirror/src/measurement/position_measurement.js +699 -0
- data/node_modules/codemirror/src/measurement/widgets.js +26 -0
- data/node_modules/codemirror/src/model/Doc.js +432 -0
- data/node_modules/codemirror/src/model/change_measurement.js +61 -0
- data/node_modules/codemirror/src/model/changes.js +333 -0
- data/node_modules/codemirror/src/model/chunk.js +167 -0
- data/node_modules/codemirror/src/model/document_data.js +111 -0
- data/node_modules/codemirror/src/model/history.js +228 -0
- data/node_modules/codemirror/src/model/line_widget.js +78 -0
- data/node_modules/codemirror/src/model/mark_text.js +292 -0
- data/node_modules/codemirror/src/model/selection.js +84 -0
- data/node_modules/codemirror/src/model/selection_updates.js +208 -0
- data/node_modules/codemirror/src/modes.js +96 -0
- data/node_modules/codemirror/src/util/StringStream.js +90 -0
- data/node_modules/codemirror/src/util/bidi.js +214 -0
- data/node_modules/codemirror/src/util/browser.js +33 -0
- data/node_modules/codemirror/src/util/dom.js +97 -0
- data/node_modules/codemirror/src/util/event.js +103 -0
- data/node_modules/codemirror/src/util/feature_detection.js +84 -0
- data/node_modules/codemirror/src/util/misc.js +150 -0
- data/node_modules/codemirror/src/util/operation_group.js +72 -0
- data/node_modules/codemirror/theme/3024-day.css +41 -0
- data/node_modules/codemirror/theme/3024-night.css +39 -0
- data/node_modules/codemirror/theme/abcdef.css +32 -0
- data/node_modules/codemirror/theme/ambiance-mobile.css +5 -0
- data/node_modules/codemirror/theme/ambiance.css +74 -0
- data/node_modules/codemirror/theme/base16-dark.css +38 -0
- data/node_modules/codemirror/theme/base16-light.css +38 -0
- data/node_modules/codemirror/theme/bespin.css +34 -0
- data/node_modules/codemirror/theme/blackboard.css +32 -0
- data/node_modules/codemirror/theme/cobalt.css +25 -0
- data/node_modules/codemirror/theme/colorforth.css +33 -0
- data/node_modules/codemirror/theme/darcula.css +46 -0
- data/node_modules/codemirror/theme/dracula.css +40 -0
- data/node_modules/codemirror/theme/duotone-dark.css +35 -0
- data/node_modules/codemirror/theme/duotone-light.css +36 -0
- data/node_modules/codemirror/theme/eclipse.css +23 -0
- data/node_modules/codemirror/theme/elegant.css +13 -0
- data/node_modules/codemirror/theme/erlang-dark.css +34 -0
- data/node_modules/codemirror/theme/gruvbox-dark.css +37 -0
- data/node_modules/codemirror/theme/hopscotch.css +34 -0
- data/node_modules/codemirror/theme/icecoder.css +43 -0
- data/node_modules/codemirror/theme/idea.css +42 -0
- data/node_modules/codemirror/theme/isotope.css +34 -0
- data/node_modules/codemirror/theme/lesser-dark.css +47 -0
- data/node_modules/codemirror/theme/liquibyte.css +95 -0
- data/node_modules/codemirror/theme/lucario.css +37 -0
- data/node_modules/codemirror/theme/material.css +53 -0
- data/node_modules/codemirror/theme/mbo.css +37 -0
- data/node_modules/codemirror/theme/mdn-like.css +46 -0
- data/node_modules/codemirror/theme/midnight.css +43 -0
- data/node_modules/codemirror/theme/monokai.css +41 -0
- data/node_modules/codemirror/theme/neat.css +12 -0
- data/node_modules/codemirror/theme/neo.css +43 -0
- data/node_modules/codemirror/theme/night.css +27 -0
- data/node_modules/codemirror/theme/oceanic-next.css +44 -0
- data/node_modules/codemirror/theme/panda-syntax.css +85 -0
- data/node_modules/codemirror/theme/paraiso-dark.css +38 -0
- data/node_modules/codemirror/theme/paraiso-light.css +38 -0
- data/node_modules/codemirror/theme/pastel-on-dark.css +52 -0
- data/node_modules/codemirror/theme/railscasts.css +34 -0
- data/node_modules/codemirror/theme/rubyblue.css +25 -0
- data/node_modules/codemirror/theme/seti.css +44 -0
- data/node_modules/codemirror/theme/shadowfox.css +52 -0
- data/node_modules/codemirror/theme/solarized.css +168 -0
- data/node_modules/codemirror/theme/ssms.css +16 -0
- data/node_modules/codemirror/theme/the-matrix.css +30 -0
- data/node_modules/codemirror/theme/tomorrow-night-bright.css +35 -0
- data/node_modules/codemirror/theme/tomorrow-night-eighties.css +38 -0
- data/node_modules/codemirror/theme/ttcn.css +64 -0
- data/node_modules/codemirror/theme/twilight.css +32 -0
- data/node_modules/codemirror/theme/vibrant-ink.css +34 -0
- data/node_modules/codemirror/theme/xq-dark.css +53 -0
- data/node_modules/codemirror/theme/xq-light.css +43 -0
- data/node_modules/codemirror/theme/yeti.css +44 -0
- data/node_modules/codemirror/theme/zenburn.css +37 -0
- data/node_modules/marked/.editorconfig +16 -0
- data/node_modules/marked/.eslintignore +1 -0
- data/node_modules/marked/.eslintrc.json +28 -0
- data/node_modules/marked/.package 2.json.icloud +0 -0
- data/node_modules/marked/.travis.yml +47 -0
- data/node_modules/marked/Makefile +15 -0
- data/node_modules/marked/Makefile 2 +15 -0
- data/node_modules/marked/README 2.md +75 -0
- data/node_modules/marked/README.md +75 -0
- data/node_modules/marked/bin/marked +199 -0
- data/node_modules/marked/bower.json +23 -0
- data/node_modules/marked/component.json +10 -0
- data/node_modules/marked/index.js +1 -0
- data/node_modules/marked/jasmine.json +11 -0
- data/node_modules/marked/lib/marked 2.js +1604 -0
- data/node_modules/marked/lib/marked.js +1604 -0
- data/node_modules/marked/man/marked.1 +91 -0
- data/node_modules/marked/man/marked.1.txt +96 -0
- data/node_modules/marked/marked.min.js +6 -0
- data/node_modules/marked/package.json +95 -0
- data/node_modules/simplemde/.eslintrc +23 -0
- data/node_modules/simplemde/.npmignore +9 -0
- data/node_modules/simplemde/.travis.yml +18 -0
- data/node_modules/simplemde/CONTRIBUTING 2.md +10 -0
- data/node_modules/simplemde/CONTRIBUTING.md +10 -0
- data/node_modules/simplemde/LICENSE +22 -0
- data/node_modules/simplemde/README.md +331 -0
- data/node_modules/simplemde/bower.json +23 -0
- data/node_modules/simplemde/debug/.simplemde 2.css.icloud +0 -0
- data/node_modules/simplemde/debug/simplemde.css +676 -0
- data/node_modules/simplemde/debug/simplemde.debug.js +17023 -0
- data/node_modules/simplemde/debug/simplemde.js +17019 -0
- data/node_modules/simplemde/dist/simplemde.min.css +7 -0
- data/node_modules/simplemde/dist/simplemde.min.js +15 -0
- data/node_modules/simplemde/gulpfile.js +96 -0
- data/node_modules/simplemde/package.json +73 -0
- data/node_modules/simplemde/src/css/simplemde.css +328 -0
- data/node_modules/simplemde/src/js/codemirror/tablist 2.js +44 -0
- data/node_modules/simplemde/src/js/codemirror/tablist.js +44 -0
- data/node_modules/simplemde/src/js/simplemde.js +2028 -0
- data/node_modules/typo-js/README.md +45 -0
- data/node_modules/typo-js/dictionaries/en_US/.en_US 2.dic.icloud +0 -0
- data/node_modules/typo-js/dictionaries/en_US/README.md +7 -0
- data/node_modules/typo-js/dictionaries/en_US/en_US.aff +201 -0
- data/node_modules/typo-js/dictionaries/en_US/en_US.dic +62120 -0
- data/node_modules/typo-js/package.json +56 -0
- data/node_modules/typo-js/typo.js +931 -0
- data/package-lock.json +40 -0
- data/package.json +7 -0
- metadata +557 -0
@@ -0,0 +1,214 @@
|
|
1
|
+
import { lst } from "./misc.js"
|
2
|
+
|
3
|
+
// BIDI HELPERS
|
4
|
+
|
5
|
+
export function iterateBidiSections(order, from, to, f) {
|
6
|
+
if (!order) return f(from, to, "ltr", 0)
|
7
|
+
let found = false
|
8
|
+
for (let i = 0; i < order.length; ++i) {
|
9
|
+
let part = order[i]
|
10
|
+
if (part.from < to && part.to > from || from == to && part.to == from) {
|
11
|
+
f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i)
|
12
|
+
found = true
|
13
|
+
}
|
14
|
+
}
|
15
|
+
if (!found) f(from, to, "ltr")
|
16
|
+
}
|
17
|
+
|
18
|
+
export let bidiOther = null
|
19
|
+
export function getBidiPartAt(order, ch, sticky) {
|
20
|
+
let found
|
21
|
+
bidiOther = null
|
22
|
+
for (let i = 0; i < order.length; ++i) {
|
23
|
+
let cur = order[i]
|
24
|
+
if (cur.from < ch && cur.to > ch) return i
|
25
|
+
if (cur.to == ch) {
|
26
|
+
if (cur.from != cur.to && sticky == "before") found = i
|
27
|
+
else bidiOther = i
|
28
|
+
}
|
29
|
+
if (cur.from == ch) {
|
30
|
+
if (cur.from != cur.to && sticky != "before") found = i
|
31
|
+
else bidiOther = i
|
32
|
+
}
|
33
|
+
}
|
34
|
+
return found != null ? found : bidiOther
|
35
|
+
}
|
36
|
+
|
37
|
+
// Bidirectional ordering algorithm
|
38
|
+
// See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
|
39
|
+
// that this (partially) implements.
|
40
|
+
|
41
|
+
// One-char codes used for character types:
|
42
|
+
// L (L): Left-to-Right
|
43
|
+
// R (R): Right-to-Left
|
44
|
+
// r (AL): Right-to-Left Arabic
|
45
|
+
// 1 (EN): European Number
|
46
|
+
// + (ES): European Number Separator
|
47
|
+
// % (ET): European Number Terminator
|
48
|
+
// n (AN): Arabic Number
|
49
|
+
// , (CS): Common Number Separator
|
50
|
+
// m (NSM): Non-Spacing Mark
|
51
|
+
// b (BN): Boundary Neutral
|
52
|
+
// s (B): Paragraph Separator
|
53
|
+
// t (S): Segment Separator
|
54
|
+
// w (WS): Whitespace
|
55
|
+
// N (ON): Other Neutrals
|
56
|
+
|
57
|
+
// Returns null if characters are ordered as they appear
|
58
|
+
// (left-to-right), or an array of sections ({from, to, level}
|
59
|
+
// objects) in the order in which they occur visually.
|
60
|
+
let bidiOrdering = (function() {
|
61
|
+
// Character types for codepoints 0 to 0xff
|
62
|
+
let lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"
|
63
|
+
// Character types for codepoints 0x600 to 0x6f9
|
64
|
+
let arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"
|
65
|
+
function charType(code) {
|
66
|
+
if (code <= 0xf7) return lowTypes.charAt(code)
|
67
|
+
else if (0x590 <= code && code <= 0x5f4) return "R"
|
68
|
+
else if (0x600 <= code && code <= 0x6f9) return arabicTypes.charAt(code - 0x600)
|
69
|
+
else if (0x6ee <= code && code <= 0x8ac) return "r"
|
70
|
+
else if (0x2000 <= code && code <= 0x200b) return "w"
|
71
|
+
else if (code == 0x200c) return "b"
|
72
|
+
else return "L"
|
73
|
+
}
|
74
|
+
|
75
|
+
let bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/
|
76
|
+
let isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/
|
77
|
+
|
78
|
+
function BidiSpan(level, from, to) {
|
79
|
+
this.level = level
|
80
|
+
this.from = from; this.to = to
|
81
|
+
}
|
82
|
+
|
83
|
+
return function(str, direction) {
|
84
|
+
let outerType = direction == "ltr" ? "L" : "R"
|
85
|
+
|
86
|
+
if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) return false
|
87
|
+
let len = str.length, types = []
|
88
|
+
for (let i = 0; i < len; ++i)
|
89
|
+
types.push(charType(str.charCodeAt(i)))
|
90
|
+
|
91
|
+
// W1. Examine each non-spacing mark (NSM) in the level run, and
|
92
|
+
// change the type of the NSM to the type of the previous
|
93
|
+
// character. If the NSM is at the start of the level run, it will
|
94
|
+
// get the type of sor.
|
95
|
+
for (let i = 0, prev = outerType; i < len; ++i) {
|
96
|
+
let type = types[i]
|
97
|
+
if (type == "m") types[i] = prev
|
98
|
+
else prev = type
|
99
|
+
}
|
100
|
+
|
101
|
+
// W2. Search backwards from each instance of a European number
|
102
|
+
// until the first strong type (R, L, AL, or sor) is found. If an
|
103
|
+
// AL is found, change the type of the European number to Arabic
|
104
|
+
// number.
|
105
|
+
// W3. Change all ALs to R.
|
106
|
+
for (let i = 0, cur = outerType; i < len; ++i) {
|
107
|
+
let type = types[i]
|
108
|
+
if (type == "1" && cur == "r") types[i] = "n"
|
109
|
+
else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R" }
|
110
|
+
}
|
111
|
+
|
112
|
+
// W4. A single European separator between two European numbers
|
113
|
+
// changes to a European number. A single common separator between
|
114
|
+
// two numbers of the same type changes to that type.
|
115
|
+
for (let i = 1, prev = types[0]; i < len - 1; ++i) {
|
116
|
+
let type = types[i]
|
117
|
+
if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"
|
118
|
+
else if (type == "," && prev == types[i+1] &&
|
119
|
+
(prev == "1" || prev == "n")) types[i] = prev
|
120
|
+
prev = type
|
121
|
+
}
|
122
|
+
|
123
|
+
// W5. A sequence of European terminators adjacent to European
|
124
|
+
// numbers changes to all European numbers.
|
125
|
+
// W6. Otherwise, separators and terminators change to Other
|
126
|
+
// Neutral.
|
127
|
+
for (let i = 0; i < len; ++i) {
|
128
|
+
let type = types[i]
|
129
|
+
if (type == ",") types[i] = "N"
|
130
|
+
else if (type == "%") {
|
131
|
+
let end
|
132
|
+
for (end = i + 1; end < len && types[end] == "%"; ++end) {}
|
133
|
+
let replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"
|
134
|
+
for (let j = i; j < end; ++j) types[j] = replace
|
135
|
+
i = end - 1
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
// W7. Search backwards from each instance of a European number
|
140
|
+
// until the first strong type (R, L, or sor) is found. If an L is
|
141
|
+
// found, then change the type of the European number to L.
|
142
|
+
for (let i = 0, cur = outerType; i < len; ++i) {
|
143
|
+
let type = types[i]
|
144
|
+
if (cur == "L" && type == "1") types[i] = "L"
|
145
|
+
else if (isStrong.test(type)) cur = type
|
146
|
+
}
|
147
|
+
|
148
|
+
// N1. A sequence of neutrals takes the direction of the
|
149
|
+
// surrounding strong text if the text on both sides has the same
|
150
|
+
// direction. European and Arabic numbers act as if they were R in
|
151
|
+
// terms of their influence on neutrals. Start-of-level-run (sor)
|
152
|
+
// and end-of-level-run (eor) are used at level run boundaries.
|
153
|
+
// N2. Any remaining neutrals take the embedding direction.
|
154
|
+
for (let i = 0; i < len; ++i) {
|
155
|
+
if (isNeutral.test(types[i])) {
|
156
|
+
let end
|
157
|
+
for (end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}
|
158
|
+
let before = (i ? types[i-1] : outerType) == "L"
|
159
|
+
let after = (end < len ? types[end] : outerType) == "L"
|
160
|
+
let replace = before == after ? (before ? "L" : "R") : outerType
|
161
|
+
for (let j = i; j < end; ++j) types[j] = replace
|
162
|
+
i = end - 1
|
163
|
+
}
|
164
|
+
}
|
165
|
+
|
166
|
+
// Here we depart from the documented algorithm, in order to avoid
|
167
|
+
// building up an actual levels array. Since there are only three
|
168
|
+
// levels (0, 1, 2) in an implementation that doesn't take
|
169
|
+
// explicit embedding into account, we can build up the order on
|
170
|
+
// the fly, without following the level-based algorithm.
|
171
|
+
let order = [], m
|
172
|
+
for (let i = 0; i < len;) {
|
173
|
+
if (countsAsLeft.test(types[i])) {
|
174
|
+
let start = i
|
175
|
+
for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}
|
176
|
+
order.push(new BidiSpan(0, start, i))
|
177
|
+
} else {
|
178
|
+
let pos = i, at = order.length
|
179
|
+
for (++i; i < len && types[i] != "L"; ++i) {}
|
180
|
+
for (let j = pos; j < i;) {
|
181
|
+
if (countsAsNum.test(types[j])) {
|
182
|
+
if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j))
|
183
|
+
let nstart = j
|
184
|
+
for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
|
185
|
+
order.splice(at, 0, new BidiSpan(2, nstart, j))
|
186
|
+
pos = j
|
187
|
+
} else ++j
|
188
|
+
}
|
189
|
+
if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i))
|
190
|
+
}
|
191
|
+
}
|
192
|
+
if (direction == "ltr") {
|
193
|
+
if (order[0].level == 1 && (m = str.match(/^\s+/))) {
|
194
|
+
order[0].from = m[0].length
|
195
|
+
order.unshift(new BidiSpan(0, 0, m[0].length))
|
196
|
+
}
|
197
|
+
if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
|
198
|
+
lst(order).to -= m[0].length
|
199
|
+
order.push(new BidiSpan(0, len - m[0].length, len))
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
return direction == "rtl" ? order.reverse() : order
|
204
|
+
}
|
205
|
+
})()
|
206
|
+
|
207
|
+
// Get the bidi ordering for the given line (and cache it). Returns
|
208
|
+
// false for lines that are fully left-to-right, and an array of
|
209
|
+
// BidiSpan objects otherwise.
|
210
|
+
export function getOrder(line, direction) {
|
211
|
+
let order = line.order
|
212
|
+
if (order == null) order = line.order = bidiOrdering(line.text, direction)
|
213
|
+
return order
|
214
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// Kludges for bugs and behavior differences that can't be feature
|
2
|
+
// detected are enabled based on userAgent etc sniffing.
|
3
|
+
let userAgent = navigator.userAgent
|
4
|
+
let platform = navigator.platform
|
5
|
+
|
6
|
+
export let gecko = /gecko\/\d/i.test(userAgent)
|
7
|
+
let ie_upto10 = /MSIE \d/.test(userAgent)
|
8
|
+
let ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent)
|
9
|
+
let edge = /Edge\/(\d+)/.exec(userAgent)
|
10
|
+
export let ie = ie_upto10 || ie_11up || edge
|
11
|
+
export let ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1])
|
12
|
+
export let webkit = !edge && /WebKit\//.test(userAgent)
|
13
|
+
let qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent)
|
14
|
+
export let chrome = !edge && /Chrome\//.test(userAgent)
|
15
|
+
export let presto = /Opera\//.test(userAgent)
|
16
|
+
export let safari = /Apple Computer/.test(navigator.vendor)
|
17
|
+
export let mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent)
|
18
|
+
export let phantom = /PhantomJS/.test(userAgent)
|
19
|
+
|
20
|
+
export let ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent)
|
21
|
+
export let android = /Android/.test(userAgent)
|
22
|
+
// This is woefully incomplete. Suggestions for alternative methods welcome.
|
23
|
+
export let mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent)
|
24
|
+
export let mac = ios || /Mac/.test(platform)
|
25
|
+
export let chromeOS = /\bCrOS\b/.test(userAgent)
|
26
|
+
export let windows = /win/i.test(platform)
|
27
|
+
|
28
|
+
let presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/)
|
29
|
+
if (presto_version) presto_version = Number(presto_version[1])
|
30
|
+
if (presto_version && presto_version >= 15) { presto = false; webkit = true }
|
31
|
+
// Some browsers use the wrong event properties to signal cmd/ctrl on OS X
|
32
|
+
export let flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11))
|
33
|
+
export let captureRightClick = gecko || (ie && ie_version >= 9)
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { ie, ios } from "./browser.js"
|
2
|
+
|
3
|
+
export function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") }
|
4
|
+
|
5
|
+
export let rmClass = function(node, cls) {
|
6
|
+
let current = node.className
|
7
|
+
let match = classTest(cls).exec(current)
|
8
|
+
if (match) {
|
9
|
+
let after = current.slice(match.index + match[0].length)
|
10
|
+
node.className = current.slice(0, match.index) + (after ? match[1] + after : "")
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
export function removeChildren(e) {
|
15
|
+
for (let count = e.childNodes.length; count > 0; --count)
|
16
|
+
e.removeChild(e.firstChild)
|
17
|
+
return e
|
18
|
+
}
|
19
|
+
|
20
|
+
export function removeChildrenAndAdd(parent, e) {
|
21
|
+
return removeChildren(parent).appendChild(e)
|
22
|
+
}
|
23
|
+
|
24
|
+
export function elt(tag, content, className, style) {
|
25
|
+
let e = document.createElement(tag)
|
26
|
+
if (className) e.className = className
|
27
|
+
if (style) e.style.cssText = style
|
28
|
+
if (typeof content == "string") e.appendChild(document.createTextNode(content))
|
29
|
+
else if (content) for (let i = 0; i < content.length; ++i) e.appendChild(content[i])
|
30
|
+
return e
|
31
|
+
}
|
32
|
+
// wrapper for elt, which removes the elt from the accessibility tree
|
33
|
+
export function eltP(tag, content, className, style) {
|
34
|
+
let e = elt(tag, content, className, style)
|
35
|
+
e.setAttribute("role", "presentation")
|
36
|
+
return e
|
37
|
+
}
|
38
|
+
|
39
|
+
export let range
|
40
|
+
if (document.createRange) range = function(node, start, end, endNode) {
|
41
|
+
let r = document.createRange()
|
42
|
+
r.setEnd(endNode || node, end)
|
43
|
+
r.setStart(node, start)
|
44
|
+
return r
|
45
|
+
}
|
46
|
+
else range = function(node, start, end) {
|
47
|
+
let r = document.body.createTextRange()
|
48
|
+
try { r.moveToElementText(node.parentNode) }
|
49
|
+
catch(e) { return r }
|
50
|
+
r.collapse(true)
|
51
|
+
r.moveEnd("character", end)
|
52
|
+
r.moveStart("character", start)
|
53
|
+
return r
|
54
|
+
}
|
55
|
+
|
56
|
+
export function contains(parent, child) {
|
57
|
+
if (child.nodeType == 3) // Android browser always returns false when child is a textnode
|
58
|
+
child = child.parentNode
|
59
|
+
if (parent.contains)
|
60
|
+
return parent.contains(child)
|
61
|
+
do {
|
62
|
+
if (child.nodeType == 11) child = child.host
|
63
|
+
if (child == parent) return true
|
64
|
+
} while (child = child.parentNode)
|
65
|
+
}
|
66
|
+
|
67
|
+
export function activeElt() {
|
68
|
+
// IE and Edge may throw an "Unspecified Error" when accessing document.activeElement.
|
69
|
+
// IE < 10 will throw when accessed while the page is loading or in an iframe.
|
70
|
+
// IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.
|
71
|
+
let activeElement
|
72
|
+
try {
|
73
|
+
activeElement = document.activeElement
|
74
|
+
} catch(e) {
|
75
|
+
activeElement = document.body || null
|
76
|
+
}
|
77
|
+
while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)
|
78
|
+
activeElement = activeElement.shadowRoot.activeElement
|
79
|
+
return activeElement
|
80
|
+
}
|
81
|
+
|
82
|
+
export function addClass(node, cls) {
|
83
|
+
let current = node.className
|
84
|
+
if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls
|
85
|
+
}
|
86
|
+
export function joinClasses(a, b) {
|
87
|
+
let as = a.split(" ")
|
88
|
+
for (let i = 0; i < as.length; i++)
|
89
|
+
if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i]
|
90
|
+
return b
|
91
|
+
}
|
92
|
+
|
93
|
+
export let selectInput = function(node) { node.select() }
|
94
|
+
if (ios) // Mobile Safari apparently has a bug where select() is broken.
|
95
|
+
selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length }
|
96
|
+
else if (ie) // Suppress mysterious IE10 errors
|
97
|
+
selectInput = function(node) { try { node.select() } catch(_e) {} }
|
@@ -0,0 +1,103 @@
|
|
1
|
+
import { mac } from "./browser.js"
|
2
|
+
import { indexOf } from "./misc.js"
|
3
|
+
|
4
|
+
// EVENT HANDLING
|
5
|
+
|
6
|
+
// Lightweight event framework. on/off also work on DOM nodes,
|
7
|
+
// registering native DOM handlers.
|
8
|
+
|
9
|
+
const noHandlers = []
|
10
|
+
|
11
|
+
export let on = function(emitter, type, f) {
|
12
|
+
if (emitter.addEventListener) {
|
13
|
+
emitter.addEventListener(type, f, false)
|
14
|
+
} else if (emitter.attachEvent) {
|
15
|
+
emitter.attachEvent("on" + type, f)
|
16
|
+
} else {
|
17
|
+
let map = emitter._handlers || (emitter._handlers = {})
|
18
|
+
map[type] = (map[type] || noHandlers).concat(f)
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
export function getHandlers(emitter, type) {
|
23
|
+
return emitter._handlers && emitter._handlers[type] || noHandlers
|
24
|
+
}
|
25
|
+
|
26
|
+
export function off(emitter, type, f) {
|
27
|
+
if (emitter.removeEventListener) {
|
28
|
+
emitter.removeEventListener(type, f, false)
|
29
|
+
} else if (emitter.detachEvent) {
|
30
|
+
emitter.detachEvent("on" + type, f)
|
31
|
+
} else {
|
32
|
+
let map = emitter._handlers, arr = map && map[type]
|
33
|
+
if (arr) {
|
34
|
+
let index = indexOf(arr, f)
|
35
|
+
if (index > -1)
|
36
|
+
map[type] = arr.slice(0, index).concat(arr.slice(index + 1))
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
export function signal(emitter, type /*, values...*/) {
|
42
|
+
let handlers = getHandlers(emitter, type)
|
43
|
+
if (!handlers.length) return
|
44
|
+
let args = Array.prototype.slice.call(arguments, 2)
|
45
|
+
for (let i = 0; i < handlers.length; ++i) handlers[i].apply(null, args)
|
46
|
+
}
|
47
|
+
|
48
|
+
// The DOM events that CodeMirror handles can be overridden by
|
49
|
+
// registering a (non-DOM) handler on the editor for the event name,
|
50
|
+
// and preventDefault-ing the event in that handler.
|
51
|
+
export function signalDOMEvent(cm, e, override) {
|
52
|
+
if (typeof e == "string")
|
53
|
+
e = {type: e, preventDefault: function() { this.defaultPrevented = true }}
|
54
|
+
signal(cm, override || e.type, cm, e)
|
55
|
+
return e_defaultPrevented(e) || e.codemirrorIgnore
|
56
|
+
}
|
57
|
+
|
58
|
+
export function signalCursorActivity(cm) {
|
59
|
+
let arr = cm._handlers && cm._handlers.cursorActivity
|
60
|
+
if (!arr) return
|
61
|
+
let set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = [])
|
62
|
+
for (let i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)
|
63
|
+
set.push(arr[i])
|
64
|
+
}
|
65
|
+
|
66
|
+
export function hasHandler(emitter, type) {
|
67
|
+
return getHandlers(emitter, type).length > 0
|
68
|
+
}
|
69
|
+
|
70
|
+
// Add on and off methods to a constructor's prototype, to make
|
71
|
+
// registering events on such objects more convenient.
|
72
|
+
export function eventMixin(ctor) {
|
73
|
+
ctor.prototype.on = function(type, f) {on(this, type, f)}
|
74
|
+
ctor.prototype.off = function(type, f) {off(this, type, f)}
|
75
|
+
}
|
76
|
+
|
77
|
+
// Due to the fact that we still support jurassic IE versions, some
|
78
|
+
// compatibility wrappers are needed.
|
79
|
+
|
80
|
+
export function e_preventDefault(e) {
|
81
|
+
if (e.preventDefault) e.preventDefault()
|
82
|
+
else e.returnValue = false
|
83
|
+
}
|
84
|
+
export function e_stopPropagation(e) {
|
85
|
+
if (e.stopPropagation) e.stopPropagation()
|
86
|
+
else e.cancelBubble = true
|
87
|
+
}
|
88
|
+
export function e_defaultPrevented(e) {
|
89
|
+
return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false
|
90
|
+
}
|
91
|
+
export function e_stop(e) {e_preventDefault(e); e_stopPropagation(e)}
|
92
|
+
|
93
|
+
export function e_target(e) {return e.target || e.srcElement}
|
94
|
+
export function e_button(e) {
|
95
|
+
let b = e.which
|
96
|
+
if (b == null) {
|
97
|
+
if (e.button & 1) b = 1
|
98
|
+
else if (e.button & 2) b = 3
|
99
|
+
else if (e.button & 4) b = 2
|
100
|
+
}
|
101
|
+
if (mac && e.ctrlKey && b == 1) b = 3
|
102
|
+
return b
|
103
|
+
}
|