diff --git a/neural_coder/coders/autoinc/autoinc_harness.py b/neural_coder/coders/autoinc/autoinc_harness.py index e4f56a0393f..3f03e054c1f 100644 --- a/neural_coder/coders/autoinc/autoinc_harness.py +++ b/neural_coder/coders/autoinc/autoinc_harness.py @@ -199,6 +199,7 @@ def register_transformation(self): trans_insert_location = i + i_search trans_insert_location = min(max(trans_insert_location, put_below_idx), put_above_idx) elif file_path_idx == 0 and domain_ == 'torchvision': + trans_insert_location = 1 for i in range(len(lines)): line = lines[i] if "val_loader" in line and "aux_val_loader" not in line \ diff --git a/neural_coder/extensions/docs/1.png b/neural_coder/extensions/docs/1.png new file mode 100644 index 00000000000..4b4d18b6eff Binary files /dev/null and b/neural_coder/extensions/docs/1.png differ diff --git a/neural_coder/extensions/docs/2.png b/neural_coder/extensions/docs/2.png new file mode 100644 index 00000000000..0dfe452976c Binary files /dev/null and b/neural_coder/extensions/docs/2.png differ diff --git a/neural_coder/extensions/docs/3.png b/neural_coder/extensions/docs/3.png new file mode 100644 index 00000000000..07c55931cf2 Binary files /dev/null and b/neural_coder/extensions/docs/3.png differ diff --git a/neural_coder/extensions/docs/4.png b/neural_coder/extensions/docs/4.png new file mode 100644 index 00000000000..540723129ac Binary files /dev/null and b/neural_coder/extensions/docs/4.png differ diff --git a/neural_coder/extensions/docs/5.png b/neural_coder/extensions/docs/5.png new file mode 100644 index 00000000000..3c97a3b691e Binary files /dev/null and b/neural_coder/extensions/docs/5.png differ diff --git a/neural_coder/extensions/neural-compressor-ext-lab/PKG-INFO b/neural_coder/extensions/neural-compressor-ext-lab/PKG-INFO deleted file mode 100644 index 91c406d5d52..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/PKG-INFO +++ /dev/null @@ -1,157 +0,0 @@ -Metadata-Version: 2.1 -Name: neural-compressor-ext-lab -Version: 0.1.0 -Summary: jupyterlab extension -Home-page: https://github.com/intel-sandbox/neural-coder/tree/master/neural_coder/extensions/JupyterLab -Author: NeuralCoder -Author-email: xin.long@intel.com -License: BSD-3-Clause -Keywords: Jupyter,JupyterLab,JupyterLab3 -Platform: Linux -Platform: Mac OS X -Platform: Windows -Classifier: License :: OSI Approved :: BSD License -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Framework :: Jupyter -Classifier: Framework :: Jupyter :: JupyterLab -Classifier: Framework :: Jupyter :: JupyterLab :: 3 -Classifier: Framework :: Jupyter :: JupyterLab :: Extensions -Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt -Requires-Python: >=3.7 -Description-Content-Type: text/markdown -License-File: LICENSE - -# Neural-Compressor-EXT-LAB - - -## Requirements - -- JupyterLab >= 3.0 - -## Install -Before install, you should install the NeuralCoder, please refer to https://github.com/intel-sandbox/neural-coder/blob/master/neural_coder/README.md - -### Python Backend -To install the Python source code, execute: -```bash -pip install -e. -``` -Note: After the extension is published to the PyPI or conda-forge repositories, you can easily install the extension using pip or conda, such as: -```bash -pip install neural-compressor-ext-lab -``` -### Javascript/Typescript Front-end -Install source extension from npm with: -```bash -jupyter labextension install --py neural-compressor-ext-lab -``` -Note: After the extension is published to the NPM repositories, you can easily install the extension from jupyter lab extension market and don't need to execute the above command manually. - -## Debugging -Check if the package has been added into the extension list: -```bash -jupyter labextension list -jupyter serverextension list -``` -If the neural-compressor-ext-lab is not in ```serverextionsion``` list, try to enable the package to bacome a server extension: -```bash -jupyter serverextension enable --py neural-compressor-ext-lab -``` -*debugging tip* :if the enable fails, try running: -```bash -jupyter lab --ServerAPP.jpserver_extension="{'neural-compressor-ext-lab':True}" --debug -``` - -## Uninstall - -To remove the extension, execute: - -```bash -pip uninstall neural-compressor-ext-lab -``` -## Access jupyter lab remotely using SSH - -Launch the jupyter lab service on the remote server: -```bash -jupyter lab --no-browser --port=8889 -``` -Start SSH in a local terminal: -```bash -ssh -N -f -L localhost:8888:localhost:8889 username@serverIP -``` -## Contributing - -### Development install - -Note: You will need NodeJS to build the extension package. - -The `jlpm` command is JupyterLab's pinned version of -[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use -`yarn` or `npm` in lieu of `jlpm` below. - -```bash -# Clone the repo to your local environment -# Change directory to the Neural_Coder directory -# Install package in development mode -pip install -e . -# Link your development version of the extension with JupyterLab -jupyter labextension develop . --overwrite -# Rebuild extension Typescript source after making changes -jlpm build -``` - -You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension. - -```bash -# Watch the source directory in one terminal, automatically rebuilding when needed -jlpm watch -# Run JupyterLab in another terminal -jupyter lab -``` - -With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt). - -By default, the `jlpm build` command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command: - -```bash -jupyter lab build --minimize=False -``` - -### Development uninstall - -```bash -pip uninstall neural-compressor-ext-lab -``` - -In development mode, you will also need to remove the symlink created by `jupyter labextension develop` -command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions` -folder is located. Then you can remove the symlink named `Neural_Coder` within that folder. - -### Testing the extension - -#### Frontend tests - -This extension is using [Jest](https://jestjs.io/) for JavaScript code testing. - -To execute them, execute: - -```sh -jlpm -jlpm test -``` - -#### Integration tests - -This extension uses [Playwright](https://playwright.dev/docs/intro/) for the integration tests (aka user level tests). -More precisely, the JupyterLab helper [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata) is used to handle testing the extension in JupyterLab. - -More information are provided within the [ui-tests](./ui-tests/README.md) README. - -### Packaging the extension - -See [RELEASE](RELEASE.md) diff --git a/neural_coder/extensions/neural-compressor-ext-lab/README.md b/neural_coder/extensions/neural-compressor-ext-lab/README.md deleted file mode 100644 index 3b09a98a6ae..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/README.md +++ /dev/null @@ -1,128 +0,0 @@ -# Neural-Compressor-EXT-LAB - - -## Requirements - -- JupyterLab >= 3.0 - -## Install - -### Python Backend -To install the Python source code, execute: -```bash -python setup.py install -``` -Note: After the extension is published to the PyPI or conda-forge repositories, you can easily install the extension using pip or conda, such as: -```bash -pip install neural-compressor-ext-lab -``` -### Javascript/Typescript Front-end -Install lab extension from source code with: -```bash -jupyter labextension install --py neural-compressor-ext-lab -``` -Note: After the extension is published to the NPM repositories, you can easily install the extension from jupyter lab extension market and don't need to execute the above command manually. - -## Debugging -Check if the package has been added into the extension list: -```bash -jupyter labextension list -jupyter serverextension list -``` -If the neural-compressor-ext-lab is not in ```serverextension``` list, try to enable the package to become a server extension: -```bash -jupyter serverextension enable --py neural-compressor-ext-lab -``` -*debugging tip* :if the enable fails, try running: -```bash -jupyter lab --ServerAPP.jpserver_extension="{'neural-compressor-ext-lab':True}" --debug -``` - -## Uninstall - -To remove the extension, execute: - -```bash -pip uninstall neural-compressor-ext-lab -``` -## Access jupyter lab remotely using SSH - -Launch the jupyter lab service on the remote server: -```bash -jupyter lab --no-browser --port=8889 -``` -Start SSH in a local terminal: -```bash -ssh -N -f -L localhost:8888:localhost:8889 username@serverIP -``` -## Contributing - -### Development install - -Note: You will need NodeJS to build the extension package. - -The `jlpm` command is JupyterLab's pinned version of -[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use -`yarn` or `npm` in lieu of `jlpm` below. - -```bash -# Clone the repo to your local environment -# Change directory to the Neural_Coder directory -# Install package in development mode -pip install -e . -# Link your development version of the extension with JupyterLab -jupyter labextension develop . --overwrite -# Rebuild extension Typescript source after making changes -jlpm build -``` - -You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension. - -```bash -# Watch the source directory in one terminal, automatically rebuilding when needed -jlpm watch -# Run JupyterLab in another terminal -jupyter lab -``` - -With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt). - -By default, the `jlpm build` command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command: - -```bash -jupyter lab build --minimize=False -``` - -### Development uninstall - -```bash -pip uninstall neural-compressor-ext-lab -``` - -In development mode, you will also need to remove the symlink created by `jupyter labextension develop` -command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions` -folder is located. Then you can remove the symlink named `Neural_Coder` within that folder. - -### Testing the extension - -#### Frontend tests - -This extension is using [Jest](https://jestjs.io/) for JavaScript code testing. - -To execute them, execute: - -```sh -jlpm -jlpm test -``` - -#### Integration tests - -This extension uses [Playwright](https://playwright.dev/docs/intro/) for the integration tests (aka user level tests). -More precisely, the JupyterLab helper [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata) is used to handle testing the extension in JupyterLab. - -More information are provided within the [ui-tests](./ui-tests/README.md) README. - -### Packaging the extension - -See [RELEASE](RELEASE.md) diff --git a/neural_coder/extensions/neural-compressor-ext-lab/babel.config.js b/neural_coder/extensions/neural-compressor-ext-lab/babel.config.js deleted file mode 100644 index 8b5c76420c6..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@jupyterlab/testutils/lib/babel.config'); diff --git a/neural_coder/extensions/neural-compressor-ext-lab/install.json b/neural_coder/extensions/neural-compressor-ext-lab/install.json deleted file mode 100644 index 5b3d3fa21ee..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/install.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "packageManager": "python", - "packageName": "neural-compressor-ext-lab", - "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package Neural_Coder" -} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/jest.config.js b/neural_coder/extensions/neural-compressor-ext-lab/jest.config.js deleted file mode 100644 index 514c3809d53..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/jest.config.js +++ /dev/null @@ -1,42 +0,0 @@ -const jestJupyterLab = require('@jupyterlab/testutils/lib/jest-config'); - -const esModules = [ - '@jupyterlab/', - 'lib0', - 'y\\-protocols', - 'y\\-websocket', - 'yjs' -].join('|'); - -const jlabConfig = jestJupyterLab(__dirname); - -const { - moduleFileExtensions, - moduleNameMapper, - preset, - setupFilesAfterEnv, - setupFiles, - testPathIgnorePatterns, - transform -} = jlabConfig; - -module.exports = { - moduleFileExtensions, - moduleNameMapper, - preset, - setupFilesAfterEnv, - setupFiles, - testPathIgnorePatterns, - transform, - automock: false, - collectCoverageFrom: ['src/**/*.{ts,tsx}', '!src/**/*.d.ts'], - coverageDirectory: 'coverage', - coverageReporters: ['lcov', 'text'], - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.json' - } - }, - testRegex: 'src/.*/.*.spec.ts[x]?$', - transformIgnorePatterns: [`/node_modules/(?!${esModules}).+`] -}; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/jupyter-config/jupyter_notebook_config.d/jupyterlab_neural_coder.json b/neural_coder/extensions/neural-compressor-ext-lab/jupyter-config/jupyter_notebook_config.d/jupyterlab_neural_coder.json deleted file mode 100644 index e41f45c40ae..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/jupyter-config/jupyter_notebook_config.d/jupyterlab_neural_coder.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "NotebookApp": { - "nbserver_extensions": { - "neural-compressor-ext-lab": true - } - } -} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/jupyter-config/jupyter_server_config.d/jupyterlab_neural_coder.json b/neural_coder/extensions/neural-compressor-ext-lab/jupyter-config/jupyter_server_config.d/jupyterlab_neural_coder.json deleted file mode 100644 index fdf133c3c92..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/jupyter-config/jupyter_server_config.d/jupyterlab_neural_coder.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ServerApp": { - "jpserver_extensions": { - "neural-compressor-ext-lab": true - } - } -} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/client.d.ts b/neural_coder/extensions/neural-compressor-ext-lab/lib/client.d.ts deleted file mode 100644 index 6bc75416883..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/client.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare class JupyterlabDeepCoderClient { - request(path: string, method: string, body: any): Promise; -} -export default JupyterlabDeepCoderClient; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/client.js b/neural_coder/extensions/neural-compressor-ext-lab/lib/client.js deleted file mode 100644 index dc7ee6f97c9..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/client.js +++ /dev/null @@ -1,25 +0,0 @@ -import { URLExt } from '@jupyterlab/coreutils'; -import { ServerConnection } from '@jupyterlab/services'; -import { Constants } from './constants'; -class JupyterlabDeepCoderClient { - request(path, method, body) { - const settings = ServerConnection.makeSettings(); - const fullUrl = URLExt.join(settings.baseUrl, Constants.SHORT_PLUGIN_NAME, path); - return ServerConnection.makeRequest(fullUrl, { - body, - method, - headers: new Headers({ - 'Plugin-Version': Constants.PLUGIN_VERSION - }) - }, settings).then(response => { - if (response.status !== 200) { - console.log("response:::", response.status); - return response.text().then(() => { - throw new ServerConnection.ResponseError(response, response.statusText); - }); - } - return response.text(); - }); - } -} -export default JupyterlabDeepCoderClient; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/deepcoder.d.ts b/neural_coder/extensions/neural-compressor-ext-lab/lib/deepcoder.d.ts deleted file mode 100644 index ddcea63adaf..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/deepcoder.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { INotebookTracker, Notebook } from '@jupyterlab/notebook'; -import { IEditorTracker } from '@jupyterlab/fileeditor'; -import { Widget } from '@lumino/widgets'; -import JupyterlabDeepCoderClient from './client'; -declare class JupyterlabCodeOptimizer { - protected client: JupyterlabDeepCoderClient; - protected working: boolean; - constructor(client: JupyterlabDeepCoderClient); - protected optimizeCode(code: string[], formatter: string, options: any, notebook: boolean): Promise; -} -export declare class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { - protected notebookTracker: INotebookTracker; - constructor(client: JupyterlabDeepCoderClient, notebookTracker: INotebookTracker); - optimizeAction(config: any, formatter?: string): Promise; - optimizeAllCodeCells(config: any, formatter?: string, notebook?: Notebook): Promise; - private getCodeCells; - private optimizeCells; - applicable(formatter: string, currentWidget: Widget): boolean | null; -} -export declare class JupyterlabFileEditorCodeOptimizer extends JupyterlabCodeOptimizer { - protected editorTracker: IEditorTracker; - constructor(client: JupyterlabDeepCoderClient, editorTracker: IEditorTracker); - optimizeAction(config: any, formatter: string): void; - applicable(formatter: string, currentWidget: Widget): boolean | null; -} -export {}; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/deepcoder.js b/neural_coder/extensions/neural-compressor-ext-lab/lib/deepcoder.js deleted file mode 100644 index 3f1e3d17e63..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/deepcoder.js +++ /dev/null @@ -1,121 +0,0 @@ -import { showErrorMessage } from '@jupyterlab/apputils'; -class JupyterlabCodeOptimizer { - constructor(client) { - this.client = client; - this.working = false; - } - optimizeCode(code, formatter, options, notebook) { - return this.client - .request('optimize', 'POST', JSON.stringify({ - code, - notebook, - formatter, - options - })) - .then(resp => JSON.parse(resp)); - } -} -export class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { - constructor(client, notebookTracker) { - super(client); - this.notebookTracker = notebookTracker; - } - async optimizeAction(config, formatter) { - return this.optimizeCells(true, config, formatter); - } - async optimizeAllCodeCells(config, formatter, notebook) { - return this.optimizeCells(false, config, formatter, notebook); - } - getCodeCells(selectedOnly = true, notebook) { - if (!this.notebookTracker.currentWidget) { - return []; - } - const codeCells = []; - notebook = notebook || this.notebookTracker.currentWidget.content; - notebook.widgets.forEach((cell) => { - if (cell.model.type === 'code') { - codeCells.push(cell); - } - }); - return codeCells; - } - async optimizeCells(selectedOnly, config, formatter, notebook) { - var _a; - if (this.working) { - return; - } - try { - this.working = true; - const selectedCells = this.getCodeCells(selectedOnly, notebook); - if (selectedCells.length === 0) { - this.working = false; - return; - } - const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu'; - const currentTexts = selectedCells.map(cell => cell.model.value.text); - const optimizedTexts = await this.optimizeCode(currentTexts, optimize_type, undefined, true); - for (let i = 0; i < selectedCells.length; ++i) { - const cell = selectedCells[i]; - const currentText = currentTexts[i]; - const optimizedText = optimizedTexts.code[i]; - if (cell.model.value.text === currentText) { - if (optimizedText.error) { - if (!((_a = config.suppressFormatterErrors) !== null && _a !== void 0 ? _a : false)) { - await showErrorMessage('Optimize Code Error', optimizedText.error); - } - } - else { - cell.model.value.text = optimizedText; - ; - } - } - else { - await showErrorMessage('Optimize Code Error', `Cell value changed since format request was sent, formatting for cell ${i} skipped.`); - } - } - } - catch (error) { - await showErrorMessage('Optimize Code Error', error); - } - this.working = false; - } - applicable(formatter, currentWidget) { - const currentNotebookWidget = this.notebookTracker.currentWidget; - return currentNotebookWidget && currentWidget === currentNotebookWidget; - } -} -export class JupyterlabFileEditorCodeOptimizer extends JupyterlabCodeOptimizer { - constructor(client, editorTracker) { - super(client); - this.editorTracker = editorTracker; - } - optimizeAction(config, formatter) { - if (this.working) { - return; - } - const editorWidget = this.editorTracker.currentWidget; - this.working = true; - if (editorWidget == null) { - return; - } - const editor = editorWidget.content.editor; - const code = editor.model.value.text; - this.optimizeCode([code], formatter, config[formatter], false) - .then(data => { - if (data.code[0].error) { - void showErrorMessage('Optimize Code Error', data.code[0].error); - this.working = false; - return; - } - this.working = false; - }) - .catch(error => { - this.working = false; - void showErrorMessage('Optimize Code Error', error); - }); - } - applicable(formatter, currentWidget) { - const currentEditorWidget = this.editorTracker.currentWidget; - return currentEditorWidget && currentWidget === currentEditorWidget; - } -} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/handlers.py b/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/handlers.py deleted file mode 100644 index 3fbde4f197d..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/handlers.py +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright (c) 2022 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import json - -import pkg_resources -from jupyter_server.base.handlers import APIHandler -from jupyter_server.serverapp import ServerWebApplication -from jupyter_server.utils import url_path_join -from pathlib import Path - - -HERE = Path(__file__).parent.parent.resolve() -TMP_FILE = "tmp.py" - -def setup_handlers(web_app: ServerWebApplication) -> None: - host_pattern = ".*$" - web_app.add_handlers( - host_pattern, - [ - ( - url_path_join( - web_app.settings["base_url"], - "/neural-compressor-ext-lab/optimize", - ), - OptimizeAPIHandler, - ) - ], - ) - web_app.add_handlers( - host_pattern, - [ - ( - url_path_join( - web_app.settings["base_url"], "/neural-compressor-ext-lab/version" - ), - VersionAPIHandler, - ) - ], - ) - - -def check_plugin_version(handler: APIHandler): - server_extension_version = pkg_resources.get_distribution( - "neural-compressor-ext-lab" - ).version - lab_extension_version = handler.request.headers.get("Plugin-Version") - version_matches = server_extension_version == lab_extension_version - if not version_matches: - handler.set_status( - 422, - f"Mismatched versions of server extension ({server_extension_version}) " - f"and lab extension ({lab_extension_version}). " - f"Please ensure they are the same.", - ) - handler.finish() - return version_matches - - -class OptimizeAPIHandler(APIHandler): - def post(self) -> None: - if self.get_query_argument( - "bypassVersionCheck", default=None - ) is not None or check_plugin_version(self): - data = json.loads(self.request.body.decode("utf-8")) - print("Handle optimize request") - notebook = data["notebook"] - options = data.get("options", {}) - optimized_code = [] - with open( HERE/TMP_FILE, 'w+' ) as f: - for code in data["code"]: - f.write("# this is the beginning of a single code snippet\n") - code_list = code.split("\n") - for line in code_list: - f.write(line+"\n") - - from neural_coder import enable - enable(code=str(HERE/TMP_FILE), features=[data['formatter']], overwrite=True) - - with open( HERE/TMP_FILE, 'r' ) as f: - content = f.read() - optimized_code = content.split("# this is the beginning of a single code snippet\n")[1:] - self.finish(json.dumps({"code": optimized_code})) - -class VersionAPIHandler(APIHandler): - def get(self) -> None: - """Show what version is this server plguin on.""" - self.finish( - json.dumps( - { - "version": pkg_resources.get_distribution( - "neural-compressor-ext-lab" - ).version - } - ) - ) diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/lib_index_js.c8ce5d6f06928ba82660.js b/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/lib_index_js.c8ce5d6f06928ba82660.js deleted file mode 100644 index a3716caa44c..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/lib_index_js.c8ce5d6f06928ba82660.js +++ /dev/null @@ -1,343 +0,0 @@ -"use strict"; -(self["webpackChunkneural-compressor-ext-lab"] = self["webpackChunkneural-compressor-ext-lab"] || []).push([["lib_index_js"],{ - -/***/ "./lib/client.js": -/*!***********************!*\ - !*** ./lib/client.js ***! - \***********************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ "webpack/sharing/consume/default/@jupyterlab/coreutils"); -/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/services */ "webpack/sharing/consume/default/@jupyterlab/services"); -/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./lib/constants.js"); - - - -class JupyterlabDeepCoderClient { - request(path, method, body) { - const settings = _jupyterlab_services__WEBPACK_IMPORTED_MODULE_1__.ServerConnection.makeSettings(); - const fullUrl = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.join(settings.baseUrl, _constants__WEBPACK_IMPORTED_MODULE_2__.Constants.SHORT_PLUGIN_NAME, path); - return _jupyterlab_services__WEBPACK_IMPORTED_MODULE_1__.ServerConnection.makeRequest(fullUrl, { - body, - method, - headers: new Headers({ - 'Plugin-Version': _constants__WEBPACK_IMPORTED_MODULE_2__.Constants.PLUGIN_VERSION - }) - }, settings).then(response => { - if (response.status !== 200) { - console.log("response:::", response.status); - return response.text().then(() => { - throw new _jupyterlab_services__WEBPACK_IMPORTED_MODULE_1__.ServerConnection.ResponseError(response, response.statusText); - }); - } - return response.text(); - }); - } -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (JupyterlabDeepCoderClient); - - -/***/ }), - -/***/ "./lib/constants.js": -/*!**************************!*\ - !*** ./lib/constants.js ***! - \**************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Constants": () => (/* binding */ Constants) -/* harmony export */ }); -var Constants; -(function (Constants) { - Constants.SHORT_PLUGIN_NAME = 'neural-compressor-ext-lab'; - Constants.ICON_FORMAT_ALL_SVG = ''; - Constants.ICON_RUN = ''; - Constants.SVG = ''; - Constants.LONG_PLUGIN_NAME = `@rya/${Constants.SHORT_PLUGIN_NAME}`; - Constants.SETTINGS_SECTION = `${Constants.LONG_PLUGIN_NAME}:settings`; - Constants.COMMAND_SECTION_NAME = 'Jupyterlab Code Optimizer'; - Constants.PLUGIN_VERSION = '0.1.0'; -})(Constants || (Constants = {})); - - -/***/ }), - -/***/ "./lib/deepcoder.js": -/*!**************************!*\ - !*** ./lib/deepcoder.js ***! - \**************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "JupyterlabFileEditorCodeOptimizer": () => (/* binding */ JupyterlabFileEditorCodeOptimizer), -/* harmony export */ "JupyterlabNotebookCodeOptimizer": () => (/* binding */ JupyterlabNotebookCodeOptimizer) -/* harmony export */ }); -/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils"); -/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__); - -class JupyterlabCodeOptimizer { - constructor(client) { - this.client = client; - this.working = false; - } - optimizeCode(code, formatter, options, notebook) { - return this.client - .request('optimize', 'POST', JSON.stringify({ - code, - notebook, - formatter, - options - })) - .then(resp => JSON.parse(resp)); - } -} -class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { - constructor(client, notebookTracker) { - super(client); - this.notebookTracker = notebookTracker; - } - async optimizeAction(config, formatter) { - return this.optimizeCells(true, config, formatter); - } - async optimizeAllCodeCells(config, formatter, notebook) { - return this.optimizeCells(false, config, formatter, notebook); - } - getCodeCells(selectedOnly = true, notebook) { - if (!this.notebookTracker.currentWidget) { - return []; - } - const codeCells = []; - notebook = notebook || this.notebookTracker.currentWidget.content; - notebook.widgets.forEach((cell) => { - if (cell.model.type === 'code') { - codeCells.push(cell); - } - }); - return codeCells; - } - async optimizeCells(selectedOnly, config, formatter, notebook) { - var _a; - if (this.working) { - return; - } - try { - this.working = true; - const selectedCells = this.getCodeCells(selectedOnly, notebook); - if (selectedCells.length === 0) { - this.working = false; - return; - } - const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu'; - const currentTexts = selectedCells.map(cell => cell.model.value.text); - console.log("arrive here 1"); - const optimizedTexts = await this.optimizeCode(currentTexts, optimize_type, undefined, true); - console.log("arrive here 2"); - for (let i = 0; i < selectedCells.length; ++i) { - const cell = selectedCells[i]; - const currentText = currentTexts[i]; - const optimizedText = optimizedTexts.code[i]; - if (cell.model.value.text === currentText) { - if (optimizedText.error) { - if (!((_a = config.suppressFormatterErrors) !== null && _a !== void 0 ? _a : false)) { - console.log("here 1"); - await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showErrorMessage)('Optimize Code Error', optimizedText.error); - } - } - else { - cell.model.value.text = optimizedText; - ; - } - } - else { - console.log("here 2"); - await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showErrorMessage)('Optimize Code Error', `Cell value changed since format request was sent, formatting for cell ${i} skipped.`); - } - } - } - catch (error) { - console.log("here 3"); - await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showErrorMessage)('Optimize Code Error', error); - } - this.working = false; - } - applicable(formatter, currentWidget) { - const currentNotebookWidget = this.notebookTracker.currentWidget; - return currentNotebookWidget && currentWidget === currentNotebookWidget; - } -} -class JupyterlabFileEditorCodeOptimizer extends JupyterlabCodeOptimizer { - constructor(client, editorTracker) { - super(client); - this.editorTracker = editorTracker; - } - optimizeAction(config, formatter) { - if (this.working) { - return; - } - const editorWidget = this.editorTracker.currentWidget; - this.working = true; - if (editorWidget == null) { - return; - } - const editor = editorWidget.content.editor; - const code = editor.model.value.text; - this.optimizeCode([code], formatter, config[formatter], false) - .then(data => { - if (data.code[0].error) { - console.log("here 4"); - void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showErrorMessage)('Optimize Code Error', data.code[0].error); - this.working = false; - return; - } - this.working = false; - }) - .catch(error => { - this.working = false; - console.log("here 5"); - void (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showErrorMessage)('Optimize Code Error', error); - }); - } - applicable(formatter, currentWidget) { - const currentEditorWidget = this.editorTracker.currentWidget; - return currentEditorWidget && currentWidget === currentEditorWidget; - } -} - - -/***/ }), - -/***/ "./lib/index.js": -/*!**********************!*\ - !*** ./lib/index.js ***! - \**********************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/notebook */ "webpack/sharing/consume/default/@jupyterlab/notebook"); -/* harmony import */ var _jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils"); -/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/settingregistry */ "webpack/sharing/consume/default/@jupyterlab/settingregistry"); -/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/mainmenu */ "webpack/sharing/consume/default/@jupyterlab/mainmenu"); -/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/ui-components */ "webpack/sharing/consume/default/@jupyterlab/ui-components"); -/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ "webpack/sharing/consume/default/@lumino/widgets"); -/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _deepcoder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./deepcoder */ "./lib/deepcoder.js"); -/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./client */ "./lib/client.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constants */ "./lib/constants.js"); - - - - -// import { DisposableDelegate, IDisposable } from '@lumino/disposable'; - - - - - -class JupyterLabDeepCoder { - // private panel: NotebookPanel; - constructor(app, tracker) { - this.app = app; - this.tracker = tracker; - // this.panel = panel; - this.client = new _client__WEBPACK_IMPORTED_MODULE_6__["default"](); - this.notebookCodeOptimizer = new _deepcoder__WEBPACK_IMPORTED_MODULE_7__.JupyterlabNotebookCodeOptimizer(this.client, this.tracker); - this.setupWidgetExtension(); - } - createNew(nb) { - // this.panel = nb; - const svg = document.createElement("svg"); - svg.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_8__.Constants.ICON_FORMAT_ALL_SVG; - const run_svg = document.createElement("svg"); - run_svg.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_8__.Constants.ICON_RUN; - const div = document.createElement("div"); - div.setAttribute("class", "wrapper"); - const span = document.createElement("span"); - span.setAttribute("class", "f1ozlkqi"); - span.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_8__.Constants.SVG; - const selector = document.createElement("select"); - selector.setAttribute("class", "aselector"); - selector.id = "NeuralCoder"; - const option1 = document.createElement("option"); - option1.value = "pytorch_inc_static_quant_fx"; - option1.innerText = "Intel INT8 (Static)"; - option1.selected = true; - const option2 = document.createElement("option"); - option2.value = "pytorch_inc_dynamic_quant"; - option2.innerText = "Intel INT8 (Dynamic)"; - const option3 = document.createElement("option"); - option3.value = "pytorch_inc_bf16"; - option3.innerText = "Intel BF16"; - const option4 = document.createElement("option"); - option4.value = "auto-quant"; - option4.innerText = "Auto"; - selector.options.add(option1); - selector.options.add(option2); - selector.options.add(option3); - selector.options.add(option4); - div.appendChild(selector); - div.appendChild(span); - const selector_widget = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget(); - selector_widget.node.appendChild(div); - selector_widget.addClass("aselector"); - // let panel = this.panel; - let notebookCodeOptimizer = this.notebookCodeOptimizer; - let config = this.config; - const run_button = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton({ - tooltip: 'NeuralCoder', - icon: new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.LabIcon({ - name: "run", - svgstr: _constants__WEBPACK_IMPORTED_MODULE_8__.Constants.ICON_RUN - }), - onClick: async function () { - var _a, _b, _c, _d, _e, _f, _g, _h; - (_d = (_c = (_b = (_a = run_button.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(svg); - console.log("user's selecting feature"); - console.log(selector.options[selector.selectedIndex].value); - await notebookCodeOptimizer.optimizeAllCodeCells(config, selector.options[selector.selectedIndex].value); - (_h = (_g = (_f = (_e = run_button.node.firstChild) === null || _e === void 0 ? void 0 : _e.firstChild) === null || _f === void 0 ? void 0 : _f.firstChild) === null || _g === void 0 ? void 0 : _g.firstChild) === null || _h === void 0 ? void 0 : _h.replaceWith(run_svg); - } - }); - nb.toolbar.insertItem(11, "nc", run_button); - nb.toolbar.insertItem(12, "selector", selector_widget); - } - setupWidgetExtension() { - this.app.docRegistry.addWidgetExtension('Notebook', this); - } -} -/** - * Initialization data for the deepcoder-jupyterlab extension. - */ -const plugin = { - id: 'deepcoder-jupyterlab:plugin', - autoStart: true, - requires: [_jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0__.INotebookTracker, _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__.IMainMenu], - optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__.ISettingRegistry], - activate: (app, tracker) => { - new JupyterLabDeepCoder(app, tracker); - console.log('JupyterLab extension jupyterlab_neuralcoder is activated!'); - } -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin); - - -/***/ }) - -}]); -//# sourceMappingURL=lib_index_js.c8ce5d6f06928ba82660.js.map \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/lib_index_js.c8ce5d6f06928ba82660.js.map b/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/lib_index_js.c8ce5d6f06928ba82660.js.map deleted file mode 100644 index 6239849e710..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/lib_index_js.c8ce5d6f06928ba82660.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"lib_index_js.c8ce5d6f06928ba82660.js","mappings":";;;;;;;;;;;;;;;;;;AAA+C;AACS;AAChB;AACxC;AACA;AACA,yBAAyB,+EAA6B;AACtD,wBAAwB,8DAAW,mBAAmB,mEAA2B;AACjF,eAAe,8EAA4B;AAC3C;AACA;AACA;AACA,kCAAkC,gEAAwB;AAC1D,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,8BAA8B,gFAA8B;AAC5D,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,iEAAe,yBAAyB,EAAC;;;;;;;;;;;;;;;ACxBlC;AACP;AACA;AACA,6IAA6I,gCAAgC,gBAAgB,sBAAsB,qVAAqV,mBAAmB,gVAAgV,mBAAmB;AAC95B;AACA;AACA,yCAAyC,4BAA4B;AACrE,oCAAoC,2BAA2B;AAC/D;AACA;AACA,CAAC,8BAA8B;;;;;;;;;;;;;;;;;;ACVyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAgB,iGAAiG,GAAG;AAC9I;AACA;AACA;AACA;AACA;AACA,kBAAkB,sEAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAgB;AACrC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,sEAAgB;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/HyD;AAGZ;AACkB;AACd;AACjD,YAAY,kCAAkC;AACM;AACX;AACqB;AACb;AACT;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAAyB;AACnD,yCAAyC,uEAA+B;AACxE;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAA6B;AACrD;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA;AACA;AACA,yBAAyB,qDAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA,+BAA+B,+DAAa;AAC5C;AACA,sBAAsB,8DAAO;AAC7B;AACA,wBAAwB,0DAAkB;AAC1C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAgB,EAAE,2DAAS;AAC1C,eAAe,yEAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM,EAAC","sources":["webpack://neural-compressor-ext-lab/./lib/client.js","webpack://neural-compressor-ext-lab/./lib/constants.js","webpack://neural-compressor-ext-lab/./lib/deepcoder.js","webpack://neural-compressor-ext-lab/./lib/index.js"],"sourcesContent":["import { URLExt } from '@jupyterlab/coreutils';\nimport { ServerConnection } from '@jupyterlab/services';\nimport { Constants } from './constants';\nclass JupyterlabDeepCoderClient {\n request(path, method, body) {\n const settings = ServerConnection.makeSettings();\n const fullUrl = URLExt.join(settings.baseUrl, Constants.SHORT_PLUGIN_NAME, path);\n return ServerConnection.makeRequest(fullUrl, {\n body,\n method,\n headers: new Headers({\n 'Plugin-Version': Constants.PLUGIN_VERSION\n })\n }, settings).then(response => {\n if (response.status !== 200) {\n console.log(\"response:::\", response.status);\n return response.text().then(() => {\n throw new ServerConnection.ResponseError(response, response.statusText);\n });\n }\n return response.text();\n });\n }\n}\nexport default JupyterlabDeepCoderClient;\n","export var Constants;\n(function (Constants) {\n Constants.SHORT_PLUGIN_NAME = 'neural-compressor-ext-lab';\n Constants.ICON_FORMAT_ALL_SVG = '';\n Constants.ICON_RUN = '';\n Constants.SVG = '';\n Constants.LONG_PLUGIN_NAME = `@rya/${Constants.SHORT_PLUGIN_NAME}`;\n Constants.SETTINGS_SECTION = `${Constants.LONG_PLUGIN_NAME}:settings`;\n Constants.COMMAND_SECTION_NAME = 'Jupyterlab Code Optimizer';\n Constants.PLUGIN_VERSION = '0.1.0';\n})(Constants || (Constants = {}));\n","import { showErrorMessage } from '@jupyterlab/apputils';\nclass JupyterlabCodeOptimizer {\n constructor(client) {\n this.client = client;\n this.working = false;\n }\n optimizeCode(code, formatter, options, notebook) {\n return this.client\n .request('optimize', 'POST', JSON.stringify({\n code,\n notebook,\n formatter,\n options\n }))\n .then(resp => JSON.parse(resp));\n }\n}\nexport class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer {\n constructor(client, notebookTracker) {\n super(client);\n this.notebookTracker = notebookTracker;\n }\n async optimizeAction(config, formatter) {\n return this.optimizeCells(true, config, formatter);\n }\n async optimizeAllCodeCells(config, formatter, notebook) {\n return this.optimizeCells(false, config, formatter, notebook);\n }\n getCodeCells(selectedOnly = true, notebook) {\n if (!this.notebookTracker.currentWidget) {\n return [];\n }\n const codeCells = [];\n notebook = notebook || this.notebookTracker.currentWidget.content;\n notebook.widgets.forEach((cell) => {\n if (cell.model.type === 'code') {\n codeCells.push(cell);\n }\n });\n return codeCells;\n }\n async optimizeCells(selectedOnly, config, formatter, notebook) {\n var _a;\n if (this.working) {\n return;\n }\n try {\n this.working = true;\n const selectedCells = this.getCodeCells(selectedOnly, notebook);\n if (selectedCells.length === 0) {\n this.working = false;\n return;\n }\n const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu';\n const currentTexts = selectedCells.map(cell => cell.model.value.text);\n console.log(\"arrive here 1\");\n const optimizedTexts = await this.optimizeCode(currentTexts, optimize_type, undefined, true);\n console.log(\"arrive here 2\");\n for (let i = 0; i < selectedCells.length; ++i) {\n const cell = selectedCells[i];\n const currentText = currentTexts[i];\n const optimizedText = optimizedTexts.code[i];\n if (cell.model.value.text === currentText) {\n if (optimizedText.error) {\n if (!((_a = config.suppressFormatterErrors) !== null && _a !== void 0 ? _a : false)) {\n console.log(\"here 1\");\n await showErrorMessage('Optimize Code Error', optimizedText.error);\n }\n }\n else {\n cell.model.value.text = optimizedText;\n cell.outputArea.node.innerText = \"tothelighthouse\";\n }\n }\n else {\n console.log(\"here 2\");\n await showErrorMessage('Optimize Code Error', `Cell value changed since format request was sent, formatting for cell ${i} skipped.`);\n }\n }\n }\n catch (error) {\n console.log(\"here 3\");\n await showErrorMessage('Optimize Code Error', error);\n }\n this.working = false;\n }\n applicable(formatter, currentWidget) {\n const currentNotebookWidget = this.notebookTracker.currentWidget;\n return currentNotebookWidget && currentWidget === currentNotebookWidget;\n }\n}\nexport class JupyterlabFileEditorCodeOptimizer extends JupyterlabCodeOptimizer {\n constructor(client, editorTracker) {\n super(client);\n this.editorTracker = editorTracker;\n }\n optimizeAction(config, formatter) {\n if (this.working) {\n return;\n }\n const editorWidget = this.editorTracker.currentWidget;\n this.working = true;\n if (editorWidget == null) {\n return;\n }\n const editor = editorWidget.content.editor;\n const code = editor.model.value.text;\n this.optimizeCode([code], formatter, config[formatter], false)\n .then(data => {\n if (data.code[0].error) {\n console.log(\"here 4\");\n void showErrorMessage('Optimize Code Error', data.code[0].error);\n this.working = false;\n return;\n }\n this.working = false;\n })\n .catch(error => {\n this.working = false;\n console.log(\"here 5\");\n void showErrorMessage('Optimize Code Error', error);\n });\n }\n applicable(formatter, currentWidget) {\n const currentEditorWidget = this.editorTracker.currentWidget;\n return currentEditorWidget && currentWidget === currentEditorWidget;\n }\n}\n","import { INotebookTracker, } from '@jupyterlab/notebook';\nimport { \n// ICommandPalette,\nToolbarButton, } from '@jupyterlab/apputils';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\n// import { DisposableDelegate, IDisposable } from '@lumino/disposable';\nimport { LabIcon } from '@jupyterlab/ui-components';\nimport { Widget } from '@lumino/widgets';\nimport { JupyterlabNotebookCodeOptimizer } from './deepcoder';\nimport JupyterlabDeepCoderClient from './client';\nimport { Constants } from './constants';\nclass JupyterLabDeepCoder {\n // private panel: NotebookPanel;\n constructor(app, tracker) {\n this.app = app;\n this.tracker = tracker;\n // this.panel = panel;\n this.client = new JupyterlabDeepCoderClient();\n this.notebookCodeOptimizer = new JupyterlabNotebookCodeOptimizer(this.client, this.tracker);\n this.setupWidgetExtension();\n }\n createNew(nb) {\n // this.panel = nb;\n const svg = document.createElement(\"svg\");\n svg.innerHTML = Constants.ICON_FORMAT_ALL_SVG;\n const run_svg = document.createElement(\"svg\");\n run_svg.innerHTML = Constants.ICON_RUN;\n const div = document.createElement(\"div\");\n div.setAttribute(\"class\", \"wrapper\");\n const span = document.createElement(\"span\");\n span.setAttribute(\"class\", \"f1ozlkqi\");\n span.innerHTML = Constants.SVG;\n const selector = document.createElement(\"select\");\n selector.setAttribute(\"class\", \"aselector\");\n selector.id = \"NeuralCoder\";\n const option1 = document.createElement(\"option\");\n option1.value = \"pytorch_inc_static_quant_fx\";\n option1.innerText = \"Intel INT8 (Static)\";\n option1.selected = true;\n const option2 = document.createElement(\"option\");\n option2.value = \"pytorch_inc_dynamic_quant\";\n option2.innerText = \"Intel INT8 (Dynamic)\";\n const option3 = document.createElement(\"option\");\n option3.value = \"pytorch_inc_bf16\";\n option3.innerText = \"Intel BF16\";\n const option4 = document.createElement(\"option\");\n option4.value = \"auto-quant\";\n option4.innerText = \"Auto\";\n selector.options.add(option1);\n selector.options.add(option2);\n selector.options.add(option3);\n selector.options.add(option4);\n div.appendChild(selector);\n div.appendChild(span);\n const selector_widget = new Widget();\n selector_widget.node.appendChild(div);\n selector_widget.addClass(\"aselector\");\n // let panel = this.panel;\n let notebookCodeOptimizer = this.notebookCodeOptimizer;\n let config = this.config;\n const run_button = new ToolbarButton({\n tooltip: 'NeuralCoder',\n icon: new LabIcon({\n name: \"run\",\n svgstr: Constants.ICON_RUN\n }),\n onClick: async function () {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_d = (_c = (_b = (_a = run_button.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(svg);\n console.log(\"user's selecting feature\");\n console.log(selector.options[selector.selectedIndex].value);\n await notebookCodeOptimizer.optimizeAllCodeCells(config, selector.options[selector.selectedIndex].value);\n (_h = (_g = (_f = (_e = run_button.node.firstChild) === null || _e === void 0 ? void 0 : _e.firstChild) === null || _f === void 0 ? void 0 : _f.firstChild) === null || _g === void 0 ? void 0 : _g.firstChild) === null || _h === void 0 ? void 0 : _h.replaceWith(run_svg);\n }\n });\n nb.toolbar.insertItem(11, \"nc\", run_button);\n nb.toolbar.insertItem(12, \"selector\", selector_widget);\n }\n setupWidgetExtension() {\n this.app.docRegistry.addWidgetExtension('Notebook', this);\n }\n}\n/**\n * Initialization data for the deepcoder-jupyterlab extension.\n */\nconst plugin = {\n id: 'deepcoder-jupyterlab:plugin',\n autoStart: true,\n requires: [INotebookTracker, IMainMenu],\n optional: [ISettingRegistry],\n activate: (app, tracker) => {\n new JupyterLabDeepCoder(app, tracker);\n console.log('JupyterLab extension jupyterlab_neuralcoder is activated!');\n }\n};\nexport default plugin;\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/remoteEntry.5902e6831f208a384a8f.js.map b/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/remoteEntry.5902e6831f208a384a8f.js.map deleted file mode 100644 index 250cf0ecdfc..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/remoteEntry.5902e6831f208a384a8f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"remoteEntry.5902e6831f208a384a8f.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;UCpCD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;;;;;WCRA;WACA;WACA;WACA,8BAA8B,4MAA4M;WAC1O;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA;;;;;WCzCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,oJAAoJ;WACpJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI,aAAa;WACjB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3CA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WCfA;WACA;WACA,WAAW,6BAA6B,iBAAiB,GAAG,qEAAqE;WACjI;WACA;WACA;WACA,qCAAqC,aAAa,EAAE,wDAAwD,2BAA2B,4BAA4B,2BAA2B,+CAA+C,mCAAmC;WAChR;WACA;WACA;WACA,qBAAqB,8BAA8B,SAAS,sDAAsD,gBAAgB,eAAe,KAAK,6DAA6D,SAAS,SAAS,QAAQ,eAAe,KAAK,eAAe,qGAAqG,WAAW,aAAa;WAC7Y;WACA;WACA;WACA,gBAAgB,8BAA8B,qBAAqB,YAAY,sBAAsB,SAAS,iDAAiD,6FAA6F,WAAW,uBAAuB,2BAA2B,wBAAwB,KAAK,oCAAoC,oBAAoB,wBAAwB,oBAAoB,SAAS,KAAK,yBAAyB,KAAK,gCAAgC,yBAAyB,QAAQ,eAAe,KAAK,eAAe,4DAA4D;WACtoB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;;WAED;WACA;WACA;WACA,CAAC;WACD;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN,KAAK,WAAW;WAChB,GAAG;WACH;WACA;;;;;WCrLA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA;;;;;WCrFA;;;;;UEAA;UACA;UACA;UACA","sources":["webpack://neural-compressor-ext-lab/webpack/container-entry","webpack://neural-compressor-ext-lab/webpack/bootstrap","webpack://neural-compressor-ext-lab/webpack/runtime/compat get default export","webpack://neural-compressor-ext-lab/webpack/runtime/define property getters","webpack://neural-compressor-ext-lab/webpack/runtime/ensure chunk","webpack://neural-compressor-ext-lab/webpack/runtime/get javascript chunk filename","webpack://neural-compressor-ext-lab/webpack/runtime/global","webpack://neural-compressor-ext-lab/webpack/runtime/hasOwnProperty shorthand","webpack://neural-compressor-ext-lab/webpack/runtime/load script","webpack://neural-compressor-ext-lab/webpack/runtime/make namespace object","webpack://neural-compressor-ext-lab/webpack/runtime/sharing","webpack://neural-compressor-ext-lab/webpack/runtime/publicPath","webpack://neural-compressor-ext-lab/webpack/runtime/consumes","webpack://neural-compressor-ext-lab/webpack/runtime/jsonp chunk loading","webpack://neural-compressor-ext-lab/webpack/runtime/nonce","webpack://neural-compressor-ext-lab/webpack/before-startup","webpack://neural-compressor-ext-lab/webpack/startup","webpack://neural-compressor-ext-lab/webpack/after-startup"],"sourcesContent":["var moduleMap = {\n\t\"./index\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./extension\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./style\": () => {\n\t\treturn Promise.all([__webpack_require__.e(\"vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1\"), __webpack_require__.e(\"style_index_js\")]).then(() => (() => ((__webpack_require__(/*! ./style/index.js */ \"./style/index.js\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"lib_index_js\":\"c8ce5d6f06928ba82660\",\"vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1\":\"e23251bcbb7e84631721\",\"style_index_js\":\"01365bdf92323310e6f2\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"neural-compressor-ext-lab:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => (typeof console !== \"undefined\" && console.warn && console.warn(msg));\n\tvar uniqueName = \"neural-compressor-ext-lab\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"neural-compressor-ext-lab\", \"0.1.0\", () => (__webpack_require__.e(\"lib_index_js\").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\"))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map((p=>{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f {\n\tvar scope = __webpack_require__.S[scopeName];\n\tif(!scope || !__webpack_require__.o(scope, key)) throw new Error(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n\treturn scope;\n};\nvar findVersion = (scope, key) => {\n\tvar versions = scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key) => {\n\tvar versions = scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getSingleton = (scope, scopeName, key, requiredVersion) => {\n\tvar version = findSingletonVersionKey(scope, key);\n\treturn get(scope[key][version]);\n};\nvar getSingletonVersion = (scope, scopeName, key, requiredVersion) => {\n\tvar version = findSingletonVersionKey(scope, key);\n\tif (!satisfy(requiredVersion, version)) typeof console !== \"undefined\" && console.warn && console.warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\treturn get(scope[key][version]);\n};\nvar getStrictSingletonVersion = (scope, scopeName, key, requiredVersion) => {\n\tvar version = findSingletonVersionKey(scope, key);\n\tif (!satisfy(requiredVersion, version)) throw new Error(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\treturn get(scope[key][version]);\n};\nvar findValidVersion = (scope, key, requiredVersion) => {\n\tvar versions = scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \") of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar getValidVersion = (scope, scopeName, key, requiredVersion) => {\n\tvar entry = findValidVersion(scope, key, requiredVersion);\n\tif(entry) return get(entry);\n\tthrow new Error(getInvalidVersionMessage(scope, scopeName, key, requiredVersion));\n};\nvar warnInvalidVersion = (scope, scopeName, key, requiredVersion) => {\n\ttypeof console !== \"undefined\" && console.warn && console.warn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion));\n};\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar init = (fn) => (function(scopeName, a, b, c) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then) return promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], a, b, c));\n\treturn fn(scopeName, __webpack_require__.S[scopeName], a, b, c);\n});\n\nvar load = /*#__PURE__*/ init((scopeName, scope, key) => {\n\tensureExistence(scopeName, key);\n\treturn get(findVersion(scope, key));\n});\nvar loadFallback = /*#__PURE__*/ init((scopeName, scope, key, fallback) => {\n\treturn scope && __webpack_require__.o(scope, key) ? get(findVersion(scope, key)) : fallback();\n});\nvar loadVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn get(findValidVersion(scope, key, version) || warnInvalidVersion(scope, scopeName, key, version) || findVersion(scope, key));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key) => {\n\tensureExistence(scopeName, key);\n\treturn getSingleton(scope, scopeName, key);\n});\nvar loadSingletonVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn getSingletonVersion(scope, scopeName, key, version);\n});\nvar loadStrictVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn getValidVersion(scope, scopeName, key, version);\n});\nvar loadStrictSingletonVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn getStrictSingletonVersion(scope, scopeName, key, version);\n});\nvar loadVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn get(findValidVersion(scope, key, version) || warnInvalidVersion(scope, scopeName, key, version) || findVersion(scope, key));\n});\nvar loadSingletonFallback = /*#__PURE__*/ init((scopeName, scope, key, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn getSingleton(scope, scopeName, key);\n});\nvar loadSingletonVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn getSingletonVersion(scope, scopeName, key, version);\n});\nvar loadStrictVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tvar entry = scope && __webpack_require__.o(scope, key) && findValidVersion(scope, key, version);\n\treturn entry ? get(entry) : fallback();\n});\nvar loadStrictSingletonVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn getStrictSingletonVersion(scope, scopeName, key, version);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t\"webpack/sharing/consume/default/@jupyterlab/notebook\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/notebook\", [1,3,4,4])),\n\t\"webpack/sharing/consume/default/@jupyterlab/apputils\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/apputils\", [1,3,4,4])),\n\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/settingregistry\", [1,3,4,4])),\n\t\"webpack/sharing/consume/default/@jupyterlab/mainmenu\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/mainmenu\", [1,3,4,4])),\n\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/ui-components\", [1,3,4,4])),\n\t\"webpack/sharing/consume/default/@lumino/widgets\": () => (loadSingletonVersionCheck(\"default\", \"@lumino/widgets\", [1,1,33,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/coreutils\", [1,5,4,4])),\n\t\"webpack/sharing/consume/default/@jupyterlab/services\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/services\", [1,6,4,4]))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"lib_index_js\": [\n\t\t\"webpack/sharing/consume/default/@jupyterlab/notebook\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/apputils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/mainmenu\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\",\n\t\t\"webpack/sharing/consume/default/@lumino/widgets\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/services\"\n\t]\n};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t});\n\t}\n}","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"neural-compressor-ext-lab\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkneural-compressor-ext-lab\"] = self[\"webpackChunkneural-compressor-ext-lab\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"webpack/container/entry/neural-compressor-ext-lab\");\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style_index_js.01365bdf92323310e6f2.js b/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style_index_js.01365bdf92323310e6f2.js deleted file mode 100644 index 0bc3a986a72..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style_index_js.01365bdf92323310e6f2.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; -(self["webpackChunkneural-compressor-jupyter-lab"] = self["webpackChunkneural-compressor-jupyter-lab"] || []).push([["style_index_js"],{ - -/***/ "./node_modules/css-loader/dist/cjs.js!./style/base.css": -/*!**************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./style/base.css ***! - \**************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ "./node_modules/css-loader/dist/runtime/cssWithMappingToString.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, "/*\n See the JupyterLab Developer Guide for useful CSS Patterns:\n\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\n*/\n.lds-ripple {\n display: flex;\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 80px;\n height: 80px;\n}\n.lds-ripple div {\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n border: 4px solid rgb(245, 131, 55);\n opacity: 1;\n border-radius: 50%;\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n}\n.lds-ripple div:nth-child(2) {\n animation-delay: -0.5s;\n}\n@keyframes lds-ripple {\n 0% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 4.9% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 5% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 1;\n }\n 100% {\n top: 0px;\n left: 0px;\n width: 72px;\n height: 72px;\n opacity: 0;\n }\n}\n\n\n/* CSS */\n.button-62 {\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\n border: 0;\n border-radius: 12px;\n color: #FFFFFF;\n cursor: pointer;\n display: inline-block;\n font-family: -apple-system,system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n font-size: 16px;\n font-weight: 500;\n line-height: 2.5;\n outline: transparent;\n padding: 0 1rem;\n text-align: center;\n text-decoration: none;\n transition: box-shadow .2s ease-in-out;\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n white-space: nowrap;\n}\n\n.button-62:not([disabled]):focus {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.button-62:not([disabled]):hover {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.aselector select {\n background-color: initial;\n border: none;\n border-radius: 0;\n box-shadow: none;\n color: var(--jp-ui-font-color0);\n display: block;\n font-size: var(--jp-ui-font-size1);\n height: 24px;\n line-height: 14px;\n padding: 0 25px 0 10px;\n text-align: left;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n/* Use our own theme for hover and option styles */\n.aselector select:hover,\n.aselector select > option {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n}\nselect {\n box-sizing: border-box;\n}\n\n.font{\nbackground-color: initial;\nborder: none;\nheight: 21px;\nborder-radius: 0;\nfont-weight:500;\ncolor: var(--jp-ui-font-color0);\ndisplay: block;\nline-height: 22.5px;\npadding: 0 25px 0 10px;\nfont-size: var(--jp-ui-font-size1);\n}\n.wrapper {\n display: flex;\n}\n.f1ozlkqi {\n pointer-events: none;\n}\n\n.palybutton{\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\n}\n.loading{\n \n background-image: url(\"data:image/svg+xml,\");\n background-size: contain; \n}\n\n:root {\n /* Elevation\n *\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\n *\n * https://github.com/material-components/material-components-web\n * https://material-components-web.appspot.com/elevation.html\n */\n\n --jp-shadow-base-lightness: 0;\n --jp-shadow-umbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.2\n );\n --jp-shadow-penumbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.14\n );\n --jp-shadow-ambient-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.12\n );\n --jp-elevation-z0: none;\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\n\n /* Borders\n *\n * The following variables, specify the visual styling of borders in JupyterLab.\n */\n\n --jp-border-width: 1px;\n --jp-border-color0: var(--md-grey-400);\n --jp-border-color1: var(--md-grey-400);\n --jp-border-color2: var(--md-grey-300);\n --jp-border-color3: var(--md-grey-200);\n --jp-inverse-border-color: var(--md-grey-600);\n --jp-border-radius: 2px;\n\n /* UI Fonts\n *\n * The UI font CSS variables are used for the typography all of the JupyterLab\n * user interface elements that are not directly user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-ui-font-scale-factor: 1.2;\n --jp-ui-font-size0: 0.83333em;\n --jp-ui-font-size1: 13px; /* Base font size */\n --jp-ui-font-size2: 1.2em;\n --jp-ui-font-size3: 1.44em;\n\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n /*\n * Use these font colors against the corresponding main layout colors.\n * In a light theme, these go from dark to light.\n */\n\n /* Defaults use Material Design specification */\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\n\n /*\n * Use these against the brand/accent/warn/error colors.\n * These will typically go from light to darker, in both a dark and light theme.\n */\n\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\n\n /* Content Fonts\n *\n * Content font variables are used for typography of user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-content-line-height: 1.6;\n --jp-content-font-scale-factor: 1.2;\n --jp-content-font-size0: 0.83333em;\n --jp-content-font-size1: 14px; /* Base font size */\n --jp-content-font-size2: 1.2em;\n --jp-content-font-size3: 1.44em;\n --jp-content-font-size4: 1.728em;\n --jp-content-font-size5: 2.0736em;\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-content-presentation-font-size1: 17px;\n\n --jp-content-heading-line-height: 1;\n --jp-content-heading-margin-top: 1.2em;\n --jp-content-heading-margin-bottom: 0.8em;\n --jp-content-heading-font-weight: 500;\n\n /* Defaults use Material Design specification */\n --jp-content-font-color0: rgba(0, 0, 0, 1);\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\n\n --jp-content-link-color: var(--md-blue-700);\n\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n\n /*\n * Code Fonts\n *\n * Code font variables are used for typography of code and other monospaces content.\n */\n\n --jp-code-font-size: 13px;\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\n --jp-code-font-family: var(--jp-code-font-family-default);\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-code-presentation-font-size: 16px;\n\n /* may need to tweak cursor width if you change font size */\n --jp-code-cursor-width0: 1.4px;\n --jp-code-cursor-width1: 2px;\n --jp-code-cursor-width2: 4px;\n\n /* Layout\n *\n * The following are the main layout colors use in JupyterLab. In a light\n * theme these would go from light to dark.\n */\n\n --jp-layout-color0: white;\n --jp-layout-color1: white;\n --jp-layout-color2: var(--md-grey-200);\n --jp-layout-color3: var(--md-grey-400);\n --jp-layout-color4: var(--md-grey-600);\n\n /* Inverse Layout\n *\n * The following are the inverse layout colors use in JupyterLab. In a light\n * theme these would go from dark to light.\n */\n\n --jp-inverse-layout-color0: #111111;\n --jp-inverse-layout-color1: var(--md-grey-900);\n --jp-inverse-layout-color2: var(--md-grey-800);\n --jp-inverse-layout-color3: var(--md-grey-700);\n --jp-inverse-layout-color4: var(--md-grey-600);\n\n /* Brand/accent */\n\n --jp-brand-color0: var(--md-blue-900);\n --jp-brand-color1: var(--md-blue-700);\n --jp-brand-color2: var(--md-blue-300);\n --jp-brand-color3: var(--md-blue-100);\n --jp-brand-color4: var(--md-blue-50);\n\n --jp-accent-color0: var(--md-green-900);\n --jp-accent-color1: var(--md-green-700);\n --jp-accent-color2: var(--md-green-300);\n --jp-accent-color3: var(--md-green-100);\n\n /* State colors (warn, error, success, info) */\n\n --jp-warn-color0: var(--md-orange-900);\n --jp-warn-color1: var(--md-orange-700);\n --jp-warn-color2: var(--md-orange-300);\n --jp-warn-color3: var(--md-orange-100);\n\n --jp-error-color0: var(--md-red-900);\n --jp-error-color1: var(--md-red-700);\n --jp-error-color2: var(--md-red-300);\n --jp-error-color3: var(--md-red-100);\n\n --jp-success-color0: var(--md-green-900);\n --jp-success-color1: var(--md-green-700);\n --jp-success-color2: var(--md-green-300);\n --jp-success-color3: var(--md-green-100);\n\n --jp-info-color0: var(--md-cyan-900);\n --jp-info-color1: var(--md-cyan-700);\n --jp-info-color2: var(--md-cyan-300);\n --jp-info-color3: var(--md-cyan-100);\n\n /* Cell specific styles */\n\n --jp-cell-padding: 5px;\n\n --jp-cell-collapser-width: 8px;\n --jp-cell-collapser-min-height: 20px;\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\n\n --jp-cell-editor-background: var(--md-grey-100);\n --jp-cell-editor-border-color: var(--md-grey-300);\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-cell-editor-active-background: var(--jp-layout-color0);\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\n\n --jp-cell-prompt-width: 64px;\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\n --jp-cell-prompt-letter-spacing: 0px;\n --jp-cell-prompt-opacity: 1;\n --jp-cell-prompt-not-active-opacity: 0.5;\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\n /* A custom blend of MD grey and blue 600\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\n --jp-cell-inprompt-font-color: #307fc1;\n /* A custom blend of MD grey and orange 600\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\n --jp-cell-outprompt-font-color: #bf5b3d;\n\n /* Notebook specific styles */\n\n --jp-notebook-padding: 10px;\n --jp-notebook-select-background: var(--jp-layout-color1);\n --jp-notebook-multiselected-color: var(--md-blue-50);\n\n /* The scroll padding is calculated to fill enough space at the bottom of the\n notebook to show one single-line cell (with appropriate padding) at the top\n when the notebook is scrolled all the way to the bottom. We also subtract one\n pixel so that no scrollbar appears if we have just one single-line cell in the\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\n */\n --jp-notebook-scroll-padding: calc(\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\n );\n\n /* Rendermime styles */\n\n --jp-rendermime-error-background: #fdd;\n --jp-rendermime-table-row-background: var(--md-grey-100);\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\n\n /* Dialog specific styles */\n\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\n\n /* Console specific styles */\n\n --jp-console-padding: 10px;\n\n /* Toolbar specific styles */\n\n --jp-toolbar-border-color: var(--jp-border-color1);\n --jp-toolbar-micro-height: 8px;\n --jp-toolbar-background: var(--jp-layout-color1);\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\n --jp-toolbar-active-background: var(--md-grey-300);\n\n /* Statusbar specific styles */\n\n --jp-statusbar-height: 24px;\n\n /* Input field styles */\n\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-input-active-background: var(--jp-layout-color1);\n --jp-input-hover-background: var(--jp-layout-color1);\n --jp-input-background: var(--md-grey-100);\n --jp-input-border-color: var(--jp-inverse-border-color);\n --jp-input-active-border-color: var(--jp-brand-color1);\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\n\n /* General editor styles */\n\n --jp-editor-selected-background: #d9d9d9;\n --jp-editor-selected-focused-background: #d7d4f0;\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\n\n /* Code mirror specific styles */\n\n --jp-mirror-editor-keyword-color: #008000;\n --jp-mirror-editor-atom-color: #88f;\n --jp-mirror-editor-number-color: #080;\n --jp-mirror-editor-def-color: #00f;\n --jp-mirror-editor-variable-color: var(--md-grey-900);\n --jp-mirror-editor-variable-2-color: #05a;\n --jp-mirror-editor-variable-3-color: #085;\n --jp-mirror-editor-punctuation-color: #05a;\n --jp-mirror-editor-property-color: #05a;\n --jp-mirror-editor-operator-color: #aa22ff;\n --jp-mirror-editor-comment-color: #408080;\n --jp-mirror-editor-string-color: #ba2121;\n --jp-mirror-editor-string-2-color: #708;\n --jp-mirror-editor-meta-color: #aa22ff;\n --jp-mirror-editor-qualifier-color: #555;\n --jp-mirror-editor-builtin-color: #008000;\n --jp-mirror-editor-bracket-color: #997;\n --jp-mirror-editor-tag-color: #170;\n --jp-mirror-editor-attribute-color: #00c;\n --jp-mirror-editor-header-color: blue;\n --jp-mirror-editor-quote-color: #090;\n --jp-mirror-editor-link-color: #00c;\n --jp-mirror-editor-error-color: #f00;\n --jp-mirror-editor-hr-color: #999;\n\n /* Vega extension styles */\n\n --jp-vega-background: white;\n\n /* Sidebar-related styles */\n\n --jp-sidebar-min-width: 250px;\n\n /* Search-related styles */\n\n --jp-search-toggle-off-opacity: 0.5;\n --jp-search-toggle-hover-opacity: 0.8;\n --jp-search-toggle-on-opacity: 1;\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\n --jp-search-selected-match-color: black;\n --jp-search-unselected-match-background-color: var(\n --jp-inverse-layout-color0\n );\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\n\n /* Icon colors that work well with light or dark backgrounds */\n --jp-icon-contrast-color0: var(--md-purple-600);\n --jp-icon-contrast-color1: var(--md-green-600);\n --jp-icon-contrast-color2: var(--md-pink-600);\n --jp-icon-contrast-color3: var(--md-blue-600);\n}\n\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Set the default typography for monospace elements */\ntt,\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-code-line-height);\n}\n\n", "",{"version":3,"sources":["webpack://./style/base.css"],"names":[],"mappings":"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","sourcesContent":["/*\n See the JupyterLab Developer Guide for useful CSS Patterns:\n\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\n*/\n.lds-ripple {\n display: flex;\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 80px;\n height: 80px;\n}\n.lds-ripple div {\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n border: 4px solid rgb(245, 131, 55);\n opacity: 1;\n border-radius: 50%;\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n}\n.lds-ripple div:nth-child(2) {\n animation-delay: -0.5s;\n}\n@keyframes lds-ripple {\n 0% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 4.9% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 5% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 1;\n }\n 100% {\n top: 0px;\n left: 0px;\n width: 72px;\n height: 72px;\n opacity: 0;\n }\n}\n\n\n/* CSS */\n.button-62 {\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\n border: 0;\n border-radius: 12px;\n color: #FFFFFF;\n cursor: pointer;\n display: inline-block;\n font-family: -apple-system,system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n font-size: 16px;\n font-weight: 500;\n line-height: 2.5;\n outline: transparent;\n padding: 0 1rem;\n text-align: center;\n text-decoration: none;\n transition: box-shadow .2s ease-in-out;\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n white-space: nowrap;\n}\n\n.button-62:not([disabled]):focus {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.button-62:not([disabled]):hover {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.aselector select {\n background-color: initial;\n border: none;\n border-radius: 0;\n box-shadow: none;\n color: var(--jp-ui-font-color0);\n display: block;\n font-size: var(--jp-ui-font-size1);\n height: 24px;\n line-height: 14px;\n padding: 0 25px 0 10px;\n text-align: left;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n/* Use our own theme for hover and option styles */\n.aselector select:hover,\n.aselector select > option {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n}\nselect {\n box-sizing: border-box;\n}\n\n.font{\nbackground-color: initial;\nborder: none;\nheight: 21px;\nborder-radius: 0;\nfont-weight:500;\ncolor: var(--jp-ui-font-color0);\ndisplay: block;\nline-height: 22.5px;\npadding: 0 25px 0 10px;\nfont-size: var(--jp-ui-font-size1);\n}\n.wrapper {\n display: flex;\n}\n.f1ozlkqi {\n pointer-events: none;\n}\n\n.palybutton{\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\n}\n.loading{\n \n background-image: url(\"data:image/svg+xml,\");\n background-size: contain; \n}\n\n:root {\n /* Elevation\n *\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\n *\n * https://github.com/material-components/material-components-web\n * https://material-components-web.appspot.com/elevation.html\n */\n\n --jp-shadow-base-lightness: 0;\n --jp-shadow-umbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.2\n );\n --jp-shadow-penumbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.14\n );\n --jp-shadow-ambient-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.12\n );\n --jp-elevation-z0: none;\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\n\n /* Borders\n *\n * The following variables, specify the visual styling of borders in JupyterLab.\n */\n\n --jp-border-width: 1px;\n --jp-border-color0: var(--md-grey-400);\n --jp-border-color1: var(--md-grey-400);\n --jp-border-color2: var(--md-grey-300);\n --jp-border-color3: var(--md-grey-200);\n --jp-inverse-border-color: var(--md-grey-600);\n --jp-border-radius: 2px;\n\n /* UI Fonts\n *\n * The UI font CSS variables are used for the typography all of the JupyterLab\n * user interface elements that are not directly user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-ui-font-scale-factor: 1.2;\n --jp-ui-font-size0: 0.83333em;\n --jp-ui-font-size1: 13px; /* Base font size */\n --jp-ui-font-size2: 1.2em;\n --jp-ui-font-size3: 1.44em;\n\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n /*\n * Use these font colors against the corresponding main layout colors.\n * In a light theme, these go from dark to light.\n */\n\n /* Defaults use Material Design specification */\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\n\n /*\n * Use these against the brand/accent/warn/error colors.\n * These will typically go from light to darker, in both a dark and light theme.\n */\n\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\n\n /* Content Fonts\n *\n * Content font variables are used for typography of user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-content-line-height: 1.6;\n --jp-content-font-scale-factor: 1.2;\n --jp-content-font-size0: 0.83333em;\n --jp-content-font-size1: 14px; /* Base font size */\n --jp-content-font-size2: 1.2em;\n --jp-content-font-size3: 1.44em;\n --jp-content-font-size4: 1.728em;\n --jp-content-font-size5: 2.0736em;\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-content-presentation-font-size1: 17px;\n\n --jp-content-heading-line-height: 1;\n --jp-content-heading-margin-top: 1.2em;\n --jp-content-heading-margin-bottom: 0.8em;\n --jp-content-heading-font-weight: 500;\n\n /* Defaults use Material Design specification */\n --jp-content-font-color0: rgba(0, 0, 0, 1);\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\n\n --jp-content-link-color: var(--md-blue-700);\n\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n\n /*\n * Code Fonts\n *\n * Code font variables are used for typography of code and other monospaces content.\n */\n\n --jp-code-font-size: 13px;\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\n --jp-code-font-family: var(--jp-code-font-family-default);\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-code-presentation-font-size: 16px;\n\n /* may need to tweak cursor width if you change font size */\n --jp-code-cursor-width0: 1.4px;\n --jp-code-cursor-width1: 2px;\n --jp-code-cursor-width2: 4px;\n\n /* Layout\n *\n * The following are the main layout colors use in JupyterLab. In a light\n * theme these would go from light to dark.\n */\n\n --jp-layout-color0: white;\n --jp-layout-color1: white;\n --jp-layout-color2: var(--md-grey-200);\n --jp-layout-color3: var(--md-grey-400);\n --jp-layout-color4: var(--md-grey-600);\n\n /* Inverse Layout\n *\n * The following are the inverse layout colors use in JupyterLab. In a light\n * theme these would go from dark to light.\n */\n\n --jp-inverse-layout-color0: #111111;\n --jp-inverse-layout-color1: var(--md-grey-900);\n --jp-inverse-layout-color2: var(--md-grey-800);\n --jp-inverse-layout-color3: var(--md-grey-700);\n --jp-inverse-layout-color4: var(--md-grey-600);\n\n /* Brand/accent */\n\n --jp-brand-color0: var(--md-blue-900);\n --jp-brand-color1: var(--md-blue-700);\n --jp-brand-color2: var(--md-blue-300);\n --jp-brand-color3: var(--md-blue-100);\n --jp-brand-color4: var(--md-blue-50);\n\n --jp-accent-color0: var(--md-green-900);\n --jp-accent-color1: var(--md-green-700);\n --jp-accent-color2: var(--md-green-300);\n --jp-accent-color3: var(--md-green-100);\n\n /* State colors (warn, error, success, info) */\n\n --jp-warn-color0: var(--md-orange-900);\n --jp-warn-color1: var(--md-orange-700);\n --jp-warn-color2: var(--md-orange-300);\n --jp-warn-color3: var(--md-orange-100);\n\n --jp-error-color0: var(--md-red-900);\n --jp-error-color1: var(--md-red-700);\n --jp-error-color2: var(--md-red-300);\n --jp-error-color3: var(--md-red-100);\n\n --jp-success-color0: var(--md-green-900);\n --jp-success-color1: var(--md-green-700);\n --jp-success-color2: var(--md-green-300);\n --jp-success-color3: var(--md-green-100);\n\n --jp-info-color0: var(--md-cyan-900);\n --jp-info-color1: var(--md-cyan-700);\n --jp-info-color2: var(--md-cyan-300);\n --jp-info-color3: var(--md-cyan-100);\n\n /* Cell specific styles */\n\n --jp-cell-padding: 5px;\n\n --jp-cell-collapser-width: 8px;\n --jp-cell-collapser-min-height: 20px;\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\n\n --jp-cell-editor-background: var(--md-grey-100);\n --jp-cell-editor-border-color: var(--md-grey-300);\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-cell-editor-active-background: var(--jp-layout-color0);\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\n\n --jp-cell-prompt-width: 64px;\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\n --jp-cell-prompt-letter-spacing: 0px;\n --jp-cell-prompt-opacity: 1;\n --jp-cell-prompt-not-active-opacity: 0.5;\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\n /* A custom blend of MD grey and blue 600\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\n --jp-cell-inprompt-font-color: #307fc1;\n /* A custom blend of MD grey and orange 600\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\n --jp-cell-outprompt-font-color: #bf5b3d;\n\n /* Notebook specific styles */\n\n --jp-notebook-padding: 10px;\n --jp-notebook-select-background: var(--jp-layout-color1);\n --jp-notebook-multiselected-color: var(--md-blue-50);\n\n /* The scroll padding is calculated to fill enough space at the bottom of the\n notebook to show one single-line cell (with appropriate padding) at the top\n when the notebook is scrolled all the way to the bottom. We also subtract one\n pixel so that no scrollbar appears if we have just one single-line cell in the\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\n */\n --jp-notebook-scroll-padding: calc(\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\n );\n\n /* Rendermime styles */\n\n --jp-rendermime-error-background: #fdd;\n --jp-rendermime-table-row-background: var(--md-grey-100);\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\n\n /* Dialog specific styles */\n\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\n\n /* Console specific styles */\n\n --jp-console-padding: 10px;\n\n /* Toolbar specific styles */\n\n --jp-toolbar-border-color: var(--jp-border-color1);\n --jp-toolbar-micro-height: 8px;\n --jp-toolbar-background: var(--jp-layout-color1);\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\n --jp-toolbar-active-background: var(--md-grey-300);\n\n /* Statusbar specific styles */\n\n --jp-statusbar-height: 24px;\n\n /* Input field styles */\n\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-input-active-background: var(--jp-layout-color1);\n --jp-input-hover-background: var(--jp-layout-color1);\n --jp-input-background: var(--md-grey-100);\n --jp-input-border-color: var(--jp-inverse-border-color);\n --jp-input-active-border-color: var(--jp-brand-color1);\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\n\n /* General editor styles */\n\n --jp-editor-selected-background: #d9d9d9;\n --jp-editor-selected-focused-background: #d7d4f0;\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\n\n /* Code mirror specific styles */\n\n --jp-mirror-editor-keyword-color: #008000;\n --jp-mirror-editor-atom-color: #88f;\n --jp-mirror-editor-number-color: #080;\n --jp-mirror-editor-def-color: #00f;\n --jp-mirror-editor-variable-color: var(--md-grey-900);\n --jp-mirror-editor-variable-2-color: #05a;\n --jp-mirror-editor-variable-3-color: #085;\n --jp-mirror-editor-punctuation-color: #05a;\n --jp-mirror-editor-property-color: #05a;\n --jp-mirror-editor-operator-color: #aa22ff;\n --jp-mirror-editor-comment-color: #408080;\n --jp-mirror-editor-string-color: #ba2121;\n --jp-mirror-editor-string-2-color: #708;\n --jp-mirror-editor-meta-color: #aa22ff;\n --jp-mirror-editor-qualifier-color: #555;\n --jp-mirror-editor-builtin-color: #008000;\n --jp-mirror-editor-bracket-color: #997;\n --jp-mirror-editor-tag-color: #170;\n --jp-mirror-editor-attribute-color: #00c;\n --jp-mirror-editor-header-color: blue;\n --jp-mirror-editor-quote-color: #090;\n --jp-mirror-editor-link-color: #00c;\n --jp-mirror-editor-error-color: #f00;\n --jp-mirror-editor-hr-color: #999;\n\n /* Vega extension styles */\n\n --jp-vega-background: white;\n\n /* Sidebar-related styles */\n\n --jp-sidebar-min-width: 250px;\n\n /* Search-related styles */\n\n --jp-search-toggle-off-opacity: 0.5;\n --jp-search-toggle-hover-opacity: 0.8;\n --jp-search-toggle-on-opacity: 1;\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\n --jp-search-selected-match-color: black;\n --jp-search-unselected-match-background-color: var(\n --jp-inverse-layout-color0\n );\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\n\n /* Icon colors that work well with light or dark backgrounds */\n --jp-icon-contrast-color0: var(--md-purple-600);\n --jp-icon-contrast-color1: var(--md-green-600);\n --jp-icon-contrast-color2: var(--md-pink-600);\n --jp-icon-contrast-color3: var(--md-blue-600);\n}\n\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Set the default typography for monospace elements */\ntt,\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-code-line-height);\n}\n\n"],"sourceRoot":""}]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./style/base.css": -/*!************************!*\ - !*** ./style/base.css ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_base_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./base.css */ "./node_modules/css-loader/dist/cjs.js!./style/base.css"); - - - -var options = {}; - -options.insert = "head"; -options.singleton = false; - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_base_css__WEBPACK_IMPORTED_MODULE_1__["default"], options); - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_base_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {}); - -/***/ }), - -/***/ "./style/index.js": -/*!************************!*\ - !*** ./style/index.js ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base.css */ "./style/base.css"); - - - -/***/ }) - -}]); -//# sourceMappingURL=style_index_js.01365bdf92323310e6f2.js.map \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style_index_js.01365bdf92323310e6f2.js.map b/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style_index_js.01365bdf92323310e6f2.js.map deleted file mode 100644 index 5eb0fbb8dcb..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style_index_js.01365bdf92323310e6f2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"style_index_js.01365bdf92323310e6f2.js","mappings":"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","sources":["webpack://neural-compressor-ext-lab/./style/base.css","webpack://neural-compressor-ext-lab/./style/base.css?1944","webpack://neural-compressor-ext-lab/./style/index.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n See the JupyterLab Developer Guide for useful CSS Patterns:\\n\\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\\n*/\\n.lds-ripple {\\n display: flex;\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 80px;\\n height: 80px;\\n}\\n.lds-ripple div {\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n border: 4px solid rgb(245, 131, 55);\\n opacity: 1;\\n border-radius: 50%;\\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\\n}\\n.lds-ripple div:nth-child(2) {\\n animation-delay: -0.5s;\\n}\\n@keyframes lds-ripple {\\n 0% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 4.9% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 5% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 1;\\n }\\n 100% {\\n top: 0px;\\n left: 0px;\\n width: 72px;\\n height: 72px;\\n opacity: 0;\\n }\\n}\\n\\n\\n/* CSS */\\n.button-62 {\\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\\n border: 0;\\n border-radius: 12px;\\n color: #FFFFFF;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system,system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif;\\n font-size: 16px;\\n font-weight: 500;\\n line-height: 2.5;\\n outline: transparent;\\n padding: 0 1rem;\\n text-align: center;\\n text-decoration: none;\\n transition: box-shadow .2s ease-in-out;\\n user-select: none;\\n -webkit-user-select: none;\\n touch-action: manipulation;\\n white-space: nowrap;\\n}\\n\\n.button-62:not([disabled]):focus {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.button-62:not([disabled]):hover {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.aselector select {\\n background-color: initial;\\n border: none;\\n border-radius: 0;\\n box-shadow: none;\\n color: var(--jp-ui-font-color0);\\n display: block;\\n font-size: var(--jp-ui-font-size1);\\n height: 24px;\\n line-height: 14px;\\n padding: 0 25px 0 10px;\\n text-align: left;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n}\\n\\n/* Use our own theme for hover and option styles */\\n.aselector select:hover,\\n.aselector select > option {\\n background-color: var(--jp-layout-color2);\\n color: var(--jp-ui-font-color0);\\n}\\nselect {\\n box-sizing: border-box;\\n}\\n\\n.font{\\nbackground-color: initial;\\nborder: none;\\nheight: 21px;\\nborder-radius: 0;\\nfont-weight:500;\\ncolor: var(--jp-ui-font-color0);\\ndisplay: block;\\nline-height: 22.5px;\\npadding: 0 25px 0 10px;\\nfont-size: var(--jp-ui-font-size1);\\n}\\n.wrapper {\\n display: flex;\\n}\\n.f1ozlkqi {\\n pointer-events: none;\\n}\\n\\n.palybutton{\\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\\n}\\n.loading{\\n \\n background-image: url(\\\"data:image/svg+xml,\\\");\\n background-size: contain; \\n}\\n\\n:root {\\n /* Elevation\\n *\\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\\n *\\n * https://github.com/material-components/material-components-web\\n * https://material-components-web.appspot.com/elevation.html\\n */\\n\\n --jp-shadow-base-lightness: 0;\\n --jp-shadow-umbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.2\\n );\\n --jp-shadow-penumbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.14\\n );\\n --jp-shadow-ambient-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.12\\n );\\n --jp-elevation-z0: none;\\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\\n\\n /* Borders\\n *\\n * The following variables, specify the visual styling of borders in JupyterLab.\\n */\\n\\n --jp-border-width: 1px;\\n --jp-border-color0: var(--md-grey-400);\\n --jp-border-color1: var(--md-grey-400);\\n --jp-border-color2: var(--md-grey-300);\\n --jp-border-color3: var(--md-grey-200);\\n --jp-inverse-border-color: var(--md-grey-600);\\n --jp-border-radius: 2px;\\n\\n /* UI Fonts\\n *\\n * The UI font CSS variables are used for the typography all of the JupyterLab\\n * user interface elements that are not directly user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-ui-font-scale-factor: 1.2;\\n --jp-ui-font-size0: 0.83333em;\\n --jp-ui-font-size1: 13px; /* Base font size */\\n --jp-ui-font-size2: 1.2em;\\n --jp-ui-font-size3: 1.44em;\\n\\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\\n\\n /*\\n * Use these font colors against the corresponding main layout colors.\\n * In a light theme, these go from dark to light.\\n */\\n\\n /* Defaults use Material Design specification */\\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\\n\\n /*\\n * Use these against the brand/accent/warn/error colors.\\n * These will typically go from light to darker, in both a dark and light theme.\\n */\\n\\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\\n\\n /* Content Fonts\\n *\\n * Content font variables are used for typography of user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-content-line-height: 1.6;\\n --jp-content-font-scale-factor: 1.2;\\n --jp-content-font-size0: 0.83333em;\\n --jp-content-font-size1: 14px; /* Base font size */\\n --jp-content-font-size2: 1.2em;\\n --jp-content-font-size3: 1.44em;\\n --jp-content-font-size4: 1.728em;\\n --jp-content-font-size5: 2.0736em;\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-content-presentation-font-size1: 17px;\\n\\n --jp-content-heading-line-height: 1;\\n --jp-content-heading-margin-top: 1.2em;\\n --jp-content-heading-margin-bottom: 0.8em;\\n --jp-content-heading-font-weight: 500;\\n\\n /* Defaults use Material Design specification */\\n --jp-content-font-color0: rgba(0, 0, 0, 1);\\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\\n\\n --jp-content-link-color: var(--md-blue-700);\\n\\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\\n 'Segoe UI Symbol';\\n\\n /*\\n * Code Fonts\\n *\\n * Code font variables are used for typography of code and other monospaces content.\\n */\\n\\n --jp-code-font-size: 13px;\\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\\n --jp-code-font-family: var(--jp-code-font-family-default);\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-code-presentation-font-size: 16px;\\n\\n /* may need to tweak cursor width if you change font size */\\n --jp-code-cursor-width0: 1.4px;\\n --jp-code-cursor-width1: 2px;\\n --jp-code-cursor-width2: 4px;\\n\\n /* Layout\\n *\\n * The following are the main layout colors use in JupyterLab. In a light\\n * theme these would go from light to dark.\\n */\\n\\n --jp-layout-color0: white;\\n --jp-layout-color1: white;\\n --jp-layout-color2: var(--md-grey-200);\\n --jp-layout-color3: var(--md-grey-400);\\n --jp-layout-color4: var(--md-grey-600);\\n\\n /* Inverse Layout\\n *\\n * The following are the inverse layout colors use in JupyterLab. In a light\\n * theme these would go from dark to light.\\n */\\n\\n --jp-inverse-layout-color0: #111111;\\n --jp-inverse-layout-color1: var(--md-grey-900);\\n --jp-inverse-layout-color2: var(--md-grey-800);\\n --jp-inverse-layout-color3: var(--md-grey-700);\\n --jp-inverse-layout-color4: var(--md-grey-600);\\n\\n /* Brand/accent */\\n\\n --jp-brand-color0: var(--md-blue-900);\\n --jp-brand-color1: var(--md-blue-700);\\n --jp-brand-color2: var(--md-blue-300);\\n --jp-brand-color3: var(--md-blue-100);\\n --jp-brand-color4: var(--md-blue-50);\\n\\n --jp-accent-color0: var(--md-green-900);\\n --jp-accent-color1: var(--md-green-700);\\n --jp-accent-color2: var(--md-green-300);\\n --jp-accent-color3: var(--md-green-100);\\n\\n /* State colors (warn, error, success, info) */\\n\\n --jp-warn-color0: var(--md-orange-900);\\n --jp-warn-color1: var(--md-orange-700);\\n --jp-warn-color2: var(--md-orange-300);\\n --jp-warn-color3: var(--md-orange-100);\\n\\n --jp-error-color0: var(--md-red-900);\\n --jp-error-color1: var(--md-red-700);\\n --jp-error-color2: var(--md-red-300);\\n --jp-error-color3: var(--md-red-100);\\n\\n --jp-success-color0: var(--md-green-900);\\n --jp-success-color1: var(--md-green-700);\\n --jp-success-color2: var(--md-green-300);\\n --jp-success-color3: var(--md-green-100);\\n\\n --jp-info-color0: var(--md-cyan-900);\\n --jp-info-color1: var(--md-cyan-700);\\n --jp-info-color2: var(--md-cyan-300);\\n --jp-info-color3: var(--md-cyan-100);\\n\\n /* Cell specific styles */\\n\\n --jp-cell-padding: 5px;\\n\\n --jp-cell-collapser-width: 8px;\\n --jp-cell-collapser-min-height: 20px;\\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\\n\\n --jp-cell-editor-background: var(--md-grey-100);\\n --jp-cell-editor-border-color: var(--md-grey-300);\\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-cell-editor-active-background: var(--jp-layout-color0);\\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\\n\\n --jp-cell-prompt-width: 64px;\\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\\n --jp-cell-prompt-letter-spacing: 0px;\\n --jp-cell-prompt-opacity: 1;\\n --jp-cell-prompt-not-active-opacity: 0.5;\\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\\n /* A custom blend of MD grey and blue 600\\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\\n --jp-cell-inprompt-font-color: #307fc1;\\n /* A custom blend of MD grey and orange 600\\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\\n --jp-cell-outprompt-font-color: #bf5b3d;\\n\\n /* Notebook specific styles */\\n\\n --jp-notebook-padding: 10px;\\n --jp-notebook-select-background: var(--jp-layout-color1);\\n --jp-notebook-multiselected-color: var(--md-blue-50);\\n\\n /* The scroll padding is calculated to fill enough space at the bottom of the\\n notebook to show one single-line cell (with appropriate padding) at the top\\n when the notebook is scrolled all the way to the bottom. We also subtract one\\n pixel so that no scrollbar appears if we have just one single-line cell in the\\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\\n */\\n --jp-notebook-scroll-padding: calc(\\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\\n );\\n\\n /* Rendermime styles */\\n\\n --jp-rendermime-error-background: #fdd;\\n --jp-rendermime-table-row-background: var(--md-grey-100);\\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\\n\\n /* Dialog specific styles */\\n\\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\\n\\n /* Console specific styles */\\n\\n --jp-console-padding: 10px;\\n\\n /* Toolbar specific styles */\\n\\n --jp-toolbar-border-color: var(--jp-border-color1);\\n --jp-toolbar-micro-height: 8px;\\n --jp-toolbar-background: var(--jp-layout-color1);\\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\\n --jp-toolbar-active-background: var(--md-grey-300);\\n\\n /* Statusbar specific styles */\\n\\n --jp-statusbar-height: 24px;\\n\\n /* Input field styles */\\n\\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-input-active-background: var(--jp-layout-color1);\\n --jp-input-hover-background: var(--jp-layout-color1);\\n --jp-input-background: var(--md-grey-100);\\n --jp-input-border-color: var(--jp-inverse-border-color);\\n --jp-input-active-border-color: var(--jp-brand-color1);\\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\\n\\n /* General editor styles */\\n\\n --jp-editor-selected-background: #d9d9d9;\\n --jp-editor-selected-focused-background: #d7d4f0;\\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\\n\\n /* Code mirror specific styles */\\n\\n --jp-mirror-editor-keyword-color: #008000;\\n --jp-mirror-editor-atom-color: #88f;\\n --jp-mirror-editor-number-color: #080;\\n --jp-mirror-editor-def-color: #00f;\\n --jp-mirror-editor-variable-color: var(--md-grey-900);\\n --jp-mirror-editor-variable-2-color: #05a;\\n --jp-mirror-editor-variable-3-color: #085;\\n --jp-mirror-editor-punctuation-color: #05a;\\n --jp-mirror-editor-property-color: #05a;\\n --jp-mirror-editor-operator-color: #aa22ff;\\n --jp-mirror-editor-comment-color: #408080;\\n --jp-mirror-editor-string-color: #ba2121;\\n --jp-mirror-editor-string-2-color: #708;\\n --jp-mirror-editor-meta-color: #aa22ff;\\n --jp-mirror-editor-qualifier-color: #555;\\n --jp-mirror-editor-builtin-color: #008000;\\n --jp-mirror-editor-bracket-color: #997;\\n --jp-mirror-editor-tag-color: #170;\\n --jp-mirror-editor-attribute-color: #00c;\\n --jp-mirror-editor-header-color: blue;\\n --jp-mirror-editor-quote-color: #090;\\n --jp-mirror-editor-link-color: #00c;\\n --jp-mirror-editor-error-color: #f00;\\n --jp-mirror-editor-hr-color: #999;\\n\\n /* Vega extension styles */\\n\\n --jp-vega-background: white;\\n\\n /* Sidebar-related styles */\\n\\n --jp-sidebar-min-width: 250px;\\n\\n /* Search-related styles */\\n\\n --jp-search-toggle-off-opacity: 0.5;\\n --jp-search-toggle-hover-opacity: 0.8;\\n --jp-search-toggle-on-opacity: 1;\\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\\n --jp-search-selected-match-color: black;\\n --jp-search-unselected-match-background-color: var(\\n --jp-inverse-layout-color0\\n );\\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\\n\\n /* Icon colors that work well with light or dark backgrounds */\\n --jp-icon-contrast-color0: var(--md-purple-600);\\n --jp-icon-contrast-color1: var(--md-green-600);\\n --jp-icon-contrast-color2: var(--md-pink-600);\\n --jp-icon-contrast-color3: var(--md-blue-600);\\n}\\n\\n/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n/* Set the default typography for monospace elements */\\ntt,\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: var(--jp-code-font-family);\\n font-size: var(--jp-code-font-size);\\n line-height: var(--jp-code-line-height);\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./style/base.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*\\n See the JupyterLab Developer Guide for useful CSS Patterns:\\n\\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\\n*/\\n.lds-ripple {\\n display: flex;\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 80px;\\n height: 80px;\\n}\\n.lds-ripple div {\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n border: 4px solid rgb(245, 131, 55);\\n opacity: 1;\\n border-radius: 50%;\\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\\n}\\n.lds-ripple div:nth-child(2) {\\n animation-delay: -0.5s;\\n}\\n@keyframes lds-ripple {\\n 0% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 4.9% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 5% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 1;\\n }\\n 100% {\\n top: 0px;\\n left: 0px;\\n width: 72px;\\n height: 72px;\\n opacity: 0;\\n }\\n}\\n\\n\\n/* CSS */\\n.button-62 {\\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\\n border: 0;\\n border-radius: 12px;\\n color: #FFFFFF;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system,system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif;\\n font-size: 16px;\\n font-weight: 500;\\n line-height: 2.5;\\n outline: transparent;\\n padding: 0 1rem;\\n text-align: center;\\n text-decoration: none;\\n transition: box-shadow .2s ease-in-out;\\n user-select: none;\\n -webkit-user-select: none;\\n touch-action: manipulation;\\n white-space: nowrap;\\n}\\n\\n.button-62:not([disabled]):focus {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.button-62:not([disabled]):hover {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.aselector select {\\n background-color: initial;\\n border: none;\\n border-radius: 0;\\n box-shadow: none;\\n color: var(--jp-ui-font-color0);\\n display: block;\\n font-size: var(--jp-ui-font-size1);\\n height: 24px;\\n line-height: 14px;\\n padding: 0 25px 0 10px;\\n text-align: left;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n}\\n\\n/* Use our own theme for hover and option styles */\\n.aselector select:hover,\\n.aselector select > option {\\n background-color: var(--jp-layout-color2);\\n color: var(--jp-ui-font-color0);\\n}\\nselect {\\n box-sizing: border-box;\\n}\\n\\n.font{\\nbackground-color: initial;\\nborder: none;\\nheight: 21px;\\nborder-radius: 0;\\nfont-weight:500;\\ncolor: var(--jp-ui-font-color0);\\ndisplay: block;\\nline-height: 22.5px;\\npadding: 0 25px 0 10px;\\nfont-size: var(--jp-ui-font-size1);\\n}\\n.wrapper {\\n display: flex;\\n}\\n.f1ozlkqi {\\n pointer-events: none;\\n}\\n\\n.palybutton{\\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\\n}\\n.loading{\\n \\n background-image: url(\\\"data:image/svg+xml,\\\");\\n background-size: contain; \\n}\\n\\n:root {\\n /* Elevation\\n *\\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\\n *\\n * https://github.com/material-components/material-components-web\\n * https://material-components-web.appspot.com/elevation.html\\n */\\n\\n --jp-shadow-base-lightness: 0;\\n --jp-shadow-umbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.2\\n );\\n --jp-shadow-penumbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.14\\n );\\n --jp-shadow-ambient-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.12\\n );\\n --jp-elevation-z0: none;\\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\\n\\n /* Borders\\n *\\n * The following variables, specify the visual styling of borders in JupyterLab.\\n */\\n\\n --jp-border-width: 1px;\\n --jp-border-color0: var(--md-grey-400);\\n --jp-border-color1: var(--md-grey-400);\\n --jp-border-color2: var(--md-grey-300);\\n --jp-border-color3: var(--md-grey-200);\\n --jp-inverse-border-color: var(--md-grey-600);\\n --jp-border-radius: 2px;\\n\\n /* UI Fonts\\n *\\n * The UI font CSS variables are used for the typography all of the JupyterLab\\n * user interface elements that are not directly user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-ui-font-scale-factor: 1.2;\\n --jp-ui-font-size0: 0.83333em;\\n --jp-ui-font-size1: 13px; /* Base font size */\\n --jp-ui-font-size2: 1.2em;\\n --jp-ui-font-size3: 1.44em;\\n\\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\\n\\n /*\\n * Use these font colors against the corresponding main layout colors.\\n * In a light theme, these go from dark to light.\\n */\\n\\n /* Defaults use Material Design specification */\\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\\n\\n /*\\n * Use these against the brand/accent/warn/error colors.\\n * These will typically go from light to darker, in both a dark and light theme.\\n */\\n\\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\\n\\n /* Content Fonts\\n *\\n * Content font variables are used for typography of user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-content-line-height: 1.6;\\n --jp-content-font-scale-factor: 1.2;\\n --jp-content-font-size0: 0.83333em;\\n --jp-content-font-size1: 14px; /* Base font size */\\n --jp-content-font-size2: 1.2em;\\n --jp-content-font-size3: 1.44em;\\n --jp-content-font-size4: 1.728em;\\n --jp-content-font-size5: 2.0736em;\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-content-presentation-font-size1: 17px;\\n\\n --jp-content-heading-line-height: 1;\\n --jp-content-heading-margin-top: 1.2em;\\n --jp-content-heading-margin-bottom: 0.8em;\\n --jp-content-heading-font-weight: 500;\\n\\n /* Defaults use Material Design specification */\\n --jp-content-font-color0: rgba(0, 0, 0, 1);\\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\\n\\n --jp-content-link-color: var(--md-blue-700);\\n\\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\\n 'Segoe UI Symbol';\\n\\n /*\\n * Code Fonts\\n *\\n * Code font variables are used for typography of code and other monospaces content.\\n */\\n\\n --jp-code-font-size: 13px;\\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\\n --jp-code-font-family: var(--jp-code-font-family-default);\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-code-presentation-font-size: 16px;\\n\\n /* may need to tweak cursor width if you change font size */\\n --jp-code-cursor-width0: 1.4px;\\n --jp-code-cursor-width1: 2px;\\n --jp-code-cursor-width2: 4px;\\n\\n /* Layout\\n *\\n * The following are the main layout colors use in JupyterLab. In a light\\n * theme these would go from light to dark.\\n */\\n\\n --jp-layout-color0: white;\\n --jp-layout-color1: white;\\n --jp-layout-color2: var(--md-grey-200);\\n --jp-layout-color3: var(--md-grey-400);\\n --jp-layout-color4: var(--md-grey-600);\\n\\n /* Inverse Layout\\n *\\n * The following are the inverse layout colors use in JupyterLab. In a light\\n * theme these would go from dark to light.\\n */\\n\\n --jp-inverse-layout-color0: #111111;\\n --jp-inverse-layout-color1: var(--md-grey-900);\\n --jp-inverse-layout-color2: var(--md-grey-800);\\n --jp-inverse-layout-color3: var(--md-grey-700);\\n --jp-inverse-layout-color4: var(--md-grey-600);\\n\\n /* Brand/accent */\\n\\n --jp-brand-color0: var(--md-blue-900);\\n --jp-brand-color1: var(--md-blue-700);\\n --jp-brand-color2: var(--md-blue-300);\\n --jp-brand-color3: var(--md-blue-100);\\n --jp-brand-color4: var(--md-blue-50);\\n\\n --jp-accent-color0: var(--md-green-900);\\n --jp-accent-color1: var(--md-green-700);\\n --jp-accent-color2: var(--md-green-300);\\n --jp-accent-color3: var(--md-green-100);\\n\\n /* State colors (warn, error, success, info) */\\n\\n --jp-warn-color0: var(--md-orange-900);\\n --jp-warn-color1: var(--md-orange-700);\\n --jp-warn-color2: var(--md-orange-300);\\n --jp-warn-color3: var(--md-orange-100);\\n\\n --jp-error-color0: var(--md-red-900);\\n --jp-error-color1: var(--md-red-700);\\n --jp-error-color2: var(--md-red-300);\\n --jp-error-color3: var(--md-red-100);\\n\\n --jp-success-color0: var(--md-green-900);\\n --jp-success-color1: var(--md-green-700);\\n --jp-success-color2: var(--md-green-300);\\n --jp-success-color3: var(--md-green-100);\\n\\n --jp-info-color0: var(--md-cyan-900);\\n --jp-info-color1: var(--md-cyan-700);\\n --jp-info-color2: var(--md-cyan-300);\\n --jp-info-color3: var(--md-cyan-100);\\n\\n /* Cell specific styles */\\n\\n --jp-cell-padding: 5px;\\n\\n --jp-cell-collapser-width: 8px;\\n --jp-cell-collapser-min-height: 20px;\\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\\n\\n --jp-cell-editor-background: var(--md-grey-100);\\n --jp-cell-editor-border-color: var(--md-grey-300);\\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-cell-editor-active-background: var(--jp-layout-color0);\\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\\n\\n --jp-cell-prompt-width: 64px;\\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\\n --jp-cell-prompt-letter-spacing: 0px;\\n --jp-cell-prompt-opacity: 1;\\n --jp-cell-prompt-not-active-opacity: 0.5;\\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\\n /* A custom blend of MD grey and blue 600\\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\\n --jp-cell-inprompt-font-color: #307fc1;\\n /* A custom blend of MD grey and orange 600\\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\\n --jp-cell-outprompt-font-color: #bf5b3d;\\n\\n /* Notebook specific styles */\\n\\n --jp-notebook-padding: 10px;\\n --jp-notebook-select-background: var(--jp-layout-color1);\\n --jp-notebook-multiselected-color: var(--md-blue-50);\\n\\n /* The scroll padding is calculated to fill enough space at the bottom of the\\n notebook to show one single-line cell (with appropriate padding) at the top\\n when the notebook is scrolled all the way to the bottom. We also subtract one\\n pixel so that no scrollbar appears if we have just one single-line cell in the\\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\\n */\\n --jp-notebook-scroll-padding: calc(\\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\\n );\\n\\n /* Rendermime styles */\\n\\n --jp-rendermime-error-background: #fdd;\\n --jp-rendermime-table-row-background: var(--md-grey-100);\\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\\n\\n /* Dialog specific styles */\\n\\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\\n\\n /* Console specific styles */\\n\\n --jp-console-padding: 10px;\\n\\n /* Toolbar specific styles */\\n\\n --jp-toolbar-border-color: var(--jp-border-color1);\\n --jp-toolbar-micro-height: 8px;\\n --jp-toolbar-background: var(--jp-layout-color1);\\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\\n --jp-toolbar-active-background: var(--md-grey-300);\\n\\n /* Statusbar specific styles */\\n\\n --jp-statusbar-height: 24px;\\n\\n /* Input field styles */\\n\\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-input-active-background: var(--jp-layout-color1);\\n --jp-input-hover-background: var(--jp-layout-color1);\\n --jp-input-background: var(--md-grey-100);\\n --jp-input-border-color: var(--jp-inverse-border-color);\\n --jp-input-active-border-color: var(--jp-brand-color1);\\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\\n\\n /* General editor styles */\\n\\n --jp-editor-selected-background: #d9d9d9;\\n --jp-editor-selected-focused-background: #d7d4f0;\\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\\n\\n /* Code mirror specific styles */\\n\\n --jp-mirror-editor-keyword-color: #008000;\\n --jp-mirror-editor-atom-color: #88f;\\n --jp-mirror-editor-number-color: #080;\\n --jp-mirror-editor-def-color: #00f;\\n --jp-mirror-editor-variable-color: var(--md-grey-900);\\n --jp-mirror-editor-variable-2-color: #05a;\\n --jp-mirror-editor-variable-3-color: #085;\\n --jp-mirror-editor-punctuation-color: #05a;\\n --jp-mirror-editor-property-color: #05a;\\n --jp-mirror-editor-operator-color: #aa22ff;\\n --jp-mirror-editor-comment-color: #408080;\\n --jp-mirror-editor-string-color: #ba2121;\\n --jp-mirror-editor-string-2-color: #708;\\n --jp-mirror-editor-meta-color: #aa22ff;\\n --jp-mirror-editor-qualifier-color: #555;\\n --jp-mirror-editor-builtin-color: #008000;\\n --jp-mirror-editor-bracket-color: #997;\\n --jp-mirror-editor-tag-color: #170;\\n --jp-mirror-editor-attribute-color: #00c;\\n --jp-mirror-editor-header-color: blue;\\n --jp-mirror-editor-quote-color: #090;\\n --jp-mirror-editor-link-color: #00c;\\n --jp-mirror-editor-error-color: #f00;\\n --jp-mirror-editor-hr-color: #999;\\n\\n /* Vega extension styles */\\n\\n --jp-vega-background: white;\\n\\n /* Sidebar-related styles */\\n\\n --jp-sidebar-min-width: 250px;\\n\\n /* Search-related styles */\\n\\n --jp-search-toggle-off-opacity: 0.5;\\n --jp-search-toggle-hover-opacity: 0.8;\\n --jp-search-toggle-on-opacity: 1;\\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\\n --jp-search-selected-match-color: black;\\n --jp-search-unselected-match-background-color: var(\\n --jp-inverse-layout-color0\\n );\\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\\n\\n /* Icon colors that work well with light or dark backgrounds */\\n --jp-icon-contrast-color0: var(--md-purple-600);\\n --jp-icon-contrast-color1: var(--md-green-600);\\n --jp-icon-contrast-color2: var(--md-pink-600);\\n --jp-icon-contrast-color3: var(--md-blue-600);\\n}\\n\\n/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n/* Set the default typography for monospace elements */\\ntt,\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: var(--jp-code-font-family);\\n font-size: var(--jp-code-font-size);\\n line-height: var(--jp-code-line-height);\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../node_modules/css-loader/dist/cjs.js!./base.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import './base.css';\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/requirements.txt b/neural_coder/extensions/neural-compressor-ext-lab/requirements.txt deleted file mode 100644 index 35463b1f8be..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/requirements.txt +++ /dev/null @@ -1,140 +0,0 @@ -anyio -argon2-cffi -argon2-cffi-bindings -attrs -Babel -backcall -backoff==1.11.1 -beautifulsoup4 -bleach -boto3==1.24.57 -botocore==1.27.57 -brotlipy==0.7.0 -cachetools==5.2.0 -certifi==2022.6.15 -cffi -charset-normalizer==2.1.1 -click==8.1.3 -cloudpickle==2.1.0 -contextlib2==21.6.0 -cPython==0.0.6 -cryptography -cycler==0.11.0 -Cython==3.0.0a11 -debugpy -decorator -defusedxml -deprecation==2.1.0 -docker==4.4.4 -entrypoints -executing -fastjsonschema -fonttools==4.36.0 -future==0.18.2 -gitdb==4.0.9 -GitPython==3.1.27 -google-auth==2.11.0 -hyperopt==0.2.7 -idna -ipykernel -ipython -ipython-genutils -ipywidgets -jedi -Jinja2 -jmespath==1.0.1 -joblib==1.1.0 -json5 -jsonschema -jupyter -jupyter-client -jupyter-console -jupyter-core -jupyter-packaging==0.12.2 -jupyter-server -jupyterlab -jupyterlab-pygments -jupyterlab-server -jupyterlab-widgets -kiwisolver==1.4.4 -kubernetes==12.0.1 -MarkupSafe -matplotlib==3.5.3 -matplotlib-inline -nbclassic -nbclient -nbconvert -nbformat -nest-asyncio -networkx==2.8.6 -neural-compressor==1.13.1 -notebook -npm==0.1.1 -numpy==1.23.2 -oauthlib==3.2.0 -opencv-python==4.6.0.66 -optional-django==0.1.0 -packaging -pandas==1.4.3 -pandocfilters -parso -pexpect -pickleshare -Pillow==9.2.0 -Pint==0.16.1 -ply==3.11 -prettytable==3.3.0 -prometheus-client -prompt-toolkit -psutil==5.9.1 -ptyprocess -pure-eval -py-cpuinfo==8.0.0 -py4j==0.10.9.7 -pyasn1==0.5.0rc1 -pyasn1-modules==0.3.0rc1 -pycocotools==2.0.4 -pycparser -Pygments -pymongo==4.2.0 -pyOpenSSL -pyparsing==3.0.9 -pypng==0.20220715.0 -PyQt5-sip==12.11.0 -pyrsistent -PySocks -python-dateutil -pytz -PyYAML==5.4.1 -pyzmq -qtconsole -QtPy -requests -requests-oauthlib==1.3.1 -rsa==4.9 -s3transfer==0.6.0 -schema==0.7.5 -scikit-learn==1.1.2 -scipy==1.9.0 -Send2Trash -sigopt==8.5.1 -sip -six -smmap==5.0.0 -sniffio -soupsieve -stack-data -terminado -testpath -threadpoolctl==3.1.0 -toml -tomlkit==0.11.4 -tornado -tqdm==4.64.0 -traitlets -typing_extensions -urllib3==1.26.12 -wcwidth -webencodings==0.5.1 -websocket-client -widgetsnbextension diff --git a/neural_coder/extensions/neural-compressor-ext-lab/setup.cfg b/neural_coder/extensions/neural-compressor-ext-lab/setup.cfg deleted file mode 100644 index 8bfd5a12f85..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/setup.cfg +++ /dev/null @@ -1,4 +0,0 @@ -[egg_info] -tag_build = -tag_date = 0 - diff --git a/neural_coder/extensions/neural-compressor-ext-lab/src/__tests__/Neural_Coder.spec.ts b/neural_coder/extensions/neural-compressor-ext-lab/src/__tests__/Neural_Coder.spec.ts deleted file mode 100644 index 8c3b2a153d9..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/src/__tests__/Neural_Coder.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Example of [Jest](https://jestjs.io/docs/getting-started) unit tests - */ - -describe('Neural_Coder', () => { - it('should be tested', () => { - expect(1 + 1).toEqual(2); - }); -}); diff --git a/neural_coder/extensions/neural-compressor-ext-lab/src/client.ts b/neural_coder/extensions/neural-compressor-ext-lab/src/client.ts deleted file mode 100644 index dff83861bfa..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/src/client.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { URLExt } from '@jupyterlab/coreutils'; -import { ServerConnection } from '@jupyterlab/services'; -import { Constants } from './constants'; - -class JupyterlabDeepCoderClient { - public request(path: string, method: string, body: any): Promise { - const settings = ServerConnection.makeSettings(); - const fullUrl = URLExt.join( - settings.baseUrl, - Constants.SHORT_PLUGIN_NAME, - path - ); - return ServerConnection.makeRequest( - fullUrl, - { - body, - method, - headers: new Headers({ - 'Plugin-Version': Constants.PLUGIN_VERSION - }) - }, - settings - ).then(response => { - if (response.status !== 200) { - return response.text().then(() => { - throw new ServerConnection.ResponseError( - response, - response.statusText - ); - }); - } - return response.text(); - }); - } - - } - - export default JupyterlabDeepCoderClient; - \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/src/deepcoder.ts b/neural_coder/extensions/neural-compressor-ext-lab/src/deepcoder.ts deleted file mode 100644 index 11102ab6467..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/src/deepcoder.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { Cell, CodeCell } from '@jupyterlab/cells'; -import { INotebookTracker, Notebook} from '@jupyterlab/notebook'; -import { IEditorTracker } from '@jupyterlab/fileeditor'; -import { showErrorMessage } from '@jupyterlab/apputils'; -import { Widget } from '@lumino/widgets'; -import JupyterlabDeepCoderClient from './client'; - - -class JupyterlabCodeOptimizer { - protected client: JupyterlabDeepCoderClient; - protected working: boolean; - constructor(client: JupyterlabDeepCoderClient) { - this.client = client; - this.working = false; - } - - protected optimizeCode( - code: string[], - formatter: string, - options: any, - notebook: boolean - ) { - - return this.client - .request( - 'optimize', - 'POST', - JSON.stringify({ - code, - notebook, - formatter, - options - }) - ) - .then(resp => JSON.parse(resp)); - } - } - - export class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { - protected notebookTracker: INotebookTracker; - - constructor( - client: JupyterlabDeepCoderClient, - notebookTracker: INotebookTracker - ) { - super(client); - this.notebookTracker = notebookTracker; - } - - public async optimizeAction(config: any, formatter?: string) { - return this.optimizeCells(true, config, formatter); - } - - - public async optimizeAllCodeCells( - config: any, - formatter?: string, - notebook?: Notebook - ) { - return this.optimizeCells(false, config, formatter, notebook); - } - - private getCodeCells(selectedOnly = true, notebook?: Notebook): CodeCell[] { - if (!this.notebookTracker.currentWidget) { - return []; - } - const codeCells: CodeCell[] = []; - notebook = notebook || this.notebookTracker.currentWidget.content; - notebook.widgets.forEach((cell: Cell) => { - if (cell.model.type === 'code') { - codeCells.push(cell as CodeCell); - } - }); - return codeCells; - } - - private async optimizeCells( - selectedOnly: boolean, - config: any, - formatter?: string, - notebook?: Notebook - ) { - if (this.working) { - return; - } - try { - this.working = true; - const selectedCells = this.getCodeCells(selectedOnly, notebook); - if (selectedCells.length === 0) { - this.working = false; - return; - } - const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu'; - const currentTexts = selectedCells.map(cell => cell.model.value.text); - const optimizedTexts = await this.optimizeCode( - currentTexts, - optimize_type, - undefined, - true - ); - for (let i = 0; i < selectedCells.length; ++i) { - const cell = selectedCells[i]; - const currentText = currentTexts[i]; - const optimizedText = optimizedTexts.code[i]; - if (cell.model.value.text === currentText) { - if (optimizedText.error) { - if (!(config.suppressFormatterErrors ?? false)) { - await showErrorMessage( - 'Optimize Code Error', - optimizedText.error - ); - } - } else { - cell.model.value.text = optimizedText; - } - } else { - await showErrorMessage( - 'Optimize Code Error', - `Cell value changed since format request was sent, formatting for cell ${i} skipped.` - ); - } - } - } catch (error) { - await showErrorMessage('Optimize Code Error', error); - } - this.working = false; - } - applicable(formatter: string, currentWidget: Widget) { - const currentNotebookWidget = this.notebookTracker.currentWidget; - return currentNotebookWidget && currentWidget === currentNotebookWidget; - } - } - export class JupyterlabFileEditorCodeOptimizer extends JupyterlabCodeOptimizer { - protected editorTracker: IEditorTracker; - - constructor( - client: JupyterlabDeepCoderClient, - editorTracker: IEditorTracker - ) { - super(client); - this.editorTracker = editorTracker; - } - - optimizeAction(config: any, formatter: string) { - if (this.working) { - return; - } - const editorWidget = this.editorTracker.currentWidget; - this.working = true; - if(editorWidget == null){ - return; - } - const editor = editorWidget.content.editor; - const code = editor.model.value.text; - this.optimizeCode([code], formatter, config[formatter], false) - .then(data => { - if (data.code[0].error) { - void showErrorMessage( - 'Optimize Code Error', - data.code[0].error - ); - this.working = false; - return; - } - this.working = false; - }) - .catch(error => { - this.working = false; - void showErrorMessage('Optimize Code Error', error); - }); - } - - applicable(formatter: string, currentWidget: Widget) { - const currentEditorWidget = this.editorTracker.currentWidget; - return currentEditorWidget && currentWidget === currentEditorWidget; - } - } - \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/README.md b/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/README.md deleted file mode 100644 index 3544aec4e88..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/README.md +++ /dev/null @@ -1,148 +0,0 @@ -# Integration Testing - -This folder contains the integration tests of the extension. - -They are defined using [Playwright](https://playwright.dev/docs/intro) test runner -and [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata) helper. - -The Playwright configuration is defined in [playwright.config.js](./playwright.config.js). - -The JupyterLab server configuration to use for the integration test is defined -in [jupyter_server_test_config.py](./jupyter_server_test_config.py). - -The default configuration will produce video for failing tests and an HTML report. - -## Run the tests - -> All commands are assumed to be executed from the root directory - -To run the tests, you need to: - -1. Compile the extension: - -```sh -jlpm install -jlpm build:prod -``` - -> Check the extension is installed in JupyterLab. - -2. Install test dependencies (needed only once): - -```sh -cd ./ui-tests -jlpm install -jlpm playwright install -cd .. -``` - -3. Execute the [Playwright](https://playwright.dev/docs/intro) tests: - -```sh -cd ./ui-tests -jlpm playwright test -``` - -Test results will be shown in the terminal. In case of any test failures, the test report -will be opened in your browser at the end of the tests execution; see -[Playwright documentation](https://playwright.dev/docs/test-reporters#html-reporter) -for configuring that behavior. - -## Update the tests snapshots - -> All commands are assumed to be executed from the root directory - -If you are comparing snapshots to validate your tests, you may need to update -the reference snapshots stored in the repository. To do that, you need to: - -1. Compile the extension: - -```sh -jlpm install -jlpm build:prod -``` - -> Check the extension is installed in JupyterLab. - -2. Install test dependencies (needed only once): - -```sh -cd ./ui-tests -jlpm install -jlpm playwright install -cd .. -``` - -3. Execute the [Playwright](https://playwright.dev/docs/intro) command: - -```sh -cd ./ui-tests -jlpm playwright test -u -``` - -> Some discrepancy may occurs between the snapshots generated on your computer and -> the one generated on the CI. To ease updating the snapshots on a PR, you can -> type `please update playwright snapshots` to trigger the update by a bot on the CI. -> Once the bot has computed new snapshots, it will commit them to the PR branch. - -## Create tests - -> All commands are assumed to be executed from the root directory - -To create tests, the easiest way is to use the code generator tool of playwright: - -1. Compile the extension: - -```sh -jlpm install -jlpm build:prod -``` - -> Check the extension is installed in JupyterLab. - -2. Install test dependencies (needed only once): - -```sh -cd ./ui-tests -jlpm install -jlpm playwright install -cd .. -``` - -3. Execute the [Playwright code generator](https://playwright.dev/docs/codegen): - -```sh -cd ./ui-tests -jlpm playwright codegen localhost:8888 -``` - -## Debug tests - -> All commands are assumed to be executed from the root directory - -To debug tests, a good way is to use the inspector tool of playwright: - -1. Compile the extension: - -```sh -jlpm install -jlpm build:prod -``` - -> Check the extension is installed in JupyterLab. - -2. Install test dependencies (needed only once): - -```sh -cd ./ui-tests -jlpm install -jlpm playwright install -cd .. -``` - -3. Execute the Playwright tests in [debug mode](https://playwright.dev/docs/debug): - -```sh -cd ./ui-tests -PWDEBUG=1 jlpm playwright test -``` diff --git a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/jupyter_server_test_config.py b/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/jupyter_server_test_config.py deleted file mode 100644 index f33f3bdbffe..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/jupyter_server_test_config.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (c) 2022 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -"""Server configuration for integration tests. - -!! Never use this configuration in production because it -opens the server to the world and provide access to JupyterLab -JavaScript objects through the global window variable. -""" -from tempfile import mkdtemp - -c.ServerApp.port = 8888 -c.ServerApp.port_retries = 0 -c.ServerApp.open_browser = False - -c.ServerApp.root_dir = mkdtemp(prefix='galata-test-') -c.ServerApp.token = "" -c.ServerApp.password = "" -c.ServerApp.disable_check_xsrf = True -c.LabApp.expose_app_in_browser = True - -# Uncomment to set server log level to debug level -# c.ServerApp.log_level = "DEBUG" diff --git a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/package.json b/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/package.json deleted file mode 100644 index 1de8904d7a8..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "Neural_Coder-ui-tests", - "version": "1.0.0", - "description": "JupyterLab Neural_Coder Integration Tests", - "private": true, - "scripts": { - "start": "jupyter lab --config jupyter_server_test_config.py", - "test": "jlpm playwright test" - }, - "devDependencies": { - "@jupyterlab/galata": "^4.3.0" - } -} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/playwright.config.js b/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/playwright.config.js deleted file mode 100644 index 9ece6fa1106..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/playwright.config.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Configuration for Playwright using default from @jupyterlab/galata - */ -const baseConfig = require('@jupyterlab/galata/lib/playwright-config'); - -module.exports = { - ...baseConfig, - webServer: { - command: 'jlpm start', - url: 'http://localhost:8888/lab', - timeout: 120 * 1000, - reuseExistingServer: !process.env.CI - } -}; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/tests/Neural_Coder.spec.ts b/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/tests/Neural_Coder.spec.ts deleted file mode 100644 index 8df76fae2cc..00000000000 --- a/neural_coder/extensions/neural-compressor-ext-lab/ui-tests/tests/Neural_Coder.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect, test } from '@jupyterlab/galata'; - -/** - * Don't load JupyterLab webpage before running the tests. - * This is required to ensure we capture all log messages. - */ -test.use({ autoGoto: false }); - -test('should emit an activation console message', async ({ page }) => { - const logs: string[] = []; - - page.on('console', message => { - logs.push(message.text()); - }); - - await page.goto(); - - expect( - logs.filter(s => s === 'JupyterLab extension Neural_Coder is activated!') - ).toHaveLength(1); -}); diff --git a/neural_coder/extensions/neural_compressor_ext_lab/.eslintignore b/neural_coder/extensions/neural_compressor_ext_lab/.eslintignore new file mode 100644 index 00000000000..fffa32fdf63 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/.eslintignore @@ -0,0 +1,8 @@ +node_modules +dist +coverage +**/*.d.ts +tests + +**/__tests__ +ui-tests diff --git a/neural_coder/extensions/neural_compressor_ext_lab/.eslintrc.js b/neural_coder/extensions/neural_compressor_ext_lab/.eslintrc.js new file mode 100644 index 00000000000..dbaf8a2b4b1 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/.eslintrc.js @@ -0,0 +1,44 @@ +module.exports = { + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended' + ], + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + sourceType: 'module' + }, + plugins: ['@typescript-eslint'], + rules: { + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'interface', + format: ['PascalCase'], + custom: { + regex: '^I[A-Z]', + match: true + } + } + ], + '@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }], + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/quotes': [ + 'error', + 'single', + { avoidEscape: true, allowTemplateLiterals: false } + ], + node: { + fs: 'empty', + net:'empty', + tls:'empty', +} + curly: ['error', 'all'], + eqeqeq: 'error', + 'prefer-arrow-callback': 'error' + } +}; diff --git a/neural_coder/extensions/neural_compressor_ext_lab/.prettierignore b/neural_coder/extensions/neural_compressor_ext_lab/.prettierignore new file mode 100644 index 00000000000..0de58a6f50b --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/.prettierignore @@ -0,0 +1,5 @@ +node_modules +**/node_modules +**/lib +**/package.json +neural_compressor_ext_lab diff --git a/neural_coder/extensions/neural_compressor_ext_lab/.prettierrc b/neural_coder/extensions/neural_compressor_ext_lab/.prettierrc new file mode 100644 index 00000000000..d0824a69c14 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/.prettierrc @@ -0,0 +1,6 @@ +{ + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto" +} diff --git a/neural_coder/extensions/neural_compressor_ext_lab/.stylelintrc b/neural_coder/extensions/neural_compressor_ext_lab/.stylelintrc new file mode 100644 index 00000000000..0e1ff30327c --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/.stylelintrc @@ -0,0 +1,12 @@ +{ + "extends": [ + "stylelint-config-recommended", + "stylelint-config-standard", + "stylelint-prettier/recommended" + ], + "rules": { + "property-no-vendor-prefix": null, + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null + } +} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/CHANGELOG.md b/neural_coder/extensions/neural_compressor_ext_lab/CHANGELOG.md similarity index 100% rename from neural_coder/extensions/neural-compressor-ext-lab/CHANGELOG.md rename to neural_coder/extensions/neural_compressor_ext_lab/CHANGELOG.md diff --git a/neural_coder/extensions/neural_compressor_ext_lab/LICENSE b/neural_coder/extensions/neural_compressor_ext_lab/LICENSE new file mode 100644 index 00000000000..d3f814da892 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2022, neural_coder +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/neural_coder/extensions/neural-compressor-ext-lab/MANIFEST.in b/neural_coder/extensions/neural_compressor_ext_lab/MANIFEST.in similarity index 71% rename from neural_coder/extensions/neural-compressor-ext-lab/MANIFEST.in rename to neural_coder/extensions/neural_compressor_ext_lab/MANIFEST.in index ed806d17c68..99115494fae 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/MANIFEST.in +++ b/neural_coder/extensions/neural_compressor_ext_lab/MANIFEST.in @@ -1,21 +1,17 @@ include LICENSE include *.md include pyproject.toml -include conftest.py include package.json include install.json include ts*.json -include *.config.js include yarn.lock -include jupyter-config/jupyterlab_neural_coder.json -graft nerual-compressor-ext-lab/labextension +graft neural_compressor_ext_lab/labextension # Javascript files graft src graft style -graft ui-tests prune **/node_modules prune lib prune binder diff --git a/neural_coder/extensions/neural_compressor_ext_lab/README.md b/neural_coder/extensions/neural_compressor_ext_lab/README.md new file mode 100644 index 00000000000..7141373e783 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/README.md @@ -0,0 +1,75 @@ +# neural_compressor_ext_lab + +A JupyterLab extension. + +## Requirements + +- JupyterLab >= 3.0 + +## Install + +To install the extension, execute: + +```bash +pip install neural_compressor_ext_lab +``` + +## Uninstall + +To remove the extension, execute: + +```bash +pip uninstall neural_compressor_ext_lab +``` + +## Contributing + +### Development install + +Note: You will need NodeJS to build the extension package. + +The `jlpm` command is JupyterLab's pinned version of +[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use +`yarn` or `npm` in lieu of `jlpm` below. + +```bash +# Clone the repo to your local environment +# Change directory to the neural_compressor_ext_lab directory +# Install package in development mode +pip install -e . +# Link your development version of the extension with JupyterLab +jupyter labextension develop . --overwrite +# Rebuild extension Typescript source after making changes +jlpm build +``` + +You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension. + +```bash +# Watch the source directory in one terminal, automatically rebuilding when needed +jlpm watch +# Run JupyterLab in another terminal +jupyter lab +``` + +With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt). + +By default, the `jlpm build` command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command: + +```bash +jupyter lab build --minimize=False +``` + +### Development uninstall + +```bash +pip uninstall neural_compressor_ext_lab +``` + +In development mode, you will also need to remove the symlink created by `jupyter labextension develop` +command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions` +folder is located. Then you can remove the symlink named `neural_compressor_ext_lab` within that folder. + +### Packaging the extension + +See [RELEASE](RELEASE.md) diff --git a/neural_coder/extensions/neural-compressor-ext-lab/RELEASE.md b/neural_coder/extensions/neural_compressor_ext_lab/RELEASE.md similarity index 97% rename from neural_coder/extensions/neural-compressor-ext-lab/RELEASE.md rename to neural_coder/extensions/neural_compressor_ext_lab/RELEASE.md index 7856398bcfc..bd51b356f28 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/RELEASE.md +++ b/neural_coder/extensions/neural_compressor_ext_lab/RELEASE.md @@ -1,4 +1,4 @@ -# Making a new release of Neural_Coder +# Making a new release of neural_compressor_ext_lab The extension can be published to `PyPI` and `npm` manually or using the [Jupyter Releaser](https://github.com/jupyter-server/jupyter_releaser). diff --git a/neural_coder/extensions/neural_compressor_ext_lab/binder/environment.yml b/neural_coder/extensions/neural_compressor_ext_lab/binder/environment.yml new file mode 100644 index 00000000000..23bed128c24 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/binder/environment.yml @@ -0,0 +1,21 @@ +# a mybinder.org-ready environment for demoing neural_compressor_ext_lab +# this environment may also be used locally on Linux/MacOS/Windows, e.g. +# +# conda env update --file binder/environment.yml +# conda activate neural-compressor-ext-lab-demo +# +name: neural-compressor-ext-lab-demo + +channels: + - conda-forge + +dependencies: + # runtime dependencies + - python >=3.8,<3.9.0a0 + - jupyterlab >=3,<4.0.0a0 + # labextension build dependencies + - nodejs >=14,<15 + - pip + - wheel + # additional packages for demos + # - ipywidgets diff --git a/neural_coder/extensions/neural_compressor_ext_lab/binder/postBuild b/neural_coder/extensions/neural_compressor_ext_lab/binder/postBuild new file mode 100755 index 00000000000..95eabd91874 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/binder/postBuild @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +""" perform a development install of neural_compressor_ext_lab + + On Binder, this will run _after_ the environment has been fully created from + the environment.yml in this directory. + + This script should also run locally on Linux/MacOS/Windows: + + python3 binder/postBuild +""" +import subprocess +import sys +from pathlib import Path + + +ROOT = Path.cwd() + +def _(*args, **kwargs): + """ Run a command, echoing the args + + fails hard if something goes wrong + """ + print("\n\t", " ".join(args), "\n") + return_code = subprocess.call(args, **kwargs) + if return_code != 0: + print("\nERROR", return_code, " ".join(args)) + sys.exit(return_code) + +# verify the environment is self-consistent before even starting +_(sys.executable, "-m", "pip", "check") + +# install the labextension +_(sys.executable, "-m", "pip", "install", "-e", ".") +_(sys.executable, "-m", "jupyter", "labextension", "develop", "--overwrite", ".") + +# verify the environment the extension didn't break anything +_(sys.executable, "-m", "pip", "check") + +# list the extensions +_("jupyter", "server", "extension", "list") + +# initially list installed extensions to determine if there are any surprises +_("jupyter", "labextension", "list") + + +print("JupyterLab with neural_compressor_ext_lab is ready to run with:\n") +print("\tjupyter lab\n") diff --git a/neural_coder/extensions/neural_compressor_ext_lab/install.json b/neural_coder/extensions/neural_compressor_ext_lab/install.json new file mode 100644 index 00000000000..24f9a58e094 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/install.json @@ -0,0 +1,5 @@ +{ + "packageManager": "python", + "packageName": "neural_compressor_ext_lab", + "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package neural_compressor_ext_lab" +} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/constants.d.ts b/neural_coder/extensions/neural_compressor_ext_lab/lib/constants.d.ts similarity index 97% rename from neural_coder/extensions/neural-compressor-ext-lab/lib/constants.d.ts rename to neural_coder/extensions/neural_compressor_ext_lab/lib/constants.d.ts index af4b5c551c9..94a7af37564 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/constants.d.ts +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/constants.d.ts @@ -1,5 +1,6 @@ export declare namespace Constants { - const SHORT_PLUGIN_NAME = "neural-compressor-ext-lab"; + const SHORT_PLUGIN_NAME = "neural_compressor_ext_lab"; + const WORK_PATH = "lab_workspace/"; const ICON_FORMAT_ALL_SVG = ""; const ICON_RUN = ""; const SVG = ""; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/constants.js b/neural_coder/extensions/neural_compressor_ext_lab/lib/constants.js similarity index 97% rename from neural_coder/extensions/neural-compressor-ext-lab/constants.js rename to neural_coder/extensions/neural_compressor_ext_lab/lib/constants.js index fe7b7de3855..ff365147bf4 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/constants.js +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/constants.js @@ -1,6 +1,7 @@ export var Constants; (function (Constants) { - Constants.SHORT_PLUGIN_NAME = 'neural-compressor-ext-lab'; + Constants.SHORT_PLUGIN_NAME = 'neural_compressor_ext_lab'; + Constants.WORK_PATH = "lab_workspace/"; Constants.ICON_FORMAT_ALL_SVG = ''; Constants.ICON_RUN = ''; Constants.SVG = ''; diff --git a/neural_coder/extensions/neural_compressor_ext_lab/lib/deepcoder.d.ts b/neural_coder/extensions/neural_compressor_ext_lab/lib/deepcoder.d.ts new file mode 100644 index 00000000000..da96b6b661b --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/deepcoder.d.ts @@ -0,0 +1,26 @@ +import { CodeCell } from '@jupyterlab/cells'; +import { ToolbarButton } from '@jupyterlab/apputils'; +import { Widget } from '@lumino/widgets'; +import { INotebookTracker, NotebookPanel, Notebook } from '@jupyterlab/notebook'; +declare class JupyterlabCodeOptimizer { + protected working: boolean; + protected panel: NotebookPanel; + private tmp_path; + log_path: string; + tmp_log_path: string; + rand: number; + cells: CodeCell[]; + constructor(panel: NotebookPanel); + optimizeCode(code: string[], formatter: string, name: string, next: string, options: string | undefined, notebook: boolean, panel: NotebookPanel, cell: CodeCell, run?: ToolbarButton | undefined): Promise; +} +export declare class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { + protected notebookname: string; + protected notebookTracker: INotebookTracker; + constructor(notebookTracker: INotebookTracker, panel: NotebookPanel); + optimizeAction(config: any, formatter?: string): Promise; + optimizeAllCodeCells(config?: string, formatter?: string, notebook?: Notebook, run?: ToolbarButton): Promise; + private getCodeCells; + private optimizeCells; + applicable(formatter: string, currentWidget: Widget): boolean | null; +} +export {}; diff --git a/neural_coder/extensions/neural_compressor_ext_lab/lib/deepcoder.js b/neural_coder/extensions/neural_compressor_ext_lab/lib/deepcoder.js new file mode 100644 index 00000000000..e99afd6b6f0 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/deepcoder.js @@ -0,0 +1,249 @@ +import NotebookUtilities from "./utils"; +import { Constants } from './constants'; +// import * as fse from 'fs'; +// import * as child_process from 'lerna__child-process'; +class JupyterlabCodeOptimizer { + constructor(panel) { + this.working = false; + this.panel = panel; + this.tmp_path = Constants.WORK_PATH + "tmp.py"; + this.rand = NotebookUtilities.GetRandomNum(0, 200); + this.log_path = Constants.WORK_PATH + "NeuralCoder" + this.rand + ".log"; + this.tmp_log_path = Constants.WORK_PATH + "NeuralCoder_tmp" + ".log"; + this.cells = []; + } + async optimizeCode(code, formatter, name, next, options, notebook, panel, cell, run) { + let codes = []; + code.forEach(function (value) { + // console.log("each code", value) + value = value.replace(/('\\n')/g, '^^^'); + value = value.replace(/\\n"/g, '###'); + value = value.replace(/\\n'/g, '###'); + value = value.replace(/"\\n/g, '@@'); + value = value.replace(/'\\n/g, '@@'); + value = value.replace(/\n/g, '\\n'); + value = value.replace(/"/g, '+++'); + value = value.replace(/,/g, '$'); + // console.log("After Replace...",value) + codes.push(value); + }); + let gen_code = `code = "${codes}"\ncodes = code.split(',')\nwith open( '${this.tmp_path}', 'w+' ) as f:\n for i in range(0,len(codes)):\n f.write('# this is the beginning of a single code snippet\\n')\n code_list = codes[i].replace('$',',').replace('+++','\"').split('\\n')\n for line in code_list:\n if('split(^^^)' in line):\n line=line.replace('split(^^^)', 'split(\\'\\\\n\\')')\n if('###' in line):\n line=line.replace('###', '\\\\n\"')\n if('@@' in line):\n line=line.replace('@@', '\"\\\\n')\n f.write(line+'\\n')`; + const expr = { code_list: `code_list` }; + NotebookUtilities.sendKernelRequestFromNotebook(panel, gen_code, expr, false); + if (options === 'normal') { + let runcode = `from neural_coder import enable\nenable(code="${this.tmp_path}",features=["${formatter}"], overwrite=True)`; + //The user expressions + let expr = { sum: ` ` }; + //Async function call (returns a promise) + NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode, expr, false); + let run_code1 = `with open("${this.tmp_path}", 'r') as f:\n optimized_code = f.read()\n`; + let expr1 = { optimizedCode: "optimized_code" }; + let result2 = NotebookUtilities.sendKernelRequestFromNotebook(panel, run_code1, expr1, false); + result2.then(value => { + var _a, _b, _c, _d; + let optimizedTexts = Object.values(value.optimizedCode.data)[0]; + let optimizeCodes = optimizedTexts.split('# this is the beginning of a single code snippet\\n').slice(1); + console.log("optimizedText", optimizeCodes); + optimizeCodes[optimizeCodes.length - 1] = optimizeCodes[optimizeCodes.length - 1].slice(0, -3); + for (let i = 0; i < optimizeCodes.length; ++i) { + const cell = this.cells[i]; + const currentTexts = this.cells.map(cell => cell.model.value.text); + const currentText = currentTexts[i]; + let optimizedtext = optimizeCodes[i]; + optimizedtext = optimizedtext.replace(/\\'\\\\n\\'/g, "^^^"); + optimizedtext = optimizedtext.replace(/\\\\n"/g, "+++"); + optimizedtext = optimizedtext.replace(/\\\\n'/g, "+++"); + optimizedtext = optimizedtext.replace(/"\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/'\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/\\n/g, '\n'); + console.log("text2", optimizedtext); + optimizedtext = optimizedtext.replace(/\\'/g, "'"); + optimizedtext = optimizedtext.replace(/\^\^\^/g, "'\\n'"); + optimizedtext = optimizedtext.replace(/\+\+\+/g, "\\n\""); + optimizedtext = optimizedtext.replace(/\@\@\@/g, "\"\\n"); + if (cell.model.value.text === currentText) { + cell.model.value.text = optimizedtext; + } + const run_svg = document.createElement("svg"); + run_svg.innerHTML = Constants.ICON_RUN; + (_d = (_c = (_b = (_a = run === null || run === void 0 ? void 0 : run.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(run_svg); + } + }); + } + else { + if (formatter === '') { + cell.outputArea.node.innerText += "[NeuralCoder INFO] Enabling and Benchmarking for The Original Model ......\n"; + let runcode1 = `with open("${this.log_path}", 'a' ) as f:\n f.write("[NeuralCoder INFO] Enabling and Benchmarking for The Original Model ......\\n")`; + let expr1 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode1, expr1, false); + let runcode = `from neural_coder import enable\nperfomance, mode, path = enable(code="${this.tmp_path}",features=[], run_bench=True, args="${options}")\nwith open(path + '/bench.log', 'r') as f:\n logs = f.readlines()\nlog_line = logs[4]\nlog = log_line.split("[")[1].split("]")[0]`; + let expr = { path: "path", log: "log" }; + let result = NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode, expr, false); + let fps; + result.then(value => { + fps = Object.values(value.log.data)[0]; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Result (Performance) of The Original Model is ${fps} (FPS)\n`; + let text = `[NeuralCoder INFO] Benchmark Result (Performance) of The Original Model is ${fps} (FPS)\\n`; + let runcode = `with open("${this.log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode, expr, false); + cell.outputArea.node.innerText += `[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\n`; + let runcode1 = `with open("${this.log_path}", 'a' ) as f:\n f.write("[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\n")`; + let expr1 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode1, expr1, false); + let runcode2 = `with open("${this.tmp_log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr2 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + }); + } + else { + let runcode = `from neural_coder import enable\nperfomance, mode, path = enable(code="${this.tmp_path}", features=["${formatter}"], run_bench=True, args="${options}")\nwith open(path + '/bench.log', 'r') as f:\n logs = f.readlines()\nlog_line = logs[4]\nlog = log_line.split("[")[1].split("]")[0]`; + let expr = { path: "path", log: "log" }; + let result = NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode, expr, false); + let fps; + result.then(value => { + fps = Object.values(value.log.data)[0]; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Result (Performance) of ${name} is ${fps} (FPS)\n`; + let text = `[NeuralCoder INFO] Benchmark Result (Performance) of ${name} is ${fps} (FPS)\\n`; + let runcode = `with open("${this.log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode, expr, false); + if (next !== '') { + cell.outputArea.node.innerText += `[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\n`; + let runcode2 = `with open("${this.log_path}", 'a' ) as f:\n f.write("[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\n")`; + let expr2 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + } + let runcode2 = `with open("${this.tmp_log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr2 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + if (formatter === 'pytorch_inc_bf16') { + let read_log = `import re\nwith open("${this.tmp_log_path}", 'r') as f:\n logs = f.readlines()\n fps_list=[]\n for log_line in logs[-4:-1]:\n pat = r\'\\d+\\.?\\d+'\n fps = re.search(pat,log_line).group()\n fps_list.append(float(fps))\nmaxi = max(fps_list)\nindex = fps_list.index(maxi)\nboost = round(maxi/fps_list[0],1)\nfeatures=['','pytorch_inc_static_quant_fx','pytorch_inc_dynamic_quant','pytorch_inc_bf16']\nfeature_name=['','INC Enable INT8 (Static)','INC Enable INT8 (Dynamic)','INC Enable BF16']\nbest_feature = features[index]\nbest_name = feature_name[index]\nfeature_l = []\nfeature_l.append(best_feature)\nfrom neural_coder import enable\nenable(code="${this.tmp_path}",features=feature_l, overwrite=True)\nwith open("${this.tmp_path}", 'r') as f:\n optimized_code = f.read()\n`; + let read_expr = { boost: "boost", best_feature: "best_feature", best_name: "best_name", optimizeCode: "optimized_code", feature_l: "feature_l" }; + let read_result = NotebookUtilities.sendKernelRequestFromNotebook(this.panel, read_log, read_expr, false); + read_result.then(value => { + var _a, _b, _c, _d; + let boost = Object.values(value.boost.data)[0]; + let best_name = Object.values(value.best_name.data)[0]; + let optimizedTexts = Object.values(value.optimizeCode.data)[0]; + let optimizeCodes = optimizedTexts.split('# this is the beginning of a single code snippet\\n').slice(1); + cell.outputArea.node.innerText += `[NeuralCoder INFO] The Best Intel Optimization: ${best_name}\n`; + cell.outputArea.node.innerText += `[NeuralCoder INFO] You can get up to ${boost}X performance boost.\n`; + console.log("optimizedText", optimizeCodes); + optimizeCodes[optimizeCodes.length - 1] = optimizeCodes[optimizeCodes.length - 1].slice(0, -3); + for (let i = 0; i < optimizeCodes.length; ++i) { + const cell = this.cells[i]; + const currentTexts = this.cells.map(cell => cell.model.value.text); + const currentText = currentTexts[i]; + let optimizedtext = optimizeCodes[i]; + console.log("text1", optimizedtext); + optimizedtext = optimizedtext.replace(/\\'\\\\n\\'/g, "^^^"); + optimizedtext = optimizedtext.replace(/\\\\n"/g, "+++"); + optimizedtext = optimizedtext.replace(/\\\\n'/g, "+++"); + optimizedtext = optimizedtext.replace(/"\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/'\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/\\n/g, '\n'); + console.log("text2", optimizedtext); + optimizedtext = optimizedtext.replace(/\\'/g, "'"); + optimizedtext = optimizedtext.replace(/\^\^\^/g, "'\\n'"); + optimizedtext = optimizedtext.replace(/\+\+\+/g, "\\n\""); + optimizedtext = optimizedtext.replace(/\@\@\@/g, "\"\\n"); + console.log("text3", optimizedtext); + if (cell.model.value.text === currentText) { + cell.model.value.text = optimizedtext; + } + } + let command = "lscpu | grep 'Model name'"; + let get_hardware = `import subprocess\nsubp = subprocess.Popen("${command}",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8")\nsubp.wait(2)\nhardware = subp.communicate()[0].replace("Model name:","").strip()`; + let expr_hardware = { hardware: "hardware" }; + let hard_res = NotebookUtilities.sendKernelRequestFromNotebook(this.panel, get_hardware, expr_hardware, false); + hard_res.then(value => { + let hard = Object.values(value.hardware.data)[0]; + cell.outputArea.node.innerText += `[NeuralCoder INFO] HardWare: ${hard}\n`; + }); + cell.outputArea.node.innerText += `[NeuralCoder INFO] The log was saved to lab_workspace\\NeuralCoder${this.rand}.log\n`; + const run_svg = document.createElement("svg"); + run_svg.innerHTML = Constants.ICON_RUN; + (_d = (_c = (_b = (_a = run === null || run === void 0 ? void 0 : run.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(run_svg); + }); + } + }); + } + } + } +} +export class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { + constructor(notebookTracker, panel) { + super(panel); + this.notebookTracker = notebookTracker; + this.notebookname = ''; + } + async optimizeAction(config, formatter) { + return this.optimizeCells(true, config, formatter); + } + async optimizeAllCodeCells(config, formatter, notebook, run) { + return this.optimizeCells(false, config, formatter, notebook, run); + } + getCodeCells(selectedOnly = true, notebook) { + if (!this.notebookTracker.currentWidget) { + return []; + } + const codeCells = []; + notebook = notebook || this.notebookTracker.currentWidget.content; + this.notebookname = notebook.title.label; + notebook.widgets.forEach((cell) => { + if (cell.model.type === 'code') { + codeCells.push(cell); + } + }); + this.cells = codeCells; + return codeCells; + } + async optimizeCells(selectedOnly, config, formatter, notebook, run) { + if (this.working) { + return new Promise((resolve, reject) => { + resolve("false!"); + }); + } + this.working = true; + const selectedCells = this.getCodeCells(selectedOnly, notebook); + let cell = selectedCells[selectedCells.length - 1]; + if (selectedCells.length === 0) { + this.working = false; + return new Promise((resolve, reject) => { + resolve("false!"); + }); + } + const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu'; + const currentTexts = selectedCells.map(cell => cell.model.value.text); + if (optimize_type === 'auto-quant') { + cell.outputArea.node.innerText = `[NeuralCoder INFO] Auto-Quant Started ......\n`; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Code: User code from Jupyter Lab notebook "${this.notebookname}"\n`; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Mode: Throughput\n`; + let runcode = `with open('${this.log_path}', 'a' ) as f:\n f.write("[NeuralCoder INFO] Auto-Quant Started ......\\n")`; + let expr = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode, expr, false); + let runcode2 = `with open('${this.log_path}', 'a' ) as f:\n f.write("[NeuralCoder INFO] Code: User code from Jupyter Lab notebook '${this.notebookname}'\\n")`; + let expr2 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + let runcode3 = `with open('${this.log_path}', 'a' ) as f:\n f.write("[NeuralCoder INFO] Benchmark Mode: Throughput\\n")`; + let expr3 = { path: "" }; + NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode3, expr3, false); + cell.outputArea.node.setAttribute("class", "pad"); + await this.optimizeCode(currentTexts, '', 'The Original Model', 'INC Enable INT8 (Static)', config, true, this.panel, cell, run); + await this.optimizeCode(currentTexts, 'pytorch_inc_static_quant_fx', 'INC Enable INT8 (Static)', 'INC Enable INT8 (Dynamic)', config, true, this.panel, cell, run); + await this.optimizeCode(currentTexts, 'pytorch_inc_dynamic_quant', 'INC Enable INT8 (Dynamic)', 'INC Enable BF16', config, true, this.panel, cell, run); + await this.optimizeCode(currentTexts, 'pytorch_inc_bf16', 'INC Enable BF16', '', config, true, this.panel, cell, run); + } + else { + await this.optimizeCode(currentTexts, optimize_type, "", "", "normal", true, this.panel, cell, run); + } + return new Promise((resolve, reject) => { + resolve("success!"); + }); + } + applicable(formatter, currentWidget) { + const currentNotebookWidget = this.notebookTracker.currentWidget; + return currentNotebookWidget && currentWidget === currentNotebookWidget; + } +} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/index.d.ts b/neural_coder/extensions/neural_compressor_ext_lab/lib/index.d.ts similarity index 68% rename from neural_coder/extensions/neural-compressor-ext-lab/lib/index.d.ts rename to neural_coder/extensions/neural_compressor_ext_lab/lib/index.d.ts index e9dc35371bc..f256eada9ba 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/index.d.ts +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/index.d.ts @@ -1,6 +1,6 @@ import { JupyterFrontEndPlugin } from '@jupyterlab/application'; /** - * Initialization data for the deepcoder-jupyterlab extension. + * Initialization data for the neural_compressor_ext_lab extension. */ declare const plugin: JupyterFrontEndPlugin; export default plugin; diff --git a/neural_coder/extensions/neural-compressor-ext-lab/lib/index.js b/neural_coder/extensions/neural_compressor_ext_lab/lib/index.js similarity index 60% rename from neural_coder/extensions/neural-compressor-ext-lab/lib/index.js rename to neural_coder/extensions/neural_compressor_ext_lab/lib/index.js index 50e98ed5110..b33cee74c1c 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/lib/index.js +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/index.js @@ -1,27 +1,26 @@ -import { INotebookTracker, } from '@jupyterlab/notebook'; -import { -// ICommandPalette, -ToolbarButton, } from '@jupyterlab/apputils'; +import { INotebookTracker } from '@jupyterlab/notebook'; +import { ToolbarButton, showDialog, Dialog } from '@jupyterlab/apputils'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { IMainMenu } from '@jupyterlab/mainmenu'; -// import { DisposableDelegate, IDisposable } from '@lumino/disposable'; import { LabIcon } from '@jupyterlab/ui-components'; import { Widget } from '@lumino/widgets'; import { JupyterlabNotebookCodeOptimizer } from './deepcoder'; -import JupyterlabDeepCoderClient from './client'; import { Constants } from './constants'; -class JupyterLabDeepCoder { - // private panel: NotebookPanel; - constructor(app, tracker) { +class neural_compressor_ext_lab { + constructor(app, tracker, notebookpanel) { this.app = app; this.tracker = tracker; - // this.panel = panel; - this.client = new JupyterlabDeepCoderClient(); - this.notebookCodeOptimizer = new JupyterlabNotebookCodeOptimizer(this.client, this.tracker); + this.notebookpanel = notebookpanel; + // this.notebookCodeOptimizer = new JupyterlabNotebookCodeOptimizer( + // this.tracker, + // this.notebookpanel + // ); this.setupWidgetExtension(); + this.config = ''; } createNew(nb) { - // this.panel = nb; + this.notebookpanel = nb; + this.notebookCodeOptimizer = new JupyterlabNotebookCodeOptimizer(this.tracker, this.notebookpanel); const svg = document.createElement("svg"); svg.innerHTML = Constants.ICON_FORMAT_ALL_SVG; const run_svg = document.createElement("svg"); @@ -36,15 +35,17 @@ class JupyterLabDeepCoder { selector.id = "NeuralCoder"; const option1 = document.createElement("option"); option1.value = "pytorch_inc_static_quant_fx"; - option1.innerText = "Intel INT8 (Static)"; + option1.innerText = "INC Enable INT8 (Static)"; option1.selected = true; const option2 = document.createElement("option"); option2.value = "pytorch_inc_dynamic_quant"; - option2.innerText = "Intel INT8 (Dynamic)"; + option2.innerText = "INC Enable INT8 (Dynamic)"; const option3 = document.createElement("option"); option3.value = "pytorch_inc_bf16"; - option3.innerText = "Intel BF16"; + option3.innerText = "INC Enable BF16"; const option4 = document.createElement("option"); + option4.value = "auto-quant"; + option4.innerText = "INC Auto Enable & Benchmark"; selector.options.add(option1); selector.options.add(option2); selector.options.add(option3); @@ -54,9 +55,12 @@ class JupyterLabDeepCoder { const selector_widget = new Widget(); selector_widget.node.appendChild(div); selector_widget.addClass("aselector"); - // let panel = this.panel; let notebookCodeOptimizer = this.notebookCodeOptimizer; let config = this.config; + const dia_input = document.createElement("input"); + const dia_widget = new Widget(); + dia_widget.node.appendChild(dia_input); + dia_widget.addClass("dialog"); const run_button = new ToolbarButton({ tooltip: 'NeuralCoder', icon: new LabIcon({ @@ -64,12 +68,20 @@ class JupyterLabDeepCoder { svgstr: Constants.ICON_RUN }), onClick: async function () { - var _a, _b, _c, _d, _e, _f, _g, _h; + var _a, _b, _c, _d; (_d = (_c = (_b = (_a = run_button.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(svg); - console.log("user's selecting feature"); - console.log(selector.options[selector.selectedIndex].value); - await notebookCodeOptimizer.optimizeAllCodeCells(config, selector.options[selector.selectedIndex].value); - (_h = (_g = (_f = (_e = run_button.node.firstChild) === null || _e === void 0 ? void 0 : _e.firstChild) === null || _f === void 0 ? void 0 : _f.firstChild) === null || _g === void 0 ? void 0 : _g.firstChild) === null || _h === void 0 ? void 0 : _h.replaceWith(run_svg); + if (selector.options[selector.selectedIndex].value === 'auto-quant') { + await showDialog({ + title: 'Please input execute parameters:', + body: dia_widget, + buttons: [Dialog.okButton({ label: 'Confirm' })] + }).then(result => { + if (result.button.accept) { + config = dia_input.value; + } + }); + } + await notebookCodeOptimizer.optimizeAllCodeCells(config, selector.options[selector.selectedIndex].value, undefined, run_button); } }); nb.toolbar.insertItem(11, "nc", run_button); @@ -80,16 +92,16 @@ class JupyterLabDeepCoder { } } /** - * Initialization data for the deepcoder-jupyterlab extension. + * Initialization data for the neural_compressor_ext_lab extension. */ const plugin = { - id: 'neural-compressor-ext-lab:plugin', + id: 'neural_compressor_ext_lab:plugin', autoStart: true, requires: [INotebookTracker, IMainMenu], optional: [ISettingRegistry], - activate: (app, tracker) => { - new JupyterLabDeepCoder(app, tracker); - console.log('JupyterLab extension jupyterlab_neuralcoder is activated!'); + activate: (app, tracker, notebookpanel) => { + new neural_compressor_ext_lab(app, tracker, notebookpanel); + console.log('JupyterLab extension neural_compressor_ext_lab is activated!'); } }; export default plugin; diff --git a/neural_coder/extensions/neural_compressor_ext_lab/lib/test.d.ts b/neural_coder/extensions/neural_compressor_ext_lab/lib/test.d.ts new file mode 100644 index 00000000000..2c28e08c632 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/test.d.ts @@ -0,0 +1,2 @@ +declare let str: string; +declare let str1: number; diff --git a/neural_coder/extensions/neural_compressor_ext_lab/lib/test.js b/neural_coder/extensions/neural_compressor_ext_lab/lib/test.js new file mode 100644 index 00000000000..b51ac0b82b3 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/test.js @@ -0,0 +1,4 @@ +"use strict"; +let str = '# this is the beginning of a single code snippet\nimport glob\nimport torch\nimport os\nimport sys\nfrom tqdm import tqdm\nfrom dalle_pytorch import VQGanVAE, DALLE, DiscreteVAE\nfrom dalle_pytorch.tokenizer import tokenizer\nfrom einops import repeat\nfrom dalle_nc import DALLE, DiscreteVAE\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data import Dataset\n\n# model\nvae = DiscreteVAE(\n image_size = 8,\n num_layers = 3,\n num_tokens = 8192,\n codebook_dim = 1024,\n hidden_dim = 64,\n num_resnet_blocks = 1,\n temperature = 0.9\n)\n\ndalle = DALLE(\n dim = 1024,\n vae = vae, # automatically infer (1) image sequence length and (2) number of image tokens\n num_text_tokens = 100000, # vocab size for text\n text_seq_len = 256, # text sequence length\n depth = 12, # should aim to be 64\n heads = 16, # attention heads\n dim_head = 64, # attention head dimension\n attn_dropout = 0.1, # attention dropout\n ff_dropout = 0.1 # feedforward dropout\n)\n# [NeuralCoder] pytorch_inc_dynamic_quant for dalle [Beginning Line]\nif "GraphModule" not in str(type(dalle)):\n from neural_compressor.conf.config import QuantConf\n from neural_compressor.experimental import Quantization, common\n quant_config = QuantConf()\n quant_config.usr_cfg.quantization.approach = "post_training_dynamic_quant"\n quant_config.usr_cfg.model.framework = "pytorch"\n quantizer = Quantization(quant_config)\n quantizer.model = common.Model(dalle)\n dalle = quantizer()\n dalle = dalle.model\n dalle.eval()\n# [NeuralCoder] pytorch_inc_dynamic_quant for dalle [Ending Line]\n\ndalle.eval()\n\n# real data for DALLE image generation\nfiles = glob.glob(\'/home2/longxin/neural_compressor_ext_lab/real_text.txt\')\n\n# create dataloader\ninput_list = []\nwith torch.no_grad():\n count = 0\n for file in files:\n texts = open(file, \'r\').read().split(\'\\n\')\n for text in texts:\n print(text)\n\n num_images = 1\n\n top_k = 0.9\n\n image_size = vae.image_size\n\n texts = text.split(\'|\')\n\n for j, text in tqdm(enumerate(texts)):\n text_tokens = tokenizer.tokenize([text], 256).to(\'cpu\')\n\n text_tokens = repeat(text_tokens, \'() n -> b n\', b=num_images)\n\n for text_chunk in tqdm(text_tokens):\n d = {}\n d["text"] = text_chunk\n d["filter_thres"] = top_k\n input_list.append(d)\n\nclass MyDataset(Dataset):\n def __init__(self):\n self.samples = input_list\n\n def __getitem__(self, idx):\n return self.samples[idx], 1\n\n def __len__(self):\n return len(self.samples)\ndataset = MyDataset()\ndataloader = DataLoader(dataset)\n\n# inference\nwith torch.no_grad():\n for step, (inputs, labels) in enumerate(dataloader):\n print("running inference ...")\n output = dalle(**inputs)\n\n'; +let str1 = str.split('# this is the beginning of a single code snippet\\n').length; +console.log(__filename); diff --git a/neural_coder/extensions/neural_compressor_ext_lab/lib/utils.d.ts b/neural_coder/extensions/neural_compressor_ext_lab/lib/utils.d.ts new file mode 100644 index 00000000000..8b7a2173767 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/utils.d.ts @@ -0,0 +1,120 @@ +import { NotebookPanel } from '@jupyterlab/notebook'; +import { Kernel } from '@jupyterlab/services'; +import { CommandRegistry } from '@phosphor/commands'; +export default class NotebookUtilities { + /** + * generate random number + * @Min + * @Max + */ + static GetRandomNum(Min: number, Max: number): number; + /** + * Builds an HTML container by sanitizing a list of strings and converting + * them in valid HTML + * @param msg A list of string with HTML formatting + * @returns a HTMLDivElement composed of a list of spans with formatted text + */ + private static buildDialogBody; + /** + * Opens a pop-up dialog in JupyterLab to display a simple message. + * @param title The title for the message popup + * @param msg The message as an array of strings + * @param buttonLabel The label to use for the button. Default is 'OK' + * @param buttonClassName The classname to give to the 'ok' button + * @returns Promise - A promise once the message is closed. + */ + static showMessage(title: string, msg: string[], buttonLabel?: string, buttonClassName?: string): Promise; + /** + * Opens a pop-up dialog in JupyterLab to display a yes/no dialog. + * @param title The title for the message popup + * @param msg The message + * @param acceptLabel The label to use for the accept button. Default is 'YES' + * @param rejectLabel The label to use for the reject button. Default is 'NO' + * @param yesButtonClassName The classname to give to the accept button. + * @param noButtonClassName The classname to give to the cancel button. + * @returns Promise - A promise once the message is closed. + */ + static showYesNoDialog(title: string, msg: string[], acceptLabel?: string, rejectLabel?: string, yesButtonClassName?: string, noButtonClassName?: string): Promise; + /** + * Opens a pop-up dialog in JupyterLab with various information and button + * triggering reloading the page. + * @param title The title for the message popup + * @param msg The message + * @param buttonLabel The label to use for the button. Default is 'Refresh' + * @param buttonClassName The classname to give to the 'refresh' button. + * @returns Promise - A promise once the message is closed. + */ + static showRefreshDialog(title: string, msg: string[], buttonLabel?: string, buttonClassName?: string): Promise; + /** + * @description Creates a new JupyterLab notebook for use by the application + * @param command The command registry + * @returns Promise - A promise containing the notebook panel object that was created (if successful). + */ + static createNewNotebook(command: CommandRegistry): Promise; + /** + * Safely saves the Jupyter notebook document contents to disk + * @param notebookPanel The notebook panel containing the notebook to save + */ + static saveNotebook(notebookPanel: NotebookPanel): Promise; + /** + * Convert the notebook contents to JSON + * @param notebookPanel The notebook panel containing the notebook to serialize + */ + static notebookToJSON(notebookPanel: NotebookPanel): any; + /** + * @description Gets the value of a key from specified notebook's metadata. + * @param notebookPanel The notebook to get meta data from. + * @param key The key of the value. + * @returns any -The value of the metadata. Returns null if the key doesn't exist. + */ + static getMetaData(notebookPanel: NotebookPanel, key: string): any; + /** + * @description Sets the key value pair in the notebook's metadata. + * If the key doesn't exists it will add one. + * @param notebookPanel The notebook to set meta data in. + * @param key The key of the value to create. + * @param value The value to set. + * @param save Default is false. Whether the notebook should be saved after the meta data is set. + * Note: This function will not wait for the save to complete, it only sends a save request. + * @returns The old value for the key, or undefined if it did not exist. + */ + static setMetaData(notebookPanel: NotebookPanel, key: string, value: any, save?: boolean): any; + /** + * @description This function runs code directly in the notebook's kernel and then evaluates the + * result and returns it as a promise. + * @param kernel The kernel to run the code in. + * @param runCode The code to run in the kernel. + * @param userExpressions The expressions used to capture the desired info from the executed code. + * @param runSilent Default is false. If true, kernel will execute as quietly as possible. + * store_history will be set to false, and no broadcast on IOPUB channel will be made. + * @param storeHistory Default is false. If true, the code executed will be stored in the kernel's history + * and the counter which is shown in the cells will be incremented to reflect code was run. + * @param allowStdIn Default is false. If true, code running in kernel can prompt user for input using + * an input_request message. + * @param stopOnError Default is false. If True, does not abort the execution queue, if an exception is encountered. + * This allows the queued execution of multiple execute_requests, even if they generate exceptions. + * @returns Promise - A promise containing the execution results of the code as an object with + * keys based on the user_expressions. + * @example + * //The code + * const code = "a=123\nb=456\nsum=a+b"; + * //The user expressions + * const expr = {sum: "sum",prod: "a*b",args:"[a,b,sum]"}; + * //Async function call (returns a promise) + * sendKernelRequest(notebookPanel, code, expr,false); + * //Result when promise resolves: + * { + * sum:{status:"ok",data:{"text/plain":"579"},metadata:{}}, + * prod:{status:"ok",data:{"text/plain":"56088"},metadata:{}}, + * args:{status:"ok",data:{"text/plain":"[123, 456, 579]"}} + * } + * @see For more information on JupyterLab messages: + * https://jupyter-client.readthedocs.io/en/latest/messaging.html#execution-results + */ + static sendKernelRequest(kernel: Kernel.IKernelConnection | null | undefined, runCode: string, userExpressions: any, runSilent?: boolean, storeHistory?: boolean, allowStdIn?: boolean, stopOnError?: boolean): Promise; + /** + * Same as method sendKernelRequest but passing + * a NotebookPanel instead of a Kernel + */ + static sendKernelRequestFromNotebook(notebookPanel: NotebookPanel, runCode: string, userExpressions: any, runSilent?: boolean, storeHistory?: boolean, allowStdIn?: boolean, stopOnError?: boolean): Promise; +} diff --git a/neural_coder/extensions/neural_compressor_ext_lab/lib/utils.js b/neural_coder/extensions/neural_compressor_ext_lab/lib/utils.js new file mode 100644 index 00000000000..5ac72df1071 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/lib/utils.js @@ -0,0 +1,270 @@ +/* + * Copyright 2019-2020 The Kale Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Dialog, showDialog } from '@jupyterlab/apputils'; +// @ts-ignore +import SanitizedHTML from 'react-sanitized-html'; +import * as React from 'react'; +export default class NotebookUtilities { + /** + * generate random number + * @Min + * @Max + */ + static GetRandomNum(Min, Max) { + let Range; + Range = Max - Min; + var Rand = Math.random(); + return (Min + Math.round(Rand * Range)); + } + /** + * Builds an HTML container by sanitizing a list of strings and converting + * them in valid HTML + * @param msg A list of string with HTML formatting + * @returns a HTMLDivElement composed of a list of spans with formatted text + */ + static buildDialogBody(msg) { + return (React.createElement("div", null, msg.map((s, i) => { + return (React.createElement(React.Fragment, { key: `msg-${i}` }, + React.createElement(SanitizedHTML, { allowedAttributes: { a: ['href'] }, allowedTags: ['b', 'i', 'em', 'strong', 'a', 'pre'], html: s }), + React.createElement("br", null))); + }))); + } + /** + * Opens a pop-up dialog in JupyterLab to display a simple message. + * @param title The title for the message popup + * @param msg The message as an array of strings + * @param buttonLabel The label to use for the button. Default is 'OK' + * @param buttonClassName The classname to give to the 'ok' button + * @returns Promise - A promise once the message is closed. + */ + static async showMessage(title, msg, buttonLabel = 'Dismiss', buttonClassName = '') { + const buttons = [ + Dialog.okButton({ label: buttonLabel, className: buttonClassName }), + ]; + const messageBody = this.buildDialogBody(msg); + await showDialog({ title, buttons, body: messageBody }); + } + /** + * Opens a pop-up dialog in JupyterLab to display a yes/no dialog. + * @param title The title for the message popup + * @param msg The message + * @param acceptLabel The label to use for the accept button. Default is 'YES' + * @param rejectLabel The label to use for the reject button. Default is 'NO' + * @param yesButtonClassName The classname to give to the accept button. + * @param noButtonClassName The classname to give to the cancel button. + * @returns Promise - A promise once the message is closed. + */ + static async showYesNoDialog(title, msg, acceptLabel = 'YES', rejectLabel = 'NO', yesButtonClassName = '', noButtonClassName = '') { + const buttons = [ + Dialog.okButton({ label: acceptLabel, className: yesButtonClassName }), + Dialog.cancelButton({ label: rejectLabel, className: noButtonClassName }), + ]; + const messageBody = this.buildDialogBody(msg); + const result = await showDialog({ title, buttons, body: messageBody }); + return result.button.label === acceptLabel; + } + /** + * Opens a pop-up dialog in JupyterLab with various information and button + * triggering reloading the page. + * @param title The title for the message popup + * @param msg The message + * @param buttonLabel The label to use for the button. Default is 'Refresh' + * @param buttonClassName The classname to give to the 'refresh' button. + * @returns Promise - A promise once the message is closed. + */ + static async showRefreshDialog(title, msg, buttonLabel = 'Refresh', buttonClassName = '') { + await this.showMessage(title, msg, buttonLabel, buttonClassName); + location.reload(); + } + /** + * @description Creates a new JupyterLab notebook for use by the application + * @param command The command registry + * @returns Promise - A promise containing the notebook panel object that was created (if successful). + */ + static async createNewNotebook(command) { + const notebook = await command.execute('notebook:create-new', { + activate: true, + path: '', + preferredLanguage: '', + }); + await notebook.session.ready; + return notebook; + } + /** + * Safely saves the Jupyter notebook document contents to disk + * @param notebookPanel The notebook panel containing the notebook to save + */ + static async saveNotebook(notebookPanel) { + if (notebookPanel) { + await notebookPanel.context.ready; + notebookPanel.context.save(); + return true; + } + return false; + } + /** + * Convert the notebook contents to JSON + * @param notebookPanel The notebook panel containing the notebook to serialize + */ + static notebookToJSON(notebookPanel) { + if (notebookPanel.content.model) { + return notebookPanel.content.model.toJSON(); + } + return null; + } + /** + * @description Gets the value of a key from specified notebook's metadata. + * @param notebookPanel The notebook to get meta data from. + * @param key The key of the value. + * @returns any -The value of the metadata. Returns null if the key doesn't exist. + */ + static getMetaData(notebookPanel, key) { + if (!notebookPanel) { + throw new Error('The notebook is null or undefined. No meta data available.'); + } + if (notebookPanel.model && notebookPanel.model.metadata.has(key)) { + return notebookPanel.model.metadata.get(key); + } + return null; + } + /** + * @description Sets the key value pair in the notebook's metadata. + * If the key doesn't exists it will add one. + * @param notebookPanel The notebook to set meta data in. + * @param key The key of the value to create. + * @param value The value to set. + * @param save Default is false. Whether the notebook should be saved after the meta data is set. + * Note: This function will not wait for the save to complete, it only sends a save request. + * @returns The old value for the key, or undefined if it did not exist. + */ + static setMetaData(notebookPanel, key, value, save = false) { + var _a; + if (!notebookPanel) { + throw new Error('The notebook is null or undefined. No meta data available.'); + } + const oldVal = (_a = notebookPanel.model) === null || _a === void 0 ? void 0 : _a.metadata.set(key, value); + if (save) { + this.saveNotebook(notebookPanel); + } + return oldVal; + } + // /** + // * Get a new Kernel, not tied to a Notebook + // * Source code here: https://github.com/jupyterlab/jupyterlab/tree/473348d25bcb258ca2f0c127dd8fb5b193217135/packages/services + // */ + // public static async createNewKernel() { + // // Get info about the available kernels and start a new one. + // let options: Kernel.IOptions = await Kernel.getSpecs().then(kernelSpecs => { + // // console.log('Default spec:', kernelSpecs.default); + // // console.log('Available specs', Object.keys(kernelSpecs.kernelspecs)); + // // use the default name + // return { name: kernelSpecs.default }; + // }); + // return await Kernel.startNew(options).then(_kernel => { + // return _kernel; + // }); + // } + // // TODO: We can use this context manager to execute commands inside a new kernel + // // and be sure that it will be disposed of at the end. + // // Another approach could be to create a kale_rpc Kernel, as a singleton, + // // created at startup. The only (possible) drawback is that we can not name + // // a kernel instance with a custom id/name, so when refreshing JupyterLab we would + // // not recognize the kernel. A solution could be to have a kernel spec dedicated to kale rpc calls. + // public static async executeWithNewKernel(action: Function, args: any[] = []) { + // // create brand new kernel + // const _k = await this.createNewKernel(); + // // execute action inside kernel + // const res = await action(_k, ...args); + // // close kernel + // _k.shutdown(); + // // return result + // return res; + // } + /** + * @description This function runs code directly in the notebook's kernel and then evaluates the + * result and returns it as a promise. + * @param kernel The kernel to run the code in. + * @param runCode The code to run in the kernel. + * @param userExpressions The expressions used to capture the desired info from the executed code. + * @param runSilent Default is false. If true, kernel will execute as quietly as possible. + * store_history will be set to false, and no broadcast on IOPUB channel will be made. + * @param storeHistory Default is false. If true, the code executed will be stored in the kernel's history + * and the counter which is shown in the cells will be incremented to reflect code was run. + * @param allowStdIn Default is false. If true, code running in kernel can prompt user for input using + * an input_request message. + * @param stopOnError Default is false. If True, does not abort the execution queue, if an exception is encountered. + * This allows the queued execution of multiple execute_requests, even if they generate exceptions. + * @returns Promise - A promise containing the execution results of the code as an object with + * keys based on the user_expressions. + * @example + * //The code + * const code = "a=123\nb=456\nsum=a+b"; + * //The user expressions + * const expr = {sum: "sum",prod: "a*b",args:"[a,b,sum]"}; + * //Async function call (returns a promise) + * sendKernelRequest(notebookPanel, code, expr,false); + * //Result when promise resolves: + * { + * sum:{status:"ok",data:{"text/plain":"579"},metadata:{}}, + * prod:{status:"ok",data:{"text/plain":"56088"},metadata:{}}, + * args:{status:"ok",data:{"text/plain":"[123, 456, 579]"}} + * } + * @see For more information on JupyterLab messages: + * https://jupyter-client.readthedocs.io/en/latest/messaging.html#execution-results + */ + static async sendKernelRequest(kernel, runCode, userExpressions, runSilent = false, storeHistory = false, allowStdIn = false, stopOnError = false) { + if (!kernel) { + throw new Error('Kernel is null or undefined.'); + } + // Wait for kernel to be ready before sending request + // await kernel.status; + const message = await kernel.requestExecute({ + allow_stdin: allowStdIn, + code: runCode, + silent: runSilent, + stop_on_error: stopOnError, + store_history: storeHistory, + user_expressions: userExpressions, + }).done; + const content = message.content; + if (content.status !== 'ok') { + // If response is not 'ok', throw contents as error, log code + const msg = `Code caused an error:\n${runCode}`; + console.error(msg); + if (content.traceback) { + content.traceback.forEach((line) => console.log(line.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, ''))); + } + throw content; + } + // Return user_expressions of the content + return content.user_expressions; + } + /** + * Same as method sendKernelRequest but passing + * a NotebookPanel instead of a Kernel + */ + static async sendKernelRequestFromNotebook(notebookPanel, runCode, userExpressions, runSilent = false, storeHistory = false, allowStdIn = false, stopOnError = false) { + var _a, _b, _c, _d; + if (!notebookPanel) { + throw new Error('Notebook is null or undefined.'); + } + // Wait for notebook panel to be ready + await notebookPanel.activate; + await ((_a = notebookPanel.sessionContext) === null || _a === void 0 ? void 0 : _a.ready); + console.log('get kernel', (_b = notebookPanel.sessionContext.session) === null || _b === void 0 ? void 0 : _b.kernel); + return this.sendKernelRequest((_d = (_c = notebookPanel.sessionContext) === null || _c === void 0 ? void 0 : _c.session) === null || _d === void 0 ? void 0 : _d.kernel, runCode, userExpressions, runSilent, storeHistory, allowStdIn, stopOnError); + } +} diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/__init__.py b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/__init__.py similarity index 50% rename from neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/__init__.py rename to neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/__init__.py index 4bdc517e2e7..74c4e9f68fc 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/__init__.py +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/__init__.py @@ -14,35 +14,21 @@ import json -import os.path as osp +from pathlib import Path -from .handlers import setup_handlers from ._version import __version__ -HERE = osp.abspath(osp.dirname(__file__)) -with open(osp.join(HERE, "package.json")) as fid: - data = json.load(fid) - - -def _jupyter_labextension_paths(): - return [{"src": "labextension", "dest": data["name"]}] +HERE = Path(__file__).parent.resolve() -def _jupyter_server_extension_paths(): - return [{"module": "neural-compressor-ext-lab"}] - - -def _load_jupyter_server_extension(server_app): - """Registers the API handler to receive HTTP requests from the frontend extension. +with (HERE / "labextension" / "package.json").open() as fid: + data = json.load(fid) - Parameters - ---------- - lab_app: jupyterlab.labapp.LabApp - JupyterLab application instance - """ - setup_handlers(server_app.web_app) +def _jupyter_labextension_paths(): + return [{ + "src": "labextension", + "dest": data["name"] + }] -# For backward compatibility -load_jupyter_server_extension = _load_jupyter_server_extension diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/_version.py b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/_version.py similarity index 60% rename from neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/_version.py rename to neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/_version.py index fedbdada02b..30cfd6b1021 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/_version.py +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/_version.py @@ -13,26 +13,26 @@ # limitations under the License. -__all__ = ["__version__"] +import json +from pathlib import Path +__all__ = ["__version__"] def _fetchVersion(): - import json - import os - from pathlib import Path + HERE = Path(__file__).parent.resolve() - HERE = os.path.abspath(os.path.dirname(__file__)) - # HERE = Path(__file__).parent - - for d, _, _ in os.walk(HERE): - print("walk dir",d) + for settings in HERE.rglob("package.json"): try: - with open(os.path.join(d, "package.json")) as f: - return json.load(f)["version"] + with settings.open() as f: + version = json.load(f)["version"] + return ( + version.replace("-alpha.", "a") + .replace("-beta.", "b") + .replace("-rc.", "rc") + ) except FileNotFoundError: pass - raise FileNotFoundError("Could not find package.json under dir {}".format(HERE)) - + raise FileNotFoundError(f"Could not find package.json under dir {HERE!s}") __version__ = _fetchVersion() diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/build_log.json b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/build_log.json new file mode 100644 index 00000000000..86507de63a9 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/build_log.json @@ -0,0 +1,653 @@ +[ + { + "bail": false, + "module": { + "rules": [ + { + "test": {}, + "use": [ + "style-loader", + "css-loader" + ] + }, + { + "test": {}, + "use": "raw-loader" + }, + { + "test": {}, + "use": "raw-loader" + }, + { + "test": {}, + "use": "file-loader" + }, + { + "test": {}, + "use": "file-loader" + }, + { + "test": {}, + "use": "url-loader?limit=10000&mimetype=application/font-woff" + }, + { + "test": {}, + "use": "url-loader?limit=10000&mimetype=application/font-woff" + }, + { + "test": {}, + "use": "url-loader?limit=10000&mimetype=application/octet-stream" + }, + { + "test": {}, + "use": "file-loader" + }, + { + "test": {}, + "issuer": {}, + "use": { + "loader": "svg-url-loader", + "options": { + "encoding": "none", + "limit": 10000 + } + } + }, + { + "test": {}, + "issuer": {}, + "use": { + "loader": "raw-loader" + } + }, + { + "test": {}, + "type": "javascript/auto" + }, + { + "test": {}, + "resolve": { + "fullySpecified": false + } + }, + { + "test": {}, + "resolve": { + "fullySpecified": false + } + }, + { + "test": {}, + "use": "file-loader" + } + ] + }, + "resolve": { + "alias": { + "@phosphor/algorithm$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/algorithm/dist/index.js", + "@phosphor/application$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/application/dist/index.js", + "@phosphor/commands$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/commands/dist/index.js", + "@phosphor/coreutils$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/coreutils/dist/index.node.js", + "@phosphor/disposable$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/disposable/dist/index.js", + "@phosphor/domutils$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/domutils/dist/index.js", + "@phosphor/dragdrop$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/dragdrop/dist/index.js", + "@phosphor/dragdrop/style": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/widgets/style", + "@phosphor/messaging$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/messaging/dist/index.js", + "@phosphor/properties$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/properties/dist/index.js", + "@phosphor/signaling": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/signaling/dist/index.js", + "@phosphor/widgets/style": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/widgets/style", + "@phosphor/virtualdom$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/virtualdom/dist/index.js", + "@phosphor/widgets$": "/home2/longxin/neural_compressor_ext_lab/node_modules/@lumino/widgets/dist/index.js" + }, + "fallback": { + "url": false, + "buffer": false, + "crypto": false, + "path": "/home2/longxin/neural_compressor_ext_lab/node_modules/path-browserify/index.js", + "process": "/home2/longxin/neural_compressor_ext_lab/node_modules/process/browser.js" + } + }, + "watchOptions": { + "poll": 500, + "aggregateTimeout": 1000 + }, + "output": { + "hashFunction": "sha256", + "filename": "[name].[contenthash].js", + "path": "/home2/longxin/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static", + "publicPath": "auto" + }, + "plugins": [ + { + "definitions": { + "process": "process/browser" + } + }, + { + "_options": { + "name": "neural_compressor_ext_lab", + "library": { + "type": "var", + "name": [ + "_JUPYTERLAB", + "neural_compressor_ext_lab" + ] + }, + "filename": "remoteEntry.[contenthash].js", + "exposes": { + "./index": "/home2/longxin/neural_compressor_ext_lab/lib/index.js", + "./extension": "/home2/longxin/neural_compressor_ext_lab/lib/index.js", + "./style": "/home2/longxin/neural_compressor_ext_lab/style/index.js" + }, + "shared": { + "@jupyterlab/application": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/application-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/apputils-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/cell-toolbar-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/celltags-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/codemirror-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/completer-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/console-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/coreutils": { + "requiredVersion": "^5.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/csvviewer-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/debugger-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/docmanager-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/docprovider-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/documentsearch-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/extensionmanager-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/filebrowser-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/fileeditor-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/help-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/htmlviewer-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/hub-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/imageviewer-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/inspector-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/javascript-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/json-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/launcher-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/logconsole-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/mainmenu-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/markdownviewer-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/mathjax2-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/notebook-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/pdf-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/rendermime-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/running-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/settingeditor-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/shortcuts-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/statusbar-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/terminal-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/theme-dark-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/theme-light-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/toc-extension": { + "requiredVersion": "^5.4.5", + "import": false + }, + "@jupyterlab/tooltip-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/translation-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/ui-components-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/vdom-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/vega5-extension": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/apputils": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/attachments": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/cell-toolbar": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/cells": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/celltags": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/codeeditor": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/codemirror": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/completer": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/console": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/csvviewer": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/debugger": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/docmanager": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/docprovider": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/docregistry": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/documentsearch": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/extensionmanager": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/filebrowser": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/fileeditor": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/htmlviewer": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/imageviewer": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/inspector": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/launcher": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/logconsole": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/mainmenu": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/markdownviewer": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/mathjax2": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/metapackage": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/nbconvert-css": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/nbformat": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/notebook": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/observables": { + "requiredVersion": "^4.4.5", + "import": false + }, + "@jupyterlab/outputarea": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/property-inspector": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/rendermime": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/rendermime-interfaces": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/running": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@jupyterlab/services": { + "requiredVersion": "^6.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/settingeditor": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/settingregistry": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/shared-models": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/statedb": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/statusbar": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/terminal": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/toc": { + "requiredVersion": "^5.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/tooltip": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/translation": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/ui-components": { + "requiredVersion": "^3.4.5", + "import": false, + "singleton": true + }, + "@jupyterlab/vdom": { + "requiredVersion": "^3.4.5", + "import": false + }, + "@lumino/algorithm": { + "requiredVersion": "^1.9.0", + "import": false, + "singleton": true + }, + "@lumino/application": { + "requiredVersion": "^1.27.0", + "import": false, + "singleton": true + }, + "@lumino/commands": { + "requiredVersion": "^1.19.0", + "import": false, + "singleton": true + }, + "@lumino/coreutils": { + "requiredVersion": "^1.11.0", + "import": false, + "singleton": true + }, + "@lumino/disposable": { + "requiredVersion": "^1.10.0", + "import": false, + "singleton": true + }, + "@lumino/domutils": { + "requiredVersion": "^1.8.0", + "import": false, + "singleton": true + }, + "@lumino/dragdrop": { + "requiredVersion": "^1.13.0", + "import": false, + "singleton": true + }, + "@lumino/messaging": { + "requiredVersion": "^1.10.0", + "import": false, + "singleton": true + }, + "@lumino/properties": { + "requiredVersion": "^1.8.0", + "import": false, + "singleton": true + }, + "@lumino/signaling": { + "requiredVersion": "^1.10.0", + "import": false, + "singleton": true + }, + "@lumino/virtualdom": { + "requiredVersion": "^1.14.0", + "import": false, + "singleton": true + }, + "@lumino/widgets": { + "requiredVersion": "^1.33.0", + "import": false, + "singleton": true + }, + "react": { + "requiredVersion": "^17.0.1", + "import": false, + "singleton": true + }, + "react-dom": { + "requiredVersion": "^17.0.1", + "import": false, + "singleton": true + }, + "yjs": { + "requiredVersion": "^13.5.17", + "import": false, + "singleton": true + }, + "@phosphor/commands": {}, + "@types/lerna__child-process": {}, + "@types/shelljs": {}, + "assert": {}, + "browserify-fs": {}, + "brython": {}, + "buffer": {}, + "child_process": {}, + "constants": {}, + "fs": {}, + "react-sanitized-html": {}, + "shelljs": {}, + "stream": {}, + "util": {}, + "neural_compressor_ext_lab": { + "version": "0.1.0", + "singleton": true, + "import": "/home2/longxin/neural_compressor_ext_lab/lib/index.js" + } + } + } + }, + {} + ], + "mode": "development", + "devtool": "source-map", + "entry": {} + } +] \ No newline at end of file diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/package.json b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/package.json new file mode 100644 index 00000000000..bbaf67c0b6f --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/package.json @@ -0,0 +1,131 @@ +{ + "name": "neural_compressor_ext_lab", + "version": "0.1.0", + "description": "A JupyterLab extension.", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab-extension" + ], + "homepage": "https://github.com/Ymirsss/neural_compressor_ext_lab", + "bugs": { + "url": "https://github.com/Ymirsss/neural_compressor_ext_lab/issues" + }, + "license": "BSD-3-Clause", + "author": { + "name": "neural_coder", + "email": "rya.ashs@gmail.com" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "repository": { + "type": "git", + "url": "https://github.com/Ymirsss/neural_compressor_ext_lab.git" + }, + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:prod": "jlpm clean && jlpm build:lib && jlpm build:labextension", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc", + "clean": "jlpm clean:lib", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "clean:lintcache": "rimraf .eslintcache .stylelintcache", + "clean:labextension": "rimraf neural_compressor_ext_lab/labextension", + "clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache", + "eslint": "jlpm eslint:check --fix", + "eslint:check": "eslint . --cache --ext .ts,.tsx", + "install:extension": "jlpm build", + "lint": "jlpm stylelint && jlpm prettier && jlpm eslint", + "lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check", + "prettier": "jlpm prettier:base --write --list-different", + "prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"", + "prettier:check": "jlpm prettier:base --check", + "stylelint": "jlpm stylelint:check --fix", + "stylelint:check": "stylelint --cache \"style/**/*.css\"", + "watch": "run-p watch:src watch:labextension", + "watch:src": "tsc -w", + "watch:labextension": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyterlab/application": "^3.1.0", + "@jupyterlab/cells": "^3.4.6", + "@jupyterlab/fileeditor": "^3.4.6", + "@jupyterlab/mainmenu": "^3.4.6", + "@jupyterlab/notebook": "^3.4.6", + "@phosphor/commands": "^1.7.2", + "@types/lerna__child-process": "^5.1.0", + "@types/shelljs": "^0.8.11", + "assert": "^2.0.0", + "browserify-fs": "^1.0.0", + "brython": "^3.10.6", + "buffer": "^6.0.3", + "child_process": "^1.0.2", + "constants": "^0.0.2", + "fs": "^0.0.1-security", + "react": "^16.14.0", + "react-sanitized-html": "^2.0.0", + "shelljs": "^0.8.5", + "stream": "^0.0.2", + "util": "^0.12.4" + }, + "devDependencies": { + "@jupyterlab/builder": "^3.1.0", + "@types/fs-extra": "^9.0.13", + "@types/node": "^18.7.15", + "@typescript-eslint/eslint-plugin": "^4.8.1", + "@typescript-eslint/parser": "^4.8.1", + "eslint": "^7.14.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-prettier": "^3.1.4", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "rimraf": "^3.0.2", + "stylelint": "^14.3.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-recommended": "^6.0.0", + "stylelint-config-standard": "~24.0.0", + "stylelint-prettier": "^2.0.0", + "typescript": "~4.1.3" + }, + "sideEffects": [ + "style/*.css", + "style/index.js" + ], + "styleModule": "style/index.js", + "publishConfig": { + "access": "public" + }, + "jupyterlab": { + "extension": true, + "outputDir": "neural_compressor_ext_lab/labextension", + "_build": { + "load": "static/remoteEntry.6eba177d6998a43bce65.js", + "extension": "./extension", + "style": "./style" + } + }, + "browser": { + "child_process": false, + "lerna__child_process": false, + "fs": false, + "path": false, + "os": false + }, + "jupyter-releaser": { + "hooks": { + "before-build-npm": [ + "python -m pip install jupyterlab~=3.1", + "jlpm" + ], + "before-build-python": [ + "jlpm clean:all" + ] + } + } +} diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/lib_index_js.f3ace973ac83174a6db0.js b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/lib_index_js.f3ace973ac83174a6db0.js new file mode 100644 index 00000000000..9d2bde3a125 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/lib_index_js.f3ace973ac83174a6db0.js @@ -0,0 +1,704 @@ +"use strict"; +(self["webpackChunkneural_compressor_ext_lab"] = self["webpackChunkneural_compressor_ext_lab"] || []).push([["lib_index_js"],{ + +/***/ "./lib/constants.js": +/*!**************************!*\ + !*** ./lib/constants.js ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Constants": () => (/* binding */ Constants) +/* harmony export */ }); +var Constants; +(function (Constants) { + Constants.SHORT_PLUGIN_NAME = 'neural_compressor_ext_lab'; + Constants.WORK_PATH = "lab_workspace/"; + Constants.ICON_FORMAT_ALL_SVG = ''; + Constants.ICON_RUN = ''; + Constants.SVG = ''; + Constants.LONG_PLUGIN_NAME = `@rya/${Constants.SHORT_PLUGIN_NAME}`; + Constants.SETTINGS_SECTION = `${Constants.LONG_PLUGIN_NAME}:settings`; + Constants.COMMAND_SECTION_NAME = 'Jupyterlab Code Optimizer'; + Constants.PLUGIN_VERSION = '0.1.0'; +})(Constants || (Constants = {})); + + +/***/ }), + +/***/ "./lib/deepcoder.js": +/*!**************************!*\ + !*** ./lib/deepcoder.js ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "JupyterlabNotebookCodeOptimizer": () => (/* binding */ JupyterlabNotebookCodeOptimizer) +/* harmony export */ }); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./lib/utils.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./lib/constants.js"); + + +class JupyterlabCodeOptimizer { + constructor(panel) { + this.working = false; + this.panel = panel; + this.tmp_path = _constants__WEBPACK_IMPORTED_MODULE_0__.Constants.WORK_PATH + "tmp.py"; + this.rand = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].GetRandomNum(0, 200); + this.log_path = _constants__WEBPACK_IMPORTED_MODULE_0__.Constants.WORK_PATH + "NeuralCoder" + this.rand + ".log"; + this.tmp_log_path = _constants__WEBPACK_IMPORTED_MODULE_0__.Constants.WORK_PATH + "NeuralCoder_tmp" + ".log"; + this.cells = []; + } + async optimizeCode(code, formatter, name, next, options, notebook, panel, cell, run) { + let codes = []; + code.forEach(function (value) { + value = value.replace(/('\\n')/g, '^^^'); + value = value.replace(/\\n"/g, '###'); + value = value.replace(/\\n'/g, '###'); + value = value.replace(/"\\n/g, '@@'); + value = value.replace(/'\\n/g, '@@'); + value = value.replace(/\n/g, '\\n'); + value = value.replace(/"/g, '+++'); + value = value.replace(/,/g, '$'); + codes.push(value); + }); + let gen_code = `code = "${codes}"\ncodes = code.split(',')\nwith open( '${this.tmp_path}', 'w+' ) as f:\n for i in range(0,len(codes)):\n f.write('# this is the beginning of a single code snippet\\n')\n code_list = codes[i].replace('$',',').replace('+++','\"').split('\\n')\n for line in code_list:\n if('split(^^^)' in line):\n line=line.replace('split(^^^)', 'split(\\'\\\\n\\')')\n if('###' in line):\n line=line.replace('###', '\\\\n\"')\n if('@@' in line):\n line=line.replace('@@', '\"\\\\n')\n f.write(line+'\\n')`; + const expr = { code_list: `code_list` }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, gen_code, expr, false); + if (options === 'normal') { + let runcode = `from neural_coder import enable\nenable(code="${this.tmp_path}",features=["${formatter}"], overwrite=True)`; + let expr = { sum: ` ` }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, runcode, expr, false); + let run_code1 = `with open("${this.tmp_path}", 'r') as f:\n optimized_code = f.read()\n`; + let expr1 = { optimizedCode: "optimized_code" }; + let result2 = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, run_code1, expr1, false); + result2.then(value => { + var _a, _b, _c, _d; + let optimizedTexts = Object.values(value.optimizedCode.data)[0]; + let optimizeCodes = optimizedTexts.split('# this is the beginning of a single code snippet\\n').slice(1); + optimizeCodes[optimizeCodes.length - 1] = optimizeCodes[optimizeCodes.length - 1].slice(0, -3); + for (let i = 0; i < optimizeCodes.length; ++i) { + const cell = this.cells[i]; + const currentTexts = this.cells.map(cell => cell.model.value.text); + const currentText = currentTexts[i]; + let optimizedtext = optimizeCodes[i]; + optimizedtext = optimizedtext.replace(/\\'\\\\n\\'/g, "^^^"); + optimizedtext = optimizedtext.replace(/\\\\n"/g, "+++"); + optimizedtext = optimizedtext.replace(/\\\\n'/g, "+++"); + optimizedtext = optimizedtext.replace(/"\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/'\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/\\n/g, '\n'); + optimizedtext = optimizedtext.replace(/\\'/g, "'"); + optimizedtext = optimizedtext.replace(/\^\^\^/g, "'\\n'"); + optimizedtext = optimizedtext.replace(/\+\+\+/g, "\\n\""); + optimizedtext = optimizedtext.replace(/\@\@\@/g, "\"\\n"); + if (cell.model.value.text === currentText) { + cell.model.value.text = optimizedtext; + } + const run_svg = document.createElement("svg"); + run_svg.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_0__.Constants.ICON_RUN; + (_d = (_c = (_b = (_a = run === null || run === void 0 ? void 0 : run.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(run_svg); + } + }); + } + else { + if (formatter === '') { + cell.outputArea.node.innerText += "[NeuralCoder INFO] Enabling and Benchmarking for The Original Model ......\n"; + let runcode1 = `with open("${this.log_path}", 'a' ) as f:\n f.write("[NeuralCoder INFO] Enabling and Benchmarking for The Original Model ......\\n")`; + let expr1 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, runcode1, expr1, false); + let runcode = `from neural_coder import enable\nperfomance, mode, path = enable(code="${this.tmp_path}",features=[], run_bench=True, args="${options}")\nwith open(path + '/bench.log', 'r') as f:\n logs = f.readlines()\nlog_line = logs[4]\nlog = log_line.split("[")[1].split("]")[0]`; + let expr = { path: "path", log: "log" }; + let result = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, runcode, expr, false); + let fps; + result.then(value => { + fps = Object.values(value.log.data)[0]; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Result (Performance) of The Original Model is ${fps} (FPS)\n`; + let text = `[NeuralCoder INFO] Benchmark Result (Performance) of The Original Model is ${fps} (FPS)\\n`; + let runcode = `with open("${this.log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode, expr, false); + cell.outputArea.node.innerText += `[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\n`; + let runcode1 = `with open("${this.log_path}", 'a' ) as f:\n f.write("[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\n")`; + let expr1 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, runcode1, expr1, false); + let runcode2 = `with open("${this.tmp_log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr2 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + }); + } + else { + let runcode = `from neural_coder import enable\nperfomance, mode, path = enable(code="${this.tmp_path}", features=["${formatter}"], run_bench=True, args="${options}")\nwith open(path + '/bench.log', 'r') as f:\n logs = f.readlines()\nlog_line = logs[4]\nlog = log_line.split("[")[1].split("]")[0]`; + let expr = { path: "path", log: "log" }; + let result = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(panel, runcode, expr, false); + let fps; + result.then(value => { + fps = Object.values(value.log.data)[0]; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Result (Performance) of ${name} is ${fps} (FPS)\n`; + let text = `[NeuralCoder INFO] Benchmark Result (Performance) of ${name} is ${fps} (FPS)\\n`; + let runcode = `with open("${this.log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode, expr, false); + if (next !== '') { + cell.outputArea.node.innerText += `[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\n`; + let runcode2 = `with open("${this.log_path}", 'a' ) as f:\n f.write("[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\n")`; + let expr2 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + } + let runcode2 = `with open("${this.tmp_log_path}", 'a' ) as f:\n f.write("${text}")`; + let expr2 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + if (formatter === 'pytorch_inc_bf16') { + let read_log = `import re\nwith open("${this.tmp_log_path}", 'r') as f:\n logs = f.readlines()\n fps_list=[]\n for log_line in logs[-4:-1]:\n pat = r\'\\d+\\.?\\d+'\n fps = re.search(pat,log_line).group()\n fps_list.append(float(fps))\nmaxi = max(fps_list)\nindex = fps_list.index(maxi)\nboost = round(maxi/fps_list[0],1)\nfeatures=['','pytorch_inc_static_quant_fx','pytorch_inc_dynamic_quant','pytorch_inc_bf16']\nfeature_name=['','INC Enable INT8 (Static)','INC Enable INT8 (Dynamic)','INC Enable BF16']\nbest_feature = features[index]\nbest_name = feature_name[index]\nfeature_l = []\nfeature_l.append(best_feature)\nfrom neural_coder import enable\nenable(code="${this.tmp_path}",features=feature_l, overwrite=True)\nwith open("${this.tmp_path}", 'r') as f:\n optimized_code = f.read()\n`; + let read_expr = { boost: "boost", best_feature: "best_feature", best_name: "best_name", optimizeCode: "optimized_code", feature_l: "feature_l" }; + let read_result = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, read_log, read_expr, false); + read_result.then(value => { + var _a, _b, _c, _d; + let boost = Object.values(value.boost.data)[0]; + let best_name = Object.values(value.best_name.data)[0]; + let optimizedTexts = Object.values(value.optimizeCode.data)[0]; + let optimizeCodes = optimizedTexts.split('# this is the beginning of a single code snippet\\n').slice(1); + cell.outputArea.node.innerText += `[NeuralCoder INFO] The Best Intel Optimization: ${best_name}\n`; + cell.outputArea.node.innerText += `[NeuralCoder INFO] You can get up to ${boost}X performance boost.\n`; + optimizeCodes[optimizeCodes.length - 1] = optimizeCodes[optimizeCodes.length - 1].slice(0, -3); + for (let i = 0; i < optimizeCodes.length; ++i) { + const cell = this.cells[i]; + const currentTexts = this.cells.map(cell => cell.model.value.text); + const currentText = currentTexts[i]; + let optimizedtext = optimizeCodes[i]; + optimizedtext = optimizedtext.replace(/\\'\\\\n\\'/g, "^^^"); + optimizedtext = optimizedtext.replace(/\\\\n"/g, "+++"); + optimizedtext = optimizedtext.replace(/\\\\n'/g, "+++"); + optimizedtext = optimizedtext.replace(/"\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/'\\\\n/g, "@@@"); + optimizedtext = optimizedtext.replace(/\\n/g, '\n'); + optimizedtext = optimizedtext.replace(/\\'/g, "'"); + optimizedtext = optimizedtext.replace(/\^\^\^/g, "'\\n'"); + optimizedtext = optimizedtext.replace(/\+\+\+/g, "\\n\""); + optimizedtext = optimizedtext.replace(/\@\@\@/g, "\"\\n"); + if (cell.model.value.text === currentText) { + cell.model.value.text = optimizedtext; + } + } + let command = "lscpu | grep 'Model name'"; + let get_hardware = `import subprocess\nsubp = subprocess.Popen("${command}",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8")\nsubp.wait(2)\nhardware = subp.communicate()[0].replace("Model name:","").strip()`; + let expr_hardware = { hardware: "hardware" }; + let hard_res = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, get_hardware, expr_hardware, false); + hard_res.then(value => { + let hard = Object.values(value.hardware.data)[0]; + cell.outputArea.node.innerText += `[NeuralCoder INFO] HardWare: ${hard}\n`; + }); + cell.outputArea.node.innerText += `[NeuralCoder INFO] The log was saved to lab_workspace\\NeuralCoder${this.rand}.log\n`; + const run_svg = document.createElement("svg"); + run_svg.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_0__.Constants.ICON_RUN; + (_d = (_c = (_b = (_a = run === null || run === void 0 ? void 0 : run.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(run_svg); + }); + } + }); + } + } + } +} +class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer { + constructor(notebookTracker, panel) { + super(panel); + this.notebookTracker = notebookTracker; + this.notebookname = ''; + } + async optimizeAction(config, formatter) { + return this.optimizeCells(true, config, formatter); + } + async optimizeAllCodeCells(config, formatter, notebook, run) { + return this.optimizeCells(false, config, formatter, notebook, run); + } + getCodeCells(selectedOnly = true, notebook) { + if (!this.notebookTracker.currentWidget) { + return []; + } + const codeCells = []; + notebook = notebook || this.notebookTracker.currentWidget.content; + this.notebookname = notebook.title.label; + notebook.widgets.forEach((cell) => { + if (cell.model.type === 'code') { + codeCells.push(cell); + } + }); + this.cells = codeCells; + return codeCells; + } + async optimizeCells(selectedOnly, config, formatter, notebook, run) { + if (this.working) { + return new Promise((resolve, reject) => { + resolve("false!"); + }); + } + this.working = true; + const selectedCells = this.getCodeCells(selectedOnly, notebook); + let cell = selectedCells[selectedCells.length - 1]; + if (selectedCells.length === 0) { + this.working = false; + return new Promise((resolve, reject) => { + resolve("false!"); + }); + } + const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu'; + const currentTexts = selectedCells.map(cell => cell.model.value.text); + if (optimize_type === 'auto-quant') { + cell.outputArea.node.innerText = `[NeuralCoder INFO] Auto-Quant Started ......\n`; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Code: User code from Jupyter Lab notebook "${this.notebookname}"\n`; + cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Mode: Throughput\n`; + let runcode = `with open('${this.log_path}', 'a' ) as f:\n f.write("[NeuralCoder INFO] Auto-Quant Started ......\\n")`; + let expr = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode, expr, false); + let runcode2 = `with open('${this.log_path}', 'a' ) as f:\n f.write("[NeuralCoder INFO] Code: User code from Jupyter Lab notebook '${this.notebookname}'\\n")`; + let expr2 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false); + let runcode3 = `with open('${this.log_path}', 'a' ) as f:\n f.write("[NeuralCoder INFO] Benchmark Mode: Throughput\\n")`; + let expr3 = { path: "" }; + _utils__WEBPACK_IMPORTED_MODULE_1__["default"].sendKernelRequestFromNotebook(this.panel, runcode3, expr3, false); + cell.outputArea.node.setAttribute("class", "pad"); + await this.optimizeCode(currentTexts, '', 'The Original Model', 'INC Enable INT8 (Static)', config, true, this.panel, cell, run); + await this.optimizeCode(currentTexts, 'pytorch_inc_static_quant_fx', 'INC Enable INT8 (Static)', 'INC Enable INT8 (Dynamic)', config, true, this.panel, cell, run); + await this.optimizeCode(currentTexts, 'pytorch_inc_dynamic_quant', 'INC Enable INT8 (Dynamic)', 'INC Enable BF16', config, true, this.panel, cell, run); + await this.optimizeCode(currentTexts, 'pytorch_inc_bf16', 'INC Enable BF16', '', config, true, this.panel, cell, run); + } + else { + await this.optimizeCode(currentTexts, optimize_type, "", "", "normal", true, this.panel, cell, run); + } + return new Promise((resolve, reject) => { + resolve("success!"); + }); + } + applicable(formatter, currentWidget) { + const currentNotebookWidget = this.notebookTracker.currentWidget; + return currentNotebookWidget && currentWidget === currentNotebookWidget; + } +} + + +/***/ }), + +/***/ "./lib/index.js": +/*!**********************!*\ + !*** ./lib/index.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/notebook */ "webpack/sharing/consume/default/@jupyterlab/notebook"); +/* harmony import */ var _jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils"); +/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/settingregistry */ "webpack/sharing/consume/default/@jupyterlab/settingregistry"); +/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/mainmenu */ "webpack/sharing/consume/default/@jupyterlab/mainmenu"); +/* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @jupyterlab/ui-components */ "webpack/sharing/consume/default/@jupyterlab/ui-components"); +/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ "webpack/sharing/consume/default/@lumino/widgets"); +/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _deepcoder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./deepcoder */ "./lib/deepcoder.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constants */ "./lib/constants.js"); + + + + + + + + +class neural_compressor_ext_lab { + constructor(app, tracker, notebookpanel) { + this.app = app; + this.tracker = tracker; + this.notebookpanel = notebookpanel; + this.setupWidgetExtension(); + this.config = ''; + } + createNew(nb) { + this.notebookpanel = nb; + this.notebookCodeOptimizer = new _deepcoder__WEBPACK_IMPORTED_MODULE_6__.JupyterlabNotebookCodeOptimizer(this.tracker, this.notebookpanel); + const svg = document.createElement("svg"); + svg.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_7__.Constants.ICON_FORMAT_ALL_SVG; + const run_svg = document.createElement("svg"); + run_svg.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_7__.Constants.ICON_RUN; + const div = document.createElement("div"); + div.setAttribute("class", "wrapper"); + const span = document.createElement("span"); + span.setAttribute("class", "f1ozlkqi"); + span.innerHTML = _constants__WEBPACK_IMPORTED_MODULE_7__.Constants.SVG; + const selector = document.createElement("select"); + selector.setAttribute("class", "aselector"); + selector.id = "NeuralCoder"; + const option1 = document.createElement("option"); + option1.value = "pytorch_inc_static_quant_fx"; + option1.innerText = "INC Enable INT8 (Static)"; + option1.selected = true; + const option2 = document.createElement("option"); + option2.value = "pytorch_inc_dynamic_quant"; + option2.innerText = "INC Enable INT8 (Dynamic)"; + const option3 = document.createElement("option"); + option3.value = "pytorch_inc_bf16"; + option3.innerText = "INC Enable BF16"; + const option4 = document.createElement("option"); + option4.value = "auto-quant"; + option4.innerText = "INC Auto Enable & Benchmark"; + selector.options.add(option1); + selector.options.add(option2); + selector.options.add(option3); + selector.options.add(option4); + div.appendChild(selector); + div.appendChild(span); + const selector_widget = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget(); + selector_widget.node.appendChild(div); + selector_widget.addClass("aselector"); + let notebookCodeOptimizer = this.notebookCodeOptimizer; + let config = this.config; + const dia_input = document.createElement("input"); + const dia_widget = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget(); + dia_widget.node.appendChild(dia_input); + dia_widget.addClass("dialog"); + const run_button = new _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton({ + tooltip: 'NeuralCoder', + icon: new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_4__.LabIcon({ + name: "run", + svgstr: _constants__WEBPACK_IMPORTED_MODULE_7__.Constants.ICON_RUN + }), + onClick: async function () { + var _a, _b, _c, _d; + (_d = (_c = (_b = (_a = run_button.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(svg); + if (selector.options[selector.selectedIndex].value === 'auto-quant') { + await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.showDialog)({ + title: 'Please input execute parameters:', + body: dia_widget, + buttons: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: 'Confirm' })] + }).then(result => { + if (result.button.accept) { + config = dia_input.value; + } + }); + } + await notebookCodeOptimizer.optimizeAllCodeCells(config, selector.options[selector.selectedIndex].value, undefined, run_button); + } + }); + nb.toolbar.insertItem(11, "nc", run_button); + nb.toolbar.insertItem(12, "selector", selector_widget); + } + setupWidgetExtension() { + this.app.docRegistry.addWidgetExtension('Notebook', this); + } +} +/** + * Initialization data for the neural_compressor_ext_lab extension. + */ +const plugin = { + id: 'neural_compressor_ext_lab:plugin', + autoStart: true, + requires: [_jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_0__.INotebookTracker, _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_3__.IMainMenu], + optional: [_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_2__.ISettingRegistry], + activate: (app, tracker, notebookpanel) => { + new neural_compressor_ext_lab(app, tracker, notebookpanel); + console.log('JupyterLab extension neural_compressor_ext_lab is activated!'); + } +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin); + + +/***/ }), + +/***/ "./lib/utils.js": +/*!**********************!*\ + !*** ./lib/utils.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ NotebookUtilities) +/* harmony export */ }); +/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils"); +/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react_sanitized_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-sanitized-html */ "webpack/sharing/consume/default/react-sanitized-html/react-sanitized-html"); +/* harmony import */ var react_sanitized_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_sanitized_html__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); +/* + * Copyright 2019-2020 The Kale Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// @ts-ignore + + +class NotebookUtilities { + /** + * generate random number + * @Min + * @Max + */ + static GetRandomNum(Min, Max) { + let Range; + Range = Max - Min; + var Rand = Math.random(); + return (Min + Math.round(Rand * Range)); + } + /** + * Builds an HTML container by sanitizing a list of strings and converting + * them in valid HTML + * @param msg A list of string with HTML formatting + * @returns a HTMLDivElement composed of a list of spans with formatted text + */ + static buildDialogBody(msg) { + return (react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", null, msg.map((s, i) => { + return (react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, { key: `msg-${i}` }, + react__WEBPACK_IMPORTED_MODULE_2__.createElement((react_sanitized_html__WEBPACK_IMPORTED_MODULE_1___default()), { allowedAttributes: { a: ['href'] }, allowedTags: ['b', 'i', 'em', 'strong', 'a', 'pre'], html: s }), + react__WEBPACK_IMPORTED_MODULE_2__.createElement("br", null))); + }))); + } + /** + * Opens a pop-up dialog in JupyterLab to display a simple message. + * @param title The title for the message popup + * @param msg The message as an array of strings + * @param buttonLabel The label to use for the button. Default is 'OK' + * @param buttonClassName The classname to give to the 'ok' button + * @returns Promise - A promise once the message is closed. + */ + static async showMessage(title, msg, buttonLabel = 'Dismiss', buttonClassName = '') { + const buttons = [ + _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Dialog.okButton({ label: buttonLabel, className: buttonClassName }), + ]; + const messageBody = this.buildDialogBody(msg); + await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showDialog)({ title, buttons, body: messageBody }); + } + /** + * Opens a pop-up dialog in JupyterLab to display a yes/no dialog. + * @param title The title for the message popup + * @param msg The message + * @param acceptLabel The label to use for the accept button. Default is 'YES' + * @param rejectLabel The label to use for the reject button. Default is 'NO' + * @param yesButtonClassName The classname to give to the accept button. + * @param noButtonClassName The classname to give to the cancel button. + * @returns Promise - A promise once the message is closed. + */ + static async showYesNoDialog(title, msg, acceptLabel = 'YES', rejectLabel = 'NO', yesButtonClassName = '', noButtonClassName = '') { + const buttons = [ + _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Dialog.okButton({ label: acceptLabel, className: yesButtonClassName }), + _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.Dialog.cancelButton({ label: rejectLabel, className: noButtonClassName }), + ]; + const messageBody = this.buildDialogBody(msg); + const result = await (0,_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.showDialog)({ title, buttons, body: messageBody }); + return result.button.label === acceptLabel; + } + /** + * Opens a pop-up dialog in JupyterLab with various information and button + * triggering reloading the page. + * @param title The title for the message popup + * @param msg The message + * @param buttonLabel The label to use for the button. Default is 'Refresh' + * @param buttonClassName The classname to give to the 'refresh' button. + * @returns Promise - A promise once the message is closed. + */ + static async showRefreshDialog(title, msg, buttonLabel = 'Refresh', buttonClassName = '') { + await this.showMessage(title, msg, buttonLabel, buttonClassName); + location.reload(); + } + /** + * @description Creates a new JupyterLab notebook for use by the application + * @param command The command registry + * @returns Promise - A promise containing the notebook panel object that was created (if successful). + */ + static async createNewNotebook(command) { + const notebook = await command.execute('notebook:create-new', { + activate: true, + path: '', + preferredLanguage: '', + }); + await notebook.session.ready; + return notebook; + } + /** + * Safely saves the Jupyter notebook document contents to disk + * @param notebookPanel The notebook panel containing the notebook to save + */ + static async saveNotebook(notebookPanel) { + if (notebookPanel) { + await notebookPanel.context.ready; + notebookPanel.context.save(); + return true; + } + return false; + } + /** + * Convert the notebook contents to JSON + * @param notebookPanel The notebook panel containing the notebook to serialize + */ + static notebookToJSON(notebookPanel) { + if (notebookPanel.content.model) { + return notebookPanel.content.model.toJSON(); + } + return null; + } + /** + * @description Gets the value of a key from specified notebook's metadata. + * @param notebookPanel The notebook to get meta data from. + * @param key The key of the value. + * @returns any -The value of the metadata. Returns null if the key doesn't exist. + */ + static getMetaData(notebookPanel, key) { + if (!notebookPanel) { + throw new Error('The notebook is null or undefined. No meta data available.'); + } + if (notebookPanel.model && notebookPanel.model.metadata.has(key)) { + return notebookPanel.model.metadata.get(key); + } + return null; + } + /** + * @description Sets the key value pair in the notebook's metadata. + * If the key doesn't exists it will add one. + * @param notebookPanel The notebook to set meta data in. + * @param key The key of the value to create. + * @param value The value to set. + * @param save Default is false. Whether the notebook should be saved after the meta data is set. + * Note: This function will not wait for the save to complete, it only sends a save request. + * @returns The old value for the key, or undefined if it did not exist. + */ + static setMetaData(notebookPanel, key, value, save = false) { + var _a; + if (!notebookPanel) { + throw new Error('The notebook is null or undefined. No meta data available.'); + } + const oldVal = (_a = notebookPanel.model) === null || _a === void 0 ? void 0 : _a.metadata.set(key, value); + if (save) { + this.saveNotebook(notebookPanel); + } + return oldVal; + } + // /** + // * Get a new Kernel, not tied to a Notebook + // * Source code here: https://github.com/jupyterlab/jupyterlab/tree/473348d25bcb258ca2f0c127dd8fb5b193217135/packages/services + // */ + // public static async createNewKernel() { + // // Get info about the available kernels and start a new one. + // let options: Kernel.IOptions = await Kernel.getSpecs().then(kernelSpecs => { + // // console.log('Default spec:', kernelSpecs.default); + // // console.log('Available specs', Object.keys(kernelSpecs.kernelspecs)); + // // use the default name + // return { name: kernelSpecs.default }; + // }); + // return await Kernel.startNew(options).then(_kernel => { + // return _kernel; + // }); + // } + // // TODO: We can use this context manager to execute commands inside a new kernel + // // and be sure that it will be disposed of at the end. + // // Another approach could be to create a kale_rpc Kernel, as a singleton, + // // created at startup. The only (possible) drawback is that we can not name + // // a kernel instance with a custom id/name, so when refreshing JupyterLab we would + // // not recognize the kernel. A solution could be to have a kernel spec dedicated to kale rpc calls. + // public static async executeWithNewKernel(action: Function, args: any[] = []) { + // // create brand new kernel + // const _k = await this.createNewKernel(); + // // execute action inside kernel + // const res = await action(_k, ...args); + // // close kernel + // _k.shutdown(); + // // return result + // return res; + // } + /** + * @description This function runs code directly in the notebook's kernel and then evaluates the + * result and returns it as a promise. + * @param kernel The kernel to run the code in. + * @param runCode The code to run in the kernel. + * @param userExpressions The expressions used to capture the desired info from the executed code. + * @param runSilent Default is false. If true, kernel will execute as quietly as possible. + * store_history will be set to false, and no broadcast on IOPUB channel will be made. + * @param storeHistory Default is false. If true, the code executed will be stored in the kernel's history + * and the counter which is shown in the cells will be incremented to reflect code was run. + * @param allowStdIn Default is false. If true, code running in kernel can prompt user for input using + * an input_request message. + * @param stopOnError Default is false. If True, does not abort the execution queue, if an exception is encountered. + * This allows the queued execution of multiple execute_requests, even if they generate exceptions. + * @returns Promise - A promise containing the execution results of the code as an object with + * keys based on the user_expressions. + * @example + * //The code + * const code = "a=123\nb=456\nsum=a+b"; + * //The user expressions + * const expr = {sum: "sum",prod: "a*b",args:"[a,b,sum]"}; + * //Async function call (returns a promise) + * sendKernelRequest(notebookPanel, code, expr,false); + * //Result when promise resolves: + * { + * sum:{status:"ok",data:{"text/plain":"579"},metadata:{}}, + * prod:{status:"ok",data:{"text/plain":"56088"},metadata:{}}, + * args:{status:"ok",data:{"text/plain":"[123, 456, 579]"}} + * } + * @see For more information on JupyterLab messages: + * https://jupyter-client.readthedocs.io/en/latest/messaging.html#execution-results + */ + static async sendKernelRequest(kernel, runCode, userExpressions, runSilent = false, storeHistory = false, allowStdIn = false, stopOnError = false) { + if (!kernel) { + throw new Error('Kernel is null or undefined.'); + } + // Wait for kernel to be ready before sending request + // await kernel.status; + const message = await kernel.requestExecute({ + allow_stdin: allowStdIn, + code: runCode, + silent: runSilent, + stop_on_error: stopOnError, + store_history: storeHistory, + user_expressions: userExpressions, + }).done; + const content = message.content; + if (content.status !== 'ok') { + // If response is not 'ok', throw contents as error, log code + const msg = `Code caused an error:\n${runCode}`; + console.error(msg); + if (content.traceback) { + content.traceback.forEach((line) => console.log(line.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, ''))); + } + throw content; + } + // Return user_expressions of the content + return content.user_expressions; + } + /** + * Same as method sendKernelRequest but passing + * a NotebookPanel instead of a Kernel + */ + static async sendKernelRequestFromNotebook(notebookPanel, runCode, userExpressions, runSilent = false, storeHistory = false, allowStdIn = false, stopOnError = false) { + var _a, _b, _c, _d; + if (!notebookPanel) { + throw new Error('Notebook is null or undefined.'); + } + // Wait for notebook panel to be ready + await notebookPanel.activate; + await ((_a = notebookPanel.sessionContext) === null || _a === void 0 ? void 0 : _a.ready); + return this.sendKernelRequest((_d = (_c = notebookPanel.sessionContext) === null || _c === void 0 ? void 0 : _c.session) === null || _d === void 0 ? void 0 : _d.kernel, runCode, userExpressions, runSilent, storeHistory, allowStdIn, stopOnError); + } +} + + +/***/ }) + +}]); +//# sourceMappingURL=lib_index_js.f3ace973ac83174a6db0.js.map \ No newline at end of file diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/lib_index_js.f3ace973ac83174a6db0.js.map b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/lib_index_js.f3ace973ac83174a6db0.js.map new file mode 100644 index 00000000000..d56538a8b4a --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/lib_index_js.f3ace973ac83174a6db0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lib_index_js.f3ace973ac83174a6db0.js","mappings":";;;;;;;;;;;;;AAAO;AACP;AACA;AACA;AACA,6IAA6I,gCAAgC,gBAAgB,sBAAsB,qVAAqV,mBAAmB,gVAAgV,mBAAmB;AAC95B;AACA;AACA,yCAAyC,4BAA4B;AACrE,oCAAoC,2BAA2B;AAC/D;AACA;AACA,CAAC,8BAA8B;;;;;;;;;;;;;;;;;ACXS;AACA;AACxC;AACA;AACA;AACA;AACA,wBAAwB,2DAAmB;AAC3C,oBAAoB,2DAA8B;AAClD,wBAAwB,2DAAmB;AAC3C,4BAA4B,2DAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC,MAAM,0CAA0C,cAAc;AAChG,uBAAuB;AACvB,QAAQ,4EAA+C;AACvD;AACA,2EAA2E,cAAc,eAAe,UAAU;AAClH,yBAAyB;AACzB,YAAY,4EAA+C;AAC3D,0CAA0C,cAAc;AACxD,0BAA0B;AAC1B,0BAA0B,4EAA+C;AACzE;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAkB;AAC1D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D,8BAA8B;AAC9B,gBAAgB,4EAA+C;AAC/D,wGAAwG,cAAc,uCAAuC,QAAQ;AACrK,6BAA6B;AAC7B,6BAA6B,4EAA+C;AAC5E;AACA;AACA;AACA,oIAAoI,KAAK;AACzI,6GAA6G,KAAK;AAClH,gDAAgD,cAAc,8BAA8B,KAAK;AACjG,iCAAiC;AACjC,oBAAoB,4EAA+C;AACnE,0GAA0G,MAAM;AAChH,iDAAiD,cAAc,mFAAmF,MAAM;AACxJ,kCAAkC;AAClC,oBAAoB,4EAA+C;AACnE,iDAAiD,kBAAkB,kCAAkC,KAAK;AAC1G,kCAAkC;AAClC,oBAAoB,4EAA+C;AACnE,iBAAiB;AACjB;AACA;AACA,wGAAwG,cAAc,gBAAgB,UAAU,4BAA4B,QAAQ;AACpL,6BAA6B;AAC7B,6BAA6B,4EAA+C;AAC5E;AACA;AACA;AACA,8GAA8G,MAAM,KAAK,KAAK;AAC9H,uFAAuF,MAAM,KAAK,KAAK;AACvG,gDAAgD,cAAc,kCAAkC,KAAK;AACrG,iCAAiC;AACjC,oBAAoB,4EAA+C;AACnE;AACA,8GAA8G,MAAM;AACpH,qDAAqD,cAAc,mFAAmF,MAAM;AAC5J,sCAAsC;AACtC,wBAAwB,4EAA+C;AACvE;AACA,iDAAiD,kBAAkB,kCAAkC,KAAK;AAC1G,kCAAkC;AAClC,oBAAoB,4EAA+C;AACnE;AACA,gEAAgE,kBAAkB,goBAAgoB,cAAc,oDAAoD,cAAc;AAClyB,0CAA0C;AAC1C,0CAA0C,4EAA+C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,UAAU;AAC3H,sGAAsG,MAAM;AAC5G;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,QAAQ;AACtG,kDAAkD;AAClD,2CAA2C,4EAA+C;AAC1F;AACA;AACA,kGAAkG,KAAK;AACvG,6BAA6B;AAC7B,mIAAmI,UAAU;AAC7I;AACA,gDAAgD,0DAAkB;AAClE;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+GAA+G,kBAAkB;AACjI;AACA,wCAAwC,cAAc;AACtD,yBAAyB;AACzB,YAAY,4EAA+C;AAC3D,yCAAyC,cAAc,gGAAgG,kBAAkB;AACzK,0BAA0B;AAC1B,YAAY,4EAA+C;AAC3D,yCAAyC,cAAc;AACvD,0BAA0B;AAC1B,YAAY,4EAA+C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5OwD;AACiB;AACV;AACd;AACG;AACX;AACqB;AACtB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAA+B;AACxE;AACA,wBAAwB,qEAA6B;AACrD;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA;AACA;AACA,yBAAyB,qDAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAM;AACrC;AACA;AACA,+BAA+B,+DAAa;AAC5C;AACA,sBAAsB,8DAAO;AAC7B;AACA,wBAAwB,0DAAkB;AAC1C,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,gEAAU;AACpC;AACA;AACA,kCAAkC,iEAAe,GAAG,kBAAkB;AACtE,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAgB,EAAE,2DAAS;AAC1C,eAAe,yEAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;;;;ACtGtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;AAC1D;AACiD;AAClB;AAChB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAmB;AACnC,oBAAoB,gDAAmB,CAAC,2CAAc,IAAI,YAAY,EAAE,GAAG;AAC3E,gBAAgB,gDAAmB,CAAC,6DAAa,IAAI,qBAAqB,aAAa,gEAAgE;AACvJ,gBAAgB,gDAAmB;AACnC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAe,GAAG,gDAAgD;AAC9E;AACA;AACA,cAAc,gEAAU,GAAG,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAe,GAAG,mDAAmD;AACjF,YAAY,qEAAmB,GAAG,kDAAkD;AACpF;AACA;AACA,6BAA6B,gEAAU,GAAG,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa,kBAAkB,mBAAmB,aAAa;AAC/D,cAAc,kBAAkB,qBAAqB,aAAa;AAClE,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA,kGAAkG,YAAY,IAAI,IAAI,MAAM,IAAI;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://neural_compressor_ext_lab/./lib/constants.js","webpack://neural_compressor_ext_lab/./lib/deepcoder.js","webpack://neural_compressor_ext_lab/./lib/index.js","webpack://neural_compressor_ext_lab/./lib/utils.js"],"sourcesContent":["export var Constants;\n(function (Constants) {\n Constants.SHORT_PLUGIN_NAME = 'neural_compressor_ext_lab';\n Constants.WORK_PATH = \"lab_workspace/\";\n Constants.ICON_FORMAT_ALL_SVG = '';\n Constants.ICON_RUN = '';\n Constants.SVG = '';\n Constants.LONG_PLUGIN_NAME = `@rya/${Constants.SHORT_PLUGIN_NAME}`;\n Constants.SETTINGS_SECTION = `${Constants.LONG_PLUGIN_NAME}:settings`;\n Constants.COMMAND_SECTION_NAME = 'Jupyterlab Code Optimizer';\n Constants.PLUGIN_VERSION = '0.1.0';\n})(Constants || (Constants = {}));\n","import NotebookUtilities from \"./utils\";\nimport { Constants } from './constants';\nclass JupyterlabCodeOptimizer {\n constructor(panel) {\n this.working = false;\n this.panel = panel;\n this.tmp_path = Constants.WORK_PATH + \"tmp.py\";\n this.rand = NotebookUtilities.GetRandomNum(0, 200);\n this.log_path = Constants.WORK_PATH + \"NeuralCoder\" + this.rand + \".log\";\n this.tmp_log_path = Constants.WORK_PATH + \"NeuralCoder_tmp\" + \".log\";\n this.cells = [];\n }\n async optimizeCode(code, formatter, name, next, options, notebook, panel, cell, run) {\n let codes = [];\n code.forEach(function (value) {\n value = value.replace(/('\\\\n')/g, '^^^');\n value = value.replace(/\\\\n\"/g, '###');\n value = value.replace(/\\\\n'/g, '###');\n value = value.replace(/\"\\\\n/g, '@@');\n value = value.replace(/'\\\\n/g, '@@');\n value = value.replace(/\\n/g, '\\\\n');\n value = value.replace(/\"/g, '+++');\n value = value.replace(/,/g, '$');\n codes.push(value);\n });\n let gen_code = `code = \"${codes}\"\\ncodes = code.split(',')\\nwith open( '${this.tmp_path}', 'w+' ) as f:\\n for i in range(0,len(codes)):\\n f.write('# this is the beginning of a single code snippet\\\\n')\\n code_list = codes[i].replace('$',',').replace('+++','\\\"').split('\\\\n')\\n for line in code_list:\\n if('split(^^^)' in line):\\n line=line.replace('split(^^^)', 'split(\\\\'\\\\\\\\n\\\\')')\\n if('###' in line):\\n line=line.replace('###', '\\\\\\\\n\\\"')\\n if('@@' in line):\\n line=line.replace('@@', '\\\"\\\\\\\\n')\\n f.write(line+'\\\\n')`;\n const expr = { code_list: `code_list` };\n NotebookUtilities.sendKernelRequestFromNotebook(panel, gen_code, expr, false);\n if (options === 'normal') {\n let runcode = `from neural_coder import enable\\nenable(code=\"${this.tmp_path}\",features=[\"${formatter}\"], overwrite=True)`;\n let expr = { sum: ` ` };\n NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode, expr, false);\n let run_code1 = `with open(\"${this.tmp_path}\", 'r') as f:\\n optimized_code = f.read()\\n`;\n let expr1 = { optimizedCode: \"optimized_code\" };\n let result2 = NotebookUtilities.sendKernelRequestFromNotebook(panel, run_code1, expr1, false);\n result2.then(value => {\n var _a, _b, _c, _d;\n let optimizedTexts = Object.values(value.optimizedCode.data)[0];\n let optimizeCodes = optimizedTexts.split('# this is the beginning of a single code snippet\\\\n').slice(1);\n optimizeCodes[optimizeCodes.length - 1] = optimizeCodes[optimizeCodes.length - 1].slice(0, -3);\n for (let i = 0; i < optimizeCodes.length; ++i) {\n const cell = this.cells[i];\n const currentTexts = this.cells.map(cell => cell.model.value.text);\n const currentText = currentTexts[i];\n let optimizedtext = optimizeCodes[i];\n optimizedtext = optimizedtext.replace(/\\\\'\\\\\\\\n\\\\'/g, \"^^^\");\n optimizedtext = optimizedtext.replace(/\\\\\\\\n\"/g, \"+++\");\n optimizedtext = optimizedtext.replace(/\\\\\\\\n'/g, \"+++\");\n optimizedtext = optimizedtext.replace(/\"\\\\\\\\n/g, \"@@@\");\n optimizedtext = optimizedtext.replace(/'\\\\\\\\n/g, \"@@@\");\n optimizedtext = optimizedtext.replace(/\\\\n/g, '\\n');\n optimizedtext = optimizedtext.replace(/\\\\'/g, \"'\");\n optimizedtext = optimizedtext.replace(/\\^\\^\\^/g, \"'\\\\n'\");\n optimizedtext = optimizedtext.replace(/\\+\\+\\+/g, \"\\\\n\\\"\");\n optimizedtext = optimizedtext.replace(/\\@\\@\\@/g, \"\\\"\\\\n\");\n if (cell.model.value.text === currentText) {\n cell.model.value.text = optimizedtext;\n }\n const run_svg = document.createElement(\"svg\");\n run_svg.innerHTML = Constants.ICON_RUN;\n (_d = (_c = (_b = (_a = run === null || run === void 0 ? void 0 : run.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(run_svg);\n }\n });\n }\n else {\n if (formatter === '') {\n cell.outputArea.node.innerText += \"[NeuralCoder INFO] Enabling and Benchmarking for The Original Model ......\\n\";\n let runcode1 = `with open(\"${this.log_path}\", 'a' ) as f:\\n f.write(\"[NeuralCoder INFO] Enabling and Benchmarking for The Original Model ......\\\\n\")`;\n let expr1 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode1, expr1, false);\n let runcode = `from neural_coder import enable\\nperfomance, mode, path = enable(code=\"${this.tmp_path}\",features=[], run_bench=True, args=\"${options}\")\\nwith open(path + '/bench.log', 'r') as f:\\n logs = f.readlines()\\nlog_line = logs[4]\\nlog = log_line.split(\"[\")[1].split(\"]\")[0]`;\n let expr = { path: \"path\", log: \"log\" };\n let result = NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode, expr, false);\n let fps;\n result.then(value => {\n fps = Object.values(value.log.data)[0];\n cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Result (Performance) of The Original Model is ${fps} (FPS)\\n`;\n let text = `[NeuralCoder INFO] Benchmark Result (Performance) of The Original Model is ${fps} (FPS)\\\\n`;\n let runcode = `with open(\"${this.log_path}\", 'a' ) as f:\\n f.write(\"${text}\")`;\n let expr = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode, expr, false);\n cell.outputArea.node.innerText += `[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\n`;\n let runcode1 = `with open(\"${this.log_path}\", 'a' ) as f:\\n f.write(\"[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\\\n\")`;\n let expr1 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode1, expr1, false);\n let runcode2 = `with open(\"${this.tmp_log_path}\", 'a' ) as f:\\n f.write(\"${text}\")`;\n let expr2 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false);\n });\n }\n else {\n let runcode = `from neural_coder import enable\\nperfomance, mode, path = enable(code=\"${this.tmp_path}\", features=[\"${formatter}\"], run_bench=True, args=\"${options}\")\\nwith open(path + '/bench.log', 'r') as f:\\n logs = f.readlines()\\nlog_line = logs[4]\\nlog = log_line.split(\"[\")[1].split(\"]\")[0]`;\n let expr = { path: \"path\", log: \"log\" };\n let result = NotebookUtilities.sendKernelRequestFromNotebook(panel, runcode, expr, false);\n let fps;\n result.then(value => {\n fps = Object.values(value.log.data)[0];\n cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Result (Performance) of ${name} is ${fps} (FPS)\\n`;\n let text = `[NeuralCoder INFO] Benchmark Result (Performance) of ${name} is ${fps} (FPS)\\\\n`;\n let runcode = `with open(\"${this.log_path}\", 'a' ) as f:\\n f.write(\"${text}\")`;\n let expr = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode, expr, false);\n if (next !== '') {\n cell.outputArea.node.innerText += `[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\n`;\n let runcode2 = `with open(\"${this.log_path}\", 'a' ) as f:\\n f.write(\"[NeuralCoder INFO] Enabling and Benchmarking for ${next} ......\\\\n\")`;\n let expr2 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false);\n }\n let runcode2 = `with open(\"${this.tmp_log_path}\", 'a' ) as f:\\n f.write(\"${text}\")`;\n let expr2 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false);\n if (formatter === 'pytorch_inc_bf16') {\n let read_log = `import re\\nwith open(\"${this.tmp_log_path}\", 'r') as f:\\n logs = f.readlines()\\n fps_list=[]\\n for log_line in logs[-4:-1]:\\n pat = r\\'\\\\d+\\\\.?\\\\d+'\\n fps = re.search(pat,log_line).group()\\n fps_list.append(float(fps))\\nmaxi = max(fps_list)\\nindex = fps_list.index(maxi)\\nboost = round(maxi/fps_list[0],1)\\nfeatures=['','pytorch_inc_static_quant_fx','pytorch_inc_dynamic_quant','pytorch_inc_bf16']\\nfeature_name=['','INC Enable INT8 (Static)','INC Enable INT8 (Dynamic)','INC Enable BF16']\\nbest_feature = features[index]\\nbest_name = feature_name[index]\\nfeature_l = []\\nfeature_l.append(best_feature)\\nfrom neural_coder import enable\\nenable(code=\"${this.tmp_path}\",features=feature_l, overwrite=True)\\nwith open(\"${this.tmp_path}\", 'r') as f:\\n optimized_code = f.read()\\n`;\n let read_expr = { boost: \"boost\", best_feature: \"best_feature\", best_name: \"best_name\", optimizeCode: \"optimized_code\", feature_l: \"feature_l\" };\n let read_result = NotebookUtilities.sendKernelRequestFromNotebook(this.panel, read_log, read_expr, false);\n read_result.then(value => {\n var _a, _b, _c, _d;\n let boost = Object.values(value.boost.data)[0];\n let best_name = Object.values(value.best_name.data)[0];\n let optimizedTexts = Object.values(value.optimizeCode.data)[0];\n let optimizeCodes = optimizedTexts.split('# this is the beginning of a single code snippet\\\\n').slice(1);\n cell.outputArea.node.innerText += `[NeuralCoder INFO] The Best Intel Optimization: ${best_name}\\n`;\n cell.outputArea.node.innerText += `[NeuralCoder INFO] You can get up to ${boost}X performance boost.\\n`;\n optimizeCodes[optimizeCodes.length - 1] = optimizeCodes[optimizeCodes.length - 1].slice(0, -3);\n for (let i = 0; i < optimizeCodes.length; ++i) {\n const cell = this.cells[i];\n const currentTexts = this.cells.map(cell => cell.model.value.text);\n const currentText = currentTexts[i];\n let optimizedtext = optimizeCodes[i];\n optimizedtext = optimizedtext.replace(/\\\\'\\\\\\\\n\\\\'/g, \"^^^\");\n optimizedtext = optimizedtext.replace(/\\\\\\\\n\"/g, \"+++\");\n optimizedtext = optimizedtext.replace(/\\\\\\\\n'/g, \"+++\");\n optimizedtext = optimizedtext.replace(/\"\\\\\\\\n/g, \"@@@\");\n optimizedtext = optimizedtext.replace(/'\\\\\\\\n/g, \"@@@\");\n optimizedtext = optimizedtext.replace(/\\\\n/g, '\\n');\n optimizedtext = optimizedtext.replace(/\\\\'/g, \"'\");\n optimizedtext = optimizedtext.replace(/\\^\\^\\^/g, \"'\\\\n'\");\n optimizedtext = optimizedtext.replace(/\\+\\+\\+/g, \"\\\\n\\\"\");\n optimizedtext = optimizedtext.replace(/\\@\\@\\@/g, \"\\\"\\\\n\");\n if (cell.model.value.text === currentText) {\n cell.model.value.text = optimizedtext;\n }\n }\n let command = \"lscpu | grep 'Model name'\";\n let get_hardware = `import subprocess\\nsubp = subprocess.Popen(\"${command}\",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=\"utf-8\")\\nsubp.wait(2)\\nhardware = subp.communicate()[0].replace(\"Model name:\",\"\").strip()`;\n let expr_hardware = { hardware: \"hardware\" };\n let hard_res = NotebookUtilities.sendKernelRequestFromNotebook(this.panel, get_hardware, expr_hardware, false);\n hard_res.then(value => {\n let hard = Object.values(value.hardware.data)[0];\n cell.outputArea.node.innerText += `[NeuralCoder INFO] HardWare: ${hard}\\n`;\n });\n cell.outputArea.node.innerText += `[NeuralCoder INFO] The log was saved to lab_workspace\\\\NeuralCoder${this.rand}.log\\n`;\n const run_svg = document.createElement(\"svg\");\n run_svg.innerHTML = Constants.ICON_RUN;\n (_d = (_c = (_b = (_a = run === null || run === void 0 ? void 0 : run.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(run_svg);\n });\n }\n });\n }\n }\n }\n}\nexport class JupyterlabNotebookCodeOptimizer extends JupyterlabCodeOptimizer {\n constructor(notebookTracker, panel) {\n super(panel);\n this.notebookTracker = notebookTracker;\n this.notebookname = '';\n }\n async optimizeAction(config, formatter) {\n return this.optimizeCells(true, config, formatter);\n }\n async optimizeAllCodeCells(config, formatter, notebook, run) {\n return this.optimizeCells(false, config, formatter, notebook, run);\n }\n getCodeCells(selectedOnly = true, notebook) {\n if (!this.notebookTracker.currentWidget) {\n return [];\n }\n const codeCells = [];\n notebook = notebook || this.notebookTracker.currentWidget.content;\n this.notebookname = notebook.title.label;\n notebook.widgets.forEach((cell) => {\n if (cell.model.type === 'code') {\n codeCells.push(cell);\n }\n });\n this.cells = codeCells;\n return codeCells;\n }\n async optimizeCells(selectedOnly, config, formatter, notebook, run) {\n if (this.working) {\n return new Promise((resolve, reject) => {\n resolve(\"false!\");\n });\n }\n this.working = true;\n const selectedCells = this.getCodeCells(selectedOnly, notebook);\n let cell = selectedCells[selectedCells.length - 1];\n if (selectedCells.length === 0) {\n this.working = false;\n return new Promise((resolve, reject) => {\n resolve(\"false!\");\n });\n }\n const optimize_type = formatter !== undefined ? formatter : 'pytorch_mixed_precision_cpu';\n const currentTexts = selectedCells.map(cell => cell.model.value.text);\n if (optimize_type === 'auto-quant') {\n cell.outputArea.node.innerText = `[NeuralCoder INFO] Auto-Quant Started ......\\n`;\n cell.outputArea.node.innerText += `[NeuralCoder INFO] Code: User code from Jupyter Lab notebook \"${this.notebookname}\"\\n`;\n cell.outputArea.node.innerText += `[NeuralCoder INFO] Benchmark Mode: Throughput\\n`;\n let runcode = `with open('${this.log_path}', 'a' ) as f:\\n f.write(\"[NeuralCoder INFO] Auto-Quant Started ......\\\\n\")`;\n let expr = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode, expr, false);\n let runcode2 = `with open('${this.log_path}', 'a' ) as f:\\n f.write(\"[NeuralCoder INFO] Code: User code from Jupyter Lab notebook '${this.notebookname}'\\\\n\")`;\n let expr2 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode2, expr2, false);\n let runcode3 = `with open('${this.log_path}', 'a' ) as f:\\n f.write(\"[NeuralCoder INFO] Benchmark Mode: Throughput\\\\n\")`;\n let expr3 = { path: \"\" };\n NotebookUtilities.sendKernelRequestFromNotebook(this.panel, runcode3, expr3, false);\n cell.outputArea.node.setAttribute(\"class\", \"pad\");\n await this.optimizeCode(currentTexts, '', 'The Original Model', 'INC Enable INT8 (Static)', config, true, this.panel, cell, run);\n await this.optimizeCode(currentTexts, 'pytorch_inc_static_quant_fx', 'INC Enable INT8 (Static)', 'INC Enable INT8 (Dynamic)', config, true, this.panel, cell, run);\n await this.optimizeCode(currentTexts, 'pytorch_inc_dynamic_quant', 'INC Enable INT8 (Dynamic)', 'INC Enable BF16', config, true, this.panel, cell, run);\n await this.optimizeCode(currentTexts, 'pytorch_inc_bf16', 'INC Enable BF16', '', config, true, this.panel, cell, run);\n }\n else {\n await this.optimizeCode(currentTexts, optimize_type, \"\", \"\", \"normal\", true, this.panel, cell, run);\n }\n return new Promise((resolve, reject) => {\n resolve(\"success!\");\n });\n }\n applicable(formatter, currentWidget) {\n const currentNotebookWidget = this.notebookTracker.currentWidget;\n return currentNotebookWidget && currentWidget === currentNotebookWidget;\n }\n}\n","import { INotebookTracker } from '@jupyterlab/notebook';\nimport { ToolbarButton, showDialog, Dialog } from '@jupyterlab/apputils';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { LabIcon } from '@jupyterlab/ui-components';\nimport { Widget } from '@lumino/widgets';\nimport { JupyterlabNotebookCodeOptimizer } from './deepcoder';\nimport { Constants } from './constants';\nclass neural_compressor_ext_lab {\n constructor(app, tracker, notebookpanel) {\n this.app = app;\n this.tracker = tracker;\n this.notebookpanel = notebookpanel;\n this.setupWidgetExtension();\n this.config = '';\n }\n createNew(nb) {\n this.notebookpanel = nb;\n this.notebookCodeOptimizer = new JupyterlabNotebookCodeOptimizer(this.tracker, this.notebookpanel);\n const svg = document.createElement(\"svg\");\n svg.innerHTML = Constants.ICON_FORMAT_ALL_SVG;\n const run_svg = document.createElement(\"svg\");\n run_svg.innerHTML = Constants.ICON_RUN;\n const div = document.createElement(\"div\");\n div.setAttribute(\"class\", \"wrapper\");\n const span = document.createElement(\"span\");\n span.setAttribute(\"class\", \"f1ozlkqi\");\n span.innerHTML = Constants.SVG;\n const selector = document.createElement(\"select\");\n selector.setAttribute(\"class\", \"aselector\");\n selector.id = \"NeuralCoder\";\n const option1 = document.createElement(\"option\");\n option1.value = \"pytorch_inc_static_quant_fx\";\n option1.innerText = \"INC Enable INT8 (Static)\";\n option1.selected = true;\n const option2 = document.createElement(\"option\");\n option2.value = \"pytorch_inc_dynamic_quant\";\n option2.innerText = \"INC Enable INT8 (Dynamic)\";\n const option3 = document.createElement(\"option\");\n option3.value = \"pytorch_inc_bf16\";\n option3.innerText = \"INC Enable BF16\";\n const option4 = document.createElement(\"option\");\n option4.value = \"auto-quant\";\n option4.innerText = \"INC Auto Enable & Benchmark\";\n selector.options.add(option1);\n selector.options.add(option2);\n selector.options.add(option3);\n selector.options.add(option4);\n div.appendChild(selector);\n div.appendChild(span);\n const selector_widget = new Widget();\n selector_widget.node.appendChild(div);\n selector_widget.addClass(\"aselector\");\n let notebookCodeOptimizer = this.notebookCodeOptimizer;\n let config = this.config;\n const dia_input = document.createElement(\"input\");\n const dia_widget = new Widget();\n dia_widget.node.appendChild(dia_input);\n dia_widget.addClass(\"dialog\");\n const run_button = new ToolbarButton({\n tooltip: 'NeuralCoder',\n icon: new LabIcon({\n name: \"run\",\n svgstr: Constants.ICON_RUN\n }),\n onClick: async function () {\n var _a, _b, _c, _d;\n (_d = (_c = (_b = (_a = run_button.node.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.firstChild) === null || _d === void 0 ? void 0 : _d.replaceWith(svg);\n if (selector.options[selector.selectedIndex].value === 'auto-quant') {\n await showDialog({\n title: 'Please input execute parameters:',\n body: dia_widget,\n buttons: [Dialog.okButton({ label: 'Confirm' })]\n }).then(result => {\n if (result.button.accept) {\n config = dia_input.value;\n }\n });\n }\n await notebookCodeOptimizer.optimizeAllCodeCells(config, selector.options[selector.selectedIndex].value, undefined, run_button);\n }\n });\n nb.toolbar.insertItem(11, \"nc\", run_button);\n nb.toolbar.insertItem(12, \"selector\", selector_widget);\n }\n setupWidgetExtension() {\n this.app.docRegistry.addWidgetExtension('Notebook', this);\n }\n}\n/**\n * Initialization data for the neural_compressor_ext_lab extension.\n */\nconst plugin = {\n id: 'neural_compressor_ext_lab:plugin',\n autoStart: true,\n requires: [INotebookTracker, IMainMenu],\n optional: [ISettingRegistry],\n activate: (app, tracker, notebookpanel) => {\n new neural_compressor_ext_lab(app, tracker, notebookpanel);\n console.log('JupyterLab extension neural_compressor_ext_lab is activated!');\n }\n};\nexport default plugin;\n","/*\n * Copyright 2019-2020 The Kale Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Dialog, showDialog } from '@jupyterlab/apputils';\n// @ts-ignore\nimport SanitizedHTML from 'react-sanitized-html';\nimport * as React from 'react';\nexport default class NotebookUtilities {\n /**\n * generate random number\n * @Min\n * @Max\n */\n static GetRandomNum(Min, Max) {\n let Range;\n Range = Max - Min;\n var Rand = Math.random();\n return (Min + Math.round(Rand * Range));\n }\n /**\n * Builds an HTML container by sanitizing a list of strings and converting\n * them in valid HTML\n * @param msg A list of string with HTML formatting\n * @returns a HTMLDivElement composed of a list of spans with formatted text\n */\n static buildDialogBody(msg) {\n return (React.createElement(\"div\", null, msg.map((s, i) => {\n return (React.createElement(React.Fragment, { key: `msg-${i}` },\n React.createElement(SanitizedHTML, { allowedAttributes: { a: ['href'] }, allowedTags: ['b', 'i', 'em', 'strong', 'a', 'pre'], html: s }),\n React.createElement(\"br\", null)));\n })));\n }\n /**\n * Opens a pop-up dialog in JupyterLab to display a simple message.\n * @param title The title for the message popup\n * @param msg The message as an array of strings\n * @param buttonLabel The label to use for the button. Default is 'OK'\n * @param buttonClassName The classname to give to the 'ok' button\n * @returns Promise - A promise once the message is closed.\n */\n static async showMessage(title, msg, buttonLabel = 'Dismiss', buttonClassName = '') {\n const buttons = [\n Dialog.okButton({ label: buttonLabel, className: buttonClassName }),\n ];\n const messageBody = this.buildDialogBody(msg);\n await showDialog({ title, buttons, body: messageBody });\n }\n /**\n * Opens a pop-up dialog in JupyterLab to display a yes/no dialog.\n * @param title The title for the message popup\n * @param msg The message\n * @param acceptLabel The label to use for the accept button. Default is 'YES'\n * @param rejectLabel The label to use for the reject button. Default is 'NO'\n * @param yesButtonClassName The classname to give to the accept button.\n * @param noButtonClassName The classname to give to the cancel button.\n * @returns Promise - A promise once the message is closed.\n */\n static async showYesNoDialog(title, msg, acceptLabel = 'YES', rejectLabel = 'NO', yesButtonClassName = '', noButtonClassName = '') {\n const buttons = [\n Dialog.okButton({ label: acceptLabel, className: yesButtonClassName }),\n Dialog.cancelButton({ label: rejectLabel, className: noButtonClassName }),\n ];\n const messageBody = this.buildDialogBody(msg);\n const result = await showDialog({ title, buttons, body: messageBody });\n return result.button.label === acceptLabel;\n }\n /**\n * Opens a pop-up dialog in JupyterLab with various information and button\n * triggering reloading the page.\n * @param title The title for the message popup\n * @param msg The message\n * @param buttonLabel The label to use for the button. Default is 'Refresh'\n * @param buttonClassName The classname to give to the 'refresh' button.\n * @returns Promise - A promise once the message is closed.\n */\n static async showRefreshDialog(title, msg, buttonLabel = 'Refresh', buttonClassName = '') {\n await this.showMessage(title, msg, buttonLabel, buttonClassName);\n location.reload();\n }\n /**\n * @description Creates a new JupyterLab notebook for use by the application\n * @param command The command registry\n * @returns Promise - A promise containing the notebook panel object that was created (if successful).\n */\n static async createNewNotebook(command) {\n const notebook = await command.execute('notebook:create-new', {\n activate: true,\n path: '',\n preferredLanguage: '',\n });\n await notebook.session.ready;\n return notebook;\n }\n /**\n * Safely saves the Jupyter notebook document contents to disk\n * @param notebookPanel The notebook panel containing the notebook to save\n */\n static async saveNotebook(notebookPanel) {\n if (notebookPanel) {\n await notebookPanel.context.ready;\n notebookPanel.context.save();\n return true;\n }\n return false;\n }\n /**\n * Convert the notebook contents to JSON\n * @param notebookPanel The notebook panel containing the notebook to serialize\n */\n static notebookToJSON(notebookPanel) {\n if (notebookPanel.content.model) {\n return notebookPanel.content.model.toJSON();\n }\n return null;\n }\n /**\n * @description Gets the value of a key from specified notebook's metadata.\n * @param notebookPanel The notebook to get meta data from.\n * @param key The key of the value.\n * @returns any -The value of the metadata. Returns null if the key doesn't exist.\n */\n static getMetaData(notebookPanel, key) {\n if (!notebookPanel) {\n throw new Error('The notebook is null or undefined. No meta data available.');\n }\n if (notebookPanel.model && notebookPanel.model.metadata.has(key)) {\n return notebookPanel.model.metadata.get(key);\n }\n return null;\n }\n /**\n * @description Sets the key value pair in the notebook's metadata.\n * If the key doesn't exists it will add one.\n * @param notebookPanel The notebook to set meta data in.\n * @param key The key of the value to create.\n * @param value The value to set.\n * @param save Default is false. Whether the notebook should be saved after the meta data is set.\n * Note: This function will not wait for the save to complete, it only sends a save request.\n * @returns The old value for the key, or undefined if it did not exist.\n */\n static setMetaData(notebookPanel, key, value, save = false) {\n var _a;\n if (!notebookPanel) {\n throw new Error('The notebook is null or undefined. No meta data available.');\n }\n const oldVal = (_a = notebookPanel.model) === null || _a === void 0 ? void 0 : _a.metadata.set(key, value);\n if (save) {\n this.saveNotebook(notebookPanel);\n }\n return oldVal;\n }\n // /**\n // * Get a new Kernel, not tied to a Notebook\n // * Source code here: https://github.com/jupyterlab/jupyterlab/tree/473348d25bcb258ca2f0c127dd8fb5b193217135/packages/services\n // */\n // public static async createNewKernel() {\n // // Get info about the available kernels and start a new one.\n // let options: Kernel.IOptions = await Kernel.getSpecs().then(kernelSpecs => {\n // // console.log('Default spec:', kernelSpecs.default);\n // // console.log('Available specs', Object.keys(kernelSpecs.kernelspecs));\n // // use the default name\n // return { name: kernelSpecs.default };\n // });\n // return await Kernel.startNew(options).then(_kernel => {\n // return _kernel;\n // });\n // }\n // // TODO: We can use this context manager to execute commands inside a new kernel\n // // and be sure that it will be disposed of at the end.\n // // Another approach could be to create a kale_rpc Kernel, as a singleton,\n // // created at startup. The only (possible) drawback is that we can not name\n // // a kernel instance with a custom id/name, so when refreshing JupyterLab we would\n // // not recognize the kernel. A solution could be to have a kernel spec dedicated to kale rpc calls.\n // public static async executeWithNewKernel(action: Function, args: any[] = []) {\n // // create brand new kernel\n // const _k = await this.createNewKernel();\n // // execute action inside kernel\n // const res = await action(_k, ...args);\n // // close kernel\n // _k.shutdown();\n // // return result\n // return res;\n // }\n /**\n * @description This function runs code directly in the notebook's kernel and then evaluates the\n * result and returns it as a promise.\n * @param kernel The kernel to run the code in.\n * @param runCode The code to run in the kernel.\n * @param userExpressions The expressions used to capture the desired info from the executed code.\n * @param runSilent Default is false. If true, kernel will execute as quietly as possible.\n * store_history will be set to false, and no broadcast on IOPUB channel will be made.\n * @param storeHistory Default is false. If true, the code executed will be stored in the kernel's history\n * and the counter which is shown in the cells will be incremented to reflect code was run.\n * @param allowStdIn Default is false. If true, code running in kernel can prompt user for input using\n * an input_request message.\n * @param stopOnError Default is false. If True, does not abort the execution queue, if an exception is encountered.\n * This allows the queued execution of multiple execute_requests, even if they generate exceptions.\n * @returns Promise - A promise containing the execution results of the code as an object with\n * keys based on the user_expressions.\n * @example\n * //The code\n * const code = \"a=123\\nb=456\\nsum=a+b\";\n * //The user expressions\n * const expr = {sum: \"sum\",prod: \"a*b\",args:\"[a,b,sum]\"};\n * //Async function call (returns a promise)\n * sendKernelRequest(notebookPanel, code, expr,false);\n * //Result when promise resolves:\n * {\n * sum:{status:\"ok\",data:{\"text/plain\":\"579\"},metadata:{}},\n * prod:{status:\"ok\",data:{\"text/plain\":\"56088\"},metadata:{}},\n * args:{status:\"ok\",data:{\"text/plain\":\"[123, 456, 579]\"}}\n * }\n * @see For more information on JupyterLab messages:\n * https://jupyter-client.readthedocs.io/en/latest/messaging.html#execution-results\n */\n static async sendKernelRequest(kernel, runCode, userExpressions, runSilent = false, storeHistory = false, allowStdIn = false, stopOnError = false) {\n if (!kernel) {\n throw new Error('Kernel is null or undefined.');\n }\n // Wait for kernel to be ready before sending request\n // await kernel.status;\n const message = await kernel.requestExecute({\n allow_stdin: allowStdIn,\n code: runCode,\n silent: runSilent,\n stop_on_error: stopOnError,\n store_history: storeHistory,\n user_expressions: userExpressions,\n }).done;\n const content = message.content;\n if (content.status !== 'ok') {\n // If response is not 'ok', throw contents as error, log code\n const msg = `Code caused an error:\\n${runCode}`;\n console.error(msg);\n if (content.traceback) {\n content.traceback.forEach((line) => console.log(line.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')));\n }\n throw content;\n }\n // Return user_expressions of the content\n return content.user_expressions;\n }\n /**\n * Same as method sendKernelRequest but passing\n * a NotebookPanel instead of a Kernel\n */\n static async sendKernelRequestFromNotebook(notebookPanel, runCode, userExpressions, runSilent = false, storeHistory = false, allowStdIn = false, stopOnError = false) {\n var _a, _b, _c, _d;\n if (!notebookPanel) {\n throw new Error('Notebook is null or undefined.');\n }\n // Wait for notebook panel to be ready\n await notebookPanel.activate;\n await ((_a = notebookPanel.sessionContext) === null || _a === void 0 ? void 0 : _a.ready);\n console.log('get kernel', (_b = notebookPanel.sessionContext.session) === null || _b === void 0 ? void 0 : _b.kernel);\n return this.sendKernelRequest((_d = (_c = notebookPanel.sessionContext) === null || _c === void 0 ? void 0 : _c.session) === null || _d === void 0 ? void 0 : _d.kernel, runCode, userExpressions, runSilent, storeHistory, allowStdIn, stopOnError);\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/remoteEntry.5902e6831f208a384a8f.js b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/remoteEntry.6eba177d6998a43bce65.js similarity index 90% rename from neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/remoteEntry.5902e6831f208a384a8f.js rename to neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/remoteEntry.6eba177d6998a43bce65.js index b77d9bdd688..8384bc21f6e 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/remoteEntry.5902e6831f208a384a8f.js +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/remoteEntry.6eba177d6998a43bce65.js @@ -3,7 +3,7 @@ var _JUPYTERLAB; /******/ "use strict"; /******/ var __webpack_modules__ = ({ -/***/ "webpack/container/entry/neural-compressor-ext=lab": +/***/ "webpack/container/entry/neural_compressor_ext_lab": /*!***********************!*\ !*** container entry ***! \***********************/ @@ -11,10 +11,10 @@ var _JUPYTERLAB; var moduleMap = { "./index": () => { - return __webpack_require__.e("lib_index_js").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))); + return Promise.all([__webpack_require__.e("webpack_sharing_consume_default_react"), __webpack_require__.e("lib_index_js")]).then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))); }, "./extension": () => { - return __webpack_require__.e("lib_index_js").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))); + return Promise.all([__webpack_require__.e("webpack_sharing_consume_default_react"), __webpack_require__.e("lib_index_js")]).then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))); }, "./style": () => { return Promise.all([__webpack_require__.e("vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1"), __webpack_require__.e("style_index_js")]).then(() => (() => ((__webpack_require__(/*! ./style/index.js */ "./style/index.js"))))); @@ -124,7 +124,7 @@ __webpack_require__.d(exports, { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template -/******/ return "" + chunkId + "." + {"lib_index_js":"c8ce5d6f06928ba82660","vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1":"e23251bcbb7e84631721","style_index_js":"01365bdf92323310e6f2"}[chunkId] + ".js"; +/******/ return "" + chunkId + "." + {"webpack_sharing_consume_default_react":"19c51f7b56cfd16da3f9","lib_index_js":"f3ace973ac83174a6db0","vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1":"de03554a230625d91110","style_index_js":"64a99c20bfaa1b52d477","vendors-node_modules_react-sanitized-html_lib_index_js":"8b8b15b1484bb29831f7"}[chunkId] + ".js"; /******/ }; /******/ })(); /******/ @@ -148,7 +148,7 @@ __webpack_require__.d(exports, { /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; -/******/ var dataWebpackPrefix = "neural-compressor-ext-lab:"; +/******/ var dataWebpackPrefix = "neural_compressor_ext_lab:"; /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } @@ -221,7 +221,7 @@ __webpack_require__.d(exports, { /******/ // runs all init snippets from all modules reachable /******/ var scope = __webpack_require__.S[name]; /******/ var warn = (msg) => (typeof console !== "undefined" && console.warn && console.warn(msg)); -/******/ var uniqueName = "neural-compressor-ext-lab"; +/******/ var uniqueName = "neural_compressor_ext_lab"; /******/ var register = (name, version, factory, eager) => { /******/ var versions = scope[name] = scope[name] || {}; /******/ var activeVersion = versions[version]; @@ -241,7 +241,8 @@ __webpack_require__.d(exports, { /******/ var promises = []; /******/ switch(name) { /******/ case "default": { -/******/ register("neural-compressor-ext-lab", "0.1.0", () => (__webpack_require__.e("lib_index_js").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ "./lib/index.js")))))); +/******/ register("neural_compressor_ext_lab", "0.1.0", () => (Promise.all([__webpack_require__.e("webpack_sharing_consume_default_react"), __webpack_require__.e("lib_index_js")]).then(() => (() => (__webpack_require__(/*! ./lib/index.js */ "./lib/index.js")))))); +/******/ register("react-sanitized-html", "2.0.0", () => (Promise.all([__webpack_require__.e("vendors-node_modules_react-sanitized-html_lib_index_js"), __webpack_require__.e("webpack_sharing_consume_default_react")]).then(() => (() => (__webpack_require__(/*! ./node_modules/react-sanitized-html/lib/index.js */ "./node_modules/react-sanitized-html/lib/index.js")))))); /******/ } /******/ break; /******/ } @@ -405,17 +406,20 @@ __webpack_require__.d(exports, { /******/ }); /******/ var installedModules = {}; /******/ var moduleToHandlerMapping = { -/******/ "webpack/sharing/consume/default/@jupyterlab/notebook": () => (loadSingletonVersionCheck("default", "@jupyterlab/notebook", [1,3,4,4])), -/******/ "webpack/sharing/consume/default/@jupyterlab/apputils": () => (loadSingletonVersionCheck("default", "@jupyterlab/apputils", [1,3,4,4])), -/******/ "webpack/sharing/consume/default/@jupyterlab/settingregistry": () => (loadSingletonVersionCheck("default", "@jupyterlab/settingregistry", [1,3,4,4])), -/******/ "webpack/sharing/consume/default/@jupyterlab/mainmenu": () => (loadSingletonVersionCheck("default", "@jupyterlab/mainmenu", [1,3,4,4])), -/******/ "webpack/sharing/consume/default/@jupyterlab/ui-components": () => (loadSingletonVersionCheck("default", "@jupyterlab/ui-components", [1,3,4,4])), +/******/ "webpack/sharing/consume/default/react": () => (loadSingletonVersionCheck("default", "react", [1,17,0,1])), +/******/ "webpack/sharing/consume/default/@jupyterlab/notebook": () => (loadSingletonVersionCheck("default", "@jupyterlab/notebook", [1,3,4,5])), +/******/ "webpack/sharing/consume/default/@jupyterlab/apputils": () => (loadSingletonVersionCheck("default", "@jupyterlab/apputils", [1,3,4,5])), +/******/ "webpack/sharing/consume/default/@jupyterlab/settingregistry": () => (loadSingletonVersionCheck("default", "@jupyterlab/settingregistry", [1,3,4,5])), +/******/ "webpack/sharing/consume/default/@jupyterlab/mainmenu": () => (loadSingletonVersionCheck("default", "@jupyterlab/mainmenu", [1,3,4,5])), +/******/ "webpack/sharing/consume/default/@jupyterlab/ui-components": () => (loadSingletonVersionCheck("default", "@jupyterlab/ui-components", [1,3,4,5])), /******/ "webpack/sharing/consume/default/@lumino/widgets": () => (loadSingletonVersionCheck("default", "@lumino/widgets", [1,1,33,0])), -/******/ "webpack/sharing/consume/default/@jupyterlab/coreutils": () => (loadSingletonVersionCheck("default", "@jupyterlab/coreutils", [1,5,4,4])), -/******/ "webpack/sharing/consume/default/@jupyterlab/services": () => (loadSingletonVersionCheck("default", "@jupyterlab/services", [1,6,4,4])) +/******/ "webpack/sharing/consume/default/react-sanitized-html/react-sanitized-html": () => (loadStrictVersionCheckFallback("default", "react-sanitized-html", [1,2,0,0], () => (__webpack_require__.e("vendors-node_modules_react-sanitized-html_lib_index_js").then(() => (() => (__webpack_require__(/*! react-sanitized-html */ "./node_modules/react-sanitized-html/lib/index.js"))))))) /******/ }; /******/ // no consumes in initial chunks /******/ var chunkMapping = { +/******/ "webpack_sharing_consume_default_react": [ +/******/ "webpack/sharing/consume/default/react" +/******/ ], /******/ "lib_index_js": [ /******/ "webpack/sharing/consume/default/@jupyterlab/notebook", /******/ "webpack/sharing/consume/default/@jupyterlab/apputils", @@ -423,8 +427,7 @@ __webpack_require__.d(exports, { /******/ "webpack/sharing/consume/default/@jupyterlab/mainmenu", /******/ "webpack/sharing/consume/default/@jupyterlab/ui-components", /******/ "webpack/sharing/consume/default/@lumino/widgets", -/******/ "webpack/sharing/consume/default/@jupyterlab/coreutils", -/******/ "webpack/sharing/consume/default/@jupyterlab/services" +/******/ "webpack/sharing/consume/default/react-sanitized-html/react-sanitized-html" /******/ ] /******/ }; /******/ __webpack_require__.f.consumes = (chunkId, promises) => { @@ -464,7 +467,7 @@ __webpack_require__.d(exports, { /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { -/******/ "neural-compressor-ext-lab": 0 +/******/ "neural_compressor_ext_lab": 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { @@ -476,7 +479,7 @@ __webpack_require__.d(exports, { /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { -/******/ if(true) { // all chunks have JS +/******/ if("webpack_sharing_consume_default_react" != chunkId) { /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); @@ -541,7 +544,7 @@ __webpack_require__.d(exports, { /******/ /******/ } /******/ -/******/ var chunkLoadingGlobal = self["webpackChunkneural-compressor-ext-lab"] = self["webpackChunkneural-compressor-ext-lab"] || []; +/******/ var chunkLoadingGlobal = self["webpackChunkneural_compressor_ext_lab"] = self["webpackChunkneural_compressor_ext_lab"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); @@ -556,9 +559,9 @@ __webpack_require__.d(exports, { /******/ // module cache are used so entry inlining is disabled /******/ // startup /******/ // Load entry module and return exports -/******/ var __webpack_exports__ = __webpack_require__("webpack/container/entry/neural-compressor-ext-lab"); -/******/ (_JUPYTERLAB = typeof _JUPYTERLAB === "undefined" ? {} : _JUPYTERLAB).neural-compressor-ext-lab = __webpack_exports__; +/******/ var __webpack_exports__ = __webpack_require__("webpack/container/entry/neural_compressor_ext_lab"); +/******/ (_JUPYTERLAB = typeof _JUPYTERLAB === "undefined" ? {} : _JUPYTERLAB).neural_compressor_ext_lab = __webpack_exports__; /******/ /******/ })() ; -//# sourceMappingURL=remoteEntry.5902e6831f208a384a8f.js.map \ No newline at end of file +//# sourceMappingURL=remoteEntry.6eba177d6998a43bce65.js.map \ No newline at end of file diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/remoteEntry.6eba177d6998a43bce65.js.map b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/remoteEntry.6eba177d6998a43bce65.js.map new file mode 100644 index 00000000000..1f6fc1603f6 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/remoteEntry.6eba177d6998a43bce65.js.map @@ -0,0 +1 @@ +{"version":3,"file":"remoteEntry.6eba177d6998a43bce65.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;UCpCD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;;;;;WCRA;WACA;WACA;WACA,8BAA8B,2VAA2V;WACzX;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA;;;;;WCzCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,oJAAoJ;WACpJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI,aAAa;WACjB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC5CA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WCfA;WACA;WACA,WAAW,6BAA6B,iBAAiB,GAAG,qEAAqE;WACjI;WACA;WACA;WACA,qCAAqC,aAAa,EAAE,wDAAwD,2BAA2B,4BAA4B,2BAA2B,+CAA+C,mCAAmC;WAChR;WACA;WACA;WACA,qBAAqB,8BAA8B,SAAS,sDAAsD,gBAAgB,eAAe,KAAK,6DAA6D,SAAS,SAAS,QAAQ,eAAe,KAAK,eAAe,qGAAqG,WAAW,aAAa;WAC7Y;WACA;WACA;WACA,gBAAgB,8BAA8B,qBAAqB,YAAY,sBAAsB,SAAS,iDAAiD,6FAA6F,WAAW,uBAAuB,2BAA2B,wBAAwB,KAAK,oCAAoC,oBAAoB,wBAAwB,oBAAoB,SAAS,KAAK,yBAAyB,KAAK,gCAAgC,yBAAyB,QAAQ,eAAe,KAAK,eAAe,4DAA4D;WACtoB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;;WAED;WACA;WACA;WACA,CAAC;WACD;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN,KAAK,WAAW;WAChB,GAAG;WACH;WACA;;;;;WCvLA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA;;;;;WCrFA;;;;;UEAA;UACA;UACA;UACA","sources":["webpack://neural_compressor_ext_lab/webpack/container-entry","webpack://neural_compressor_ext_lab/webpack/bootstrap","webpack://neural_compressor_ext_lab/webpack/runtime/compat get default export","webpack://neural_compressor_ext_lab/webpack/runtime/define property getters","webpack://neural_compressor_ext_lab/webpack/runtime/ensure chunk","webpack://neural_compressor_ext_lab/webpack/runtime/get javascript chunk filename","webpack://neural_compressor_ext_lab/webpack/runtime/global","webpack://neural_compressor_ext_lab/webpack/runtime/hasOwnProperty shorthand","webpack://neural_compressor_ext_lab/webpack/runtime/load script","webpack://neural_compressor_ext_lab/webpack/runtime/make namespace object","webpack://neural_compressor_ext_lab/webpack/runtime/sharing","webpack://neural_compressor_ext_lab/webpack/runtime/publicPath","webpack://neural_compressor_ext_lab/webpack/runtime/consumes","webpack://neural_compressor_ext_lab/webpack/runtime/jsonp chunk loading","webpack://neural_compressor_ext_lab/webpack/runtime/nonce","webpack://neural_compressor_ext_lab/webpack/before-startup","webpack://neural_compressor_ext_lab/webpack/startup","webpack://neural_compressor_ext_lab/webpack/after-startup"],"sourcesContent":["var moduleMap = {\n\t\"./index\": () => {\n\t\treturn Promise.all([__webpack_require__.e(\"webpack_sharing_consume_default_react\"), __webpack_require__.e(\"lib_index_js\")]).then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./extension\": () => {\n\t\treturn Promise.all([__webpack_require__.e(\"webpack_sharing_consume_default_react\"), __webpack_require__.e(\"lib_index_js\")]).then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./style\": () => {\n\t\treturn Promise.all([__webpack_require__.e(\"vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1\"), __webpack_require__.e(\"style_index_js\")]).then(() => (() => ((__webpack_require__(/*! ./style/index.js */ \"./style/index.js\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"webpack_sharing_consume_default_react\":\"19c51f7b56cfd16da3f9\",\"lib_index_js\":\"f3ace973ac83174a6db0\",\"vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1\":\"de03554a230625d91110\",\"style_index_js\":\"64a99c20bfaa1b52d477\",\"vendors-node_modules_react-sanitized-html_lib_index_js\":\"8b8b15b1484bb29831f7\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"neural_compressor_ext_lab:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => (typeof console !== \"undefined\" && console.warn && console.warn(msg));\n\tvar uniqueName = \"neural_compressor_ext_lab\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"neural_compressor_ext_lab\", \"0.1.0\", () => (Promise.all([__webpack_require__.e(\"webpack_sharing_consume_default_react\"), __webpack_require__.e(\"lib_index_js\")]).then(() => (() => (__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\"))))));\n\t\t\tregister(\"react-sanitized-html\", \"2.0.0\", () => (Promise.all([__webpack_require__.e(\"vendors-node_modules_react-sanitized-html_lib_index_js\"), __webpack_require__.e(\"webpack_sharing_consume_default_react\")]).then(() => (() => (__webpack_require__(/*! ./node_modules/react-sanitized-html/lib/index.js */ \"./node_modules/react-sanitized-html/lib/index.js\"))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map((p=>{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f {\n\tvar scope = __webpack_require__.S[scopeName];\n\tif(!scope || !__webpack_require__.o(scope, key)) throw new Error(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n\treturn scope;\n};\nvar findVersion = (scope, key) => {\n\tvar versions = scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key) => {\n\tvar versions = scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getSingleton = (scope, scopeName, key, requiredVersion) => {\n\tvar version = findSingletonVersionKey(scope, key);\n\treturn get(scope[key][version]);\n};\nvar getSingletonVersion = (scope, scopeName, key, requiredVersion) => {\n\tvar version = findSingletonVersionKey(scope, key);\n\tif (!satisfy(requiredVersion, version)) typeof console !== \"undefined\" && console.warn && console.warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\treturn get(scope[key][version]);\n};\nvar getStrictSingletonVersion = (scope, scopeName, key, requiredVersion) => {\n\tvar version = findSingletonVersionKey(scope, key);\n\tif (!satisfy(requiredVersion, version)) throw new Error(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\treturn get(scope[key][version]);\n};\nvar findValidVersion = (scope, key, requiredVersion) => {\n\tvar versions = scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \") of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar getValidVersion = (scope, scopeName, key, requiredVersion) => {\n\tvar entry = findValidVersion(scope, key, requiredVersion);\n\tif(entry) return get(entry);\n\tthrow new Error(getInvalidVersionMessage(scope, scopeName, key, requiredVersion));\n};\nvar warnInvalidVersion = (scope, scopeName, key, requiredVersion) => {\n\ttypeof console !== \"undefined\" && console.warn && console.warn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion));\n};\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar init = (fn) => (function(scopeName, a, b, c) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then) return promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], a, b, c));\n\treturn fn(scopeName, __webpack_require__.S[scopeName], a, b, c);\n});\n\nvar load = /*#__PURE__*/ init((scopeName, scope, key) => {\n\tensureExistence(scopeName, key);\n\treturn get(findVersion(scope, key));\n});\nvar loadFallback = /*#__PURE__*/ init((scopeName, scope, key, fallback) => {\n\treturn scope && __webpack_require__.o(scope, key) ? get(findVersion(scope, key)) : fallback();\n});\nvar loadVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn get(findValidVersion(scope, key, version) || warnInvalidVersion(scope, scopeName, key, version) || findVersion(scope, key));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key) => {\n\tensureExistence(scopeName, key);\n\treturn getSingleton(scope, scopeName, key);\n});\nvar loadSingletonVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn getSingletonVersion(scope, scopeName, key, version);\n});\nvar loadStrictVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn getValidVersion(scope, scopeName, key, version);\n});\nvar loadStrictSingletonVersionCheck = /*#__PURE__*/ init((scopeName, scope, key, version) => {\n\tensureExistence(scopeName, key);\n\treturn getStrictSingletonVersion(scope, scopeName, key, version);\n});\nvar loadVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn get(findValidVersion(scope, key, version) || warnInvalidVersion(scope, scopeName, key, version) || findVersion(scope, key));\n});\nvar loadSingletonFallback = /*#__PURE__*/ init((scopeName, scope, key, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn getSingleton(scope, scopeName, key);\n});\nvar loadSingletonVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn getSingletonVersion(scope, scopeName, key, version);\n});\nvar loadStrictVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tvar entry = scope && __webpack_require__.o(scope, key) && findValidVersion(scope, key, version);\n\treturn entry ? get(entry) : fallback();\n});\nvar loadStrictSingletonVersionCheckFallback = /*#__PURE__*/ init((scopeName, scope, key, version, fallback) => {\n\tif(!scope || !__webpack_require__.o(scope, key)) return fallback();\n\treturn getStrictSingletonVersion(scope, scopeName, key, version);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t\"webpack/sharing/consume/default/react\": () => (loadSingletonVersionCheck(\"default\", \"react\", [1,17,0,1])),\n\t\"webpack/sharing/consume/default/@jupyterlab/notebook\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/notebook\", [1,3,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/apputils\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/apputils\", [1,3,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/settingregistry\", [1,3,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/mainmenu\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/mainmenu\", [1,3,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\": () => (loadSingletonVersionCheck(\"default\", \"@jupyterlab/ui-components\", [1,3,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/widgets\": () => (loadSingletonVersionCheck(\"default\", \"@lumino/widgets\", [1,1,33,0])),\n\t\"webpack/sharing/consume/default/react-sanitized-html/react-sanitized-html\": () => (loadStrictVersionCheckFallback(\"default\", \"react-sanitized-html\", [1,2,0,0], () => (__webpack_require__.e(\"vendors-node_modules_react-sanitized-html_lib_index_js\").then(() => (() => (__webpack_require__(/*! react-sanitized-html */ \"./node_modules/react-sanitized-html/lib/index.js\")))))))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"webpack_sharing_consume_default_react\": [\n\t\t\"webpack/sharing/consume/default/react\"\n\t],\n\t\"lib_index_js\": [\n\t\t\"webpack/sharing/consume/default/@jupyterlab/notebook\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/apputils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/mainmenu\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\",\n\t\t\"webpack/sharing/consume/default/@lumino/widgets\",\n\t\t\"webpack/sharing/consume/default/react-sanitized-html/react-sanitized-html\"\n\t]\n};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t});\n\t}\n}","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"neural_compressor_ext_lab\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(\"webpack_sharing_consume_default_react\" != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkneural_compressor_ext_lab\"] = self[\"webpackChunkneural_compressor_ext_lab\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"webpack/container/entry/neural_compressor_ext_lab\");\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style.js b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style.js similarity index 69% rename from neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style.js rename to neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style.js index 7ba22141afd..7b10c692587 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/style.js +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style.js @@ -1,4 +1,4 @@ /* This is a generated file of CSS imports */ /* It was generated by @jupyterlab/builder in Build.ensureAssets() */ -import 'neural-compressor-ext-lab/style/index.js'; +import 'neural_compressor_ext_lab/style/index.js'; diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style_index_js.64a99c20bfaa1b52d477.js b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style_index_js.64a99c20bfaa1b52d477.js new file mode 100644 index 00000000000..d6e506b9dc4 --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style_index_js.64a99c20bfaa1b52d477.js @@ -0,0 +1,73 @@ +"use strict"; +(self["webpackChunkneural_compressor_ext_lab"] = self["webpackChunkneural_compressor_ext_lab"] || []).push([["style_index_js"],{ + +/***/ "./node_modules/css-loader/dist/cjs.js!./style/base.css": +/*!**************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./style/base.css ***! + \**************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ "./node_modules/css-loader/dist/runtime/cssWithMappingToString.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, "/*\n See the JupyterLab Developer Guide for useful CSS Patterns:\n\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\n*/\n.lds-ripple {\n display: flex;\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 80px;\n height: 80px;\n}\n.lds-ripple div {\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n border: 4px solid rgb(245, 131, 55);\n opacity: 1;\n border-radius: 50%;\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n}\n.lds-ripple div:nth-child(2) {\n animation-delay: -0.5s;\n}\n@keyframes lds-ripple {\n 0% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 4.9% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 5% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 1;\n }\n 100% {\n top: 0px;\n left: 0px;\n width: 72px;\n height: 72px;\n opacity: 0;\n }\n}\n\n\n/* CSS */\n.button-62 {\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\n border: 0;\n border-radius: 12px;\n color: #FFFFFF;\n cursor: pointer;\n display: inline-block;\n font-family: -apple-system,system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n font-size: 16px;\n font-weight: 500;\n line-height: 2.5;\n outline: transparent;\n padding: 0 1rem;\n text-align: center;\n text-decoration: none;\n transition: box-shadow .2s ease-in-out;\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n white-space: nowrap;\n}\n\n.button-62:not([disabled]):focus {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.button-62:not([disabled]):hover {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.aselector select {\n background-color: initial;\n border: none;\n border-radius: 0;\n box-shadow: none;\n color: var(--jp-ui-font-color0);\n display: block;\n font-size: var(--jp-ui-font-size1);\n height: 24px;\n line-height: 14px;\n padding: 0 25px 0 10px;\n text-align: left;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n/* Use our own theme for hover and option styles */\n.aselector select:hover,\n.aselector select > option {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n}\nselect {\n box-sizing: border-box;\n}\n\n.font{\nbackground-color: initial;\nborder: none;\nheight: 21px;\nborder-radius: 0;\nfont-weight:500;\ncolor: var(--jp-ui-font-color0);\ndisplay: block;\nline-height: 22.5px;\npadding: 0 25px 0 10px;\nfont-size: var(--jp-ui-font-size1);\n}\n.wrapper {\n display: flex;\n}\n.f1ozlkqi {\n pointer-events: none;\n}\n\n.palybutton{\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\n}\n.loading{\n \n background-image: url(\"data:image/svg+xml,\");\n background-size: contain; \n}\n\n.dialog{\nbody {\n margin: 0;\n height: 100vh;\n width:600px;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n font-family: \"Poppins\", sans-serif;\n background: #e3d0b6;\n}\n\n#cookie-policy {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 460px;\n height: 600px;\n background: #f3efe6;\n border-radius: 12px;\n transform: scale(.8);\n}\n\n#cookie-wrapper {\n height: 240px;\n width: 240px;\n margin: 30px 0;\n position: relative;\n left: -40px;\n}\n\nh1 {\n color: #6c3a1f;\n text-align: center;\n font-size: 36px;\n margin: 0;\n}\n\np {\n color: #a28561;\n font-size: 14px;\n margin-top: 0;\n padding: 0 60px;\n text-align: center;\n}\na {\n margin-top: 18px;\n font-size: 14px;\n color: #a28561;\n text-decoration: none;\n pointer-events: none;\n}\na:hover {\n color: #846b4d;\n}\n\nspan {\n font-family: \"Amatic SC\", cursive;\n font-weight: 400;\n font-size: 20px;\n position: relative;\n top: -18px;\n left: 3px;\n color: #a28561; \n}\n\n#heart-no, #thought-heart-yes, #mouth, #face-no, #thought-1, #thought-2, #thought-heart-na, #q-mark, #eyes, #leg-l, #leg-r {\n opacity: 0;\n}\n}\n.dia_button {\n color: white;\n background: #dd794a;\n margin-top: 12px;\n cursor: pointer;\n font-size: 24px;\n font-family: \"Poppins\", sans-serif;\n border-radius: 9px;\n border: none;\n width: 72%;\n padding: 12px 0;\n transition: 150ms ease-out;\n pointer-events: none;\n}\n\n.dia_button:hover {\n background: #d66029;\n}\n\n.pad{\n padding-left:6%\n}\n\n:root {\n /* Elevation\n *\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\n *\n * https://github.com/material-components/material-components-web\n * https://material-components-web.appspot.com/elevation.html\n */\n\n --jp-shadow-base-lightness: 0;\n --jp-shadow-umbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.2\n );\n --jp-shadow-penumbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.14\n );\n --jp-shadow-ambient-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.12\n );\n --jp-elevation-z0: none;\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\n\n /* Borders\n *\n * The following variables, specify the visual styling of borders in JupyterLab.\n */\n\n --jp-border-width: 1px;\n --jp-border-color0: var(--md-grey-400);\n --jp-border-color1: var(--md-grey-400);\n --jp-border-color2: var(--md-grey-300);\n --jp-border-color3: var(--md-grey-200);\n --jp-inverse-border-color: var(--md-grey-600);\n --jp-border-radius: 2px;\n\n /* UI Fonts\n *\n * The UI font CSS variables are used for the typography all of the JupyterLab\n * user interface elements that are not directly user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-ui-font-scale-factor: 1.2;\n --jp-ui-font-size0: 0.83333em;\n --jp-ui-font-size1: 13px; /* Base font size */\n --jp-ui-font-size2: 1.2em;\n --jp-ui-font-size3: 1.44em;\n\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n /*\n * Use these font colors against the corresponding main layout colors.\n * In a light theme, these go from dark to light.\n */\n\n /* Defaults use Material Design specification */\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\n\n /*\n * Use these against the brand/accent/warn/error colors.\n * These will typically go from light to darker, in both a dark and light theme.\n */\n\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\n\n /* Content Fonts\n *\n * Content font variables are used for typography of user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-content-line-height: 1.6;\n --jp-content-font-scale-factor: 1.2;\n --jp-content-font-size0: 0.83333em;\n --jp-content-font-size1: 14px; /* Base font size */\n --jp-content-font-size2: 1.2em;\n --jp-content-font-size3: 1.44em;\n --jp-content-font-size4: 1.728em;\n --jp-content-font-size5: 2.0736em;\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-content-presentation-font-size1: 17px;\n\n --jp-content-heading-line-height: 1;\n --jp-content-heading-margin-top: 1.2em;\n --jp-content-heading-margin-bottom: 0.8em;\n --jp-content-heading-font-weight: 500;\n\n /* Defaults use Material Design specification */\n --jp-content-font-color0: rgba(0, 0, 0, 1);\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\n\n --jp-content-link-color: var(--md-blue-700);\n\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n\n /*\n * Code Fonts\n *\n * Code font variables are used for typography of code and other monospaces content.\n */\n\n --jp-code-font-size: 13px;\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\n --jp-code-font-family: var(--jp-code-font-family-default);\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-code-presentation-font-size: 16px;\n\n /* may need to tweak cursor width if you change font size */\n --jp-code-cursor-width0: 1.4px;\n --jp-code-cursor-width1: 2px;\n --jp-code-cursor-width2: 4px;\n\n /* Layout\n *\n * The following are the main layout colors use in JupyterLab. In a light\n * theme these would go from light to dark.\n */\n\n --jp-layout-color0: white;\n --jp-layout-color1: white;\n --jp-layout-color2: var(--md-grey-200);\n --jp-layout-color3: var(--md-grey-400);\n --jp-layout-color4: var(--md-grey-600);\n\n /* Inverse Layout\n *\n * The following are the inverse layout colors use in JupyterLab. In a light\n * theme these would go from dark to light.\n */\n\n --jp-inverse-layout-color0: #111111;\n --jp-inverse-layout-color1: var(--md-grey-900);\n --jp-inverse-layout-color2: var(--md-grey-800);\n --jp-inverse-layout-color3: var(--md-grey-700);\n --jp-inverse-layout-color4: var(--md-grey-600);\n\n /* Brand/accent */\n\n --jp-brand-color0: var(--md-blue-900);\n --jp-brand-color1: var(--md-blue-700);\n --jp-brand-color2: var(--md-blue-300);\n --jp-brand-color3: var(--md-blue-100);\n --jp-brand-color4: var(--md-blue-50);\n\n --jp-accent-color0: var(--md-green-900);\n --jp-accent-color1: var(--md-green-700);\n --jp-accent-color2: var(--md-green-300);\n --jp-accent-color3: var(--md-green-100);\n\n /* State colors (warn, error, success, info) */\n\n --jp-warn-color0: var(--md-orange-900);\n --jp-warn-color1: var(--md-orange-700);\n --jp-warn-color2: var(--md-orange-300);\n --jp-warn-color3: var(--md-orange-100);\n\n --jp-error-color0: var(--md-red-900);\n --jp-error-color1: var(--md-red-700);\n --jp-error-color2: var(--md-red-300);\n --jp-error-color3: var(--md-red-100);\n\n --jp-success-color0: var(--md-green-900);\n --jp-success-color1: var(--md-green-700);\n --jp-success-color2: var(--md-green-300);\n --jp-success-color3: var(--md-green-100);\n\n --jp-info-color0: var(--md-cyan-900);\n --jp-info-color1: var(--md-cyan-700);\n --jp-info-color2: var(--md-cyan-300);\n --jp-info-color3: var(--md-cyan-100);\n\n /* Cell specific styles */\n\n --jp-cell-padding: 5px;\n\n --jp-cell-collapser-width: 8px;\n --jp-cell-collapser-min-height: 20px;\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\n\n --jp-cell-editor-background: var(--md-grey-100);\n --jp-cell-editor-border-color: var(--md-grey-300);\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-cell-editor-active-background: var(--jp-layout-color0);\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\n\n --jp-cell-prompt-width: 64px;\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\n --jp-cell-prompt-letter-spacing: 0px;\n --jp-cell-prompt-opacity: 1;\n --jp-cell-prompt-not-active-opacity: 0.5;\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\n /* A custom blend of MD grey and blue 600\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\n --jp-cell-inprompt-font-color: #307fc1;\n /* A custom blend of MD grey and orange 600\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\n --jp-cell-outprompt-font-color: #bf5b3d;\n\n /* Notebook specific styles */\n\n --jp-notebook-padding: 10px;\n --jp-notebook-select-background: var(--jp-layout-color1);\n --jp-notebook-multiselected-color: var(--md-blue-50);\n\n /* The scroll padding is calculated to fill enough space at the bottom of the\n notebook to show one single-line cell (with appropriate padding) at the top\n when the notebook is scrolled all the way to the bottom. We also subtract one\n pixel so that no scrollbar appears if we have just one single-line cell in the\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\n */\n --jp-notebook-scroll-padding: calc(\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\n );\n\n /* Rendermime styles */\n\n --jp-rendermime-error-background: #fdd;\n --jp-rendermime-table-row-background: var(--md-grey-100);\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\n\n /* Dialog specific styles */\n\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\n\n /* Console specific styles */\n\n --jp-console-padding: 10px;\n\n /* Toolbar specific styles */\n\n --jp-toolbar-border-color: var(--jp-border-color1);\n --jp-toolbar-micro-height: 8px;\n --jp-toolbar-background: var(--jp-layout-color1);\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\n --jp-toolbar-active-background: var(--md-grey-300);\n\n /* Statusbar specific styles */\n\n --jp-statusbar-height: 24px;\n\n /* Input field styles */\n\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-input-active-background: var(--jp-layout-color1);\n --jp-input-hover-background: var(--jp-layout-color1);\n --jp-input-background: var(--md-grey-100);\n --jp-input-border-color: var(--jp-inverse-border-color);\n --jp-input-active-border-color: var(--jp-brand-color1);\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\n\n /* General editor styles */\n\n --jp-editor-selected-background: #d9d9d9;\n --jp-editor-selected-focused-background: #d7d4f0;\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\n\n /* Code mirror specific styles */\n\n --jp-mirror-editor-keyword-color: #008000;\n --jp-mirror-editor-atom-color: #88f;\n --jp-mirror-editor-number-color: #080;\n --jp-mirror-editor-def-color: #00f;\n --jp-mirror-editor-variable-color: var(--md-grey-900);\n --jp-mirror-editor-variable-2-color: #05a;\n --jp-mirror-editor-variable-3-color: #085;\n --jp-mirror-editor-punctuation-color: #05a;\n --jp-mirror-editor-property-color: #05a;\n --jp-mirror-editor-operator-color: #aa22ff;\n --jp-mirror-editor-comment-color: #408080;\n --jp-mirror-editor-string-color: #ba2121;\n --jp-mirror-editor-string-2-color: #708;\n --jp-mirror-editor-meta-color: #aa22ff;\n --jp-mirror-editor-qualifier-color: #555;\n --jp-mirror-editor-builtin-color: #008000;\n --jp-mirror-editor-bracket-color: #997;\n --jp-mirror-editor-tag-color: #170;\n --jp-mirror-editor-attribute-color: #00c;\n --jp-mirror-editor-header-color: blue;\n --jp-mirror-editor-quote-color: #090;\n --jp-mirror-editor-link-color: #00c;\n --jp-mirror-editor-error-color: #f00;\n --jp-mirror-editor-hr-color: #999;\n\n /* Vega extension styles */\n\n --jp-vega-background: white;\n\n /* Sidebar-related styles */\n\n --jp-sidebar-min-width: 250px;\n\n /* Search-related styles */\n\n --jp-search-toggle-off-opacity: 0.5;\n --jp-search-toggle-hover-opacity: 0.8;\n --jp-search-toggle-on-opacity: 1;\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\n --jp-search-selected-match-color: black;\n --jp-search-unselected-match-background-color: var(\n --jp-inverse-layout-color0\n );\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\n\n /* Icon colors that work well with light or dark backgrounds */\n --jp-icon-contrast-color0: var(--md-purple-600);\n --jp-icon-contrast-color1: var(--md-green-600);\n --jp-icon-contrast-color2: var(--md-pink-600);\n --jp-icon-contrast-color3: var(--md-blue-600);\n}\n\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Set the default typography for monospace elements */\ntt,\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-code-line-height);\n}\n\n", "",{"version":3,"sources":["webpack://./style/base.css"],"names":[],"mappings":"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","sourcesContent":["/*\n See the JupyterLab Developer Guide for useful CSS Patterns:\n\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\n*/\n.lds-ripple {\n display: flex;\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 80px;\n height: 80px;\n}\n.lds-ripple div {\n position: absolute; \n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n border: 4px solid rgb(245, 131, 55);\n opacity: 1;\n border-radius: 50%;\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n}\n.lds-ripple div:nth-child(2) {\n animation-delay: -0.5s;\n}\n@keyframes lds-ripple {\n 0% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 4.9% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 0;\n }\n 5% {\n left: 0; \n top: 0; \n right: 0; \n bottom: 0;\n margin: auto; \n width: 0;\n height: 0;\n opacity: 1;\n }\n 100% {\n top: 0px;\n left: 0px;\n width: 72px;\n height: 72px;\n opacity: 0;\n }\n}\n\n\n/* CSS */\n.button-62 {\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\n border: 0;\n border-radius: 12px;\n color: #FFFFFF;\n cursor: pointer;\n display: inline-block;\n font-family: -apple-system,system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n font-size: 16px;\n font-weight: 500;\n line-height: 2.5;\n outline: transparent;\n padding: 0 1rem;\n text-align: center;\n text-decoration: none;\n transition: box-shadow .2s ease-in-out;\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n white-space: nowrap;\n}\n\n.button-62:not([disabled]):focus {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.button-62:not([disabled]):hover {\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\n}\n\n.aselector select {\n background-color: initial;\n border: none;\n border-radius: 0;\n box-shadow: none;\n color: var(--jp-ui-font-color0);\n display: block;\n font-size: var(--jp-ui-font-size1);\n height: 24px;\n line-height: 14px;\n padding: 0 25px 0 10px;\n text-align: left;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n/* Use our own theme for hover and option styles */\n.aselector select:hover,\n.aselector select > option {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n}\nselect {\n box-sizing: border-box;\n}\n\n.font{\nbackground-color: initial;\nborder: none;\nheight: 21px;\nborder-radius: 0;\nfont-weight:500;\ncolor: var(--jp-ui-font-color0);\ndisplay: block;\nline-height: 22.5px;\npadding: 0 25px 0 10px;\nfont-size: var(--jp-ui-font-size1);\n}\n.wrapper {\n display: flex;\n}\n.f1ozlkqi {\n pointer-events: none;\n}\n\n.palybutton{\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\n}\n.loading{\n \n background-image: url(\"data:image/svg+xml,\");\n background-size: contain; \n}\n\n.dialog{\nbody {\n margin: 0;\n height: 100vh;\n width:600px;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n font-family: \"Poppins\", sans-serif;\n background: #e3d0b6;\n}\n\n#cookie-policy {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 460px;\n height: 600px;\n background: #f3efe6;\n border-radius: 12px;\n transform: scale(.8);\n}\n\n#cookie-wrapper {\n height: 240px;\n width: 240px;\n margin: 30px 0;\n position: relative;\n left: -40px;\n}\n\nh1 {\n color: #6c3a1f;\n text-align: center;\n font-size: 36px;\n margin: 0;\n}\n\np {\n color: #a28561;\n font-size: 14px;\n margin-top: 0;\n padding: 0 60px;\n text-align: center;\n}\na {\n margin-top: 18px;\n font-size: 14px;\n color: #a28561;\n text-decoration: none;\n pointer-events: none;\n}\na:hover {\n color: #846b4d;\n}\n\nspan {\n font-family: \"Amatic SC\", cursive;\n font-weight: 400;\n font-size: 20px;\n position: relative;\n top: -18px;\n left: 3px;\n color: #a28561; \n}\n\n#heart-no, #thought-heart-yes, #mouth, #face-no, #thought-1, #thought-2, #thought-heart-na, #q-mark, #eyes, #leg-l, #leg-r {\n opacity: 0;\n}\n}\n.dia_button {\n color: white;\n background: #dd794a;\n margin-top: 12px;\n cursor: pointer;\n font-size: 24px;\n font-family: \"Poppins\", sans-serif;\n border-radius: 9px;\n border: none;\n width: 72%;\n padding: 12px 0;\n transition: 150ms ease-out;\n pointer-events: none;\n}\n\n.dia_button:hover {\n background: #d66029;\n}\n\n.pad{\n padding-left:6%\n}\n\n:root {\n /* Elevation\n *\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\n *\n * https://github.com/material-components/material-components-web\n * https://material-components-web.appspot.com/elevation.html\n */\n\n --jp-shadow-base-lightness: 0;\n --jp-shadow-umbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.2\n );\n --jp-shadow-penumbra-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.14\n );\n --jp-shadow-ambient-color: rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.12\n );\n --jp-elevation-z0: none;\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\n\n /* Borders\n *\n * The following variables, specify the visual styling of borders in JupyterLab.\n */\n\n --jp-border-width: 1px;\n --jp-border-color0: var(--md-grey-400);\n --jp-border-color1: var(--md-grey-400);\n --jp-border-color2: var(--md-grey-300);\n --jp-border-color3: var(--md-grey-200);\n --jp-inverse-border-color: var(--md-grey-600);\n --jp-border-radius: 2px;\n\n /* UI Fonts\n *\n * The UI font CSS variables are used for the typography all of the JupyterLab\n * user interface elements that are not directly user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-ui-font-scale-factor: 1.2;\n --jp-ui-font-size0: 0.83333em;\n --jp-ui-font-size1: 13px; /* Base font size */\n --jp-ui-font-size2: 1.2em;\n --jp-ui-font-size3: 1.44em;\n\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n /*\n * Use these font colors against the corresponding main layout colors.\n * In a light theme, these go from dark to light.\n */\n\n /* Defaults use Material Design specification */\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\n\n /*\n * Use these against the brand/accent/warn/error colors.\n * These will typically go from light to darker, in both a dark and light theme.\n */\n\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\n\n /* Content Fonts\n *\n * Content font variables are used for typography of user generated content.\n *\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\n * is applied to a parent element. When children elements, such as headings, are sized\n * in em all things will be computed relative to that body size.\n */\n\n --jp-content-line-height: 1.6;\n --jp-content-font-scale-factor: 1.2;\n --jp-content-font-size0: 0.83333em;\n --jp-content-font-size1: 14px; /* Base font size */\n --jp-content-font-size2: 1.2em;\n --jp-content-font-size3: 1.44em;\n --jp-content-font-size4: 1.728em;\n --jp-content-font-size5: 2.0736em;\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-content-presentation-font-size1: 17px;\n\n --jp-content-heading-line-height: 1;\n --jp-content-heading-margin-top: 1.2em;\n --jp-content-heading-margin-bottom: 0.8em;\n --jp-content-heading-font-weight: 500;\n\n /* Defaults use Material Design specification */\n --jp-content-font-color0: rgba(0, 0, 0, 1);\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\n\n --jp-content-link-color: var(--md-blue-700);\n\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n\n /*\n * Code Fonts\n *\n * Code font variables are used for typography of code and other monospaces content.\n */\n\n --jp-code-font-size: 13px;\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\n --jp-code-font-family: var(--jp-code-font-family-default);\n\n /* This gives a magnification of about 125% in presentation mode over normal. */\n --jp-code-presentation-font-size: 16px;\n\n /* may need to tweak cursor width if you change font size */\n --jp-code-cursor-width0: 1.4px;\n --jp-code-cursor-width1: 2px;\n --jp-code-cursor-width2: 4px;\n\n /* Layout\n *\n * The following are the main layout colors use in JupyterLab. In a light\n * theme these would go from light to dark.\n */\n\n --jp-layout-color0: white;\n --jp-layout-color1: white;\n --jp-layout-color2: var(--md-grey-200);\n --jp-layout-color3: var(--md-grey-400);\n --jp-layout-color4: var(--md-grey-600);\n\n /* Inverse Layout\n *\n * The following are the inverse layout colors use in JupyterLab. In a light\n * theme these would go from dark to light.\n */\n\n --jp-inverse-layout-color0: #111111;\n --jp-inverse-layout-color1: var(--md-grey-900);\n --jp-inverse-layout-color2: var(--md-grey-800);\n --jp-inverse-layout-color3: var(--md-grey-700);\n --jp-inverse-layout-color4: var(--md-grey-600);\n\n /* Brand/accent */\n\n --jp-brand-color0: var(--md-blue-900);\n --jp-brand-color1: var(--md-blue-700);\n --jp-brand-color2: var(--md-blue-300);\n --jp-brand-color3: var(--md-blue-100);\n --jp-brand-color4: var(--md-blue-50);\n\n --jp-accent-color0: var(--md-green-900);\n --jp-accent-color1: var(--md-green-700);\n --jp-accent-color2: var(--md-green-300);\n --jp-accent-color3: var(--md-green-100);\n\n /* State colors (warn, error, success, info) */\n\n --jp-warn-color0: var(--md-orange-900);\n --jp-warn-color1: var(--md-orange-700);\n --jp-warn-color2: var(--md-orange-300);\n --jp-warn-color3: var(--md-orange-100);\n\n --jp-error-color0: var(--md-red-900);\n --jp-error-color1: var(--md-red-700);\n --jp-error-color2: var(--md-red-300);\n --jp-error-color3: var(--md-red-100);\n\n --jp-success-color0: var(--md-green-900);\n --jp-success-color1: var(--md-green-700);\n --jp-success-color2: var(--md-green-300);\n --jp-success-color3: var(--md-green-100);\n\n --jp-info-color0: var(--md-cyan-900);\n --jp-info-color1: var(--md-cyan-700);\n --jp-info-color2: var(--md-cyan-300);\n --jp-info-color3: var(--md-cyan-100);\n\n /* Cell specific styles */\n\n --jp-cell-padding: 5px;\n\n --jp-cell-collapser-width: 8px;\n --jp-cell-collapser-min-height: 20px;\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\n\n --jp-cell-editor-background: var(--md-grey-100);\n --jp-cell-editor-border-color: var(--md-grey-300);\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-cell-editor-active-background: var(--jp-layout-color0);\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\n\n --jp-cell-prompt-width: 64px;\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\n --jp-cell-prompt-letter-spacing: 0px;\n --jp-cell-prompt-opacity: 1;\n --jp-cell-prompt-not-active-opacity: 0.5;\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\n /* A custom blend of MD grey and blue 600\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\n --jp-cell-inprompt-font-color: #307fc1;\n /* A custom blend of MD grey and orange 600\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\n --jp-cell-outprompt-font-color: #bf5b3d;\n\n /* Notebook specific styles */\n\n --jp-notebook-padding: 10px;\n --jp-notebook-select-background: var(--jp-layout-color1);\n --jp-notebook-multiselected-color: var(--md-blue-50);\n\n /* The scroll padding is calculated to fill enough space at the bottom of the\n notebook to show one single-line cell (with appropriate padding) at the top\n when the notebook is scrolled all the way to the bottom. We also subtract one\n pixel so that no scrollbar appears if we have just one single-line cell in the\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\n */\n --jp-notebook-scroll-padding: calc(\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\n );\n\n /* Rendermime styles */\n\n --jp-rendermime-error-background: #fdd;\n --jp-rendermime-table-row-background: var(--md-grey-100);\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\n\n /* Dialog specific styles */\n\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\n\n /* Console specific styles */\n\n --jp-console-padding: 10px;\n\n /* Toolbar specific styles */\n\n --jp-toolbar-border-color: var(--jp-border-color1);\n --jp-toolbar-micro-height: 8px;\n --jp-toolbar-background: var(--jp-layout-color1);\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\n --jp-toolbar-active-background: var(--md-grey-300);\n\n /* Statusbar specific styles */\n\n --jp-statusbar-height: 24px;\n\n /* Input field styles */\n\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\n --jp-input-active-background: var(--jp-layout-color1);\n --jp-input-hover-background: var(--jp-layout-color1);\n --jp-input-background: var(--md-grey-100);\n --jp-input-border-color: var(--jp-inverse-border-color);\n --jp-input-active-border-color: var(--jp-brand-color1);\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\n\n /* General editor styles */\n\n --jp-editor-selected-background: #d9d9d9;\n --jp-editor-selected-focused-background: #d7d4f0;\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\n\n /* Code mirror specific styles */\n\n --jp-mirror-editor-keyword-color: #008000;\n --jp-mirror-editor-atom-color: #88f;\n --jp-mirror-editor-number-color: #080;\n --jp-mirror-editor-def-color: #00f;\n --jp-mirror-editor-variable-color: var(--md-grey-900);\n --jp-mirror-editor-variable-2-color: #05a;\n --jp-mirror-editor-variable-3-color: #085;\n --jp-mirror-editor-punctuation-color: #05a;\n --jp-mirror-editor-property-color: #05a;\n --jp-mirror-editor-operator-color: #aa22ff;\n --jp-mirror-editor-comment-color: #408080;\n --jp-mirror-editor-string-color: #ba2121;\n --jp-mirror-editor-string-2-color: #708;\n --jp-mirror-editor-meta-color: #aa22ff;\n --jp-mirror-editor-qualifier-color: #555;\n --jp-mirror-editor-builtin-color: #008000;\n --jp-mirror-editor-bracket-color: #997;\n --jp-mirror-editor-tag-color: #170;\n --jp-mirror-editor-attribute-color: #00c;\n --jp-mirror-editor-header-color: blue;\n --jp-mirror-editor-quote-color: #090;\n --jp-mirror-editor-link-color: #00c;\n --jp-mirror-editor-error-color: #f00;\n --jp-mirror-editor-hr-color: #999;\n\n /* Vega extension styles */\n\n --jp-vega-background: white;\n\n /* Sidebar-related styles */\n\n --jp-sidebar-min-width: 250px;\n\n /* Search-related styles */\n\n --jp-search-toggle-off-opacity: 0.5;\n --jp-search-toggle-hover-opacity: 0.8;\n --jp-search-toggle-on-opacity: 1;\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\n --jp-search-selected-match-color: black;\n --jp-search-unselected-match-background-color: var(\n --jp-inverse-layout-color0\n );\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\n\n /* Icon colors that work well with light or dark backgrounds */\n --jp-icon-contrast-color0: var(--md-purple-600);\n --jp-icon-contrast-color1: var(--md-green-600);\n --jp-icon-contrast-color2: var(--md-pink-600);\n --jp-icon-contrast-color3: var(--md-blue-600);\n}\n\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Set the default typography for monospace elements */\ntt,\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-code-line-height);\n}\n\n"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./style/base.css": +/*!************************!*\ + !*** ./style/base.css ***! + \************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_base_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./base.css */ "./node_modules/css-loader/dist/cjs.js!./style/base.css"); + + + +var options = {}; + +options.insert = "head"; +options.singleton = false; + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_base_css__WEBPACK_IMPORTED_MODULE_1__["default"], options); + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_base_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {}); + +/***/ }), + +/***/ "./style/index.js": +/*!************************!*\ + !*** ./style/index.js ***! + \************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _base_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base.css */ "./style/base.css"); + + + +/***/ }) + +}]); +//# sourceMappingURL=style_index_js.64a99c20bfaa1b52d477.js.map \ No newline at end of file diff --git a/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style_index_js.64a99c20bfaa1b52d477.js.map b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style_index_js.64a99c20bfaa1b52d477.js.map new file mode 100644 index 00000000000..e38154f761e --- /dev/null +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/style_index_js.64a99c20bfaa1b52d477.js.map @@ -0,0 +1 @@ +{"version":3,"file":"style_index_js.64a99c20bfaa1b52d477.js","mappings":"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","sources":["webpack://neural_compressor_ext_lab/./style/base.css","webpack://neural_compressor_ext_lab/./style/base.css?1944","webpack://neural_compressor_ext_lab/./style/index.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n See the JupyterLab Developer Guide for useful CSS Patterns:\\n\\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\\n*/\\n.lds-ripple {\\n display: flex;\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 80px;\\n height: 80px;\\n}\\n.lds-ripple div {\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n border: 4px solid rgb(245, 131, 55);\\n opacity: 1;\\n border-radius: 50%;\\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\\n}\\n.lds-ripple div:nth-child(2) {\\n animation-delay: -0.5s;\\n}\\n@keyframes lds-ripple {\\n 0% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 4.9% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 5% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 1;\\n }\\n 100% {\\n top: 0px;\\n left: 0px;\\n width: 72px;\\n height: 72px;\\n opacity: 0;\\n }\\n}\\n\\n\\n/* CSS */\\n.button-62 {\\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\\n border: 0;\\n border-radius: 12px;\\n color: #FFFFFF;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system,system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif;\\n font-size: 16px;\\n font-weight: 500;\\n line-height: 2.5;\\n outline: transparent;\\n padding: 0 1rem;\\n text-align: center;\\n text-decoration: none;\\n transition: box-shadow .2s ease-in-out;\\n user-select: none;\\n -webkit-user-select: none;\\n touch-action: manipulation;\\n white-space: nowrap;\\n}\\n\\n.button-62:not([disabled]):focus {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.button-62:not([disabled]):hover {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.aselector select {\\n background-color: initial;\\n border: none;\\n border-radius: 0;\\n box-shadow: none;\\n color: var(--jp-ui-font-color0);\\n display: block;\\n font-size: var(--jp-ui-font-size1);\\n height: 24px;\\n line-height: 14px;\\n padding: 0 25px 0 10px;\\n text-align: left;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n}\\n\\n/* Use our own theme for hover and option styles */\\n.aselector select:hover,\\n.aselector select > option {\\n background-color: var(--jp-layout-color2);\\n color: var(--jp-ui-font-color0);\\n}\\nselect {\\n box-sizing: border-box;\\n}\\n\\n.font{\\nbackground-color: initial;\\nborder: none;\\nheight: 21px;\\nborder-radius: 0;\\nfont-weight:500;\\ncolor: var(--jp-ui-font-color0);\\ndisplay: block;\\nline-height: 22.5px;\\npadding: 0 25px 0 10px;\\nfont-size: var(--jp-ui-font-size1);\\n}\\n.wrapper {\\n display: flex;\\n}\\n.f1ozlkqi {\\n pointer-events: none;\\n}\\n\\n.palybutton{\\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\\n}\\n.loading{\\n \\n background-image: url(\\\"data:image/svg+xml,\\\");\\n background-size: contain; \\n}\\n\\n.dialog{\\nbody {\\n margin: 0;\\n height: 100vh;\\n width:600px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n font-family: \\\"Poppins\\\", sans-serif;\\n background: #e3d0b6;\\n}\\n\\n#cookie-policy {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n width: 460px;\\n height: 600px;\\n background: #f3efe6;\\n border-radius: 12px;\\n transform: scale(.8);\\n}\\n\\n#cookie-wrapper {\\n height: 240px;\\n width: 240px;\\n margin: 30px 0;\\n position: relative;\\n left: -40px;\\n}\\n\\nh1 {\\n color: #6c3a1f;\\n text-align: center;\\n font-size: 36px;\\n margin: 0;\\n}\\n\\np {\\n color: #a28561;\\n font-size: 14px;\\n margin-top: 0;\\n padding: 0 60px;\\n text-align: center;\\n}\\na {\\n margin-top: 18px;\\n font-size: 14px;\\n color: #a28561;\\n text-decoration: none;\\n pointer-events: none;\\n}\\na:hover {\\n color: #846b4d;\\n}\\n\\nspan {\\n font-family: \\\"Amatic SC\\\", cursive;\\n font-weight: 400;\\n font-size: 20px;\\n position: relative;\\n top: -18px;\\n left: 3px;\\n color: #a28561; \\n}\\n\\n#heart-no, #thought-heart-yes, #mouth, #face-no, #thought-1, #thought-2, #thought-heart-na, #q-mark, #eyes, #leg-l, #leg-r {\\n opacity: 0;\\n}\\n}\\n.dia_button {\\n color: white;\\n background: #dd794a;\\n margin-top: 12px;\\n cursor: pointer;\\n font-size: 24px;\\n font-family: \\\"Poppins\\\", sans-serif;\\n border-radius: 9px;\\n border: none;\\n width: 72%;\\n padding: 12px 0;\\n transition: 150ms ease-out;\\n pointer-events: none;\\n}\\n\\n.dia_button:hover {\\n background: #d66029;\\n}\\n\\n.pad{\\n padding-left:6%\\n}\\n\\n:root {\\n /* Elevation\\n *\\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\\n *\\n * https://github.com/material-components/material-components-web\\n * https://material-components-web.appspot.com/elevation.html\\n */\\n\\n --jp-shadow-base-lightness: 0;\\n --jp-shadow-umbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.2\\n );\\n --jp-shadow-penumbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.14\\n );\\n --jp-shadow-ambient-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.12\\n );\\n --jp-elevation-z0: none;\\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\\n\\n /* Borders\\n *\\n * The following variables, specify the visual styling of borders in JupyterLab.\\n */\\n\\n --jp-border-width: 1px;\\n --jp-border-color0: var(--md-grey-400);\\n --jp-border-color1: var(--md-grey-400);\\n --jp-border-color2: var(--md-grey-300);\\n --jp-border-color3: var(--md-grey-200);\\n --jp-inverse-border-color: var(--md-grey-600);\\n --jp-border-radius: 2px;\\n\\n /* UI Fonts\\n *\\n * The UI font CSS variables are used for the typography all of the JupyterLab\\n * user interface elements that are not directly user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-ui-font-scale-factor: 1.2;\\n --jp-ui-font-size0: 0.83333em;\\n --jp-ui-font-size1: 13px; /* Base font size */\\n --jp-ui-font-size2: 1.2em;\\n --jp-ui-font-size3: 1.44em;\\n\\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\\n\\n /*\\n * Use these font colors against the corresponding main layout colors.\\n * In a light theme, these go from dark to light.\\n */\\n\\n /* Defaults use Material Design specification */\\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\\n\\n /*\\n * Use these against the brand/accent/warn/error colors.\\n * These will typically go from light to darker, in both a dark and light theme.\\n */\\n\\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\\n\\n /* Content Fonts\\n *\\n * Content font variables are used for typography of user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-content-line-height: 1.6;\\n --jp-content-font-scale-factor: 1.2;\\n --jp-content-font-size0: 0.83333em;\\n --jp-content-font-size1: 14px; /* Base font size */\\n --jp-content-font-size2: 1.2em;\\n --jp-content-font-size3: 1.44em;\\n --jp-content-font-size4: 1.728em;\\n --jp-content-font-size5: 2.0736em;\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-content-presentation-font-size1: 17px;\\n\\n --jp-content-heading-line-height: 1;\\n --jp-content-heading-margin-top: 1.2em;\\n --jp-content-heading-margin-bottom: 0.8em;\\n --jp-content-heading-font-weight: 500;\\n\\n /* Defaults use Material Design specification */\\n --jp-content-font-color0: rgba(0, 0, 0, 1);\\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\\n\\n --jp-content-link-color: var(--md-blue-700);\\n\\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\\n 'Segoe UI Symbol';\\n\\n /*\\n * Code Fonts\\n *\\n * Code font variables are used for typography of code and other monospaces content.\\n */\\n\\n --jp-code-font-size: 13px;\\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\\n --jp-code-font-family: var(--jp-code-font-family-default);\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-code-presentation-font-size: 16px;\\n\\n /* may need to tweak cursor width if you change font size */\\n --jp-code-cursor-width0: 1.4px;\\n --jp-code-cursor-width1: 2px;\\n --jp-code-cursor-width2: 4px;\\n\\n /* Layout\\n *\\n * The following are the main layout colors use in JupyterLab. In a light\\n * theme these would go from light to dark.\\n */\\n\\n --jp-layout-color0: white;\\n --jp-layout-color1: white;\\n --jp-layout-color2: var(--md-grey-200);\\n --jp-layout-color3: var(--md-grey-400);\\n --jp-layout-color4: var(--md-grey-600);\\n\\n /* Inverse Layout\\n *\\n * The following are the inverse layout colors use in JupyterLab. In a light\\n * theme these would go from dark to light.\\n */\\n\\n --jp-inverse-layout-color0: #111111;\\n --jp-inverse-layout-color1: var(--md-grey-900);\\n --jp-inverse-layout-color2: var(--md-grey-800);\\n --jp-inverse-layout-color3: var(--md-grey-700);\\n --jp-inverse-layout-color4: var(--md-grey-600);\\n\\n /* Brand/accent */\\n\\n --jp-brand-color0: var(--md-blue-900);\\n --jp-brand-color1: var(--md-blue-700);\\n --jp-brand-color2: var(--md-blue-300);\\n --jp-brand-color3: var(--md-blue-100);\\n --jp-brand-color4: var(--md-blue-50);\\n\\n --jp-accent-color0: var(--md-green-900);\\n --jp-accent-color1: var(--md-green-700);\\n --jp-accent-color2: var(--md-green-300);\\n --jp-accent-color3: var(--md-green-100);\\n\\n /* State colors (warn, error, success, info) */\\n\\n --jp-warn-color0: var(--md-orange-900);\\n --jp-warn-color1: var(--md-orange-700);\\n --jp-warn-color2: var(--md-orange-300);\\n --jp-warn-color3: var(--md-orange-100);\\n\\n --jp-error-color0: var(--md-red-900);\\n --jp-error-color1: var(--md-red-700);\\n --jp-error-color2: var(--md-red-300);\\n --jp-error-color3: var(--md-red-100);\\n\\n --jp-success-color0: var(--md-green-900);\\n --jp-success-color1: var(--md-green-700);\\n --jp-success-color2: var(--md-green-300);\\n --jp-success-color3: var(--md-green-100);\\n\\n --jp-info-color0: var(--md-cyan-900);\\n --jp-info-color1: var(--md-cyan-700);\\n --jp-info-color2: var(--md-cyan-300);\\n --jp-info-color3: var(--md-cyan-100);\\n\\n /* Cell specific styles */\\n\\n --jp-cell-padding: 5px;\\n\\n --jp-cell-collapser-width: 8px;\\n --jp-cell-collapser-min-height: 20px;\\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\\n\\n --jp-cell-editor-background: var(--md-grey-100);\\n --jp-cell-editor-border-color: var(--md-grey-300);\\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-cell-editor-active-background: var(--jp-layout-color0);\\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\\n\\n --jp-cell-prompt-width: 64px;\\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\\n --jp-cell-prompt-letter-spacing: 0px;\\n --jp-cell-prompt-opacity: 1;\\n --jp-cell-prompt-not-active-opacity: 0.5;\\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\\n /* A custom blend of MD grey and blue 600\\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\\n --jp-cell-inprompt-font-color: #307fc1;\\n /* A custom blend of MD grey and orange 600\\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\\n --jp-cell-outprompt-font-color: #bf5b3d;\\n\\n /* Notebook specific styles */\\n\\n --jp-notebook-padding: 10px;\\n --jp-notebook-select-background: var(--jp-layout-color1);\\n --jp-notebook-multiselected-color: var(--md-blue-50);\\n\\n /* The scroll padding is calculated to fill enough space at the bottom of the\\n notebook to show one single-line cell (with appropriate padding) at the top\\n when the notebook is scrolled all the way to the bottom. We also subtract one\\n pixel so that no scrollbar appears if we have just one single-line cell in the\\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\\n */\\n --jp-notebook-scroll-padding: calc(\\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\\n );\\n\\n /* Rendermime styles */\\n\\n --jp-rendermime-error-background: #fdd;\\n --jp-rendermime-table-row-background: var(--md-grey-100);\\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\\n\\n /* Dialog specific styles */\\n\\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\\n\\n /* Console specific styles */\\n\\n --jp-console-padding: 10px;\\n\\n /* Toolbar specific styles */\\n\\n --jp-toolbar-border-color: var(--jp-border-color1);\\n --jp-toolbar-micro-height: 8px;\\n --jp-toolbar-background: var(--jp-layout-color1);\\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\\n --jp-toolbar-active-background: var(--md-grey-300);\\n\\n /* Statusbar specific styles */\\n\\n --jp-statusbar-height: 24px;\\n\\n /* Input field styles */\\n\\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-input-active-background: var(--jp-layout-color1);\\n --jp-input-hover-background: var(--jp-layout-color1);\\n --jp-input-background: var(--md-grey-100);\\n --jp-input-border-color: var(--jp-inverse-border-color);\\n --jp-input-active-border-color: var(--jp-brand-color1);\\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\\n\\n /* General editor styles */\\n\\n --jp-editor-selected-background: #d9d9d9;\\n --jp-editor-selected-focused-background: #d7d4f0;\\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\\n\\n /* Code mirror specific styles */\\n\\n --jp-mirror-editor-keyword-color: #008000;\\n --jp-mirror-editor-atom-color: #88f;\\n --jp-mirror-editor-number-color: #080;\\n --jp-mirror-editor-def-color: #00f;\\n --jp-mirror-editor-variable-color: var(--md-grey-900);\\n --jp-mirror-editor-variable-2-color: #05a;\\n --jp-mirror-editor-variable-3-color: #085;\\n --jp-mirror-editor-punctuation-color: #05a;\\n --jp-mirror-editor-property-color: #05a;\\n --jp-mirror-editor-operator-color: #aa22ff;\\n --jp-mirror-editor-comment-color: #408080;\\n --jp-mirror-editor-string-color: #ba2121;\\n --jp-mirror-editor-string-2-color: #708;\\n --jp-mirror-editor-meta-color: #aa22ff;\\n --jp-mirror-editor-qualifier-color: #555;\\n --jp-mirror-editor-builtin-color: #008000;\\n --jp-mirror-editor-bracket-color: #997;\\n --jp-mirror-editor-tag-color: #170;\\n --jp-mirror-editor-attribute-color: #00c;\\n --jp-mirror-editor-header-color: blue;\\n --jp-mirror-editor-quote-color: #090;\\n --jp-mirror-editor-link-color: #00c;\\n --jp-mirror-editor-error-color: #f00;\\n --jp-mirror-editor-hr-color: #999;\\n\\n /* Vega extension styles */\\n\\n --jp-vega-background: white;\\n\\n /* Sidebar-related styles */\\n\\n --jp-sidebar-min-width: 250px;\\n\\n /* Search-related styles */\\n\\n --jp-search-toggle-off-opacity: 0.5;\\n --jp-search-toggle-hover-opacity: 0.8;\\n --jp-search-toggle-on-opacity: 1;\\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\\n --jp-search-selected-match-color: black;\\n --jp-search-unselected-match-background-color: var(\\n --jp-inverse-layout-color0\\n );\\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\\n\\n /* Icon colors that work well with light or dark backgrounds */\\n --jp-icon-contrast-color0: var(--md-purple-600);\\n --jp-icon-contrast-color1: var(--md-green-600);\\n --jp-icon-contrast-color2: var(--md-pink-600);\\n --jp-icon-contrast-color3: var(--md-blue-600);\\n}\\n\\n/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n/* Set the default typography for monospace elements */\\ntt,\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: var(--jp-code-font-family);\\n font-size: var(--jp-code-font-size);\\n line-height: var(--jp-code-line-height);\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./style/base.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*\\n See the JupyterLab Developer Guide for useful CSS Patterns:\\n\\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\\n*/\\n.lds-ripple {\\n display: flex;\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 80px;\\n height: 80px;\\n}\\n.lds-ripple div {\\n position: absolute; \\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n border: 4px solid rgb(245, 131, 55);\\n opacity: 1;\\n border-radius: 50%;\\n animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\\n}\\n.lds-ripple div:nth-child(2) {\\n animation-delay: -0.5s;\\n}\\n@keyframes lds-ripple {\\n 0% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 4.9% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 0;\\n }\\n 5% {\\n left: 0; \\n top: 0; \\n right: 0; \\n bottom: 0;\\n margin: auto; \\n width: 0;\\n height: 0;\\n opacity: 1;\\n }\\n 100% {\\n top: 0px;\\n left: 0px;\\n width: 72px;\\n height: 72px;\\n opacity: 0;\\n }\\n}\\n\\n\\n/* CSS */\\n.button-62 {\\n background: linear-gradient(to bottom right, #EF4765, #FF9A5A);\\n border: 0;\\n border-radius: 12px;\\n color: #FFFFFF;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system,system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif;\\n font-size: 16px;\\n font-weight: 500;\\n line-height: 2.5;\\n outline: transparent;\\n padding: 0 1rem;\\n text-align: center;\\n text-decoration: none;\\n transition: box-shadow .2s ease-in-out;\\n user-select: none;\\n -webkit-user-select: none;\\n touch-action: manipulation;\\n white-space: nowrap;\\n}\\n\\n.button-62:not([disabled]):focus {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.button-62:not([disabled]):hover {\\n box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.5), -.125rem -.125rem 1rem rgba(239, 71, 101, 0.5), .125rem .125rem 1rem rgba(255, 154, 90, 0.5);\\n}\\n\\n.aselector select {\\n background-color: initial;\\n border: none;\\n border-radius: 0;\\n box-shadow: none;\\n color: var(--jp-ui-font-color0);\\n display: block;\\n font-size: var(--jp-ui-font-size1);\\n height: 24px;\\n line-height: 14px;\\n padding: 0 25px 0 10px;\\n text-align: left;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n}\\n\\n/* Use our own theme for hover and option styles */\\n.aselector select:hover,\\n.aselector select > option {\\n background-color: var(--jp-layout-color2);\\n color: var(--jp-ui-font-color0);\\n}\\nselect {\\n box-sizing: border-box;\\n}\\n\\n.font{\\nbackground-color: initial;\\nborder: none;\\nheight: 21px;\\nborder-radius: 0;\\nfont-weight:500;\\ncolor: var(--jp-ui-font-color0);\\ndisplay: block;\\nline-height: 22.5px;\\npadding: 0 25px 0 10px;\\nfont-size: var(--jp-ui-font-size1);\\n}\\n.wrapper {\\n display: flex;\\n}\\n.f1ozlkqi {\\n pointer-events: none;\\n}\\n\\n.palybutton{\\n background-image: '/home2/longxin/Neural_Coder_EXT/style/icons8-circled-play.gif';\\n}\\n.loading{\\n \\n background-image: url(\\\"data:image/svg+xml,\\\");\\n background-size: contain; \\n}\\n\\n.dialog{\\nbody {\\n margin: 0;\\n height: 100vh;\\n width:600px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n font-family: \\\"Poppins\\\", sans-serif;\\n background: #e3d0b6;\\n}\\n\\n#cookie-policy {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n width: 460px;\\n height: 600px;\\n background: #f3efe6;\\n border-radius: 12px;\\n transform: scale(.8);\\n}\\n\\n#cookie-wrapper {\\n height: 240px;\\n width: 240px;\\n margin: 30px 0;\\n position: relative;\\n left: -40px;\\n}\\n\\nh1 {\\n color: #6c3a1f;\\n text-align: center;\\n font-size: 36px;\\n margin: 0;\\n}\\n\\np {\\n color: #a28561;\\n font-size: 14px;\\n margin-top: 0;\\n padding: 0 60px;\\n text-align: center;\\n}\\na {\\n margin-top: 18px;\\n font-size: 14px;\\n color: #a28561;\\n text-decoration: none;\\n pointer-events: none;\\n}\\na:hover {\\n color: #846b4d;\\n}\\n\\nspan {\\n font-family: \\\"Amatic SC\\\", cursive;\\n font-weight: 400;\\n font-size: 20px;\\n position: relative;\\n top: -18px;\\n left: 3px;\\n color: #a28561; \\n}\\n\\n#heart-no, #thought-heart-yes, #mouth, #face-no, #thought-1, #thought-2, #thought-heart-na, #q-mark, #eyes, #leg-l, #leg-r {\\n opacity: 0;\\n}\\n}\\n.dia_button {\\n color: white;\\n background: #dd794a;\\n margin-top: 12px;\\n cursor: pointer;\\n font-size: 24px;\\n font-family: \\\"Poppins\\\", sans-serif;\\n border-radius: 9px;\\n border: none;\\n width: 72%;\\n padding: 12px 0;\\n transition: 150ms ease-out;\\n pointer-events: none;\\n}\\n\\n.dia_button:hover {\\n background: #d66029;\\n}\\n\\n.pad{\\n padding-left:6%\\n}\\n\\n:root {\\n /* Elevation\\n *\\n * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:\\n *\\n * https://github.com/material-components/material-components-web\\n * https://material-components-web.appspot.com/elevation.html\\n */\\n\\n --jp-shadow-base-lightness: 0;\\n --jp-shadow-umbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.2\\n );\\n --jp-shadow-penumbra-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.14\\n );\\n --jp-shadow-ambient-color: rgba(\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n var(--jp-shadow-base-lightness),\\n 0.12\\n );\\n --jp-elevation-z0: none;\\n --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),\\n 0px 1px 1px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 3px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),\\n 0px 2px 2px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 5px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),\\n 0px 4px 5px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 10px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),\\n 0px 6px 10px 0px var(--jp-shadow-penumbra-color),\\n 0px 1px 18px 0px var(--jp-shadow-ambient-color);\\n --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),\\n 0px 8px 10px 1px var(--jp-shadow-penumbra-color),\\n 0px 3px 14px 2px var(--jp-shadow-ambient-color);\\n --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),\\n 0px 12px 17px 2px var(--jp-shadow-penumbra-color),\\n 0px 5px 22px 4px var(--jp-shadow-ambient-color);\\n --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),\\n 0px 16px 24px 2px var(--jp-shadow-penumbra-color),\\n 0px 6px 30px 5px var(--jp-shadow-ambient-color);\\n --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),\\n 0px 20px 31px 3px var(--jp-shadow-penumbra-color),\\n 0px 8px 38px 7px var(--jp-shadow-ambient-color);\\n --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),\\n 0px 24px 38px 3px var(--jp-shadow-penumbra-color),\\n 0px 9px 46px 8px var(--jp-shadow-ambient-color);\\n\\n /* Borders\\n *\\n * The following variables, specify the visual styling of borders in JupyterLab.\\n */\\n\\n --jp-border-width: 1px;\\n --jp-border-color0: var(--md-grey-400);\\n --jp-border-color1: var(--md-grey-400);\\n --jp-border-color2: var(--md-grey-300);\\n --jp-border-color3: var(--md-grey-200);\\n --jp-inverse-border-color: var(--md-grey-600);\\n --jp-border-radius: 2px;\\n\\n /* UI Fonts\\n *\\n * The UI font CSS variables are used for the typography all of the JupyterLab\\n * user interface elements that are not directly user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-ui-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-ui-font-scale-factor: 1.2;\\n --jp-ui-font-size0: 0.83333em;\\n --jp-ui-font-size1: 13px; /* Base font size */\\n --jp-ui-font-size2: 1.2em;\\n --jp-ui-font-size3: 1.44em;\\n\\n --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\\n Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\\n\\n /*\\n * Use these font colors against the corresponding main layout colors.\\n * In a light theme, these go from dark to light.\\n */\\n\\n /* Defaults use Material Design specification */\\n --jp-ui-font-color0: rgba(0, 0, 0, 1);\\n --jp-ui-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-ui-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-ui-font-color3: rgba(0, 0, 0, 0.38);\\n\\n /*\\n * Use these against the brand/accent/warn/error colors.\\n * These will typically go from light to darker, in both a dark and light theme.\\n */\\n\\n --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);\\n --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);\\n --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);\\n\\n /* Content Fonts\\n *\\n * Content font variables are used for typography of user generated content.\\n *\\n * The font sizing here is done assuming that the body font size of --jp-content-font-size1\\n * is applied to a parent element. When children elements, such as headings, are sized\\n * in em all things will be computed relative to that body size.\\n */\\n\\n --jp-content-line-height: 1.6;\\n --jp-content-font-scale-factor: 1.2;\\n --jp-content-font-size0: 0.83333em;\\n --jp-content-font-size1: 14px; /* Base font size */\\n --jp-content-font-size2: 1.2em;\\n --jp-content-font-size3: 1.44em;\\n --jp-content-font-size4: 1.728em;\\n --jp-content-font-size5: 2.0736em;\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-content-presentation-font-size1: 17px;\\n\\n --jp-content-heading-line-height: 1;\\n --jp-content-heading-margin-top: 1.2em;\\n --jp-content-heading-margin-bottom: 0.8em;\\n --jp-content-heading-font-weight: 500;\\n\\n /* Defaults use Material Design specification */\\n --jp-content-font-color0: rgba(0, 0, 0, 1);\\n --jp-content-font-color1: rgba(0, 0, 0, 0.87);\\n --jp-content-font-color2: rgba(0, 0, 0, 0.54);\\n --jp-content-font-color3: rgba(0, 0, 0, 0.38);\\n\\n --jp-content-link-color: var(--md-blue-700);\\n\\n --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',\\n Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\\n 'Segoe UI Symbol';\\n\\n /*\\n * Code Fonts\\n *\\n * Code font variables are used for typography of code and other monospaces content.\\n */\\n\\n --jp-code-font-size: 13px;\\n --jp-code-line-height: 1.3077; /* 17px for 13px base */\\n --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */\\n --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;\\n --jp-code-font-family: var(--jp-code-font-family-default);\\n\\n /* This gives a magnification of about 125% in presentation mode over normal. */\\n --jp-code-presentation-font-size: 16px;\\n\\n /* may need to tweak cursor width if you change font size */\\n --jp-code-cursor-width0: 1.4px;\\n --jp-code-cursor-width1: 2px;\\n --jp-code-cursor-width2: 4px;\\n\\n /* Layout\\n *\\n * The following are the main layout colors use in JupyterLab. In a light\\n * theme these would go from light to dark.\\n */\\n\\n --jp-layout-color0: white;\\n --jp-layout-color1: white;\\n --jp-layout-color2: var(--md-grey-200);\\n --jp-layout-color3: var(--md-grey-400);\\n --jp-layout-color4: var(--md-grey-600);\\n\\n /* Inverse Layout\\n *\\n * The following are the inverse layout colors use in JupyterLab. In a light\\n * theme these would go from dark to light.\\n */\\n\\n --jp-inverse-layout-color0: #111111;\\n --jp-inverse-layout-color1: var(--md-grey-900);\\n --jp-inverse-layout-color2: var(--md-grey-800);\\n --jp-inverse-layout-color3: var(--md-grey-700);\\n --jp-inverse-layout-color4: var(--md-grey-600);\\n\\n /* Brand/accent */\\n\\n --jp-brand-color0: var(--md-blue-900);\\n --jp-brand-color1: var(--md-blue-700);\\n --jp-brand-color2: var(--md-blue-300);\\n --jp-brand-color3: var(--md-blue-100);\\n --jp-brand-color4: var(--md-blue-50);\\n\\n --jp-accent-color0: var(--md-green-900);\\n --jp-accent-color1: var(--md-green-700);\\n --jp-accent-color2: var(--md-green-300);\\n --jp-accent-color3: var(--md-green-100);\\n\\n /* State colors (warn, error, success, info) */\\n\\n --jp-warn-color0: var(--md-orange-900);\\n --jp-warn-color1: var(--md-orange-700);\\n --jp-warn-color2: var(--md-orange-300);\\n --jp-warn-color3: var(--md-orange-100);\\n\\n --jp-error-color0: var(--md-red-900);\\n --jp-error-color1: var(--md-red-700);\\n --jp-error-color2: var(--md-red-300);\\n --jp-error-color3: var(--md-red-100);\\n\\n --jp-success-color0: var(--md-green-900);\\n --jp-success-color1: var(--md-green-700);\\n --jp-success-color2: var(--md-green-300);\\n --jp-success-color3: var(--md-green-100);\\n\\n --jp-info-color0: var(--md-cyan-900);\\n --jp-info-color1: var(--md-cyan-700);\\n --jp-info-color2: var(--md-cyan-300);\\n --jp-info-color3: var(--md-cyan-100);\\n\\n /* Cell specific styles */\\n\\n --jp-cell-padding: 5px;\\n\\n --jp-cell-collapser-width: 8px;\\n --jp-cell-collapser-min-height: 20px;\\n --jp-cell-collapser-not-active-hover-opacity: 0.6;\\n\\n --jp-cell-editor-background: var(--md-grey-100);\\n --jp-cell-editor-border-color: var(--md-grey-300);\\n --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-cell-editor-active-background: var(--jp-layout-color0);\\n --jp-cell-editor-active-border-color: var(--jp-brand-color1);\\n\\n --jp-cell-prompt-width: 64px;\\n --jp-cell-prompt-font-family: var(--jp-code-font-family-default);\\n --jp-cell-prompt-letter-spacing: 0px;\\n --jp-cell-prompt-opacity: 1;\\n --jp-cell-prompt-not-active-opacity: 0.5;\\n --jp-cell-prompt-not-active-font-color: var(--md-grey-700);\\n /* A custom blend of MD grey and blue 600\\n * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */\\n --jp-cell-inprompt-font-color: #307fc1;\\n /* A custom blend of MD grey and orange 600\\n * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */\\n --jp-cell-outprompt-font-color: #bf5b3d;\\n\\n /* Notebook specific styles */\\n\\n --jp-notebook-padding: 10px;\\n --jp-notebook-select-background: var(--jp-layout-color1);\\n --jp-notebook-multiselected-color: var(--md-blue-50);\\n\\n /* The scroll padding is calculated to fill enough space at the bottom of the\\n notebook to show one single-line cell (with appropriate padding) at the top\\n when the notebook is scrolled all the way to the bottom. We also subtract one\\n pixel so that no scrollbar appears if we have just one single-line cell in the\\n notebook. This padding is to enable a 'scroll past end' feature in a notebook.\\n */\\n --jp-notebook-scroll-padding: calc(\\n 100% - var(--jp-code-font-size) * var(--jp-code-line-height) -\\n var(--jp-code-padding) - var(--jp-cell-padding) - 1px\\n );\\n\\n /* Rendermime styles */\\n\\n --jp-rendermime-error-background: #fdd;\\n --jp-rendermime-table-row-background: var(--md-grey-100);\\n --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);\\n\\n /* Dialog specific styles */\\n\\n --jp-dialog-background: rgba(0, 0, 0, 0.25);\\n\\n /* Console specific styles */\\n\\n --jp-console-padding: 10px;\\n\\n /* Toolbar specific styles */\\n\\n --jp-toolbar-border-color: var(--jp-border-color1);\\n --jp-toolbar-micro-height: 8px;\\n --jp-toolbar-background: var(--jp-layout-color1);\\n --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);\\n --jp-toolbar-header-margin: 4px 4px 0px 4px;\\n --jp-toolbar-active-background: var(--md-grey-300);\\n\\n /* Statusbar specific styles */\\n\\n --jp-statusbar-height: 24px;\\n\\n /* Input field styles */\\n\\n --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);\\n --jp-input-active-background: var(--jp-layout-color1);\\n --jp-input-hover-background: var(--jp-layout-color1);\\n --jp-input-background: var(--md-grey-100);\\n --jp-input-border-color: var(--jp-inverse-border-color);\\n --jp-input-active-border-color: var(--jp-brand-color1);\\n --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);\\n\\n /* General editor styles */\\n\\n --jp-editor-selected-background: #d9d9d9;\\n --jp-editor-selected-focused-background: #d7d4f0;\\n --jp-editor-cursor-color: var(--jp-ui-font-color0);\\n\\n /* Code mirror specific styles */\\n\\n --jp-mirror-editor-keyword-color: #008000;\\n --jp-mirror-editor-atom-color: #88f;\\n --jp-mirror-editor-number-color: #080;\\n --jp-mirror-editor-def-color: #00f;\\n --jp-mirror-editor-variable-color: var(--md-grey-900);\\n --jp-mirror-editor-variable-2-color: #05a;\\n --jp-mirror-editor-variable-3-color: #085;\\n --jp-mirror-editor-punctuation-color: #05a;\\n --jp-mirror-editor-property-color: #05a;\\n --jp-mirror-editor-operator-color: #aa22ff;\\n --jp-mirror-editor-comment-color: #408080;\\n --jp-mirror-editor-string-color: #ba2121;\\n --jp-mirror-editor-string-2-color: #708;\\n --jp-mirror-editor-meta-color: #aa22ff;\\n --jp-mirror-editor-qualifier-color: #555;\\n --jp-mirror-editor-builtin-color: #008000;\\n --jp-mirror-editor-bracket-color: #997;\\n --jp-mirror-editor-tag-color: #170;\\n --jp-mirror-editor-attribute-color: #00c;\\n --jp-mirror-editor-header-color: blue;\\n --jp-mirror-editor-quote-color: #090;\\n --jp-mirror-editor-link-color: #00c;\\n --jp-mirror-editor-error-color: #f00;\\n --jp-mirror-editor-hr-color: #999;\\n\\n /* Vega extension styles */\\n\\n --jp-vega-background: white;\\n\\n /* Sidebar-related styles */\\n\\n --jp-sidebar-min-width: 250px;\\n\\n /* Search-related styles */\\n\\n --jp-search-toggle-off-opacity: 0.5;\\n --jp-search-toggle-hover-opacity: 0.8;\\n --jp-search-toggle-on-opacity: 1;\\n --jp-search-selected-match-background-color: rgb(245, 200, 0);\\n --jp-search-selected-match-color: black;\\n --jp-search-unselected-match-background-color: var(\\n --jp-inverse-layout-color0\\n );\\n --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);\\n\\n /* Icon colors that work well with light or dark backgrounds */\\n --jp-icon-contrast-color0: var(--md-purple-600);\\n --jp-icon-contrast-color1: var(--md-green-600);\\n --jp-icon-contrast-color2: var(--md-pink-600);\\n --jp-icon-contrast-color3: var(--md-blue-600);\\n}\\n\\n/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n/* Set the default typography for monospace elements */\\ntt,\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: var(--jp-code-font-family);\\n font-size: var(--jp-code-font-size);\\n line-height: var(--jp-code-line-height);\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../node_modules/css-loader/dist/cjs.js!./base.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import './base.css';\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js similarity index 98% rename from neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js rename to neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js index ec9eae89305..24cdc42bfee 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js @@ -1,5 +1,5 @@ "use strict"; -(self["webpackChunkneural-compressor-ext-lab"] = self["webpackChunkneural-compressor-ext-lab"] || []).push([["vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1"],{ +(self["webpackChunkneural_compressor_ext_lab"] = self["webpackChunkneural_compressor_ext_lab"] || []).push([["vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1"],{ /***/ "./node_modules/css-loader/dist/runtime/api.js": /*!*****************************************************!*\ @@ -400,4 +400,4 @@ module.exports = function (list, options) { /***/ }) }]); -//# sourceMappingURL=vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js.map \ No newline at end of file +//# sourceMappingURL=vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js.map \ No newline at end of file diff --git a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js.map b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js.map similarity index 97% rename from neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js.map rename to neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js.map index c345fa38a67..1ff363efb4a 100644 --- a/neural_coder/extensions/neural-compressor-ext-lab/neural-compressor-ext-lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js.map +++ b/neural_coder/extensions/neural_compressor_ext_lab/neural_compressor_ext_lab/labextension/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.de03554a230625d91110.js.map @@ -1 +1 @@ -{"version":3,"file":"vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-72eba1.e23251bcbb7e84631721.js","mappings":";;;;;;;;;AAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA,4CAA4C,qBAAqB;AACjE;;AAEA;AACA,KAAK;AACL,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,qBAAqB;AAC1C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;ACjEa;;AAEb,kCAAkC;;AAElC,8BAA8B;;AAE9B,kDAAkD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD;;AAE7S,uCAAuC,uDAAuD,uCAAuC,SAAS,OAAO,oBAAoB;;AAEzK,yCAAyC,8FAA8F,wBAAwB,eAAe,eAAe,gBAAgB,YAAY,MAAM,wBAAwB,+BAA+B,aAAa,qBAAqB,uCAAuC,cAAc,WAAW,YAAY,UAAU,MAAM,mDAAmD,UAAU,sBAAsB;;AAEve,gCAAgC;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;;;;;;;;;ACnCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAwC,GAAG,sBAAiB,GAAG,CAAI;;AAEnF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,qEAAqE,qBAAqB,cAAc;;AAExG;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,yDAAyD;AACzD,IAAI;;AAEJ;;;AAGA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB,6BAA6B;AAClD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA","sources":["webpack://neural-compressor-ext-lab/./node_modules/css-loader/dist/runtime/api.js","webpack://neural-compressor-ext-lab/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://neural-compressor-ext-lab/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"],"sourcesContent":["\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of