monaco-editor-core 0.56.0-dev-20260119 → 0.56.0-dev-20260121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.messages.cs.js +1 -1
- package/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.pl.js +1 -1
- package/esm/nls.messages.pt-br.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.tr.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/base/browser/dom.js +8 -0
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/markdownRenderer.js +1 -0
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionViewItems.js +4 -1
- package/esm/vs/base/browser/ui/actionbar/actionViewItems.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionbar.css +8 -5
- package/esm/vs/base/browser/ui/contextview/contextview.js +1 -1
- package/esm/vs/base/browser/ui/contextview/contextview.js.map +1 -1
- package/esm/vs/base/browser/ui/hover/hover.js.map +1 -1
- package/esm/vs/base/browser/ui/list/list.js +1 -0
- package/esm/vs/base/browser/ui/list/list.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listWidget.js +62 -5
- package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js +4 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +4 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/common/defaultAccount.js +0 -4
- package/esm/vs/base/common/defaultAccount.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js +81 -35
- package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/editContext.js +11 -0
- package/esm/vs/editor/browser/controller/editContext/editContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +38 -18
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +4 -0
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js +39 -16
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/view.js +21 -1
- package/esm/vs/editor/browser/view.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +18 -0
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js +3 -3
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js.map +1 -1
- package/esm/vs/editor/common/model/textModel.js +7 -5
- package/esm/vs/editor/common/model/textModel.js.map +1 -1
- package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js +21 -17
- package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js.map +1 -1
- package/esm/vs/editor/common/model.js.map +1 -1
- package/esm/vs/editor/common/viewModel/viewModelDecorations.js +11 -4
- package/esm/vs/editor/common/viewModel/viewModelDecorations.js.map +1 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js +25 -14
- package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
- package/esm/vs/editor/common/viewModel.js.map +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +3 -3
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +28 -64
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js.map +1 -1
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +27 -20
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.js +37 -10
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.css +7 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +22 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +19 -13
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +5 -1
- package/esm/vs/platform/actionWidget/browser/actionList.js +46 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js.map +1 -1
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +8 -1
- package/esm/vs/platform/actionWidget/browser/actionWidget.js.map +1 -1
- package/esm/vs/platform/actions/common/actions.js +2 -1
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/defaultAccount/common/defaultAccount.js.map +1 -1
- package/esm/vs/platform/hover/browser/hoverService.js +1 -0
- package/esm/vs/platform/hover/browser/hoverService.js.map +1 -1
- package/esm/vs/platform/product/common/product.js +16 -1
- package/esm/vs/platform/product/common/product.js.map +1 -1
- package/monaco.d.ts +5 -1
- package/package.json +2 -2
- package/version.txt +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/platform/actionWidget/browser/actionList.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;gGAGgG;AAChG,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAE9F,OAAO,EAA8B,IAAI,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAqB,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,kCAAkC,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,MAAM,CAAC,MAAM,2BAA2B,GAAG,0BAA0B,CAAC;AACtE,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AAyCxE,MAAM,cAAc;IAEnB,IAAI,UAAU,KAAa,gDAAiC,CAAC,CAAC;IAE9D,cAAc,CAAC,SAAsB;QACpC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAA2B,EAAE,MAAc,EAAE,YAAiC;QAC3F,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,eAAe,CAAC,aAAkC;QACjD,OAAO;IACR,CAAC;CACD;AAOD,MAAM,iBAAiB;IAEtB,IAAI,UAAU,KAAa,sDAAoC,CAAC,CAAC;IAEjE,cAAc,CAAC,SAAsB;QACpC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAA2B,EAAE,MAAc,EAAE,YAAoC;QAC9F,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,aAAqC;QACpD,OAAO;IACR,CAAC;CACD;AAED,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,IAAI,UAAU,KAAa,gDAAiC,CAAC,CAAC;IAE9D,YACkB,gBAAyB,EACL,kBAAsC;QAD1D,qBAAgB,GAAhB,gBAAgB,CAAS;QACL,uBAAkB,GAAlB,kBAAkB,CAAoB;IACxE,CAAC;IAEL,cAAc,CAAC,SAAsB;QACpC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,WAAW,CAAC,SAAS,GAAG,aAAa,CAAC;QACtC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEtD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,OAA2B,EAAE,MAAc,EAAE,IAA6B;QACvF,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,0CAA0C,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO;QACR,CAAC;QAED,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAErD,gEAAgE;QAChE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,WAAY,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC9D,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;YAC3C,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC;QACjD,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,WAAY,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnE,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC5C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAY,CAAC,WAAW,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,EAAE,QAAQ,EAAE,CAAC;QACtG,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACtC,CAAC;aAAM,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAyG,CAAtG,CAAwG,CAAtG,eAAe,EAAE,OAAO,EAAE,CAAC,EAAyG,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,uCAAhE,CAAC;YAC1I,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,EAA2E,CAAxE,CAA0E,CAAxE,OAAO,EAAE,IAA6E,EAAE,CAAxE,EAAE,CAAC,OAAgF,CAAC,CAAC,uCAAlC,CAAC;YAC5G,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,eAAe,CAAC,YAAqC;QACpD,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;CACD,CAAA;AAlFK,kBAAkB;IAMrB,WAAA,kBAAkB,CAAA;GANf,kBAAkB,CAkFvB;AAED,MAAM,mBAAoB,SAAQ,OAAO;IACxC,gBAAgB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;CAChD;AAED,MAAM,oBAAqB,SAAQ,OAAO;IACzC,gBAAgB,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;CACjD;AAED,SAAS,0BAA0B,CAAI,IAAwB;IAC9D,6CAA6C;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAEM,IAAM,UAAU,GAAhB,MAAM,UAAc,SAAQ,UAAU;IAc5C,YACC,IAAY,EACZ,OAAgB,EAChB,KAAoC,EACnB,SAAiC,EAClD,qBAA0F,EACrE,mBAAyD,EAC1D,kBAAuD,EAC3D,cAA+C;QAE/D,KAAK,EAAE,CAAC;QANS,cAAS,GAAT,SAAS,CAAwB;QAEZ,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAC1C,mBAAc,GAAd,cAAc,CAAgB;QAhB/C,sBAAiB,GAAG,EAAE,CAAC;QACvB,sBAAiB,GAAG,EAAE,CAAC;QACvB,yBAAoB,GAAG,CAAC,CAAC;QAIzB,QAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;QAapE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,eAAe,GAA6C;YACjE,SAAS,EAAE,OAAO,CAAC,EAAE;gBACpB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;oBACtB;wBACC,OAAO,IAAI,CAAC,iBAAiB,CAAC;oBAC/B;wBACC,OAAO,IAAI,CAAC,oBAAoB,CAAC;oBAClC;wBACC,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAChC,CAAC;YACF,CAAC;YACD,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;SACtC,CAAC;QAGF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;YACzE,IAAI,kBAAkB,CAAqB,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAC5E,IAAI,cAAc,EAAE;YACpB,IAAI,iBAAiB,EAAE;SACvB,EAAE;YACF,eAAe,EAAE,KAAK;YACtB,qBAAqB,EAAE,IAAI;YAC3B,+BAA+B,EAAE,EAAE,0BAA0B,EAAE;YAC/D,qBAAqB,EAAE;gBACtB,YAAY,EAAE,OAAO,CAAC,EAAE;oBACvB,IAAI,OAAO,CAAC,IAAI,6CAA8B,EAAE,CAAC;wBAChD,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;4BACzB,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAC3D,CAAC;wBACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACtB,KAAK,GAAG,QAAQ,CAAC,EAAE,EAA0F,CAAvF,CAAyF,CAAvF,0BAAkH,EAAE,CAAvF,EAAE,EAA0F,EAAE,GAArF,EAAE,CAAC,CAAyF,CAAC,QAAQ,CAAC,CAAC,6BAA3D,CAAC;wBAC5G,CAAC;wBACD,OAAO,KAAK,CAAC;oBACd,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,kBAAkB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAmE,CAAhE,CAAkE,CAAhE,cAA+E,CAAC,OAA1D,EAAE,OAAO,EAAE,CAAC,yBAAyB,CAAC;gBACtG,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;wBAChB;4BACC,OAAO,QAAQ,CAAC;wBACjB;4BACC,OAAO,WAAW,CAAC;wBACpB;4BACC,OAAO,WAAW,CAAC;oBACrB,CAAC;gBACF,CAAC;gBACD,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;gBAC9B,GAAG,qBAAqB;aACxB;SACD,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;IACF,CAAC;IAEO,cAAc,CAAC,OAAiC;QACvD,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,6CAA8B,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,SAAmB;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,QAAgB;QACtB,gFAAgF;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACpF,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACvE,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAClH,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAAC,oBAAoB,GAAG,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,QAAQ,CAAC;QAExB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACrC,QAAQ,GAAG,GAAG,CAAC;QAChB,CAAC;aAAM,CAAC;YACP,4DAA4D;YAC5D,MAAM,UAAU,GAAa,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAU,EAAE;gBACxE,gDAAgD;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1F,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;oBAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;oBACpD,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,sGAAsG;YACtG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,eAAe,GAAG,GAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;QAC5I,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,SAAS;QACR,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc,CAAC,OAAiB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEO,eAAe,CAAC,CAAiC;QACxD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,YAAY,oBAAoB,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAEO,OAAO;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACR,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,CAAsC;QAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC1B,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,6CAA8B,EAAE,CAAC;gBAC/F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1E,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,WAAW,CAAC,CAAsC;QACzD,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;CACD,CAAA;AApNY,UAAU;IAoBpB,WAAA,mBAAmB,CAAA;IACnB,WAAA,kBAAkB,CAAA;IAClB,WAAA,cAAc,CAAA;GAtBJ,UAAU,CAoNtB;;AAED,SAAS,aAAa,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC","file":"actionList.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { KeybindingLabel } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from '../../../base/browser/ui/list/list.js';\nimport { IListAccessibilityProvider, List } from '../../../base/browser/ui/list/listWidget.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { ResolvedKeybinding } from '../../../base/common/keybindings.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { OS } from '../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './actionWidget.css';\nimport { localize } from '../../../nls.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { defaultListStyles } from '../../theme/browser/defaultStyles.js';\nimport { asCssVariable } from '../../theme/common/colorRegistry.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\n\nexport const acceptSelectedActionCommand = 'acceptSelectedCodeAction';\nexport const previewSelectedActionCommand = 'previewSelectedCodeAction';\n\nexport interface IActionListDelegate<T> {\n\tonHide(didCancel?: boolean): void;\n\tonSelect(action: T, preview?: boolean): void;\n\tonHover?(action: T, cancellationToken: CancellationToken): Promise<{ canPreview: boolean } | void>;\n\tonFocus?(action: T | undefined): void;\n}\n\nexport interface IActionListItem<T> {\n\treadonly item?: T;\n\treadonly kind: ActionListItemKind;\n\treadonly group?: { kind?: unknown; icon?: ThemeIcon; title: string };\n\treadonly disabled?: boolean;\n\treadonly label?: string;\n\treadonly description?: string;\n\treadonly keybinding?: ResolvedKeybinding;\n\tcanPreview?: boolean | undefined;\n\treadonly hideIcon?: boolean;\n\treadonly tooltip?: string;\n}\n\ninterface IActionMenuTemplateData {\n\treadonly container: HTMLElement;\n\treadonly icon: HTMLElement;\n\treadonly text: HTMLElement;\n\treadonly description?: HTMLElement;\n\treadonly keybinding: KeybindingLabel;\n}\n\nexport const enum ActionListItemKind {\n\tAction = 'action',\n\tHeader = 'header',\n\tSeparator = 'separator'\n}\n\ninterface IHeaderTemplateData {\n\treadonly container: HTMLElement;\n\treadonly text: HTMLElement;\n}\n\nclass HeaderRenderer<T> implements IListRenderer<IActionListItem<T>, IHeaderTemplateData> {\n\n\tget templateId(): string { return ActionListItemKind.Header; }\n\n\trenderTemplate(container: HTMLElement): IHeaderTemplateData {\n\t\tcontainer.classList.add('group-header');\n\n\t\tconst text = document.createElement('span');\n\t\tcontainer.append(text);\n\n\t\treturn { container, text };\n\t}\n\n\trenderElement(element: IActionListItem<T>, _index: number, templateData: IHeaderTemplateData): void {\n\t\ttemplateData.text.textContent = element.group?.title ?? element.label ?? '';\n\t}\n\n\tdisposeTemplate(_templateData: IHeaderTemplateData): void {\n\t\t// noop\n\t}\n}\n\ninterface ISeparatorTemplateData {\n\treadonly container: HTMLElement;\n\treadonly text: HTMLElement;\n}\n\nclass SeparatorRenderer<T> implements IListRenderer<IActionListItem<T>, ISeparatorTemplateData> {\n\n\tget templateId(): string { return ActionListItemKind.Separator; }\n\n\trenderTemplate(container: HTMLElement): ISeparatorTemplateData {\n\t\tcontainer.classList.add('separator');\n\n\t\tconst text = document.createElement('span');\n\t\tcontainer.append(text);\n\n\t\treturn { container, text };\n\t}\n\n\trenderElement(element: IActionListItem<T>, _index: number, templateData: ISeparatorTemplateData): void {\n\t\ttemplateData.text.textContent = element.label ?? '';\n\t}\n\n\tdisposeTemplate(_templateData: ISeparatorTemplateData): void {\n\t\t// noop\n\t}\n}\n\nclass ActionItemRenderer<T> implements IListRenderer<IActionListItem<T>, IActionMenuTemplateData> {\n\n\tget templateId(): string { return ActionListItemKind.Action; }\n\n\tconstructor(\n\t\tprivate readonly _supportsPreview: boolean,\n\t\t@IKeybindingService private readonly _keybindingService: IKeybindingService\n\t) { }\n\n\trenderTemplate(container: HTMLElement): IActionMenuTemplateData {\n\t\tcontainer.classList.add(this.templateId);\n\n\t\tconst icon = document.createElement('div');\n\t\ticon.className = 'icon';\n\t\tcontainer.append(icon);\n\n\t\tconst text = document.createElement('span');\n\t\ttext.className = 'title';\n\t\tcontainer.append(text);\n\n\t\tconst description = document.createElement('span');\n\t\tdescription.className = 'description';\n\t\tcontainer.append(description);\n\n\t\tconst keybinding = new KeybindingLabel(container, OS);\n\n\t\treturn { container, icon, text, description, keybinding };\n\t}\n\n\trenderElement(element: IActionListItem<T>, _index: number, data: IActionMenuTemplateData): void {\n\t\tif (element.group?.icon) {\n\t\t\tdata.icon.className = ThemeIcon.asClassName(element.group.icon);\n\t\t\tif (element.group.icon.color) {\n\t\t\t\tdata.icon.style.color = asCssVariable(element.group.icon.color.id);\n\t\t\t}\n\t\t} else {\n\t\t\tdata.icon.className = ThemeIcon.asClassName(Codicon.lightBulb);\n\t\t\tdata.icon.style.color = 'var(--vscode-editorLightBulb-foreground)';\n\t\t}\n\n\t\tif (!element.item || !element.label) {\n\t\t\treturn;\n\t\t}\n\n\t\tdom.setVisibility(!element.hideIcon, data.icon);\n\n\t\tdata.text.textContent = stripNewlines(element.label);\n\n\t\t// if there is a keybinding, prioritize over description for now\n\t\tif (element.keybinding) {\n\t\t\tdata.description!.textContent = element.keybinding.getLabel();\n\t\t\tdata.description!.style.display = 'inline';\n\t\t\tdata.description!.style.letterSpacing = '0.5px';\n\t\t} else if (element.description) {\n\t\t\tdata.description!.textContent = stripNewlines(element.description);\n\t\t\tdata.description!.style.display = 'inline';\n\t\t} else {\n\t\t\tdata.description!.textContent = '';\n\t\t\tdata.description!.style.display = 'none';\n\t\t}\n\n\t\tconst actionTitle = this._keybindingService.lookupKeybinding(acceptSelectedActionCommand)?.getLabel();\n\t\tconst previewTitle = this._keybindingService.lookupKeybinding(previewSelectedActionCommand)?.getLabel();\n\t\tdata.container.classList.toggle('option-disabled', element.disabled);\n\t\tif (element.tooltip) {\n\t\t\tdata.container.title = element.tooltip;\n\t\t} else if (element.disabled) {\n\t\t\tdata.container.title = element.label;\n\t\t} else if (actionTitle && previewTitle) {\n\t\t\tif (this._supportsPreview && element.canPreview) {\n\t\t\t\tdata.container.title = localize({ key: 'label-preview', comment: ['placeholders are keybindings, e.g \"F2 to Apply, Shift+F2 to Preview\"'] }, \"{0} to Apply, {1} to Preview\", actionTitle, previewTitle);\n\t\t\t} else {\n\t\t\t\tdata.container.title = localize({ key: 'label', comment: ['placeholder is a keybinding, e.g \"F2 to Apply\"'] }, \"{0} to Apply\", actionTitle);\n\t\t\t}\n\t\t} else {\n\t\t\tdata.container.title = '';\n\t\t}\n\t}\n\n\tdisposeTemplate(templateData: IActionMenuTemplateData): void {\n\t\ttemplateData.keybinding.dispose();\n\t}\n}\n\nclass AcceptSelectedEvent extends UIEvent {\n\tconstructor() { super('acceptSelectedAction'); }\n}\n\nclass PreviewSelectedEvent extends UIEvent {\n\tconstructor() { super('previewSelectedAction'); }\n}\n\nfunction getKeyboardNavigationLabel<T>(item: IActionListItem<T>): string | undefined {\n\t// Filter out header vs. action vs. separator\n\tif (item.kind === 'action') {\n\t\treturn item.label;\n\t}\n\treturn undefined;\n}\n\nexport class ActionList<T> extends Disposable {\n\n\tpublic readonly domNode: HTMLElement;\n\n\tprivate readonly _list: List<IActionListItem<T>>;\n\n\tprivate readonly _actionLineHeight = 28;\n\tprivate readonly _headerLineHeight = 28;\n\tprivate readonly _separatorLineHeight = 8;\n\n\tprivate readonly _allMenuItems: readonly IActionListItem<T>[];\n\n\tprivate readonly cts = this._register(new CancellationTokenSource());\n\n\tconstructor(\n\t\tuser: string,\n\t\tpreview: boolean,\n\t\titems: readonly IActionListItem<T>[],\n\t\tprivate readonly _delegate: IActionListDelegate<T>,\n\t\taccessibilityProvider: Partial<IListAccessibilityProvider<IActionListItem<T>>> | undefined,\n\t\t@IContextViewService private readonly _contextViewService: IContextViewService,\n\t\t@IKeybindingService private readonly _keybindingService: IKeybindingService,\n\t\t@ILayoutService private readonly _layoutService: ILayoutService,\n\t) {\n\t\tsuper();\n\t\tthis.domNode = document.createElement('div');\n\t\tthis.domNode.classList.add('actionList');\n\t\tconst virtualDelegate: IListVirtualDelegate<IActionListItem<T>> = {\n\t\t\tgetHeight: element => {\n\t\t\t\tswitch (element.kind) {\n\t\t\t\t\tcase ActionListItemKind.Header:\n\t\t\t\t\t\treturn this._headerLineHeight;\n\t\t\t\t\tcase ActionListItemKind.Separator:\n\t\t\t\t\t\treturn this._separatorLineHeight;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn this._actionLineHeight;\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetTemplateId: element => element.kind\n\t\t};\n\n\n\t\tthis._list = this._register(new List(user, this.domNode, virtualDelegate, [\n\t\t\tnew ActionItemRenderer<IActionListItem<T>>(preview, this._keybindingService),\n\t\t\tnew HeaderRenderer(),\n\t\t\tnew SeparatorRenderer(),\n\t\t], {\n\t\t\tkeyboardSupport: false,\n\t\t\ttypeNavigationEnabled: true,\n\t\t\tkeyboardNavigationLabelProvider: { getKeyboardNavigationLabel },\n\t\t\taccessibilityProvider: {\n\t\t\t\tgetAriaLabel: element => {\n\t\t\t\t\tif (element.kind === ActionListItemKind.Action) {\n\t\t\t\t\t\tlet label = element.label ? stripNewlines(element?.label) : '';\n\t\t\t\t\t\tif (element.description) {\n\t\t\t\t\t\t\tlabel = label + ', ' + stripNewlines(element.description);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (element.disabled) {\n\t\t\t\t\t\t\tlabel = localize({ key: 'customQuickFixWidget.labels', comment: [`Action widget labels for accessibility.`] }, \"{0}, Disabled Reason: {1}\", label, element.disabled);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn label;\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t\tgetWidgetAriaLabel: () => localize({ key: 'customQuickFixWidget', comment: [`An action widget option`] }, \"Action Widget\"),\n\t\t\t\tgetRole: (e) => {\n\t\t\t\t\tswitch (e.kind) {\n\t\t\t\t\t\tcase ActionListItemKind.Action:\n\t\t\t\t\t\t\treturn 'option';\n\t\t\t\t\t\tcase ActionListItemKind.Separator:\n\t\t\t\t\t\t\treturn 'separator';\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn 'separator';\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tgetWidgetRole: () => 'listbox',\n\t\t\t\t...accessibilityProvider\n\t\t\t},\n\t\t}));\n\n\t\tthis._list.style(defaultListStyles);\n\n\t\tthis._register(this._list.onMouseClick(e => this.onListClick(e)));\n\t\tthis._register(this._list.onMouseOver(e => this.onListHover(e)));\n\t\tthis._register(this._list.onDidChangeFocus(() => this.onFocus()));\n\t\tthis._register(this._list.onDidChangeSelection(e => this.onListSelection(e)));\n\n\t\tthis._allMenuItems = items;\n\t\tthis._list.splice(0, this._list.length, this._allMenuItems);\n\n\t\tif (this._list.length) {\n\t\t\tthis.focusNext();\n\t\t}\n\t}\n\n\tprivate focusCondition(element: IActionListItem<unknown>): boolean {\n\t\treturn !element.disabled && element.kind === ActionListItemKind.Action;\n\t}\n\n\thide(didCancel?: boolean): void {\n\t\tthis._delegate.onHide(didCancel);\n\t\tthis.cts.cancel();\n\t\tthis._contextViewService.hideContextView();\n\t}\n\n\tlayout(minWidth: number): number {\n\t\t// Updating list height, depending on how many separators and headers there are.\n\t\tconst numHeaders = this._allMenuItems.filter(item => item.kind === 'header').length;\n\t\tconst numSeparators = this._allMenuItems.filter(item => item.kind === 'separator').length;\n\t\tconst itemsHeight = this._allMenuItems.length * this._actionLineHeight;\n\t\tconst heightWithHeaders = itemsHeight + numHeaders * this._headerLineHeight - numHeaders * this._actionLineHeight;\n\t\tconst heightWithSeparators = heightWithHeaders + numSeparators * this._separatorLineHeight - numSeparators * this._actionLineHeight;\n\t\tthis._list.layout(heightWithSeparators);\n\t\tlet maxWidth = minWidth;\n\n\t\tif (this._allMenuItems.length >= 50) {\n\t\t\tmaxWidth = 380;\n\t\t} else {\n\t\t\t// For finding width dynamically (not using resize observer)\n\t\t\tconst itemWidths: number[] = this._allMenuItems.map((_, index): number => {\n\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\tconst element = this.domNode.ownerDocument.getElementById(this._list.getElementID(index));\n\t\t\t\tif (element) {\n\t\t\t\t\telement.style.width = 'auto';\n\t\t\t\t\tconst width = element.getBoundingClientRect().width;\n\t\t\t\t\telement.style.width = '';\n\t\t\t\t\treturn width;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t\t// resize observer - can be used in the future since list widget supports dynamic height but not width\n\t\t\tmaxWidth = Math.max(...itemWidths, minWidth);\n\t\t}\n\n\t\tconst maxVhPrecentage = 0.7;\n\t\tconst height = Math.min(heightWithSeparators, this._layoutService.getContainer(dom.getWindow(this.domNode)).clientHeight * maxVhPrecentage);\n\t\tthis._list.layout(height, maxWidth);\n\n\t\tthis.domNode.style.height = `${height}px`;\n\n\t\tthis._list.domFocus();\n\t\treturn maxWidth;\n\t}\n\n\tfocusPrevious() {\n\t\tthis._list.focusPrevious(1, true, undefined, this.focusCondition);\n\t}\n\n\tfocusNext() {\n\t\tthis._list.focusNext(1, true, undefined, this.focusCondition);\n\t}\n\n\tacceptSelected(preview?: boolean) {\n\t\tconst focused = this._list.getFocus();\n\t\tif (focused.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusIndex = focused[0];\n\t\tconst element = this._list.element(focusIndex);\n\t\tif (!this.focusCondition(element)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst event = preview ? new PreviewSelectedEvent() : new AcceptSelectedEvent();\n\t\tthis._list.setSelection([focusIndex], event);\n\t}\n\n\tprivate onListSelection(e: IListEvent<IActionListItem<T>>): void {\n\t\tif (!e.elements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst element = e.elements[0];\n\t\tif (element.item && this.focusCondition(element)) {\n\t\t\tthis._delegate.onSelect(element.item, e.browserEvent instanceof PreviewSelectedEvent);\n\t\t} else {\n\t\t\tthis._list.setSelection([]);\n\t\t}\n\t}\n\n\tprivate onFocus() {\n\t\tconst focused = this._list.getFocus();\n\t\tif (focused.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst focusIndex = focused[0];\n\t\tconst element = this._list.element(focusIndex);\n\t\tthis._delegate.onFocus?.(element.item);\n\t}\n\n\tprivate async onListHover(e: IListMouseEvent<IActionListItem<T>>) {\n\t\tconst element = e.element;\n\t\tif (element && element.item && this.focusCondition(element)) {\n\t\t\tif (this._delegate.onHover && !element.disabled && element.kind === ActionListItemKind.Action) {\n\t\t\t\tconst result = await this._delegate.onHover(element.item, this.cts.token);\n\t\t\t\telement.canPreview = result ? result.canPreview : undefined;\n\t\t\t}\n\t\t\tif (e.index) {\n\t\t\t\tthis._list.splice(e.index, 1, [element]);\n\t\t\t}\n\t\t}\n\n\t\tthis._list.setFocus(typeof e.index === 'number' ? [e.index] : []);\n\t}\n\n\tprivate onListClick(e: IListMouseEvent<IActionListItem<T>>): void {\n\t\tif (e.element && this.focusCondition(e.element)) {\n\t\t\tthis._list.setFocus([]);\n\t\t}\n\t}\n}\n\nfunction stripNewlines(str: string): string {\n\treturn str.replace(/\\r\\n|\\r|\\n/g, ' ');\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/platform/actionWidget/browser/actionList.ts"],"names":[],"mappings":"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","file":"actionList.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { KeybindingLabel } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from '../../../base/browser/ui/list/list.js';\nimport { IListAccessibilityProvider, List } from '../../../base/browser/ui/list/listWidget.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { ResolvedKeybinding } from '../../../base/common/keybindings.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { OS } from '../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './actionWidget.css';\nimport { localize } from '../../../nls.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { defaultListStyles } from '../../theme/browser/defaultStyles.js';\nimport { asCssVariable } from '../../theme/common/colorRegistry.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { IHoverService } from '../../hover/browser/hover.js';\nimport { MarkdownString } from '../../../base/common/htmlContent.js';\nimport { HoverPosition } from '../../../base/browser/ui/hover/hoverWidget.js';\nimport { IHoverWidget } from '../../../base/browser/ui/hover/hover.js';\n\nexport const acceptSelectedActionCommand = 'acceptSelectedCodeAction';\nexport const previewSelectedActionCommand = 'previewSelectedCodeAction';\n\nexport interface IActionListDelegate<T> {\n\tonHide(didCancel?: boolean): void;\n\tonSelect(action: T, preview?: boolean): void;\n\tonHover?(action: T, cancellationToken: CancellationToken): Promise<{ canPreview: boolean } | void>;\n\tonFocus?(action: T | undefined): void;\n}\n\n/**\n * Optional hover configuration shown when focusing/hovering over an action list item.\n */\nexport interface IActionListItemHover {\n\t/**\n\t * Content to display in the hover.\n\t */\n\treadonly content?: string;\n}\n\nexport interface IActionListItem<T> {\n\treadonly item?: T;\n\treadonly kind: ActionListItemKind;\n\treadonly group?: { kind?: unknown; icon?: ThemeIcon; title: string };\n\treadonly disabled?: boolean;\n\treadonly label?: string;\n\treadonly description?: string;\n\t/**\n\t * Optional hover configuration shown when focusing/hovering over the item.\n\t */\n\treadonly hover?: IActionListItemHover;\n\treadonly keybinding?: ResolvedKeybinding;\n\tcanPreview?: boolean | undefined;\n\treadonly hideIcon?: boolean;\n\treadonly tooltip?: string;\n}\n\ninterface IActionMenuTemplateData {\n\treadonly container: HTMLElement;\n\treadonly icon: HTMLElement;\n\treadonly text: HTMLElement;\n\treadonly description?: HTMLElement;\n\treadonly keybinding: KeybindingLabel;\n}\n\nexport const enum ActionListItemKind {\n\tAction = 'action',\n\tHeader = 'header',\n\tSeparator = 'separator'\n}\n\ninterface IHeaderTemplateData {\n\treadonly container: HTMLElement;\n\treadonly text: HTMLElement;\n}\n\nclass HeaderRenderer<T> implements IListRenderer<IActionListItem<T>, IHeaderTemplateData> {\n\n\tget templateId(): string { return ActionListItemKind.Header; }\n\n\trenderTemplate(container: HTMLElement): IHeaderTemplateData {\n\t\tcontainer.classList.add('group-header');\n\n\t\tconst text = document.createElement('span');\n\t\tcontainer.append(text);\n\n\t\treturn { container, text };\n\t}\n\n\trenderElement(element: IActionListItem<T>, _index: number, templateData: IHeaderTemplateData): void {\n\t\ttemplateData.text.textContent = element.group?.title ?? element.label ?? '';\n\t}\n\n\tdisposeTemplate(_templateData: IHeaderTemplateData): void {\n\t\t// noop\n\t}\n}\n\ninterface ISeparatorTemplateData {\n\treadonly container: HTMLElement;\n\treadonly text: HTMLElement;\n}\n\nclass SeparatorRenderer<T> implements IListRenderer<IActionListItem<T>, ISeparatorTemplateData> {\n\n\tget templateId(): string { return ActionListItemKind.Separator; }\n\n\trenderTemplate(container: HTMLElement): ISeparatorTemplateData {\n\t\tcontainer.classList.add('separator');\n\n\t\tconst text = document.createElement('span');\n\t\tcontainer.append(text);\n\n\t\treturn { container, text };\n\t}\n\n\trenderElement(element: IActionListItem<T>, _index: number, templateData: ISeparatorTemplateData): void {\n\t\ttemplateData.text.textContent = element.label ?? '';\n\t}\n\n\tdisposeTemplate(_templateData: ISeparatorTemplateData): void {\n\t\t// noop\n\t}\n}\n\nclass ActionItemRenderer<T> implements IListRenderer<IActionListItem<T>, IActionMenuTemplateData> {\n\n\tget templateId(): string { return ActionListItemKind.Action; }\n\n\tconstructor(\n\t\tprivate readonly _supportsPreview: boolean,\n\t\t@IKeybindingService private readonly _keybindingService: IKeybindingService\n\t) { }\n\n\trenderTemplate(container: HTMLElement): IActionMenuTemplateData {\n\t\tcontainer.classList.add(this.templateId);\n\n\t\tconst icon = document.createElement('div');\n\t\ticon.className = 'icon';\n\t\tcontainer.append(icon);\n\n\t\tconst text = document.createElement('span');\n\t\ttext.className = 'title';\n\t\tcontainer.append(text);\n\n\t\tconst description = document.createElement('span');\n\t\tdescription.className = 'description';\n\t\tcontainer.append(description);\n\n\t\tconst keybinding = new KeybindingLabel(container, OS);\n\n\t\treturn { container, icon, text, description, keybinding };\n\t}\n\n\trenderElement(element: IActionListItem<T>, _index: number, data: IActionMenuTemplateData): void {\n\t\tif (element.group?.icon) {\n\t\t\tdata.icon.className = ThemeIcon.asClassName(element.group.icon);\n\t\t\tif (element.group.icon.color) {\n\t\t\t\tdata.icon.style.color = asCssVariable(element.group.icon.color.id);\n\t\t\t}\n\t\t} else {\n\t\t\tdata.icon.className = ThemeIcon.asClassName(Codicon.lightBulb);\n\t\t\tdata.icon.style.color = 'var(--vscode-editorLightBulb-foreground)';\n\t\t}\n\n\t\tif (!element.item || !element.label) {\n\t\t\treturn;\n\t\t}\n\n\t\tdom.setVisibility(!element.hideIcon, data.icon);\n\n\t\tdata.text.textContent = stripNewlines(element.label);\n\n\t\t// if there is a keybinding, prioritize over description for now\n\t\tif (element.keybinding) {\n\t\t\tdata.description!.textContent = element.keybinding.getLabel();\n\t\t\tdata.description!.style.display = 'inline';\n\t\t\tdata.description!.style.letterSpacing = '0.5px';\n\t\t} else if (element.description) {\n\t\t\tdata.description!.textContent = stripNewlines(element.description);\n\t\t\tdata.description!.style.display = 'inline';\n\t\t} else {\n\t\t\tdata.description!.textContent = '';\n\t\t\tdata.description!.style.display = 'none';\n\t\t}\n\n\t\tconst actionTitle = this._keybindingService.lookupKeybinding(acceptSelectedActionCommand)?.getLabel();\n\t\tconst previewTitle = this._keybindingService.lookupKeybinding(previewSelectedActionCommand)?.getLabel();\n\t\tdata.container.classList.toggle('option-disabled', element.disabled);\n\t\tif (element.tooltip) {\n\t\t\tdata.container.title = element.tooltip;\n\t\t} else if (element.disabled) {\n\t\t\tdata.container.title = element.label;\n\t\t} else if (element.hover?.content) {\n\t\t\t// Don't show tooltip when hover content is configured - the rich hover will show instead\n\t\t\tdata.container.title = '';\n\t\t} else if (actionTitle && previewTitle) {\n\t\t\tif (this._supportsPreview && element.canPreview) {\n\t\t\t\tdata.container.title = localize({ key: 'label-preview', comment: ['placeholders are keybindings, e.g \"F2 to Apply, Shift+F2 to Preview\"'] }, \"{0} to Apply, {1} to Preview\", actionTitle, previewTitle);\n\t\t\t} else {\n\t\t\t\tdata.container.title = localize({ key: 'label', comment: ['placeholder is a keybinding, e.g \"F2 to Apply\"'] }, \"{0} to Apply\", actionTitle);\n\t\t\t}\n\t\t} else {\n\t\t\tdata.container.title = '';\n\t\t}\n\t}\n\n\tdisposeTemplate(templateData: IActionMenuTemplateData): void {\n\t\ttemplateData.keybinding.dispose();\n\t}\n}\n\nclass AcceptSelectedEvent extends UIEvent {\n\tconstructor() { super('acceptSelectedAction'); }\n}\n\nclass PreviewSelectedEvent extends UIEvent {\n\tconstructor() { super('previewSelectedAction'); }\n}\n\nfunction getKeyboardNavigationLabel<T>(item: IActionListItem<T>): string | undefined {\n\t// Filter out header vs. action vs. separator\n\tif (item.kind === 'action') {\n\t\treturn item.label;\n\t}\n\treturn undefined;\n}\n\nexport class ActionList<T> extends Disposable {\n\n\tpublic readonly domNode: HTMLElement;\n\n\tprivate readonly _list: List<IActionListItem<T>>;\n\n\tprivate readonly _actionLineHeight = 28;\n\tprivate readonly _headerLineHeight = 28;\n\tprivate readonly _separatorLineHeight = 8;\n\n\tprivate readonly _allMenuItems: readonly IActionListItem<T>[];\n\n\tprivate readonly cts = this._register(new CancellationTokenSource());\n\n\tprivate _hover = this._register(new MutableDisposable<IHoverWidget>());\n\n\tconstructor(\n\t\tuser: string,\n\t\tpreview: boolean,\n\t\titems: readonly IActionListItem<T>[],\n\t\tprivate readonly _delegate: IActionListDelegate<T>,\n\t\taccessibilityProvider: Partial<IListAccessibilityProvider<IActionListItem<T>>> | undefined,\n\t\t@IContextViewService private readonly _contextViewService: IContextViewService,\n\t\t@IKeybindingService private readonly _keybindingService: IKeybindingService,\n\t\t@ILayoutService private readonly _layoutService: ILayoutService,\n\t\t@IHoverService private readonly _hoverService: IHoverService,\n\t) {\n\t\tsuper();\n\t\tthis.domNode = document.createElement('div');\n\t\tthis.domNode.classList.add('actionList');\n\t\tconst virtualDelegate: IListVirtualDelegate<IActionListItem<T>> = {\n\t\t\tgetHeight: element => {\n\t\t\t\tswitch (element.kind) {\n\t\t\t\t\tcase ActionListItemKind.Header:\n\t\t\t\t\t\treturn this._headerLineHeight;\n\t\t\t\t\tcase ActionListItemKind.Separator:\n\t\t\t\t\t\treturn this._separatorLineHeight;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn this._actionLineHeight;\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetTemplateId: element => element.kind\n\t\t};\n\n\n\t\tthis._list = this._register(new List(user, this.domNode, virtualDelegate, [\n\t\t\tnew ActionItemRenderer<IActionListItem<T>>(preview, this._keybindingService),\n\t\t\tnew HeaderRenderer(),\n\t\t\tnew SeparatorRenderer(),\n\t\t], {\n\t\t\tkeyboardSupport: false,\n\t\t\ttypeNavigationEnabled: true,\n\t\t\tkeyboardNavigationLabelProvider: { getKeyboardNavigationLabel },\n\t\t\taccessibilityProvider: {\n\t\t\t\tgetAriaLabel: element => {\n\t\t\t\t\tif (element.kind === ActionListItemKind.Action) {\n\t\t\t\t\t\tlet label = element.label ? stripNewlines(element?.label) : '';\n\t\t\t\t\t\tif (element.description) {\n\t\t\t\t\t\t\tlabel = label + ', ' + stripNewlines(element.description);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (element.disabled) {\n\t\t\t\t\t\t\tlabel = localize({ key: 'customQuickFixWidget.labels', comment: [`Action widget labels for accessibility.`] }, \"{0}, Disabled Reason: {1}\", label, element.disabled);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn label;\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t\tgetWidgetAriaLabel: () => localize({ key: 'customQuickFixWidget', comment: [`An action widget option`] }, \"Action Widget\"),\n\t\t\t\tgetRole: (e) => {\n\t\t\t\t\tswitch (e.kind) {\n\t\t\t\t\t\tcase ActionListItemKind.Action:\n\t\t\t\t\t\t\treturn 'option';\n\t\t\t\t\t\tcase ActionListItemKind.Separator:\n\t\t\t\t\t\t\treturn 'separator';\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn 'separator';\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tgetWidgetRole: () => 'listbox',\n\t\t\t\t...accessibilityProvider\n\t\t\t},\n\t\t}));\n\n\t\tthis._list.style(defaultListStyles);\n\n\t\tthis._register(this._list.onMouseClick(e => this.onListClick(e)));\n\t\tthis._register(this._list.onMouseOver(e => this.onListHover(e)));\n\t\tthis._register(this._list.onDidChangeFocus(() => this.onFocus()));\n\t\tthis._register(this._list.onDidChangeSelection(e => this.onListSelection(e)));\n\n\t\tthis._allMenuItems = items;\n\t\tthis._list.splice(0, this._list.length, this._allMenuItems);\n\n\t\tif (this._list.length) {\n\t\t\tthis.focusNext();\n\t\t}\n\t}\n\n\tprivate focusCondition(element: IActionListItem<unknown>): boolean {\n\t\treturn !element.disabled && element.kind === ActionListItemKind.Action;\n\t}\n\n\thide(didCancel?: boolean): void {\n\t\tthis._delegate.onHide(didCancel);\n\t\tthis.cts.cancel();\n\t\tthis._hover.clear();\n\t\tthis._contextViewService.hideContextView();\n\t}\n\n\tlayout(minWidth: number): number {\n\t\t// Updating list height, depending on how many separators and headers there are.\n\t\tconst numHeaders = this._allMenuItems.filter(item => item.kind === 'header').length;\n\t\tconst numSeparators = this._allMenuItems.filter(item => item.kind === 'separator').length;\n\t\tconst itemsHeight = this._allMenuItems.length * this._actionLineHeight;\n\t\tconst heightWithHeaders = itemsHeight + numHeaders * this._headerLineHeight - numHeaders * this._actionLineHeight;\n\t\tconst heightWithSeparators = heightWithHeaders + numSeparators * this._separatorLineHeight - numSeparators * this._actionLineHeight;\n\t\tthis._list.layout(heightWithSeparators);\n\t\tlet maxWidth = minWidth;\n\n\t\tif (this._allMenuItems.length >= 50) {\n\t\t\tmaxWidth = 380;\n\t\t} else {\n\t\t\t// For finding width dynamically (not using resize observer)\n\t\t\tconst itemWidths: number[] = this._allMenuItems.map((_, index): number => {\n\t\t\t\tconst element = this._getRowElement(index);\n\t\t\t\tif (element) {\n\t\t\t\t\telement.style.width = 'auto';\n\t\t\t\t\tconst width = element.getBoundingClientRect().width;\n\t\t\t\t\telement.style.width = '';\n\t\t\t\t\treturn width;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t\t// resize observer - can be used in the future since list widget supports dynamic height but not width\n\t\t\tmaxWidth = Math.max(...itemWidths, minWidth);\n\t\t}\n\n\t\tconst maxVhPrecentage = 0.7;\n\t\tconst height = Math.min(heightWithSeparators, this._layoutService.getContainer(dom.getWindow(this.domNode)).clientHeight * maxVhPrecentage);\n\t\tthis._list.layout(height, maxWidth);\n\n\t\tthis.domNode.style.height = `${height}px`;\n\n\t\tthis._list.domFocus();\n\t\treturn maxWidth;\n\t}\n\n\tfocusPrevious() {\n\t\tthis._list.focusPrevious(1, true, undefined, this.focusCondition);\n\t}\n\n\tfocusNext() {\n\t\tthis._list.focusNext(1, true, undefined, this.focusCondition);\n\t}\n\n\tacceptSelected(preview?: boolean) {\n\t\tconst focused = this._list.getFocus();\n\t\tif (focused.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusIndex = focused[0];\n\t\tconst element = this._list.element(focusIndex);\n\t\tif (!this.focusCondition(element)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst event = preview ? new PreviewSelectedEvent() : new AcceptSelectedEvent();\n\t\tthis._list.setSelection([focusIndex], event);\n\t}\n\n\tprivate onListSelection(e: IListEvent<IActionListItem<T>>): void {\n\t\tif (!e.elements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst element = e.elements[0];\n\t\tif (element.item && this.focusCondition(element)) {\n\t\t\tthis._delegate.onSelect(element.item, e.browserEvent instanceof PreviewSelectedEvent);\n\t\t} else {\n\t\t\tthis._list.setSelection([]);\n\t\t}\n\t}\n\n\tprivate onFocus() {\n\t\tconst focused = this._list.getFocus();\n\t\tif (focused.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst focusIndex = focused[0];\n\t\tconst element = this._list.element(focusIndex);\n\t\tthis._delegate.onFocus?.(element.item);\n\n\t\t// Show hover on focus change\n\t\tthis._showHoverForElement(element, focusIndex);\n\t}\n\n\tprivate _getRowElement(index: number): HTMLElement | null {\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\treturn this.domNode.ownerDocument.getElementById(this._list.getElementID(index));\n\t}\n\n\tprivate _showHoverForElement(element: IActionListItem<T>, index: number): void {\n\t\tlet newHover: IHoverWidget | undefined;\n\n\t\t// Show hover if the element has hover content\n\t\tif (element.hover?.content && this.focusCondition(element)) {\n\t\t\t// The List widget separates data models from DOM elements, so we need to\n\t\t\t// look up the actual DOM node to use as the hover target.\n\t\t\tconst rowElement = this._getRowElement(index);\n\t\t\tif (rowElement) {\n\t\t\t\tconst markdown = element.hover.content ? new MarkdownString(element.hover.content) : undefined;\n\t\t\t\tnewHover = this._hoverService.showDelayedHover({\n\t\t\t\t\tcontent: markdown ?? '',\n\t\t\t\t\ttarget: rowElement,\n\t\t\t\t\tadditionalClasses: ['action-widget-hover'],\n\t\t\t\t\tposition: {\n\t\t\t\t\t\thoverPosition: HoverPosition.LEFT,\n\t\t\t\t\t\tforcePosition: false,\n\t\t\t\t\t},\n\t\t\t\t\tappearance: {\n\t\t\t\t\t\tshowPointer: true,\n\t\t\t\t\t},\n\t\t\t\t}, { groupId: `actionListHover` });\n\t\t\t}\n\t\t}\n\n\t\tthis._hover.value = newHover;\n\t}\n\n\tprivate async onListHover(e: IListMouseEvent<IActionListItem<T>>) {\n\t\tconst element = e.element;\n\n\t\tif (element && element.item && this.focusCondition(element)) {\n\t\t\tif (this._delegate.onHover && !element.disabled && element.kind === ActionListItemKind.Action) {\n\t\t\t\tconst result = await this._delegate.onHover(element.item, this.cts.token);\n\t\t\t\telement.canPreview = result ? result.canPreview : undefined;\n\t\t\t}\n\t\t\tif (e.index) {\n\t\t\t\tthis._list.splice(e.index, 1, [element]);\n\t\t\t}\n\n\t\t\tthis._list.setFocus(typeof e.index === 'number' ? [e.index] : []);\n\t\t}\n\t}\n\n\tprivate onListClick(e: IListMouseEvent<IActionListItem<T>>): void {\n\t\tif (e.element && this.focusCondition(e.element)) {\n\t\t\tthis._list.setFocus([]);\n\t\t}\n\t}\n}\n\nfunction stripNewlines(str: string): string {\n\treturn str.replace(/\\r\\n|\\r|\\n/g, ' ');\n}\n"]}
|
|
@@ -104,7 +104,14 @@ let ActionWidgetService = class ActionWidgetService extends Disposable {
|
|
|
104
104
|
const width = this._list.value?.layout(actionBarWidth);
|
|
105
105
|
widget.style.width = `${width}px`;
|
|
106
106
|
const focusTracker = renderDisposables.add(dom.trackFocus(element));
|
|
107
|
-
renderDisposables.add(focusTracker.onDidBlur(() =>
|
|
107
|
+
renderDisposables.add(focusTracker.onDidBlur(() => {
|
|
108
|
+
// Don't hide if focus moved to a hover that belongs to this action widget
|
|
109
|
+
const activeElement = dom.getActiveElement();
|
|
110
|
+
if (activeElement?.closest('.action-widget-hover')) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.hide(true);
|
|
114
|
+
}));
|
|
108
115
|
return renderDisposables;
|
|
109
116
|
}
|
|
110
117
|
_createActionBar(className, actions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/platform/actionWidget/browser/actionWidget.ts"],"names":[],"mappings":"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","file":"actionWidget.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { IAnchor } from '../../../base/browser/ui/contextview/contextview.js';\nimport { IAction } from '../../../base/common/actions.js';\nimport { KeyCode, KeyMod } from '../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore, IDisposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport './actionWidget.css';\nimport { localize, localize2 } from '../../../nls.js';\nimport { acceptSelectedActionCommand, ActionList, IActionListDelegate, IActionListItem, previewSelectedActionCommand } from './actionList.js';\nimport { Action2, registerAction2 } from '../../actions/common/actions.js';\nimport { IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { InstantiationType, registerSingleton } from '../../instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../keybinding/common/keybindingsRegistry.js';\nimport { inputActiveOptionBackground, registerColor } from '../../theme/common/colorRegistry.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { IListAccessibilityProvider } from '../../../base/browser/ui/list/listWidget.js';\n\nregisterColor(\n\t'actionBar.toggledBackground',\n\tinputActiveOptionBackground,\n\tlocalize('actionBar.toggledBackground', 'Background color for toggled action items in action bar.')\n);\n\nconst ActionWidgetContextKeys = {\n\tVisible: new RawContextKey<boolean>('codeActionMenuVisible', false, localize('codeActionMenuVisible', \"Whether the action widget list is visible\"))\n};\n\nexport const IActionWidgetService = createDecorator<IActionWidgetService>('actionWidgetService');\n\nexport interface IActionWidgetService {\n\treadonly _serviceBrand: undefined;\n\n\tshow<T>(user: string, supportsPreview: boolean, items: readonly IActionListItem<T>[], delegate: IActionListDelegate<T>, anchor: HTMLElement | StandardMouseEvent | IAnchor, container: HTMLElement | undefined, actionBarActions?: readonly IAction[], accessibilityProvider?: Partial<IListAccessibilityProvider<IActionListItem<T>>>): void;\n\n\thide(didCancel?: boolean): void;\n\n\treadonly isVisible: boolean;\n}\n\nclass ActionWidgetService extends Disposable implements IActionWidgetService {\n\tdeclare readonly _serviceBrand: undefined;\n\n\tget isVisible() {\n\t\treturn ActionWidgetContextKeys.Visible.getValue(this._contextKeyService) || false;\n\t}\n\n\tprivate readonly _list = this._register(new MutableDisposable<ActionList<unknown>>());\n\n\tconstructor(\n\t\t@IContextViewService private readonly _contextViewService: IContextViewService,\n\t\t@IContextKeyService private readonly _contextKeyService: IContextKeyService,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService\n\t) {\n\t\tsuper();\n\t}\n\n\tshow<T>(user: string, supportsPreview: boolean, items: readonly IActionListItem<T>[], delegate: IActionListDelegate<T>, anchor: HTMLElement | StandardMouseEvent | IAnchor, container: HTMLElement | undefined, actionBarActions?: readonly IAction[], accessibilityProvider?: Partial<IListAccessibilityProvider<IActionListItem<T>>>): void {\n\t\tconst visibleContext = ActionWidgetContextKeys.Visible.bindTo(this._contextKeyService);\n\n\t\tconst list = this._instantiationService.createInstance(ActionList, user, supportsPreview, items, delegate, accessibilityProvider);\n\t\tthis._contextViewService.showContextView({\n\t\t\tgetAnchor: () => anchor,\n\t\t\trender: (container: HTMLElement) => {\n\t\t\t\tvisibleContext.set(true);\n\t\t\t\treturn this._renderWidget(container, list, actionBarActions ?? []);\n\t\t\t},\n\t\t\tonHide: (didCancel) => {\n\t\t\t\tvisibleContext.reset();\n\t\t\t\tthis._onWidgetClosed(didCancel);\n\t\t\t},\n\t\t}, container, false);\n\t}\n\n\tacceptSelected(preview?: boolean) {\n\t\tthis._list.value?.acceptSelected(preview);\n\t}\n\n\tfocusPrevious() {\n\t\tthis._list?.value?.focusPrevious();\n\t}\n\n\tfocusNext() {\n\t\tthis._list?.value?.focusNext();\n\t}\n\n\thide(didCancel?: boolean) {\n\t\tthis._list.value?.hide(didCancel);\n\t\tthis._list.clear();\n\t}\n\n\tprivate _renderWidget(element: HTMLElement, list: ActionList<unknown>, actionBarActions: readonly IAction[]): IDisposable {\n\t\tconst widget = document.createElement('div');\n\t\twidget.classList.add('action-widget');\n\t\telement.appendChild(widget);\n\n\t\tthis._list.value = list;\n\t\tif (this._list.value) {\n\t\t\twidget.appendChild(this._list.value.domNode);\n\t\t} else {\n\t\t\tthrow new Error('List has no value');\n\t\t}\n\t\tconst renderDisposables = new DisposableStore();\n\n\t\t// Invisible div to block mouse interaction in the rest of the UI\n\t\tconst menuBlock = document.createElement('div');\n\t\tconst block = element.appendChild(menuBlock);\n\t\tblock.classList.add('context-view-block');\n\t\trenderDisposables.add(dom.addDisposableListener(block, dom.EventType.MOUSE_DOWN, e => e.stopPropagation()));\n\n\t\t// Invisible div to block mouse interaction with the menu\n\t\tconst pointerBlockDiv = document.createElement('div');\n\t\tconst pointerBlock = element.appendChild(pointerBlockDiv);\n\t\tpointerBlock.classList.add('context-view-pointerBlock');\n\n\t\t// Removes block on click INSIDE widget or ANY mouse movement\n\t\trenderDisposables.add(dom.addDisposableListener(pointerBlock, dom.EventType.POINTER_MOVE, () => pointerBlock.remove()));\n\t\trenderDisposables.add(dom.addDisposableListener(pointerBlock, dom.EventType.MOUSE_DOWN, () => pointerBlock.remove()));\n\n\t\t// Action bar\n\t\tlet actionBarWidth = 0;\n\t\tif (actionBarActions.length) {\n\t\t\tconst actionBar = this._createActionBar('.action-widget-action-bar', actionBarActions);\n\t\t\tif (actionBar) {\n\t\t\t\twidget.appendChild(actionBar.getContainer().parentElement!);\n\t\t\t\trenderDisposables.add(actionBar);\n\t\t\t\tactionBarWidth = actionBar.getContainer().offsetWidth;\n\t\t\t}\n\t\t}\n\n\t\tconst width = this._list.value?.layout(actionBarWidth);\n\t\twidget.style.width = `${width}px`;\n\n\t\tconst focusTracker = renderDisposables.add(dom.trackFocus(element));\n\t\trenderDisposables.add(focusTracker.onDidBlur(() => this.hide(true)));\n\n\t\treturn renderDisposables;\n\t}\n\n\tprivate _createActionBar(className: string, actions: readonly IAction[]): ActionBar | undefined {\n\t\tif (!actions.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst container = dom.$(className);\n\t\tconst actionBar = new ActionBar(container);\n\t\tactionBar.push(actions, { icon: false, label: true });\n\t\treturn actionBar;\n\t}\n\n\tprivate _onWidgetClosed(didCancel?: boolean): void {\n\t\tthis._list.value?.hide(didCancel);\n\t}\n}\n\nregisterSingleton(IActionWidgetService, ActionWidgetService, InstantiationType.Delayed);\n\nconst weight = KeybindingWeight.EditorContrib + 1000;\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'hideCodeActionWidget',\n\t\t\ttitle: localize2('hideCodeActionWidget.title', \"Hide action widget\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.Escape,\n\t\t\t\tsecondary: [KeyMod.Shift | KeyCode.Escape]\n\t\t\t},\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IActionWidgetService).hide(true);\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'selectPrevCodeAction',\n\t\t\ttitle: localize2('selectPrevCodeAction.title', \"Select previous action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.UpArrow,\n\t\t\t\tsecondary: [KeyMod.CtrlCmd | KeyCode.UpArrow],\n\t\t\t\tmac: { primary: KeyCode.UpArrow, secondary: [KeyMod.CtrlCmd | KeyCode.UpArrow, KeyMod.WinCtrl | KeyCode.KeyP] },\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.focusPrevious();\n\t\t}\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'selectNextCodeAction',\n\t\t\ttitle: localize2('selectNextCodeAction.title', \"Select next action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.DownArrow,\n\t\t\t\tsecondary: [KeyMod.CtrlCmd | KeyCode.DownArrow],\n\t\t\t\tmac: { primary: KeyCode.DownArrow, secondary: [KeyMod.CtrlCmd | KeyCode.DownArrow, KeyMod.WinCtrl | KeyCode.KeyN] }\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.focusNext();\n\t\t}\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: acceptSelectedActionCommand,\n\t\t\ttitle: localize2('acceptSelected.title', \"Accept selected action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.Enter,\n\t\t\t\tsecondary: [KeyMod.CtrlCmd | KeyCode.Period],\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.acceptSelected();\n\t\t}\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: previewSelectedActionCommand,\n\t\t\ttitle: localize2('previewSelected.title', \"Preview selected action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.Enter,\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.acceptSelected(true);\n\t\t}\n\t}\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/platform/actionWidget/browser/actionWidget.ts"],"names":[],"mappings":"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","file":"actionWidget.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { IAnchor } from '../../../base/browser/ui/contextview/contextview.js';\nimport { IAction } from '../../../base/common/actions.js';\nimport { KeyCode, KeyMod } from '../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore, IDisposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport './actionWidget.css';\nimport { localize, localize2 } from '../../../nls.js';\nimport { acceptSelectedActionCommand, ActionList, IActionListDelegate, IActionListItem, previewSelectedActionCommand } from './actionList.js';\nimport { Action2, registerAction2 } from '../../actions/common/actions.js';\nimport { IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { InstantiationType, registerSingleton } from '../../instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../keybinding/common/keybindingsRegistry.js';\nimport { inputActiveOptionBackground, registerColor } from '../../theme/common/colorRegistry.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { IListAccessibilityProvider } from '../../../base/browser/ui/list/listWidget.js';\n\nregisterColor(\n\t'actionBar.toggledBackground',\n\tinputActiveOptionBackground,\n\tlocalize('actionBar.toggledBackground', 'Background color for toggled action items in action bar.')\n);\n\nconst ActionWidgetContextKeys = {\n\tVisible: new RawContextKey<boolean>('codeActionMenuVisible', false, localize('codeActionMenuVisible', \"Whether the action widget list is visible\"))\n};\n\nexport const IActionWidgetService = createDecorator<IActionWidgetService>('actionWidgetService');\n\nexport interface IActionWidgetService {\n\treadonly _serviceBrand: undefined;\n\n\tshow<T>(user: string, supportsPreview: boolean, items: readonly IActionListItem<T>[], delegate: IActionListDelegate<T>, anchor: HTMLElement | StandardMouseEvent | IAnchor, container: HTMLElement | undefined, actionBarActions?: readonly IAction[], accessibilityProvider?: Partial<IListAccessibilityProvider<IActionListItem<T>>>): void;\n\n\thide(didCancel?: boolean): void;\n\n\treadonly isVisible: boolean;\n}\n\nclass ActionWidgetService extends Disposable implements IActionWidgetService {\n\tdeclare readonly _serviceBrand: undefined;\n\n\tget isVisible() {\n\t\treturn ActionWidgetContextKeys.Visible.getValue(this._contextKeyService) || false;\n\t}\n\n\tprivate readonly _list = this._register(new MutableDisposable<ActionList<unknown>>());\n\n\tconstructor(\n\t\t@IContextViewService private readonly _contextViewService: IContextViewService,\n\t\t@IContextKeyService private readonly _contextKeyService: IContextKeyService,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService\n\t) {\n\t\tsuper();\n\t}\n\n\tshow<T>(user: string, supportsPreview: boolean, items: readonly IActionListItem<T>[], delegate: IActionListDelegate<T>, anchor: HTMLElement | StandardMouseEvent | IAnchor, container: HTMLElement | undefined, actionBarActions?: readonly IAction[], accessibilityProvider?: Partial<IListAccessibilityProvider<IActionListItem<T>>>): void {\n\t\tconst visibleContext = ActionWidgetContextKeys.Visible.bindTo(this._contextKeyService);\n\n\t\tconst list = this._instantiationService.createInstance(ActionList, user, supportsPreview, items, delegate, accessibilityProvider);\n\t\tthis._contextViewService.showContextView({\n\t\t\tgetAnchor: () => anchor,\n\t\t\trender: (container: HTMLElement) => {\n\t\t\t\tvisibleContext.set(true);\n\t\t\t\treturn this._renderWidget(container, list, actionBarActions ?? []);\n\t\t\t},\n\t\t\tonHide: (didCancel) => {\n\t\t\t\tvisibleContext.reset();\n\t\t\t\tthis._onWidgetClosed(didCancel);\n\t\t\t},\n\t\t}, container, false);\n\t}\n\n\tacceptSelected(preview?: boolean) {\n\t\tthis._list.value?.acceptSelected(preview);\n\t}\n\n\tfocusPrevious() {\n\t\tthis._list?.value?.focusPrevious();\n\t}\n\n\tfocusNext() {\n\t\tthis._list?.value?.focusNext();\n\t}\n\n\thide(didCancel?: boolean) {\n\t\tthis._list.value?.hide(didCancel);\n\t\tthis._list.clear();\n\t}\n\n\tprivate _renderWidget(element: HTMLElement, list: ActionList<unknown>, actionBarActions: readonly IAction[]): IDisposable {\n\t\tconst widget = document.createElement('div');\n\t\twidget.classList.add('action-widget');\n\t\telement.appendChild(widget);\n\n\t\tthis._list.value = list;\n\t\tif (this._list.value) {\n\t\t\twidget.appendChild(this._list.value.domNode);\n\t\t} else {\n\t\t\tthrow new Error('List has no value');\n\t\t}\n\t\tconst renderDisposables = new DisposableStore();\n\n\t\t// Invisible div to block mouse interaction in the rest of the UI\n\t\tconst menuBlock = document.createElement('div');\n\t\tconst block = element.appendChild(menuBlock);\n\t\tblock.classList.add('context-view-block');\n\t\trenderDisposables.add(dom.addDisposableListener(block, dom.EventType.MOUSE_DOWN, e => e.stopPropagation()));\n\n\t\t// Invisible div to block mouse interaction with the menu\n\t\tconst pointerBlockDiv = document.createElement('div');\n\t\tconst pointerBlock = element.appendChild(pointerBlockDiv);\n\t\tpointerBlock.classList.add('context-view-pointerBlock');\n\n\t\t// Removes block on click INSIDE widget or ANY mouse movement\n\t\trenderDisposables.add(dom.addDisposableListener(pointerBlock, dom.EventType.POINTER_MOVE, () => pointerBlock.remove()));\n\t\trenderDisposables.add(dom.addDisposableListener(pointerBlock, dom.EventType.MOUSE_DOWN, () => pointerBlock.remove()));\n\n\t\t// Action bar\n\t\tlet actionBarWidth = 0;\n\t\tif (actionBarActions.length) {\n\t\t\tconst actionBar = this._createActionBar('.action-widget-action-bar', actionBarActions);\n\t\t\tif (actionBar) {\n\t\t\t\twidget.appendChild(actionBar.getContainer().parentElement!);\n\t\t\t\trenderDisposables.add(actionBar);\n\t\t\t\tactionBarWidth = actionBar.getContainer().offsetWidth;\n\t\t\t}\n\t\t}\n\n\t\tconst width = this._list.value?.layout(actionBarWidth);\n\t\twidget.style.width = `${width}px`;\n\n\t\tconst focusTracker = renderDisposables.add(dom.trackFocus(element));\n\t\trenderDisposables.add(focusTracker.onDidBlur(() => {\n\t\t\t// Don't hide if focus moved to a hover that belongs to this action widget\n\t\t\tconst activeElement = dom.getActiveElement();\n\t\t\tif (activeElement?.closest('.action-widget-hover')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.hide(true);\n\t\t}));\n\n\t\treturn renderDisposables;\n\t}\n\n\tprivate _createActionBar(className: string, actions: readonly IAction[]): ActionBar | undefined {\n\t\tif (!actions.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst container = dom.$(className);\n\t\tconst actionBar = new ActionBar(container);\n\t\tactionBar.push(actions, { icon: false, label: true });\n\t\treturn actionBar;\n\t}\n\n\tprivate _onWidgetClosed(didCancel?: boolean): void {\n\t\tthis._list.value?.hide(didCancel);\n\t}\n}\n\nregisterSingleton(IActionWidgetService, ActionWidgetService, InstantiationType.Delayed);\n\nconst weight = KeybindingWeight.EditorContrib + 1000;\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'hideCodeActionWidget',\n\t\t\ttitle: localize2('hideCodeActionWidget.title', \"Hide action widget\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.Escape,\n\t\t\t\tsecondary: [KeyMod.Shift | KeyCode.Escape]\n\t\t\t},\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IActionWidgetService).hide(true);\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'selectPrevCodeAction',\n\t\t\ttitle: localize2('selectPrevCodeAction.title', \"Select previous action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.UpArrow,\n\t\t\t\tsecondary: [KeyMod.CtrlCmd | KeyCode.UpArrow],\n\t\t\t\tmac: { primary: KeyCode.UpArrow, secondary: [KeyMod.CtrlCmd | KeyCode.UpArrow, KeyMod.WinCtrl | KeyCode.KeyP] },\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.focusPrevious();\n\t\t}\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'selectNextCodeAction',\n\t\t\ttitle: localize2('selectNextCodeAction.title', \"Select next action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.DownArrow,\n\t\t\t\tsecondary: [KeyMod.CtrlCmd | KeyCode.DownArrow],\n\t\t\t\tmac: { primary: KeyCode.DownArrow, secondary: [KeyMod.CtrlCmd | KeyCode.DownArrow, KeyMod.WinCtrl | KeyCode.KeyN] }\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.focusNext();\n\t\t}\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: acceptSelectedActionCommand,\n\t\t\ttitle: localize2('acceptSelected.title', \"Accept selected action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyCode.Enter,\n\t\t\t\tsecondary: [KeyMod.CtrlCmd | KeyCode.Period],\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.acceptSelected();\n\t\t}\n\t}\n});\n\nregisterAction2(class extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: previewSelectedActionCommand,\n\t\t\ttitle: localize2('previewSelected.title', \"Preview selected action\"),\n\t\t\tprecondition: ActionWidgetContextKeys.Visible,\n\t\t\tkeybinding: {\n\t\t\t\tweight,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.Enter,\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\tconst widgetService = accessor.get(IActionWidgetService);\n\t\tif (widgetService instanceof ActionWidgetService) {\n\t\t\twidgetService.acceptSelected(true);\n\t\t}\n\t}\n});\n"]}
|
|
@@ -239,6 +239,7 @@ export class MenuId {
|
|
|
239
239
|
static { this.ChatToolOutputResourceContext = new MenuId('ChatToolOutputResourceContext'); }
|
|
240
240
|
static { this.ChatMultiDiffContext = new MenuId('ChatMultiDiffContext'); }
|
|
241
241
|
static { this.ChatConfirmationMenu = new MenuId('ChatConfirmationMenu'); }
|
|
242
|
+
static { this.ChatEditorInlineGutter = new MenuId('ChatEditorInlineGutter'); }
|
|
242
243
|
static { this.ChatEditorInlineExecute = new MenuId('ChatEditorInputExecute'); }
|
|
243
244
|
static { this.ChatEditorInlineInputSide = new MenuId('ChatEditorInputSide'); }
|
|
244
245
|
static { this.AccessibleView = new MenuId('AccessibleView'); }
|
|
@@ -255,7 +256,7 @@ export class MenuId {
|
|
|
255
256
|
static { this.AgentSessionsToolbar = new MenuId('AgentSessionsToolbar'); }
|
|
256
257
|
static { this.AgentSessionItemToolbar = new MenuId('AgentSessionItemToolbar'); }
|
|
257
258
|
static { this.AgentSessionSectionToolbar = new MenuId('AgentSessionSectionToolbar'); }
|
|
258
|
-
static { this.
|
|
259
|
+
static { this.AgentsTitleBarControlMenu = new MenuId('AgentsTitleBarControlMenu'); }
|
|
259
260
|
static { this.ChatViewSessionTitleNavigationToolbar = new MenuId('ChatViewSessionTitleNavigationToolbar'); }
|
|
260
261
|
static { this.ChatViewSessionTitleToolbar = new MenuId('ChatViewSessionTitleToolbar'); }
|
|
261
262
|
/**
|