notebook 7.4.4__py3-none-any.whl → 7.4.5__py3-none-any.whl
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.
Potentially problematic release.
This version of notebook might be problematic. Click here for more details.
- notebook/_version.py +1 -1
- notebook/static/{132.9f8c8540fc63a49a9d74.js → 132.bbe0fd1e86fe078554cf.js} +2 -2
- notebook/static/{132.9f8c8540fc63a49a9d74.js.map → 132.bbe0fd1e86fe078554cf.js.map} +1 -1
- notebook/static/{1584.fa41c8f3ce855db5cab4.js → 1584.5e136a9d8643093bc7e9.js} +2 -2
- notebook/static/{1584.fa41c8f3ce855db5cab4.js.map → 1584.5e136a9d8643093bc7e9.js.map} +1 -1
- notebook/static/{1650.afa95e6a11189688bc0d.js → 1650.43e49e4c78755f921679.js} +4 -4
- notebook/static/{1650.afa95e6a11189688bc0d.js.map → 1650.43e49e4c78755f921679.js.map} +1 -1
- notebook/static/{1684.12280f8470722e2e1bdd.js → 1684.72557761abcc7d3f021b.js} +5 -5
- notebook/static/{1684.12280f8470722e2e1bdd.js.map → 1684.72557761abcc7d3f021b.js.map} +1 -1
- notebook/static/{1715.a61bcde14ed0fff41d06.js → 1715.eb47d8a8fb23246d8368.js} +2 -2
- notebook/static/{1715.a61bcde14ed0fff41d06.js.map → 1715.eb47d8a8fb23246d8368.js.map} +1 -1
- notebook/static/{2913.ae7fccede5f85a45ab8f.js → 2913.274b19d8f201991f4a69.js} +3 -3
- notebook/static/{2913.ae7fccede5f85a45ab8f.js.map → 2913.274b19d8f201991f4a69.js.map} +1 -1
- notebook/static/{2955.d8fd055f03b878034fe4.js → 2955.199d6b7c6b5d8531cad7.js} +302 -47
- notebook/static/2955.199d6b7c6b5d8531cad7.js.map +1 -0
- notebook/static/{3146.8a7a657d9a66a9f5d3c4.js → 3146.f98fbe7d5b55224f0160.js} +3 -3
- notebook/static/{3146.8a7a657d9a66a9f5d3c4.js.map → 3146.f98fbe7d5b55224f0160.js.map} +1 -1
- notebook/static/{3197.679087d3d6e90032272a.js → 3197.132cf892d4ef38649b32.js} +3 -3
- notebook/static/{3197.679087d3d6e90032272a.js.map → 3197.132cf892d4ef38649b32.js.map} +1 -1
- notebook/static/{3619.22c7d8abf7febc282c79.js → 3619.2e4bf80097f9890aef49.js} +2 -2
- notebook/static/{3619.22c7d8abf7febc282c79.js.map → 3619.2e4bf80097f9890aef49.js.map} +1 -1
- notebook/static/{3768.2ac0d5c2a3fec16d1571.js → 3768.0b6995cb2c93a75f2359.js} +19 -19
- notebook/static/{7302.d78f81cccff1a175f9e0.js.map → 3768.0b6995cb2c93a75f2359.js.map} +1 -1
- notebook/static/{4276.aa39300c806a420e8c6e.js → 4276.2edc46f98f304de431b0.js} +3 -3
- notebook/static/{4276.aa39300c806a420e8c6e.js.map → 4276.2edc46f98f304de431b0.js.map} +1 -1
- notebook/static/{4382.b125e3c487c540303bd8.js → 4382.c317254086f1ae2d605a.js} +3 -3
- notebook/static/{4382.b125e3c487c540303bd8.js.map → 4382.c317254086f1ae2d605a.js.map} +1 -1
- notebook/static/{4430.1661db8ba0104d6baef2.js → 4430.879d60462da8c4629a70.js} +2 -2
- notebook/static/{4430.1661db8ba0104d6baef2.js.map → 4430.879d60462da8c4629a70.js.map} +1 -1
- notebook/static/{4588.7618f6b98796be928f8c.js → 4588.46b592131684aa708905.js} +3 -3
- notebook/static/{4588.7618f6b98796be928f8c.js.map → 4588.46b592131684aa708905.js.map} +1 -1
- notebook/static/{4645.998914768dd63f7e3b6a.js → 4645.9017711a4d52533bd2ae.js} +5 -5
- notebook/static/{4645.998914768dd63f7e3b6a.js.map → 4645.9017711a4d52533bd2ae.js.map} +1 -1
- notebook/static/{4837.a9ef53721ea86ce81edf.js → 4837.2a30feab2693717d3d43.js} +3 -3
- notebook/static/{4837.a9ef53721ea86ce81edf.js.map → 4837.2a30feab2693717d3d43.js.map} +1 -1
- notebook/static/{4926.07f857be253dfe2d9b64.js → 4926.7f42350f683b70d59456.js} +3 -3
- notebook/static/{4926.07f857be253dfe2d9b64.js.map → 4926.7f42350f683b70d59456.js.map} +1 -1
- notebook/static/{5135.b7b086e4e6f05e7e005d.js → 5135.1cde65c1d79a0adc262d.js} +11 -11
- notebook/static/{5135.b7b086e4e6f05e7e005d.js.map → 5135.1cde65c1d79a0adc262d.js.map} +1 -1
- notebook/static/{5573.bb30245305dc034dfc1d.js → 5573.38e0610ea3d6d9b005b5.js} +17 -17
- notebook/static/{5573.bb30245305dc034dfc1d.js.map → 5573.38e0610ea3d6d9b005b5.js.map} +1 -1
- notebook/static/{5601.66a1a7b62201a024a7c3.js → 5601.ffda77b468bc8b17a221.js} +5 -5
- notebook/static/{5601.66a1a7b62201a024a7c3.js.map → 5601.ffda77b468bc8b17a221.js.map} +1 -1
- notebook/static/{5850.65dd0d81b5948c463df4.js → 5850.30a4d9a000a79095dcff.js} +3 -3
- notebook/static/{5850.65dd0d81b5948c463df4.js.map → 5850.30a4d9a000a79095dcff.js.map} +1 -1
- notebook/static/{6271.7ad87d1f14b9d74742ec.js → 6271.809bc8c9941039275a30.js} +3 -3
- notebook/static/{6271.7ad87d1f14b9d74742ec.js.map → 6271.809bc8c9941039275a30.js.map} +1 -1
- notebook/static/{6345.d502d596db3228f46015.js → 6345.348b6265ddf3713ab5d6.js} +5 -5
- notebook/static/{6345.d502d596db3228f46015.js.map → 6345.348b6265ddf3713ab5d6.js.map} +1 -1
- notebook/static/{2283.b2d8643ec28ab13849b3.js → 6653.6525abafd19e7997f79c.js} +2 -2
- notebook/static/{2283.b2d8643ec28ab13849b3.js.map → 6653.6525abafd19e7997f79c.js.map} +1 -1
- notebook/static/{7302.d78f81cccff1a175f9e0.js → 7302.3f668970091842fbc9ca.js} +19 -19
- notebook/static/{3768.2ac0d5c2a3fec16d1571.js.map → 7302.3f668970091842fbc9ca.js.map} +1 -1
- notebook/static/{7450.c047a6b002d188bafd58.js → 7450.beacefc07c8e386709fa.js} +2 -2
- notebook/static/{7450.c047a6b002d188bafd58.js.map → 7450.beacefc07c8e386709fa.js.map} +1 -1
- notebook/static/{7866.b49b1018f43def5a8f30.js → 7866.b73df9c77816d05d6784.js} +3 -3
- notebook/static/{7866.b49b1018f43def5a8f30.js.map → 7866.b73df9c77816d05d6784.js.map} +1 -1
- notebook/static/{7906.487df198bc7b2617234f.js → 7906.c3e50e3c279ee95b5b0c.js} +3 -3
- notebook/static/{7906.487df198bc7b2617234f.js.map → 7906.c3e50e3c279ee95b5b0c.js.map} +1 -1
- notebook/static/{7995.45be6443b704da1daafc.js → 7995.8f35600b7ffffa34c89b.js} +3 -3
- notebook/static/{7995.45be6443b704da1daafc.js.map → 7995.8f35600b7ffffa34c89b.js.map} +1 -1
- notebook/static/{5261.f12a52481f4cee8ba676.js → 8313.45ac616d61cf717bff16.js} +152 -148
- notebook/static/8313.45ac616d61cf717bff16.js.map +1 -0
- notebook/static/{8579.d62567e04de2f4dfcdce.js → 8579.973518a0960b2b927064.js} +14 -14
- notebook/static/{8579.d62567e04de2f4dfcdce.js.map → 8579.973518a0960b2b927064.js.map} +1 -1
- notebook/static/{8781.33cace3f177efaaab2ae.js → 8781.3f87f07359077c3a8a85.js} +60 -60
- notebook/static/{8781.33cace3f177efaaab2ae.js.map → 8781.3f87f07359077c3a8a85.js.map} +1 -1
- notebook/static/{8875.af28a3c042114a6f93aa.js → 8875.0604966d624b3656aa1c.js} +4 -4
- notebook/static/{8875.af28a3c042114a6f93aa.js.map → 8875.0604966d624b3656aa1c.js.map} +1 -1
- notebook/static/{9068.53ce96460d0830da310f.js → 9068.d8c4c8fa34c89c710d15.js} +3 -3
- notebook/static/{9068.53ce96460d0830da310f.js.map → 9068.d8c4c8fa34c89c710d15.js.map} +1 -1
- notebook/static/{9380.392ac30e0b6842ae2b78.js → 9380.b2ee26fa1e359ebe5fb8.js} +5 -5
- notebook/static/{9380.392ac30e0b6842ae2b78.js.map → 9380.b2ee26fa1e359ebe5fb8.js.map} +1 -1
- notebook/static/{9799.3d54e01276f72cee9ada.js → 9799.f8f37b03cc4afc27f8f0.js} +2 -2
- notebook/static/{9799.3d54e01276f72cee9ada.js.map → 9799.f8f37b03cc4afc27f8f0.js.map} +1 -1
- notebook/static/main.e99dd4f880b24bc94403.js +1180 -0
- notebook/static/main.e99dd4f880b24bc94403.js.map +1 -0
- notebook/static/{notebook_core.5321b49dd3857d00ab82.js → notebook_core.e0fcfe0884f9e1166813.js} +974 -893
- notebook/static/{notebook_core.5321b49dd3857d00ab82.js.map → notebook_core.e0fcfe0884f9e1166813.js.map} +1 -1
- notebook/static/third-party-licenses.json +104 -104
- notebook/templates/consoles.html +1 -1
- notebook/templates/edit.html +1 -1
- notebook/templates/error.html +1 -1
- notebook/templates/notebooks.html +1 -1
- notebook/templates/terminals.html +1 -1
- notebook/templates/tree.html +1 -1
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/package.json.orig +14 -14
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/documentsearch-extension/package.json.orig +4 -4
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/package.json.orig +6 -6
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/package.json.orig +9 -9
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/package.json.orig +15 -15
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/package.json +11 -11
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/package.json.orig +10 -10
- notebook-7.4.5.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/261.ed6f8abd5781e8d11deb.js +1 -0
- notebook-7.4.4.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.0143b064f4b09edb4d20.js → notebook-7.4.5.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.5e057f374374b68b6acf.js +1 -1
- notebook-7.4.5.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.fb1e84fb9063ca0568af.js +1 -0
- notebook-7.4.4.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/93.eae3497dd223d842d198.js → notebook-7.4.5.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/93.c48a681bb3e8043bbbd7.js +1 -1
- notebook-7.4.5.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.7e3d7768845089ad5f5f.js +1 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/third-party-licenses.json +2 -2
- {notebook-7.4.4.dist-info → notebook-7.4.5.dist-info}/METADATA +2 -2
- {notebook-7.4.4.dist-info → notebook-7.4.5.dist-info}/RECORD +124 -124
- notebook/static/2955.d8fd055f03b878034fe4.js.map +0 -1
- notebook/static/5261.f12a52481f4cee8ba676.js.map +0 -1
- notebook/static/main.58cb79c84cf80ba7b6ed.js +0 -1180
- notebook/static/main.58cb79c84cf80ba7b6ed.js.map +0 -1
- notebook-7.4.4.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/557.2f882aef2c303890736d.js +0 -1
- notebook-7.4.4.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.7e52f03b261ea07bcb3d.js +0 -1
- notebook-7.4.4.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.da0f2149411be83933cb.js +0 -1
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/etc/jupyter/jupyter_server_config.d/notebook.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/applications/jupyter-notebook.desktop +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/icons/hicolor/scalable/apps/notebook.svg +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/menus.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/pages.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/shell.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/title.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/top.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/zen.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/open.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/checkpoints.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/edit-notebook-metadata.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/full-width-notebook.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/kernel-logo.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/scroll-output.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/file-actions.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/widget.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/interface-switcher.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/launch-tree.json +0 -0
- {notebook-7.4.4.data → notebook-7.4.5.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/style.js +0 -0
- {notebook-7.4.4.dist-info → notebook-7.4.5.dist-info}/WHEEL +0 -0
- {notebook-7.4.4.dist-info → notebook-7.4.5.dist-info}/entry_points.txt +0 -0
- {notebook-7.4.4.dist-info → notebook-7.4.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -26,6 +26,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
26
26
|
crosshairCursor: () => (/* binding */ crosshairCursor),
|
|
27
27
|
drawSelection: () => (/* binding */ drawSelection),
|
|
28
28
|
dropCursor: () => (/* binding */ dropCursor),
|
|
29
|
+
getDialog: () => (/* binding */ getDialog),
|
|
29
30
|
getDrawSelectionConfig: () => (/* binding */ getDrawSelectionConfig),
|
|
30
31
|
getPanel: () => (/* binding */ getPanel),
|
|
31
32
|
getTooltip: () => (/* binding */ getTooltip),
|
|
@@ -52,6 +53,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
52
53
|
repositionTooltips: () => (/* binding */ repositionTooltips),
|
|
53
54
|
runScopeHandlers: () => (/* binding */ runScopeHandlers),
|
|
54
55
|
scrollPastEnd: () => (/* binding */ scrollPastEnd),
|
|
56
|
+
showDialog: () => (/* binding */ showDialog),
|
|
55
57
|
showPanel: () => (/* binding */ showPanel),
|
|
56
58
|
showTooltip: () => (/* binding */ showTooltip),
|
|
57
59
|
tooltips: () => (/* binding */ tooltips)
|
|
@@ -182,11 +184,14 @@ function keyName(event) {
|
|
|
182
184
|
return name
|
|
183
185
|
}
|
|
184
186
|
|
|
187
|
+
// EXTERNAL MODULE: ../node_modules/crelt/index.js
|
|
188
|
+
var crelt = __webpack_require__(76767);
|
|
185
189
|
;// CONCATENATED MODULE: ../node_modules/@codemirror/view/dist/index.js
|
|
186
190
|
|
|
187
191
|
|
|
188
192
|
|
|
189
193
|
|
|
194
|
+
|
|
190
195
|
function getSelection(root) {
|
|
191
196
|
let target;
|
|
192
197
|
// Browsers differ on whether shadow roots have a getSelection
|
|
@@ -2603,8 +2608,7 @@ function logException(state, exception, context) {
|
|
|
2603
2608
|
let handler = state.facet(exceptionSink);
|
|
2604
2609
|
if (handler.length)
|
|
2605
2610
|
handler[0](exception);
|
|
2606
|
-
else if (window.onerror)
|
|
2607
|
-
window.onerror(String(exception), context, undefined, undefined, exception);
|
|
2611
|
+
else if (window.onerror && window.onerror(String(exception), context, undefined, undefined, exception)) ;
|
|
2608
2612
|
else if (context)
|
|
2609
2613
|
console.error(context + ":", exception);
|
|
2610
2614
|
else
|
|
@@ -2612,11 +2616,23 @@ function logException(state, exception, context) {
|
|
|
2612
2616
|
}
|
|
2613
2617
|
const editable = /*@__PURE__*/index_js_.Facet.define({ combine: values => values.length ? values[0] : true });
|
|
2614
2618
|
let nextPluginID = 0;
|
|
2615
|
-
const viewPlugin = /*@__PURE__*/index_js_.Facet.define(
|
|
2619
|
+
const viewPlugin = /*@__PURE__*/index_js_.Facet.define({
|
|
2620
|
+
combine(plugins) {
|
|
2621
|
+
return plugins.filter((p, i) => {
|
|
2622
|
+
for (let j = 0; j < i; j++)
|
|
2623
|
+
if (plugins[j].plugin == p.plugin)
|
|
2624
|
+
return false;
|
|
2625
|
+
return true;
|
|
2626
|
+
});
|
|
2627
|
+
}
|
|
2628
|
+
});
|
|
2616
2629
|
/**
|
|
2617
2630
|
View plugins associate stateful values with a view. They can
|
|
2618
2631
|
influence the way the content is drawn, and are notified of things
|
|
2619
|
-
that happen in the view.
|
|
2632
|
+
that happen in the view. They optionally take an argument, in
|
|
2633
|
+
which case you need to call [`of`](https://codemirror.net/6/docs/ref/#view.ViewPlugin.of) to create
|
|
2634
|
+
an extension for the plugin. When the argument type is undefined,
|
|
2635
|
+
you can use the plugin instance as an extension directly.
|
|
2620
2636
|
*/
|
|
2621
2637
|
class ViewPlugin {
|
|
2622
2638
|
constructor(
|
|
@@ -2640,7 +2656,14 @@ class ViewPlugin {
|
|
|
2640
2656
|
this.create = create;
|
|
2641
2657
|
this.domEventHandlers = domEventHandlers;
|
|
2642
2658
|
this.domEventObservers = domEventObservers;
|
|
2643
|
-
this.
|
|
2659
|
+
this.baseExtensions = buildExtensions(this);
|
|
2660
|
+
this.extension = this.baseExtensions.concat(viewPlugin.of({ plugin: this, arg: undefined }));
|
|
2661
|
+
}
|
|
2662
|
+
/**
|
|
2663
|
+
Create an extension for this plugin with the given argument.
|
|
2664
|
+
*/
|
|
2665
|
+
of(arg) {
|
|
2666
|
+
return this.baseExtensions.concat(viewPlugin.of({ plugin: this, arg }));
|
|
2644
2667
|
}
|
|
2645
2668
|
/**
|
|
2646
2669
|
Define a plugin from a constructor function that creates the
|
|
@@ -2649,7 +2672,7 @@ class ViewPlugin {
|
|
|
2649
2672
|
static define(create, spec) {
|
|
2650
2673
|
const { eventHandlers, eventObservers, provide, decorations: deco } = spec || {};
|
|
2651
2674
|
return new ViewPlugin(nextPluginID++, create, eventHandlers, eventObservers, plugin => {
|
|
2652
|
-
let ext = [
|
|
2675
|
+
let ext = [];
|
|
2653
2676
|
if (deco)
|
|
2654
2677
|
ext.push(decorations.of(view => {
|
|
2655
2678
|
let pluginInst = view.plugin(plugin);
|
|
@@ -2665,7 +2688,7 @@ class ViewPlugin {
|
|
|
2665
2688
|
editor view as argument.
|
|
2666
2689
|
*/
|
|
2667
2690
|
static fromClass(cls, spec) {
|
|
2668
|
-
return ViewPlugin.define(view => new cls(view), spec);
|
|
2691
|
+
return ViewPlugin.define((view, arg) => new cls(view, arg), spec);
|
|
2669
2692
|
}
|
|
2670
2693
|
}
|
|
2671
2694
|
class PluginInstance {
|
|
@@ -2673,18 +2696,19 @@ class PluginInstance {
|
|
|
2673
2696
|
this.spec = spec;
|
|
2674
2697
|
// When starting an update, all plugins have this field set to the
|
|
2675
2698
|
// update object, indicating they need to be updated. When finished
|
|
2676
|
-
// updating, it is set to `
|
|
2699
|
+
// updating, it is set to `null`. Retrieving a plugin that needs to
|
|
2677
2700
|
// be updated with `view.plugin` forces an eager update.
|
|
2678
2701
|
this.mustUpdate = null;
|
|
2679
2702
|
// This is null when the plugin is initially created, but
|
|
2680
2703
|
// initialized on the first update.
|
|
2681
2704
|
this.value = null;
|
|
2682
2705
|
}
|
|
2706
|
+
get plugin() { return this.spec && this.spec.plugin; }
|
|
2683
2707
|
update(view) {
|
|
2684
2708
|
if (!this.value) {
|
|
2685
2709
|
if (this.spec) {
|
|
2686
2710
|
try {
|
|
2687
|
-
this.value = this.spec.create(view);
|
|
2711
|
+
this.value = this.spec.plugin.create(view, this.spec.arg);
|
|
2688
2712
|
}
|
|
2689
2713
|
catch (e) {
|
|
2690
2714
|
logException(view.state, e, "CodeMirror plugin crashed");
|
|
@@ -3640,8 +3664,7 @@ function domPosAtCoords(parent, x, y) {
|
|
|
3640
3664
|
closestRect = rect;
|
|
3641
3665
|
closestX = dx;
|
|
3642
3666
|
closestY = dy;
|
|
3643
|
-
|
|
3644
|
-
closestOverlap = !side || (side > 0 ? i < rects.length - 1 : i > 0);
|
|
3667
|
+
closestOverlap = !dx ? true : x < rect.left ? i > 0 : i < rects.length - 1;
|
|
3645
3668
|
}
|
|
3646
3669
|
if (dx == 0) {
|
|
3647
3670
|
if (y > rect.bottom && (!aboveRect || aboveRect.bottom < rect.bottom)) {
|
|
@@ -3817,13 +3840,24 @@ function posAtCoordsImprecise(view, contentRect, block, x, y) {
|
|
|
3817
3840
|
// line before. This is used to detect such a result so that it can be
|
|
3818
3841
|
// ignored (issue #401).
|
|
3819
3842
|
function isSuspiciousSafariCaretResult(node, offset, x) {
|
|
3820
|
-
let len;
|
|
3843
|
+
let len, scan = node;
|
|
3821
3844
|
if (node.nodeType != 3 || offset != (len = node.nodeValue.length))
|
|
3822
3845
|
return false;
|
|
3823
|
-
for (
|
|
3824
|
-
|
|
3846
|
+
for (;;) { // Check that there is no content after this node
|
|
3847
|
+
let next = scan.nextSibling;
|
|
3848
|
+
if (next) {
|
|
3849
|
+
if (next.nodeName == "BR")
|
|
3850
|
+
break;
|
|
3825
3851
|
return false;
|
|
3826
|
-
|
|
3852
|
+
}
|
|
3853
|
+
else {
|
|
3854
|
+
let parent = scan.parentNode;
|
|
3855
|
+
if (!parent || parent.nodeName == "DIV")
|
|
3856
|
+
break;
|
|
3857
|
+
scan = parent;
|
|
3858
|
+
}
|
|
3859
|
+
}
|
|
3860
|
+
return textRange(node, len - 1, len).getBoundingClientRect().right > x;
|
|
3827
3861
|
}
|
|
3828
3862
|
// Chrome will move positions between lines to the start of the next line
|
|
3829
3863
|
function isSuspiciousChromeCaretResult(node, offset, x) {
|
|
@@ -4542,16 +4576,16 @@ function computeHandlers(plugins) {
|
|
|
4542
4576
|
return result[type] || (result[type] = { observers: [], handlers: [] });
|
|
4543
4577
|
}
|
|
4544
4578
|
for (let plugin of plugins) {
|
|
4545
|
-
let spec = plugin.spec;
|
|
4546
|
-
if (
|
|
4547
|
-
for (let type in
|
|
4548
|
-
let f =
|
|
4579
|
+
let spec = plugin.spec, handlers = spec && spec.plugin.domEventHandlers, observers = spec && spec.plugin.domEventObservers;
|
|
4580
|
+
if (handlers)
|
|
4581
|
+
for (let type in handlers) {
|
|
4582
|
+
let f = handlers[type];
|
|
4549
4583
|
if (f)
|
|
4550
4584
|
record(type).handlers.push(bindHandler(plugin.value, f));
|
|
4551
4585
|
}
|
|
4552
|
-
if (
|
|
4553
|
-
for (let type in
|
|
4554
|
-
let f =
|
|
4586
|
+
if (observers)
|
|
4587
|
+
for (let type in observers) {
|
|
4588
|
+
let f = observers[type];
|
|
4555
4589
|
if (f)
|
|
4556
4590
|
record(type).observers.push(bindHandler(plugin.value, f));
|
|
4557
4591
|
}
|
|
@@ -5246,7 +5280,7 @@ class HeightOracle {
|
|
|
5246
5280
|
heightForLine(length) {
|
|
5247
5281
|
if (!this.lineWrapping)
|
|
5248
5282
|
return this.lineHeight;
|
|
5249
|
-
let lines = 1 + Math.max(0, Math.ceil((length - this.lineLength) / (this.lineLength - 5)));
|
|
5283
|
+
let lines = 1 + Math.max(0, Math.ceil((length - this.lineLength) / Math.max(1, this.lineLength - 5)));
|
|
5250
5284
|
return lines * this.lineHeight;
|
|
5251
5285
|
}
|
|
5252
5286
|
setDoc(doc) { this.doc = doc; return this; }
|
|
@@ -6216,7 +6250,7 @@ class ViewState {
|
|
|
6216
6250
|
refresh = true;
|
|
6217
6251
|
if (refresh || oracle.lineWrapping && Math.abs(contentWidth - this.contentDOMWidth) > oracle.charWidth) {
|
|
6218
6252
|
let { lineHeight, charWidth, textHeight } = view.docView.measureTextSize();
|
|
6219
|
-
refresh = lineHeight > 0 && oracle.refresh(whiteSpace, lineHeight, charWidth, textHeight, contentWidth / charWidth, lineHeights);
|
|
6253
|
+
refresh = lineHeight > 0 && oracle.refresh(whiteSpace, lineHeight, charWidth, textHeight, Math.max(5, contentWidth / charWidth), lineHeights);
|
|
6220
6254
|
if (refresh) {
|
|
6221
6255
|
view.docView.minWidth = 0;
|
|
6222
6256
|
result |= 16 /* UpdateFlag.Geometry */;
|
|
@@ -6741,13 +6775,16 @@ const baseTheme$1 = /*@__PURE__*/buildTheme("." + baseThemeID, {
|
|
|
6741
6775
|
display: "flex",
|
|
6742
6776
|
height: "100%",
|
|
6743
6777
|
boxSizing: "border-box",
|
|
6744
|
-
|
|
6745
|
-
zIndex: 200
|
|
6778
|
+
zIndex: 200,
|
|
6746
6779
|
},
|
|
6780
|
+
".cm-gutters-before": { insetInlineStart: 0 },
|
|
6781
|
+
".cm-gutters-after": { insetInlineEnd: 0 },
|
|
6747
6782
|
"&light .cm-gutters": {
|
|
6748
6783
|
backgroundColor: "#f5f5f5",
|
|
6749
6784
|
color: "#6c6c6c",
|
|
6750
|
-
|
|
6785
|
+
border: "0px solid #ddd",
|
|
6786
|
+
"&.cm-gutters-before": { borderRightWidth: "1px" },
|
|
6787
|
+
"&.cm-gutters-after": { borderLeftWidth: "1px" },
|
|
6751
6788
|
},
|
|
6752
6789
|
"&dark .cm-gutters": {
|
|
6753
6790
|
backgroundColor: "#333338",
|
|
@@ -6797,6 +6834,21 @@ const baseTheme$1 = /*@__PURE__*/buildTheme("." + baseThemeID, {
|
|
|
6797
6834
|
backgroundColor: "#333338",
|
|
6798
6835
|
color: "white"
|
|
6799
6836
|
},
|
|
6837
|
+
".cm-dialog": {
|
|
6838
|
+
padding: "2px 19px 4px 6px",
|
|
6839
|
+
position: "relative",
|
|
6840
|
+
"& label": { fontSize: "80%" },
|
|
6841
|
+
},
|
|
6842
|
+
".cm-dialog-close": {
|
|
6843
|
+
position: "absolute",
|
|
6844
|
+
top: "3px",
|
|
6845
|
+
right: "4px",
|
|
6846
|
+
backgroundColor: "inherit",
|
|
6847
|
+
border: "none",
|
|
6848
|
+
font: "inherit",
|
|
6849
|
+
fontSize: "14px",
|
|
6850
|
+
padding: "0"
|
|
6851
|
+
},
|
|
6800
6852
|
".cm-tab": {
|
|
6801
6853
|
display: "inline-block",
|
|
6802
6854
|
overflow: "hidden",
|
|
@@ -6923,7 +6975,7 @@ class DOMObserver {
|
|
|
6923
6975
|
else
|
|
6924
6976
|
this.flush();
|
|
6925
6977
|
});
|
|
6926
|
-
if (window.EditContext && view.constructor.EDIT_CONTEXT !== false &&
|
|
6978
|
+
if (window.EditContext && browser.android && view.constructor.EDIT_CONTEXT !== false &&
|
|
6927
6979
|
// Chrome <126 doesn't support inverted selections in edit context (#1392)
|
|
6928
6980
|
!(browser.chrome && browser.chrome_version < 126)) {
|
|
6929
6981
|
this.editContext = new EditContextManager(view);
|
|
@@ -8109,8 +8161,8 @@ class EditorView {
|
|
|
8109
8161
|
*/
|
|
8110
8162
|
plugin(plugin) {
|
|
8111
8163
|
let known = this.pluginMap.get(plugin);
|
|
8112
|
-
if (known === undefined || known && known.
|
|
8113
|
-
this.pluginMap.set(plugin, known = this.plugins.find(p => p.
|
|
8164
|
+
if (known === undefined || known && known.plugin != plugin)
|
|
8165
|
+
this.pluginMap.set(plugin, known = this.plugins.find(p => p.plugin == plugin) || null);
|
|
8114
8166
|
return known && known.update(this).value;
|
|
8115
8167
|
}
|
|
8116
8168
|
/**
|
|
@@ -8934,6 +8986,8 @@ function runHandlers(map, event, view, scope) {
|
|
|
8934
8986
|
else if (isChar && (event.altKey || event.metaKey || event.ctrlKey) &&
|
|
8935
8987
|
// Ctrl-Alt may be used for AltGr on Windows
|
|
8936
8988
|
!(browser.windows && event.ctrlKey && event.altKey) &&
|
|
8989
|
+
// Alt-combinations on macOS tend to be typed characters
|
|
8990
|
+
!(browser.mac && event.altKey && !event.ctrlKey) &&
|
|
8937
8991
|
(baseName = base[event.keyCode]) && baseName != name) {
|
|
8938
8992
|
if (runFor(scopeObj[prefix + modifiers(baseName, event, true)])) {
|
|
8939
8993
|
handled = true;
|
|
@@ -9521,7 +9575,7 @@ class MatchDecorator {
|
|
|
9521
9575
|
updateRange(view, deco, updateFrom, updateTo) {
|
|
9522
9576
|
for (let r of view.visibleRanges) {
|
|
9523
9577
|
let from = Math.max(r.from, updateFrom), to = Math.min(r.to, updateTo);
|
|
9524
|
-
if (to
|
|
9578
|
+
if (to >= from) {
|
|
9525
9579
|
let fromLine = view.state.doc.lineAt(from), toLine = fromLine.to < to ? view.state.doc.lineAt(to) : fromLine;
|
|
9526
9580
|
let start = Math.max(r.from, fromLine.from), end = Math.min(r.to, toLine.to);
|
|
9527
9581
|
if (this.boundary) {
|
|
@@ -10825,6 +10879,134 @@ const showPanel = /*@__PURE__*/index_js_.Facet.define({
|
|
|
10825
10879
|
enables: panelPlugin
|
|
10826
10880
|
});
|
|
10827
10881
|
|
|
10882
|
+
/**
|
|
10883
|
+
Show a panel above or below the editor to show the user a message
|
|
10884
|
+
or prompt them for input. Returns an effect that can be dispatched
|
|
10885
|
+
to close the dialog, and a promise that resolves when the dialog
|
|
10886
|
+
is closed or a form inside of it is submitted.
|
|
10887
|
+
|
|
10888
|
+
You are encouraged, if your handling of the result of the promise
|
|
10889
|
+
dispatches a transaction, to include the `close` effect in it. If
|
|
10890
|
+
you don't, this function will automatically dispatch a separate
|
|
10891
|
+
transaction right after.
|
|
10892
|
+
*/
|
|
10893
|
+
function showDialog(view, config) {
|
|
10894
|
+
let resolve;
|
|
10895
|
+
let promise = new Promise(r => resolve = r);
|
|
10896
|
+
let panelCtor = (view) => createDialog(view, config, resolve);
|
|
10897
|
+
if (view.state.field(dialogField, false)) {
|
|
10898
|
+
view.dispatch({ effects: openDialogEffect.of(panelCtor) });
|
|
10899
|
+
}
|
|
10900
|
+
else {
|
|
10901
|
+
view.dispatch({ effects: index_js_.StateEffect.appendConfig.of(dialogField.init(() => [panelCtor])) });
|
|
10902
|
+
}
|
|
10903
|
+
let close = closeDialogEffect.of(panelCtor);
|
|
10904
|
+
return { close, result: promise.then(form => {
|
|
10905
|
+
let queue = view.win.queueMicrotask || ((f) => view.win.setTimeout(f, 10));
|
|
10906
|
+
queue(() => {
|
|
10907
|
+
if (view.state.field(dialogField).indexOf(panelCtor) > -1)
|
|
10908
|
+
view.dispatch({ effects: close });
|
|
10909
|
+
});
|
|
10910
|
+
return form;
|
|
10911
|
+
}) };
|
|
10912
|
+
}
|
|
10913
|
+
/**
|
|
10914
|
+
Find the [`Panel`](https://codemirror.net/6/docs/ref/#view.Panel) for an open dialog, using a class
|
|
10915
|
+
name as identifier.
|
|
10916
|
+
*/
|
|
10917
|
+
function getDialog(view, className) {
|
|
10918
|
+
let dialogs = view.state.field(dialogField, false) || [];
|
|
10919
|
+
for (let open of dialogs) {
|
|
10920
|
+
let panel = getPanel(view, open);
|
|
10921
|
+
if (panel && panel.dom.classList.contains(className))
|
|
10922
|
+
return panel;
|
|
10923
|
+
}
|
|
10924
|
+
return null;
|
|
10925
|
+
}
|
|
10926
|
+
const dialogField = /*@__PURE__*/index_js_.StateField.define({
|
|
10927
|
+
create() { return []; },
|
|
10928
|
+
update(dialogs, tr) {
|
|
10929
|
+
for (let e of tr.effects) {
|
|
10930
|
+
if (e.is(openDialogEffect))
|
|
10931
|
+
dialogs = [e.value].concat(dialogs);
|
|
10932
|
+
else if (e.is(closeDialogEffect))
|
|
10933
|
+
dialogs = dialogs.filter(d => d != e.value);
|
|
10934
|
+
}
|
|
10935
|
+
return dialogs;
|
|
10936
|
+
},
|
|
10937
|
+
provide: f => showPanel.computeN([f], state => state.field(f))
|
|
10938
|
+
});
|
|
10939
|
+
const openDialogEffect = /*@__PURE__*/index_js_.StateEffect.define();
|
|
10940
|
+
const closeDialogEffect = /*@__PURE__*/index_js_.StateEffect.define();
|
|
10941
|
+
function createDialog(view, config, result) {
|
|
10942
|
+
let content = config.content ? config.content(view, () => done(null)) : null;
|
|
10943
|
+
if (!content) {
|
|
10944
|
+
content = (0,crelt/* default */.Z)("form");
|
|
10945
|
+
if (config.input) {
|
|
10946
|
+
let input = (0,crelt/* default */.Z)("input", config.input);
|
|
10947
|
+
if (/^(text|password|number|email|tel|url)$/.test(input.type))
|
|
10948
|
+
input.classList.add("cm-textfield");
|
|
10949
|
+
if (!input.name)
|
|
10950
|
+
input.name = "input";
|
|
10951
|
+
content.appendChild((0,crelt/* default */.Z)("label", (config.label || "") + ": ", input));
|
|
10952
|
+
}
|
|
10953
|
+
else {
|
|
10954
|
+
content.appendChild(document.createTextNode(config.label || ""));
|
|
10955
|
+
}
|
|
10956
|
+
content.appendChild(document.createTextNode(" "));
|
|
10957
|
+
content.appendChild((0,crelt/* default */.Z)("button", { class: "cm-button", type: "submit" }, config.submitLabel || "OK"));
|
|
10958
|
+
}
|
|
10959
|
+
let forms = content.nodeName == "FORM" ? [content] : content.querySelectorAll("form");
|
|
10960
|
+
for (let i = 0; i < forms.length; i++) {
|
|
10961
|
+
let form = forms[i];
|
|
10962
|
+
form.addEventListener("keydown", (event) => {
|
|
10963
|
+
if (event.keyCode == 27) { // Escape
|
|
10964
|
+
event.preventDefault();
|
|
10965
|
+
done(null);
|
|
10966
|
+
}
|
|
10967
|
+
else if (event.keyCode == 13) { // Enter
|
|
10968
|
+
event.preventDefault();
|
|
10969
|
+
done(form);
|
|
10970
|
+
}
|
|
10971
|
+
});
|
|
10972
|
+
form.addEventListener("submit", (event) => {
|
|
10973
|
+
event.preventDefault();
|
|
10974
|
+
done(form);
|
|
10975
|
+
});
|
|
10976
|
+
}
|
|
10977
|
+
let panel = (0,crelt/* default */.Z)("div", content, (0,crelt/* default */.Z)("button", {
|
|
10978
|
+
onclick: () => done(null),
|
|
10979
|
+
"aria-label": view.state.phrase("close"),
|
|
10980
|
+
class: "cm-dialog-close",
|
|
10981
|
+
type: "button"
|
|
10982
|
+
}, ["×"]));
|
|
10983
|
+
if (config.class)
|
|
10984
|
+
panel.className = config.class;
|
|
10985
|
+
panel.classList.add("cm-dialog");
|
|
10986
|
+
function done(form) {
|
|
10987
|
+
if (panel.contains(panel.ownerDocument.activeElement))
|
|
10988
|
+
view.focus();
|
|
10989
|
+
result(form);
|
|
10990
|
+
}
|
|
10991
|
+
return {
|
|
10992
|
+
dom: panel,
|
|
10993
|
+
top: config.top,
|
|
10994
|
+
mount: () => {
|
|
10995
|
+
if (config.focus) {
|
|
10996
|
+
let focus;
|
|
10997
|
+
if (typeof config.focus == "string")
|
|
10998
|
+
focus = content.querySelector(config.focus);
|
|
10999
|
+
else
|
|
11000
|
+
focus = content.querySelector("input") || content.querySelector("button");
|
|
11001
|
+
if (focus && "select" in focus)
|
|
11002
|
+
focus.select();
|
|
11003
|
+
else if (focus && "focus" in focus)
|
|
11004
|
+
focus.focus();
|
|
11005
|
+
}
|
|
11006
|
+
}
|
|
11007
|
+
};
|
|
11008
|
+
}
|
|
11009
|
+
|
|
10828
11010
|
/**
|
|
10829
11011
|
A gutter marker represents a bit of information attached to a line
|
|
10830
11012
|
in a specific gutter. Your own custom markers have to extend this
|
|
@@ -10875,7 +11057,8 @@ const defaults = {
|
|
|
10875
11057
|
lineMarkerChange: null,
|
|
10876
11058
|
initialSpacer: null,
|
|
10877
11059
|
updateSpacer: null,
|
|
10878
|
-
domEventHandlers: {}
|
|
11060
|
+
domEventHandlers: {},
|
|
11061
|
+
side: "before"
|
|
10879
11062
|
};
|
|
10880
11063
|
const activeGutters = /*@__PURE__*/index_js_.Facet.define();
|
|
10881
11064
|
/**
|
|
@@ -10883,7 +11066,7 @@ Define an editor gutter. The order in which the gutters appear is
|
|
|
10883
11066
|
determined by their extension priority.
|
|
10884
11067
|
*/
|
|
10885
11068
|
function gutter(config) {
|
|
10886
|
-
return [gutters(), activeGutters.of(
|
|
11069
|
+
return [gutters(), activeGutters.of({ ...defaults, ...config })];
|
|
10887
11070
|
}
|
|
10888
11071
|
const unfixGutters = /*@__PURE__*/index_js_.Facet.define({
|
|
10889
11072
|
combine: values => values.some(x => x)
|
|
@@ -10909,15 +11092,20 @@ function gutters(config) {
|
|
|
10909
11092
|
const gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
10910
11093
|
constructor(view) {
|
|
10911
11094
|
this.view = view;
|
|
11095
|
+
this.domAfter = null;
|
|
10912
11096
|
this.prevViewport = view.viewport;
|
|
10913
11097
|
this.dom = document.createElement("div");
|
|
10914
|
-
this.dom.className = "cm-gutters";
|
|
11098
|
+
this.dom.className = "cm-gutters cm-gutters-before";
|
|
10915
11099
|
this.dom.setAttribute("aria-hidden", "true");
|
|
10916
11100
|
this.dom.style.minHeight = (this.view.contentHeight / this.view.scaleY) + "px";
|
|
10917
11101
|
this.gutters = view.state.facet(activeGutters).map(conf => new SingleGutterView(view, conf));
|
|
10918
|
-
for (let gutter of this.gutters)
|
|
10919
|
-
this.dom.appendChild(gutter.dom);
|
|
10920
11102
|
this.fixed = !view.state.facet(unfixGutters);
|
|
11103
|
+
for (let gutter of this.gutters) {
|
|
11104
|
+
if (gutter.config.side == "after")
|
|
11105
|
+
this.getDOMAfter().appendChild(gutter.dom);
|
|
11106
|
+
else
|
|
11107
|
+
this.dom.appendChild(gutter.dom);
|
|
11108
|
+
}
|
|
10921
11109
|
if (this.fixed) {
|
|
10922
11110
|
// FIXME IE11 fallback, which doesn't support position: sticky,
|
|
10923
11111
|
// by using position: relative + event handlers that realign the
|
|
@@ -10927,6 +11115,17 @@ const gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
|
10927
11115
|
this.syncGutters(false);
|
|
10928
11116
|
view.scrollDOM.insertBefore(this.dom, view.contentDOM);
|
|
10929
11117
|
}
|
|
11118
|
+
getDOMAfter() {
|
|
11119
|
+
if (!this.domAfter) {
|
|
11120
|
+
this.domAfter = document.createElement("div");
|
|
11121
|
+
this.domAfter.className = "cm-gutters cm-gutters-after";
|
|
11122
|
+
this.domAfter.setAttribute("aria-hidden", "true");
|
|
11123
|
+
this.domAfter.style.minHeight = (this.view.contentHeight / this.view.scaleY) + "px";
|
|
11124
|
+
this.domAfter.style.position = this.fixed ? "sticky" : "";
|
|
11125
|
+
this.view.scrollDOM.appendChild(this.domAfter);
|
|
11126
|
+
}
|
|
11127
|
+
return this.domAfter;
|
|
11128
|
+
}
|
|
10930
11129
|
update(update) {
|
|
10931
11130
|
if (this.updateGutters(update)) {
|
|
10932
11131
|
// Detach during sync when the viewport changed significantly
|
|
@@ -10937,18 +11136,26 @@ const gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
|
10937
11136
|
this.syncGutters(vpOverlap < (vpB.to - vpB.from) * 0.8);
|
|
10938
11137
|
}
|
|
10939
11138
|
if (update.geometryChanged) {
|
|
10940
|
-
|
|
11139
|
+
let min = (this.view.contentHeight / this.view.scaleY) + "px";
|
|
11140
|
+
this.dom.style.minHeight = min;
|
|
11141
|
+
if (this.domAfter)
|
|
11142
|
+
this.domAfter.style.minHeight = min;
|
|
10941
11143
|
}
|
|
10942
11144
|
if (this.view.state.facet(unfixGutters) != !this.fixed) {
|
|
10943
11145
|
this.fixed = !this.fixed;
|
|
10944
11146
|
this.dom.style.position = this.fixed ? "sticky" : "";
|
|
11147
|
+
if (this.domAfter)
|
|
11148
|
+
this.domAfter.style.position = this.fixed ? "sticky" : "";
|
|
10945
11149
|
}
|
|
10946
11150
|
this.prevViewport = update.view.viewport;
|
|
10947
11151
|
}
|
|
10948
11152
|
syncGutters(detach) {
|
|
10949
11153
|
let after = this.dom.nextSibling;
|
|
10950
|
-
if (detach)
|
|
11154
|
+
if (detach) {
|
|
10951
11155
|
this.dom.remove();
|
|
11156
|
+
if (this.domAfter)
|
|
11157
|
+
this.domAfter.remove();
|
|
11158
|
+
}
|
|
10952
11159
|
let lineClasses = index_js_.RangeSet.iter(this.view.state.facet(gutterLineClass), this.view.viewport.from);
|
|
10953
11160
|
let classSet = [];
|
|
10954
11161
|
let contexts = this.gutters.map(gutter => new UpdateContext(gutter, this.view.viewport, -this.view.documentPadding.top));
|
|
@@ -10982,8 +11189,11 @@ const gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
|
10982
11189
|
}
|
|
10983
11190
|
for (let cx of contexts)
|
|
10984
11191
|
cx.finish();
|
|
10985
|
-
if (detach)
|
|
11192
|
+
if (detach) {
|
|
10986
11193
|
this.view.scrollDOM.insertBefore(this.dom, after);
|
|
11194
|
+
if (this.domAfter)
|
|
11195
|
+
this.view.scrollDOM.appendChild(this.domAfter);
|
|
11196
|
+
}
|
|
10987
11197
|
}
|
|
10988
11198
|
updateGutters(update) {
|
|
10989
11199
|
let prev = update.startState.facet(activeGutters), cur = update.state.facet(activeGutters);
|
|
@@ -11012,8 +11222,12 @@ const gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
|
11012
11222
|
if (gutters.indexOf(g) < 0)
|
|
11013
11223
|
g.destroy();
|
|
11014
11224
|
}
|
|
11015
|
-
for (let g of gutters)
|
|
11016
|
-
|
|
11225
|
+
for (let g of gutters) {
|
|
11226
|
+
if (g.config.side == "after")
|
|
11227
|
+
this.getDOMAfter().appendChild(g.dom);
|
|
11228
|
+
else
|
|
11229
|
+
this.dom.appendChild(g.dom);
|
|
11230
|
+
}
|
|
11017
11231
|
this.gutters = gutters;
|
|
11018
11232
|
}
|
|
11019
11233
|
return change;
|
|
@@ -11022,15 +11236,18 @@ const gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|
|
11022
11236
|
for (let view of this.gutters)
|
|
11023
11237
|
view.destroy();
|
|
11024
11238
|
this.dom.remove();
|
|
11239
|
+
if (this.domAfter)
|
|
11240
|
+
this.domAfter.remove();
|
|
11025
11241
|
}
|
|
11026
11242
|
}, {
|
|
11027
11243
|
provide: plugin => EditorView.scrollMargins.of(view => {
|
|
11028
11244
|
let value = view.plugin(plugin);
|
|
11029
11245
|
if (!value || value.gutters.length == 0 || !value.fixed)
|
|
11030
11246
|
return null;
|
|
11247
|
+
let before = value.dom.offsetWidth * view.scaleX, after = value.domAfter ? value.domAfter.offsetWidth * view.scaleX : 0;
|
|
11031
11248
|
return view.textDirection == Direction.LTR
|
|
11032
|
-
? { left:
|
|
11033
|
-
: { right:
|
|
11249
|
+
? { left: before, right: after }
|
|
11250
|
+
: { right: before, left: after };
|
|
11034
11251
|
})
|
|
11035
11252
|
});
|
|
11036
11253
|
function asArray(val) { return (Array.isArray(val) ? val : [val]); }
|
|
@@ -11272,7 +11489,8 @@ const lineNumberGutter = /*@__PURE__*/activeGutters.compute([lineNumberConfig],
|
|
|
11272
11489
|
let max = formatNumber(update.view, maxLineNumber(update.view.state.doc.lines));
|
|
11273
11490
|
return max == spacer.number ? spacer : new NumberMarker(max);
|
|
11274
11491
|
},
|
|
11275
|
-
domEventHandlers: state.facet(lineNumberConfig).domEventHandlers
|
|
11492
|
+
domEventHandlers: state.facet(lineNumberConfig).domEventHandlers,
|
|
11493
|
+
side: "before"
|
|
11276
11494
|
}));
|
|
11277
11495
|
/**
|
|
11278
11496
|
Create a line number gutter extension.
|
|
@@ -11344,8 +11562,7 @@ function highlightWhitespace() {
|
|
|
11344
11562
|
}
|
|
11345
11563
|
const trailingHighlighter = /*@__PURE__*/matcher(/*@__PURE__*/new MatchDecorator({
|
|
11346
11564
|
regexp: /\s+$/g,
|
|
11347
|
-
decoration: /*@__PURE__*/Decoration.mark({ class: "cm-trailingSpace" })
|
|
11348
|
-
boundary: /\S/,
|
|
11565
|
+
decoration: /*@__PURE__*/Decoration.mark({ class: "cm-trailingSpace" })
|
|
11349
11566
|
}));
|
|
11350
11567
|
/**
|
|
11351
11568
|
Returns an extension that adds a `cm-trailingSpace` class to all
|
|
@@ -11364,6 +11581,44 @@ const __test = { HeightMap, HeightOracle, MeasuredHeights, QueryType, ChangedRan
|
|
|
11364
11581
|
|
|
11365
11582
|
|
|
11366
11583
|
|
|
11584
|
+
/***/ }),
|
|
11585
|
+
|
|
11586
|
+
/***/ 76767:
|
|
11587
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
11588
|
+
|
|
11589
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11590
|
+
/* harmony export */ Z: () => (/* binding */ crelt)
|
|
11591
|
+
/* harmony export */ });
|
|
11592
|
+
function crelt() {
|
|
11593
|
+
var elt = arguments[0]
|
|
11594
|
+
if (typeof elt == "string") elt = document.createElement(elt)
|
|
11595
|
+
var i = 1, next = arguments[1]
|
|
11596
|
+
if (next && typeof next == "object" && next.nodeType == null && !Array.isArray(next)) {
|
|
11597
|
+
for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {
|
|
11598
|
+
var value = next[name]
|
|
11599
|
+
if (typeof value == "string") elt.setAttribute(name, value)
|
|
11600
|
+
else if (value != null) elt[name] = value
|
|
11601
|
+
}
|
|
11602
|
+
i++
|
|
11603
|
+
}
|
|
11604
|
+
for (; i < arguments.length; i++) add(elt, arguments[i])
|
|
11605
|
+
return elt
|
|
11606
|
+
}
|
|
11607
|
+
|
|
11608
|
+
function add(elt, child) {
|
|
11609
|
+
if (typeof child == "string") {
|
|
11610
|
+
elt.appendChild(document.createTextNode(child))
|
|
11611
|
+
} else if (child == null) {
|
|
11612
|
+
} else if (child.nodeType != null) {
|
|
11613
|
+
elt.appendChild(child)
|
|
11614
|
+
} else if (Array.isArray(child)) {
|
|
11615
|
+
for (var i = 0; i < child.length; i++) add(elt, child[i])
|
|
11616
|
+
} else {
|
|
11617
|
+
throw new RangeError("Unsupported child node: " + child)
|
|
11618
|
+
}
|
|
11619
|
+
}
|
|
11620
|
+
|
|
11621
|
+
|
|
11367
11622
|
/***/ }),
|
|
11368
11623
|
|
|
11369
11624
|
/***/ 4434:
|
|
@@ -11549,4 +11804,4 @@ class StyleSet {
|
|
|
11549
11804
|
/***/ })
|
|
11550
11805
|
|
|
11551
11806
|
}]);
|
|
11552
|
-
//# sourceMappingURL=2955.
|
|
11807
|
+
//# sourceMappingURL=2955.199d6b7c6b5d8531cad7.js.map?v=199d6b7c6b5d8531cad7
|