[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).
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.
* added SettingsV2 Tab
* lint changes
* foxed failing test
* Addressed PR comments
- removed dangerouslySetInnerHtml
- removed underscore dependency
- added AccessibleElement
- removed unnecesary exceptions to linting
* split render into separate functions
- removed sinon in test
- Added some enums to replace constant strings
- removed dangerously set inner html
- made autopilot input as StatefulValue
* add settingscomponent snapshot
* fixed linting errors
* fixed errors
* addressed PR comments
- Moved StatefulValue to new class
- Split render to more functions for throughputInputComponents
* Added sub components
- Added tests for SettingsRenderUtls
- Added empty test files for adding tests later
* Moved all inputs to fluent UI
- removed rupm
- added reusable styles
* Added Tabs
- Added ToolTipLabel component
- Removed toggleables for individual components
- Removed accessible elements
- Added IndexingPolicyComponent
* Added more tests
* Addressed PR comments
* Moved Label radio buttons to choicegroup
* fixed lint errors
* Removed StatefulValue
- Moved conflict res tab to the end
- Added styling for autpilot radiobuttons
* fixed linting errors
* fix bugs from merge to master
* fixed formatting issue
* Addressed PR comments
- Added unit tests for smaller methods within each component
* fixed linting errors
* removed redundant snapshots
* removed empty line
* made separate props objects for subcomponents
* Moved dirty checks to sub components
* Made indesing policy component height = 80% of view port
- modified auto pilot v3 messages
- Added Fluent UI tolltip
-
* Moved warning messages inline
* moved conflict res helpers out
* fixed bugs
* added stack style for message
* fixed tests
* Added tests
* fixed linting and format errors
* undid changes
* more edits
* fixed compile errors
* fixed compile errors
* fixed errors
* fixed bug with save and discard buttons
* fixed compile errors
* added MongoIndexingPolicy component
* addressed PR comments
* moved read indexes to scale context
* added add index feature
* added AddMongoIndexComponent
* Added collapsible portions and focus changes
* removed unnecessary imports
* finetuned UI
* more edits
* Added mongoindexeditor flight
- Moved add index UI to within current index pane
* minro edits
* Added separate warning messages for index refresh
* aligned items
* Fixed tests
* minor edits
* resolved PR comments
* modified refs usage
* compile errors fixed
* moved fetch of notifications and offer to within the tab activation
* fixed PR comments
* added error handling
* added AAD verification
* removed l empty line
* added back line
* deleted file
* added file
* addressed PR comments
* addressed PR comments
* fixed format error
* updated package.json
* updated package-lock.json
* Upgrade nteract packages and related dependencies to make new stateful-component work
* Switch to new monacoEditor
* Configure store using nteract mythic configuration
* Replace CodeMirror with Monaco editor in NotebookReadOnlyRenderer
* Reformat
* Upgrade d3 to latest to resolve d3-selection conflicts with nteract/data-explorer that broke D3ForceGraph
* Upgrade jupyterlab terminal widget to work with latest version of react. Upgrade jupyterlab services to include latest fix for websocket auth
* Update jest test snapshots
* Upgrade packages to fix build issues
* Remove comment
* Fix unit tests
* Fix unit test snapshot
* Remove useless @types/node-fetch