Merge pull request #167 from jtpio/alpha-13

Update to JupyterLab 3.1.0-beta.0 packages
pull/6294/head
Jeremy Tuloup 5 years ago committed by GitHub
commit 574da61aa7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -44,6 +44,7 @@ module.exports = {
'single',
{ avoidEscape: true, allowTemplateLiterals: false }
],
'jest/no-done-callback': 'off',
curly: ['error', 'all'],
eqeqeq: 'error',
'prefer-arrow-callback': 'error'

@ -195,4 +195,4 @@ jobs:
if: ${{ always() }}
with:
name: test-artifacts-${{ matrix.browser }} ${{ github.run_number }}
path: app/artifacts
path: app/test-results

2
.gitignore vendored

@ -117,5 +117,5 @@ retrolab/static
retrolab/labextension
# playwright
app/artifacts/videos
app/test-results
app/test/data

@ -1 +0,0 @@
module.exports = require('@jupyterlab/testutils/lib/babel.config');

@ -1,13 +0,0 @@
const fs = require('fs');
const path = require('path');
const rimraf = require('rimraf');
module.exports = async () => {
const data = path.join(__dirname, './test/data');
const example = path.join(__dirname, '../binder/example.ipynb');
const dest = path.join(data, 'example.ipynb');
rimraf.sync(data);
fs.mkdirSync(data);
fs.copyFileSync(example, dest);
};

@ -1,28 +0,0 @@
const path = require('path');
const func = require('@jupyterlab/testutils/lib/jest-config');
const upstream = func(__dirname);
const esModules = ['lib0', 'y-protocols'].join('|');
let local = {
globalSetup: path.resolve(__dirname, './jest-setup.js'),
preset: 'ts-jest/presets/js-with-babel',
transformIgnorePatterns: [
`/node_modules/(?!${esModules}).+\\.js/(?!(@jupyterlab/.*)/)`
],
globals: {
'ts-jest': {
tsconfig: './tsconfig.test.json'
}
},
transform: {
'\\.(ts|tsx)?$': 'ts-jest',
'\\.svg$': 'jest-raw-loader'
}
};
Object.keys(local).forEach(option => {
upstream[option] = local[option];
});
module.exports = upstream;

