tianheng-ui 0.0.55 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/039af9192b9bb277966ceb4e4ce29c41.js +16 -0
- package/lib/{c755e7fc08446566ee8dd3a8aa8fe43f.js → 2d84c80112a372bc149cad3464e90fa3.js} +404 -502
- package/lib/5977b934a4c6b480790864ea01303173.js +10834 -0
- package/lib/7745f3e776488705a38e62f85adad54d.js +16 -0
- package/lib/de8dee841ffdaaede3a2254deef30376.js +15395 -0
- package/lib/e78eab250e7f8ccac3d918dfdb06ca10.js +8904 -0
- package/lib/index.js +4 -2
- package/lib/theme-chalk/fonts/PingFang.ttf +0 -0
- package/lib/theme-chalk/fonts/bpmn.eot +0 -0
- package/lib/theme-chalk/fonts/bpmn.svg +224 -0
- package/lib/theme-chalk/fonts/bpmn.ttf +0 -0
- package/lib/theme-chalk/fonts/bpmn.woff +0 -0
- package/lib/theme-chalk/fonts/bpmn.woff2 +0 -0
- package/lib/theme-chalk/fonts/fontawesome-webfont.eot +0 -0
- package/lib/theme-chalk/fonts/fontawesome-webfont.svg +2671 -0
- package/lib/theme-chalk/fonts/fontawesome-webfont.ttf +0 -0
- package/lib/theme-chalk/fonts/fontawesome-webfont.woff +0 -0
- package/lib/theme-chalk/fonts/fontawesome-webfont.woff2 +0 -0
- package/lib/{iconfont.eot → theme-chalk/fonts/iconfont.eot} +0 -0
- package/lib/{iconfont.svg → theme-chalk/fonts/iconfont.svg} +0 -0
- package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
- package/lib/theme-chalk/fonts/iconfont.woff +0 -0
- package/lib/theme-chalk/images/notData.png +0 -0
- package/lib/theme-chalk/index.scss +29 -0
- package/lib/theme-chalk/styles/button.scss +501 -0
- package/lib/theme-chalk/styles/card.scss +29 -0
- package/lib/theme-chalk/styles/cell.scss +54 -0
- package/lib/theme-chalk/styles/codeEditor.scss +9 -0
- package/lib/theme-chalk/styles/col.scss +151 -0
- package/lib/theme-chalk/styles/dialog.scss +59 -0
- package/lib/theme-chalk/styles/empty.scss +22 -0
- package/lib/theme-chalk/styles/feature.scss +42 -0
- package/lib/theme-chalk/styles/font.css +7 -0
- package/lib/theme-chalk/{icon.css → styles/icon.css} +3 -3
- package/lib/theme-chalk/styles/imagePreview.scss +113 -0
- package/lib/theme-chalk/styles/img.scss +35 -0
- package/lib/theme-chalk/styles/reset.scss +8 -0
- package/lib/theme-chalk/{root.css → styles/root.css} +2 -35
- package/lib/theme-chalk/styles/row.scss +23 -0
- package/lib/theme-chalk/styles/variable.scss +80 -0
- package/lib/tianheng-ui.js +71 -9
- package/package.json +24 -4
- package/packages/Button/index.js +8 -0
- package/packages/Button/index.vue +80 -0
- package/packages/Card/index.js +8 -0
- package/packages/Card/index.vue +37 -0
- package/packages/{cell → Cell}/index.js +0 -0
- package/packages/Cell/index.vue +68 -0
- package/packages/{codeEditor → CodeEditor}/index.js +0 -0
- package/packages/{codeEditor → CodeEditor}/index.vue +73 -108
- package/packages/Col/index.js +8 -0
- package/packages/Col/index.vue +41 -0
- package/packages/{dialog → Dialog}/index.js +0 -0
- package/packages/{dialog → Dialog}/index.vue +19 -10
- package/packages/Empty/images/notData.png +0 -0
- package/packages/{empty → Empty}/index.js +0 -0
- package/packages/Empty/index.vue +35 -0
- package/packages/FormMaking/Container.vue +1907 -0
- package/packages/{formMaking → FormMaking}/FormConfig.vue +22 -6
- package/packages/FormMaking/GenerateForm.vue +246 -0
- package/packages/{formMaking → FormMaking}/GenerateFormItem.vue +340 -172
- package/packages/FormMaking/GenerateFormItemH5.vue +828 -0
- package/packages/{formMaking → FormMaking}/Upload/index.vue +0 -0
- package/packages/FormMaking/WidgetConfig.vue +473 -0
- package/packages/{formMaking → FormMaking}/WidgetForm.vue +49 -31
- package/packages/FormMaking/WidgetFormItem.vue +157 -0
- package/packages/{formMaking/componentsConfig.js → FormMaking/custom/config.js} +379 -163
- package/packages/FormMaking/custom/configs/alliance.vue +0 -0
- package/packages/FormMaking/custom/configs/blank.vue +54 -0
- package/packages/FormMaking/custom/configs/button.vue +144 -0
- package/packages/FormMaking/custom/configs/cascader.vue +182 -0
- package/packages/FormMaking/custom/configs/cell.vue +81 -0
- package/packages/FormMaking/custom/configs/checkbox.vue +237 -0
- package/packages/FormMaking/custom/configs/color.vue +137 -0
- package/packages/FormMaking/custom/configs/date.vue +158 -0
- package/packages/FormMaking/custom/configs/divider.vue +61 -0
- package/packages/FormMaking/custom/configs/editor.vue +71 -0
- package/packages/FormMaking/custom/configs/filler.vue +52 -0
- package/packages/FormMaking/custom/configs/grid.vue +103 -0
- package/packages/FormMaking/custom/configs/image.vue +148 -0
- package/packages/FormMaking/custom/configs/input.vue +176 -0
- package/packages/FormMaking/custom/configs/number.vue +140 -0
- package/packages/FormMaking/custom/configs/radio.vue +215 -0
- package/packages/FormMaking/custom/configs/rate.vue +109 -0
- package/packages/FormMaking/custom/configs/select.vue +308 -0
- package/packages/FormMaking/custom/configs/slider.vue +142 -0
- package/packages/FormMaking/custom/configs/switch.vue +130 -0
- package/packages/FormMaking/custom/configs/table.vue +105 -0
- package/packages/FormMaking/custom/configs/table_h5.vue +102 -0
- package/packages/FormMaking/custom/configs/tabs.vue +175 -0
- package/packages/FormMaking/custom/configs/text.vue +71 -0
- package/packages/FormMaking/custom/configs/textarea.vue +167 -0
- package/packages/FormMaking/custom/configs/time.vue +153 -0
- package/packages/FormMaking/custom/configs/upload.vue +150 -0
- package/packages/FormMaking/custom/index.js +33 -0
- package/packages/FormMaking/custom/items/alliance.vue +132 -0
- package/packages/FormMaking/custom/items/blank.vue +16 -0
- package/packages/FormMaking/custom/items/button.vue +27 -0
- package/packages/FormMaking/custom/items/cascader.vue +29 -0
- package/packages/FormMaking/custom/items/cell.vue +18 -0
- package/packages/FormMaking/custom/items/checkbox.vue +46 -0
- package/packages/FormMaking/custom/items/color.vue +19 -0
- package/packages/FormMaking/custom/items/date.vue +29 -0
- package/packages/FormMaking/custom/items/divider.vue +14 -0
- package/packages/FormMaking/custom/items/editor.vue +22 -0
- package/packages/FormMaking/custom/items/filler.vue +17 -0
- package/packages/FormMaking/custom/items/grid.vue +129 -0
- package/packages/FormMaking/custom/items/image.vue +42 -0
- package/packages/FormMaking/custom/items/input.vue +36 -0
- package/packages/FormMaking/custom/items/login.vue +13 -0
- package/packages/FormMaking/custom/items/number.vue +24 -0
- package/packages/FormMaking/custom/items/radio.vue +44 -0
- package/packages/FormMaking/custom/items/rate.vue +20 -0
- package/packages/FormMaking/custom/items/select.vue +32 -0
- package/packages/FormMaking/custom/items/slider.vue +34 -0
- package/packages/FormMaking/custom/items/switch.vue +22 -0
- package/packages/FormMaking/custom/items/table.vue +106 -0
- package/packages/FormMaking/custom/items/table_h5.vue +126 -0
- package/packages/FormMaking/custom/items/tabs.vue +145 -0
- package/packages/FormMaking/custom/items/text.vue +18 -0
- package/packages/FormMaking/custom/items/textarea.vue +37 -0
- package/packages/FormMaking/custom/items/time.vue +32 -0
- package/packages/FormMaking/custom/items/upload.vue +83 -0
- package/packages/FormMaking/custom/mixins/index.js +61 -0
- package/packages/FormMaking/custom/register.js +18 -0
- package/packages/{formMaking → FormMaking}/iconfont/demo.css +0 -0
- package/packages/{formMaking → FormMaking}/iconfont/demo_index.html +0 -0
- package/packages/{formMaking → FormMaking}/iconfont/iconfont.css +0 -0
- package/packages/{formMaking → FormMaking}/iconfont/iconfont.eot +0 -0
- package/packages/{formMaking → FormMaking}/iconfont/iconfont.js +0 -0
- package/packages/{formMaking → FormMaking}/iconfont/iconfont.svg +0 -0
- package/{lib → packages/FormMaking/iconfont}/iconfont.ttf +0 -0
- package/{lib → packages/FormMaking/iconfont}/iconfont.woff +0 -0
- package/packages/{formMaking → FormMaking}/iconfont/iconfont.woff2 +0 -0
- package/packages/FormMaking/index.js +35 -0
- package/packages/{formMaking → FormMaking}/lang/en-US.js +1 -1
- package/packages/{formMaking → FormMaking}/lang/zh-CN.js +1 -1
- package/packages/{formMaking → FormMaking}/styles/cover.scss +1 -1
- package/packages/{formMaking → FormMaking}/styles/index.scss +445 -429
- package/packages/{formMaking → FormMaking/util}/generateCode.js +5 -5
- package/packages/{formMaking → FormMaking}/util/index.js +0 -0
- package/packages/{formMaking → FormMaking}/util/request.js +0 -0
- package/packages/{icons → Icons}/index.js +0 -0
- package/packages/{icons → Icons}/index.vue +26 -9
- package/packages/Image/index.js +8 -0
- package/packages/Image/index.vue +146 -0
- package/packages/ImagePreview/index.js +8 -0
- package/packages/ImagePreview/index.vue +386 -0
- package/packages/Row/index.js +8 -0
- package/packages/Row/index.vue +35 -0
- package/packages/{table → Table}/action.js +0 -0
- package/packages/{table → Table}/action.vue +1 -1
- package/packages/Table/column.vue +63 -0
- package/packages/{table → Table}/index.js +0 -0
- package/packages/{table → Table}/index.vue +25 -23
- package/packages/{table → Table}/search.js +0 -0
- package/packages/{table → Table}/search.vue +1 -1
- package/packages/{table → Table}/tools.js +0 -0
- package/packages/{table → Table}/tools.vue +0 -0
- package/packages/Workflow/Log.js +99 -0
- package/packages/Workflow/designer/ProcessDesigner.vue +628 -0
- package/packages/Workflow/designer/index.js +7 -0
- package/packages/Workflow/designer/plugins/content-pad/contentPadProvider.js +390 -0
- package/packages/Workflow/designer/plugins/content-pad/index.js +6 -0
- package/packages/Workflow/designer/plugins/defaultEmpty.js +24 -0
- package/packages/Workflow/designer/plugins/descriptor/activitiDescriptor.json +1071 -0
- package/packages/Workflow/designer/plugins/descriptor/camundaDescriptor.json +1087 -0
- package/packages/Workflow/designer/plugins/descriptor/flowableDescriptor.json +1215 -0
- package/packages/Workflow/designer/plugins/extension-moddle/activiti/activitiExtension.js +74 -0
- package/packages/Workflow/designer/plugins/extension-moddle/activiti/index.js +9 -0
- package/packages/Workflow/designer/plugins/extension-moddle/camunda/extension.js +148 -0
- package/packages/Workflow/designer/plugins/extension-moddle/camunda/index.js +6 -0
- package/packages/Workflow/designer/plugins/extension-moddle/flowable/flowableExtension.js +74 -0
- package/packages/Workflow/designer/plugins/extension-moddle/flowable/index.js +9 -0
- package/packages/Workflow/designer/plugins/palette/CustomPalette.js +156 -0
- package/packages/Workflow/designer/plugins/palette/index.js +6 -0
- package/packages/Workflow/designer/plugins/palette/paletteProvider.js +160 -0
- package/packages/Workflow/designer/plugins/translate/customTranslate.js +41 -0
- package/packages/Workflow/designer/plugins/translate/zh.js +238 -0
- package/packages/Workflow/highlight/index.js +5 -0
- package/packages/Workflow/index.js +26 -0
- package/packages/Workflow/index.vue +394 -0
- package/packages/Workflow/modules/auto-place/CustomAutoPlace.js +81 -0
- package/packages/Workflow/modules/auto-place/index.js +6 -0
- package/packages/Workflow/modules/custom-renderer/CustomRenderer.js +17 -0
- package/packages/Workflow/modules/custom-renderer/index.js +6 -0
- package/packages/Workflow/modules/rules/CustomRules.js +16 -0
- package/packages/Workflow/modules/rules/index.js +6 -0
- package/packages/Workflow/palette/ProcessPalette.vue +106 -0
- package/packages/Workflow/palette/index.js +7 -0
- package/packages/Workflow/penal/PropertiesPanel.vue +247 -0
- package/packages/Workflow/penal/base/ElementBaseInfo.vue +80 -0
- package/packages/Workflow/penal/flow-condition/FlowCondition.vue +142 -0
- package/packages/Workflow/penal/form/ElementForm.vue +367 -0
- package/packages/Workflow/penal/index.js +7 -0
- package/packages/Workflow/penal/listeners/ElementListeners.vue +299 -0
- package/packages/Workflow/penal/listeners/UserTaskListeners.vue +322 -0
- package/packages/Workflow/penal/listeners/template.js +178 -0
- package/packages/Workflow/penal/listeners/utilSelf.js +62 -0
- package/packages/Workflow/penal/multi-instance/ElementMultiInstance.vue +200 -0
- package/packages/Workflow/penal/other/ElementOtherConfig.vue +59 -0
- package/packages/Workflow/penal/properties/ElementProperties.vue +135 -0
- package/packages/Workflow/penal/signal-message/SignalAndMessage.vue +104 -0
- package/packages/Workflow/penal/task/ElementTask.vue +73 -0
- package/packages/Workflow/penal/task/task-components/ReceiveTask.vue +97 -0
- package/packages/Workflow/penal/task/task-components/ScriptTask.vue +85 -0
- package/packages/Workflow/penal/task/task-components/UserTask.vue +535 -0
- package/packages/Workflow/theme/element-variables.scss +70 -0
- package/packages/Workflow/theme/index.scss +2 -0
- package/packages/Workflow/theme/process-designer.scss +157 -0
- package/packages/Workflow/theme/process-panel.scss +107 -0
- package/packages/Workflow/translations.js +25 -0
- package/packages/Workflow/utils.js +71 -0
- package/packages/upload/ajax.js +85 -0
- package/packages/upload/index.js +8 -0
- package/packages/upload/index.vue +325 -0
- package/packages/upload/locale.js +9 -0
- package/packages/upload/upload-dragger.vue +70 -0
- package/packages/upload/upload-list.vue +101 -0
- package/packages/upload/upload.vue +211 -0
- package/lib/03250ed25fc1b305e9980cf7cf0dfb09.js +0 -1
- package/lib/theme-chalk/cell.css +0 -53
- package/lib/theme-chalk/dialog.css +0 -41
- package/lib/theme-chalk/empty.css +0 -27
- package/lib/theme-chalk/index.css +0 -6
- package/lib/theme-chalk/reset.css +0 -4
- package/lib/tianheng-ui.js.map +0 -1
- package/packages/cell/index.vue +0 -116
- package/packages/empty/index.vue +0 -33
- package/packages/formMaking/Container.vue +0 -591
- package/packages/formMaking/CusDialog.vue +0 -134
- package/packages/formMaking/GenerateForm.vue +0 -174
- package/packages/formMaking/WidgetConfig.vue +0 -1539
- package/packages/formMaking/WidgetFormItem.vue +0 -817
- package/packages/formMaking/iconfont/iconfont.ttf +0 -0
- package/packages/formMaking/iconfont/iconfont.woff +0 -0
- package/packages/formMaking/index.js +0 -77
- package/packages/table/column.vue +0 -111
@@ -21,11 +21,11 @@ window.ace = window;
|
|
21
21
|
window.onerror = function(message, file, line, col, err) {
|
22
22
|
postMessage({type: "error", data: {
|
23
23
|
message: message,
|
24
|
-
data: err.data,
|
24
|
+
data: err && err.data,
|
25
25
|
file: file,
|
26
26
|
line: line,
|
27
27
|
col: col,
|
28
|
-
stack: err.stack
|
28
|
+
stack: err && err.stack
|
29
29
|
}});
|
30
30
|
};
|
31
31
|
|
@@ -153,10 +153,10 @@ window.define = function(id, deps, factory) {
|
|
153
153
|
};
|
154
154
|
};
|
155
155
|
window.define.amd = {};
|
156
|
-
require.tlns = {};
|
156
|
+
window.require.tlns = {};
|
157
157
|
window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
|
158
158
|
for (var i in topLevelNamespaces)
|
159
|
-
require.tlns[i] = topLevelNamespaces[i];
|
159
|
+
this.require.tlns[i] = topLevelNamespaces[i];
|
160
160
|
};
|
161
161
|
|
162
162
|
window.initSender = function initSender() {
|
@@ -210,16 +210,14 @@ window.onmessage = function(e) {
|
|
210
210
|
else if (msg.init) {
|
211
211
|
window.initBaseUrls(msg.tlns);
|
212
212
|
sender = window.sender = window.initSender();
|
213
|
-
var clazz = require(msg.module)[msg.classname];
|
213
|
+
var clazz = this.require(msg.module)[msg.classname];
|
214
214
|
main = window.main = new clazz(sender);
|
215
215
|
}
|
216
216
|
};
|
217
217
|
})(this);
|
218
218
|
|
219
|
-
ace.define("ace/lib/oop",[], function(require, exports, module)
|
220
|
-
|
221
|
-
|
222
|
-
exports.inherits = function(ctor, superCtor) {
|
219
|
+
ace.define("ace/lib/oop",[], function(require, exports, module){"use strict";
|
220
|
+
exports.inherits = function (ctor, superCtor) {
|
223
221
|
ctor.super_ = superCtor;
|
224
222
|
ctor.prototype = Object.create(superCtor.prototype, {
|
225
223
|
constructor: {
|
@@ -230,501 +228,455 @@ exports.inherits = function(ctor, superCtor) {
|
|
230
228
|
}
|
231
229
|
});
|
232
230
|
};
|
233
|
-
|
234
|
-
exports.mixin = function(obj, mixin) {
|
231
|
+
exports.mixin = function (obj, mixin) {
|
235
232
|
for (var key in mixin) {
|
236
233
|
obj[key] = mixin[key];
|
237
234
|
}
|
238
235
|
return obj;
|
239
236
|
};
|
240
|
-
|
241
|
-
exports.implement = function(proto, mixin) {
|
237
|
+
exports.implement = function (proto, mixin) {
|
242
238
|
exports.mixin(proto, mixin);
|
243
239
|
};
|
244
240
|
|
245
241
|
});
|
246
242
|
|
247
|
-
ace.define("ace/
|
248
|
-
|
249
|
-
|
243
|
+
ace.define("ace/apply_delta",[], function(require, exports, module){"use strict";
|
244
|
+
function throwDeltaError(delta, errorText) {
|
245
|
+
console.log("Invalid Delta:", delta);
|
246
|
+
throw "Invalid Delta: " + errorText;
|
247
|
+
}
|
248
|
+
function positionInDocument(docLines, position) {
|
249
|
+
return position.row >= 0 && position.row < docLines.length &&
|
250
|
+
position.column >= 0 && position.column <= docLines[position.row].length;
|
251
|
+
}
|
252
|
+
function validateDelta(docLines, delta) {
|
253
|
+
if (delta.action != "insert" && delta.action != "remove")
|
254
|
+
throwDeltaError(delta, "delta.action must be 'insert' or 'remove'");
|
255
|
+
if (!(delta.lines instanceof Array))
|
256
|
+
throwDeltaError(delta, "delta.lines must be an Array");
|
257
|
+
if (!delta.start || !delta.end)
|
258
|
+
throwDeltaError(delta, "delta.start/end must be an present");
|
259
|
+
var start = delta.start;
|
260
|
+
if (!positionInDocument(docLines, delta.start))
|
261
|
+
throwDeltaError(delta, "delta.start must be contained in document");
|
262
|
+
var end = delta.end;
|
263
|
+
if (delta.action == "remove" && !positionInDocument(docLines, end))
|
264
|
+
throwDeltaError(delta, "delta.end must contained in document for 'remove' actions");
|
265
|
+
var numRangeRows = end.row - start.row;
|
266
|
+
var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));
|
267
|
+
if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)
|
268
|
+
throwDeltaError(delta, "delta.range must match delta lines");
|
269
|
+
}
|
270
|
+
exports.applyDelta = function (docLines, delta, doNotValidate) {
|
271
|
+
var row = delta.start.row;
|
272
|
+
var startColumn = delta.start.column;
|
273
|
+
var line = docLines[row] || "";
|
274
|
+
switch (delta.action) {
|
275
|
+
case "insert":
|
276
|
+
var lines = delta.lines;
|
277
|
+
if (lines.length === 1) {
|
278
|
+
docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);
|
279
|
+
}
|
280
|
+
else {
|
281
|
+
var args = [row, 1].concat(delta.lines);
|
282
|
+
docLines.splice.apply(docLines, args);
|
283
|
+
docLines[row] = line.substring(0, startColumn) + docLines[row];
|
284
|
+
docLines[row + delta.lines.length - 1] += line.substring(startColumn);
|
285
|
+
}
|
286
|
+
break;
|
287
|
+
case "remove":
|
288
|
+
var endColumn = delta.end.column;
|
289
|
+
var endRow = delta.end.row;
|
290
|
+
if (row === endRow) {
|
291
|
+
docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);
|
292
|
+
}
|
293
|
+
else {
|
294
|
+
docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));
|
295
|
+
}
|
296
|
+
break;
|
297
|
+
}
|
298
|
+
};
|
299
|
+
|
300
|
+
});
|
301
|
+
|
302
|
+
ace.define("ace/lib/event_emitter",[], function(require, exports, module){"use strict";
|
303
|
+
var EventEmitter = {};
|
304
|
+
var stopPropagation = function () { this.propagationStopped = true; };
|
305
|
+
var preventDefault = function () { this.defaultPrevented = true; };
|
306
|
+
EventEmitter._emit =
|
307
|
+
EventEmitter._dispatchEvent = function (eventName, e) {
|
308
|
+
this._eventRegistry || (this._eventRegistry = {});
|
309
|
+
this._defaultHandlers || (this._defaultHandlers = {});
|
310
|
+
var listeners = this._eventRegistry[eventName] || [];
|
311
|
+
var defaultHandler = this._defaultHandlers[eventName];
|
312
|
+
if (!listeners.length && !defaultHandler)
|
313
|
+
return;
|
314
|
+
if (typeof e != "object" || !e)
|
315
|
+
e = {};
|
316
|
+
if (!e.type)
|
317
|
+
e.type = eventName;
|
318
|
+
if (!e.stopPropagation)
|
319
|
+
e.stopPropagation = stopPropagation;
|
320
|
+
if (!e.preventDefault)
|
321
|
+
e.preventDefault = preventDefault;
|
322
|
+
listeners = listeners.slice();
|
323
|
+
for (var i = 0; i < listeners.length; i++) {
|
324
|
+
listeners[i](e, this);
|
325
|
+
if (e.propagationStopped)
|
326
|
+
break;
|
327
|
+
}
|
328
|
+
if (defaultHandler && !e.defaultPrevented)
|
329
|
+
return defaultHandler(e, this);
|
330
|
+
};
|
331
|
+
EventEmitter._signal = function (eventName, e) {
|
332
|
+
var listeners = (this._eventRegistry || {})[eventName];
|
333
|
+
if (!listeners)
|
334
|
+
return;
|
335
|
+
listeners = listeners.slice();
|
336
|
+
for (var i = 0; i < listeners.length; i++)
|
337
|
+
listeners[i](e, this);
|
338
|
+
};
|
339
|
+
EventEmitter.once = function (eventName, callback) {
|
340
|
+
var _self = this;
|
341
|
+
this.on(eventName, function newCallback() {
|
342
|
+
_self.off(eventName, newCallback);
|
343
|
+
callback.apply(null, arguments);
|
344
|
+
});
|
345
|
+
if (!callback) {
|
346
|
+
return new Promise(function (resolve) {
|
347
|
+
callback = resolve;
|
348
|
+
});
|
349
|
+
}
|
350
|
+
};
|
351
|
+
EventEmitter.setDefaultHandler = function (eventName, callback) {
|
352
|
+
var handlers = this._defaultHandlers;
|
353
|
+
if (!handlers)
|
354
|
+
handlers = this._defaultHandlers = { _disabled_: {} };
|
355
|
+
if (handlers[eventName]) {
|
356
|
+
var old = handlers[eventName];
|
357
|
+
var disabled = handlers._disabled_[eventName];
|
358
|
+
if (!disabled)
|
359
|
+
handlers._disabled_[eventName] = disabled = [];
|
360
|
+
disabled.push(old);
|
361
|
+
var i = disabled.indexOf(callback);
|
362
|
+
if (i != -1)
|
363
|
+
disabled.splice(i, 1);
|
364
|
+
}
|
365
|
+
handlers[eventName] = callback;
|
366
|
+
};
|
367
|
+
EventEmitter.removeDefaultHandler = function (eventName, callback) {
|
368
|
+
var handlers = this._defaultHandlers;
|
369
|
+
if (!handlers)
|
370
|
+
return;
|
371
|
+
var disabled = handlers._disabled_[eventName];
|
372
|
+
if (handlers[eventName] == callback) {
|
373
|
+
if (disabled)
|
374
|
+
this.setDefaultHandler(eventName, disabled.pop());
|
375
|
+
}
|
376
|
+
else if (disabled) {
|
377
|
+
var i = disabled.indexOf(callback);
|
378
|
+
if (i != -1)
|
379
|
+
disabled.splice(i, 1);
|
380
|
+
}
|
381
|
+
};
|
382
|
+
EventEmitter.on =
|
383
|
+
EventEmitter.addEventListener = function (eventName, callback, capturing) {
|
384
|
+
this._eventRegistry = this._eventRegistry || {};
|
385
|
+
var listeners = this._eventRegistry[eventName];
|
386
|
+
if (!listeners)
|
387
|
+
listeners = this._eventRegistry[eventName] = [];
|
388
|
+
if (listeners.indexOf(callback) == -1)
|
389
|
+
listeners[capturing ? "unshift" : "push"](callback);
|
390
|
+
return callback;
|
391
|
+
};
|
392
|
+
EventEmitter.off =
|
393
|
+
EventEmitter.removeListener =
|
394
|
+
EventEmitter.removeEventListener = function (eventName, callback) {
|
395
|
+
this._eventRegistry = this._eventRegistry || {};
|
396
|
+
var listeners = this._eventRegistry[eventName];
|
397
|
+
if (!listeners)
|
398
|
+
return;
|
399
|
+
var index = listeners.indexOf(callback);
|
400
|
+
if (index !== -1)
|
401
|
+
listeners.splice(index, 1);
|
402
|
+
};
|
403
|
+
EventEmitter.removeAllListeners = function (eventName) {
|
404
|
+
if (!eventName)
|
405
|
+
this._eventRegistry = this._defaultHandlers = undefined;
|
406
|
+
if (this._eventRegistry)
|
407
|
+
this._eventRegistry[eventName] = undefined;
|
408
|
+
if (this._defaultHandlers)
|
409
|
+
this._defaultHandlers[eventName] = undefined;
|
410
|
+
};
|
411
|
+
exports.EventEmitter = EventEmitter;
|
412
|
+
|
413
|
+
});
|
414
|
+
|
415
|
+
ace.define("ace/range",[], function(require, exports, module){"use strict";
|
416
|
+
var comparePoints = function (p1, p2) {
|
250
417
|
return p1.row - p2.row || p1.column - p2.column;
|
251
418
|
};
|
252
|
-
var Range = function(startRow, startColumn, endRow, endColumn) {
|
419
|
+
var Range = function (startRow, startColumn, endRow, endColumn) {
|
253
420
|
this.start = {
|
254
421
|
row: startRow,
|
255
422
|
column: startColumn
|
256
423
|
};
|
257
|
-
|
258
424
|
this.end = {
|
259
425
|
row: endRow,
|
260
426
|
column: endColumn
|
261
427
|
};
|
262
428
|
};
|
263
|
-
|
264
|
-
|
265
|
-
this.isEqual = function(range) {
|
429
|
+
(function () {
|
430
|
+
this.isEqual = function (range) {
|
266
431
|
return this.start.row === range.start.row &&
|
267
432
|
this.end.row === range.end.row &&
|
268
433
|
this.start.column === range.start.column &&
|
269
434
|
this.end.column === range.end.column;
|
270
435
|
};
|
271
|
-
this.toString = function() {
|
436
|
+
this.toString = function () {
|
272
437
|
return ("Range: [" + this.start.row + "/" + this.start.column +
|
273
438
|
"] -> [" + this.end.row + "/" + this.end.column + "]");
|
274
439
|
};
|
275
|
-
|
276
|
-
this.contains = function(row, column) {
|
440
|
+
this.contains = function (row, column) {
|
277
441
|
return this.compare(row, column) == 0;
|
278
442
|
};
|
279
|
-
this.compareRange = function(range) {
|
280
|
-
var cmp,
|
281
|
-
end = range.end,
|
282
|
-
start = range.start;
|
283
|
-
|
443
|
+
this.compareRange = function (range) {
|
444
|
+
var cmp, end = range.end, start = range.start;
|
284
445
|
cmp = this.compare(end.row, end.column);
|
285
446
|
if (cmp == 1) {
|
286
447
|
cmp = this.compare(start.row, start.column);
|
287
448
|
if (cmp == 1) {
|
288
449
|
return 2;
|
289
|
-
}
|
450
|
+
}
|
451
|
+
else if (cmp == 0) {
|
290
452
|
return 1;
|
291
|
-
}
|
453
|
+
}
|
454
|
+
else {
|
292
455
|
return 0;
|
293
456
|
}
|
294
|
-
}
|
457
|
+
}
|
458
|
+
else if (cmp == -1) {
|
295
459
|
return -2;
|
296
|
-
}
|
460
|
+
}
|
461
|
+
else {
|
297
462
|
cmp = this.compare(start.row, start.column);
|
298
463
|
if (cmp == -1) {
|
299
464
|
return -1;
|
300
|
-
}
|
465
|
+
}
|
466
|
+
else if (cmp == 1) {
|
301
467
|
return 42;
|
302
|
-
}
|
468
|
+
}
|
469
|
+
else {
|
303
470
|
return 0;
|
304
471
|
}
|
305
472
|
}
|
306
473
|
};
|
307
|
-
this.comparePoint = function(p) {
|
474
|
+
this.comparePoint = function (p) {
|
308
475
|
return this.compare(p.row, p.column);
|
309
476
|
};
|
310
|
-
this.containsRange = function(range) {
|
477
|
+
this.containsRange = function (range) {
|
311
478
|
return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
|
312
479
|
};
|
313
|
-
this.intersects = function(range) {
|
480
|
+
this.intersects = function (range) {
|
314
481
|
var cmp = this.compareRange(range);
|
315
482
|
return (cmp == -1 || cmp == 0 || cmp == 1);
|
316
483
|
};
|
317
|
-
this.isEnd = function(row, column) {
|
484
|
+
this.isEnd = function (row, column) {
|
318
485
|
return this.end.row == row && this.end.column == column;
|
319
486
|
};
|
320
|
-
this.isStart = function(row, column) {
|
487
|
+
this.isStart = function (row, column) {
|
321
488
|
return this.start.row == row && this.start.column == column;
|
322
489
|
};
|
323
|
-
this.setStart = function(row, column) {
|
490
|
+
this.setStart = function (row, column) {
|
324
491
|
if (typeof row == "object") {
|
325
492
|
this.start.column = row.column;
|
326
493
|
this.start.row = row.row;
|
327
|
-
}
|
494
|
+
}
|
495
|
+
else {
|
328
496
|
this.start.row = row;
|
329
497
|
this.start.column = column;
|
330
498
|
}
|
331
499
|
};
|
332
|
-
this.setEnd = function(row, column) {
|
500
|
+
this.setEnd = function (row, column) {
|
333
501
|
if (typeof row == "object") {
|
334
502
|
this.end.column = row.column;
|
335
503
|
this.end.row = row.row;
|
336
|
-
}
|
504
|
+
}
|
505
|
+
else {
|
337
506
|
this.end.row = row;
|
338
507
|
this.end.column = column;
|
339
508
|
}
|
340
509
|
};
|
341
|
-
this.inside = function(row, column) {
|
510
|
+
this.inside = function (row, column) {
|
342
511
|
if (this.compare(row, column) == 0) {
|
343
512
|
if (this.isEnd(row, column) || this.isStart(row, column)) {
|
344
513
|
return false;
|
345
|
-
}
|
514
|
+
}
|
515
|
+
else {
|
346
516
|
return true;
|
347
517
|
}
|
348
518
|
}
|
349
519
|
return false;
|
350
520
|
};
|
351
|
-
this.insideStart = function(row, column) {
|
521
|
+
this.insideStart = function (row, column) {
|
352
522
|
if (this.compare(row, column) == 0) {
|
353
523
|
if (this.isEnd(row, column)) {
|
354
524
|
return false;
|
355
|
-
}
|
525
|
+
}
|
526
|
+
else {
|
356
527
|
return true;
|
357
528
|
}
|
358
529
|
}
|
359
530
|
return false;
|
360
531
|
};
|
361
|
-
this.insideEnd = function(row, column) {
|
532
|
+
this.insideEnd = function (row, column) {
|
362
533
|
if (this.compare(row, column) == 0) {
|
363
534
|
if (this.isStart(row, column)) {
|
364
535
|
return false;
|
365
|
-
}
|
536
|
+
}
|
537
|
+
else {
|
366
538
|
return true;
|
367
539
|
}
|
368
540
|
}
|
369
541
|
return false;
|
370
542
|
};
|
371
|
-
this.compare = function(row, column) {
|
543
|
+
this.compare = function (row, column) {
|
372
544
|
if (!this.isMultiLine()) {
|
373
545
|
if (row === this.start.row) {
|
374
546
|
return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
|
375
547
|
}
|
376
548
|
}
|
377
|
-
|
378
549
|
if (row < this.start.row)
|
379
550
|
return -1;
|
380
|
-
|
381
551
|
if (row > this.end.row)
|
382
552
|
return 1;
|
383
|
-
|
384
553
|
if (this.start.row === row)
|
385
554
|
return column >= this.start.column ? 0 : -1;
|
386
|
-
|
387
555
|
if (this.end.row === row)
|
388
556
|
return column <= this.end.column ? 0 : 1;
|
389
|
-
|
390
557
|
return 0;
|
391
558
|
};
|
392
|
-
this.compareStart = function(row, column) {
|
559
|
+
this.compareStart = function (row, column) {
|
393
560
|
if (this.start.row == row && this.start.column == column) {
|
394
561
|
return -1;
|
395
|
-
}
|
562
|
+
}
|
563
|
+
else {
|
396
564
|
return this.compare(row, column);
|
397
565
|
}
|
398
566
|
};
|
399
|
-
this.compareEnd = function(row, column) {
|
567
|
+
this.compareEnd = function (row, column) {
|
400
568
|
if (this.end.row == row && this.end.column == column) {
|
401
569
|
return 1;
|
402
|
-
}
|
570
|
+
}
|
571
|
+
else {
|
403
572
|
return this.compare(row, column);
|
404
573
|
}
|
405
574
|
};
|
406
|
-
this.compareInside = function(row, column) {
|
575
|
+
this.compareInside = function (row, column) {
|
407
576
|
if (this.end.row == row && this.end.column == column) {
|
408
577
|
return 1;
|
409
|
-
}
|
578
|
+
}
|
579
|
+
else if (this.start.row == row && this.start.column == column) {
|
410
580
|
return -1;
|
411
|
-
}
|
581
|
+
}
|
582
|
+
else {
|
412
583
|
return this.compare(row, column);
|
413
584
|
}
|
414
585
|
};
|
415
|
-
this.clipRows = function(firstRow, lastRow) {
|
586
|
+
this.clipRows = function (firstRow, lastRow) {
|
416
587
|
if (this.end.row > lastRow)
|
417
|
-
var end = {row: lastRow + 1, column: 0};
|
588
|
+
var end = { row: lastRow + 1, column: 0 };
|
418
589
|
else if (this.end.row < firstRow)
|
419
|
-
var end = {row: firstRow, column: 0};
|
420
|
-
|
590
|
+
var end = { row: firstRow, column: 0 };
|
421
591
|
if (this.start.row > lastRow)
|
422
|
-
var start = {row: lastRow + 1, column: 0};
|
592
|
+
var start = { row: lastRow + 1, column: 0 };
|
423
593
|
else if (this.start.row < firstRow)
|
424
|
-
var start = {row: firstRow, column: 0};
|
425
|
-
|
594
|
+
var start = { row: firstRow, column: 0 };
|
426
595
|
return Range.fromPoints(start || this.start, end || this.end);
|
427
596
|
};
|
428
|
-
this.extend = function(row, column) {
|
597
|
+
this.extend = function (row, column) {
|
429
598
|
var cmp = this.compare(row, column);
|
430
|
-
|
431
599
|
if (cmp == 0)
|
432
600
|
return this;
|
433
601
|
else if (cmp == -1)
|
434
|
-
var start = {row: row, column: column};
|
602
|
+
var start = { row: row, column: column };
|
435
603
|
else
|
436
|
-
var end = {row: row, column: column};
|
437
|
-
|
604
|
+
var end = { row: row, column: column };
|
438
605
|
return Range.fromPoints(start || this.start, end || this.end);
|
439
606
|
};
|
440
|
-
|
441
|
-
this.isEmpty = function() {
|
607
|
+
this.isEmpty = function () {
|
442
608
|
return (this.start.row === this.end.row && this.start.column === this.end.column);
|
443
609
|
};
|
444
|
-
this.isMultiLine = function() {
|
610
|
+
this.isMultiLine = function () {
|
445
611
|
return (this.start.row !== this.end.row);
|
446
612
|
};
|
447
|
-
this.clone = function() {
|
613
|
+
this.clone = function () {
|
448
614
|
return Range.fromPoints(this.start, this.end);
|
449
615
|
};
|
450
|
-
this.collapseRows = function() {
|
616
|
+
this.collapseRows = function () {
|
451
617
|
if (this.end.column == 0)
|
452
|
-
return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);
|
618
|
+
return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);
|
453
619
|
else
|
454
620
|
return new Range(this.start.row, 0, this.end.row, 0);
|
455
621
|
};
|
456
|
-
this.toScreenRange = function(session) {
|
622
|
+
this.toScreenRange = function (session) {
|
457
623
|
var screenPosStart = session.documentToScreenPosition(this.start);
|
458
624
|
var screenPosEnd = session.documentToScreenPosition(this.end);
|
459
|
-
|
460
|
-
return new Range(
|
461
|
-
screenPosStart.row, screenPosStart.column,
|
462
|
-
screenPosEnd.row, screenPosEnd.column
|
463
|
-
);
|
625
|
+
return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);
|
464
626
|
};
|
465
|
-
this.moveBy = function(row, column) {
|
627
|
+
this.moveBy = function (row, column) {
|
466
628
|
this.start.row += row;
|
467
629
|
this.start.column += column;
|
468
630
|
this.end.row += row;
|
469
631
|
this.end.column += column;
|
470
632
|
};
|
471
|
-
|
472
633
|
}).call(Range.prototype);
|
473
|
-
Range.fromPoints = function(start, end) {
|
634
|
+
Range.fromPoints = function (start, end) {
|
474
635
|
return new Range(start.row, start.column, end.row, end.column);
|
475
636
|
};
|
476
637
|
Range.comparePoints = comparePoints;
|
477
|
-
|
478
|
-
Range.comparePoints = function(p1, p2) {
|
638
|
+
Range.comparePoints = function (p1, p2) {
|
479
639
|
return p1.row - p2.row || p1.column - p2.column;
|
480
640
|
};
|
481
|
-
|
482
|
-
|
483
641
|
exports.Range = Range;
|
484
|
-
});
|
485
|
-
|
486
|
-
ace.define("ace/apply_delta",[], function(require, exports, module) {
|
487
|
-
"use strict";
|
488
|
-
|
489
|
-
function throwDeltaError(delta, errorText){
|
490
|
-
console.log("Invalid Delta:", delta);
|
491
|
-
throw "Invalid Delta: " + errorText;
|
492
|
-
}
|
493
|
-
|
494
|
-
function positionInDocument(docLines, position) {
|
495
|
-
return position.row >= 0 && position.row < docLines.length &&
|
496
|
-
position.column >= 0 && position.column <= docLines[position.row].length;
|
497
|
-
}
|
498
|
-
|
499
|
-
function validateDelta(docLines, delta) {
|
500
|
-
if (delta.action != "insert" && delta.action != "remove")
|
501
|
-
throwDeltaError(delta, "delta.action must be 'insert' or 'remove'");
|
502
|
-
if (!(delta.lines instanceof Array))
|
503
|
-
throwDeltaError(delta, "delta.lines must be an Array");
|
504
|
-
if (!delta.start || !delta.end)
|
505
|
-
throwDeltaError(delta, "delta.start/end must be an present");
|
506
|
-
var start = delta.start;
|
507
|
-
if (!positionInDocument(docLines, delta.start))
|
508
|
-
throwDeltaError(delta, "delta.start must be contained in document");
|
509
|
-
var end = delta.end;
|
510
|
-
if (delta.action == "remove" && !positionInDocument(docLines, end))
|
511
|
-
throwDeltaError(delta, "delta.end must contained in document for 'remove' actions");
|
512
|
-
var numRangeRows = end.row - start.row;
|
513
|
-
var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));
|
514
|
-
if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)
|
515
|
-
throwDeltaError(delta, "delta.range must match delta lines");
|
516
|
-
}
|
517
|
-
|
518
|
-
exports.applyDelta = function(docLines, delta, doNotValidate) {
|
519
|
-
|
520
|
-
var row = delta.start.row;
|
521
|
-
var startColumn = delta.start.column;
|
522
|
-
var line = docLines[row] || "";
|
523
|
-
switch (delta.action) {
|
524
|
-
case "insert":
|
525
|
-
var lines = delta.lines;
|
526
|
-
if (lines.length === 1) {
|
527
|
-
docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);
|
528
|
-
} else {
|
529
|
-
var args = [row, 1].concat(delta.lines);
|
530
|
-
docLines.splice.apply(docLines, args);
|
531
|
-
docLines[row] = line.substring(0, startColumn) + docLines[row];
|
532
|
-
docLines[row + delta.lines.length - 1] += line.substring(startColumn);
|
533
|
-
}
|
534
|
-
break;
|
535
|
-
case "remove":
|
536
|
-
var endColumn = delta.end.column;
|
537
|
-
var endRow = delta.end.row;
|
538
|
-
if (row === endRow) {
|
539
|
-
docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);
|
540
|
-
} else {
|
541
|
-
docLines.splice(
|
542
|
-
row, endRow - row + 1,
|
543
|
-
line.substring(0, startColumn) + docLines[endRow].substring(endColumn)
|
544
|
-
);
|
545
|
-
}
|
546
|
-
break;
|
547
|
-
}
|
548
|
-
};
|
549
|
-
});
|
550
|
-
|
551
|
-
ace.define("ace/lib/event_emitter",[], function(require, exports, module) {
|
552
|
-
"use strict";
|
553
|
-
|
554
|
-
var EventEmitter = {};
|
555
|
-
var stopPropagation = function() { this.propagationStopped = true; };
|
556
|
-
var preventDefault = function() { this.defaultPrevented = true; };
|
557
|
-
|
558
|
-
EventEmitter._emit =
|
559
|
-
EventEmitter._dispatchEvent = function(eventName, e) {
|
560
|
-
this._eventRegistry || (this._eventRegistry = {});
|
561
|
-
this._defaultHandlers || (this._defaultHandlers = {});
|
562
|
-
|
563
|
-
var listeners = this._eventRegistry[eventName] || [];
|
564
|
-
var defaultHandler = this._defaultHandlers[eventName];
|
565
|
-
if (!listeners.length && !defaultHandler)
|
566
|
-
return;
|
567
|
-
|
568
|
-
if (typeof e != "object" || !e)
|
569
|
-
e = {};
|
570
|
-
|
571
|
-
if (!e.type)
|
572
|
-
e.type = eventName;
|
573
|
-
if (!e.stopPropagation)
|
574
|
-
e.stopPropagation = stopPropagation;
|
575
|
-
if (!e.preventDefault)
|
576
|
-
e.preventDefault = preventDefault;
|
577
|
-
|
578
|
-
listeners = listeners.slice();
|
579
|
-
for (var i=0; i<listeners.length; i++) {
|
580
|
-
listeners[i](e, this);
|
581
|
-
if (e.propagationStopped)
|
582
|
-
break;
|
583
|
-
}
|
584
|
-
|
585
|
-
if (defaultHandler && !e.defaultPrevented)
|
586
|
-
return defaultHandler(e, this);
|
587
|
-
};
|
588
|
-
|
589
|
-
|
590
|
-
EventEmitter._signal = function(eventName, e) {
|
591
|
-
var listeners = (this._eventRegistry || {})[eventName];
|
592
|
-
if (!listeners)
|
593
|
-
return;
|
594
|
-
listeners = listeners.slice();
|
595
|
-
for (var i=0; i<listeners.length; i++)
|
596
|
-
listeners[i](e, this);
|
597
|
-
};
|
598
|
-
|
599
|
-
EventEmitter.once = function(eventName, callback) {
|
600
|
-
var _self = this;
|
601
|
-
this.on(eventName, function newCallback() {
|
602
|
-
_self.off(eventName, newCallback);
|
603
|
-
callback.apply(null, arguments);
|
604
|
-
});
|
605
|
-
if (!callback) {
|
606
|
-
return new Promise(function(resolve) {
|
607
|
-
callback = resolve;
|
608
|
-
});
|
609
|
-
}
|
610
|
-
};
|
611
|
-
|
612
|
-
|
613
|
-
EventEmitter.setDefaultHandler = function(eventName, callback) {
|
614
|
-
var handlers = this._defaultHandlers;
|
615
|
-
if (!handlers)
|
616
|
-
handlers = this._defaultHandlers = {_disabled_: {}};
|
617
|
-
|
618
|
-
if (handlers[eventName]) {
|
619
|
-
var old = handlers[eventName];
|
620
|
-
var disabled = handlers._disabled_[eventName];
|
621
|
-
if (!disabled)
|
622
|
-
handlers._disabled_[eventName] = disabled = [];
|
623
|
-
disabled.push(old);
|
624
|
-
var i = disabled.indexOf(callback);
|
625
|
-
if (i != -1)
|
626
|
-
disabled.splice(i, 1);
|
627
|
-
}
|
628
|
-
handlers[eventName] = callback;
|
629
|
-
};
|
630
|
-
EventEmitter.removeDefaultHandler = function(eventName, callback) {
|
631
|
-
var handlers = this._defaultHandlers;
|
632
|
-
if (!handlers)
|
633
|
-
return;
|
634
|
-
var disabled = handlers._disabled_[eventName];
|
635
|
-
|
636
|
-
if (handlers[eventName] == callback) {
|
637
|
-
if (disabled)
|
638
|
-
this.setDefaultHandler(eventName, disabled.pop());
|
639
|
-
} else if (disabled) {
|
640
|
-
var i = disabled.indexOf(callback);
|
641
|
-
if (i != -1)
|
642
|
-
disabled.splice(i, 1);
|
643
|
-
}
|
644
|
-
};
|
645
|
-
|
646
|
-
EventEmitter.on =
|
647
|
-
EventEmitter.addEventListener = function(eventName, callback, capturing) {
|
648
|
-
this._eventRegistry = this._eventRegistry || {};
|
649
|
-
|
650
|
-
var listeners = this._eventRegistry[eventName];
|
651
|
-
if (!listeners)
|
652
|
-
listeners = this._eventRegistry[eventName] = [];
|
653
|
-
|
654
|
-
if (listeners.indexOf(callback) == -1)
|
655
|
-
listeners[capturing ? "unshift" : "push"](callback);
|
656
|
-
return callback;
|
657
|
-
};
|
658
|
-
|
659
|
-
EventEmitter.off =
|
660
|
-
EventEmitter.removeListener =
|
661
|
-
EventEmitter.removeEventListener = function(eventName, callback) {
|
662
|
-
this._eventRegistry = this._eventRegistry || {};
|
663
|
-
|
664
|
-
var listeners = this._eventRegistry[eventName];
|
665
|
-
if (!listeners)
|
666
|
-
return;
|
667
|
-
|
668
|
-
var index = listeners.indexOf(callback);
|
669
|
-
if (index !== -1)
|
670
|
-
listeners.splice(index, 1);
|
671
|
-
};
|
672
|
-
|
673
|
-
EventEmitter.removeAllListeners = function(eventName) {
|
674
|
-
if (!eventName) this._eventRegistry = this._defaultHandlers = undefined;
|
675
|
-
if (this._eventRegistry) this._eventRegistry[eventName] = undefined;
|
676
|
-
if (this._defaultHandlers) this._defaultHandlers[eventName] = undefined;
|
677
|
-
};
|
678
|
-
|
679
|
-
exports.EventEmitter = EventEmitter;
|
680
642
|
|
681
643
|
});
|
682
644
|
|
683
|
-
ace.define("ace/anchor",[], function(require, exports, module)
|
684
|
-
"use strict";
|
685
|
-
|
645
|
+
ace.define("ace/anchor",[], function(require, exports, module){"use strict";
|
686
646
|
var oop = require("./lib/oop");
|
687
647
|
var EventEmitter = require("./lib/event_emitter").EventEmitter;
|
688
|
-
|
689
|
-
var Anchor = exports.Anchor = function(doc, row, column) {
|
648
|
+
var Anchor = exports.Anchor = function (doc, row, column) {
|
690
649
|
this.$onChange = this.onChange.bind(this);
|
691
650
|
this.attach(doc);
|
692
|
-
|
693
651
|
if (typeof column == "undefined")
|
694
652
|
this.setPosition(row.row, row.column);
|
695
653
|
else
|
696
654
|
this.setPosition(row, column);
|
697
655
|
};
|
698
|
-
|
699
|
-
(function() {
|
700
|
-
|
656
|
+
(function () {
|
701
657
|
oop.implement(this, EventEmitter);
|
702
|
-
this.getPosition = function() {
|
658
|
+
this.getPosition = function () {
|
703
659
|
return this.$clipPositionToDocument(this.row, this.column);
|
704
660
|
};
|
705
|
-
this.getDocument = function() {
|
661
|
+
this.getDocument = function () {
|
706
662
|
return this.document;
|
707
663
|
};
|
708
664
|
this.$insertRight = false;
|
709
|
-
this.onChange = function(delta) {
|
665
|
+
this.onChange = function (delta) {
|
710
666
|
if (delta.start.row == delta.end.row && delta.start.row != this.row)
|
711
667
|
return;
|
712
|
-
|
713
668
|
if (delta.start.row > this.row)
|
714
669
|
return;
|
715
|
-
|
716
|
-
var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);
|
670
|
+
var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);
|
717
671
|
this.setPosition(point.row, point.column, true);
|
718
672
|
};
|
719
|
-
|
720
673
|
function $pointsInOrder(point1, point2, equalPointsInOrder) {
|
721
674
|
var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;
|
722
675
|
return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);
|
723
676
|
}
|
724
|
-
|
725
677
|
function $getTransformedPoint(delta, point, moveIfEqual) {
|
726
678
|
var deltaIsInsert = delta.action == "insert";
|
727
|
-
var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row
|
679
|
+
var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);
|
728
680
|
var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);
|
729
681
|
var deltaStart = delta.start;
|
730
682
|
var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.
|
@@ -740,31 +692,28 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|
740
692
|
column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)
|
741
693
|
};
|
742
694
|
}
|
743
|
-
|
744
695
|
return {
|
745
696
|
row: deltaStart.row,
|
746
697
|
column: deltaStart.column
|
747
698
|
};
|
748
699
|
}
|
749
|
-
this.setPosition = function(row, column, noClip) {
|
700
|
+
this.setPosition = function (row, column, noClip) {
|
750
701
|
var pos;
|
751
702
|
if (noClip) {
|
752
703
|
pos = {
|
753
704
|
row: row,
|
754
705
|
column: column
|
755
706
|
};
|
756
|
-
}
|
707
|
+
}
|
708
|
+
else {
|
757
709
|
pos = this.$clipPositionToDocument(row, column);
|
758
710
|
}
|
759
|
-
|
760
711
|
if (this.row == pos.row && this.column == pos.column)
|
761
712
|
return;
|
762
|
-
|
763
713
|
var old = {
|
764
714
|
row: this.row,
|
765
715
|
column: this.column
|
766
716
|
};
|
767
|
-
|
768
717
|
this.row = pos.row;
|
769
718
|
this.column = pos.column;
|
770
719
|
this._signal("change", {
|
@@ -772,16 +721,15 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|
772
721
|
value: pos
|
773
722
|
});
|
774
723
|
};
|
775
|
-
this.detach = function() {
|
724
|
+
this.detach = function () {
|
776
725
|
this.document.off("change", this.$onChange);
|
777
726
|
};
|
778
|
-
this.attach = function(doc) {
|
727
|
+
this.attach = function (doc) {
|
779
728
|
this.document = doc || this.document;
|
780
729
|
this.document.on("change", this.$onChange);
|
781
730
|
};
|
782
|
-
this.$clipPositionToDocument = function(row, column) {
|
731
|
+
this.$clipPositionToDocument = function (row, column) {
|
783
732
|
var pos = {};
|
784
|
-
|
785
733
|
if (row >= this.document.getLength()) {
|
786
734
|
pos.row = Math.max(0, this.document.getLength() - 1);
|
787
735
|
pos.column = this.document.getLine(pos.row).length;
|
@@ -794,113 +742,105 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|
794
742
|
pos.row = row;
|
795
743
|
pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
|
796
744
|
}
|
797
|
-
|
798
745
|
if (column < 0)
|
799
746
|
pos.column = 0;
|
800
|
-
|
801
747
|
return pos;
|
802
748
|
};
|
803
|
-
|
804
749
|
}).call(Anchor.prototype);
|
805
750
|
|
806
751
|
});
|
807
752
|
|
808
|
-
ace.define("ace/document",[], function(require, exports, module)
|
809
|
-
"use strict";
|
810
|
-
|
753
|
+
ace.define("ace/document",[], function(require, exports, module){"use strict";
|
811
754
|
var oop = require("./lib/oop");
|
812
755
|
var applyDelta = require("./apply_delta").applyDelta;
|
813
756
|
var EventEmitter = require("./lib/event_emitter").EventEmitter;
|
814
757
|
var Range = require("./range").Range;
|
815
758
|
var Anchor = require("./anchor").Anchor;
|
816
|
-
|
817
|
-
var Document = function(textOrLines) {
|
759
|
+
var Document = function (textOrLines) {
|
818
760
|
this.$lines = [""];
|
819
761
|
if (textOrLines.length === 0) {
|
820
762
|
this.$lines = [""];
|
821
|
-
}
|
822
|
-
|
823
|
-
|
824
|
-
|
763
|
+
}
|
764
|
+
else if (Array.isArray(textOrLines)) {
|
765
|
+
this.insertMergedLines({ row: 0, column: 0 }, textOrLines);
|
766
|
+
}
|
767
|
+
else {
|
768
|
+
this.insert({ row: 0, column: 0 }, textOrLines);
|
825
769
|
}
|
826
770
|
};
|
827
|
-
|
828
|
-
(function() {
|
829
|
-
|
771
|
+
(function () {
|
830
772
|
oop.implement(this, EventEmitter);
|
831
|
-
this.setValue = function(text) {
|
773
|
+
this.setValue = function (text) {
|
832
774
|
var len = this.getLength() - 1;
|
833
775
|
this.remove(new Range(0, 0, len, this.getLine(len).length));
|
834
|
-
this.insert({row: 0, column: 0}, text);
|
776
|
+
this.insert({ row: 0, column: 0 }, text || "");
|
835
777
|
};
|
836
|
-
this.getValue = function() {
|
778
|
+
this.getValue = function () {
|
837
779
|
return this.getAllLines().join(this.getNewLineCharacter());
|
838
780
|
};
|
839
|
-
this.createAnchor = function(row, column) {
|
781
|
+
this.createAnchor = function (row, column) {
|
840
782
|
return new Anchor(this, row, column);
|
841
783
|
};
|
842
784
|
if ("aaa".split(/a/).length === 0) {
|
843
|
-
this.$split = function(text) {
|
785
|
+
this.$split = function (text) {
|
844
786
|
return text.replace(/\r\n|\r/g, "\n").split("\n");
|
845
787
|
};
|
846
|
-
}
|
847
|
-
|
788
|
+
}
|
789
|
+
else {
|
790
|
+
this.$split = function (text) {
|
848
791
|
return text.split(/\r\n|\r|\n/);
|
849
792
|
};
|
850
793
|
}
|
851
|
-
|
852
|
-
|
853
|
-
this.$detectNewLine = function(text) {
|
794
|
+
this.$detectNewLine = function (text) {
|
854
795
|
var match = text.match(/^.*?(\r\n|\r|\n)/m);
|
855
796
|
this.$autoNewLine = match ? match[1] : "\n";
|
856
797
|
this._signal("changeNewLineMode");
|
857
798
|
};
|
858
|
-
this.getNewLineCharacter = function() {
|
799
|
+
this.getNewLineCharacter = function () {
|
859
800
|
switch (this.$newLineMode) {
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
801
|
+
case "windows":
|
802
|
+
return "\r\n";
|
803
|
+
case "unix":
|
804
|
+
return "\n";
|
805
|
+
default:
|
806
|
+
return this.$autoNewLine || "\n";
|
866
807
|
}
|
867
808
|
};
|
868
|
-
|
869
809
|
this.$autoNewLine = "";
|
870
810
|
this.$newLineMode = "auto";
|
871
|
-
this.setNewLineMode = function(newLineMode) {
|
811
|
+
this.setNewLineMode = function (newLineMode) {
|
872
812
|
if (this.$newLineMode === newLineMode)
|
873
813
|
return;
|
874
|
-
|
875
814
|
this.$newLineMode = newLineMode;
|
876
815
|
this._signal("changeNewLineMode");
|
877
816
|
};
|
878
|
-
this.getNewLineMode = function() {
|
817
|
+
this.getNewLineMode = function () {
|
879
818
|
return this.$newLineMode;
|
880
819
|
};
|
881
|
-
this.isNewLine = function(text) {
|
820
|
+
this.isNewLine = function (text) {
|
882
821
|
return (text == "\r\n" || text == "\r" || text == "\n");
|
883
822
|
};
|
884
|
-
this.getLine = function(row) {
|
823
|
+
this.getLine = function (row) {
|
885
824
|
return this.$lines[row] || "";
|
886
825
|
};
|
887
|
-
this.getLines = function(firstRow, lastRow) {
|
826
|
+
this.getLines = function (firstRow, lastRow) {
|
888
827
|
return this.$lines.slice(firstRow, lastRow + 1);
|
889
828
|
};
|
890
|
-
this.getAllLines = function() {
|
829
|
+
this.getAllLines = function () {
|
891
830
|
return this.getLines(0, this.getLength());
|
892
831
|
};
|
893
|
-
this.getLength = function() {
|
832
|
+
this.getLength = function () {
|
894
833
|
return this.$lines.length;
|
895
834
|
};
|
896
|
-
this.getTextRange = function(range) {
|
835
|
+
this.getTextRange = function (range) {
|
897
836
|
return this.getLinesForRange(range).join(this.getNewLineCharacter());
|
898
837
|
};
|
899
|
-
this.getLinesForRange = function(range) {
|
838
|
+
this.getLinesForRange = function (range) {
|
900
839
|
var lines;
|
901
840
|
if (range.start.row === range.end.row) {
|
902
841
|
lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];
|
903
|
-
}
|
842
|
+
}
|
843
|
+
else {
|
904
844
|
lines = this.getLines(range.start.row, range.end.row);
|
905
845
|
lines[0] = (lines[0] || "").substring(range.start.column);
|
906
846
|
var l = lines.length - 1;
|
@@ -909,45 +849,43 @@ var Document = function(textOrLines) {
|
|
909
849
|
}
|
910
850
|
return lines;
|
911
851
|
};
|
912
|
-
this.insertLines = function(row, lines) {
|
852
|
+
this.insertLines = function (row, lines) {
|
913
853
|
console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead.");
|
914
854
|
return this.insertFullLines(row, lines);
|
915
855
|
};
|
916
|
-
this.removeLines = function(firstRow, lastRow) {
|
856
|
+
this.removeLines = function (firstRow, lastRow) {
|
917
857
|
console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead.");
|
918
858
|
return this.removeFullLines(firstRow, lastRow);
|
919
859
|
};
|
920
|
-
this.insertNewLine = function(position) {
|
860
|
+
this.insertNewLine = function (position) {
|
921
861
|
console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.");
|
922
862
|
return this.insertMergedLines(position, ["", ""]);
|
923
863
|
};
|
924
|
-
this.insert = function(position, text) {
|
864
|
+
this.insert = function (position, text) {
|
925
865
|
if (this.getLength() <= 1)
|
926
866
|
this.$detectNewLine(text);
|
927
|
-
|
928
867
|
return this.insertMergedLines(position, this.$split(text));
|
929
868
|
};
|
930
|
-
this.insertInLine = function(position, text) {
|
869
|
+
this.insertInLine = function (position, text) {
|
931
870
|
var start = this.clippedPos(position.row, position.column);
|
932
871
|
var end = this.pos(position.row, position.column + text.length);
|
933
|
-
|
934
872
|
this.applyDelta({
|
935
873
|
start: start,
|
936
874
|
end: end,
|
937
875
|
action: "insert",
|
938
876
|
lines: [text]
|
939
877
|
}, true);
|
940
|
-
|
941
878
|
return this.clonePos(end);
|
942
879
|
};
|
943
|
-
|
944
|
-
this.clippedPos = function(row, column) {
|
880
|
+
this.clippedPos = function (row, column) {
|
945
881
|
var length = this.getLength();
|
946
882
|
if (row === undefined) {
|
947
883
|
row = length;
|
948
|
-
}
|
884
|
+
}
|
885
|
+
else if (row < 0) {
|
949
886
|
row = 0;
|
950
|
-
}
|
887
|
+
}
|
888
|
+
else if (row >= length) {
|
951
889
|
row = length - 1;
|
952
890
|
column = undefined;
|
953
891
|
}
|
@@ -955,93 +893,87 @@ var Document = function(textOrLines) {
|
|
955
893
|
if (column == undefined)
|
956
894
|
column = line.length;
|
957
895
|
column = Math.min(Math.max(column, 0), line.length);
|
958
|
-
return {row: row, column: column};
|
896
|
+
return { row: row, column: column };
|
959
897
|
};
|
960
|
-
|
961
|
-
|
962
|
-
return {row: pos.row, column: pos.column};
|
898
|
+
this.clonePos = function (pos) {
|
899
|
+
return { row: pos.row, column: pos.column };
|
963
900
|
};
|
964
|
-
|
965
|
-
|
966
|
-
return {row: row, column: column};
|
901
|
+
this.pos = function (row, column) {
|
902
|
+
return { row: row, column: column };
|
967
903
|
};
|
968
|
-
|
969
|
-
this.$clipPosition = function(position) {
|
904
|
+
this.$clipPosition = function (position) {
|
970
905
|
var length = this.getLength();
|
971
906
|
if (position.row >= length) {
|
972
907
|
position.row = Math.max(0, length - 1);
|
973
908
|
position.column = this.getLine(length - 1).length;
|
974
|
-
}
|
909
|
+
}
|
910
|
+
else {
|
975
911
|
position.row = Math.max(0, position.row);
|
976
912
|
position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);
|
977
913
|
}
|
978
914
|
return position;
|
979
915
|
};
|
980
|
-
this.insertFullLines = function(row, lines) {
|
916
|
+
this.insertFullLines = function (row, lines) {
|
981
917
|
row = Math.min(Math.max(row, 0), this.getLength());
|
982
918
|
var column = 0;
|
983
919
|
if (row < this.getLength()) {
|
984
920
|
lines = lines.concat([""]);
|
985
921
|
column = 0;
|
986
|
-
}
|
922
|
+
}
|
923
|
+
else {
|
987
924
|
lines = [""].concat(lines);
|
988
925
|
row--;
|
989
926
|
column = this.$lines[row].length;
|
990
927
|
}
|
991
|
-
this.insertMergedLines({row: row, column: column}, lines);
|
992
|
-
};
|
993
|
-
this.insertMergedLines = function(position, lines) {
|
928
|
+
this.insertMergedLines({ row: row, column: column }, lines);
|
929
|
+
};
|
930
|
+
this.insertMergedLines = function (position, lines) {
|
994
931
|
var start = this.clippedPos(position.row, position.column);
|
995
932
|
var end = {
|
996
933
|
row: start.row + lines.length - 1,
|
997
934
|
column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length
|
998
935
|
};
|
999
|
-
|
1000
936
|
this.applyDelta({
|
1001
937
|
start: start,
|
1002
938
|
end: end,
|
1003
939
|
action: "insert",
|
1004
940
|
lines: lines
|
1005
941
|
});
|
1006
|
-
|
1007
942
|
return this.clonePos(end);
|
1008
943
|
};
|
1009
|
-
this.remove = function(range) {
|
944
|
+
this.remove = function (range) {
|
1010
945
|
var start = this.clippedPos(range.start.row, range.start.column);
|
1011
946
|
var end = this.clippedPos(range.end.row, range.end.column);
|
1012
947
|
this.applyDelta({
|
1013
948
|
start: start,
|
1014
949
|
end: end,
|
1015
950
|
action: "remove",
|
1016
|
-
lines: this.getLinesForRange({start: start, end: end})
|
951
|
+
lines: this.getLinesForRange({ start: start, end: end })
|
1017
952
|
});
|
1018
953
|
return this.clonePos(start);
|
1019
954
|
};
|
1020
|
-
this.removeInLine = function(row, startColumn, endColumn) {
|
955
|
+
this.removeInLine = function (row, startColumn, endColumn) {
|
1021
956
|
var start = this.clippedPos(row, startColumn);
|
1022
957
|
var end = this.clippedPos(row, endColumn);
|
1023
|
-
|
1024
958
|
this.applyDelta({
|
1025
959
|
start: start,
|
1026
960
|
end: end,
|
1027
961
|
action: "remove",
|
1028
|
-
lines: this.getLinesForRange({start: start, end: end})
|
962
|
+
lines: this.getLinesForRange({ start: start, end: end })
|
1029
963
|
}, true);
|
1030
|
-
|
1031
964
|
return this.clonePos(start);
|
1032
965
|
};
|
1033
|
-
this.removeFullLines = function(firstRow, lastRow) {
|
966
|
+
this.removeFullLines = function (firstRow, lastRow) {
|
1034
967
|
firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);
|
1035
|
-
lastRow
|
968
|
+
lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);
|
1036
969
|
var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;
|
1037
|
-
var deleteLastNewLine
|
1038
|
-
var startRow = (
|
1039
|
-
var startCol = (
|
1040
|
-
var endRow
|
1041
|
-
var endCol
|
970
|
+
var deleteLastNewLine = lastRow < this.getLength() - 1;
|
971
|
+
var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);
|
972
|
+
var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);
|
973
|
+
var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);
|
974
|
+
var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);
|
1042
975
|
var range = new Range(startRow, startCol, endRow, endCol);
|
1043
976
|
var deletedLines = this.$lines.slice(firstRow, lastRow + 1);
|
1044
|
-
|
1045
977
|
this.applyDelta({
|
1046
978
|
start: range.start,
|
1047
979
|
end: range.end,
|
@@ -1050,7 +982,7 @@ var Document = function(textOrLines) {
|
|
1050
982
|
});
|
1051
983
|
return deletedLines;
|
1052
984
|
};
|
1053
|
-
this.removeNewLine = function(row) {
|
985
|
+
this.removeNewLine = function (row) {
|
1054
986
|
if (row < this.getLength() - 1 && row >= 0) {
|
1055
987
|
this.applyDelta({
|
1056
988
|
start: this.pos(row, this.getLine(row).length),
|
@@ -1060,14 +992,13 @@ var Document = function(textOrLines) {
|
|
1060
992
|
});
|
1061
993
|
}
|
1062
994
|
};
|
1063
|
-
this.replace = function(range, text) {
|
995
|
+
this.replace = function (range, text) {
|
1064
996
|
if (!(range instanceof Range))
|
1065
997
|
range = Range.fromPoints(range.start, range.end);
|
1066
998
|
if (text.length === 0 && range.isEmpty())
|
1067
999
|
return range.start;
|
1068
1000
|
if (text == this.getTextRange(range))
|
1069
1001
|
return range.end;
|
1070
|
-
|
1071
1002
|
this.remove(range);
|
1072
1003
|
var end;
|
1073
1004
|
if (text) {
|
@@ -1076,26 +1007,24 @@ var Document = function(textOrLines) {
|
|
1076
1007
|
else {
|
1077
1008
|
end = range.start;
|
1078
1009
|
}
|
1079
|
-
|
1080
1010
|
return end;
|
1081
1011
|
};
|
1082
|
-
this.applyDeltas = function(deltas) {
|
1083
|
-
for (var i=0; i<deltas.length; i++) {
|
1012
|
+
this.applyDeltas = function (deltas) {
|
1013
|
+
for (var i = 0; i < deltas.length; i++) {
|
1084
1014
|
this.applyDelta(deltas[i]);
|
1085
1015
|
}
|
1086
1016
|
};
|
1087
|
-
this.revertDeltas = function(deltas) {
|
1088
|
-
for (var i=deltas.length-1; i>=0; i--) {
|
1017
|
+
this.revertDeltas = function (deltas) {
|
1018
|
+
for (var i = deltas.length - 1; i >= 0; i--) {
|
1089
1019
|
this.revertDelta(deltas[i]);
|
1090
1020
|
}
|
1091
1021
|
};
|
1092
|
-
this.applyDelta = function(delta, doNotValidate) {
|
1022
|
+
this.applyDelta = function (delta, doNotValidate) {
|
1093
1023
|
var isInsert = delta.action == "insert";
|
1094
1024
|
if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]
|
1095
1025
|
: !Range.comparePoints(delta.start, delta.end)) {
|
1096
1026
|
return;
|
1097
1027
|
}
|
1098
|
-
|
1099
1028
|
if (isInsert && delta.lines.length > 20000) {
|
1100
1029
|
this.$splitAndapplyLargeDelta(delta, 20000);
|
1101
1030
|
}
|
@@ -1104,21 +1033,17 @@ var Document = function(textOrLines) {
|
|
1104
1033
|
this._signal("change", delta);
|
1105
1034
|
}
|
1106
1035
|
};
|
1107
|
-
|
1108
|
-
this.$safeApplyDelta = function(delta) {
|
1036
|
+
this.$safeApplyDelta = function (delta) {
|
1109
1037
|
var docLength = this.$lines.length;
|
1110
|
-
if (
|
1111
|
-
delta.action == "
|
1112
|
-
|| delta.action == "insert" && delta.start.row <= docLength
|
1113
|
-
) {
|
1038
|
+
if (delta.action == "remove" && delta.start.row < docLength && delta.end.row < docLength
|
1039
|
+
|| delta.action == "insert" && delta.start.row <= docLength) {
|
1114
1040
|
this.applyDelta(delta);
|
1115
1041
|
}
|
1116
1042
|
};
|
1117
|
-
|
1118
|
-
this.$splitAndapplyLargeDelta = function(delta, MAX) {
|
1043
|
+
this.$splitAndapplyLargeDelta = function (delta, MAX) {
|
1119
1044
|
var lines = delta.lines;
|
1120
1045
|
var l = lines.length - MAX + 1;
|
1121
|
-
var row = delta.start.row;
|
1046
|
+
var row = delta.start.row;
|
1122
1047
|
var column = delta.start.column;
|
1123
1048
|
for (var from = 0, to = 0; from < l; from = to) {
|
1124
1049
|
to += MAX - 1;
|
@@ -1136,7 +1061,7 @@ var Document = function(textOrLines) {
|
|
1136
1061
|
delta.start.column = column;
|
1137
1062
|
this.applyDelta(delta, true);
|
1138
1063
|
};
|
1139
|
-
this.revertDelta = function(delta) {
|
1064
|
+
this.revertDelta = function (delta) {
|
1140
1065
|
this.$safeApplyDelta({
|
1141
1066
|
start: this.clonePos(delta.start),
|
1142
1067
|
end: this.clonePos(delta.end),
|
@@ -1144,85 +1069,72 @@ var Document = function(textOrLines) {
|
|
1144
1069
|
lines: delta.lines.slice()
|
1145
1070
|
});
|
1146
1071
|
};
|
1147
|
-
this.indexToPosition = function(index, startRow) {
|
1072
|
+
this.indexToPosition = function (index, startRow) {
|
1148
1073
|
var lines = this.$lines || this.getAllLines();
|
1149
1074
|
var newlineLength = this.getNewLineCharacter().length;
|
1150
1075
|
for (var i = startRow || 0, l = lines.length; i < l; i++) {
|
1151
1076
|
index -= lines[i].length + newlineLength;
|
1152
1077
|
if (index < 0)
|
1153
|
-
return {row: i, column: index + lines[i].length + newlineLength};
|
1078
|
+
return { row: i, column: index + lines[i].length + newlineLength };
|
1154
1079
|
}
|
1155
|
-
return {row: l-1, column: index + lines[l-1].length + newlineLength};
|
1080
|
+
return { row: l - 1, column: index + lines[l - 1].length + newlineLength };
|
1156
1081
|
};
|
1157
|
-
this.positionToIndex = function(pos, startRow) {
|
1082
|
+
this.positionToIndex = function (pos, startRow) {
|
1158
1083
|
var lines = this.$lines || this.getAllLines();
|
1159
1084
|
var newlineLength = this.getNewLineCharacter().length;
|
1160
1085
|
var index = 0;
|
1161
1086
|
var row = Math.min(pos.row, lines.length);
|
1162
1087
|
for (var i = startRow || 0; i < row; ++i)
|
1163
1088
|
index += lines[i].length + newlineLength;
|
1164
|
-
|
1165
1089
|
return index + pos.column;
|
1166
1090
|
};
|
1167
|
-
|
1168
1091
|
}).call(Document.prototype);
|
1169
|
-
|
1170
1092
|
exports.Document = Document;
|
1171
|
-
});
|
1172
1093
|
|
1173
|
-
|
1174
|
-
"use strict";
|
1094
|
+
});
|
1175
1095
|
|
1176
|
-
|
1096
|
+
ace.define("ace/lib/lang",[], function(require, exports, module){"use strict";
|
1097
|
+
exports.last = function (a) {
|
1177
1098
|
return a[a.length - 1];
|
1178
1099
|
};
|
1179
|
-
|
1180
|
-
exports.stringReverse = function(string) {
|
1100
|
+
exports.stringReverse = function (string) {
|
1181
1101
|
return string.split("").reverse().join("");
|
1182
1102
|
};
|
1183
|
-
|
1184
1103
|
exports.stringRepeat = function (string, count) {
|
1185
1104
|
var result = '';
|
1186
1105
|
while (count > 0) {
|
1187
1106
|
if (count & 1)
|
1188
1107
|
result += string;
|
1189
|
-
|
1190
1108
|
if (count >>= 1)
|
1191
1109
|
string += string;
|
1192
1110
|
}
|
1193
1111
|
return result;
|
1194
1112
|
};
|
1195
|
-
|
1196
1113
|
var trimBeginRegexp = /^\s\s*/;
|
1197
1114
|
var trimEndRegexp = /\s\s*$/;
|
1198
|
-
|
1199
1115
|
exports.stringTrimLeft = function (string) {
|
1200
1116
|
return string.replace(trimBeginRegexp, '');
|
1201
1117
|
};
|
1202
|
-
|
1203
1118
|
exports.stringTrimRight = function (string) {
|
1204
1119
|
return string.replace(trimEndRegexp, '');
|
1205
1120
|
};
|
1206
|
-
|
1207
|
-
exports.copyObject = function(obj) {
|
1121
|
+
exports.copyObject = function (obj) {
|
1208
1122
|
var copy = {};
|
1209
1123
|
for (var key in obj) {
|
1210
1124
|
copy[key] = obj[key];
|
1211
1125
|
}
|
1212
1126
|
return copy;
|
1213
1127
|
};
|
1214
|
-
|
1215
|
-
exports.copyArray = function(array){
|
1128
|
+
exports.copyArray = function (array) {
|
1216
1129
|
var copy = [];
|
1217
|
-
for (var i=0, l=array.length; i<l; i++) {
|
1130
|
+
for (var i = 0, l = array.length; i < l; i++) {
|
1218
1131
|
if (array[i] && typeof array[i] == "object")
|
1219
1132
|
copy[i] = this.copyObject(array[i]);
|
1220
|
-
else
|
1133
|
+
else
|
1221
1134
|
copy[i] = array[i];
|
1222
1135
|
}
|
1223
1136
|
return copy;
|
1224
1137
|
};
|
1225
|
-
|
1226
1138
|
exports.deepCopy = function deepCopy(obj) {
|
1227
1139
|
if (typeof obj !== "object" || !obj)
|
1228
1140
|
return obj;
|
@@ -1236,132 +1148,109 @@ exports.deepCopy = function deepCopy(obj) {
|
|
1236
1148
|
}
|
1237
1149
|
if (Object.prototype.toString.call(obj) !== "[object Object]")
|
1238
1150
|
return obj;
|
1239
|
-
|
1240
1151
|
copy = {};
|
1241
1152
|
for (var key in obj)
|
1242
1153
|
copy[key] = deepCopy(obj[key]);
|
1243
1154
|
return copy;
|
1244
1155
|
};
|
1245
|
-
|
1246
|
-
exports.arrayToMap = function(arr) {
|
1156
|
+
exports.arrayToMap = function (arr) {
|
1247
1157
|
var map = {};
|
1248
|
-
for (var i=0; i<arr.length; i++) {
|
1158
|
+
for (var i = 0; i < arr.length; i++) {
|
1249
1159
|
map[arr[i]] = 1;
|
1250
1160
|
}
|
1251
1161
|
return map;
|
1252
|
-
|
1253
1162
|
};
|
1254
|
-
|
1255
|
-
exports.createMap = function(props) {
|
1163
|
+
exports.createMap = function (props) {
|
1256
1164
|
var map = Object.create(null);
|
1257
1165
|
for (var i in props) {
|
1258
1166
|
map[i] = props[i];
|
1259
1167
|
}
|
1260
1168
|
return map;
|
1261
1169
|
};
|
1262
|
-
exports.arrayRemove = function(array, value) {
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1170
|
+
exports.arrayRemove = function (array, value) {
|
1171
|
+
for (var i = 0; i <= array.length; i++) {
|
1172
|
+
if (value === array[i]) {
|
1173
|
+
array.splice(i, 1);
|
1174
|
+
}
|
1266
1175
|
}
|
1267
|
-
}
|
1268
1176
|
};
|
1269
|
-
|
1270
|
-
exports.escapeRegExp = function(str) {
|
1177
|
+
exports.escapeRegExp = function (str) {
|
1271
1178
|
return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
|
1272
1179
|
};
|
1273
|
-
|
1274
|
-
exports.escapeHTML = function(str) {
|
1180
|
+
exports.escapeHTML = function (str) {
|
1275
1181
|
return ("" + str).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<");
|
1276
1182
|
};
|
1277
|
-
|
1278
|
-
exports.getMatchOffsets = function(string, regExp) {
|
1183
|
+
exports.getMatchOffsets = function (string, regExp) {
|
1279
1184
|
var matches = [];
|
1280
|
-
|
1281
|
-
string.replace(regExp, function(str) {
|
1185
|
+
string.replace(regExp, function (str) {
|
1282
1186
|
matches.push({
|
1283
|
-
offset: arguments[arguments.length-2],
|
1187
|
+
offset: arguments[arguments.length - 2],
|
1284
1188
|
length: str.length
|
1285
1189
|
});
|
1286
1190
|
});
|
1287
|
-
|
1288
1191
|
return matches;
|
1289
1192
|
};
|
1290
|
-
exports.deferredCall = function(fcn) {
|
1193
|
+
exports.deferredCall = function (fcn) {
|
1291
1194
|
var timer = null;
|
1292
|
-
var callback = function() {
|
1195
|
+
var callback = function () {
|
1293
1196
|
timer = null;
|
1294
1197
|
fcn();
|
1295
1198
|
};
|
1296
|
-
|
1297
|
-
var deferred = function(timeout) {
|
1199
|
+
var deferred = function (timeout) {
|
1298
1200
|
deferred.cancel();
|
1299
1201
|
timer = setTimeout(callback, timeout || 0);
|
1300
1202
|
return deferred;
|
1301
1203
|
};
|
1302
|
-
|
1303
1204
|
deferred.schedule = deferred;
|
1304
|
-
|
1305
|
-
deferred.call = function() {
|
1205
|
+
deferred.call = function () {
|
1306
1206
|
this.cancel();
|
1307
1207
|
fcn();
|
1308
1208
|
return deferred;
|
1309
1209
|
};
|
1310
|
-
|
1311
|
-
deferred.cancel = function() {
|
1210
|
+
deferred.cancel = function () {
|
1312
1211
|
clearTimeout(timer);
|
1313
1212
|
timer = null;
|
1314
1213
|
return deferred;
|
1315
1214
|
};
|
1316
|
-
|
1317
|
-
deferred.isPending = function() {
|
1215
|
+
deferred.isPending = function () {
|
1318
1216
|
return timer;
|
1319
1217
|
};
|
1320
|
-
|
1321
1218
|
return deferred;
|
1322
1219
|
};
|
1323
|
-
|
1324
|
-
|
1325
|
-
exports.delayedCall = function(fcn, defaultTimeout) {
|
1220
|
+
exports.delayedCall = function (fcn, defaultTimeout) {
|
1326
1221
|
var timer = null;
|
1327
|
-
var callback = function() {
|
1222
|
+
var callback = function () {
|
1328
1223
|
timer = null;
|
1329
1224
|
fcn();
|
1330
1225
|
};
|
1331
|
-
|
1332
|
-
var _self = function(timeout) {
|
1226
|
+
var _self = function (timeout) {
|
1333
1227
|
if (timer == null)
|
1334
1228
|
timer = setTimeout(callback, timeout || defaultTimeout);
|
1335
1229
|
};
|
1336
|
-
|
1337
|
-
_self.delay = function(timeout) {
|
1230
|
+
_self.delay = function (timeout) {
|
1338
1231
|
timer && clearTimeout(timer);
|
1339
1232
|
timer = setTimeout(callback, timeout || defaultTimeout);
|
1340
1233
|
};
|
1341
1234
|
_self.schedule = _self;
|
1342
|
-
|
1343
|
-
_self.call = function() {
|
1235
|
+
_self.call = function () {
|
1344
1236
|
this.cancel();
|
1345
1237
|
fcn();
|
1346
1238
|
};
|
1347
|
-
|
1348
|
-
_self.cancel = function() {
|
1239
|
+
_self.cancel = function () {
|
1349
1240
|
timer && clearTimeout(timer);
|
1350
1241
|
timer = null;
|
1351
1242
|
};
|
1352
|
-
|
1353
|
-
_self.isPending = function() {
|
1243
|
+
_self.isPending = function () {
|
1354
1244
|
return timer;
|
1355
1245
|
};
|
1356
|
-
|
1357
1246
|
return _self;
|
1358
1247
|
};
|
1248
|
+
|
1359
1249
|
});
|
1360
1250
|
|
1361
1251
|
ace.define("ace/worker/mirror",[], function(require, exports, module) {
|
1362
1252
|
"use strict";
|
1363
1253
|
|
1364
|
-
var Range = require("../range").Range;
|
1365
1254
|
var Document = require("../document").Document;
|
1366
1255
|
var lang = require("../lib/lang");
|
1367
1256
|
|
@@ -1378,11 +1267,24 @@ var Mirror = exports.Mirror = function(sender) {
|
|
1378
1267
|
doc.applyDeltas(data);
|
1379
1268
|
} else {
|
1380
1269
|
for (var i = 0; i < data.length; i += 2) {
|
1270
|
+
var d, err;
|
1381
1271
|
if (Array.isArray(data[i+1])) {
|
1382
|
-
|
1272
|
+
d = {action: "insert", start: data[i], lines: data[i+1]};
|
1383
1273
|
} else {
|
1384
|
-
|
1274
|
+
d = {action: "remove", start: data[i], end: data[i+1]};
|
1385
1275
|
}
|
1276
|
+
|
1277
|
+
if ((d.action == "insert" ? d.start : d.end).row >= doc.$lines.length) {
|
1278
|
+
err = new Error("Invalid delta");
|
1279
|
+
err.data = {
|
1280
|
+
path: _self.$path,
|
1281
|
+
linesLength: doc.$lines.length,
|
1282
|
+
start: d.start,
|
1283
|
+
end: d.end
|
1284
|
+
};
|
1285
|
+
throw err;
|
1286
|
+
}
|
1287
|
+
|
1386
1288
|
doc.applyDelta(d, true);
|
1387
1289
|
}
|
1388
1290
|
}
|