@codemirror/view 6.19.0 → 6.20.1
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/CHANGELOG.md +26 -0
- package/dist/index.cjs +34 -18
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +34 -19
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
## 6.20.1 (2023-09-22)
|
|
2
|
+
|
|
3
|
+
### Bug fixes
|
|
4
|
+
|
|
5
|
+
Fix a crash in plugin event handlers after dynamic reconfiguration.
|
|
6
|
+
|
|
7
|
+
Fix an issue where, on Chrome, tooltips would no longer use fixed positioning.
|
|
8
|
+
|
|
9
|
+
## 6.20.0 (2023-09-20)
|
|
10
|
+
|
|
11
|
+
### Bug fixes
|
|
12
|
+
|
|
13
|
+
Fix an issue that caused `repositionTooltips` to crash when it was called on an editor without tooltips.
|
|
14
|
+
|
|
15
|
+
Fix an issue that caused the tooltip system to leave empty nodes in the DOM when an editor using the `parent` option to `tooltips` is destroyed.
|
|
16
|
+
|
|
17
|
+
Fix a bug that regression mouse interaction with the area of a fixed-size editor that isn't covered by the content.
|
|
18
|
+
|
|
19
|
+
Fix some issues with the way `moveVertically` behaved for positions on line wrap points.
|
|
20
|
+
|
|
21
|
+
Fix a bug that could cause the document DOM to be incorrectly updated on some types of viewport changes.
|
|
22
|
+
|
|
23
|
+
### New features
|
|
24
|
+
|
|
25
|
+
The new `getDrawSelectionConfig` function returns the `drawSelection` configuration for a given state.
|
|
26
|
+
|
|
1
27
|
## 6.19.0 (2023-09-14)
|
|
2
28
|
|
|
3
29
|
### Bug fixes
|
package/dist/index.cjs
CHANGED
|
@@ -581,7 +581,7 @@ function replaceRange(parent, fromI, fromOff, toI, toOff, insert, breakAtStart,
|
|
|
581
581
|
if (toI < children.length) {
|
|
582
582
|
let after = children[toI];
|
|
583
583
|
// Make sure the end of the child after the update is preserved in `after`
|
|
584
|
-
if (after && toOff < after.length) {
|
|
584
|
+
if (after && (toOff < after.length || after.breakAfter && (last === null || last === void 0 ? void 0 : last.breakAfter))) {
|
|
585
585
|
// If we're splitting a child, separate part of it to avoid that
|
|
586
586
|
// being mangled when updating the child before the update.
|
|
587
587
|
if (fromI == toI) {
|
|
@@ -3544,7 +3544,7 @@ function moveVertically(view, start, forward, distance) {
|
|
|
3544
3544
|
return state.EditorSelection.cursor(startPos, start.assoc);
|
|
3545
3545
|
let goal = start.goalColumn, startY;
|
|
3546
3546
|
let rect = view.contentDOM.getBoundingClientRect();
|
|
3547
|
-
let startCoords = view.coordsAtPos(startPos), docTop = view.documentTop;
|
|
3547
|
+
let startCoords = view.coordsAtPos(startPos, start.assoc || -1), docTop = view.documentTop;
|
|
3548
3548
|
if (startCoords) {
|
|
3549
3549
|
if (goal == null)
|
|
3550
3550
|
goal = startCoords.left - rect.left;
|
|
@@ -3561,8 +3561,11 @@ function moveVertically(view, start, forward, distance) {
|
|
|
3561
3561
|
for (let extra = 0;; extra += 10) {
|
|
3562
3562
|
let curY = startY + (dist + extra) * dir;
|
|
3563
3563
|
let pos = posAtCoords(view, { x: resolvedGoal, y: curY }, false, dir);
|
|
3564
|
-
if (curY < rect.top || curY > rect.bottom || (dir < 0 ? pos < startPos : pos > startPos))
|
|
3565
|
-
|
|
3564
|
+
if (curY < rect.top || curY > rect.bottom || (dir < 0 ? pos < startPos : pos > startPos)) {
|
|
3565
|
+
let charRect = view.docView.coordsForChar(pos);
|
|
3566
|
+
let assoc = !charRect || curY < charRect.top ? -1 : 1;
|
|
3567
|
+
return state.EditorSelection.cursor(pos, assoc, undefined, goal);
|
|
3568
|
+
}
|
|
3566
3569
|
}
|
|
3567
3570
|
}
|
|
3568
3571
|
function skipAtomicRanges(atoms, pos, bias) {
|
|
@@ -3633,7 +3636,7 @@ class InputState {
|
|
|
3633
3636
|
this.handleEvent = this.handleEvent.bind(this);
|
|
3634
3637
|
view.scrollDOM.addEventListener("mousedown", (event) => {
|
|
3635
3638
|
if (event.target == view.scrollDOM && event.clientY > view.contentDOM.getBoundingClientRect().bottom) {
|
|
3636
|
-
this.
|
|
3639
|
+
this.runHandlers("mousedown", event);
|
|
3637
3640
|
if (!event.defaultPrevented && event.button == 2) {
|
|
3638
3641
|
// Make sure the content covers the entire scroller height, in order
|
|
3639
3642
|
// to catch a native context menu click below it
|
|
@@ -3645,7 +3648,7 @@ class InputState {
|
|
|
3645
3648
|
});
|
|
3646
3649
|
view.scrollDOM.addEventListener("drop", (event) => {
|
|
3647
3650
|
if (event.target == view.scrollDOM && event.clientY > view.contentDOM.getBoundingClientRect().bottom)
|
|
3648
|
-
this.
|
|
3651
|
+
this.runHandlers("drop", event);
|
|
3649
3652
|
});
|
|
3650
3653
|
this.notifiedFocused = view.hasFocus;
|
|
3651
3654
|
// On Safari adding an input event handler somehow prevents an
|
|
@@ -5332,9 +5335,9 @@ class ViewState {
|
|
|
5332
5335
|
if (domRect.width && domRect.height) {
|
|
5333
5336
|
let scaleX = domRect.width / dom.offsetWidth;
|
|
5334
5337
|
let scaleY = domRect.height / dom.offsetHeight;
|
|
5335
|
-
if (scaleX > 0.995 && scaleX < 1.005)
|
|
5338
|
+
if (scaleX > 0.995 && scaleX < 1.005 || !isFinite(scaleX))
|
|
5336
5339
|
scaleX = 1;
|
|
5337
|
-
if (scaleY > 0.995 && scaleY < 1.005)
|
|
5340
|
+
if (scaleY > 0.995 && scaleY < 1.005 || !isFinite(scaleY))
|
|
5338
5341
|
scaleY = 1;
|
|
5339
5342
|
if (this.scaleX != scaleX || this.scaleY != scaleY) {
|
|
5340
5343
|
this.scaleX = scaleX;
|
|
@@ -7081,7 +7084,6 @@ class EditorView {
|
|
|
7081
7084
|
plugin.destroy(this);
|
|
7082
7085
|
this.plugins = newPlugins;
|
|
7083
7086
|
this.pluginMap.clear();
|
|
7084
|
-
this.inputState.ensureHandlers(this.plugins);
|
|
7085
7087
|
}
|
|
7086
7088
|
else {
|
|
7087
7089
|
for (let p of this.plugins)
|
|
@@ -7089,6 +7091,8 @@ class EditorView {
|
|
|
7089
7091
|
}
|
|
7090
7092
|
for (let i = 0; i < this.plugins.length; i++)
|
|
7091
7093
|
this.plugins[i].update(this);
|
|
7094
|
+
if (prevSpecs != specs)
|
|
7095
|
+
this.inputState.ensureHandlers(this.plugins);
|
|
7092
7096
|
}
|
|
7093
7097
|
/**
|
|
7094
7098
|
@internal
|
|
@@ -8346,6 +8350,14 @@ function drawSelection(config = {}) {
|
|
|
8346
8350
|
nativeSelectionHidden.of(true)
|
|
8347
8351
|
];
|
|
8348
8352
|
}
|
|
8353
|
+
/**
|
|
8354
|
+
Retrieve the [`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) configuration
|
|
8355
|
+
for this state. (Note that this will return a set of defaults even
|
|
8356
|
+
if `drawSelection` isn't enabled.)
|
|
8357
|
+
*/
|
|
8358
|
+
function getDrawSelectionConfig(state) {
|
|
8359
|
+
return state.facet(selectionConfig);
|
|
8360
|
+
}
|
|
8349
8361
|
function configChanged(update) {
|
|
8350
8362
|
return update.startState.facet(selectionConfig) != update.state.facet(selectionConfig);
|
|
8351
8363
|
}
|
|
@@ -9170,19 +9182,21 @@ const tooltipPlugin = ViewPlugin.fromClass(class {
|
|
|
9170
9182
|
tooltipView.dom.remove();
|
|
9171
9183
|
(_a = tooltipView.destroy) === null || _a === void 0 ? void 0 : _a.call(tooltipView);
|
|
9172
9184
|
}
|
|
9185
|
+
if (this.parent)
|
|
9186
|
+
this.container.remove();
|
|
9173
9187
|
(_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
9174
9188
|
clearTimeout(this.measureTimeout);
|
|
9175
9189
|
}
|
|
9176
9190
|
readMeasure() {
|
|
9177
9191
|
let editor = this.view.dom.getBoundingClientRect();
|
|
9178
9192
|
let scaleX = 1, scaleY = 1, makeAbsolute = false;
|
|
9179
|
-
if (this.position == "fixed") {
|
|
9180
|
-
|
|
9181
|
-
//
|
|
9182
|
-
//
|
|
9183
|
-
// positioning
|
|
9184
|
-
|
|
9185
|
-
makeAbsolute =
|
|
9193
|
+
if (this.position == "fixed" && this.manager.tooltipViews.length) {
|
|
9194
|
+
// When the dialog's offset parent isn't the body (Firefox) or
|
|
9195
|
+
// null (Webkit), we are probably in a transformed container,
|
|
9196
|
+
// and should use absolute positioning instead, since fixed
|
|
9197
|
+
// positioning inside a transform works in a very broken way.
|
|
9198
|
+
let { offsetParent } = this.manager.tooltipViews[0].dom;
|
|
9199
|
+
makeAbsolute = !!(offsetParent && offsetParent != this.container.ownerDocument.body);
|
|
9186
9200
|
}
|
|
9187
9201
|
if (makeAbsolute || this.position == "absolute") {
|
|
9188
9202
|
if (this.parent) {
|
|
@@ -9611,8 +9625,9 @@ re-positioning or CSS change affecting the editor) that could
|
|
|
9611
9625
|
invalidate the existing tooltip positions.
|
|
9612
9626
|
*/
|
|
9613
9627
|
function repositionTooltips(view) {
|
|
9614
|
-
|
|
9615
|
-
(
|
|
9628
|
+
let plugin = view.plugin(tooltipPlugin);
|
|
9629
|
+
if (plugin)
|
|
9630
|
+
plugin.maybeMeasure();
|
|
9616
9631
|
}
|
|
9617
9632
|
|
|
9618
9633
|
const panelConfig = state.Facet.define({
|
|
@@ -10330,6 +10345,7 @@ exports.closeHoverTooltips = closeHoverTooltips;
|
|
|
10330
10345
|
exports.crosshairCursor = crosshairCursor;
|
|
10331
10346
|
exports.drawSelection = drawSelection;
|
|
10332
10347
|
exports.dropCursor = dropCursor;
|
|
10348
|
+
exports.getDrawSelectionConfig = getDrawSelectionConfig;
|
|
10333
10349
|
exports.getPanel = getPanel;
|
|
10334
10350
|
exports.getTooltip = getTooltip;
|
|
10335
10351
|
exports.gutter = gutter;
|
package/dist/index.d.cts
CHANGED
|
@@ -1414,6 +1414,12 @@ layout information that's only available after laying out the
|
|
|
1414
1414
|
content).
|
|
1415
1415
|
*/
|
|
1416
1416
|
declare function drawSelection(config?: SelectionConfig): Extension;
|
|
1417
|
+
/**
|
|
1418
|
+
Retrieve the [`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) configuration
|
|
1419
|
+
for this state. (Note that this will return a set of defaults even
|
|
1420
|
+
if `drawSelection` isn't enabled.)
|
|
1421
|
+
*/
|
|
1422
|
+
declare function getDrawSelectionConfig(state: EditorState): SelectionConfig;
|
|
1417
1423
|
|
|
1418
1424
|
/**
|
|
1419
1425
|
Draws a cursor at the current drop position when something is
|
|
@@ -2050,4 +2056,4 @@ trailing whitespace.
|
|
|
2050
2056
|
*/
|
|
2051
2057
|
declare function highlightTrailingWhitespace(): Extension;
|
|
2052
2058
|
|
|
2053
|
-
export { BidiSpan, BlockInfo, BlockType, Command, DOMEventHandlers, DOMEventMap, Decoration, DecorationSet, Direction, EditorView, EditorViewConfig, GutterMarker, KeyBinding, LayerMarker, MatchDecorator, MouseSelectionStyle, Panel, PanelConstructor, PluginSpec, PluginValue, Rect, RectangleMarker, Tooltip, TooltipView, ViewPlugin, ViewUpdate, WidgetType, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };
|
|
2059
|
+
export { BidiSpan, BlockInfo, BlockType, Command, DOMEventHandlers, DOMEventMap, Decoration, DecorationSet, Direction, EditorView, EditorViewConfig, GutterMarker, KeyBinding, LayerMarker, MatchDecorator, MouseSelectionStyle, Panel, PanelConstructor, PluginSpec, PluginValue, Rect, RectangleMarker, Tooltip, TooltipView, ViewPlugin, ViewUpdate, WidgetType, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getDrawSelectionConfig, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };
|
package/dist/index.d.ts
CHANGED
|
@@ -1414,6 +1414,12 @@ layout information that's only available after laying out the
|
|
|
1414
1414
|
content).
|
|
1415
1415
|
*/
|
|
1416
1416
|
declare function drawSelection(config?: SelectionConfig): Extension;
|
|
1417
|
+
/**
|
|
1418
|
+
Retrieve the [`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) configuration
|
|
1419
|
+
for this state. (Note that this will return a set of defaults even
|
|
1420
|
+
if `drawSelection` isn't enabled.)
|
|
1421
|
+
*/
|
|
1422
|
+
declare function getDrawSelectionConfig(state: EditorState): SelectionConfig;
|
|
1417
1423
|
|
|
1418
1424
|
/**
|
|
1419
1425
|
Draws a cursor at the current drop position when something is
|
|
@@ -2050,4 +2056,4 @@ trailing whitespace.
|
|
|
2050
2056
|
*/
|
|
2051
2057
|
declare function highlightTrailingWhitespace(): Extension;
|
|
2052
2058
|
|
|
2053
|
-
export { BidiSpan, BlockInfo, BlockType, Command, DOMEventHandlers, DOMEventMap, Decoration, DecorationSet, Direction, EditorView, EditorViewConfig, GutterMarker, KeyBinding, LayerMarker, MatchDecorator, MouseSelectionStyle, Panel, PanelConstructor, PluginSpec, PluginValue, Rect, RectangleMarker, Tooltip, TooltipView, ViewPlugin, ViewUpdate, WidgetType, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };
|
|
2059
|
+
export { BidiSpan, BlockInfo, BlockType, Command, DOMEventHandlers, DOMEventMap, Decoration, DecorationSet, Direction, EditorView, EditorViewConfig, GutterMarker, KeyBinding, LayerMarker, MatchDecorator, MouseSelectionStyle, Panel, PanelConstructor, PluginSpec, PluginValue, Rect, RectangleMarker, Tooltip, TooltipView, ViewPlugin, ViewUpdate, WidgetType, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getDrawSelectionConfig, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };
|
package/dist/index.js
CHANGED
|
@@ -579,7 +579,7 @@ function replaceRange(parent, fromI, fromOff, toI, toOff, insert, breakAtStart,
|
|
|
579
579
|
if (toI < children.length) {
|
|
580
580
|
let after = children[toI];
|
|
581
581
|
// Make sure the end of the child after the update is preserved in `after`
|
|
582
|
-
if (after && toOff < after.length) {
|
|
582
|
+
if (after && (toOff < after.length || after.breakAfter && (last === null || last === void 0 ? void 0 : last.breakAfter))) {
|
|
583
583
|
// If we're splitting a child, separate part of it to avoid that
|
|
584
584
|
// being mangled when updating the child before the update.
|
|
585
585
|
if (fromI == toI) {
|
|
@@ -3540,7 +3540,7 @@ function moveVertically(view, start, forward, distance) {
|
|
|
3540
3540
|
return EditorSelection.cursor(startPos, start.assoc);
|
|
3541
3541
|
let goal = start.goalColumn, startY;
|
|
3542
3542
|
let rect = view.contentDOM.getBoundingClientRect();
|
|
3543
|
-
let startCoords = view.coordsAtPos(startPos), docTop = view.documentTop;
|
|
3543
|
+
let startCoords = view.coordsAtPos(startPos, start.assoc || -1), docTop = view.documentTop;
|
|
3544
3544
|
if (startCoords) {
|
|
3545
3545
|
if (goal == null)
|
|
3546
3546
|
goal = startCoords.left - rect.left;
|
|
@@ -3557,8 +3557,11 @@ function moveVertically(view, start, forward, distance) {
|
|
|
3557
3557
|
for (let extra = 0;; extra += 10) {
|
|
3558
3558
|
let curY = startY + (dist + extra) * dir;
|
|
3559
3559
|
let pos = posAtCoords(view, { x: resolvedGoal, y: curY }, false, dir);
|
|
3560
|
-
if (curY < rect.top || curY > rect.bottom || (dir < 0 ? pos < startPos : pos > startPos))
|
|
3561
|
-
|
|
3560
|
+
if (curY < rect.top || curY > rect.bottom || (dir < 0 ? pos < startPos : pos > startPos)) {
|
|
3561
|
+
let charRect = view.docView.coordsForChar(pos);
|
|
3562
|
+
let assoc = !charRect || curY < charRect.top ? -1 : 1;
|
|
3563
|
+
return EditorSelection.cursor(pos, assoc, undefined, goal);
|
|
3564
|
+
}
|
|
3562
3565
|
}
|
|
3563
3566
|
}
|
|
3564
3567
|
function skipAtomicRanges(atoms, pos, bias) {
|
|
@@ -3629,7 +3632,7 @@ class InputState {
|
|
|
3629
3632
|
this.handleEvent = this.handleEvent.bind(this);
|
|
3630
3633
|
view.scrollDOM.addEventListener("mousedown", (event) => {
|
|
3631
3634
|
if (event.target == view.scrollDOM && event.clientY > view.contentDOM.getBoundingClientRect().bottom) {
|
|
3632
|
-
this.
|
|
3635
|
+
this.runHandlers("mousedown", event);
|
|
3633
3636
|
if (!event.defaultPrevented && event.button == 2) {
|
|
3634
3637
|
// Make sure the content covers the entire scroller height, in order
|
|
3635
3638
|
// to catch a native context menu click below it
|
|
@@ -3641,7 +3644,7 @@ class InputState {
|
|
|
3641
3644
|
});
|
|
3642
3645
|
view.scrollDOM.addEventListener("drop", (event) => {
|
|
3643
3646
|
if (event.target == view.scrollDOM && event.clientY > view.contentDOM.getBoundingClientRect().bottom)
|
|
3644
|
-
this.
|
|
3647
|
+
this.runHandlers("drop", event);
|
|
3645
3648
|
});
|
|
3646
3649
|
this.notifiedFocused = view.hasFocus;
|
|
3647
3650
|
// On Safari adding an input event handler somehow prevents an
|
|
@@ -5327,9 +5330,9 @@ class ViewState {
|
|
|
5327
5330
|
if (domRect.width && domRect.height) {
|
|
5328
5331
|
let scaleX = domRect.width / dom.offsetWidth;
|
|
5329
5332
|
let scaleY = domRect.height / dom.offsetHeight;
|
|
5330
|
-
if (scaleX > 0.995 && scaleX < 1.005)
|
|
5333
|
+
if (scaleX > 0.995 && scaleX < 1.005 || !isFinite(scaleX))
|
|
5331
5334
|
scaleX = 1;
|
|
5332
|
-
if (scaleY > 0.995 && scaleY < 1.005)
|
|
5335
|
+
if (scaleY > 0.995 && scaleY < 1.005 || !isFinite(scaleY))
|
|
5333
5336
|
scaleY = 1;
|
|
5334
5337
|
if (this.scaleX != scaleX || this.scaleY != scaleY) {
|
|
5335
5338
|
this.scaleX = scaleX;
|
|
@@ -7076,7 +7079,6 @@ class EditorView {
|
|
|
7076
7079
|
plugin.destroy(this);
|
|
7077
7080
|
this.plugins = newPlugins;
|
|
7078
7081
|
this.pluginMap.clear();
|
|
7079
|
-
this.inputState.ensureHandlers(this.plugins);
|
|
7080
7082
|
}
|
|
7081
7083
|
else {
|
|
7082
7084
|
for (let p of this.plugins)
|
|
@@ -7084,6 +7086,8 @@ class EditorView {
|
|
|
7084
7086
|
}
|
|
7085
7087
|
for (let i = 0; i < this.plugins.length; i++)
|
|
7086
7088
|
this.plugins[i].update(this);
|
|
7089
|
+
if (prevSpecs != specs)
|
|
7090
|
+
this.inputState.ensureHandlers(this.plugins);
|
|
7087
7091
|
}
|
|
7088
7092
|
/**
|
|
7089
7093
|
@internal
|
|
@@ -8341,6 +8345,14 @@ function drawSelection(config = {}) {
|
|
|
8341
8345
|
nativeSelectionHidden.of(true)
|
|
8342
8346
|
];
|
|
8343
8347
|
}
|
|
8348
|
+
/**
|
|
8349
|
+
Retrieve the [`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) configuration
|
|
8350
|
+
for this state. (Note that this will return a set of defaults even
|
|
8351
|
+
if `drawSelection` isn't enabled.)
|
|
8352
|
+
*/
|
|
8353
|
+
function getDrawSelectionConfig(state) {
|
|
8354
|
+
return state.facet(selectionConfig);
|
|
8355
|
+
}
|
|
8344
8356
|
function configChanged(update) {
|
|
8345
8357
|
return update.startState.facet(selectionConfig) != update.state.facet(selectionConfig);
|
|
8346
8358
|
}
|
|
@@ -9165,19 +9177,21 @@ const tooltipPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
|
9165
9177
|
tooltipView.dom.remove();
|
|
9166
9178
|
(_a = tooltipView.destroy) === null || _a === void 0 ? void 0 : _a.call(tooltipView);
|
|
9167
9179
|
}
|
|
9180
|
+
if (this.parent)
|
|
9181
|
+
this.container.remove();
|
|
9168
9182
|
(_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
9169
9183
|
clearTimeout(this.measureTimeout);
|
|
9170
9184
|
}
|
|
9171
9185
|
readMeasure() {
|
|
9172
9186
|
let editor = this.view.dom.getBoundingClientRect();
|
|
9173
9187
|
let scaleX = 1, scaleY = 1, makeAbsolute = false;
|
|
9174
|
-
if (this.position == "fixed") {
|
|
9175
|
-
|
|
9176
|
-
//
|
|
9177
|
-
//
|
|
9178
|
-
// positioning
|
|
9179
|
-
|
|
9180
|
-
makeAbsolute =
|
|
9188
|
+
if (this.position == "fixed" && this.manager.tooltipViews.length) {
|
|
9189
|
+
// When the dialog's offset parent isn't the body (Firefox) or
|
|
9190
|
+
// null (Webkit), we are probably in a transformed container,
|
|
9191
|
+
// and should use absolute positioning instead, since fixed
|
|
9192
|
+
// positioning inside a transform works in a very broken way.
|
|
9193
|
+
let { offsetParent } = this.manager.tooltipViews[0].dom;
|
|
9194
|
+
makeAbsolute = !!(offsetParent && offsetParent != this.container.ownerDocument.body);
|
|
9181
9195
|
}
|
|
9182
9196
|
if (makeAbsolute || this.position == "absolute") {
|
|
9183
9197
|
if (this.parent) {
|
|
@@ -9606,8 +9620,9 @@ re-positioning or CSS change affecting the editor) that could
|
|
|
9606
9620
|
invalidate the existing tooltip positions.
|
|
9607
9621
|
*/
|
|
9608
9622
|
function repositionTooltips(view) {
|
|
9609
|
-
|
|
9610
|
-
(
|
|
9623
|
+
let plugin = view.plugin(tooltipPlugin);
|
|
9624
|
+
if (plugin)
|
|
9625
|
+
plugin.maybeMeasure();
|
|
9611
9626
|
}
|
|
9612
9627
|
|
|
9613
9628
|
const panelConfig = /*@__PURE__*/Facet.define({
|
|
@@ -10310,4 +10325,4 @@ function highlightTrailingWhitespace() {
|
|
|
10310
10325
|
*/
|
|
10311
10326
|
const __test = { HeightMap, HeightOracle, MeasuredHeights, QueryType, ChangedRange, computeOrder, moveVisually };
|
|
10312
10327
|
|
|
10313
|
-
export { BidiSpan, BlockInfo, BlockType, Decoration, Direction, EditorView, GutterMarker, MatchDecorator, RectangleMarker, ViewPlugin, ViewUpdate, WidgetType, __test, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };
|
|
10328
|
+
export { BidiSpan, BlockInfo, BlockType, Decoration, Direction, EditorView, GutterMarker, MatchDecorator, RectangleMarker, ViewPlugin, ViewUpdate, WidgetType, __test, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getDrawSelectionConfig, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };
|