From 656c09f73f978a8943dfa69405df9ba437c2b071 Mon Sep 17 00:00:00 2001 From: Loic Huder Date: Fri, 26 Nov 2021 08:37:01 +0100 Subject: [PATCH 1/6] Add extension for document-scoped search --- app/index.js | 4 + app/package.json | 5 + packages/_metapackage/package.json | 1 + packages/_metapackage/src/index.ts | 1 + packages/_metapackage/tsconfig.json | 1 + .../documentsearch-extension/package.json | 58 ++ .../documentsearch-extension/src/index.ts | 54 ++ .../documentsearch-extension/style/base.css | 0 .../documentsearch-extension/style/index.css | 1 + .../documentsearch-extension/style/index.js | 1 + .../documentsearch-extension/tsconfig.json | 8 + yarn.lock | 511 ++++++++++++++++++ 12 files changed, 645 insertions(+) create mode 100644 packages/documentsearch-extension/package.json create mode 100644 packages/documentsearch-extension/src/index.ts create mode 100644 packages/documentsearch-extension/style/base.css create mode 100644 packages/documentsearch-extension/style/index.css create mode 100644 packages/documentsearch-extension/style/index.js create mode 100644 packages/documentsearch-extension/tsconfig.json diff --git a/app/index.js b/app/index.js index 3452072a..b5cd548d 100644 --- a/app/index.js +++ b/app/index.js @@ -84,6 +84,7 @@ async function main() { require('@retrolab/application-extension'), require('@retrolab/console-extension'), require('@retrolab/docmanager-extension'), + require('@retrolab/documentsearch-extension'), require('@retrolab/help-extension'), require('@retrolab/notebook-extension'), // to handle opening new tabs after creating a new terminal @@ -123,6 +124,9 @@ async function main() { ].includes(id) ), require('@jupyterlab/docprovider-extension'), + require('@jupyterlab/documentsearch-extension').default.filter(({ id }) => + ['@jupyterlab/documentsearch:plugin'].includes(id) + ), require('@jupyterlab/filebrowser-extension').default.filter(({ id }) => ['@jupyterlab/filebrowser-extension:factory'].includes(id) ), diff --git a/app/package.json b/app/package.json index 816e114f..abbc95ca 100644 --- a/app/package.json +++ b/app/package.json @@ -27,6 +27,8 @@ "@jupyterlab/docmanager-extension": "~3.2.0", "@jupyterlab/docprovider": "~3.2.0", "@jupyterlab/docprovider-extension": "~3.2.0", + "@jupyterlab/documentsearch": "~3.2.0", + "@jupyterlab/documentsearch-extension": "~3.2.0", "@jupyterlab/filebrowser": "~3.2.0", "@jupyterlab/filebrowser-extension": "~3.2.0", "@jupyterlab/fileeditor": "~3.2.0", @@ -97,6 +99,7 @@ "@jupyterlab/coreutils": "~5.2.0", "@jupyterlab/docmanager-extension": "^3.2.0", "@jupyterlab/docprovider-extension": "^3.2.0", + "@jupyterlab/documentsearch-extension": "^3.2.0", "@jupyterlab/filebrowser-extension": "^3.2.0", "@jupyterlab/fileeditor-extension": "^3.2.0", "@jupyterlab/hub-extension": "^3.2.0", @@ -163,6 +166,7 @@ "@jupyterlab/completer-extension", "@jupyterlab/console-extension", "@jupyterlab/docmanager-extension", + "@jupyterlab/documentsearch-extension", "@jupyterlab/filebrowser-extension", "@jupyterlab/fileeditor-extension", "@jupyterlab/hub-extension", @@ -188,6 +192,7 @@ "@jupyterlab/coreutils", "@jupyterlab/docmanager", "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", "@jupyterlab/filebrowser", "@jupyterlab/fileeditor", "@jupyterlab/mainmenu", diff --git a/packages/_metapackage/package.json b/packages/_metapackage/package.json index 0b2ddbd8..d3d5babd 100644 --- a/packages/_metapackage/package.json +++ b/packages/_metapackage/package.json @@ -24,6 +24,7 @@ "@retrolab/application-extension": "file:../application-extension", "@retrolab/console-extension": "file:../console-extension", "@retrolab/docmanager-extension": "file:../docmanager-extension", + "@retrolab/documentsearch-extension": "file:../documentsearch-extension", "@retrolab/help-extension": "file:../help-extension", "@retrolab/lab-extension": "file:../lab-extension", "@retrolab/notebook-extension": "file:../notebook-extension", diff --git a/packages/_metapackage/src/index.ts b/packages/_metapackage/src/index.ts index fc269fe3..4899000b 100644 --- a/packages/_metapackage/src/index.ts +++ b/packages/_metapackage/src/index.ts @@ -2,6 +2,7 @@ import '@retrolab/application'; import '@retrolab/application-extension'; import '@retrolab/console-extension'; import '@retrolab/docmanager-extension'; +import '@retrolab/documentsearch-extension'; import '@retrolab/help-extension'; import '@retrolab/lab-extension'; import '@retrolab/notebook-extension'; diff --git a/packages/_metapackage/tsconfig.json b/packages/_metapackage/tsconfig.json index 1dfe5f9a..fa8c866b 100644 --- a/packages/_metapackage/tsconfig.json +++ b/packages/_metapackage/tsconfig.json @@ -10,6 +10,7 @@ { "path": "../application-extension" }, { "path": "../console-extension" }, { "path": "../docmanager-extension" }, + { "path": "../documentsearch-extension" }, { "path": "../help-extension" }, { "path": "../lab-extension" }, { "path": "../notebook-extension" }, diff --git a/packages/documentsearch-extension/package.json b/packages/documentsearch-extension/package.json new file mode 100644 index 00000000..231a0fd4 --- /dev/null +++ b/packages/documentsearch-extension/package.json @@ -0,0 +1,58 @@ +{ + "name": "@retrolab/documentsearch-extension", + "version": "0.3.13", + "description": "RetroLab - Document Search Extension", + "homepage": "https://github.com/jupyterlab/retrolab", + "bugs": { + "url": "https://github.com/jupyterlab/retrolab/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/retrolab.git" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/**/*.css", + "style/index.js" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/*.d.ts", + "lib/*.js.map", + "lib/*.js", + "schema/*.json", + "style/**/*.css", + "style/index.js" + ], + "scripts": { + "build": "tsc -b", + "build:prod": "tsc -b", + "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo", + "docs": "typedoc src", + "prepublishOnly": "npm run build", + "watch": "tsc -b --watch" + }, + "dependencies": { + "@jupyterlab/application": "^3.2.0", + "@retrolab/application": "^0.3.13", + "@jupyterlab/documentsearch": "^3.2.0", + "@lumino/widgets": "^1.23.0" + }, + "devDependencies": { + "rimraf": "~3.0.0", + "typescript": "~4.1.3" + }, + "publishConfig": { + "access": "public" + }, + "jupyterlab": { + "extension": true + }, + "styleModule": "style/index.js" +} diff --git a/packages/documentsearch-extension/src/index.ts b/packages/documentsearch-extension/src/index.ts new file mode 100644 index 00000000..7ec5aedf --- /dev/null +++ b/packages/documentsearch-extension/src/index.ts @@ -0,0 +1,54 @@ +import { + JupyterFrontEnd, + JupyterFrontEndPlugin +} from '@jupyterlab/application'; +import { ISearchProviderRegistry } from '@jupyterlab/documentsearch'; + +import { IRetroShell } from '@retrolab/application'; +import { Widget } from '@lumino/widgets'; + +const SEARCHABLE_CLASS = 'jp-mod-searchable'; + +const retroShellWidgetListener: JupyterFrontEndPlugin = { + id: '@retrolab/documentsearch-extension:retroShellWidgetListener', + requires: [IRetroShell, ISearchProviderRegistry], + autoStart: true, + activate: ( + app: JupyterFrontEnd, + retroShell: IRetroShell, + registry: ISearchProviderRegistry + ) => { + // If a given widget is searchable, apply the searchable class. + // If it's not searchable, remove the class. + const transformWidgetSearchability = (widget: Widget | null) => { + if (!widget) { + return; + } + const providerForWidget = registry.getProviderForWidget(widget); + if (providerForWidget) { + widget.addClass(SEARCHABLE_CLASS); + } + if (!providerForWidget) { + widget.removeClass(SEARCHABLE_CLASS); + } + }; + + // Update searchability of the active widget when the registry + // changes, in case a provider for the current widget was added + // or removed + registry.changed.connect(() => + transformWidgetSearchability(retroShell.currentWidget) + ); + + // Apply the searchable class only to the active widget if it is actually + // searchable. Remove the searchable class from a widget when it's + // no longer active. + retroShell.currentChanged.connect((_, args) => { + if (retroShell.currentWidget) { + transformWidgetSearchability(retroShell.currentWidget); + } + }); + } +}; + +export default [retroShellWidgetListener]; diff --git a/packages/documentsearch-extension/style/base.css b/packages/documentsearch-extension/style/base.css new file mode 100644 index 00000000..e69de29b diff --git a/packages/documentsearch-extension/style/index.css b/packages/documentsearch-extension/style/index.css new file mode 100644 index 00000000..f5246e66 --- /dev/null +++ b/packages/documentsearch-extension/style/index.css @@ -0,0 +1 @@ +@import url('./base.css'); diff --git a/packages/documentsearch-extension/style/index.js b/packages/documentsearch-extension/style/index.js new file mode 100644 index 00000000..a028a764 --- /dev/null +++ b/packages/documentsearch-extension/style/index.js @@ -0,0 +1 @@ +import './base.css'; diff --git a/packages/documentsearch-extension/tsconfig.json b/packages/documentsearch-extension/tsconfig.json new file mode 100644 index 00000000..399b75b7 --- /dev/null +++ b/packages/documentsearch-extension/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfigbase", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "include": ["src/**/*"] +} diff --git a/yarn.lock b/yarn.lock index 6954e7d6..c7351beb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1275,6 +1275,32 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" +"@jupyterlab/application@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.2.4.tgz#3372febf790bbbbeca6700222ab590392b550767" + integrity sha512-/2RwT5UC6asT5YiCqIIXDk4bffrOP1NK1RInMuK/dvuGkiTX8EWw2+5VYM2hRG46lEqco/0IdS71WNvnN5SsIw== + dependencies: + "@fortawesome/fontawesome-free" "^5.12.0" + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/docregistry" "^3.2.4" + "@jupyterlab/rendermime" "^3.2.4" + "@jupyterlab/rendermime-interfaces" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/statedb" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/application" "^1.16.0" + "@lumino/commands" "^1.12.0" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/polling" "^1.3.3" + "@lumino/properties" "^1.2.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + "@jupyterlab/apputils-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/apputils-extension/-/apputils-extension-3.2.0.tgz#20de902e7e22f06896a954c2a6d82df1e4eea0b3" @@ -1327,6 +1353,34 @@ sanitize-html "~2.3.3" url "^0.11.0" +"@jupyterlab/apputils@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.2.4.tgz#b6e786ebd217530c5d9aa489fbc8a5b4dc957a9e" + integrity sha512-x+lWYhmwR4nLHSiODtMidr//AoYhr7G/qSK16aV/shn5mgp7FWFViPpTGcCT//TQkuj+82N+azbMOIysZ2wOEw== + dependencies: + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/settingregistry" "^3.2.4" + "@jupyterlab/statedb" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/commands" "^1.12.0" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/domutils" "^1.2.3" + "@lumino/messaging" "^1.4.3" + "@lumino/polling" "^1.3.3" + "@lumino/properties" "^1.2.3" + "@lumino/signaling" "^1.4.3" + "@lumino/virtualdom" "^1.8.0" + "@lumino/widgets" "^1.19.0" + "@types/react" "^17.0.0" + react "^17.0.1" + react-dom "^17.0.1" + sanitize-html "~2.3.3" + url "^0.11.0" + "@jupyterlab/attachments@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-3.2.0.tgz#47b753326e77ee69812b4247c7a8dda50342655c" @@ -1339,6 +1393,18 @@ "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" +"@jupyterlab/attachments@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-3.2.4.tgz#53ffc7e06b1cc8f6ba4c0ae965db23738ab1a032" + integrity sha512-ZNzlhgSBeoYbWzIzzI+yPxJY744RrkGS3EvYNW4SZBFUGP+S0xaTD0PKC75JQu0laCubagEaiRhovoCkfS+dLA== + dependencies: + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/rendermime" "^3.2.4" + "@jupyterlab/rendermime-interfaces" "^3.2.4" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@jupyterlab/builder@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.2.0.tgz#70b85dcc2a73d6b2e5e52ffe9e0a63404852af83" @@ -1433,6 +1499,35 @@ marked "^2.0.0" react "^17.0.1" +"@jupyterlab/cells@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-3.2.4.tgz#7104f99c79a315f9a7aeead3c5df593ca36dbfbe" + integrity sha512-ttX83P2o7Vy5Lh4ohl/qWSn+exPo/rxmsD8itbqfFdonO2gqf4eQCNd20sHkunY+6WzA6eU6tqaMy7Ze9GKmdQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/attachments" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/codemirror" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/filebrowser" "^3.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/outputarea" "^3.2.4" + "@jupyterlab/rendermime" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/shared-models" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/domutils" "^1.2.3" + "@lumino/dragdrop" "^1.7.1" + "@lumino/messaging" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@lumino/virtualdom" "^1.8.0" + "@lumino/widgets" "^1.19.0" + marked "^2.0.0" + react "^17.0.1" + "@jupyterlab/celltags@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/celltags/-/celltags-3.2.0.tgz#ef2592ce753b0a4265687f30b32a89b5a9a6a709" @@ -1464,6 +1559,24 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" +"@jupyterlab/codeeditor@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.2.4.tgz#6190acfe08184c119273cd289eeec1bb9ebb48f3" + integrity sha512-h0PLQEuuth+y0Hz5jdj/aQSg3a4AFMnirTXIzbrP+YVLjLj7NzY12WKDukWayDd+SMQA+kHlbscO3lnWE7v89Q== + dependencies: + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/shared-models" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/dragdrop" "^1.7.1" + "@lumino/messaging" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + "@jupyterlab/codemirror-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror-extension/-/codemirror-extension-3.2.0.tgz#e914c5ffa8a58bf149ffbac0cc3263db8016252d" @@ -1504,6 +1617,30 @@ react "^17.0.1" y-codemirror "^2.1.1" +"@jupyterlab/codemirror@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.2.4.tgz#732163be94911c2bcbffda600af7c7d01abbbf93" + integrity sha512-6ocnfoQtFO70KfnJhneOVCcxqTZrO+9vBF+MdoISEPKK03MPwM/9tRs0rPEvzHUE4xEN+1KjFEb/3pcHB6WZiQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/shared-models" "^3.2.4" + "@jupyterlab/statusbar" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/commands" "^1.12.0" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/polling" "^1.3.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + codemirror "~5.61.0" + react "^17.0.1" + y-codemirror "^3.0.1" + "@jupyterlab/completer-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/completer-extension/-/completer-extension-3.2.0.tgz#0a4bc6dbcfc20df02ef0f304fb247e58a1d1d2a4" @@ -1595,6 +1732,19 @@ path-browserify "^1.0.0" url-parse "~1.5.1" +"@jupyterlab/coreutils@^5.2.4": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.2.4.tgz#7cf858a35dc3076b77a7194c0abf1340564b1c39" + integrity sha512-0QXhg8R0bkb5LILhfphE/K5k4zJI8N+fNsmy/Nr4mDo8l8mB7km6OUcbSSNuJg1mYikOhEA+UxhqE0954UgxkQ== + dependencies: + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + minimist "~1.2.0" + moment "^2.24.0" + path-browserify "^1.0.0" + url-parse "~1.5.1" + "@jupyterlab/docmanager-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager-extension/-/docmanager-extension-3.2.0.tgz#b24575378629a1ecc2542e1cd3047a3c488ee176" @@ -1636,6 +1786,27 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" +"@jupyterlab/docmanager@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.2.4.tgz#860f87465cf054882f44f38fc76cf4caf08d308e" + integrity sha512-FVmwek2Bn9aO5Q9lgK9abDBxgC/3LMhjokrP9PG0bwJ+vSrGngX+MoAE3UuFOxWxMhzBQ2d7zh90ToAUVTCBrQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/docprovider" "^3.2.4" + "@jupyterlab/docregistry" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/statusbar" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/properties" "^1.2.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + react "^17.0.1" + "@jupyterlab/docprovider-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider-extension/-/docprovider-extension-3.2.0.tgz#3821b0696f4e17079a759c04b982ce6a21741a1a" @@ -1657,6 +1828,17 @@ y-websocket "^1.3.15" yjs "^13.5.6" +"@jupyterlab/docprovider@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.2.4.tgz#c9a6513f12d88ea059e14d2a7e61ad3a760e10f7" + integrity sha512-7yh9lJslZb9/kgKD4Jta8XWhBrdZXN+/g2XKbRtgpESWboJ0/YAgglhxk2O+7pLVzs9vMdZmqAMCHbwui9+ltA== + dependencies: + "@jupyterlab/shared-models" "^3.2.4" + "@lumino/coreutils" "^1.5.3" + lib0 "^0.2.42" + y-websocket "^1.3.15" + yjs "^13.5.17" + "@jupyterlab/docregistry@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.2.0.tgz#cec3d60f4863cfd2d15cc3ac1be9bccb6c600d6c" @@ -1682,6 +1864,64 @@ "@lumino/widgets" "^1.19.0" yjs "^13.5.6" +"@jupyterlab/docregistry@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.2.4.tgz#edfccd2ff87ecb69aa8c56768fe8f43d2fb3a09a" + integrity sha512-3RVZrRgudrUqebz6FIgF8vD0nQsn7zzgy72XwB5YkYa7FBdLTf875ehUFXX4MdxqJC/uM/1th+0RPnnl8OwvaA== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/codemirror" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/docprovider" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/rendermime" "^3.2.4" + "@jupyterlab/rendermime-interfaces" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/shared-models" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + yjs "^13.5.17" + +"@jupyterlab/documentsearch-extension@^3.2.0": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/documentsearch-extension/-/documentsearch-extension-3.2.4.tgz#53b5d4940eedcea30c287006990554d450f1902a" + integrity sha512-1L5NaA5vkfDaDghv19NPVFGQ25JT1gQ3NB72cRLSKJkns6u/whqQSpi6o8m5X2y+XYNz2vytQvzGUIV2iEHVtg== + dependencies: + "@jupyterlab/application" "^3.2.4" + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/documentsearch" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@lumino/widgets" "^1.19.0" + +"@jupyterlab/documentsearch@^3.2.0", "@jupyterlab/documentsearch@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/documentsearch/-/documentsearch-3.2.4.tgz#9856b4129548fe0ae8019b2ae628860d76bd2ae5" + integrity sha512-oOgiOb5w4rnC6ZV98b5u0GKc/BY43zV4b88GDcMSolQSxoOdxTbtG8c7pdoTUbyjB19E3a5gmI4H/Z11P7Qzew== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/cells" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/codemirror" "^3.2.4" + "@jupyterlab/fileeditor" "^3.2.4" + "@jupyterlab/notebook" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/polling" "^1.3.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + codemirror "~5.61.0" + react "^17.0.1" + "@jupyterlab/filebrowser-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser-extension/-/filebrowser-extension-3.2.0.tgz#27681ae70339325257383166df8db8de7d95dbf6" @@ -1730,6 +1970,32 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" +"@jupyterlab/filebrowser@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.2.4.tgz#cb226ef6181a7a6fba31e84f20e90c50557cb676" + integrity sha512-BF6nEO+ppUCrQdJur/JEzio+jRZqgTwdqk1KARmwtFYJMcbaCVMTnaInD//xopSwhcNRLDOfOlA45T1llkH3qQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/docmanager" "^3.2.4" + "@jupyterlab/docregistry" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/statedb" "^3.2.4" + "@jupyterlab/statusbar" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/domutils" "^1.2.3" + "@lumino/dragdrop" "^1.7.1" + "@lumino/messaging" "^1.4.3" + "@lumino/polling" "^1.3.3" + "@lumino/signaling" "^1.4.3" + "@lumino/virtualdom" "^1.8.0" + "@lumino/widgets" "^1.19.0" + react "^17.0.1" + "@jupyterlab/fileeditor-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor-extension/-/fileeditor-extension-3.2.0.tgz#c25a893b6f56a88c03dba89f793bedd2c5a4fb93" @@ -1770,6 +2036,22 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" +"@jupyterlab/fileeditor@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-3.2.4.tgz#2854c99da0881ee2127aea24efe010b85fd49610" + integrity sha512-Jn2WuOijHGM7HxUGhaOWpwwAGGKJ+ryO1fptIB3B6oB8TfDariBgm+dA5HKVwJRcP66+Pia+sQMGNwZqAdt9iQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/docregistry" "^3.2.4" + "@jupyterlab/statusbar" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/coreutils" "^1.5.3" + "@lumino/messaging" "^1.4.3" + "@lumino/widgets" "^1.19.0" + react "^17.0.1" + "@jupyterlab/hub-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/hub-extension/-/hub-extension-3.2.0.tgz#e1ada9d70cd9d6033a0b16650e75edbbd6f76f48" @@ -1895,6 +2177,13 @@ dependencies: "@lumino/coreutils" "^1.5.3" +"@jupyterlab/nbformat@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.2.4.tgz#dca9720804c949371d30227a8254de3b9feffc59" + integrity sha512-tEwt+vKAQEqj2smC8B5Myg693/5md3T9Nm3BM3Ix2NYqioCLlnGJ+aYQaOx1bsjyYWGLH/liW26O0NAUB3oEWg== + dependencies: + "@lumino/coreutils" "^1.5.3" + "@jupyterlab/notebook-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/notebook-extension/-/notebook-extension-3.2.0.tgz#cb3ffa503279f9fc63adc109557e0f3b0401ccf5" @@ -1957,6 +2246,35 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" +"@jupyterlab/notebook@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-3.2.4.tgz#e3d946e601bf6df39fb00d69d3e7669eaa1fa15f" + integrity sha512-wth5JW5y90mZEhbYUY5WhWDNQ2kitNXiN6G4lPoA3V3alyAhax0N8WpRfOyd83CyCls9MtPhZM19ELWa0co4rg== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/cells" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/docregistry" "^3.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/rendermime" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/shared-models" "^3.2.4" + "@jupyterlab/statusbar" "^3.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/domutils" "^1.2.3" + "@lumino/dragdrop" "^1.7.1" + "@lumino/messaging" "^1.4.3" + "@lumino/properties" "^1.2.3" + "@lumino/signaling" "^1.4.3" + "@lumino/virtualdom" "^1.8.0" + "@lumino/widgets" "^1.19.0" + react "^17.0.1" + "@jupyterlab/observables@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.2.0.tgz#062b3bedab6ccb9eda42d40851e324c173ceaaa5" @@ -1968,6 +2286,17 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" +"@jupyterlab/observables@^4.2.4": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.2.4.tgz#77be638b9a8b660576087151e275b9e08239dd4a" + integrity sha512-9b1a2+Tmda/Jr8oLMpMhQJAEpMRgILo8unjTnpMCb9RZgOZAwMRs+vItNqrjrapa4OO1vhIFVRWWqmxa5vz/6Q== + dependencies: + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@jupyterlab/outputarea@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-3.2.0.tgz#d476a28af9408f4fdaa98f44683abaa712925d1b" @@ -1988,6 +2317,26 @@ "@lumino/widgets" "^1.19.0" resize-observer-polyfill "^1.5.1" +"@jupyterlab/outputarea@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-3.2.4.tgz#12e1ec4127bdbbad34326de2ac976bb914e69785" + integrity sha512-+JU3bu8SNAURf7orofVBUWiaNtC2b7SSi/Gd6KpJ/c7CnK2XaPZ1BdHD+ioMcAZsGEkymrFcmIvzXTZjpImJDQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/rendermime" "^3.2.4" + "@jupyterlab/rendermime-interfaces" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/properties" "^1.2.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + resize-observer-polyfill "^1.5.1" + "@jupyterlab/pdf-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/pdf-extension/-/pdf-extension-3.2.0.tgz#b1ec14e69aac8e9a21ec42b6dee29fd3b11080c2" @@ -2032,6 +2381,15 @@ "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" +"@jupyterlab/rendermime-interfaces@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.2.4.tgz#671e52465fa4e8fba54faafb21642b9dffea45f5" + integrity sha512-/zVDeW2ZaRMzQW0EFj5v/hjpJNSDfhJfbx96rprYZC8d0qEvm3Bxyyda4CvsRhmaJKMTAQLW+oOEBn1kNbFTmg== + dependencies: + "@jupyterlab/translation" "^3.2.4" + "@lumino/coreutils" "^1.5.3" + "@lumino/widgets" "^1.19.0" + "@jupyterlab/rendermime@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.2.0.tgz#8fded3ea6496645aed3834e16c4210a01c87558e" @@ -2053,6 +2411,27 @@ lodash.escape "^4.0.1" marked "^2.0.0" +"@jupyterlab/rendermime@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.2.4.tgz#b3826621eba13b280092e198dd1c896203a1c48d" + integrity sha512-G/CS2rMLM+rp5xrQ09Aq2Q2w+c3WN2XvLnEM091ELrfl7WGNytu9ms1bGSaM/ZCXw1o7FDRo1t4Yj066XtkB8A== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/codemirror" "^3.2.4" + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/rendermime-interfaces" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/translation" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/messaging" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + lodash.escape "^4.0.1" + marked "^2.0.0" + "@jupyterlab/running-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/running-extension/-/running-extension-3.2.0.tgz#580eac6e1cd774dc275004ffa04d1705b4f82386" @@ -2100,6 +2479,24 @@ node-fetch "^2.6.0" ws "^7.4.6" +"@jupyterlab/services@^6.2.4": + version "6.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.2.4.tgz#bf6262f9807bbf341d02532736607c9fa085fd58" + integrity sha512-WpcKLDkwpq9jUQXUWJJn1cybxwwe8YMC8fdkVnI7RmCg5n0tGSV8+urfUv5Q8DdMdkAJnzSHEC6kIRbGoFpceQ== + dependencies: + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/nbformat" "^3.2.4" + "@jupyterlab/observables" "^4.2.4" + "@jupyterlab/settingregistry" "^3.2.4" + "@jupyterlab/statedb" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/polling" "^1.3.3" + "@lumino/signaling" "^1.4.3" + node-fetch "^2.6.0" + ws "^7.4.6" + "@jupyterlab/settingregistry@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.2.0.tgz#318aa082a8c6567c14b6b7a8e82f304e561876e3" @@ -2113,6 +2510,19 @@ ajv "^6.12.3" json5 "^2.1.1" +"@jupyterlab/settingregistry@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.2.4.tgz#6d863891702769769c4840435602206be06e84a6" + integrity sha512-kyr6y32YTD4S2XGthy17yRa6BdEQyuXqIl2hIKrn9oPdfM0OF3TDkAByB8W79KLQojsKcmGka19LvQov/N4+6A== + dependencies: + "@jupyterlab/statedb" "^3.2.4" + "@lumino/commands" "^1.12.0" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + ajv "^6.12.3" + json5 "^2.1.1" + "@jupyterlab/shared-models@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.2.0.tgz#65a86a417203c32b70dce817388bcfb6185e9d57" @@ -2125,6 +2535,18 @@ y-protocols "^1.0.5" yjs "^13.5.6" +"@jupyterlab/shared-models@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.2.4.tgz#979e000985e1cd3d3d6e96c71d010ec6aa61bb26" + integrity sha512-Jr2Yz5L0GneKhrFpomm3LW5eGDfRaxWt0c+MT/eFXWmqvVkOKW4N3qPEfP1HNIMqagcC1OoN2pvZAWkE3qQYjA== + dependencies: + "@jupyterlab/nbformat" "^3.2.4" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + y-protocols "^1.0.5" + yjs "^13.5.17" + "@jupyterlab/shortcuts-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/shortcuts-extension/-/shortcuts-extension-3.2.0.tgz#56d6713053ab71bf6a87efebd10c17d0e1a01754" @@ -2148,6 +2570,17 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" +"@jupyterlab/statedb@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.2.4.tgz#6581223bf4aac29f2aa8c2fe99e6307c7b88a8a8" + integrity sha512-md9AlnrW1pzZTQiVUIJrZgijB3CsSs2J05V5cywo4/sgjwBTO1YGKQDEi6qtMAeO03gxfomGK7xLpoP+2Uaa2A== + dependencies: + "@lumino/commands" "^1.12.0" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/properties" "^1.2.3" + "@lumino/signaling" "^1.4.3" + "@jupyterlab/statusbar@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.2.0.tgz#b2ab08fcccd01e8a762fb11ba06f40ef163a6f4c" @@ -2168,6 +2601,26 @@ react "^17.0.1" typestyle "^2.0.4" +"@jupyterlab/statusbar@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.2.4.tgz#0d44dcdb354e199c35de5664938dd41a2b276c4f" + integrity sha512-1oxNr926SJkxJ0b+hoHEWaFOnv+LVY6MWmv0wQvVzwCVDaQ3IjLXtOYheSXx7WtP4G3NjH2G/wM4mzqMs1JDbQ== + dependencies: + "@jupyterlab/apputils" "^3.2.4" + "@jupyterlab/codeeditor" "^3.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/translation" "^3.2.4" + "@jupyterlab/ui-components" "^3.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@lumino/widgets" "^1.19.0" + csstype "~3.0.3" + react "^17.0.1" + typestyle "^2.0.4" + "@jupyterlab/terminal-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/terminal-extension/-/terminal-extension-3.2.0.tgz#d5ea9806c00de7fc00f2831073540db11bda21ae" @@ -2304,6 +2757,16 @@ "@jupyterlab/statedb" "^3.2.0" "@lumino/coreutils" "^1.5.3" +"@jupyterlab/translation@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.2.4.tgz#948c548f304c5d2d18878f2a578c8cee5ea43ef4" + integrity sha512-FTXhNw/KRmGGR/stWWyaeyyha3Y7k1jh/dVJIXMO5xlT+zzFHvquGCiMeMZR20P+xBDstrgX8Ei/LhG+gkx0yw== + dependencies: + "@jupyterlab/coreutils" "^5.2.4" + "@jupyterlab/services" "^6.2.4" + "@jupyterlab/statedb" "^3.2.4" + "@lumino/coreutils" "^1.5.3" + "@jupyterlab/ui-components@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.2.0.tgz#3fd50ca99c5e01e32c81ae924e4a0b1c21605b33" @@ -2323,6 +2786,25 @@ react-dom "^17.0.1" typestyle "^2.0.4" +"@jupyterlab/ui-components@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.2.4.tgz#ed31720423e6430ab0d63201b1c944cc26f4ff36" + integrity sha512-uKxv8U/6TdAMbs0kBm142oAx9R4FcPk+CK5pbsBTInq+nvCmUlSYSAFEnuTbfNLeKQlWHdj8N2Q7upLFgfEs2w== + dependencies: + "@blueprintjs/core" "^3.36.0" + "@blueprintjs/select" "^3.15.0" + "@jupyterlab/coreutils" "^5.2.4" + "@lumino/algorithm" "^1.3.3" + "@lumino/commands" "^1.12.0" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + "@lumino/virtualdom" "^1.8.0" + "@lumino/widgets" "^1.19.0" + react "^17.0.1" + react-dom "^17.0.1" + typestyle "^2.0.4" + "@jupyterlab/vega5-extension@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/vega5-extension/-/vega5-extension-3.2.0.tgz#0f4273be47b7772ca13bdb9fdf8a02eaee3b8be9" @@ -3351,6 +3833,14 @@ "@jupyterlab/services" "^6.2.0" "@lumino/algorithm" "^1.6.0" +"@retrolab/documentsearch-extension@file:packages/documentsearch-extension": + version "0.3.13" + dependencies: + "@jupyterlab/application" "^3.2.0" + "@jupyterlab/documentsearch" "^3.2.0" + "@lumino/widgets" "^1.23.0" + "@retrolab/application" "^0.3.13" + "@retrolab/help-extension@file:packages/help-extension": version "0.3.13" dependencies: @@ -9185,6 +9675,13 @@ lib0@^0.2.31, lib0@^0.2.41, lib0@^0.2.42: dependencies: isomorphic.js "^0.2.4" +lib0@^0.2.43: + version "0.2.43" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.43.tgz#1c2ed1fb2e9fe136e92abef7ca56875f2ee66b07" + integrity sha512-MJ1KLoz5p3gljIUBfdjjNuL/wlWHHK6+DrcIRhzSRLvtAu1XNdRtRGATYM51KSTI0P2nxJZFQM8rwCH6ga9KUw== + dependencies: + isomorphic.js "^0.2.4" + license-webpack-plugin@^2.3.14: version "2.3.19" resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.19.tgz#f02720b2b0bcd9ae27fb63f0bd908d9ac9335d6c" @@ -14440,6 +14937,13 @@ y-codemirror@^2.1.1: dependencies: lib0 "^0.2.41" +y-codemirror@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/y-codemirror/-/y-codemirror-3.0.1.tgz#d8a4e43cf46b5b557e0f03b7bbb65773ff436278" + integrity sha512-TsLSoouAZxkxOKbmTj7qdwZNS0lZMVqIdp7/j9EgUUqYj0remZYDGl6VBABrmp9UX1QvX6RoXXqzbNhftgfCbA== + dependencies: + lib0 "^0.2.42" + y-leveldb@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.0.tgz#8b60c1af020252445875ebc70d52666017bcb038" @@ -14565,6 +15069,13 @@ yargs@~17.1.1: y18n "^5.0.5" yargs-parser "^20.2.2" +yjs@^13.5.17: + version "13.5.23" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.23.tgz#ead836e117cf737f7909dcd94509126f9896bf51" + integrity sha512-6FIERqyRmUsUXe8QmwiNuPMPuN/IBIpy/748zvVghcwQICFnpXdrIqpvewVN3bf6G1a677wqCtgkbxQvcDPD5w== + dependencies: + lib0 "^0.2.43" + yjs@^13.5.6: version "13.5.10" resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.10.tgz#7c7ed618b5429c3cef29ec8a30b810b962cb908f" From 5f24af633f7fcee1489006a7bacae9f4b298d94d Mon Sep 17 00:00:00 2001 From: Loic Huder Date: Wed, 8 Dec 2021 09:06:59 +0100 Subject: [PATCH 2/6] Updated snapshots for UI tests --- .../opened-menu-edit-chromium-linux.png | Bin 32236 -> 36583 bytes .../opened-menu-edit-firefox-linux.png | Bin 26290 -> 30532 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ui-tests/test/menus.spec.ts-snapshots/opened-menu-edit-chromium-linux.png b/ui-tests/test/menus.spec.ts-snapshots/opened-menu-edit-chromium-linux.png index 530509abc7de28668eeab91d49d3fa9247af65f2..3857adf5a9f8a1c00cd101adf9be1532767c201a 100644 GIT binary patch delta 19734 zcmb8XcRZJE|39u>R5Z+rv{W)vRw#v{5-O1qGBZN{#V6|y&3SqUMVtgOuJ z`F)<(eSf~+`|-Qi=l92TU0vb*exJwjI$p2mI{aQ-(;u|fi=Oi3=8Y5-6jlBuK8dUv z;sh}>DiUA1xY{!pF1zW1+3_ldzFS9JuRho>zq`;(`Io?H*G{Vlzpw-?C*(MrLMotG15L_gp)xxJDb5RZpEsf^Pj*?W7$*)qhXItqOJ=yj?GV*nB@V9~5@aA+A7AB944i3xW z&0%g~<2{~Y-@~P-<18H<9L|V{%ukfE$SgZ<-6ynLOH1p?wmn~>6(X(2f3BhDQoH;0 zEl;4J`4a*U=JS?KCGh9ZJ8RdiD=#lEC@b5%XV0GU9$KNuLS6f@oIl&~9ujh&K7IP! z*yuaaQyR;de(v14ufZaFtgNi2rlvk6CTfhfWggb4WMX7Yw4FBiRTWVByE(bGuCA!H z6|WT_o}jL>O3_p5$tEbssHmuTTru9=*O&hBCTc=5ytXD;S9WQ6*-yaqfJy%HX^NLG zUk)vJ4%LQl8p~gGj7~O*y%8&U|30^jFQ+y>_8~SlEo0*so}Sc|J{(15Wl_avx_Wzi z4=hg4%={{QdGNtd{g(6R&tJZL`Bv5g{pc@;iYvv=W`du>XX~m!ROHhW;i1%OY z+9f`)mpEoGzB%Zii|po5^Y`OhSRcIDEz0Wr?PVdGbB&<hHJr{g zTnE>c5d#r4;sccAOAhS)|Me<=eX~NSOTv|a)5L?3megyDScy-msT>w_mNxU)MeF_` zE4|hbth}7{(4qHVwLIP23R_yTt}WvDd`e2{ z#(Hro5aLg}Z_K%K9X$9LC90q5^5ltpszF1)&8(h z&UDJHxVV@%SBl!)((>1zYBAlWPa0E$b*?)ON_xF{GgZ92CG`36obl<=_JEq2Yu~?r zr^s+z7NX}=`CL*Wp~}X~`zk`lH_38D*>S#){>at9vZh3>OINN$$cBjiZqFtZRr!w} zr(CygozR1U&x+~}C5c+4_>N6oU0wBYw|()s=$X!2TAoHxPK~x_*CgQ_#fSVDfS3gThXixZ8TlQzi8$}*iYSbsL%xV@&4Xk1nNa=yBi%%u&wq&}C^C{wPEJm?A%rIDLm?H*+0~WhE!($C%I!`wZkNt? zTu$-9E6K;+dbRkbMeZRJ{0$ts;X`L{QMiKncWi; z3DZ!SDlC_Vo?hAXaHGuLesnqXwUCyOfPg*J%x8{He4ma>@6enYsI_07Zba?y>U?D| z?#NNn6Y-EducpTA7N(a<|Mkf9^mIeoP($oJkKBw(E7l9OYEKLMySfUz*%h18jP@Kk zawJ8sR{UOOW~NQ(;w`Juwt}{{y%dDHy86s$dnFprm)L|n>13TMr={i}ZJFjZ28~+g}O`A7Pmdrme8A_6`ou+xbOAL^f_? zDy9}&I(y;5dhg>mGz%VWaQP8?JDsz+xmhLG_D1aTSHF|jW3F#GdGciH2+<`T5E$ql z9j%|3z~y}Ox64ucCr_TB(gIwl=;{1N&aE8Q*3*j;QfSF1#G<34@%(G&eeG~m*bW`K zFwFbCwKc$E_y?+U&1Y1cAHRv(ORc%_BI;*PpYGqk-zg(QfR~q7z;@~=Cdv(6XHij6 zbY`g_Mzvg9Z)`JRihb0a<-oV18?CuxU?3eX=|NdFw0~7ivoT)Pk4I~xV!R5guyDZY z%4|Ma^e+!e$!D5rTeKUsroHs`mcSMWTa6YsH)j^lDsB#~dKb3o+B;%(<)eCjURkpO zCh1#r_Jfk{``OqwDJUr1j8l$Ko4gS%zk!;Xny?&gE5{(JAL($IRmA~wMPH{#z1R3F z+*9=U9ygC|eEmh@oaG3&jEfwATj&dX$Px%*zhS12=gcXtM1 z%M&=09H-Oo_LjX|zj0%dW(nog^t66`)Q&&>)m&!nvZC|O+LbO7c;Y3?RlDR7FnJD#b_b^?2q zMRlOyV{dO-jDlOYZ};@}7Jq)Yu0d*&inT)4rF!m=qGBuhxS-w43A@=*?eU)lCvK-* z9`1?}e;TRSvDVhcvj9ZA!DI8-&)q+B=1fY580&*`F7%@14ID}V zr;YS#!#3>Lv4i5WKi{(>SN!k){Jh3;q@|?fIsN=(C6}p%MPKo=T|?S7*RSse3JVmr zy1JZ)*~GxaMC_!cl|au^%C_XF^ySj64U;h7d`6S?u8=AO3lJO~eGFB9=3)Aqfear|tjhj#4QBLje`udi=yV-xL{jV?t(0Gvc7KE1Q}bQF3m zDaQcK4jnr5M*p(-((4=6UF*sl90Ku%1fWEG-nXJLiGoFnd7HhpwY3){B)SF$o<4rO z4t@4856?@WN<$-~hGmXxG?#+|0&aic0oagEQ#*k zop(^`MNOWAopP#ygrVUHsTX?-8X9hJn28T$(RW|=QfV*5nA*H;n|7fyvBiB4{|h{Y zT(ZuUz5DhlCF^YSTGbWX!*BflcDgZzfS{o1!jyjMI3p9&_b9o8KN8f{2Z|1`K4_+T zoynS+HBUL3dv0Yp9muY`zdtg~VPP=xtN$sPCc;E3Uj@$Whw5Pn;$%IAnbbUmWe}X_%fJS zdd*3PiL|t|x%v4--D+lwc^sr?9v&Q)i%EOKOJD5MD)VARztz;$b;a;QCrZsa!_Dor zfr@T-=15WhPmewPBq+jQz)p!+y3>Y=Q*}CT*@ZIQsG*^;SIjYx<96D3e+a>=`z?@n zx(+xO&2Pi!k=FG2?&n-?s#YyTioRiUl1p>4E{P5B!Jd0~Y{RqttQK3fk6GRkcE+e9 z$4|fR1JC`RXScJ6UPirv0~|!Z24kT(ZPapoNWEnPr)pL)UL&;yg~cFhFMwrYJAT{^ zi2KiAWXR-nqk1x?MCr`@xS;i9?9E4o|U*?J97XGoJLNzrVDkQRyUrOav!CH}`%%zBlTQ^BXYj9Ot?= ziO&682VSavm$(sgy$cXXr{c{qiFosY8dd^5B7!d074Y@;^1@?k(RUciIGn4jfbXp5 zpIl2fR_(AIjx%ez$I3hg*zx}T`=m|j4?XYtJziD#!_^>Zd;6TM7a(#U zK762fF#N*-1l2=gR zIYpd`Fzc&`=#Z3^rIwHzz~+U9(X+64hKC<~@#4k$4I2`5s+gu1lXa^#fe=4j2>|Wg z1gg9XZ%~9$j9Cs05;0Sks3m354Kd&|PGv=kI;Op%I{)Fr8+3Jb@z{QR`tp7YHp;X@ zJ#~6~a|;XI!^2dc=l}E*TPP_ti=XZo;#=<0w**acT6)}lss5wVYgEOXjBofrYZ&IOSr!^VGc`7)dTEDSXozT$O2_y!`xZLPAVV;9tSc&g;qjj`85HL>sS%(HD2dp}zQ_pnZUG%D!35%*@zj zigA>=hKY&#hZULFLP~Xe`!kqF4gMAUCLMvZodgSzEAPpZYc5{CeBHM*(|ps->6<5SYWQZ^*w_r^ zI!#SIpuj=7h4GChO~Tr;d@ifu9~=~ECY@ISqj*l9WKUBEm%(vP{m{SR_wU~WI5%T? zi=6pOlT?J&SjS;j)`y2>e8#KzJ8RyZTX*@&6;o4FIk7L*m6ci;UQ1JTvVF^Ro8>+p zzY#Ou<;s$Dw|pnbqQGb}tj3se_O-vizf_-~&Qd1U5i&(Npn+qn)s|tp_l)(mpc1eK zb;H&)kL~+}&fMtKX4C>D!>20x`t|biCt^Y=>JwuKdM{-bhFDLqCu!_cMlJg%ke~YXc{0)_sz^Sr-vGvnw#}GRxx94;n+N<=lTT_ay>yU z2=DhvyONISwBhEnI9({=FYWF7080!F4c`h|8PDf$5r0E`?(7VKgp>?I{OHjml4yMS z@&v<7Jjic;ZjKw|8BMPQm|dn}4Cst1)yCGA*J@Pd=EqwF?=QWE6aXF*$lqc8*s9ZE zHhQL~i^p+gzTaRGO*|x~Gcwc)UpzBi_adwbk;9p`LKofAH^fO zMoiZx5ZiEliUwnx)on;Qv!%p-sm=SW;PI~JWGix9lA1FlIfpcRR?_8fcwyMp{#Kzr+jX1_G3J$6D6DJ z82HEm-_8UD5W>$J8~5({%5UFvCb~;9va_`?u3x|2MIJj&&h1V(j!;b8s?r?i-l`>P zZouYibrrgtEw}mM88cu` zT{3^cB6bxDR;edT|IdQQe0nubwc%2+p7vZsIkbTL_wQ3o634(ue4U(}H2-{jUNO#b z?Pb5C3w<7TKM|`Imj)q5qwrtfS{eG8t)`P)EAl5x!JQUVFVYXNymTXX<7g6{R zm+rqO#T_Q53igDYwY{!vi}UkPK_0rgN+r&(pO}~cQoZUxGN=n8HRwDfHAIij$jIO} z={PevImy6pyq8#A<}Y%k*2T^rej&oo?<;8j>t}bjxF@qn{pZ0j5*D+~` z@bVI2n0KHo?vQh$JV&@j@@UH{D|9vR`` z=ifAG9BW!2RI(XW%td@%Tm{9h)fm=u#vwepGzdE?H!I27$M_M0ECVIg))$n6HV z)kbr03p-i?*&wv3rR6xV!VP>0CpR<)^2*R~Rj>$gn^DZs{$LD6llFzA8`h zO{kprIApJ0y@}`b#?)ZPEBSJ%-&9UFjtdkc)bJU>t8O?hj_~8%`XG_W>s0wi^#1yF ze0Ho;vBSD&n>J=7`TpG{&%FU9j^bohdHZd_Fza(vGnWjnT>qn1TUDE1Iz31CK zG!%oua}+;Aj?WVu9NwTIyIT?-uG@4Rhkf~2UFENdkq;FCy~0IpEPE_Z0ez7&)pw?ixOv?Ei!P+!+}vCy zwoLR^&{`fozUz(6N!nB(vU~>ho6D*j8yf!-wXXRL01G^Q{=CP7zk_1(qyXjQ7RrUm z*;&Pdi+>l$+_n;INhv9JK|pgBhGJ2NTiMvy@Tv{(dV%*L-^Bdv=~?&rUPA5@9D~sH zi>2Dr&}Vq{YW4%aM%|2K0%!_T&v$hBqVT;51Y@8rGui+0DX8q4oqy`%%adxa4211q7nsrTC7VN;AhkZF!<$XJI?R?A1 zF22|+7?vhtJ?>Ooe8K;;5#yX?2TRYc!3eSdk(}#`QSX%>( zUPjk^^6c3bjD?yO8z7j4nUP8~7fPc5FE5I}9@TIFox^}(9!p-Ysi~n+06Rw(B$!z^ z9;G!g6q^9hu!~4F5fc*=KYw1(VrVzGAgWVzro$I_;F|qSlOQ3Bi_+5a`LdTU<2EIAt0&x??n;N48SDD(}oOi z5xOBss^nO|Qtn+ZB$c9b=WQ?1$ zD{QgAUJ@W~%QRz`-n`LW&KQvvBFjMY%cgmS4(P=_!^5}rlnU5nptu|o7T$wrh8Qmc z4A;Otxt7V}2_&dLwNfk-Bk7&!?lNN?xea2q*0b$anO0-Lwqr2_bSnF)S}BPa`T#8U z6D9Pdd50r|HjYx}0Sr;#T7%WD%CY(LR>bbKt*x!KogMr%g{XvANw%2ivSwzy5WBC( zt1xnLagnk%&a7^AFiE;hyNh?0c7XT4*eCo16ACJ{`#xbh4@rf)UD4eaVp-9DFZ4Gv5sUSD>DpP^-75YrJ0^D7PN zC6S)9jYTw2Ry3uppPqtZKgFdB=dRDMFI#mU1hItradSKhaL|qZmwft}4I4M^q@i&F z$yiue$eI3e8#p90%=NId^|_okE(su-E-MFAHnURZyz$Kv-z>NDKS9L5nQO$q7Mu<# z&hi8wA!fS1Hh=G}UH}m3?v@`|6WjN)n!TbC1GPYSEayC!d}3PK2NVgpamr$yugrAL zi;GJ;*r)5)JpuXDGBWZ&c>zh-gZIkjQY(D8EEl5r{vHO&?1BCv(Q0C;`4J5rhV}Gd zZFk8Ow3_ev1i{2_{1rPUU^97$itfZ6RQ=_E)7#!P1vb9|KJXkLA3xw5r=02rOurNA zBhWo2|4~cT32PWRYP~A$-+xup@uwxtfvu2Rw7f9gQ_4b|NLd0igEqBp)22;Ns9EB5 z9uRl$-sQgc;{-(2@u?|NwT4IFjdQ1AWK;zaqF$6!CBq5NfDy&c)35l(5O@v+c+z6% zIw@~PNPFLZ@Zc^A9`5=Cu%)mWo9pFF9+$b0uGFSUlK3ff`Wp~<|noB-iM)g zB&Md`fRI8fA@>HX={P4^wi5`FPn>2koH!(hL9b@{YFYp8xt!R(kOLGgE*J8K7H%Z?seL?Jd z@ViOw%A-Bpcg}_?g}_zCR>IVNN;0~rsG}4hbGi_KIAED?{rpLz=;^a(U9d^Wm1jR} zgsPYtX`M|J%n!3hA3#fmVARfQ6d4&Qg|9_lkCqSBc64;aLGFg-0hPFZYm4jH4)Bp+ zXoodPgtiPB41jGOt)4GR0S>=}4*b^7Z_Urq(fDs0i;9YD`n(nE&EJuJX-g^FS3?@lYp>%A=Z1f1=%VqsV4S+r$42b&NrWY*kdHM zQH{M}#iT9cCHQC}vFb>1ir9a2|NgTc#0i17lrtRAYsx&s>;=xJ|8#(^QQY1hgpX_n z)DLs{l8g+g_yCBmE$Lr!>jqKV23;XuJ^w1YbY+TBLG>>=Y|omXOY?t7PXlU@_^>_5 zFlh&rQAdTG)ZJbeDNA|`ICY;4n|U=g3C$WkKET(Q(wcC;Dhv#8@z~B)7-)C3wR!Zv zA4(lDoiE#v7`I_;Q*VeO`nN3KizFRYUsqs}+^Ec~h^i0{V?)p#yWjVgRu;#A6aHY% z#x7ED!>1(OE%eccOY0)fnwcdj|Axz(%4*yTG%gY-W9u_;@ zueiG!jUG7EacM$|dD~!?Y0pORGxpQ*Q(Ylrb=KGp2JSngAbS^2LaO=Z{ofKzdn7S; z1ucIwoPV-)4W;gBcDF)Uh)4yjg%R#TEDx)1-77#NB_#!#vEfaiXW-knQ8S9fc;mKH z2KCn6f3Hu+Xeut_cw_xZ-AdlHFmm`ai`ecKItCNEDZ?~;VHv;+w(u+EdV)&+hdYZ11k^~ zl5_6`lOssY@Z!a%LOnSSi>J5kIbGb;^cDa&S)*tp0zr7kLTo*_JZa)nV8trESkKq@ zRDJ*c3T^(RcE#=vyD<@n-^>A?_K;QK9c=gv-x)*wn2wH)?3ouyfv@}eT;5I;Jok&e z?Z4Fg>dVadiMXQ#PKg$FPr}h{7-li}oq+kTtuTq9B%Fk%x^veqm?wU=Vme5ky#Mgw zJ7zfv4ZgqMfj+V0hVEg7vp%rW!yyB z|J6qlwfa2g>jpC7QJ+yyKyT>&{rfAi@`r^2c1;!Z?}@3Y_n`fF!^ha!uAZJEgf^hb zrZRn=1~>m?)+fDnYl`eLz}2oDI|^VY`<>LiitenMZK(|ny||=A!_e^ZwQDsB9^ohY z@7lanQDwaledRClhYI54V>jjs1shgQi^>3^cZiZzda_Vu$cL@GfmZxYZ$vKX1a<%K zNBDo3;8O9UFoQ@O^*8&nF3spR=H68m6_w~OM>Dfm4T%WBFBRz5NQ?Z~xpOB9`1s7ZENYf}7_sm0geO!o#uK&duSk`3>nCpiW)42h^Y-fH)dk5IUMS7fIr;ott!6duMzH$dnJ?U`D zGH@Mrb6A*SJ#yp;39K=@=uX`F{AdFerAOjfYisMoQUm?!W!+FDd4PAfY}$<;uC zP&ET72?-5|4jW(K4z5x@FOXbOh2xpD{Qc7H1})BU3P>0A563hX-w5^X}aX@QYF@JK>gLWwZ$dQ+{{mt9zW}AkWoMV?s3)42WyCp*%j4 z`asVSe>u^=gdG<6j9OAck&?h>LiG|rA#d*u*$YcY?&KCVyOC4CaP_kv&&td1#G9dj zDV?Ofk5BvxFfoG!3%!_3@gU5HF7nF92W-IC_N){kArU>{(mj8yif861v|*qnH+MA% zJbC_=0k2*?g7gWE&A|SBLIM}b=>!G+FcH6JS==Kf4E!-=fl=teQ4B7$bq#Ip5=b7> zB6*MjEw&=02TCltywX+K@jY;{x`JwAy^d;i!v?*E7;k?wpP-r+C+<^`zq+=ntRvPv z7We&n7>b@^_|g2;6+0Yxx2gf_w#?O!*XP`+CwG;^t7L|G$1Z+)^t)wz{Qh(&PH^hZ zX19t4`0*}^HI3M>)CD1%$-6J}MO0N)n={RILl30~2JZbJ8}bcKhs>$8Bwjwg_n--+ z@Csdr7J>oPtyHyxLWGb%6iPiKMQ(Fzf&8g&LBa-h=emSJxM0#o0%AapH|s6ip`xnV z@L27P7}}NFR@1}j%mmC{}jHlM}iIp5SyZc>;jCu}}SF!BQN6QhEy&a4^%VxP(zDeV! z^uNEaQFo?dz3|X?k__2MANXH~G%v6EscmLm8Ql7A&XtLhwYc&kCz=2J$0XZ z%M;@Yz-F>u>sW%LGmS)SO<_8;e7Klj015@|=eWT?UT)oU+TF>C0x759;aguk_8@s6 zOezid??FDk-SqVIk}vj_0|Ll2lwyyRIXA@SEbI{9-GkSVmdGGh^GG}Puz)~DO%fm$ zNn-v#;xK?v1u~7^sBU&B719VfzX}M51qnJsfMxlCt$c@nN=mL3fGXaQKfs2xF(WFT z?l|}c#*!j*1KH3E!$6=;f*DX6c8)A5p#LMI-kwe15WT=d3RNP4Q7R+XwY;r+MejSv|d@s9_BlmO#l~ z)Bs6|W0m2{n^`N=U1;<0P;e!qRWi+@f8^WzIfAT{JF^IrhvZ}ErjIvn)5OH4$ocb4 z7%xc&PO^3D*88TWU9f{Uo|TpL#H9O7IG1R*IhI4BW@3n zb8%^@Zzc=tg?ZknDEfG%2?`}IpcTyh%)h|f3j%=T6K z)MEPV5dHcy%``y02qV&x+!SsdqB$J<**fp|5@EcVwfN7Gzq;u0Ddx^f!}3>$30jf$ ztQUChe)*Sq_y6gV|Gi1t$(dQKq2p46PG*EN_`@KCSDP}#e)3Xi!t*3t=Rm_KC4&f1 zvhZ}>q!>2Ma5eZ0ammo|_v?|*=RvgQ(M3bDSXk90U&SsGq(q)+{#U>Tx{qvqDVhRI zlU|(eUd+(Ff@aQSOu1P%BoPx=e3a;N3#J|B`PN?O) zg*vbcF-bHH{BSq=s)Xd_(bjZN2-`gv3`yFR7cX6sd+aXV1C7QW{gM13FzBce2uWZE zWTb~1Ml$SEu)IT@oWxbtNW?mps#lk&k+ao+)adNuVmi?+K?=zb@}V&u!BGUD12lXK zWqjktjZkxv?B~rOLs5Um$0jdrAO;K^bI42jU zB0r+azygyn(f+jDONbu1_v51m3ORz)9wHmy;wMn3g&ATbHuX224xf;;$pO5*SUi=u zg-=`&9fPG$*;{>rY9>F*zN1^G25*GM^BR|lpx#zvyQmy&Ih^Bb=2hB7>}JU5OkCI| z_?1P-q@xUvHLQSxVR*7|+szmPUckyaz|Q_0{mBJcIZyKRR1oY5cXV`~U{8tVX?hA^ zjvfdq24cXSAOr@}sx(=_fq`Ektkw@yDXQ5>EPEXS2LY?P5*zYJ$?PAjoWDCcZw&IC ztr-XH<3}-$2GJlxXJBuV1w_B7aZwJm<)Mp01&NnoD z5rwP$PiVx?nEcJ3h!0V_1MuCrz`~57zjk6b~T87KrF%KZP{20CV*Z;~^y5w&l(@gSWzKY8&2^SCxi zTL#JH2}HQ7gGGiW(Mw=g-2OfDckDW2@s0Q^U4A2!sU}5V0an8`&PDk*l(I^TKvx4; z^UxW@HINoPey&CQjBWtG3CS7|tpAQv4tJci|JJNogZ^5Vpe{xpd-Q*6Xkaq!W0225 z|32e>QcY4*(=B}W_26u|F#5EZwj7(+0J&x$Mg(GF-_S?Fi@VUuNb`eik&q)uKzs{< z9Z5+^NaQ;te9tk4y}cQA+ehd3pKGTesc?0!EI`jg%CYXFCs^I;f6j0eo=!iy*3m0YIz8ygzP(&oRU*tD$?06wRLWbf-K&9atMNfuiG1^Hk zdfJF+p&(Zt!w$jOpAi3YW?JsyJt-*w4j~qYRR46bF2_;S#LWzZ;bd|>05;shYVbhf z5?rF9!I(vBy&Tv7tdKT`0)|oof2+>a=(gxy2BetK}f|@kQW=#rO18~ zRf$Up>ptUbhYXA45lbP-xX)+?fEt%JH#bMgY)lj01SW^6qjIf!uj)h^(rj&8yZilTNj=u!+t(#fs{8JI?sp?B>nf;U;bFIzrS)p zxP#g1T%lsVql4(ez+Xl%`k5fEHKCK#E!?&Gn>HHV$)%L!40S82GeMb1b;HHRej#I4 zwd+88q!$a)M#i3yl0v!vdd`*i4sC`45B3Sb>We3f`j8_ATa1O@?U(;}GsKyux=PFu zIEqI5@c)vjqGJ&M`SM|;IEzR=G;r7-R3e!Th?)aPC4)mkd{X`VMn(dE!LEzu_XtD>nePzkdBn zF>1Z(VU9998(w=2@wx+xxCD5TlasSPR&gvb!T06M0#Jbr+v($w2@%8A(9w}Z#kq~- z=Ulh`^#s9ah=T^9mJ)IZ%wEeB`<8`dFO)21cJ|l05@FO#<`@RxA1B#bI6D#%Moi0AG?Dge|8 z@w;Bco1p$~LL3%<5mI8jmg{U6`!^)u8yGtw_DHCx?1ezz4O#;-1ud2e`Adp9%w;n2 zLBPqDpsRJo^$JZRqbo@L!GM>b`$67^p`|SW$Uqz|9HSDea#Knrif}wJ2~Pbtw)3AU6Co9m3$aiX;df5noZsw)6n2 zG$4L_EXUr|fWV1}s9sU9s|V)P>&VHx*(D4k0=gco%&7i52;o4rqs8qR?d?LxV~JuB zQ4h%?up#}XPpn7;!mcp?-NXZ|bV*jWA5;i`QHQI0kR37hkEbPoN8!24s;c_njv;$K zH?9$LJ-U$CW0G?Y7%da5mJFXD@r#s?rluw=mu|p}NL;t#)BnC6mr3@Eb;!E~&qX2{ z$3)(lHuKTe)^e4v4Z`!i6S2!=`KO=lQ_-kW>SJdW0`wx%uw>aECoZN)=zfekJ_}C3NObZT;Qy+Sl` z4$b4J&yf2?mi5?`%a@Uq=ZBuYI54l?f!nVl9PrdIL{eIqk$H|WYE8XY3Qj_%7=`-c zl~a#Xz+Nm_xfUKCuHTU(NTxJFQQ2pyiA&Db9a#KQ+m(x$KS6SN~gx5oj~Y-0v4To z5g!Y$E`?iAUSh4JhW;1KB;Ox16g-9?wJSIY<&~A|CUwI+=`>hZwvbn0Q&M`tWT3dX zz}&|}eTM8yUX89_H14x-N1j*<_W@uLh(m6NX@Wg6LmF07OG|wPL1tyrMMt-Uuz`9c zoq@KtocdON!zM4(1^NUi=|M4K(c#~%Yxj$ z9f}4rV*0p}jjXLbT{e61N%F=4-cHbQNdO)qY1soFyO45{rsmq-PP^yNoN}@12x-Y10q`isauV1%XSm;Sn- z{!gg#Ki$Im*WX-QuA&OtKD7#p0pwhbd-oQ5h2@hhOhn^^AV}t#mnTZDZb88sT%ks* zx`3Sq!9Sj2q^#`!!)CscE8pwwTQb3o33K?xgdAY^UUQ2zB)i4Wx)EWx#9d78BX*36 zwjvT&`QM8+C_R0JBx?KAbbB&C z3ZXNm=h|);aGF|F202@&`R^MWbAogrsJ9L;4Td905^LnX$osoUr<<4%Ci_>NaHD-4 zzz1gPj(z*8U|EpAIROQQoru*p@9v|427x>~q)f$DWawlt0xtnA;(+7n-k{r%#v*tU z_T&RDX~GDllaeYuu$W7%imtYHEU)reESv5nX4t15*~@7eDJth(xpU%UxcS9yU*hnI zuhD*{I?u~j&e0PGwaS||Kdak6AXGE1?ew`Jt|p2`Rf{VkclOWux<8?h*U;`YoL#=S zHD$KLeEYUzM8pfo#e9*_$qo|#fUPQ6|8RmW*+qWMsNl9%o zGBO%6pC|8lbaqmI#%Pfh*sEhnSf=T@Z*WbF9}V4>=Rs*yqL{o?-oqb!>J}pKK?xiZAN6y_4%r2;5J!pd7^jWjTI<7 z87iEPtIJjha2}dlIe)qCuD<>==#LNT(m*Anr1H{JQoN)i1c;S0UShJZ%MZc%E$uU# zKvk&DHrLdA258VTF=1oaiW^SJ(Vu=)R8WqLj6ATke0A~A9IoS$@xum7&(b0cej)>d zSKWSMgK_$v$T}syFC!OK+t)?KX4iuB`h|q_1KPxJ<##5;#GzsB*zVe3ecz1GdXak5BsEJ$77P zEEt;&AI{2py~VYtSd(YEd1Br^=EIZDF*e`Ik*ufm_{{tET~KW=d`2;U>iMk`lB%lh zKBc<6j60vLN9!EQ6(8{N_TI5|qmqis`_xog)yDL|62>QT^*V$`j<9zD4mo(8>)@dN zXlK5xg~h2z*^n<|vnF%~p0~BvM4!s){2sx*+nM(4(Kj@_ zzF5*@ikW}isMRAR+9M>rJ^r?gYJ2+cD?>va_)Qm;?0q-+u7qc1`axjjNasI&da~6d zU+%^Y32p7exPNvkUVGro7S#b`;g*;J};zbq;U|TYiejJ z=~BGK1nuis)?DFg<3Lt+_H11K1EH$PN#1SSwhiUBv?zzw9!0C|HOq7uz9%fNXyrMB zfAJ3u597(NE55saoP4!rL%Om~<%IZnUSUF5#@zgmkI{t#J3d54He5Qz!*h3@ zY)DQ$@f?Vhmxm|xn?@1$+rYqH(8}y!8pDV;JkqM|A}#k++k@to9fgF2=O>6#mWHu2 z77rdo#lC7C`4AufVt#%;KbP0)!2_@IyO{VzNhe}rV+E~7_j=_|&M!LxFGod1U8BnL z(UwzJum1jhCs=mj;DhdI+f3-NdCP{~_XUtb!d-=5NT)}jrc^kkZrq^75lBf%p`f93 zA%FP|wxADsa0hWCJ2f>mz}WoMl^y_jM3^Q9Y7d%a?ln#ixG(Tkt@7)Ng}X~OV>B#6 z8rRSHD>q3i@NfZ}^QV1VAjXVb#4l|zlzJq)Swnay?%TJ%{JBfK>BagGnnKG%`1LJm z2mjxg9sgaUG2x7J}4=t3`K|=)AqX z`A(ghK>DlaflqKH+~xI;&s9`ZNDCR?zwhPm&!m~y^uY*6>m)5LE&71Z8D`evF7tN< z{DOpFc~cVu8Bhqlwizt}=!Cq}hC=U!9CA3F(X$kpu3O~==|L!8eo77e;Db8_zEwKU zN_!qyS=H6ozwZzO#l>7Y(PCv|;|Jz~ox3j-ME;5p=zJy$0l=j>w$pAHikgWGUH8dg z)$5Cg?hEX_ev`QQy}kVkfczz`eT%%Kr06dbX10o=;)}2mheBL;`;STzBLBTnk1kwq?T@80n&tz=< zUt^|kBkP{U50k%{s9JQ<9me$z&(bv)kGyt& z@d9Q~5qjO=z`&h5cPQ%kX6qwqG>Lsp?p&|Suid=)q_R(bY#TK-`jo8$0A8>d@#2HN zvp6dS-<5+qpN&rqDy)6@In7}p>nb194TqG})QRz~^8~M-JLL~~bdwI7{(TnqSFUWs zrG~SPY4qD&qhn&$?%(+gO20U-Uz_PiD0$x=Zcw+e5d`JFo2=9}y2OnIt<~G@ggb~D z{znEM_#+z@rUjaMF+yH=MuS1JHqpfbEn@jg!KR-R*7dX7UDs76IoZEu+xaZ4S&!3~ zI2d#_-&9@v>9W zD;VW%^Z!uW)^=G@vGKOP`sPHj?S>xJeP-lu3Lv5K)D+*~1ExAYn~ClXxY0akFIrJq zxn=!Yh9?E6v^8gsdy6+(9C%sgGa^I;UFG%L>XqLR7#w`Ww{i{lU;XEVf8t2w!h$Uw zJ$-{ApSLtF*<3gsuwn9K6}VX{aXJ9M#Y@s?6Jnw-8N+By{Iu@huMrwJ2Y*SdeBX9g zo~`SOxG_VpMmWhI^fi@y7L;$5u64^>jU7qb!de_)Ca^cV<=1_I`;G#81%j?lH}six zS!Pez=DzXu?Xk>mw?4ysq7q#tDK9Vn5%smu^a({?OG^GNVywlEEu2#;Sq@s`YmU#I xVfI|;$GLEfT}LPWv`BJgyUf4q1AoM7&Bv`W_k4SV-+o4MN#g2-c=0=r{trMF54HdR delta 15353 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 A!vFvP diff --git a/ui-tests/test/menus.spec.ts-snapshots/opened-menu-edit-firefox-linux.png b/ui-tests/test/menus.spec.ts-snapshots/opened-menu-edit-firefox-linux.png index 75d5fa45ac8c7c401b1fea499b24f55c95e973fb..03653b979c66782844cd7844b4be32c1e2a7d9ac 100644 GIT binary patch literal 30532 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%0DU# zxojSB6WE4mxk=q&x&assq_uvjiFsloCBG;osP=T`16VS{9ZvF*#sN!qfMMae<}etS zs1OGu6~+V9@RRlrphs@Elv0~lUNQS;y3;mnUZY#X+cj{~C~QB6GL^dGYwA|wPG$J0 zgIy5tgY$@Cb^rcXXJs=4Ce!?&g*l)a=FaPcV@n!}?%WwzdvMiPQe*sE_ycWQl(d!2 zG(FqPGKT8^p~*f-xwI*)F(f!xgpeUW=LfqmgK2u~iR;jAs_vp7+JXV9ewVeneV`GD zZ@oPzVC_4@lJbn8Z$4hN*c63v?g#PmD zuM%sN{+sFY0FboAG)9oJxVELPMjOg>)+aC<`vO49b4SB-wEWSYI2vb=H)k5g$C-=P@;49qs-MP7!?F#=iI6R;6FKM}K<~{t9?}u~M zr}cYlr(M+zXtB&j79ezHl*B5m$i}$29nYHhhC1t`Hg5q8*`@I^@8xWO6z5SbWwU3_ z6h{P@Yw%rd5!e7z0S7<^-Zt+LNH#wpANm|Y9rX32c_xb0`Nfp(RS^lmgN3NRG01<#IKHzZd;6a@PuhGn5fkD%2inUM-r5lM^*gmB) zf$=q&24##Iv3k>~Gchj*Qf(DHg+lzPvE2w4mlfmBTd4Xa24kVYF-PZ0tFzimV5MX6 zuCNph{U~4GUhqx{c}Q7Z`5zWUtP|ADJTZmZE5Mbdo-(xjX;>Wr|@)fn28zZ zoRgbgCUa(xe*e*@HO!F@)|pI&21c#tf_@Lj4V}eCpDrnne+GJ^w2MTcVBEnej-4=J z;>63~7-ttZ^(9(DNN=eN!v#Yw4GsJ2*RTE4+}8F3N$vy!dunkWPd~$b{!9Jr#A($` z$8pnVLT+9=HhRY;x6QY@nu>1&_<;Epjl~rm<4yvGv6sZ%#4c~LuWzcuWH+~URu>pk zz+qes`xfOMO-7LQ-s-x#%ot-XM|8?##*{IC{Wu=ySgXF)*4{p$611t?;x6=1+=%LK ziv<@{UZ#D37~6L4+`4B^0metBH_z2Qzuewb4i=CbMmI?3!sO2QQ>Q02&6sh!i*`*kKiaW02a z#p9RN)uqdD_9sMs!;N_tS{J5@>GhG2f#vxT1UP(ZzN3?&RzwanpRzTjvUL2S5RbWY zk45-heMetHo8ivy<7+|riw-$1Ke$a;K;Ul&s$vA0K{g`%l;q@9Cr((6Ehf=p;u~o@)H1tHJ_rjFJ)hfP9SFbTpxJW0pBBMvGGex3c&b<{kDii*m zrXmsV4pw19mOjA=erNic*f5f)|v%Bf785EHdzzIWPOb(Mv=`GjoGrluxBI@Vx4pZvYI2;$RchlTN0t4SQ@ zrN8Z%=S7m>?lQjg{@}7A!)WK};o--v3jG@+i=@CR0OBgdhrV0$XDP#G&O{15 z;M#lk!koE{%*PE1Yl@y`Z;?k<{~)EU`|#n*i%vhIZ`?j;+U%P zza!UcO%yT8hc#zbC7&zisdo}jJ!UY_i3{SQTXS!~t$}8kQDS{Zill7&yN(*(*n?=v zdXy02cXCJ2${icmvBeP70e3!Py~#t(z8)P=+N+aOb$SsMj5 zq3~ekhZoY=eeuP`Uqfx!x6m=PMGG7f-GbLz!Nnp+4fpv-YU;$tGkvy@`s#E|zr_uY z)X4i$GMKP_jWxl!TQ8o-jfMeo?sf@7-_476S!O396|z-m(r+0*2uOJp7{(1c)-@*T z=~M3)`q}K36syKWvK?QoV43A|J_+U=w^7Ex*q>sPGI#E&lG@qUdu^A!J0D>&-ocTY zH!#ENI1T_1=&nz1+Se|?!(;uwGX4o0n?1oF6Au|4@+qc$HDJWtrGg*`7wmrT+-u}b z*dJ3Y&x1>o7`?A(ur#|`P|&6f039gF{ECmjl4a+}W@y|B&R`YC)we31mgl3y8_mk% zjfM;va^vRB;ow)e7!;W80=H#>vzT&n;?>XF#Zs+*m5zfXZcQQVyPTZUAI=U$D;J}5 z=G+t&kHes=qM_L50R;#XT+H-O+4WW+aF4W0D4Mq`Cb7uU!h(UyR`6${HD^u~ED<~5 zF&-WjJQb-kNGP}O-E*fP0?D8Ba4PNPrG(`2{98@Y3aT&PY=uwHQh-G!*Oa?Zu7-6} z#GXY>g8b^?tb||Gb`Z)Xu?(b07z>9p&&m zZX_C$bXzq$4WT^63eM(m4OBD&6r6~B7my7=IK!Oo+_cP=Ga&)67GQ=!M*vrxgD`zO zQ;KWdyu1W5V4tsHssLd+Q)ZFD)PH=>y9vjR9u=+xwUsoG$V=olf@Sx+%=lemL^$JtkC{SFjnWu)a^cK(Pz&Mf=&Qj%FsE4z~;N@#!hgw}rD4 zJNM{uSf5zUEV3(y77X>HI|bW(HdLLcI$T@}_A)8YNMBdh;+;dQ4$4W0-!5I6ZB@@E zA=b8`K)(W?8`>a6;9fIK-A(v_sHmZ$5#(Hg7H%GZJ+L(Ntrd6(&2KCp$(KHA!ie!Z zFE6jO#m$sPQ&%%CW7A4G?btkRMcOaFjOjU<=t}aqaWaL!6luQIzeSv*ox7V|4l2vU zIO<7n0zNjpCB5e9Nf;sFq~_60+h*qO+_Puag7s-irLs7veIE_(x0KD9EvHs>c8!~$ zuJOl|6ALZ)hSGD;@&HUw0HpRB4O%0v%k(c=JVL_gevTC@enTsxXJ8<#L@lu4f*M1j ze;1;Nb-*BW5lr~~we5+=dFIGE6J`d_2-MkI71;f6aBTQt)PMNY6y(x#AP=BJ(3v;TcndElS zNFNn-)*3vIF8&_jZ8LOe(JY(OSy`WRD8}!n!j>;w=4qEuIQ^H7X1bei$B+HQ%*5u; zRH{K(2MaQ?Ww>YjHNa60irG(5z!ZVLEWfZ&=}|&+i``MIc`2bNCfHm^MLDkOI~v46{CQtlUjBT;`t{dl^yslOoEQB0udAQ0 zZ(k~q?-quKH@;PWlYFJDUp!-_Z`!U-ED6p}%^&1vYkf1>yg2V{WaaOJKfI5+GOfX= zy1d*fFE@8&Eon}Ee&lSBuK&<+b!f;IF6HN8FRmY|Up!QmYUtD`amj z`}h3R`HuU(&-b3c^T&CdQ(V_)yx*_abG_a-Ppc}eVPIpRqM}-J;`mW@Dk^F@DykKS z>1gmLZOr>a$Dbo81TwM1?Q{-x*kL9L> zO9}q5b!!ANYM$5V$4?KZI$8?6yrwCTq+~t0A}POCGbw4)=Ck_+z4y_-o0wlIuCbGA z)utz3=56)u^>?L{SR&8CS_jP020tF~+n3JNkU4P=jMH8^u--I+6I zDr3zRUN(|F=C>TUv}$Q-X>y>RC84&gwa`6u)_J7$`RmuOTc%7aB0i)UmrGfg)+g&v z_Scph&-KbLpBQN^j4AibAil0+r?_~Sw>OoYy?tua&{-`ljnk(O9Xdqi>gr1MqqjHs z!GpSCvF6onFWqv;WVlmC!%!rz+Yi?6}Q-Q0! zf9%`D#C`XJgRfXvkdo)8o^f!JCVDIJg=3=~N2tWCnr~E?th~_i?wU%3$jy=x#jED# zsSOs&qoE-okLw5c`1w~xDEU%TQ`t)ZKn)I?8(Mi0A`16}Z^Ro)F2CY8~$ zWd$j3mUQUJcwT82idKXTMO2u0Qab#5$(#xW`^d{n?mj*~QhLdbqvy_^eOzUhn}N^NA1(E21b_Y{Ld<2JC4DmLtcllMY(2@f zWRPXu7O0ufJy9v&J3Z8N_T0Ht_Zcf(M4Q*LELDP5ipe`a`nTz;+XC68=~!62I_g{V z7a2cCid*wwG0J(&tz~6ZR8*vy8EMn%ac3Y)I}hJ|^yp5}g$p0=axGxHa0v^mYdbY% zS-vkVy_|afwN8?iTEexpmYY~vFJEx->dAc4b1JY*6TCOBwADY!LrRjeWmXD1s;ij{mJf5cpsHXbT%jDk>10KeqO2 z)z!?&p{6jr&GCten5*vU2I>nf4MR@fs;dvM1yE*ZFN&~*%X`Vq47X@JXvnhE%^&FP z?mlp}W=~3^om3QQvP$WwqTQtAp zPUiXV5qk&v`yHfi-MST0zh=#v?GiRrNt)%e6TQ-fvh;Fe&YFgXLD&=vlrg;=8*2aJ zB2KS`q7Xif*XQ@u)YseheqmQQa-^w6(Y+|!x{WLr22NGV7J%6Xw05naHfRwzkTlqH)!qIzQaL85me%Bz!L- z;+2e?L4W_Puus@YH}Bke-{+85Fk&O|JcC%rju5@gBEN9= zurJNM(9l||(Y`4+Ha0fB)<_vw;f96=%f`I|0w@6|=*bHUq)V4C(=#)h^n4Ciu4sC& zuIL{q@D| zQVz$pdG_wT6(#MwHzh?s|9VP_5VQXg;=zcb)NW5{H>W@6-BIk%|J<;U zUM@aipd^@^y!D{Te#=IYFk{rW{actGs_+

vISR4LzZ+Kcs%SfHS&@Kd0x* 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


jc#3tkCyN`>PW!$4?}Z9a{& z2dW09(3{tpF_94x$(Y-Y?q>vGD&{Y0IVOulM5wQjj7;+-9Sn6KcCS22-(du|1JDjo zT7Gddxb`(JpKu^hV)^;`@m(2iS@w9HVCx!&hAOtecKu{Fz^GK`B ze{$>JGcNCW-{155J{ex@2?OG5iQ*NGMOt5*&q0p_a}&vajqrz4-5US9HWCry&b z9PlS*32-!%YgG?W2n++m#%KAAw-7{^XqRV6R1&bqw6(CYe3Z?O0g;JuEuh#W4E|d7 zbZ`s11YR}^1zromRwaIn8C5?bqaoxd&04y1)HLo85A!)rr5JF4Pc`kA#w%F;2ACFF z4lio0z&ZQrK5NntDO50W*cEZNQzQY~dRpfwm7hy;;y6>2;loqkTW^Y_ccdR@{@)qe zY~!GbXvek8rVg(PX)4xNnnxM#gA1jb;<9G7OUq1xlE_JbJJcpW8t!c+wT2l-Eab?I zL{0sWP1i`5xV zXCv|-n%uU@9*g%x?CtHa)1d99Hpvvq^c>l6v8Gj%wX<0Yp4g|7?k{4u{k}xMc^>|d z=>*O)f6fcJZj;~-3^V6`k6qkxPAZ8C!`cO`KrGY}B!iGrZ9tF5m1E7D18Vag`C?9V z$*vP^gV2Cl$^$$Vv$D${&a%sa~B}QFH3-iCVr3DpuN+m)2z59PB)2Od;WL=vV5Z zs&3!&xdE^yd`{@inEHH#O102rgcv<`Eo;{#?`#Iqk$InW%;0KD%O+eoa78zX0i5x} z<6GV}Z=UHs!O1_Ppm21}6TVtHYvoUmm@Ab?JmiBHc=y8)eD=hMoWL=%@8iwtBwf== zO_J6BRCfU0;8>CA4?kT)=?(|@FDdI&4UbiI5&=q6tbcqOC>STkM$L5w_Tz_7)yJ0~GHAcB|^CRdo@WRpym4#@sszdX`rU zAYKE~2$)~JVXi-Bl}AY5>HJRu++ZWC;_q&9?;)EI& zWhW1Dx>jRV3i$lJ$VhZLH~LMkUy$=}b%zdJqSHX}(@NpIY(3HZV&lz%);X4z8(8*i z5RFsy=#qJO$j}uFaav%~L`i)$xCz(=&G|vAQV!LmJDqIMv8v$Xq!abvQUmo)i z-sN&W%qs_9@@;Di3qKANeMzG-_Rbre18n8w+4y%Ck^HxdtDjv2G=hT3O{Ge!gn!!3 zjCvtB&1#o5$pbj2EGjr7pq=xtr-ifyb%}6-USn1T?o9N6V-&QZ?Lf^%+wOr6ZQ5O6 zc40e5CXFE4nmBglKeh}3F38R$)1JA$74sun(N7)wuON^KEVO!|rwJGxv|UCv7F%7WGB(JWlE+@s_+RDyFe)-W XdhOw2)BC)OMzQoGcb5~3{9^tBW}_Fa From 38a6166b23d31ac252b4c3f8209a21b6198ee66e Mon Sep 17 00:00:00 2001 From: Loic Huder Date: Tue, 21 Dec 2021 17:00:59 +0100 Subject: [PATCH 3/6] Add a plugin to disable document search shortcut --- .../documentsearch-extension/src/index.ts | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/documentsearch-extension/src/index.ts b/packages/documentsearch-extension/src/index.ts index 7ec5aedf..7a116efd 100644 --- a/packages/documentsearch-extension/src/index.ts +++ b/packages/documentsearch-extension/src/index.ts @@ -3,6 +3,7 @@ import { JupyterFrontEndPlugin } from '@jupyterlab/application'; import { ISearchProviderRegistry } from '@jupyterlab/documentsearch'; +import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { IRetroShell } from '@retrolab/application'; import { Widget } from '@lumino/widgets'; @@ -51,4 +52,29 @@ const retroShellWidgetListener: JupyterFrontEndPlugin = { } }; -export default [retroShellWidgetListener]; +const disableShortcut: JupyterFrontEndPlugin = { + id: '@retrolab/documentsearch-extension:disableShortcut', + requires: [ISettingRegistry], + autoStart: true, + activate: async (app: JupyterFrontEnd, registry: ISettingRegistry) => { + const docSearchShortcut = registry.plugins[ + '@jupyterlab/documentsearch-extension:plugin' + ]?.schema['jupyter.lab.shortcuts']?.find( + shortcut => shortcut.command === 'documentsearch:start' + ); + + if (docSearchShortcut) { + docSearchShortcut.disabled = true; + } + } +}; + +/** + * Export the plugins as default. + */ +const plugins: JupyterFrontEndPlugin[] = [ + retroShellWidgetListener, + disableShortcut +]; + +export default plugins; From 55915e63e88331197f2b952cdaef69b805697ad6 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 24 Dec 2021 15:19:41 +0100 Subject: [PATCH 4/6] Switch to declarative keyboard shortcuts --- app/package.json | 7 +++-- .../documentsearch-extension/package.json | 3 +- .../schema/retroShellWidgetListener.json | 15 ++++++++++ .../documentsearch-extension/src/index.ts | 28 ++++--------------- 4 files changed, 28 insertions(+), 25 deletions(-) create mode 100644 packages/documentsearch-extension/schema/retroShellWidgetListener.json diff --git a/app/package.json b/app/package.json index abbc95ca..563be058 100644 --- a/app/package.json +++ b/app/package.json @@ -27,8 +27,8 @@ "@jupyterlab/docmanager-extension": "~3.2.0", "@jupyterlab/docprovider": "~3.2.0", "@jupyterlab/docprovider-extension": "~3.2.0", - "@jupyterlab/documentsearch": "~3.2.0", - "@jupyterlab/documentsearch-extension": "~3.2.0", + "@jupyterlab/documentsearch": "~3.2.4", + "@jupyterlab/documentsearch-extension": "~3.2.4", "@jupyterlab/filebrowser": "~3.2.0", "@jupyterlab/filebrowser-extension": "~3.2.0", "@jupyterlab/fileeditor": "~3.2.0", @@ -80,6 +80,7 @@ "@retrolab/application-extension": "~0.3.13", "@retrolab/console-extension": "~0.3.13", "@retrolab/docmanager-extension": "~0.3.13", + "@retrolab/documentsearch-extension": "~0.3.13", "@retrolab/help-extension": "~0.3.13", "@retrolab/notebook-extension": "~0.3.13", "@retrolab/terminal-extension": "~0.3.13", @@ -122,6 +123,7 @@ "@retrolab/application-extension": "^0.3.13", "@retrolab/console-extension": "^0.3.13", "@retrolab/docmanager-extension": "^0.3.13", + "@retrolab/documentsearch-extension": "^0.3.13", "@retrolab/help-extension": "^0.3.13", "@retrolab/notebook-extension": "^0.3.13", "@retrolab/terminal-extension": "^0.3.13", @@ -156,6 +158,7 @@ "@retrolab/application-extension", "@retrolab/console-extension", "@retrolab/docmanager-extension", + "@retrolab/documentsearch-extension", "@retrolab/help-extension", "@retrolab/notebook-extension", "@retrolab/terminal-extension", diff --git a/packages/documentsearch-extension/package.json b/packages/documentsearch-extension/package.json index 231a0fd4..3f9fa2fb 100644 --- a/packages/documentsearch-extension/package.json +++ b/packages/documentsearch-extension/package.json @@ -52,7 +52,8 @@ "access": "public" }, "jupyterlab": { - "extension": true + "extension": true, + "schemaDir": "schema" }, "styleModule": "style/index.js" } diff --git a/packages/documentsearch-extension/schema/retroShellWidgetListener.json b/packages/documentsearch-extension/schema/retroShellWidgetListener.json new file mode 100644 index 00000000..ab65d1a3 --- /dev/null +++ b/packages/documentsearch-extension/schema/retroShellWidgetListener.json @@ -0,0 +1,15 @@ +{ + "title": "RetroLab DocumentSearch Settings", + "description": "RetroLab DocumentSearch Settings", + "jupyter.lab.shortcuts": [ + { + "command": "documentsearch:start", + "keys": ["Accel F"], + "selector": ".jp-mod-searchable", + "disabled": true + } + ], + "properties": {}, + "additionalProperties": false, + "type": "object" +} diff --git a/packages/documentsearch-extension/src/index.ts b/packages/documentsearch-extension/src/index.ts index 7a116efd..c053106c 100644 --- a/packages/documentsearch-extension/src/index.ts +++ b/packages/documentsearch-extension/src/index.ts @@ -2,14 +2,18 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; + import { ISearchProviderRegistry } from '@jupyterlab/documentsearch'; -import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { IRetroShell } from '@retrolab/application'; + import { Widget } from '@lumino/widgets'; const SEARCHABLE_CLASS = 'jp-mod-searchable'; +/** + * A plugin to add document search functionalities. + */ const retroShellWidgetListener: JupyterFrontEndPlugin = { id: '@retrolab/documentsearch-extension:retroShellWidgetListener', requires: [IRetroShell, ISearchProviderRegistry], @@ -52,29 +56,9 @@ const retroShellWidgetListener: JupyterFrontEndPlugin = { } }; -const disableShortcut: JupyterFrontEndPlugin = { - id: '@retrolab/documentsearch-extension:disableShortcut', - requires: [ISettingRegistry], - autoStart: true, - activate: async (app: JupyterFrontEnd, registry: ISettingRegistry) => { - const docSearchShortcut = registry.plugins[ - '@jupyterlab/documentsearch-extension:plugin' - ]?.schema['jupyter.lab.shortcuts']?.find( - shortcut => shortcut.command === 'documentsearch:start' - ); - - if (docSearchShortcut) { - docSearchShortcut.disabled = true; - } - } -}; - /** * Export the plugins as default. */ -const plugins: JupyterFrontEndPlugin[] = [ - retroShellWidgetListener, - disableShortcut -]; +const plugins: JupyterFrontEndPlugin[] = [retroShellWidgetListener]; export default plugins; From 37b0c2e41f03f9df423014f5862fbe671c2b489a Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 24 Dec 2021 15:46:29 +0100 Subject: [PATCH 5/6] Update reference snapshots --- .../opened-menu-edit-chromium-linux.png | Bin 36583 -> 36120 bytes .../opened-menu-edit-firefox-linux.png | Bin 30532 -> 30149 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ui-tests/test/menus.spec.ts-snapshots/opened-menu-edit-chromium-linux.png b/ui-tests/test/menus.spec.ts-snapshots/opened-menu-edit-chromium-linux.png index 3857adf5a9f8a1c00cd101adf9be1532767c201a..07dd65651b3976cf7d3cadba4fa575b9d0a2dfc7 100644 GIT binary patch delta 18536 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 P_)kIZ;@JdQy$AmXZDY8M delta 19031 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%0Duihj7iKv5Cq_SRQ=oJ`_?}vJAApZeCF8g7Dfm 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 From 7c0b058372027881cec0d9afe1abc4fb74793c30 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Tue, 28 Dec 2021 12:13:21 +0100 Subject: [PATCH 6/6] Switch back to shortcut override plugin --- .../documentsearch-extension/package.json | 3 +- .../schema/retroShellWidgetListener.json | 15 --------- .../documentsearch-extension/src/index.ts | 32 +++++++++++++++++-- 3 files changed, 31 insertions(+), 19 deletions(-) delete mode 100644 packages/documentsearch-extension/schema/retroShellWidgetListener.json diff --git a/packages/documentsearch-extension/package.json b/packages/documentsearch-extension/package.json index 3f9fa2fb..231a0fd4 100644 --- a/packages/documentsearch-extension/package.json +++ b/packages/documentsearch-extension/package.json @@ -52,8 +52,7 @@ "access": "public" }, "jupyterlab": { - "extension": true, - "schemaDir": "schema" + "extension": true }, "styleModule": "style/index.js" } diff --git a/packages/documentsearch-extension/schema/retroShellWidgetListener.json b/packages/documentsearch-extension/schema/retroShellWidgetListener.json deleted file mode 100644 index ab65d1a3..00000000 --- a/packages/documentsearch-extension/schema/retroShellWidgetListener.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "title": "RetroLab DocumentSearch Settings", - "description": "RetroLab DocumentSearch Settings", - "jupyter.lab.shortcuts": [ - { - "command": "documentsearch:start", - "keys": ["Accel F"], - "selector": ".jp-mod-searchable", - "disabled": true - } - ], - "properties": {}, - "additionalProperties": false, - "type": "object" -} diff --git a/packages/documentsearch-extension/src/index.ts b/packages/documentsearch-extension/src/index.ts index c053106c..50fe2396 100644 --- a/packages/documentsearch-extension/src/index.ts +++ b/packages/documentsearch-extension/src/index.ts @@ -5,12 +5,37 @@ import { import { ISearchProviderRegistry } from '@jupyterlab/documentsearch'; -import { IRetroShell } from '@retrolab/application'; +import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { Widget } from '@lumino/widgets'; +import { IRetroShell } from '@retrolab/application'; + const SEARCHABLE_CLASS = 'jp-mod-searchable'; +/** + * A plugin to programmatically disable the Crtl-F shortcut in RetroLab + * See https://github.com/jupyterlab/retrolab/pull/294 and + * https://github.com/jupyterlab/jupyterlab/issues/11754 for more context. + */ +const disableShortcut: JupyterFrontEndPlugin = { + id: '@retrolab/documentsearch-extension:disableShortcut', + requires: [ISettingRegistry], + autoStart: true, + activate: async (app: JupyterFrontEnd, registry: ISettingRegistry) => { + const docSearchShortcut = registry.plugins[ + '@jupyterlab/documentsearch-extension:plugin' + ]?.schema['jupyter.lab.shortcuts']?.find( + shortcut => shortcut.command === 'documentsearch:start' + ); + + if (docSearchShortcut) { + docSearchShortcut.disabled = true; + docSearchShortcut.keys = []; + } + } +}; + /** * A plugin to add document search functionalities. */ @@ -59,6 +84,9 @@ const retroShellWidgetListener: JupyterFrontEndPlugin = { /** * Export the plugins as default. */ -const plugins: JupyterFrontEndPlugin[] = [retroShellWidgetListener]; +const plugins: JupyterFrontEndPlugin[] = [ + disableShortcut, + retroShellWidgetListener +]; export default plugins;