@ -10,59 +10,56 @@
"clean:artifacts": "rimraf artifacts",
"clean:static": "rimraf ../retrolab/static",
"prepublishOnly": "yarn run build",
"test:cov": "jest --collect-coverage",
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
"test:debug:watch": "node --inspect-brk node_modules/.bin/jest --runInBand --watch",
"test:e2e": "jlpm run clean:artifacts && jest",
"test:e2e": "jlpm run clean:artifacts && playwright test",
"test:e2e:pwdebug": "jlpm run clean:artifacts && PWDEBUG=1 jlpm run test:e2e",
"watch": "webpack --config ./webpack.config.watch.js"
},
"resolutions": {
"@jupyterlab/application": "~3.1.0-alpha.8",
"@jupyterlab/application-extension": "~3.1.0-alpha.8",
"@jupyterlab/apputils": "~3.1.0-alpha.8",
"@jupyterlab/apputils-extension": "~3.1.0-alpha.8",
"@jupyterlab/celltags": "~3.1.0-alpha.8",
"@jupyterlab/codeeditor": "~3.1.0-alpha.8",
"@jupyterlab/codemirror-extension": "~3.1.0-alpha.8",
"@jupyterlab/completer": "~3.1.0-alpha.8",
"@jupyterlab/completer-extension": "~3.1.0-alpha.8",
"@jupyterlab/console": "~3.1.0-alpha.8",
"@jupyterlab/coreutils": "~5.1.0-alpha.8",
"@jupyterlab/docmanager": "~3.1.0-alpha.8",
"@jupyterlab/docmanager-extension": "~3.1.0-alpha.8",
"@jupyterlab/filebrowser": "~3.1.0-alpha.8",
"@jupyterlab/filebrowser-extension": "~3.1.0-alpha.8",
"@jupyterlab/fileeditor": "~3.1.0-alpha.8",
"@jupyterlab/fileeditor-extension": "~3.1.0-alpha.8",
"@jupyterlab/hub-extension": "~3.1.0-alpha.8",
"@jupyterlab/javascript-extension": "~3.1.0-alpha.8",
"@jupyterlab/json-extension": "~3.1.0-alpha.8",
"@jupyterlab/mainmenu": "~3.1.0-alpha.8",
"@jupyterlab/mainmenu-extension": "~3.1.0-alpha.8",
"@jupyterlab/mathjax2-extension": "~3.1.0-alpha.8",
"@jupyterlab/notebook": "~3.1.0-alpha.8",
"@jupyterlab/notebook-extension": "~3.1.0-alpha.8",
"@jupyterlab/observables": "~4.1.0-alpha.8",
"@jupyterlab/outputarea": "~3.1.0-alpha.8",
"@jupyterlab/pdf-extension": "~3.1.0-alpha.8",
"@jupyterlab/rendermime": "~3.1.0-alpha.8",
"@jupyterlab/rendermime-extension": "~3.1.0-alpha.8",
"@jupyterlab/rendermime-interfaces": "~3.1.0-alpha.8",
"@jupyterlab/running-extension": "~3.1.0-alpha.8",
"@jupyterlab/services": "~6.1.0-alpha.8",
"@jupyterlab/settingregistry": "~3.1.0-alpha.8",
"@jupyterlab/shortcuts-extension": "~3.1.0-alpha.8",
"@jupyterlab/statedb": "~3.1.0-alpha.8",
"@jupyterlab/statusbar": "~3.1.0-alpha.8",
"@jupyterlab/terminal": "~3.1.0-alpha.8",
"@jupyterlab/terminal-extension": "~3.1.0-alpha.8",
"@jupyterlab/theme-dark-extension": "~3.1.0-alpha.8",
"@jupyterlab/theme-light-extension": "~3.1.0-alpha.8",
"@jupyterlab/tooltip": "~3.1.0-alpha.8",
"@jupyterlab/tooltip-extension": "~3.1.0-alpha.8",
"@jupyterlab/ui-components": "~3.1.0-alpha.8",
"@jupyterlab/vega5-extension": "~3.1.0-alpha.8",
"@jupyterlab/application": "~3.1.0-beta.0",
"@jupyterlab/application-extension": "~3.1.0-beta.0",
"@jupyterlab/apputils": "~3.1.0-beta.0",
"@jupyterlab/apputils-extension": "~3.1.0-beta.0",
"@jupyterlab/celltags": "~3.1.0-beta.0",
"@jupyterlab/codeeditor": "~3.1.0-beta.0",
"@jupyterlab/codemirror-extension": "~3.1.0-beta.0",
"@jupyterlab/completer": "~3.1.0-beta.0",
"@jupyterlab/completer-extension": "~3.1.0-beta.0",
"@jupyterlab/console": "~3.1.0-beta.0",
"@jupyterlab/coreutils": "~5.1.0-beta.0",
"@jupyterlab/docmanager": "~3.1.0-beta.0",
"@jupyterlab/docmanager-extension": "~3.1.0-beta.0",
"@jupyterlab/filebrowser": "~3.1.0-beta.0",
"@jupyterlab/filebrowser-extension": "~3.1.0-beta.0",
"@jupyterlab/fileeditor": "~3.1.0-beta.0",
"@jupyterlab/fileeditor-extension": "~3.1.0-beta.0",
"@jupyterlab/hub-extension": "~3.1.0-beta.0",
"@jupyterlab/javascript-extension": "~3.1.0-beta.0",
"@jupyterlab/json-extension": "~3.1.0-beta.0",
"@jupyterlab/mainmenu": "~3.1.0-beta.0",
"@jupyterlab/mainmenu-extension": "~3.1.0-beta.0",
"@jupyterlab/mathjax2-extension": "~3.1.0-beta.0",
"@jupyterlab/notebook": "~3.1.0-beta.0",
"@jupyterlab/notebook-extension": "~3.1.0-beta.0",
"@jupyterlab/observables": "~4.1.0-beta.0",
"@jupyterlab/outputarea": "~3.1.0-beta.0",
"@jupyterlab/pdf-extension": "~3.1.0-beta.0",
"@jupyterlab/rendermime": "~3.1.0-beta.0",
"@jupyterlab/rendermime-extension": "~3.1.0-beta.0",
"@jupyterlab/rendermime-interfaces": "~3.1.0-beta.0",
"@jupyterlab/running-extension": "~3.1.0-beta.0",
"@jupyterlab/services": "~6.1.0-beta.0",
"@jupyterlab/settingregistry": "~3.1.0-beta.0",
"@jupyterlab/shortcuts-extension": "~3.1.0-beta.0",
"@jupyterlab/statedb": "~3.1.0-beta.0",
"@jupyterlab/statusbar": "~3.1.0-beta.0",
"@jupyterlab/terminal": "~3.1.0-beta.0",
"@jupyterlab/terminal-extension": "~3.1.0-beta.0",
"@jupyterlab/theme-dark-extension": "~3.1.0-beta.0",
"@jupyterlab/theme-light-extension": "~3.1.0-beta.0",
"@jupyterlab/tooltip": "~3.1.0-beta.0",
"@jupyterlab/tooltip-extension": "~3.1.0-beta.0",
"@jupyterlab/ui-components": "~3.1.0-beta.0",
"@jupyterlab/vega5-extension": "~3.1.0-beta.0",
"@lumino/algorithm": "~1.6.0",
"@lumino/application": "~1.20.0",
"@lumino/commands": "~1.15.0",
@ -87,30 +84,30 @@
"react-dom": "~17.0.2"
},
"dependencies": {
"@jupyterlab/application-extension": "^3.1.0-alpha.8",
"@jupyterlab/apputils-extension": "^3.1.0-alpha.8",
"@jupyterlab/celltags": "^3.1.0-alpha.8",
"@jupyterlab/codemirror-extension": "^3.1.0-alpha.8",
"@jupyterlab/completer-extension": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "~5.1.0-alpha.8",
"@jupyterlab/docmanager-extension": "^3.1.0-alpha.8",
"@jupyterlab/filebrowser-extension": "^3.1.0-alpha.8",
"@jupyterlab/fileeditor-extension": "^3.1.0-alpha.8",
"@jupyterlab/hub-extension": "3.1.0-alpha.8",
"@jupyterlab/javascript-extension": "^3.1.0-alpha.8",
"@jupyterlab/json-extension": "^3.1.0-alpha.8",
"@jupyterlab/mainmenu-extension": "^3.1.0-alpha.8",
"@jupyterlab/mathjax2-extension": "^3.1.0-alpha.8",
"@jupyterlab/notebook-extension": "^3.1.0-alpha.8",
"@jupyterlab/pdf-extension": "^3.1.0-alpha.8",
"@jupyterlab/rendermime-extension": "^3.1.0-alpha.8",
"@jupyterlab/running-extension": "^3.1.0-alpha.8",
"@jupyterlab/shortcuts-extension": "^3.1.0-alpha.8",
"@jupyterlab/terminal-extension": "^3.1.0-alpha.8",
"@jupyterlab/theme-dark-extension": "^3.1.0-alpha.8",
"@jupyterlab/theme-light-extension": "^3.1.0-alpha.8",
"@jupyterlab/tooltip-extension": "^3.1.0-alpha.8",
"@jupyterlab/vega5-extension": "^3.1.0-alpha.8",
"@jupyterlab/application-extension": "^3.1.0-beta.0",
"@jupyterlab/apputils-extension": "^3.1.0-beta.0",
"@jupyterlab/celltags": "^3.1.0-beta.0",
"@jupyterlab/codemirror-extension": "^3.1.0-beta.0",
"@jupyterlab/completer-extension": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "~5.1.0-beta.0",
"@jupyterlab/docmanager-extension": "^3.1.0-beta.0",
"@jupyterlab/filebrowser-extension": "^3.1.0-beta.0",
"@jupyterlab/fileeditor-extension": "^3.1.0-beta.0",
"@jupyterlab/hub-extension": "^3.1.0-beta.0",
"@jupyterlab/javascript-extension": "^3.1.0-beta.0",
"@jupyterlab/json-extension": "^3.1.0-beta.0",
"@jupyterlab/mainmenu-extension": "^3.1.0-beta.0",
"@jupyterlab/mathjax2-extension": "^3.1.0-beta.0",
"@jupyterlab/notebook-extension": "^3.1.0-beta.0",
"@jupyterlab/pdf-extension": "^3.1.0-beta.0",
"@jupyterlab/rendermime-extension": "^3.1.0-beta.0",
"@jupyterlab/running-extension": "^3.1.0-beta.0",
"@jupyterlab/shortcuts-extension": "^3.1.0-beta.0",
"@jupyterlab/terminal-extension": "^3.1.0-beta.0",
"@jupyterlab/theme-dark-extension": "^3.1.0-beta.0",
"@jupyterlab/theme-light-extension": "^3.1.0-beta.0",
"@jupyterlab/tooltip-extension": "^3.1.0-beta.0",
"@jupyterlab/vega5-extension": "^3.1.0-beta.0",
"@retrolab/application": "^0.3.0-alpha.2",
"@retrolab/application-extension": "^0.3.0-alpha.2",
"@retrolab/docmanager-extension": "^0.3.0-alpha.2",
@ -121,20 +118,17 @@
"@retrolab/ui-components": "^0.3.0-alpha.2"
},
"devDependencies": {
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.12.1",
"@jupyterlab/builder": "^3.1.0-alpha.8",
"@jupyterlab/buildutils": "^3.1.0-alpha.8",
"@jupyterlab/testutils": "^3.1.0-alpha.8",
"@types/jest": "^26.0.10",
"@jupyterlab/builder": "^3.1.0-beta.0",
"@jupyterlab/buildutils": "^3.1.0-beta.0",
"@playwright/test": "^1.12.3",
"@types/rimraf": "^3.0.0",
"css-loader": "~5.0.1",
"file-loader": "~5.0.2",
"fs-extra": "^8.1.0",
"glob": "~7.1.6",
"jest": "^26.4.2",
"mini-css-extract-plugin": "~0.9.0",
"npm-run-all": "^4.1.5",
"playwright": "^1.8.0",
"playwright": "^1.12.3",
"raw-loader": "~4.0.0",
"rimraf": "~3.0.2",
"style-loader": "~1.0.1",

@ -0,0 +1,23 @@
import process from 'process';
import { PlaywrightTestConfig } from '@playwright/test';
import { BrowserName } from './test/utils';
const browserName = (process.env.BROWSER ?? 'chromium') as BrowserName;
const config: PlaywrightTestConfig = {
projects: [
{
name: 'Retro',
use: {
viewport: { width: 1600, height: 900 },
slowMo: 100,
video: 'on',
browserName
},
outputDir: 'test-results'
}
]
};
export default config;

@ -1,59 +1,55 @@
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
import { chromium, firefox, Browser } from 'playwright';
import fs from 'fs';
import { BrowserName, BASE_URL } from './utils';
import path from 'path';
import rimraf from 'rimraf';
import { test, expect } from '@playwright/test';
import { BASE_URL } from './utils';
const NOTEBOOK_PATH = 'app/test/data/example.ipynb';
const NOTEBOOK_URL = `${BASE_URL}retro/notebooks/${NOTEBOOK_PATH}`;
describe('Notebook', () => {
let browser: Browser;
test.beforeAll(async () => {
const data = path.join(__dirname, './data');
const example = path.join(__dirname, '../../binder/example.ipynb');
const dest = path.join(data, 'example.ipynb');
beforeEach(async () => {
const browserName = (process.env.BROWSER as BrowserName) || 'chromium';
browser = await { chromium, firefox }[browserName].launch({ slowMo: 100 });
});
afterEach(() => {
browser.close();
});
rimraf.sync(data);
fs.mkdirSync(data);
fs.copyFileSync(example, dest);
});
describe('Title', () => {
it('should be rendered', async () => {
const page = await browser.newPage();
await page.goto(NOTEBOOK_URL);
await page.waitForTimeout(2000);
const href = await page.evaluate(() => {
return document.querySelector('#jp-RetroLogo')?.getAttribute('href');
});
expect(href).toContain('/retro/tree');
test.describe('Notebook', () => {
test('Title should be rendered', async ({ page }) => {
await page.goto(NOTEBOOK_URL);
await page.waitForTimeout(2000);
const href = await page.evaluate(() => {
return document.querySelector('#jp-RetroLogo')?.getAttribute('href');
});
expect(href).toContain('/retro/tree');
});
describe('Renaming', () => {
it('should be possible to rename the notebook', async () => {
const page = await browser.newPage();
await page.goto(NOTEBOOK_URL);
// Click on the title
await page.click('text="example.ipynb"');
// Rename in the input dialog
const newName = 'test.ipynb';
await page.fill(
`//div[normalize-space(.)='File Path${NOTEBOOK_PATH}New Name']/input`,
newName
);
await Promise.all([
page.waitForNavigation(),
page.click('text="Rename"')
]);
// Check the URL contains the new name
const url = page.url();
expect(url).toContain(newName);
});
test('Renaming the notebook should be possible', async ({ page }) => {
await page.goto(NOTEBOOK_URL);
// Click on the title
await page.click('text="example.ipynb"');
// Rename in the input dialog
const newName = 'test.ipynb';
await page.fill(
`//div[normalize-space(.)='File Path${NOTEBOOK_PATH}New Name']/input`,
newName
);
await page.click('text="Rename"');
// Check the URL contains the new name
const url = page.url();
expect(url).toContain(newName);
});
});

@ -1,88 +1,68 @@
import { chromium, firefox, Browser, BrowserContext } from 'playwright';
import { BrowserName, BASE_URL } from './utils';
describe('Smoke', () => {
let browser: Browser;
let context: BrowserContext;
beforeAll(async () => {
jest.setTimeout(200000);
const browserName = (process.env.BROWSER as BrowserName) || 'chromium';
browser = await { chromium, firefox }[browserName].launch({ slowMo: 100 });
context = await browser.newContext({
recordVideo: { dir: 'artifacts/videos/' }
});
});
afterAll(async () => {
await context.close();
await browser.close();
});
describe('Tour', () => {
it('should open a new new notebook and stop the kernel after', async () => {
const tree = await context.newPage();
// Open the tree page
await tree.goto(`${BASE_URL}retro/tree`);
await tree.click('text="Running"');
await tree.click('text="Files"');
// Create a new notebook
const [notebook] = await Promise.all([
tree.waitForEvent('popup'),
tree.click('text="New Notebook"')
]);
// Choose the kernel
await notebook.click('text="Select"');
await notebook.click('pre[role="presentation"]');
// Enter code in the first cell
await notebook.fill('//textarea', 'import math');
await notebook.press('//textarea', 'Enter');
await notebook.press('//textarea', 'Enter');
await notebook.fill('//textarea', 'math.pi');
// Run the cell
await notebook.click(
"//button[normalize-space(@title)='Run the selected cells and advance']"
);
// Enter code in the next cell
await notebook.fill(
"//div[normalize-space(.)=' ']/div[1]/textarea",
'import this'
);
// Run the cell
await notebook.click(
'//button[normalize-space(@title)=\'Run the selected cells and advance\']/span/span/*[local-name()="svg"]'
);
// Save the notebook
await notebook.click('//span/*[local-name()="svg"]');
// Click on the Jupyter logo to open the tree page
const [tree2] = await Promise.all([
notebook.waitForEvent('popup'),
notebook.click(
'//*[local-name()="svg" and normalize-space(.)=\'Jupyter\']'
)
]);
// Shut down the kernels
await tree2.click('text="Running"');
await tree2.click('text="Shut Down All"');
await tree2.click("//div[normalize-space(.)='Shut Down All']");
// Close the pages
await tree2.close();
await notebook.close();
await tree.close();
expect(true).toBe(true);
});
import { test, expect } from '@playwright/test';
import { BASE_URL } from './utils';
test.describe('Smoke', () => {
test('Tour', async ({ page }) => {
// Open the tree page
await page.goto(`${BASE_URL}retro/tree`);
await page.click('text="Running"');
await page.click('text="Files"');
// Create a new notebook
const [notebook] = await Promise.all([
page.waitForEvent('popup'),
page.click('text="New Notebook"')
]);
// Choose the kernel
await notebook.click('text="Select"');
await notebook.click('pre[role="presentation"]');
// Enter code in the first cell
await notebook.fill('//textarea', 'import math');
await notebook.press('//textarea', 'Enter');
await notebook.press('//textarea', 'Enter');
await notebook.fill('//textarea', 'math.pi');
// Run the cell
await notebook.click(
"//button[normalize-space(@title)='Run the selected cells and advance']"
);
// Enter code in the next cell
await notebook.fill(
"//div[normalize-space(.)=' ']/div[1]/textarea",
'import this'
);
// Run the cell
await notebook.click(
'//button[normalize-space(@title)=\'Run the selected cells and advance\']/span/span/*[local-name()="svg"]'
);
// Save the notebook
// TODO: re-enable after fixing the name on save dialog?
// await notebook.click('//span/*[local-name()="svg"]');
// Click on the Jupyter logo to open the tree page
const [tree2] = await Promise.all([
notebook.waitForEvent('popup'),
notebook.click(
'//*[local-name()="svg" and normalize-space(.)=\'Jupyter\']'
)
]);
// Shut down the kernels
await tree2.click('text="Running"');
await tree2.click('text="Shut Down All"');
await tree2.click("//div[normalize-space(.)='Shut Down All']");
// Close the pages
await tree2.close();
await notebook.close();
await page.close();
expect(true).toBe(true);
});
});

@ -1,27 +1,12 @@
import { chromium, firefox, Browser } from 'playwright';
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
import { BASE_URL, BrowserName } from './utils';
import { test, expect } from '@playwright/test';
describe('Tree', () => {
let browser: Browser;
import { BASE_URL } from './utils';
beforeEach(async () => {
const browserName: BrowserName =
(process.env.BROWSER as BrowserName) || 'chromium';
browser = await { chromium, firefox }[browserName].launch({ slowMo: 100 });
});
afterEach(() => {
browser.close();
});
describe('File Browser', () => {
it('should render a New Notebook button', async () => {
const page = await browser.newPage();
await page.goto(`${BASE_URL}retro/tree`);
const button = await page.$('text="New Notebook"');
expect(button).toBeDefined();
});
});
test('Tree', async ({ page }) => {
await page.goto(`${BASE_URL}retro/tree`);
const button = await page.$('text="New Notebook"');
expect(button).toBeDefined();
});

@ -30,7 +30,7 @@
"watch": "tsc -w --listEmittedFiles"
},
"dependencies": {
"@jupyterlab/buildutils": "^3.1.0-alpha.8",
"@jupyterlab/buildutils": "^3.1.0-beta.0",
"commander": "^6.2.0",
"fs-extra": "^9.1.0",
"typescript": "~4.1.3"

@ -47,7 +47,7 @@
}
},
"devDependencies": {
"@jupyterlab/buildutils": "^3.1.0-alpha.8",
"@jupyterlab/buildutils": "^3.1.0-beta.0",
"@typescript-eslint/eslint-plugin": "^4.2.0",
"@typescript-eslint/parser": "^4.2.0",
"eslint": "^7.10.0",

@ -38,17 +38,17 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/apputils": "^3.1.0-alpha.8",
"@jupyterlab/celltags": "^3.1.0-alpha.8",
"@jupyterlab/codeeditor": "^3.1.0-alpha.8",
"@jupyterlab/codemirror": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "^5.1.0-alpha.8",
"@jupyterlab/docmanager": "^3.1.0-alpha.8",
"@jupyterlab/docregistry": "^3.1.0-alpha.8",
"@jupyterlab/mainmenu": "^3.1.0-alpha.8",
"@jupyterlab/settingregistry": "^3.1.0-alpha.8",
"@jupyterlab/translation": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/apputils": "^3.1.0-beta.0",
"@jupyterlab/celltags": "^3.1.0-beta.0",
"@jupyterlab/codeeditor": "^3.1.0-beta.0",
"@jupyterlab/codemirror": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "^5.1.0-beta.0",
"@jupyterlab/docmanager": "^3.1.0-beta.0",
"@jupyterlab/docregistry": "^3.1.0-beta.0",
"@jupyterlab/mainmenu": "^3.1.0-beta.0",
"@jupyterlab/settingregistry": "^3.1.0-beta.0",
"@jupyterlab/translation": "^3.1.0-beta.0",
"@lumino/widgets": "^1.23.0",
"@retrolab/application": "^0.3.0-alpha.2",
"@retrolab/ui-components": "^0.3.0-alpha.2"

@ -394,11 +394,12 @@ const title: JupyterFrontEndPlugin<void> = {
current.activate();
}
if (!result) {
if (result === null) {
return;
}
const basename = PathExt.basename(result.path);
const newPath = current.context.path ?? result.path;
const basename = PathExt.basename(newPath);
h.textContent = basename;
if (!router) {
return;
@ -408,7 +409,7 @@ const title: JupyterFrontEndPlugin<void> = {
if (!route || !path) {
return;
}
const encoded = encodeURIComponent(result.path);
const encoded = encodeURIComponent(newPath);
router.navigate(`/retro/${route}/${encoded}`, {
skipRouting: true
});

@ -42,11 +42,11 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "^5.1.0-alpha.8",
"@jupyterlab/docregistry": "^3.1.0-alpha.8",
"@jupyterlab/rendermime-interfaces": "^3.1.0-alpha.8",
"@jupyterlab/ui-components": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "^5.1.0-beta.0",
"@jupyterlab/docregistry": "^3.1.0-beta.0",
"@jupyterlab/rendermime-interfaces": "^3.1.0-beta.0",
"@jupyterlab/ui-components": "^3.1.0-beta.0",
"@lumino/algorithm": "^1.6.0",
"@lumino/coreutils": "^1.8.0",
"@lumino/messaging": "^1.7.0",
@ -57,7 +57,7 @@
"devDependencies": {
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.12.1",
"@jupyterlab/testutils": "^3.1.0-alpha.8",
"@jupyterlab/testutils": "^3.1.0-beta.0",
"@types/jest": "^26.0.10",
"jest": "^26.4.2",
"rimraf": "~3.0.0",

@ -38,11 +38,11 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "^5.1.0-alpha.8",
"@jupyterlab/docmanager": "^3.1.0-alpha.8",
"@jupyterlab/docregistry": "^3.1.0-alpha.8",
"@jupyterlab/services": "^6.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "^5.1.0-beta.0",
"@jupyterlab/docmanager": "^3.1.0-beta.0",
"@jupyterlab/docregistry": "^3.1.0-beta.0",
"@jupyterlab/services": "^6.1.0-beta.0",
"@lumino/algorithm": "^1.6.0"
},
"devDependencies": {

@ -38,9 +38,9 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/apputils": "^3.1.0-alpha.8",
"@jupyterlab/mainmenu": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/apputils": "^3.1.0-beta.0",
"@jupyterlab/mainmenu": "^3.1.0-beta.0",
"@retrolab/ui-components": "^0.3.0-alpha.2"
},
"devDependencies": {

@ -45,18 +45,18 @@
"watch:src": "tsc -w"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/apputils": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "^5.1.0-alpha.8",
"@jupyterlab/docregistry": "^3.1.0-alpha.8",
"@jupyterlab/mainmenu": "^3.1.0-alpha.8",
"@jupyterlab/notebook": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/apputils": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "^5.1.0-beta.0",
"@jupyterlab/docregistry": "^3.1.0-beta.0",
"@jupyterlab/mainmenu": "^3.1.0-beta.0",
"@jupyterlab/notebook": "^3.1.0-beta.0",
"@lumino/commands": "^1.15.0",
"@lumino/disposable": "^1.7.0",
"@retrolab/ui-components": "^0.3.0-alpha.2"
},
"devDependencies": {
"@jupyterlab/builder": "^3.1.0-alpha.8",
"@jupyterlab/builder": "^3.1.0-beta.0",
"rimraf": "~3.0.0",
"typescript": "~4.1.3"
},

@ -38,10 +38,10 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/apputils": "^3.1.0-alpha.8",
"@jupyterlab/docmanager": "^3.1.0-alpha.8",
"@jupyterlab/notebook": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/apputils": "^3.1.0-beta.0",
"@jupyterlab/docmanager": "^3.1.0-beta.0",
"@jupyterlab/notebook": "^3.1.0-beta.0",
"@lumino/polling": "^1.6.0",
"@lumino/widgets": "^1.23.0",
"@retrolab/application": "^0.3.0-alpha.2"

@ -38,9 +38,9 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "^5.1.0-alpha.8",
"@jupyterlab/terminal": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "^5.1.0-beta.0",
"@jupyterlab/terminal": "^3.1.0-beta.0",
"@lumino/algorithm": "^1.6.0"
},
"devDependencies": {

@ -38,17 +38,17 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^3.1.0-alpha.8",
"@jupyterlab/apputils": "^3.1.0-alpha.8",
"@jupyterlab/coreutils": "^5.1.0-alpha.8",
"@jupyterlab/docmanager": "^3.1.0-alpha.8",
"@jupyterlab/filebrowser": "^3.1.0-alpha.8",
"@jupyterlab/mainmenu": "^3.1.0-alpha.8",
"@jupyterlab/services": "^6.1.0-alpha.8",
"@jupyterlab/settingregistry": "^3.1.0-alpha.8",
"@jupyterlab/statedb": "^3.1.0-alpha.8",
"@jupyterlab/translation": "^3.1.0-alpha.8",
"@jupyterlab/ui-components": "^3.1.0-alpha.8",
"@jupyterlab/application": "^3.1.0-beta.0",
"@jupyterlab/apputils": "^3.1.0-beta.0",
"@jupyterlab/coreutils": "^5.1.0-beta.0",
"@jupyterlab/docmanager": "^3.1.0-beta.0",
"@jupyterlab/filebrowser": "^3.1.0-beta.0",
"@jupyterlab/mainmenu": "^3.1.0-beta.0",
"@jupyterlab/services": "^6.1.0-beta.0",
"@jupyterlab/settingregistry": "^3.1.0-beta.0",
"@jupyterlab/statedb": "^3.1.0-beta.0",
"@jupyterlab/translation": "^3.1.0-beta.0",
"@jupyterlab/ui-components": "^3.1.0-beta.0",
"@lumino/algorithm": "^1.6.0",
"@lumino/commands": "^1.15.0",
"@lumino/widgets": "^1.23.0",

@ -7,7 +7,6 @@
}
.jp-TreePanel .lm-TabPanel-tabBar {
border: none;
overflow: visible;
min-height: 32px;
}
@ -15,7 +14,8 @@
.jp-TreePanel .lm-TabBar-tab {
color: var(--jp-ui-font-color0);
font-size: var(--jp-ui-font-size1);
padding: 6px;
padding-top: 6px;
height: 100%;
}
.jp-TreePanel .lm-TabBar-tabLabel {

@ -42,14 +42,14 @@
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/ui-components": "^3.1.0-alpha.8",
"@jupyterlab/ui-components": "^3.1.0-beta.0",
"react": "^17.0.1",
"react-dom": "^17.0.1"
},
"devDependencies": {
"@babel/core": "^7.10.2",
"@babel/preset-env": "^7.10.2",
"@jupyterlab/testutils": "^3.1.0-alpha.8",
"@jupyterlab/testutils": "^3.1.0-beta.0",
"@types/jest": "^26.0.10",
"babel-loader": "^8.0.6",
"jest": "^26.4.2",

@ -1,3 +1,3 @@
[build-system]
requires = ["jupyter_packaging~=0.7.9", "jupyterlab>=3.1.0a8,==3.*", "setuptools>=40.8.0", "wheel"]
requires = ["jupyter_packaging~=0.7.9", "jupyterlab>=3.1.0b0,==3.*", "setuptools>=40.8.0", "wheel"]
build-backend = "setuptools.build_meta"

@ -84,7 +84,7 @@ setup_args = dict(
cmdclass=cmdclass,
packages=setuptools.find_packages(),
install_requires=[
"jupyterlab>=3.1.0a8,<4",
"jupyterlab>=3.1.0b0,<4",
"jupyterlab_server~=2.3",
"jupyter_server~=1.4",
"nbclassic~=0.2",

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save