From a3862145cb371db138cc5d8700321a3edf2a61fc Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Sat, 11 Jan 2020 17:33:18 +0100 Subject: [PATCH 1/5] Change to es2017 js target with es2015 modules --- packages/base-manager/tsconfig.json | 4 +--- packages/base/tsconfig.json | 4 +--- packages/controls/tsconfig.json | 4 +--- packages/output/tsconfig.json | 4 +--- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/packages/base-manager/tsconfig.json b/packages/base-manager/tsconfig.json index fb9b75644f..bb5a3ceedf 100644 --- a/packages/base-manager/tsconfig.json +++ b/packages/base-manager/tsconfig.json @@ -2,9 +2,7 @@ "extends": "../../tsconfigbase", "compilerOptions": { "outDir": "lib", - "rootDir": "src", - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "rootDir": "src" }, "include": ["src/*"], "references": [ diff --git a/packages/base/tsconfig.json b/packages/base/tsconfig.json index 5e1609699f..a1e4ba13c4 100644 --- a/packages/base/tsconfig.json +++ b/packages/base/tsconfig.json @@ -2,9 +2,7 @@ "extends": "../../tsconfigbase", "compilerOptions": { "outDir": "lib", - "rootDir": "src", - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "rootDir": "src" }, "include": ["src/*"] } diff --git a/packages/controls/tsconfig.json b/packages/controls/tsconfig.json index 1a5a85469b..ea205d9f6d 100644 --- a/packages/controls/tsconfig.json +++ b/packages/controls/tsconfig.json @@ -3,9 +3,7 @@ "compilerOptions": { "outDir": "lib", "rootDir": "src", - "types": ["mathjax", "node"], - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "types": ["mathjax", "node"] }, "include": ["src/**/*"], "references": [ diff --git a/packages/output/tsconfig.json b/packages/output/tsconfig.json index 6bb68e2010..d9191c4d25 100644 --- a/packages/output/tsconfig.json +++ b/packages/output/tsconfig.json @@ -2,9 +2,7 @@ "extends": "../../tsconfigbase", "compilerOptions": { "outDir": "lib", - "rootDir": "src", - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "rootDir": "src" }, "include": ["src/**/*"], "references": [ From a4dd288e761bf93181ff8c02bc7ba7f0842d6256 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Sat, 11 Jan 2020 17:37:05 +0100 Subject: [PATCH 2/5] Convert widgetsnbextension output widget to es2015 modules --- widgetsnbextension/src/widget_output.js | 60 ++++++++++++------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/widgetsnbextension/src/widget_output.js b/widgetsnbextension/src/widget_output.js index f6cbff6b91..edf7476a1c 100644 --- a/widgetsnbextension/src/widget_output.js +++ b/widgetsnbextension/src/widget_output.js @@ -4,23 +4,24 @@ // This widget is strongly coupled to the notebook because of the outputarea // dependency. -var widgets = require("@jupyter-widgets/controls"); var outputBase = require("@jupyter-widgets/output"); -var _ = require("underscore"); require('./widget_output.css'); var outputArea = new Promise(function(resolve, reject) { requirejs(["notebook/js/outputarea"], resolve, reject) }); -var OutputModel = outputBase.OutputModel.extend({ - defaults: _.extend({}, outputBase.OutputModel.prototype.defaults(), { - msg_id: "", - outputs: [] - }), +export class OutputModel extends outputBase.OutputModel { + defaults() { + return { + ...super.defaults(), + msg_id: "", + outputs: [] + } + } - initialize: function(attributes, options) { - OutputModel.__super__.initialize.apply(this, arguments); + initialize(attributes, options) { + super.initialize(attributes, options) this.listenTo(this, 'change:msg_id', this.reset_msg_id); if (this.comm && this.comm.kernel) { @@ -50,14 +51,14 @@ var OutputModel = outputBase.OutputModel.extend({ that.listenTo(that, 'change:outputs', that.setOutputs); that.setOutputs(); }); - }, + } // make callbacks - callbacks: function() { + callbacks() { // Merge our callbacks with the base class callbacks. - var cb = OutputModel.__super__.callbacks.apply(this, arguments); + var cb = super.callbacks(); var iopub = cb.iopub || {}; - var iopubCallbacks = _.extend({}, iopub, { + var iopubCallbacks = {...iopub, output: function(msg) { this.trigger('new_message', msg); if (iopub.output) { @@ -70,11 +71,11 @@ var OutputModel = outputBase.OutputModel.extend({ iopub.clear_output.apply(this, arguments); } }.bind(this) - }); - return _.extend({}, cb, {iopub: iopubCallbacks}); - }, + }; + return {...cb, iopub: iopubCallbacks}; + } - reset_msg_id: function() { + reset_msg_id() { var kernel = this.kernel; // Pop previous message id var prev_msg_id = this.previous('msg_id'); @@ -88,21 +89,21 @@ var OutputModel = outputBase.OutputModel.extend({ if (msg_id && kernel) { kernel.output_callback_overrides_push(msg_id, this.model_id); } - }, + } - setOutputs: function(model, value, options) { + setOutputs(model, value, options) { if (!(options && options.newMessage)) { // fromJSON does not clear the existing output this.output_area.clear_output(); // fromJSON does not copy the message, so we make a deep copy this.output_area.fromJSON(JSON.parse(JSON.stringify(this.get('outputs')))); } - }, + } -}); +} -var OutputView = outputBase.OutputView.extend({ - render: function(){ +export class OutputView extends outputBase.OutputView { + render(){ var that = this; this.el.classList.add('jupyter-widgets-output-area'); outputArea.then(function(outputArea) { @@ -128,10 +129,10 @@ var OutputView = outputBase.OutputView.extend({ that.listenTo(that.model, 'change:outputs', that.setOutputs); that.setOutputs(); }); - OutputView.__super__.render.apply(this, arguments); - }, + super.render(); + } - setOutputs: function(model, value, options) { + setOutputs(model, value, options) { if (!(options && options.newMessage)) { // fromJSON does not clear the existing output this.output_area.clear_output(); @@ -139,9 +140,4 @@ var OutputView = outputBase.OutputView.extend({ this.output_area.fromJSON(JSON.parse(JSON.stringify(this.model.get('outputs')))); } } -}); - -module.exports = { - OutputView: OutputView, - OutputModel: OutputModel, -}; +} From 0522b1a80175219cb53103a078a5a311383c5d27 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Sat, 11 Jan 2020 18:53:25 +0100 Subject: [PATCH 3/5] Fix the tests target --- packages/base-manager/test/tsconfig.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/base-manager/test/tsconfig.json b/packages/base-manager/test/tsconfig.json index 289cf6a323..66f37223d1 100644 --- a/packages/base-manager/test/tsconfig.json +++ b/packages/base-manager/test/tsconfig.json @@ -3,9 +3,7 @@ "compilerOptions": { "types": ["mocha"], "outDir": "build", - "rootDir": "src", - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "rootDir": "src" }, "include": ["src/*"], "references": [ From e1b824f69583f9585ffd2b6cc2894f02a399e376 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Sat, 11 Jan 2020 19:05:13 +0100 Subject: [PATCH 4/5] Fix one more tsconfig --- packages/base/test/tsconfig.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/base/test/tsconfig.json b/packages/base/test/tsconfig.json index 289cf6a323..66f37223d1 100644 --- a/packages/base/test/tsconfig.json +++ b/packages/base/test/tsconfig.json @@ -3,9 +3,7 @@ "compilerOptions": { "types": ["mocha"], "outDir": "build", - "rootDir": "src", - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "rootDir": "src" }, "include": ["src/*"], "references": [ From f9cb7af87436c52fc7c0f9d7731bb67a8e7829fe Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Sat, 11 Jan 2020 19:22:27 +0100 Subject: [PATCH 5/5] one more tsconfig to change --- packages/controls/test/tsconfig.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/controls/test/tsconfig.json b/packages/controls/test/tsconfig.json index 05dbeb187c..830889fb7f 100644 --- a/packages/controls/test/tsconfig.json +++ b/packages/controls/test/tsconfig.json @@ -3,9 +3,7 @@ "compilerOptions": { "types": ["mocha"], "outDir": "build", - "rootDir": "src", - "lib": ["dom", "es5", "es2015.promise", "es2015.iterable"], - "target": "es5" + "rootDir": "src" }, "include": ["src/**/*"], "references": [