UNPKG

wam-community

Version:

A collection of prebuilt Web Audio Modules ready for use

47 lines (36 loc) 8.69 MB
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ var __webpack_modules__ = ({ /***/ "../../../node_modules/monaco-editor/esm/vs/base/browser/browser.js": /*!**************************************************************************!*\ !*** ../../../node_modules/monaco-editor/esm/vs/base/browser/browser.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),\n/* harmony export */ getTimeSinceLastZoomLevelChanged: () => (/* binding */ getTimeSinceLastZoomLevelChanged),\n/* harmony export */ getZoomFactor: () => (/* binding */ getZoomFactor),\n/* harmony export */ getZoomLevel: () => (/* binding */ getZoomLevel),\n/* harmony export */ isAndroid: () => (/* binding */ isAndroid),\n/* harmony export */ isChrome: () => (/* binding */ isChrome),\n/* harmony export */ isFirefox: () => (/* binding */ isFirefox),\n/* harmony export */ isSafari: () => (/* binding */ isSafari),\n/* harmony export */ isStandalone: () => (/* binding */ isStandalone),\n/* harmony export */ isWebKit: () => (/* binding */ isWebKit),\n/* harmony export */ isWebkitWebView: () => (/* binding */ isWebkitWebView),\n/* harmony export */ onDidChangeZoomLevel: () => (/* binding */ onDidChangeZoomLevel)\n/* harmony export */ });\n/* harmony import */ var _common_event_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/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\nclass WindowManager {\r\n constructor() {\r\n // --- Zoom Level\r\n this._zoomLevel = 0;\r\n this._lastZoomLevelChangeTime = 0;\r\n this._onDidChangeZoomLevel = new _common_event_js__WEBPACK_IMPORTED_MODULE_0__.Emitter();\r\n this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;\r\n // --- Zoom Factor\r\n this._zoomFactor = 1;\r\n }\r\n getZoomLevel() {\r\n return this._zoomLevel;\r\n }\r\n getTimeSinceLastZoomLevelChanged() {\r\n return Date.now() - this._lastZoomLevelChangeTime;\r\n }\r\n getZoomFactor() {\r\n return this._zoomFactor;\r\n }\r\n // --- Pixel Ratio\r\n getPixelRatio() {\r\n let ctx = document.createElement('canvas').getContext('2d');\r\n let dpr = window.devicePixelRatio || 1;\r\n let bsr = ctx.webkitBackingStorePixelRatio ||\r\n ctx.mozBackingStorePixelRatio ||\r\n ctx.msBackingStorePixelRatio ||\r\n ctx.oBackingStorePixelRatio ||\r\n ctx.backingStorePixelRatio || 1;\r\n return dpr / bsr;\r\n }\r\n}\r\nWindowManager.INSTANCE = new WindowManager();\r\nfunction getZoomLevel() {\r\n return WindowManager.INSTANCE.getZoomLevel();\r\n}\r\n/** Returns the time (in ms) since the zoom level was changed */\r\nfunction getTimeSinceLastZoomLevelChanged() {\r\n return WindowManager.INSTANCE.getTimeSinceLastZoomLevelChanged();\r\n}\r\nfunction onDidChangeZoomLevel(callback) {\r\n return WindowManager.INSTANCE.onDidChangeZoomLevel(callback);\r\n}\r\n/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */\r\nfunction getZoomFactor() {\r\n return WindowManager.INSTANCE.getZoomFactor();\r\n}\r\nfunction getPixelRatio() {\r\n return WindowManager.INSTANCE.getPixelRatio();\r\n}\r\nconst userAgent = navigator.userAgent;\r\nconst isFirefox = (userAgent.indexOf('Firefox') >= 0);\r\nconst isWebKit = (userAgent.indexOf('AppleWebKit') >= 0);\r\nconst isChrome = (userAgent.indexOf('Chrome') >= 0);\r\nconst isSafari = (!isChrome && (userAgent.indexOf('Safari') >= 0));\r\nconst isWebkitWebView = (!isChrome && !isSafari && isWebKit);\r\nconst isAndroid = (userAgent.indexOf('Android') >= 0);\r\nconst isStandalone = (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\r\n\n\n//# sourceURL=webpack://functionseq/../../../node_modules/monaco-editor/esm/vs/base/browser/browser.js?"); /***/ }), /***/ "../../../node_modules/monaco-editor/esm/vs/base/browser/canIUse.js": /*!**************************************************************************!*\ !*** ../../../node_modules/monaco-editor/esm/vs/base/browser/canIUse.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BrowserFeatures: () => (/* binding */ BrowserFeatures)\n/* harmony export */ });\n/* harmony import */ var _browser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser.js */ \"../../../node_modules/monaco-editor/esm/vs/base/browser/browser.js\");\n/* harmony import */ var _common_platform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/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\n\r\n\r\n/**\r\n * Browser feature we can support in current platform, browser and environment.\r\n */\r\nconst BrowserFeatures = {\r\n clipboard: {\r\n writeText: (_common_platform_js__WEBPACK_IMPORTED_MODULE_1__.isNative\r\n || (document.queryCommandSupported && document.queryCommandSupported('copy'))\r\n || !!(navigator && navigator.clipboard && navigator.clipboard.writeText)),\r\n readText: (_common_platform_js__WEBPACK_IMPORTED_MODULE_1__.isNative\r\n || !!(navigator && navigator.clipboard && navigator.clipboard.readText))\r\n },\r\n keyboard: (() => {\r\n if (_common_platform_js__WEBPACK_IMPORTED_MODULE_1__.isNative || _browser_js__WEBPACK_IMPORTED_MODULE_0__.isStandalone) {\r\n return 0 /* Always */;\r\n }\r\n if (navigator.keyboard || _browser_js__WEBPACK_IMPORTED_MODULE_0__.isSafari) {\r\n return 1 /* FullScreen */;\r\n }\r\n return 2 /* None */;\r\n })(),\r\n // 'ontouchstart' in window always evaluates to true with typescript's modern typings. This causes `window` to be\r\n // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast\r\n touch: 'ontouchstart' in window || navigator.maxTouchPoints > 0 || window.navigator.msMaxTouchPoints > 0,\r\n pointerEvents: window.PointerEvent && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0 || navigator.maxTouchPoints > 0 || window.navigator.msMaxTouchPoints > 0)\r\n};\r\n\n\n//# sourceURL=webpack://functionseq/../../../node_modules/monaco-editor/esm/vs/base/browser/canIUse.js?"); /***/ }), /***/ "../../../node_modules/monaco-editor/esm/vs/base/browser/dnd.js": /*!**********************************************************************!*\ !*** ../../../node_modules/monaco-editor/esm/vs/base/browser/dnd.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTransfers: () => (/* binding */ DataTransfers),\n/* harmony export */ DragAndDropData: () => (/* binding */ DragAndDropData),\n/* harmony export */ StaticDND: () => (/* binding */ StaticDND)\n/* harmony export */ });\n// Common data transfers\r\nconst DataTransfers = {\r\n /**\r\n * Application specific resource transfer type\r\n */\r\n RESOURCES: 'ResourceURLs',\r\n /**\r\n * Browser specific transfer type to download\r\n */\r\n DOWNLOAD_URL: 'DownloadURL',\r\n /**\r\n * Browser specific transfer type for files\r\n */\r\n FILES: 'Files',\r\n /**\r\n * Typically transfer type for copy/paste transfers.\r\n */\r\n TEXT: 'text/plain'\r\n};\r\nclass DragAndDropData {\r\n constructor(data) {\r\n this.data = data;\r\n }\r\n update() {\r\n // noop\r\n }\r\n getData() {\r\n return this.data;\r\n }\r\n}\r\nconst StaticDND = {\r\n CurrentDragAndDropData: undefined\r\n};\r\n\n\n//# sourceURL=webpack://functionseq/../../../node_modules/monaco-editor/esm/vs/base/browser/dnd.js?"); /***/ }), /***/ "../../../node_modules/monaco-editor/esm/vs/base/browser/dom.js": /*!**********************************************************************!*\ !*** ../../../node_modules/monaco-editor/esm/vs/base/browser/dom.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ $: () => (/* binding */ $),\n/* harmony export */ Dimension: () => (/* binding */ Dimension),\n/* harmony export */ EventHelper: () => (/* binding */ EventHelper),\n/* harmony export */ EventType: () => (/* binding */ EventType),\n/* harmony export */ ModifierKeyEmitter: () => (/* binding */ ModifierKeyEmitter),\n/* harmony export */ Namespace: () => (/* binding */ Namespace),\n/* harmony export */ StandardWindow: () => (/* binding */ StandardWindow),\n/* harmony export */ addDisposableGenericMouseDownListner: () => (/* binding */ addDisposableGenericMouseDownListner),\n/* harmony export */ addDisposableGenericMouseUpListner: () => (/* binding */ addDisposableGenericMouseUpListner),\n/* harmony export */ addDisposableListener: () => (/* binding */ addDisposableListener),\n/* harmony export */ addDisposableNonBubblingMouseOutListener: () => (/* binding */ addDisposableNonBubblingMouseOutListener),\n/* harmony export */ addDisposableNonBubblingPointerOutListener: () => (/* binding */ addDisposableNonBubblingPointerOutListener),\n/* harmony export */ addDisposableThrottledListener: () => (/* binding */ addDisposableThrottledListener),\n/* harmony export */ addMatchMediaChangeListener: () => (/* binding */ addMatchMediaChangeListener),\n/* harmony export */ addStandardDisposableGenericMouseDownListner: () => (/* binding */ addStandardDisposableGenericMouseDownListner),\n/* harmony export */ addStandardDisposableListener: () => (/* binding */ addStandardDisposableListener),\n/* harmony export */ animate: () => (/* binding */ animate),\n/* harmony export */ append: () => (/* binding */ append),\n/* harmony export */ asCSSPropertyValue: () => (/* binding */ asCSSPropertyValue),\n/* harmony export */ asCSSUrl: () => (/* binding */ asCSSUrl),\n/* harmony export */ clearNode: () => (/* binding */ clearNode),\n/* harmony export */ computeScreenAwareSize: () => (/* binding */ computeScreenAwareSize),\n/* harmony export */ createCSSRule: () => (/* binding */ createCSSRule),\n/* harmony export */ createStyleSheet: () => (/* binding */ createStyleSheet),\n/* harmony export */ findParentWithClass: () => (/* binding */ findParentWithClass),\n/* harmony export */ getActiveElement: () => (/* binding */ getActiveElement),\n/* harmony export */ getClientArea: () => (/* binding */ getClientArea),\n/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle),\n/* harmony export */ getContentHeight: () => (/* binding */ getContentHeight),\n/* harmony export */ getContentWidth: () => (/* binding */ getContentWidth),\n/* harmony export */ getDomNodePagePosition: () => (/* binding */ getDomNodePagePosition),\n/* harmony export */ getElementsByTagName: () => (/* binding */ getElementsByTagName),\n/* harmony export */ getShadowRoot: () => (/* binding */ getShadowRoot),\n/* harmony export */ getTopLeftOffset: () => (/* binding */ getTopLeftOffset),\n/* harmony export */ getTotalHeight: () => (/* binding */ getTotalHeight),\n/* harmony export */ getTotalWidth: () => (/* binding */ getTotalWidth),\n/* harmony export */ hasParentWithClass: () => (/* binding */ hasParentWithClass),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ isAncestor: () => (/* binding */ isAncestor),\n/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),\n/* harmony export */ isInDOM: () => (/* binding */ isInDOM),\n/* harmony export */ isInShadowDOM: () => (/* binding */ isInShadowDOM),\n/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot),\n/* harmony export */ removeCSSRulesContainingSelector: () => (/* binding */ removeCSSRulesContainingSelector),\n/* harmony export */ reset: () => (/* binding */ reset),\n/* harmony export */ restoreParentsScrollTop: () => (/* binding */ restoreParentsScrollTop),\n/* harmony export */ runAtThisOrScheduleAtNextAnimationFrame: () => (/* binding */ runAtThisOrScheduleAtNextAnimationFrame),\n/* harmony export */ saveParentsScrollTop: () => (/* binding */ saveParentsScrollTop),\n/* harmony export */ scheduleAtNextAnimationFrame: () => (/* binding */ scheduleAtNextAnimationFrame),\n/* harmony export */ show: () => (/* binding */ show),\n/* harmony export */ size: () => (/* binding */ size),\n/* harmony export */ trackFocus: () => (/* binding */ trackFocus),\n/* harmony export */ windowOpenNoOpener: () => (/* binding */ windowOpenNoOpener)\n/* harmony export */ });\n/* harmony import */ var _browser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser.js */ \"../../../node_modules/monaco-editor/esm/vs/base/browser/browser.js\");\n/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./event.js */ \"../../../node_modules/monaco-editor/esm/vs/base/browser/event.js\");\n/* harmony import */ var _keyboardEvent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyboardEvent.js */ \"../../../node_modules/monaco-editor/esm/vs/base/browser/keyboardEvent.js\");\n/* harmony import */ var _mouseEvent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mouseEvent.js */ \"../../../node_modules/monaco-editor/esm/vs/base/browser/mouseEvent.js\");\n/* harmony import */ var _common_async_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/async.js */ \"../../../node_modules/monaco-editor/esm/vs/base/common/async.js\");\n/* harmony import */ var _common_errors_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/errors.js */ \"../../../node_modules/monaco-editor/esm/vs/base/common/errors.js\");\n/* harmony import */ var _common_event_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/event.js */ \"../../../node_modules/monaco-editor/esm/vs/base/common/event.js\");\n/* harmony import */ var _common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/lifecycle.js */ \"../../../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js\");\n/* harmony import */ var _common_platform_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/platform.js */ \"../../../node_modules/monaco-editor/esm/vs/base/common/platform.js\");\n/* harmony import */ var _common_network_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/network.js */ \"../../../node_modules/monaco-editor/esm/vs/base/common/network.js\");\n/* harmony import */ var _canIUse_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./canIUse.js */ \"../../../node_modules/monaco-editor/esm/vs/base/browser/canIUse.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\n\r\nfunction clearNode(node) {\r\n while (node.firstChild) {\r\n node.firstChild.remove();\r\n }\r\n}\r\n/**\r\n * @deprecated Use node.isConnected directly\r\n */\r\nfunction isInDOM(node) {\r\n var _a;\r\n return (_a = node === null || node === void 0 ? void 0 : node.isConnected) !== null && _a !== void 0 ? _a : false;\r\n}\r\nclass DomListener {\r\n constructor(node, type, handler, options) {\r\n this._node = node;\r\n this._type = type;\r\n this._handler = handler;\r\n this._options = (options || false);\r\n this._node.addEventListener(this._type, this._handler, this._options);\r\n }\r\n dispose() {\r\n if (!this._handler) {\r\n // Already disposed\r\n return;\r\n }\r\n this._node.removeEventListener(this._type, this._handler, this._options);\r\n // Prevent leakers from holding on to the dom or handler func\r\n this._node = null;\r\n this._handler = null;\r\n }\r\n}\r\nfunction addDisposableListener(node, type, handler, useCaptureOrOptions) {\r\n return new DomListener(node, type, handler, useCaptureOrOptions);\r\n}\r\nfunction _wrapAsStandardMouseEvent(handler) {\r\n return function (e) {\r\n return handler(new _mouseEvent_js__WEBPACK_IMPORTED_MODULE_3__.StandardMouseEvent(e));\r\n };\r\n}\r\nfunction _wrapAsStandardKeyboardEvent(handler) {\r\n return function (e) {\r\n return handler(new _keyboardEvent_js__WEBPACK_IMPORTED_MODULE_2__.StandardKeyboardEvent(e));\r\n };\r\n}\r\nlet addStandardDisposableListener = function addStandardDisposableListener(node, type, handler, useCapture) {\r\n let wrapHandler = handler;\r\n if (type === 'click' || type === 'mousedown') {\r\n wrapHandler = _wrapAsStandardMouseEvent(handler);\r\n }\r\n else if (type === 'keydown' || type === 'keypress' || type === 'keyup') {\r\n wrapHandler = _wrapAsStandardKeyboardEvent(handler);\r\n }\r\n return addDisposableListener(node, type, wrapHandler, useCapture);\r\n};\r\nlet addStandardDisposableGenericMouseDownListner = function addStandardDisposableListener(node, handler, useCapture) {\r\n let wrapHandler = _wrapAsStandardMouseEvent(handler);\r\n return addDisposableGenericMouseDownListner(node, wrapHandler, useCapture);\r\n};\r\nfunction addDisposableGenericMouseDownListner(node, handler, useCapture) {\r\n return addDisposableListener(node, _common_platform_js__WEBPACK_IMPORTED_MODULE_8__.isIOS && _canIUse_js__WEBPACK_IMPORTED_MODULE_10__.BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);\r\n}\r\nfunction addDisposableGenericMouseUpListner(node, handler, useCapture) {\r\n return addDisposableListener(node, _common_platform_js__WEBPACK_IMPORTED_MODULE_8__.isIOS && _canIUse_js__WEBPACK_IMPORTED_MODULE_10__.BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);\r\n}\r\nfunction addDisposableNonBubblingMouseOutListener(node, handler) {\r\n return addDisposableListener(node, 'mouseout', (e) => {\r\n // Mouse out bubbles, so this is an attempt to ignore faux mouse outs coming from children elements\r\n let toElement = (e.relatedTarget);\r\n while (toElement && toElement !== node) {\r\n toElement = toElement.parentNode;\r\n }\r\n if (toElement === node) {\r\n return;\r\n }\r\n handler(e);\r\n });\r\n}\r\nfunction addDisposableNonBubblingPointerOutListener(node, handler) {\r\n return addDisposableListener(node, 'pointerout', (e) => {\r\n // Mouse out bubbles, so this is an attempt to ignore faux mouse outs coming from children elements\r\n let toElement = (e.relatedTarget);\r\n while (toElement && toElement !== node) {\r\n toElement = toElement.parentNode;\r\n }\r\n if (toElement === node) {\r\n return;\r\n }\r\n handler(e);\r\n });\r\n}\r\nlet _animationFrame = null;\r\nfunction doRequestAnimationFrame(callback) {\r\n if (!_animationFrame) {\r\n const emulatedRequestAnimationFrame = (callback) => {\r\n return setTimeout(() => callback(new Date().getTime()), 0);\r\n };\r\n _animationFrame = (self.requestAnimationFrame\r\n || self.msRequestAnimationFrame\r\n || self.webkitRequestAnimationFrame\r\n || self.mozRequestAnimationFrame\r\n || self.oRequestAnimationFrame\r\n || emulatedRequestAnimationFrame);\r\n }\r\n return _animationFrame.call(self, callback);\r\n}\r\n/**\r\n * Schedule a callback to be run at the next animation frame.\r\n * This allows multiple parties to register callbacks that should run at the next animation frame.\r\n * If currently in an animation frame, `runner` will be executed immediately.\r\n * @return token that can be used to cancel the scheduled runner (only if `runner` was not executed immediately).\r\n */\r\nlet runAtThisOrScheduleAtNextAnimationFrame;\r\n/**\r\n * Schedule a callback to be run at the next animation frame.\r\n * This allows multiple parties to register callbacks that should run at the next animation frame.\r\n * If currently in an animation frame, `runner` will be executed at the next animation frame.\r\n * @return token that can be used to cancel the scheduled runner.\r\n */\r\nlet scheduleAtNextAnimationFrame;\r\nclass AnimationFrameQueueItem {\r\n constructor(runner, priority = 0) {\r\n this._runner = runner;\r\n this.priority = priority;\r\n this._canceled = false;\r\n }\r\n dispose() {\r\n this._canceled = true;\r\n }\r\n execute() {\r\n if (this._canceled) {\r\n return;\r\n }\r\n try {\r\n this._runner();\r\n }\r\n catch (e) {\r\n (0,_common_errors_js__WEBPACK_IMPORTED_MODULE_5__.onUnexpectedError)(e);\r\n }\r\n }\r\n // Sort by priority (largest to lowest)\r\n static sort(a, b) {\r\n return b.priority - a.priority;\r\n }\r\n}\r\n(function () {\r\n /**\r\n * The runners scheduled at the next animation frame\r\n */\r\n let NEXT_QUEUE = [];\r\n /**\r\n * The runners scheduled at the current animation frame\r\n */\r\n let CURRENT_QUEUE = null;\r\n /**\r\n * A flag to keep track if the native requestAnimationFrame was already called\r\n */\r\n let animFrameRequested = false;\r\n /**\r\n * A flag to indicate if currently handling a native requestAnimationFrame callback\r\n */\r\n let inAnimationFrameRunner = false;\r\n let animationFrameRunner = () => {\r\n animFrameRequested = false;\r\n CURRENT_QUEUE = NEXT_QUEUE;\r\n NEXT_QUEUE = [];\r\n inAnimationFrameRunner = true;\r\n while (CURRENT_QUEUE.length > 0) {\r\n CURRENT_QUEUE.sort(AnimationFrameQueueItem.sort);\r\n let top = CURRENT_QUEUE.shift();\r\n top.execute();\r\n }\r\n inAnimationFrameRunner = false;\r\n };\r\n scheduleAtNextAnimationFrame = (runner, priority = 0) => {\r\n let item = new AnimationFrameQueueItem(runner, priority);\r\n NEXT_QUEUE.push(item);\r\n if (!animFrameRequested) {\r\n animFrameRequested = true;\r\n doRequestAnimationFrame(animationFrameRunner);\r\n }\r\n return item;\r\n };\r\n runAtThisOrScheduleAtNextAnimationFrame = (runner, priority) => {\r\n if (inAnimationFrameRunner) {\r\n let item = new AnimationFrameQueueItem(runner, priority);\r\n CURRENT_QUEUE.push(item);\r\n return item;\r\n }\r\n else {\r\n return scheduleAtNextAnimationFrame(runner, priority);\r\n }\r\n };\r\n})();\r\nconst MINIMUM_TIME_MS = 8;\r\nconst DEFAULT_EVENT_MERGER = function (lastEvent, currentEvent) {\r\n return currentEvent;\r\n};\r\nclass TimeoutThrottledDomListener extends _common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__.Disposable {\r\n constructor(node, type, handler, eventMerger = DEFAULT_EVENT_MERGER, minimumTimeMs = MINIMUM_TIME_MS) {\r\n super();\r\n let lastEvent = null;\r\n let lastHandlerTime = 0;\r\n let timeout = this._register(new _common_async_js__WEBPACK_IMPORTED_MODULE_4__.TimeoutTimer());\r\n let invokeHandler = () => {\r\n lastHandlerTime = (new Date()).getTime();\r\n handler(lastEvent);\r\n lastEvent = null;\r\n };\r\n this._register(addDisposableListener(node, type, (e) => {\r\n lastEvent = eventMerger(lastEvent, e);\r\n let elapsedTime = (new Date()).getTime() - lastHandlerTime;\r\n if (elapsedTime >= minimumTimeMs) {\r\n timeout.cancel();\r\n invokeHandler();\r\n }\r\n else {\r\n timeout.setIfNotSet(invokeHandler, minimumTimeMs - elapsedTime);\r\n }\r\n }));\r\n }\r\n}\r\nfunction addDisposableThrottledListener(node, type, handler, eventMerger, minimumTimeMs) {\r\n return new TimeoutThrottledDomListener(node, type, handler, eventMerger, minimumTimeMs);\r\n}\r\nfunction getComputedStyle(el) {\r\n return document.defaultView.getComputedStyle(el, null);\r\n}\r\nfunction getClientArea(element) {\r\n // Try with DOM clientWidth / clientHeight\r\n if (element !== document.body) {\r\n return new Dimension(element.clientWidth, element.clientHeight);\r\n }\r\n // If visual view port exits and it's on mobile, it should be used instead of window innerWidth / innerHeight, or document.body.clientWidth / document.body.clientHeight\r\n if (_common_platform_js__WEBPACK_IMPORTED_MODULE_8__.isIOS && window.visualViewport) {\r\n return new Dimension(window.visualViewport.width, window.visualViewport.height);\r\n }\r\n // Try innerWidth / innerHeight\r\n if (window.innerWidth && window.innerHeight) {\r\n return new Dimension(window.innerWidth, window.innerHeight);\r\n }\r\n // Try with document.body.clientWidth / document.body.clientHeight\r\n if (document.body && document.body.clientWidth && document.body.clientHeight) {\r\n return new Dimension(document.body.clientWidth, document.body.clientHeight);\r\n }\r\n // Try with document.documentElement.clientWidth / document.documentElement.clientHeight\r\n if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight) {\r\n return new Dimension(document.documentElement.clientWidth, document.documentElement.clientHeight);\r\n }\r\n throw new Error('Unable to figure out browser width and height');\r\n}\r\nclass SizeUtils {\r\n // Adapted from WinJS\r\n // Converts a CSS positioning string for the specified element to pixels.\r\n static convertToPixels(element, value) {\r\n return parseFloat(value) || 0;\r\n }\r\n static getDimension(element, cssPropertyName, jsPropertyName) {\r\n let computedStyle = getComputedStyle(element);\r\n let value = '0';\r\n if (computedStyle) {\r\n if (computedStyle.getPropertyValue) {\r\n value = computedStyle.getPropertyValue(cssPropertyName);\r\n }\r\n else {\r\n // IE8\r\n value = computedStyle.getAttribute(jsPropertyName);\r\n }\r\n }\r\n return SizeUtils.convertToPixels(element, value);\r\n }\r\n static getBorderLeftWidth(element) {\r\n return SizeUtils.getDimension(element, 'border-left-width', 'borderLeftWidth');\r\n }\r\n static getBorderRightWidth(element) {\r\n return SizeUtils.getDimension(element, 'border-right-width', 'borderRightWidth');\r\n }\r\n static getBorderTopWidth(element) {\r\n return SizeUtils.getDimension(element, 'border-top-width', 'borderTopWidth');\r\n }\r\n static getBorderBottomWidth(element) {\r\n return SizeUtils.getDimension(element, 'border-bottom-width', 'borderBottomWidth');\r\n }\r\n static getPaddingLeft(element) {\r\n return SizeUtils.getDimension(element, 'padding-left', 'paddingLeft');\r\n }\r\n static getPaddingRight(element) {\r\n return SizeUtils.getDimension(element, 'padding-right', 'paddingRight');\r\n }\r\n static getPaddingTop(element) {\r\n return SizeUtils.getDimension(element, 'padding-top', 'paddingTop');\r\n }\r\n static getPaddingBottom(element) {\r\n return SizeUtils.getDimension(element, 'padding-bottom', 'paddingBottom');\r\n }\r\n static getMarginLeft(element) {\r\n return SizeUtils.getDimension(element, 'margin-left', 'marginLeft');\r\n }\r\n static getMarginTop(element) {\r\n return SizeUtils.getDimension(element, 'margin-top', 'marginTop');\r\n }\r\n static getMarginRight(element) {\r\n return SizeUtils.getDimension(element, 'margin-right', 'marginRight');\r\n }\r\n static getMarginBottom(element) {\r\n return SizeUtils.getDimension(element, 'margin-bottom', 'marginBottom');\r\n }\r\n}\r\nclass Dimension {\r\n constructor(width, height) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n with(width = this.width, height = this.height) {\r\n if (width !== this.width || height !== this.height) {\r\n return new Dimension(width, height);\r\n }\r\n else {\r\n return this;\r\n }\r\n }\r\n static is(obj) {\r\n return typeof obj === 'object' && typeof obj.height === 'number' && typeof obj.width === 'number';\r\n }\r\n static lift(obj) {\r\n if (obj instanceof Dimension) {\r\n return obj;\r\n }\r\n else {\r\n return new Dimension(obj.width, obj.height);\r\n }\r\n }\r\n static equals(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (!a || !b) {\r\n return false;\r\n }\r\n return a.width === b.width && a.height === b.height;\r\n }\r\n}\r\nfunction getTopLeftOffset(element) {\r\n // Adapted from WinJS.Utilities.getPosition\r\n // and added borders to the mix\r\n let offsetParent = element.offsetParent;\r\n let top = element.offsetTop;\r\n let left = element.offsetLeft;\r\n while ((element = element.parentNode) !== null\r\n && element !== document.body\r\n && element !== document.documentElement) {\r\n top -= element.scrollTop;\r\n const c = isShadowRoot(element) ? null : getComputedStyle(element);\r\n if (c) {\r\n left -= c.direction !== 'rtl' ? element.scrollLeft : -element.scrollLeft;\r\n }\r\n if (element === offsetParent) {\r\n left += SizeUtils.getBorderLeftWidth(element);\r\n top += SizeUtils.getBorderTopWidth(element);\r\n top += element.offsetTop;\r\n left += element.offsetLeft;\r\n offsetParent = element.offsetParent;\r\n }\r\n }\r\n return {\r\n left: left,\r\n top: top\r\n };\r\n}\r\nfunction size(element, width, height) {\r\n if (typeof width === 'number') {\r\n element.style.width = `${width}px`;\r\n }\r\n if (typeof height === 'number') {\r\n element.style.height = `${height}px`;\r\n }\r\n}\r\n/**\r\n * Returns the position of a dom node relative to the entire page.\r\n */\r\nfunction getDomNodePagePosition(domNode) {\r\n let bb = domNode.getBoundingClientRect();\r\n return {\r\n left: bb.left + StandardWindow.scrollX,\r\n top: bb.top + StandardWindow.scrollY,\r\n width: bb.width,\r\n height: bb.height\r\n };\r\n}\r\nconst StandardWindow = new class {\r\n get scrollX() {\r\n if (typeof window.scrollX === 'number') {\r\n // modern browsers\r\n return window.scrollX;\r\n }\r\n else {\r\n return document.body.scrollLeft + document.documentElement.scrollLeft;\r\n }\r\n }\r\n get scrollY() {\r\n if (typeof window.scrollY === 'number') {\r\n // modern browsers\r\n return window.scrollY;\r\n }\r\n else {\r\n return document.body.scrollTop + document.documentElement.scrollTop;\r\n }\r\n }\r\n};\r\n// Adapted from WinJS\r\n// Gets the width of the element, including margins.\r\nfunction getTotalWidth(element) {\r\n let margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);\r\n return element.offsetWidth + margin;\r\n}\r\nfunction getContentWidth(element) {\r\n let border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);\r\n let padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);\r\n return element.offsetWidth - border - padding;\r\n}\r\n// Adapted from WinJS\r\n// Gets the height of the content of the specified element. The content height does not include borders or padding.\r\nfunction getContentHeight(element) {\r\n let border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);\r\n let padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);\r\n return element.offsetHeight - border - padding;\r\n}\r\n// Adapted from WinJS\r\n// Gets the height of the element, including its margins.\r\nfunction getTotalHeight(element) {\r\n let margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);\r\n return element.offsetHeight + margin;\r\n}\r\n// ----------------------------------------------------------------------------------------\r\nfunction isAncestor(testChild, testAncestor) {\r\n while (testChild) {\r\n if (testChild === testAncestor) {\r\n return true;\r\n }\r\n testChild = testChild.parentNode;\r\n }\r\n return false;\r\n}\r\nfunction findParentWithClass(node, clazz, stopAtClazzOrNode) {\r\n while (node && node.nodeType === node.ELEMENT_NODE) {\r\n if (node.classList.contains(clazz)) {\r\n return node;\r\n }\r\n if (stopAtClazzOrNode) {\r\n if (typeof stopAtClazzOrNode === 'string') {\r\n if (node.classList.contains(stopAtClazzOrNode)) {\r\n return null;\r\n }\r\n }\r\n else {\r\n if (node === stopAtClazzOrNode) {\r\n return null;\r\n }\r\n }\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n}\r\nfunction hasParentWithClass(node, clazz, stopAtClazzOrNode) {\r\n return !!findParentWithClass(node, clazz, stopAtClazzOrNode);\r\n}\r\nfunction isShadowRoot(node) {\r\n return (node && !!node.host && !!node.mode);\r\n}\r\nfunction isInShadowDOM(domNode) {\r\n return !!getShadowRoot(domNode);\r\n}\r\nfunction getShadowRoot(domNode) {\r\n while (domNode.parentNode) {\r\n if (domNode === document.body) {\r\n // reached the body\r\n return null;\r\n }\r\n domNode = domNode.parentNode;\r\n }\r\n return isShadowRoot(domNode) ? domNode : null;\r\n}\r\nfunction getActiveElement() {\r\n let result = document.activeElement;\r\n while (result === null || result === void 0 ? void 0 : result.shadowRoot) {\r\n result = result.shadowRoot.activeElement;\r\n }\r\n return result;\r\n}\r\nfunction createStyleSheet(container = document.getElementsByTagName('head')[0]) {\r\n let style = document.createElement('style');\r\n style.type = 'text/css';\r\n style.media = 'screen';\r\n container.appendChild(style);\r\n return style;\r\n}\r\nlet _sharedStyleSheet = null;\r\nfunction getSharedStyleSheet() {\r\n if (!_sharedStyleSheet) {\r\n _sharedStyleSheet = createStyleSheet();\r\n }\r\n return _sharedStyleSheet;\r\n}\r\nfunction getDynamicStyleSheetRules(style) {\r\n var _a, _b;\r\n if ((_a = style === null || style === void 0 ? void 0 : style.sheet) === null || _a === void 0 ? void 0 : _a.rules) {\r\n // Chrome, IE\r\n return style.sheet.rules;\r\n }\r\n if ((_b = style === null || style === void 0 ? void 0 : style.sheet) === null || _b === void 0 ? void 0 : _b.cssRules) {\r\n // FF\r\n return style.sheet.cssRules;\r\n }\r\n return [];\r\n}\r\nfunction createCSSRule(selector, cssText, style = getSharedStyleSheet()) {\r\n if (!style || !cssText) {\r\n return;\r\n }\r\n style.sheet.insertRule(selector + '{' + cssText + '}', 0);\r\n}\r\nfunction removeCSSRulesContainingSelector(ruleName, style = getSharedStyleSheet()) {\r\n if (!style) {\r\n return;\r\n }\r\n let rules = getDynamicStyleSheetRules(style);\r\n let toDelete = [];\r\n for (let i = 0; i < rules.length; i++) {\r\n let rule = rules[i];\r\n if (rule.selectorText.indexOf(ruleName) !== -1) {\r\n toDelete.push(i);\r\n }\r\n }\r\n for (let i = toDelete.length - 1; i >= 0; i--) {\r\n style.sheet.deleteRule(toDelete[i]);\r\n }\r\n}\r\nfunction isHTMLElement(o) {\r\n if (typeof HTMLElement === 'object') {\r\n return o instanceof HTMLElement;\r\n }\r\n return o && typeof o === 'object' && o.nodeType === 1 && typeof o.nodeName === 'string';\r\n}\r\nconst EventType = {\r\n // Mouse\r\n CLICK: 'click',\r\n AUXCLICK: 'auxclick',\r\n DBLCLICK: 'dblclick',\r\n MOUSE_UP: 'mouseup',\r\n MOUSE_DOWN: 'mousedown',\r\n MOUSE_OVER: 'mouseover',\r\n MOUSE_MOVE: 'mousemove',\r\n MOUSE_OUT: 'mouseout',\r\n MOUSE_ENTER: 'mouseenter',\r\n MOUSE_LEAVE: 'mouseleave',\r\n MOUSE_WHEEL: 'wheel',\r\n POINTER_UP: 'pointerup',\r\n POINTER_DOWN: 'pointerdown',\r\n POINTER_MOVE: 'pointermove',\r\n CONTEXT_MENU: 'contextmenu',\r\n WHEEL: 'wheel',\r\n // Keyboard\r\n KEY_DOWN: 'keydown',\r\n KEY_PRESS: 'keypress',\r\n KEY_UP: 'keyup',\r\n // HTML Document\r\n LOAD: 'load',\r\n BEFORE_UNLOAD: 'beforeunload',\r\n UNLOAD: 'unload',\r\n ABORT: 'abort',\r\n ERROR: 'error',\r\n RESIZE: 'resize',\r\n SCROLL: 'scroll',\r\n FULLSCREEN_CHANGE: 'fullscreenchange',\r\n WK_FULLSCREEN_CHANGE: 'webkitfullscreenchange',\r\n // Form\r\n SELECT: 'select',\r\n CHANGE: 'change',\r\n SUBMIT: 'submit',\r\n RESET: 'reset',\r\n FOCUS: 'focus',\r\n FOCUS_IN: 'focusin',\r\n FOCUS_OUT: 'focusout',\r\n BLUR: 'blur',\r\n INPUT: 'input',\r\n // Local Storage\r\n STORAGE: 'storage',\r\n // Drag\r\n DRAG_START: 'dragstart',\r\n DRAG: 'drag',\r\n DRAG_ENTER: 'dragenter',\r\n DRAG_LEAVE: 'dragleave',\r\n DRAG_OVER: 'dragover',\r\n DROP: 'drop',\r\n DRAG_END: 'dragend',\r\n // Animation\r\n ANIMATION_START: _browser_js__WEBPACK_IMPORTED_MODULE_0__.isWebKit ? 'webkitAnimationStart' : 'animationstart',\r\n ANIMATION_END: _browser_js__WEBPACK_IMPORTED_MODULE_0__.isWebKit ? 'webkitAnimationEnd' : 'animationend',\r\n ANIMATION_ITERATION: _browser_js__WEBPACK_IMPORTED_MODULE_0__.isWebKit ? 'webkitAnimationIteration' : 'animationiteration'\r\n};\r\nconst EventHelper = {\r\n stop: function (e, cancelBubble) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n else {\r\n // IE8\r\n e.returnValue = false;\r\n }\r\n if (cancelBubble) {\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n }\r\n else {\r\n // IE8\r\n e.cancelBubble = true;\r\n }\r\n }\r\n }\r\n};\r\nfunction saveParentsScrollTop(node) {\r\n let r = [];\r\n for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\r\n r[i] = node.scrollTop;\r\n node = node.parentNode;\r\n }\r\n return r;\r\n}\r\nfunction restoreParentsScrollTop(node, state) {\r\n for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\r\n if (node.scrollTop !== state[i]) {\r\n node.scrollTop = state[i];\r\n }\r\n node = node.parentNode;\r\n }\r\n}\r\nclass FocusTracker extends _common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__.Disposable {\r\n constructor(element) {\r\n super();\r\n this._onDidFocus = this._register(new _common_event_js__WEBPACK_IMPORTED_MODULE_6__.Emitter());\r\n this.onDidFocus = this._onDidFocus.event;\r\n this._onDidBlur = this._register(new _common_event_js__WEBPACK_IMPORTED_MODULE_6__.Emitter());\r\n this.onDidBlur = this._onDidBlur.event;\r\n let hasFocus = isAncestor(document.activeElement, element);\r\n let loosingFocus = false;\r\n const onFocus = () => {\r\n loosingFocus = false;\r\n if (!hasFocus) {\r\n hasFocus = true;\r\n this._onDidFocus.fire();\r\n }\r\n };\r\n const onBlur = () => {\r\n if (hasFocus) {\r\n loosingFocus = true;\r\n window.setTimeout(() => {\r\n if (loosingFocus) {\r\n loosingFocus = false;\r\n hasFocus = false;\r\n this._onDidBlur.fire();\r\n }\r\n }, 0);\r\n }\r\n };\r\n this._refreshStateHandler = () => {\r\n let currentNodeHasFocus = isAncestor(document.activeElement, element);\r\n if (currentNodeHasFocus !== hasFocus) {\r\n if (hasFocus) {\r\n onBlur();\r\n }\r\n else {\r\n onFocus();\r\n }\r\n }\r\n };\r\n this._register((0,_event_js__WEBPACK_IMPORTED_MODULE_1__.domEvent)(element, EventType.FOCUS, true)(onFocus));\r\n this._register((0,_event_js__WEBPACK_IMPORTED_MODULE_1__.domEvent)(element, EventType.BLUR, true)(onBlur));\r\n }\r\n}\r\nfunction trackFocus(element) {\r\n return new FocusTracker(element);\r\n}\r\nfunction append(parent, ...children) {\r\n parent.append(...children);\r\n if (children.length === 1 && typeof children[0] !== 'string') {\r\n return children[0];\r\n }\r\n}\r\n/**\r\n * Removes all children from `parent` and appends `children`\r\n */\r\nfunction reset(parent, ...children) {\r\n parent.innerText = '';\r\n append(parent, ...children);\r\n}\r\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\r\nvar Namespace;\r\n(function (Namespace) {\r\n Namespace[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\r\n Namespace[\"SVG\"] = \"http://www.w3.org/2000/svg\";\r\n})(Namespace || (Namespace = {}));\r\nfunction _$(namespace, description, attrs, ...children) {\r\n let match = SELECTOR_REGEX.exec(description);\r\n if (!match) {\r\n throw new Error('Bad use of emmet');\r\n }\r\n attrs = Object.assign({}, (attrs || {}));\r\n let tagName = match[1] || 'div';\r\n let result;\r\n if (namespace !== Namespace.HTML) {\r\n result = document.createElementNS(namespace, tagName);\r\n }\r\n else {\r\n result = document.createElement(tagName);\r\n }\r\n if (match[3]) {\r\n result.id = match[3];\r\n }\r\n if (match[4]) {\r\n result.className = match[4].replace(/\\./g, ' ').trim();\r\n }\r\n Object.keys(attrs).forEach(name => {\r\n const value = attrs[name];\r\n if (typeof value === 'undefined') {\r\n return;\r\n }\r\n if (/^on\\w+$/.test(name)) {\r\n result[name] = value;\r\n }\r\n else if (name === 'selected') {\r\n if (value) {\r\n result.setAttribute(name, 'true');\r\n }\r\n }\r\n else {\r\n result.setAttribute(name, value);\r\n }\r\n });\r\n result.append(...children);\r\n return result;\r\n}\r\nfunction $(description, attrs, ...children) {\r\n return _$(Namespace.HTML, description, attrs, ...children);\r\n}\r\n$.SVG = function (description, attrs, ...children) {\r\n return _$(Namespace.SVG, description, attrs, ...children);\r\n};\r\nfunction show(...elements) {\r\n for (let element of elements) {\r\n element.style.display = '';\r\n element.removeAttribute('aria-hidden');\r\n }\r\n}\r\nfunction hide(...elements) {\r\n for (let element of elements) {\r\n element.style.display = 'none';\r\n element.setAttribute('aria-hidden', 'true');\r\n }\r\n}\r\nfunction getElementsByTagName(tag) {\r\n return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);\r\n}\r\n/**\r\n * Find a value usable for a dom node size such that the likelihood that it would be\r\n * displayed with constant screen pixels size is as high as possible.\r\n *\r\n * e.g. We would desire for the cursors to be 2px (CSS px) wide. Under a devicePixelRatio\r\n * of 1.25, the cursor will be 2.5 screen pixels wide. Depending on how the dom node aligns/\"snaps\"\r\n * with the screen pixels, it will sometimes be rendered with 2 screen pixels, and sometimes with 3 screen pixels.\r\n */\r\nfunction computeScreenAwareSize(cssPx) {\r\n const screenPx = window.devicePixelRatio * cssPx;\r\n return Math.max(1, Math.floor(screenPx)) / window.devicePixelRatio;\r\n}\r\n/**\r\n * Open safely a new window. This is the best way to do so, but you cannot tell\r\n * if the window was opened or if it was blocked by the brower's popup blocker.\r\n * If you want to tell if the browser blocked the new window, use `windowOpenNoOpenerWithSuccess`.\r\n *\r\n * See https://github.com/microsoft/monaco-editor/issues/601\r\n * To protect against malicious code in the linked site, particularly phishing attempts,\r\n * the window.opener should be set to null to prevent the linked site from having access\r\n * to change the location of the current page.\r\n * See https://mathiasbynens.github.io/rel-noopener/\r\n */\r\nfunction windowOpenNoOpener(url) {\r\n // By using 'noopener' in the `windowFeatures` argument, the newly created window will\r\n // not be able to use `window.opener` to reach back to the current page.\r\n // See https://stackoverflow.com/a/46958731\r\n // See https://developer.mozilla.org/en-US/docs/Web/API/Window/open#noopener\r\n // However, this also doesn't allow us to realize if the browser blocked\r\n // the creation of the window.\r\n window.open(url, '_blank', 'noopener');\r\n}\r\nfunction animate(fn) {\r\n const step = () => {\r\n fn();\r\n stepDisposable = scheduleAtNextAnimationFrame(step);\r\n };\r\n let stepDisposable = scheduleAtNextAnimationFrame(step);\r\n return (0,_common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__.toDisposable)(() => stepDisposable.dispose());\r\n}\r\n_common_network_js__WEBPACK_IMPORTED_MODULE_9__.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href) ? 'https' : 'http');\r\n/**\r\n * returns url('...')\r\n */\r\nfunction asCSSUrl(uri) {\r\n if (!uri) {\r\n return `url('')`;\r\n }\r\n return `url('${_common_network_js__WEBPACK_IMPORTED_MODULE_9__.FileAccess.asBrowserUri(uri).toString(true).replace(/'/g, '%27')}')`;\r\n}\r\nfunction asCSSPropertyValue(value) {\r\n return `'${value.replace(/'/g, '%27')}'`;\r\n}\r\nclass ModifierKeyEmitter extends _common_event_js__WEBPACK_IMPORTED_MODULE_6__.Emitter {\r\n constructor() {\r\n super();\r\n this._subscriptions = new _common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__.DisposableStore();\r\n this._keyStatus = {\r\n altKey: false,\r\n shiftKey: false,\r\n ctrlKey: false,\r\n metaKey: false\r\n };\r\n this._subscriptions.add((0,_event_js__WEBPACK_IMPORTED_MODULE_1__.domEvent)(window, 'keydown', true)(e => {\r\n if (e.defaultPrevented) {\r\n return;\r\n }\r\n const event = new _keyboardEvent_js__WEBPACK_IMPORTED_MODULE_2__.StandardKeyboardEvent(e);\r\n // If Alt-key keydown event is repeated, ignore it #112347\r\n // Only known to be necessary for Alt-Key at the moment #115810\r\n if (event.keyCode === 6 /* Alt */ && e.repeat) {\r\n return;\r\n }\r\n if (e.altKey && !this._keyStatus.altKey) {\r\n this._keyStatus.lastKeyPressed = 'alt';\r\n }\r\n else if (e.ctrlKey && !this._keyStatus.ctrlKey) {\r\n