[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)

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.