[Preview this branch](https://cosmos-explorer-preview.azurewebsites.net/pull/762?feature.someFeatureFlagYouMightNeed=true)
The main change in this PR fixes the snapshot functionality in the Publish pane-related components. Because the code cell outputs are now rendered in their own iframes for security reasons, a single snapshot of the notebook is no longer possible: each cell output takes its own snapshot and the snapshots are collated on the main notebook snapshot.
- Move the snapshot functionality to notebook components: this removes the reference of the notebook DOM node that we must pass to the Publish pane via explorer.
- Add slice in the state and actions in notebook redux for notebook snapshot requests and result
- Add post robot message to take snapshots and receive results
- Add logic in `NotebookRenderer` to wait for all output snapshots done before taking the main one collating.
- Use `zustand` to share snapshot between Redux world and React world. This solves the issue of keeping the `PanelContainer` component generic, while being able to update its children (`PublishPanel` component) with the new snapshot.
Additional changes:
- Add `local()` in `@font-face` to check if font is already installed before downloading the font (must be done for Safari, but not Edge/Chrome)
- Add "Export output to image" menu item in notebook cell, since each cell output can take its own snapshot (which can be downloaded)
![image](https://user-images.githubusercontent.com/21954022/117454706-b5f16600-af46-11eb-8535-6bf99f3d9170.png)
This change enables notebooks to escape HTML (which is a vector for malicious attacks).
We import `MarkdownCell` from the `@nteract/stateful-components` sources so that we can point it to the version of `@nteract/markdown` which contains [this fix](e19c7cc590).
This is a temporary workaround from upgrading to `@nteract/stateful-components` to `7.0.0` which causes build and runtime issues see #599).
* Portal changes for DedicatedGateway
Changes to support creation and deletion of DedicatedGateway resource.
Tested locally with various scenarios.
* Portal changes for DedicatedGateway. CR feedback
* Stylecop changes
* Removing TODO comments
* exposed baselineValues
* added getOnSaveNotification
* disable UI when onSave is taking place
* minro edits
* made polling optional
* added optional polling
* added default
* Added portal notifications
* merged more changes
* minor edits
* added label for description
* Added correlationids and polling of refresh
* Added correlationids and polling of refresh
* minor edit
* added label tooltip
* removed ClassInfo decorator
* Added dynamic decription
* added info and warninf types for description
* more changes to promise retry
* promise retry changes
* compile errors fixed
* New changes
* added operationstatus link
* merged sqlxEdits
* undid sqlx changes
* added completed notification
* passed retryInterval in notif options
* more changes
* added polling on landing on the page
* edits for error display
* added keys blade link
* added link generation
* added link to blade
* Modified info and description
* fixed format errors
* Second cut of the Portal
* OnChange for Number of instances
* added keys for texts
* fixed lint errors
* Added support for undefined dynamic description
* fixed failing test
* disable save/discard buttons
* fixed sqlx errors
* Dedicated Gateway changes to add the keys blade
* Change connectionStringText
* Change connectionStringText
* Text changes
* Added UI improvements
* Code review feedback
* undid package lock changes
Co-authored-by: Srinath Narayanan <srnara@microsoft.com>
The file `package-lock.json` is not in sync with `package.json` anymore. This causes build issues when upgrading a package.
This change sync's `package-lock.json` and fixes the build issues.
* added recursion and inition decorators
* working version
* added todo comment and removed console.log
* Added Recursive add
* removed type requirement
* proper resolution of promises
* added custom element and base class
* Made selfServe standalone page
* Added custom renderer as async type
* Added overall defaults
* added inital open from data explorer
* removed landingpage
* added feature for self serve type
* renamed sqlx->example and added invalid type
* Added comments for Example
* removed unnecessary changes
* Resolved PR comments
Added tests
Moved onSubmt and initialize inside base class
Moved testExplorer to separate folder
made fields of SelfServe Class non static
* fixed lint errors
* fixed compilation errors
* Removed reactbinding changes
* renamed dropdown -> choice
* Added SelfServeComponent
* Addressed PR comments
* merged master
* added selfservetype.none for emulator and hosted experience
* fixed formatting errors
* Removed "any" type
* undid package.json changes
Opening notebook (which contains code cell), then "Items"-> document editor is broken. Our JsonEditor component will hang at `monaco.editor.create()`.
Matching the `monaco-editor` version with `@nteract/monaco-editor` fixes it.
I looked into using one, but we cannot rely nteract, because it does not get loaded if notebook isn't enabled. Forcing nteract to use ours (if at all possible) isn't a good idea, since their code is tuned to their version.
For now, we'll have to keep the versions in sync.