mirror of
https://github.com/zhigang1992/form-render.git
synced 2026-06-15 10:07:51 +08:00
1 line
460 KiB
JavaScript
1 line
460 KiB
JavaScript
!function(r){var t={};function i(e){if(t[e])return t[e].exports;var n=t[e]={i:e,l:!1,exports:{}};return r[e].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=r,i.c=t,i.d=function(e,n,r){i.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(n,e){if(1&e&&(n=i(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var t in n)i.d(r,t,function(e){return n[e]}.bind(null,t));return r},i.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(n,"a",n),n},i.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},i.p="",i(i.s="../node_modules/monaco-editor/esm/vs/editor/editor.worker.js")}({"../node_modules/monaco-editor/esm/vs/base/common/arrays.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tail", function() { return tail; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tail2", function() { return tail2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equals", function() { return equals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "binarySearch", function() { return binarySearch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findFirstInSorted", function() { return findFirstInSorted; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeSort", function() { return mergeSort; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return groupBy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "coalesce", function() { return coalesce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFalsyOrEmpty", function() { return isFalsyOrEmpty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstIndex", function() { return firstIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return flatten; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "range", function() { return range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayInsert", function() { return arrayInsert; });\n/**\r\n * Returns the last element of an array.\r\n * @param array The array.\r\n * @param n Which element from the end (default is zero).\r\n */\r\nfunction tail(array, n) {\r\n if (n === void 0) { n = 0; }\r\n return array[array.length - (1 + n)];\r\n}\r\nfunction tail2(arr) {\r\n if (arr.length === 0) {\r\n throw new Error(\'Invalid tail call\');\r\n }\r\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\r\n}\r\nfunction equals(one, other, itemEquals) {\r\n if (itemEquals === void 0) { itemEquals = function (a, b) { return a === b; }; }\r\n if (one === other) {\r\n return true;\r\n }\r\n if (!one || !other) {\r\n return false;\r\n }\r\n if (one.length !== other.length) {\r\n return false;\r\n }\r\n for (var i = 0, len = one.length; i < len; i++) {\r\n if (!itemEquals(one[i], other[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction binarySearch(array, key, comparator) {\r\n var low = 0, high = array.length - 1;\r\n while (low <= high) {\r\n var mid = ((low + high) / 2) | 0;\r\n var comp = comparator(array[mid], key);\r\n if (comp < 0) {\r\n low = mid + 1;\r\n }\r\n else if (comp > 0) {\r\n high = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -(low + 1);\r\n}\r\n/**\r\n * Takes a sorted array and a function p. The array is sorted in such a way that all elements where p(x) is false\r\n * are located before all elements where p(x) is true.\r\n * @returns the least x for which p(x) is true or array.length if no element fullfills the given function.\r\n */\r\nfunction findFirstInSorted(array, p) {\r\n var low = 0, high = array.length;\r\n if (high === 0) {\r\n return 0; // no children\r\n }\r\n while (low < high) {\r\n var mid = Math.floor((low + high) / 2);\r\n if (p(array[mid])) {\r\n high = mid;\r\n }\r\n else {\r\n low = mid + 1;\r\n }\r\n }\r\n return low;\r\n}\r\n/**\r\n * Like `Array#sort` but always stable. Usually runs a little slower `than Array#sort`\r\n * so only use this when actually needing stable sort.\r\n */\r\nfunction mergeSort(data, compare) {\r\n _sort(data, compare, 0, data.length - 1, []);\r\n return data;\r\n}\r\nfunction _merge(a, compare, lo, mid, hi, aux) {\r\n var leftIdx = lo, rightIdx = mid + 1;\r\n for (var i = lo; i <= hi; i++) {\r\n aux[i] = a[i];\r\n }\r\n for (var i = lo; i <= hi; i++) {\r\n if (leftIdx > mid) {\r\n // left side consumed\r\n a[i] = aux[rightIdx++];\r\n }\r\n else if (rightIdx > hi) {\r\n // right side consumed\r\n a[i] = aux[leftIdx++];\r\n }\r\n else if (compare(aux[rightIdx], aux[leftIdx]) < 0) {\r\n // right element is less -> comes first\r\n a[i] = aux[rightIdx++];\r\n }\r\n else {\r\n // left element comes first (less or equal)\r\n a[i] = aux[leftIdx++];\r\n }\r\n }\r\n}\r\nfunction _sort(a, compare, lo, hi, aux) {\r\n if (hi <= lo) {\r\n return;\r\n }\r\n var mid = lo + ((hi - lo) / 2) | 0;\r\n _sort(a, compare, lo, mid, aux);\r\n _sort(a, compare, mid + 1, hi, aux);\r\n if (compare(a[mid], a[mid + 1]) <= 0) {\r\n // left and right are sorted and if the last-left element is less\r\n // or equals than the first-right element there is nothing else\r\n // to do\r\n return;\r\n }\r\n _merge(a, compare, lo, mid, hi, aux);\r\n}\r\nfunction groupBy(data, compare) {\r\n var result = [];\r\n var currentGroup = undefined;\r\n for (var _i = 0, _a = mergeSort(data.slice(0), compare); _i < _a.length; _i++) {\r\n var element = _a[_i];\r\n if (!currentGroup || compare(currentGroup[0], element) !== 0) {\r\n currentGroup = [element];\r\n result.push(currentGroup);\r\n }\r\n else {\r\n currentGroup.push(element);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * @returns a new array with all falsy values removed. The original array IS NOT modified.\r\n */\r\nfunction coalesce(array) {\r\n if (!array) {\r\n return array;\r\n }\r\n return array.filter(function (e) { return !!e; });\r\n}\r\n/**\r\n * @returns {{false}} if the provided object is an array\r\n * \tand not empty.\r\n */\r\nfunction isFalsyOrEmpty(obj) {\r\n return !Array.isArray(obj) || obj.length === 0;\r\n}\r\n/**\r\n * Removes duplicates from the given array. The optional keyFn allows to specify\r\n * how elements are checked for equalness by returning a unique string for each.\r\n */\r\nfunction distinct(array, keyFn) {\r\n if (!keyFn) {\r\n return array.filter(function (element, position) {\r\n return array.indexOf(element) === position;\r\n });\r\n }\r\n var seen = Object.create(null);\r\n return array.filter(function (elem) {\r\n var key = keyFn(elem);\r\n if (seen[key]) {\r\n return false;\r\n }\r\n seen[key] = true;\r\n return true;\r\n });\r\n}\r\nfunction firstIndex(array, fn) {\r\n for (var i = 0; i < array.length; i++) {\r\n var element = array[i];\r\n if (fn(element)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nfunction first(array, fn, notFoundValue) {\r\n if (notFoundValue === void 0) { notFoundValue = null; }\r\n var index = firstIndex(array, fn);\r\n return index < 0 ? notFoundValue : array[index];\r\n}\r\nfunction flatten(arr) {\r\n var _a;\r\n return (_a = []).concat.apply(_a, arr);\r\n}\r\nfunction range(arg, to) {\r\n var from = typeof to === \'number\' ? arg : 0;\r\n if (typeof to === \'number\') {\r\n from = arg;\r\n }\r\n else {\r\n from = 0;\r\n to = arg;\r\n }\r\n var result = [];\r\n if (from <= to) {\r\n for (var i = from; i < to; i++) {\r\n result.push(i);\r\n }\r\n }\r\n else {\r\n for (var i = from; i > to; i--) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Insert `insertArr` inside `target` at `insertIndex`.\r\n * Please don\'t touch unless you understand https://jsperf.com/inserting-an-array-within-an-array\r\n */\r\nfunction arrayInsert(target, insertIndex, insertArr) {\r\n var before = target.slice(0, insertIndex);\r\n var after = target.slice(insertIndex);\r\n return before.concat(insertArr, after);\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/arrays.js?')},"../node_modules/monaco-editor/esm/vs/base/common/async.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isThenable", function() { return isThenable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCancelablePromise", function() { return createCancelablePromise; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Delayer", function() { return Delayer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "always", function() { return always; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeoutTimer", function() { return TimeoutTimer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IntervalTimer", function() { return IntervalTimer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RunOnceScheduler", function() { return RunOnceScheduler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "runWhenIdle", function() { return runWhenIdle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IdleValue", function() { return IdleValue; });\n/* harmony import */ var _cancellation_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cancellation.js */ "../node_modules/monaco-editor/esm/vs/base/common/cancellation.js");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors.js */ "../node_modules/monaco-editor/esm/vs/base/common/errors.js");\n/* harmony import */ var _lifecycle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lifecycle.js */ "../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js");\n/* harmony import */ var _winjs_base_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./winjs.base.js */ "../node_modules/monaco-editor/esm/vs/base/common/winjs.base.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\nfunction isThenable(obj) {\r\n return obj && typeof obj.then === \'function\';\r\n}\r\nfunction createCancelablePromise(callback) {\r\n var source = new _cancellation_js__WEBPACK_IMPORTED_MODULE_0__["CancellationTokenSource"]();\r\n var thenable = callback(source.token);\r\n var promise = new Promise(function (resolve, reject) {\r\n source.token.onCancellationRequested(function () {\r\n reject(_errors_js__WEBPACK_IMPORTED_MODULE_1__["canceled"]());\r\n });\r\n Promise.resolve(thenable).then(function (value) {\r\n source.dispose();\r\n resolve(value);\r\n }, function (err) {\r\n source.dispose();\r\n reject(err);\r\n });\r\n });\r\n return new /** @class */ (function () {\r\n function class_1() {\r\n }\r\n class_1.prototype.cancel = function () {\r\n source.cancel();\r\n };\r\n class_1.prototype.then = function (resolve, reject) {\r\n return promise.then(resolve, reject);\r\n };\r\n class_1.prototype.catch = function (reject) {\r\n return this.then(undefined, reject);\r\n };\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper to delay execution of a task that is being requested often.\r\n *\r\n * Following the throttler, now imagine the mail man wants to optimize the number of\r\n * trips proactively. The trip itself can be long, so he decides not to make the trip\r\n * as soon as a letter is submitted. Instead he waits a while, in case more\r\n * letters are submitted. After said waiting period, if no letters were submitted, he\r\n * decides to make the trip. Imagine that N more letters were submitted after the first\r\n * one, all within a short period of time between each other. Even though N+1\r\n * submissions occurred, only 1 delivery was made.\r\n *\r\n * The delayer offers this behavior via the trigger() method, into which both the task\r\n * to be executed and the waiting period (delay) must be passed in as arguments. Following\r\n * the example:\r\n *\r\n * \t\tconst delayer = new Delayer(WAITING_PERIOD);\r\n * \t\tconst letters = [];\r\n *\r\n * \t\tfunction letterReceived(l) {\r\n * \t\t\tletters.push(l);\r\n * \t\t\tdelayer.trigger(() => { return makeTheTrip(); });\r\n * \t\t}\r\n */\r\nvar Delayer = /** @class */ (function () {\r\n function Delayer(defaultDelay) {\r\n this.defaultDelay = defaultDelay;\r\n this.timeout = null;\r\n this.completionPromise = null;\r\n this.doResolve = null;\r\n this.task = null;\r\n }\r\n Delayer.prototype.trigger = function (task, delay) {\r\n var _this = this;\r\n if (delay === void 0) { delay = this.defaultDelay; }\r\n this.task = task;\r\n this.cancelTimeout();\r\n if (!this.completionPromise) {\r\n this.completionPromise = new _winjs_base_js__WEBPACK_IMPORTED_MODULE_3__["TPromise"](function (c, e) {\r\n _this.doResolve = c;\r\n _this.doReject = e;\r\n }).then(function () {\r\n _this.completionPromise = null;\r\n _this.doResolve = null;\r\n var task = _this.task;\r\n _this.task = null;\r\n return task();\r\n });\r\n }\r\n this.timeout = setTimeout(function () {\r\n _this.timeout = null;\r\n _this.doResolve(null);\r\n }, delay);\r\n return this.completionPromise;\r\n };\r\n Delayer.prototype.cancel = function () {\r\n this.cancelTimeout();\r\n if (this.completionPromise) {\r\n this.doReject(_errors_js__WEBPACK_IMPORTED_MODULE_1__["canceled"]());\r\n this.completionPromise = null;\r\n }\r\n };\r\n Delayer.prototype.cancelTimeout = function () {\r\n if (this.timeout !== null) {\r\n clearTimeout(this.timeout);\r\n this.timeout = null;\r\n }\r\n };\r\n Delayer.prototype.dispose = function () {\r\n this.cancelTimeout();\r\n };\r\n return Delayer;\r\n}());\r\n\r\nfunction timeout(millis, token) {\r\n if (!token) {\r\n return createCancelablePromise(function (token) { return timeout(millis, token); });\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var handle = setTimeout(resolve, millis);\r\n token.onCancellationRequested(function () {\r\n clearTimeout(handle);\r\n reject(_errors_js__WEBPACK_IMPORTED_MODULE_1__["canceled"]());\r\n });\r\n });\r\n}\r\n/**\r\n * Returns a new promise that joins the provided promise. Upon completion of\r\n * the provided promise the provided function will always be called. This\r\n * method is comparable to a try-finally code block.\r\n * @param promise a promise\r\n * @param callback a function that will be call in the success and error case.\r\n */\r\nfunction always(promise, callback) {\r\n function safeCallback() {\r\n try {\r\n callback();\r\n }\r\n catch (err) {\r\n _errors_js__WEBPACK_IMPORTED_MODULE_1__["onUnexpectedError"](err);\r\n }\r\n }\r\n promise.then(function (_) { return safeCallback(); }, function (_) { return safeCallback(); });\r\n return Promise.resolve(promise);\r\n}\r\nfunction first(promiseFactories, shouldStop, defaultValue) {\r\n if (shouldStop === void 0) { shouldStop = function (t) { return !!t; }; }\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var index = 0;\r\n var len = promiseFactories.length;\r\n var loop = function () {\r\n if (index >= len) {\r\n return Promise.resolve(defaultValue);\r\n }\r\n var factory = promiseFactories[index++];\r\n var promise = Promise.resolve(factory());\r\n return promise.then(function (result) {\r\n if (shouldStop(result)) {\r\n return Promise.resolve(result);\r\n }\r\n return loop();\r\n });\r\n };\r\n return loop();\r\n}\r\nvar TimeoutTimer = /** @class */ (function (_super) {\r\n __extends(TimeoutTimer, _super);\r\n function TimeoutTimer(runner, timeout) {\r\n var _this = _super.call(this) || this;\r\n _this._token = -1;\r\n if (typeof runner === \'function\' && typeof timeout === \'number\') {\r\n _this.setIfNotSet(runner, timeout);\r\n }\r\n return _this;\r\n }\r\n TimeoutTimer.prototype.dispose = function () {\r\n this.cancel();\r\n _super.prototype.dispose.call(this);\r\n };\r\n TimeoutTimer.prototype.cancel = function () {\r\n if (this._token !== -1) {\r\n clearTimeout(this._token);\r\n this._token = -1;\r\n }\r\n };\r\n TimeoutTimer.prototype.cancelAndSet = function (runner, timeout) {\r\n var _this = this;\r\n this.cancel();\r\n this._token = setTimeout(function () {\r\n _this._token = -1;\r\n runner();\r\n }, timeout);\r\n };\r\n TimeoutTimer.prototype.setIfNotSet = function (runner, timeout) {\r\n var _this = this;\r\n if (this._token !== -1) {\r\n // timer is already set\r\n return;\r\n }\r\n this._token = setTimeout(function () {\r\n _this._token = -1;\r\n runner();\r\n }, timeout);\r\n };\r\n return TimeoutTimer;\r\n}(_lifecycle_js__WEBPACK_IMPORTED_MODULE_2__["Disposable"]));\r\n\r\nvar IntervalTimer = /** @class */ (function (_super) {\r\n __extends(IntervalTimer, _super);\r\n function IntervalTimer() {\r\n var _this = _super.call(this) || this;\r\n _this._token = -1;\r\n return _this;\r\n }\r\n IntervalTimer.prototype.dispose = function () {\r\n this.cancel();\r\n _super.prototype.dispose.call(this);\r\n };\r\n IntervalTimer.prototype.cancel = function () {\r\n if (this._token !== -1) {\r\n clearInterval(this._token);\r\n this._token = -1;\r\n }\r\n };\r\n IntervalTimer.prototype.cancelAndSet = function (runner, interval) {\r\n this.cancel();\r\n this._token = setInterval(function () {\r\n runner();\r\n }, interval);\r\n };\r\n return IntervalTimer;\r\n}(_lifecycle_js__WEBPACK_IMPORTED_MODULE_2__["Disposable"]));\r\n\r\nvar RunOnceScheduler = /** @class */ (function () {\r\n function RunOnceScheduler(runner, timeout) {\r\n this.timeoutToken = -1;\r\n this.runner = runner;\r\n this.timeout = timeout;\r\n this.timeoutHandler = this.onTimeout.bind(this);\r\n }\r\n /**\r\n * Dispose RunOnceScheduler\r\n */\r\n RunOnceScheduler.prototype.dispose = function () {\r\n this.cancel();\r\n this.runner = null;\r\n };\r\n /**\r\n * Cancel current scheduled runner (if any).\r\n */\r\n RunOnceScheduler.prototype.cancel = function () {\r\n if (this.isScheduled()) {\r\n clearTimeout(this.timeoutToken);\r\n this.timeoutToken = -1;\r\n }\r\n };\r\n /**\r\n * Cancel previous runner (if any) & schedule a new runner.\r\n */\r\n RunOnceScheduler.prototype.schedule = function (delay) {\r\n if (delay === void 0) { delay = this.timeout; }\r\n this.cancel();\r\n this.timeoutToken = setTimeout(this.timeoutHandler, delay);\r\n };\r\n /**\r\n * Returns true if scheduled.\r\n */\r\n RunOnceScheduler.prototype.isScheduled = function () {\r\n return this.timeoutToken !== -1;\r\n };\r\n RunOnceScheduler.prototype.onTimeout = function () {\r\n this.timeoutToken = -1;\r\n if (this.runner) {\r\n this.doRun();\r\n }\r\n };\r\n RunOnceScheduler.prototype.doRun = function () {\r\n if (this.runner) {\r\n this.runner();\r\n }\r\n };\r\n return RunOnceScheduler;\r\n}());\r\n\r\n/**\r\n * Execute the callback the next time the browser is idle\r\n */\r\nvar runWhenIdle;\r\n(function () {\r\n if (typeof requestIdleCallback !== \'function\' || typeof cancelIdleCallback !== \'function\') {\r\n var dummyIdle_1 = Object.freeze({\r\n didTimeout: true,\r\n timeRemaining: function () { return 15; }\r\n });\r\n runWhenIdle = function (runner, timeout) {\r\n if (timeout === void 0) { timeout = 0; }\r\n var handle = setTimeout(function () { return runner(dummyIdle_1); }, timeout);\r\n var disposed = false;\r\n return {\r\n dispose: function () {\r\n if (disposed) {\r\n return;\r\n }\r\n disposed = true;\r\n clearTimeout(handle);\r\n }\r\n };\r\n };\r\n }\r\n else {\r\n runWhenIdle = function (runner, timeout) {\r\n var handle = requestIdleCallback(runner, typeof timeout === \'number\' ? { timeout: timeout } : undefined);\r\n var disposed = false;\r\n return {\r\n dispose: function () {\r\n if (disposed) {\r\n return;\r\n }\r\n disposed = true;\r\n cancelIdleCallback(handle);\r\n }\r\n };\r\n };\r\n }\r\n})();\r\n/**\r\n * An implementation of the "idle-until-urgent"-strategy as introduced\r\n * here: https://philipwalton.com/articles/idle-until-urgent/\r\n */\r\nvar IdleValue = /** @class */ (function () {\r\n function IdleValue(executor) {\r\n var _this = this;\r\n this._executor = function () {\r\n try {\r\n _this._value = executor();\r\n }\r\n catch (err) {\r\n _this._error = err;\r\n }\r\n finally {\r\n _this._didRun = true;\r\n }\r\n };\r\n this._handle = runWhenIdle(function () { return _this._executor(); });\r\n }\r\n IdleValue.prototype.dispose = function () {\r\n this._handle.dispose();\r\n };\r\n IdleValue.prototype.getValue = function () {\r\n if (!this._didRun) {\r\n this._handle.dispose();\r\n this._executor();\r\n }\r\n if (this._error) {\r\n throw this._error;\r\n }\r\n return this._value;\r\n };\r\n return IdleValue;\r\n}());\r\n\r\n//#endregion\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/async.js?')},"../node_modules/monaco-editor/esm/vs/base/common/cancellation.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CancellationToken", function() { return CancellationToken; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CancellationTokenSource", function() { return CancellationTokenSource; });\n/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./event.js */ "../node_modules/monaco-editor/esm/vs/base/common/event.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nvar shortcutEvent = Object.freeze(function (callback, context) {\r\n var handle = setTimeout(callback.bind(context), 0);\r\n return { dispose: function () { clearTimeout(handle); } };\r\n});\r\nvar CancellationToken;\r\n(function (CancellationToken) {\r\n function isCancellationToken(thing) {\r\n if (thing === CancellationToken.None || thing === CancellationToken.Cancelled) {\r\n return true;\r\n }\r\n if (thing instanceof MutableToken) {\r\n return true;\r\n }\r\n if (!thing || typeof thing !== \'object\') {\r\n return false;\r\n }\r\n return typeof thing.isCancellationRequested === \'boolean\'\r\n && typeof thing.onCancellationRequested === \'function\';\r\n }\r\n CancellationToken.isCancellationToken = isCancellationToken;\r\n CancellationToken.None = Object.freeze({\r\n isCancellationRequested: false,\r\n onCancellationRequested: _event_js__WEBPACK_IMPORTED_MODULE_0__["Event"].None\r\n });\r\n CancellationToken.Cancelled = Object.freeze({\r\n isCancellationRequested: true,\r\n onCancellationRequested: shortcutEvent\r\n });\r\n})(CancellationToken || (CancellationToken = {}));\r\nvar MutableToken = /** @class */ (function () {\r\n function MutableToken() {\r\n this._isCancelled = false;\r\n this._emitter = null;\r\n }\r\n MutableToken.prototype.cancel = function () {\r\n if (!this._isCancelled) {\r\n this._isCancelled = true;\r\n if (this._emitter) {\r\n this._emitter.fire(undefined);\r\n this.dispose();\r\n }\r\n }\r\n };\r\n Object.defineProperty(MutableToken.prototype, "isCancellationRequested", {\r\n get: function () {\r\n return this._isCancelled;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MutableToken.prototype, "onCancellationRequested", {\r\n get: function () {\r\n if (this._isCancelled) {\r\n return shortcutEvent;\r\n }\r\n if (!this._emitter) {\r\n this._emitter = new _event_js__WEBPACK_IMPORTED_MODULE_0__["Emitter"]();\r\n }\r\n return this._emitter.event;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n MutableToken.prototype.dispose = function () {\r\n if (this._emitter) {\r\n this._emitter.dispose();\r\n this._emitter = null;\r\n }\r\n };\r\n return MutableToken;\r\n}());\r\nvar CancellationTokenSource = /** @class */ (function () {\r\n function CancellationTokenSource() {\r\n }\r\n Object.defineProperty(CancellationTokenSource.prototype, "token", {\r\n get: function () {\r\n if (!this._token) {\r\n // be lazy and create the token only when\r\n // actually needed\r\n this._token = new MutableToken();\r\n }\r\n return this._token;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n CancellationTokenSource.prototype.cancel = function () {\r\n if (!this._token) {\r\n // save an object by returning the default\r\n // cancelled token when cancellation happens\r\n // before someone asks for the token\r\n this._token = CancellationToken.Cancelled;\r\n }\r\n else if (this._token instanceof MutableToken) {\r\n // actually cancel\r\n this._token.cancel();\r\n }\r\n };\r\n CancellationTokenSource.prototype.dispose = function () {\r\n if (!this._token) {\r\n // ensure to initialize with an empty token if we had none\r\n this._token = CancellationToken.None;\r\n }\r\n else if (this._token instanceof MutableToken) {\r\n // actually dispose\r\n this._token.dispose();\r\n }\r\n };\r\n return CancellationTokenSource;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/cancellation.js?')},"../node_modules/monaco-editor/esm/vs/base/common/diff/diff.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringDiff\", function() { return stringDiff; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Debug\", function() { return Debug; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MyArray\", function() { return MyArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LcsDiff\", function() { return LcsDiff; });\n/* harmony import */ var _diffChange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diffChange.js */ \"../node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js\");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nfunction createStringSequence(a) {\r\n return {\r\n getLength: function () { return a.length; },\r\n getElementAtIndex: function (pos) { return a.charCodeAt(pos); }\r\n };\r\n}\r\nfunction stringDiff(original, modified, pretty) {\r\n return new LcsDiff(createStringSequence(original), createStringSequence(modified)).ComputeDiff(pretty);\r\n}\r\n//\r\n// The code below has been ported from a C# implementation in VS\r\n//\r\nvar Debug = /** @class */ (function () {\r\n function Debug() {\r\n }\r\n Debug.Assert = function (condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n };\r\n return Debug;\r\n}());\r\n\r\nvar MyArray = /** @class */ (function () {\r\n function MyArray() {\r\n }\r\n /**\r\n * Copies a range of elements from an Array starting at the specified source index and pastes\r\n * them to another Array starting at the specified destination index. The length and the indexes\r\n * are specified as 64-bit integers.\r\n * sourceArray:\r\n *\t\tThe Array that contains the data to copy.\r\n * sourceIndex:\r\n *\t\tA 64-bit integer that represents the index in the sourceArray at which copying begins.\r\n * destinationArray:\r\n *\t\tThe Array that receives the data.\r\n * destinationIndex:\r\n *\t\tA 64-bit integer that represents the index in the destinationArray at which storing begins.\r\n * length:\r\n *\t\tA 64-bit integer that represents the number of elements to copy.\r\n */\r\n MyArray.Copy = function (sourceArray, sourceIndex, destinationArray, destinationIndex, length) {\r\n for (var i = 0; i < length; i++) {\r\n destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i];\r\n }\r\n };\r\n return MyArray;\r\n}());\r\n\r\n//*****************************************************************************\r\n// LcsDiff.cs\r\n//\r\n// An implementation of the difference algorithm described in\r\n// \"An O(ND) Difference Algorithm and its variations\" by Eugene W. Myers\r\n//\r\n// Copyright (C) 2008 Microsoft Corporation @minifier_do_not_preserve\r\n//*****************************************************************************\r\n// Our total memory usage for storing history is (worst-case):\r\n// 2 * [(MaxDifferencesHistory + 1) * (MaxDifferencesHistory + 1) - 1] * sizeof(int)\r\n// 2 * [1448*1448 - 1] * 4 = 16773624 = 16MB\r\nvar MaxDifferencesHistory = 1447;\r\n//let MaxDifferencesHistory = 100;\r\n/**\r\n * A utility class which helps to create the set of DiffChanges from\r\n * a difference operation. This class accepts original DiffElements and\r\n * modified DiffElements that are involved in a particular change. The\r\n * MarktNextChange() method can be called to mark the separation between\r\n * distinct changes. At the end, the Changes property can be called to retrieve\r\n * the constructed changes.\r\n */\r\nvar DiffChangeHelper = /** @class */ (function () {\r\n /**\r\n * Constructs a new DiffChangeHelper for the given DiffSequences.\r\n */\r\n function DiffChangeHelper() {\r\n this.m_changes = [];\r\n this.m_originalStart = Number.MAX_VALUE;\r\n this.m_modifiedStart = Number.MAX_VALUE;\r\n this.m_originalCount = 0;\r\n this.m_modifiedCount = 0;\r\n }\r\n /**\r\n * Marks the beginning of the next change in the set of differences.\r\n */\r\n DiffChangeHelper.prototype.MarkNextChange = function () {\r\n // Only add to the list if there is something to add\r\n if (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\r\n // Add the new change to our list\r\n this.m_changes.push(new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount));\r\n }\r\n // Reset for the next change\r\n this.m_originalCount = 0;\r\n this.m_modifiedCount = 0;\r\n this.m_originalStart = Number.MAX_VALUE;\r\n this.m_modifiedStart = Number.MAX_VALUE;\r\n };\r\n /**\r\n * Adds the original element at the given position to the elements\r\n * affected by the current change. The modified index gives context\r\n * to the change position with respect to the original sequence.\r\n * @param originalIndex The index of the original element to add.\r\n * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence.\r\n */\r\n DiffChangeHelper.prototype.AddOriginalElement = function (originalIndex, modifiedIndex) {\r\n // The 'true' start index is the smallest of the ones we've seen\r\n this.m_originalStart = Math.min(this.m_originalStart, originalIndex);\r\n this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\r\n this.m_originalCount++;\r\n };\r\n /**\r\n * Adds the modified element at the given position to the elements\r\n * affected by the current change. The original index gives context\r\n * to the change position with respect to the modified sequence.\r\n * @param originalIndex The index of the original element that provides corresponding position in the original sequence.\r\n * @param modifiedIndex The index of the modified element to add.\r\n */\r\n DiffChangeHelper.prototype.AddModifiedElement = function (originalIndex, modifiedIndex) {\r\n // The 'true' start index is the smallest of the ones we've seen\r\n this.m_originalStart = Math.min(this.m_originalStart, originalIndex);\r\n this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\r\n this.m_modifiedCount++;\r\n };\r\n /**\r\n * Retrieves all of the changes marked by the class.\r\n */\r\n DiffChangeHelper.prototype.getChanges = function () {\r\n if (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\r\n // Finish up on whatever is left\r\n this.MarkNextChange();\r\n }\r\n return this.m_changes;\r\n };\r\n /**\r\n * Retrieves all of the changes marked by the class in the reverse order\r\n */\r\n DiffChangeHelper.prototype.getReverseChanges = function () {\r\n if (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\r\n // Finish up on whatever is left\r\n this.MarkNextChange();\r\n }\r\n this.m_changes.reverse();\r\n return this.m_changes;\r\n };\r\n return DiffChangeHelper;\r\n}());\r\n/**\r\n * An implementation of the difference algorithm described in\r\n * \"An O(ND) Difference Algorithm and its variations\" by Eugene W. Myers\r\n */\r\nvar LcsDiff = /** @class */ (function () {\r\n /**\r\n * Constructs the DiffFinder\r\n */\r\n function LcsDiff(originalSequence, newSequence, continueProcessingPredicate) {\r\n if (continueProcessingPredicate === void 0) { continueProcessingPredicate = null; }\r\n this.OriginalSequence = originalSequence;\r\n this.ModifiedSequence = newSequence;\r\n this.ContinueProcessingPredicate = continueProcessingPredicate;\r\n this.m_forwardHistory = [];\r\n this.m_reverseHistory = [];\r\n }\r\n LcsDiff.prototype.ElementsAreEqual = function (originalIndex, newIndex) {\r\n return (this.OriginalSequence.getElementAtIndex(originalIndex) === this.ModifiedSequence.getElementAtIndex(newIndex));\r\n };\r\n LcsDiff.prototype.OriginalElementsAreEqual = function (index1, index2) {\r\n return (this.OriginalSequence.getElementAtIndex(index1) === this.OriginalSequence.getElementAtIndex(index2));\r\n };\r\n LcsDiff.prototype.ModifiedElementsAreEqual = function (index1, index2) {\r\n return (this.ModifiedSequence.getElementAtIndex(index1) === this.ModifiedSequence.getElementAtIndex(index2));\r\n };\r\n LcsDiff.prototype.ComputeDiff = function (pretty) {\r\n return this._ComputeDiff(0, this.OriginalSequence.getLength() - 1, 0, this.ModifiedSequence.getLength() - 1, pretty);\r\n };\r\n /**\r\n * Computes the differences between the original and modified input\r\n * sequences on the bounded range.\r\n * @returns An array of the differences between the two input sequences.\r\n */\r\n LcsDiff.prototype._ComputeDiff = function (originalStart, originalEnd, modifiedStart, modifiedEnd, pretty) {\r\n var quitEarlyArr = [false];\r\n var changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr);\r\n if (pretty) {\r\n // We have to clean up the computed diff to be more intuitive\r\n // but it turns out this cannot be done correctly until the entire set\r\n // of diffs have been computed\r\n return this.PrettifyChanges(changes);\r\n }\r\n return changes;\r\n };\r\n /**\r\n * Private helper method which computes the differences on the bounded range\r\n * recursively.\r\n * @returns An array of the differences between the two input sequences.\r\n */\r\n LcsDiff.prototype.ComputeDiffRecursive = function (originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr) {\r\n quitEarlyArr[0] = false;\r\n // Find the start of the differences\r\n while (originalStart <= originalEnd && modifiedStart <= modifiedEnd && this.ElementsAreEqual(originalStart, modifiedStart)) {\r\n originalStart++;\r\n modifiedStart++;\r\n }\r\n // Find the end of the differences\r\n while (originalEnd >= originalStart && modifiedEnd >= modifiedStart && this.ElementsAreEqual(originalEnd, modifiedEnd)) {\r\n originalEnd--;\r\n modifiedEnd--;\r\n }\r\n // In the special case where we either have all insertions or all deletions or the sequences are identical\r\n if (originalStart > originalEnd || modifiedStart > modifiedEnd) {\r\n var changes = void 0;\r\n if (modifiedStart <= modifiedEnd) {\r\n Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd');\r\n // All insertions\r\n changes = [\r\n new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1)\r\n ];\r\n }\r\n else if (originalStart <= originalEnd) {\r\n Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd');\r\n // All deletions\r\n changes = [\r\n new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](originalStart, originalEnd - originalStart + 1, modifiedStart, 0)\r\n ];\r\n }\r\n else {\r\n Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd');\r\n Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd');\r\n // Identical sequences - No differences\r\n changes = [];\r\n }\r\n return changes;\r\n }\r\n // This problem can be solved using the Divide-And-Conquer technique.\r\n var midOriginalArr = [0], midModifiedArr = [0];\r\n var result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr);\r\n var midOriginal = midOriginalArr[0];\r\n var midModified = midModifiedArr[0];\r\n if (result !== null) {\r\n // Result is not-null when there was enough memory to compute the changes while\r\n // searching for the recursion point\r\n return result;\r\n }\r\n else if (!quitEarlyArr[0]) {\r\n // We can break the problem down recursively by finding the changes in the\r\n // First Half: (originalStart, modifiedStart) to (midOriginal, midModified)\r\n // Second Half: (midOriginal + 1, minModified + 1) to (originalEnd, modifiedEnd)\r\n // NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point\r\n var leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr);\r\n var rightChanges = [];\r\n if (!quitEarlyArr[0]) {\r\n rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr);\r\n }\r\n else {\r\n // We did't have time to finish the first half, so we don't have time to compute this half.\r\n // Consider the entire rest of the sequence different.\r\n rightChanges = [\r\n new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1)\r\n ];\r\n }\r\n return this.ConcatenateChanges(leftChanges, rightChanges);\r\n }\r\n // If we hit here, we quit early, and so can't return anything meaningful\r\n return [\r\n new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\r\n ];\r\n };\r\n LcsDiff.prototype.WALKTRACE = function (diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr) {\r\n var forwardChanges = null, reverseChanges = null;\r\n // First, walk backward through the forward diagonals history\r\n var changeHelper = new DiffChangeHelper();\r\n var diagonalMin = diagonalForwardStart;\r\n var diagonalMax = diagonalForwardEnd;\r\n var diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset;\r\n var lastOriginalIndex = Number.MIN_VALUE;\r\n var historyIndex = this.m_forwardHistory.length - 1;\r\n var diagonal;\r\n do {\r\n // Get the diagonal index from the relative diagonal number\r\n diagonal = diagonalRelative + diagonalForwardBase;\r\n // Figure out where we came from\r\n if (diagonal === diagonalMin || (diagonal < diagonalMax && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) {\r\n // Vertical line (the element is an insert)\r\n originalIndex = forwardPoints[diagonal + 1];\r\n modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\r\n if (originalIndex < lastOriginalIndex) {\r\n changeHelper.MarkNextChange();\r\n }\r\n lastOriginalIndex = originalIndex;\r\n changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex);\r\n diagonalRelative = (diagonal + 1) - diagonalForwardBase; //Setup for the next iteration\r\n }\r\n else {\r\n // Horizontal line (the element is a deletion)\r\n originalIndex = forwardPoints[diagonal - 1] + 1;\r\n modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\r\n if (originalIndex < lastOriginalIndex) {\r\n changeHelper.MarkNextChange();\r\n }\r\n lastOriginalIndex = originalIndex - 1;\r\n changeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1);\r\n diagonalRelative = (diagonal - 1) - diagonalForwardBase; //Setup for the next iteration\r\n }\r\n if (historyIndex >= 0) {\r\n forwardPoints = this.m_forwardHistory[historyIndex];\r\n diagonalForwardBase = forwardPoints[0]; //We stored this in the first spot\r\n diagonalMin = 1;\r\n diagonalMax = forwardPoints.length - 1;\r\n }\r\n } while (--historyIndex >= -1);\r\n // Ironically, we get the forward changes as the reverse of the\r\n // order we added them since we technically added them backwards\r\n forwardChanges = changeHelper.getReverseChanges();\r\n if (quitEarlyArr[0]) {\r\n // TODO: Calculate a partial from the reverse diagonals.\r\n // For now, just assume everything after the midOriginal/midModified point is a diff\r\n var originalStartPoint = midOriginalArr[0] + 1;\r\n var modifiedStartPoint = midModifiedArr[0] + 1;\r\n if (forwardChanges !== null && forwardChanges.length > 0) {\r\n var lastForwardChange = forwardChanges[forwardChanges.length - 1];\r\n originalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd());\r\n modifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd());\r\n }\r\n reverseChanges = [\r\n new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1)\r\n ];\r\n }\r\n else {\r\n // Now walk backward through the reverse diagonals history\r\n changeHelper = new DiffChangeHelper();\r\n diagonalMin = diagonalReverseStart;\r\n diagonalMax = diagonalReverseEnd;\r\n diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset;\r\n lastOriginalIndex = Number.MAX_VALUE;\r\n historyIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\r\n do {\r\n // Get the diagonal index from the relative diagonal number\r\n diagonal = diagonalRelative + diagonalReverseBase;\r\n // Figure out where we came from\r\n if (diagonal === diagonalMin || (diagonal < diagonalMax && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) {\r\n // Horizontal line (the element is a deletion))\r\n originalIndex = reversePoints[diagonal + 1] - 1;\r\n modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\r\n if (originalIndex > lastOriginalIndex) {\r\n changeHelper.MarkNextChange();\r\n }\r\n lastOriginalIndex = originalIndex + 1;\r\n changeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1);\r\n diagonalRelative = (diagonal + 1) - diagonalReverseBase; //Setup for the next iteration\r\n }\r\n else {\r\n // Vertical line (the element is an insertion)\r\n originalIndex = reversePoints[diagonal - 1];\r\n modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\r\n if (originalIndex > lastOriginalIndex) {\r\n changeHelper.MarkNextChange();\r\n }\r\n lastOriginalIndex = originalIndex;\r\n changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1);\r\n diagonalRelative = (diagonal - 1) - diagonalReverseBase; //Setup for the next iteration\r\n }\r\n if (historyIndex >= 0) {\r\n reversePoints = this.m_reverseHistory[historyIndex];\r\n diagonalReverseBase = reversePoints[0]; //We stored this in the first spot\r\n diagonalMin = 1;\r\n diagonalMax = reversePoints.length - 1;\r\n }\r\n } while (--historyIndex >= -1);\r\n // There are cases where the reverse history will find diffs that\r\n // are correct, but not intuitive, so we need shift them.\r\n reverseChanges = changeHelper.getChanges();\r\n }\r\n return this.ConcatenateChanges(forwardChanges, reverseChanges);\r\n };\r\n /**\r\n * Given the range to compute the diff on, this method finds the point:\r\n * (midOriginal, midModified)\r\n * that exists in the middle of the LCS of the two sequences and\r\n * is the point at which the LCS problem may be broken down recursively.\r\n * This method will try to keep the LCS trace in memory. If the LCS recursion\r\n * point is calculated and the full trace is available in memory, then this method\r\n * will return the change list.\r\n * @param originalStart The start bound of the original sequence range\r\n * @param originalEnd The end bound of the original sequence range\r\n * @param modifiedStart The start bound of the modified sequence range\r\n * @param modifiedEnd The end bound of the modified sequence range\r\n * @param midOriginal The middle point of the original sequence range\r\n * @param midModified The middle point of the modified sequence range\r\n * @returns The diff changes, if available, otherwise null\r\n */\r\n LcsDiff.prototype.ComputeRecursionPoint = function (originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr) {\r\n var originalIndex = 0, modifiedIndex = 0;\r\n var diagonalForwardStart = 0, diagonalForwardEnd = 0;\r\n var diagonalReverseStart = 0, diagonalReverseEnd = 0;\r\n var numDifferences;\r\n // To traverse the edit graph and produce the proper LCS, our actual\r\n // start position is just outside the given boundary\r\n originalStart--;\r\n modifiedStart--;\r\n // We set these up to make the compiler happy, but they will\r\n // be replaced before we return with the actual recursion point\r\n midOriginalArr[0] = 0;\r\n midModifiedArr[0] = 0;\r\n // Clear out the history\r\n this.m_forwardHistory = [];\r\n this.m_reverseHistory = [];\r\n // Each cell in the two arrays corresponds to a diagonal in the edit graph.\r\n // The integer value in the cell represents the originalIndex of the furthest\r\n // reaching point found so far that ends in that diagonal.\r\n // The modifiedIndex can be computed mathematically from the originalIndex and the diagonal number.\r\n var maxDifferences = (originalEnd - originalStart) + (modifiedEnd - modifiedStart);\r\n var numDiagonals = maxDifferences + 1;\r\n var forwardPoints = new Array(numDiagonals);\r\n var reversePoints = new Array(numDiagonals);\r\n // diagonalForwardBase: Index into forwardPoints of the diagonal which passes through (originalStart, modifiedStart)\r\n // diagonalReverseBase: Index into reversePoints of the diagonal which passes through (originalEnd, modifiedEnd)\r\n var diagonalForwardBase = (modifiedEnd - modifiedStart);\r\n var diagonalReverseBase = (originalEnd - originalStart);\r\n // diagonalForwardOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the\r\n // diagonal number (relative to diagonalForwardBase)\r\n // diagonalReverseOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the\r\n // diagonal number (relative to diagonalReverseBase)\r\n var diagonalForwardOffset = (originalStart - modifiedStart);\r\n var diagonalReverseOffset = (originalEnd - modifiedEnd);\r\n // delta: The difference between the end diagonal and the start diagonal. This is used to relate diagonal numbers\r\n // relative to the start diagonal with diagonal numbers relative to the end diagonal.\r\n // The Even/Oddn-ness of this delta is important for determining when we should check for overlap\r\n var delta = diagonalReverseBase - diagonalForwardBase;\r\n var deltaIsEven = (delta % 2 === 0);\r\n // Here we set up the start and end points as the furthest points found so far\r\n // in both the forward and reverse directions, respectively\r\n forwardPoints[diagonalForwardBase] = originalStart;\r\n reversePoints[diagonalReverseBase] = originalEnd;\r\n // Remember if we quit early, and thus need to do a best-effort result instead of a real result.\r\n quitEarlyArr[0] = false;\r\n // A couple of points:\r\n // --With this method, we iterate on the number of differences between the two sequences.\r\n // The more differences there actually are, the longer this will take.\r\n // --Also, as the number of differences increases, we have to search on diagonals further\r\n // away from the reference diagonal (which is diagonalForwardBase for forward, diagonalReverseBase for reverse).\r\n // --We extend on even diagonals (relative to the reference diagonal) only when numDifferences\r\n // is even and odd diagonals only when numDifferences is odd.\r\n var diagonal, tempOriginalIndex;\r\n for (numDifferences = 1; numDifferences <= (maxDifferences / 2) + 1; numDifferences++) {\r\n var furthestOriginalIndex = 0;\r\n var furthestModifiedIndex = 0;\r\n // Run the algorithm in the forward direction\r\n diagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\r\n diagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\r\n for (diagonal = diagonalForwardStart; diagonal <= diagonalForwardEnd; diagonal += 2) {\r\n // STEP 1: We extend the furthest reaching point in the present diagonal\r\n // by looking at the diagonals above and below and picking the one whose point\r\n // is further away from the start point (originalStart, modifiedStart)\r\n if (diagonal === diagonalForwardStart || (diagonal < diagonalForwardEnd && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) {\r\n originalIndex = forwardPoints[diagonal + 1];\r\n }\r\n else {\r\n originalIndex = forwardPoints[diagonal - 1] + 1;\r\n }\r\n modifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset;\r\n // Save the current originalIndex so we can test for false overlap in step 3\r\n tempOriginalIndex = originalIndex;\r\n // STEP 2: We can continue to extend the furthest reaching point in the present diagonal\r\n // so long as the elements are equal.\r\n while (originalIndex < originalEnd && modifiedIndex < modifiedEnd && this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) {\r\n originalIndex++;\r\n modifiedIndex++;\r\n }\r\n forwardPoints[diagonal] = originalIndex;\r\n if (originalIndex + modifiedIndex > furthestOriginalIndex + furthestModifiedIndex) {\r\n furthestOriginalIndex = originalIndex;\r\n furthestModifiedIndex = modifiedIndex;\r\n }\r\n // STEP 3: If delta is odd (overlap first happens on forward when delta is odd)\r\n // and diagonal is in the range of reverse diagonals computed for numDifferences-1\r\n // (the previous iteration; we haven't computed reverse diagonals for numDifferences yet)\r\n // then check for overlap.\r\n if (!deltaIsEven && Math.abs(diagonal - diagonalReverseBase) <= (numDifferences - 1)) {\r\n if (originalIndex >= reversePoints[diagonal]) {\r\n midOriginalArr[0] = originalIndex;\r\n midModifiedArr[0] = modifiedIndex;\r\n if (tempOriginalIndex <= reversePoints[diagonal] && MaxDifferencesHistory > 0 && numDifferences <= (MaxDifferencesHistory + 1)) {\r\n // BINGO! We overlapped, and we have the full trace in memory!\r\n return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\r\n }\r\n else {\r\n // Either false overlap, or we didn't have enough memory for the full trace\r\n // Just return the recursion point\r\n return null;\r\n }\r\n }\r\n }\r\n }\r\n // Check to see if we should be quitting early, before moving on to the next iteration.\r\n var matchLengthOfLongest = ((furthestOriginalIndex - originalStart) + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2;\r\n if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(furthestOriginalIndex, this.OriginalSequence, matchLengthOfLongest)) {\r\n // We can't finish, so skip ahead to generating a result from what we have.\r\n quitEarlyArr[0] = true;\r\n // Use the furthest distance we got in the forward direction.\r\n midOriginalArr[0] = furthestOriginalIndex;\r\n midModifiedArr[0] = furthestModifiedIndex;\r\n if (matchLengthOfLongest > 0 && MaxDifferencesHistory > 0 && numDifferences <= (MaxDifferencesHistory + 1)) {\r\n // Enough of the history is in memory to walk it backwards\r\n return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\r\n }\r\n else {\r\n // We didn't actually remember enough of the history.\r\n //Since we are quiting the diff early, we need to shift back the originalStart and modified start\r\n //back into the boundary limits since we decremented their value above beyond the boundary limit.\r\n originalStart++;\r\n modifiedStart++;\r\n return [\r\n new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\r\n ];\r\n }\r\n }\r\n // Run the algorithm in the reverse direction\r\n diagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\r\n diagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\r\n for (diagonal = diagonalReverseStart; diagonal <= diagonalReverseEnd; diagonal += 2) {\r\n // STEP 1: We extend the furthest reaching point in the present diagonal\r\n // by looking at the diagonals above and below and picking the one whose point\r\n // is further away from the start point (originalEnd, modifiedEnd)\r\n if (diagonal === diagonalReverseStart || (diagonal < diagonalReverseEnd && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) {\r\n originalIndex = reversePoints[diagonal + 1] - 1;\r\n }\r\n else {\r\n originalIndex = reversePoints[diagonal - 1];\r\n }\r\n modifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset;\r\n // Save the current originalIndex so we can test for false overlap\r\n tempOriginalIndex = originalIndex;\r\n // STEP 2: We can continue to extend the furthest reaching point in the present diagonal\r\n // as long as the elements are equal.\r\n while (originalIndex > originalStart && modifiedIndex > modifiedStart && this.ElementsAreEqual(originalIndex, modifiedIndex)) {\r\n originalIndex--;\r\n modifiedIndex--;\r\n }\r\n reversePoints[diagonal] = originalIndex;\r\n // STEP 4: If delta is even (overlap first happens on reverse when delta is even)\r\n // and diagonal is in the range of forward diagonals computed for numDifferences\r\n // then check for overlap.\r\n if (deltaIsEven && Math.abs(diagonal - diagonalForwardBase) <= numDifferences) {\r\n if (originalIndex <= forwardPoints[diagonal]) {\r\n midOriginalArr[0] = originalIndex;\r\n midModifiedArr[0] = modifiedIndex;\r\n if (tempOriginalIndex >= forwardPoints[diagonal] && MaxDifferencesHistory > 0 && numDifferences <= (MaxDifferencesHistory + 1)) {\r\n // BINGO! We overlapped, and we have the full trace in memory!\r\n return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\r\n }\r\n else {\r\n // Either false overlap, or we didn't have enough memory for the full trace\r\n // Just return the recursion point\r\n return null;\r\n }\r\n }\r\n }\r\n }\r\n // Save current vectors to history before the next iteration\r\n if (numDifferences <= MaxDifferencesHistory) {\r\n // We are allocating space for one extra int, which we fill with\r\n // the index of the diagonal base index\r\n var temp = new Array(diagonalForwardEnd - diagonalForwardStart + 2);\r\n temp[0] = diagonalForwardBase - diagonalForwardStart + 1;\r\n MyArray.Copy(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1);\r\n this.m_forwardHistory.push(temp);\r\n temp = new Array(diagonalReverseEnd - diagonalReverseStart + 2);\r\n temp[0] = diagonalReverseBase - diagonalReverseStart + 1;\r\n MyArray.Copy(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1);\r\n this.m_reverseHistory.push(temp);\r\n }\r\n }\r\n // If we got here, then we have the full trace in history. We just have to convert it to a change list\r\n // NOTE: This part is a bit messy\r\n return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\r\n };\r\n /**\r\n * Shifts the given changes to provide a more intuitive diff.\r\n * While the first element in a diff matches the first element after the diff,\r\n * we shift the diff down.\r\n *\r\n * @param changes The list of changes to shift\r\n * @returns The shifted changes\r\n */\r\n LcsDiff.prototype.PrettifyChanges = function (changes) {\r\n // Shift all the changes down first\r\n for (var i = 0; i < changes.length; i++) {\r\n var change = changes[i];\r\n var originalStop = (i < changes.length - 1) ? changes[i + 1].originalStart : this.OriginalSequence.getLength();\r\n var modifiedStop = (i < changes.length - 1) ? changes[i + 1].modifiedStart : this.ModifiedSequence.getLength();\r\n var checkOriginal = change.originalLength > 0;\r\n var checkModified = change.modifiedLength > 0;\r\n while (change.originalStart + change.originalLength < originalStop &&\r\n change.modifiedStart + change.modifiedLength < modifiedStop &&\r\n (!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength)) &&\r\n (!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) {\r\n change.originalStart++;\r\n change.modifiedStart++;\r\n }\r\n var mergedChangeArr = [null];\r\n if (i < changes.length - 1 && this.ChangesOverlap(changes[i], changes[i + 1], mergedChangeArr)) {\r\n changes[i] = mergedChangeArr[0];\r\n changes.splice(i + 1, 1);\r\n i--;\r\n continue;\r\n }\r\n }\r\n // Shift changes back up until we hit empty or whitespace-only lines\r\n for (var i = changes.length - 1; i >= 0; i--) {\r\n var change = changes[i];\r\n var originalStop = 0;\r\n var modifiedStop = 0;\r\n if (i > 0) {\r\n var prevChange = changes[i - 1];\r\n if (prevChange.originalLength > 0) {\r\n originalStop = prevChange.originalStart + prevChange.originalLength;\r\n }\r\n if (prevChange.modifiedLength > 0) {\r\n modifiedStop = prevChange.modifiedStart + prevChange.modifiedLength;\r\n }\r\n }\r\n var checkOriginal = change.originalLength > 0;\r\n var checkModified = change.modifiedLength > 0;\r\n var bestDelta = 0;\r\n var bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength);\r\n for (var delta = 1;; delta++) {\r\n var originalStart = change.originalStart - delta;\r\n var modifiedStart = change.modifiedStart - delta;\r\n if (originalStart < originalStop || modifiedStart < modifiedStop) {\r\n break;\r\n }\r\n if (checkOriginal && !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) {\r\n break;\r\n }\r\n if (checkModified && !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) {\r\n break;\r\n }\r\n var score = this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength);\r\n if (score > bestScore) {\r\n bestScore = score;\r\n bestDelta = delta;\r\n }\r\n }\r\n change.originalStart -= bestDelta;\r\n change.modifiedStart -= bestDelta;\r\n }\r\n return changes;\r\n };\r\n LcsDiff.prototype._OriginalIsBoundary = function (index) {\r\n if (index <= 0 || index >= this.OriginalSequence.getLength() - 1) {\r\n return true;\r\n }\r\n var element = this.OriginalSequence.getElementAtIndex(index);\r\n return (typeof element === 'string' && /^\\s*$/.test(element));\r\n };\r\n LcsDiff.prototype._OriginalRegionIsBoundary = function (originalStart, originalLength) {\r\n if (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) {\r\n return true;\r\n }\r\n if (originalLength > 0) {\r\n var originalEnd = originalStart + originalLength;\r\n if (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n LcsDiff.prototype._ModifiedIsBoundary = function (index) {\r\n if (index <= 0 || index >= this.ModifiedSequence.getLength() - 1) {\r\n return true;\r\n }\r\n var element = this.ModifiedSequence.getElementAtIndex(index);\r\n return (typeof element === 'string' && /^\\s*$/.test(element));\r\n };\r\n LcsDiff.prototype._ModifiedRegionIsBoundary = function (modifiedStart, modifiedLength) {\r\n if (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) {\r\n return true;\r\n }\r\n if (modifiedLength > 0) {\r\n var modifiedEnd = modifiedStart + modifiedLength;\r\n if (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n LcsDiff.prototype._boundaryScore = function (originalStart, originalLength, modifiedStart, modifiedLength) {\r\n var originalScore = (this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0);\r\n var modifiedScore = (this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0);\r\n return (originalScore + modifiedScore);\r\n };\r\n /**\r\n * Concatenates the two input DiffChange lists and returns the resulting\r\n * list.\r\n * @param The left changes\r\n * @param The right changes\r\n * @returns The concatenated list\r\n */\r\n LcsDiff.prototype.ConcatenateChanges = function (left, right) {\r\n var mergedChangeArr = [];\r\n if (left.length === 0 || right.length === 0) {\r\n return (right.length > 0) ? right : left;\r\n }\r\n else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) {\r\n // Since we break the problem down recursively, it is possible that we\r\n // might recurse in the middle of a change thereby splitting it into\r\n // two changes. Here in the combining stage, we detect and fuse those\r\n // changes back together\r\n var result = new Array(left.length + right.length - 1);\r\n MyArray.Copy(left, 0, result, 0, left.length - 1);\r\n result[left.length - 1] = mergedChangeArr[0];\r\n MyArray.Copy(right, 1, result, left.length, right.length - 1);\r\n return result;\r\n }\r\n else {\r\n var result = new Array(left.length + right.length);\r\n MyArray.Copy(left, 0, result, 0, left.length);\r\n MyArray.Copy(right, 0, result, left.length, right.length);\r\n return result;\r\n }\r\n };\r\n /**\r\n * Returns true if the two changes overlap and can be merged into a single\r\n * change\r\n * @param left The left change\r\n * @param right The right change\r\n * @param mergedChange The merged change if the two overlap, null otherwise\r\n * @returns True if the two changes overlap\r\n */\r\n LcsDiff.prototype.ChangesOverlap = function (left, right, mergedChangeArr) {\r\n Debug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change');\r\n Debug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change');\r\n if (left.originalStart + left.originalLength >= right.originalStart || left.modifiedStart + left.modifiedLength >= right.modifiedStart) {\r\n var originalStart = left.originalStart;\r\n var originalLength = left.originalLength;\r\n var modifiedStart = left.modifiedStart;\r\n var modifiedLength = left.modifiedLength;\r\n if (left.originalStart + left.originalLength >= right.originalStart) {\r\n originalLength = right.originalStart + right.originalLength - left.originalStart;\r\n }\r\n if (left.modifiedStart + left.modifiedLength >= right.modifiedStart) {\r\n modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart;\r\n }\r\n mergedChangeArr[0] = new _diffChange_js__WEBPACK_IMPORTED_MODULE_0__[\"DiffChange\"](originalStart, originalLength, modifiedStart, modifiedLength);\r\n return true;\r\n }\r\n else {\r\n mergedChangeArr[0] = null;\r\n return false;\r\n }\r\n };\r\n /**\r\n * Helper method used to clip a diagonal index to the range of valid\r\n * diagonals. This also decides whether or not the diagonal index,\r\n * if it exceeds the boundary, should be clipped to the boundary or clipped\r\n * one inside the boundary depending on the Even/Odd status of the boundary\r\n * and numDifferences.\r\n * @param diagonal The index of the diagonal to clip.\r\n * @param numDifferences The current number of differences being iterated upon.\r\n * @param diagonalBaseIndex The base reference diagonal.\r\n * @param numDiagonals The total number of diagonals.\r\n * @returns The clipped diagonal index.\r\n */\r\n LcsDiff.prototype.ClipDiagonalBound = function (diagonal, numDifferences, diagonalBaseIndex, numDiagonals) {\r\n if (diagonal >= 0 && diagonal < numDiagonals) {\r\n // Nothing to clip, its in range\r\n return diagonal;\r\n }\r\n // diagonalsBelow: The number of diagonals below the reference diagonal\r\n // diagonalsAbove: The number of diagonals above the reference diagonal\r\n var diagonalsBelow = diagonalBaseIndex;\r\n var diagonalsAbove = numDiagonals - diagonalBaseIndex - 1;\r\n var diffEven = (numDifferences % 2 === 0);\r\n if (diagonal < 0) {\r\n var lowerBoundEven = (diagonalsBelow % 2 === 0);\r\n return (diffEven === lowerBoundEven) ? 0 : 1;\r\n }\r\n else {\r\n var upperBoundEven = (diagonalsAbove % 2 === 0);\r\n return (diffEven === upperBoundEven) ? numDiagonals - 1 : numDiagonals - 2;\r\n }\r\n };\r\n return LcsDiff;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/diff/diff.js?")},"../node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiffChange", function() { return DiffChange; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/**\r\n * Represents information about a specific difference between two sequences.\r\n */\r\nvar DiffChange = /** @class */ (function () {\r\n /**\r\n * Constructs a new DiffChange with the given sequence information\r\n * and content.\r\n */\r\n function DiffChange(originalStart, originalLength, modifiedStart, modifiedLength) {\r\n //Debug.Assert(originalLength > 0 || modifiedLength > 0, "originalLength and modifiedLength cannot both be <= 0");\r\n this.originalStart = originalStart;\r\n this.originalLength = originalLength;\r\n this.modifiedStart = modifiedStart;\r\n this.modifiedLength = modifiedLength;\r\n }\r\n /**\r\n * The end point (exclusive) of the change in the original sequence.\r\n */\r\n DiffChange.prototype.getOriginalEnd = function () {\r\n return this.originalStart + this.originalLength;\r\n };\r\n /**\r\n * The end point (exclusive) of the change in the modified sequence.\r\n */\r\n DiffChange.prototype.getModifiedEnd = function () {\r\n return this.modifiedStart + this.modifiedLength;\r\n };\r\n return DiffChange;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js?')},"../node_modules/monaco-editor/esm/vs/base/common/errors.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorHandler", function() { return ErrorHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "errorHandler", function() { return errorHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onUnexpectedError", function() { return onUnexpectedError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onUnexpectedExternalError", function() { return onUnexpectedExternalError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformErrorForSerialization", function() { return transformErrorForSerialization; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPromiseCanceledError", function() { return isPromiseCanceledError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canceled", function() { return canceled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "illegalArgument", function() { return illegalArgument; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "illegalState", function() { return illegalState; });\n/* harmony import */ var _winjs_base_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./winjs.base.js */ "../node_modules/monaco-editor/esm/vs/base/common/winjs.base.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n// ------ BEGIN Hook up error listeners to winjs promises\r\nvar outstandingPromiseErrors = {};\r\nfunction promiseErrorHandler(e) {\r\n //\r\n // e.detail looks like: { exception, error, promise, handler, id, parent }\r\n //\r\n var details = e.detail;\r\n var id = details.id;\r\n // If the error has a parent promise then this is not the origination of the\r\n // error so we check if it has a handler, and if so we mark that the error\r\n // was handled by removing it from outstandingPromiseErrors\r\n //\r\n if (details.parent) {\r\n if (details.handler && outstandingPromiseErrors) {\r\n delete outstandingPromiseErrors[id];\r\n }\r\n return;\r\n }\r\n // Indicate that this error was originated and needs to be handled\r\n outstandingPromiseErrors[id] = details;\r\n // The first time the queue fills up this iteration, schedule a timeout to\r\n // check if any errors are still unhandled.\r\n if (Object.keys(outstandingPromiseErrors).length === 1) {\r\n setTimeout(function () {\r\n var errors = outstandingPromiseErrors;\r\n outstandingPromiseErrors = {};\r\n Object.keys(errors).forEach(function (errorId) {\r\n var error = errors[errorId];\r\n if (error.exception) {\r\n onUnexpectedError(error.exception);\r\n }\r\n else if (error.error) {\r\n onUnexpectedError(error.error);\r\n }\r\n console.log(\'WARNING: Promise with no error callback:\' + error.id);\r\n console.log(error);\r\n if (error.exception) {\r\n console.log(error.exception.stack);\r\n }\r\n });\r\n }, 0);\r\n }\r\n}\r\n_winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["TPromise"].addEventListener(\'error\', promiseErrorHandler);\r\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\r\nvar ErrorHandler = /** @class */ (function () {\r\n function ErrorHandler() {\r\n this.listeners = [];\r\n this.unexpectedErrorHandler = function (e) {\r\n setTimeout(function () {\r\n if (e.stack) {\r\n throw new Error(e.message + \'\\n\\n\' + e.stack);\r\n }\r\n throw e;\r\n }, 0);\r\n };\r\n }\r\n ErrorHandler.prototype.emit = function (e) {\r\n this.listeners.forEach(function (listener) {\r\n listener(e);\r\n });\r\n };\r\n ErrorHandler.prototype.onUnexpectedError = function (e) {\r\n this.unexpectedErrorHandler(e);\r\n this.emit(e);\r\n };\r\n // For external errors, we don\'t want the listeners to be called\r\n ErrorHandler.prototype.onUnexpectedExternalError = function (e) {\r\n this.unexpectedErrorHandler(e);\r\n };\r\n return ErrorHandler;\r\n}());\r\n\r\nvar errorHandler = new ErrorHandler();\r\nfunction onUnexpectedError(e) {\r\n // ignore errors from cancelled promises\r\n if (!isPromiseCanceledError(e)) {\r\n errorHandler.onUnexpectedError(e);\r\n }\r\n return undefined;\r\n}\r\nfunction onUnexpectedExternalError(e) {\r\n // ignore errors from cancelled promises\r\n if (!isPromiseCanceledError(e)) {\r\n errorHandler.onUnexpectedExternalError(e);\r\n }\r\n return undefined;\r\n}\r\nfunction transformErrorForSerialization(error) {\r\n if (error instanceof Error) {\r\n var name_1 = error.name, message = error.message;\r\n var stack = error.stacktrace || error.stack;\r\n return {\r\n $isError: true,\r\n name: name_1,\r\n message: message,\r\n stack: stack\r\n };\r\n }\r\n // return as is\r\n return error;\r\n}\r\nvar canceledName = \'Canceled\';\r\n/**\r\n * Checks if the given error is a promise in canceled state\r\n */\r\nfunction isPromiseCanceledError(error) {\r\n return error instanceof Error && error.name === canceledName && error.message === canceledName;\r\n}\r\n/**\r\n * Returns an error that signals cancellation.\r\n */\r\nfunction canceled() {\r\n var error = new Error(canceledName);\r\n error.name = error.message;\r\n return error;\r\n}\r\nfunction illegalArgument(name) {\r\n if (name) {\r\n return new Error("Illegal argument: " + name);\r\n }\r\n else {\r\n return new Error(\'Illegal argument\');\r\n }\r\n}\r\nfunction illegalState(name) {\r\n if (name) {\r\n return new Error("Illegal state: " + name);\r\n }\r\n else {\r\n return new Error(\'Illegal state\');\r\n }\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/errors.js?')},"../node_modules/monaco-editor/esm/vs/base/common/event.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Event", function() { return Event; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Emitter", function() { return Emitter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventMultiplexer", function() { return EventMultiplexer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anyEvent", function() { return anyEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounceEvent", function() { return debounceEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventBufferer", function() { return EventBufferer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapEvent", function() { return mapEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterEvent", function() { return filterEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chain", function() { return chain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Relay", function() { return Relay; });\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./errors.js */ "../node_modules/monaco-editor/esm/vs/base/common/errors.js");\n/* harmony import */ var _functional_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functional.js */ "../node_modules/monaco-editor/esm/vs/base/common/functional.js");\n/* harmony import */ var _lifecycle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lifecycle.js */ "../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js");\n/* harmony import */ var _linkedList_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./linkedList.js */ "../node_modules/monaco-editor/esm/vs/base/common/linkedList.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\n\r\n\r\nvar Event;\r\n(function (Event) {\r\n var _disposable = { dispose: function () { } };\r\n Event.None = function () { return _disposable; };\r\n})(Event || (Event = {}));\r\n/**\r\n * The Emitter can be used to expose an Event to the public\r\n * to fire it from the insides.\r\n * Sample:\r\n class Document {\r\n\r\n private _onDidChange = new Emitter<(value:string)=>any>();\r\n\r\n public onDidChange = this._onDidChange.event;\r\n\r\n // getter-style\r\n // get onDidChange(): Event<(value:string)=>any> {\r\n // \treturn this._onDidChange.event;\r\n // }\r\n\r\n private _doIt() {\r\n //...\r\n this._onDidChange.fire(value);\r\n }\r\n }\r\n */\r\nvar Emitter = /** @class */ (function () {\r\n function Emitter(_options) {\r\n if (_options === void 0) { _options = null; }\r\n this._options = _options;\r\n this._event = null;\r\n this._disposed = false;\r\n this._deliveryQueue = null;\r\n this._listeners = null;\r\n }\r\n Object.defineProperty(Emitter.prototype, "event", {\r\n /**\r\n * For the public to allow to subscribe\r\n * to events from this Emitter\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._event) {\r\n this._event = function (listener, thisArgs, disposables) {\r\n if (!_this._listeners) {\r\n _this._listeners = new _linkedList_js__WEBPACK_IMPORTED_MODULE_3__["LinkedList"]();\r\n }\r\n var firstListener = _this._listeners.isEmpty();\r\n if (firstListener && _this._options && _this._options.onFirstListenerAdd) {\r\n _this._options.onFirstListenerAdd(_this);\r\n }\r\n var remove = _this._listeners.push(!thisArgs ? listener : [listener, thisArgs]);\r\n if (firstListener && _this._options && _this._options.onFirstListenerDidAdd) {\r\n _this._options.onFirstListenerDidAdd(_this);\r\n }\r\n if (_this._options && _this._options.onListenerDidAdd) {\r\n _this._options.onListenerDidAdd(_this, listener, thisArgs);\r\n }\r\n var result;\r\n result = {\r\n dispose: function () {\r\n result.dispose = Emitter._noop;\r\n if (!_this._disposed) {\r\n remove();\r\n if (_this._options && _this._options.onLastListenerRemove) {\r\n var hasListeners = (_this._listeners && !_this._listeners.isEmpty());\r\n if (!hasListeners) {\r\n _this._options.onLastListenerRemove(_this);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(disposables)) {\r\n disposables.push(result);\r\n }\r\n return result;\r\n };\r\n }\r\n return this._event;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * To be kept private to fire an event to\r\n * subscribers\r\n */\r\n Emitter.prototype.fire = function (event) {\r\n if (this._listeners) {\r\n // put all [listener,event]-pairs into delivery queue\r\n // then emit all event. an inner/nested event might be\r\n // the driver of this\r\n if (!this._deliveryQueue) {\r\n this._deliveryQueue = [];\r\n }\r\n for (var iter = this._listeners.iterator(), e = iter.next(); !e.done; e = iter.next()) {\r\n this._deliveryQueue.push([e.value, event]);\r\n }\r\n while (this._deliveryQueue.length > 0) {\r\n var _a = this._deliveryQueue.shift(), listener = _a[0], event_1 = _a[1];\r\n try {\r\n if (typeof listener === \'function\') {\r\n listener.call(undefined, event_1);\r\n }\r\n else {\r\n listener[0].call(listener[1], event_1);\r\n }\r\n }\r\n catch (e) {\r\n Object(_errors_js__WEBPACK_IMPORTED_MODULE_0__["onUnexpectedError"])(e);\r\n }\r\n }\r\n }\r\n };\r\n Emitter.prototype.dispose = function () {\r\n if (this._listeners) {\r\n this._listeners = null;\r\n }\r\n if (this._deliveryQueue) {\r\n this._deliveryQueue.length = 0;\r\n }\r\n this._disposed = true;\r\n };\r\n Emitter._noop = function () { };\r\n return Emitter;\r\n}());\r\n\r\nvar EventMultiplexer = /** @class */ (function () {\r\n function EventMultiplexer() {\r\n var _this = this;\r\n this.hasListeners = false;\r\n this.events = [];\r\n this.emitter = new Emitter({\r\n onFirstListenerAdd: function () { return _this.onFirstListenerAdd(); },\r\n onLastListenerRemove: function () { return _this.onLastListenerRemove(); }\r\n });\r\n }\r\n Object.defineProperty(EventMultiplexer.prototype, "event", {\r\n get: function () {\r\n return this.emitter.event;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EventMultiplexer.prototype.add = function (event) {\r\n var _this = this;\r\n var e = { event: event, listener: null };\r\n this.events.push(e);\r\n if (this.hasListeners) {\r\n this.hook(e);\r\n }\r\n var dispose = function () {\r\n if (_this.hasListeners) {\r\n _this.unhook(e);\r\n }\r\n var idx = _this.events.indexOf(e);\r\n _this.events.splice(idx, 1);\r\n };\r\n return Object(_lifecycle_js__WEBPACK_IMPORTED_MODULE_2__["toDisposable"])(Object(_functional_js__WEBPACK_IMPORTED_MODULE_1__["once"])(dispose));\r\n };\r\n EventMultiplexer.prototype.onFirstListenerAdd = function () {\r\n var _this = this;\r\n this.hasListeners = true;\r\n this.events.forEach(function (e) { return _this.hook(e); });\r\n };\r\n EventMultiplexer.prototype.onLastListenerRemove = function () {\r\n var _this = this;\r\n this.hasListeners = false;\r\n this.events.forEach(function (e) { return _this.unhook(e); });\r\n };\r\n EventMultiplexer.prototype.hook = function (e) {\r\n var _this = this;\r\n e.listener = e.event(function (r) { return _this.emitter.fire(r); });\r\n };\r\n EventMultiplexer.prototype.unhook = function (e) {\r\n if (e.listener) {\r\n e.listener.dispose();\r\n }\r\n e.listener = null;\r\n };\r\n EventMultiplexer.prototype.dispose = function () {\r\n this.emitter.dispose();\r\n };\r\n return EventMultiplexer;\r\n}());\r\n\r\nfunction once(event) {\r\n return function (listener, thisArgs, disposables) {\r\n if (thisArgs === void 0) { thisArgs = null; }\r\n // we need this, in case the event fires during the listener call\r\n var didFire = false;\r\n var result = event(function (e) {\r\n if (didFire) {\r\n return;\r\n }\r\n else if (result) {\r\n result.dispose();\r\n }\r\n else {\r\n didFire = true;\r\n }\r\n return listener.call(thisArgs, e);\r\n }, null, disposables);\r\n if (didFire) {\r\n result.dispose();\r\n }\r\n return result;\r\n };\r\n}\r\nfunction anyEvent() {\r\n var events = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n events[_i] = arguments[_i];\r\n }\r\n return function (listener, thisArgs, disposables) {\r\n if (thisArgs === void 0) { thisArgs = null; }\r\n return Object(_lifecycle_js__WEBPACK_IMPORTED_MODULE_2__["combinedDisposable"])(events.map(function (event) { return event(function (e) { return listener.call(thisArgs, e); }, null, disposables); }));\r\n };\r\n}\r\nfunction debounceEvent(event, merger, delay, leading) {\r\n if (delay === void 0) { delay = 100; }\r\n if (leading === void 0) { leading = false; }\r\n var subscription;\r\n var output = undefined;\r\n var handle = undefined;\r\n var numDebouncedCalls = 0;\r\n var emitter = new Emitter({\r\n onFirstListenerAdd: function () {\r\n subscription = event(function (cur) {\r\n numDebouncedCalls++;\r\n output = merger(output, cur);\r\n if (leading && !handle) {\r\n emitter.fire(output);\r\n }\r\n clearTimeout(handle);\r\n handle = setTimeout(function () {\r\n var _output = output;\r\n output = undefined;\r\n handle = undefined;\r\n if (!leading || numDebouncedCalls > 1) {\r\n emitter.fire(_output);\r\n }\r\n numDebouncedCalls = 0;\r\n }, delay);\r\n });\r\n },\r\n onLastListenerRemove: function () {\r\n subscription.dispose();\r\n }\r\n });\r\n return emitter.event;\r\n}\r\n/**\r\n * The EventDelayer is useful in situations in which you want\r\n * to delay firing your events during some code.\r\n * You can wrap that code and be sure that the event will not\r\n * be fired during that wrap.\r\n *\r\n * ```\r\n * const emitter: Emitter;\r\n * const delayer = new EventDelayer();\r\n * const delayedEvent = delayer.wrapEvent(emitter.event);\r\n *\r\n * delayedEvent(console.log);\r\n *\r\n * delayer.bufferEvents(() => {\r\n * emitter.fire(); // event will not be fired yet\r\n * });\r\n *\r\n * // event will only be fired at this point\r\n * ```\r\n */\r\nvar EventBufferer = /** @class */ (function () {\r\n function EventBufferer() {\r\n this.buffers = [];\r\n }\r\n EventBufferer.prototype.wrapEvent = function (event) {\r\n var _this = this;\r\n return function (listener, thisArgs, disposables) {\r\n return event(function (i) {\r\n var buffer = _this.buffers[_this.buffers.length - 1];\r\n if (buffer) {\r\n buffer.push(function () { return listener.call(thisArgs, i); });\r\n }\r\n else {\r\n listener.call(thisArgs, i);\r\n }\r\n }, void 0, disposables);\r\n };\r\n };\r\n EventBufferer.prototype.bufferEvents = function (fn) {\r\n var buffer = [];\r\n this.buffers.push(buffer);\r\n var r = fn();\r\n this.buffers.pop();\r\n buffer.forEach(function (flush) { return flush(); });\r\n return r;\r\n };\r\n return EventBufferer;\r\n}());\r\n\r\nfunction mapEvent(event, map) {\r\n return function (listener, thisArgs, disposables) {\r\n if (thisArgs === void 0) { thisArgs = null; }\r\n return event(function (i) { return listener.call(thisArgs, map(i)); }, null, disposables);\r\n };\r\n}\r\nfunction filterEvent(event, filter) {\r\n return function (listener, thisArgs, disposables) {\r\n if (thisArgs === void 0) { thisArgs = null; }\r\n return event(function (e) { return filter(e) && listener.call(thisArgs, e); }, null, disposables);\r\n };\r\n}\r\nvar ChainableEvent = /** @class */ (function () {\r\n function ChainableEvent(_event) {\r\n this._event = _event;\r\n }\r\n Object.defineProperty(ChainableEvent.prototype, "event", {\r\n get: function () { return this._event; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ChainableEvent.prototype.map = function (fn) {\r\n return new ChainableEvent(mapEvent(this._event, fn));\r\n };\r\n ChainableEvent.prototype.filter = function (fn) {\r\n return new ChainableEvent(filterEvent(this._event, fn));\r\n };\r\n ChainableEvent.prototype.on = function (listener, thisArgs, disposables) {\r\n return this._event(listener, thisArgs, disposables);\r\n };\r\n return ChainableEvent;\r\n}());\r\nfunction chain(event) {\r\n return new ChainableEvent(event);\r\n}\r\nvar Relay = /** @class */ (function () {\r\n function Relay() {\r\n var _this = this;\r\n this.listening = false;\r\n this.inputEvent = Event.None;\r\n this.inputEventListener = _lifecycle_js__WEBPACK_IMPORTED_MODULE_2__["Disposable"].None;\r\n this.emitter = new Emitter({\r\n onFirstListenerDidAdd: function () {\r\n _this.listening = true;\r\n _this.inputEventListener = _this.inputEvent(_this.emitter.fire, _this.emitter);\r\n },\r\n onLastListenerRemove: function () {\r\n _this.listening = false;\r\n _this.inputEventListener.dispose();\r\n }\r\n });\r\n this.event = this.emitter.event;\r\n }\r\n Object.defineProperty(Relay.prototype, "input", {\r\n set: function (event) {\r\n this.inputEvent = event;\r\n if (this.listening) {\r\n this.inputEventListener.dispose();\r\n this.inputEventListener = event(this.emitter.fire, this.emitter);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Relay.prototype.dispose = function () {\r\n this.inputEventListener.dispose();\r\n this.emitter.dispose();\r\n };\r\n return Relay;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/event.js?')},"../node_modules/monaco-editor/esm/vs/base/common/functional.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nfunction once(fn) {\r\n var _this = this;\r\n var didCall = false;\r\n var result;\r\n return function () {\r\n if (didCall) {\r\n return result;\r\n }\r\n didCall = true;\r\n result = fn.apply(_this, arguments);\r\n return result;\r\n };\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/functional.js?')},"../node_modules/monaco-editor/esm/vs/base/common/iterator.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FIN", function() { return FIN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Iterator", function() { return Iterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArrayIterator", function() { return ArrayIterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArrayNavigator", function() { return ArrayNavigator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MappedIterator", function() { return MappedIterator; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar FIN = { done: true, value: undefined };\r\nvar Iterator;\r\n(function (Iterator) {\r\n var _empty = {\r\n next: function () {\r\n return FIN;\r\n }\r\n };\r\n function empty() {\r\n return _empty;\r\n }\r\n Iterator.empty = empty;\r\n function fromArray(array, index, length) {\r\n if (index === void 0) { index = 0; }\r\n if (length === void 0) { length = array.length; }\r\n return {\r\n next: function () {\r\n if (index >= length) {\r\n return FIN;\r\n }\r\n return { done: false, value: array[index++] };\r\n }\r\n };\r\n }\r\n Iterator.fromArray = fromArray;\r\n function from(elements) {\r\n if (!elements) {\r\n return Iterator.empty();\r\n }\r\n else if (Array.isArray(elements)) {\r\n return Iterator.fromArray(elements);\r\n }\r\n else {\r\n return elements;\r\n }\r\n }\r\n Iterator.from = from;\r\n function map(iterator, fn) {\r\n return {\r\n next: function () {\r\n var element = iterator.next();\r\n if (element.done) {\r\n return FIN;\r\n }\r\n else {\r\n return { done: false, value: fn(element.value) };\r\n }\r\n }\r\n };\r\n }\r\n Iterator.map = map;\r\n function filter(iterator, fn) {\r\n return {\r\n next: function () {\r\n while (true) {\r\n var element = iterator.next();\r\n if (element.done) {\r\n return FIN;\r\n }\r\n if (fn(element.value)) {\r\n return { done: false, value: element.value };\r\n }\r\n }\r\n }\r\n };\r\n }\r\n Iterator.filter = filter;\r\n function forEach(iterator, fn) {\r\n for (var next = iterator.next(); !next.done; next = iterator.next()) {\r\n fn(next.value);\r\n }\r\n }\r\n Iterator.forEach = forEach;\r\n function collect(iterator) {\r\n var result = [];\r\n forEach(iterator, function (value) { return result.push(value); });\r\n return result;\r\n }\r\n Iterator.collect = collect;\r\n})(Iterator || (Iterator = {}));\r\nvar ArrayIterator = /** @class */ (function () {\r\n function ArrayIterator(items, start, end, index) {\r\n if (start === void 0) { start = 0; }\r\n if (end === void 0) { end = items.length; }\r\n if (index === void 0) { index = start - 1; }\r\n this.items = items;\r\n this.start = start;\r\n this.end = end;\r\n this.index = index;\r\n }\r\n ArrayIterator.prototype.next = function () {\r\n this.index = Math.min(this.index + 1, this.end);\r\n return this.current();\r\n };\r\n ArrayIterator.prototype.current = function () {\r\n if (this.index === this.start - 1 || this.index === this.end) {\r\n return null;\r\n }\r\n return this.items[this.index];\r\n };\r\n return ArrayIterator;\r\n}());\r\n\r\nvar ArrayNavigator = /** @class */ (function (_super) {\r\n __extends(ArrayNavigator, _super);\r\n function ArrayNavigator(items, start, end, index) {\r\n if (start === void 0) { start = 0; }\r\n if (end === void 0) { end = items.length; }\r\n if (index === void 0) { index = start - 1; }\r\n return _super.call(this, items, start, end, index) || this;\r\n }\r\n ArrayNavigator.prototype.current = function () {\r\n return _super.prototype.current.call(this);\r\n };\r\n ArrayNavigator.prototype.previous = function () {\r\n this.index = Math.max(this.index - 1, this.start - 1);\r\n return this.current();\r\n };\r\n ArrayNavigator.prototype.first = function () {\r\n this.index = this.start;\r\n return this.current();\r\n };\r\n ArrayNavigator.prototype.last = function () {\r\n this.index = this.end - 1;\r\n return this.current();\r\n };\r\n ArrayNavigator.prototype.parent = function () {\r\n return null;\r\n };\r\n return ArrayNavigator;\r\n}(ArrayIterator));\r\n\r\nvar MappedIterator = /** @class */ (function () {\r\n function MappedIterator(iterator, fn) {\r\n this.iterator = iterator;\r\n this.fn = fn;\r\n // noop\r\n }\r\n MappedIterator.prototype.next = function () { return this.fn(this.iterator.next()); };\r\n return MappedIterator;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/iterator.js?')},"../node_modules/monaco-editor/esm/vs/base/common/keyCodes.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KeyCodeUtils\", function() { return KeyCodeUtils; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KeyChord\", function() { return KeyChord; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createKeybinding\", function() { return createKeybinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createSimpleKeybinding\", function() { return createSimpleKeybinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleKeybinding\", function() { return SimpleKeybinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChordKeybinding\", function() { return ChordKeybinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResolvedKeybindingPart\", function() { return ResolvedKeybindingPart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResolvedKeybinding\", function() { return ResolvedKeybinding; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar KeyCodeStrMap = /** @class */ (function () {\r\n function KeyCodeStrMap() {\r\n this._keyCodeToStr = [];\r\n this._strToKeyCode = Object.create(null);\r\n }\r\n KeyCodeStrMap.prototype.define = function (keyCode, str) {\r\n this._keyCodeToStr[keyCode] = str;\r\n this._strToKeyCode[str.toLowerCase()] = keyCode;\r\n };\r\n KeyCodeStrMap.prototype.keyCodeToStr = function (keyCode) {\r\n return this._keyCodeToStr[keyCode];\r\n };\r\n KeyCodeStrMap.prototype.strToKeyCode = function (str) {\r\n return this._strToKeyCode[str.toLowerCase()] || 0 /* Unknown */;\r\n };\r\n return KeyCodeStrMap;\r\n}());\r\nvar uiMap = new KeyCodeStrMap();\r\nvar userSettingsUSMap = new KeyCodeStrMap();\r\nvar userSettingsGeneralMap = new KeyCodeStrMap();\r\n(function () {\r\n function define(keyCode, uiLabel, usUserSettingsLabel, generalUserSettingsLabel) {\r\n if (usUserSettingsLabel === void 0) { usUserSettingsLabel = uiLabel; }\r\n if (generalUserSettingsLabel === void 0) { generalUserSettingsLabel = usUserSettingsLabel; }\r\n uiMap.define(keyCode, uiLabel);\r\n userSettingsUSMap.define(keyCode, usUserSettingsLabel);\r\n userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel);\r\n }\r\n define(0 /* Unknown */, 'unknown');\r\n define(1 /* Backspace */, 'Backspace');\r\n define(2 /* Tab */, 'Tab');\r\n define(3 /* Enter */, 'Enter');\r\n define(4 /* Shift */, 'Shift');\r\n define(5 /* Ctrl */, 'Ctrl');\r\n define(6 /* Alt */, 'Alt');\r\n define(7 /* PauseBreak */, 'PauseBreak');\r\n define(8 /* CapsLock */, 'CapsLock');\r\n define(9 /* Escape */, 'Escape');\r\n define(10 /* Space */, 'Space');\r\n define(11 /* PageUp */, 'PageUp');\r\n define(12 /* PageDown */, 'PageDown');\r\n define(13 /* End */, 'End');\r\n define(14 /* Home */, 'Home');\r\n define(15 /* LeftArrow */, 'LeftArrow', 'Left');\r\n define(16 /* UpArrow */, 'UpArrow', 'Up');\r\n define(17 /* RightArrow */, 'RightArrow', 'Right');\r\n define(18 /* DownArrow */, 'DownArrow', 'Down');\r\n define(19 /* Insert */, 'Insert');\r\n define(20 /* Delete */, 'Delete');\r\n define(21 /* KEY_0 */, '0');\r\n define(22 /* KEY_1 */, '1');\r\n define(23 /* KEY_2 */, '2');\r\n define(24 /* KEY_3 */, '3');\r\n define(25 /* KEY_4 */, '4');\r\n define(26 /* KEY_5 */, '5');\r\n define(27 /* KEY_6 */, '6');\r\n define(28 /* KEY_7 */, '7');\r\n define(29 /* KEY_8 */, '8');\r\n define(30 /* KEY_9 */, '9');\r\n define(31 /* KEY_A */, 'A');\r\n define(32 /* KEY_B */, 'B');\r\n define(33 /* KEY_C */, 'C');\r\n define(34 /* KEY_D */, 'D');\r\n define(35 /* KEY_E */, 'E');\r\n define(36 /* KEY_F */, 'F');\r\n define(37 /* KEY_G */, 'G');\r\n define(38 /* KEY_H */, 'H');\r\n define(39 /* KEY_I */, 'I');\r\n define(40 /* KEY_J */, 'J');\r\n define(41 /* KEY_K */, 'K');\r\n define(42 /* KEY_L */, 'L');\r\n define(43 /* KEY_M */, 'M');\r\n define(44 /* KEY_N */, 'N');\r\n define(45 /* KEY_O */, 'O');\r\n define(46 /* KEY_P */, 'P');\r\n define(47 /* KEY_Q */, 'Q');\r\n define(48 /* KEY_R */, 'R');\r\n define(49 /* KEY_S */, 'S');\r\n define(50 /* KEY_T */, 'T');\r\n define(51 /* KEY_U */, 'U');\r\n define(52 /* KEY_V */, 'V');\r\n define(53 /* KEY_W */, 'W');\r\n define(54 /* KEY_X */, 'X');\r\n define(55 /* KEY_Y */, 'Y');\r\n define(56 /* KEY_Z */, 'Z');\r\n define(57 /* Meta */, 'Meta');\r\n define(58 /* ContextMenu */, 'ContextMenu');\r\n define(59 /* F1 */, 'F1');\r\n define(60 /* F2 */, 'F2');\r\n define(61 /* F3 */, 'F3');\r\n define(62 /* F4 */, 'F4');\r\n define(63 /* F5 */, 'F5');\r\n define(64 /* F6 */, 'F6');\r\n define(65 /* F7 */, 'F7');\r\n define(66 /* F8 */, 'F8');\r\n define(67 /* F9 */, 'F9');\r\n define(68 /* F10 */, 'F10');\r\n define(69 /* F11 */, 'F11');\r\n define(70 /* F12 */, 'F12');\r\n define(71 /* F13 */, 'F13');\r\n define(72 /* F14 */, 'F14');\r\n define(73 /* F15 */, 'F15');\r\n define(74 /* F16 */, 'F16');\r\n define(75 /* F17 */, 'F17');\r\n define(76 /* F18 */, 'F18');\r\n define(77 /* F19 */, 'F19');\r\n define(78 /* NumLock */, 'NumLock');\r\n define(79 /* ScrollLock */, 'ScrollLock');\r\n define(80 /* US_SEMICOLON */, ';', ';', 'OEM_1');\r\n define(81 /* US_EQUAL */, '=', '=', 'OEM_PLUS');\r\n define(82 /* US_COMMA */, ',', ',', 'OEM_COMMA');\r\n define(83 /* US_MINUS */, '-', '-', 'OEM_MINUS');\r\n define(84 /* US_DOT */, '.', '.', 'OEM_PERIOD');\r\n define(85 /* US_SLASH */, '/', '/', 'OEM_2');\r\n define(86 /* US_BACKTICK */, '`', '`', 'OEM_3');\r\n define(110 /* ABNT_C1 */, 'ABNT_C1');\r\n define(111 /* ABNT_C2 */, 'ABNT_C2');\r\n define(87 /* US_OPEN_SQUARE_BRACKET */, '[', '[', 'OEM_4');\r\n define(88 /* US_BACKSLASH */, '\\\\', '\\\\', 'OEM_5');\r\n define(89 /* US_CLOSE_SQUARE_BRACKET */, ']', ']', 'OEM_6');\r\n define(90 /* US_QUOTE */, '\\'', '\\'', 'OEM_7');\r\n define(91 /* OEM_8 */, 'OEM_8');\r\n define(92 /* OEM_102 */, 'OEM_102');\r\n define(93 /* NUMPAD_0 */, 'NumPad0');\r\n define(94 /* NUMPAD_1 */, 'NumPad1');\r\n define(95 /* NUMPAD_2 */, 'NumPad2');\r\n define(96 /* NUMPAD_3 */, 'NumPad3');\r\n define(97 /* NUMPAD_4 */, 'NumPad4');\r\n define(98 /* NUMPAD_5 */, 'NumPad5');\r\n define(99 /* NUMPAD_6 */, 'NumPad6');\r\n define(100 /* NUMPAD_7 */, 'NumPad7');\r\n define(101 /* NUMPAD_8 */, 'NumPad8');\r\n define(102 /* NUMPAD_9 */, 'NumPad9');\r\n define(103 /* NUMPAD_MULTIPLY */, 'NumPad_Multiply');\r\n define(104 /* NUMPAD_ADD */, 'NumPad_Add');\r\n define(105 /* NUMPAD_SEPARATOR */, 'NumPad_Separator');\r\n define(106 /* NUMPAD_SUBTRACT */, 'NumPad_Subtract');\r\n define(107 /* NUMPAD_DECIMAL */, 'NumPad_Decimal');\r\n define(108 /* NUMPAD_DIVIDE */, 'NumPad_Divide');\r\n})();\r\nvar KeyCodeUtils;\r\n(function (KeyCodeUtils) {\r\n function toString(keyCode) {\r\n return uiMap.keyCodeToStr(keyCode);\r\n }\r\n KeyCodeUtils.toString = toString;\r\n function fromString(key) {\r\n return uiMap.strToKeyCode(key);\r\n }\r\n KeyCodeUtils.fromString = fromString;\r\n function toUserSettingsUS(keyCode) {\r\n return userSettingsUSMap.keyCodeToStr(keyCode);\r\n }\r\n KeyCodeUtils.toUserSettingsUS = toUserSettingsUS;\r\n function toUserSettingsGeneral(keyCode) {\r\n return userSettingsGeneralMap.keyCodeToStr(keyCode);\r\n }\r\n KeyCodeUtils.toUserSettingsGeneral = toUserSettingsGeneral;\r\n function fromUserSettings(key) {\r\n return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key);\r\n }\r\n KeyCodeUtils.fromUserSettings = fromUserSettings;\r\n})(KeyCodeUtils || (KeyCodeUtils = {}));\r\nfunction KeyChord(firstPart, secondPart) {\r\n var chordPart = ((secondPart & 0x0000ffff) << 16) >>> 0;\r\n return (firstPart | chordPart) >>> 0;\r\n}\r\nfunction createKeybinding(keybinding, OS) {\r\n if (keybinding === 0) {\r\n return null;\r\n }\r\n var firstPart = (keybinding & 0x0000ffff) >>> 0;\r\n var chordPart = (keybinding & 0xffff0000) >>> 16;\r\n if (chordPart !== 0) {\r\n return new ChordKeybinding(createSimpleKeybinding(firstPart, OS), createSimpleKeybinding(chordPart, OS));\r\n }\r\n return createSimpleKeybinding(firstPart, OS);\r\n}\r\nfunction createSimpleKeybinding(keybinding, OS) {\r\n var ctrlCmd = (keybinding & 2048 /* CtrlCmd */ ? true : false);\r\n var winCtrl = (keybinding & 256 /* WinCtrl */ ? true : false);\r\n var ctrlKey = (OS === 2 /* Macintosh */ ? winCtrl : ctrlCmd);\r\n var shiftKey = (keybinding & 1024 /* Shift */ ? true : false);\r\n var altKey = (keybinding & 512 /* Alt */ ? true : false);\r\n var metaKey = (OS === 2 /* Macintosh */ ? ctrlCmd : winCtrl);\r\n var keyCode = (keybinding & 255 /* KeyCode */);\r\n return new SimpleKeybinding(ctrlKey, shiftKey, altKey, metaKey, keyCode);\r\n}\r\nvar SimpleKeybinding = /** @class */ (function () {\r\n function SimpleKeybinding(ctrlKey, shiftKey, altKey, metaKey, keyCode) {\r\n this.type = 1 /* Simple */;\r\n this.ctrlKey = ctrlKey;\r\n this.shiftKey = shiftKey;\r\n this.altKey = altKey;\r\n this.metaKey = metaKey;\r\n this.keyCode = keyCode;\r\n }\r\n SimpleKeybinding.prototype.equals = function (other) {\r\n if (other.type !== 1 /* Simple */) {\r\n return false;\r\n }\r\n return (this.ctrlKey === other.ctrlKey\r\n && this.shiftKey === other.shiftKey\r\n && this.altKey === other.altKey\r\n && this.metaKey === other.metaKey\r\n && this.keyCode === other.keyCode);\r\n };\r\n SimpleKeybinding.prototype.isModifierKey = function () {\r\n return (this.keyCode === 0 /* Unknown */\r\n || this.keyCode === 5 /* Ctrl */\r\n || this.keyCode === 57 /* Meta */\r\n || this.keyCode === 6 /* Alt */\r\n || this.keyCode === 4 /* Shift */);\r\n };\r\n /**\r\n * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?\r\n */\r\n SimpleKeybinding.prototype.isDuplicateModifierCase = function () {\r\n return ((this.ctrlKey && this.keyCode === 5 /* Ctrl */)\r\n || (this.shiftKey && this.keyCode === 4 /* Shift */)\r\n || (this.altKey && this.keyCode === 6 /* Alt */)\r\n || (this.metaKey && this.keyCode === 57 /* Meta */));\r\n };\r\n return SimpleKeybinding;\r\n}());\r\n\r\nvar ChordKeybinding = /** @class */ (function () {\r\n function ChordKeybinding(firstPart, chordPart) {\r\n this.type = 2 /* Chord */;\r\n this.firstPart = firstPart;\r\n this.chordPart = chordPart;\r\n }\r\n return ChordKeybinding;\r\n}());\r\n\r\nvar ResolvedKeybindingPart = /** @class */ (function () {\r\n function ResolvedKeybindingPart(ctrlKey, shiftKey, altKey, metaKey, kbLabel, kbAriaLabel) {\r\n this.ctrlKey = ctrlKey;\r\n this.shiftKey = shiftKey;\r\n this.altKey = altKey;\r\n this.metaKey = metaKey;\r\n this.keyLabel = kbLabel;\r\n this.keyAriaLabel = kbAriaLabel;\r\n }\r\n return ResolvedKeybindingPart;\r\n}());\r\n\r\n/**\r\n * A resolved keybinding. Can be a simple keybinding or a chord keybinding.\r\n */\r\nvar ResolvedKeybinding = /** @class */ (function () {\r\n function ResolvedKeybinding() {\r\n }\r\n return ResolvedKeybinding;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/keyCodes.js?")},"../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDisposable", function() { return isDisposable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispose", function() { return dispose; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combinedDisposable", function() { return combinedDisposable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toDisposable", function() { return toDisposable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Disposable", function() { return Disposable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImmortalReference", function() { return ImmortalReference; });\nfunction isDisposable(thing) {\r\n return typeof thing.dispose === \'function\'\r\n && thing.dispose.length === 0;\r\n}\r\nfunction dispose(first) {\r\n var rest = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n rest[_i - 1] = arguments[_i];\r\n }\r\n if (Array.isArray(first)) {\r\n first.forEach(function (d) { return d && d.dispose(); });\r\n return [];\r\n }\r\n else if (rest.length === 0) {\r\n if (first) {\r\n first.dispose();\r\n return first;\r\n }\r\n return undefined;\r\n }\r\n else {\r\n dispose(first);\r\n dispose(rest);\r\n return [];\r\n }\r\n}\r\nfunction combinedDisposable(disposables) {\r\n return { dispose: function () { return dispose(disposables); } };\r\n}\r\nfunction toDisposable(fn) {\r\n return { dispose: function () { fn(); } };\r\n}\r\nvar Disposable = /** @class */ (function () {\r\n function Disposable() {\r\n this._toDispose = [];\r\n }\r\n Disposable.prototype.dispose = function () {\r\n this._toDispose = dispose(this._toDispose);\r\n };\r\n Disposable.prototype._register = function (t) {\r\n this._toDispose.push(t);\r\n return t;\r\n };\r\n Disposable.None = Object.freeze({ dispose: function () { } });\r\n return Disposable;\r\n}());\r\n\r\nvar ImmortalReference = /** @class */ (function () {\r\n function ImmortalReference(object) {\r\n this.object = object;\r\n }\r\n ImmortalReference.prototype.dispose = function () { };\r\n return ImmortalReference;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js?')},"../node_modules/monaco-editor/esm/vs/base/common/linkedList.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinkedList", function() { return LinkedList; });\n/* harmony import */ var _iterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./iterator.js */ "../node_modules/monaco-editor/esm/vs/base/common/iterator.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nvar Node = /** @class */ (function () {\r\n function Node(element) {\r\n this.element = element;\r\n }\r\n return Node;\r\n}());\r\nvar LinkedList = /** @class */ (function () {\r\n function LinkedList() {\r\n }\r\n LinkedList.prototype.isEmpty = function () {\r\n return !this._first;\r\n };\r\n LinkedList.prototype.unshift = function (element) {\r\n return this.insert(element, false);\r\n };\r\n LinkedList.prototype.push = function (element) {\r\n return this.insert(element, true);\r\n };\r\n LinkedList.prototype.insert = function (element, atTheEnd) {\r\n var _this = this;\r\n var newNode = new Node(element);\r\n if (!this._first) {\r\n this._first = newNode;\r\n this._last = newNode;\r\n }\r\n else if (atTheEnd) {\r\n // push\r\n var oldLast = this._last;\r\n this._last = newNode;\r\n newNode.prev = oldLast;\r\n oldLast.next = newNode;\r\n }\r\n else {\r\n // unshift\r\n var oldFirst = this._first;\r\n this._first = newNode;\r\n newNode.next = oldFirst;\r\n oldFirst.prev = newNode;\r\n }\r\n return function () {\r\n var candidate = _this._first;\r\n while (candidate instanceof Node) {\r\n if (candidate !== newNode) {\r\n candidate = candidate.next;\r\n continue;\r\n }\r\n if (candidate.prev && candidate.next) {\r\n // middle\r\n var anchor = candidate.prev;\r\n anchor.next = candidate.next;\r\n candidate.next.prev = anchor;\r\n }\r\n else if (!candidate.prev && !candidate.next) {\r\n // only node\r\n _this._first = undefined;\r\n _this._last = undefined;\r\n }\r\n else if (!candidate.next) {\r\n // last\r\n _this._last = _this._last.prev;\r\n _this._last.next = undefined;\r\n }\r\n else if (!candidate.prev) {\r\n // first\r\n _this._first = _this._first.next;\r\n _this._first.prev = undefined;\r\n }\r\n // done\r\n break;\r\n }\r\n };\r\n };\r\n LinkedList.prototype.iterator = function () {\r\n var element;\r\n var node = this._first;\r\n return {\r\n next: function () {\r\n if (!node) {\r\n return _iterator_js__WEBPACK_IMPORTED_MODULE_0__["FIN"];\r\n }\r\n if (!element) {\r\n element = { done: false, value: node.element };\r\n }\r\n else {\r\n element.value = node.element;\r\n }\r\n node = node.next;\r\n return element;\r\n }\r\n };\r\n };\r\n return LinkedList;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/linkedList.js?')},"../node_modules/monaco-editor/esm/vs/base/common/platform.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process, global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LANGUAGE_DEFAULT\", function() { return LANGUAGE_DEFAULT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isWindows\", function() { return isWindows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMacintosh\", function() { return isMacintosh; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLinux\", function() { return isLinux; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNative\", function() { return isNative; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isWeb\", function() { return isWeb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"globals\", function() { return globals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setImmediate\", function() { return setImmediate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OS\", function() { return OS; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar _isWindows = false;\r\nvar _isMacintosh = false;\r\nvar _isLinux = false;\r\nvar _isNative = false;\r\nvar _isWeb = false;\r\nvar _locale = undefined;\r\nvar _language = undefined;\r\nvar _translationsConfigFile = undefined;\r\nvar LANGUAGE_DEFAULT = 'en';\r\nvar isElectronRenderer = (typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.electron !== 'undefined' && process.type === 'renderer');\r\n// OS detection\r\nif (typeof navigator === 'object' && !isElectronRenderer) {\r\n var userAgent = navigator.userAgent;\r\n _isWindows = userAgent.indexOf('Windows') >= 0;\r\n _isMacintosh = userAgent.indexOf('Macintosh') >= 0;\r\n _isLinux = userAgent.indexOf('Linux') >= 0;\r\n _isWeb = true;\r\n _locale = navigator.language;\r\n _language = _locale;\r\n}\r\nelse if (typeof process === 'object') {\r\n _isWindows = (process.platform === 'win32');\r\n _isMacintosh = (process.platform === 'darwin');\r\n _isLinux = (process.platform === 'linux');\r\n _locale = LANGUAGE_DEFAULT;\r\n _language = LANGUAGE_DEFAULT;\r\n var rawNlsConfig = process.env['VSCODE_NLS_CONFIG'];\r\n if (rawNlsConfig) {\r\n try {\r\n var nlsConfig = JSON.parse(rawNlsConfig);\r\n var resolved = nlsConfig.availableLanguages['*'];\r\n _locale = nlsConfig.locale;\r\n // VSCode's default language is 'en'\r\n _language = resolved ? resolved : LANGUAGE_DEFAULT;\r\n _translationsConfigFile = nlsConfig._translationsConfigFile;\r\n }\r\n catch (e) {\r\n }\r\n }\r\n _isNative = true;\r\n}\r\nvar _platform = 0 /* Web */;\r\nif (_isNative) {\r\n if (_isMacintosh) {\r\n _platform = 1 /* Mac */;\r\n }\r\n else if (_isWindows) {\r\n _platform = 3 /* Windows */;\r\n }\r\n else if (_isLinux) {\r\n _platform = 2 /* Linux */;\r\n }\r\n}\r\nvar isWindows = _isWindows;\r\nvar isMacintosh = _isMacintosh;\r\nvar isLinux = _isLinux;\r\nvar isNative = _isNative;\r\nvar isWeb = _isWeb;\r\nvar _globals = (typeof self === 'object' ? self : typeof global === 'object' ? global : {});\r\nvar globals = _globals;\r\nvar _setImmediate = null;\r\nfunction setImmediate(callback) {\r\n if (_setImmediate === null) {\r\n if (globals.setImmediate) {\r\n _setImmediate = globals.setImmediate.bind(globals);\r\n }\r\n else if (typeof process !== 'undefined' && typeof process.nextTick === 'function') {\r\n _setImmediate = process.nextTick.bind(process);\r\n }\r\n else {\r\n _setImmediate = globals.setTimeout.bind(globals);\r\n }\r\n }\r\n return _setImmediate(callback);\r\n}\r\nvar OS = (_isMacintosh ? 2 /* Macintosh */ : (_isWindows ? 1 /* Windows */ : 3 /* Linux */));\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../process/browser.js */ \"../node_modules/process/browser.js\"), __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ \"../node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/platform.js?")},"../node_modules/monaco-editor/esm/vs/base/common/strings.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFalsyOrWhitespace", function() { return isFalsyOrWhitespace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pad", function() { return pad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escape", function() { return escape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeRegExpCharacters", function() { return escapeRegExpCharacters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trim", function() { return trim; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ltrim", function() { return ltrim; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rtrim", function() { return rtrim; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertSimple2RegExpPattern", function() { return convertSimple2RegExpPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startsWith", function() { return startsWith; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endsWith", function() { return endsWith; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRegExp", function() { return createRegExp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regExpLeadsToEndlessLoop", function() { return regExpLeadsToEndlessLoop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstNonWhitespaceIndex", function() { return firstNonWhitespaceIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLeadingWhitespace", function() { return getLeadingWhitespace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lastNonWhitespaceIndex", function() { return lastNonWhitespaceIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compare", function() { return compare; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLowerAsciiLetter", function() { return isLowerAsciiLetter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUpperAsciiLetter", function() { return isUpperAsciiLetter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equalsIgnoreCase", function() { return equalsIgnoreCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startsWithIgnoreCase", function() { return startsWithIgnoreCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commonPrefixLength", function() { return commonPrefixLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commonSuffixLength", function() { return commonSuffixLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHighSurrogate", function() { return isHighSurrogate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLowSurrogate", function() { return isLowSurrogate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsRTL", function() { return containsRTL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsEmoji", function() { return containsEmoji; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBasicASCII", function() { return isBasicASCII; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsFullWidthCharacter", function() { return containsFullWidthCharacter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFullWidthCharacter", function() { return isFullWidthCharacter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UTF8_BOM_CHARACTER", function() { return UTF8_BOM_CHARACTER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startsWithUTF8BOM", function() { return startsWithUTF8BOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "safeBtoa", function() { return safeBtoa; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/**\r\n * The empty string.\r\n */\r\nvar empty = \'\';\r\nfunction isFalsyOrWhitespace(str) {\r\n if (!str || typeof str !== \'string\') {\r\n return true;\r\n }\r\n return str.trim().length === 0;\r\n}\r\n/**\r\n * @returns the provided number with the given number of preceding zeros.\r\n */\r\nfunction pad(n, l, char) {\r\n if (char === void 0) { char = \'0\'; }\r\n var str = \'\' + n;\r\n var r = [str];\r\n for (var i = str.length; i < l; i++) {\r\n r.push(char);\r\n }\r\n return r.reverse().join(\'\');\r\n}\r\nvar _formatRegexp = /{(\\d+)}/g;\r\n/**\r\n * Helper to produce a string with a variable number of arguments. Insert variable segments\r\n * into the string using the {n} notation where N is the index of the argument following the string.\r\n * @param value string to which formatting is applied\r\n * @param args replacements for {n}-entries\r\n */\r\nfunction format(value) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (args.length === 0) {\r\n return value;\r\n }\r\n return value.replace(_formatRegexp, function (match, group) {\r\n var idx = parseInt(group, 10);\r\n return isNaN(idx) || idx < 0 || idx >= args.length ?\r\n match :\r\n args[idx];\r\n });\r\n}\r\n/**\r\n * Converts HTML characters inside the string to use entities instead. Makes the string safe from\r\n * being used e.g. in HTMLElement.innerHTML.\r\n */\r\nfunction escape(html) {\r\n return html.replace(/[<|>|&]/g, function (match) {\r\n switch (match) {\r\n case \'<\': return \'<\';\r\n case \'>\': return \'>\';\r\n case \'&\': return \'&\';\r\n default: return match;\r\n }\r\n });\r\n}\r\n/**\r\n * Escapes regular expression characters in a given string\r\n */\r\nfunction escapeRegExpCharacters(value) {\r\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)\\#]/g, \'\\\\$&\');\r\n}\r\n/**\r\n * Removes all occurrences of needle from the beginning and end of haystack.\r\n * @param haystack string to trim\r\n * @param needle the thing to trim (default is a blank)\r\n */\r\nfunction trim(haystack, needle) {\r\n if (needle === void 0) { needle = \' \'; }\r\n var trimmed = ltrim(haystack, needle);\r\n return rtrim(trimmed, needle);\r\n}\r\n/**\r\n * Removes all occurrences of needle from the beginning of haystack.\r\n * @param haystack string to trim\r\n * @param needle the thing to trim\r\n */\r\nfunction ltrim(haystack, needle) {\r\n if (!haystack || !needle) {\r\n return haystack;\r\n }\r\n var needleLen = needle.length;\r\n if (needleLen === 0 || haystack.length === 0) {\r\n return haystack;\r\n }\r\n var offset = 0;\r\n while (haystack.indexOf(needle, offset) === offset) {\r\n offset = offset + needleLen;\r\n }\r\n return haystack.substring(offset);\r\n}\r\n/**\r\n * Removes all occurrences of needle from the end of haystack.\r\n * @param haystack string to trim\r\n * @param needle the thing to trim\r\n */\r\nfunction rtrim(haystack, needle) {\r\n if (!haystack || !needle) {\r\n return haystack;\r\n }\r\n var needleLen = needle.length, haystackLen = haystack.length;\r\n if (needleLen === 0 || haystackLen === 0) {\r\n return haystack;\r\n }\r\n var offset = haystackLen, idx = -1;\r\n while (true) {\r\n idx = haystack.lastIndexOf(needle, offset - 1);\r\n if (idx === -1 || idx + needleLen !== offset) {\r\n break;\r\n }\r\n if (idx === 0) {\r\n return \'\';\r\n }\r\n offset = idx;\r\n }\r\n return haystack.substring(0, offset);\r\n}\r\nfunction convertSimple2RegExpPattern(pattern) {\r\n return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \'\\\\$&\').replace(/[\\*]/g, \'.*\');\r\n}\r\n/**\r\n * Determines if haystack starts with needle.\r\n */\r\nfunction startsWith(haystack, needle) {\r\n if (haystack.length < needle.length) {\r\n return false;\r\n }\r\n if (haystack === needle) {\r\n return true;\r\n }\r\n for (var i = 0; i < needle.length; i++) {\r\n if (haystack[i] !== needle[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Determines if haystack ends with needle.\r\n */\r\nfunction endsWith(haystack, needle) {\r\n var diff = haystack.length - needle.length;\r\n if (diff > 0) {\r\n return haystack.indexOf(needle, diff) === diff;\r\n }\r\n else if (diff === 0) {\r\n return haystack === needle;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\nfunction createRegExp(searchString, isRegex, options) {\r\n if (options === void 0) { options = {}; }\r\n if (!searchString) {\r\n throw new Error(\'Cannot create regex from empty string\');\r\n }\r\n if (!isRegex) {\r\n searchString = escapeRegExpCharacters(searchString);\r\n }\r\n if (options.wholeWord) {\r\n if (!/\\B/.test(searchString.charAt(0))) {\r\n searchString = \'\\\\b\' + searchString;\r\n }\r\n if (!/\\B/.test(searchString.charAt(searchString.length - 1))) {\r\n searchString = searchString + \'\\\\b\';\r\n }\r\n }\r\n var modifiers = \'\';\r\n if (options.global) {\r\n modifiers += \'g\';\r\n }\r\n if (!options.matchCase) {\r\n modifiers += \'i\';\r\n }\r\n if (options.multiline) {\r\n modifiers += \'m\';\r\n }\r\n return new RegExp(searchString, modifiers);\r\n}\r\nfunction regExpLeadsToEndlessLoop(regexp) {\r\n // Exit early if it\'s one of these special cases which are meant to match\r\n // against an empty string\r\n if (regexp.source === \'^\' || regexp.source === \'^$\' || regexp.source === \'$\' || regexp.source === \'^\\\\s*$\') {\r\n return false;\r\n }\r\n // We check against an empty string. If the regular expression doesn\'t advance\r\n // (e.g. ends in an endless loop) it will match an empty string.\r\n var match = regexp.exec(\'\');\r\n return !!(match && regexp.lastIndex === 0);\r\n}\r\n/**\r\n * Returns first index of the string that is not whitespace.\r\n * If string is empty or contains only whitespaces, returns -1\r\n */\r\nfunction firstNonWhitespaceIndex(str) {\r\n for (var i = 0, len = str.length; i < len; i++) {\r\n var chCode = str.charCodeAt(i);\r\n if (chCode !== 32 /* Space */ && chCode !== 9 /* Tab */) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Returns the leading whitespace of the string.\r\n * If the string contains only whitespaces, returns entire string\r\n */\r\nfunction getLeadingWhitespace(str, start, end) {\r\n if (start === void 0) { start = 0; }\r\n if (end === void 0) { end = str.length; }\r\n for (var i = start; i < end; i++) {\r\n var chCode = str.charCodeAt(i);\r\n if (chCode !== 32 /* Space */ && chCode !== 9 /* Tab */) {\r\n return str.substring(start, i);\r\n }\r\n }\r\n return str.substring(start, end);\r\n}\r\n/**\r\n * Returns last index of the string that is not whitespace.\r\n * If string is empty or contains only whitespaces, returns -1\r\n */\r\nfunction lastNonWhitespaceIndex(str, startIndex) {\r\n if (startIndex === void 0) { startIndex = str.length - 1; }\r\n for (var i = startIndex; i >= 0; i--) {\r\n var chCode = str.charCodeAt(i);\r\n if (chCode !== 32 /* Space */ && chCode !== 9 /* Tab */) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nfunction compare(a, b) {\r\n if (a < b) {\r\n return -1;\r\n }\r\n else if (a > b) {\r\n return 1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n}\r\nfunction isLowerAsciiLetter(code) {\r\n return code >= 97 /* a */ && code <= 122 /* z */;\r\n}\r\nfunction isUpperAsciiLetter(code) {\r\n return code >= 65 /* A */ && code <= 90 /* Z */;\r\n}\r\nfunction isAsciiLetter(code) {\r\n return isLowerAsciiLetter(code) || isUpperAsciiLetter(code);\r\n}\r\nfunction equalsIgnoreCase(a, b) {\r\n var len1 = a ? a.length : 0;\r\n var len2 = b ? b.length : 0;\r\n if (len1 !== len2) {\r\n return false;\r\n }\r\n return doEqualsIgnoreCase(a, b);\r\n}\r\nfunction doEqualsIgnoreCase(a, b, stopAt) {\r\n if (stopAt === void 0) { stopAt = a.length; }\r\n if (typeof a !== \'string\' || typeof b !== \'string\') {\r\n return false;\r\n }\r\n for (var i = 0; i < stopAt; i++) {\r\n var codeA = a.charCodeAt(i);\r\n var codeB = b.charCodeAt(i);\r\n if (codeA === codeB) {\r\n continue;\r\n }\r\n // a-z A-Z\r\n if (isAsciiLetter(codeA) && isAsciiLetter(codeB)) {\r\n var diff = Math.abs(codeA - codeB);\r\n if (diff !== 0 && diff !== 32) {\r\n return false;\r\n }\r\n }\r\n // Any other charcode\r\n else {\r\n if (String.fromCharCode(codeA).toLowerCase() !== String.fromCharCode(codeB).toLowerCase()) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\nfunction startsWithIgnoreCase(str, candidate) {\r\n var candidateLength = candidate.length;\r\n if (candidate.length > str.length) {\r\n return false;\r\n }\r\n return doEqualsIgnoreCase(str, candidate, candidateLength);\r\n}\r\n/**\r\n * @returns the length of the common prefix of the two strings.\r\n */\r\nfunction commonPrefixLength(a, b) {\r\n var i, len = Math.min(a.length, b.length);\r\n for (i = 0; i < len; i++) {\r\n if (a.charCodeAt(i) !== b.charCodeAt(i)) {\r\n return i;\r\n }\r\n }\r\n return len;\r\n}\r\n/**\r\n * @returns the length of the common suffix of the two strings.\r\n */\r\nfunction commonSuffixLength(a, b) {\r\n var i, len = Math.min(a.length, b.length);\r\n var aLastIndex = a.length - 1;\r\n var bLastIndex = b.length - 1;\r\n for (i = 0; i < len; i++) {\r\n if (a.charCodeAt(aLastIndex - i) !== b.charCodeAt(bLastIndex - i)) {\r\n return i;\r\n }\r\n }\r\n return len;\r\n}\r\n// --- unicode\r\n// http://en.wikipedia.org/wiki/Surrogate_pair\r\n// Returns the code point starting at a specified index in a string\r\n// Code points U+0000 to U+D7FF and U+E000 to U+FFFF are represented on a single character\r\n// Code points U+10000 to U+10FFFF are represented on two consecutive characters\r\n//export function getUnicodePoint(str:string, index:number, len:number):number {\r\n//\tlet chrCode = str.charCodeAt(index);\r\n//\tif (0xD800 <= chrCode && chrCode <= 0xDBFF && index + 1 < len) {\r\n//\t\tlet nextChrCode = str.charCodeAt(index + 1);\r\n//\t\tif (0xDC00 <= nextChrCode && nextChrCode <= 0xDFFF) {\r\n//\t\t\treturn (chrCode - 0xD800) << 10 + (nextChrCode - 0xDC00) + 0x10000;\r\n//\t\t}\r\n//\t}\r\n//\treturn chrCode;\r\n//}\r\nfunction isHighSurrogate(charCode) {\r\n return (0xD800 <= charCode && charCode <= 0xDBFF);\r\n}\r\nfunction isLowSurrogate(charCode) {\r\n return (0xDC00 <= charCode && charCode <= 0xDFFF);\r\n}\r\n/**\r\n * Generated using https://github.com/alexandrudima/unicode-utils/blob/master/generate-rtl-test.js\r\n */\r\nvar CONTAINS_RTL = /(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\r\n/**\r\n * Returns true if `str` contains any Unicode character that is classified as "R" or "AL".\r\n */\r\nfunction containsRTL(str) {\r\n return CONTAINS_RTL.test(str);\r\n}\r\n/**\r\n * Generated using https://github.com/alexandrudima/unicode-utils/blob/master/generate-emoji-test.js\r\n */\r\nvar CONTAINS_EMOJI = /(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEF8]|\\uD83E[\\uDD00-\\uDDE6])/;\r\nfunction containsEmoji(str) {\r\n return CONTAINS_EMOJI.test(str);\r\n}\r\nvar IS_BASIC_ASCII = /^[\\t\\n\\r\\x20-\\x7E]*$/;\r\n/**\r\n * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \\n, \\r, \\t\r\n */\r\nfunction isBasicASCII(str) {\r\n return IS_BASIC_ASCII.test(str);\r\n}\r\nfunction containsFullWidthCharacter(str) {\r\n for (var i = 0, len = str.length; i < len; i++) {\r\n if (isFullWidthCharacter(str.charCodeAt(i))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction isFullWidthCharacter(charCode) {\r\n // Do a cheap trick to better support wrapping of wide characters, treat them as 2 columns\r\n // http://jrgraphix.net/research/unicode_blocks.php\r\n // 2E80 — 2EFF CJK Radicals Supplement\r\n // 2F00 — 2FDF Kangxi Radicals\r\n // 2FF0 — 2FFF Ideographic Description Characters\r\n // 3000 — 303F CJK Symbols and Punctuation\r\n // 3040 — 309F Hiragana\r\n // 30A0 — 30FF Katakana\r\n // 3100 — 312F Bopomofo\r\n // 3130 — 318F Hangul Compatibility Jamo\r\n // 3190 — 319F Kanbun\r\n // 31A0 — 31BF Bopomofo Extended\r\n // 31F0 — 31FF Katakana Phonetic Extensions\r\n // 3200 — 32FF Enclosed CJK Letters and Months\r\n // 3300 — 33FF CJK Compatibility\r\n // 3400 — 4DBF CJK Unified Ideographs Extension A\r\n // 4DC0 — 4DFF Yijing Hexagram Symbols\r\n // 4E00 — 9FFF CJK Unified Ideographs\r\n // A000 — A48F Yi Syllables\r\n // A490 — A4CF Yi Radicals\r\n // AC00 — D7AF Hangul Syllables\r\n // [IGNORE] D800 — DB7F High Surrogates\r\n // [IGNORE] DB80 — DBFF High Private Use Surrogates\r\n // [IGNORE] DC00 — DFFF Low Surrogates\r\n // [IGNORE] E000 — F8FF Private Use Area\r\n // F900 — FAFF CJK Compatibility Ideographs\r\n // [IGNORE] FB00 — FB4F Alphabetic Presentation Forms\r\n // [IGNORE] FB50 — FDFF Arabic Presentation Forms-A\r\n // [IGNORE] FE00 — FE0F Variation Selectors\r\n // [IGNORE] FE20 — FE2F Combining Half Marks\r\n // [IGNORE] FE30 — FE4F CJK Compatibility Forms\r\n // [IGNORE] FE50 — FE6F Small Form Variants\r\n // [IGNORE] FE70 — FEFF Arabic Presentation Forms-B\r\n // FF00 — FFEF Halfwidth and Fullwidth Forms\r\n // [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms]\r\n // of which FF01 - FF5E fullwidth ASCII of 21 to 7E\r\n // [IGNORE] and FF65 - FFDC halfwidth of Katakana and Hangul\r\n // [IGNORE] FFF0 — FFFF Specials\r\n charCode = +charCode; // @perf\r\n return ((charCode >= 0x2E80 && charCode <= 0xD7AF)\r\n || (charCode >= 0xF900 && charCode <= 0xFAFF)\r\n || (charCode >= 0xFF01 && charCode <= 0xFF5E));\r\n}\r\n// -- UTF-8 BOM\r\nvar UTF8_BOM_CHARACTER = String.fromCharCode(65279 /* UTF8_BOM */);\r\nfunction startsWithUTF8BOM(str) {\r\n return !!(str && str.length > 0 && str.charCodeAt(0) === 65279 /* UTF8_BOM */);\r\n}\r\nfunction safeBtoa(str) {\r\n return btoa(encodeURIComponent(str)); // we use encodeURIComponent because btoa fails for non Latin 1 values\r\n}\r\nfunction repeat(s, count) {\r\n var result = \'\';\r\n for (var i = 0; i < count; i++) {\r\n result += s;\r\n }\r\n return result;\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/strings.js?')},"../node_modules/monaco-editor/esm/vs/base/common/uri.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"URI\", function() { return URI; });\n/* harmony import */ var _platform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./platform.js */ \"../node_modules/monaco-editor/esm/vs/base/common/platform.js\");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar _a;\r\n\r\nvar _schemePattern = /^\\w[\\w\\d+.-]*$/;\r\nvar _singleSlashStart = /^\\//;\r\nvar _doubleSlashStart = /^\\/\\//;\r\nvar _throwOnMissingSchema = true;\r\nfunction _validateUri(ret) {\r\n // scheme, must be set\r\n if (!ret.scheme) {\r\n if (_throwOnMissingSchema) {\r\n throw new Error(\"[UriError]: Scheme is missing: {scheme: \\\"\\\", authority: \\\"\" + ret.authority + \"\\\", path: \\\"\" + ret.path + \"\\\", query: \\\"\" + ret.query + \"\\\", fragment: \\\"\" + ret.fragment + \"\\\"}\");\r\n }\r\n else {\r\n console.warn(\"[UriError]: Scheme is missing: {scheme: \\\"\\\", authority: \\\"\" + ret.authority + \"\\\", path: \\\"\" + ret.path + \"\\\", query: \\\"\" + ret.query + \"\\\", fragment: \\\"\" + ret.fragment + \"\\\"}\");\r\n }\r\n }\r\n // scheme, https://tools.ietf.org/html/rfc3986#section-3.1\r\n // ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\r\n if (ret.scheme && !_schemePattern.test(ret.scheme)) {\r\n throw new Error('[UriError]: Scheme contains illegal characters.');\r\n }\r\n // path, http://tools.ietf.org/html/rfc3986#section-3.3\r\n // If a URI contains an authority component, then the path component\r\n // must either be empty or begin with a slash (\"/\") character. If a URI\r\n // does not contain an authority component, then the path cannot begin\r\n // with two slash characters (\"//\").\r\n if (ret.path) {\r\n if (ret.authority) {\r\n if (!_singleSlashStart.test(ret.path)) {\r\n throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\r\n }\r\n }\r\n else {\r\n if (_doubleSlashStart.test(ret.path)) {\r\n throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\r\n }\r\n }\r\n }\r\n}\r\n// implements a bit of https://tools.ietf.org/html/rfc3986#section-5\r\nfunction _referenceResolution(scheme, path) {\r\n // the slash-character is our 'default base' as we don't\r\n // support constructing URIs relative to other URIs. This\r\n // also means that we alter and potentially break paths.\r\n // see https://tools.ietf.org/html/rfc3986#section-5.1.4\r\n switch (scheme) {\r\n case 'https':\r\n case 'http':\r\n case 'file':\r\n if (!path) {\r\n path = _slash;\r\n }\r\n else if (path[0] !== _slash) {\r\n path = _slash + path;\r\n }\r\n break;\r\n }\r\n return path;\r\n}\r\nvar _empty = '';\r\nvar _slash = '/';\r\nvar _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\r\n/**\r\n * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\r\n * This class is a simple parser which creates the basic component parts\r\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\r\n * and encoding.\r\n *\r\n * foo://example.com:8042/over/there?name=ferret#nose\r\n * \\_/ \\______________/\\_________/ \\_________/ \\__/\r\n * | | | | |\r\n * scheme authority path query fragment\r\n * | _____________________|__\r\n * / \\ / \\\r\n * urn:example:animal:ferret:nose\r\n */\r\nvar URI = /** @class */ (function () {\r\n /**\r\n * @internal\r\n */\r\n function URI(schemeOrData, authority, path, query, fragment) {\r\n if (typeof schemeOrData === 'object') {\r\n this.scheme = schemeOrData.scheme || _empty;\r\n this.authority = schemeOrData.authority || _empty;\r\n this.path = schemeOrData.path || _empty;\r\n this.query = schemeOrData.query || _empty;\r\n this.fragment = schemeOrData.fragment || _empty;\r\n // no validation because it's this URI\r\n // that creates uri components.\r\n // _validateUri(this);\r\n }\r\n else {\r\n this.scheme = schemeOrData || _empty;\r\n this.authority = authority || _empty;\r\n this.path = _referenceResolution(this.scheme, path || _empty);\r\n this.query = query || _empty;\r\n this.fragment = fragment || _empty;\r\n _validateUri(this);\r\n }\r\n }\r\n URI.isUri = function (thing) {\r\n if (thing instanceof URI) {\r\n return true;\r\n }\r\n if (!thing) {\r\n return false;\r\n }\r\n return typeof thing.authority === 'string'\r\n && typeof thing.fragment === 'string'\r\n && typeof thing.path === 'string'\r\n && typeof thing.query === 'string'\r\n && typeof thing.scheme === 'string';\r\n };\r\n Object.defineProperty(URI.prototype, \"fsPath\", {\r\n // ---- filesystem path -----------------------\r\n /**\r\n * Returns a string representing the corresponding file system path of this URI.\r\n * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\r\n * platform specific path separator.\r\n *\r\n * * Will *not* validate the path for invalid characters and semantics.\r\n * * Will *not* look at the scheme of this URI.\r\n * * The result shall *not* be used for display purposes but for accessing a file on disk.\r\n *\r\n *\r\n * The *difference* to `URI#path` is the use of the platform specific separator and the handling\r\n * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\r\n *\r\n * ```ts\r\n const u = URI.parse('file://server/c$/folder/file.txt')\r\n u.authority === 'server'\r\n u.path === '/shares/c$/file.txt'\r\n u.fsPath === '\\\\server\\c$\\folder\\file.txt'\r\n ```\r\n *\r\n * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\r\n * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\r\n * with URIs that represent files on disk (`file` scheme).\r\n */\r\n get: function () {\r\n // if (this.scheme !== 'file') {\r\n // \tconsole.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);\r\n // }\r\n return _makeFsPath(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n // ---- modify to new -------------------------\r\n URI.prototype.with = function (change) {\r\n if (!change) {\r\n return this;\r\n }\r\n var scheme = change.scheme, authority = change.authority, path = change.path, query = change.query, fragment = change.fragment;\r\n if (scheme === void 0) {\r\n scheme = this.scheme;\r\n }\r\n else if (scheme === null) {\r\n scheme = _empty;\r\n }\r\n if (authority === void 0) {\r\n authority = this.authority;\r\n }\r\n else if (authority === null) {\r\n authority = _empty;\r\n }\r\n if (path === void 0) {\r\n path = this.path;\r\n }\r\n else if (path === null) {\r\n path = _empty;\r\n }\r\n if (query === void 0) {\r\n query = this.query;\r\n }\r\n else if (query === null) {\r\n query = _empty;\r\n }\r\n if (fragment === void 0) {\r\n fragment = this.fragment;\r\n }\r\n else if (fragment === null) {\r\n fragment = _empty;\r\n }\r\n if (scheme === this.scheme\r\n && authority === this.authority\r\n && path === this.path\r\n && query === this.query\r\n && fragment === this.fragment) {\r\n return this;\r\n }\r\n return new _URI(scheme, authority, path, query, fragment);\r\n };\r\n // ---- parse & validate ------------------------\r\n /**\r\n * Creates a new URI from a string, e.g. `http://www.msft.com/some/path`,\r\n * `file:///usr/home`, or `scheme:with/path`.\r\n *\r\n * @param value A string which represents an URI (see `URI#toString`).\r\n */\r\n URI.parse = function (value) {\r\n var match = _regexp.exec(value);\r\n if (!match) {\r\n return new _URI(_empty, _empty, _empty, _empty, _empty);\r\n }\r\n return new _URI(match[2] || _empty, decodeURIComponent(match[4] || _empty), decodeURIComponent(match[5] || _empty), decodeURIComponent(match[7] || _empty), decodeURIComponent(match[9] || _empty));\r\n };\r\n /**\r\n * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\r\n * `/usr/home`, or `\\\\server\\share\\some\\path`.\r\n *\r\n * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\r\n * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\r\n * `URI.parse('file://' + path)` because the path might contain characters that are\r\n * interpreted (# and ?). See the following sample:\r\n * ```ts\r\n const good = URI.file('/coding/c#/project1');\r\n good.scheme === 'file';\r\n good.path === '/coding/c#/project1';\r\n good.fragment === '';\r\n const bad = URI.parse('file://' + '/coding/c#/project1');\r\n bad.scheme === 'file';\r\n bad.path === '/coding/c'; // path is now broken\r\n bad.fragment === '/project1';\r\n ```\r\n *\r\n * @param path A file system path (see `URI#fsPath`)\r\n */\r\n URI.file = function (path) {\r\n var authority = _empty;\r\n // normalize to fwd-slashes on windows,\r\n // on other systems bwd-slashes are valid\r\n // filename character, eg /f\\oo/ba\\r.txt\r\n if (_platform_js__WEBPACK_IMPORTED_MODULE_0__[\"isWindows\"]) {\r\n path = path.replace(/\\\\/g, _slash);\r\n }\r\n // check for authority as used in UNC shares\r\n // or use the path as given\r\n if (path[0] === _slash && path[1] === _slash) {\r\n var idx = path.indexOf(_slash, 2);\r\n if (idx === -1) {\r\n authority = path.substring(2);\r\n path = _slash;\r\n }\r\n else {\r\n authority = path.substring(2, idx);\r\n path = path.substring(idx) || _slash;\r\n }\r\n }\r\n return new _URI('file', authority, path, _empty, _empty);\r\n };\r\n URI.from = function (components) {\r\n return new _URI(components.scheme, components.authority, components.path, components.query, components.fragment);\r\n };\r\n // ---- printing/externalize ---------------------------\r\n /**\r\n * Creates a string presentation for this URI. It's guaranteed that calling\r\n * `URI.parse` with the result of this function creates an URI which is equal\r\n * to this URI.\r\n *\r\n * * The result shall *not* be used for display purposes but for externalization or transport.\r\n * * The result will be encoded using the percentage encoding and encoding happens mostly\r\n * ignore the scheme-specific encoding rules.\r\n *\r\n * @param skipEncoding Do not encode the result, default is `false`\r\n */\r\n URI.prototype.toString = function (skipEncoding) {\r\n if (skipEncoding === void 0) { skipEncoding = false; }\r\n return _asFormatted(this, skipEncoding);\r\n };\r\n URI.prototype.toJSON = function () {\r\n return this;\r\n };\r\n URI.revive = function (data) {\r\n if (!data) {\r\n return data;\r\n }\r\n else if (data instanceof URI) {\r\n return data;\r\n }\r\n else {\r\n var result = new _URI(data);\r\n result._fsPath = data.fsPath;\r\n result._formatted = data.external;\r\n return result;\r\n }\r\n };\r\n return URI;\r\n}());\r\n\r\n// tslint:disable-next-line:class-name\r\nvar _URI = /** @class */ (function (_super) {\r\n __extends(_URI, _super);\r\n function _URI() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._formatted = null;\r\n _this._fsPath = null;\r\n return _this;\r\n }\r\n Object.defineProperty(_URI.prototype, \"fsPath\", {\r\n get: function () {\r\n if (!this._fsPath) {\r\n this._fsPath = _makeFsPath(this);\r\n }\r\n return this._fsPath;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n _URI.prototype.toString = function (skipEncoding) {\r\n if (skipEncoding === void 0) { skipEncoding = false; }\r\n if (!skipEncoding) {\r\n if (!this._formatted) {\r\n this._formatted = _asFormatted(this, false);\r\n }\r\n return this._formatted;\r\n }\r\n else {\r\n // we don't cache that\r\n return _asFormatted(this, true);\r\n }\r\n };\r\n _URI.prototype.toJSON = function () {\r\n var res = {\r\n $mid: 1\r\n };\r\n // cached state\r\n if (this._fsPath) {\r\n res.fsPath = this._fsPath;\r\n }\r\n if (this._formatted) {\r\n res.external = this._formatted;\r\n }\r\n // uri components\r\n if (this.path) {\r\n res.path = this.path;\r\n }\r\n if (this.scheme) {\r\n res.scheme = this.scheme;\r\n }\r\n if (this.authority) {\r\n res.authority = this.authority;\r\n }\r\n if (this.query) {\r\n res.query = this.query;\r\n }\r\n if (this.fragment) {\r\n res.fragment = this.fragment;\r\n }\r\n return res;\r\n };\r\n return _URI;\r\n}(URI));\r\n// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2\r\nvar encodeTable = (_a = {},\r\n _a[58 /* Colon */] = '%3A',\r\n _a[47 /* Slash */] = '%2F',\r\n _a[63 /* QuestionMark */] = '%3F',\r\n _a[35 /* Hash */] = '%23',\r\n _a[91 /* OpenSquareBracket */] = '%5B',\r\n _a[93 /* CloseSquareBracket */] = '%5D',\r\n _a[64 /* AtSign */] = '%40',\r\n _a[33 /* ExclamationMark */] = '%21',\r\n _a[36 /* DollarSign */] = '%24',\r\n _a[38 /* Ampersand */] = '%26',\r\n _a[39 /* SingleQuote */] = '%27',\r\n _a[40 /* OpenParen */] = '%28',\r\n _a[41 /* CloseParen */] = '%29',\r\n _a[42 /* Asterisk */] = '%2A',\r\n _a[43 /* Plus */] = '%2B',\r\n _a[44 /* Comma */] = '%2C',\r\n _a[59 /* Semicolon */] = '%3B',\r\n _a[61 /* Equals */] = '%3D',\r\n _a[32 /* Space */] = '%20',\r\n _a);\r\nfunction encodeURIComponentFast(uriComponent, allowSlash) {\r\n var res = undefined;\r\n var nativeEncodePos = -1;\r\n for (var pos = 0; pos < uriComponent.length; pos++) {\r\n var code = uriComponent.charCodeAt(pos);\r\n // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3\r\n if ((code >= 97 /* a */ && code <= 122 /* z */)\r\n || (code >= 65 /* A */ && code <= 90 /* Z */)\r\n || (code >= 48 /* Digit0 */ && code <= 57 /* Digit9 */)\r\n || code === 45 /* Dash */\r\n || code === 46 /* Period */\r\n || code === 95 /* Underline */\r\n || code === 126 /* Tilde */\r\n || (allowSlash && code === 47 /* Slash */)) {\r\n // check if we are delaying native encode\r\n if (nativeEncodePos !== -1) {\r\n res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\r\n nativeEncodePos = -1;\r\n }\r\n // check if we write into a new string (by default we try to return the param)\r\n if (res !== undefined) {\r\n res += uriComponent.charAt(pos);\r\n }\r\n }\r\n else {\r\n // encoding needed, we need to allocate a new string\r\n if (res === undefined) {\r\n res = uriComponent.substr(0, pos);\r\n }\r\n // check with default table first\r\n var escaped = encodeTable[code];\r\n if (escaped !== undefined) {\r\n // check if we are delaying native encode\r\n if (nativeEncodePos !== -1) {\r\n res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\r\n nativeEncodePos = -1;\r\n }\r\n // append escaped variant to result\r\n res += escaped;\r\n }\r\n else if (nativeEncodePos === -1) {\r\n // use native encode only when needed\r\n nativeEncodePos = pos;\r\n }\r\n }\r\n }\r\n if (nativeEncodePos !== -1) {\r\n res += encodeURIComponent(uriComponent.substring(nativeEncodePos));\r\n }\r\n return res !== undefined ? res : uriComponent;\r\n}\r\nfunction encodeURIComponentMinimal(path) {\r\n var res = undefined;\r\n for (var pos = 0; pos < path.length; pos++) {\r\n var code = path.charCodeAt(pos);\r\n if (code === 35 /* Hash */ || code === 63 /* QuestionMark */) {\r\n if (res === undefined) {\r\n res = path.substr(0, pos);\r\n }\r\n res += encodeTable[code];\r\n }\r\n else {\r\n if (res !== undefined) {\r\n res += path[pos];\r\n }\r\n }\r\n }\r\n return res !== undefined ? res : path;\r\n}\r\n/**\r\n * Compute `fsPath` for the given uri\r\n * @param uri\r\n */\r\nfunction _makeFsPath(uri) {\r\n var value;\r\n if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {\r\n // unc path: file://shares/c$/far/boo\r\n value = \"//\" + uri.authority + uri.path;\r\n }\r\n else if (uri.path.charCodeAt(0) === 47 /* Slash */\r\n && (uri.path.charCodeAt(1) >= 65 /* A */ && uri.path.charCodeAt(1) <= 90 /* Z */ || uri.path.charCodeAt(1) >= 97 /* a */ && uri.path.charCodeAt(1) <= 122 /* z */)\r\n && uri.path.charCodeAt(2) === 58 /* Colon */) {\r\n // windows drive letter: file:///c:/far/boo\r\n value = uri.path[1].toLowerCase() + uri.path.substr(2);\r\n }\r\n else {\r\n // other path\r\n value = uri.path;\r\n }\r\n if (_platform_js__WEBPACK_IMPORTED_MODULE_0__[\"isWindows\"]) {\r\n value = value.replace(/\\//g, '\\\\');\r\n }\r\n return value;\r\n}\r\n/**\r\n * Create the external version of a uri\r\n */\r\nfunction _asFormatted(uri, skipEncoding) {\r\n var encoder = !skipEncoding\r\n ? encodeURIComponentFast\r\n : encodeURIComponentMinimal;\r\n var res = '';\r\n var scheme = uri.scheme, authority = uri.authority, path = uri.path, query = uri.query, fragment = uri.fragment;\r\n if (scheme) {\r\n res += scheme;\r\n res += ':';\r\n }\r\n if (authority || scheme === 'file') {\r\n res += _slash;\r\n res += _slash;\r\n }\r\n if (authority) {\r\n var idx = authority.indexOf('@');\r\n if (idx !== -1) {\r\n // <user>@<auth>\r\n var userinfo = authority.substr(0, idx);\r\n authority = authority.substr(idx + 1);\r\n idx = userinfo.indexOf(':');\r\n if (idx === -1) {\r\n res += encoder(userinfo, false);\r\n }\r\n else {\r\n // <user>:<pass>@<auth>\r\n res += encoder(userinfo.substr(0, idx), false);\r\n res += ':';\r\n res += encoder(userinfo.substr(idx + 1), false);\r\n }\r\n res += '@';\r\n }\r\n authority = authority.toLowerCase();\r\n idx = authority.indexOf(':');\r\n if (idx === -1) {\r\n res += encoder(authority, false);\r\n }\r\n else {\r\n // <auth>:<port>\r\n res += encoder(authority.substr(0, idx), false);\r\n res += authority.substr(idx);\r\n }\r\n }\r\n if (path) {\r\n // lower-case windows drive letters in /C:/fff or C:/fff\r\n if (path.length >= 3 && path.charCodeAt(0) === 47 /* Slash */ && path.charCodeAt(2) === 58 /* Colon */) {\r\n var code = path.charCodeAt(1);\r\n if (code >= 65 /* A */ && code <= 90 /* Z */) {\r\n path = \"/\" + String.fromCharCode(code + 32) + \":\" + path.substr(3); // \"/c:\".length === 3\r\n }\r\n }\r\n else if (path.length >= 2 && path.charCodeAt(1) === 58 /* Colon */) {\r\n var code = path.charCodeAt(0);\r\n if (code >= 65 /* A */ && code <= 90 /* Z */) {\r\n path = String.fromCharCode(code + 32) + \":\" + path.substr(2); // \"/c:\".length === 3\r\n }\r\n }\r\n // encode the rest of the path\r\n res += encoder(path, true);\r\n }\r\n if (query) {\r\n res += '?';\r\n res += encoder(query, false);\r\n }\r\n if (fragment) {\r\n res += '#';\r\n res += !skipEncoding ? encodeURIComponentFast(fragment, false) : fragment;\r\n }\r\n return res;\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/uri.js?")},"../node_modules/monaco-editor/esm/vs/base/common/winjs.base.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global, process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Promise", function() { return Promise; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TPromise", function() { return TPromise; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PPromise", function() { return PPromise; });\n/**\n * Extracted from https://github.com/winjs/winjs\n * Version: 4.4.0(ec3258a9f3a36805a187848984e3bb938044178d)\n * Copyright (c) Microsoft Corporation.\n * All Rights Reserved.\n * Licensed under the MIT License.\n */\nvar __winjs_exports;\n\n(function() {\n\nvar _modules = Object.create(null);//{};\n_modules["WinJS/Core/_WinJS"] = {};\n\nvar _winjs = function(moduleId, deps, factory) {\n var exports = {};\n var exportsPassedIn = false;\n\n var depsValues = deps.map(function(dep) {\n if (dep === \'exports\') {\n exportsPassedIn = true;\n return exports;\n }\n return _modules[dep];\n });\n\n var result = factory.apply({}, depsValues);\n\n _modules[moduleId] = exportsPassedIn ? exports : result;\n};\n\n\n_winjs("WinJS/Core/_Global", [], function () {\n "use strict";\n\n // Appease jshint\n /* global window, self, global */\n\n var globalObject =\n typeof window !== \'undefined\' ? window :\n typeof self !== \'undefined\' ? self :\n typeof global !== \'undefined\' ? global :\n {};\n return globalObject;\n});\n\n_winjs("WinJS/Core/_BaseCoreUtils", ["WinJS/Core/_Global"], function baseCoreUtilsInit(_Global) {\n "use strict";\n\n var hasWinRT = !!_Global.Windows;\n\n function markSupportedForProcessing(func) {\n /// <signature helpKeyword="WinJS.Utilities.markSupportedForProcessing">\n /// <summary locid="WinJS.Utilities.markSupportedForProcessing">\n /// Marks a function as being compatible with declarative processing, such as WinJS.UI.processAll\n /// or WinJS.Binding.processAll.\n /// </summary>\n /// <param name="func" type="Function" locid="WinJS.Utilities.markSupportedForProcessing_p:func">\n /// The function to be marked as compatible with declarative processing.\n /// </param>\n /// <returns type="Function" locid="WinJS.Utilities.markSupportedForProcessing_returnValue">\n /// The input function.\n /// </returns>\n /// </signature>\n func.supportedForProcessing = true;\n return func;\n }\n\n var actualSetImmediate = null;\n\n return {\n hasWinRT: hasWinRT,\n markSupportedForProcessing: markSupportedForProcessing,\n _setImmediate: function (callback) {\n // BEGIN monaco change\n if (actualSetImmediate === null) {\n if (_Global.setImmediate) {\n actualSetImmediate = _Global.setImmediate.bind(_Global);\n } else if (typeof process !== \'undefined\' && typeof process.nextTick === \'function\') {\n actualSetImmediate = process.nextTick.bind(process);\n } else {\n actualSetImmediate = _Global.setTimeout.bind(_Global);\n }\n }\n actualSetImmediate(callback);\n // END monaco change\n }\n };\n});\n_winjs("WinJS/Core/_WriteProfilerMark", ["WinJS/Core/_Global"], function profilerInit(_Global) {\n "use strict";\n\n return _Global.msWriteProfilerMark || function () { };\n});\n_winjs("WinJS/Core/_Base", ["WinJS/Core/_WinJS","WinJS/Core/_Global","WinJS/Core/_BaseCoreUtils","WinJS/Core/_WriteProfilerMark"], function baseInit(_WinJS, _Global, _BaseCoreUtils, _WriteProfilerMark) {\n "use strict";\n\n function initializeProperties(target, members, prefix) {\n var keys = Object.keys(members);\n var isArray = Array.isArray(target);\n var properties;\n var i, len;\n for (i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n var enumerable = key.charCodeAt(0) !== /*_*/95;\n var member = members[key];\n if (member && typeof member === \'object\') {\n if (member.value !== undefined || typeof member.get === \'function\' || typeof member.set === \'function\') {\n if (member.enumerable === undefined) {\n member.enumerable = enumerable;\n }\n if (prefix && member.setName && typeof member.setName === \'function\') {\n member.setName(prefix + "." + key);\n }\n properties = properties || {};\n properties[key] = member;\n continue;\n }\n }\n if (!enumerable) {\n properties = properties || {};\n properties[key] = { value: member, enumerable: enumerable, configurable: true, writable: true };\n continue;\n }\n if (isArray) {\n target.forEach(function (target) {\n target[key] = member;\n });\n } else {\n target[key] = member;\n }\n }\n if (properties) {\n if (isArray) {\n target.forEach(function (target) {\n Object.defineProperties(target, properties);\n });\n } else {\n Object.defineProperties(target, properties);\n }\n }\n }\n\n (function () {\n\n var _rootNamespace = _WinJS;\n if (!_rootNamespace.Namespace) {\n _rootNamespace.Namespace = Object.create(Object.prototype);\n }\n\n function createNamespace(parentNamespace, name) {\n var currentNamespace = parentNamespace || {};\n if (name) {\n var namespaceFragments = name.split(".");\n if (currentNamespace === _Global && namespaceFragments[0] === "WinJS") {\n currentNamespace = _WinJS;\n namespaceFragments.splice(0, 1);\n }\n for (var i = 0, len = namespaceFragments.length; i < len; i++) {\n var namespaceName = namespaceFragments[i];\n if (!currentNamespace[namespaceName]) {\n Object.defineProperty(currentNamespace, namespaceName,\n { value: {}, writable: false, enumerable: true, configurable: true }\n );\n }\n currentNamespace = currentNamespace[namespaceName];\n }\n }\n return currentNamespace;\n }\n\n function defineWithParent(parentNamespace, name, members) {\n /// <signature helpKeyword="WinJS.Namespace.defineWithParent">\n /// <summary locid="WinJS.Namespace.defineWithParent">\n /// Defines a new namespace with the specified name under the specified parent namespace.\n /// </summary>\n /// <param name="parentNamespace" type="Object" locid="WinJS.Namespace.defineWithParent_p:parentNamespace">\n /// The parent namespace.\n /// </param>\n /// <param name="name" type="String" locid="WinJS.Namespace.defineWithParent_p:name">\n /// The name of the new namespace.\n /// </param>\n /// <param name="members" type="Object" locid="WinJS.Namespace.defineWithParent_p:members">\n /// The members of the new namespace.\n /// </param>\n /// <returns type="Object" locid="WinJS.Namespace.defineWithParent_returnValue">\n /// The newly-defined namespace.\n /// </returns>\n /// </signature>\n var currentNamespace = createNamespace(parentNamespace, name);\n\n if (members) {\n initializeProperties(currentNamespace, members, name || "<ANONYMOUS>");\n }\n\n return currentNamespace;\n }\n\n function define(name, members) {\n /// <signature helpKeyword="WinJS.Namespace.define">\n /// <summary locid="WinJS.Namespace.define">\n /// Defines a new namespace with the specified name.\n /// </summary>\n /// <param name="name" type="String" locid="WinJS.Namespace.define_p:name">\n /// The name of the namespace. This could be a dot-separated name for nested namespaces.\n /// </param>\n /// <param name="members" type="Object" locid="WinJS.Namespace.define_p:members">\n /// The members of the new namespace.\n /// </param>\n /// <returns type="Object" locid="WinJS.Namespace.define_returnValue">\n /// The newly-defined namespace.\n /// </returns>\n /// </signature>\n return defineWithParent(_Global, name, members);\n }\n\n var LazyStates = {\n uninitialized: 1,\n working: 2,\n initialized: 3,\n };\n\n function lazy(f) {\n var name;\n var state = LazyStates.uninitialized;\n var result;\n return {\n setName: function (value) {\n name = value;\n },\n get: function () {\n switch (state) {\n case LazyStates.initialized:\n return result;\n\n case LazyStates.uninitialized:\n state = LazyStates.working;\n try {\n _WriteProfilerMark("WinJS.Namespace._lazy:" + name + ",StartTM");\n result = f();\n } finally {\n _WriteProfilerMark("WinJS.Namespace._lazy:" + name + ",StopTM");\n state = LazyStates.uninitialized;\n }\n f = null;\n state = LazyStates.initialized;\n return result;\n\n case LazyStates.working:\n throw "Illegal: reentrancy on initialization";\n\n default:\n throw "Illegal";\n }\n },\n set: function (value) {\n switch (state) {\n case LazyStates.working:\n throw "Illegal: reentrancy on initialization";\n\n default:\n state = LazyStates.initialized;\n result = value;\n break;\n }\n },\n enumerable: true,\n configurable: true,\n };\n }\n\n // helper for defining AMD module members\n function moduleDefine(exports, name, members) {\n var target = [exports];\n var publicNS = null;\n if (name) {\n publicNS = createNamespace(_Global, name);\n target.push(publicNS);\n }\n initializeProperties(target, members, name || "<ANONYMOUS>");\n return publicNS;\n }\n\n // Establish members of the "WinJS.Namespace" namespace\n Object.defineProperties(_rootNamespace.Namespace, {\n\n defineWithParent: { value: defineWithParent, writable: true, enumerable: true, configurable: true },\n\n define: { value: define, writable: true, enumerable: true, configurable: true },\n\n _lazy: { value: lazy, writable: true, enumerable: true, configurable: true },\n\n _moduleDefine: { value: moduleDefine, writable: true, enumerable: true, configurable: true }\n\n });\n\n })();\n\n (function () {\n\n function define(constructor, instanceMembers, staticMembers) {\n /// <signature helpKeyword="WinJS.Class.define">\n /// <summary locid="WinJS.Class.define">\n /// Defines a class using the given constructor and the specified instance members.\n /// </summary>\n /// <param name="constructor" type="Function" locid="WinJS.Class.define_p:constructor">\n /// A constructor function that is used to instantiate this class.\n /// </param>\n /// <param name="instanceMembers" type="Object" locid="WinJS.Class.define_p:instanceMembers">\n /// The set of instance fields, properties, and methods made available on the class.\n /// </param>\n /// <param name="staticMembers" type="Object" locid="WinJS.Class.define_p:staticMembers">\n /// The set of static fields, properties, and methods made available on the class.\n /// </param>\n /// <returns type="Function" locid="WinJS.Class.define_returnValue">\n /// The newly-defined class.\n /// </returns>\n /// </signature>\n constructor = constructor || function () { };\n _BaseCoreUtils.markSupportedForProcessing(constructor);\n if (instanceMembers) {\n initializeProperties(constructor.prototype, instanceMembers);\n }\n if (staticMembers) {\n initializeProperties(constructor, staticMembers);\n }\n return constructor;\n }\n\n function derive(baseClass, constructor, instanceMembers, staticMembers) {\n /// <signature helpKeyword="WinJS.Class.derive">\n /// <summary locid="WinJS.Class.derive">\n /// Creates a sub-class based on the supplied baseClass parameter, using prototypal inheritance.\n /// </summary>\n /// <param name="baseClass" type="Function" locid="WinJS.Class.derive_p:baseClass">\n /// The class to inherit from.\n /// </param>\n /// <param name="constructor" type="Function" locid="WinJS.Class.derive_p:constructor">\n /// A constructor function that is used to instantiate this class.\n /// </param>\n /// <param name="instanceMembers" type="Object" locid="WinJS.Class.derive_p:instanceMembers">\n /// The set of instance fields, properties, and methods to be made available on the class.\n /// </param>\n /// <param name="staticMembers" type="Object" locid="WinJS.Class.derive_p:staticMembers">\n /// The set of static fields, properties, and methods to be made available on the class.\n /// </param>\n /// <returns type="Function" locid="WinJS.Class.derive_returnValue">\n /// The newly-defined class.\n /// </returns>\n /// </signature>\n if (baseClass) {\n constructor = constructor || function () { };\n var basePrototype = baseClass.prototype;\n constructor.prototype = Object.create(basePrototype);\n _BaseCoreUtils.markSupportedForProcessing(constructor);\n Object.defineProperty(constructor.prototype, "constructor", { value: constructor, writable: true, configurable: true, enumerable: true });\n if (instanceMembers) {\n initializeProperties(constructor.prototype, instanceMembers);\n }\n if (staticMembers) {\n initializeProperties(constructor, staticMembers);\n }\n return constructor;\n } else {\n return define(constructor, instanceMembers, staticMembers);\n }\n }\n\n function mix(constructor) {\n /// <signature helpKeyword="WinJS.Class.mix">\n /// <summary locid="WinJS.Class.mix">\n /// Defines a class using the given constructor and the union of the set of instance members\n /// specified by all the mixin objects. The mixin parameter list is of variable length.\n /// </summary>\n /// <param name="constructor" locid="WinJS.Class.mix_p:constructor">\n /// A constructor function that is used to instantiate this class.\n /// </param>\n /// <returns type="Function" locid="WinJS.Class.mix_returnValue">\n /// The newly-defined class.\n /// </returns>\n /// </signature>\n constructor = constructor || function () { };\n var i, len;\n for (i = 1, len = arguments.length; i < len; i++) {\n initializeProperties(constructor.prototype, arguments[i]);\n }\n return constructor;\n }\n\n // Establish members of "WinJS.Class" namespace\n _WinJS.Namespace.define("WinJS.Class", {\n define: define,\n derive: derive,\n mix: mix\n });\n\n })();\n\n return {\n Namespace: _WinJS.Namespace,\n Class: _WinJS.Class\n };\n\n});\n_winjs("WinJS/Core/_ErrorFromName", ["WinJS/Core/_Base"], function errorsInit(_Base) {\n "use strict";\n\n var ErrorFromName = _Base.Class.derive(Error, function (name, message) {\n /// <signature helpKeyword="WinJS.ErrorFromName">\n /// <summary locid="WinJS.ErrorFromName">\n /// Creates an Error object with the specified name and message properties.\n /// </summary>\n /// <param name="name" type="String" locid="WinJS.ErrorFromName_p:name">The name of this error. The name is meant to be consumed programmatically and should not be localized.</param>\n /// <param name="message" type="String" optional="true" locid="WinJS.ErrorFromName_p:message">The message for this error. The message is meant to be consumed by humans and should be localized.</param>\n /// <returns type="Error" locid="WinJS.ErrorFromName_returnValue">Error instance with .name and .message properties populated</returns>\n /// </signature>\n this.name = name;\n this.message = message || name;\n }, {\n /* empty */\n }, {\n supportedForProcessing: false,\n });\n\n _Base.Namespace.define("WinJS", {\n // ErrorFromName establishes a simple pattern for returning error codes.\n //\n ErrorFromName: ErrorFromName\n });\n\n return ErrorFromName;\n\n});\n\n\n_winjs("WinJS/Core/_Events", ["exports","WinJS/Core/_Base"], function eventsInit(exports, _Base) {\n "use strict";\n\n\n function createEventProperty(name) {\n var eventPropStateName = "_on" + name + "state";\n\n return {\n get: function () {\n var state = this[eventPropStateName];\n return state && state.userHandler;\n },\n set: function (handler) {\n var state = this[eventPropStateName];\n if (handler) {\n if (!state) {\n state = { wrapper: function (evt) { return state.userHandler(evt); }, userHandler: handler };\n Object.defineProperty(this, eventPropStateName, { value: state, enumerable: false, writable:true, configurable: true });\n this.addEventListener(name, state.wrapper, false);\n }\n state.userHandler = handler;\n } else if (state) {\n this.removeEventListener(name, state.wrapper, false);\n this[eventPropStateName] = null;\n }\n },\n enumerable: true\n };\n }\n\n function createEventProperties() {\n /// <signature helpKeyword="WinJS.Utilities.createEventProperties">\n /// <summary locid="WinJS.Utilities.createEventProperties">\n /// Creates an object that has one property for each name passed to the function.\n /// </summary>\n /// <param name="events" locid="WinJS.Utilities.createEventProperties_p:events">\n /// A variable list of property names.\n /// </param>\n /// <returns type="Object" locid="WinJS.Utilities.createEventProperties_returnValue">\n /// The object with the specified properties. The names of the properties are prefixed with \'on\'.\n /// </returns>\n /// </signature>\n var props = {};\n for (var i = 0, len = arguments.length; i < len; i++) {\n var name = arguments[i];\n props["on" + name] = createEventProperty(name);\n }\n return props;\n }\n\n var EventMixinEvent = _Base.Class.define(\n function EventMixinEvent_ctor(type, detail, target) {\n this.detail = detail;\n this.target = target;\n this.timeStamp = Date.now();\n this.type = type;\n },\n {\n bubbles: { value: false, writable: false },\n cancelable: { value: false, writable: false },\n currentTarget: {\n get: function () { return this.target; }\n },\n defaultPrevented: {\n get: function () { return this._preventDefaultCalled; }\n },\n trusted: { value: false, writable: false },\n eventPhase: { value: 0, writable: false },\n target: null,\n timeStamp: null,\n type: null,\n\n preventDefault: function () {\n this._preventDefaultCalled = true;\n },\n stopImmediatePropagation: function () {\n this._stopImmediatePropagationCalled = true;\n },\n stopPropagation: function () {\n }\n }, {\n supportedForProcessing: false,\n }\n );\n\n var eventMixin = {\n _listeners: null,\n\n addEventListener: function (type, listener, useCapture) {\n /// <signature helpKeyword="WinJS.Utilities.eventMixin.addEventListener">\n /// <summary locid="WinJS.Utilities.eventMixin.addEventListener">\n /// Adds an event listener to the control.\n /// </summary>\n /// <param name="type" locid="WinJS.Utilities.eventMixin.addEventListener_p:type">\n /// The type (name) of the event.\n /// </param>\n /// <param name="listener" locid="WinJS.Utilities.eventMixin.addEventListener_p:listener">\n /// The listener to invoke when the event is raised.\n /// </param>\n /// <param name="useCapture" locid="WinJS.Utilities.eventMixin.addEventListener_p:useCapture">\n /// if true initiates capture, otherwise false.\n /// </param>\n /// </signature>\n useCapture = useCapture || false;\n this._listeners = this._listeners || {};\n var eventListeners = (this._listeners[type] = this._listeners[type] || []);\n for (var i = 0, len = eventListeners.length; i < len; i++) {\n var l = eventListeners[i];\n if (l.useCapture === useCapture && l.listener === listener) {\n return;\n }\n }\n eventListeners.push({ listener: listener, useCapture: useCapture });\n },\n dispatchEvent: function (type, details) {\n /// <signature helpKeyword="WinJS.Utilities.eventMixin.dispatchEvent">\n /// <summary locid="WinJS.Utilities.eventMixin.dispatchEvent">\n /// Raises an event of the specified type and with the specified additional properties.\n /// </summary>\n /// <param name="type" locid="WinJS.Utilities.eventMixin.dispatchEvent_p:type">\n /// The type (name) of the event.\n /// </param>\n /// <param name="details" locid="WinJS.Utilities.eventMixin.dispatchEvent_p:details">\n /// The set of additional properties to be attached to the event object when the event is raised.\n /// </param>\n /// <returns type="Boolean" locid="WinJS.Utilities.eventMixin.dispatchEvent_returnValue">\n /// true if preventDefault was called on the event.\n /// </returns>\n /// </signature>\n var listeners = this._listeners && this._listeners[type];\n if (listeners) {\n var eventValue = new EventMixinEvent(type, details, this);\n // Need to copy the array to protect against people unregistering while we are dispatching\n listeners = listeners.slice(0, listeners.length);\n for (var i = 0, len = listeners.length; i < len && !eventValue._stopImmediatePropagationCalled; i++) {\n listeners[i].listener(eventValue);\n }\n return eventValue.defaultPrevented || false;\n }\n return false;\n },\n removeEventListener: function (type, listener, useCapture) {\n /// <signature helpKeyword="WinJS.Utilities.eventMixin.removeEventListener">\n /// <summary locid="WinJS.Utilities.eventMixin.removeEventListener">\n /// Removes an event listener from the control.\n /// </summary>\n /// <param name="type" locid="WinJS.Utilities.eventMixin.removeEventListener_p:type">\n /// The type (name) of the event.\n /// </param>\n /// <param name="listener" locid="WinJS.Utilities.eventMixin.removeEventListener_p:listener">\n /// The listener to remove.\n /// </param>\n /// <param name="useCapture" locid="WinJS.Utilities.eventMixin.removeEventListener_p:useCapture">\n /// Specifies whether to initiate capture.\n /// </param>\n /// </signature>\n useCapture = useCapture || false;\n var listeners = this._listeners && this._listeners[type];\n if (listeners) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n var l = listeners[i];\n if (l.listener === listener && l.useCapture === useCapture) {\n listeners.splice(i, 1);\n if (listeners.length === 0) {\n delete this._listeners[type];\n }\n // Only want to remove one element for each call to removeEventListener\n break;\n }\n }\n }\n }\n };\n\n _Base.Namespace._moduleDefine(exports, "WinJS.Utilities", {\n _createEventProperty: createEventProperty,\n createEventProperties: createEventProperties,\n eventMixin: eventMixin\n });\n\n});\n\n\n_winjs("WinJS/Core/_Trace", ["WinJS/Core/_Global"], function traceInit(_Global) {\n "use strict";\n\n function nop(v) {\n return v;\n }\n\n return {\n _traceAsyncOperationStarting: (_Global.Debug && _Global.Debug.msTraceAsyncOperationStarting && _Global.Debug.msTraceAsyncOperationStarting.bind(_Global.Debug)) || nop,\n _traceAsyncOperationCompleted: (_Global.Debug && _Global.Debug.msTraceAsyncOperationCompleted && _Global.Debug.msTraceAsyncOperationCompleted.bind(_Global.Debug)) || nop,\n _traceAsyncCallbackStarting: (_Global.Debug && _Global.Debug.msTraceAsyncCallbackStarting && _Global.Debug.msTraceAsyncCallbackStarting.bind(_Global.Debug)) || nop,\n _traceAsyncCallbackCompleted: (_Global.Debug && _Global.Debug.msTraceAsyncCallbackCompleted && _Global.Debug.msTraceAsyncCallbackCompleted.bind(_Global.Debug)) || nop\n };\n});\n_winjs("WinJS/Promise/_StateMachine", ["WinJS/Core/_Global","WinJS/Core/_BaseCoreUtils","WinJS/Core/_Base","WinJS/Core/_ErrorFromName","WinJS/Core/_Events","WinJS/Core/_Trace"], function promiseStateMachineInit(_Global, _BaseCoreUtils, _Base, _ErrorFromName, _Events, _Trace) {\n "use strict";\n\n _Global.Debug && (_Global.Debug.setNonUserCodeExceptions = true);\n\n var ListenerType = _Base.Class.mix(_Base.Class.define(null, { /*empty*/ }, { supportedForProcessing: false }), _Events.eventMixin);\n var promiseEventListeners = new ListenerType();\n // make sure there is a listeners collection so that we can do a more trivial check below\n promiseEventListeners._listeners = {};\n var errorET = "error";\n var canceledName = "Canceled";\n var tagWithStack = false;\n var tag = {\n promise: 0x01,\n thenPromise: 0x02,\n errorPromise: 0x04,\n exceptionPromise: 0x08,\n completePromise: 0x10,\n };\n tag.all = tag.promise | tag.thenPromise | tag.errorPromise | tag.exceptionPromise | tag.completePromise;\n\n //\n // Global error counter, for each error which enters the system we increment this once and then\n // the error number travels with the error as it traverses the tree of potential handlers.\n //\n // When someone has registered to be told about errors (WinJS.Promise.callonerror) promises\n // which are in error will get tagged with a ._errorId field. This tagged field is the\n // contract by which nested promises with errors will be identified as chaining for the\n // purposes of the callonerror semantics. If a nested promise in error is encountered without\n // a ._errorId it will be assumed to be foreign and treated as an interop boundary and\n // a new error id will be minted.\n //\n var error_number = 1;\n\n //\n // The state machine has a interesting hiccup in it with regards to notification, in order\n // to flatten out notification and avoid recursion for synchronous completion we have an\n // explicit set of *_notify states which are responsible for notifying their entire tree\n // of children. They can do this because they know that immediate children are always\n // ThenPromise instances and we can therefore reach into their state to access the\n // _listeners collection.\n //\n // So, what happens is that a Promise will be fulfilled through the _completed or _error\n // messages at which point it will enter a *_notify state and be responsible for to move\n // its children into an (as appropriate) success or error state and also notify that child\'s\n // listeners of the state transition, until leaf notes are reached.\n //\n\n var state_created, // -> working\n state_working, // -> error | error_notify | success | success_notify | canceled | waiting\n state_waiting, // -> error | error_notify | success | success_notify | waiting_canceled\n state_waiting_canceled, // -> error | error_notify | success | success_notify | canceling\n state_canceled, // -> error | error_notify | success | success_notify | canceling\n state_canceling, // -> error_notify\n state_success_notify, // -> success\n state_success, // -> .\n state_error_notify, // -> error\n state_error; // -> .\n\n // Noop function, used in the various states to indicate that they don\'t support a given\n // message. Named with the somewhat cute name \'_\' because it reads really well in the states.\n\n function _() { }\n\n // Initial state\n //\n state_created = {\n name: "created",\n enter: function (promise) {\n promise._setState(state_working);\n },\n cancel: _,\n done: _,\n then: _,\n _completed: _,\n _error: _,\n _notify: _,\n _progress: _,\n _setCompleteValue: _,\n _setErrorValue: _\n };\n\n // Ready state, waiting for a message (completed/error/progress), able to be canceled\n //\n state_working = {\n name: "working",\n enter: _,\n cancel: function (promise) {\n promise._setState(state_canceled);\n },\n done: done,\n then: then,\n _completed: completed,\n _error: error,\n _notify: _,\n _progress: progress,\n _setCompleteValue: setCompleteValue,\n _setErrorValue: setErrorValue\n };\n\n // Waiting state, if a promise is completed with a value which is itself a promise\n // (has a then() method) it signs up to be informed when that child promise is\n // fulfilled at which point it will be fulfilled with that value.\n //\n state_waiting = {\n name: "waiting",\n enter: function (promise) {\n var waitedUpon = promise._value;\n // We can special case our own intermediate promises which are not in a\n // terminal state by just pushing this promise as a listener without\n // having to create new indirection functions\n if (waitedUpon instanceof ThenPromise &&\n waitedUpon._state !== state_error &&\n waitedUpon._state !== state_success) {\n pushListener(waitedUpon, { promise: promise });\n } else {\n var error = function (value) {\n if (waitedUpon._errorId) {\n promise._chainedError(value, waitedUpon);\n } else {\n // Because this is an interop boundary we want to indicate that this\n // error has been handled by the promise infrastructure before we\n // begin a new handling chain.\n //\n callonerror(promise, value, detailsForHandledError, waitedUpon, error);\n promise._error(value);\n }\n };\n error.handlesOnError = true;\n waitedUpon.then(\n promise._completed.bind(promise),\n error,\n promise._progress.bind(promise)\n );\n }\n },\n cancel: function (promise) {\n promise._setState(state_waiting_canceled);\n },\n done: done,\n then: then,\n _completed: completed,\n _error: error,\n _notify: _,\n _progress: progress,\n _setCompleteValue: setCompleteValue,\n _setErrorValue: setErrorValue\n };\n\n // Waiting canceled state, when a promise has been in a waiting state and receives a\n // request to cancel its pending work it will forward that request to the child promise\n // and then waits to be informed of the result. This promise moves itself into the\n // canceling state but understands that the child promise may instead push it to a\n // different state.\n //\n state_waiting_canceled = {\n name: "waiting_canceled",\n enter: function (promise) {\n // Initiate a transition to canceling. Triggering a cancel on the promise\n // that we are waiting upon may result in a different state transition\n // before the state machine pump runs again.\n promise._setState(state_canceling);\n var waitedUpon = promise._value;\n if (waitedUpon.cancel) {\n waitedUpon.cancel();\n }\n },\n cancel: _,\n done: done,\n then: then,\n _completed: completed,\n _error: error,\n _notify: _,\n _progress: progress,\n _setCompleteValue: setCompleteValue,\n _setErrorValue: setErrorValue\n };\n\n // Canceled state, moves to the canceling state and then tells the promise to do\n // whatever it might need to do on cancelation.\n //\n state_canceled = {\n name: "canceled",\n enter: function (promise) {\n // Initiate a transition to canceling. The _cancelAction may change the state\n // before the state machine pump runs again.\n promise._setState(state_canceling);\n promise._cancelAction();\n },\n cancel: _,\n done: done,\n then: then,\n _completed: completed,\n _error: error,\n _notify: _,\n _progress: progress,\n _setCompleteValue: setCompleteValue,\n _setErrorValue: setErrorValue\n };\n\n // Canceling state, commits to the promise moving to an error state with an error\n // object whose \'name\' and \'message\' properties contain the string "Canceled"\n //\n state_canceling = {\n name: "canceling",\n enter: function (promise) {\n var error = new Error(canceledName);\n error.name = error.message;\n promise._value = error;\n promise._setState(state_error_notify);\n },\n cancel: _,\n done: _,\n then: _,\n _completed: _,\n _error: _,\n _notify: _,\n _progress: _,\n _setCompleteValue: _,\n _setErrorValue: _\n };\n\n // Success notify state, moves a promise to the success state and notifies all children\n //\n state_success_notify = {\n name: "complete_notify",\n enter: function (promise) {\n promise.done = CompletePromise.prototype.done;\n promise.then = CompletePromise.prototype.then;\n if (promise._listeners) {\n var queue = [promise];\n var p;\n while (queue.length) {\n p = queue.shift();\n p._state._notify(p, queue);\n }\n }\n promise._setState(state_success);\n },\n cancel: _,\n done: null, /*error to get here */\n then: null, /*error to get here */\n _completed: _,\n _error: _,\n _notify: notifySuccess,\n _progress: _,\n _setCompleteValue: _,\n _setErrorValue: _\n };\n\n // Success state, moves a promise to the success state and does NOT notify any children.\n // Some upstream promise is owning the notification pass.\n //\n state_success = {\n name: "success",\n enter: function (promise) {\n promise.done = CompletePromise.prototype.done;\n promise.then = CompletePromise.prototype.then;\n promise._cleanupAction();\n },\n cancel: _,\n done: null, /*error to get here */\n then: null, /*error to get here */\n _completed: _,\n _error: _,\n _notify: notifySuccess,\n _progress: _,\n _setCompleteValue: _,\n _setErrorValue: _\n };\n\n // Error notify state, moves a promise to the error state and notifies all children\n //\n state_error_notify = {\n name: "error_notify",\n enter: function (promise) {\n promise.done = ErrorPromise.prototype.done;\n promise.then = ErrorPromise.prototype.then;\n if (promise._listeners) {\n var queue = [promise];\n var p;\n while (queue.length) {\n p = queue.shift();\n p._state._notify(p, queue);\n }\n }\n promise._setState(state_error);\n },\n cancel: _,\n done: null, /*error to get here*/\n then: null, /*error to get here*/\n _completed: _,\n _error: _,\n _notify: notifyError,\n _progress: _,\n _setCompleteValue: _,\n _setErrorValue: _\n };\n\n // Error state, moves a promise to the error state and does NOT notify any children.\n // Some upstream promise is owning the notification pass.\n //\n state_error = {\n name: "error",\n enter: function (promise) {\n promise.done = ErrorPromise.prototype.done;\n promise.then = ErrorPromise.prototype.then;\n promise._cleanupAction();\n },\n cancel: _,\n done: null, /*error to get here*/\n then: null, /*error to get here*/\n _completed: _,\n _error: _,\n _notify: notifyError,\n _progress: _,\n _setCompleteValue: _,\n _setErrorValue: _\n };\n\n //\n // The statemachine implementation follows a very particular pattern, the states are specified\n // as static stateless bags of functions which are then indirected through the state machine\n // instance (a Promise). As such all of the functions on each state have the promise instance\n // passed to them explicitly as a parameter and the Promise instance members do a little\n // dance where they indirect through the state and insert themselves in the argument list.\n //\n // We could instead call directly through the promise states however then every caller\n // would have to remember to do things like pumping the state machine to catch state transitions.\n //\n\n var PromiseStateMachine = _Base.Class.define(null, {\n _listeners: null,\n _nextState: null,\n _state: null,\n _value: null,\n\n cancel: function () {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.cancel">\n /// <summary locid="WinJS.PromiseStateMachine.cancel">\n /// Attempts to cancel the fulfillment of a promised value. If the promise hasn\'t\n /// already been fulfilled and cancellation is supported, the promise enters\n /// the error state with a value of Error("Canceled").\n /// </summary>\n /// </signature>\n this._state.cancel(this);\n this._run();\n },\n done: function Promise_done(onComplete, onError, onProgress) {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.done">\n /// <summary locid="WinJS.PromiseStateMachine.done">\n /// Allows you to specify the work to be done on the fulfillment of the promised value,\n /// the error handling to be performed if the promise fails to fulfill\n /// a value, and the handling of progress notifications along the way.\n ///\n /// After the handlers have finished executing, this function throws any error that would have been returned\n /// from then() as a promise in the error state.\n /// </summary>\n /// <param name=\'onComplete\' type=\'Function\' locid="WinJS.PromiseStateMachine.done_p:onComplete">\n /// The function to be called if the promise is fulfilled successfully with a value.\n /// The fulfilled value is passed as the single argument. If the value is null,\n /// the fulfilled value is returned. The value returned\n /// from the function becomes the fulfilled value of the promise returned by\n /// then(). If an exception is thrown while executing the function, the promise returned\n /// by then() moves into the error state.\n /// </param>\n /// <param name=\'onError\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.done_p:onError">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument. If it is null, the error is forwarded.\n /// The value returned from the function is the fulfilled value of the promise returned by then().\n /// </param>\n /// <param name=\'onProgress\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.done_p:onProgress">\n /// the function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// </signature>\n this._state.done(this, onComplete, onError, onProgress);\n },\n then: function Promise_then(onComplete, onError, onProgress) {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.then">\n /// <summary locid="WinJS.PromiseStateMachine.then">\n /// Allows you to specify the work to be done on the fulfillment of the promised value,\n /// the error handling to be performed if the promise fails to fulfill\n /// a value, and the handling of progress notifications along the way.\n /// </summary>\n /// <param name=\'onComplete\' type=\'Function\' locid="WinJS.PromiseStateMachine.then_p:onComplete">\n /// The function to be called if the promise is fulfilled successfully with a value.\n /// The value is passed as the single argument. If the value is null, the value is returned.\n /// The value returned from the function becomes the fulfilled value of the promise returned by\n /// then(). If an exception is thrown while this function is being executed, the promise returned\n /// by then() moves into the error state.\n /// </param>\n /// <param name=\'onError\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.then_p:onError">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument. If it is null, the error is forwarded.\n /// The value returned from the function becomes the fulfilled value of the promise returned by then().\n /// </param>\n /// <param name=\'onProgress\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.then_p:onProgress">\n /// The function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.PromiseStateMachine.then_returnValue">\n /// The promise whose value is the result of executing the complete or\n /// error function.\n /// </returns>\n /// </signature>\n // BEGIN monaco change\n if (this.then !== Promise_then) {\n this.then(onComplete, onError, onProgress);\n return;\n }\n // END monaco change\n return this._state.then(this, onComplete, onError, onProgress);\n },\n\n _chainedError: function (value, context) {\n var result = this._state._error(this, value, detailsForChainedError, context);\n this._run();\n return result;\n },\n _completed: function (value) {\n var result = this._state._completed(this, value);\n this._run();\n return result;\n },\n _error: function (value) {\n var result = this._state._error(this, value, detailsForError);\n this._run();\n return result;\n },\n _progress: function (value) {\n this._state._progress(this, value);\n },\n _setState: function (state) {\n this._nextState = state;\n },\n _setCompleteValue: function (value) {\n this._state._setCompleteValue(this, value);\n this._run();\n },\n _setChainedErrorValue: function (value, context) {\n var result = this._state._setErrorValue(this, value, detailsForChainedError, context);\n this._run();\n return result;\n },\n _setExceptionValue: function (value) {\n var result = this._state._setErrorValue(this, value, detailsForException);\n this._run();\n return result;\n },\n _run: function () {\n while (this._nextState) {\n this._state = this._nextState;\n this._nextState = null;\n this._state.enter(this);\n }\n }\n }, {\n supportedForProcessing: false\n });\n\n //\n // Implementations of shared state machine code.\n //\n\n function completed(promise, value) {\n var targetState;\n if (value && typeof value === "object" && typeof value.then === "function") {\n targetState = state_waiting;\n } else {\n targetState = state_success_notify;\n }\n promise._value = value;\n promise._setState(targetState);\n }\n function createErrorDetails(exception, error, promise, id, parent, handler) {\n return {\n exception: exception,\n error: error,\n promise: promise,\n handler: handler,\n id: id,\n parent: parent\n };\n }\n function detailsForHandledError(promise, errorValue, context, handler) {\n var exception = context._isException;\n var errorId = context._errorId;\n return createErrorDetails(\n exception ? errorValue : null,\n exception ? null : errorValue,\n promise,\n errorId,\n context,\n handler\n );\n }\n function detailsForChainedError(promise, errorValue, context) {\n var exception = context._isException;\n var errorId = context._errorId;\n setErrorInfo(promise, errorId, exception);\n return createErrorDetails(\n exception ? errorValue : null,\n exception ? null : errorValue,\n promise,\n errorId,\n context\n );\n }\n function detailsForError(promise, errorValue) {\n var errorId = ++error_number;\n setErrorInfo(promise, errorId);\n return createErrorDetails(\n null,\n errorValue,\n promise,\n errorId\n );\n }\n function detailsForException(promise, exceptionValue) {\n var errorId = ++error_number;\n setErrorInfo(promise, errorId, true);\n return createErrorDetails(\n exceptionValue,\n null,\n promise,\n errorId\n );\n }\n function done(promise, onComplete, onError, onProgress) {\n var asyncOpID = _Trace._traceAsyncOperationStarting("WinJS.Promise.done");\n pushListener(promise, { c: onComplete, e: onError, p: onProgress, asyncOpID: asyncOpID });\n }\n function error(promise, value, onerrorDetails, context) {\n promise._value = value;\n callonerror(promise, value, onerrorDetails, context);\n promise._setState(state_error_notify);\n }\n function notifySuccess(promise, queue) {\n var value = promise._value;\n var listeners = promise._listeners;\n if (!listeners) {\n return;\n }\n promise._listeners = null;\n var i, len;\n for (i = 0, len = Array.isArray(listeners) ? listeners.length : 1; i < len; i++) {\n var listener = len === 1 ? listeners : listeners[i];\n var onComplete = listener.c;\n var target = listener.promise;\n\n _Trace._traceAsyncOperationCompleted(listener.asyncOpID, _Global.Debug && _Global.Debug.MS_ASYNC_OP_STATUS_SUCCESS);\n\n if (target) {\n _Trace._traceAsyncCallbackStarting(listener.asyncOpID);\n try {\n target._setCompleteValue(onComplete ? onComplete(value) : value);\n } catch (ex) {\n target._setExceptionValue(ex);\n } finally {\n _Trace._traceAsyncCallbackCompleted();\n }\n if (target._state !== state_waiting && target._listeners) {\n queue.push(target);\n }\n } else {\n CompletePromise.prototype.done.call(promise, onComplete);\n }\n }\n }\n function notifyError(promise, queue) {\n var value = promise._value;\n var listeners = promise._listeners;\n if (!listeners) {\n return;\n }\n promise._listeners = null;\n var i, len;\n for (i = 0, len = Array.isArray(listeners) ? listeners.length : 1; i < len; i++) {\n var listener = len === 1 ? listeners : listeners[i];\n var onError = listener.e;\n var target = listener.promise;\n\n var errorID = _Global.Debug && (value && value.name === canceledName ? _Global.Debug.MS_ASYNC_OP_STATUS_CANCELED : _Global.Debug.MS_ASYNC_OP_STATUS_ERROR);\n _Trace._traceAsyncOperationCompleted(listener.asyncOpID, errorID);\n\n if (target) {\n var asyncCallbackStarted = false;\n try {\n if (onError) {\n _Trace._traceAsyncCallbackStarting(listener.asyncOpID);\n asyncCallbackStarted = true;\n if (!onError.handlesOnError) {\n callonerror(target, value, detailsForHandledError, promise, onError);\n }\n target._setCompleteValue(onError(value));\n } else {\n target._setChainedErrorValue(value, promise);\n }\n } catch (ex) {\n target._setExceptionValue(ex);\n } finally {\n if (asyncCallbackStarted) {\n _Trace._traceAsyncCallbackCompleted();\n }\n }\n if (target._state !== state_waiting && target._listeners) {\n queue.push(target);\n }\n } else {\n ErrorPromise.prototype.done.call(promise, null, onError);\n }\n }\n }\n function callonerror(promise, value, onerrorDetailsGenerator, context, handler) {\n if (promiseEventListeners._listeners[errorET]) {\n if (value instanceof Error && value.message === canceledName) {\n return;\n }\n promiseEventListeners.dispatchEvent(errorET, onerrorDetailsGenerator(promise, value, context, handler));\n }\n }\n function progress(promise, value) {\n var listeners = promise._listeners;\n if (listeners) {\n var i, len;\n for (i = 0, len = Array.isArray(listeners) ? listeners.length : 1; i < len; i++) {\n var listener = len === 1 ? listeners : listeners[i];\n var onProgress = listener.p;\n if (onProgress) {\n try { onProgress(value); } catch (ex) { }\n }\n if (!(listener.c || listener.e) && listener.promise) {\n listener.promise._progress(value);\n }\n }\n }\n }\n function pushListener(promise, listener) {\n var listeners = promise._listeners;\n if (listeners) {\n // We may have either a single listener (which will never be wrapped in an array)\n // or 2+ listeners (which will be wrapped). Since we are now adding one more listener\n // we may have to wrap the single listener before adding the second.\n listeners = Array.isArray(listeners) ? listeners : [listeners];\n listeners.push(listener);\n } else {\n listeners = listener;\n }\n promise._listeners = listeners;\n }\n // The difference beween setCompleteValue()/setErrorValue() and complete()/error() is that setXXXValue() moves\n // a promise directly to the success/error state without starting another notification pass (because one\n // is already ongoing).\n function setErrorInfo(promise, errorId, isException) {\n promise._isException = isException || false;\n promise._errorId = errorId;\n }\n function setErrorValue(promise, value, onerrorDetails, context) {\n promise._value = value;\n callonerror(promise, value, onerrorDetails, context);\n promise._setState(state_error);\n }\n function setCompleteValue(promise, value) {\n var targetState;\n if (value && typeof value === "object" && typeof value.then === "function") {\n targetState = state_waiting;\n } else {\n targetState = state_success;\n }\n promise._value = value;\n promise._setState(targetState);\n }\n function then(promise, onComplete, onError, onProgress) {\n var result = new ThenPromise(promise);\n var asyncOpID = _Trace._traceAsyncOperationStarting("WinJS.Promise.then");\n pushListener(promise, { promise: result, c: onComplete, e: onError, p: onProgress, asyncOpID: asyncOpID });\n return result;\n }\n\n //\n // Internal implementation detail promise, ThenPromise is created when a promise needs\n // to be returned from a then() method.\n //\n var ThenPromise = _Base.Class.derive(PromiseStateMachine,\n function (creator) {\n\n if (tagWithStack && (tagWithStack === true || (tagWithStack & tag.thenPromise))) {\n this._stack = Promise._getStack();\n }\n\n this._creator = creator;\n this._setState(state_created);\n this._run();\n }, {\n _creator: null,\n\n _cancelAction: function () { if (this._creator) { this._creator.cancel(); } },\n _cleanupAction: function () { this._creator = null; }\n }, {\n supportedForProcessing: false\n }\n );\n\n //\n // Slim promise implementations for already completed promises, these are created\n // under the hood on synchronous completion paths as well as by WinJS.Promise.wrap\n // and WinJS.Promise.wrapError.\n //\n\n var ErrorPromise = _Base.Class.define(\n function ErrorPromise_ctor(value) {\n\n if (tagWithStack && (tagWithStack === true || (tagWithStack & tag.errorPromise))) {\n this._stack = Promise._getStack();\n }\n\n this._value = value;\n callonerror(this, value, detailsForError);\n }, {\n cancel: function () {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.cancel">\n /// <summary locid="WinJS.PromiseStateMachine.cancel">\n /// Attempts to cancel the fulfillment of a promised value. If the promise hasn\'t\n /// already been fulfilled and cancellation is supported, the promise enters\n /// the error state with a value of Error("Canceled").\n /// </summary>\n /// </signature>\n },\n done: function ErrorPromise_done(unused, onError) {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.done">\n /// <summary locid="WinJS.PromiseStateMachine.done">\n /// Allows you to specify the work to be done on the fulfillment of the promised value,\n /// the error handling to be performed if the promise fails to fulfill\n /// a value, and the handling of progress notifications along the way.\n ///\n /// After the handlers have finished executing, this function throws any error that would have been returned\n /// from then() as a promise in the error state.\n /// </summary>\n /// <param name=\'onComplete\' type=\'Function\' locid="WinJS.PromiseStateMachine.done_p:onComplete">\n /// The function to be called if the promise is fulfilled successfully with a value.\n /// The fulfilled value is passed as the single argument. If the value is null,\n /// the fulfilled value is returned. The value returned\n /// from the function becomes the fulfilled value of the promise returned by\n /// then(). If an exception is thrown while executing the function, the promise returned\n /// by then() moves into the error state.\n /// </param>\n /// <param name=\'onError\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.done_p:onError">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument. If it is null, the error is forwarded.\n /// The value returned from the function is the fulfilled value of the promise returned by then().\n /// </param>\n /// <param name=\'onProgress\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.done_p:onProgress">\n /// the function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// </signature>\n var value = this._value;\n if (onError) {\n try {\n if (!onError.handlesOnError) {\n callonerror(null, value, detailsForHandledError, this, onError);\n }\n var result = onError(value);\n if (result && typeof result === "object" && typeof result.done === "function") {\n // If a promise is returned we need to wait on it.\n result.done();\n }\n return;\n } catch (ex) {\n value = ex;\n }\n }\n if (value instanceof Error && value.message === canceledName) {\n // suppress cancel\n return;\n }\n // force the exception to be thrown asyncronously to avoid any try/catch blocks\n //\n Promise._doneHandler(value);\n },\n then: function ErrorPromise_then(unused, onError) {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.then">\n /// <summary locid="WinJS.PromiseStateMachine.then">\n /// Allows you to specify the work to be done on the fulfillment of the promised value,\n /// the error handling to be performed if the promise fails to fulfill\n /// a value, and the handling of progress notifications along the way.\n /// </summary>\n /// <param name=\'onComplete\' type=\'Function\' locid="WinJS.PromiseStateMachine.then_p:onComplete">\n /// The function to be called if the promise is fulfilled successfully with a value.\n /// The value is passed as the single argument. If the value is null, the value is returned.\n /// The value returned from the function becomes the fulfilled value of the promise returned by\n /// then(). If an exception is thrown while this function is being executed, the promise returned\n /// by then() moves into the error state.\n /// </param>\n /// <param name=\'onError\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.then_p:onError">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument. If it is null, the error is forwarded.\n /// The value returned from the function becomes the fulfilled value of the promise returned by then().\n /// </param>\n /// <param name=\'onProgress\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.then_p:onProgress">\n /// The function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.PromiseStateMachine.then_returnValue">\n /// The promise whose value is the result of executing the complete or\n /// error function.\n /// </returns>\n /// </signature>\n\n // If the promise is already in a error state and no error handler is provided\n // we optimize by simply returning the promise instead of creating a new one.\n //\n if (!onError) { return this; }\n var result;\n var value = this._value;\n try {\n if (!onError.handlesOnError) {\n callonerror(null, value, detailsForHandledError, this, onError);\n }\n result = new CompletePromise(onError(value));\n } catch (ex) {\n // If the value throw from the error handler is the same as the value\n // provided to the error handler then there is no need for a new promise.\n //\n if (ex === value) {\n result = this;\n } else {\n result = new ExceptionPromise(ex);\n }\n }\n return result;\n }\n }, {\n supportedForProcessing: false\n }\n );\n\n var ExceptionPromise = _Base.Class.derive(ErrorPromise,\n function ExceptionPromise_ctor(value) {\n\n if (tagWithStack && (tagWithStack === true || (tagWithStack & tag.exceptionPromise))) {\n this._stack = Promise._getStack();\n }\n\n this._value = value;\n callonerror(this, value, detailsForException);\n }, {\n /* empty */\n }, {\n supportedForProcessing: false\n }\n );\n\n var CompletePromise = _Base.Class.define(\n function CompletePromise_ctor(value) {\n\n if (tagWithStack && (tagWithStack === true || (tagWithStack & tag.completePromise))) {\n this._stack = Promise._getStack();\n }\n\n if (value && typeof value === "object" && typeof value.then === "function") {\n var result = new ThenPromise(null);\n result._setCompleteValue(value);\n return result;\n }\n this._value = value;\n }, {\n cancel: function () {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.cancel">\n /// <summary locid="WinJS.PromiseStateMachine.cancel">\n /// Attempts to cancel the fulfillment of a promised value. If the promise hasn\'t\n /// already been fulfilled and cancellation is supported, the promise enters\n /// the error state with a value of Error("Canceled").\n /// </summary>\n /// </signature>\n },\n done: function CompletePromise_done(onComplete) {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.done">\n /// <summary locid="WinJS.PromiseStateMachine.done">\n /// Allows you to specify the work to be done on the fulfillment of the promised value,\n /// the error handling to be performed if the promise fails to fulfill\n /// a value, and the handling of progress notifications along the way.\n ///\n /// After the handlers have finished executing, this function throws any error that would have been returned\n /// from then() as a promise in the error state.\n /// </summary>\n /// <param name=\'onComplete\' type=\'Function\' locid="WinJS.PromiseStateMachine.done_p:onComplete">\n /// The function to be called if the promise is fulfilled successfully with a value.\n /// The fulfilled value is passed as the single argument. If the value is null,\n /// the fulfilled value is returned. The value returned\n /// from the function becomes the fulfilled value of the promise returned by\n /// then(). If an exception is thrown while executing the function, the promise returned\n /// by then() moves into the error state.\n /// </param>\n /// <param name=\'onError\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.done_p:onError">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument. If it is null, the error is forwarded.\n /// The value returned from the function is the fulfilled value of the promise returned by then().\n /// </param>\n /// <param name=\'onProgress\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.done_p:onProgress">\n /// the function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// </signature>\n if (!onComplete) { return; }\n try {\n var result = onComplete(this._value);\n if (result && typeof result === "object" && typeof result.done === "function") {\n result.done();\n }\n } catch (ex) {\n // force the exception to be thrown asynchronously to avoid any try/catch blocks\n Promise._doneHandler(ex);\n }\n },\n then: function CompletePromise_then(onComplete) {\n /// <signature helpKeyword="WinJS.PromiseStateMachine.then">\n /// <summary locid="WinJS.PromiseStateMachine.then">\n /// Allows you to specify the work to be done on the fulfillment of the promised value,\n /// the error handling to be performed if the promise fails to fulfill\n /// a value, and the handling of progress notifications along the way.\n /// </summary>\n /// <param name=\'onComplete\' type=\'Function\' locid="WinJS.PromiseStateMachine.then_p:onComplete">\n /// The function to be called if the promise is fulfilled successfully with a value.\n /// The value is passed as the single argument. If the value is null, the value is returned.\n /// The value returned from the function becomes the fulfilled value of the promise returned by\n /// then(). If an exception is thrown while this function is being executed, the promise returned\n /// by then() moves into the error state.\n /// </param>\n /// <param name=\'onError\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.then_p:onError">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument. If it is null, the error is forwarded.\n /// The value returned from the function becomes the fulfilled value of the promise returned by then().\n /// </param>\n /// <param name=\'onProgress\' type=\'Function\' optional=\'true\' locid="WinJS.PromiseStateMachine.then_p:onProgress">\n /// The function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.PromiseStateMachine.then_returnValue">\n /// The promise whose value is the result of executing the complete or\n /// error function.\n /// </returns>\n /// </signature>\n try {\n // If the value returned from the completion handler is the same as the value\n // provided to the completion handler then there is no need for a new promise.\n //\n var newValue = onComplete ? onComplete(this._value) : this._value;\n return newValue === this._value ? this : new CompletePromise(newValue);\n } catch (ex) {\n return new ExceptionPromise(ex);\n }\n }\n }, {\n supportedForProcessing: false\n }\n );\n\n //\n // Promise is the user-creatable WinJS.Promise object.\n //\n\n function timeout(timeoutMS) {\n var id;\n return new Promise(\n function (c) {\n if (timeoutMS) {\n id = _Global.setTimeout(c, timeoutMS);\n } else {\n _BaseCoreUtils._setImmediate(c);\n }\n },\n function () {\n if (id) {\n _Global.clearTimeout(id);\n }\n }\n );\n }\n\n function timeoutWithPromise(timeout, promise) {\n var cancelPromise = function () { promise.cancel(); };\n var cancelTimeout = function () { timeout.cancel(); };\n timeout.then(cancelPromise);\n promise.then(cancelTimeout, cancelTimeout);\n return promise;\n }\n\n var staticCanceledPromise;\n\n var Promise = _Base.Class.derive(PromiseStateMachine,\n function Promise_ctor(init, oncancel) {\n /// <signature helpKeyword="WinJS.Promise">\n /// <summary locid="WinJS.Promise">\n /// A promise provides a mechanism to schedule work to be done on a value that\n /// has not yet been computed. It is a convenient abstraction for managing\n /// interactions with asynchronous APIs.\n /// </summary>\n /// <param name="init" type="Function" locid="WinJS.Promise_p:init">\n /// The function that is called during construction of the promise. The function\n /// is given three arguments (complete, error, progress). Inside this function\n /// you should add event listeners for the notifications supported by this value.\n /// </param>\n /// <param name="oncancel" optional="true" locid="WinJS.Promise_p:oncancel">\n /// The function to call if a consumer of this promise wants\n /// to cancel its undone work. Promises are not required to\n /// support cancellation.\n /// </param>\n /// </signature>\n\n if (tagWithStack && (tagWithStack === true || (tagWithStack & tag.promise))) {\n this._stack = Promise._getStack();\n }\n\n this._oncancel = oncancel;\n this._setState(state_created);\n this._run();\n\n try {\n var complete = this._completed.bind(this);\n var error = this._error.bind(this);\n var progress = this._progress.bind(this);\n init(complete, error, progress);\n } catch (ex) {\n this._setExceptionValue(ex);\n }\n }, {\n _oncancel: null,\n\n _cancelAction: function () {\n // BEGIN monaco change\n try {\n if (this._oncancel) {\n this._oncancel();\n } else {\n throw new Error(\'Promise did not implement oncancel\');\n }\n } catch (ex) {\n // Access fields to get them created\n var msg = ex.message;\n var stack = ex.stack;\n promiseEventListeners.dispatchEvent(\'error\', ex);\n }\n // END monaco change\n },\n _cleanupAction: function () { this._oncancel = null; }\n }, {\n\n addEventListener: function Promise_addEventListener(eventType, listener, capture) {\n /// <signature helpKeyword="WinJS.Promise.addEventListener">\n /// <summary locid="WinJS.Promise.addEventListener">\n /// Adds an event listener to the control.\n /// </summary>\n /// <param name="eventType" locid="WinJS.Promise.addEventListener_p:eventType">\n /// The type (name) of the event.\n /// </param>\n /// <param name="listener" locid="WinJS.Promise.addEventListener_p:listener">\n /// The listener to invoke when the event is raised.\n /// </param>\n /// <param name="capture" locid="WinJS.Promise.addEventListener_p:capture">\n /// Specifies whether or not to initiate capture.\n /// </param>\n /// </signature>\n promiseEventListeners.addEventListener(eventType, listener, capture);\n },\n any: function Promise_any(values) {\n /// <signature helpKeyword="WinJS.Promise.any">\n /// <summary locid="WinJS.Promise.any">\n /// Returns a promise that is fulfilled when one of the input promises\n /// has been fulfilled.\n /// </summary>\n /// <param name="values" type="Array" locid="WinJS.Promise.any_p:values">\n /// An array that contains promise objects or objects whose property\n /// values include promise objects.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.any_returnValue">\n /// A promise that on fulfillment yields the value of the input (complete or error).\n /// </returns>\n /// </signature>\n return new Promise(\n function (complete, error) {\n var keys = Object.keys(values);\n if (keys.length === 0) {\n complete();\n }\n var canceled = 0;\n keys.forEach(function (key) {\n Promise.as(values[key]).then(\n function () { complete({ key: key, value: values[key] }); },\n function (e) {\n if (e instanceof Error && e.name === canceledName) {\n if ((++canceled) === keys.length) {\n complete(Promise.cancel);\n }\n return;\n }\n error({ key: key, value: values[key] });\n }\n );\n });\n },\n function () {\n var keys = Object.keys(values);\n keys.forEach(function (key) {\n var promise = Promise.as(values[key]);\n if (typeof promise.cancel === "function") {\n promise.cancel();\n }\n });\n }\n );\n },\n as: function Promise_as(value) {\n /// <signature helpKeyword="WinJS.Promise.as">\n /// <summary locid="WinJS.Promise.as">\n /// Returns a promise. If the object is already a promise it is returned;\n /// otherwise the object is wrapped in a promise.\n /// </summary>\n /// <param name="value" locid="WinJS.Promise.as_p:value">\n /// The value to be treated as a promise.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.as_returnValue">\n /// A promise.\n /// </returns>\n /// </signature>\n if (value && typeof value === "object" && typeof value.then === "function") {\n return value;\n }\n return new CompletePromise(value);\n },\n /// <field type="WinJS.Promise" helpKeyword="WinJS.Promise.cancel" locid="WinJS.Promise.cancel">\n /// Canceled promise value, can be returned from a promise completion handler\n /// to indicate cancelation of the promise chain.\n /// </field>\n cancel: {\n get: function () {\n return (staticCanceledPromise = staticCanceledPromise || new ErrorPromise(new _ErrorFromName(canceledName)));\n }\n },\n dispatchEvent: function Promise_dispatchEvent(eventType, details) {\n /// <signature helpKeyword="WinJS.Promise.dispatchEvent">\n /// <summary locid="WinJS.Promise.dispatchEvent">\n /// Raises an event of the specified type and properties.\n /// </summary>\n /// <param name="eventType" locid="WinJS.Promise.dispatchEvent_p:eventType">\n /// The type (name) of the event.\n /// </param>\n /// <param name="details" locid="WinJS.Promise.dispatchEvent_p:details">\n /// The set of additional properties to be attached to the event object.\n /// </param>\n /// <returns type="Boolean" locid="WinJS.Promise.dispatchEvent_returnValue">\n /// Specifies whether preventDefault was called on the event.\n /// </returns>\n /// </signature>\n return promiseEventListeners.dispatchEvent(eventType, details);\n },\n is: function Promise_is(value) {\n /// <signature helpKeyword="WinJS.Promise.is">\n /// <summary locid="WinJS.Promise.is">\n /// Determines whether a value fulfills the promise contract.\n /// </summary>\n /// <param name="value" locid="WinJS.Promise.is_p:value">\n /// A value that may be a promise.\n /// </param>\n /// <returns type="Boolean" locid="WinJS.Promise.is_returnValue">\n /// true if the specified value is a promise, otherwise false.\n /// </returns>\n /// </signature>\n return value && typeof value === "object" && typeof value.then === "function";\n },\n join: function Promise_join(values) {\n /// <signature helpKeyword="WinJS.Promise.join">\n /// <summary locid="WinJS.Promise.join">\n /// Creates a promise that is fulfilled when all the values are fulfilled.\n /// </summary>\n /// <param name="values" type="Object" locid="WinJS.Promise.join_p:values">\n /// An object whose fields contain values, some of which may be promises.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.join_returnValue">\n /// A promise whose value is an object with the same field names as those of the object in the values parameter, where\n /// each field value is the fulfilled value of a promise.\n /// </returns>\n /// </signature>\n return new Promise(\n function (complete, error, progress) {\n var keys = Object.keys(values);\n var errors = Array.isArray(values) ? [] : {};\n var results = Array.isArray(values) ? [] : {};\n var undefineds = 0;\n var pending = keys.length;\n var argDone = function (key) {\n if ((--pending) === 0) {\n var errorCount = Object.keys(errors).length;\n if (errorCount === 0) {\n complete(results);\n } else {\n var canceledCount = 0;\n keys.forEach(function (key) {\n var e = errors[key];\n if (e instanceof Error && e.name === canceledName) {\n canceledCount++;\n }\n });\n if (canceledCount === errorCount) {\n complete(Promise.cancel);\n } else {\n error(errors);\n }\n }\n } else {\n progress({ Key: key, Done: true });\n }\n };\n keys.forEach(function (key) {\n var value = values[key];\n if (value === undefined) {\n undefineds++;\n } else {\n Promise.then(value,\n function (value) { results[key] = value; argDone(key); },\n function (value) { errors[key] = value; argDone(key); }\n );\n }\n });\n pending -= undefineds;\n if (pending === 0) {\n complete(results);\n return;\n }\n },\n function () {\n Object.keys(values).forEach(function (key) {\n var promise = Promise.as(values[key]);\n if (typeof promise.cancel === "function") {\n promise.cancel();\n }\n });\n }\n );\n },\n removeEventListener: function Promise_removeEventListener(eventType, listener, capture) {\n /// <signature helpKeyword="WinJS.Promise.removeEventListener">\n /// <summary locid="WinJS.Promise.removeEventListener">\n /// Removes an event listener from the control.\n /// </summary>\n /// <param name=\'eventType\' locid="WinJS.Promise.removeEventListener_eventType">\n /// The type (name) of the event.\n /// </param>\n /// <param name=\'listener\' locid="WinJS.Promise.removeEventListener_listener">\n /// The listener to remove.\n /// </param>\n /// <param name=\'capture\' locid="WinJS.Promise.removeEventListener_capture">\n /// Specifies whether or not to initiate capture.\n /// </param>\n /// </signature>\n promiseEventListeners.removeEventListener(eventType, listener, capture);\n },\n supportedForProcessing: false,\n then: function Promise_then(value, onComplete, onError, onProgress) {\n /// <signature helpKeyword="WinJS.Promise.then">\n /// <summary locid="WinJS.Promise.then">\n /// A static version of the promise instance method then().\n /// </summary>\n /// <param name="value" locid="WinJS.Promise.then_p:value">\n /// the value to be treated as a promise.\n /// </param>\n /// <param name="onComplete" type="Function" locid="WinJS.Promise.then_p:complete">\n /// The function to be called if the promise is fulfilled with a value.\n /// If it is null, the promise simply\n /// returns the value. The value is passed as the single argument.\n /// </param>\n /// <param name="onError" type="Function" optional="true" locid="WinJS.Promise.then_p:error">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument.\n /// </param>\n /// <param name="onProgress" type="Function" optional="true" locid="WinJS.Promise.then_p:progress">\n /// The function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.then_returnValue">\n /// A promise whose value is the result of executing the provided complete function.\n /// </returns>\n /// </signature>\n return Promise.as(value).then(onComplete, onError, onProgress);\n },\n thenEach: function Promise_thenEach(values, onComplete, onError, onProgress) {\n /// <signature helpKeyword="WinJS.Promise.thenEach">\n /// <summary locid="WinJS.Promise.thenEach">\n /// Performs an operation on all the input promises and returns a promise\n /// that has the shape of the input and contains the result of the operation\n /// that has been performed on each input.\n /// </summary>\n /// <param name="values" locid="WinJS.Promise.thenEach_p:values">\n /// A set of values (which could be either an array or an object) of which some or all are promises.\n /// </param>\n /// <param name="onComplete" type="Function" locid="WinJS.Promise.thenEach_p:complete">\n /// The function to be called if the promise is fulfilled with a value.\n /// If the value is null, the promise returns the value.\n /// The value is passed as the single argument.\n /// </param>\n /// <param name="onError" type="Function" optional="true" locid="WinJS.Promise.thenEach_p:error">\n /// The function to be called if the promise is fulfilled with an error. The error\n /// is passed as the single argument.\n /// </param>\n /// <param name="onProgress" type="Function" optional="true" locid="WinJS.Promise.thenEach_p:progress">\n /// The function to be called if the promise reports progress. Data about the progress\n /// is passed as the single argument. Promises are not required to support\n /// progress.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.thenEach_returnValue">\n /// A promise that is the result of calling Promise.join on the values parameter.\n /// </returns>\n /// </signature>\n var result = Array.isArray(values) ? [] : {};\n Object.keys(values).forEach(function (key) {\n result[key] = Promise.as(values[key]).then(onComplete, onError, onProgress);\n });\n return Promise.join(result);\n },\n timeout: function Promise_timeout(time, promise) {\n /// <signature helpKeyword="WinJS.Promise.timeout">\n /// <summary locid="WinJS.Promise.timeout">\n /// Creates a promise that is fulfilled after a timeout.\n /// </summary>\n /// <param name="timeout" type="Number" optional="true" locid="WinJS.Promise.timeout_p:timeout">\n /// The timeout period in milliseconds. If this value is zero or not specified\n /// setImmediate is called, otherwise setTimeout is called.\n /// </param>\n /// <param name="promise" type="Promise" optional="true" locid="WinJS.Promise.timeout_p:promise">\n /// A promise that will be canceled if it doesn\'t complete before the\n /// timeout has expired.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.timeout_returnValue">\n /// A promise that is completed asynchronously after the specified timeout.\n /// </returns>\n /// </signature>\n var to = timeout(time);\n return promise ? timeoutWithPromise(to, promise) : to;\n },\n wrap: function Promise_wrap(value) {\n /// <signature helpKeyword="WinJS.Promise.wrap">\n /// <summary locid="WinJS.Promise.wrap">\n /// Wraps a non-promise value in a promise. You can use this function if you need\n /// to pass a value to a function that requires a promise.\n /// </summary>\n /// <param name="value" locid="WinJS.Promise.wrap_p:value">\n /// Some non-promise value to be wrapped in a promise.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.wrap_returnValue">\n /// A promise that is successfully fulfilled with the specified value\n /// </returns>\n /// </signature>\n return new CompletePromise(value);\n },\n wrapError: function Promise_wrapError(error) {\n /// <signature helpKeyword="WinJS.Promise.wrapError">\n /// <summary locid="WinJS.Promise.wrapError">\n /// Wraps a non-promise error value in a promise. You can use this function if you need\n /// to pass an error to a function that requires a promise.\n /// </summary>\n /// <param name="error" locid="WinJS.Promise.wrapError_p:error">\n /// A non-promise error value to be wrapped in a promise.\n /// </param>\n /// <returns type="WinJS.Promise" locid="WinJS.Promise.wrapError_returnValue">\n /// A promise that is in an error state with the specified value.\n /// </returns>\n /// </signature>\n return new ErrorPromise(error);\n },\n\n _veryExpensiveTagWithStack: {\n get: function () { return tagWithStack; },\n set: function (value) { tagWithStack = value; }\n },\n _veryExpensiveTagWithStack_tag: tag,\n _getStack: function () {\n if (_Global.Debug && _Global.Debug.debuggerEnabled) {\n try { throw new Error(); } catch (e) { return e.stack; }\n }\n },\n\n _cancelBlocker: function Promise__cancelBlocker(input, oncancel) {\n //\n // Returns a promise which on cancelation will still result in downstream cancelation while\n // protecting the promise \'input\' from being canceled which has the effect of allowing\n // \'input\' to be shared amoung various consumers.\n //\n if (!Promise.is(input)) {\n return Promise.wrap(input);\n }\n var complete;\n var error;\n var output = new Promise(\n function (c, e) {\n complete = c;\n error = e;\n },\n function () {\n complete = null;\n error = null;\n oncancel && oncancel();\n }\n );\n input.then(\n function (v) { complete && complete(v); },\n function (e) { error && error(e); }\n );\n return output;\n },\n\n }\n );\n Object.defineProperties(Promise, _Events.createEventProperties(errorET));\n\n Promise._doneHandler = function (value) {\n _BaseCoreUtils._setImmediate(function Promise_done_rethrow() {\n throw value;\n });\n };\n\n return {\n PromiseStateMachine: PromiseStateMachine,\n Promise: Promise,\n state_created: state_created\n };\n});\n\n_winjs("WinJS/Promise", ["WinJS/Core/_Base","WinJS/Promise/_StateMachine"], function promiseInit( _Base, _StateMachine) {\n "use strict";\n\n _Base.Namespace.define("WinJS", {\n Promise: _StateMachine.Promise\n });\n\n return _StateMachine.Promise;\n});\n\n__winjs_exports = _modules["WinJS/Core/_WinJS"];\n__winjs_exports.TPromise = __winjs_exports.Promise;\n__winjs_exports.PPromise = __winjs_exports.Promise;\n\n// ESM-comment-begin\n// if (typeof exports === \'undefined\' && typeof define === \'function\' && define.amd) {\n// define([], __winjs_exports);\n// } else {\n// module.exports = __winjs_exports;\n// }\n// ESM-comment-end\n\n})();\n\n// ESM-uncomment-begin\nvar Promise = __winjs_exports.Promise;\nvar TPromise = __winjs_exports.TPromise;\nvar PPromise = __winjs_exports.PPromise;\n// ESM-uncomment-end\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ "../node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../../../../process/browser.js */ "../node_modules/process/browser.js")))\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/winjs.base.js?')},"../node_modules/monaco-editor/esm/vs/base/common/winjs.polyfill.promise.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PolyfillPromise", function() { return PolyfillPromise; });\n/* harmony import */ var _winjs_base_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./winjs.base.js */ "../node_modules/monaco-editor/esm/vs/base/common/winjs.base.js");\n/* harmony import */ var _platform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./platform.js */ "../node_modules/monaco-editor/esm/vs/base/common/platform.js");\n/* harmony import */ var _async_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./async.js */ "../node_modules/monaco-editor/esm/vs/base/common/async.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\n\r\nfunction isWinJSPromise(candidate) {\r\n return Object(_async_js__WEBPACK_IMPORTED_MODULE_2__["isThenable"])(candidate) && typeof candidate.done === \'function\';\r\n}\r\n/**\r\n * A polyfill for the native promises. The implementation is based on\r\n * WinJS promises but tries to gap differences between winjs promises\r\n * and native promises.\r\n */\r\nvar PolyfillPromise = /** @class */ (function () {\r\n function PolyfillPromise(initOrPromise) {\r\n if (isWinJSPromise(initOrPromise)) {\r\n this._winjsPromise = initOrPromise;\r\n }\r\n else {\r\n this._winjsPromise = new _winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"](function (resolve, reject) {\r\n var initializing = true;\r\n initOrPromise(function (value) {\r\n if (!initializing) {\r\n resolve(value);\r\n }\r\n else {\r\n _platform_js__WEBPACK_IMPORTED_MODULE_1__["setImmediate"](function () { return resolve(value); });\r\n }\r\n }, function (err) {\r\n if (!initializing) {\r\n reject(err);\r\n }\r\n else {\r\n _platform_js__WEBPACK_IMPORTED_MODULE_1__["setImmediate"](function () { return reject(err); });\r\n }\r\n });\r\n initializing = false;\r\n });\r\n }\r\n }\r\n PolyfillPromise.all = function (thenables) {\r\n return new PolyfillPromise(_winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"].join(thenables).then(null, function (values) {\r\n // WinJSPromise returns a sparse array whereas\r\n // native promises return the *first* error\r\n for (var key in values) {\r\n if (values.hasOwnProperty(key)) {\r\n return values[key];\r\n }\r\n }\r\n }));\r\n };\r\n PolyfillPromise.race = function (thenables) {\r\n // WinJSPromise returns `{ key: <index/key>, value: <promise> }`\r\n // from the `any` call and Promise.race just wants the value\r\n return new PolyfillPromise(_winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"].any(thenables).then(function (entry) { return entry.value; }, function (err) { return err.value; }));\r\n };\r\n PolyfillPromise.resolve = function (value) {\r\n return new PolyfillPromise(_winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"].wrap(value));\r\n };\r\n PolyfillPromise.reject = function (value) {\r\n return new PolyfillPromise(_winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"].wrapError(value));\r\n };\r\n PolyfillPromise.prototype.then = function (onFulfilled, onRejected) {\r\n var sync = true;\r\n // To support chaining, we need to return the value of the\r\n // onFulfilled and onRejected callback.\r\n // WinJSPromise supports a flat-map style #then, ie. the callbacks\r\n // passed to WinJSPromise#then can return a Promise.\r\n var promise = new PolyfillPromise(this._winjsPromise.then(onFulfilled && function (value) {\r\n if (!sync) {\r\n return onFulfilled(value);\r\n }\r\n else {\r\n return new _winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"](function (resolve, reject) {\r\n _platform_js__WEBPACK_IMPORTED_MODULE_1__["setImmediate"](function () {\r\n var result;\r\n try {\r\n result = onFulfilled(value);\r\n }\r\n catch (err2) {\r\n reject(err2);\r\n return;\r\n }\r\n resolve(result);\r\n });\r\n });\r\n }\r\n }, onRejected && function (err) {\r\n if (!sync) {\r\n return onRejected(err);\r\n }\r\n else {\r\n return new _winjs_base_js__WEBPACK_IMPORTED_MODULE_0__["Promise"](function (resolve, reject) {\r\n _platform_js__WEBPACK_IMPORTED_MODULE_1__["setImmediate"](function () {\r\n var result;\r\n try {\r\n result = onRejected(err);\r\n }\r\n catch (err2) {\r\n reject(err2);\r\n return;\r\n }\r\n resolve(result);\r\n });\r\n });\r\n }\r\n }));\r\n sync = false;\r\n return promise;\r\n };\r\n PolyfillPromise.prototype.catch = function (onRejected) {\r\n return this.then(null, onRejected);\r\n };\r\n return PolyfillPromise;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/winjs.polyfill.promise.js?')},"../node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logOnceWebWorkerWarning\", function() { return logOnceWebWorkerWarning; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleWorkerClient\", function() { return SimpleWorkerClient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleWorkerServer\", function() { return SimpleWorkerServer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"create\", function() { return create; });\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../errors.js */ \"../node_modules/monaco-editor/esm/vs/base/common/errors.js\");\n/* harmony import */ var _lifecycle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lifecycle.js */ \"../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js\");\n/* harmony import */ var _platform_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform.js */ \"../node_modules/monaco-editor/esm/vs/base/common/platform.js\");\n/* harmony import */ var _winjs_polyfill_promise_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../winjs.polyfill.promise.js */ \"../node_modules/monaco-editor/esm/vs/base/common/winjs.polyfill.promise.js\");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\nvar global = self;\r\n// When missing, polyfill the native promise\r\n// with our winjs-based polyfill\r\nif (typeof global.Promise === 'undefined') {\r\n global.Promise = _winjs_polyfill_promise_js__WEBPACK_IMPORTED_MODULE_3__[\"PolyfillPromise\"];\r\n}\r\nvar INITIALIZE = '$initialize';\r\nvar webWorkerWarningLogged = false;\r\nfunction logOnceWebWorkerWarning(err) {\r\n if (!_platform_js__WEBPACK_IMPORTED_MODULE_2__[\"isWeb\"]) {\r\n // running tests\r\n return;\r\n }\r\n if (!webWorkerWarningLogged) {\r\n webWorkerWarningLogged = true;\r\n console.warn('Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq');\r\n }\r\n console.warn(err.message);\r\n}\r\nvar SimpleWorkerProtocol = /** @class */ (function () {\r\n function SimpleWorkerProtocol(handler) {\r\n this._workerId = -1;\r\n this._handler = handler;\r\n this._lastSentReq = 0;\r\n this._pendingReplies = Object.create(null);\r\n }\r\n SimpleWorkerProtocol.prototype.setWorkerId = function (workerId) {\r\n this._workerId = workerId;\r\n };\r\n SimpleWorkerProtocol.prototype.sendMessage = function (method, args) {\r\n var _this = this;\r\n var req = String(++this._lastSentReq);\r\n return new Promise(function (resolve, reject) {\r\n _this._pendingReplies[req] = {\r\n resolve: resolve,\r\n reject: reject\r\n };\r\n _this._send({\r\n vsWorker: _this._workerId,\r\n req: req,\r\n method: method,\r\n args: args\r\n });\r\n });\r\n };\r\n SimpleWorkerProtocol.prototype.handleMessage = function (serializedMessage) {\r\n var message;\r\n try {\r\n message = JSON.parse(serializedMessage);\r\n }\r\n catch (e) {\r\n // nothing\r\n return;\r\n }\r\n if (!message || !message.vsWorker) {\r\n return;\r\n }\r\n if (this._workerId !== -1 && message.vsWorker !== this._workerId) {\r\n return;\r\n }\r\n this._handleMessage(message);\r\n };\r\n SimpleWorkerProtocol.prototype._handleMessage = function (msg) {\r\n var _this = this;\r\n if (msg.seq) {\r\n var replyMessage = msg;\r\n if (!this._pendingReplies[replyMessage.seq]) {\r\n console.warn('Got reply to unknown seq');\r\n return;\r\n }\r\n var reply = this._pendingReplies[replyMessage.seq];\r\n delete this._pendingReplies[replyMessage.seq];\r\n if (replyMessage.err) {\r\n var err = replyMessage.err;\r\n if (replyMessage.err.$isError) {\r\n err = new Error();\r\n err.name = replyMessage.err.name;\r\n err.message = replyMessage.err.message;\r\n err.stack = replyMessage.err.stack;\r\n }\r\n reply.reject(err);\r\n return;\r\n }\r\n reply.resolve(replyMessage.res);\r\n return;\r\n }\r\n var requestMessage = msg;\r\n var req = requestMessage.req;\r\n var result = this._handler.handleMessage(requestMessage.method, requestMessage.args);\r\n result.then(function (r) {\r\n _this._send({\r\n vsWorker: _this._workerId,\r\n seq: req,\r\n res: r,\r\n err: undefined\r\n });\r\n }, function (e) {\r\n if (e.detail instanceof Error) {\r\n // Loading errors have a detail property that points to the actual error\r\n e.detail = Object(_errors_js__WEBPACK_IMPORTED_MODULE_0__[\"transformErrorForSerialization\"])(e.detail);\r\n }\r\n _this._send({\r\n vsWorker: _this._workerId,\r\n seq: req,\r\n res: undefined,\r\n err: Object(_errors_js__WEBPACK_IMPORTED_MODULE_0__[\"transformErrorForSerialization\"])(e)\r\n });\r\n });\r\n };\r\n SimpleWorkerProtocol.prototype._send = function (msg) {\r\n var strMsg = JSON.stringify(msg);\r\n // console.log('SENDING: ' + strMsg);\r\n this._handler.sendMessage(strMsg);\r\n };\r\n return SimpleWorkerProtocol;\r\n}());\r\n/**\r\n * Main thread side\r\n */\r\nvar SimpleWorkerClient = /** @class */ (function (_super) {\r\n __extends(SimpleWorkerClient, _super);\r\n function SimpleWorkerClient(workerFactory, moduleId) {\r\n var _this = _super.call(this) || this;\r\n var lazyProxyReject = null;\r\n _this._worker = _this._register(workerFactory.create('vs/base/common/worker/simpleWorker', function (msg) {\r\n _this._protocol.handleMessage(msg);\r\n }, function (err) {\r\n // in Firefox, web workers fail lazily :(\r\n // we will reject the proxy\r\n if (lazyProxyReject) {\r\n lazyProxyReject(err);\r\n }\r\n }));\r\n _this._protocol = new SimpleWorkerProtocol({\r\n sendMessage: function (msg) {\r\n _this._worker.postMessage(msg);\r\n },\r\n handleMessage: function (method, args) {\r\n // Intentionally not supporting worker -> main requests\r\n return Promise.resolve(null);\r\n }\r\n });\r\n _this._protocol.setWorkerId(_this._worker.getId());\r\n // Gather loader configuration\r\n var loaderConfiguration = null;\r\n if (typeof self.require !== 'undefined' && typeof self.require.getConfig === 'function') {\r\n // Get the configuration from the Monaco AMD Loader\r\n loaderConfiguration = self.require.getConfig();\r\n }\r\n else if (typeof self.requirejs !== 'undefined') {\r\n // Get the configuration from requirejs\r\n loaderConfiguration = self.requirejs.s.contexts._.config;\r\n }\r\n // Send initialize message\r\n _this._onModuleLoaded = _this._protocol.sendMessage(INITIALIZE, [\r\n _this._worker.getId(),\r\n moduleId,\r\n loaderConfiguration\r\n ]);\r\n _this._lazyProxy = new Promise(function (resolve, reject) {\r\n lazyProxyReject = reject;\r\n _this._onModuleLoaded.then(function (availableMethods) {\r\n var proxy = {};\r\n for (var i = 0; i < availableMethods.length; i++) {\r\n proxy[availableMethods[i]] = createProxyMethod(availableMethods[i], proxyMethodRequest);\r\n }\r\n resolve(proxy);\r\n }, function (e) {\r\n reject(e);\r\n _this._onError('Worker failed to load ' + moduleId, e);\r\n });\r\n });\r\n // Create proxy to loaded code\r\n var proxyMethodRequest = function (method, args) {\r\n return _this._request(method, args);\r\n };\r\n var createProxyMethod = function (method, proxyMethodRequest) {\r\n return function () {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n return proxyMethodRequest(method, args);\r\n };\r\n };\r\n return _this;\r\n }\r\n SimpleWorkerClient.prototype.getProxyObject = function () {\r\n return this._lazyProxy;\r\n };\r\n SimpleWorkerClient.prototype._request = function (method, args) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n _this._onModuleLoaded.then(function () {\r\n _this._protocol.sendMessage(method, args).then(resolve, reject);\r\n }, reject);\r\n });\r\n };\r\n SimpleWorkerClient.prototype._onError = function (message, error) {\r\n console.error(message);\r\n console.info(error);\r\n };\r\n return SimpleWorkerClient;\r\n}(_lifecycle_js__WEBPACK_IMPORTED_MODULE_1__[\"Disposable\"]));\r\n\r\n/**\r\n * Worker side\r\n */\r\nvar SimpleWorkerServer = /** @class */ (function () {\r\n function SimpleWorkerServer(postSerializedMessage, requestHandler) {\r\n var _this = this;\r\n this._requestHandler = requestHandler;\r\n this._protocol = new SimpleWorkerProtocol({\r\n sendMessage: function (msg) {\r\n postSerializedMessage(msg);\r\n },\r\n handleMessage: function (method, args) { return _this._handleMessage(method, args); }\r\n });\r\n }\r\n SimpleWorkerServer.prototype.onmessage = function (msg) {\r\n this._protocol.handleMessage(msg);\r\n };\r\n SimpleWorkerServer.prototype._handleMessage = function (method, args) {\r\n if (method === INITIALIZE) {\r\n return this.initialize(args[0], args[1], args[2]);\r\n }\r\n if (!this._requestHandler || typeof this._requestHandler[method] !== 'function') {\r\n return Promise.reject(new Error('Missing requestHandler or method: ' + method));\r\n }\r\n try {\r\n return Promise.resolve(this._requestHandler[method].apply(this._requestHandler, args));\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n SimpleWorkerServer.prototype.initialize = function (workerId, moduleId, loaderConfig) {\r\n var _this = this;\r\n this._protocol.setWorkerId(workerId);\r\n if (this._requestHandler) {\r\n // static request handler\r\n var methods = [];\r\n for (var prop in this._requestHandler) {\r\n if (typeof this._requestHandler[prop] === 'function') {\r\n methods.push(prop);\r\n }\r\n }\r\n return Promise.resolve(methods);\r\n }\r\n if (loaderConfig) {\r\n // Remove 'baseUrl', handling it is beyond scope for now\r\n if (typeof loaderConfig.baseUrl !== 'undefined') {\r\n delete loaderConfig['baseUrl'];\r\n }\r\n if (typeof loaderConfig.paths !== 'undefined') {\r\n if (typeof loaderConfig.paths.vs !== 'undefined') {\r\n delete loaderConfig.paths['vs'];\r\n }\r\n }\r\n // Since this is in a web worker, enable catching errors\r\n loaderConfig.catchError = true;\r\n self.require.config(loaderConfig);\r\n }\r\n return new Promise(function (resolve, reject) {\r\n // Use the global require to be sure to get the global config\r\n self.require([moduleId], function () {\r\n var result = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n result[_i] = arguments[_i];\r\n }\r\n var handlerModule = result[0];\r\n _this._requestHandler = handlerModule.create();\r\n if (!_this._requestHandler) {\r\n reject(new Error(\"No RequestHandler!\"));\r\n return;\r\n }\r\n var methods = [];\r\n for (var prop in _this._requestHandler) {\r\n if (typeof _this._requestHandler[prop] === 'function') {\r\n methods.push(prop);\r\n }\r\n }\r\n resolve(methods);\r\n }, reject);\r\n });\r\n };\r\n return SimpleWorkerServer;\r\n}());\r\n\r\n/**\r\n * Called on the worker side\r\n */\r\nfunction create(postMessage) {\r\n return new SimpleWorkerServer(postMessage, null);\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CharacterClassifier", function() { return CharacterClassifier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CharacterSet", function() { return CharacterSet; });\n/* harmony import */ var _uint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uint.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/uint.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/**\r\n * A fast character classifier that uses a compact array for ASCII values.\r\n */\r\nvar CharacterClassifier = /** @class */ (function () {\r\n function CharacterClassifier(_defaultValue) {\r\n var defaultValue = Object(_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint8"])(_defaultValue);\r\n this._defaultValue = defaultValue;\r\n this._asciiMap = CharacterClassifier._createAsciiMap(defaultValue);\r\n this._map = new Map();\r\n }\r\n CharacterClassifier._createAsciiMap = function (defaultValue) {\r\n var asciiMap = new Uint8Array(256);\r\n for (var i = 0; i < 256; i++) {\r\n asciiMap[i] = defaultValue;\r\n }\r\n return asciiMap;\r\n };\r\n CharacterClassifier.prototype.set = function (charCode, _value) {\r\n var value = Object(_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint8"])(_value);\r\n if (charCode >= 0 && charCode < 256) {\r\n this._asciiMap[charCode] = value;\r\n }\r\n else {\r\n this._map.set(charCode, value);\r\n }\r\n };\r\n CharacterClassifier.prototype.get = function (charCode) {\r\n if (charCode >= 0 && charCode < 256) {\r\n return this._asciiMap[charCode];\r\n }\r\n else {\r\n return (this._map.get(charCode) || this._defaultValue);\r\n }\r\n };\r\n return CharacterClassifier;\r\n}());\r\n\r\nvar CharacterSet = /** @class */ (function () {\r\n function CharacterSet() {\r\n this._actual = new CharacterClassifier(0 /* False */);\r\n }\r\n CharacterSet.prototype.add = function (charCode) {\r\n this._actual.set(charCode, 1 /* True */);\r\n };\r\n CharacterSet.prototype.has = function (charCode) {\r\n return (this._actual.get(charCode) === 1 /* True */);\r\n };\r\n return CharacterSet;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/core/position.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Position\", function() { return Position; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/**\r\n * A position in the editor.\r\n */\r\nvar Position = /** @class */ (function () {\r\n function Position(lineNumber, column) {\r\n this.lineNumber = lineNumber;\r\n this.column = column;\r\n }\r\n /**\r\n * Create a new postion from this position.\r\n *\r\n * @param newLineNumber new line number\r\n * @param newColumn new column\r\n */\r\n Position.prototype.with = function (newLineNumber, newColumn) {\r\n if (newLineNumber === void 0) { newLineNumber = this.lineNumber; }\r\n if (newColumn === void 0) { newColumn = this.column; }\r\n if (newLineNumber === this.lineNumber && newColumn === this.column) {\r\n return this;\r\n }\r\n else {\r\n return new Position(newLineNumber, newColumn);\r\n }\r\n };\r\n /**\r\n * Derive a new position from this position.\r\n *\r\n * @param deltaLineNumber line number delta\r\n * @param deltaColumn column delta\r\n */\r\n Position.prototype.delta = function (deltaLineNumber, deltaColumn) {\r\n if (deltaLineNumber === void 0) { deltaLineNumber = 0; }\r\n if (deltaColumn === void 0) { deltaColumn = 0; }\r\n return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn);\r\n };\r\n /**\r\n * Test if this position equals other position\r\n */\r\n Position.prototype.equals = function (other) {\r\n return Position.equals(this, other);\r\n };\r\n /**\r\n * Test if position `a` equals position `b`\r\n */\r\n Position.equals = function (a, b) {\r\n if (!a && !b) {\r\n return true;\r\n }\r\n return (!!a &&\r\n !!b &&\r\n a.lineNumber === b.lineNumber &&\r\n a.column === b.column);\r\n };\r\n /**\r\n * Test if this position is before other position.\r\n * If the two positions are equal, the result will be false.\r\n */\r\n Position.prototype.isBefore = function (other) {\r\n return Position.isBefore(this, other);\r\n };\r\n /**\r\n * Test if position `a` is before position `b`.\r\n * If the two positions are equal, the result will be false.\r\n */\r\n Position.isBefore = function (a, b) {\r\n if (a.lineNumber < b.lineNumber) {\r\n return true;\r\n }\r\n if (b.lineNumber < a.lineNumber) {\r\n return false;\r\n }\r\n return a.column < b.column;\r\n };\r\n /**\r\n * Test if this position is before other position.\r\n * If the two positions are equal, the result will be true.\r\n */\r\n Position.prototype.isBeforeOrEqual = function (other) {\r\n return Position.isBeforeOrEqual(this, other);\r\n };\r\n /**\r\n * Test if position `a` is before position `b`.\r\n * If the two positions are equal, the result will be true.\r\n */\r\n Position.isBeforeOrEqual = function (a, b) {\r\n if (a.lineNumber < b.lineNumber) {\r\n return true;\r\n }\r\n if (b.lineNumber < a.lineNumber) {\r\n return false;\r\n }\r\n return a.column <= b.column;\r\n };\r\n /**\r\n * A function that compares positions, useful for sorting\r\n */\r\n Position.compare = function (a, b) {\r\n var aLineNumber = a.lineNumber | 0;\r\n var bLineNumber = b.lineNumber | 0;\r\n if (aLineNumber === bLineNumber) {\r\n var aColumn = a.column | 0;\r\n var bColumn = b.column | 0;\r\n return aColumn - bColumn;\r\n }\r\n return aLineNumber - bLineNumber;\r\n };\r\n /**\r\n * Clone this position.\r\n */\r\n Position.prototype.clone = function () {\r\n return new Position(this.lineNumber, this.column);\r\n };\r\n /**\r\n * Convert to a human-readable representation.\r\n */\r\n Position.prototype.toString = function () {\r\n return '(' + this.lineNumber + ',' + this.column + ')';\r\n };\r\n // ---\r\n /**\r\n * Create a `Position` from an `IPosition`.\r\n */\r\n Position.lift = function (pos) {\r\n return new Position(pos.lineNumber, pos.column);\r\n };\r\n /**\r\n * Test if `obj` is an `IPosition`.\r\n */\r\n Position.isIPosition = function (obj) {\r\n return (obj\r\n && (typeof obj.lineNumber === 'number')\r\n && (typeof obj.column === 'number'));\r\n };\r\n return Position;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/core/position.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/core/range.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Range\", function() { return Range; });\n/* harmony import */ var _position_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./position.js */ \"../node_modules/monaco-editor/esm/vs/editor/common/core/position.js\");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/**\r\n * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn)\r\n */\r\nvar Range = /** @class */ (function () {\r\n function Range(startLineNumber, startColumn, endLineNumber, endColumn) {\r\n if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) {\r\n this.startLineNumber = endLineNumber;\r\n this.startColumn = endColumn;\r\n this.endLineNumber = startLineNumber;\r\n this.endColumn = startColumn;\r\n }\r\n else {\r\n this.startLineNumber = startLineNumber;\r\n this.startColumn = startColumn;\r\n this.endLineNumber = endLineNumber;\r\n this.endColumn = endColumn;\r\n }\r\n }\r\n /**\r\n * Test if this range is empty.\r\n */\r\n Range.prototype.isEmpty = function () {\r\n return Range.isEmpty(this);\r\n };\r\n /**\r\n * Test if `range` is empty.\r\n */\r\n Range.isEmpty = function (range) {\r\n return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn);\r\n };\r\n /**\r\n * Test if position is in this range. If the position is at the edges, will return true.\r\n */\r\n Range.prototype.containsPosition = function (position) {\r\n return Range.containsPosition(this, position);\r\n };\r\n /**\r\n * Test if `position` is in `range`. If the position is at the edges, will return true.\r\n */\r\n Range.containsPosition = function (range, position) {\r\n if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {\r\n return false;\r\n }\r\n if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) {\r\n return false;\r\n }\r\n if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Test if range is in this range. If the range is equal to this range, will return true.\r\n */\r\n Range.prototype.containsRange = function (range) {\r\n return Range.containsRange(this, range);\r\n };\r\n /**\r\n * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\r\n */\r\n Range.containsRange = function (range, otherRange) {\r\n if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\r\n return false;\r\n }\r\n if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\r\n return false;\r\n }\r\n if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) {\r\n return false;\r\n }\r\n if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * A reunion of the two ranges.\r\n * The smallest position will be used as the start point, and the largest one as the end point.\r\n */\r\n Range.prototype.plusRange = function (range) {\r\n return Range.plusRange(this, range);\r\n };\r\n /**\r\n * A reunion of the two ranges.\r\n * The smallest position will be used as the start point, and the largest one as the end point.\r\n */\r\n Range.plusRange = function (a, b) {\r\n var startLineNumber;\r\n var startColumn;\r\n var endLineNumber;\r\n var endColumn;\r\n if (b.startLineNumber < a.startLineNumber) {\r\n startLineNumber = b.startLineNumber;\r\n startColumn = b.startColumn;\r\n }\r\n else if (b.startLineNumber === a.startLineNumber) {\r\n startLineNumber = b.startLineNumber;\r\n startColumn = Math.min(b.startColumn, a.startColumn);\r\n }\r\n else {\r\n startLineNumber = a.startLineNumber;\r\n startColumn = a.startColumn;\r\n }\r\n if (b.endLineNumber > a.endLineNumber) {\r\n endLineNumber = b.endLineNumber;\r\n endColumn = b.endColumn;\r\n }\r\n else if (b.endLineNumber === a.endLineNumber) {\r\n endLineNumber = b.endLineNumber;\r\n endColumn = Math.max(b.endColumn, a.endColumn);\r\n }\r\n else {\r\n endLineNumber = a.endLineNumber;\r\n endColumn = a.endColumn;\r\n }\r\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\r\n };\r\n /**\r\n * A intersection of the two ranges.\r\n */\r\n Range.prototype.intersectRanges = function (range) {\r\n return Range.intersectRanges(this, range);\r\n };\r\n /**\r\n * A intersection of the two ranges.\r\n */\r\n Range.intersectRanges = function (a, b) {\r\n var resultStartLineNumber = a.startLineNumber;\r\n var resultStartColumn = a.startColumn;\r\n var resultEndLineNumber = a.endLineNumber;\r\n var resultEndColumn = a.endColumn;\r\n var otherStartLineNumber = b.startLineNumber;\r\n var otherStartColumn = b.startColumn;\r\n var otherEndLineNumber = b.endLineNumber;\r\n var otherEndColumn = b.endColumn;\r\n if (resultStartLineNumber < otherStartLineNumber) {\r\n resultStartLineNumber = otherStartLineNumber;\r\n resultStartColumn = otherStartColumn;\r\n }\r\n else if (resultStartLineNumber === otherStartLineNumber) {\r\n resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\r\n }\r\n if (resultEndLineNumber > otherEndLineNumber) {\r\n resultEndLineNumber = otherEndLineNumber;\r\n resultEndColumn = otherEndColumn;\r\n }\r\n else if (resultEndLineNumber === otherEndLineNumber) {\r\n resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\r\n }\r\n // Check if selection is now empty\r\n if (resultStartLineNumber > resultEndLineNumber) {\r\n return null;\r\n }\r\n if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) {\r\n return null;\r\n }\r\n return new Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn);\r\n };\r\n /**\r\n * Test if this range equals other.\r\n */\r\n Range.prototype.equalsRange = function (other) {\r\n return Range.equalsRange(this, other);\r\n };\r\n /**\r\n * Test if range `a` equals `b`.\r\n */\r\n Range.equalsRange = function (a, b) {\r\n return (!!a &&\r\n !!b &&\r\n a.startLineNumber === b.startLineNumber &&\r\n a.startColumn === b.startColumn &&\r\n a.endLineNumber === b.endLineNumber &&\r\n a.endColumn === b.endColumn);\r\n };\r\n /**\r\n * Return the end position (which will be after or equal to the start position)\r\n */\r\n Range.prototype.getEndPosition = function () {\r\n return new _position_js__WEBPACK_IMPORTED_MODULE_0__[\"Position\"](this.endLineNumber, this.endColumn);\r\n };\r\n /**\r\n * Return the start position (which will be before or equal to the end position)\r\n */\r\n Range.prototype.getStartPosition = function () {\r\n return new _position_js__WEBPACK_IMPORTED_MODULE_0__[\"Position\"](this.startLineNumber, this.startColumn);\r\n };\r\n /**\r\n * Transform to a user presentable string representation.\r\n */\r\n Range.prototype.toString = function () {\r\n return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']';\r\n };\r\n /**\r\n * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\r\n */\r\n Range.prototype.setEndPosition = function (endLineNumber, endColumn) {\r\n return new Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\r\n };\r\n /**\r\n * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\r\n */\r\n Range.prototype.setStartPosition = function (startLineNumber, startColumn) {\r\n return new Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\r\n };\r\n /**\r\n * Create a new empty range using this range's start position.\r\n */\r\n Range.prototype.collapseToStart = function () {\r\n return Range.collapseToStart(this);\r\n };\r\n /**\r\n * Create a new empty range using this range's start position.\r\n */\r\n Range.collapseToStart = function (range) {\r\n return new Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn);\r\n };\r\n // ---\r\n Range.fromPositions = function (start, end) {\r\n if (end === void 0) { end = start; }\r\n return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\r\n };\r\n Range.lift = function (range) {\r\n if (!range) {\r\n return null;\r\n }\r\n return new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\r\n };\r\n /**\r\n * Test if `obj` is an `IRange`.\r\n */\r\n Range.isIRange = function (obj) {\r\n return (obj\r\n && (typeof obj.startLineNumber === 'number')\r\n && (typeof obj.startColumn === 'number')\r\n && (typeof obj.endLineNumber === 'number')\r\n && (typeof obj.endColumn === 'number'));\r\n };\r\n /**\r\n * Test if the two ranges are touching in any way.\r\n */\r\n Range.areIntersectingOrTouching = function (a, b) {\r\n // Check if `a` is before `b`\r\n if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) {\r\n return false;\r\n }\r\n // Check if `b` is before `a`\r\n if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) {\r\n return false;\r\n }\r\n // These ranges must intersect\r\n return true;\r\n };\r\n /**\r\n * Test if the two ranges are intersecting. If the ranges are touching it returns true.\r\n */\r\n Range.areIntersecting = function (a, b) {\r\n // Check if `a` is before `b`\r\n if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) {\r\n return false;\r\n }\r\n // Check if `b` is before `a`\r\n if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) {\r\n return false;\r\n }\r\n // These ranges must intersect\r\n return true;\r\n };\r\n /**\r\n * A function that compares ranges, useful for sorting ranges\r\n * It will first compare ranges on the startPosition and then on the endPosition\r\n */\r\n Range.compareRangesUsingStarts = function (a, b) {\r\n if (a && b) {\r\n var aStartLineNumber = a.startLineNumber | 0;\r\n var bStartLineNumber = b.startLineNumber | 0;\r\n if (aStartLineNumber === bStartLineNumber) {\r\n var aStartColumn = a.startColumn | 0;\r\n var bStartColumn = b.startColumn | 0;\r\n if (aStartColumn === bStartColumn) {\r\n var aEndLineNumber = a.endLineNumber | 0;\r\n var bEndLineNumber = b.endLineNumber | 0;\r\n if (aEndLineNumber === bEndLineNumber) {\r\n var aEndColumn = a.endColumn | 0;\r\n var bEndColumn = b.endColumn | 0;\r\n return aEndColumn - bEndColumn;\r\n }\r\n return aEndLineNumber - bEndLineNumber;\r\n }\r\n return aStartColumn - bStartColumn;\r\n }\r\n return aStartLineNumber - bStartLineNumber;\r\n }\r\n var aExists = (a ? 1 : 0);\r\n var bExists = (b ? 1 : 0);\r\n return aExists - bExists;\r\n };\r\n /**\r\n * A function that compares ranges, useful for sorting ranges\r\n * It will first compare ranges on the endPosition and then on the startPosition\r\n */\r\n Range.compareRangesUsingEnds = function (a, b) {\r\n if (a.endLineNumber === b.endLineNumber) {\r\n if (a.endColumn === b.endColumn) {\r\n if (a.startLineNumber === b.startLineNumber) {\r\n return a.startColumn - b.startColumn;\r\n }\r\n return a.startLineNumber - b.startLineNumber;\r\n }\r\n return a.endColumn - b.endColumn;\r\n }\r\n return a.endLineNumber - b.endLineNumber;\r\n };\r\n /**\r\n * Test if the range spans multiple lines.\r\n */\r\n Range.spansMultipleLines = function (range) {\r\n return range.endLineNumber > range.startLineNumber;\r\n };\r\n return Range;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/core/range.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/core/selection.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Selection\", function() { return Selection; });\n/* harmony import */ var _position_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./position.js */ \"../node_modules/monaco-editor/esm/vs/editor/common/core/position.js\");\n/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./range.js */ \"../node_modules/monaco-editor/esm/vs/editor/common/core/range.js\");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n/**\r\n * A selection in the editor.\r\n * The selection is a range that has an orientation.\r\n */\r\nvar Selection = /** @class */ (function (_super) {\r\n __extends(Selection, _super);\r\n function Selection(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) {\r\n var _this = _super.call(this, selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) || this;\r\n _this.selectionStartLineNumber = selectionStartLineNumber;\r\n _this.selectionStartColumn = selectionStartColumn;\r\n _this.positionLineNumber = positionLineNumber;\r\n _this.positionColumn = positionColumn;\r\n return _this;\r\n }\r\n /**\r\n * Clone this selection.\r\n */\r\n Selection.prototype.clone = function () {\r\n return new Selection(this.selectionStartLineNumber, this.selectionStartColumn, this.positionLineNumber, this.positionColumn);\r\n };\r\n /**\r\n * Transform to a human-readable representation.\r\n */\r\n Selection.prototype.toString = function () {\r\n return '[' + this.selectionStartLineNumber + ',' + this.selectionStartColumn + ' -> ' + this.positionLineNumber + ',' + this.positionColumn + ']';\r\n };\r\n /**\r\n * Test if equals other selection.\r\n */\r\n Selection.prototype.equalsSelection = function (other) {\r\n return (Selection.selectionsEqual(this, other));\r\n };\r\n /**\r\n * Test if the two selections are equal.\r\n */\r\n Selection.selectionsEqual = function (a, b) {\r\n return (a.selectionStartLineNumber === b.selectionStartLineNumber &&\r\n a.selectionStartColumn === b.selectionStartColumn &&\r\n a.positionLineNumber === b.positionLineNumber &&\r\n a.positionColumn === b.positionColumn);\r\n };\r\n /**\r\n * Get directions (LTR or RTL).\r\n */\r\n Selection.prototype.getDirection = function () {\r\n if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) {\r\n return 0 /* LTR */;\r\n }\r\n return 1 /* RTL */;\r\n };\r\n /**\r\n * Create a new selection with a different `positionLineNumber` and `positionColumn`.\r\n */\r\n Selection.prototype.setEndPosition = function (endLineNumber, endColumn) {\r\n if (this.getDirection() === 0 /* LTR */) {\r\n return new Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\r\n }\r\n return new Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn);\r\n };\r\n /**\r\n * Get the position at `positionLineNumber` and `positionColumn`.\r\n */\r\n Selection.prototype.getPosition = function () {\r\n return new _position_js__WEBPACK_IMPORTED_MODULE_0__[\"Position\"](this.positionLineNumber, this.positionColumn);\r\n };\r\n /**\r\n * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.\r\n */\r\n Selection.prototype.setStartPosition = function (startLineNumber, startColumn) {\r\n if (this.getDirection() === 0 /* LTR */) {\r\n return new Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\r\n }\r\n return new Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn);\r\n };\r\n // ----\r\n /**\r\n * Create a `Selection` from one or two positions\r\n */\r\n Selection.fromPositions = function (start, end) {\r\n if (end === void 0) { end = start; }\r\n return new Selection(start.lineNumber, start.column, end.lineNumber, end.column);\r\n };\r\n /**\r\n * Create a `Selection` from an `ISelection`.\r\n */\r\n Selection.liftSelection = function (sel) {\r\n return new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);\r\n };\r\n /**\r\n * `a` equals `b`.\r\n */\r\n Selection.selectionsArrEqual = function (a, b) {\r\n if (a && !b || !a && b) {\r\n return false;\r\n }\r\n if (!a && !b) {\r\n return true;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0, len = a.length; i < len; i++) {\r\n if (!this.selectionsEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Test if `obj` is an `ISelection`.\r\n */\r\n Selection.isISelection = function (obj) {\r\n return (obj\r\n && (typeof obj.selectionStartLineNumber === 'number')\r\n && (typeof obj.selectionStartColumn === 'number')\r\n && (typeof obj.positionLineNumber === 'number')\r\n && (typeof obj.positionColumn === 'number'));\r\n };\r\n /**\r\n * Create with a direction.\r\n */\r\n Selection.createWithDirection = function (startLineNumber, startColumn, endLineNumber, endColumn, direction) {\r\n if (direction === 0 /* LTR */) {\r\n return new Selection(startLineNumber, startColumn, endLineNumber, endColumn);\r\n }\r\n return new Selection(endLineNumber, endColumn, startLineNumber, startColumn);\r\n };\r\n return Selection;\r\n}(_range_js__WEBPACK_IMPORTED_MODULE_1__[\"Range\"]));\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/core/selection.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/core/token.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Token\", function() { return Token; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TokenizationResult\", function() { return TokenizationResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TokenizationResult2\", function() { return TokenizationResult2; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar Token = /** @class */ (function () {\r\n function Token(offset, type, language) {\r\n this.offset = offset | 0; // @perf\r\n this.type = type;\r\n this.language = language;\r\n }\r\n Token.prototype.toString = function () {\r\n return '(' + this.offset + ', ' + this.type + ')';\r\n };\r\n return Token;\r\n}());\r\n\r\nvar TokenizationResult = /** @class */ (function () {\r\n function TokenizationResult(tokens, endState) {\r\n this.tokens = tokens;\r\n this.endState = endState;\r\n }\r\n return TokenizationResult;\r\n}());\r\n\r\nvar TokenizationResult2 = /** @class */ (function () {\r\n function TokenizationResult2(tokens, endState) {\r\n this.tokens = tokens;\r\n this.endState = endState;\r\n }\r\n return TokenizationResult2;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/core/token.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/core/uint.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Uint8Matrix", function() { return Uint8Matrix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toUint8", function() { return toUint8; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toUint32", function() { return toUint32; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toUint32Array", function() { return toUint32Array; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar Uint8Matrix = /** @class */ (function () {\r\n function Uint8Matrix(rows, cols, defaultValue) {\r\n var data = new Uint8Array(rows * cols);\r\n for (var i = 0, len = rows * cols; i < len; i++) {\r\n data[i] = defaultValue;\r\n }\r\n this._data = data;\r\n this.rows = rows;\r\n this.cols = cols;\r\n }\r\n Uint8Matrix.prototype.get = function (row, col) {\r\n return this._data[row * this.cols + col];\r\n };\r\n Uint8Matrix.prototype.set = function (row, col, value) {\r\n this._data[row * this.cols + col] = value;\r\n };\r\n return Uint8Matrix;\r\n}());\r\n\r\nfunction toUint8(v) {\r\n if (v < 0) {\r\n return 0;\r\n }\r\n if (v > 255 /* MAX_UINT_8 */) {\r\n return 255 /* MAX_UINT_8 */;\r\n }\r\n return v | 0;\r\n}\r\nfunction toUint32(v) {\r\n if (v < 0) {\r\n return 0;\r\n }\r\n if (v > 4294967295 /* MAX_UINT_32 */) {\r\n return 4294967295 /* MAX_UINT_32 */;\r\n }\r\n return v | 0;\r\n}\r\nfunction toUint32Array(arr) {\r\n var len = arr.length;\r\n var r = new Uint32Array(len);\r\n for (var i = 0; i < len; i++) {\r\n r[i] = toUint32(arr[i]);\r\n }\r\n return r;\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/core/uint.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/diff/diffComputer.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiffComputer", function() { return DiffComputer; });\n/* harmony import */ var _base_common_diff_diff_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../base/common/diff/diff.js */ "../node_modules/monaco-editor/esm/vs/base/common/diff/diff.js");\n/* harmony import */ var _base_common_strings_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../base/common/strings.js */ "../node_modules/monaco-editor/esm/vs/base/common/strings.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\nvar MAXIMUM_RUN_TIME = 5000; // 5 seconds\r\nvar MINIMUM_MATCHING_CHARACTER_LENGTH = 3;\r\nfunction computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) {\r\n var diffAlgo = new _base_common_diff_diff_js__WEBPACK_IMPORTED_MODULE_0__["LcsDiff"](originalSequence, modifiedSequence, continueProcessingPredicate);\r\n return diffAlgo.ComputeDiff(pretty);\r\n}\r\nvar LineMarkerSequence = /** @class */ (function () {\r\n function LineMarkerSequence(lines) {\r\n var startColumns = [];\r\n var endColumns = [];\r\n for (var i = 0, length_1 = lines.length; i < length_1; i++) {\r\n startColumns[i] = LineMarkerSequence._getFirstNonBlankColumn(lines[i], 1);\r\n endColumns[i] = LineMarkerSequence._getLastNonBlankColumn(lines[i], 1);\r\n }\r\n this._lines = lines;\r\n this._startColumns = startColumns;\r\n this._endColumns = endColumns;\r\n }\r\n LineMarkerSequence.prototype.getLength = function () {\r\n return this._lines.length;\r\n };\r\n LineMarkerSequence.prototype.getElementAtIndex = function (i) {\r\n return this._lines[i].substring(this._startColumns[i] - 1, this._endColumns[i] - 1);\r\n };\r\n LineMarkerSequence.prototype.getStartLineNumber = function (i) {\r\n return i + 1;\r\n };\r\n LineMarkerSequence.prototype.getEndLineNumber = function (i) {\r\n return i + 1;\r\n };\r\n LineMarkerSequence._getFirstNonBlankColumn = function (txt, defaultValue) {\r\n var r = _base_common_strings_js__WEBPACK_IMPORTED_MODULE_1__["firstNonWhitespaceIndex"](txt);\r\n if (r === -1) {\r\n return defaultValue;\r\n }\r\n return r + 1;\r\n };\r\n LineMarkerSequence._getLastNonBlankColumn = function (txt, defaultValue) {\r\n var r = _base_common_strings_js__WEBPACK_IMPORTED_MODULE_1__["lastNonWhitespaceIndex"](txt);\r\n if (r === -1) {\r\n return defaultValue;\r\n }\r\n return r + 2;\r\n };\r\n LineMarkerSequence.prototype.getCharSequence = function (shouldIgnoreTrimWhitespace, startIndex, endIndex) {\r\n var charCodes = [];\r\n var lineNumbers = [];\r\n var columns = [];\r\n var len = 0;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var lineContent = this._lines[index];\r\n var startColumn = (shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1);\r\n var endColumn = (shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1);\r\n for (var col = startColumn; col < endColumn; col++) {\r\n charCodes[len] = lineContent.charCodeAt(col - 1);\r\n lineNumbers[len] = index + 1;\r\n columns[len] = col;\r\n len++;\r\n }\r\n }\r\n return new CharSequence(charCodes, lineNumbers, columns);\r\n };\r\n return LineMarkerSequence;\r\n}());\r\nvar CharSequence = /** @class */ (function () {\r\n function CharSequence(charCodes, lineNumbers, columns) {\r\n this._charCodes = charCodes;\r\n this._lineNumbers = lineNumbers;\r\n this._columns = columns;\r\n }\r\n CharSequence.prototype.getLength = function () {\r\n return this._charCodes.length;\r\n };\r\n CharSequence.prototype.getElementAtIndex = function (i) {\r\n return this._charCodes[i];\r\n };\r\n CharSequence.prototype.getStartLineNumber = function (i) {\r\n return this._lineNumbers[i];\r\n };\r\n CharSequence.prototype.getStartColumn = function (i) {\r\n return this._columns[i];\r\n };\r\n CharSequence.prototype.getEndLineNumber = function (i) {\r\n return this._lineNumbers[i];\r\n };\r\n CharSequence.prototype.getEndColumn = function (i) {\r\n return this._columns[i] + 1;\r\n };\r\n return CharSequence;\r\n}());\r\nvar CharChange = /** @class */ (function () {\r\n function CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) {\r\n this.originalStartLineNumber = originalStartLineNumber;\r\n this.originalStartColumn = originalStartColumn;\r\n this.originalEndLineNumber = originalEndLineNumber;\r\n this.originalEndColumn = originalEndColumn;\r\n this.modifiedStartLineNumber = modifiedStartLineNumber;\r\n this.modifiedStartColumn = modifiedStartColumn;\r\n this.modifiedEndLineNumber = modifiedEndLineNumber;\r\n this.modifiedEndColumn = modifiedEndColumn;\r\n }\r\n CharChange.createFromDiffChange = function (diffChange, originalCharSequence, modifiedCharSequence) {\r\n var originalStartLineNumber;\r\n var originalStartColumn;\r\n var originalEndLineNumber;\r\n var originalEndColumn;\r\n var modifiedStartLineNumber;\r\n var modifiedStartColumn;\r\n var modifiedEndLineNumber;\r\n var modifiedEndColumn;\r\n if (diffChange.originalLength === 0) {\r\n originalStartLineNumber = 0;\r\n originalStartColumn = 0;\r\n originalEndLineNumber = 0;\r\n originalEndColumn = 0;\r\n }\r\n else {\r\n originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart);\r\n originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart);\r\n originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\r\n originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1);\r\n }\r\n if (diffChange.modifiedLength === 0) {\r\n modifiedStartLineNumber = 0;\r\n modifiedStartColumn = 0;\r\n modifiedEndLineNumber = 0;\r\n modifiedEndColumn = 0;\r\n }\r\n else {\r\n modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart);\r\n modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart);\r\n modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\r\n modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1);\r\n }\r\n return new CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn);\r\n };\r\n return CharChange;\r\n}());\r\nfunction postProcessCharChanges(rawChanges) {\r\n if (rawChanges.length <= 1) {\r\n return rawChanges;\r\n }\r\n var result = [rawChanges[0]];\r\n var prevChange = result[0];\r\n for (var i = 1, len = rawChanges.length; i < len; i++) {\r\n var currChange = rawChanges[i];\r\n var originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength);\r\n var modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength);\r\n // Both of the above should be equal, but the continueProcessingPredicate may prevent this from being true\r\n var matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength);\r\n if (matchingLength < MINIMUM_MATCHING_CHARACTER_LENGTH) {\r\n // Merge the current change into the previous one\r\n prevChange.originalLength = (currChange.originalStart + currChange.originalLength) - prevChange.originalStart;\r\n prevChange.modifiedLength = (currChange.modifiedStart + currChange.modifiedLength) - prevChange.modifiedStart;\r\n }\r\n else {\r\n // Add the current change\r\n result.push(currChange);\r\n prevChange = currChange;\r\n }\r\n }\r\n return result;\r\n}\r\nvar LineChange = /** @class */ (function () {\r\n function LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) {\r\n this.originalStartLineNumber = originalStartLineNumber;\r\n this.originalEndLineNumber = originalEndLineNumber;\r\n this.modifiedStartLineNumber = modifiedStartLineNumber;\r\n this.modifiedEndLineNumber = modifiedEndLineNumber;\r\n this.charChanges = charChanges;\r\n }\r\n LineChange.createFromDiffResult = function (shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueProcessingPredicate, shouldComputeCharChanges, shouldPostProcessCharChanges) {\r\n var originalStartLineNumber;\r\n var originalEndLineNumber;\r\n var modifiedStartLineNumber;\r\n var modifiedEndLineNumber;\r\n var charChanges = undefined;\r\n if (diffChange.originalLength === 0) {\r\n originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1;\r\n originalEndLineNumber = 0;\r\n }\r\n else {\r\n originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart);\r\n originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\r\n }\r\n if (diffChange.modifiedLength === 0) {\r\n modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1;\r\n modifiedEndLineNumber = 0;\r\n }\r\n else {\r\n modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart);\r\n modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\r\n }\r\n if (shouldComputeCharChanges && diffChange.originalLength !== 0 && diffChange.modifiedLength !== 0 && continueProcessingPredicate()) {\r\n var originalCharSequence = originalLineSequence.getCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1);\r\n var modifiedCharSequence = modifiedLineSequence.getCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1);\r\n var rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueProcessingPredicate, true);\r\n if (shouldPostProcessCharChanges) {\r\n rawChanges = postProcessCharChanges(rawChanges);\r\n }\r\n charChanges = [];\r\n for (var i = 0, length_2 = rawChanges.length; i < length_2; i++) {\r\n charChanges.push(CharChange.createFromDiffChange(rawChanges[i], originalCharSequence, modifiedCharSequence));\r\n }\r\n }\r\n return new LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges);\r\n };\r\n return LineChange;\r\n}());\r\nvar DiffComputer = /** @class */ (function () {\r\n function DiffComputer(originalLines, modifiedLines, opts) {\r\n this.shouldComputeCharChanges = opts.shouldComputeCharChanges;\r\n this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges;\r\n this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace;\r\n this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff;\r\n this.maximumRunTimeMs = MAXIMUM_RUN_TIME;\r\n this.originalLines = originalLines;\r\n this.modifiedLines = modifiedLines;\r\n this.original = new LineMarkerSequence(originalLines);\r\n this.modified = new LineMarkerSequence(modifiedLines);\r\n }\r\n DiffComputer.prototype.computeDiff = function () {\r\n if (this.original.getLength() === 1 && this.original.getElementAtIndex(0).length === 0) {\r\n // empty original => fast path\r\n return [{\r\n originalStartLineNumber: 1,\r\n originalEndLineNumber: 1,\r\n modifiedStartLineNumber: 1,\r\n modifiedEndLineNumber: this.modified.getLength(),\r\n charChanges: [{\r\n modifiedEndColumn: 0,\r\n modifiedEndLineNumber: 0,\r\n modifiedStartColumn: 0,\r\n modifiedStartLineNumber: 0,\r\n originalEndColumn: 0,\r\n originalEndLineNumber: 0,\r\n originalStartColumn: 0,\r\n originalStartLineNumber: 0\r\n }]\r\n }];\r\n }\r\n if (this.modified.getLength() === 1 && this.modified.getElementAtIndex(0).length === 0) {\r\n // empty modified => fast path\r\n return [{\r\n originalStartLineNumber: 1,\r\n originalEndLineNumber: this.original.getLength(),\r\n modifiedStartLineNumber: 1,\r\n modifiedEndLineNumber: 1,\r\n charChanges: [{\r\n modifiedEndColumn: 0,\r\n modifiedEndLineNumber: 0,\r\n modifiedStartColumn: 0,\r\n modifiedStartLineNumber: 0,\r\n originalEndColumn: 0,\r\n originalEndLineNumber: 0,\r\n originalStartColumn: 0,\r\n originalStartLineNumber: 0\r\n }]\r\n }];\r\n }\r\n this.computationStartTime = (new Date()).getTime();\r\n var rawChanges = computeDiff(this.original, this.modified, this._continueProcessingPredicate.bind(this), this.shouldMakePrettyDiff);\r\n // The diff is always computed with ignoring trim whitespace\r\n // This ensures we get the prettiest diff\r\n if (this.shouldIgnoreTrimWhitespace) {\r\n var lineChanges = [];\r\n for (var i = 0, length_3 = rawChanges.length; i < length_3; i++) {\r\n lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i], this.original, this.modified, this._continueProcessingPredicate.bind(this), this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\r\n }\r\n return lineChanges;\r\n }\r\n // Need to post-process and introduce changes where the trim whitespace is different\r\n // Note that we are looping starting at -1 to also cover the lines before the first change\r\n var result = [];\r\n var originalLineIndex = 0;\r\n var modifiedLineIndex = 0;\r\n for (var i = -1 /* !!!! */, len = rawChanges.length; i < len; i++) {\r\n var nextChange = (i + 1 < len ? rawChanges[i + 1] : null);\r\n var originalStop = (nextChange ? nextChange.originalStart : this.originalLines.length);\r\n var modifiedStop = (nextChange ? nextChange.modifiedStart : this.modifiedLines.length);\r\n while (originalLineIndex < originalStop && modifiedLineIndex < modifiedStop) {\r\n var originalLine = this.originalLines[originalLineIndex];\r\n var modifiedLine = this.modifiedLines[modifiedLineIndex];\r\n if (originalLine !== modifiedLine) {\r\n // These lines differ only in trim whitespace\r\n // Check the leading whitespace\r\n {\r\n var originalStartColumn = LineMarkerSequence._getFirstNonBlankColumn(originalLine, 1);\r\n var modifiedStartColumn = LineMarkerSequence._getFirstNonBlankColumn(modifiedLine, 1);\r\n while (originalStartColumn > 1 && modifiedStartColumn > 1) {\r\n var originalChar = originalLine.charCodeAt(originalStartColumn - 2);\r\n var modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2);\r\n if (originalChar !== modifiedChar) {\r\n break;\r\n }\r\n originalStartColumn--;\r\n modifiedStartColumn--;\r\n }\r\n if (originalStartColumn > 1 || modifiedStartColumn > 1) {\r\n this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn);\r\n }\r\n }\r\n // Check the trailing whitespace\r\n {\r\n var originalEndColumn = LineMarkerSequence._getLastNonBlankColumn(originalLine, 1);\r\n var modifiedEndColumn = LineMarkerSequence._getLastNonBlankColumn(modifiedLine, 1);\r\n var originalMaxColumn = originalLine.length + 1;\r\n var modifiedMaxColumn = modifiedLine.length + 1;\r\n while (originalEndColumn < originalMaxColumn && modifiedEndColumn < modifiedMaxColumn) {\r\n var originalChar = originalLine.charCodeAt(originalEndColumn - 1);\r\n var modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1);\r\n if (originalChar !== modifiedChar) {\r\n break;\r\n }\r\n originalEndColumn++;\r\n modifiedEndColumn++;\r\n }\r\n if (originalEndColumn < originalMaxColumn || modifiedEndColumn < modifiedMaxColumn) {\r\n this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn);\r\n }\r\n }\r\n }\r\n originalLineIndex++;\r\n modifiedLineIndex++;\r\n }\r\n if (nextChange) {\r\n // Emit the actual change\r\n result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this._continueProcessingPredicate.bind(this), this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\r\n originalLineIndex += nextChange.originalLength;\r\n modifiedLineIndex += nextChange.modifiedLength;\r\n }\r\n }\r\n return result;\r\n };\r\n DiffComputer.prototype._pushTrimWhitespaceCharChange = function (result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\r\n if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) {\r\n // Merged into previous\r\n return;\r\n }\r\n var charChanges = undefined;\r\n if (this.shouldComputeCharChanges) {\r\n charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)];\r\n }\r\n result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges));\r\n };\r\n DiffComputer.prototype._mergeTrimWhitespaceCharChange = function (result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\r\n var len = result.length;\r\n if (len === 0) {\r\n return false;\r\n }\r\n var prevChange = result[len - 1];\r\n if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) {\r\n // Don\'t merge with inserts/deletes\r\n return false;\r\n }\r\n if (prevChange.originalEndLineNumber + 1 === originalLineNumber && prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) {\r\n prevChange.originalEndLineNumber = originalLineNumber;\r\n prevChange.modifiedEndLineNumber = modifiedLineNumber;\r\n if (this.shouldComputeCharChanges) {\r\n prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n DiffComputer.prototype._continueProcessingPredicate = function () {\r\n if (this.maximumRunTimeMs === 0) {\r\n return true;\r\n }\r\n var now = (new Date()).getTime();\r\n return now - this.computationStartTime < this.maximumRunTimeMs;\r\n };\r\n return DiffComputer;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/diff/diffComputer.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/model/mirrorTextModel.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MirrorTextModel", function() { return MirrorTextModel; });\n/* harmony import */ var _core_position_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/position.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/position.js");\n/* harmony import */ var _viewModel_prefixSumComputer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../viewModel/prefixSumComputer.js */ "../node_modules/monaco-editor/esm/vs/editor/common/viewModel/prefixSumComputer.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\nvar MirrorTextModel = /** @class */ (function () {\r\n function MirrorTextModel(uri, lines, eol, versionId) {\r\n this._uri = uri;\r\n this._lines = lines;\r\n this._eol = eol;\r\n this._versionId = versionId;\r\n this._lineStarts = null;\r\n }\r\n MirrorTextModel.prototype.dispose = function () {\r\n this._lines.length = 0;\r\n };\r\n MirrorTextModel.prototype.getText = function () {\r\n return this._lines.join(this._eol);\r\n };\r\n MirrorTextModel.prototype.onEvents = function (e) {\r\n if (e.eol && e.eol !== this._eol) {\r\n this._eol = e.eol;\r\n this._lineStarts = null;\r\n }\r\n // Update my lines\r\n var changes = e.changes;\r\n for (var i = 0, len = changes.length; i < len; i++) {\r\n var change = changes[i];\r\n this._acceptDeleteRange(change.range);\r\n this._acceptInsertText(new _core_position_js__WEBPACK_IMPORTED_MODULE_0__["Position"](change.range.startLineNumber, change.range.startColumn), change.text);\r\n }\r\n this._versionId = e.versionId;\r\n };\r\n MirrorTextModel.prototype._ensureLineStarts = function () {\r\n if (!this._lineStarts) {\r\n var eolLength = this._eol.length;\r\n var linesLength = this._lines.length;\r\n var lineStartValues = new Uint32Array(linesLength);\r\n for (var i = 0; i < linesLength; i++) {\r\n lineStartValues[i] = this._lines[i].length + eolLength;\r\n }\r\n this._lineStarts = new _viewModel_prefixSumComputer_js__WEBPACK_IMPORTED_MODULE_1__["PrefixSumComputer"](lineStartValues);\r\n }\r\n };\r\n /**\r\n * All changes to a line\'s text go through this method\r\n */\r\n MirrorTextModel.prototype._setLineText = function (lineIndex, newValue) {\r\n this._lines[lineIndex] = newValue;\r\n if (this._lineStarts) {\r\n // update prefix sum\r\n this._lineStarts.changeValue(lineIndex, this._lines[lineIndex].length + this._eol.length);\r\n }\r\n };\r\n MirrorTextModel.prototype._acceptDeleteRange = function (range) {\r\n if (range.startLineNumber === range.endLineNumber) {\r\n if (range.startColumn === range.endColumn) {\r\n // Nothing to delete\r\n return;\r\n }\r\n // Delete text on the affected line\r\n this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1)\r\n + this._lines[range.startLineNumber - 1].substring(range.endColumn - 1));\r\n return;\r\n }\r\n // Take remaining text on last line and append it to remaining text on first line\r\n this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1)\r\n + this._lines[range.endLineNumber - 1].substring(range.endColumn - 1));\r\n // Delete middle lines\r\n this._lines.splice(range.startLineNumber, range.endLineNumber - range.startLineNumber);\r\n if (this._lineStarts) {\r\n // update prefix sum\r\n this._lineStarts.removeValues(range.startLineNumber, range.endLineNumber - range.startLineNumber);\r\n }\r\n };\r\n MirrorTextModel.prototype._acceptInsertText = function (position, insertText) {\r\n if (insertText.length === 0) {\r\n // Nothing to insert\r\n return;\r\n }\r\n var insertLines = insertText.split(/\\r\\n|\\r|\\n/);\r\n if (insertLines.length === 1) {\r\n // Inserting text on one line\r\n this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1)\r\n + insertLines[0]\r\n + this._lines[position.lineNumber - 1].substring(position.column - 1));\r\n return;\r\n }\r\n // Append overflowing text from first line to the end of text to insert\r\n insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1);\r\n // Delete overflowing text from first line and insert text on first line\r\n this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1)\r\n + insertLines[0]);\r\n // Insert new lines & store lengths\r\n var newLengths = new Uint32Array(insertLines.length - 1);\r\n for (var i = 1; i < insertLines.length; i++) {\r\n this._lines.splice(position.lineNumber + i - 1, 0, insertLines[i]);\r\n newLengths[i - 1] = insertLines[i].length + this._eol.length;\r\n }\r\n if (this._lineStarts) {\r\n // update prefix sum\r\n this._lineStarts.insertValues(position.lineNumber, newLengths);\r\n }\r\n };\r\n return MirrorTextModel;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/model/mirrorTextModel.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/model/wordHelper.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"USUAL_WORD_SEPARATORS\", function() { return USUAL_WORD_SEPARATORS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_WORD_REGEXP\", function() { return DEFAULT_WORD_REGEXP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ensureValidWordDefinition\", function() { return ensureValidWordDefinition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getWordAtText\", function() { return getWordAtText; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?';\r\n/**\r\n * Create a word definition regular expression based on default word separators.\r\n * Optionally provide allowed separators that should be included in words.\r\n *\r\n * The default would look like this:\r\n * /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g\r\n */\r\nfunction createWordRegExp(allowInWords) {\r\n if (allowInWords === void 0) { allowInWords = ''; }\r\n var source = '(-?\\\\d*\\\\.\\\\d\\\\w*)|([^';\r\n for (var i = 0; i < USUAL_WORD_SEPARATORS.length; i++) {\r\n if (allowInWords.indexOf(USUAL_WORD_SEPARATORS[i]) >= 0) {\r\n continue;\r\n }\r\n source += '\\\\' + USUAL_WORD_SEPARATORS[i];\r\n }\r\n source += '\\\\s]+)';\r\n return new RegExp(source, 'g');\r\n}\r\n// catches numbers (including floating numbers) in the first group, and alphanum in the second\r\nvar DEFAULT_WORD_REGEXP = createWordRegExp();\r\nfunction ensureValidWordDefinition(wordDefinition) {\r\n var result = DEFAULT_WORD_REGEXP;\r\n if (wordDefinition && (wordDefinition instanceof RegExp)) {\r\n if (!wordDefinition.global) {\r\n var flags = 'g';\r\n if (wordDefinition.ignoreCase) {\r\n flags += 'i';\r\n }\r\n if (wordDefinition.multiline) {\r\n flags += 'm';\r\n }\r\n result = new RegExp(wordDefinition.source, flags);\r\n }\r\n else {\r\n result = wordDefinition;\r\n }\r\n }\r\n result.lastIndex = 0;\r\n return result;\r\n}\r\nfunction getWordAtPosFast(column, wordDefinition, text, textOffset) {\r\n // find whitespace enclosed text around column and match from there\r\n var pos = column - 1 - textOffset;\r\n var start = text.lastIndexOf(' ', pos - 1) + 1;\r\n var end = text.indexOf(' ', pos);\r\n if (end === -1) {\r\n end = text.length;\r\n }\r\n wordDefinition.lastIndex = start;\r\n var match;\r\n while (match = wordDefinition.exec(text)) {\r\n var matchIndex = match.index || 0;\r\n if (matchIndex <= pos && wordDefinition.lastIndex >= pos) {\r\n return {\r\n word: match[0],\r\n startColumn: textOffset + 1 + matchIndex,\r\n endColumn: textOffset + 1 + wordDefinition.lastIndex\r\n };\r\n }\r\n }\r\n return null;\r\n}\r\nfunction getWordAtPosSlow(column, wordDefinition, text, textOffset) {\r\n // matches all words starting at the beginning\r\n // of the input until it finds a match that encloses\r\n // the desired column. slow but correct\r\n var pos = column - 1 - textOffset;\r\n wordDefinition.lastIndex = 0;\r\n var match;\r\n while (match = wordDefinition.exec(text)) {\r\n var matchIndex = match.index || 0;\r\n if (matchIndex > pos) {\r\n // |nW -> matched only after the pos\r\n return null;\r\n }\r\n else if (wordDefinition.lastIndex >= pos) {\r\n // W|W -> match encloses pos\r\n return {\r\n word: match[0],\r\n startColumn: textOffset + 1 + matchIndex,\r\n endColumn: textOffset + 1 + wordDefinition.lastIndex\r\n };\r\n }\r\n }\r\n return null;\r\n}\r\nfunction getWordAtText(column, wordDefinition, text, textOffset) {\r\n // if `words` can contain whitespace character we have to use the slow variant\r\n // otherwise we use the fast variant of finding a word\r\n wordDefinition.lastIndex = 0;\r\n var match = wordDefinition.exec(text);\r\n if (!match) {\r\n return null;\r\n }\r\n // todo@joh the `match` could already be the (first) word\r\n var ret = match[0].indexOf(' ') >= 0\r\n // did match a word which contains a space character -> use slow word find\r\n ? getWordAtPosSlow(column, wordDefinition, text, textOffset)\r\n // sane word definition -> use fast word find\r\n : getWordAtPosFast(column, wordDefinition, text, textOffset);\r\n // both (getWordAtPosFast and getWordAtPosSlow) leave the wordDefinition-RegExp\r\n // in an undefined state and to not confuse other users of the wordDefinition\r\n // we reset the lastIndex\r\n wordDefinition.lastIndex = 0;\r\n return ret;\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/model/wordHelper.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/modes/linkComputer.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeLinks", function() { return computeLinks; });\n/* harmony import */ var _core_characterClassifier_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/characterClassifier.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js");\n/* harmony import */ var _core_uint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/uint.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/uint.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\nvar StateMachine = /** @class */ (function () {\r\n function StateMachine(edges) {\r\n var maxCharCode = 0;\r\n var maxState = 0 /* Invalid */;\r\n for (var i = 0, len = edges.length; i < len; i++) {\r\n var _a = edges[i], from = _a[0], chCode = _a[1], to = _a[2];\r\n if (chCode > maxCharCode) {\r\n maxCharCode = chCode;\r\n }\r\n if (from > maxState) {\r\n maxState = from;\r\n }\r\n if (to > maxState) {\r\n maxState = to;\r\n }\r\n }\r\n maxCharCode++;\r\n maxState++;\r\n var states = new _core_uint_js__WEBPACK_IMPORTED_MODULE_1__["Uint8Matrix"](maxState, maxCharCode, 0 /* Invalid */);\r\n for (var i = 0, len = edges.length; i < len; i++) {\r\n var _b = edges[i], from = _b[0], chCode = _b[1], to = _b[2];\r\n states.set(from, chCode, to);\r\n }\r\n this._states = states;\r\n this._maxCharCode = maxCharCode;\r\n }\r\n StateMachine.prototype.nextState = function (currentState, chCode) {\r\n if (chCode < 0 || chCode >= this._maxCharCode) {\r\n return 0 /* Invalid */;\r\n }\r\n return this._states.get(currentState, chCode);\r\n };\r\n return StateMachine;\r\n}());\r\n// State machine for http:// or https:// or file://\r\nvar _stateMachine = null;\r\nfunction getStateMachine() {\r\n if (_stateMachine === null) {\r\n _stateMachine = new StateMachine([\r\n [1 /* Start */, 104 /* h */, 2 /* H */],\r\n [1 /* Start */, 72 /* H */, 2 /* H */],\r\n [1 /* Start */, 102 /* f */, 6 /* F */],\r\n [1 /* Start */, 70 /* F */, 6 /* F */],\r\n [2 /* H */, 116 /* t */, 3 /* HT */],\r\n [2 /* H */, 84 /* T */, 3 /* HT */],\r\n [3 /* HT */, 116 /* t */, 4 /* HTT */],\r\n [3 /* HT */, 84 /* T */, 4 /* HTT */],\r\n [4 /* HTT */, 112 /* p */, 5 /* HTTP */],\r\n [4 /* HTT */, 80 /* P */, 5 /* HTTP */],\r\n [5 /* HTTP */, 115 /* s */, 9 /* BeforeColon */],\r\n [5 /* HTTP */, 83 /* S */, 9 /* BeforeColon */],\r\n [5 /* HTTP */, 58 /* Colon */, 10 /* AfterColon */],\r\n [6 /* F */, 105 /* i */, 7 /* FI */],\r\n [6 /* F */, 73 /* I */, 7 /* FI */],\r\n [7 /* FI */, 108 /* l */, 8 /* FIL */],\r\n [7 /* FI */, 76 /* L */, 8 /* FIL */],\r\n [8 /* FIL */, 101 /* e */, 9 /* BeforeColon */],\r\n [8 /* FIL */, 69 /* E */, 9 /* BeforeColon */],\r\n [9 /* BeforeColon */, 58 /* Colon */, 10 /* AfterColon */],\r\n [10 /* AfterColon */, 47 /* Slash */, 11 /* AlmostThere */],\r\n [11 /* AlmostThere */, 47 /* Slash */, 12 /* End */],\r\n ]);\r\n }\r\n return _stateMachine;\r\n}\r\nvar _classifier = null;\r\nfunction getClassifier() {\r\n if (_classifier === null) {\r\n _classifier = new _core_characterClassifier_js__WEBPACK_IMPORTED_MODULE_0__["CharacterClassifier"](0 /* None */);\r\n var FORCE_TERMINATION_CHARACTERS = \' \\t<>\\\'\\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…\';\r\n for (var i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {\r\n _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* ForceTermination */);\r\n }\r\n var CANNOT_END_WITH_CHARACTERS = \'.,;\';\r\n for (var i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {\r\n _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CannotEndIn */);\r\n }\r\n }\r\n return _classifier;\r\n}\r\nvar LinkComputer = /** @class */ (function () {\r\n function LinkComputer() {\r\n }\r\n LinkComputer._createLink = function (classifier, line, lineNumber, linkBeginIndex, linkEndIndex) {\r\n // Do not allow to end link in certain characters...\r\n var lastIncludedCharIndex = linkEndIndex - 1;\r\n do {\r\n var chCode = line.charCodeAt(lastIncludedCharIndex);\r\n var chClass = classifier.get(chCode);\r\n if (chClass !== 2 /* CannotEndIn */) {\r\n break;\r\n }\r\n lastIncludedCharIndex--;\r\n } while (lastIncludedCharIndex > linkBeginIndex);\r\n // Handle links enclosed in parens, square brackets and curlys.\r\n if (linkBeginIndex > 0) {\r\n var charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1);\r\n var lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex);\r\n if ((charCodeBeforeLink === 40 /* OpenParen */ && lastCharCodeInLink === 41 /* CloseParen */)\r\n || (charCodeBeforeLink === 91 /* OpenSquareBracket */ && lastCharCodeInLink === 93 /* CloseSquareBracket */)\r\n || (charCodeBeforeLink === 123 /* OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CloseCurlyBrace */)) {\r\n // Do not end in ) if ( is before the link start\r\n // Do not end in ] if [ is before the link start\r\n // Do not end in } if { is before the link start\r\n lastIncludedCharIndex--;\r\n }\r\n }\r\n return {\r\n range: {\r\n startLineNumber: lineNumber,\r\n startColumn: linkBeginIndex + 1,\r\n endLineNumber: lineNumber,\r\n endColumn: lastIncludedCharIndex + 2\r\n },\r\n url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1)\r\n };\r\n };\r\n LinkComputer.computeLinks = function (model) {\r\n var stateMachine = getStateMachine();\r\n var classifier = getClassifier();\r\n var result = [];\r\n for (var i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) {\r\n var line = model.getLineContent(i);\r\n var len = line.length;\r\n var j = 0;\r\n var linkBeginIndex = 0;\r\n var linkBeginChCode = 0;\r\n var state = 1 /* Start */;\r\n var hasOpenParens = false;\r\n var hasOpenSquareBracket = false;\r\n var hasOpenCurlyBracket = false;\r\n while (j < len) {\r\n var resetStateMachine = false;\r\n var chCode = line.charCodeAt(j);\r\n if (state === 13 /* Accept */) {\r\n var chClass = void 0;\r\n switch (chCode) {\r\n case 40 /* OpenParen */:\r\n hasOpenParens = true;\r\n chClass = 0 /* None */;\r\n break;\r\n case 41 /* CloseParen */:\r\n chClass = (hasOpenParens ? 0 /* None */ : 1 /* ForceTermination */);\r\n break;\r\n case 91 /* OpenSquareBracket */:\r\n hasOpenSquareBracket = true;\r\n chClass = 0 /* None */;\r\n break;\r\n case 93 /* CloseSquareBracket */:\r\n chClass = (hasOpenSquareBracket ? 0 /* None */ : 1 /* ForceTermination */);\r\n break;\r\n case 123 /* OpenCurlyBrace */:\r\n hasOpenCurlyBracket = true;\r\n chClass = 0 /* None */;\r\n break;\r\n case 125 /* CloseCurlyBrace */:\r\n chClass = (hasOpenCurlyBracket ? 0 /* None */ : 1 /* ForceTermination */);\r\n break;\r\n /* The following three rules make it that \' or " or ` are allowed inside links if the link began with a different one */\r\n case 39 /* SingleQuote */:\r\n chClass = (linkBeginChCode === 34 /* DoubleQuote */ || linkBeginChCode === 96 /* BackTick */) ? 0 /* None */ : 1 /* ForceTermination */;\r\n break;\r\n case 34 /* DoubleQuote */:\r\n chClass = (linkBeginChCode === 39 /* SingleQuote */ || linkBeginChCode === 96 /* BackTick */) ? 0 /* None */ : 1 /* ForceTermination */;\r\n break;\r\n case 96 /* BackTick */:\r\n chClass = (linkBeginChCode === 39 /* SingleQuote */ || linkBeginChCode === 34 /* DoubleQuote */) ? 0 /* None */ : 1 /* ForceTermination */;\r\n break;\r\n default:\r\n chClass = classifier.get(chCode);\r\n }\r\n // Check if character terminates link\r\n if (chClass === 1 /* ForceTermination */) {\r\n result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j));\r\n resetStateMachine = true;\r\n }\r\n }\r\n else if (state === 12 /* End */) {\r\n var chClass = classifier.get(chCode);\r\n // Check if character terminates link\r\n if (chClass === 1 /* ForceTermination */) {\r\n resetStateMachine = true;\r\n }\r\n else {\r\n state = 13 /* Accept */;\r\n }\r\n }\r\n else {\r\n state = stateMachine.nextState(state, chCode);\r\n if (state === 0 /* Invalid */) {\r\n resetStateMachine = true;\r\n }\r\n }\r\n if (resetStateMachine) {\r\n state = 1 /* Start */;\r\n hasOpenParens = false;\r\n hasOpenSquareBracket = false;\r\n hasOpenCurlyBracket = false;\r\n // Record where the link started\r\n linkBeginIndex = j + 1;\r\n linkBeginChCode = chCode;\r\n }\r\n j++;\r\n }\r\n if (state === 13 /* Accept */) {\r\n result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len));\r\n }\r\n }\r\n return result;\r\n };\r\n return LinkComputer;\r\n}());\r\n/**\r\n * Returns an array of all links contains in the provided\r\n * document. *Note* that this operation is computational\r\n * expensive and should not run in the UI thread.\r\n */\r\nfunction computeLinks(model) {\r\n if (!model || typeof model.getLineCount !== \'function\' || typeof model.getLineContent !== \'function\') {\r\n // Unknown caller!\r\n return [];\r\n }\r\n return LinkComputer.computeLinks(model);\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/modes/linkComputer.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/modes/supports/inplaceReplaceSupport.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BasicInplaceReplace\", function() { return BasicInplaceReplace; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar BasicInplaceReplace = /** @class */ (function () {\r\n function BasicInplaceReplace() {\r\n this._defaultValueSet = [\r\n ['true', 'false'],\r\n ['True', 'False'],\r\n ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'],\r\n ['public', 'protected', 'private'],\r\n ];\r\n }\r\n BasicInplaceReplace.prototype.navigateValueSet = function (range1, text1, range2, text2, up) {\r\n if (range1 && text1) {\r\n var result = this.doNavigateValueSet(text1, up);\r\n if (result) {\r\n return {\r\n range: range1,\r\n value: result\r\n };\r\n }\r\n }\r\n if (range2 && text2) {\r\n var result = this.doNavigateValueSet(text2, up);\r\n if (result) {\r\n return {\r\n range: range2,\r\n value: result\r\n };\r\n }\r\n }\r\n return null;\r\n };\r\n BasicInplaceReplace.prototype.doNavigateValueSet = function (text, up) {\r\n var numberResult = this.numberReplace(text, up);\r\n if (numberResult !== null) {\r\n return numberResult;\r\n }\r\n return this.textReplace(text, up);\r\n };\r\n BasicInplaceReplace.prototype.numberReplace = function (value, up) {\r\n var precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1));\r\n var n1 = Number(value);\r\n var n2 = parseFloat(value);\r\n if (!isNaN(n1) && !isNaN(n2) && n1 === n2) {\r\n if (n1 === 0 && !up) {\r\n return null; // don't do negative\r\n //\t\t\t} else if(n1 === 9 && up) {\r\n //\t\t\t\treturn null; // don't insert 10 into a number\r\n }\r\n else {\r\n n1 = Math.floor(n1 * precision);\r\n n1 += up ? precision : -precision;\r\n return String(n1 / precision);\r\n }\r\n }\r\n return null;\r\n };\r\n BasicInplaceReplace.prototype.textReplace = function (value, up) {\r\n return this.valueSetsReplace(this._defaultValueSet, value, up);\r\n };\r\n BasicInplaceReplace.prototype.valueSetsReplace = function (valueSets, value, up) {\r\n var result = null;\r\n for (var i = 0, len = valueSets.length; result === null && i < len; i++) {\r\n result = this.valueSetReplace(valueSets[i], value, up);\r\n }\r\n return result;\r\n };\r\n BasicInplaceReplace.prototype.valueSetReplace = function (valueSet, value, up) {\r\n var idx = valueSet.indexOf(value);\r\n if (idx >= 0) {\r\n idx += up ? +1 : -1;\r\n if (idx < 0) {\r\n idx = valueSet.length - 1;\r\n }\r\n else {\r\n idx %= valueSet.length;\r\n }\r\n return valueSet[idx];\r\n }\r\n return null;\r\n };\r\n BasicInplaceReplace.INSTANCE = new BasicInplaceReplace();\r\n return BasicInplaceReplace;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/modes/supports/inplaceReplaceSupport.js?")},"../node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseEditorSimpleWorker", function() { return BaseEditorSimpleWorker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditorSimpleWorkerImpl", function() { return EditorSimpleWorkerImpl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "create", function() { return create; });\n/* harmony import */ var _base_common_arrays_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../base/common/arrays.js */ "../node_modules/monaco-editor/esm/vs/base/common/arrays.js");\n/* harmony import */ var _base_common_diff_diff_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../base/common/diff/diff.js */ "../node_modules/monaco-editor/esm/vs/base/common/diff/diff.js");\n/* harmony import */ var _base_common_iterator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../base/common/iterator.js */ "../node_modules/monaco-editor/esm/vs/base/common/iterator.js");\n/* harmony import */ var _base_common_platform_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../base/common/platform.js */ "../node_modules/monaco-editor/esm/vs/base/common/platform.js");\n/* harmony import */ var _base_common_uri_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../base/common/uri.js */ "../node_modules/monaco-editor/esm/vs/base/common/uri.js");\n/* harmony import */ var _core_position_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/position.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/position.js");\n/* harmony import */ var _core_range_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/range.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/range.js");\n/* harmony import */ var _diff_diffComputer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../diff/diffComputer.js */ "../node_modules/monaco-editor/esm/vs/editor/common/diff/diffComputer.js");\n/* harmony import */ var _model_mirrorTextModel_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../model/mirrorTextModel.js */ "../node_modules/monaco-editor/esm/vs/editor/common/model/mirrorTextModel.js");\n/* harmony import */ var _model_wordHelper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../model/wordHelper.js */ "../node_modules/monaco-editor/esm/vs/editor/common/model/wordHelper.js");\n/* harmony import */ var _modes_linkComputer_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../modes/linkComputer.js */ "../node_modules/monaco-editor/esm/vs/editor/common/modes/linkComputer.js");\n/* harmony import */ var _modes_supports_inplaceReplaceSupport_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../modes/supports/inplaceReplaceSupport.js */ "../node_modules/monaco-editor/esm/vs/editor/common/modes/supports/inplaceReplaceSupport.js");\n/* harmony import */ var _standalone_standaloneBase_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../standalone/standaloneBase.js */ "../node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneBase.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * @internal\r\n */\r\nvar MirrorModel = /** @class */ (function (_super) {\r\n __extends(MirrorModel, _super);\r\n function MirrorModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(MirrorModel.prototype, "uri", {\r\n get: function () {\r\n return this._uri;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MirrorModel.prototype, "version", {\r\n get: function () {\r\n return this._versionId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MirrorModel.prototype, "eol", {\r\n get: function () {\r\n return this._eol;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n MirrorModel.prototype.getValue = function () {\r\n return this.getText();\r\n };\r\n MirrorModel.prototype.getLinesContent = function () {\r\n return this._lines.slice(0);\r\n };\r\n MirrorModel.prototype.getLineCount = function () {\r\n return this._lines.length;\r\n };\r\n MirrorModel.prototype.getLineContent = function (lineNumber) {\r\n return this._lines[lineNumber - 1];\r\n };\r\n MirrorModel.prototype.getWordAtPosition = function (position, wordDefinition) {\r\n var wordAtText = Object(_model_wordHelper_js__WEBPACK_IMPORTED_MODULE_9__["getWordAtText"])(position.column, Object(_model_wordHelper_js__WEBPACK_IMPORTED_MODULE_9__["ensureValidWordDefinition"])(wordDefinition), this._lines[position.lineNumber - 1], 0);\r\n if (wordAtText) {\r\n return new _core_range_js__WEBPACK_IMPORTED_MODULE_6__["Range"](position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn);\r\n }\r\n return null;\r\n };\r\n MirrorModel.prototype.getWordUntilPosition = function (position, wordDefinition) {\r\n var wordAtPosition = this.getWordAtPosition(position, wordDefinition);\r\n if (!wordAtPosition) {\r\n return {\r\n word: \'\',\r\n startColumn: position.column,\r\n endColumn: position.column\r\n };\r\n }\r\n return {\r\n word: this._lines[position.lineNumber - 1].substring(wordAtPosition.startColumn - 1, position.column - 1),\r\n startColumn: wordAtPosition.startColumn,\r\n endColumn: position.column\r\n };\r\n };\r\n MirrorModel.prototype.createWordIterator = function (wordDefinition) {\r\n var _this = this;\r\n var obj;\r\n var lineNumber = 0;\r\n var lineText;\r\n var wordRangesIdx = 0;\r\n var wordRanges = [];\r\n var next = function () {\r\n if (wordRangesIdx < wordRanges.length) {\r\n var value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end);\r\n wordRangesIdx += 1;\r\n if (!obj) {\r\n obj = { done: false, value: value };\r\n }\r\n else {\r\n obj.value = value;\r\n }\r\n return obj;\r\n }\r\n else if (lineNumber >= _this._lines.length) {\r\n return _base_common_iterator_js__WEBPACK_IMPORTED_MODULE_2__["FIN"];\r\n }\r\n else {\r\n lineText = _this._lines[lineNumber];\r\n wordRanges = _this._wordenize(lineText, wordDefinition);\r\n wordRangesIdx = 0;\r\n lineNumber += 1;\r\n return next();\r\n }\r\n };\r\n return { next: next };\r\n };\r\n MirrorModel.prototype.getLineWords = function (lineNumber, wordDefinition) {\r\n var content = this._lines[lineNumber - 1];\r\n var ranges = this._wordenize(content, wordDefinition);\r\n var words = [];\r\n for (var _i = 0, ranges_1 = ranges; _i < ranges_1.length; _i++) {\r\n var range = ranges_1[_i];\r\n words.push({\r\n word: content.substring(range.start, range.end),\r\n startColumn: range.start + 1,\r\n endColumn: range.end + 1\r\n });\r\n }\r\n return words;\r\n };\r\n MirrorModel.prototype._wordenize = function (content, wordDefinition) {\r\n var result = [];\r\n var match;\r\n wordDefinition.lastIndex = 0; // reset lastIndex just to be sure\r\n while (match = wordDefinition.exec(content)) {\r\n if (match[0].length === 0) {\r\n // it did match the empty string\r\n break;\r\n }\r\n result.push({ start: match.index, end: match.index + match[0].length });\r\n }\r\n return result;\r\n };\r\n MirrorModel.prototype.getValueInRange = function (range) {\r\n range = this._validateRange(range);\r\n if (range.startLineNumber === range.endLineNumber) {\r\n return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1);\r\n }\r\n var lineEnding = this._eol;\r\n var startLineIndex = range.startLineNumber - 1;\r\n var endLineIndex = range.endLineNumber - 1;\r\n var resultLines = [];\r\n resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1));\r\n for (var i = startLineIndex + 1; i < endLineIndex; i++) {\r\n resultLines.push(this._lines[i]);\r\n }\r\n resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1));\r\n return resultLines.join(lineEnding);\r\n };\r\n MirrorModel.prototype.offsetAt = function (position) {\r\n position = this._validatePosition(position);\r\n this._ensureLineStarts();\r\n return this._lineStarts.getAccumulatedValue(position.lineNumber - 2) + (position.column - 1);\r\n };\r\n MirrorModel.prototype.positionAt = function (offset) {\r\n offset = Math.floor(offset);\r\n offset = Math.max(0, offset);\r\n this._ensureLineStarts();\r\n var out = this._lineStarts.getIndexOf(offset);\r\n var lineLength = this._lines[out.index].length;\r\n // Ensure we return a valid position\r\n return {\r\n lineNumber: 1 + out.index,\r\n column: 1 + Math.min(out.remainder, lineLength)\r\n };\r\n };\r\n MirrorModel.prototype._validateRange = function (range) {\r\n var start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn });\r\n var end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn });\r\n if (start.lineNumber !== range.startLineNumber\r\n || start.column !== range.startColumn\r\n || end.lineNumber !== range.endLineNumber\r\n || end.column !== range.endColumn) {\r\n return {\r\n startLineNumber: start.lineNumber,\r\n startColumn: start.column,\r\n endLineNumber: end.lineNumber,\r\n endColumn: end.column\r\n };\r\n }\r\n return range;\r\n };\r\n MirrorModel.prototype._validatePosition = function (position) {\r\n if (!_core_position_js__WEBPACK_IMPORTED_MODULE_5__["Position"].isIPosition(position)) {\r\n throw new Error(\'bad position\');\r\n }\r\n var lineNumber = position.lineNumber, column = position.column;\r\n var hasChanged = false;\r\n if (lineNumber < 1) {\r\n lineNumber = 1;\r\n column = 1;\r\n hasChanged = true;\r\n }\r\n else if (lineNumber > this._lines.length) {\r\n lineNumber = this._lines.length;\r\n column = this._lines[lineNumber - 1].length + 1;\r\n hasChanged = true;\r\n }\r\n else {\r\n var maxCharacter = this._lines[lineNumber - 1].length + 1;\r\n if (column < 1) {\r\n column = 1;\r\n hasChanged = true;\r\n }\r\n else if (column > maxCharacter) {\r\n column = maxCharacter;\r\n hasChanged = true;\r\n }\r\n }\r\n if (!hasChanged) {\r\n return position;\r\n }\r\n else {\r\n return { lineNumber: lineNumber, column: column };\r\n }\r\n };\r\n return MirrorModel;\r\n}(_model_mirrorTextModel_js__WEBPACK_IMPORTED_MODULE_8__["MirrorTextModel"]));\r\n/**\r\n * @internal\r\n */\r\nvar BaseEditorSimpleWorker = /** @class */ (function () {\r\n function BaseEditorSimpleWorker(foreignModuleFactory) {\r\n this._foreignModuleFactory = foreignModuleFactory;\r\n this._foreignModule = null;\r\n }\r\n // ---- BEGIN diff --------------------------------------------------------------------------\r\n BaseEditorSimpleWorker.prototype.computeDiff = function (originalUrl, modifiedUrl, ignoreTrimWhitespace) {\r\n var original = this._getModel(originalUrl);\r\n var modified = this._getModel(modifiedUrl);\r\n if (!original || !modified) {\r\n return Promise.resolve(null);\r\n }\r\n var originalLines = original.getLinesContent();\r\n var modifiedLines = modified.getLinesContent();\r\n var diffComputer = new _diff_diffComputer_js__WEBPACK_IMPORTED_MODULE_7__["DiffComputer"](originalLines, modifiedLines, {\r\n shouldComputeCharChanges: true,\r\n shouldPostProcessCharChanges: true,\r\n shouldIgnoreTrimWhitespace: ignoreTrimWhitespace,\r\n shouldMakePrettyDiff: true\r\n });\r\n var changes = diffComputer.computeDiff();\r\n var identical = (changes.length > 0 ? false : this._modelsAreIdentical(original, modified));\r\n return Promise.resolve({\r\n identical: identical,\r\n changes: changes\r\n });\r\n };\r\n BaseEditorSimpleWorker.prototype._modelsAreIdentical = function (original, modified) {\r\n var originalLineCount = original.getLineCount();\r\n var modifiedLineCount = modified.getLineCount();\r\n if (originalLineCount !== modifiedLineCount) {\r\n return false;\r\n }\r\n for (var line = 1; line <= originalLineCount; line++) {\r\n var originalLine = original.getLineContent(line);\r\n var modifiedLine = modified.getLineContent(line);\r\n if (originalLine !== modifiedLine) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n BaseEditorSimpleWorker.prototype.computeMoreMinimalEdits = function (modelUrl, edits) {\r\n var model = this._getModel(modelUrl);\r\n if (!model) {\r\n return Promise.resolve(edits);\r\n }\r\n var result = [];\r\n var lastEol = undefined;\r\n edits = Object(_base_common_arrays_js__WEBPACK_IMPORTED_MODULE_0__["mergeSort"])(edits, function (a, b) {\r\n if (a.range && b.range) {\r\n return _core_range_js__WEBPACK_IMPORTED_MODULE_6__["Range"].compareRangesUsingStarts(a.range, b.range);\r\n }\r\n // eol only changes should go to the end\r\n var aRng = a.range ? 0 : 1;\r\n var bRng = b.range ? 0 : 1;\r\n return aRng - bRng;\r\n });\r\n for (var _i = 0, edits_1 = edits; _i < edits_1.length; _i++) {\r\n var _a = edits_1[_i], range = _a.range, text = _a.text, eol = _a.eol;\r\n if (typeof eol === \'number\') {\r\n lastEol = eol;\r\n }\r\n if (!range) {\r\n // eol-change only\r\n continue;\r\n }\r\n var original = model.getValueInRange(range);\r\n text = text.replace(/\\r\\n|\\n|\\r/g, model.eol);\r\n if (original === text) {\r\n // noop\r\n continue;\r\n }\r\n // make sure diff won\'t take too long\r\n if (Math.max(text.length, original.length) > BaseEditorSimpleWorker._diffLimit) {\r\n result.push({ range: range, text: text });\r\n continue;\r\n }\r\n // compute diff between original and edit.text\r\n var changes = Object(_base_common_diff_diff_js__WEBPACK_IMPORTED_MODULE_1__["stringDiff"])(original, text, false);\r\n var editOffset = model.offsetAt(_core_range_js__WEBPACK_IMPORTED_MODULE_6__["Range"].lift(range).getStartPosition());\r\n for (var _b = 0, changes_1 = changes; _b < changes_1.length; _b++) {\r\n var change = changes_1[_b];\r\n var start = model.positionAt(editOffset + change.originalStart);\r\n var end = model.positionAt(editOffset + change.originalStart + change.originalLength);\r\n var newEdit = {\r\n text: text.substr(change.modifiedStart, change.modifiedLength),\r\n range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column }\r\n };\r\n if (model.getValueInRange(newEdit.range) !== newEdit.text) {\r\n result.push(newEdit);\r\n }\r\n }\r\n }\r\n if (typeof lastEol === \'number\') {\r\n result.push({ eol: lastEol, text: undefined, range: undefined });\r\n }\r\n return Promise.resolve(result);\r\n };\r\n // ---- END minimal edits ---------------------------------------------------------------\r\n BaseEditorSimpleWorker.prototype.computeLinks = function (modelUrl) {\r\n var model = this._getModel(modelUrl);\r\n if (!model) {\r\n return Promise.resolve(null);\r\n }\r\n return Promise.resolve(Object(_modes_linkComputer_js__WEBPACK_IMPORTED_MODULE_10__["computeLinks"])(model));\r\n };\r\n BaseEditorSimpleWorker.prototype.textualSuggest = function (modelUrl, position, wordDef, wordDefFlags) {\r\n var model = this._getModel(modelUrl);\r\n if (!model) {\r\n return Promise.resolve(null);\r\n }\r\n var suggestions = [];\r\n var wordDefRegExp = new RegExp(wordDef, wordDefFlags);\r\n var currentWord = model.getWordUntilPosition(position, wordDefRegExp);\r\n var seen = Object.create(null);\r\n seen[currentWord.word] = true;\r\n for (var iter = model.createWordIterator(wordDefRegExp), e = iter.next(); !e.done && suggestions.length <= BaseEditorSimpleWorker._suggestionsLimit; e = iter.next()) {\r\n var word = e.value;\r\n if (seen[word]) {\r\n continue;\r\n }\r\n seen[word] = true;\r\n if (!isNaN(Number(word))) {\r\n continue;\r\n }\r\n suggestions.push({\r\n kind: 18 /* Text */,\r\n label: word,\r\n insertText: word,\r\n range: { startLineNumber: position.lineNumber, startColumn: currentWord.startColumn, endLineNumber: position.lineNumber, endColumn: currentWord.endColumn }\r\n });\r\n }\r\n return Promise.resolve({ suggestions: suggestions });\r\n };\r\n // ---- END suggest --------------------------------------------------------------------------\r\n //#region -- word ranges --\r\n BaseEditorSimpleWorker.prototype.computeWordRanges = function (modelUrl, range, wordDef, wordDefFlags) {\r\n var model = this._getModel(modelUrl);\r\n if (!model) {\r\n return Promise.resolve(Object.create(null));\r\n }\r\n var wordDefRegExp = new RegExp(wordDef, wordDefFlags);\r\n var result = Object.create(null);\r\n for (var line = range.startLineNumber; line < range.endLineNumber; line++) {\r\n var words = model.getLineWords(line, wordDefRegExp);\r\n for (var _i = 0, words_1 = words; _i < words_1.length; _i++) {\r\n var word = words_1[_i];\r\n if (!isNaN(Number(word.word))) {\r\n continue;\r\n }\r\n var array = result[word.word];\r\n if (!array) {\r\n array = [];\r\n result[word.word] = array;\r\n }\r\n array.push({\r\n startLineNumber: line,\r\n startColumn: word.startColumn,\r\n endLineNumber: line,\r\n endColumn: word.endColumn\r\n });\r\n }\r\n }\r\n return Promise.resolve(result);\r\n };\r\n //#endregion\r\n BaseEditorSimpleWorker.prototype.navigateValueSet = function (modelUrl, range, up, wordDef, wordDefFlags) {\r\n var model = this._getModel(modelUrl);\r\n if (!model) {\r\n return Promise.resolve(null);\r\n }\r\n var wordDefRegExp = new RegExp(wordDef, wordDefFlags);\r\n if (range.startColumn === range.endColumn) {\r\n range = {\r\n startLineNumber: range.startLineNumber,\r\n startColumn: range.startColumn,\r\n endLineNumber: range.endLineNumber,\r\n endColumn: range.endColumn + 1\r\n };\r\n }\r\n var selectionText = model.getValueInRange(range);\r\n var wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp);\r\n if (!wordRange) {\r\n return Promise.resolve(null);\r\n }\r\n var word = model.getValueInRange(wordRange);\r\n var result = _modes_supports_inplaceReplaceSupport_js__WEBPACK_IMPORTED_MODULE_11__["BasicInplaceReplace"].INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up);\r\n return Promise.resolve(result);\r\n };\r\n // ---- BEGIN foreign module support --------------------------------------------------------------------------\r\n BaseEditorSimpleWorker.prototype.loadForeignModule = function (moduleId, createData) {\r\n var _this = this;\r\n var ctx = {\r\n getMirrorModels: function () {\r\n return _this._getModels();\r\n }\r\n };\r\n if (this._foreignModuleFactory) {\r\n this._foreignModule = this._foreignModuleFactory(ctx, createData);\r\n // static foreing module\r\n var methods = [];\r\n for (var prop in this._foreignModule) {\r\n if (typeof this._foreignModule[prop] === \'function\') {\r\n methods.push(prop);\r\n }\r\n }\r\n return Promise.resolve(methods);\r\n }\r\n // ESM-comment-begin\r\n // \t\treturn new Promise<any>((resolve, reject) => {\r\n // \t\t\trequire([moduleId], (foreignModule: { create: IForeignModuleFactory }) => {\r\n // \t\t\t\tthis._foreignModule = foreignModule.create(ctx, createData);\r\n // \r\n // \t\t\t\tlet methods: string[] = [];\r\n // \t\t\t\tfor (let prop in this._foreignModule) {\r\n // \t\t\t\t\tif (typeof this._foreignModule[prop] === \'function\') {\r\n // \t\t\t\t\t\tmethods.push(prop);\r\n // \t\t\t\t\t}\r\n // \t\t\t\t}\r\n // \r\n // \t\t\t\tresolve(methods);\r\n // \r\n // \t\t\t}, reject);\r\n // \t\t});\r\n // ESM-comment-end\r\n // ESM-uncomment-begin\r\n return Promise.reject(new Error("Unexpected usage"));\r\n // ESM-uncomment-end\r\n };\r\n // foreign method request\r\n BaseEditorSimpleWorker.prototype.fmr = function (method, args) {\r\n if (!this._foreignModule || typeof this._foreignModule[method] !== \'function\') {\r\n return Promise.reject(new Error(\'Missing requestHandler or method: \' + method));\r\n }\r\n try {\r\n return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args));\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n // ---- END diff --------------------------------------------------------------------------\r\n // ---- BEGIN minimal edits ---------------------------------------------------------------\r\n BaseEditorSimpleWorker._diffLimit = 10000;\r\n // ---- BEGIN suggest --------------------------------------------------------------------------\r\n BaseEditorSimpleWorker._suggestionsLimit = 10000;\r\n return BaseEditorSimpleWorker;\r\n}());\r\n\r\n/**\r\n * @internal\r\n */\r\nvar EditorSimpleWorkerImpl = /** @class */ (function (_super) {\r\n __extends(EditorSimpleWorkerImpl, _super);\r\n function EditorSimpleWorkerImpl(foreignModuleFactory) {\r\n var _this = _super.call(this, foreignModuleFactory) || this;\r\n _this._models = Object.create(null);\r\n return _this;\r\n }\r\n EditorSimpleWorkerImpl.prototype.dispose = function () {\r\n this._models = Object.create(null);\r\n };\r\n EditorSimpleWorkerImpl.prototype._getModel = function (uri) {\r\n return this._models[uri];\r\n };\r\n EditorSimpleWorkerImpl.prototype._getModels = function () {\r\n var _this = this;\r\n var all = [];\r\n Object.keys(this._models).forEach(function (key) { return all.push(_this._models[key]); });\r\n return all;\r\n };\r\n EditorSimpleWorkerImpl.prototype.acceptNewModel = function (data) {\r\n this._models[data.url] = new MirrorModel(_base_common_uri_js__WEBPACK_IMPORTED_MODULE_4__["URI"].parse(data.url), data.lines, data.EOL, data.versionId);\r\n };\r\n EditorSimpleWorkerImpl.prototype.acceptModelChanged = function (strURL, e) {\r\n if (!this._models[strURL]) {\r\n return;\r\n }\r\n var model = this._models[strURL];\r\n model.onEvents(e);\r\n };\r\n EditorSimpleWorkerImpl.prototype.acceptRemovedModel = function (strURL) {\r\n if (!this._models[strURL]) {\r\n return;\r\n }\r\n delete this._models[strURL];\r\n };\r\n return EditorSimpleWorkerImpl;\r\n}(BaseEditorSimpleWorker));\r\n\r\n/**\r\n * Called on the worker side\r\n * @internal\r\n */\r\nfunction create() {\r\n return new EditorSimpleWorkerImpl(null);\r\n}\r\nif (typeof importScripts === \'function\') {\r\n // Running in a web worker\r\n _base_common_platform_js__WEBPACK_IMPORTED_MODULE_3__["globals"].monaco = Object(_standalone_standaloneBase_js__WEBPACK_IMPORTED_MODULE_12__["createMonacoBaseAPI"])();\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneBase.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyMod", function() { return KeyMod; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createMonacoBaseAPI", function() { return createMonacoBaseAPI; });\n/* harmony import */ var _base_common_cancellation_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../base/common/cancellation.js */ "../node_modules/monaco-editor/esm/vs/base/common/cancellation.js");\n/* harmony import */ var _base_common_event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../base/common/event.js */ "../node_modules/monaco-editor/esm/vs/base/common/event.js");\n/* harmony import */ var _base_common_keyCodes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../base/common/keyCodes.js */ "../node_modules/monaco-editor/esm/vs/base/common/keyCodes.js");\n/* harmony import */ var _base_common_uri_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../base/common/uri.js */ "../node_modules/monaco-editor/esm/vs/base/common/uri.js");\n/* harmony import */ var _base_common_winjs_base_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../base/common/winjs.base.js */ "../node_modules/monaco-editor/esm/vs/base/common/winjs.base.js");\n/* harmony import */ var _core_position_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/position.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/position.js");\n/* harmony import */ var _core_range_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/range.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/range.js");\n/* harmony import */ var _core_selection_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/selection.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/selection.js");\n/* harmony import */ var _core_token_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/token.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/token.js");\n/* harmony import */ var _standaloneEnums_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./standaloneEnums.js */ "../node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar KeyMod = /** @class */ (function () {\r\n function KeyMod() {\r\n }\r\n KeyMod.chord = function (firstPart, secondPart) {\r\n return Object(_base_common_keyCodes_js__WEBPACK_IMPORTED_MODULE_2__["KeyChord"])(firstPart, secondPart);\r\n };\r\n KeyMod.CtrlCmd = 2048 /* CtrlCmd */;\r\n KeyMod.Shift = 1024 /* Shift */;\r\n KeyMod.Alt = 512 /* Alt */;\r\n KeyMod.WinCtrl = 256 /* WinCtrl */;\r\n return KeyMod;\r\n}());\r\n\r\nfunction createMonacoBaseAPI() {\r\n return {\r\n editor: undefined,\r\n languages: undefined,\r\n CancellationTokenSource: _base_common_cancellation_js__WEBPACK_IMPORTED_MODULE_0__["CancellationTokenSource"],\r\n Emitter: _base_common_event_js__WEBPACK_IMPORTED_MODULE_1__["Emitter"],\r\n KeyCode: _standaloneEnums_js__WEBPACK_IMPORTED_MODULE_9__["KeyCode"],\r\n KeyMod: KeyMod,\r\n Position: _core_position_js__WEBPACK_IMPORTED_MODULE_5__["Position"],\r\n Range: _core_range_js__WEBPACK_IMPORTED_MODULE_6__["Range"],\r\n Selection: _core_selection_js__WEBPACK_IMPORTED_MODULE_7__["Selection"],\r\n SelectionDirection: _standaloneEnums_js__WEBPACK_IMPORTED_MODULE_9__["SelectionDirection"],\r\n MarkerSeverity: _standaloneEnums_js__WEBPACK_IMPORTED_MODULE_9__["MarkerSeverity"],\r\n MarkerTag: _standaloneEnums_js__WEBPACK_IMPORTED_MODULE_9__["MarkerTag"],\r\n Promise: _base_common_winjs_base_js__WEBPACK_IMPORTED_MODULE_4__["TPromise"],\r\n Uri: _base_common_uri_js__WEBPACK_IMPORTED_MODULE_3__["URI"],\r\n Token: _core_token_js__WEBPACK_IMPORTED_MODULE_8__["Token"]\r\n };\r\n}\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneBase.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarkerTag", function() { return MarkerTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarkerSeverity", function() { return MarkerSeverity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return KeyCode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return SelectionDirection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollbarVisibility", function() { return ScrollbarVisibility; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverviewRulerLane", function() { return OverviewRulerLane; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EndOfLinePreference", function() { return EndOfLinePreference; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultEndOfLine", function() { return DefaultEndOfLine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EndOfLineSequence", function() { return EndOfLineSequence; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrackedRangeStickiness", function() { return TrackedRangeStickiness; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollType", function() { return ScrollType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CursorChangeReason", function() { return CursorChangeReason; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RenderMinimap", function() { return RenderMinimap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WrappingIndent", function() { return WrappingIndent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextEditorCursorBlinkingStyle", function() { return TextEditorCursorBlinkingStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextEditorCursorStyle", function() { return TextEditorCursorStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RenderLineNumbersType", function() { return RenderLineNumbersType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContentWidgetPositionPreference", function() { return ContentWidgetPositionPreference; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverlayWidgetPositionPreference", function() { return OverlayWidgetPositionPreference; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MouseTargetType", function() { return MouseTargetType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IndentAction", function() { return IndentAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompletionItemKind", function() { return CompletionItemKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompletionItemInsertTextRule", function() { return CompletionItemInsertTextRule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompletionTriggerKind", function() { return CompletionTriggerKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SignatureHelpTriggerReason", function() { return SignatureHelpTriggerReason; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentHighlightKind", function() { return DocumentHighlightKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolKind", function() { return SymbolKind; });\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n// THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY.\r\nvar MarkerTag;\r\n(function (MarkerTag) {\r\n MarkerTag[MarkerTag["Unnecessary"] = 1] = "Unnecessary";\r\n})(MarkerTag || (MarkerTag = {}));\r\nvar MarkerSeverity;\r\n(function (MarkerSeverity) {\r\n MarkerSeverity[MarkerSeverity["Hint"] = 1] = "Hint";\r\n MarkerSeverity[MarkerSeverity["Info"] = 2] = "Info";\r\n MarkerSeverity[MarkerSeverity["Warning"] = 4] = "Warning";\r\n MarkerSeverity[MarkerSeverity["Error"] = 8] = "Error";\r\n})(MarkerSeverity || (MarkerSeverity = {}));\r\n/**\r\n * Virtual Key Codes, the value does not hold any inherent meaning.\r\n * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx\r\n * But these are "more general", as they should work across browsers & OS`s.\r\n */\r\nvar KeyCode;\r\n(function (KeyCode) {\r\n /**\r\n * Placed first to cover the 0 value of the enum.\r\n */\r\n KeyCode[KeyCode["Unknown"] = 0] = "Unknown";\r\n KeyCode[KeyCode["Backspace"] = 1] = "Backspace";\r\n KeyCode[KeyCode["Tab"] = 2] = "Tab";\r\n KeyCode[KeyCode["Enter"] = 3] = "Enter";\r\n KeyCode[KeyCode["Shift"] = 4] = "Shift";\r\n KeyCode[KeyCode["Ctrl"] = 5] = "Ctrl";\r\n KeyCode[KeyCode["Alt"] = 6] = "Alt";\r\n KeyCode[KeyCode["PauseBreak"] = 7] = "PauseBreak";\r\n KeyCode[KeyCode["CapsLock"] = 8] = "CapsLock";\r\n KeyCode[KeyCode["Escape"] = 9] = "Escape";\r\n KeyCode[KeyCode["Space"] = 10] = "Space";\r\n KeyCode[KeyCode["PageUp"] = 11] = "PageUp";\r\n KeyCode[KeyCode["PageDown"] = 12] = "PageDown";\r\n KeyCode[KeyCode["End"] = 13] = "End";\r\n KeyCode[KeyCode["Home"] = 14] = "Home";\r\n KeyCode[KeyCode["LeftArrow"] = 15] = "LeftArrow";\r\n KeyCode[KeyCode["UpArrow"] = 16] = "UpArrow";\r\n KeyCode[KeyCode["RightArrow"] = 17] = "RightArrow";\r\n KeyCode[KeyCode["DownArrow"] = 18] = "DownArrow";\r\n KeyCode[KeyCode["Insert"] = 19] = "Insert";\r\n KeyCode[KeyCode["Delete"] = 20] = "Delete";\r\n KeyCode[KeyCode["KEY_0"] = 21] = "KEY_0";\r\n KeyCode[KeyCode["KEY_1"] = 22] = "KEY_1";\r\n KeyCode[KeyCode["KEY_2"] = 23] = "KEY_2";\r\n KeyCode[KeyCode["KEY_3"] = 24] = "KEY_3";\r\n KeyCode[KeyCode["KEY_4"] = 25] = "KEY_4";\r\n KeyCode[KeyCode["KEY_5"] = 26] = "KEY_5";\r\n KeyCode[KeyCode["KEY_6"] = 27] = "KEY_6";\r\n KeyCode[KeyCode["KEY_7"] = 28] = "KEY_7";\r\n KeyCode[KeyCode["KEY_8"] = 29] = "KEY_8";\r\n KeyCode[KeyCode["KEY_9"] = 30] = "KEY_9";\r\n KeyCode[KeyCode["KEY_A"] = 31] = "KEY_A";\r\n KeyCode[KeyCode["KEY_B"] = 32] = "KEY_B";\r\n KeyCode[KeyCode["KEY_C"] = 33] = "KEY_C";\r\n KeyCode[KeyCode["KEY_D"] = 34] = "KEY_D";\r\n KeyCode[KeyCode["KEY_E"] = 35] = "KEY_E";\r\n KeyCode[KeyCode["KEY_F"] = 36] = "KEY_F";\r\n KeyCode[KeyCode["KEY_G"] = 37] = "KEY_G";\r\n KeyCode[KeyCode["KEY_H"] = 38] = "KEY_H";\r\n KeyCode[KeyCode["KEY_I"] = 39] = "KEY_I";\r\n KeyCode[KeyCode["KEY_J"] = 40] = "KEY_J";\r\n KeyCode[KeyCode["KEY_K"] = 41] = "KEY_K";\r\n KeyCode[KeyCode["KEY_L"] = 42] = "KEY_L";\r\n KeyCode[KeyCode["KEY_M"] = 43] = "KEY_M";\r\n KeyCode[KeyCode["KEY_N"] = 44] = "KEY_N";\r\n KeyCode[KeyCode["KEY_O"] = 45] = "KEY_O";\r\n KeyCode[KeyCode["KEY_P"] = 46] = "KEY_P";\r\n KeyCode[KeyCode["KEY_Q"] = 47] = "KEY_Q";\r\n KeyCode[KeyCode["KEY_R"] = 48] = "KEY_R";\r\n KeyCode[KeyCode["KEY_S"] = 49] = "KEY_S";\r\n KeyCode[KeyCode["KEY_T"] = 50] = "KEY_T";\r\n KeyCode[KeyCode["KEY_U"] = 51] = "KEY_U";\r\n KeyCode[KeyCode["KEY_V"] = 52] = "KEY_V";\r\n KeyCode[KeyCode["KEY_W"] = 53] = "KEY_W";\r\n KeyCode[KeyCode["KEY_X"] = 54] = "KEY_X";\r\n KeyCode[KeyCode["KEY_Y"] = 55] = "KEY_Y";\r\n KeyCode[KeyCode["KEY_Z"] = 56] = "KEY_Z";\r\n KeyCode[KeyCode["Meta"] = 57] = "Meta";\r\n KeyCode[KeyCode["ContextMenu"] = 58] = "ContextMenu";\r\n KeyCode[KeyCode["F1"] = 59] = "F1";\r\n KeyCode[KeyCode["F2"] = 60] = "F2";\r\n KeyCode[KeyCode["F3"] = 61] = "F3";\r\n KeyCode[KeyCode["F4"] = 62] = "F4";\r\n KeyCode[KeyCode["F5"] = 63] = "F5";\r\n KeyCode[KeyCode["F6"] = 64] = "F6";\r\n KeyCode[KeyCode["F7"] = 65] = "F7";\r\n KeyCode[KeyCode["F8"] = 66] = "F8";\r\n KeyCode[KeyCode["F9"] = 67] = "F9";\r\n KeyCode[KeyCode["F10"] = 68] = "F10";\r\n KeyCode[KeyCode["F11"] = 69] = "F11";\r\n KeyCode[KeyCode["F12"] = 70] = "F12";\r\n KeyCode[KeyCode["F13"] = 71] = "F13";\r\n KeyCode[KeyCode["F14"] = 72] = "F14";\r\n KeyCode[KeyCode["F15"] = 73] = "F15";\r\n KeyCode[KeyCode["F16"] = 74] = "F16";\r\n KeyCode[KeyCode["F17"] = 75] = "F17";\r\n KeyCode[KeyCode["F18"] = 76] = "F18";\r\n KeyCode[KeyCode["F19"] = 77] = "F19";\r\n KeyCode[KeyCode["NumLock"] = 78] = "NumLock";\r\n KeyCode[KeyCode["ScrollLock"] = 79] = "ScrollLock";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \';:\' key\r\n */\r\n KeyCode[KeyCode["US_SEMICOLON"] = 80] = "US_SEMICOLON";\r\n /**\r\n * For any country/region, the \'+\' key\r\n * For the US standard keyboard, the \'=+\' key\r\n */\r\n KeyCode[KeyCode["US_EQUAL"] = 81] = "US_EQUAL";\r\n /**\r\n * For any country/region, the \',\' key\r\n * For the US standard keyboard, the \',<\' key\r\n */\r\n KeyCode[KeyCode["US_COMMA"] = 82] = "US_COMMA";\r\n /**\r\n * For any country/region, the \'-\' key\r\n * For the US standard keyboard, the \'-_\' key\r\n */\r\n KeyCode[KeyCode["US_MINUS"] = 83] = "US_MINUS";\r\n /**\r\n * For any country/region, the \'.\' key\r\n * For the US standard keyboard, the \'.>\' key\r\n */\r\n KeyCode[KeyCode["US_DOT"] = 84] = "US_DOT";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \'/?\' key\r\n */\r\n KeyCode[KeyCode["US_SLASH"] = 85] = "US_SLASH";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \'`~\' key\r\n */\r\n KeyCode[KeyCode["US_BACKTICK"] = 86] = "US_BACKTICK";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \'[{\' key\r\n */\r\n KeyCode[KeyCode["US_OPEN_SQUARE_BRACKET"] = 87] = "US_OPEN_SQUARE_BRACKET";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \'\\|\' key\r\n */\r\n KeyCode[KeyCode["US_BACKSLASH"] = 88] = "US_BACKSLASH";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \']}\' key\r\n */\r\n KeyCode[KeyCode["US_CLOSE_SQUARE_BRACKET"] = 89] = "US_CLOSE_SQUARE_BRACKET";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n * For the US standard keyboard, the \'\'"\' key\r\n */\r\n KeyCode[KeyCode["US_QUOTE"] = 90] = "US_QUOTE";\r\n /**\r\n * Used for miscellaneous characters; it can vary by keyboard.\r\n */\r\n KeyCode[KeyCode["OEM_8"] = 91] = "OEM_8";\r\n /**\r\n * Either the angle bracket key or the backslash key on the RT 102-key keyboard.\r\n */\r\n KeyCode[KeyCode["OEM_102"] = 92] = "OEM_102";\r\n KeyCode[KeyCode["NUMPAD_0"] = 93] = "NUMPAD_0";\r\n KeyCode[KeyCode["NUMPAD_1"] = 94] = "NUMPAD_1";\r\n KeyCode[KeyCode["NUMPAD_2"] = 95] = "NUMPAD_2";\r\n KeyCode[KeyCode["NUMPAD_3"] = 96] = "NUMPAD_3";\r\n KeyCode[KeyCode["NUMPAD_4"] = 97] = "NUMPAD_4";\r\n KeyCode[KeyCode["NUMPAD_5"] = 98] = "NUMPAD_5";\r\n KeyCode[KeyCode["NUMPAD_6"] = 99] = "NUMPAD_6";\r\n KeyCode[KeyCode["NUMPAD_7"] = 100] = "NUMPAD_7";\r\n KeyCode[KeyCode["NUMPAD_8"] = 101] = "NUMPAD_8";\r\n KeyCode[KeyCode["NUMPAD_9"] = 102] = "NUMPAD_9";\r\n KeyCode[KeyCode["NUMPAD_MULTIPLY"] = 103] = "NUMPAD_MULTIPLY";\r\n KeyCode[KeyCode["NUMPAD_ADD"] = 104] = "NUMPAD_ADD";\r\n KeyCode[KeyCode["NUMPAD_SEPARATOR"] = 105] = "NUMPAD_SEPARATOR";\r\n KeyCode[KeyCode["NUMPAD_SUBTRACT"] = 106] = "NUMPAD_SUBTRACT";\r\n KeyCode[KeyCode["NUMPAD_DECIMAL"] = 107] = "NUMPAD_DECIMAL";\r\n KeyCode[KeyCode["NUMPAD_DIVIDE"] = 108] = "NUMPAD_DIVIDE";\r\n /**\r\n * Cover all key codes when IME is processing input.\r\n */\r\n KeyCode[KeyCode["KEY_IN_COMPOSITION"] = 109] = "KEY_IN_COMPOSITION";\r\n KeyCode[KeyCode["ABNT_C1"] = 110] = "ABNT_C1";\r\n KeyCode[KeyCode["ABNT_C2"] = 111] = "ABNT_C2";\r\n /**\r\n * Placed last to cover the length of the enum.\r\n * Please do not depend on this value!\r\n */\r\n KeyCode[KeyCode["MAX_VALUE"] = 112] = "MAX_VALUE";\r\n})(KeyCode || (KeyCode = {}));\r\n/**\r\n * The direction of a selection.\r\n */\r\nvar SelectionDirection;\r\n(function (SelectionDirection) {\r\n /**\r\n * The selection starts above where it ends.\r\n */\r\n SelectionDirection[SelectionDirection["LTR"] = 0] = "LTR";\r\n /**\r\n * The selection starts below where it ends.\r\n */\r\n SelectionDirection[SelectionDirection["RTL"] = 1] = "RTL";\r\n})(SelectionDirection || (SelectionDirection = {}));\r\nvar ScrollbarVisibility;\r\n(function (ScrollbarVisibility) {\r\n ScrollbarVisibility[ScrollbarVisibility["Auto"] = 1] = "Auto";\r\n ScrollbarVisibility[ScrollbarVisibility["Hidden"] = 2] = "Hidden";\r\n ScrollbarVisibility[ScrollbarVisibility["Visible"] = 3] = "Visible";\r\n})(ScrollbarVisibility || (ScrollbarVisibility = {}));\r\n/**\r\n * Vertical Lane in the overview ruler of the editor.\r\n */\r\nvar OverviewRulerLane;\r\n(function (OverviewRulerLane) {\r\n OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left";\r\n OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center";\r\n OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right";\r\n OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full";\r\n})(OverviewRulerLane || (OverviewRulerLane = {}));\r\n/**\r\n * End of line character preference.\r\n */\r\nvar EndOfLinePreference;\r\n(function (EndOfLinePreference) {\r\n /**\r\n * Use the end of line character identified in the text buffer.\r\n */\r\n EndOfLinePreference[EndOfLinePreference["TextDefined"] = 0] = "TextDefined";\r\n /**\r\n * Use line feed (\\n) as the end of line character.\r\n */\r\n EndOfLinePreference[EndOfLinePreference["LF"] = 1] = "LF";\r\n /**\r\n * Use carriage return and line feed (\\r\\n) as the end of line character.\r\n */\r\n EndOfLinePreference[EndOfLinePreference["CRLF"] = 2] = "CRLF";\r\n})(EndOfLinePreference || (EndOfLinePreference = {}));\r\n/**\r\n * The default end of line to use when instantiating models.\r\n */\r\nvar DefaultEndOfLine;\r\n(function (DefaultEndOfLine) {\r\n /**\r\n * Use line feed (\\n) as the end of line character.\r\n */\r\n DefaultEndOfLine[DefaultEndOfLine["LF"] = 1] = "LF";\r\n /**\r\n * Use carriage return and line feed (\\r\\n) as the end of line character.\r\n */\r\n DefaultEndOfLine[DefaultEndOfLine["CRLF"] = 2] = "CRLF";\r\n})(DefaultEndOfLine || (DefaultEndOfLine = {}));\r\n/**\r\n * End of line character preference.\r\n */\r\nvar EndOfLineSequence;\r\n(function (EndOfLineSequence) {\r\n /**\r\n * Use line feed (\\n) as the end of line character.\r\n */\r\n EndOfLineSequence[EndOfLineSequence["LF"] = 0] = "LF";\r\n /**\r\n * Use carriage return and line feed (\\r\\n) as the end of line character.\r\n */\r\n EndOfLineSequence[EndOfLineSequence["CRLF"] = 1] = "CRLF";\r\n})(EndOfLineSequence || (EndOfLineSequence = {}));\r\n/**\r\n * Describes the behavior of decorations when typing/editing near their edges.\r\n * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior`\r\n */\r\nvar TrackedRangeStickiness;\r\n(function (TrackedRangeStickiness) {\r\n TrackedRangeStickiness[TrackedRangeStickiness["AlwaysGrowsWhenTypingAtEdges"] = 0] = "AlwaysGrowsWhenTypingAtEdges";\r\n TrackedRangeStickiness[TrackedRangeStickiness["NeverGrowsWhenTypingAtEdges"] = 1] = "NeverGrowsWhenTypingAtEdges";\r\n TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingBefore"] = 2] = "GrowsOnlyWhenTypingBefore";\r\n TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingAfter"] = 3] = "GrowsOnlyWhenTypingAfter";\r\n})(TrackedRangeStickiness || (TrackedRangeStickiness = {}));\r\nvar ScrollType;\r\n(function (ScrollType) {\r\n ScrollType[ScrollType["Smooth"] = 0] = "Smooth";\r\n ScrollType[ScrollType["Immediate"] = 1] = "Immediate";\r\n})(ScrollType || (ScrollType = {}));\r\n/**\r\n * Describes the reason the cursor has changed its position.\r\n */\r\nvar CursorChangeReason;\r\n(function (CursorChangeReason) {\r\n /**\r\n * Unknown or not set.\r\n */\r\n CursorChangeReason[CursorChangeReason["NotSet"] = 0] = "NotSet";\r\n /**\r\n * A `model.setValue()` was called.\r\n */\r\n CursorChangeReason[CursorChangeReason["ContentFlush"] = 1] = "ContentFlush";\r\n /**\r\n * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers.\r\n */\r\n CursorChangeReason[CursorChangeReason["RecoverFromMarkers"] = 2] = "RecoverFromMarkers";\r\n /**\r\n * There was an explicit user gesture.\r\n */\r\n CursorChangeReason[CursorChangeReason["Explicit"] = 3] = "Explicit";\r\n /**\r\n * There was a Paste.\r\n */\r\n CursorChangeReason[CursorChangeReason["Paste"] = 4] = "Paste";\r\n /**\r\n * There was an Undo.\r\n */\r\n CursorChangeReason[CursorChangeReason["Undo"] = 5] = "Undo";\r\n /**\r\n * There was a Redo.\r\n */\r\n CursorChangeReason[CursorChangeReason["Redo"] = 6] = "Redo";\r\n})(CursorChangeReason || (CursorChangeReason = {}));\r\nvar RenderMinimap;\r\n(function (RenderMinimap) {\r\n RenderMinimap[RenderMinimap["None"] = 0] = "None";\r\n RenderMinimap[RenderMinimap["Small"] = 1] = "Small";\r\n RenderMinimap[RenderMinimap["Large"] = 2] = "Large";\r\n RenderMinimap[RenderMinimap["SmallBlocks"] = 3] = "SmallBlocks";\r\n RenderMinimap[RenderMinimap["LargeBlocks"] = 4] = "LargeBlocks";\r\n})(RenderMinimap || (RenderMinimap = {}));\r\n/**\r\n * Describes how to indent wrapped lines.\r\n */\r\nvar WrappingIndent;\r\n(function (WrappingIndent) {\r\n /**\r\n * No indentation => wrapped lines begin at column 1.\r\n */\r\n WrappingIndent[WrappingIndent["None"] = 0] = "None";\r\n /**\r\n * Same => wrapped lines get the same indentation as the parent.\r\n */\r\n WrappingIndent[WrappingIndent["Same"] = 1] = "Same";\r\n /**\r\n * Indent => wrapped lines get +1 indentation toward the parent.\r\n */\r\n WrappingIndent[WrappingIndent["Indent"] = 2] = "Indent";\r\n /**\r\n * DeepIndent => wrapped lines get +2 indentation toward the parent.\r\n */\r\n WrappingIndent[WrappingIndent["DeepIndent"] = 3] = "DeepIndent";\r\n})(WrappingIndent || (WrappingIndent = {}));\r\n/**\r\n * The kind of animation in which the editor\'s cursor should be rendered.\r\n */\r\nvar TextEditorCursorBlinkingStyle;\r\n(function (TextEditorCursorBlinkingStyle) {\r\n /**\r\n * Hidden\r\n */\r\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Hidden"] = 0] = "Hidden";\r\n /**\r\n * Blinking\r\n */\r\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Blink"] = 1] = "Blink";\r\n /**\r\n * Blinking with smooth fading\r\n */\r\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Smooth"] = 2] = "Smooth";\r\n /**\r\n * Blinking with prolonged filled state and smooth fading\r\n */\r\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Phase"] = 3] = "Phase";\r\n /**\r\n * Expand collapse animation on the y axis\r\n */\r\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Expand"] = 4] = "Expand";\r\n /**\r\n * No-Blinking\r\n */\r\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Solid"] = 5] = "Solid";\r\n})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {}));\r\n/**\r\n * The style in which the editor\'s cursor should be rendered.\r\n */\r\nvar TextEditorCursorStyle;\r\n(function (TextEditorCursorStyle) {\r\n /**\r\n * As a vertical line (sitting between two characters).\r\n */\r\n TextEditorCursorStyle[TextEditorCursorStyle["Line"] = 1] = "Line";\r\n /**\r\n * As a block (sitting on top of a character).\r\n */\r\n TextEditorCursorStyle[TextEditorCursorStyle["Block"] = 2] = "Block";\r\n /**\r\n * As a horizontal line (sitting under a character).\r\n */\r\n TextEditorCursorStyle[TextEditorCursorStyle["Underline"] = 3] = "Underline";\r\n /**\r\n * As a thin vertical line (sitting between two characters).\r\n */\r\n TextEditorCursorStyle[TextEditorCursorStyle["LineThin"] = 4] = "LineThin";\r\n /**\r\n * As an outlined block (sitting on top of a character).\r\n */\r\n TextEditorCursorStyle[TextEditorCursorStyle["BlockOutline"] = 5] = "BlockOutline";\r\n /**\r\n * As a thin horizontal line (sitting under a character).\r\n */\r\n TextEditorCursorStyle[TextEditorCursorStyle["UnderlineThin"] = 6] = "UnderlineThin";\r\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\r\nvar RenderLineNumbersType;\r\n(function (RenderLineNumbersType) {\r\n RenderLineNumbersType[RenderLineNumbersType["Off"] = 0] = "Off";\r\n RenderLineNumbersType[RenderLineNumbersType["On"] = 1] = "On";\r\n RenderLineNumbersType[RenderLineNumbersType["Relative"] = 2] = "Relative";\r\n RenderLineNumbersType[RenderLineNumbersType["Interval"] = 3] = "Interval";\r\n RenderLineNumbersType[RenderLineNumbersType["Custom"] = 4] = "Custom";\r\n})(RenderLineNumbersType || (RenderLineNumbersType = {}));\r\n/**\r\n * A positioning preference for rendering content widgets.\r\n */\r\nvar ContentWidgetPositionPreference;\r\n(function (ContentWidgetPositionPreference) {\r\n /**\r\n * Place the content widget exactly at a position\r\n */\r\n ContentWidgetPositionPreference[ContentWidgetPositionPreference["EXACT"] = 0] = "EXACT";\r\n /**\r\n * Place the content widget above a position\r\n */\r\n ContentWidgetPositionPreference[ContentWidgetPositionPreference["ABOVE"] = 1] = "ABOVE";\r\n /**\r\n * Place the content widget below a position\r\n */\r\n ContentWidgetPositionPreference[ContentWidgetPositionPreference["BELOW"] = 2] = "BELOW";\r\n})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {}));\r\n/**\r\n * A positioning preference for rendering overlay widgets.\r\n */\r\nvar OverlayWidgetPositionPreference;\r\n(function (OverlayWidgetPositionPreference) {\r\n /**\r\n * Position the overlay widget in the top right corner\r\n */\r\n OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_RIGHT_CORNER"] = 0] = "TOP_RIGHT_CORNER";\r\n /**\r\n * Position the overlay widget in the bottom right corner\r\n */\r\n OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["BOTTOM_RIGHT_CORNER"] = 1] = "BOTTOM_RIGHT_CORNER";\r\n /**\r\n * Position the overlay widget in the top center\r\n */\r\n OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_CENTER"] = 2] = "TOP_CENTER";\r\n})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {}));\r\n/**\r\n * Type of hit element with the mouse in the editor.\r\n */\r\nvar MouseTargetType;\r\n(function (MouseTargetType) {\r\n /**\r\n * Mouse is on top of an unknown element.\r\n */\r\n MouseTargetType[MouseTargetType["UNKNOWN"] = 0] = "UNKNOWN";\r\n /**\r\n * Mouse is on top of the textarea used for input.\r\n */\r\n MouseTargetType[MouseTargetType["TEXTAREA"] = 1] = "TEXTAREA";\r\n /**\r\n * Mouse is on top of the glyph margin\r\n */\r\n MouseTargetType[MouseTargetType["GUTTER_GLYPH_MARGIN"] = 2] = "GUTTER_GLYPH_MARGIN";\r\n /**\r\n * Mouse is on top of the line numbers\r\n */\r\n MouseTargetType[MouseTargetType["GUTTER_LINE_NUMBERS"] = 3] = "GUTTER_LINE_NUMBERS";\r\n /**\r\n * Mouse is on top of the line decorations\r\n */\r\n MouseTargetType[MouseTargetType["GUTTER_LINE_DECORATIONS"] = 4] = "GUTTER_LINE_DECORATIONS";\r\n /**\r\n * Mouse is on top of the whitespace left in the gutter by a view zone.\r\n */\r\n MouseTargetType[MouseTargetType["GUTTER_VIEW_ZONE"] = 5] = "GUTTER_VIEW_ZONE";\r\n /**\r\n * Mouse is on top of text in the content.\r\n */\r\n MouseTargetType[MouseTargetType["CONTENT_TEXT"] = 6] = "CONTENT_TEXT";\r\n /**\r\n * Mouse is on top of empty space in the content (e.g. after line text or below last line)\r\n */\r\n MouseTargetType[MouseTargetType["CONTENT_EMPTY"] = 7] = "CONTENT_EMPTY";\r\n /**\r\n * Mouse is on top of a view zone in the content.\r\n */\r\n MouseTargetType[MouseTargetType["CONTENT_VIEW_ZONE"] = 8] = "CONTENT_VIEW_ZONE";\r\n /**\r\n * Mouse is on top of a content widget.\r\n */\r\n MouseTargetType[MouseTargetType["CONTENT_WIDGET"] = 9] = "CONTENT_WIDGET";\r\n /**\r\n * Mouse is on top of the decorations overview ruler.\r\n */\r\n MouseTargetType[MouseTargetType["OVERVIEW_RULER"] = 10] = "OVERVIEW_RULER";\r\n /**\r\n * Mouse is on top of a scrollbar.\r\n */\r\n MouseTargetType[MouseTargetType["SCROLLBAR"] = 11] = "SCROLLBAR";\r\n /**\r\n * Mouse is on top of an overlay widget.\r\n */\r\n MouseTargetType[MouseTargetType["OVERLAY_WIDGET"] = 12] = "OVERLAY_WIDGET";\r\n /**\r\n * Mouse is outside of the editor.\r\n */\r\n MouseTargetType[MouseTargetType["OUTSIDE_EDITOR"] = 13] = "OUTSIDE_EDITOR";\r\n})(MouseTargetType || (MouseTargetType = {}));\r\n/**\r\n * Describes what to do with the indentation when pressing Enter.\r\n */\r\nvar IndentAction;\r\n(function (IndentAction) {\r\n /**\r\n * Insert new line and copy the previous line\'s indentation.\r\n */\r\n IndentAction[IndentAction["None"] = 0] = "None";\r\n /**\r\n * Insert new line and indent once (relative to the previous line\'s indentation).\r\n */\r\n IndentAction[IndentAction["Indent"] = 1] = "Indent";\r\n /**\r\n * Insert two new lines:\r\n * - the first one indented which will hold the cursor\r\n * - the second one at the same indentation level\r\n */\r\n IndentAction[IndentAction["IndentOutdent"] = 2] = "IndentOutdent";\r\n /**\r\n * Insert new line and outdent once (relative to the previous line\'s indentation).\r\n */\r\n IndentAction[IndentAction["Outdent"] = 3] = "Outdent";\r\n})(IndentAction || (IndentAction = {}));\r\nvar CompletionItemKind;\r\n(function (CompletionItemKind) {\r\n CompletionItemKind[CompletionItemKind["Method"] = 0] = "Method";\r\n CompletionItemKind[CompletionItemKind["Function"] = 1] = "Function";\r\n CompletionItemKind[CompletionItemKind["Constructor"] = 2] = "Constructor";\r\n CompletionItemKind[CompletionItemKind["Field"] = 3] = "Field";\r\n CompletionItemKind[CompletionItemKind["Variable"] = 4] = "Variable";\r\n CompletionItemKind[CompletionItemKind["Class"] = 5] = "Class";\r\n CompletionItemKind[CompletionItemKind["Struct"] = 6] = "Struct";\r\n CompletionItemKind[CompletionItemKind["Interface"] = 7] = "Interface";\r\n CompletionItemKind[CompletionItemKind["Module"] = 8] = "Module";\r\n CompletionItemKind[CompletionItemKind["Property"] = 9] = "Property";\r\n CompletionItemKind[CompletionItemKind["Event"] = 10] = "Event";\r\n CompletionItemKind[CompletionItemKind["Operator"] = 11] = "Operator";\r\n CompletionItemKind[CompletionItemKind["Unit"] = 12] = "Unit";\r\n CompletionItemKind[CompletionItemKind["Value"] = 13] = "Value";\r\n CompletionItemKind[CompletionItemKind["Constant"] = 14] = "Constant";\r\n CompletionItemKind[CompletionItemKind["Enum"] = 15] = "Enum";\r\n CompletionItemKind[CompletionItemKind["EnumMember"] = 16] = "EnumMember";\r\n CompletionItemKind[CompletionItemKind["Keyword"] = 17] = "Keyword";\r\n CompletionItemKind[CompletionItemKind["Text"] = 18] = "Text";\r\n CompletionItemKind[CompletionItemKind["Color"] = 19] = "Color";\r\n CompletionItemKind[CompletionItemKind["File"] = 20] = "File";\r\n CompletionItemKind[CompletionItemKind["Reference"] = 21] = "Reference";\r\n CompletionItemKind[CompletionItemKind["Customcolor"] = 22] = "Customcolor";\r\n CompletionItemKind[CompletionItemKind["Folder"] = 23] = "Folder";\r\n CompletionItemKind[CompletionItemKind["TypeParameter"] = 24] = "TypeParameter";\r\n CompletionItemKind[CompletionItemKind["Snippet"] = 25] = "Snippet";\r\n})(CompletionItemKind || (CompletionItemKind = {}));\r\nvar CompletionItemInsertTextRule;\r\n(function (CompletionItemInsertTextRule) {\r\n /**\r\n * Adjust whitespace/indentation of multiline insert texts to\r\n * match the current line indentation.\r\n */\r\n CompletionItemInsertTextRule[CompletionItemInsertTextRule["KeepWhitespace"] = 1] = "KeepWhitespace";\r\n /**\r\n * `insertText` is a snippet.\r\n */\r\n CompletionItemInsertTextRule[CompletionItemInsertTextRule["InsertAsSnippet"] = 4] = "InsertAsSnippet";\r\n})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {}));\r\n/**\r\n * How a suggest provider was triggered.\r\n */\r\nvar CompletionTriggerKind;\r\n(function (CompletionTriggerKind) {\r\n CompletionTriggerKind[CompletionTriggerKind["Invoke"] = 0] = "Invoke";\r\n CompletionTriggerKind[CompletionTriggerKind["TriggerCharacter"] = 1] = "TriggerCharacter";\r\n CompletionTriggerKind[CompletionTriggerKind["TriggerForIncompleteCompletions"] = 2] = "TriggerForIncompleteCompletions";\r\n})(CompletionTriggerKind || (CompletionTriggerKind = {}));\r\nvar SignatureHelpTriggerReason;\r\n(function (SignatureHelpTriggerReason) {\r\n SignatureHelpTriggerReason[SignatureHelpTriggerReason["Invoke"] = 1] = "Invoke";\r\n SignatureHelpTriggerReason[SignatureHelpTriggerReason["TriggerCharacter"] = 2] = "TriggerCharacter";\r\n SignatureHelpTriggerReason[SignatureHelpTriggerReason["ContentChange"] = 3] = "ContentChange";\r\n})(SignatureHelpTriggerReason || (SignatureHelpTriggerReason = {}));\r\n/**\r\n * A document highlight kind.\r\n */\r\nvar DocumentHighlightKind;\r\n(function (DocumentHighlightKind) {\r\n /**\r\n * A textual occurrence.\r\n */\r\n DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text";\r\n /**\r\n * Read-access of a symbol, like reading a variable.\r\n */\r\n DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read";\r\n /**\r\n * Write-access of a symbol, like writing to a variable.\r\n */\r\n DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write";\r\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\r\n/**\r\n * A symbol kind.\r\n */\r\nvar SymbolKind;\r\n(function (SymbolKind) {\r\n SymbolKind[SymbolKind["File"] = 0] = "File";\r\n SymbolKind[SymbolKind["Module"] = 1] = "Module";\r\n SymbolKind[SymbolKind["Namespace"] = 2] = "Namespace";\r\n SymbolKind[SymbolKind["Package"] = 3] = "Package";\r\n SymbolKind[SymbolKind["Class"] = 4] = "Class";\r\n SymbolKind[SymbolKind["Method"] = 5] = "Method";\r\n SymbolKind[SymbolKind["Property"] = 6] = "Property";\r\n SymbolKind[SymbolKind["Field"] = 7] = "Field";\r\n SymbolKind[SymbolKind["Constructor"] = 8] = "Constructor";\r\n SymbolKind[SymbolKind["Enum"] = 9] = "Enum";\r\n SymbolKind[SymbolKind["Interface"] = 10] = "Interface";\r\n SymbolKind[SymbolKind["Function"] = 11] = "Function";\r\n SymbolKind[SymbolKind["Variable"] = 12] = "Variable";\r\n SymbolKind[SymbolKind["Constant"] = 13] = "Constant";\r\n SymbolKind[SymbolKind["String"] = 14] = "String";\r\n SymbolKind[SymbolKind["Number"] = 15] = "Number";\r\n SymbolKind[SymbolKind["Boolean"] = 16] = "Boolean";\r\n SymbolKind[SymbolKind["Array"] = 17] = "Array";\r\n SymbolKind[SymbolKind["Object"] = 18] = "Object";\r\n SymbolKind[SymbolKind["Key"] = 19] = "Key";\r\n SymbolKind[SymbolKind["Null"] = 20] = "Null";\r\n SymbolKind[SymbolKind["EnumMember"] = 21] = "EnumMember";\r\n SymbolKind[SymbolKind["Struct"] = 22] = "Struct";\r\n SymbolKind[SymbolKind["Event"] = 23] = "Event";\r\n SymbolKind[SymbolKind["Operator"] = 24] = "Operator";\r\n SymbolKind[SymbolKind["TypeParameter"] = 25] = "TypeParameter";\r\n})(SymbolKind || (SymbolKind = {}));\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js?')},"../node_modules/monaco-editor/esm/vs/editor/common/viewModel/prefixSumComputer.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrefixSumIndexOfResult", function() { return PrefixSumIndexOfResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrefixSumComputer", function() { return PrefixSumComputer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrefixSumComputerWithCache", function() { return PrefixSumComputerWithCache; });\n/* harmony import */ var _core_uint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/uint.js */ "../node_modules/monaco-editor/esm/vs/editor/common/core/uint.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nvar PrefixSumIndexOfResult = /** @class */ (function () {\r\n function PrefixSumIndexOfResult(index, remainder) {\r\n this.index = index;\r\n this.remainder = remainder;\r\n }\r\n return PrefixSumIndexOfResult;\r\n}());\r\n\r\nvar PrefixSumComputer = /** @class */ (function () {\r\n function PrefixSumComputer(values) {\r\n this.values = values;\r\n this.prefixSum = new Uint32Array(values.length);\r\n this.prefixSumValidIndex = new Int32Array(1);\r\n this.prefixSumValidIndex[0] = -1;\r\n }\r\n PrefixSumComputer.prototype.getCount = function () {\r\n return this.values.length;\r\n };\r\n PrefixSumComputer.prototype.insertValues = function (insertIndex, insertValues) {\r\n insertIndex = Object(_core_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint32"])(insertIndex);\r\n var oldValues = this.values;\r\n var oldPrefixSum = this.prefixSum;\r\n var insertValuesLen = insertValues.length;\r\n if (insertValuesLen === 0) {\r\n return false;\r\n }\r\n this.values = new Uint32Array(oldValues.length + insertValuesLen);\r\n this.values.set(oldValues.subarray(0, insertIndex), 0);\r\n this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen);\r\n this.values.set(insertValues, insertIndex);\r\n if (insertIndex - 1 < this.prefixSumValidIndex[0]) {\r\n this.prefixSumValidIndex[0] = insertIndex - 1;\r\n }\r\n this.prefixSum = new Uint32Array(this.values.length);\r\n if (this.prefixSumValidIndex[0] >= 0) {\r\n this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\r\n }\r\n return true;\r\n };\r\n PrefixSumComputer.prototype.changeValue = function (index, value) {\r\n index = Object(_core_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint32"])(index);\r\n value = Object(_core_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint32"])(value);\r\n if (this.values[index] === value) {\r\n return false;\r\n }\r\n this.values[index] = value;\r\n if (index - 1 < this.prefixSumValidIndex[0]) {\r\n this.prefixSumValidIndex[0] = index - 1;\r\n }\r\n return true;\r\n };\r\n PrefixSumComputer.prototype.removeValues = function (startIndex, cnt) {\r\n startIndex = Object(_core_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint32"])(startIndex);\r\n cnt = Object(_core_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint32"])(cnt);\r\n var oldValues = this.values;\r\n var oldPrefixSum = this.prefixSum;\r\n if (startIndex >= oldValues.length) {\r\n return false;\r\n }\r\n var maxCnt = oldValues.length - startIndex;\r\n if (cnt >= maxCnt) {\r\n cnt = maxCnt;\r\n }\r\n if (cnt === 0) {\r\n return false;\r\n }\r\n this.values = new Uint32Array(oldValues.length - cnt);\r\n this.values.set(oldValues.subarray(0, startIndex), 0);\r\n this.values.set(oldValues.subarray(startIndex + cnt), startIndex);\r\n this.prefixSum = new Uint32Array(this.values.length);\r\n if (startIndex - 1 < this.prefixSumValidIndex[0]) {\r\n this.prefixSumValidIndex[0] = startIndex - 1;\r\n }\r\n if (this.prefixSumValidIndex[0] >= 0) {\r\n this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\r\n }\r\n return true;\r\n };\r\n PrefixSumComputer.prototype.getTotalValue = function () {\r\n if (this.values.length === 0) {\r\n return 0;\r\n }\r\n return this._getAccumulatedValue(this.values.length - 1);\r\n };\r\n PrefixSumComputer.prototype.getAccumulatedValue = function (index) {\r\n if (index < 0) {\r\n return 0;\r\n }\r\n index = Object(_core_uint_js__WEBPACK_IMPORTED_MODULE_0__["toUint32"])(index);\r\n return this._getAccumulatedValue(index);\r\n };\r\n PrefixSumComputer.prototype._getAccumulatedValue = function (index) {\r\n if (index <= this.prefixSumValidIndex[0]) {\r\n return this.prefixSum[index];\r\n }\r\n var startIndex = this.prefixSumValidIndex[0] + 1;\r\n if (startIndex === 0) {\r\n this.prefixSum[0] = this.values[0];\r\n startIndex++;\r\n }\r\n if (index >= this.values.length) {\r\n index = this.values.length - 1;\r\n }\r\n for (var i = startIndex; i <= index; i++) {\r\n this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];\r\n }\r\n this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index);\r\n return this.prefixSum[index];\r\n };\r\n PrefixSumComputer.prototype.getIndexOf = function (accumulatedValue) {\r\n accumulatedValue = Math.floor(accumulatedValue); //@perf\r\n // Compute all sums (to get a fully valid prefixSum)\r\n this.getTotalValue();\r\n var low = 0;\r\n var high = this.values.length - 1;\r\n var mid = 0;\r\n var midStop = 0;\r\n var midStart = 0;\r\n while (low <= high) {\r\n mid = low + ((high - low) / 2) | 0;\r\n midStop = this.prefixSum[mid];\r\n midStart = midStop - this.values[mid];\r\n if (accumulatedValue < midStart) {\r\n high = mid - 1;\r\n }\r\n else if (accumulatedValue >= midStop) {\r\n low = mid + 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return new PrefixSumIndexOfResult(mid, accumulatedValue - midStart);\r\n };\r\n return PrefixSumComputer;\r\n}());\r\n\r\nvar PrefixSumComputerWithCache = /** @class */ (function () {\r\n function PrefixSumComputerWithCache(values) {\r\n this._cacheAccumulatedValueStart = 0;\r\n this._cache = null;\r\n this._actual = new PrefixSumComputer(values);\r\n this._bustCache();\r\n }\r\n PrefixSumComputerWithCache.prototype._bustCache = function () {\r\n this._cacheAccumulatedValueStart = 0;\r\n this._cache = null;\r\n };\r\n PrefixSumComputerWithCache.prototype.insertValues = function (insertIndex, insertValues) {\r\n if (this._actual.insertValues(insertIndex, insertValues)) {\r\n this._bustCache();\r\n }\r\n };\r\n PrefixSumComputerWithCache.prototype.changeValue = function (index, value) {\r\n if (this._actual.changeValue(index, value)) {\r\n this._bustCache();\r\n }\r\n };\r\n PrefixSumComputerWithCache.prototype.removeValues = function (startIndex, cnt) {\r\n if (this._actual.removeValues(startIndex, cnt)) {\r\n this._bustCache();\r\n }\r\n };\r\n PrefixSumComputerWithCache.prototype.getTotalValue = function () {\r\n return this._actual.getTotalValue();\r\n };\r\n PrefixSumComputerWithCache.prototype.getAccumulatedValue = function (index) {\r\n return this._actual.getAccumulatedValue(index);\r\n };\r\n PrefixSumComputerWithCache.prototype.getIndexOf = function (accumulatedValue) {\r\n accumulatedValue = Math.floor(accumulatedValue); //@perf\r\n if (this._cache !== null) {\r\n var cacheIndex = accumulatedValue - this._cacheAccumulatedValueStart;\r\n if (cacheIndex >= 0 && cacheIndex < this._cache.length) {\r\n // Cache hit!\r\n return this._cache[cacheIndex];\r\n }\r\n }\r\n // Cache miss!\r\n return this._actual.getIndexOf(accumulatedValue);\r\n };\r\n /**\r\n * Gives a hint that a lot of requests are about to come in for these accumulated values.\r\n */\r\n PrefixSumComputerWithCache.prototype.warmUpCache = function (accumulatedValueStart, accumulatedValueEnd) {\r\n var newCache = [];\r\n for (var accumulatedValue = accumulatedValueStart; accumulatedValue <= accumulatedValueEnd; accumulatedValue++) {\r\n newCache[accumulatedValue - accumulatedValueStart] = this.getIndexOf(accumulatedValue);\r\n }\r\n this._cache = newCache;\r\n this._cacheAccumulatedValueStart = accumulatedValueStart;\r\n };\r\n return PrefixSumComputerWithCache;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/common/viewModel/prefixSumComputer.js?')},"../node_modules/monaco-editor/esm/vs/editor/editor.worker.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialize", function() { return initialize; });\n/* harmony import */ var _base_common_worker_simpleWorker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../base/common/worker/simpleWorker.js */ "../node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js");\n/* harmony import */ var _common_services_editorSimpleWorker_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/services/editorSimpleWorker.js */ "../node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js");\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\nvar initialized = false;\r\nfunction initialize(foreignModule) {\r\n if (initialized) {\r\n return;\r\n }\r\n initialized = true;\r\n var editorWorker = new _common_services_editorSimpleWorker_js__WEBPACK_IMPORTED_MODULE_1__["EditorSimpleWorkerImpl"](foreignModule);\r\n var simpleWorker = new _base_common_worker_simpleWorker_js__WEBPACK_IMPORTED_MODULE_0__["SimpleWorkerServer"](function (msg) {\r\n self.postMessage(msg);\r\n }, editorWorker);\r\n self.onmessage = function (e) {\r\n simpleWorker.onmessage(e.data);\r\n };\r\n}\r\nself.onmessage = function (e) {\r\n // Ignore first message in this case and initialize if not yet initialized\r\n if (!initialized) {\r\n initialize(null);\r\n }\r\n};\r\n\n\n//# sourceURL=webpack:///../node_modules/monaco-editor/esm/vs/editor/editor.worker.js?')},"../node_modules/process/browser.js":function(module,exports){eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack:///../node_modules/process/browser.js?")},"../node_modules/webpack/buildin/global.js":function(module,exports){eval('var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function("return this")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === "object") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it\'s\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///../node_modules/webpack/buildin/global.js?')}}); |