1 |
- {"version":3,"file":"ext-command_bar-9a3545a4.js","sources":["../../node_modules/ace-builds/src-noconflict/ext-command_bar.js"],"sourcesContent":["ace.define(\"ace/ext/command_bar\",[\"require\",\"exports\",\"module\",\"ace/tooltip\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/useragent\"], function(require, exports, module){var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar lang = require(\"../lib/lang\");\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar useragent = require(\"../lib/useragent\");\nvar BUTTON_CLASS_NAME = 'command_bar_tooltip_button';\nvar VALUE_CLASS_NAME = 'command_bar_button_value';\nvar CAPTION_CLASS_NAME = 'command_bar_button_caption';\nvar KEYBINDING_CLASS_NAME = 'command_bar_keybinding';\nvar TOOLTIP_CLASS_NAME = 'command_bar_tooltip';\nvar MORE_OPTIONS_BUTTON_ID = 'MoreOptionsButton';\nvar defaultDelay = 100;\nvar defaultMaxElements = 4;\nvar minPosition = function (posA, posB) {\n if (posB.row > posA.row) {\n return posA;\n }\n else if (posB.row === posA.row && posB.column > posA.column) {\n return posA;\n }\n return posB;\n};\nvar keyDisplayMap = {\n \"Ctrl\": { mac: \"^\" },\n \"Option\": { mac: \"⌥\" },\n \"Command\": { mac: \"⌘\" },\n \"Cmd\": { mac: \"⌘\" },\n \"Shift\": \"⇧\",\n \"Left\": \"←\",\n \"Right\": \"→\",\n \"Up\": \"↑\",\n \"Down\": \"↓\"\n};\nvar CommandBarTooltip = /** @class */ (function () {\n function CommandBarTooltip(parentNode, options) {\n var e_1, _a;\n options = options || {};\n this.parentNode = parentNode;\n this.tooltip = new Tooltip(this.parentNode);\n this.moreOptions = new Tooltip(this.parentNode);\n this.maxElementsOnTooltip = options.maxElementsOnTooltip || defaultMaxElements;\n this.$alwaysShow = options.alwaysShow || false;\n this.eventListeners = {};\n this.elements = {};\n this.commands = {};\n this.tooltipEl = dom.buildDom(['div', { class: TOOLTIP_CLASS_NAME }], this.tooltip.getElement());\n this.moreOptionsEl = dom.buildDom(['div', { class: TOOLTIP_CLASS_NAME + \" tooltip_more_options\" }], this.moreOptions.getElement());\n this.$showTooltipTimer = lang.delayedCall(this.$showTooltip.bind(this), options.showDelay || defaultDelay);\n this.$hideTooltipTimer = lang.delayedCall(this.$hideTooltip.bind(this), options.hideDelay || defaultDelay);\n this.$tooltipEnter = this.$tooltipEnter.bind(this);\n this.$onMouseMove = this.$onMouseMove.bind(this);\n this.$onChangeScroll = this.$onChangeScroll.bind(this);\n this.$onEditorChangeSession = this.$onEditorChangeSession.bind(this);\n this.$scheduleTooltipForHide = this.$scheduleTooltipForHide.bind(this);\n this.$preventMouseEvent = this.$preventMouseEvent.bind(this);\n try {\n for (var _b = __values([\"mousedown\", \"mouseup\", \"click\"]), _c = _b.next(); !_c.done; _c = _b.next()) {\n var event = _c.value;\n this.tooltip.getElement().addEventListener(event, this.$preventMouseEvent);\n this.moreOptions.getElement().addEventListener(event, this.$preventMouseEvent);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n CommandBarTooltip.prototype.registerCommand = function (id, command) {\n var registerForMainTooltip = Object.keys(this.commands).length < this.maxElementsOnTooltip;\n if (!registerForMainTooltip && !this.elements[MORE_OPTIONS_BUTTON_ID]) {\n this.$createCommand(MORE_OPTIONS_BUTTON_ID, {\n name: \"···\",\n exec: function () {\n this.$shouldHideMoreOptions = false;\n this.$setMoreOptionsVisibility(!this.isMoreOptionsShown());\n }.bind(this),\n type: \"checkbox\",\n getValue: function () {\n return this.isMoreOptionsShown();\n }.bind(this),\n enabled: true\n }, true);\n }\n this.$createCommand(id, command, registerForMainTooltip);\n if (this.isShown()) {\n this.updatePosition();\n }\n };\n CommandBarTooltip.prototype.isShown = function () {\n return !!this.tooltip && this.tooltip.isOpen;\n };\n CommandBarTooltip.prototype.isMoreOptionsShown = function () {\n return !!this.moreOptions && this.moreOptions.isOpen;\n };\n CommandBarTooltip.prototype.getAlwaysShow = function () {\n return this.$alwaysShow;\n };\n CommandBarTooltip.prototype.setAlwaysShow = function (alwaysShow) {\n this.$alwaysShow = alwaysShow;\n this.$updateOnHoverHandlers(!this.$alwaysShow);\n this._signal(\"alwaysShow\", this.$alwaysShow);\n };\n CommandBarTooltip.prototype.attach = function (editor) {\n if (!editor || (this.isShown() && this.editor === editor)) {\n return;\n }\n this.detach();\n this.editor = editor;\n this.editor.on(\"changeSession\", this.$onEditorChangeSession);\n if (this.editor.session) {\n this.editor.session.on(\"changeScrollLeft\", this.$onChangeScroll);\n this.editor.session.on(\"changeScrollTop\", this.$onChangeScroll);\n }\n if (this.getAlwaysShow()) {\n this.$showTooltip();\n }\n else {\n this.$updateOnHoverHandlers(true);\n }\n };\n CommandBarTooltip.prototype.updatePosition = function () {\n if (!this.editor) {\n return;\n }\n var renderer = this.editor.renderer;\n var ranges;\n if (this.editor.selection.getAllRanges) {\n ranges = this.editor.selection.getAllRanges();\n }\n else {\n ranges = [this.editor.getSelectionRange()];\n }\n if (!ranges.length) {\n return;\n }\n var minPos = minPosition(ranges[0].start, ranges[0].end);\n for (var i = 0, range; range = ranges[i]; i++) {\n minPos = minPosition(minPos, minPosition(range.start, range.end));\n }\n var pos = renderer.$cursorLayer.getPixelPosition(minPos, true);\n var tooltipEl = this.tooltip.getElement();\n var screenWidth = window.innerWidth;\n var screenHeight = window.innerHeight;\n var rect = this.editor.container.getBoundingClientRect();\n pos.top += rect.top - renderer.layerConfig.offset;\n pos.left += rect.left + renderer.gutterWidth - renderer.scrollLeft;\n var cursorVisible = pos.top >= rect.top && pos.top <= rect.bottom &&\n pos.left >= rect.left + renderer.gutterWidth && pos.left <= rect.right;\n if (!cursorVisible && this.isShown()) {\n this.$hideTooltip();\n return;\n }\n else if (cursorVisible && !this.isShown() && this.getAlwaysShow()) {\n this.$showTooltip();\n return;\n }\n var top = pos.top - tooltipEl.offsetHeight;\n var left = Math.min(screenWidth - tooltipEl.offsetWidth, pos.left);\n var tooltipFits = top >= 0 && top + tooltipEl.offsetHeight <= screenHeight &&\n left >= 0 && left + tooltipEl.offsetWidth <= screenWidth;\n if (!tooltipFits) {\n this.$hideTooltip();\n return;\n }\n this.tooltip.setPosition(left, top);\n if (this.isMoreOptionsShown()) {\n top = top + tooltipEl.offsetHeight;\n left = this.elements[MORE_OPTIONS_BUTTON_ID].getBoundingClientRect().left;\n var moreOptionsEl = this.moreOptions.getElement();\n var screenHeight = window.innerHeight;\n if (top + moreOptionsEl.offsetHeight > screenHeight) {\n top -= tooltipEl.offsetHeight + moreOptionsEl.offsetHeight;\n }\n if (left + moreOptionsEl.offsetWidth > screenWidth) {\n left = screenWidth - moreOptionsEl.offsetWidth;\n }\n this.moreOptions.setPosition(left, top);\n }\n };\n CommandBarTooltip.prototype.update = function () {\n Object.keys(this.elements).forEach(this.$updateElement.bind(this));\n };\n CommandBarTooltip.prototype.detach = function () {\n this.tooltip.hide();\n this.moreOptions.hide();\n this.$updateOnHoverHandlers(false);\n if (this.editor) {\n this.editor.off(\"changeSession\", this.$onEditorChangeSession);\n if (this.editor.session) {\n this.editor.session.off(\"changeScrollLeft\", this.$onChangeScroll);\n this.editor.session.off(\"changeScrollTop\", this.$onChangeScroll);\n }\n }\n this.$mouseInTooltip = false;\n this.editor = null;\n };\n CommandBarTooltip.prototype.destroy = function () {\n if (this.tooltip && this.moreOptions) {\n this.detach();\n this.tooltip.destroy();\n this.moreOptions.destroy();\n }\n this.eventListeners = {};\n this.commands = {};\n this.elements = {};\n this.tooltip = this.moreOptions = this.parentNode = null;\n };\n CommandBarTooltip.prototype.$createCommand = function (id, command, forMainTooltip) {\n var parentEl = forMainTooltip ? this.tooltipEl : this.moreOptionsEl;\n var keyParts = [];\n var bindKey = command.bindKey;\n if (bindKey) {\n if (typeof bindKey === 'object') {\n bindKey = useragent.isMac ? bindKey.mac : bindKey.win;\n }\n bindKey = bindKey.split(\"|\")[0];\n keyParts = bindKey.split(\"-\");\n keyParts = keyParts.map(function (key) {\n if (keyDisplayMap[key]) {\n if (typeof keyDisplayMap[key] === 'string') {\n return keyDisplayMap[key];\n }\n else if (useragent.isMac && keyDisplayMap[key].mac) {\n return keyDisplayMap[key].mac;\n }\n }\n return key;\n });\n }\n var buttonNode;\n if (forMainTooltip && command.iconCssClass) {\n buttonNode = [\n 'div',\n {\n class: [\"ace_icon_svg\", command.iconCssClass].join(\" \"),\n \"aria-label\": command.name + \" (\" + command.bindKey + \")\"\n }\n ];\n }\n else {\n buttonNode = [\n ['div', { class: VALUE_CLASS_NAME }],\n ['div', { class: CAPTION_CLASS_NAME }, command.name]\n ];\n if (keyParts.length) {\n buttonNode.push([\n 'div',\n { class: KEYBINDING_CLASS_NAME },\n keyParts.map(function (keyPart) {\n return ['div', keyPart];\n })\n ]);\n }\n }\n dom.buildDom(['div', { class: [BUTTON_CLASS_NAME, command.cssClass || \"\"].join(\" \"), ref: id }, buttonNode], parentEl, this.elements);\n this.commands[id] = command;\n var eventListener = function (e) {\n if (this.editor) {\n this.editor.focus();\n }\n this.$shouldHideMoreOptions = this.isMoreOptionsShown();\n if (!this.elements[id].disabled && command.exec) {\n command.exec(this.editor);\n }\n if (this.$shouldHideMoreOptions) {\n this.$setMoreOptionsVisibility(false);\n }\n this.update();\n e.preventDefault();\n }.bind(this);\n this.eventListeners[id] = eventListener;\n this.elements[id].addEventListener('click', eventListener.bind(this));\n this.$updateElement(id);\n };\n CommandBarTooltip.prototype.$setMoreOptionsVisibility = function (visible) {\n if (visible) {\n this.moreOptions.setTheme(this.editor.renderer.theme);\n this.moreOptions.setClassName(TOOLTIP_CLASS_NAME + \"_wrapper\");\n this.moreOptions.show();\n this.update();\n this.updatePosition();\n }\n else {\n this.moreOptions.hide();\n }\n };\n CommandBarTooltip.prototype.$onEditorChangeSession = function (e) {\n if (e.oldSession) {\n e.oldSession.off(\"changeScrollTop\", this.$onChangeScroll);\n e.oldSession.off(\"changeScrollLeft\", this.$onChangeScroll);\n }\n this.detach();\n };\n CommandBarTooltip.prototype.$onChangeScroll = function () {\n if (this.editor.renderer && (this.isShown() || this.getAlwaysShow())) {\n this.editor.renderer.once(\"afterRender\", this.updatePosition.bind(this));\n }\n };\n CommandBarTooltip.prototype.$onMouseMove = function (e) {\n if (this.$mouseInTooltip) {\n return;\n }\n var cursorPosition = this.editor.getCursorPosition();\n var cursorScreenPosition = this.editor.renderer.textToScreenCoordinates(cursorPosition.row, cursorPosition.column);\n var lineHeight = this.editor.renderer.lineHeight;\n var isInCurrentLine = e.clientY >= cursorScreenPosition.pageY && e.clientY < cursorScreenPosition.pageY + lineHeight;\n if (isInCurrentLine) {\n if (!this.isShown() && !this.$showTooltipTimer.isPending()) {\n this.$showTooltipTimer.delay();\n }\n if (this.$hideTooltipTimer.isPending()) {\n this.$hideTooltipTimer.cancel();\n }\n }\n else {\n if (this.isShown() && !this.$hideTooltipTimer.isPending()) {\n this.$hideTooltipTimer.delay();\n }\n if (this.$showTooltipTimer.isPending()) {\n this.$showTooltipTimer.cancel();\n }\n }\n };\n CommandBarTooltip.prototype.$preventMouseEvent = function (e) {\n if (this.editor) {\n this.editor.focus();\n }\n e.preventDefault();\n };\n CommandBarTooltip.prototype.$scheduleTooltipForHide = function () {\n this.$mouseInTooltip = false;\n this.$showTooltipTimer.cancel();\n this.$hideTooltipTimer.delay();\n };\n CommandBarTooltip.prototype.$tooltipEnter = function () {\n this.$mouseInTooltip = true;\n if (this.$showTooltipTimer.isPending()) {\n this.$showTooltipTimer.cancel();\n }\n if (this.$hideTooltipTimer.isPending()) {\n this.$hideTooltipTimer.cancel();\n }\n };\n CommandBarTooltip.prototype.$updateOnHoverHandlers = function (enableHover) {\n var tooltipEl = this.tooltip.getElement();\n var moreOptionsEl = this.moreOptions.getElement();\n if (enableHover) {\n if (this.editor) {\n this.editor.on(\"mousemove\", this.$onMouseMove);\n this.editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.$scheduleTooltipForHide, true);\n }\n tooltipEl.addEventListener('mouseenter', this.$tooltipEnter);\n tooltipEl.addEventListener('mouseleave', this.$scheduleTooltipForHide);\n moreOptionsEl.addEventListener('mouseenter', this.$tooltipEnter);\n moreOptionsEl.addEventListener('mouseleave', this.$scheduleTooltipForHide);\n }\n else {\n if (this.editor) {\n this.editor.off(\"mousemove\", this.$onMouseMove);\n this.editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.$scheduleTooltipForHide, true);\n }\n tooltipEl.removeEventListener('mouseenter', this.$tooltipEnter);\n tooltipEl.removeEventListener('mouseleave', this.$scheduleTooltipForHide);\n moreOptionsEl.removeEventListener('mouseenter', this.$tooltipEnter);\n moreOptionsEl.removeEventListener('mouseleave', this.$scheduleTooltipForHide);\n }\n };\n CommandBarTooltip.prototype.$showTooltip = function () {\n if (this.isShown()) {\n return;\n }\n this.tooltip.setTheme(this.editor.renderer.theme);\n this.tooltip.setClassName(TOOLTIP_CLASS_NAME + \"_wrapper\");\n this.tooltip.show();\n this.update();\n this.updatePosition();\n this._signal(\"show\");\n };\n CommandBarTooltip.prototype.$hideTooltip = function () {\n this.$mouseInTooltip = false;\n if (!this.isShown()) {\n return;\n }\n this.moreOptions.hide();\n this.tooltip.hide();\n this._signal(\"hide\");\n };\n CommandBarTooltip.prototype.$updateElement = function (id) {\n var command = this.commands[id];\n if (!command) {\n return;\n }\n var el = this.elements[id];\n var commandEnabled = command.enabled;\n if (typeof commandEnabled === 'function') {\n commandEnabled = commandEnabled(this.editor);\n }\n if (typeof command.getValue === 'function') {\n var value = command.getValue(this.editor);\n if (command.type === 'text') {\n el.textContent = value;\n }\n else if (command.type === 'checkbox') {\n var domCssFn = value ? dom.addCssClass : dom.removeCssClass;\n var isOnTooltip = el.parentElement === this.tooltipEl;\n el.ariaChecked = value;\n if (isOnTooltip) {\n domCssFn(el, \"ace_selected\");\n }\n else {\n el = el.querySelector(\".\" + VALUE_CLASS_NAME);\n domCssFn(el, \"ace_checkmark\");\n }\n }\n }\n if (commandEnabled && el.disabled) {\n dom.removeCssClass(el, \"ace_disabled\");\n el.ariaDisabled = el.disabled = false;\n el.removeAttribute(\"disabled\");\n }\n else if (!commandEnabled && !el.disabled) {\n dom.addCssClass(el, \"ace_disabled\");\n el.ariaDisabled = el.disabled = true;\n el.setAttribute(\"disabled\", \"\");\n }\n };\n return CommandBarTooltip;\n}());\noop.implement(CommandBarTooltip.prototype, EventEmitter);\ndom.importCssString(\"\\n.ace_tooltip.\".concat(TOOLTIP_CLASS_NAME, \"_wrapper {\\n padding: 0;\\n}\\n\\n.ace_tooltip .\").concat(TOOLTIP_CLASS_NAME, \" {\\n padding: 1px 5px;\\n display: flex;\\n pointer-events: auto;\\n}\\n\\n.ace_tooltip .\").concat(TOOLTIP_CLASS_NAME, \".tooltip_more_options {\\n padding: 1px;\\n flex-direction: column;\\n}\\n\\ndiv.\").concat(BUTTON_CLASS_NAME, \" {\\n display: inline-flex;\\n cursor: pointer;\\n margin: 1px;\\n border-radius: 2px;\\n padding: 2px 5px;\\n align-items: center;\\n}\\n\\ndiv.\").concat(BUTTON_CLASS_NAME, \".ace_selected,\\ndiv.\").concat(BUTTON_CLASS_NAME, \":hover:not(.ace_disabled) {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\ndiv.\").concat(BUTTON_CLASS_NAME, \".ace_disabled {\\n color: #777;\\n pointer-events: none;\\n}\\n\\ndiv.\").concat(BUTTON_CLASS_NAME, \" .ace_icon_svg {\\n height: 12px;\\n background-color: #000;\\n}\\n\\ndiv.\").concat(BUTTON_CLASS_NAME, \".ace_disabled .ace_icon_svg {\\n background-color: #777;\\n}\\n\\n.\").concat(TOOLTIP_CLASS_NAME, \".tooltip_more_options .\").concat(BUTTON_CLASS_NAME, \" {\\n display: flex;\\n}\\n\\n.\").concat(TOOLTIP_CLASS_NAME, \".\").concat(VALUE_CLASS_NAME, \" {\\n display: none;\\n}\\n\\n.\").concat(TOOLTIP_CLASS_NAME, \".tooltip_more_options .\").concat(VALUE_CLASS_NAME, \" {\\n display: inline-block;\\n width: 12px;\\n}\\n\\n.\").concat(CAPTION_CLASS_NAME, \" {\\n display: inline-block;\\n}\\n\\n.\").concat(KEYBINDING_CLASS_NAME, \" {\\n margin: 0 2px;\\n display: inline-block;\\n font-size: 8px;\\n}\\n\\n.\").concat(TOOLTIP_CLASS_NAME, \".tooltip_more_options .\").concat(KEYBINDING_CLASS_NAME, \" {\\n margin-left: auto;\\n}\\n\\n.\").concat(KEYBINDING_CLASS_NAME, \" div {\\n display: inline-block;\\n min-width: 8px;\\n padding: 2px;\\n margin: 0 1px;\\n border-radius: 2px;\\n background-color: #ccc;\\n text-align: center;\\n}\\n\\n.ace_dark.ace_tooltip .\").concat(TOOLTIP_CLASS_NAME, \" {\\n background-color: #373737;\\n color: #eee;\\n}\\n\\n.ace_dark div.\").concat(BUTTON_CLASS_NAME, \".ace_disabled {\\n color: #979797;\\n}\\n\\n.ace_dark div.\").concat(BUTTON_CLASS_NAME, \".ace_selected,\\n.ace_dark div.\").concat(BUTTON_CLASS_NAME, \":hover:not(.ace_disabled) {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.ace_dark div.\").concat(BUTTON_CLASS_NAME, \" .ace_icon_svg {\\n background-color: #eee;\\n}\\n\\n.ace_dark div.\").concat(BUTTON_CLASS_NAME, \".ace_disabled .ace_icon_svg {\\n background-color: #979797;\\n}\\n\\n.ace_dark .\").concat(BUTTON_CLASS_NAME, \".ace_disabled {\\n color: #979797;\\n}\\n\\n.ace_dark .\").concat(KEYBINDING_CLASS_NAME, \" div {\\n background-color: #575757;\\n}\\n\\n.ace_checkmark::before {\\n content: '\\u2713';\\n}\\n\"), \"commandbar.css\", false);\nexports.CommandBarTooltip = CommandBarTooltip;\nexports.TOOLTIP_CLASS_NAME = TOOLTIP_CLASS_NAME;\nexports.BUTTON_CLASS_NAME = BUTTON_CLASS_NAME;\n\n}); (function() {\n ace.require([\"ace/ext/command_bar\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","__values","s","m","Tooltip","EventEmitter","lang","dom","oop","useragent","BUTTON_CLASS_NAME","VALUE_CLASS_NAME","CAPTION_CLASS_NAME","KEYBINDING_CLASS_NAME","TOOLTIP_CLASS_NAME","MORE_OPTIONS_BUTTON_ID","defaultDelay","defaultMaxElements","minPosition","posA","posB","keyDisplayMap","CommandBarTooltip","parentNode","options","e_1","_a","_b","_c","event","e_1_1","id","command","registerForMainTooltip","alwaysShow","editor","renderer","ranges","minPos","i","range","pos","tooltipEl","screenWidth","screenHeight","rect","cursorVisible","top","left","tooltipFits","moreOptionsEl","forMainTooltip","parentEl","keyParts","bindKey","key","buttonNode","keyPart","eventListener","e","visible","cursorPosition","cursorScreenPosition","lineHeight","isInCurrentLine","enableHover","el","commandEnabled","value","domCssFn","isOnTooltip"],"mappings":"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","x_google_ignoreList":[0]}
|