* first set of changes to experiment the registration of cms related apis
* Adding cms service entry to workbench
* Adding basic functionality for add remove reg servers and group
* Returning relative path as part of RegServerResult as string
* initial extension
* cleaned building with connecting to server
* get list of registered servers
* progress with registered servers tree
* cms base node with server selection
* removed unused services
* replaced azure stuff with cms
* removed cmsResourceService
* list servers progress
* Removing the cms apis from core. Having mssql extension expose them for cms extension
* create server working fine
* initial expansion and nodes
* Propogating the backend name changes to apis
* initial cms extension working
* cached connection needs change in api
* connect without dashboard in proposed
* Fixing some missing sqlops references
* add registered server bug found
* added refresh context menu option
* added payload
* server description not disabled after reject connection
* added more context actions and action icons
* added empty resource and error when same name server is added
* fixed connection issues with cms and normal connections
* added initial tests
* added cms icons
* removed azure readme
* test script revert
* fix build tests
* added more cms tests
* fixed test script
* fixed silent error when expanding servers
* added more cms tests
* removed cmsdialog from api
* cms dialog without object
* fixed theming issues
* initial connection dialog done
* can make connections
* PM asks for strings and icons
* removed search
* removed unused code and fixed 1 test
* fix connection management tests
* changed icons
* format file
* fixed hygiene
* initial cr comments
* refactored cms connection dialog
* fixed bug when switching dialogs
* localized connection provider options
* fixed cms provider name
* code review comments
* localized options in cms and mssql
* localized more options
* extension now working
* fix diff editor title disappearing and remove border from source and target name boxes
* redoing a bunch of stuff that disappeared after rebasing
* add images and add to extensions.ts
* moving a few changes to the right place after rebase
* formatting
* update toolbar svgs
* addressing comments
* add return types
* Adding PR comments
* Adding light and dark theme icons
* Fixing the diff editor title for dark theme
* intial code for diff view inside model view
* Adding basic Split View Container depending on Flex Layout
* Enabled resizing between top and bottom view
* cleaning up some of the sqlops references
* Adding height as per CR comment
* first set of changes to experiment the registration of cms related apis
* Adding cms service entry to workbench
* Adding basic functionality for add remove reg servers and group
* Returning relative path as part of RegServerResult as string
* Removing the cms apis from core. Having mssql extension expose them for cms extension
* Propogating the backend name changes to apis
* Fixing some missing sqlops references
* Adding a sqltools service version with CMS apis available
* Start single client session based on the default kernel or saved kernel in NB.
* Added kernel displayName to standardKernel.
Modified name to allign wtih Juptyer Kernel.name.
So we can show the displayName during startup and use the name to start the session.
* Change session.OnSessionReady event in KernelDropDown
* Added model.KernelChnaged for switching kernel in the same provider
* Fixed session.Ready sequence
* Fixed merge issues
* Solve merged issue
* Fixed wrong kernel name in saved NB
* Added new event in Model to notify kernel change.
Toolbar depends on ModelReady to load
* Change attachTo to wait for ModelReady like KenelDropDown
* sanitizeSavedKernelInfo to fix invalid kernel and display_name. For example: PySpark1111 and PySpark 1111
* Added _contextsChangingEmitter to change loadContext msg when changing kernel
* Resolve PR comments
- Added `runCell` API. Updated runCell button to listen to events on the model so it'll reflect run cell when called from other sources
- Plumbed through kernelspec info to the extension side so when changed, it's updated
- Fixed bug in ConnectionProfile where it didn't copy from options but instead overrode with empty wrapper functions
Here's the rough test code (it's in the sql-vnext extension and will be out in a separate PR)
```ts
it('Should connect to local notebook server with result 2', async function() {
this.timeout(60000);
let pythonNotebook = Object.assign({}, expectedNotebookContent, { metadata: { kernelspec: { name: "python3", display_name: "Python 3" }}});
let uri = writeNotebookToFile(pythonNotebook);
await ensureJupyterInstalled();
let notebook = await sqlops.nb.showNotebookDocument(uri);
should(notebook.document.cells).have.length(1);
let ran = await notebook.runCell(notebook.document.cells[0]);
should(ran).be.true('Notebook runCell failed');
let cellOutputs = notebook.document.cells[0].contents.outputs;
should(cellOutputs).have.length(1);
let result = (<sqlops.nb.IExecuteResult>cellOutputs[0]).data['text/plain'];
should(result).equal('2');
try {
// TODO support closing the editor. Right now this prompts and there's no override for this. Need to fix in core
// Close the editor using the recommended vscode API
//await vscode.commands.executeCommand('workbench.action.closeActiveEditor');
}
catch (e) {}
});
it('Should connect to remote spark server with result 2', async function() {
this.timeout(240000);
let uri = writeNotebookToFile(expectedNotebookContent);
await ensureJupyterInstalled();
// Given a connection to a server exists
let connectionId = await connectToSparkIntegrationServer();
// When I open a Spark notebook and run the cell
let notebook = await sqlops.nb.showNotebookDocument(uri, {
connectionId: connectionId
});
should(notebook.document.cells).have.length(1);
let ran = await notebook.runCell(notebook.document.cells[0]);
should(ran).be.true('Notebook runCell failed');
// Then I expect to get the output result of 1+1, executed remotely against the Spark endpoint
let cellOutputs = notebook.document.cells[0].contents.outputs;
should(cellOutputs).have.length(4);
let sparkResult = (<sqlops.nb.IStreamResult>cellOutputs[3]).text;
should(sparkResult).equal('2');
try {
// TODO support closing the editor. Right now this prompts and there's no override for this. Need to fix in core
// Close the editor using the recommended vscode API
//await vscode.commands.executeCommand('workbench.action.closeActiveEditor');
}
catch (e) {}
});
});
```
* Added Unified connection support
* Use generic way to do expandNode.
Cleanup the ported code and removed unreference code. Added as needed later.
Resolved PR comments.
* Minor fixes and removed timer for all expanders for now. If any providers can't response, the tree node will spin and wait. We may improve later.
* Change handSessionClose to not thenable.
Added a node to OE to show error message instead of reject. So we could show partial expanded result if get any.
Resolve PR comments
* Minor fixes of PR comments
* Scenarios work besides loading saved kernel
* Fix compilation issue
* Save and load functional
* Fix loading kernesl issue when sql kernel is not enabled
* Fix language mapping to not be hardcoded any longer
* Remove unnecessary comment
* PR Comments vol. 1
* Code cleanup, use ConnectionProfile instead of IConnectionProfile when accessing serverName
* PR changes vol. 2
* One final comment for PR
* Fix linting issue
* working on formatting
* fixed basic lint errors; starting moving things to their appropriate location
* formatting
* update tslint to match the version of vscode we have
* remove unused code
* work in progress fixing layering
* formatting
* moved connection management service to platform
* formatting
* add missing file
* moving more servies
* formatting
* moving more services
* formatting
* wip
* moving more services
* formatting
* revert back tslint rules
* move css file
* add missing svgs
* add an extension for integration tests
* setup ads before running test
* test setup
* test cases
* bash script
* shorter temp folder name
* code cleanup
* add commented out original code
* fix test error
* test result path
* rename results file
* change file path
* report smoke test results
* test stablize
* test stablization and configurable test servers
* fix smoke test error
* connection provider
* simplify the integration test script
* add comment
* fix tslint error
* address PR comments
* add temp log to check whether the environment variable is already set
* remove temp log
* move api definition to testapi typing file
* exclude integration tests extension
* address comments
* First crack tsql notebook (no output rendered yet)
* getting messages back
* intellisense working first cell, no connection errors
* sql notebook cell output functioning
* Latest SQL noteobook changes
* Undo change to launch.json
* Plumbing providers through
* Kernels shown from multiple providers, can switch between them. No mementos yet
* Ensure we have a feature flag for SQL notebooks, ensure existing functionality still works
* Fix tslint duplicate imports issue
* Addressing PR comments
* second round of PR feedback to cleanup notebook service manager code
* merge latest from master
* Refactor JSON and format files to model and fix tabs -> spaces issues
This is in prep for some work to reuse these code files inside the model,
so pushing as its own PR to keep the next piece of work clean.
* Fix#3680 Notebooks: outputs with string arrays rendered incorrectly
- Add support for processing v4 format files loaded from disk
- Prep support for v3 notebooks by adding placeholder code for that
* Fix failing tests and add specific one for this bug
* Remove references to v5
- Add edit API that can be used in the extension
- Separated document and editor classes out since this is the point those get big. I can refactor back in if needed to ease code review
- Based this off text editing APIs but tweaked for the fact this is a cell/array based set of edits
* agent feature usage metrics
* generalized feature telemetry via dialogs
* renamed eventName property to dialogName
* made dialogName an optional field
initial support for Notebook extensibility. Fixes#3148 , Fixes#3382.
## Design notes
The extensibility patterns are modeled after the VSCode Document and Editor APIs but need to be different since core editor concepts are different - for example Notebooks have cells, and cells have contents rather than editors which have text lines.
Most importantly, a lot of the code is based on the MainThreadDocumentsAndEditors class, with some related classes (the MainThreadDocuments, and MainThreadEditors) brought in too. Given our current limitations I felt moving to add 3 full sets of extension host API classes was overkill so am currently using one. Will see if we need to change this in the future based on what we add in the additional APIs
## Limitations
The current implementation is limited to visible editors, rather than all documents in the workspace. We are not following the `openDocument` -> `showDocument` pattern, but instead just supporting `showDocument` directly.
## Changes in this PR
- Renamed existing APIs to make clear that they were about notebook contents, not about notebook behavior
- Added new APIs for querying notebook documents and editors
- Added new API for opening a notebook
- Moved `New Notebook` command to an extension, and added an `Open Notebook` command too
- Moved notebook feature flag to the extension
## Not covered in this PR
- Need to actually implement support for defining the provider and connection IDs for a notebook. this will be important to support New Notebook from a big data connection in Object Explorer
- Need to add APIs for adding cells, to support
- Need to implement the metadata for getting full notebook contents. I've only implemented to key APIs needed to make this all work.
Full plumb through of Session support. Also fixed some test issues
- Load session and get necessary information in kernels list
- Run Cell button now works as expected
- Added a ToggleAction base class which can be used for anything that switches icons. I'd still prefer to have this be dynamic and as clean as the extension classes
- Fixed account test unhandled promise rejections (caused by incorrect / invalid tests) that made it hard to see all the test run output.
Implements provider contribution in the MainThreadNotebook, with matching function calls in the ExtHostNotebook class. This will allow us to proxy through notebook providers (specifically, creation of a notebook manager with required content, server managers) from an extension up through to the main process.
Implemented in this PR:
- Callthroughs for content and server manager APIs
- Very basic unit tests covering provider & manager registration
Not implemented:
- Fuller unit tests on the specific callthrough methods for content & server manager.
- Contribution point needed to test this (so we can actually pass through the extension's existing Notebook implementation)
- Defines a new NotebookService in Azure Data Studio which will be used to interact with notebooks. Since notebooks can require per-file instantiation the provider is just used to create & track managers for a given URI.
- Inject this into notebook.component.ts and pass required parameters that'll be used to properly initialize a manger into the method. Actual initialization not done yet.
- Port over & recompile notebook model code
- Define most required APIs in sqlops.proposed.d.ts. In the future, these will be used by extensions to contribute their own providers.
Editor component didn't have a minimum height set, so fixing this by passing through a minimum height to EditorComponent. Now, if the scrollable height of the editor is less than the minimum height, we use the minimum height as the height of the component.
Also fixed an issue where the markdown code editor's height was far too high. Now we're calculating the height on the layout() call, which gets called every time we display the markdown editor.
* add dom component for model view
* formatting
* make css style hardcoded in dom.component
* comment out the unused CSS
* address comments
* address comment
* Enable the support for post-connection behaviors for openConnectionDialog.
* Fixed bugs.
* Make everything in IConnectionCompletionOptions optional except saveConnection.
* showConnectionDialogOnError & showFirewallRuleOnError default to true.
* Use types.isUndefinedOrNull to do value checking.
* Minor changes.
* Add support for clickable links and other webview options
- Added click handling
- Added suport for localResourceRoots to be read in the webview
* Options should not be mandatory
* Ensure the constructor-defined properties are preserved
- This fixes issue where the extensionFolderPath was lost during webview withProperties call in the modelbuilder.
* enableCommandUris should be a getter
* Add position support to webview and to flexContainer
* Fix regressions on editor view caused by merge
* Squash merge commits for 1.26 (#1) (#2323)
* Polish tag search as per feedback (#55269)
* Polish tag search as per feedback
* Updated regex
* Allow users to opt-out of features that send online requests in the background (#55097)
* settings sweep #54690
* Minor css tweaks to enable eoverflow elipsis in more places (#55277)
* fix an issue with titlebarheight when not scaling with zoom
* Settings descriptions update #54690
* fixes#55209
* Settings editor - many padding fixes
* More space above level 2 label
* Fixing Cannot debug npm script using Yarn #55103
* Settings editor - show ellipsis when description overflows
* Settings editor - ... fix measuring around links, relayout
* Setting descriptions
* Settings editor - fix ... for some short lines, fix select container width
* Settings editor - overlay trees so scrollable shadow is full width
* Fix#54133 - missing extension settings after reload
* Settings color token description tweak
* Settings editor - disable overflow indicator temporarily, needs to be faster
* Added command to Run the selected npm script
* fixes#54452
* fixes#54929
* fixes#55248
* prefix command with extension name
* Contribute run selected to the context menu
* node-debug@1.26.6
* Allow terminal rendererType to be swapped out at runtime
Part of #53274Fixes#55344
* Settings editor - fix not focusing search when restoring editor
setInput must be actually async. Will be fixed naturally when we aren't using winJS promises...
* Settings editor - TOC should only expand the section with a selected item
* Bump node-debug2
* Settings editor - Tree focus outlines
* Settings editor - don't blink the scrollbar when toc selection changes
And hide TOC correctly when the editor is narrow
* Settings editor - header rows should not be selectable
* fixes#54877
* change debug assignee to isi
* Settings sweep (#54690)
* workaround for #55051
* Settings sweep (#54690)
* settings sweep
#54690
* Don't try closing tags when you type > after another >
* Describe what implementation code lens does
Fixes#55370
* fix javadoc formatter setting description
* fixes#55325
* update to officical TS version
* Settings editor - Even more padding, use semibold instead of bold
* Fix#55357 - fix TOC twistie
* fixes#55288
* explorer: refresh on di change file system provider registration
fixes#53256
* Disable push to Linux repo to test standalone publisher
* New env var to notify log level to extensions #54001
* Disable snippets in extension search (when not in suggest dropdown) (#55281)
* Disable snippits in extension search (when not in suggest dropdown)
* Add monaco input contributions
* Fix bug preventing snippetSuggestions from taking effect in sub-editors
* Latest emmet helper to fix#52366
* Fix comment updates for threads within same file
* Allow extensions to log telemetry to log files #54001
* Pull latest css grammar
* files.exclude control - use same style for "add" vs "edit"
* files.exclude control - focus/keyboard behavior
* don't show menubar too early
* files.exclude - better styling
* Place cursor at end of extensions search box on autofill (#55254)
* Place cursor at end of extensions search box on autofill
* Use position instead of selection
* fix linux build issue (empty if block)
* Settings editor - fix extension category prefixes
* Settings editor - add simple ellipsis for first line that overflows, doesn't cover case when first line does not overflow but there is more text, TODO
* File/Text search provider docs
* Fixes#52655
* Include epoch (#55008)
* Fixes#53385
* Fixes#49480
* VS Code Insiders (Users) not opening Fixes#55353
* Better handling of the case when the extension host fails to start
* Fixes#53966
* Remove confusing Start from wordPartLeft commands ID
* vscode-xterm@3.6.0-beta12
Fixes#55488
* Initial size is set to infinity!! Fixes#55461
* Polish embeddedEditorBackground
* configuration service misses event
* Fix#55224 - fix duplicate results in multiroot workspace from splitting the diskseach query
* Select all not working in issue reporter on mac, fixes#55424
* Disable fuzzy matching for extensions autosuggest (#55498)
* Fix clipping of extensions search border in some third party themes (#55504)
* fixes#55538
* Fix bug causing an aria alert to not be shown the third time
(and odd numbers thereafter)
* Settings editor - work around rendering glitch with webkit-line-clamp
* Settings editor - revert earlier '...' changes
* Settings editor - move enumDescription to its own div, because it disturbs -webkit-line-clamp for some reason
* Settings editor - better overflow indicator
* Don't show existing filters in autocomplete (#55495)
* Dont show existing filters in autocomplete
* Simplify
* Settings Editor: Add aria labels for input elements Fixes: #54836 (#55543)
* fixes#55223
* Update vscode-css-languageservice to 3.0.10-next.1
* Fix#55509 - settings navigation
* Fix#55519
* Fix#55520
* FIx#55524
* Fix#55556 - include wordSeparators in all search queries, so findTextInFiles can respect isWordMatch correctly
* oss updates for endgame
* Fix unit tests
* fixes#55522
* Avoid missing manifest error from bubbling up #54757
* Settings format crawl
* Search provider - Fix FileSearchProvider to return array, not progress
* Fix#55598
* Settings editor - fix NPE rendering settings with no description
* dont render inden guides in search box (#55600)
* fixes#55454
* More settings crawl
* Another change for #55598 - maxResults applies to FileSearch and TextSearch but not FileIndex
* Fix FileSearchProvider unit tests for progress change
* fixes#55561
* Settings description update for #54690
* Update setting descriptions for online services
* Minor edits
* fixes#55513
* fixes#55451
* Fix#55612 - fix findTextInFiles cancellation
* fixes#55539
* More setting description tweaks
* Setting to disable online experiments #54354
* fixes#55507
* fixes#55515
* Show online services action only in Insiders for now
* Settings editor - change toc behavior default to 'filter'
* Settings editor - nicer filter count style during search
* Fix#55617 - search viewlet icons
* Settings editor - better styling for element count indicator
* SearchProvider - fix NPE when searching extraFileResources
* Allow extends to work without json suffix
Fixes#16905
* Remove accessability options logic entirely
Follow up on #55451
* use latest version of DAP
* fixes#55490
* fixes#55122
* fixes#52332
* Avoid assumptions about git: URIs (fixes#36236)
* relative path for descriptions
* resourece: get rid of isFile context key
fixes#48275
* Register previous ids for compatibility (#53497)
* more tuning for #48275
* no need to always re-read "files explorer"
fixes#52003
* read out active composites properly
fixes#51967
* Update link colors for hc theme to meet color contrast ratio, fixes#55651
Also updated link color for `textLinkActiveForeground` to be the same as `textLinkForeground` as it wasn't properly updated
* detect 'winpty-agent.exe'; fixes#55672
* node-debug@1.26.7
* reset counter on new label
* Settings editor - fix multiple setting links in one description
* Settings editor - color code blocks in setting descriptions, fix#55532
* Settings editor - hover color in TOC
* Settings editor - fix navigation NPE
* Settings editor - fix text control width
* Settings editor - maybe fix#55684
* Fix bug causing cursor to not move on paste
* fixes#53582
* Use ctrlCmd instead of ctrl for go down from search box
* fixes#55264
* fixes#55456
* filter for spcaes before triggering search (#55611)
* Fix#55698 - don't lose filtered TOC counts when refreshing TOC
* fixes#55421
* fixes#28979
* fixes#55576
* only add check for updates to windows/linux help
* readonly files: append decoration to label
fixes#53022
* debug: do not show toolbar while initialising
fixes#55026
* Opening launch.json should not activate debug extensions
fixes#55029
* fixes#55435
* fixes#55434
* fixes#55439
* trigger menu only on altkey up
* Fix#50555 - fix settings editor memory leak
* Fix#55712 - no need to focus 'a' anymore when restoring control focus after tree render
* fixes#55335
* proper fix for readonly model
fixes#53022
* improve FoldingRangeKind spec (for #55686)
* Use class with static fields (fixes#55494)
* Fixes#53671
* fixes#54630
* [html] should disable ionic suggestions by default. Currently forces deprecated Ionic v1 suggestions in .html files while typing. Fixes#53324
* cleanup deps
* debug issues back to andre
* update electron for smoketest
* Fix#55757 - prevent settings tabs from overflowing
* Fix#53897 - revert setting menu defaults to old editor
* Add enum descriptions to `typescript.preferences.importModuleSpecifier`
* Fix#55767 - leaking style elements from settings editor
* Fix#55521 - prevent flashing when clicking in exclude control
* Update Git modified color for contrast ratio, fixes#53140
* Revert "Merge branch 'master' of github.com:Microsoft/vscode"
This reverts commit bf46b6bfbae0cab99c2863e1244a916181fa9fbc, reversing
changes made to e275a424483dfb4ed33b428c97d5e2c441d6b917.
* Revert "Revert "Merge branch 'master' of github.com:Microsoft/vscode""
This reverts commit 53949d963f39e40757557c6526332354a31d9154.
* don't ask to install an incomplete menu
* Fix NPE in terminal AccessibilityManager
Fixes#55744
* don't display fallback menu unless we've closed the last window
* fixes#55547
* Fix smoke tests for extension search box
* Update OSSREADME.json for Electron 2.0.5
* Update distro
Includes Chromium license changes
* fix#55455
* fix#55865
* fixes#55893
* Fix bug causing workspace recommendations to go away upon ignoring a recommendation (#55805)
* Fix bug causing workspace recommendations to go away upon ignoring a recommendation
* ONly show on @recommended or @recommended:workspace
* Make more consistant
* Fix#55911
* Understand json activity (#55926)
* Understand json file activity
* Refactoring
* adding composer.json
* Distro update for experiments
* use terminal.processId for auto-attach; fixes#55918
* Reject invalid URI with vscode.openFolder (for #55891)
* improve win32 setup system vs user detection
fixes#55840fixes#55840
delay winreg import
related to #55840
show notification earlier
related to #55840fix#55840
update inno setup message
related to #55840
* Fix#55593 - this code only operates on local paths, so use fsPath and Uri.file instead
* Bring back the old menu due to electron 2.0 issues (#55913)
* add the old menu back for native menus
* make menu labels match
* `vscode.openFolder`: treat missing URI schema gracefully (for #55891)
* delay EH reattach; fixes#55955
* Mark all json files under appSettingsHome as settings
* Use localized strings for telemetry opt-out
* Exception when saving file editor opened from remote file provider (fixes#55051)
* Remove terminal menu from stable
Fixes 56003
* VSCode Insiders crashes on open with TypeError: Cannot read property 'lastIndexOf' of undefined. Fixes#54933
* improve fix for #55891
* fix#55916
* Improve #55891
* increase EH debugging restart delay; fixes#55955
* Revert "Don't include non-resource entries in history quick pick"
This reverts commit 37209a838e9f7e9abe6dc53ed73cdf1e03b72060.
* Diff editor: horizontal scrollbar height is smaller (fixes#56062)
* improve openFolder uri fix (correctly treat backslashes)
* fixes#56116
repair ipc for native menubar keybindings
* Fix#56240 - Open the JSON settings editor instead of the UI editor
* Fix#55536
* uriDisplay: if no formatter is registered fall back to getPathlabel
fixes#56104
* VSCode hangs when opening python file. Fixes#56377
* VS Code Hangs When Opening Specific PowerShell File. Fixes#56430
* Fix#56433 - search extraFileResources even when no folders open
* Workaround #55649
* Fix in master #56371
* Fix tests #56371
* Fix in master #56317
* increase version to 1.26.1
* Fixes#56387: Handle SIGPIPE in extension host
* fixes#56185
* Fix merge issues (part 1)
* Fix build breaks (part 1)
* Build breaks (part 2)
* Build breaks (part 3)
* More build breaks (part 4)
* Fix build breaks (part 5)
* WIP
* Fix menus
* Render query result and message panels (#2363)
* Put back query editor hot exit changes
* Fix grid changes that broke profiler (#2365)
* Update APIs for saving query editor state
* Fix restore view state for profiler and edit data
* Updating custom default themes to support 4.5:1 contrast ratio
* Test updates
* Fix Extension Manager and Windows Setup
* Update license headers
* Add appveyor and travis files back
* Fix hidden modal dropdown issue
* 1.Added following functions to namespace accounts
function getAllAccounts(): Thenable<AccountWithProviderHandle[]>;
function getSecurityToken(account: AccountWithProviderHandle): Thenable<{}>;
2.Added class AccountWithProviderHandle as the wrapper for Account
3.Changed function openConnectionDialog of namespace connection to allow connection dialog initialized with specified parameters, i.e., server name, database name, etc.
function openConnectionDialog(provider?: string[], initialConnectionProfile?: IConnectionProfile): Thenable<connection.Connection>;
* Added unit tests for ExtHostAccountManagement.$getAllAccounts
* Support editor content change notification, URI property and correctly align toolbar items
* Better fix for toolbar orientation, plus minor editor fixes
* Support position property in editor component
- This needs to be set directly on the editor component so cannot just use CSSStyles feature
- Given its importance to this scenario, it also warrants a dedicated property.
* Fix window resize when action bar clicked
* Renamed per Abbie's suggestion
* Changed name to clarify the comments