mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	@@ -1,5 +1,5 @@
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright 2013, 2014 IBM Corp.
 | 
			
		||||
  Copyright 2013, 2015 IBM Corp.
 | 
			
		||||
 | 
			
		||||
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
  you may not use this file except in compliance with the License.
 | 
			
		||||
@@ -20,8 +20,9 @@
 | 
			
		||||
        <input type="text" id="node-input-name" placeholder="Name">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row" style="margin-bottom: 0px;">
 | 
			
		||||
            <label for="node-input-func"><i class="fa fa-wrench"></i> Function</label>
 | 
			
		||||
            <input type="hidden" id="node-input-func" autofocus="autofocus">
 | 
			
		||||
        <label for="node-input-func"><i class="fa fa-wrench"></i> Function</label>
 | 
			
		||||
        <input type="hidden" id="node-input-func" autofocus="autofocus">
 | 
			
		||||
        <input type="hidden" id="node-input-valid">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row node-text-editor-row">
 | 
			
		||||
        <div style="height: 250px;" class="node-text-editor" id="node-input-func-editor" ></div>
 | 
			
		||||
@@ -34,22 +35,22 @@
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/x-red" data-help-name="function">
 | 
			
		||||
	<p>A function block where you can write code to do more interesting things.</p>
 | 
			
		||||
	<p>The message is passed in as a JavaScript object called <code>msg</code>.</p>
 | 
			
		||||
	<p>By convention it will have a <code>msg.payload</code> property containing
 | 
			
		||||
	   the body of the message.</p>
 | 
			
		||||
	<p>The function should return the messages it wants to pass on to the next nodes
 | 
			
		||||
	in the flow. It can return:</p>
 | 
			
		||||
	<ul>
 | 
			
		||||
	  <li>a single message object - passed to nodes connected to the first output</li>
 | 
			
		||||
	  <li>an array of message objects - passed to nodes connected to the corresponding outputs</li>
 | 
			
		||||
    <p>A function block where you can write code to do more interesting things.</p>
 | 
			
		||||
    <p>The message is passed in as a JavaScript object called <code>msg</code>.</p>
 | 
			
		||||
    <p>By convention it will have a <code>msg.payload</code> property containing
 | 
			
		||||
       the body of the message.</p>
 | 
			
		||||
    <p>The function should return the messages it wants to pass on to the next nodes
 | 
			
		||||
    in the flow. It can return:</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li>a single message object - passed to nodes connected to the first output</li>
 | 
			
		||||
      <li>an array of message objects - passed to nodes connected to the corresponding outputs</li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <p>If any element of the array is itself an array of messages, multiple
 | 
			
		||||
	      messages are sent to the corresponding output.</p>
 | 
			
		||||
	<p>If null is returned, either by itself or as an element of the array, no
 | 
			
		||||
	      message is passed on.</p>
 | 
			
		||||
	<p>See the <a target="_new" href="http://nodered.org/docs/writing-functions.html">online documentation</a> for more help.</p>
 | 
			
		||||
	      
 | 
			
		||||
          messages are sent to the corresponding output.</p>
 | 
			
		||||
    <p>If null is returned, either by itself or as an element of the array, no
 | 
			
		||||
          message is passed on.</p>
 | 
			
		||||
    <p>See the <a target="_new" href="http://nodered.org/docs/writing-functions.html">online documentation</a> for more help.</p>
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
@@ -59,7 +60,8 @@
 | 
			
		||||
        defaults: {
 | 
			
		||||
            name: {value:""},
 | 
			
		||||
            func: {value:"\nreturn msg;"},
 | 
			
		||||
            outputs: {value:1}
 | 
			
		||||
            outputs: {value:1},
 | 
			
		||||
            valid: {value:true,required:true}
 | 
			
		||||
        },
 | 
			
		||||
        inputs:1,
 | 
			
		||||
        outputs:1,
 | 
			
		||||
