├── .gitignore
├── .vscode
├── launch.json
└── tasks.json
├── LICENSE
├── README.md
├── app.js
├── bower.json
├── doc
├── howtouse.md
├── image
│ └── HowToUse
│ │ ├── FileOper.jpg
│ │ ├── ResAfterOpenTestShowAll.jpg
│ │ └── ResOpenTest.jpg
├── init.md
├── redoundo.md
└── uidetail.md
├── ext
├── ExtArmature.js
├── ExtButton.js
├── ExtCheckBox.js
├── ExtImage.js
├── ExtInput.js
├── ExtListView.js
├── ExtManager.js
├── ExtPageView.js
├── ExtRichText.js
├── ExtScale9.js
├── ExtScene.js
├── ExtScrollView.js
├── ExtSlider.js
├── ExtText.js
├── ExtTextAtlas.js
├── ExtWidget.js
├── NodeRichText.js
└── init.html
├── html
├── about.html
├── grid.html
└── grid.js
├── icon.png
├── index.html
├── js
├── MenuUtil.js
├── Themes
│ ├── bigRed.css
│ ├── bigRed.min.css
│ ├── default.css
│ ├── default.min.css
│ ├── ideDark.css
│ ├── ideDark.min.css
│ ├── shadow.css
│ └── shadow.min.css
├── UIUtil.js
├── cocosUtil.js
├── fabric.js
├── jsgrid-theme.min.css
├── jsgrid.min.css
├── jsgrid.min.js
├── keycode.js
├── layout.css
├── renderUndo.js
├── spectrum.css
├── spectrum.js
├── util.js
├── wcDocker.css
├── wcDocker.js
├── wcDocker.min.css
└── wcDocker.min.js
├── jsconfig.json
├── layout.js
├── layout.json
├── main
├── console.js
├── ipc.js
└── protocol.js
├── package-zip
└── helloword.zip
├── package.json
├── packages
├── console
│ └── panel
│ │ ├── console.html
│ │ ├── console.js
│ │ ├── item.css
│ │ ├── item.html
│ │ └── item.js
├── controlpanel
│ └── panel
│ │ ├── controlpanel.html
│ │ ├── controlpanel.js
│ │ ├── item.css
│ │ ├── item.html
│ │ └── item.js
├── nodeorder
│ └── panel
│ │ ├── node-tree-item.css
│ │ ├── node-tree-item.html
│ │ ├── nodeorder.html
│ │ ├── nodeorder.js
│ │ ├── statusbox.css
│ │ ├── statusbox.html
│ │ └── statusbox.js
├── proppanel
│ └── panel
│ │ ├── proppanel.html
│ │ └── proppanel.js
├── renderpanel
│ └── panel
│ │ ├── renderpanel.html
│ │ ├── renderpanel.js
│ │ ├── renderscene.html
│ │ └── renderscene.js
├── resorder
│ └── panel
│ │ ├── resorder.html
│ │ └── resorder.js
└── td-tree-view
│ └── widget
│ ├── td-tree-item.css
│ ├── td-tree-item.html
│ ├── td-tree-view.css
│ ├── td-tree-view.html
│ └── td-tree-view.js
├── project-test
├── HelloWorld.png
├── ProgramConfig.json
├── js
│ ├── ExtUISub1.js
│ └── init.html
├── lang
│ └── lang.txt
├── res
│ ├── 1.png
│ ├── UIFolder 0
│ │ └── 78144e18-ff7b-437e-a3fe-5495685dfc6b.json
│ ├── default
│ │ ├── AltasNum.png
│ │ ├── ButtonDisable.png
│ │ ├── ButtonNormal.png
│ │ ├── ButtonSelect.png
│ │ ├── CheckBoxDisable.png
│ │ ├── CheckBoxNodeDisable.png
│ │ ├── CheckBoxNodeNormal.png
│ │ ├── CheckBoxNormal.png
│ │ ├── CheckBoxSelect.png
│ │ ├── Scale9.png
│ │ ├── SliderBack.png
│ │ ├── SliderBar.png
│ │ ├── SliderNodeDisable.png
│ │ ├── SliderNodeNormal.png
│ │ ├── SliderNodeSelect.png
│ │ ├── Sprite.png
│ │ └── shurukuang.png
│ ├── fla
│ │ └── r10001.xml
│ ├── grid.png
│ └── images
│ │ └── role
│ │ └── 002
│ │ ├── a01.png
│ │ ├── a02.png
│ │ ├── a03.png
│ │ ├── a04.png
│ │ ├── a05.png
│ │ ├── a06.png
│ │ ├── a07.png
│ │ ├── a08.png
│ │ ├── a09.png
│ │ ├── a10.png
│ │ ├── a11.png
│ │ ├── a12.png
│ │ ├── a13.png
│ │ ├── a14.png
│ │ ├── a15.png
│ │ ├── a16.png
│ │ ├── a17.png
│ │ ├── a18.png
│ │ ├── a19.png
│ │ ├── a20.png
│ │ ├── a21.png
│ │ ├── a22.png
│ │ ├── a23.png
│ │ ├── a24.png
│ │ └── a25.png
├── ui
│ ├── fdsafds.ui
│ ├── sub1.ui
│ └── test.ui
└── uires
│ ├── button.png
│ ├── huodongdi.png
│ ├── loginBg.jpg
│ ├── lv_num.png
│ └── xinxikuang.png
├── prop
├── data
│ └── nodedata.js
├── index.html
├── prop-accordion.html
├── ve-widget
│ ├── button-widget
│ │ ├── button.css
│ │ ├── button.html
│ │ └── button.js
│ ├── buttons-widget
│ │ ├── buttons-item
│ │ │ ├── buttons-item.css
│ │ │ ├── buttons-item.html
│ │ │ └── buttons-item.js
│ │ ├── buttons.css
│ │ ├── buttons.html
│ │ └── buttons.js
│ ├── checkbox-widget
│ │ ├── checkbox.css
│ │ ├── checkbox.html
│ │ └── checkbox.js
│ ├── input-widget
│ │ ├── input.css
│ │ ├── input.html
│ │ └── input.js
│ ├── label-widget
│ │ ├── label.css
│ │ ├── label.html
│ │ └── label.js
│ ├── select-widget
│ │ ├── menu
│ │ │ ├── menu.css
│ │ │ ├── menu.html
│ │ │ └── menu.js
│ │ ├── option
│ │ │ ├── option.css
│ │ │ ├── option.html
│ │ │ └── option.js
│ │ ├── select.css
│ │ ├── select.html
│ │ └── select.js
│ ├── slider-widget
│ │ ├── slider.css
│ │ ├── slider.html
│ │ └── slider.js
│ ├── textarea-widget
│ │ ├── textarea.css
│ │ ├── textarea.html
│ │ └── textarea.js
│ └── unit-input-widget
│ │ ├── unit-input.css
│ │ ├── unit-input.html
│ │ └── unit-input.js
└── ve
│ ├── ve-asset-editor.html
│ ├── ve-asset.html
│ ├── ve-color.html
│ ├── ve-field
│ ├── ve-field.html
│ └── ve-field.js
│ ├── ve-preview
│ ├── ve-image-editor.html
│ ├── ve-image-editor.js
│ ├── ve-image-preview.html
│ └── ve-image-preview.js
│ ├── ve-prop
│ ├── ve-prop.css
│ ├── ve-prop.html
│ └── ve-prop.js
│ ├── ve-relative.html
│ ├── ve-size.html
│ └── ve-vec2.html
├── render
├── console.js
└── ipc.js
├── res
├── align-bottom.png
├── align-h-center.png
├── align-left.png
├── align-right.png
├── align-top.png
├── align-v-center.png
├── alipay.png
├── arrow_down.png
├── arrow_up.png
├── control
│ ├── Armature.png
│ ├── Atlas.png
│ ├── Button.png
│ ├── CheckBox.png
│ ├── Input.png
│ ├── Label.png
│ ├── Layout.png
│ ├── Node.png
│ ├── Rich.png
│ ├── Scale9.png
│ ├── SliderBar.png
│ ├── Sprite.png
│ ├── listview.png
│ ├── pageview.png
│ └── scrollview.png
├── default
│ ├── AltasNum.png
│ ├── ButtonDisable.png
│ ├── ButtonNormal.png
│ ├── ButtonSelect.png
│ ├── CheckBoxDisable.png
│ ├── CheckBoxNodeDisable.png
│ ├── CheckBoxNodeNormal.png
│ ├── CheckBoxNormal.png
│ ├── CheckBoxSelect.png
│ ├── Scale9.png
│ ├── SliderBack.png
│ ├── SliderBar.png
│ ├── SliderNodeDisable.png
│ ├── SliderNodeNormal.png
│ ├── SliderNodeSelect.png
│ ├── Sprite.png
│ └── shurukuang.png
├── grid.png
├── grid1.png
├── grid2.png
└── 居中.png
├── screenshot
├── 2dx-screen.jpg
└── screenprint.jpg
└── third
├── ace
└── src
│ ├── ace.js
│ ├── ext-beautify.js
│ ├── ext-chromevox.js
│ ├── ext-elastic_tabstops_lite.js
│ ├── ext-emmet.js
│ ├── ext-error_marker.js
│ ├── ext-keybinding_menu.js
│ ├── ext-language_tools.js
│ ├── ext-linking.js
│ ├── ext-modelist.js
│ ├── ext-old_ie.js
│ ├── ext-searchbox.js
│ ├── ext-settings_menu.js
│ ├── ext-spellcheck.js
│ ├── ext-split.js
│ ├── ext-static_highlight.js
│ ├── ext-statusbar.js
│ ├── ext-textarea.js
│ ├── ext-themelist.js
│ ├── ext-whitespace.js
│ ├── keybinding-emacs.js
│ ├── keybinding-vim.js
│ ├── mode-abap.js
│ ├── mode-abc.js
│ ├── mode-actionscript.js
│ ├── mode-ada.js
│ ├── mode-apache_conf.js
│ ├── mode-applescript.js
│ ├── mode-asciidoc.js
│ ├── mode-assembly_x86.js
│ ├── mode-autohotkey.js
│ ├── mode-batchfile.js
│ ├── mode-c9search.js
│ ├── mode-c_cpp.js
│ ├── mode-cirru.js
│ ├── mode-clojure.js
│ ├── mode-cobol.js
│ ├── mode-coffee.js
│ ├── mode-coldfusion.js
│ ├── mode-csharp.js
│ ├── mode-css.js
│ ├── mode-curly.js
│ ├── mode-d.js
│ ├── mode-dart.js
│ ├── mode-diff.js
│ ├── mode-django.js
│ ├── mode-dockerfile.js
│ ├── mode-dot.js
│ ├── mode-drools.js
│ ├── mode-eiffel.js
│ ├── mode-ejs.js
│ ├── mode-elixir.js
│ ├── mode-elm.js
│ ├── mode-erlang.js
│ ├── mode-forth.js
│ ├── mode-fortran.js
│ ├── mode-ftl.js
│ ├── mode-gcode.js
│ ├── mode-gherkin.js
│ ├── mode-gitignore.js
│ ├── mode-glsl.js
│ ├── mode-gobstones.js
│ ├── mode-golang.js
│ ├── mode-groovy.js
│ ├── mode-haml.js
│ ├── mode-handlebars.js
│ ├── mode-haskell.js
│ ├── mode-haskell_cabal.js
│ ├── mode-haxe.js
│ ├── mode-html.js
│ ├── mode-html_elixir.js
│ ├── mode-html_ruby.js
│ ├── mode-ini.js
│ ├── mode-io.js
│ ├── mode-jack.js
│ ├── mode-jade.js
│ ├── mode-java.js
│ ├── mode-javascript.js
│ ├── mode-json.js
│ ├── mode-jsoniq.js
│ ├── mode-jsp.js
│ ├── mode-jsx.js
│ ├── mode-julia.js
│ ├── mode-kotlin.js
│ ├── mode-latex.js
│ ├── mode-lean.js
│ ├── mode-less.js
│ ├── mode-liquid.js
│ ├── mode-lisp.js
│ ├── mode-live_script.js
│ ├── mode-livescript.js
│ ├── mode-logiql.js
│ ├── mode-lsl.js
│ ├── mode-lua.js
│ ├── mode-luapage.js
│ ├── mode-lucene.js
│ ├── mode-makefile.js
│ ├── mode-markdown.js
│ ├── mode-mask.js
│ ├── mode-matlab.js
│ ├── mode-maze.js
│ ├── mode-mel.js
│ ├── mode-mips_assembler.js
│ ├── mode-mipsassembler.js
│ ├── mode-mushcode.js
│ ├── mode-mysql.js
│ ├── mode-nix.js
│ ├── mode-nsis.js
│ ├── mode-objectivec.js
│ ├── mode-ocaml.js
│ ├── mode-pascal.js
│ ├── mode-perl.js
│ ├── mode-pgsql.js
│ ├── mode-php.js
│ ├── mode-plain_text.js
│ ├── mode-powershell.js
│ ├── mode-praat.js
│ ├── mode-prolog.js
│ ├── mode-properties.js
│ ├── mode-protobuf.js
│ ├── mode-python.js
│ ├── mode-r.js
│ ├── mode-razor.js
│ ├── mode-rdoc.js
│ ├── mode-rhtml.js
│ ├── mode-rst.js
│ ├── mode-ruby.js
│ ├── mode-rust.js
│ ├── mode-sass.js
│ ├── mode-scad.js
│ ├── mode-scala.js
│ ├── mode-scheme.js
│ ├── mode-scss.js
│ ├── mode-sh.js
│ ├── mode-sjs.js
│ ├── mode-smarty.js
│ ├── mode-snippets.js
│ ├── mode-soy_template.js
│ ├── mode-space.js
│ ├── mode-sql.js
│ ├── mode-sqlserver.js
│ ├── mode-stylus.js
│ ├── mode-svg.js
│ ├── mode-swift.js
│ ├── mode-swig.js
│ ├── mode-tcl.js
│ ├── mode-tex.js
│ ├── mode-text.js
│ ├── mode-textile.js
│ ├── mode-toml.js
│ ├── mode-tsx.js
│ ├── mode-twig.js
│ ├── mode-typescript.js
│ ├── mode-vala.js
│ ├── mode-vbscript.js
│ ├── mode-velocity.js
│ ├── mode-verilog.js
│ ├── mode-vhdl.js
│ ├── mode-wollok.js
│ ├── mode-xml.js
│ ├── mode-xquery.js
│ ├── mode-yaml.js
│ ├── snippets
│ ├── abap.js
│ ├── abc.js
│ ├── actionscript.js
│ ├── ada.js
│ ├── apache_conf.js
│ ├── applescript.js
│ ├── asciidoc.js
│ ├── assembly_x86.js
│ ├── autohotkey.js
│ ├── batchfile.js
│ ├── c9search.js
│ ├── c_cpp.js
│ ├── cirru.js
│ ├── clojure.js
│ ├── cobol.js
│ ├── coffee.js
│ ├── coldfusion.js
│ ├── csharp.js
│ ├── css.js
│ ├── curly.js
│ ├── d.js
│ ├── dart.js
│ ├── diff.js
│ ├── django.js
│ ├── dockerfile.js
│ ├── dot.js
│ ├── drools.js
│ ├── eiffel.js
│ ├── ejs.js
│ ├── elixir.js
│ ├── elm.js
│ ├── erlang.js
│ ├── forth.js
│ ├── fortran.js
│ ├── ftl.js
│ ├── gcode.js
│ ├── gherkin.js
│ ├── gitignore.js
│ ├── glsl.js
│ ├── gobstones.js
│ ├── golang.js
│ ├── groovy.js
│ ├── haml.js
│ ├── handlebars.js
│ ├── haskell.js
│ ├── haskell_cabal.js
│ ├── haxe.js
│ ├── html.js
│ ├── html_elixir.js
│ ├── html_ruby.js
│ ├── ini.js
│ ├── io.js
│ ├── jack.js
│ ├── jade.js
│ ├── java.js
│ ├── javascript.js
│ ├── json.js
│ ├── jsoniq.js
│ ├── jsp.js
│ ├── jsx.js
│ ├── julia.js
│ ├── kotlin.js
│ ├── latex.js
│ ├── lean.js
│ ├── less.js
│ ├── liquid.js
│ ├── lisp.js
│ ├── live_script.js
│ ├── livescript.js
│ ├── logiql.js
│ ├── lsl.js
│ ├── lua.js
│ ├── luapage.js
│ ├── lucene.js
│ ├── makefile.js
│ ├── markdown.js
│ ├── mask.js
│ ├── matlab.js
│ ├── maze.js
│ ├── mel.js
│ ├── mips_assembler.js
│ ├── mipsassembler.js
│ ├── mushcode.js
│ ├── mysql.js
│ ├── nix.js
│ ├── nsis.js
│ ├── objectivec.js
│ ├── ocaml.js
│ ├── pascal.js
│ ├── perl.js
│ ├── pgsql.js
│ ├── php.js
│ ├── plain_text.js
│ ├── powershell.js
│ ├── praat.js
│ ├── prolog.js
│ ├── properties.js
│ ├── protobuf.js
│ ├── python.js
│ ├── r.js
│ ├── razor.js
│ ├── rdoc.js
│ ├── rhtml.js
│ ├── rst.js
│ ├── ruby.js
│ ├── rust.js
│ ├── sass.js
│ ├── scad.js
│ ├── scala.js
│ ├── scheme.js
│ ├── scss.js
│ ├── sh.js
│ ├── sjs.js
│ ├── smarty.js
│ ├── snippets.js
│ ├── soy_template.js
│ ├── space.js
│ ├── sql.js
│ ├── sqlserver.js
│ ├── stylus.js
│ ├── svg.js
│ ├── swift.js
│ ├── swig.js
│ ├── tcl.js
│ ├── tex.js
│ ├── text.js
│ ├── textile.js
│ ├── toml.js
│ ├── tsx.js
│ ├── twig.js
│ ├── typescript.js
│ ├── vala.js
│ ├── vbscript.js
│ ├── velocity.js
│ ├── verilog.js
│ ├── vhdl.js
│ ├── wollok.js
│ ├── xml.js
│ ├── xquery.js
│ └── yaml.js
│ ├── theme-ambiance.js
│ ├── theme-chaos.js
│ ├── theme-chrome.js
│ ├── theme-clouds.js
│ ├── theme-clouds_midnight.js
│ ├── theme-cobalt.js
│ ├── theme-crimson_editor.js
│ ├── theme-dawn.js
│ ├── theme-dreamweaver.js
│ ├── theme-eclipse.js
│ ├── theme-github.js
│ ├── theme-idle_fingers.js
│ ├── theme-iplastic.js
│ ├── theme-katzenmilch.js
│ ├── theme-kr_theme.js
│ ├── theme-kuroir.js
│ ├── theme-merbivore.js
│ ├── theme-merbivore_soft.js
│ ├── theme-mono_industrial.js
│ ├── theme-monokai.js
│ ├── theme-pastel_on_dark.js
│ ├── theme-solarized_dark.js
│ ├── theme-solarized_light.js
│ ├── theme-sqlserver.js
│ ├── theme-terminal.js
│ ├── theme-textmate.js
│ ├── theme-tomorrow.js
│ ├── theme-tomorrow_night.js
│ ├── theme-tomorrow_night_blue.js
│ ├── theme-tomorrow_night_bright.js
│ ├── theme-tomorrow_night_eighties.js
│ ├── theme-twilight.js
│ ├── theme-vibrant_ink.js
│ ├── theme-xcode.js
│ ├── worker-coffee.js
│ ├── worker-css.js
│ ├── worker-html.js
│ ├── worker-javascript.js
│ ├── worker-json.js
│ ├── worker-lua.js
│ ├── worker-php.js
│ ├── worker-xml.js
│ └── worker-xquery.js
└── html5
└── cocos2d-js.js
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /bower_components
3 | /npm-debug.log
4 | /ProgramConfig.json
5 | /CahceConfig.json
6 | /save.dat
7 | /Start.bat
8 | /debug.log
9 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "启动",
6 | "type": "node",
7 | "request": "launch",
8 | "program": "${workspaceRoot}/app.js",
9 | "stopOnEntry": false,
10 | "args": [],
11 | "cwd": "${workspaceRoot}",
12 | "preLaunchTask": null,
13 | "runtimeExecutable": "${workspaceRoot}/node_modules/electron-prebuilt/dist/electron.exe",
14 | "runtimeArgs": [
15 | ".",
16 | "--nolazy"
17 | ],
18 | "env": {
19 | "NODE_ENV": "development"
20 | },
21 | "externalConsole": false,
22 | "sourceMaps": false,
23 | "outDir": null
24 | },
25 | {
26 | "name": "附加",
27 | "type": "node",
28 | "request": "attach",
29 | "port": 5858,
30 | "address": "localhost",
31 | "restart": false,
32 | "sourceMaps": false,
33 | "outDir": null,
34 | "localRoot": "${workspaceRoot}",
35 | "remoteRoot": null
36 | }
37 | ]
38 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=733558
3 | // for the documentation about the tasks.json format
4 | "version": "0.1.0",
5 | "command": "electron",
6 | "isShellCommand": true,
7 | "showOutput": "always",
8 | "suppressTaskName": true,
9 | "tasks": [
10 | {
11 | "taskName": "install",
12 | "args": ["install"]
13 | },
14 | {
15 | "taskName": "update",
16 | "args": ["update"]
17 | },
18 | {
19 | "taskName": "test",
20 | "args": ["run", "test"]
21 | },
22 | {
23 | "taskName": "build",
24 | "args": ["."]
25 | },
26 | {
27 | "taskName": "debug",
28 | "args": [".", "--debug-brk=5858"]
29 | }
30 | ]
31 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | © 2015-2016 tickbh (tickdream125@hotmail.com)
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | #VisualUIEditor
2 |
3 | An UIEditor for Game, base on electron.
4 |
5 | 
6 |
7 | #install
8 | > install node.js first
9 |
10 | > npm install -g electron-prebuilt@1.3.4
11 |
12 | > npm install -g bower
13 |
14 | > bower install
15 |
16 | > npm install
17 |
18 | #run
19 | open shell in project root and run
20 | > electron .
21 |
22 | #start with project
23 | 菜单->文件->打开项目(选择目录底下的project-test)即可进行测试
24 |
25 | #基于项目
26 | 基本electron跨平台,wcDocker的dock组件,及cocos-html5的渲染层
27 |
28 |
29 | #已实现的功能
30 | ------------------------
31 | * 控件拖拽使用
32 | * 控件的快速移动,缩放,属性更改
33 | * 图片的快速预览
34 | * 坐标点,快速的定位当前鼠标对应的坐标
35 | * 画布大小的快速调整,画布快速的缩放
36 | * 布局的源码查看更改,更适合程序员使用
37 | * 强大的撤销反撤销功能,让您更无需害怕误操作
38 | * 资源布局的嵌套使用
39 | * 页签功能,让您可以同时打开多个UI文件
40 | * 多语言方案支持,助力您的全球游戏
41 |
42 | #布局相关
43 | * 节点布局,管理游戏布局的一些节点相关的面板,可支持快速复制及上下移动
44 | * 资源布局,显示您项目中的资源文件,让您可以快速的创建新的UI文件相关
45 | * 控制布局,这里显示您常用的一些节点,让您可以快速的拖动节点进行创建
46 | * 控制台布局,这里显示一些编辑器的信息,让您知道编辑器当前的状态
47 | * 属性布局,您可以选中某个节点,这里将显示节点的具体属性,您可以通过它快速的修改节点属性
48 | * 渲染布局,这里为编辑器的核心布局,这里每个页签下对应着一个Scene,这里将显示您的整体展示图,这也是您在游戏中将显示的效果图,当然做为程序猿的我们也可以快速的通常源码模式快修的修改我们的布局,然后再切换成设计模式预览效果
49 |
50 | #文档信息
51 | [如何使用](./doc/howtouse.md "如何使用")
52 |
53 | [UI文件详解](./doc/uidetail.md "UI文件详解")
54 |
55 | [撤消反撤消](./doc/redoundo.md "撤消反撤消实现细节")
56 |
57 | #Runtime
58 | 支持cocos2dx的应用(当前支持Lua及CPP)
59 | [cocos2dx runtime](https://github.com/tickbh/VisualUIEditor_2dx_runtime "cocos2dx runtime")
60 |
61 | #其它信息
62 | **VisualUIEditor开发QQ群欢迎您的加入: 453224679**
63 |
64 | # Copyright & License
65 |
66 | © 2015-2016 tickbh (tickdream125@hotmail.com) - Released under the [MIT license](LICENSE).
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "visual ui editor",
3 | "private": true,
4 | "ignore": [
5 | "**/.*",
6 | "3rd",
7 | "bower_components",
8 | "ext",
9 | "node_modules",
10 | "test"
11 | ],
12 | "dependencies": {
13 | "fontawesome": "4.4.0",
14 | "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#^1.0.0",
15 | "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0",
16 | "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0",
17 | "iron-icon": "PolymerElements/iron-icon#^1.0.0",
18 | "iron-icons": "PolymerElements/iron-icons#^1.0.0",
19 | "iron-input": "PolymerElements/iron-input#^1.0.0",
20 | "iron-selector": "PolymerElements/iron-selector#^1.0.0",
21 | "pace": "1.0.2",
22 | "polymer": "Polymer/polymer#^1.5.0"
23 | },
24 | "devDependencies": {}
25 | }
26 |
--------------------------------------------------------------------------------
/doc/howtouse.md:
--------------------------------------------------------------------------------
1 | #VisualUIEditor项目讲解之如何使用初始篇
2 | ------------------------
3 | #如何得到它
4 | 1、 二进制方式
5 | > [下载地址Github](https://github.com/tickbh/VisualUIEditor/releases "Github release")直接下载对应的平台进行下,解压,打开对应的程序
6 |
7 | 2、 源码下载
8 | > [Github连接](https://github.com/tickbh/VisualUIEditor "Github Code")进行克隆编译运行,可参考README.md进行编译运行
9 |
10 | #如何使用它
11 | 1、 项目准备
12 |
13 | > 非源码方式: 可到这里进行下载[测试项目的地址目录](https://github.com/tickbh/VisualUIEditor/tree/master/project-test "Github Test Project Folder")
14 |
15 | > 源码方式: 测试项目的地址为根目录底下的**project-test**目录
16 |
17 | 2、 初次打开,这时没有默认的,这时候需要我们手动打开项目
18 |
19 | > 操作菜单 **文件**->**打开项目**,这时候将弹出一个选择目录的窗口,选择刚刚的项目目录,进行打开,如图所示
20 | 
21 |
22 | > 打开完成后,我们可以资源操作栏里面,选择**UI**->**test.ui**,这时候我们就可以打开我们的UI布局,操作示意图如下:
23 | 
24 |
25 | > UI界面的预览图,如下:
26 | 
27 |
28 | 3、 此时,我们就可以开始使用UI编辑器的功能,来辅助我们的游戏进行开发,[已实现的功能](https://github.com/tickbh/VisualUIEditor/wiki "已实现的功能")
29 |
30 | #ui文件说明
31 | 此编辑器的ui文件存储以Json格式存储,编辑器和代码均以Json解析的方式还原出UI效果,保存UI的编辑效果一致。
32 |
33 | 此编辑器的Runtime,[地址](https://github.com/tickbh/VisualUIEditor_2dx_runtime "Runtime地址")
34 |
35 | 此编辑器2dx-lua的Demo,[地址](https://github.com/tickbh/VisualUIEditor_2dx_demo_lua "Demo地址")
36 |
37 | 此编辑器2dx-cpp的Demo,[地址](https://github.com/tickbh/VisualUIEditor_2dx_demo "Demo地址")
38 |
39 | #导出说明
40 | 由于编辑器所编辑的UI文件,没有冗余信息,暂时无需导出功能的选项,即源文件为目标文件
41 |
42 |
43 | #其它信息
44 | **VisualUIEditor开发QQ群欢迎您的加入: 453224679**
45 |
--------------------------------------------------------------------------------
/doc/image/HowToUse/FileOper.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/doc/image/HowToUse/FileOper.jpg
--------------------------------------------------------------------------------
/doc/image/HowToUse/ResAfterOpenTestShowAll.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/doc/image/HowToUse/ResAfterOpenTestShowAll.jpg
--------------------------------------------------------------------------------
/doc/image/HowToUse/ResOpenTest.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/doc/image/HowToUse/ResOpenTest.jpg
--------------------------------------------------------------------------------
/doc/init.md:
--------------------------------------------------------------------------------
1 | #VisualUIEditor项目讲解之项目介绍
2 | ------------------------
3 | VisualUIEditor项目是一款开源游戏UI编辑器,它基于electron跨平台,wcDocker的dock组件,及cocos-html5的渲染层
4 |
5 | #跨平台
6 | ------------------------
7 | 支持Windows,Linux,MacOs等相关平台
8 |
9 | #已实现的功能
10 | ------------------------
11 | * 控件拖拽使用
12 | * 控件的快速移动,缩放,属性更改
13 | * 图片的快速预览
14 | * 坐标点,快速的定位当前鼠标对应的坐标
15 | * 画布大小的快速调整,画布快速的缩放
16 | * 布局的源码查看更改,更适合程序员使用
17 | * 强大的撤销反撤销功能,让您更无需害怕误操作
18 | * 资源布局的嵌套使用
19 | * 页签功能,让您可以同时打开多个UI文件
20 | * 多语言方案支持,助力您的全球游戏
21 |
22 | #布局相关
23 | * 节点布局,管理游戏布局的一些节点相关的面板,可支持快速复制及上下移动
24 | * 资源布局,显示您项目中的资源文件,让您可以快速的创建新的UI文件相关
25 | * 控制布局,这里显示您常用的一些节点,让您可以快速的拖动节点进行创建
26 | * 控制台布局,这里显示一些编辑器的信息,让您知道编辑器当前的状态
27 | * 属性布局,您可以选中某个节点,这里将显示节点的具体属性,您可以通过它快速的修改节点属性
28 | * 渲染布局,这里为编辑器的核心布局,这里每个页签下对应着一个Scene,这里将显示您的整体展示图,这也是您在游戏中将显示的效果图,当然做为程序猿的我们也可以快速的通常源码模式快修的修改我们的布局,然后再切换成设计模式预览效果
29 |
30 | #Runtime相关
31 | ----------------------
32 | 支持cocos2dx的应用(当前支持Lua及CPP)
33 | [cocos2dx runtime](https://github.com/tickbh/VisualUIEditor_2dx_runtime "cocos2dx runtime")
34 |
35 | #项目地址
36 | ----------------------
37 | [GitHub](https://github.com/tickbh/VisualUIEditor "VisualUIEditor")
38 |
39 | #其它信息
40 | ----------------------
41 | **VisualUIEditor开发QQ群欢迎您的加入: 453224679**
--------------------------------------------------------------------------------
/doc/uidetail.md:
--------------------------------------------------------------------------------
1 | #VisualUIEditor项目讲解之UI文件说明
2 | ui文件为以ui文件结尾的文件,文件的内容以Json数据存储的布局信息文件。
3 |
4 | #节点的基本数据结构
5 | ```Json
6 | {
7 | "type": "Scene",
8 | "children": []
9 | }
10 | ```
11 | 结点的最小单元需定义类型type,若该结点有子结点,那children里则依次顺序存储子结点的信息。
12 |
13 | 而类型为UIButton(按钮),UICheckBox(复选框),UIImage(图片),UIInput(输入框),UIScale9(九宫),UISlider(滑动条),UIText(文本输入),UITextAtlas(图片文本)或者类型字符串以SubPath:(子UI)开头的节点,都属于基本节点,在UI编辑器里,这些节点,不存在任何的子结点。
14 |
15 | #编辑器自带的属性编辑
16 | 编辑器自带的属性编辑分别位于[ve](https://github.com/tickbh/VisualUIEditor/tree/master/prop/ve "ve")和[ve-widget](https://github.com/tickbh/VisualUIEditor/tree/master/prop/ve "ve-widget")目录下,包含有以下格式编辑
17 | > 基础控件
18 | * **ve-input** 基础的字符串输入控件
19 | * **ve-checkbox** 复选框的选择控件
20 | * **ve-unit-input** 数字的输入控件
21 | * **ve-textarea** 多行文本的输入控件
22 | * **ve-slider** 数字滑动控件
23 |
24 | > 组合控件
25 | * **ve-vec2** 包含x和y信息的控件,如位置,锚点,缩放等
26 | * **ve-size** 包含width和height的信息控件
27 | * **ve-asset** 资源属性的节点,用于资源文件的拖动设置属性
28 | * **ve-color** 颜色信息的节点,用于快速设置颜色设置,支持RGBA
29 | * **ve-relative** 用于相对位置信息的设置,用来保证布局由于动态放大缩小而改变的信息设置,如left,top,right,bottom,center hor, center ver
30 |
31 | 这些是常用的属性编辑节点
32 |
33 |
34 | #节点的基本属性
35 | 下面列举节点共用的基本属性
36 | * **x** 数字,节点位置的横坐标, 大小为从左往右增大
37 | * **y** 数字,节点位置的纵坐标, 大小为从下往上增大,为opengl系坐标
38 | * **left** 数字,节点位置相对父节点的左偏移,若该值存在忽略信息x
39 | * **right** 数字,节点位置相对父节点的右偏移,若该值存在忽略信息x
40 | * **horizontal** 数字,节点位置相对父节点的水平居中的偏移,负值则表示中偏左,正则表示中偏右,若该值存在忽略信息x,left,right,horizontal三者只会同时存在一个
41 | * **top** 数字,节点位置相对父节点的上偏移,若该值存在忽略信息y
42 | * **bottom** 数字,节点位置相对父节点的下偏移,若该值存在忽略信息y
43 | * **vertical** 数字,节点位置相对父节点的竖直居中的偏移,负值则表示中偏下,正则表示中偏上,若该值存在忽略信息y,top,bottom,vertical三者只会同时存在一个
44 | * **width** 字符串,节点的宽度信息,若为%号结尾,则表示该宽度占父节点的大小的百分比,否则则为固定值
45 | * **height** 字符串,节点的高度信息,若为%号结尾,则表示该高度占父节点的大小的百分比,否则则为固定值
46 | * **type** 字符串,节点的类型信息,若该结点以SubPath:开头,则表示该结点复用别的组件
47 | * **id** 字符串,节点的名字信息,同一个父节点,不允许两个id名字一样的节点
48 | * **color** 颜色,节点的颜色值
49 | * **scaleX** 数字,节点的横向缩放值,该值默认为1
50 | * **scaleY** 数字,节点的纵向缩放值,该值默认为1
51 | * **rotation** 数字,节点的旋转角度,该值默认为0
52 | * **opacity** 数字,节点的不透明度,为0-255间的数字,该值默认为255,表示该节点不透明
53 | * **anchorX** 数字,节点的横向锚点,该值默认为0.5
54 | * **anchorY** 数字,节点的纵向锚点,该值默认为0.5
55 | * **touchEnabled** 布尔,节点的是否可点击
56 | * **touchListener** 字符串,节点的监听函数信息
57 | * **visible** 布尔,节点是否可见
58 |
59 | 每个子节点有各自的属性,通过设置各个属性值改变节点的状态信息
60 |
61 | #其它信息
62 | **VisualUIEditor开发QQ群欢迎您的加入: 453224679**
63 |
--------------------------------------------------------------------------------
/ext/ExtImage.js:
--------------------------------------------------------------------------------
1 | let ExtImage = {}
2 |
3 | ExtImage.name = 'UIImage'
4 | ExtImage.icon = 'app://res/control/Sprite.png'
5 | ExtImage.tag = 1
6 | ExtImage.defRes = 'res/default/Sprite.png'
7 |
8 | ExtImage.GenEmptyNode = function() {
9 | let node = new ccui.ImageView(getFullPathForName(ExtImage.defRes))
10 | node._spriteFrame = ExtImage.defRes
11 | node._className = ExtImage.name
12 | return node
13 | }
14 |
15 | ExtImage.GenNodeByData = function(data, parent) {
16 | let node = new ccui.ImageView()
17 | node._className = ExtImage.name
18 | return node
19 | }
20 |
21 | ExtImage.SetSpriteFrame = function(node, spriteFrame) {
22 | if (spriteFrame && getFullPathForName(spriteFrame)) {
23 | let fullpath = getFullPathForName(spriteFrame)
24 | cc.textureCache.addImage(fullpath, function() {
25 | let anchor = node.getAnchorPoint()
26 | node.loadTexture(fullpath)
27 | node.setAnchorPoint(anchor)
28 | node._spriteFrame = spriteFrame
29 | })
30 | }
31 | }
32 |
33 | ExtImage.SetNodePropByData = function(node, data, parent) {
34 | ExtImage.SetSpriteFrame(node, data.spriteFrame)
35 | }
36 |
37 | ExtImage.ExportNodeData = function(node, data) {
38 | node._spriteFrame && (data['spriteFrame'] = node._spriteFrame)
39 | }
40 |
41 | ExtImage.SetPropChange = function(control, path, value) {
42 | SetDefaultPropChange(control, path, value)
43 | }
44 |
45 | ExtImage.GetLoadImages = function(data) {
46 | return [data['spriteFrame']]
47 | }
48 |
49 | ExtImage.NodifyPropChange = function(control) {
50 | SetNodifyPropChange(control)
51 | }
52 |
53 | function ImageData(node) {
54 | this._node = node
55 | }
56 |
57 | ImageData.prototype = {
58 | __displayName__: 'Image',
59 | __type__: 'ccui.ImageView',
60 |
61 | get spriteFrame() {
62 | return {
63 | path: 'spriteFrame',
64 | type: 'asset',
65 | name: 'spriteFrame',
66 | attrs: {},
67 | value: this._node._spriteFrame
68 | }
69 | },
70 |
71 | get __props__() {
72 | return [
73 | this.spriteFrame
74 | ]
75 | }
76 | }
77 |
78 | ExtImage.ImageData = ImageData
79 |
80 | ExtImage.PropComps = function(node) {
81 | let datas = [new WidgetData(node)]
82 | datas.push(new TouchData(node))
83 | datas.push(new ImageData(node))
84 | return datas
85 | }
86 |
87 | module.exports = ExtImage
88 |
89 | RegisterExtNodeControl(ExtImage.name, ExtImage)
--------------------------------------------------------------------------------
/ext/ExtManager.js:
--------------------------------------------------------------------------------
1 | let allExtNodeControls = {}
2 |
3 | function RegisterExtNodeControl(name, nodeControl) {
4 | allExtNodeControls[name] = nodeControl
5 | // TODO check
6 | Ipc.sendToAll('ui:has_extnodecontrol_add', name)
7 | }
8 |
9 | function GetExtNodeControl(name) {
10 | return allExtNodeControls[name]
11 | }
12 |
13 | function GetExtllNodeControls() {
14 | return allExtNodeControls
15 | }
16 |
17 | function SetSpriteFrame(node, path, value, defRes, fn) {
18 | let url = getFullPathForName(value)
19 | let exist = checkTextureExist(url)
20 | value = exist ? value : defRes
21 | let newPath = '_' + path
22 | node[newPath] = value
23 | fn.call(node, getFullPathForName(value))
24 | }
--------------------------------------------------------------------------------
/ext/ExtPageView.js:
--------------------------------------------------------------------------------
1 | let ExtPageView = {}
2 |
3 | ExtPageView.name = 'UIPageView'
4 | ExtPageView.icon = 'app://res/control/pageview.png'
5 | ExtPageView.tag = 9
6 |
7 | ExtPageView.GenEmptyNode = function() {
8 | node = new ccui.PageView()
9 | node.setContentSize(cc.size(200, 100))
10 | node._className = ExtPageView.name
11 | return node
12 | }
13 |
14 | ExtPageView.GenNodeByData = function(data, parent) {
15 | node = new ccui.PageView()
16 | node.setContentSize(cc.size(data.width || 200, data.height || 1000))
17 | ExtPageView.SetNodePropByData(node, data, parent)
18 | node._className = ExtPageView.name
19 | return node
20 | }
21 |
22 | ExtPageView.SetNodePropByData = function(node, data, parent) {
23 | ExtListView.SetNodePropByData(node, data, parent)
24 | }
25 |
26 | ExtPageView.ExportNodeData = function(node, data) {
27 | ExtListView.ExportNodeData(node, data)
28 | }
29 |
30 | ExtPageView.SetPropChange = function(control, path, value) {
31 | SetDefaultPropChange(control, path, value)
32 | }
33 |
34 | ExtPageView.NodifyPropChange = function(control) {
35 | SetNodifyPropChange(control)
36 | }
37 |
38 | ExtPageView.ExportData = function(node) {
39 | this._node = node
40 | }
41 |
42 | ExtPageView.ExportData.prototype = {
43 | __displayName__: 'PageView',
44 |
45 | get __props__() {
46 | return []
47 | }
48 | }
49 |
50 | ExtPageView.PropComps = function(node) {
51 | let datas = [new WidgetData(node)]
52 | datas.push(new TouchData(node))
53 | datas.push(new ExtPageView.ExportData(node))
54 | datas.push(new ExtListView.ExportData(node))
55 | datas.push(new ExtScrollView.ExportData(node))
56 | return datas
57 | }
58 |
59 | module.exports = ExtPageView
60 |
61 | RegisterExtNodeControl(ExtPageView.name, ExtPageView)
--------------------------------------------------------------------------------
/ext/ExtScene.js:
--------------------------------------------------------------------------------
1 | let ExtScene = {}
2 |
3 | ExtScene.UIScale9UIScene
4 | ExtScene.icon = 'app://res/control/Node.png'
5 | ExtScene.name = "Scene"
6 | ExtScene.tag = -1
7 |
8 | ExtScene.GenEmptyNode = function() {
9 | let node = new cc.Scene()
10 | node.setContentSize(cc.size(1136, 640))
11 | node._className = ExtScene.name
12 | return node
13 | }
14 |
15 | ExtScene.GenNodeByData = function(data, parent) {
16 | return this.GenEmptyNode()
17 | }
18 |
19 | ExtScene.SetNodePropByData = function(node, data, parent) {
20 | (data['autoLayout']) && (node.autoLayout = data['autoLayout'])
21 | }
22 |
23 | ExtScene.ExportNodeData = function(node, data) {
24 | data['autoLayout'] = node.autoLayout
25 | }
26 |
27 | ExtScene.SetPropChange = function(control, path, value) {
28 | control._node[path] = value
29 | }
30 |
31 | ExtScene.ExportData = function(node) {
32 | this._node = node
33 | }
34 |
35 | ExtScene.ExportData.prototype = {
36 | __displayName__: 'Scene',
37 | __type__: 'Scene',
38 | get isAutoLayout() {
39 | return {
40 | path: 'autoLayout',
41 | type: 'checkbox',
42 | name: 'autoLayout',
43 | attrs: {},
44 | value: this._node.autoLayout
45 | }
46 | },
47 |
48 | get __props__() {
49 | return [this.isAutoLayout]
50 | }
51 | }
52 |
53 | ExtScene.PropComps = function(node) {
54 | let datas = [new WidgetData(node)]
55 | datas.push(new ExtScene.ExportData(node))
56 | return datas
57 | }
58 |
59 | module.exports = ExtScene
60 |
61 | RegisterExtNodeControl(ExtScene.name, ExtScene)
--------------------------------------------------------------------------------
/ext/ExtWidget.js:
--------------------------------------------------------------------------------
1 | let ExtWidget = {}
2 |
3 | ExtWidget.name = 'UIWidget'
4 | ExtWidget.icon = 'app://res/control/Node.png'
5 | ExtWidget.tag = 0
6 |
7 | ExtWidget.GenEmptyNode = function() {
8 | // let node = new ccui.Widget()
9 | let node = new cc.Node()
10 | node.setContentSize(cc.size(40, 40))
11 | node.anchorX = 0.5
12 | node.anchorY = 0.5
13 | node._className = ExtWidget.name
14 | return node
15 | }
16 |
17 | ExtWidget.GenNodeByData = function(data, parent) {
18 | return this.GenEmptyNode()
19 | }
20 |
21 | ExtWidget.SetNodePropByData = function(node, data, parent) {}
22 |
23 | ExtWidget.ExportNodeData = function(node, data) {
24 | data['anchorX'] = node.anchorX
25 | data['anchorY'] = node.anchorY
26 | }
27 |
28 | ExtWidget.SetPropChange = function(control, path, value) {}
29 |
30 | ExtWidget.ExportData = function(node) {
31 | this._node = node
32 | }
33 |
34 | ExtWidget.ExportData.prototype = {
35 | __displayName__: 'UIWidget',
36 | __type__: 'ccui.UIWidget',
37 |
38 | get __props__() {
39 | return []
40 | }
41 | }
42 |
43 | ExtWidget.PropComps = function(node) {
44 | let datas = [new WidgetData(node)]
45 | datas.push(new TouchData(node))
46 | return datas
47 | }
48 |
49 | module.exports = ExtWidget
50 |
51 | RegisterExtNodeControl(ExtWidget.name, ExtWidget)
--------------------------------------------------------------------------------
/ext/init.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/html/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
13 |
14 |
15 |
16 |
支付宝
17 |
18 |

19 |
20 |
25 |
26 |
--------------------------------------------------------------------------------
/html/grid.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 多语言编辑
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/icon.png
--------------------------------------------------------------------------------
/js/jsgrid.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * jsGrid v1.5.2 (http://js-grid.com)
3 | * (c) 2016 Artem Tabalin
4 | * Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
5 | */
6 |
7 | .jsgrid{position:relative;overflow:hidden;font-size:1em}.jsgrid,.jsgrid *,.jsgrid :after,.jsgrid :before{box-sizing:border-box}.jsgrid input,.jsgrid select,.jsgrid textarea{font-size:1em}.jsgrid-grid-header{overflow-x:hidden;overflow-y:scroll;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.jsgrid-grid-body{overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.jsgrid-table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}.jsgrid-cell{padding:.5em}.jsgrid-header-cell,.jsgrid-сell{box-sizing:border-box}.jsgrid-align-left{text-align:left}.jsgrid-align-center,.jsgrid-align-center input,.jsgrid-align-center select,.jsgrid-align-center textarea{text-align:center}.jsgrid-align-right,.jsgrid-align-right input,.jsgrid-align-right select,.jsgrid-align-right textarea{text-align:right}.jsgrid-header-cell{padding:.5em}.jsgrid-edit-row input,.jsgrid-edit-row select,.jsgrid-edit-row textarea,.jsgrid-filter-row input,.jsgrid-filter-row select,.jsgrid-filter-row textarea,.jsgrid-insert-row input,.jsgrid-insert-row select,.jsgrid-insert-row textarea{width:100%;padding:.3em .5em}.jsgrid-edit-row input[type=checkbox],.jsgrid-filter-row input[type=checkbox],.jsgrid-insert-row input[type=checkbox]{width:auto}.jsgrid-selected-row .jsgrid-cell{cursor:pointer}.jsgrid-nodata-row .jsgrid-cell{padding:.5em 0;text-align:center}.jsgrid-header-sort{cursor:pointer}.jsgrid-pager{padding:.5em 0}.jsgrid-pager-nav-button{padding:.2em .6em}.jsgrid-pager-nav-inactive-button{display:none;pointer-events:none}.jsgrid-pager-page{padding:.2em .6em}
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | // 请访问 https://go.microsoft.com/fwlink/?LinkId=759670
3 | // 参阅有关 jsconfig.json 格式的文档
4 | "compilerOptions": {
5 | "target": "es6",
6 | "module": "commonjs",
7 | "allowSyntheticDefaultImports": true
8 | },
9 | "exclude1": [
10 | "node_modules",
11 | "bower_components",
12 | "jspm_packages",
13 | "tmp",
14 | "temp"
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/main/ipc.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | /**
4 | * @module Ipc
5 | */
6 | let Ipc = {};
7 | module.exports = Ipc;
8 |
9 | // requires
10 | const Electron = require('electron');
11 | const ipcMain = Electron.ipcMain;
12 |
13 | Ipc.sendToAll = function(message, ...args) {
14 | args = ["ipc-renderer2all", message, ...args];
15 | ipcMain.emit.apply(ipcMain, args);
16 |
17 | let webContents = global.mainWindow.webContents;
18 | if (!webContents) {
19 | return false;
20 | }
21 | webContents.send.apply(webContents, args);
22 | };
23 |
24 | Ipc.sendToWins = function(message, ...args) {
25 | args = ["ipc-renderer2all", message, ...args];
26 | let webContents = global.mainWindow.webContents;
27 | if (!webContents) {
28 | return false;
29 | }
30 | webContents.send.apply(webContents, args);
31 | };
32 |
33 | Ipc.sendToWinsDirect = function(message, ...args) {
34 | args = [message, ...args];
35 | let webContents = global.mainWindow.webContents;
36 | if (!webContents) {
37 | return false;
38 | }
39 | webContents.send.apply(webContents, args);
40 | };
41 |
42 | ipcMain.on('ipc-renderer2all', (event, message, ...args) => {
43 |
44 | });
--------------------------------------------------------------------------------
/main/protocol.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | let Protocol = {};
4 | module.exports = Protocol;
5 |
6 | const Electron = require('electron');
7 | const Console = require('./console');
8 | const app = Electron.app;
9 | var Url = require('url');
10 | var Fs = require('fs');
11 |
12 | Protocol.init = function() {
13 | const protocol = Electron.protocol;
14 | // register protocol app://
15 | protocol.registerFileProtocol('app', (request, cb) => {
16 | if (!request.url) {
17 | cb(-3); // ABORTED
18 | return;
19 | }
20 |
21 | let url = decodeURIComponent(request.url);
22 | let uri = Url.parse(url);
23 |
24 | let relativePath = uri.hostname;
25 | if (uri.pathname) {
26 | relativePath = relativePath + uri.pathname;
27 | }
28 |
29 | let file = app.getAppPath() + "/" + relativePath;
30 | cb({ path: file });
31 | }, err => {
32 | if (err) {
33 | Console.log('Failed to register protocol app, %s', err.message);
34 | return;
35 | }
36 | Console.log('protocol app registered');
37 | });
38 |
39 | protocol.registerFileProtocol('packages', (request, cb) => {
40 | if (!request.url) {
41 | cb(-3); // ABORTED
42 | return;
43 | }
44 |
45 | let url = decodeURIComponent(request.url);
46 | let uri = Url.parse(url);
47 |
48 | let relativePath = uri.hostname;
49 | if (uri.pathname) {
50 | relativePath = relativePath + uri.pathname;
51 | }
52 | let file = app.getAppPath() + "/package/" + relativePath;
53 | if (Fs.existsSync(file)) {
54 | cb({ path: file });
55 | return;
56 | }
57 |
58 | file = app.getAppPath() + "/third/package/" + relativePath;
59 | if (Fs.existsSync(file)) {
60 | cb({ path: file });
61 | return;
62 | }
63 | }, err => {
64 | if (err) {
65 | Console.log('Failed to register protocol app, %s', err.message);
66 | return;
67 | }
68 | Console.log('protocol packages registered');
69 | });
70 |
71 |
72 | };
--------------------------------------------------------------------------------
/package-zip/helloword.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/package-zip/helloword.zip
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "visual-ui-editor",
3 | "productName": "VisualUIEditor",
4 | "description": "VisualUIEditor",
5 | "version": "1.2.0",
6 | "author": "tickbh",
7 | "main": "app.js",
8 | "dependencies": {
9 | "async": "^1.5.2",
10 | "FileSaver": "0.10.0",
11 | "jquery": "1.11.1",
12 | "jquery-contextmenu": "1.6.7",
13 | "unzip" : "0.1.11"
14 | },
15 | "devDependencies": {
16 | "devtron": "^1.1.0",
17 | "electron-prebuilt": "1.2.1",
18 | "less": "^2.6.1",
19 | "almond": "0.3.2",
20 | "dcl": "1.1.3",
21 | "dojo": "1.11.2",
22 | "lodash-amd": "4.15.0",
23 | "requirejs": "2.2.0",
24 | "requirejs-domready": "2.0.3"
25 | },
26 | "scripts": {
27 | "start": "electron .",
28 | "package-china-win32": "electron-packager ./ VisualUIEditor --asar --platform=win32 --arch=all --out ../Out/VisualUIEditor --version 1.3.4 --overwrite --download.mirror=https://npm.taobao.org/mirrors/electron/",
29 | "package-china": "electron-packager ./ VisualUIEditor --asar --all --out ../Out/VisualUIEditor --version 1.3.4 --overwrite --download.mirror=https://npm.taobao.org/mirrors/electron/",
30 | "package": "electron-packager ./ VisualUIEditor --asar --all --out ../Out/VisualUIEditor --version 1.3.4 --overwrite"
31 | }
32 | }
--------------------------------------------------------------------------------
/packages/console/panel/item.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: block;
3 | }
4 |
5 | .item {
6 | display: flex;
7 | flex-direction: column;
8 |
9 | list-style-type: none;
10 | padding: 5px;
11 | padding-left: 10px;
12 | overflow-x: hidden;
13 | font-size: 14px;
14 |
15 | color: #999;
16 | }
17 |
18 | .item.log {
19 | color: #999;
20 | }
21 | .item.error {
22 | color: #c80c0c;
23 | }
24 | .item.warn {
25 | color: #990;
26 | }
27 |
28 | .item.info {
29 | /*font-weight: bold;*/
30 | color: #09f;
31 | }
32 | .item.failed {
33 | /*font-weight: bold;*/
34 | color: #c80c0c;
35 | }
36 | .item.success {
37 | /*font-weight: bold;*/
38 | color: #090;
39 | }
40 |
41 | .desc {
42 | overflow: hidden;
43 | }
44 |
45 | .icon {
46 | width: 15px;
47 | min-width: 15px;
48 | margin-top: 2px;
49 | }
50 |
51 | .fold {
52 | padding: 2px;
53 | margin-top: 2px;
54 | width: 15px;
55 | text-align: center;
56 | color: #555;
57 | cursor: pointer;
58 | }
59 |
60 | .text {
61 | margin-top: 2px;
62 | -webkit-user-select: initial;
63 | cursor: text;
64 | }
65 |
66 | .text::selection {
67 | background-color: #007acc;
68 | }
69 |
70 | .more::after {
71 | content: "[...]";
72 | cursor: pointer;
73 | color: #555;
74 | padding: 0px 4px;
75 | }
76 |
77 | .more:hover {
78 | text-decoration: underline;
79 | color: #555;
80 | }
81 |
82 | .detail::selection {
83 | background-color: #007acc;
84 | }
85 |
86 | .info {
87 | /*white-space: nowrap;*/
88 | display: flex;
89 | flex-direction: column;
90 | }
91 |
92 | .detail {
93 | display: none;
94 | margin-left: 19px;
95 | white-space: pre-wrap;
96 | -webkit-user-select: initial;
97 | cursor: text;
98 | }
99 |
100 | :host[folded] .info {
101 | white-space: pre-wrap;
102 | }
103 |
104 | :host[folded] .detail {
105 | display: inline-block;
106 | }
107 |
108 | :host[folded] .more::after {
109 | content: "";
110 | display: none;
111 | }
112 |
113 | :host[type^="error"] .detail{
114 | margin-left: 34px;
115 | }
116 |
117 | :host[type^="warn"] .detail{
118 | margin-left: 34px;
119 | }
120 |
--------------------------------------------------------------------------------
/packages/console/panel/item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {{desc}}
11 |
12 | {{_computedCount(count)}}
13 |
14 |
{{detail}}
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/console/panel/item.js:
--------------------------------------------------------------------------------
1 | (() => {
2 | 'use strict'
3 |
4 | Polymer({
5 | properties: {
6 | type: {
7 | type: String,
8 | value: 'log',
9 | reflectToAttribute: true
10 | },
11 |
12 | count: {
13 | type: Number,
14 | value: 0
15 | },
16 |
17 | desc: {
18 | type: String,
19 | value: ''
20 | },
21 |
22 | detail: {
23 | type: String,
24 | value: ''
25 | },
26 |
27 | showCount: {
28 | type: Boolean,
29 | value: false
30 | },
31 |
32 | folded: {
33 | type: Boolean,
34 | value: false,
35 | reflectToAttribute: true
36 | }
37 | },
38 |
39 | ready() {},
40 |
41 | _typeClass(type) {
42 | return 'item layout vertical ' + type
43 | },
44 |
45 | _iconClass(type) {
46 | switch (type) {
47 | case 'error':
48 | return 'fa fa-times-circle icon'
49 |
50 | case 'warn':
51 | return 'fa fa-warning icon'
52 |
53 | default:
54 | return ''
55 | }
56 | },
57 |
58 | _textClass(detail) {
59 | if (detail) {
60 | return 'more'
61 | }
62 | },
63 |
64 | _showCount(showCount, count) {
65 | if (showCount && count > 0) {
66 | return true
67 | }
68 |
69 | return false
70 | },
71 |
72 | _computedCount(count) {
73 | return count + 1
74 | },
75 |
76 | _onFoldClick() {
77 | this.set('folded', !this.folded)
78 | },
79 |
80 | _foldClass(detail, folded) {
81 | if (!detail) {
82 | return
83 | }
84 | return folded ? 'fa fold fa-caret-down' : 'fa fold fa-caret-right'
85 | }
86 | })
87 | })()
--------------------------------------------------------------------------------
/packages/controlpanel/panel/controlpanel.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
45 |
46 |
47 |
48 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/packages/controlpanel/panel/controlpanel.js:
--------------------------------------------------------------------------------
1 | (() => {
2 | 'use strict'
3 | var dragIdName = 'NodeMoveUUID'
4 |
5 | Polymer({
6 | properties: {
7 | show_items: {
8 | type: Array,
9 | value: function() { return []; }
10 | }
11 | },
12 |
13 |
14 |
15 | addFunc: function(data) {},
16 |
17 | ready: function() {
18 | let show_items = []
19 | var nodes = GetExtllNodeControls()
20 | for (name in nodes) {
21 | let node = nodes[name]
22 | show_items.push({ icon: node.icon, name: node.name, tag: node.tag })
23 | }
24 |
25 | this.resetSortItems(show_items)
26 | },
27 |
28 | resetSortItems: function(items) {
29 | items.sort(function(a, b) {
30 | return (a.tag - b.tag)
31 | })
32 | let newItems = []
33 |
34 | for (let i = 0; i < items.length; i++) {
35 | if (items[i].tag >= 0) {
36 | newItems.push(items[i])
37 | }
38 | }
39 |
40 | this.show_items = newItems
41 | },
42 |
43 | messages: {
44 | 'ui:has_extnodecontrol_add' (event, name) {
45 | let nodeControl = GetExtNodeControl(name)
46 | this.show_items.push({ icon: nodeControl.icon, name: nodeControl.name, tag: nodeControl.tag })
47 |
48 | this.resetSortItems(this.show_items)
49 | }
50 | }
51 |
52 | })
53 | })()
--------------------------------------------------------------------------------
/packages/controlpanel/panel/item.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: block;
3 | margin-top: 10px;
4 | }
5 |
6 | .item {
7 | display: flex;
8 | flex-direction: column;
9 | list-style-type: none;
10 | padding: 5px;
11 | padding-left: 10px;
12 | overflow-x: hidden;
13 | font-size: 12px;
14 | color: #999;
15 | }
16 |
17 | .item.log {
18 | color: #999;
19 | }
20 |
21 | .item.error {
22 | color: #c80c0c;
23 | }
24 |
25 | .item.warn {
26 | color: #990;
27 | }
28 |
29 | .item.info {
30 | /*font-weight: bold;*/
31 | color: #09f;
32 | }
33 |
34 | .item.failed {
35 | /*font-weight: bold;*/
36 | color: #c80c0c;
37 | }
38 |
39 | .item.success {
40 | /*font-weight: bold;*/
41 | color: #090;
42 | }
43 |
44 | .desc {
45 | overflow: hidden;
46 | }
47 |
48 | .icon {
49 | width: 15px;
50 | min-width: 15px;
51 | margin-top: 2px;
52 | }
53 |
54 | .fold {
55 | padding: 2px;
56 | margin-top: 2px;
57 | width: 15px;
58 | text-align: center;
59 | color: #555;
60 | cursor: pointer;
61 | }
62 |
63 | .text {
64 | -webkit-user-select: initial;
65 | cursor: text;
66 | }
67 |
68 | .text::selection {
69 | background-color: #007acc;
70 | }
71 |
72 | .more::after {
73 | content: "[...]";
74 | cursor: pointer;
75 | color: #555;
76 | padding: 0px 4px;
77 | }
78 |
79 | .more:hover {
80 | text-decoration: underline;
81 | color: #555;
82 | }
83 |
84 | .detail::selection {
85 | background-color: #007acc;
86 | }
87 |
88 | .info {
89 | /*white-space: nowrap;*/
90 | display: flex;
91 | flex-direction: column;
92 | }
93 |
94 | .detail {
95 | display: none;
96 | margin-left: 19px;
97 | white-space: pre-wrap;
98 | -webkit-user-select: initial;
99 | cursor: text;
100 | }
101 |
102 | :host[folded] .info {
103 | white-space: pre-wrap;
104 | }
105 |
106 | :host[folded] .detail {
107 | display: inline-block;
108 | }
109 |
110 | :host[folded] .more::after {
111 | content: "";
112 | display: none;
113 | }
114 |
115 | :host[type^="error"] .detail {
116 | margin-left: 34px;
117 | }
118 |
119 | :host[type^="warn"] .detail {
120 | margin-left: 34px;
121 | }
--------------------------------------------------------------------------------
/packages/controlpanel/panel/item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
14 |

15 |
{{name}}
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/controlpanel/panel/item.js:
--------------------------------------------------------------------------------
1 | (() => {
2 | 'use strict'
3 |
4 | Polymer({
5 | properties: {
6 | icon: {
7 | type: String,
8 | value: ''
9 | },
10 |
11 | name: {
12 | type: String,
13 | value: ''
14 | }
15 | },
16 |
17 | dragStart: function(ev) {
18 | ev.stopPropagation()
19 | ev.dataTransfer.dropEffect = 'move'
20 | ev.dataTransfer.clearData()
21 | ev.dataTransfer.setData('controlType', this.name)
22 | ev.target.style.opacity = '0.4'
23 | },
24 |
25 | dragEnd: function(ev) {
26 | ev.preventDefault()
27 | ev.target.style.opacity = '1'
28 | },
29 |
30 | ready() {
31 | this['ondragstart'] = this.dragStart.bind(this)
32 | this['ondragend'] = this.dragEnd.bind(this)
33 | }
34 |
35 | })
36 | })()
--------------------------------------------------------------------------------
/packages/nodeorder/panel/node-tree-item.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: block;
3 | box-sizing: border-box;
4 | font-size: 12px;
5 | margin-left: 0px;
6 | color: #ddd;
7 | }
8 |
9 | :host[folded]>#content {
10 | display: none;
11 | }
12 |
13 | #header {
14 | position: relative;
15 | padding-bottom: 1px;
16 | }
17 |
18 | #bar {
19 | position: absolute;
20 | left: 0;
21 | right: 0;
22 | height: 16px;
23 | }
24 |
25 | :host[selected]>#bar {
26 | background-color: #555;
27 | }
28 |
29 | .wrapper {
30 | display: flex;
31 | flex-direction: row;
32 | flex-wrap: nowrap;
33 | align-items: flex-end;
34 | white-space: nowrap;
35 | height: 15px;
36 | color: #fff;
37 | cursor: default;
38 | padding: 3px 0px 2px 2px;
39 | }
40 |
41 | #foldIcon {
42 | flex: none;
43 | font-size: 16px;
44 | width: 10px;
45 | margin-right: 2px;
46 | visibility: hidden;
47 | cursor: pointer;
48 | text-align: center;
49 | }
50 |
51 | :host[foldable]>#header #foldIcon {
52 | visibility: visible;
53 | }
54 |
55 | #icon {
56 | flex: none;
57 | width: 20px;
58 | height: 20px;
59 | margin-right: 2px;
60 | background-size: contain;
61 | background-repeat: no-repeat;
62 | background-position: 50% 50%;
63 | }
64 |
65 | #name {
66 | font-size: 14px;
67 | flex: none;
68 | color: #ddd;
69 | min-width: 30%;
70 | max-width: 82%;
71 | white-space: nowrap;
72 | overflow: hidden;
73 | text-overflow: ellipsis;
74 | }
75 |
76 | #content {
77 | display: block;
78 | }
--------------------------------------------------------------------------------
/packages/nodeorder/panel/nodeorder.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/packages/nodeorder/panel/statusbox.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | flex-direction: row;
4 | flex-wrap: nowrap;
5 | align-items: flex-start;
6 | font-size: 14px;
7 | white-space: nowrap;
8 | text-align: left;
9 | color: #ddd;
10 | cursor: pointer;
11 | position: absolute;
12 | right: 0px;
13 | width: 15px;
14 | }
15 |
16 | :host[focused] {
17 | color: #00a6ff;
18 | }
19 |
20 | :host[pressed] #box {
21 | opacity: 0.7;
22 | }
23 |
24 | #box {
25 | display: inline-block;
26 | box-sizing: border-box;
27 | width: 13px;
28 | height: 13px;
29 | min-width: 13px;
30 | min-height: 13px;
31 | font-size: 10px;
32 | text-align: center;
33 | cursor: pointer;
34 | }
35 |
36 | #box:hover {
37 | border-color: #bababa;
38 | }
39 |
40 | :host[focused] #box {
41 | border: 1px solid #0c70a6;
42 | }
--------------------------------------------------------------------------------
/packages/nodeorder/panel/statusbox.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/nodeorder/panel/statusbox.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | Polymer({
3 | behaviors: [Polymer.IronButtonState],
4 |
5 | listeners: {
6 | 'focus': '_onFocus',
7 | 'blur': '_onBlur',
8 | 'click': '_onClick',
9 | },
10 |
11 | properties: {
12 | activited: {
13 | type: Boolean,
14 | value: true,
15 | notify: true,
16 | reflectToAttribute: true,
17 | },
18 |
19 | readonly: {
20 | type: Boolean,
21 | value: false,
22 | reflectToAttribute: true,
23 | },
24 |
25 | bgIcon: {
26 | type: String,
27 | notify: true,
28 | value: "fa fa-circle-o",
29 | },
30 |
31 | activiteIcon: {
32 | type: String,
33 | notify: true,
34 | value: "fa fa-eye",
35 | },
36 | },
37 |
38 | ready() {},
39 |
40 | _statusIconClass(activited) {
41 | if (activited)
42 | return this.activiteIcon;
43 |
44 | return this.bgIcon;
45 | },
46 |
47 | _onClick(event) {
48 | event.stopPropagation();
49 |
50 | this.activited = !this.activited;
51 | this.async(() => {
52 | this.fire('end-editing');
53 | }, 1);
54 | },
55 | });
--------------------------------------------------------------------------------
/packages/proppanel/panel/proppanel.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/packages/renderpanel/panel/renderscene.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/packages/renderpanel/panel/renderscene.js:
--------------------------------------------------------------------------------
1 | (() => {
2 | 'use strict'
3 |
4 | Polymer({
5 | properties: {
6 | enableDrag: Boolean
7 | },
8 |
9 | fixForgeCanvas: function() {
10 | let rect = this.getBoundingClientRect()
11 | let canvas = this.$.forgeCanvas
12 | canvas.width = rect.width - 5
13 | canvas.height = rect.height - 5
14 | this.fabricCanvas.setWidth(rect.width - 5)
15 | this.fabricCanvas.setHeight(rect.height - 5)
16 | },
17 |
18 | initGameCanvas: function() {
19 | if (this._isInitGameCanvas) {
20 | return
21 | }
22 | let rect = this.getBoundingClientRect()
23 | let canvas = this.$.gameCanvas
24 | let canvasRect = canvas.getBoundingClientRect()
25 | canvas.style.left = (rect.width - canvasRect.width) / 2
26 | canvas.style.top = (rect.height - canvasRect.height) / 2
27 | this._isInitGameCanvas = true
28 | },
29 |
30 | getRunScene: function() {
31 | return this.runScene
32 | },
33 |
34 | getFabricCanvas: function() {
35 | return this.fabricCanvas
36 | },
37 |
38 | ready: function() {
39 | this.fabricCanvas = new fabric.Canvas(this.$.forgeCanvas)
40 | this.runScene = null
41 | this.reinitRender()
42 | },
43 |
44 | reinitRender: function() {
45 | ClearCurrentGameStatus()
46 | cc.game.run({
47 | 'debugMode': 0,
48 | 'showFPS': false,
49 | 'frameRate': 20,
50 | 'id': this.$.gameCanvas,
51 | 'renderMode': 1
52 | }, function() {}.bind(this))
53 | },
54 |
55 | attached: function() {},
56 |
57 | created: function() {}
58 |
59 |
60 | })
61 | })()
--------------------------------------------------------------------------------
/packages/resorder/panel/resorder.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/packages/td-tree-view/widget/td-tree-item.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: block;
3 | box-sizing: border-box;
4 | font-size: 14px;
5 | margin-left: 0px;
6 | }
7 |
8 | :host[folded]>#content {
9 | display: none;
10 | }
11 |
12 | #header {
13 | position: relative;
14 | padding-bottom: 1px;
15 | }
16 |
17 | #bar {
18 | position: absolute;
19 | left: 0;
20 | right: 0;
21 | height: 16px;
22 | }
23 |
24 | :host[selected]>#bar {
25 | background-color: #555;
26 | }
27 |
28 | .wrapper {
29 | display: flex;
30 | flex-direction: row;
31 | flex-wrap: nowrap;
32 | align-items: flex-end;
33 | white-space: nowrap;
34 | height: 16px;
35 | color: #fff;
36 | cursor: default;
37 | padding: 6px 0px 2px 2px;
38 | }
39 |
40 | #foldIcon {
41 | flex: none;
42 | font-size: 16px;
43 | width: 10px;
44 | margin-right: 5px;
45 | visibility: hidden;
46 | cursor: pointer;
47 | text-align: center;
48 | }
49 |
50 | :host[foldable]>#header #foldIcon {
51 | visibility: visible;
52 | }
53 |
54 | #icon {
55 | flex: none;
56 | width: 16px;
57 | height: 16px;
58 | margin-right: 2px;
59 | background-size: contain;
60 | background-repeat: no-repeat;
61 | background-position: 50% 50%;
62 | }
63 |
64 | #name {
65 | font-size: 14px;
66 | flex: none;
67 | color: #ddd;
68 | }
69 |
70 | #content {
71 | display: block;
72 | }
--------------------------------------------------------------------------------
/packages/td-tree-view/widget/td-tree-view.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: block;
3 | outline: none;
4 | box-sizing: border-box;
5 | overflow-x: hidden;
6 | overflow-y: auto;
7 | padding: 3px 10px;
8 | position: relative;
9 | box-shadow: inset 0 0 8px 2px rgba(0, 0, 0, 0.2);
10 | background: #464646;
11 | min-width: 100px;
12 | min-height: 100px;
13 | }
--------------------------------------------------------------------------------
/packages/td-tree-view/widget/td-tree-view.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/project-test/HelloWorld.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/HelloWorld.png
--------------------------------------------------------------------------------
/project-test/ProgramConfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "currentLangOpenPath": "F:\\source\\SanguoDoc\\res/lang/lang.txt",
3 | "langPath": "/lang",
4 | "langFileName": "lang.txt",
5 | "langSet": "Zh"
6 | }
--------------------------------------------------------------------------------
/project-test/js/ExtUISub1.js:
--------------------------------------------------------------------------------
1 | let ExtUISub1 = {};
2 |
3 | ExtUISub1.name = "ui/sub1.ui";
4 | ExtUISub1.icon = "res/control/Node.png";
5 | ExtUISub1.tag = 0;
6 |
7 | ExtUISub1.GenEmptyNode = function() {
8 | return cocosGenSubUINode(ExtUISub1.name, null);
9 | };
10 |
11 | ExtUISub1.GenNodeByData = function(data, parent) {
12 | return cocosGenSubUINode(ExtUISub1.name, parent);
13 | };
14 |
15 | ExtUISub1.SetNodePropByData = function(node, data, parent) {
16 | if (data.test) {
17 | let text = node.getChildByName("text");
18 | text.setString(data.test);
19 | node.test = data.test;
20 | }
21 | };
22 |
23 | ExtUISub1.ExportNodeData = function(node, data) {
24 | data.test = node.test;
25 |
26 | };
27 |
28 | ExtUISub1.SetPropChange = function(control, path, value) {
29 | if (path == "test") {
30 | ExtUISub1.SetNodePropByData(control._node, { test: value });
31 | } else {
32 | control._node[path] = value;
33 | }
34 | };
35 |
36 | ExtUISub1.ExportData = function(node) {
37 | this._node = node;
38 | }
39 |
40 | ExtUISub1.ExportData.prototype = {
41 | __displayName__: "UISub1",
42 | __type__: "ccui.UISub1",
43 |
44 | get test() {
45 | return {
46 | path: "test",
47 | type: "string",
48 | name: "test",
49 | attrs: {},
50 | value: this._node.test,
51 | };
52 | },
53 |
54 | get __props__() {
55 | return [this.test];
56 | }
57 | }
58 |
59 | ExtUISub1.PropComps = function(node) {
60 | let datas = [new WidgetData(node)];
61 | datas.push(new ExtUISub1.ExportData(node));
62 | return datas;
63 | };
64 |
65 | module.exports = ExtUISub1;
66 |
67 | RegisterExtNodeControl(ExtUISub1.name, ExtUISub1);
--------------------------------------------------------------------------------
/project-test/js/init.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/project-test/lang/lang.txt:
--------------------------------------------------------------------------------
1 | {
2 | "test": {
3 | "Zh": "测试",
4 | "En": "this is Englist test",
5 | "Tw": "测试tw"
6 | },
7 | "testRich": {
8 | "Zh": "V[cr]i[f30]su[/c]al[/f]UI",
9 | "En": "V[cr]i[f30]su[/c]al[/f]UI"
10 | },
11 | "gf": {
12 | "Zh": "fdsafdsa",
13 | "En": "fdsafdsafdsa",
14 | "Tw": ""
15 | }
16 | }
--------------------------------------------------------------------------------
/project-test/res/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/1.png
--------------------------------------------------------------------------------
/project-test/res/UIFolder 0/78144e18-ff7b-437e-a3fe-5495685dfc6b.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "__type__": "cc.SceneAsset",
4 | "scene": {
5 | "__id__": 1
6 | },
7 | "_name": "New Scene - 002"
8 | },
9 | {
10 | "__type__": "cc.Scene",
11 | "_children": [
12 | {
13 | "__id__": 2
14 | }
15 | ]
16 | },
17 | {
18 | "__type__": "cc.Node",
19 | "_name": "Canvas",
20 | "_parent": {
21 | "__id__": 1
22 | },
23 | "_children": [],
24 | "_components": [
25 | {
26 | "__id__": 3
27 | }
28 | ]
29 | },
30 | {
31 | "__type__": "cc.Canvas",
32 | "node": {
33 | "__id__": 2
34 | },
35 | "_fitWidth": false,
36 | "_fitHeight": true
37 | }
38 | ]
--------------------------------------------------------------------------------
/project-test/res/default/AltasNum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/AltasNum.png
--------------------------------------------------------------------------------
/project-test/res/default/ButtonDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/ButtonDisable.png
--------------------------------------------------------------------------------
/project-test/res/default/ButtonNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/ButtonNormal.png
--------------------------------------------------------------------------------
/project-test/res/default/ButtonSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/ButtonSelect.png
--------------------------------------------------------------------------------
/project-test/res/default/CheckBoxDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/CheckBoxDisable.png
--------------------------------------------------------------------------------
/project-test/res/default/CheckBoxNodeDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/CheckBoxNodeDisable.png
--------------------------------------------------------------------------------
/project-test/res/default/CheckBoxNodeNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/CheckBoxNodeNormal.png
--------------------------------------------------------------------------------
/project-test/res/default/CheckBoxNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/CheckBoxNormal.png
--------------------------------------------------------------------------------
/project-test/res/default/CheckBoxSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/CheckBoxSelect.png
--------------------------------------------------------------------------------
/project-test/res/default/Scale9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/Scale9.png
--------------------------------------------------------------------------------
/project-test/res/default/SliderBack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/SliderBack.png
--------------------------------------------------------------------------------
/project-test/res/default/SliderBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/SliderBar.png
--------------------------------------------------------------------------------
/project-test/res/default/SliderNodeDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/SliderNodeDisable.png
--------------------------------------------------------------------------------
/project-test/res/default/SliderNodeNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/SliderNodeNormal.png
--------------------------------------------------------------------------------
/project-test/res/default/SliderNodeSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/SliderNodeSelect.png
--------------------------------------------------------------------------------
/project-test/res/default/Sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/Sprite.png
--------------------------------------------------------------------------------
/project-test/res/default/shurukuang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/default/shurukuang.png
--------------------------------------------------------------------------------
/project-test/res/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/grid.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a01.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a02.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a03.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a04.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a05.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a06.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a07.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a08.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a09.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a10.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a11.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a12.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a13.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a14.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a15.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a16.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a17.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a18.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a19.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a20.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a21.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a22.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a23.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a24.png
--------------------------------------------------------------------------------
/project-test/res/images/role/002/a25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/res/images/role/002/a25.png
--------------------------------------------------------------------------------
/project-test/ui/sub1.ui:
--------------------------------------------------------------------------------
1 | {
2 | "width": "300",
3 | "height": "100",
4 | "x": 0,
5 | "y": 0,
6 | "type": "Scene",
7 | "children": [
8 | {
9 | "width": "40",
10 | "height": "40",
11 | "x": 226,
12 | "y": 51,
13 | "id": "check",
14 | "type": "UICheckBox",
15 | "touchEnabled": true,
16 | "back": "res/default/CheckBoxNormal.png",
17 | "backSelect": "res/default/CheckBoxSelect.png",
18 | "active": "res/default/CheckBoxNodeNormal.png",
19 | "backDisable": "res/default/CheckBoxDisable.png",
20 | "activeDisable": "res/default/CheckBoxNodeDisable.png",
21 | "select": true
22 | },
23 | {
24 | "width": "89",
25 | "height": "28",
26 | "x": 56,
27 | "y": 59,
28 | "id": "text",
29 | "type": "UIText",
30 | "touchEnabled": false,
31 | "string": "VisualUI",
32 | "fontSize": 24,
33 | "fontName": "Arial"
34 | },
35 | {
36 | "width": "46",
37 | "height": "36",
38 | "x": 132,
39 | "y": 40,
40 | "type": "UIButton",
41 | "touchEnabled": true,
42 | "bgNormal": "res/default/ButtonNormal.png",
43 | "fontName": "Arial",
44 | "fontSize": 16
45 | }
46 | ]
47 | }
--------------------------------------------------------------------------------
/project-test/uires/button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/uires/button.png
--------------------------------------------------------------------------------
/project-test/uires/huodongdi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/uires/huodongdi.png
--------------------------------------------------------------------------------
/project-test/uires/loginBg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/uires/loginBg.jpg
--------------------------------------------------------------------------------
/project-test/uires/lv_num.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/uires/lv_num.png
--------------------------------------------------------------------------------
/project-test/uires/xinxikuang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/project-test/uires/xinxikuang.png
--------------------------------------------------------------------------------
/prop/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/prop/ve-widget/button-widget/button.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: inline-block;
3 | box-sizing: border-box;
4 | flex: none;
5 | line-height: 12px;
6 | }
7 |
8 | .btn {
9 | font-weight: bold;
10 | margin: 0px;
11 | min-width: 10px;
12 | text-align: center;
13 | border-radius: 2px;
14 | overflow: hidden;
15 | padding: 3px 3px;
16 | text-overflow: ellipsis;
17 | cursor: pointer;
18 | font-family: Arial, sans-serif;
19 | color: #ddd;
20 | margin-right: 3px;
21 | }
22 |
23 | .btn:hover {
24 | background-image: linear-gradient(#888, #4e4e4e);
25 | }
26 |
27 | .btn:focus {
28 | outline: none;
29 | }
30 |
31 | :host[pressed] .btn {
32 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5);
33 | color: #ddd;
34 | background-image: linear-gradient(#464646, #303030);
35 | }
--------------------------------------------------------------------------------
/prop/ve-widget/button-widget/button.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/prop/ve-widget/button-widget/button.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Polymer({
3 | behaviors: [Polymer.IronButtonState],
4 |
5 | listeners: {
6 | 'focus': '_onFocus',
7 | 'blur': '_onBlur',
8 | 'click': '_onEndEditing'
9 | },
10 |
11 | properties: {
12 | nofocus: {
13 | type: Boolean,
14 | value: false,
15 | notify: true,
16 | reflectToAttribute: true
17 | }
18 | },
19 |
20 | ready() {
21 | this.noNavigate = this.nofocus
22 | },
23 |
24 | _onEndEditing() {
25 | this.fire('confirm', {
26 | confirmByEnter: true
27 | }, {
28 | bubbles: false
29 | })
30 |
31 | this.async(() => {
32 | this.fire('end-editing')
33 | }, 1)
34 | }
35 | })
--------------------------------------------------------------------------------
/prop/ve-widget/buttons-widget/buttons-item/buttons-item.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | align-items: center;
4 | justify-content: center;
5 | box-sizing: border-box;
6 | background-color: #999;
7 | cursor: pointer;
8 | font-weight: bold;
9 | margin: 0px;
10 | min-width: 35px;
11 | text-align: center;
12 | flex-grow: 1;
13 | overflow: hidden;
14 | white-space: nowrap;
15 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
16 | color: #F2F2F2;
17 | transition: all 0.1s ease;
18 | }
19 |
20 | :host ::content .fa {
21 | padding: 0.2rem 0.4rem;
22 | }
23 |
24 | :host:hover {
25 | background-color: #464646;
26 | }
27 |
28 | :host:focus {
29 | outline: none;
30 | }
31 |
32 | :host[pressed] {
33 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
34 | color: #dedede;
35 | background-color: #303030;
36 | }
37 |
38 | :host[selected] {
39 | background-color: #2A2A2A;
40 | color: #fff;
41 | border-color: #343333;
42 | }
--------------------------------------------------------------------------------
/prop/ve-widget/buttons-widget/buttons-item/buttons-item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/prop/ve-widget/buttons-widget/buttons-item/buttons-item.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Polymer({
3 | behaviors: [Polymer.IronButtonState],
4 |
5 | listeners: {
6 | 'focus': '_onFocus',
7 | 'blur': '_onBlur',
8 | 'click': '_onEndEditing'
9 | },
10 |
11 | properties: {
12 | selected: {
13 | type: Boolean,
14 | value: false,
15 | notify: true,
16 | reflectToAttribute: true
17 | }
18 | },
19 |
20 | ready() {
21 | this.noNavigate = this.nofocus
22 | },
23 |
24 | _onEndEditing() {
25 | this.async(() => {
26 | this.fire('end-editing')
27 | }, 1)
28 | }
29 | })
--------------------------------------------------------------------------------
/prop/ve-widget/buttons-widget/buttons.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: inline-block;
3 | box-sizing: border-box;
4 | border-radius: 2px;
5 | overflow: hidden;
6 | font-size: 1rem;
7 | margin-right: 3px;
8 | }
9 |
10 | :host[disabled] {
11 | opacity: 0.5;
12 | pointer-events: none;
13 | }
14 |
15 | :host::shadow ve-buttons-item {
16 | border-right: 1px solid transparent;
17 | }
18 |
19 | :host::shadow ve-buttons-item:first-child {
20 | border-top-left-radius: 2px;
21 | border-bottom-left-radius: 2px;
22 | }
23 |
24 | :host::shadow ve-buttons-item:last-child {
25 | border-right: 0px;
26 | border-top-right-radius: 2px;
27 | border-bottom-right-radius: 2px;
28 | }
29 |
30 | :host.small::shadow ve-buttons-item {
31 | font-size: 0.8rem;
32 | padding: .3rem .3rem;
33 | }
34 |
35 | :host.large::shadow ve-buttons-item {
36 | font-size: 1.2rem;
37 | padding: .5rem 1.5rem;
38 | }
39 |
40 | :host.big::shadow ve-buttons-item {
41 | font-size: 1.4rem;
42 | padding: .5rem 2rem;
43 | }
44 |
45 | :host.classical {
46 | border: 1px solid #1f1f1f;
47 | }
48 |
49 | :host.classical::shadow ve-buttons-item {
50 | background-image: linear-gradient(#5a5a5a, #444);
51 | border: 1px solid #666565;
52 | border-left: 0px;
53 | padding: 0.3rem 0.3rem;
54 | }
55 |
56 | :host.classical::shadow ve-buttons-item:first-child {
57 | border-left: 1px solid #666565;
58 | }
59 |
60 | :host.classical::shadow ve-buttons-item[selected] {
61 | background-image: linear-gradient(#464646, #303030);
62 | box-shadow: inset 0 2px 20px rgba(0, 0, 0, 0.9);
63 | }
64 |
65 | :host.classical::shadow ve-buttons-item[pressed] {
66 | background-image: linear-gradient(#5a5a5a, #444);
67 | box-shadow: inset 0 2px 20px rgba(0, 0, 0, 0.7);
68 | }
--------------------------------------------------------------------------------
/prop/ve-widget/buttons-widget/buttons.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/prop/ve-widget/buttons-widget/buttons.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Polymer({
3 | behaviors: [Polymer.IronMultiSelectableBehavior],
4 |
5 | created() {
6 | this.selectedAttribute = 'selected'
7 | },
8 |
9 | ready() {
10 | this.noNavigate = this.nofocus
11 | },
12 |
13 | attached() {
14 | var _minWidth = 0
15 | Polymer.dom(this).children.forEach(item => {
16 | _minWidth += item.getBoundingClientRect().width
17 | })
18 | this.style.minWidth = _minWidth + 2 + 'px'
19 | },
20 |
21 | _selectionChange() {
22 | if (this.multi) {
23 | this.fire('multi-selected-changed')
24 | }
25 | }
26 | })
--------------------------------------------------------------------------------
/prop/ve-widget/checkbox-widget/checkbox.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | flex-direction: row;
4 | flex-wrap: nowrap;
5 | align-items: flex-start;
6 | font-size: 14px;
7 | white-space: nowrap;
8 | text-align: left;
9 | color: #ddd;
10 | cursor: pointer;
11 | }
12 |
13 | :host[focused] {
14 | color: #00a6ff;
15 | }
16 |
17 | :host[pressed] #togglebox:after {
18 | opacity: 0.7;
19 | }
20 |
21 | :host[pressed] #box {
22 | opacity: 0.7;
23 | }
24 |
25 | #icon {
26 | color: #00a6ff;
27 | opacity: 0;
28 | transition: opacity 0.1s ease;
29 | background: none;
30 | }
31 |
32 | #box {
33 | display: inline-block;
34 | box-sizing: border-box;
35 | width: 13px;
36 | height: 13px;
37 | min-width: 13px;
38 | min-height: 13px;
39 | border: 1px solid #000;
40 | font-size: 10px;
41 | text-align: center;
42 | background: #444;
43 | cursor: pointer;
44 | }
45 |
46 | #togglebox {
47 | display: none;
48 | position: relative;
49 | min-width: 4rem;
50 | min-height: 1.5rem;
51 | border-radius: 500rem;
52 | }
53 |
54 | #togglebox:before {
55 | position: absolute;
56 | content: '';
57 | width: 100%;
58 | height: 15px;
59 | background: #777;
60 | border-radius: 500rem;
61 | transition: background-color 0.5s ease;
62 | }
63 |
64 | #togglebox:after {
65 | position: absolute;
66 | content: '';
67 | width: 1.4rem;
68 | height: 1.4rem;
69 | background-color: #FFFFFF;
70 | border-radius: 500rem;
71 | left: 0rem;
72 | transition: left 0.3s ease;
73 | border: 1px solid #000;
74 | top: -2px;
75 | }
76 |
77 | .text {
78 | white-space: nowrap;
79 | overflow: hidden;
80 | text-overflow: ellipsis;
81 | text-indent: 5px;
82 | }
83 |
84 | :host[value] #togglebox:before {
85 | background: #818181;
86 | }
87 |
88 | :host[value] #togglebox:after {
89 | left: 2.5rem;
90 | }
91 |
92 | :host[value] #icon {
93 | opacity: 1;
94 | }
95 |
96 | #box:hover {
97 | border-color: #bababa;
98 | }
99 |
100 | :host[focused] #box {
101 | border: 1px solid #0c70a6;
102 | }
103 |
104 | :host[focused] #togglebox:after {
105 | border: 1px solid #0c70a6;
106 | }
107 |
108 | :host[disabled] {
109 | pointer-events: none;
110 | opacity: 0.5;
111 | }
112 |
113 | :host.toggle {
114 | line-height: 15px;
115 | }
116 |
117 | :host.toggle #box {
118 | display: none;
119 | }
120 |
121 | :host.toggle #togglebox {
122 | display: inline-block;
123 | }
--------------------------------------------------------------------------------
/prop/ve-widget/checkbox-widget/checkbox.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/prop/ve-widget/checkbox-widget/checkbox.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | Polymer({
3 | behaviors: [Polymer.IronButtonState],
4 |
5 | listeners: {
6 | 'focus': '_onFocus',
7 | 'blur': '_onBlur',
8 | 'click': '_onClick',
9 | },
10 |
11 | properties: {
12 | value: {
13 | type: Boolean,
14 | value: false,
15 | notify: true,
16 | reflectToAttribute: true,
17 | },
18 |
19 | nofocus: {
20 | type: Boolean,
21 | value: false,
22 | notify: true,
23 | reflectToAttribute: true,
24 | },
25 |
26 | readonly: {
27 | type: Boolean,
28 | value: false,
29 | reflectToAttribute: true,
30 | },
31 | },
32 |
33 | ready() {
34 | this.noNavigate = this.nofocus;
35 | },
36 |
37 | _onClick(event) {
38 | event.stopPropagation();
39 |
40 | this.value = !this.value;
41 | this.async(() => {
42 | this.fire('end-editing');
43 | }, 1);
44 | },
45 | });
--------------------------------------------------------------------------------
/prop/ve-widget/input-widget/input.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | position: relative;
4 | box-sizing: border-box;
5 | min-width: 60px;
6 | cursor: default;
7 | background: #555353;
8 | margin-right: 2px;
9 | margin-left: 2px;
10 | }
11 |
12 | :host:focus {
13 | outline: none;
14 | }
15 |
16 | :host:hover {
17 | border: 1px solid #999;
18 | }
19 |
20 | :host[focused] {
21 | border: 1px solid #228B22;
22 | }
23 |
24 | :host[disabled] {
25 | pointer-events: none;
26 | background: #000;
27 | }
28 |
29 | :host[disabled] #input {
30 | color: #787878;
31 | }
32 |
33 | :host[disabled] #input {
34 | pointer-events: none;
35 | }
36 |
37 | #input {
38 | display: block;
39 | padding: 3px 3px 3px 5px;
40 | border: 0;
41 | margin: 0;
42 | width: 100%;
43 | font-family: "宋体";
44 | background: transparent;
45 | color: #fff;
46 | pointer-events: auto;
47 | user-select: auto;
48 | cursor: auto;
49 | }
50 |
51 | #input::-webkit-input-placeholder {
52 | color: #eaeaea;
53 | text-shadow: none;
54 | font-size: 14px;
55 | }
56 |
57 | #input:focus {
58 | outline: none;
59 | }
60 |
61 | #input::selection {
62 | background: #007acc;
63 | }
64 |
65 | :host.mini #input {
66 | font-size: 0.6rem;
67 | }
68 |
69 | :host.small #input {
70 | font-size: 0.8rem;
71 | }
72 |
73 | :host #input {}
74 |
75 | :host.large #input {
76 | font-size: 1.2rem;
77 | }
78 |
79 | :host.big #input {
80 | font-size: 1.4rem;
81 | }
82 |
83 | :host[readonly] #input {
84 | -webkit-user-select: text;
85 | cursor: text;
86 | }
87 |
88 | .fa-times-circle {
89 | display: block;
90 | padding: 0;
91 | margin: -0.48em 0 0 0;
92 | position: absolute;
93 | top: 50%;
94 | right: 4px;
95 | cursor: pointer;
96 | }
97 |
98 | :host .fa-times-circle {
99 | font-size: 1.0rem;
100 | height: 1.2em;
101 | }
102 |
103 | :host[cancelable] #input {
104 | padding-right: 1.4em;
105 | }
--------------------------------------------------------------------------------
/prop/ve-widget/input-widget/input.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/prop/ve-widget/label-widget/label.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/prop/ve-widget/label-widget/label.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Polymer({
3 | properties: {
4 | disabled: {
5 | type: Boolean,
6 | notify: true,
7 | value: false,
8 | reflectToAttribute: true
9 | }
10 | }
11 | })
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/menu/menu.css:
--------------------------------------------------------------------------------
1 | :host {
2 | position: fixed;
3 | z-index: 999;
4 | box-sizing: border-box;
5 | font-size: 12px;
6 | width: 120px;
7 | min-width: 60px;
8 | max-height: 200px;
9 | overflow-y: auto;
10 | background: #2a2a2a;
11 | padding: 3px 4px 3px 4px;
12 | border-top: 0px;
13 | border-left: 1px solid #0c70a6;
14 | border-right: 1px solid #0c70a6;
15 | border-bottom: 1px solid #0c70a6;
16 | }
17 | :host.upward {
18 | border-bottom: 0px;
19 | border-left: 1px solid #0c70a6;
20 | border-right: 1px solid #0c70a6;
21 | border-top: 1px solid #0c70a6;
22 | }
23 |
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/menu/menu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/option/option.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: inline-block;
3 | height: auto;
4 | padding: 4px 4px;
5 | min-height: 12px;
6 | color: #aaa;
7 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
8 | cursor: pointer;
9 | overflow: hidden;
10 | white-space: nowrap;
11 | text-overflow: ellipsis;
12 | }
13 | :host:hover {
14 | background-color: #3f3f3f;
15 | }
16 | :host[selected] {
17 | background-color: #2865c7;
18 | }
19 | :host[disabled] {
20 | opacity: 0.5;
21 | pointer-events: none;
22 | }
23 |
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/option/option.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/option/option.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | Polymer({
3 | properties: {
4 | value: {
5 | type: String,
6 | value: ''
7 | },
8 |
9 | text: {
10 | type: String,
11 | value: ''
12 | },
13 |
14 | disabled: {
15 | type: Boolean,
16 | value: false,
17 | reflectToAttribute: true
18 | }
19 | },
20 | });
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/select.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | flex-direction: column;
4 | position: relative;
5 | box-sizing: border-box;
6 | font-size: 1.0rem;
7 | min-width: 60px;
8 | min-height: 24px;
9 | border: 1px solid black;
10 | }
11 | :host[focused] {
12 | border-color: #0c70a6;
13 | }
14 | :host[focused] .border {
15 | border-color: #171717;
16 | }
17 | :host[disabled] {
18 | border-color: rgba(29, 29, 29, 0.7);
19 | }
20 | :host[disabled] .border {
21 | background-color: #393939;
22 | border-color: #515151;
23 | color: #555;
24 | pointer-events: none;
25 | }
26 | :host[disabled] #placeholder {
27 | opacity: 1;
28 | }
29 | :host[readonly] .border {
30 | pointer-events: none;
31 | }
32 | .border {
33 | position: relative;
34 | border: 1px solid #666;
35 | padding: 3px 4px;
36 | font-family: Arial, sans-serif;
37 | color: #bbb;
38 | background-color: #555;
39 | cursor: pointer;
40 | }
41 | #text {
42 | overflow-x: hidden;
43 | white-space: nowrap;
44 | text-overflow: ellipsis;
45 | margin-right: 5px;
46 | flex: 1;
47 | }
48 | #text.placeholder {
49 | opacity: 0.5;
50 | font-style: italic;
51 | }
52 | .fa {
53 | width: 8px;
54 | text-align: center;
55 | }
56 | #options {
57 | display: none;
58 | }
59 |
--------------------------------------------------------------------------------
/prop/ve-widget/select-widget/select.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | {{_text(text)}}
10 |
11 |
12 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/prop/ve-widget/slider-widget/slider.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | align-items: center;
4 | min-height: 21px;
5 | }
6 | :host[input] ve-unit-input {
7 | display: flex;
8 | }
9 | :host[disabled] {
10 | opacity: 0.5;
11 | pointer-events: none;
12 | }
13 | #focus {
14 | position: relative;
15 | box-sizing: border-box;
16 |
17 | min-width: 50px;
18 | height: 21px;
19 | padding-left: 5px;
20 | padding-right: 5px;
21 | padding-top: 9px;
22 | cursor: pointer;
23 | }
24 | #track {
25 | height: 4px;
26 | cursor: inherit;
27 | background: #333;
28 | }
29 | #nubbin {
30 | display: inline-block;
31 | position: relative;
32 | width: 10px;
33 | height: 10px;
34 | margin-top: -6px;
35 | margin-left: -5px;
36 | cursor: inherit;
37 | box-shadow: 0 1px 3px -1px #fff inset, 0 1px 1px 0 rgba(0, 0, 0, 0.9);
38 | border-radius: 3px;
39 | background: #949494;
40 | }
41 | ve-unit-input {
42 | width: 40px;
43 | margin-left: 5px;
44 | }
--------------------------------------------------------------------------------
/prop/ve-widget/slider-widget/slider.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
16 |
17 |
18 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/prop/ve-widget/textarea-widget/textarea.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | position: relative;
4 | box-sizing: border-box;
5 | min-width: 60px;
6 | border: 1px solid #666666;
7 | cursor: default;
8 | background: #232323;
9 | }
10 |
11 | :host:focus {
12 | outline: none;
13 | }
14 |
15 | :host:hover {
16 | border: 1px solid #848484;
17 | }
18 |
19 | :host[focused] {
20 | border: 1px solid #0c70a6;
21 | }
22 |
23 | :host[invalid] {
24 | border: 1px solid red;
25 | }
26 |
27 | :host[disabled] {
28 | pointer-events: none;
29 | background: #3a3a3a;
30 | }
31 |
32 | :host[disabled] #input {
33 | color: #787878;
34 | }
35 |
36 | :host[disabled] #input {
37 | pointer-events: none;
38 | }
39 |
40 | #input {
41 | display: block;
42 | padding: 2px 4px;
43 | border: 0;
44 | margin: 0;
45 | width: 100%;
46 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
47 | background: transparent;
48 | color: #ddd;
49 | pointer-events: auto;
50 | user-select: auto;
51 | cursor: auto;
52 | }
53 |
54 | #input::-webkit-input-placeholder {
55 | font-style: italic;
56 | color: #666;
57 | text-shadow: none;
58 | }
59 |
60 | #input:focus {
61 | outline: none;
62 | }
63 |
64 | #input::selection {
65 | background: #007acc;
66 | }
67 |
68 | :host.mini #input {
69 | font-size: 0.6rem;
70 | }
71 |
72 | :host.small #input {
73 | font-size: 0.8rem;
74 | }
75 |
76 | :host #input {
77 | font-size: 1.0rem;
78 | }
79 |
80 | :host.large #input {
81 | font-size: 1.2rem;
82 | }
83 |
84 | :host.big #input {
85 | font-size: 1.4rem;
86 | }
87 |
88 | :host[readonly] #input {
89 | -webkit-user-select: text;
90 | cursor: text;
91 | }
--------------------------------------------------------------------------------
/prop/ve-widget/textarea-widget/textarea.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/prop/ve-widget/unit-input-widget/unit-input.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
{{hint}}
9 |
11 |
12 |
13 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/prop/ve/ve-asset-editor.html:
--------------------------------------------------------------------------------
1 |
2 |
23 |
24 | 编辑
25 | 读取
26 |
27 |
58 |
--------------------------------------------------------------------------------
/prop/ve/ve-field/ve-field.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/prop/ve/ve-field/ve-field.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Polymer({
3 | properties: {
4 | path: {
5 | type: String,
6 | value: ''
7 | },
8 | type: {
9 | type: String,
10 | value: '',
11 | observer: '_typeChanged'
12 | },
13 | attrs: {
14 | type: Object,
15 | value: function() {
16 | return {}
17 | },
18 | observer: '_attrsChanged'
19 | },
20 | value: {
21 | value: null,
22 | notify: true,
23 | observer: '_valueChanged'
24 | }
25 | },
26 | ready: function() {
27 | this.rebuild()
28 | },
29 | rebuild: function() {
30 | var t = this
31 | this.async(function() {
32 | t._rebuild()
33 | }, 50)
34 | },
35 | _rebuild: function() {
36 | var t = Polymer.dom(this),
37 | e = void 0
38 | let element_name = this.type || 'input'
39 | element_name = 've-' + element_name
40 | let child = t.firstChild
41 | let isRecreate = false
42 | if (!t.firstChild || t.firstChild.localName != element_name) {
43 | child = document.createElement(element_name)
44 | isRecreate = true
45 | }
46 | t.firstChild && t.removeChild(t.firstChild)
47 | child.value = this.value
48 | child.attrs = this.attrs
49 | child.path = this.path
50 | if (isRecreate) {
51 | if (this.type == 'select') {
52 | let selects = this.attrs.selects || {}
53 | for (var k in selects) {
54 | child.add(k, selects[k])
55 | }
56 | child.text = selects[this.value]
57 | }
58 | }
59 |
60 |
61 | t.appendChild(child)
62 | },
63 | _valueChanged: function(t, e) {
64 | if (!isNull(t) && !isNull(e) && typeof t != typeof e) {
65 | this.rebuild()
66 | }
67 | },
68 | _attrsChanged: function() {
69 | this.rebuild()
70 | },
71 | _typeChanged: function() {
72 | this.rebuild()
73 | }
74 | })
--------------------------------------------------------------------------------
/prop/ve/ve-preview/ve-image-editor.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 保存
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/prop/ve/ve-preview/ve-image-preview.html:
--------------------------------------------------------------------------------
1 |
2 |
41 |
42 |
43 |
44 |
45 |
46 |
{{info}}
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/prop/ve/ve-preview/ve-image-preview.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Polymer({
3 | properties: {
4 | info: {
5 | type: String,
6 | value: 'Unknown'
7 | },
8 | path: {
9 | type: String,
10 | value: '',
11 | observer: '_pathChanged'
12 | },
13 | mtime: {
14 | type: Number,
15 | value: 0
16 | }
17 | },
18 | _getSize: function() {
19 | return {
20 | width: this._image.width,
21 | height: this._image.height
22 | }
23 | },
24 |
25 | ready: function() {
26 |
27 | },
28 | _pathChanged: function() {
29 | if (!this.path) {
30 | return
31 | }
32 | var self = this
33 | this._image = new Image
34 | this._image.onload = function() {
35 | var size = self._getSize()
36 | self.info = size.width + ' x ' + size.height, self.resize()
37 | }
38 | this._image.src = fullPath(this.path)
39 |
40 | },
41 |
42 | fitSize: function(srcWidth, srcHeight, destWidth, destHeight) {
43 | let width, height
44 | if (srcWidth > destWidth && srcHeight > destHeight) {
45 | width = destWidth
46 | height = srcHeight * destWidth / srcWidth
47 |
48 | if (height > destHeight) {
49 | height = destHeight
50 | width = srcWidth * destHeight / srcHeight
51 | }
52 | } else if (srcWidth > destWidth) {
53 | width = destWidth
54 | height = srcHeight * destWidth / srcWidth
55 | } else if (srcHeight > destHeight) {
56 | width = srcWidth * destHeight / srcHeight
57 | height = destHeight
58 | } else {
59 | width = srcWidth
60 | height = srcHeight
61 | }
62 |
63 | return [width, height]
64 | },
65 | resize: function() {
66 | var contentRect = this.$.content.getBoundingClientRect(),
67 | imageSize = this._getSize(),
68 | size = this.fitSize(imageSize.width, imageSize.height, contentRect.width, contentRect.height)
69 |
70 | this.$.canvas.width = Math.ceil(size[0])
71 | this.$.canvas.height = Math.ceil(size[1])
72 | this.repaint()
73 | },
74 | repaint: function() {
75 | var canvas = this.$.canvas.getContext('2d')
76 | canvas.imageSmoothingEnabled = false
77 |
78 | var w = this.$.canvas.width,
79 | h = this.$.canvas.height
80 | canvas.drawImage(this._image, 0, 0, w, h)
81 | }
82 | })
--------------------------------------------------------------------------------
/prop/ve/ve-prop/ve-prop.css:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | /*flex-direction:row;
4 | flex-wrap:nowrap;*/
5 | align-items: center;
6 | font-size: 12px;
7 | box-sizing: border-box;
8 | min-height: 20px;
9 | margin-top: 7px;
10 | margin-bottom: 7px;
11 | cursor: default;
12 | letter-spacing: 1px;
13 | font-family: "微软雅黑"
14 | }
15 |
16 | .group {
17 | margin-left: 10px;
18 | margin-right: 10px
19 | }
20 |
21 | .name {
22 | min-width: 50px;
23 | max-width: 50px;
24 | text-overflow: ellipsis;
25 | color: #fff;
26 | }
27 |
28 | .name:hover {
29 | color: #f90
30 | }
31 |
32 | :host[focused] .name {
33 | color: #00a6ff
34 | }
--------------------------------------------------------------------------------
/prop/ve/ve-prop/ve-prop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
{{_nameText(prop.name)}}
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/prop/ve/ve-prop/ve-prop.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | Polymer({
4 | listeners: {
5 | keydown: '_onKeyDown'
6 | },
7 | properties: {
8 | prop: {
9 | value: function() {
10 | return {
11 | path: '',
12 | type: '',
13 | name: '',
14 | attrs: {},
15 | value: null
16 | }
17 | },
18 | notify: true
19 | }
20 | },
21 | ready: function() {},
22 | _nameText: function(name) {
23 | return name ? ToHumanText(name) : '(Anonymous)'
24 | },
25 | _nameClass: function(name) {
26 | return name ? 'name flex-1' : 'name anonymous flex-1'
27 | },
28 | _onKeyDown: function(event) {}
29 | })
--------------------------------------------------------------------------------
/prop/ve/ve-vec2.html:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
16 |
18 |
19 |
21 |
22 |
23 |
24 |
43 |
--------------------------------------------------------------------------------
/render/ipc.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | /**
4 | * @module Ipc
5 | */
6 | let Ipc = {}
7 | module.exports = Ipc
8 |
9 | Ipc.sendToAll = function(message, ...args) {
10 | if (typeof message !== 'string') {
11 | Console.error('Call to `sendToAll` failed. The message must be a string.')
12 | return
13 | }
14 |
15 | args = [null, message, ...args]
16 | _render2all.apply(null, args)
17 | }
18 | Ipc.sendToAllPanel = function(message, ...args) {
19 | if (typeof message !== 'string') {
20 | Console.error('Call to `sendToAllPanel` failed. The message must be a string.')
21 | return
22 | }
23 |
24 | args = [null, message, ...args]
25 | _render2allpanel.apply(null, args)
26 | }
27 |
28 | Ipc.sendToMain = function(message, ...args) {
29 | args = ['ipc-render2main', message, ...args]
30 | ipcRenderer.send.apply(ipcRenderer, args)
31 | }
32 |
33 | Ipc.sendToMainDirect = function(message, ...args) {
34 | args = [message, ...args]
35 | ipcRenderer.send.apply(ipcRenderer, args)
36 | }
37 |
38 | ipcRenderer.on('ipc-renderer2all', _render2all)
39 |
40 | ipcRenderer.on('ipc-renderer2allpanel', _render2allpanel)
41 |
42 | function _render2all(event, message, ...args) {
43 | let oneArgs = [...args]
44 | let docker = global.myDocker
45 | if (!docker) {
46 | return
47 | }
48 | let frameList = docker._frameList
49 | for (var i = 0; i < frameList.length; ++i) {
50 | let panels = frameList[i]._panelList
51 | for (var a = 0; a < panels.length; ++a) {
52 | var main = panels[a]._main
53 | if (main) {
54 | let msg = main.messages || {}
55 | let fn = msg[message]
56 | if (typeof fn === 'function') {
57 | fn.call(main, message, ...args)
58 | continue
59 | }
60 | main.dispatchEvent(new window.CustomEvent(message, args))
61 | }
62 | }
63 | }
64 | }
65 |
66 | function _render2allpanel(event, message, ...args) {
67 | let oneArgs = [...args]
68 | let docker = global.myDocker
69 | if (!docker) {
70 | return
71 | }
72 | let frameList = docker._frameList
73 | for (var i = 0; i < frameList.length; ++i) {
74 | let panels = frameList[i]._panelList
75 | for (var a = 0; a < panels.length; ++a) {
76 | var panel = panels[a]
77 | let msg = panel.messages || {}
78 | let fn = msg[message]
79 | if (typeof fn === 'function') {
80 | fn.call(panel, message, ...args)
81 | continue
82 | }
83 | }
84 | }
85 | }
--------------------------------------------------------------------------------
/res/align-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/align-bottom.png
--------------------------------------------------------------------------------
/res/align-h-center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/align-h-center.png
--------------------------------------------------------------------------------
/res/align-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/align-left.png
--------------------------------------------------------------------------------
/res/align-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/align-right.png
--------------------------------------------------------------------------------
/res/align-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/align-top.png
--------------------------------------------------------------------------------
/res/align-v-center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/align-v-center.png
--------------------------------------------------------------------------------
/res/alipay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/alipay.png
--------------------------------------------------------------------------------
/res/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/arrow_down.png
--------------------------------------------------------------------------------
/res/arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/arrow_up.png
--------------------------------------------------------------------------------
/res/control/Armature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Armature.png
--------------------------------------------------------------------------------
/res/control/Atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Atlas.png
--------------------------------------------------------------------------------
/res/control/Button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Button.png
--------------------------------------------------------------------------------
/res/control/CheckBox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/CheckBox.png
--------------------------------------------------------------------------------
/res/control/Input.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Input.png
--------------------------------------------------------------------------------
/res/control/Label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Label.png
--------------------------------------------------------------------------------
/res/control/Layout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Layout.png
--------------------------------------------------------------------------------
/res/control/Node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Node.png
--------------------------------------------------------------------------------
/res/control/Rich.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Rich.png
--------------------------------------------------------------------------------
/res/control/Scale9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Scale9.png
--------------------------------------------------------------------------------
/res/control/SliderBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/SliderBar.png
--------------------------------------------------------------------------------
/res/control/Sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/Sprite.png
--------------------------------------------------------------------------------
/res/control/listview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/listview.png
--------------------------------------------------------------------------------
/res/control/pageview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/pageview.png
--------------------------------------------------------------------------------
/res/control/scrollview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/control/scrollview.png
--------------------------------------------------------------------------------
/res/default/AltasNum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/AltasNum.png
--------------------------------------------------------------------------------
/res/default/ButtonDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/ButtonDisable.png
--------------------------------------------------------------------------------
/res/default/ButtonNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/ButtonNormal.png
--------------------------------------------------------------------------------
/res/default/ButtonSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/ButtonSelect.png
--------------------------------------------------------------------------------
/res/default/CheckBoxDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/CheckBoxDisable.png
--------------------------------------------------------------------------------
/res/default/CheckBoxNodeDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/CheckBoxNodeDisable.png
--------------------------------------------------------------------------------
/res/default/CheckBoxNodeNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/CheckBoxNodeNormal.png
--------------------------------------------------------------------------------
/res/default/CheckBoxNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/CheckBoxNormal.png
--------------------------------------------------------------------------------
/res/default/CheckBoxSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/CheckBoxSelect.png
--------------------------------------------------------------------------------
/res/default/Scale9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/Scale9.png
--------------------------------------------------------------------------------
/res/default/SliderBack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/SliderBack.png
--------------------------------------------------------------------------------
/res/default/SliderBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/SliderBar.png
--------------------------------------------------------------------------------
/res/default/SliderNodeDisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/SliderNodeDisable.png
--------------------------------------------------------------------------------
/res/default/SliderNodeNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/SliderNodeNormal.png
--------------------------------------------------------------------------------
/res/default/SliderNodeSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/SliderNodeSelect.png
--------------------------------------------------------------------------------
/res/default/Sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/Sprite.png
--------------------------------------------------------------------------------
/res/default/shurukuang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/default/shurukuang.png
--------------------------------------------------------------------------------
/res/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/grid.png
--------------------------------------------------------------------------------
/res/grid1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/grid1.png
--------------------------------------------------------------------------------
/res/grid2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/grid2.png
--------------------------------------------------------------------------------
/res/居中.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/res/居中.png
--------------------------------------------------------------------------------
/screenshot/2dx-screen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/screenshot/2dx-screen.jpg
--------------------------------------------------------------------------------
/screenshot/screenprint.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tickbh/VisualUIEditor/13e38a95be4d37aaa6f7faac3c57ff0e5190a0f9/screenshot/screenprint.jpg
--------------------------------------------------------------------------------
/third/ace/src/ext-error_marker.js:
--------------------------------------------------------------------------------
1 |
2 | ;
3 | (function() {
4 | window.require(["ace/ext/error_marker"], function() {});
5 | })();
6 |
--------------------------------------------------------------------------------
/third/ace/src/ext-linking.js:
--------------------------------------------------------------------------------
1 | define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) {
2 |
3 | var Editor = require("ace/editor").Editor;
4 |
5 | require("../config").defineOptions(Editor.prototype, "editor", {
6 | enableLinking: {
7 | set: function(val) {
8 | if (val) {
9 | this.on("click", onClick);
10 | this.on("mousemove", onMouseMove);
11 | } else {
12 | this.off("click", onClick);
13 | this.off("mousemove", onMouseMove);
14 | }
15 | },
16 | value: false
17 | }
18 | })
19 |
20 | function onMouseMove(e) {
21 | var editor = e.editor;
22 | var ctrl = e.getAccelKey();
23 |
24 | if (ctrl) {
25 | var editor = e.editor;
26 | var docPos = e.getDocumentPosition();
27 | var session = editor.session;
28 | var token = session.getTokenAt(docPos.row, docPos.column);
29 |
30 | editor._emit("linkHover", {position: docPos, token: token});
31 | }
32 | }
33 |
34 | function onClick(e) {
35 | var ctrl = e.getAccelKey();
36 | var button = e.getButton();
37 |
38 | if (button == 0 && ctrl) {
39 | var editor = e.editor;
40 | var docPos = e.getDocumentPosition();
41 | var session = editor.session;
42 | var token = session.getTokenAt(docPos.row, docPos.column);
43 |
44 | editor._emit("linkClick", {position: docPos, token: token});
45 | }
46 | }
47 |
48 | });
49 | (function() {
50 | window.require(["ace/ext/linking"], function() {});
51 | })();
52 |
--------------------------------------------------------------------------------
/third/ace/src/ext-statusbar.js:
--------------------------------------------------------------------------------
1 | define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"], function(require, exports, module) {
2 | "use strict";
3 | var dom = require("ace/lib/dom");
4 | var lang = require("ace/lib/lang");
5 |
6 | var StatusBar = function(editor, parentNode) {
7 | this.element = dom.createElement("div");
8 | this.element.className = "ace_status-indicator";
9 | this.element.style.cssText = "display: inline-block;";
10 | parentNode.appendChild(this.element);
11 |
12 | var statusUpdate = lang.delayedCall(function(){
13 | this.updateStatus(editor)
14 | }.bind(this)).schedule.bind(null, 100);
15 |
16 | editor.on("changeStatus", statusUpdate);
17 | editor.on("changeSelection", statusUpdate);
18 | editor.on("keyboardActivity", statusUpdate);
19 | };
20 |
21 | (function(){
22 | this.updateStatus = function(editor) {
23 | var status = [];
24 | function add(str, separator) {
25 | str && status.push(str, separator || "|");
26 | }
27 |
28 | add(editor.keyBinding.getStatusText(editor));
29 | if (editor.commands.recording)
30 | add("REC");
31 |
32 | var sel = editor.selection;
33 | var c = sel.lead;
34 |
35 | if (!sel.isEmpty()) {
36 | var r = editor.getSelectionRange();
37 | add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")", " ");
38 | }
39 | add(c.row + ":" + c.column, " ");
40 | if (sel.rangeCount)
41 | add("[" + sel.rangeCount + "]", " ");
42 | status.pop();
43 | this.element.textContent = status.join("");
44 | };
45 | }).call(StatusBar.prototype);
46 |
47 | exports.StatusBar = StatusBar;
48 |
49 | });
50 | (function() {
51 | window.require(["ace/ext/statusbar"], function() {});
52 | })();
53 |
--------------------------------------------------------------------------------
/third/ace/src/mode-gitignore.js:
--------------------------------------------------------------------------------
1 | define("ace/mode/gitignore_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2 | "use strict";
3 |
4 | var oop = require("../lib/oop");
5 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6 |
7 | var GitignoreHighlightRules = function() {
8 | this.$rules = {
9 | "start" : [
10 | {
11 | token : "comment",
12 | regex : /^\s*#.*$/
13 | }, {
14 | token : "keyword", // negated patterns
15 | regex : /^\s*!.*$/
16 | }
17 | ]
18 | };
19 |
20 | this.normalizeRules();
21 | };
22 |
23 | GitignoreHighlightRules.metaData = {
24 | fileTypes: ['gitignore'],
25 | name: 'Gitignore'
26 | };
27 |
28 | oop.inherits(GitignoreHighlightRules, TextHighlightRules);
29 |
30 | exports.GitignoreHighlightRules = GitignoreHighlightRules;
31 | });
32 |
33 | define("ace/mode/gitignore",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gitignore_highlight_rules"], function(require, exports, module) {
34 | "use strict";
35 |
36 | var oop = require("../lib/oop");
37 | var TextMode = require("./text").Mode;
38 | var GitignoreHighlightRules = require("./gitignore_highlight_rules").GitignoreHighlightRules;
39 |
40 | var Mode = function() {
41 | this.HighlightRules = GitignoreHighlightRules;
42 | };
43 | oop.inherits(Mode, TextMode);
44 |
45 | (function() {
46 | this.lineCommentStart = "#";
47 | this.$id = "ace/mode/gitignore";
48 | }).call(Mode.prototype);
49 |
50 | exports.Mode = Mode;
51 | });
52 |
--------------------------------------------------------------------------------
/third/ace/src/mode-lucene.js:
--------------------------------------------------------------------------------
1 | define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) {
2 | "use strict";
3 |
4 | var oop = require("../lib/oop");
5 | var lang = require("../lib/lang");
6 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
7 |
8 | var LuceneHighlightRules = function() {
9 | this.$rules = {
10 | "start" : [
11 | {
12 | token : "constant.character.negation",
13 | regex : "[\\-]"
14 | }, {
15 | token : "constant.character.interro",
16 | regex : "[\\?]"
17 | }, {
18 | token : "constant.character.asterisk",
19 | regex : "[\\*]"
20 | }, {
21 | token: 'constant.character.proximity',
22 | regex: '~[0-9]+\\b'
23 | }, {
24 | token : 'keyword.operator',
25 | regex: '(?:AND|OR|NOT)\\b'
26 | }, {
27 | token : "paren.lparen",
28 | regex : "[\\(]"
29 | }, {
30 | token : "paren.rparen",
31 | regex : "[\\)]"
32 | }, {
33 | token : "keyword",
34 | regex : "[\\S]+:"
35 | }, {
36 | token : "string", // " string
37 | regex : '".*?"'
38 | }, {
39 | token : "text",
40 | regex : "\\s+"
41 | }
42 | ]
43 | };
44 | };
45 |
46 | oop.inherits(LuceneHighlightRules, TextHighlightRules);
47 |
48 | exports.LuceneHighlightRules = LuceneHighlightRules;
49 | });
50 |
51 | define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lucene_highlight_rules"], function(require, exports, module) {
52 | 'use strict';
53 |
54 | var oop = require("../lib/oop");
55 | var TextMode = require("./text").Mode;
56 | var LuceneHighlightRules = require("./lucene_highlight_rules").LuceneHighlightRules;
57 |
58 | var Mode = function() {
59 | this.HighlightRules = LuceneHighlightRules;
60 | };
61 |
62 | oop.inherits(Mode, TextMode);
63 |
64 | (function() {
65 | this.$id = "ace/mode/lucene";
66 | }).call(Mode.prototype);
67 |
68 | exports.Mode = Mode;
69 | });
70 |
--------------------------------------------------------------------------------
/third/ace/src/mode-plain_text.js:
--------------------------------------------------------------------------------
1 | define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"], function(require, exports, module) {
2 | "use strict";
3 |
4 | var oop = require("../lib/oop");
5 | var TextMode = require("./text").Mode;
6 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
7 | var Behaviour = require("./behaviour").Behaviour;
8 |
9 | var Mode = function() {
10 | this.HighlightRules = TextHighlightRules;
11 | this.$behaviour = new Behaviour();
12 | };
13 |
14 | oop.inherits(Mode, TextMode);
15 |
16 | (function() {
17 | this.type = "text";
18 | this.getNextLineIndent = function(state, line, tab) {
19 | return '';
20 | };
21 | this.$id = "ace/mode/plain_text";
22 | }).call(Mode.prototype);
23 |
24 | exports.Mode = Mode;
25 | });
26 |
--------------------------------------------------------------------------------
/third/ace/src/mode-properties.js:
--------------------------------------------------------------------------------
1 | define("ace/mode/properties_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2 | "use strict";
3 |
4 | var oop = require("../lib/oop");
5 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6 |
7 | var PropertiesHighlightRules = function() {
8 |
9 | var escapeRe = /\\u[0-9a-fA-F]{4}|\\/;
10 |
11 | this.$rules = {
12 | "start" : [
13 | {
14 | token : "comment",
15 | regex : /[!#].*$/
16 | }, {
17 | token : "keyword",
18 | regex : /[=:]$/
19 | }, {
20 | token : "keyword",
21 | regex : /[=:]/,
22 | next : "value"
23 | }, {
24 | token : "constant.language.escape",
25 | regex : escapeRe
26 | }, {
27 | defaultToken: "variable"
28 | }
29 | ],
30 | "value" : [
31 | {
32 | regex : /\\$/,
33 | token : "string",
34 | next : "value"
35 | }, {
36 | regex : /$/,
37 | token : "string",
38 | next : "start"
39 | }, {
40 | token : "constant.language.escape",
41 | regex : escapeRe
42 | }, {
43 | defaultToken: "string"
44 | }
45 | ]
46 | };
47 |
48 | };
49 |
50 | oop.inherits(PropertiesHighlightRules, TextHighlightRules);
51 |
52 | exports.PropertiesHighlightRules = PropertiesHighlightRules;
53 | });
54 |
55 | define("ace/mode/properties",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/properties_highlight_rules"], function(require, exports, module) {
56 | "use strict";
57 |
58 | var oop = require("../lib/oop");
59 | var TextMode = require("./text").Mode;
60 | var PropertiesHighlightRules = require("./properties_highlight_rules").PropertiesHighlightRules;
61 |
62 | var Mode = function() {
63 | this.HighlightRules = PropertiesHighlightRules;
64 | };
65 | oop.inherits(Mode, TextMode);
66 |
67 | (function() {
68 | this.$id = "ace/mode/properties";
69 | }).call(Mode.prototype);
70 |
71 | exports.Mode = Mode;
72 | });
73 |
--------------------------------------------------------------------------------
/third/ace/src/mode-text.js:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/abap.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/abap",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "abap";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/abc.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/abc",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "\n\
5 | snippet zupfnoter.print\n\
6 | %%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}], \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\n\
7 | \n\
8 | snippet zupfnoter.note\n\
9 | %%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\n\
10 | \n\
11 | snippet zupfnoter.annotation\n\
12 | %%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\n\
13 | \n\
14 | snippet zupfnoter.lyrics\n\
15 | %%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\n\
16 | \n\
17 | snippet zupfnoter.legend\n\
18 | %%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\n\
19 | \n\
20 | \n\
21 | \n\
22 | snippet zupfnoter.target\n\
23 | \"^:${1:target}\"\n\
24 | \n\
25 | snippet zupfnoter.goto\n\
26 | \"^@${1:target}@${2:distance}\"\n\
27 | \n\
28 | snippet zupfnoter.annotationref\n\
29 | \"^#${1:target}\"\n\
30 | \n\
31 | snippet zupfnoter.annotation\n\
32 | \"^!${1:text}@${2:x_offset},${3:y_offset}\"\n\
33 | \n\
34 | \n\
35 | ";
36 | exports.scope = "abc";
37 |
38 | });
39 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/ada.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/ada",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "ada";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/apache_conf.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/apache_conf",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "apache_conf";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/applescript.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/applescript",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "applescript";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/asciidoc.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/asciidoc",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "asciidoc";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/assembly_x86.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/assembly_x86",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "assembly_x86";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/autohotkey.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/autohotkey",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "autohotkey";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/batchfile.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/batchfile",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "batchfile";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/c9search.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/c9search",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "c9search";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/cirru.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/cirru",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "cirru";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/cobol.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/cobol",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "cobol";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/coldfusion.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/coldfusion",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "coldfusion";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/csharp.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/csharp",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "csharp";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/curly.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/curly",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "curly";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/d.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/d",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "d";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/dart.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/dart",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet lib\n\
5 | library ${1};\n\
6 | ${2}\n\
7 | snippet im\n\
8 | import '${1}';\n\
9 | ${2}\n\
10 | snippet pa\n\
11 | part '${1}';\n\
12 | ${2}\n\
13 | snippet pao\n\
14 | part of ${1};\n\
15 | ${2}\n\
16 | snippet main\n\
17 | void main() {\n\
18 | ${1:/* code */}\n\
19 | }\n\
20 | snippet st\n\
21 | static ${1}\n\
22 | snippet fi\n\
23 | final ${1}\n\
24 | snippet re\n\
25 | return ${1}\n\
26 | snippet br\n\
27 | break;\n\
28 | snippet th\n\
29 | throw ${1}\n\
30 | snippet cl\n\
31 | class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\
32 | snippet imp\n\
33 | implements ${1}\n\
34 | snippet ext\n\
35 | extends ${1}\n\
36 | snippet if\n\
37 | if (${1:true}) {\n\
38 | ${2}\n\
39 | }\n\
40 | snippet ife\n\
41 | if (${1:true}) {\n\
42 | ${2}\n\
43 | } else {\n\
44 | ${3}\n\
45 | }\n\
46 | snippet el\n\
47 | else\n\
48 | snippet sw\n\
49 | switch (${1}) {\n\
50 | ${2}\n\
51 | }\n\
52 | snippet cs\n\
53 | case ${1}:\n\
54 | ${2}\n\
55 | snippet de\n\
56 | default:\n\
57 | ${1}\n\
58 | snippet for\n\
59 | for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n\
60 | ${4:$1[$2]}\n\
61 | }\n\
62 | snippet fore\n\
63 | for (final ${2:item} in ${1:itemList}) {\n\
64 | ${3:/* code */}\n\
65 | }\n\
66 | snippet wh\n\
67 | while (${1:/* condition */}) {\n\
68 | ${2:/* code */}\n\
69 | }\n\
70 | snippet dowh\n\
71 | do {\n\
72 | ${2:/* code */}\n\
73 | } while (${1:/* condition */});\n\
74 | snippet as\n\
75 | assert(${1:/* condition */});\n\
76 | snippet try\n\
77 | try {\n\
78 | ${2}\n\
79 | } catch (${1:Exception e}) {\n\
80 | }\n\
81 | snippet tryf\n\
82 | try {\n\
83 | ${2}\n\
84 | } catch (${1:Exception e}) {\n\
85 | } finally {\n\
86 | }\n\
87 | ";
88 | exports.scope = "dart";
89 |
90 | });
91 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/diff.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/diff",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\n\
5 | snippet header DEP-3 style header\n\
6 | Description: ${1}\n\
7 | Origin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n\
8 | Bug: ${4:url in upstream bugtracker}\n\
9 | Forwarded: ${5:no|not-needed|url}\n\
10 | Author: ${6:`g:snips_author`}\n\
11 | Reviewed-by: ${7:name and email}\n\
12 | Last-Update: ${8:`strftime(\"%Y-%m-%d\")`}\n\
13 | Applied-Upstream: ${9:upstream version|url|commit}\n\
14 | \n\
15 | ";
16 | exports.scope = "diff";
17 |
18 | });
19 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/dockerfile.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/dockerfile",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "dockerfile";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/dot.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/dot",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "dot";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/drools.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/drools",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "\n\
5 | snippet rule\n\
6 | rule \"${1?:rule_name}\"\n\
7 | when\n\
8 | ${2:// when...} \n\
9 | then\n\
10 | ${3:// then...}\n\
11 | end\n\
12 | \n\
13 | snippet query\n\
14 | query ${1?:query_name}\n\
15 | ${2:// find} \n\
16 | end\n\
17 | \n\
18 | snippet declare\n\
19 | declare ${1?:type_name}\n\
20 | ${2:// attributes} \n\
21 | end\n\
22 | \n\
23 | ";
24 | exports.scope = "drools";
25 |
26 | });
27 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/eiffel.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/eiffel",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "eiffel";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/ejs.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/ejs",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "ejs";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/elixir.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/elixir",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/elm.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/elm",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "elm";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/forth.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/forth",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "forth";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/fortran.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/fortran",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "fortran";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/ftl.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/ftl",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "ftl";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/gcode.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/gcode",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "gcode";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/gherkin.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/gherkin",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "gherkin";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/gitignore.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/gitignore",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "gitignore";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/glsl.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/glsl",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "glsl";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/gobstones.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/gobstones",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# Procedure\n\
5 | snippet proc\n\
6 | procedure ${1?:name}(${2:argument}) {\n\
7 | ${3:// body...}\n\
8 | }\n\
9 | \n\
10 | # Function\n\
11 | snippet fun\n\
12 | function ${1?:name}(${2:argument}) {\n\
13 | return ${3:// body...}\n\
14 | }\n\
15 | \n\
16 | # Repeat\n\
17 | snippet rep\n\
18 | repeat ${1?:times} {\n\
19 | ${2:// body...}\n\
20 | }\n\
21 | \n\
22 | # For\n\
23 | snippet for\n\
24 | foreach ${1?:e} in ${2?:list} {\n\
25 | ${3:// body...} \n\
26 | }\n\
27 | \n\
28 | # If\n\
29 | snippet if\n\
30 | if (${1?:condition}) {\n\
31 | ${3:// body...} \n\
32 | }\n\
33 | \n\
34 | # While\n\
35 | while (${1?:condition}) {\n\
36 | ${2:// body...} \n\
37 | }\n\
38 | ";
39 | exports.scope = "gobstones";
40 |
41 | });
42 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/golang.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/golang",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "golang";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/groovy.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/groovy",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "groovy";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/haml.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/haml",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet t\n\
5 | %table\n\
6 | %tr\n\
7 | %th\n\
8 | ${1:headers}\n\
9 | %tr\n\
10 | %td\n\
11 | ${2:headers}\n\
12 | snippet ul\n\
13 | %ul\n\
14 | %li\n\
15 | ${1:item}\n\
16 | %li\n\
17 | snippet =rp\n\
18 | = render :partial => '${1:partial}'\n\
19 | snippet =rpl\n\
20 | = render :partial => '${1:partial}', :locals => {}\n\
21 | snippet =rpc\n\
22 | = render :partial => '${1:partial}', :collection => @$1\n\
23 | \n\
24 | ";
25 | exports.scope = "haml";
26 |
27 | });
28 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/handlebars.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/handlebars",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "handlebars";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/haskell.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/haskell",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet lang\n\
5 | {-# LANGUAGE ${1:OverloadedStrings} #-}\n\
6 | snippet info\n\
7 | -- |\n\
8 | -- Module : ${1:Module.Namespace}\n\
9 | -- Copyright : ${2:Author} ${3:2011-2012}\n\
10 | -- License : ${4:BSD3}\n\
11 | --\n\
12 | -- Maintainer : ${5:email@something.com}\n\
13 | -- Stability : ${6:experimental}\n\
14 | -- Portability : ${7:unknown}\n\
15 | --\n\
16 | -- ${8:Description}\n\
17 | --\n\
18 | snippet import\n\
19 | import ${1:Data.Text}\n\
20 | snippet import2\n\
21 | import ${1:Data.Text} (${2:head})\n\
22 | snippet importq\n\
23 | import qualified ${1:Data.Text} as ${2:T}\n\
24 | snippet inst\n\
25 | instance ${1:Monoid} ${2:Type} where\n\
26 | ${3}\n\
27 | snippet type\n\
28 | type ${1:Type} = ${2:Type}\n\
29 | snippet data\n\
30 | data ${1:Type} = ${2:$1} ${3:Int}\n\
31 | snippet newtype\n\
32 | newtype ${1:Type} = ${2:$1} ${3:Int}\n\
33 | snippet class\n\
34 | class ${1:Class} a where\n\
35 | ${2}\n\
36 | snippet module\n\
37 | module `substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')` (\n\
38 | ) where\n\
39 | `expand('%') =~ 'Main' ? \"\\n\\nmain = do\\n print \\\"hello world\\\"\" : \"\"`\n\
40 | \n\
41 | snippet const\n\
42 | ${1:name} :: ${2:a}\n\
43 | $1 = ${3:undefined}\n\
44 | snippet fn\n\
45 | ${1:fn} :: ${2:a} -> ${3:a}\n\
46 | $1 ${4} = ${5:undefined}\n\
47 | snippet fn2\n\
48 | ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\n\
49 | $1 ${5} = ${6:undefined}\n\
50 | snippet ap\n\
51 | ${1:map} ${2:fn} ${3:list}\n\
52 | snippet do\n\
53 | do\n\
54 | \n\
55 | snippet λ\n\
56 | \\${1:x} -> ${2}\n\
57 | snippet \\\n\
58 | \\${1:x} -> ${2}\n\
59 | snippet <-\n\
60 | ${1:a} <- ${2:m a}\n\
61 | snippet ←\n\
62 | ${1:a} <- ${2:m a}\n\
63 | snippet ->\n\
64 | ${1:m a} -> ${2:a}\n\
65 | snippet →\n\
66 | ${1:m a} -> ${2:a}\n\
67 | snippet tup\n\
68 | (${1:a}, ${2:b})\n\
69 | snippet tup2\n\
70 | (${1:a}, ${2:b}, ${3:c})\n\
71 | snippet tup3\n\
72 | (${1:a}, ${2:b}, ${3:c}, ${4:d})\n\
73 | snippet rec\n\
74 | ${1:Record} { ${2:recFieldA} = ${3:undefined}\n\
75 | , ${4:recFieldB} = ${5:undefined}\n\
76 | }\n\
77 | snippet case\n\
78 | case ${1:something} of\n\
79 | ${2} -> ${3}\n\
80 | snippet let\n\
81 | let ${1} = ${2}\n\
82 | in ${3}\n\
83 | snippet where\n\
84 | where\n\
85 | ${1:fn} = ${2:undefined}\n\
86 | ";
87 | exports.scope = "haskell";
88 |
89 | });
90 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/haskell_cabal.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/haskell_cabal",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "haskell_cabal";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/haxe.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/haxe",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "haxe";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/html_elixir.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/html_elixir",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "html_elixir";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/html_ruby.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/html_ruby",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "html_ruby";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/ini.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/ini",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "ini";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/io.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/io",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippets = [
5 | {
6 | "content": "assertEquals(${1:expected}, ${2:expr})",
7 | "name": "assertEquals",
8 | "scope": "io",
9 | "tabTrigger": "ae"
10 | },
11 | {
12 | "content": "${1:${2:newValue} := ${3:Object} }clone do(\n\t$0\n)",
13 | "name": "clone do",
14 | "scope": "io",
15 | "tabTrigger": "cdo"
16 | },
17 | {
18 | "content": "docSlot(\"${1:slotName}\", \"${2:documentation}\")",
19 | "name": "docSlot",
20 | "scope": "io",
21 | "tabTrigger": "ds"
22 | },
23 | {
24 | "content": "(${1:header,}\n\t${2:body}\n)$0",
25 | "keyEquivalent": "@(",
26 | "name": "Indented Bracketed Line",
27 | "scope": "io",
28 | "tabTrigger": "("
29 | },
30 | {
31 | "content": "\n\t$0\n",
32 | "keyEquivalent": "\r",
33 | "name": "Special: Return Inside Empty Parenthesis",
34 | "scope": "io meta.empty-parenthesis.io, io meta.comma-parenthesis.io"
35 | },
36 | {
37 | "content": "${1:methodName} := method(${2:args,}\n\t$0\n)",
38 | "name": "method",
39 | "scope": "io",
40 | "tabTrigger": "m"
41 | },
42 | {
43 | "content": "newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0",
44 | "name": "newSlot",
45 | "scope": "io",
46 | "tabTrigger": "ns"
47 | },
48 | {
49 | "content": "${1:name} := Object clone do(\n\t$0\n)",
50 | "name": "Object clone do",
51 | "scope": "io",
52 | "tabTrigger": "ocdo"
53 | },
54 | {
55 | "content": "test${1:SomeFeature} := method(\n\t$0\n)",
56 | "name": "testMethod",
57 | "scope": "io",
58 | "tabTrigger": "ts"
59 | },
60 | {
61 | "content": "${1:Something}Test := ${2:UnitTest} clone do(\n\t$0\n)",
62 | "name": "UnitTest",
63 | "scope": "io",
64 | "tabTrigger": "ut"
65 | }
66 | ];
67 | exports.scope = "io";
68 |
69 | });
70 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/jack.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/jack",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "jack";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/jade.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/jade",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "jade";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/json.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/json",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "json";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/jsoniq.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/jsoniq",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet for\n\
5 | for $${1:item} in ${2:expr}\n\
6 | snippet return\n\
7 | return ${1:expr}\n\
8 | snippet import\n\
9 | import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\
10 | snippet some\n\
11 | some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
12 | snippet every\n\
13 | every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
14 | snippet if\n\
15 | if(${1:true}) then ${2:expr} else ${3:true}\n\
16 | snippet switch\n\
17 | switch(${1:\"foo\"})\n\
18 | case ${2:\"foo\"}\n\
19 | return ${3:true}\n\
20 | default return ${4:false}\n\
21 | snippet try\n\
22 | try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\
23 | snippet tumbling\n\
24 | for tumbling window $${1:varname} in ${2:expr}\n\
25 | start at $${3:start} when ${4:expr}\n\
26 | end at $${5:end} when ${6:expr}\n\
27 | return ${7:expr}\n\
28 | snippet sliding\n\
29 | for sliding window $${1:varname} in ${2:expr}\n\
30 | start at $${3:start} when ${4:expr}\n\
31 | end at $${5:end} when ${6:expr}\n\
32 | return ${7:expr}\n\
33 | snippet let\n\
34 | let $${1:varname} := ${2:expr}\n\
35 | snippet group\n\
36 | group by $${1:varname} := ${2:expr}\n\
37 | snippet order\n\
38 | order by ${1:expr} ${2:descending}\n\
39 | snippet stable\n\
40 | stable order by ${1:expr}\n\
41 | snippet count\n\
42 | count $${1:varname}\n\
43 | snippet ordered\n\
44 | ordered { ${1:expr} }\n\
45 | snippet unordered\n\
46 | unordered { ${1:expr} }\n\
47 | snippet treat \n\
48 | treat as ${1:expr}\n\
49 | snippet castable\n\
50 | castable as ${1:atomicType}\n\
51 | snippet cast\n\
52 | cast as ${1:atomicType}\n\
53 | snippet typeswitch\n\
54 | typeswitch(${1:expr})\n\
55 | case ${2:type} return ${3:expr}\n\
56 | default return ${4:expr}\n\
57 | snippet var\n\
58 | declare variable $${1:varname} := ${2:expr};\n\
59 | snippet fn\n\
60 | declare function ${1:ns}:${2:name}(){\n\
61 | ${3:expr}\n\
62 | };\n\
63 | snippet module\n\
64 | module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\
65 | ";
66 | exports.scope = "jsoniq";
67 |
68 | });
69 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/jsx.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/jsx",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "jsx";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/julia.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/julia",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "julia";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/kotlin.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/kotlin",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/latex.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/latex",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "latex";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/lean.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/lean",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "lean";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/less.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/less",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "less";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/liquid.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/liquid",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "liquid";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/lisp.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/lisp",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "lisp";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/live_script.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/live_script",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/livescript.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/livescript",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "livescript";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/logiql.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/logiql",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "logiql";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/lua.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/lua",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet #!\n\
5 | #!/usr/bin/env lua\n\
6 | $1\n\
7 | snippet local\n\
8 | local ${1:x} = ${2:1}\n\
9 | snippet fun\n\
10 | function ${1:fname}(${2:...})\n\
11 | ${3:-- body}\n\
12 | end\n\
13 | snippet for\n\
14 | for ${1:i}=${2:1},${3:10} do\n\
15 | ${4:print(i)}\n\
16 | end\n\
17 | snippet forp\n\
18 | for ${1:i},${2:v} in pairs(${3:table_name}) do\n\
19 | ${4:-- body}\n\
20 | end\n\
21 | snippet fori\n\
22 | for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\
23 | ${4:-- body}\n\
24 | end\n\
25 | ";
26 | exports.scope = "lua";
27 |
28 | });
29 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/luapage.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/luapage",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "luapage";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/lucene.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/lucene",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "lucene";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/makefile.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/makefile",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet ifeq\n\
5 | ifeq (${1:cond0},${2:cond1})\n\
6 | ${3:code}\n\
7 | endif\n\
8 | ";
9 | exports.scope = "makefile";
10 |
11 | });
12 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/markdown.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/markdown",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# Markdown\n\
5 | \n\
6 | # Includes octopress (http://octopress.org/) snippets\n\
7 | \n\
8 | snippet [\n\
9 | [${1:text}](http://${2:address} \"${3:title}\")\n\
10 | snippet [*\n\
11 | [${1:link}](${2:`@*`} \"${3:title}\")${4}\n\
12 | \n\
13 | snippet [:\n\
14 | [${1:id}]: http://${2:url} \"${3:title}\"\n\
15 | snippet [:*\n\
16 | [${1:id}]: ${2:`@*`} \"${3:title}\"\n\
17 | \n\
18 | snippet \n\
20 | snippet ${4}\n\
22 | \n\
23 | snippet ![:\n\
24 | ![${1:id}]: ${2:url} \"${3:title}\"\n\
25 | snippet ![:*\n\
26 | ![${1:id}]: ${2:`@*`} \"${3:title}\"\n\
27 | \n\
28 | snippet ===\n\
29 | regex /^/=+/=*//\n\
30 | ${PREV_LINE/./=/g}\n\
31 | \n\
32 | ${0}\n\
33 | snippet ---\n\
34 | regex /^/-+/-*//\n\
35 | ${PREV_LINE/./-/g}\n\
36 | \n\
37 | ${0}\n\
38 | snippet blockquote\n\
39 | {% blockquote %}\n\
40 | ${1:quote}\n\
41 | {% endblockquote %}\n\
42 | \n\
43 | snippet blockquote-author\n\
44 | {% blockquote ${1:author}, ${2:title} %}\n\
45 | ${3:quote}\n\
46 | {% endblockquote %}\n\
47 | \n\
48 | snippet blockquote-link\n\
49 | {% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n\
50 | ${4:quote}\n\
51 | {% endblockquote %}\n\
52 | \n\
53 | snippet bt-codeblock-short\n\
54 | ```\n\
55 | ${1:code_snippet}\n\
56 | ```\n\
57 | \n\
58 | snippet bt-codeblock-full\n\
59 | ``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n\
60 | ${5:code_snippet}\n\
61 | ```\n\
62 | \n\
63 | snippet codeblock-short\n\
64 | {% codeblock %}\n\
65 | ${1:code_snippet}\n\
66 | {% endcodeblock %}\n\
67 | \n\
68 | snippet codeblock-full\n\
69 | {% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n\
70 | ${5:code_snippet}\n\
71 | {% endcodeblock %}\n\
72 | \n\
73 | snippet gist-full\n\
74 | {% gist ${1:gist_id} ${2:filename} %}\n\
75 | \n\
76 | snippet gist-short\n\
77 | {% gist ${1:gist_id} %}\n\
78 | \n\
79 | snippet img\n\
80 | {% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\
81 | \n\
82 | snippet youtube\n\
83 | {% youtube ${1:video_id} %}\n\
84 | \n\
85 | # The quote should appear only once in the text. It is inherently part of it.\n\
86 | # See http://octopress.org/docs/plugins/pullquote/ for more info.\n\
87 | \n\
88 | snippet pullquote\n\
89 | {% pullquote %}\n\
90 | ${1:text} {\" ${2:quote} \"} ${3:text}\n\
91 | {% endpullquote %}\n\
92 | ";
93 | exports.scope = "markdown";
94 |
95 | });
96 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/mask.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/mask",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "mask";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/matlab.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/matlab",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "matlab";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/maze.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/maze",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet >\n\
5 | description assignment\n\
6 | scope maze\n\
7 | -> ${1}= ${2}\n\
8 | \n\
9 | snippet >\n\
10 | description if\n\
11 | scope maze\n\
12 | -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n\
13 | ";
14 | exports.scope = "maze";
15 |
16 | });
17 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/mel.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/mel",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "mel";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/mips_assembler.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/mips_assembler",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "mips_assembler";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/mipsassembler.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/mipsassembler",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/mushcode.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/mushcode",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "mushcode";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/mysql.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/mysql",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "mysql";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/nix.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/nix",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "nix";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/nsis.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/nsis",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/objectivec.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/objectivec",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "objectivec";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/ocaml.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/ocaml",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "ocaml";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/pascal.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/pascal",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "pascal";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/pgsql.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/pgsql",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "pgsql";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/plain_text.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/plain_text",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "plain_text";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/powershell.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/powershell",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "powershell";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/praat.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/praat",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "praat";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/prolog.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/prolog",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "prolog";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/properties.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/properties",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "properties";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/protobuf.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/protobuf",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "";
5 | exports.scope = "protobuf";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/razor.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/razor",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet if\n\
5 | (${1} == ${2}) {\n\
6 | ${3}\n\
7 | }";
8 | exports.scope = "razor";
9 |
10 | });
11 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/rdoc.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/rdoc",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "rdoc";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/rhtml.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/rhtml",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "rhtml";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/rst.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/rst",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# rst\n\
5 | \n\
6 | snippet :\n\
7 | :${1:field name}: ${2:field body}\n\
8 | snippet *\n\
9 | *${1:Emphasis}*\n\
10 | snippet **\n\
11 | **${1:Strong emphasis}**\n\
12 | snippet _\n\
13 | \\`${1:hyperlink-name}\\`_\n\
14 | .. _\\`$1\\`: ${2:link-block}\n\
15 | snippet =\n\
16 | ${1:Title}\n\
17 | =====${2:=}\n\
18 | ${3}\n\
19 | snippet -\n\
20 | ${1:Title}\n\
21 | -----${2:-}\n\
22 | ${3}\n\
23 | snippet cont:\n\
24 | .. contents::\n\
25 | \n\
26 | ";
27 | exports.scope = "rst";
28 |
29 | });
30 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/rust.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/rust",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "rust";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/sass.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/sass",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "sass";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/scad.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/scad",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "scad";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/scala.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/scala",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "scala";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/scheme.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/scheme",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "scheme";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/scss.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/scss",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "scss";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/sjs.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/sjs",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "sjs";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/smarty.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/smarty",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "smarty";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/snippets.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/snippets",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# snippets for making snippets :)\n\
5 | snippet snip\n\
6 | snippet ${1:trigger}\n\
7 | ${2}\n\
8 | snippet msnip\n\
9 | snippet ${1:trigger} ${2:description}\n\
10 | ${3}\n\
11 | snippet v\n\
12 | {VISUAL}\n\
13 | ";
14 | exports.scope = "snippets";
15 |
16 | });
17 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/soy_template.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/soy_template",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "soy_template";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/space.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/space",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "space";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/sql.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/sql",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet tbl\n\
5 | create table ${1:table} (\n\
6 | ${2:columns}\n\
7 | );\n\
8 | snippet col\n\
9 | ${1:name} ${2:type} ${3:default ''} ${4:not null}\n\
10 | snippet ccol\n\
11 | ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\n\
12 | snippet ncol\n\
13 | ${1:name} number ${3:default 0} ${4:not null}\n\
14 | snippet dcol\n\
15 | ${1:name} date ${3:default sysdate} ${4:not null}\n\
16 | snippet ind\n\
17 | create index ${3:$1_$2} on ${1:table}(${2:column});\n\
18 | snippet uind\n\
19 | create unique index ${1:name} on ${2:table}(${3:column});\n\
20 | snippet tblcom\n\
21 | comment on table ${1:table} is '${2:comment}';\n\
22 | snippet colcom\n\
23 | comment on column ${1:table}.${2:column} is '${3:comment}';\n\
24 | snippet addcol\n\
25 | alter table ${1:table} add (${2:column} ${3:type});\n\
26 | snippet seq\n\
27 | create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\n\
28 | snippet s*\n\
29 | select * from ${1:table}\n\
30 | ";
31 | exports.scope = "sql";
32 |
33 | });
34 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/sqlserver.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/sqlserver",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# ISNULL\n\
5 | snippet isnull\n\
6 | ISNULL(${1:check_expression}, ${2:replacement_value})\n\
7 | # FORMAT\n\
8 | snippet format\n\
9 | FORMAT(${1:value}, ${2:format})\n\
10 | # CAST\n\
11 | snippet cast\n\
12 | CAST(${1:expression} AS ${2:data_type})\n\
13 | # CONVERT\n\
14 | snippet convert\n\
15 | CONVERT(${1:data_type}, ${2:expression})\n\
16 | # DATEPART\n\
17 | snippet datepart\n\
18 | DATEPART(${1:datepart}, ${2:date})\n\
19 | # DATEDIFF\n\
20 | snippet datediff\n\
21 | DATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n\
22 | # DATEADD\n\
23 | snippet dateadd\n\
24 | DATEADD(${1:datepart}, ${2:number}, ${3:date})\n\
25 | # DATEFROMPARTS \n\
26 | snippet datefromparts\n\
27 | DATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n\
28 | # OBJECT_DEFINITION\n\
29 | snippet objectdef\n\
30 | SELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n\
31 | # STUFF XML\n\
32 | snippet stuffxml\n\
33 | STUFF((SELECT ', ' + ${1:ColumnName}\n\
34 | FROM ${2:TableName}\n\
35 | WHERE ${3:WhereClause}\n\
36 | FOR XML PATH('')), 1, 1, '') AS ${4:Alias}\n\
37 | ${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\n\
38 | # Create Procedure\n\
39 | snippet createproc\n\
40 | -- =============================================\n\
41 | -- Author: ${1:Author}\n\
42 | -- Create date: ${2:Date}\n\
43 | -- Description: ${3:Description}\n\
44 | -- =============================================\n\
45 | CREATE PROCEDURE ${4:Procedure_Name}\n\
46 | ${5:/*Add the parameters for the stored procedure here*/}\n\
47 | AS\n\
48 | BEGIN\n\
49 | -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\n\
50 | SET NOCOUNT ON;\n\
51 | \n\
52 | ${6:/*Add the T-SQL statements to compute the return value here*/}\n\
53 | \n\
54 | END\n\
55 | GO\n\
56 | # Create Scalar Function\n\
57 | snippet createfn\n\
58 | -- =============================================\n\
59 | -- Author: ${1:Author}\n\
60 | -- Create date: ${2:Date}\n\
61 | -- Description: ${3:Description}\n\
62 | -- =============================================\n\
63 | CREATE FUNCTION ${4:Scalar_Function_Name}\n\
64 | -- Add the parameters for the function here\n\
65 | RETURNS ${5:Function_Data_Type}\n\
66 | AS\n\
67 | BEGIN\n\
68 | DECLARE @Result ${5:Function_Data_Type}\n\
69 | \n\
70 | ${6:/*Add the T-SQL statements to compute the return value here*/}\n\
71 | \n\
72 | END\n\
73 | GO";
74 | exports.scope = "sqlserver";
75 |
76 | });
77 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/stylus.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/stylus",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "stylus";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/svg.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/svg",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "svg";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/swift.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/swift",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "swift";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/swig.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/swig",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "swig";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/tcl.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/tcl",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# #!/usr/bin/env tclsh\n\
5 | snippet #!\n\
6 | #!/usr/bin/env tclsh\n\
7 | \n\
8 | # Process\n\
9 | snippet pro\n\
10 | proc ${1:function_name} {${2:args}} {\n\
11 | ${3:#body ...}\n\
12 | }\n\
13 | #xif\n\
14 | snippet xif\n\
15 | ${1:expr}? ${2:true} : ${3:false}\n\
16 | # Conditional\n\
17 | snippet if\n\
18 | if {${1}} {\n\
19 | ${2:# body...}\n\
20 | }\n\
21 | # Conditional if..else\n\
22 | snippet ife\n\
23 | if {${1}} {\n\
24 | ${2:# body...}\n\
25 | } else {\n\
26 | ${3:# else...}\n\
27 | }\n\
28 | # Conditional if..elsif..else\n\
29 | snippet ifee\n\
30 | if {${1}} {\n\
31 | ${2:# body...}\n\
32 | } elseif {${3}} {\n\
33 | ${4:# elsif...}\n\
34 | } else {\n\
35 | ${5:# else...}\n\
36 | }\n\
37 | # If catch then\n\
38 | snippet ifc\n\
39 | if { [catch {${1:#do something...}} ${2:err}] } {\n\
40 | ${3:# handle failure...}\n\
41 | }\n\
42 | # Catch\n\
43 | snippet catch\n\
44 | catch {${1}} ${2:err} ${3:options}\n\
45 | # While Loop\n\
46 | snippet wh\n\
47 | while {${1}} {\n\
48 | ${2:# body...}\n\
49 | }\n\
50 | # For Loop\n\
51 | snippet for\n\
52 | for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n\
53 | ${4:# body...}\n\
54 | }\n\
55 | # Foreach Loop\n\
56 | snippet fore\n\
57 | foreach ${1:x} {${2:#list}} {\n\
58 | ${3:# body...}\n\
59 | }\n\
60 | # after ms script...\n\
61 | snippet af\n\
62 | after ${1:ms} ${2:#do something}\n\
63 | # after cancel id\n\
64 | snippet afc\n\
65 | after cancel ${1:id or script}\n\
66 | # after idle\n\
67 | snippet afi\n\
68 | after idle ${1:script}\n\
69 | # after info id\n\
70 | snippet afin\n\
71 | after info ${1:id}\n\
72 | # Expr\n\
73 | snippet exp\n\
74 | expr {${1:#expression here}}\n\
75 | # Switch\n\
76 | snippet sw\n\
77 | switch ${1:var} {\n\
78 | ${3:pattern 1} {\n\
79 | ${4:#do something}\n\
80 | }\n\
81 | default {\n\
82 | ${2:#do something}\n\
83 | }\n\
84 | }\n\
85 | # Case\n\
86 | snippet ca\n\
87 | ${1:pattern} {\n\
88 | ${2:#do something}\n\
89 | }${3}\n\
90 | # Namespace eval\n\
91 | snippet ns\n\
92 | namespace eval ${1:path} {${2:#script...}}\n\
93 | # Namespace current\n\
94 | snippet nsc\n\
95 | namespace current\n\
96 | ";
97 | exports.scope = "tcl";
98 |
99 | });
100 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/text.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/text",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "text";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/textile.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/textile",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# Jekyll post header\n\
5 | snippet header\n\
6 | ---\n\
7 | title: ${1:title}\n\
8 | layout: post\n\
9 | date: ${2:date} ${3:hour:minute:second} -05:00\n\
10 | ---\n\
11 | \n\
12 | # Image\n\
13 | snippet img\n\
14 | !${1:url}(${2:title}):${3:link}!\n\
15 | \n\
16 | # Table\n\
17 | snippet |\n\
18 | |${1}|${2}\n\
19 | \n\
20 | # Link\n\
21 | snippet link\n\
22 | \"${1:link text}\":${2:url}\n\
23 | \n\
24 | # Acronym\n\
25 | snippet (\n\
26 | (${1:Expand acronym})${2}\n\
27 | \n\
28 | # Footnote\n\
29 | snippet fn\n\
30 | [${1:ref number}] ${3}\n\
31 | \n\
32 | fn$1. ${2:footnote}\n\
33 | \n\
34 | ";
35 | exports.scope = "textile";
36 |
37 | });
38 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/toml.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/toml",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "toml";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/tsx.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/tsx",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "tsx";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/twig.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/twig",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "twig";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/typescript.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/typescript",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "typescript";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/vbscript.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/vbscript",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "vbscript";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/velocity.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/velocity",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# macro\n\
5 | snippet #macro\n\
6 | #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n\
7 | ${3:## macro code}\n\
8 | #end\n\
9 | # foreach\n\
10 | snippet #foreach\n\
11 | #foreach ( ${1:\\$item} in ${2:\\$collection} )\n\
12 | ${3:## foreach code}\n\
13 | #end\n\
14 | # if\n\
15 | snippet #if\n\
16 | #if ( ${1:true} )\n\
17 | ${0}\n\
18 | #end\n\
19 | # if ... else\n\
20 | snippet #ife\n\
21 | #if ( ${1:true} )\n\
22 | ${2}\n\
23 | #else\n\
24 | ${0}\n\
25 | #end\n\
26 | #import\n\
27 | snippet #import\n\
28 | #import ( \"${1:path/to/velocity/format}\" )\n\
29 | # set\n\
30 | snippet #set\n\
31 | #set ( $${1:var} = ${0} )\n\
32 | ";
33 | exports.scope = "velocity";
34 | exports.includeScopes = ["html", "javascript", "css"];
35 |
36 | });
37 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/verilog.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/verilog",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "verilog";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/vhdl.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/vhdl",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "vhdl";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/wollok.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/wollok",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "##\n\
5 | ## Basic Java packages and import\n\
6 | snippet im\n\
7 | import\n\
8 | snippet w.l\n\
9 | wollok.lang\n\
10 | snippet w.i\n\
11 | wollok.lib\n\
12 | \n\
13 | ## Class and object\n\
14 | snippet cl\n\
15 | class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\
16 | snippet obj\n\
17 | object ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\n\
18 | snippet te\n\
19 | test ${1:`Filename(\"\", \"untitled\")`}\n\
20 | \n\
21 | ##\n\
22 | ## Enhancements\n\
23 | snippet inh\n\
24 | inherits\n\
25 | \n\
26 | ##\n\
27 | ## Comments\n\
28 | snippet /*\n\
29 | /*\n\
30 | * ${1}\n\
31 | */\n\
32 | \n\
33 | ##\n\
34 | ## Control Statements\n\
35 | snippet el\n\
36 | else\n\
37 | snippet if\n\
38 | if (${1}) ${2}\n\
39 | \n\
40 | ##\n\
41 | ## Create a Method\n\
42 | snippet m\n\
43 | method ${1:method}(${2}) ${5}\n\
44 | \n\
45 | ## \n\
46 | ## Tests\n\
47 | snippet as\n\
48 | assert.equals(${1:expected}, ${2:actual})\n\
49 | \n\
50 | ##\n\
51 | ## Exceptions\n\
52 | snippet ca\n\
53 | catch ${1:e} : (${2:Exception} ) ${3}\n\
54 | snippet thr\n\
55 | throw\n\
56 | snippet try\n\
57 | try {\n\
58 | ${3}\n\
59 | } catch ${1:e} : ${2:Exception} {\n\
60 | }\n\
61 | \n\
62 | ##\n\
63 | ## Javadocs\n\
64 | snippet /**\n\
65 | /**\n\
66 | * ${1}\n\
67 | */\n\
68 | \n\
69 | ##\n\
70 | ## Print Methods\n\
71 | snippet print\n\
72 | console.println(\"${1:Message}\")\n\
73 | \n\
74 | ##\n\
75 | ## Setter and Getter Methods\n\
76 | snippet set\n\
77 | method set${1:}(${2:}) {\n\
78 | $1 = $2\n\
79 | }\n\
80 | snippet get\n\
81 | method get${1:}() {\n\
82 | return ${1:};\n\
83 | }\n\
84 | \n\
85 | ##\n\
86 | ## Terminate Methods or Loops\n\
87 | snippet re\n\
88 | return";
89 | exports.scope = "wollok";
90 |
91 | });
92 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/xml.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/xml",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "xml";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/xquery.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/xquery",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "snippet for\n\
5 | for $${1:item} in ${2:expr}\n\
6 | snippet return\n\
7 | return ${1:expr}\n\
8 | snippet import\n\
9 | import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\
10 | snippet some\n\
11 | some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
12 | snippet every\n\
13 | every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
14 | snippet if\n\
15 | if(${1:true}) then ${2:expr} else ${3:true}\n\
16 | snippet switch\n\
17 | switch(${1:\"foo\"})\n\
18 | case ${2:\"foo\"}\n\
19 | return ${3:true}\n\
20 | default return ${4:false}\n\
21 | snippet try\n\
22 | try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\
23 | snippet tumbling\n\
24 | for tumbling window $${1:varname} in ${2:expr}\n\
25 | start at $${3:start} when ${4:expr}\n\
26 | end at $${5:end} when ${6:expr}\n\
27 | return ${7:expr}\n\
28 | snippet sliding\n\
29 | for sliding window $${1:varname} in ${2:expr}\n\
30 | start at $${3:start} when ${4:expr}\n\
31 | end at $${5:end} when ${6:expr}\n\
32 | return ${7:expr}\n\
33 | snippet let\n\
34 | let $${1:varname} := ${2:expr}\n\
35 | snippet group\n\
36 | group by $${1:varname} := ${2:expr}\n\
37 | snippet order\n\
38 | order by ${1:expr} ${2:descending}\n\
39 | snippet stable\n\
40 | stable order by ${1:expr}\n\
41 | snippet count\n\
42 | count $${1:varname}\n\
43 | snippet ordered\n\
44 | ordered { ${1:expr} }\n\
45 | snippet unordered\n\
46 | unordered { ${1:expr} }\n\
47 | snippet treat \n\
48 | treat as ${1:expr}\n\
49 | snippet castable\n\
50 | castable as ${1:atomicType}\n\
51 | snippet cast\n\
52 | cast as ${1:atomicType}\n\
53 | snippet typeswitch\n\
54 | typeswitch(${1:expr})\n\
55 | case ${2:type} return ${3:expr}\n\
56 | default return ${4:expr}\n\
57 | snippet var\n\
58 | declare variable $${1:varname} := ${2:expr};\n\
59 | snippet fn\n\
60 | declare function ${1:ns}:${2:name}(){\n\
61 | ${3:expr}\n\
62 | };\n\
63 | snippet module\n\
64 | module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\
65 | ";
66 | exports.scope = "xquery";
67 |
68 | });
69 |
--------------------------------------------------------------------------------
/third/ace/src/snippets/yaml.js:
--------------------------------------------------------------------------------
1 | define("ace/snippets/yaml",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText =undefined;
5 | exports.scope = "yaml";
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/third/ace/src/theme-kuroir.js:
--------------------------------------------------------------------------------
1 | define("ace/theme/kuroir",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
2 |
3 | exports.isDark = false;
4 | exports.cssClass = "ace-kuroir";
5 | exports.cssText = "\
6 | .ace-kuroir .ace_gutter {\
7 | background: #e8e8e8;\
8 | color: #333;\
9 | }\
10 | .ace-kuroir .ace_print-margin {\
11 | width: 1px;\
12 | background: #e8e8e8;\
13 | }\
14 | .ace-kuroir {\
15 | background-color: #E8E9E8;\
16 | color: #363636;\
17 | }\
18 | .ace-kuroir .ace_cursor {\
19 | color: #202020;\
20 | }\
21 | .ace-kuroir .ace_marker-layer .ace_selection {\
22 | background: rgba(245, 170, 0, 0.57);\
23 | }\
24 | .ace-kuroir.ace_multiselect .ace_selection.ace_start {\
25 | box-shadow: 0 0 3px 0px #E8E9E8;\
26 | }\
27 | .ace-kuroir .ace_marker-layer .ace_step {\
28 | background: rgb(198, 219, 174);\
29 | }\
30 | .ace-kuroir .ace_marker-layer .ace_bracket {\
31 | margin: -1px 0 0 -1px;\
32 | border: 1px solid rgba(0, 0, 0, 0.29);\
33 | }\
34 | .ace-kuroir .ace_marker-layer .ace_active-line {\
35 | background: rgba(203, 220, 47, 0.22);\
36 | }\
37 | .ace-kuroir .ace_gutter-active-line {\
38 | background-color: rgba(203, 220, 47, 0.22);\
39 | }\
40 | .ace-kuroir .ace_marker-layer .ace_selected-word {\
41 | border: 1px solid rgba(245, 170, 0, 0.57);\
42 | }\
43 | .ace-kuroir .ace_invisible {\
44 | color: #BFBFBF\
45 | }\
46 | .ace-kuroir .ace_fold {\
47 | border-color: #363636;\
48 | }\
49 | .ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;\
50 | background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;\
51 | font-style:italic;\
52 | color:#FD1732;\
53 | background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;\
54 | background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);\
55 | background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;\
56 | background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}\
57 | ";
58 |
59 | var dom = require("../lib/dom");
60 | dom.importCssString(exports.cssText, exports.cssClass);
61 | });
62 |
--------------------------------------------------------------------------------
/third/ace/src/theme-xcode.js:
--------------------------------------------------------------------------------
1 | define("ace/theme/xcode",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
2 |
3 | exports.isDark = false;
4 | exports.cssClass = "ace-xcode";
5 | exports.cssText = "\
6 | .ace-xcode .ace_gutter {\
7 | background: #e8e8e8;\
8 | color: #333\
9 | }\
10 | .ace-xcode .ace_print-margin {\
11 | width: 1px;\
12 | background: #e8e8e8\
13 | }\
14 | .ace-xcode {\
15 | background-color: #FFFFFF;\
16 | color: #000000\
17 | }\
18 | .ace-xcode .ace_cursor {\
19 | color: #000000\
20 | }\
21 | .ace-xcode .ace_marker-layer .ace_selection {\
22 | background: #B5D5FF\
23 | }\
24 | .ace-xcode.ace_multiselect .ace_selection.ace_start {\
25 | box-shadow: 0 0 3px 0px #FFFFFF;\
26 | }\
27 | .ace-xcode .ace_marker-layer .ace_step {\
28 | background: rgb(198, 219, 174)\
29 | }\
30 | .ace-xcode .ace_marker-layer .ace_bracket {\
31 | margin: -1px 0 0 -1px;\
32 | border: 1px solid #BFBFBF\
33 | }\
34 | .ace-xcode .ace_marker-layer .ace_active-line {\
35 | background: rgba(0, 0, 0, 0.071)\
36 | }\
37 | .ace-xcode .ace_gutter-active-line {\
38 | background-color: rgba(0, 0, 0, 0.071)\
39 | }\
40 | .ace-xcode .ace_marker-layer .ace_selected-word {\
41 | border: 1px solid #B5D5FF\
42 | }\
43 | .ace-xcode .ace_constant.ace_language,\
44 | .ace-xcode .ace_keyword,\
45 | .ace-xcode .ace_meta,\
46 | .ace-xcode .ace_variable.ace_language {\
47 | color: #C800A4\
48 | }\
49 | .ace-xcode .ace_invisible {\
50 | color: #BFBFBF\
51 | }\
52 | .ace-xcode .ace_constant.ace_character,\
53 | .ace-xcode .ace_constant.ace_other {\
54 | color: #275A5E\
55 | }\
56 | .ace-xcode .ace_constant.ace_numeric {\
57 | color: #3A00DC\
58 | }\
59 | .ace-xcode .ace_entity.ace_other.ace_attribute-name,\
60 | .ace-xcode .ace_support.ace_constant,\
61 | .ace-xcode .ace_support.ace_function {\
62 | color: #450084\
63 | }\
64 | .ace-xcode .ace_fold {\
65 | background-color: #C800A4;\
66 | border-color: #000000\
67 | }\
68 | .ace-xcode .ace_entity.ace_name.ace_tag,\
69 | .ace-xcode .ace_support.ace_class,\
70 | .ace-xcode .ace_support.ace_type {\
71 | color: #790EAD\
72 | }\
73 | .ace-xcode .ace_storage {\
74 | color: #C900A4\
75 | }\
76 | .ace-xcode .ace_string {\
77 | color: #DF0002\
78 | }\
79 | .ace-xcode .ace_comment {\
80 | color: #008E00\
81 | }\
82 | .ace-xcode .ace_indent-guide {\
83 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y\
84 | }";
85 |
86 | var dom = require("../lib/dom");
87 | dom.importCssString(exports.cssText, exports.cssClass);
88 | });
89 |
--------------------------------------------------------------------------------