@opensumi/ide-editor 2.27.3-rc-1714116491.0 → 2.27.3-rc-1714982362.0

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.
Files changed (89) hide show
  1. package/lib/browser/doc-model/editor-document-model-service.d.ts +3 -1
  2. package/lib/browser/doc-model/editor-document-model-service.d.ts.map +1 -1
  3. package/lib/browser/doc-model/editor-document-model-service.js +6 -1
  4. package/lib/browser/doc-model/editor-document-model-service.js.map +1 -1
  5. package/lib/browser/doc-model/types.d.ts +1 -0
  6. package/lib/browser/doc-model/types.d.ts.map +1 -1
  7. package/lib/browser/doc-model/types.js.map +1 -1
  8. package/lib/browser/editor-collection.service.d.ts +6 -6
  9. package/lib/browser/editor-collection.service.d.ts.map +1 -1
  10. package/lib/browser/editor-collection.service.js.map +1 -1
  11. package/lib/browser/editor-electron.contribution.d.ts +2 -2
  12. package/lib/browser/editor-electron.contribution.d.ts.map +1 -1
  13. package/lib/browser/editor-electron.contribution.js +1 -1
  14. package/lib/browser/editor-electron.contribution.js.map +1 -1
  15. package/lib/browser/editor.context.d.ts +7 -0
  16. package/lib/browser/editor.context.d.ts.map +1 -0
  17. package/lib/browser/editor.context.js +10 -0
  18. package/lib/browser/editor.context.js.map +1 -0
  19. package/lib/browser/editor.contribution.d.ts.map +1 -1
  20. package/lib/browser/editor.contribution.js +0 -5
  21. package/lib/browser/editor.contribution.js.map +1 -1
  22. package/lib/browser/editor.decoration.service.d.ts +12 -1
  23. package/lib/browser/editor.decoration.service.d.ts.map +1 -1
  24. package/lib/browser/editor.decoration.service.js +59 -30
  25. package/lib/browser/editor.decoration.service.js.map +1 -1
  26. package/lib/browser/editor.module.less +0 -54
  27. package/lib/browser/editor.view.d.ts.map +1 -1
  28. package/lib/browser/editor.view.js +70 -51
  29. package/lib/browser/editor.view.js.map +1 -1
  30. package/lib/browser/hooks/useEditor.d.ts +4 -0
  31. package/lib/browser/hooks/useEditor.d.ts.map +1 -0
  32. package/lib/browser/hooks/useEditor.js +31 -0
  33. package/lib/browser/hooks/useEditor.js.map +1 -0
  34. package/lib/browser/hooks/useInMergeChanges.d.ts +3 -0
  35. package/lib/browser/hooks/useInMergeChanges.d.ts.map +1 -0
  36. package/lib/browser/hooks/useInMergeChanges.js +27 -0
  37. package/lib/browser/hooks/useInMergeChanges.js.map +1 -0
  38. package/lib/browser/merge-conflict/conflict-parser.d.ts +46 -0
  39. package/lib/browser/merge-conflict/conflict-parser.d.ts.map +1 -0
  40. package/lib/browser/merge-conflict/conflict-parser.js +209 -0
  41. package/lib/browser/merge-conflict/conflict-parser.js.map +1 -0
  42. package/lib/browser/merge-conflict/index.d.ts +3 -0
  43. package/lib/browser/merge-conflict/index.d.ts.map +1 -0
  44. package/lib/browser/merge-conflict/index.js +6 -0
  45. package/lib/browser/merge-conflict/index.js.map +1 -0
  46. package/lib/browser/merge-conflict/types.d.ts +60 -0
  47. package/lib/browser/merge-conflict/types.d.ts.map +1 -0
  48. package/lib/browser/merge-conflict/types.js +15 -0
  49. package/lib/browser/merge-conflict/types.js.map +1 -0
  50. package/lib/browser/merge-editor/MergeEditorFloatComponents.d.ts.map +1 -1
  51. package/lib/browser/merge-editor/MergeEditorFloatComponents.js +73 -49
  52. package/lib/browser/merge-editor/MergeEditorFloatComponents.js.map +1 -1
  53. package/lib/browser/merge-editor/merge-editor.module.less +71 -0
  54. package/lib/browser/merge-editor/merge-editor.provider.d.ts.map +1 -1
  55. package/lib/browser/merge-editor/merge-editor.provider.js +3 -0
  56. package/lib/browser/merge-editor/merge-editor.provider.js.map +1 -1
  57. package/lib/browser/tab.view.d.ts.map +1 -1
  58. package/lib/browser/tab.view.js +6 -5
  59. package/lib/browser/tab.view.js.map +1 -1
  60. package/lib/browser/types.d.ts +6 -0
  61. package/lib/browser/types.d.ts.map +1 -1
  62. package/lib/browser/types.js.map +1 -1
  63. package/lib/browser/workbench-editor.service.d.ts +1 -1
  64. package/lib/browser/workbench-editor.service.js +1 -1
  65. package/lib/common/editor.d.ts +3 -1
  66. package/lib/common/editor.d.ts.map +1 -1
  67. package/lib/common/editor.js.map +1 -1
  68. package/package.json +14 -14
  69. package/src/browser/doc-model/editor-document-model-service.ts +11 -1
  70. package/src/browser/doc-model/types.ts +4 -0
  71. package/src/browser/editor-collection.service.ts +7 -7
  72. package/src/browser/editor-electron.contribution.ts +1 -2
  73. package/src/browser/editor.context.ts +11 -0
  74. package/src/browser/editor.contribution.ts +0 -6
  75. package/src/browser/editor.decoration.service.ts +75 -34
  76. package/src/browser/editor.module.less +0 -54
  77. package/src/browser/editor.view.tsx +102 -77
  78. package/src/browser/hooks/useEditor.ts +34 -0
  79. package/src/browser/hooks/useInMergeChanges.ts +30 -0
  80. package/src/browser/merge-conflict/conflict-parser.ts +323 -0
  81. package/src/browser/merge-conflict/index.ts +2 -0
  82. package/src/browser/merge-conflict/types.ts +73 -0
  83. package/src/browser/merge-editor/MergeEditorFloatComponents.tsx +111 -73
  84. package/src/browser/merge-editor/merge-editor.module.less +71 -0
  85. package/src/browser/merge-editor/merge-editor.provider.ts +3 -0
  86. package/src/browser/tab.view.tsx +7 -6
  87. package/src/browser/types.ts +8 -0
  88. package/src/browser/workbench-editor.service.ts +1 -1
  89. package/src/common/editor.ts +3 -1
@@ -12,7 +12,9 @@ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
12
12
  const components_1 = require("@opensumi/ide-core-browser/lib/components");
13
13
  const view_id_1 = require("@opensumi/ide-core-browser/lib/layout/view-id");
14
14
  const react_hooks_1 = require("@opensumi/ide-core-browser/lib/react-hooks");