@@ -68,11 +70,13 @@
 | 
			
		||||
            return this.name;
 | 
			
		||||
        },
 | 
			
		||||
        oneditprepare: function() {
 | 
			
		||||
            var that = this;
 | 
			
		||||
            $( "#node-input-outputs" ).spinner({
 | 
			
		||||
                min:1
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            function functionDialogResize() {
 | 
			
		||||
                that.editor.resize();
 | 
			
		||||
                var rows = $("#dialog-form>div:not(.node-text-editor-row)");
 | 
			
		||||
                var height = $("#dialog-form").height();
 | 
			
		||||
                for (var i=0;i<rows.size();i++) {
 | 
			
		||||
@@ -82,7 +86,6 @@
 | 
			
		||||
                height -= (parseInt(editorRow.css("marginTop"))+parseInt(editorRow.css("marginBottom")));
 | 
			
		||||
                $(".node-text-editor").css("height",height+"px");
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            $( "#dialog" ).on("dialogresize", functionDialogResize);
 | 
			
		||||
            $( "#dialog" ).one("dialogopen", function(ev) {
 | 
			
		||||
                var size = $( "#dialog" ).dialog('option','sizeCache-function');
 | 
			
		||||
@@ -96,25 +99,33 @@
 | 
			
		||||
                var height = $( "#dialog" ).dialog('option','height');
 | 
			
		||||
                $( "#dialog" ).off("dialogresize",functionDialogResize);
 | 
			
		||||
            });
 | 
			
		||||
            var that = this;
 | 
			
		||||
            require(["orion/editor/edit"], function(edit) {
 | 
			
		||||
                that.editor = edit({
 | 
			
		||||
                    parent:document.getElementById('node-input-func-editor'),
 | 
			
		||||
                    lang:"js",
 | 
			
		||||
                    contents: $("#node-input-func").val()
 | 
			
		||||
                });
 | 
			
		||||
                RED.library.create({
 | 
			
		||||
                    url:"functions", // where to get the data from
 | 
			
		||||
                    type:"function", // the type of object the library is for
 | 
			
		||||
                    editor:that.editor, // the field name the main text body goes to
 | 
			
		||||
                    fields:['name','outputs']
 | 
			
		||||
                });
 | 
			
		||||
                $("#node-input-name").focus();
 | 
			
		||||
 | 
			
		||||
            this.editor = RED.editor.createEditor({
 | 
			
		||||
                id: 'node-input-func-editor',
 | 
			
		||||
                mode: 'ace/mode/javascript'
 | 
			
		||||
            });
 | 
			
		||||
            this.editor.setValue($("#node-input-func").val(),-1);
 | 
			
		||||
            
 | 
			
		||||
            RED.library.create({
 | 
			
		||||
                url:"functions", // where to get the data from
 | 
			
		||||
                type:"function", // the type of object the library is for
 | 
			
		||||
                editor:this.editor, // the field name the main text body goes to
 | 
			
		||||
                mode:"ace/mode/javascript",
 | 
			
		||||
                fields:['name','outputs']
 | 
			
		||||
            });
 | 
			
		||||
            this.editor.focus();
 | 
			
		||||
        },
 | 
			
		||||
        oneditsave: function() {
 | 
			
		||||
            $("#node-input-func").val(this.editor.getText())
 | 
			
		||||
            var annot = this.editor.getSession().getAnnotations();
 | 
			
		||||
            this.valid = true;
 | 
			
		||||
            for (var k=0; k < annot.length; k++) {
 | 
			
		||||
                //console.log(annot[k].type,":",annot[k].text, "on line", annot[k].row);
 | 
			
		||||
                if (annot[k].type === "error") {
 | 
			
		||||
                    $("#node-input-valid").val(null);
 | 
			
		||||
                    delete this.valid;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            $("#node-input-func").val(this.editor.getValue());
 | 
			
		||||
            delete this.editor;
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright 2013,2014 IBM Corp.
 | 
			
		||||
  Copyright 2013, 2015 IBM Corp.
 | 
			
		||||
 | 
			
		||||
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
  you may not use this file except in compliance with the License.
 | 
			
		||||
@@ -22,13 +22,20 @@
 | 
			
		||||
    <div class="form-row" style="margin-bottom: 0px;">
 | 
			
		||||
        <label for="node-input-template"><i class="fa fa-file-code-o"></i> Template</label>
 | 
			
		||||
        <input type="hidden" id="node-input-template" autofocus="autofocus">
 | 
			
		||||
        <select id="node-input-format" style=" font-size: 0.8em; margin-bottom: 3px; width:110px; float:right;">
 | 
			
		||||
            <option value="handlebars">mustache</option>
 | 
			
		||||
            <option value="html">HTML</option>
 | 
			
		||||
            <option value="json">JSON</option>
 | 
			
		||||
            <option value="markdown">Markdown</option>
 | 
			
		||||
            <option value="text">none</option>
 | 
			
		||||
        </select>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row node-text-editor-row">
 | 
			
		||||
        <div style="height: 250px;" class="node-text-editor" id="node-input-template-editor" ></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-field"><i class="fa fa-edit"></i> Property</label>
 | 
			
		||||
        msg.<input type="text" id="node-input-field" placeholder="payload" style="width: 64%;">
 | 
			
		||||
        msg.<input type="text" id="node-input-field" placeholder="payload" style="width:170px;">
 | 
			
		||||
    </div>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@@ -54,7 +61,8 @@
 | 
			
		||||
        defaults: {
 | 
			
		||||
            name: {value:""},
 | 
			
		||||
            field: {value:"payload"},
 | 
			
		||||
            template: {value:"This is the payload: {{payload}}!"},
 | 
			
		||||
            format: {value:"handlebars"},
 | 
			
		||||
            template: {value:"This is the payload: {{payload}} !"},
 | 
			
		||||
        },
 | 
			
		||||
        inputs:1,
 | 
			
		||||
        outputs:1,
 | 
			
		||||
@@ -63,8 +71,9 @@
 | 
			
		||||
            return this.name;
 | 
			
		||||
        },
 | 
			
		||||
        oneditprepare: function() {
 | 
			
		||||
 | 
			
		||||
            var that = this;
 | 
			
		||||
            function templateDialogResize() {
 | 
			
		||||
                that.editor.resize();
 | 
			
		||||
                var rows = $("#dialog-form>div:not(.node-text-editor-row)");
 | 
			
		||||
                var height = $("#dialog-form").height();
 | 
			
		||||
                for (var i=0;i<rows.size();i++) {
 | 
			
		||||
@@ -74,7 +83,6 @@
 | 
			
		||||
                height -= (parseInt(editorRow.css("marginTop"))+parseInt(editorRow.css("marginBottom")));
 | 
			
		||||
                $(".node-text-editor").css("height",height+"px");
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            $( "#dialog" ).on("dialogresize", templateDialogResize);
 | 
			
		||||
            $( "#dialog" ).one("dialogopen", function(ev) {
 | 
			
		||||
                var size = $( "#dialog" ).dialog('option','sizeCache-template');
 | 
			
		||||
@@ -88,25 +96,29 @@
 | 
			
		||||
                var height = $( "#dialog" ).dialog('option','height');
 | 
			
		||||
                $( "#dialog" ).off("dialogresize",templateDialogResize);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            var that = this;
 | 
			
		||||
            require(["orion/editor/edit"], function(edit) {
 | 
			
		||||
                that.editor = edit({
 | 
			
		||||
                    parent:document.getElementById('node-input-template-editor'),
 | 
			
		||||
                    lang:"html",
 | 
			
		||||
                    contents: $("#node-input-template").val()
 | 
			
		||||
                });
 | 
			
		||||
                RED.library.create({
 | 
			
		||||
                    url:"templates", // where to get the data from
 | 
			
		||||
                    type:"template", // the type of object the library is for
 | 
			
		||||
                    editor:that.editor, // the field name the main text body goes to
 | 
			
		||||
                    fields:['name','field']
 | 
			
		||||
                });
 | 
			
		||||
                $("#node-input-name").focus();
 | 
			
		||||
            this.editor = RED.editor.createEditor({
 | 
			
		||||
                id: 'node-input-template-editor',
 | 
			
		||||
                mode: 'ace/mode/html'
 | 
			
		||||
            });
 | 
			
		||||
            this.editor.setValue($("#node-input-template").val(),-1);
 | 
			
		||||
            RED.library.create({
 | 
			
		||||
                url:"functions", // where to get the data from
 | 
			
		||||
                type:"function", // the type of object the library is for
 | 
			
		||||
                editor:that.editor, // the field name the main text body goes to
 | 
			
		||||
                fields:['name','outputs']
 | 
			
		||||
            });
 | 
			
		||||
            this.editor.focus();
 | 
			
		||||
            
 | 
			
		||||
            $("#node-input-format").change(function() {
 | 
			
		||||
                var mod = "ace/mode/"+$("#node-input-format").val();
 | 
			
		||||
                that.editor.getSession().setMode({
 | 
			
		||||
                   path: mod,
 | 
			
		||||
                   v: Date.now()
 | 
			
		||||
                })
 | 
			
		||||
            });
 | 
			
		||||
        },
 | 
			
		||||
        oneditsave: function() {
 | 
			
		||||
            $("#node-input-template").val(this.editor.getText())
 | 
			
		||||
            $("#node-input-template").val(this.editor.getValue())
 | 
			
		||||
            delete this.editor;
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright 2013 IBM Corp.
 | 
			
		||||
  Copyright 2013, 2015 IBM Corp.
 | 
			
		||||
 | 
			
		||||
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
  you may not use this file except in compliance with the License.
 | 
			
		||||
@@ -26,7 +26,7 @@
 | 
			
		||||
    <div class="form-row node-text-editor-row">
 | 
			
		||||
        <div style="height: 250px;" class="node-text-editor" id="node-input-info-editor" ></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-tips">Tip: The text here can be styled as <i><a href="https://help.github.com/articles/markdown-basics/" target="_new">Github flavored Markdown</a></i></div>
 | 
			
		||||
    <div class="form-tips">Tip: The text here can be styled as <i><a href="https://help.github.com/articles/markdown-basics/" target="_new">Github flavoured Markdown</a></i></div>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/x-red" data-help-name="comment">
 | 
			
		||||
@@ -51,13 +51,17 @@
 | 
			
		||||
            return this.name?"node_label_italic":"";
 | 
			
		||||
        },
 | 
			
		||||
        info: function() {
 | 
			
		||||
            return "### "+this.name+"\n"+this.info;
 | 
			
		||||
            var t = this.name || "Comment node";
 | 
			
		||||
            var b = this.info || "Use this node to add simple documentation.\n\nAnything you add will be rendered in this info panel.\n\nYou may use Markdown syntax to **enhance** the *presentation*.";
 | 
			
		||||
            return "### "+t+"\n"+b;
 | 
			
		||||
        },
 | 
			
		||||
        oneditprepare: function() {
 | 
			
		||||
            var that = this;
 | 
			
		||||
            $( "#node-input-outputs" ).spinner({
 | 
			
		||||
                min:1
 | 
			
		||||
            });
 | 
			
		||||
            function functionDialogResize() {
 | 
			
		||||
                that.editor.resize();
 | 
			
		||||
                var rows = $("#dialog-form>div:not(.node-text-editor-row)");
 | 
			
		||||
                var height = $("#dialog-form").height();
 | 
			
		||||
                for (var i=0;i<rows.size();i++) {
 | 
			
		||||
@@ -80,20 +84,15 @@
 | 
			
		||||
                var height = $( "#dialog" ).dialog('option','height');
 | 
			
		||||
                $( "#dialog" ).off("dialogresize",functionDialogResize);
 | 
			
		||||
            });
 | 
			
		||||
            var that = this;
 | 
			
		||||
            require(["orion/editor/edit"], function(edit) {
 | 
			
		||||
                that.editor = edit({
 | 
			
		||||
                    parent:document.getElementById('node-input-info-editor'),
 | 
			
		||||
                    lang:"text",
 | 
			
		||||
                    showLinesRuler:false,
 | 
			
		||||
                    showFoldingRuler:false,
 | 
			
		||||
                    contents: $("#node-input-info").val()
 | 
			
		||||
                });
 | 
			
		||||
                $("#node-input-name").focus();
 | 
			
		||||
            this.editor = RED.editor.createEditor({
 | 
			
		||||
                id: 'node-input-info-editor',
 | 
			
		||||
                mode: 'ace/mode/markdown'
 | 
			
		||||
            });
 | 
			
		||||
            this.editor.setValue($("#node-input-info").val(),-1);
 | 
			
		||||
            this.editor.focus();
 | 
			
		||||
        },
 | 
			
		||||
        oneditsave: function() {
 | 
			
		||||
            $("#node-input-info").val(this.editor.getText());
 | 
			
		||||
            $("#node-input-info").val(this.editor.getValue());
 | 
			
		||||
            delete this.editor;
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								public/ace/LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								public/ace/LICENSE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
Copyright (c) 2010, Ajax.org B.V.
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are met:
 | 
			
		||||
    * Redistributions of source code must retain the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer.
 | 
			
		||||
    * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
      documentation and/or other materials provided with the distribution.
 | 
			
		||||
    * Neither the name of Ajax.org B.V. nor the
 | 
			
		||||
      names of its contributors may be used to endorse or promote products
 | 
			
		||||
      derived from this software without specific prior written permission.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 | 
			
		||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | 
			
		||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
 | 
			
		||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
			
		||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
							
								
								
									
										11
									
								
								public/ace/ace.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								public/ace/ace.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										5
									
								
								public/ace/ext-language_tools.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								public/ace/ext-language_tools.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										5
									
								
								public/ace/ext-searchbox.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								public/ace/ext-searchbox.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/mode-handlebars.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/mode-handlebars.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/mode-html.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/mode-html.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/mode-javascript.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/mode-javascript.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/mode-json.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/mode-json.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/mode-markdown.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/mode-markdown.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/mode-yaml.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/mode-yaml.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(\:(?:\s+|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*\:(?:\s+|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[|>][-+\\d\\s]*$",next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"}],qqstring:[{token:"string",regex:"(?=(?:(?:\\\\.)|(?:[^:]))*?:)",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./yaml_highlight_rules").YamlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./folding/coffee").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/yaml"}.call(a.prototype),t.Mode=a})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/snippets/handlebars.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/snippets/handlebars.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/snippets/handlebars",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="handlebars"})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/snippets/html.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/snippets/html.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/snippets/javascript.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/snippets/javascript.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/snippets/javascript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Prototype\nsnippet proto\n	${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\n		${4:// body...}\n	};\n# Function\nsnippet fun\n	function ${1?:function_name}(${2:argument}) {\n		${3:// body...}\n	}\n# Anonymous Function\nregex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\nsnippet f\n	function${M1?: ${1:functionName}}($2) {\n		${0:$TM_SELECTED_TEXT}\n	}${M2?;}${M3?,}${M4?)}\n# Immediate function\ntrigger \\(?f\\(\nendTrigger \\)?\nsnippet f(\n	(function(${1}) {\n		${0:${TM_SELECTED_TEXT:/* code */}}\n	}(${1}));\n# if\nsnippet if\n	if (${1:true}) {\n		${0}\n	}\n# if ... else\nsnippet ife\n	if (${1:true}) {\n		${2}\n	} else {\n		${0}\n	}\n# tertiary conditional\nsnippet ter\n	${1:/* condition */} ? ${2:a} : ${3:b}\n# switch\nsnippet switch\n	switch (${1:expression}) {\n		case \'${3:case}\':\n			${4:// code}\n			break;\n		${5}\n		default:\n			${2:// code}\n	}\n# case\nsnippet case\n	case \'${1:case}\':\n		${2:// code}\n		break;\n	${3}\n\n# while (...) {...}\nsnippet wh\n	while (${1:/* condition */}) {\n		${0:/* code */}\n	}\n# try\nsnippet try\n	try {\n		${0:/* code */}\n	} catch (e) {}\n# do...while\nsnippet do\n	do {\n		${2:/* code */}\n	} while (${1:/* condition */});\n# Object Method\nsnippet :f\nregex /([,{[])|^\\s*/:f/\n	${1:method_name}: function(${2:attribute}) {\n		${0}\n	}${3:,}\n# setTimeout function\nsnippet setTimeout\nregex /\\b/st|timeout|setTimeo?u?t?/\n	setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n# Get Elements\nsnippet gett\n	getElementsBy${1:TagName}(\'${2}\')${3}\n# Get Element\nsnippet get\n	getElementBy${1:Id}(\'${2}\')${3}\n# console.log (Firebug)\nsnippet cl\n	console.log(${1});\n# return\nsnippet ret\n	return ${1:result}\n# for (property in object ) { ... }\nsnippet fori\n	for (var ${1:prop} in ${2:Things}) {\n		${0:$2[$1]}\n	}\n# hasOwnProperty\nsnippet has\n	hasOwnProperty(${1})\n# docstring\nsnippet /**\nsnippet @par\nregex /^\\s*\\*\\s*/@(para?m?)?/\n	@param {${1:type}} ${2:name} ${3:description}\nsnippet @ret\n	@return {${1:type}} ${2:description}\n# JSON.parse\nsnippet jsonp\n	JSON.parse(${1:jstr});\n# JSON.stringify\nsnippet jsons\n	JSON.stringify(${1:object});\n# self-defining function\nsnippet sdf\n	var ${1:function_name} = function(${2:argument}) {\n		${3:// initial code ...}\n\n		$1 = function($2) {\n			${4:// main code}\n		};\n	}\n# singleton\nsnippet sing\n	function ${1:Singleton} (${2:argument}) {\n		var instance;\n		$1 = function $1($2) {\n			return instance;\n		};\n		$1.prototype = this;\n		instance = new $1();\n		instance.constructor = $1;\n\n		${3:// code ...}\n\n		return instance;\n	}\n# class\nsnippet class\nregex /^\\s*/clas{0,2}/\n	var ${1:class} = function(${20}) {\n		$40$0\n	};\n	\n	(function() {\n		${60:this.prop = ""}\n	}).call(${1:class}.prototype);\n	\n	exports.${1:class} = ${1:class};\n# \nsnippet for-\n	for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n		${0:${2:Things}[${1:i}];}\n	}\n# for (...) {...}\nsnippet for\n	for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n		${3:$2[$1]}$0\n	}\n# for (...) {...} (Improved Native For-Loop)\nsnippet forr\n	for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n		${3:$2[$1]}$0\n	}\n\n\n#modules\nsnippet def\n	ace.define(function(require, exports, module) {\n	"use strict";\n	var ${1/.*\\///} = require("${1}");\n	\n	$TM_SELECTED_TEXT\n	});\nsnippet req\nguard ^\\s*\n	var ${1/.*\\///} = require("${1}");\n	$0\nsnippet requ\nguard ^\\s*\n	var ${1/.*\\/(.)/\\u$1/} = require("${1}").${1/.*\\/(.)/\\u$1/};\n	$0\n',t.scope="javascript"})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/snippets/markdown.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/snippets/markdown.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/snippets/markdown",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Markdown\n\n# Includes octopress (http://octopress.org/) snippets\n\nsnippet [\n	[${1:text}](http://${2:address} "${3:title}")\nsnippet [*\n	[${1:link}](${2:`@*`} "${3:title}")${4}\n\nsnippet [:\n	[${1:id}]: http://${2:url} "${3:title}"\nsnippet [:*\n	[${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet \nsnippet ${4}\n\nsnippet ![:\n	![${1:id}]: ${2:url} "${3:title}"\nsnippet ![:*\n	![${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ===\nregex /^/=+/=*//\n	${PREV_LINE/./=/g}\n	\n	${0}\nsnippet ---\nregex /^/-+/-*//\n	${PREV_LINE/./-/g}\n	\n	${0}\nsnippet blockquote\n	{% blockquote %}\n	${1:quote}\n	{% endblockquote %}\n\nsnippet blockquote-author\n	{% blockquote ${1:author}, ${2:title} %}\n	${3:quote}\n	{% endblockquote %}\n\nsnippet blockquote-link\n	{% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n	${4:quote}\n	{% endblockquote %}\n\nsnippet bt-codeblock-short\n	```\n	${1:code_snippet}\n	```\n\nsnippet bt-codeblock-full\n	``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n	${5:code_snippet}\n	```\n\nsnippet codeblock-short\n	{% codeblock %}\n	${1:code_snippet}\n	{% endcodeblock %}\n\nsnippet codeblock-full\n	{% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n	${5:code_snippet}\n	{% endcodeblock %}\n\nsnippet gist-full\n	{% gist ${1:gist_id} ${2:filename} %}\n\nsnippet gist-short\n	{% gist ${1:gist_id} %}\n\nsnippet img\n	{% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\nsnippet youtube\n	{% youtube ${1:video_id} %}\n\n# The quote should appear only once in the text. It is inherently part of it.\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\nsnippet pullquote\n	{% pullquote %}\n	${1:text} {" ${2:quote} "} ${3:text}\n	{% endpullquote %}\n',t.scope="markdown"})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/snippets/text.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/snippets/text.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/snippets/text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="text"})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/snippets/yaml.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/snippets/yaml.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/snippets/yaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="yaml"})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/theme-chrome.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/theme-chrome.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-chrome",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/theme-crimson_editor.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/theme-crimson_editor.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/theme/crimson_editor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssText='.ace-crimson-editor .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-crimson-editor .ace_gutter-layer {width: 100%;text-align: right;}.ace-crimson-editor .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-crimson-editor {background-color: #FFFFFF;color: rgb(64, 64, 64);}.ace-crimson-editor .ace_cursor {color: black;}.ace-crimson-editor .ace_invisible {color: rgb(191, 191, 191);}.ace-crimson-editor .ace_identifier {color: black;}.ace-crimson-editor .ace_keyword {color: blue;}.ace-crimson-editor .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-crimson-editor .ace_constant.ace_language {color: rgb(255, 156, 0);}.ace-crimson-editor .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_invalid {text-decoration: line-through;color: rgb(224, 0, 0);}.ace-crimson-editor .ace_fold {}.ace-crimson-editor .ace_support.ace_function {color: rgb(192, 0, 0);}.ace-crimson-editor .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_support.ace_type,.ace-crimson-editor .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-crimson-editor .ace_keyword.ace_operator {color: rgb(49, 132, 149);}.ace-crimson-editor .ace_string {color: rgb(128, 0, 128);}.ace-crimson-editor .ace_comment {color: rgb(76, 136, 107);}.ace-crimson-editor .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-crimson-editor .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-crimson-editor .ace_constant.ace_numeric {color: rgb(0, 0, 64);}.ace-crimson-editor .ace_variable {color: rgb(0, 64, 128);}.ace-crimson-editor .ace_xml-pe {color: rgb(104, 104, 91);}.ace-crimson-editor .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-crimson-editor .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-crimson-editor .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-crimson-editor .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-crimson-editor .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254);}.ace-crimson-editor .ace_gutter-active-line {background-color : #dcdcdc;}.ace-crimson-editor .ace_meta.ace_tag {color:rgb(28, 2, 255);}.ace-crimson-editor .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-crimson-editor .ace_string.ace_regex {color: rgb(192, 0, 192);}.ace-crimson-editor .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.cssClass="ace-crimson-editor";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/theme-solarized_light.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/theme-solarized_light.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-solarized-light",t.cssText=".ace-solarized-light .ace_gutter {background: #fbf1d3;color: #333}.ace-solarized-light .ace_print-margin {width: 1px;background: #e8e8e8}.ace-solarized-light {background-color: #FDF6E3;color: #586E75}.ace-solarized-light .ace_cursor {color: #000000}.ace-solarized-light .ace_marker-layer .ace_selection {background: rgba(7, 54, 67, 0.09)}.ace-solarized-light.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FDF6E3;border-radius: 2px}.ace-solarized-light .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-solarized-light .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_marker-layer .ace_active-line {background: #EEE8D5}.ace-solarized-light .ace_gutter-active-line {background-color : #EDE5C1}.ace-solarized-light .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-light .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_keyword,.ace-solarized-light .ace_meta,.ace-solarized-light .ace_support.ace_class,.ace-solarized-light .ace_support.ace_type {color: #859900}.ace-solarized-light .ace_constant.ace_character,.ace-solarized-light .ace_constant.ace_other {color: #CB4B16}.ace-solarized-light .ace_constant.ace_language {color: #B58900}.ace-solarized-light .ace_constant.ace_numeric {color: #D33682}.ace-solarized-light .ace_fold {background-color: #268BD2;border-color: #586E75}.ace-solarized-light .ace_entity.ace_name.ace_function,.ace-solarized-light .ace_entity.ace_name.ace_tag,.ace-solarized-light .ace_support.ace_function,.ace-solarized-light .ace_variable,.ace-solarized-light .ace_variable.ace_language {color: #268BD2}.ace-solarized-light .ace_storage {color: #073642}.ace-solarized-light .ace_string {color: #2AA198}.ace-solarized-light .ace_string.ace_regexp {color: #D30102}.ace-solarized-light .ace_comment,.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {color: #93A1A1}.ace-solarized-light .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/theme-tomorrow.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/theme-tomorrow.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ace.define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-tomorrow",t.cssText=".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow {background-color: #FFFFFF;color: #4D4D4C}.ace-tomorrow .ace_cursor {color: #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_heading,.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
 | 
			
		||||
							
								
								
									
										1
									
								
								public/ace/worker-html.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/worker-html.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/worker-javascript.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/worker-javascript.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								public/ace/worker-json.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/ace/worker-json.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -6,7 +6,7 @@
 | 
			
		||||
<meta name="mobile-web-app-capable" content="yes">
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright 2013, 2014 IBM Corp.
 | 
			
		||||
  Copyright 2013, 2015 IBM Corp.
 | 
			
		||||
 | 
			
		||||
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
  you may not use this file except in compliance with the License.
 | 
			
		||||
@@ -246,6 +246,8 @@
 | 
			
		||||
<script src="jquery/js/jquery.ui.touch-punch.min.js"></script>
 | 
			
		||||
<script src="marked/marked.min.js"></script>
 | 
			
		||||
<script src="orion/built-editor.min.js"></script>
 | 
			
		||||
<script src="ace/ace.js"></script>
 | 
			
		||||
<script src="ace/ext-language_tools.js"></script>
 | 
			
		||||
<script src="d3.v3.min.js"></script>
 | 
			
		||||
<script src="red/main.js"></script>
 | 
			
		||||
<script src="red/settings.js"></script>
 | 
			
		||||
 
 | 
			
		||||
@@ -369,6 +369,8 @@ var RED = (function() {
 | 
			
		||||
            document.title = "Node-RED : "+window.location.hostname;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        ace.require("ace/ext/language_tools");
 | 
			
		||||
 | 
			
		||||
        RED.settings.init(loadEditor);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright 2013, 2014 IBM Corp.
 | 
			
		||||
 * Copyright 2013, 2015 IBM Corp.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
@@ -805,6 +805,29 @@ RED.editor = (function() {
 | 
			
		||||
        editConfig: showEditConfigNodeDialog,
 | 
			
		||||
        editSubflow: showEditSubflowDialog,
 | 
			
		||||
        validateNode: validateNode,
 | 
			
		||||
        updateNodeProperties: updateNodeProperties // TODO: only exposed for edit-undo
 | 
			
		||||
        updateNodeProperties: updateNodeProperties, // TODO: only exposed for edit-undo
 | 
			
		||||
        
 | 
			
		||||
        createEditor: function(options) {
 | 
			
		||||
            var editor = ace.edit(options.id);
 | 
			
		||||
            editor.setTheme("ace/theme/tomorrow");
 | 
			
		||||
            if (options.mode) {
 | 
			
		||||
                editor.getSession().setMode(options.mode);
 | 
			
		||||
            }
 | 
			
		||||
            if (options.foldStyle) {
 | 
			
		||||
                editor.getSession().setFoldStyle(options.foldStyle);
 | 
			
		||||
            } else {
 | 
			
		||||
                editor.getSession().setFoldStyle('markbeginend');
 | 
			
		||||
            }
 | 
			
		||||
            if (options.options) {
 | 
			
		||||
                editor.setOptions(options.options);
 | 
			
		||||
            } else {
 | 
			
		||||
                editor.setOptions({
 | 
			
		||||
                    enableBasicAutocompletion:true,
 | 
			
		||||
                    enableSnippets:true
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            editor.$blockScrolling = Infinity;
 | 
			
		||||
            return editor;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
})();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright 2013 IBM Corp.
 | 
			
		||||
 * Copyright 2013, 2015 IBM Corp.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
@@ -72,6 +72,19 @@ RED.library = (function() {
 | 
			
		||||
        var selectedLibraryItem = null;
 | 
			
		||||
        var libraryEditor = null;
 | 
			
		||||
        
 | 
			
		||||
        // Orion editor has set/getText
 | 
			
		||||
        // ACE editor has set/getValue
 | 
			
		||||
        // normalise to set/getValue
 | 
			
		||||
        if (options.editor.setText) {
 | 
			
		||||
            // Orion doesn't like having pos passed in, so proxy the call to drop it
 | 
			
		||||
            options.editor.setValue = function(text,pos) {
 | 
			
		||||
                options.editor.setText.call(options.editor,text);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (options.editor.getText) {
 | 
			
		||||
            options.editor.getValue = options.editor.getText;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        function buildFileListItem(item) {
 | 
			
		||||
            var li = document.createElement("li");
 | 
			
		||||
            li.onmouseover = function(e) { $(this).addClass("list-hover"); };
 | 
			
		||||
@@ -119,7 +132,7 @@ RED.library = (function() {
 | 
			
		||||
                           $(this).addClass("list-selected");
 | 
			
		||||
                           $.get("library/"+options.url+root+item.fn, function(data) {
 | 
			
		||||
                                   selectedLibraryItem = item;
 | 
			
		||||
                                   libraryEditor.setText(data);
 | 
			
		||||
                                   libraryEditor.setValue(data,-1);
 | 
			
		||||
                           });
 | 
			
		||||
                       }
 | 
			
		||||
                   })();
 | 
			
		||||
@@ -144,7 +157,7 @@ RED.library = (function() {
 | 
			
		||||
            $("#node-select-library").children().remove();
 | 
			
		||||
            var bc = $("#node-dialog-library-breadcrumbs");
 | 
			
		||||
            bc.children().first().nextAll().remove();
 | 
			
		||||
            libraryEditor.setText('');
 | 
			
		||||
            libraryEditor.setValue('',-1);
 | 
			
		||||
            
 | 
			
		||||
            $.getJSON("library/"+options.url,function(data) {
 | 
			
		||||
                $("#node-select-library").append(buildFileList("/",data));
 | 
			
		||||
@@ -205,14 +218,18 @@ RED.library = (function() {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
        });
 | 
			
		||||
    
 | 
			
		||||
        require(["orion/editor/edit"], function(edit) {
 | 
			
		||||
            libraryEditor = edit({
 | 
			
		||||
                parent:document.getElementById('node-select-library-text'),
 | 
			
		||||
                lang:"js",
 | 
			
		||||
                readonly: true
 | 
			
		||||
            });
 | 
			
		||||
        libraryEditor = ace.edit('node-select-library-text');
 | 
			
		||||
        libraryEditor.setTheme("ace/theme/tomorrow");
 | 
			
		||||
        if (options.mode) {
 | 
			
		||||
            libraryEditor.getSession().setMode(options.mode);
 | 
			
		||||
        }
 | 
			
		||||
        libraryEditor.setOptions({
 | 
			
		||||
            readOnly: true,
 | 
			
		||||
            highlightActiveLine: false,
 | 
			
		||||
            highlightGutterLine: false
 | 
			
		||||
        });
 | 
			
		||||
    
 | 
			
		||||
        libraryEditor.renderer.$cursorLayer.element.style.opacity=0;
 | 
			
		||||
        libraryEditor.$blockScrolling = Infinity;
 | 
			
		||||
        
 | 
			
		||||
        $( "#node-dialog-library-lookup" ).dialog({
 | 
			
		||||
            title: options.type+" library",
 | 
			
		||||
@@ -229,7 +246,7 @@ RED.library = (function() {
 | 
			
		||||
                                var field = options.fields[i];
 | 
			
		||||
                                $("#node-input-"+field).val(selectedLibraryItem[field]);
 | 
			
		||||
                            }
 | 
			
		||||
                            options.editor.setText(libraryEditor.getText());
 | 
			
		||||
                            options.editor.setValue(libraryEditor.getValue(),-1);
 | 
			
		||||
                        }
 | 
			
		||||
                        $( this ).dialog( "close" );
 | 
			
		||||
                    }
 | 
			
		||||
@@ -304,7 +321,7 @@ RED.library = (function() {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            data.text = options.editor.getText();
 | 
			
		||||
            data.text = options.editor.getValue();
 | 
			
		||||
            $.ajax({
 | 
			
		||||
                url:"library/"+options.url+'/'+fullpath,
 | 
			
		||||
                type: "POST",
 | 
			
		||||
 
 | 
			
		||||
@@ -965,6 +965,7 @@ div.node-info {
 | 
			
		||||
    border:1px solid #ccc;
 | 
			
		||||
    border-radius:5px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    font-size: 16px !important;
 | 
			
		||||
}
 | 
			
		||||
#workspace-tabs {
 | 
			
		||||
    margin-right: 28px;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user