| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567 | ace.define("ace/theme/textmate",[], function(require, exports, module) {"use strict";exports.isDark = false;exports.cssClass = "ace-tm";exports.cssText = ".ace-tm .ace_gutter {\background: #f0f0f0;\color: #333;\}\.ace-tm .ace_print-margin {\width: 1px;\background: #e8e8e8;\}\.ace-tm .ace_fold {\background-color: #6B72E6;\}\.ace-tm {\background-color: #FFFFFF;\color: black;\}\.ace-tm .ace_cursor {\color: black;\}\.ace-tm .ace_invisible {\color: rgb(191, 191, 191);\}\.ace-tm .ace_storage,\.ace-tm .ace_keyword {\color: blue;\}\.ace-tm .ace_constant {\color: rgb(197, 6, 11);\}\.ace-tm .ace_constant.ace_buildin {\color: rgb(88, 72, 246);\}\.ace-tm .ace_constant.ace_language {\color: rgb(88, 92, 246);\}\.ace-tm .ace_constant.ace_library {\color: rgb(6, 150, 14);\}\.ace-tm .ace_invalid {\background-color: rgba(255, 0, 0, 0.1);\color: red;\}\.ace-tm .ace_support.ace_function {\color: rgb(60, 76, 114);\}\.ace-tm .ace_support.ace_constant {\color: rgb(6, 150, 14);\}\.ace-tm .ace_support.ace_type,\.ace-tm .ace_support.ace_class {\color: rgb(109, 121, 222);\}\.ace-tm .ace_keyword.ace_operator {\color: rgb(104, 118, 135);\}\.ace-tm .ace_string {\color: rgb(3, 106, 7);\}\.ace-tm .ace_comment {\color: rgb(76, 136, 107);\}\.ace-tm .ace_comment.ace_doc {\color: rgb(0, 102, 255);\}\.ace-tm .ace_comment.ace_doc.ace_tag {\color: rgb(128, 159, 191);\}\.ace-tm .ace_constant.ace_numeric {\color: rgb(0, 0, 205);\}\.ace-tm .ace_variable {\color: rgb(49, 132, 149);\}\.ace-tm .ace_xml-pe {\color: rgb(104, 104, 91);\}\.ace-tm .ace_entity.ace_name.ace_function {\color: #0000A2;\}\.ace-tm .ace_heading {\color: rgb(12, 7, 255);\}\.ace-tm .ace_list {\color:rgb(185, 6, 144);\}\.ace-tm .ace_meta.ace_tag {\color:rgb(0, 22, 142);\}\.ace-tm .ace_string.ace_regex {\color: rgb(255, 0, 0)\}\.ace-tm .ace_marker-layer .ace_selection {\background: rgb(181, 213, 255);\}\.ace-tm.ace_multiselect .ace_selection.ace_start {\box-shadow: 0 0 3px 0px white;\}\.ace-tm .ace_marker-layer .ace_step {\background: rgb(252, 255, 0);\}\.ace-tm .ace_marker-layer .ace_stack {\background: rgb(164, 229, 101);\}\.ace-tm .ace_marker-layer .ace_bracket {\margin: -1px 0 0 -1px;\border: 1px solid rgb(192, 192, 192);\}\.ace-tm .ace_marker-layer .ace_active-line {\background: rgba(0, 0, 0, 0.07);\}\.ace-tm .ace_gutter-active-line {\background-color : #dcdcdc;\}\.ace-tm .ace_marker-layer .ace_selected-word {\background: rgb(250, 250, 255);\border: 1px solid rgb(200, 200, 250);\}\.ace-tm .ace_indent-guide {\background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\}\";exports.$id = "ace/theme/textmate";var dom = require("../lib/dom");dom.importCssString(exports.cssText, exports.cssClass);});ace.define("ace/ext/textarea",[], function(require, exports, module) {"use strict";var event = require("../lib/event");var UA = require("../lib/useragent");var net = require("../lib/net");var ace = require("../ace");require("../theme/textmate");module.exports = exports = ace;var getCSSProperty = function(element, container, property) {    var ret = element.style[property];    if (!ret) {        if (window.getComputedStyle) {            ret = window.getComputedStyle(element, '').getPropertyValue(property);        } else {            ret = element.currentStyle[property];        }    }    if (!ret || ret == 'auto' || ret == 'intrinsic') {        ret = container.style[property];    }    return ret;};function applyStyles(elm, styles) {    for (var style in styles) {        elm.style[style] = styles[style];    }}function setupContainer(element, getValue) {    if (element.type != 'textarea') {        throw new Error("Textarea required!");    }    var parentNode = element.parentNode;    var container = document.createElement('div');    //    var resizeEvent = function() {        var style = 'position:relative;';        [            'margin-top', 'margin-left', 'margin-right', 'margin-bottom'        ].forEach(function(item) {            style += item + ':' +                        getCSSProperty(element, container, item) + ';';        });        var width = getCSSProperty(element, container, 'width') || (element.clientWidth + "px");        var height = getCSSProperty(element, container, 'height')  || (element.clientHeight + "px");        style += 'height:' + height + ';width:' + width + ';';        style += 'display:inline-block;';        container.setAttribute('style', style);    };    event.addListener(window, 'resize', resizeEvent);    resizeEvent();    parentNode.insertBefore(container, element.nextSibling);    while (parentNode !== document) {        if (parentNode.tagName.toUpperCase() === 'FORM') {            var oldSumit = parentNode.onsubmit;            parentNode.onsubmit = function(evt) {                element.value = getValue();                if (oldSumit) {                    oldSumit.call(this, evt);                }            };            break;        }        parentNode = parentNode.parentNode;    }    return container;}exports.transformTextarea = function(element, options) {    var isFocused = element.autofocus || document.activeElement == element;    var session;    var container = setupContainer(element, function() {        return session.getValue();    });    element.style.display = 'none';    container.style.background = 'white';    //    var editorDiv = document.createElement("div");    applyStyles(editorDiv, {        top: "0px",        left: "0px",        right: "0px",        bottom: "0px",        border: "1px solid gray",        position: "absolute"    });    container.appendChild(editorDiv);    var settingOpener = document.createElement("div");    applyStyles(settingOpener, {        position: "absolute",        right: "0px",        bottom: "0px",        cursor: "nw-resize",        border: "solid 9px",        borderColor: "lightblue gray gray #ceade6",        zIndex: 101    });    var settingDiv = document.createElement("div");    var settingDivStyles = {        top: "0px",        left: "20%",        right: "0px",        bottom: "0px",        position: "absolute",        padding: "5px",        zIndex: 100,        color: "white",        display: "none",        overflow: "auto",        fontSize: "14px",        boxShadow: "-5px 2px 3px gray"    };    if (!UA.isOldIE) {        settingDivStyles.backgroundColor = "rgba(0, 0, 0, 0.6)";    } else {        settingDivStyles.backgroundColor = "#333";    }    applyStyles(settingDiv, settingDivStyles);    container.appendChild(settingDiv);    options = options || exports.defaultOptions;    var editor = ace.edit(editorDiv);    session = editor.getSession();    session.setValue(element.value || element.innerHTML);    if (isFocused)        editor.focus();    container.appendChild(settingOpener);    setupApi(editor, editorDiv, settingDiv, ace, options);    setupSettingPanel(settingDiv, settingOpener, editor);    var state = "";    event.addListener(settingOpener, "mousemove", function(e) {        var rect = this.getBoundingClientRect();        var x = e.clientX - rect.left, y = e.clientY - rect.top;        if (x + y < (rect.width + rect.height)/2) {            this.style.cursor = "pointer";            state = "toggle";        } else {            state = "resize";            this.style.cursor = "nw-resize";        }    });    event.addListener(settingOpener, "mousedown", function(e) {        e.preventDefault();        if (state == "toggle") {            editor.setDisplaySettings();            return;        }        container.style.zIndex = 100000;        var rect = container.getBoundingClientRect();        var startX = rect.width  + rect.left - e.clientX;        var startY = rect.height  + rect.top - e.clientY;        event.capture(settingOpener, function(e) {            container.style.width = e.clientX - rect.left + startX + "px";            container.style.height = e.clientY - rect.top + startY + "px";            editor.resize();        }, function() {});    });    return editor;};function load(url, module, callback) {    net.loadScript(url, function() {        require([module], callback);    });}function setupApi(editor, editorDiv, settingDiv, ace, options) {    var session = editor.getSession();    var renderer = editor.renderer;    function toBool(value) {        return value === "true" || value == true;    }    editor.setDisplaySettings = function(display) {        if (display == null)            display = settingDiv.style.display == "none";        if (display) {            settingDiv.style.display = "block";            settingDiv.hideButton.focus();            editor.on("focus", function onFocus() {                editor.removeListener("focus", onFocus);                settingDiv.style.display = "none";            });        } else {            editor.focus();        }    };    editor.$setOption = editor.setOption;    editor.$getOption = editor.getOption;    editor.setOption = function(key, value) {        switch (key) {            case "mode":                editor.$setOption("mode", "ace/mode/" + value);            break;            case "theme":                editor.$setOption("theme", "ace/theme/" + value);            break;            case "keybindings":                switch (value) {                    case "vim":                        editor.setKeyboardHandler("ace/keyboard/vim");                        break;                    case "emacs":                        editor.setKeyboardHandler("ace/keyboard/emacs");                        break;                    default:                        editor.setKeyboardHandler(null);                }            break;            case "wrap":            case "fontSize":                editor.$setOption(key, value);            break;                        default:                editor.$setOption(key, toBool(value));        }    };    editor.getOption = function(key) {        switch (key) {            case "mode":                return editor.$getOption("mode").substr("ace/mode/".length);            break;            case "theme":                return editor.$getOption("theme").substr("ace/theme/".length);            break;            case "keybindings":                var value = editor.getKeyboardHandler();                switch (value && value.$id) {                    case "ace/keyboard/vim":                        return "vim";                    case "ace/keyboard/emacs":                        return "emacs";                    default:                        return "ace";                }            break;            default:                return editor.$getOption(key);        }    };    editor.setOptions(options);    return editor;}function setupSettingPanel(settingDiv, settingOpener, editor) {    var BOOL = null;    var desc = {        mode:            "Mode:",        wrap:            "Soft Wrap:",        theme:           "Theme:",        fontSize:        "Font Size:",        showGutter:      "Display Gutter:",        keybindings:     "Keyboard",        showPrintMargin: "Show Print Margin:",        useSoftTabs:     "Use Soft Tabs:",        showInvisibles:  "Show Invisibles"    };    var optionValues = {        mode: {            text:       "Plain",            javascript: "JavaScript",            xml:        "XML",            html:       "HTML",            css:        "CSS",            scss:       "SCSS",            python:     "Python",            php:        "PHP",            java:       "Java",            ruby:       "Ruby",            c_cpp:      "C/C++",            coffee:     "CoffeeScript",            json:       "json",            perl:       "Perl",            clojure:    "Clojure",            ocaml:      "OCaml",            csharp:     "C#",            haxe:       "haXe",            svg:        "SVG",            textile:    "Textile",            groovy:     "Groovy",            liquid:     "Liquid",            Scala:      "Scala"        },        theme: {            clouds:           "Clouds",            clouds_midnight:  "Clouds Midnight",            cobalt:           "Cobalt",            crimson_editor:   "Crimson Editor",            dawn:             "Dawn",            gob:              "Green on Black",            eclipse:          "Eclipse",            idle_fingers:     "Idle Fingers",            kr_theme:         "Kr Theme",            merbivore:        "Merbivore",            merbivore_soft:   "Merbivore Soft",            mono_industrial:  "Mono Industrial",            monokai:          "Monokai",            pastel_on_dark:   "Pastel On Dark",            solarized_dark:   "Solarized Dark",            solarized_light:  "Solarized Light",            textmate:         "Textmate",            twilight:         "Twilight",            vibrant_ink:      "Vibrant Ink"        },        showGutter: BOOL,        fontSize: {            "10px": "10px",            "11px": "11px",            "12px": "12px",            "14px": "14px",            "16px": "16px"        },        wrap: {            off:    "Off",            40:     "40",            80:     "80",            free:   "Free"        },        keybindings: {            ace: "ace",            vim: "vim",            emacs: "emacs"        },        showPrintMargin:    BOOL,        useSoftTabs:        BOOL,        showInvisibles:     BOOL    };    var table = [];    table.push("<table><tr><th>Setting</th><th>Value</th></tr>");    function renderOption(builder, option, obj, cValue) {        if (!obj) {            builder.push(                "<input type='checkbox' title='", option, "' ",                    cValue + "" == "true" ? "checked='true'" : "",               "'></input>"            );            return;        }        builder.push("<select title='" + option + "'>");        for (var value in obj) {            builder.push("<option value='" + value + "' ");            if (cValue == value) {                builder.push(" selected ");            }            builder.push(">",                obj[value],                "</option>");        }        builder.push("</select>");    }    for (var option in exports.defaultOptions) {        table.push("<tr><td>", desc[option], "</td>");        table.push("<td>");        renderOption(table, option, optionValues[option], editor.getOption(option));        table.push("</td></tr>");    }    table.push("</table>");    settingDiv.innerHTML = table.join("");    var onChange = function(e) {        var select = e.currentTarget;        editor.setOption(select.title, select.value);    };    var onClick = function(e) {        var cb = e.currentTarget;        editor.setOption(cb.title, cb.checked);    };    var selects = settingDiv.getElementsByTagName("select");    for (var i = 0; i < selects.length; i++)        selects[i].onchange = onChange;    var cbs = settingDiv.getElementsByTagName("input");    for (var i = 0; i < cbs.length; i++)        cbs[i].onclick = onClick;    var button = document.createElement("input");    button.type = "button";    button.value = "Hide";    event.addListener(button, "click", function() {        editor.setDisplaySettings(false);    });    settingDiv.appendChild(button);    settingDiv.hideButton = button;}exports.defaultOptions = {    mode:               "javascript",    theme:              "textmate",    wrap:               "off",    fontSize:           "12px",    showGutter:         "false",    keybindings:        "ace",    showPrintMargin:    "false",    useSoftTabs:        "true",    showInvisibles:     "false"};});                (function() {                    ace.require(["ace/ext/textarea"], function(m) {                        if (typeof module == "object" && typeof exports == "object" && module) {                            module.exports = m;                        }                    });                })();            
 |