* Listen to iframe messages. Test posting message.
* Plug new container message to show New Container dialog
* Rename message action to type
* Fix format
* Fix format
* Remove console.log() statement
* Rework fabric init flow. Implement open Collection Tab from fabric.
* Rename method to better match its purpose
* Update src/hooks/useKnockoutExplorer.ts
Use connectionString from message
Co-authored-by: Vsevolod Kukol <[email protected]>
* Fix format
* For openTab action open first collection if not specified. Clean up FabricContract.
* Reformat FabricContracts
* Highlight current node selection using them token
* Reformat
* Automatically expand nodes in resource tree if underlying database or collection is expanded. Fix AllowedOrigins. Cleanup code.
* Fix format
* Fix lint issue
* Don't show the home screen for Fabric (#1636)
* Fix formatting
* Database name to open can be overridden by value in session storage
---------
Co-authored-by: Vsevolod Kukol <[email protected]>
* Alternate tree running fluentui v9 Tree component
* Fix tree update after sp, udf and trigger load
* Enable scrolling for subtrees
* Clean up duplicates
* Restore current tree
* Reformat
* Update package-lock.json
[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](https://github.com/nteract/markdown/commit/e19c7cc590a4379fc507f67a7b4228363b9d8631).
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.
This fixes a bug that prevents getting focus to a text cell (effectively preventing editing) when the window height is small after double-clicking on a neighboring code cell.
The issue is that selecting a text cell is broken likely because there's a behavior change in MonacoEditor that keeps the focus on the code cell. The selection issue will probably be resolved when migrating the text cell to Monaco (which will acquire and keep focus the same way), but for now, this will disable the faulty code which doesn't appear to work anymore (presumably auto-scrolling to the cell).
Constrain left pane container to height: 100% so that scrollbar show up when content wants to overflow.
The `main` classname seems too generic, but I left it alone (so I don't break anything), since this part will eventually be ported to React.
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.
* Add Telemetry to command bar buttons
* Count and report # of files/notebooks/directories in myNotebook to telemetry
* Add resource tree clicks to Telemetry
* Log to Telemetry: opened notebook cell counts by type, kernelspec name
* Fix unit test
* Move Telemetry processor call in notebook traceNotebookTelemetry action from reducer to epic. Use action to trace other info.
* Fix react duplicate key error
* Log notebook cell context menu actions
* Reformat and cleanup
* Move resource tree tracing code out of render(). Only call once when tree is updated
* Fix build issues
* 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
* Enable hiding prompt when hiding inputs (so that only output is showing)
* Fix format
* Rename variable
* Use nteract prompt instead of copying source
* Add generic component
* Add validation. Rename to widgetRenderer
* Remove test code from splash screen
* Clean up infobox
* Fix styling/layout
* Move test code into unit test
* Replace <input> and <labe> by <TextField> and <Text> respectively. Fix style.
* Replace InfoBoxComponent with UI fabric MessageBar. Fix styling for TextField
* Use MessageBar for error message
* Rename WdigetRendererComponent to SmartUiComponent
* Remove old resource tree and its various components
* Fix stored procedure, udf, trigger not always deleting when context menu option chosen
* Reformat and fix eslint warnings
* Remove CommandButtonOptions
* Initial migration from ADO
* Bug fixes
* Fix bugs. Make active area smaller and require shift + ctrl + dbl click
* Add missing features
* Switch from HashMap to Map as it is already polyfilled