15
+ const monaco_api_1 = require("@opensumi/ide-monaco/lib/browser/monaco-api");
15
16
  const common_1 = require("../common");
17
+ const editor_context_1 = require("./editor.context");
16
18
  const editor_module_less_1 = tslib_1.__importDefault(require("./editor.module.less"));
17
19
  const grid_service_1 = require("./grid/grid.service");
18
20
  const navigation_view_1 = require("./navigation.view");
@@ -191,6 +193,7 @@ exports.EditorGroupView = (0, mobx_react_lite_1.observer)(({ group }) => {
191
193
  react_1.default.createElement(EmptyEditorViewConfig.component, EmptyEditorViewConfig.initialProps))) : null))));
192
194
  });
193
195
  exports.EditorGroupBody = (0, mobx_react_lite_1.observer)(({ group }) => {
196
+ const [context, setContext] = react_1.default.useState(editor_context_1.defaultEditorContext);
194
197
  const editorBodyRef = react_1.default.useRef(null);
195
198
  const editorService = (0, react_hooks_1.useInjectable)(common_1.WorkbenchEditorService);
196
199
  const eventBus = (0, react_hooks_1.useInjectable)(ide_core_browser_1.IEventBus);
@@ -202,6 +205,10 @@ exports.EditorGroupBody = (0, mobx_react_lite_1.observer)(({ group }) => {
202
205
  const [, updateState] = react_1.default.useState();
203
206
  const forceUpdate = react_1.default.useCallback(() => updateState({}), []);
204
207
  react_1.default.useEffect(() => {
208
+ const disposables = new ide_core_browser_1.DisposableStore();
209
+ disposables.add(group.onDidEditorGroupBodyChanged(() => {
210
+ forceUpdate();
211
+ }));
205
212
  if (codeEditorRef.current) {
206
213
  if (cachedEditor[group.name]) {
207
214
  cachedEditor[group.name].remove();
@@ -212,6 +219,17 @@ exports.EditorGroupBody = (0, mobx_react_lite_1.observer)(({ group }) => {
212
219
  codeEditorRef.current.appendChild(container);
213
220
  cachedEditor[group.name] = container;
214
221
  group.createEditor(container);
222
+ const minimapWith = group.codeEditor.monacoEditor.getOption(monaco_api_1.monaco.editor.EditorOption.layoutInfo).minimap
223
+ .minimapWidth;
224
+ setContext({ minimapWidth: minimapWith });
225
+ disposables.add(group.codeEditor.monacoEditor.onDidChangeConfiguration((e) => {
226
+ if (e.hasChanged(monaco_api_1.monaco.editor.EditorOption.layoutInfo)) {
227
+ setContext({
228
+ minimapWidth: group.codeEditor.monacoEditor.getOption(monaco_api_1.monaco.editor.EditorOption.layoutInfo).minimap
229
+ .minimapWidth,
230
+ });
231
+ }
232
+ }));
215
233
  }
216
234
  }
217
235
  if (diffEditorRef.current) {
@@ -220,10 +238,10 @@ exports.EditorGroupBody = (0, mobx_react_lite_1.observer)(({ group }) => {
220
238
  if (mergeEditorRef.current) {
221
239
  group.attachMergeEditorDom(mergeEditorRef.current);
222
240
  }
223
- }, [codeEditorRef.current, diffEditorRef.current, mergeEditorRef.current]);
224
- (0, ide_core_browser_1.useDisposable)(() => group.onDidEditorGroupBodyChanged(() => {
225
- forceUpdate();
226
- }), []);
241
+ return () => {
242
+ disposables.dispose();
243
+ };
244
+ }, []);
227
245
  group.activeComponents.forEach((resources, component) => {
228
246
  const initialProps = group.activateComponentsProps.get(component);
229
247
  components.push(react_1.default.createElement("div", { key: component.uid, className: (0, classnames_1.default)({
@@ -249,55 +267,56 @@ exports.EditorGroupBody = (0, mobx_react_lite_1.observer)(({ group }) => {
249
267
  }));
250
268
  }
251
269
  });
252
- return (react_1.default.createElement("div", { id: view_id_1.VIEW_CONTAINERS.EDITOR, ref: editorBodyRef, className: editor_module_less_1.default.kt_editor_body, onDragOver: (e) => {
253
- e.preventDefault();
254
- if (editorBodyRef.current) {
255
- const position = getDragOverPosition(e.nativeEvent, editorBodyRef.current);
256
- decorateDragOverElement(editorBodyRef.current, position);
257
- }
258
- }, onDragLeave: (e) => {
259
- if (editorBodyRef.current) {
260
- removeDecorationDragOverElement(editorBodyRef.current);
261
- }
262
- }, onDrop: (e) => {
263
- if (editorBodyRef.current) {
264
- removeDecorationDragOverElement(editorBodyRef.current);
265
- if (e.dataTransfer.getData('uri')) {
266
- const uri = new ide_core_browser_1.URI(e.dataTransfer.getData('uri'));
267
- let sourceGroup;
268
- if (e.dataTransfer.getData('uri-source-group')) {
269
- sourceGroup = editorService.getEditorGroup(e.dataTransfer.getData('uri-source-group'));
270
- }
271
- group.dropUri(uri, getDragOverPosition(e.nativeEvent, editorBodyRef.current), sourceGroup);
270
+ return (react_1.default.createElement(editor_context_1.EditorContext.Provider, { value: context },
271
+ react_1.default.createElement("div", { id: view_id_1.VIEW_CONTAINERS.EDITOR, ref: editorBodyRef, className: editor_module_less_1.default.kt_editor_body, onDragOver: (e) => {
272
+ e.preventDefault();
273
+ if (editorBodyRef.current) {
274
+ const position = getDragOverPosition(e.nativeEvent, editorBodyRef.current);
275
+ decorateDragOverElement(editorBodyRef.current, position);
272
276
  }
273
- if (e.dataTransfer.files.length > 0) {
274
- eventBus.fire(new types_1.EditorGroupFileDropEvent({
275
- group,
276
- files: e.dataTransfer.files,
277
- position: getDragOverPosition(e.nativeEvent, editorBodyRef.current),
278
- }));
277
+ }, onDragLeave: (e) => {
278
+ if (editorBodyRef.current) {
279
+ removeDecorationDragOverElement(editorBodyRef.current);
279
280
  }
280
- }
281
- } },
282
- group.currentResource && react_1.default.createElement(EditorSideView, { side: 'top', resource: group.currentResource }),
283
- !editorHasNoTab && react_1.default.createElement(navigation_view_1.NavigationBar, { editorGroup: group }),
284
- react_1.default.createElement("div", { className: editor_module_less_1.default.kt_editor_components },
285
- react_1.default.createElement("div", { className: (0, classnames_1.default)({
286
- [styles_kt_editor_component]: true,
287
- [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.component,
288
- }) }, components),
289
- react_1.default.createElement("div", { className: (0, classnames_1.default)({
290
- [editor_module_less_1.default.kt_editor_code_editor]: true,
291
- [styles_kt_editor_component]: true,
292
- [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.code,
293
- }), ref: codeEditorRef }),
294
- react_1.default.createElement("div", { className: (0, classnames_1.default)(editor_module_less_1.default.kt_editor_diff_editor, styles_kt_editor_component, {
295
- [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.diff,
296
- }), ref: diffEditorRef }),
297
- react_1.default.createElement("div", { className: (0, classnames_1.default)(editor_module_less_1.default.kt_editor_diff_3_editor, styles_kt_editor_component, {
298
- [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.mergeEditor,
299
- }), ref: mergeEditorRef })),
300
- group.currentResource && react_1.default.createElement(EditorSideView, { side: 'bottom', resource: group.currentResource })));
281
+ }, onDrop: (e) => {
282
+ if (editorBodyRef.current) {
283
+ removeDecorationDragOverElement(editorBodyRef.current);
284
+ if (e.dataTransfer.getData('uri')) {
285
+ const uri = new ide_core_browser_1.URI(e.dataTransfer.getData('uri'));
286
+ let sourceGroup;
287
+ if (e.dataTransfer.getData('uri-source-group')) {
288
+ sourceGroup = editorService.getEditorGroup(e.dataTransfer.getData('uri-source-group'));
289
+ }
290
+ group.dropUri(uri, getDragOverPosition(e.nativeEvent, editorBodyRef.current), sourceGroup);
291
+ }
292
+ if (e.dataTransfer.files.length > 0) {
293
+ eventBus.fire(new types_1.EditorGroupFileDropEvent({
294
+ group,
295
+ files: e.dataTransfer.files,
296
+ position: getDragOverPosition(e.nativeEvent, editorBodyRef.current),
297
+ }));
298
+ }
299
+ }
300
+ } },
301
+ group.currentResource && react_1.default.createElement(EditorSideView, { side: 'top', resource: group.currentResource }),
302
+ !editorHasNoTab && react_1.default.createElement(navigation_view_1.NavigationBar, { editorGroup: group }),
303
+ react_1.default.createElement("div", { className: editor_module_less_1.default.kt_editor_components },
304
+ react_1.default.createElement("div", { className: (0, classnames_1.default)({
305
+ [styles_kt_editor_component]: true,
306
+ [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.component,
307
+ }) }, components),
308
+ react_1.default.createElement("div", { className: (0, classnames_1.default)({
309
+ [editor_module_less_1.default.kt_editor_code_editor]: true,
310
+ [styles_kt_editor_component]: true,
311
+ [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.code,
312
+ }), ref: codeEditorRef }),
313
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(editor_module_less_1.default.kt_editor_diff_editor, styles_kt_editor_component, {
314
+ [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.diff,
315
+ }), ref: diffEditorRef }),
316
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(editor_module_less_1.default.kt_editor_diff_3_editor, styles_kt_editor_component, {
317
+ [editor_module_less_1.default.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== types_1.EditorOpenType.mergeEditor,
318
+ }), ref: mergeEditorRef })),
319
+ group.currentResource && react_1.default.createElement(EditorSideView, { side: 'bottom', resource: group.currentResource }))));
301
320
  });
302
321
  const ComponentsWrapper = (_a) => {
303
322
  var { component, resources, current } = _a, other = tslib_1.__rest(_a, ["component", "resources", "current"]);
@@ -1 +1 @@
1
- {"version":3,"file":"editor.view.js","sourceRoot":"","sources":["../../src/browser/editor.view.tsx"],"names":[],"mappings":";;;;AAAA,oEAA6B;AAC7B,qDAA2C;AAC3C,0DAA0B;AAC1B,sEAAwC;AACxC,gEAA+B;AAE/B,6DAAsD;AACtD,iEAaoC;AACpC,0EAKmD;AACnD,2EAAgF;AAChF,4EAAqG;AAErG,sCAA8D;AAG9D,sFAA0C;AAC1C,sDAAiE;AACjE,uDAAkD;AAClD,yCAAkC;AAClC,mCAYiB;AAGV,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,eAAK,CAAC,MAAM,EAAsB,CAAC;IAE/C,MAAM,sBAAsB,GAAG,IAAA,2BAAa,EAAC,+BAAsB,CAA+B,CAAC;IACnG,MAAM,iBAAiB,GAAG,IAAA,2BAAa,EAAoB,oCAAiB,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAC1F,MAAM,WAAW,GAAyC,eAAe,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAU,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpF,MAAM,0BAA0B,GAAG,IAAA,kCAAe,EAAC,4BAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IAEtG,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,sBAAsB,CAAC,SAAS,EAAE;gBACpC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChB;iBAAM;gBACL,MAAM,QAAQ,GAAG,sBAAsB,CAAC,cAAc,CAAC,GAAG,EAAE;oBAC1D,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACjC;SACF;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,uCACE,SAAS,EAAE,0BAA0B,EACrC,EAAE,EAAC,kBAAkB,EACrB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;YAClB,IAAI,GAAG,EAAE;gBACP,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aAC1C;QACH,CAAC;QAED,uCAAK,SAAS,EAAE,4BAAM,CAAC,sBAAsB;YAC3C,8BAAC,sBAAc,IAAC,IAAI,EAAE,sBAAsB,CAAC,OAAO,GAAmB,CACnE;QACL,WAAW,CAAC,CAAC,CAAC,CACb,uCAAK,SAAS,EAAE,4BAAM,CAAC,sBAAsB;YAC3C,8BAAC,gCAAa;gBACZ,8BAAC,WAAW,OAAe,CACb,CACZ,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,UAAU,cAkDrB;AAEF,MAAM,eAAe,GAAG,EAAE,CAAC;AAEpB,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAwB,EAAE,EAAE;IAC/D,IAAI,oBAAoC,CAAC;IACzC,MAAM,OAAO,GAAG,eAAK,CAAC,UAAU,CAAC,gCAAa,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,4BAAS,CAAc,CAAC;IACvD,MAAM,eAAe,GAA4B,EAAE,CAAC;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,eAAK,CAAC,QAAQ,EAAO,CAAC;IAC9C,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,oBAAoB,EAAE;YACxB,IAAI,eAAe,CAAC,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,EAAE;gBAC3C,oBAAoB,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,WAA4B,CAAC,aAAa,EAAE,CAAC;aACpD;iBAAM;gBACL,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1C,eAAe,CAAC,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC1B,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACtC,gBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAC7B,8BAAC,iCAAc,IAAC,KAAK,EAAE,OAAO;oBAC5B,8BAAC,uBAAe,IAAC,KAAK,EAAE,IAAI,CAAC,WAA2B,GAAI,CAC7C,CAClB,CAAC;aACH;SACF;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,gCAAa,EACX,GAAG,EAAE,CAAC;QACJ,QAAQ,CAAC,EAAE,CAAC,kCAA0B,EAAE,GAAG,EAAE;YAC3C,IAAI,IAAI,CAAC,cAAc,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACnC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE;YAC7B,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC;KACH,EACD,EAAE,CACH,CAAC;IAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;QAClD,OAAO,uCAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,GAAI,CAAC;KAC3F;IAED,MAAM,iBAAiB,GACrB,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,UAAU;QAC/C,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;QAC7C,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACjC,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,QAAQ,EAAE;gBACnD,QAAQ,CAAC,IAAI,CACX,8BAAC,iCAAoB,IACnB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAC3D,QAAQ,EAAE,GAAG,EAAE;wBACb,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;wBAC1D,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC,EACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACrB,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC,EACD,QAAQ,EAAE,2BAAc,CAAC,UAAU,GACnC,CACH,CAAC;aACH;iBAAM;gBACL,QAAQ,CAAC,IAAI,CACX,8BAAC,mCAAsB,IACrB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAC3D,QAAQ,EAAE,GAAG,EAAE;wBACb,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;wBAC1D,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC,EACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACrB,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC,GACD,CACH,CAAC;aACH;SACF;QACD,QAAQ,CAAC,IAAI,CACX,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC;gBACb,CAAC,4BAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,QAAQ;gBAChF,CAAC,4BAAM,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,UAAU;aACrF,CAAC,EACF,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,CAAC,CAAC,GAAG,qBACO,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAE7E,8BAAC,sBAAc,IAAC,IAAI,EAAE,CAAC,GAAI,CACvB,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC;YACb,CAAC,4BAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,QAAQ;YAC1E,CAAC,4BAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,cAAc,KAAK,6BAAc,CAAC,UAAU;SAC/E,CAAC,IAED,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AA7GW,QAAA,cAAc,kBA6GzB;AAEF,MAAM,YAAY,GAAsC,EAAE,CAAC;AAE3D;;;GAGG;AACH,MAAM,oBAAoB,GAErB,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;IACjC,IAAI,CAAC,qBAAqB,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,4BAAM,CAAC,WAAW;QAChC,uCAAK,SAAS,EAAE,4BAAM,CAAC,cAAc,EAAE,GAAG,EAAE,qBAAqB,GAAI,CACjE,CACP,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,eAAe,GAAG,IAAA,0BAAQ,EAAC,CAAC,EAAE,KAAK,EAA0B,EAAE,EAAE;IAC5E,MAAM,eAAe,GAAG,eAAK,CAAC,MAAM,EAAsB,CAAC;IAE3D,MAAM,iBAAiB,GAAG,IAAA,2BAAa,EAAC,oCAAiB,CAAsB,CAAC;IAChF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,sBAAsB,GAAG,IAAA,kCAAe,EAAC,4BAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IAE1F,MAAM,SAAS,GAAG,IAAA,2BAAa,EAAC,4BAAS,CAAC,CAAC;IAC3C,MAAM,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAE5C,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,yBAAyB;QACzB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,0BAA0B,CAAC,GAAG,EAAE;YACrD,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAAG,eAAK,CAAC,QAAQ,CAC5E,GAAG,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAU,iCAAiC,CAAC,CAC1E,CAAC;IAEF,IAAA,gCAAa,EACX,GAAG,EAAE,CAAC;QACJ,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,MAAM,CAAC,cAAc,KAAK,iCAAiC,EAAE;gBAC/D,2BAA2B,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAChD;QACH,CAAC,CAAC;KACH,EACD,EAAE,CACH,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAA,2BAAa,EAAoB,oCAAiB,CAAC,CAAC;IAE9E,mCAAmC;IACnC,MAAM,qBAAqB,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;QACtF,OAAO,CACL,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD;gBACC,SAAS,EAAE,oBAAoB;gBAC/B,YAAY,EAAE,EAAE,qBAAqB,EAAE;aAC/B,CACX,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,uCACE,GAAG,EAAE,eAAsB,EAC3B,SAAS,EAAE,sBAAsB,EACjC,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,CAAC;QAEA,CAAC,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CACzC,uCAAK,SAAS,EAAE,4BAAM,CAAC,iBAAiB;YACtC,8BAAC,eAAI,IAAC,KAAK,EAAE,KAAK,GAAI,CAClB,CACP;QACD,8BAAC,uBAAe,IAAC,KAAK,EAAE,KAAK,GAAI;QAChC,OAAO,IAAI,CACV,uCACE,SAAS,EAAE,4BAAM,CAAC,oBAAoB,EACtC,KAAK,EAAE;gBACL,eAAe,EAAE,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,CAAC,CAAC,OAAO,qBAAqB,GAAG,CAAC,CAAC,CAAC,MAAM;aAC5G,IAEA,qBAAqB,IAAI,kBAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACtF,8BAAC,gCAAa,QACX,qBAAqB,CAAC,SAAS;YAC9B,eAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,SAAS,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAC5E,CACjB,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAA,0BAAQ,EAAC,CAAC,EAAE,KAAK,EAA0B,EAAE,EAAE;IAC5E,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,IAAA,2BAAa,EAAC,+BAAsB,CAA+B,CAAC;IAC1F,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,4BAAS,CAAc,CAAC;IACvD,MAAM,0BAA0B,GAAG,IAAA,kCAAe,EAAC,4BAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IACtG,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,eAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,eAAK,CAAC,QAAQ,EAAO,CAAC;IAC9C,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC5B,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChD,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC7C,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;gBACrC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAC/B;SACF;QAED,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAClD;QACD,IAAI,cAAc,CAAC,OAAO,EAAE;YAC1B,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACpD;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3E,IAAA,gCAAa,EACX,GAAG,EAAE,CACH,KAAK,CAAC,2BAA2B,CAAC,GAAG,EAAE;QACrC,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,UAAU,CAAC,IAAI,CACb,uCACE,GAAG,EAAE,SAAS,CAAC,GAAG,EAClB,SAAS,EAAE,IAAA,oBAAG,EAAC;gBACb,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,WAAW,KAAK,SAAS,CAAC,GAAG,CAAC;aACpG,CAAC;YAEF,8BAAC,yBAAiB,kBAChB,GAAG,EAAE,SAAS,CAAC,GAAG,EAClB,SAAS,EAAE,SAAS,IAChB,YAAY,IAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,KAAK,CAAC,eAAe,IACX,CACjB,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,eAAK,CAAC,OAAO,CAClC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAC5D,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAChD,CAAC;IAEF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,IAAI,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,MAAK,sBAAc,CAAC,IAAI,EAAE;YACvD,QAAQ,CAAC,IAAI,CACX,IAAI,iCAAyB,CAAC;gBAC5B,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,IAAI,EAAE,sBAAc,CAAC,IAAI;gBACzB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;aACnC,CAAC,CACH,CAAC;SACH;aAAM,IAAI,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,MAAK,sBAAc,CAAC,IAAI,EAAE;YAC9D,QAAQ,CAAC,IAAI,CACX,IAAI,iCAAyB,CAAC;gBAC5B,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,IAAI,EAAE,sBAAc,CAAC,IAAI;gBACzB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE;aAClD,CAAC,CACH,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,uCACE,EAAE,EAAE,yBAAe,CAAC,MAAM,EAC1B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,4BAAM,CAAC,cAAc,EAChC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,aAAa,CAAC,OAAO,EAAE;gBACzB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3E,uBAAuB,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aAC1D;QACH,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,aAAa,CAAC,OAAO,EAAE;gBACzB,+BAA+B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACxD;QACH,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,aAAa,CAAC,OAAO,EAAE;gBACzB,+BAA+B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACjC,MAAM,GAAG,GAAG,IAAI,sBAAG,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnD,IAAI,WAAoC,CAAC;oBACzC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;wBAC9C,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;qBACxF;oBACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;iBAC5F;gBACD,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,QAAQ,CAAC,IAAI,CACX,IAAI,gCAAwB,CAAC;wBAC3B,KAAK;wBACL,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK;wBAC3B,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;qBACpE,CAAC,CACH,CAAC;iBACH;aACF;QACH,CAAC;QAEA,KAAK,CAAC,eAAe,IAAI,8BAAC,cAAc,IAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,GAAmB;QACxG,CAAC,cAAc,IAAI,8BAAC,+BAAa,IAAC,WAAW,EAAE,KAAK,GAAI;QACzD,uCAAK,SAAS,EAAE,4BAAM,CAAC,oBAAoB;YACzC,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC;oBACb,CAAC,0BAA0B,CAAC,EAAE,IAAI;oBAClC,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,sBAAc,CAAC,SAAS;iBACtG,CAAC,IAED,UAAU,CACP;YACN,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC;oBACb,CAAC,4BAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI;oBACpC,CAAC,0BAA0B,CAAC,EAAE,IAAI;oBAClC,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,sBAAc,CAAC,IAAI;iBACjG,CAAC,EACF,GAAG,EAAE,aAAa,GAClB;YACF,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC,4BAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE;oBACvE,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,sBAAc,CAAC,IAAI;iBACjG,CAAC,EACF,GAAG,EAAE,aAAa,GAClB;YACF,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC,4BAAM,CAAC,uBAAuB,EAAE,0BAA0B,EAAE;oBACzE,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,sBAAc,CAAC,WAAW;iBACxG,CAAC,EACF,GAAG,EAAE,cAAc,GACnB,CACE;QACL,KAAK,CAAC,eAAe,IAAI,8BAAC,cAAc,IAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,GAAmB,CACxG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,MAAM,iBAAiB,GAAG,CAAC,EASjC,EAAE,EAAE;QAT6B,EAChC,SAAS,EACT,SAAS,EACT,OAAO,OAMR,EALI,KAAK,sBAJwB,qCAKjC,CADS;IAMR,IAAA,sCAAwB,EAAC,6CAAqC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC/G,OAAO,CACL,uCAAK,SAAS,EAAE,4BAAM,CAAC,2BAA2B,IAC/C,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,8BAAC,wBAAgB,oBACX,KAAK,IACT,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAC5B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IACxE,CACH,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,iBAAiB,qBAwB5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAAyC,EAAE,EAAE;QAA7C,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAY,EAAP,KAAK,sBAAvC,mCAAyC,CAAF;IACtE,MAAM,gBAAgB,GAAgC,IAAA,2BAAa,EAAC,+BAAuB,CAAC,CAAC;IAC7F,IAAI,YAAY,GAA0B,IAAI,CAAC;IAC/C,IAAI,aAAa,CAAC;IAClB,IAAI,SAAS,CAAC,UAAU,KAAK,iCAAyB,CAAC,iBAAiB,EAAE;QACxE,aAAa,GAAG,8BAAC,SAAS,CAAC,SAAS,kBAAC,QAAQ,EAAE,QAAQ,IAAM,KAAK,EAAI,CAAC;KACxE;IACD,MAAM,OAAO,GAAG,eAAK,CAAC,UAAU,CAAC,gCAAa,CAAC,CAAC;IAEhD,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,CAAC,UAAU,KAAK,iCAAyB,CAAC,iBAAiB,EAAE;YACxE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC1B,gBAAgB,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC7D,mCAAmC;gBACnC,gBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAC7B,8BAAC,iCAAc,IAAC,KAAK,EAAE,OAAO;oBAC5B,8BAAC,SAAS,CAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAC5B,CAClB,CAAC;aACH;YACD,YAAa,CAAC,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SACnF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,uCACE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAC5B,SAAS,EAAE,IAAA,oBAAG,EAAC;YACb,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE,MAAM;SAC3B,CAAC;QAEF,8BAAC,2BAAU;YACT,8BAAC,gCAAa;gBACZ,uCACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;wBACV,YAAY,GAAG,EAAE,CAAC;oBACpB,CAAC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAExB,aAAa,CACV,CACQ,CACL,CACT,CACP,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,gBAAgB,oBA+C3B;AAEF,SAAS,mBAAmB,CAAC,CAAY,EAAE,OAAoB;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACpC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE;QACpB,OAAO,wBAAgB,CAAC,IAAI,CAAC;KAC9B;IACD,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE;QACpB,OAAO,wBAAgB,CAAC,KAAK,CAAC;KAC/B;IACD,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE;QACrB,OAAO,wBAAgB,CAAC,GAAG,CAAC;KAC7B;IACD,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE;QACrB,OAAO,wBAAgB,CAAC,MAAM,CAAC;KAChC;IACD,OAAO,wBAAgB,CAAC,MAAM,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoB,EAAE,SAAiB;IACvD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC1C,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KAClC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAoB,EAAE,SAAiB;IAC1D,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACzC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACrC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAoB,EAAE,QAA0B;IAC/E,QAAQ,CAAC,OAAO,EAAE,4BAAM,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC,wBAAgB,CAAC,IAAI,EAAE,wBAAgB,CAAC,KAAK,EAAE,wBAAgB,CAAC,GAAG,EAAE,wBAAgB,CAAC,MAAM,CAAC;SAC3F,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC;SACjC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,WAAW,CAAC,OAAO,EAAE,4BAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACL,QAAQ,CAAC,OAAO,EAAE,4BAAM,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAoB;IAC3D,WAAW,CAAC,OAAO,EAAE,4BAAM,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,wBAAgB,CAAC,IAAI,EAAE,wBAAgB,CAAC,KAAK,EAAE,wBAAgB,CAAC,GAAG,EAAE,wBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7G,WAAW,CAAC,OAAO,EAAE,4BAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA6C,EAAE,EAAE;IACvF,MAAM,iBAAiB,GAA4B,IAAA,2BAAa,EAAC,+BAAuB,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,4BAAS,CAAc,CAAC;IACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,eAAK,CAAC,QAAQ,EAAO,CAAC;IAC9C,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,IAAA,gCAAa,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,wCAAgC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpF,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAG,EAAC,4BAAM,CAAC,wBAAwB,CAAC,EAAE,4BAAM,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC,IAC5F,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC3B,OAAO,8BAAC,CAAC,kBAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,IAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAM,CAAC;IACtF,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"editor.view.js","sourceRoot":"","sources":["../../src/browser/editor.view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { URI } from '@opensumi/ide-core-browser';
2
+ import { IEditorDocumentModelRef } from '../types';
3
+ export declare function useEditorDocumentModelRef(uri: URI): IEditorDocumentModelRef | null;
4
+ //# sourceMappingURL=useEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditor.d.ts","sourceRoot":"","sources":["../../../src/browser/hooks/useEditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAiB,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,kCA0BjD"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useEditorDocumentModelRef = void 0;
4
+ const react_1 = require("react");
5
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
6
+ const types_1 = require("../doc-model/types");
7
+ function useEditorDocumentModelRef(uri) {
8
+ const documentService = (0, ide_core_browser_1.useInjectable)(types_1.IEditorDocumentModelService);
9
+ const [ref, setRef] = (0, react_1.useState)(null);
10
+ (0, react_1.useEffect)(() => {
11
+ const run = () => {
12
+ const ref = documentService.getModelReference(uri);
13
+ if (ref) {
14
+ setRef(ref);
15
+ }
16
+ };
17
+ const toDispose = documentService.onDocumentModelCreated(uri.toString(), () => {
18
+ run();
19
+ });
20
+ run();
21
+ return () => {
22
+ toDispose.dispose();
23
+ if (ref) {
24
+ ref.dispose();
25
+ }
26
+ };
27
+ }, [uri]);
28
+ return ref;
29
+ }
30
+ exports.useEditorDocumentModelRef = useEditorDocumentModelRef;
31
+ //# sourceMappingURL=useEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditor.js","sourceRoot":"","sources":["../../../src/browser/hooks/useEditor.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAE5C,iEAAgE;AAEhE,8CAAiE;AAGjE,SAAgB,yBAAyB,CAAC,GAAQ;IAChD,MAAM,eAAe,GAAgC,IAAA,gCAAa,EAAC,mCAA2B,CAAC,CAAC;IAChG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAiC,IAAI,CAAC,CAAC;IAErE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,MAAM,GAAG,GAAG,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE;YAC5E,GAAG,EAAE,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,GAAG,EAAE,CAAC;QACN,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,EAAE,CAAC;aACf;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,GAAG,CAAC;AACb,CAAC;AA1BD,8DA0BC"}
@@ -0,0 +1,3 @@
1
+ export declare const gitMergeChangesSet: Set<string>;
2
+ export declare function useInMergeChanges(uriStr: string): boolean;
3
+ //# sourceMappingURL=useInMergeChanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInMergeChanges.d.ts","sourceRoot":"","sources":["../../../src/browser/hooks/useInMergeChanges.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,aAAwB,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,WAqB/C"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useInMergeChanges = exports.gitMergeChangesSet = void 0;
4
+ const react_1 = require("react");
5
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
6
+ const contextKey = 'git.mergeChangesObj';
7
+ exports.gitMergeChangesSet = new Set([contextKey]);
8
+ function useInMergeChanges(uriStr) {
9
+ const contextKeyService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.IContextKeyService);
10
+ const [inMergeChanges, setInMergeChanges] = (0, react_1.useState)(false);
11
+ (0, react_1.useEffect)(() => {
12
+ function run() {
13
+ const mergeChanges = contextKeyService.getValue(contextKey) || {};
14
+ setInMergeChanges(mergeChanges[uriStr] || false);
15
+ }
16
+ run();
17
+ const disposed = contextKeyService.onDidChangeContext(({ payload }) => {
18
+ if (payload.affectsSome(exports.gitMergeChangesSet)) {
19
+ run();
20
+ }
21
+ });
22
+ return () => disposed.dispose();
23
+ }, [uriStr]);
24
+ return inMergeChanges;
25
+ }
26
+ exports.useInMergeChanges = useInMergeChanges;
27
+ //# sourceMappingURL=useInMergeChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInMergeChanges.js","sourceRoot":"","sources":["../../../src/browser/hooks/useInMergeChanges.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAE5C,iEAA+E;AAE/E,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAE5B,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAExD,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,MAAM,iBAAiB,GAAG,IAAA,gCAAa,EAAqB,qCAAkB,CAAC,CAAC;IAEhF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,SAAS,GAAG;YACV,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAA0B,UAAU,CAAC,IAAI,EAAE,CAAC;YAC3F,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,GAAG,EAAE,CAAC;QAEN,MAAM,QAAQ,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACpE,IAAI,OAAO,CAAC,WAAW,CAAC,0BAAkB,CAAC,EAAE;gBAC3C,GAAG,EAAE,CAAC;aACP;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,cAAc,CAAC;AACxB,CAAC;AArBD,8CAqBC"}
@@ -0,0 +1,46 @@
1
+ import { Disposable, LRUCache } from '@opensumi/ide-core-common';
2
+ import * as monaco from '@opensumi/ide-monaco';
3
+ import { ICacheDocumentMergeConflict, IDocumentMergeConflictDescriptor, IMergeRegion } from './types';
4
+ export interface IConflictCache {
5
+ id: string;
6
+ range: monaco.Range;
7
+ text: string;
8
+ isResolved: boolean;
9
+ }
10
+ export declare class TextLine {
11
+ lineNumber: number;
12
+ text: string;
13
+ range: monaco.Range;
14
+ rangeIncludingLineBreak: monaco.Range;
15
+ firstNonWhitespaceCharacterIndex: number;
16
+ isEmptyOrWhitespace: boolean;
17
+ constructor(document: monaco.editor.ITextModel, line: number);
18
+ }
19
+ export declare class MergeConflictParser extends Disposable {
20
+ cache: LRUCache<string, DocumentMergeConflict[]>;
21
+ private _conflictTextCaches;
22
+ private _conflictRangeCaches;
23
+ private static createCacheKey;
24
+ scanDocument(document: monaco.editor.ITextModel): DocumentMergeConflict[];
25
+ getConflictText(uri: string): string | undefined;
26
+ getAllConflictsByUri(uri: string): IConflictCache[] | undefined;
27
+ getAllConflicts(): Map<string, IConflictCache[]>;
28
+ setConflictResolved(uri: string, id: string): void;
29
+ deleteConflictText(uri: string): void;
30
+ dispose(): void;
31
+ }
32
+ export declare class DocumentMergeConflict implements ICacheDocumentMergeConflict {
33
+ range: monaco.Range;
34
+ current: IMergeRegion;
35
+ incoming: IMergeRegion;
36
+ commonAncestors: IMergeRegion[];
37
+ splitter: monaco.Range;
38
+ incomingContent: string;
39
+ currentContent: string;
40
+ bothContent: string;
41
+ aiContent?: string;
42
+ defaultContent: string;
43
+ private applied;
44
+ constructor(descriptor: IDocumentMergeConflictDescriptor);
45
+ }
46
+ //# sourceMappingURL=conflict-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-parser.d.ts","sourceRoot":"","sources":["../../../src/browser/merge-conflict/conflict-parser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAQ,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AActG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,QAAQ;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC,KAAK,CAAC;IACtC,gCAAgC,EAAE,MAAM,CAAC;IACzC,mBAAmB,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM;CAY7D;AAED,qBACa,mBAAoB,SAAQ,UAAU;IACjD,KAAK,4CAAsD;IAE3D,OAAO,CAAC,mBAAmB,CAA6B;IAExD,OAAO,CAAC,oBAAoB,CAAuC;IAEnE,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;IAkF/C,eAAe,CAAC,GAAG,EAAE,MAAM;IAG3B,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAIhC,eAAe;IAIf,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAU3C,kBAAkB,CAAC,GAAG,EAAE,MAAM;IAG9B,OAAO;CAIR;AAiID,qBAAa,qBAAsB,YAAW,2BAA2B;IAChE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAS;gBACZ,UAAU,EAAE,gCAAgC;CAOzD"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ /* ---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ // Some code copied and modified from https://github.com/microsoft/vscode/blob/main/extensions/merge-conflict/src/mergeConflictParser.ts
7
+ var MergeConflictParser_1;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DocumentMergeConflict = exports.MergeConflictParser = exports.TextLine = void 0;
10
+ const tslib_1 = require("tslib");
11
+ const di_1 = require("@opensumi/di");
12
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
13
+ const monaco = tslib_1.__importStar(require("@opensumi/ide-monaco"));
14
+ const startHeaderMarker = '<<<<<<<';
15
+ const commonAncestorsMarker = '|||||||';
16
+ const splitterMarker = '=======';
17
+ const endFooterMarker = '>>>>>>>';
18
+ class TextLine {
19
+ constructor(document, line) {
20
+ if (typeof line !== 'number' || line <= 0 || line > document.getLineCount()) {
21
+ throw new Error('Illegal value for `line`');
22
+ }
23
+ this.text = document.getLineContent(line);
24
+ this.firstNonWhitespaceCharacterIndex = /^(\s*)/.exec(this.text)[1].length;
25
+ this.range = new monaco.Range(line, 1, line, this.text.length + 1);
26
+ this.rangeIncludingLineBreak =
27
+ line <= document.getLineCount() ? new monaco.Range(line, 1, line + 1, 1) : this.range;
28
+ this.lineNumber = line;
29
+ this.isEmptyOrWhitespace = this.firstNonWhitespaceCharacterIndex === this.text.length;
30
+ }
31
+ }
32
+ exports.TextLine = TextLine;
33
+ let MergeConflictParser = MergeConflictParser_1 = class MergeConflictParser extends ide_core_common_1.Disposable {
34
+ constructor() {
35
+ super(...arguments);
36
+ this.cache = new ide_core_common_1.LRUCache(100);
37
+ this._conflictTextCaches = new Map();
38
+ this._conflictRangeCaches = new Map();
39
+ }
40
+ static createCacheKey(document) {
41
+ return `${document.uri.toString()}-${document.getAlternativeVersionId()}`;
42
+ }
43
+ scanDocument(document) {
44
+ const cacheKey = MergeConflictParser_1.createCacheKey(document);
45
+ if (this.cache.has(cacheKey)) {
46
+ return this.cache.get(cacheKey);
47
+ }
48
+ // Scan each line in the document, we already know there is at least a <<<<<<< and
49
+ // >>>>>> marker within the document, we need to group these into conflict ranges.
50
+ // We initially build a scan match, that references the lines of the header, splitter
51
+ // and footer. This is then converted into a full descriptor containing all required
52
+ // ranges.
53
+ let currentConflict = null;
54
+ const conflictDescriptors = [];
55
+ const cacheConflictDescriptors = this._conflictTextCaches.get(document.uri.toString());
56
+ for (let i = 0; i < document.getLineCount(); i++) {
57
+ const line = new TextLine(document, i + 1);
58
+ // Ignore empty lines
59
+ if (!line || line.isEmptyOrWhitespace) {
60
+ continue;
61
+ }
62
+ // Is this a start line? <<<<<<<
63
+ if (line.text.startsWith(startHeaderMarker)) {
64
+ if (currentConflict !== null) {
65
+ // Error, we should not see a startMarker before we've seen an endMarker
66
+ currentConflict = null;
67
+ // Give up parsing, anything matched up this to this point will be decorated
68
+ // anything after will not
69
+ break;
70
+ }
71
+ // Create a new conflict starting at this line
72
+ currentConflict = { startHeader: line, commonAncestors: [] };
73
+ }
74
+ // Are we within a conflict block and is this a common ancestors marker? |||||||
75
+ else if (currentConflict && !currentConflict.splitter && line.text.startsWith(commonAncestorsMarker)) {
76
+ currentConflict.commonAncestors.push(line);
77
+ }
78
+ // Are we within a conflict block and is this a splitter? =======
79
+ else if (currentConflict && !currentConflict.splitter && line.text === splitterMarker) {
80
+ currentConflict.splitter = line;
81
+ }
82
+ // Are we within a conflict block and is this a footer? >>>>>>>
83
+ else if (currentConflict && line.text.startsWith(endFooterMarker)) {
84
+ currentConflict.endFooter = line;
85
+ // Create a full descriptor from the lines that we matched. This can return
86
+ // null if the descriptor could not be completed.
87
+ const completeDescriptor = scanItemTolMergeConflictDescriptor(document, currentConflict);
88
+ if (completeDescriptor !== null) {
89
+ conflictDescriptors.push(completeDescriptor);
90
+ }
91
+ // Reset the current conflict to be empty, so we can match the next
92
+ // starting header marker.
93
+ currentConflict = null;
94
+ }
95
+ }
96
+ if (!cacheConflictDescriptors && conflictDescriptors.length) {
97
+ this._conflictTextCaches.set(document.uri.toString(), document.getValue());
98
+ const conflictRanges = [];
99
+ conflictDescriptors.filter(Boolean).forEach((descriptor) => {
100
+ const range = descriptor.range;
101
+ conflictRanges.push({
102
+ id: (0, ide_core_common_1.uuid)(),
103
+ range,
104
+ text: document.getValueInRange(range),
105
+ isResolved: false,
106
+ });
107
+ });
108
+ this._conflictRangeCaches.set(document.uri.toString(), conflictRanges);
109
+ }
110
+ const result = conflictDescriptors === null || conflictDescriptors === void 0 ? void 0 : conflictDescriptors.filter(Boolean).map((descriptor) => new DocumentMergeConflict(descriptor));
111
+ this.cache.set(cacheKey, result);
112
+ return result;
113
+ }
114
+ getConflictText(uri) {
115
+ return this._conflictTextCaches.get(uri);
116
+ }
117
+ getAllConflictsByUri(uri) {
118
+ return this._conflictRangeCaches.get(uri);
119
+ }
120
+ getAllConflicts() {
121
+ return this._conflictRangeCaches;
122
+ }
123
+ setConflictResolved(uri, id) {
124
+ const conflictRanges = this._conflictRangeCaches.get(uri);
125
+ if (conflictRanges) {
126
+ const conflictRange = conflictRanges.find((item) => item.id === id);
127
+ if (conflictRange) {
128
+ conflictRange.isResolved = true;
129
+ }
130
+ }
131
+ }
132
+ deleteConflictText(uri) {
133
+ this._conflictTextCaches.delete(uri);
134
+ }
135
+ dispose() {
136
+ this._conflictTextCaches.clear();
137
+ this._conflictRangeCaches.clear();
138
+ }
139
+ };
140
+ MergeConflictParser = MergeConflictParser_1 = tslib_1.__decorate([
141
+ (0, di_1.Injectable)()
142
+ ], MergeConflictParser);
143
+ exports.MergeConflictParser = MergeConflictParser;
144
+ function scanItemTolMergeConflictDescriptor(document, scanned) {
145
+ // Validate we have all the required lines within the scan item.
146
+ if (!scanned.startHeader || !scanned.splitter || !scanned.endFooter) {
147
+ return null;
148
+ }
149
+ const tokenAfterCurrentBlock = scanned.commonAncestors[0] || scanned.splitter;
150
+ // Assume that descriptor.current.header, descriptor.incoming.header and descriptor.splitter
151
+ // have valid ranges, fill in content and total ranges from these parts.
152
+ // NOTE: We need to shift the decorator range back one character so the splitter does not end up with
153
+ // two decoration colors (current and splitter), if we take the new line from the content into account
154
+ // the decorator will wrap to the next line.
155
+ return {
156
+ current: {
157
+ header: scanned.startHeader.range,
158
+ decoratorContent: new monaco.Range(scanned.startHeader.rangeIncludingLineBreak.endLineNumber, scanned.startHeader.rangeIncludingLineBreak.endColumn, shiftBackOneCharacter(document, tokenAfterCurrentBlock.range.getStartPosition(), scanned.startHeader.rangeIncludingLineBreak.getEndPosition()).lineNumber, shiftBackOneCharacter(document, tokenAfterCurrentBlock.range.getStartPosition(), scanned.startHeader.rangeIncludingLineBreak.getEndPosition()).column),
159
+ // Current content is range between header (shifted for linebreak) and splitter or common ancestors mark start
160
+ content: new monaco.Range(scanned.startHeader.rangeIncludingLineBreak.endLineNumber, scanned.startHeader.rangeIncludingLineBreak.endColumn, tokenAfterCurrentBlock.range.startLineNumber, tokenAfterCurrentBlock.range.startColumn),
161
+ name: scanned.startHeader.text.substring(startHeaderMarker.length + 1),
162
+ },
163
+ commonAncestors: scanned.commonAncestors.map((currentTokenLine, index, commonAncestors) => {
164
+ const nextTokenLine = commonAncestors[index + 1] || scanned.splitter;
165
+ return {
166
+ header: currentTokenLine.range,
167
+ decoratorContent: new monaco.Range(currentTokenLine.rangeIncludingLineBreak.endLineNumber, currentTokenLine.rangeIncludingLineBreak.endColumn, shiftBackOneCharacter(document, nextTokenLine.range.getStartPosition(), currentTokenLine.rangeIncludingLineBreak.getEndPosition()).lineNumber, shiftBackOneCharacter(document, nextTokenLine.range.getStartPosition(), currentTokenLine.rangeIncludingLineBreak.getEndPosition()).lineNumber),
168
+ // Each common ancestors block is range between one common ancestors token
169
+ // (shifted for linebreak) and start of next common ancestors token or splitter
170
+ content: new monaco.Range(currentTokenLine.rangeIncludingLineBreak.endLineNumber, currentTokenLine.rangeIncludingLineBreak.endColumn, nextTokenLine.range.startLineNumber, nextTokenLine.range.startColumn),
171
+ name: currentTokenLine.text.substring(commonAncestorsMarker.length + 1),
172
+ };
173
+ }),
174
+ splitter: scanned.splitter.range,
175
+ incoming: {
176
+ header: scanned.endFooter.range,
177
+ decoratorContent: new monaco.Range(scanned.splitter.rangeIncludingLineBreak.endLineNumber, scanned.splitter.rangeIncludingLineBreak.endColumn, shiftBackOneCharacter(document, scanned.endFooter.range.getStartPosition(), scanned.splitter.rangeIncludingLineBreak.getEndPosition()).lineNumber, shiftBackOneCharacter(document, scanned.endFooter.range.getStartPosition(), scanned.splitter.rangeIncludingLineBreak.getEndPosition()).column),
178
+ // Incoming content is range between splitter (shifted for linebreak) and footer start
179
+ content: new monaco.Range(scanned.splitter.rangeIncludingLineBreak.endLineNumber, scanned.splitter.rangeIncludingLineBreak.endColumn, scanned.endFooter.range.startLineNumber, scanned.endFooter.range.startColumn),
180
+ name: scanned.endFooter.text.substring(endFooterMarker.length + 1),
181
+ },
182
+ // Entire range is between current header start and incoming header end (including line break)
183
+ range: new monaco.Range(scanned.startHeader.range.startLineNumber, scanned.startHeader.range.startColumn, scanned.endFooter.range.endLineNumber, scanned.endFooter.range.endColumn),
184
+ };
185
+ }
186
+ function shiftBackOneCharacter(document, range, unlessEqual) {
187
+ if (range.equals(unlessEqual)) {
188
+ return range;
189
+ }
190
+ let line = range.lineNumber;
191
+ let character = range.column - 1;
192
+ if (character < 0) {
193
+ line--;
194
+ character = new TextLine(document, line).range.endColumn;
195
+ }
196
+ return new monaco.Position(line, character);
197
+ }
198
+ class DocumentMergeConflict {
199
+ constructor(descriptor) {
200
+ this.applied = false;
201
+ this.range = descriptor.range;
202
+ this.current = descriptor.current;
203
+ this.incoming = descriptor.incoming;
204
+ this.commonAncestors = descriptor.commonAncestors;
205
+ this.splitter = descriptor.splitter;
206
+ }
207
+ }
208
+ exports.DocumentMergeConflict = DocumentMergeConflict;
209
+ //# sourceMappingURL=conflict-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-parser.js","sourceRoot":"","sources":["../../../src/browser/merge-conflict/conflict-parser.ts"],"names":[],"mappings":"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"}