{"version":3,"sources":["browser/monaco-context-menu.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAC,mBAAmB,EAAW,MAAM,0BAA0B,CAAC;AAIvE,OAAO,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;AAC/D,OAAO,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;AAEjE,qBACa,wBAAyB,YAAW,mBAAmB;IAEzB,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB;gBAAxC,mBAAmB,EAAE,mBAAmB;IAGpG,eAAe,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAqCrD,SAAS,CAAC,QAAQ,IAAI,QAAQ;CAI/B","file":"../../src/browser/monaco-context-menu.d.ts","sourcesContent":["import {inject, injectable} from 'inversify';\r\nimport {MenuPath} from '@tartjs/core/lib/common/menu';\r\nimport {ContextMenuRenderer, toAnchor} from '@tartjs/core/lib/browser';\r\nimport {Menu} from '@lumino/widgets';\r\nimport {CommandRegistry} from '@lumino/commands';\r\nimport {EDITOR_CONTEXT_MENU} from '@tartjs/editor/lib';\r\nimport IContextMenuService = monaco.editor.IContextMenuService;\r\nimport IContextMenuDelegate = monaco.editor.IContextMenuDelegate;\r\n\r\n@injectable()\r\nexport class MonacoContextMenuService implements IContextMenuService {\r\n\r\n  constructor(@inject(ContextMenuRenderer) protected readonly contextMenuRenderer: ContextMenuRenderer) {\r\n  }\r\n\r\n  showContextMenu(delegate: IContextMenuDelegate): void {\r\n    const anchor = toAnchor(delegate.getAnchor());\r\n    const actions = delegate.getActions();\r\n\r\n    // Actions for editor context menu come as 'MenuItemAction' items\r\n    // In case of 'Quick Fix' actions come as 'CodeActionAction' items\r\n    if (actions.length > 0 && actions[0] instanceof monaco.actions.MenuItemAction) {\r\n      this.contextMenuRenderer.render({\r\n        menuPath: this.menuPath(),\r\n        anchor,\r\n        onHide: () => delegate.onHide(false)\r\n      });\r\n    } else {\r\n      const commands = new CommandRegistry();\r\n      const menu = new Menu({\r\n        commands\r\n      });\r\n\r\n      for (const action of actions) {\r\n        const commandId = 'quickfix_' + actions.indexOf(action);\r\n        commands.addCommand(commandId, {\r\n          label: action.label,\r\n          className: action.class,\r\n          isToggled: () => action.checked,\r\n          isEnabled: () => action.enabled,\r\n          execute: () => action.run()\r\n        });\r\n        menu.addItem({\r\n          type: 'command',\r\n          command: commandId\r\n        });\r\n      }\r\n      menu.aboutToClose.connect(() => delegate.onHide(false));\r\n      menu.open(anchor.x, anchor.y);\r\n    }\r\n  }\r\n\r\n  protected menuPath(): MenuPath {\r\n    return EDITOR_CONTEXT_MENU;\r\n  }\r\n\r\n}\r\n"]}