Merge branch 'master' into 2819223

This commit is contained in:
MokireddySampath
2024-01-04 22:09:47 +05:30
committed by GitHub
106 changed files with 35097 additions and 24233 deletions

View File

@@ -53,4 +53,9 @@ module.exports = {
},
],
},
settings: {
react: {
version: "detect",
},
},
};

View File

@@ -14,11 +14,11 @@ jobs:
name: "Log Code Metrics"
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: node utils/codeMetrics.js
env:
@@ -27,11 +27,11 @@ jobs:
runs-on: ubuntu-latest
name: "Compile TypeScript"
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: npm run compile
- run: npm run compile:strict
@@ -39,44 +39,44 @@ jobs:
runs-on: ubuntu-latest
name: "Check Format"
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: npm run format:check
lint:
runs-on: ubuntu-latest
name: "Lint"
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: npm run lint
unittest:
runs-on: ubuntu-latest
name: "Unit Tests"
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: npm run test
build:
runs-on: ubuntu-latest
name: "Build"
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: npm run build:contracts
- name: Restore Build Cache
@@ -86,10 +86,10 @@ jobs:
key: ${{ runner.os }}-build-cache
- run: npm run pack:prod
env:
NODE_OPTIONS: '--max-old-space-size=4096'
NODE_OPTIONS: "--max-old-space-size=4096"
- run: cp -r ./Contracts ./dist/contracts
- run: cp -r ./configs ./dist/configs
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
@@ -107,11 +107,11 @@ jobs:
if: false
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- uses: southpolesteve/cosmos-emulator-github-action@v1
- name: End to End Tests
run: |
@@ -124,7 +124,7 @@ jobs:
DATA_EXPLORER_ENDPOINT: "https://localhost:1234/explorer.html?platform=Emulator"
PLATFORM: "Emulator"
NODE_TLS_REJECT_UNAUTHORIZED: 0
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
if: failure()
with:
name: screenshots
@@ -149,11 +149,11 @@ jobs:
- ./test/sql/resourceToken.spec.ts
- ./test/tables/container.spec.ts
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: npm start &
- run: npm run wait-for-server
@@ -162,7 +162,7 @@ jobs:
# Run tests up to three times
for i in $(seq 1 3); do npx jest -c ./jest.config.playwright.js ${{ matrix['test-file'] }} && s=0 && break || s=$? && sleep 1; done; (exit $s)
shell: bash
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
if: failure()
with:
name: screenshots
@@ -180,14 +180,14 @@ jobs:
with:
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
- name: Download Dist Folder
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: dist
- run: cp ./configs/prod.json config.json
- run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "jawelton@microsoft.com" -Password "$AZURE_DEVOPS_PAT"
- run: nuget pack -Version "2.0.0-github-${GITHUB_SHA}"
- run: nuget push -SkipDuplicate -Source "$NUGET_SOURCE" -ApiKey Az *.nupkg
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
name: packages
with:
path: "*.nupkg"
@@ -204,7 +204,7 @@ jobs:
with:
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
- name: Download Dist Folder
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: dist
- run: cp ./configs/mpac.json config.json
@@ -212,7 +212,7 @@ jobs:
- run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "jawelton@microsoft.com" -Password "$AZURE_DEVOPS_PAT"
- run: nuget pack -Version "2.0.0-github-${GITHUB_SHA}"
- run: nuget push -SkipDuplicate -Source "$NUGET_SOURCE" -ApiKey Az *.nupkg
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
name: packages
with:
path: "*.nupkg"

View File

@@ -20,9 +20,9 @@ jobs:
NOTEBOOKS_TEST_RUNNER_CLIENT_SECRET: ${{ secrets.NOTEBOOKS_TEST_RUNNER_CLIENT_SECRET }}
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 14.x
node-version: 18.x
- run: npm ci
- run: node utils/cleanupDBs.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

53038
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -12,12 +12,12 @@
"@azure/msal-browser": "2.14.2",
"@babel/plugin-proposal-class-properties": "7.12.1",
"@babel/plugin-proposal-decorators": "7.12.12",
"@fluentui/react": "8.14.3",
"@fluentui/react-components": "9.32.1",
"@fluentui/react": "8.112.1",
"@fluentui/react-components": "9.34.0",
"@jupyterlab/services": "6.0.2",
"@jupyterlab/terminal": "3.0.3",
"@microsoft/applicationinsights-web": "2.6.1",
"@nteract/commutable": "7.4.2",
"@nteract/commutable": "7.5.1",
"@nteract/connected-components": "6.8.2",
"@nteract/core": "15.1.0",
"@nteract/data-explorer": "8.0.3",
@@ -49,20 +49,20 @@
"applicationinsights": "1.8.0",
"bootstrap": "3.4.1",
"canvas": "file:./canvas",
"clean-webpack-plugin": "3.0.0",
"clean-webpack-plugin": "4.0.0",
"clipboard-copy": "4.0.1",
"copy-webpack-plugin": "9.0.1",
"copy-webpack-plugin": "11.0.0",
"crossroads": "0.12.2",
"css-element-queries": "1.1.1",
"d3": "6.1.1",
"datatables.net-colreorder-dt": "1.5.1",
"datatables.net-dt": "1.10.19",
"datatables.net-colreorder-dt": "1.7.0",
"datatables.net-dt": "1.13.8",
"date-fns": "1.29.0",
"dayjs": "1.8.19",
"dom-to-image": "2.6.0",
"dotenv": "8.2.0",
"eslint-plugin-jest": "23.13.2",
"eslint-plugin-react": "7.20.0",
"eslint-plugin-jest": "27.4.2",
"eslint-plugin-react": "7.33.2",
"hasher": "1.2.0",
"html2canvas": "1.0.0-rc.5",
"i18next": "19.8.4",
@@ -71,14 +71,15 @@
"iframe-resizer-react": "1.1.0",
"immutable": "4.0.0-rc.12",
"is-ci": "2.0.0",
"jquery": "3.5.1",
"jquery-typeahead": "2.10.6",
"jquery-ui-dist": "1.12.1",
"jquery": "3.7.1",
"jquery-typeahead": "2.11.1",
"jquery-ui-dist": "1.13.2",
"knockout": "3.5.1",
"mkdirp": "1.0.4",
"monaco-editor": "0.18.1",
"monaco-editor": "0.44.0",
"ms": "2.1.3",
"p-retry": "4.2.0",
"patch-package": "8.0.0",
"p-retry": "4.6.2",
"plotly.js-cartesian-dist-min": "1.52.3",
"post-robot": "10.0.42",
"q": "1.5.1",
@@ -86,7 +87,7 @@
"react-animate-height": "2.0.8",
"react-dnd": "14.0.2",
"react-dnd-html5-backend": "14.0.0",
"react-dom": "16.13.1",
"react-dom": "16.14.0",
"react-hotkeys": "2.0.0",
"react-i18next": "11.8.5",
"react-notification-system": "0.2.17",
@@ -94,14 +95,12 @@
"react-splitter-layout": "4.0.0",
"react-string-format": "1.0.1",
"react-youtube": "9.0.1",
"redux": "4.0.4",
"reflect-metadata": "0.1.13",
"rx-jupyter": "5.5.12",
"rxjs": "6.6.3",
"sanitize-html": "2.3.3",
"styled-components": "4.3.2",
"styled-components": "5.0.1",
"swr": "0.4.0",
"terser-webpack-plugin": "5.1.4",
"terser-webpack-plugin": "5.3.9",
"underscore": "1.9.1",
"utility-types": "3.10.0",
"zustand": "3.5.0"
@@ -116,11 +115,14 @@
"@types/codemirror": "0.0.56",
"@types/crossroads": "0.0.30",
"@types/d3": "5.9.2",
"@types/datatables.net": "1.10.28",
"@types/datatables.net-colreorder": "1.4.5",
"@types/dom-to-image": "2.6.2",
"@types/enzyme": "3.10.7",
"@types/enzyme-adapter-react-16": "1.0.6",
"@types/hasher": "0.0.31",
"@types/jest": "26.0.20",
"@types/jquery": "3.5.29",
"@types/node": "12.11.1",
"@types/post-robot": "10.0.1",
"@types/q": "1.5.1",
@@ -134,61 +136,62 @@
"@types/styled-components": "5.1.1",
"@types/underscore": "1.7.36",
"@types/youtube-player": "5.5.6",
"@typescript-eslint/eslint-plugin": "4.22.0",
"@typescript-eslint/parser": "4.22.0",
"@webpack-cli/serve": "1.5.2",
"@typescript-eslint/eslint-plugin": "6.7.4",
"@typescript-eslint/parser": "6.7.4",
"@webpack-cli/serve": "2.0.5",
"babel-jest": "24.9.0",
"babel-loader": "8.1.0",
"buffer": "5.1.0",
"case-sensitive-paths-webpack-plugin": "2.3.0",
"case-sensitive-paths-webpack-plugin": "2.4.0",
"create-file-webpack": "1.0.2",
"css-loader": "1.0.0",
"css-loader": "6.8.1",
"enzyme": "3.11.0",
"enzyme-adapter-react-16": "1.15.5",
"enzyme-to-json": "3.6.1",
"eslint": "7.8.1",
"eslint": "8.50.0",
"eslint-cli": "1.1.1",
"eslint-plugin-no-null": "1.0.2",
"eslint-plugin-prefer-arrow": "1.2.2",
"eslint-plugin-react-hooks": "4.2.0",
"eslint-plugin-prefer-arrow": "1.2.3",
"eslint-plugin-react-hooks": "4.6.0",
"expect-playwright": "0.3.3",
"fast-glob": "3.2.5",
"file-loader": "2.0.0",
"fs-extra": "7.0.0",
"html-inline-css-webpack-plugin": "1.11.0",
"html-inline-css-webpack-plugin": "1.11.2",
"html-loader": "0.5.5",
"html-loader-jest": "0.2.1",
"html-webpack-plugin": "5.3.2",
"html-webpack-plugin": "5.5.3",
"jest": "26.6.3",
"jest-canvas-mock": "2.3.1",
"jest-playwright-preset": "1.5.1",
"jest-react-hooks-shallow": "1.5.1",
"jest-trx-results-processor": "0.0.7",
"less": "3.8.1",
"less-loader": "4.1.0",
"less-loader": "11.1.3",
"less-vars-loader": "1.1.0",
"mini-css-extract-plugin": "2.1.0",
"monaco-editor-webpack-plugin": "1.7.0",
"monaco-editor-webpack-plugin": "7.1.0",
"node-fetch": "2.6.1",
"playwright": "1.13.0",
"prettier": "3.0.3",
"process": "0.11.10",
"querystring-es3": "0.2.1",
"raw-loader": "0.5.1",
"react-dev-utils": "11.0.4",
"rimraf": "3.0.0",
"sinon": "3.2.1",
"style-loader": "0.23.0",
"ts-loader": "9.2.4",
"typedoc": "0.20.36",
"typescript": "4.3.4",
"url-loader": "1.1.1",
"typedoc": "0.21.5",
"typescript": "4.3.5",
"url-loader": "4.1.1",
"wait-on": "4.0.2",
"webpack": "5.47.0",
"webpack-bundle-analyzer": "4.4.2",
"webpack-cli": "4.7.2",
"webpack-dev-server": "3.11.2"
"webpack": "5.88.2",
"webpack-bundle-analyzer": "4.9.1",
"webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.1"
},
"scripts": {
"postinstall": "patch-package",
"start": "webpack serve --mode development",
"dev": "echo \"WARNING: npm run dev has been deprecated\" && npm run build",
"build:dataExplorer:ci": "npm run build:ci",
@@ -235,4 +238,4 @@
"printWidth": 120,
"endOfLine": "auto"
}
}
}

View File

@@ -0,0 +1,22 @@
diff --git a/node_modules/datatables.net-colreorder/types/types.d.ts b/node_modules/datatables.net-colreorder/types/types.d.ts
index e5dc283..1930c2b 100644
--- a/node_modules/datatables.net-colreorder/types/types.d.ts
+++ b/node_modules/datatables.net-colreorder/types/types.d.ts
@@ -7,7 +7,7 @@
/// <reference types="jquery" />
-import DataTables, {Api} from 'datatables.net';
+import DataTables, { Api } from 'datatables.net';
export default DataTables;
@@ -40,6 +40,8 @@ declare module 'datatables.net' {
/**
* Create a new ColReorder instance for the target DataTable
*/
+ // Ignore this error: error TS7013: Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.
+ // @ts-ignore
new (dt: Api<any>, settings: boolean | ConfigColReorder);
/**

View File

@@ -145,6 +145,9 @@ export class Queries {
public static QueryEditorMinHeightRatio: number = 0.1;
public static QueryEditorMaxHeightRatio: number = 0.4;
public static readonly DefaultMaxDegreeOfParallelism = 6;
public static readonly DefaultRetryAttempts = 9;
public static readonly DefaultRetryIntervalInMs = 0;
public static readonly DefaultMaxWaitTimeInSeconds = 30;
}
export class SavedQueries {

View File

@@ -3,6 +3,7 @@ import { sendCachedDataMessage } from "Common/MessageHandler";
import { getAuthorizationTokenUsingResourceTokens } from "Common/getAuthorizationTokenUsingResourceTokens";
import { AuthorizationToken, MessageTypes } from "Contracts/MessageTypes";
import { checkDatabaseResourceTokensValidity } from "Platform/Fabric/FabricUtil";
import { LocalStorageUtility, StorageKey } from "Shared/StorageUtility";
import { AuthType } from "../AuthType";
import { PriorityLevel } from "../Common/Constants";
import { Platform, configContext } from "../ConfigContext";
@@ -148,11 +149,15 @@ export function client(): Cosmos.CosmosClient {
endpoint: endpoint() || "https://cosmos.azure.com", // CosmosClient gets upset if we pass a bad URL. This should never actually get called
key: userContext.masterKey,
tokenProvider,
connectionPolicy: {
enableEndpointDiscovery: false,
},
userAgentSuffix: "Azure Portal",
defaultHeaders: _defaultHeaders,
connectionPolicy: {
retryOptions: {
maxRetryAttemptCount: LocalStorageUtility.getEntryNumber(StorageKey.RetryAttempts),
fixedRetryIntervalInMilliseconds: LocalStorageUtility.getEntryNumber(StorageKey.RetryInterval),
maxWaitTimeInSeconds: LocalStorageUtility.getEntryNumber(StorageKey.MaxWaitTimeInSeconds),
},
},
};
if (configContext.PROXY_PATH !== undefined) {

View File

@@ -1,7 +1,5 @@
jest.mock("./MessageHandler");
import { LogEntryLevel } from "../Contracts/Diagnostics";
import * as Logger from "./Logger";
import { MessageTypes } from "../Contracts/ExplorerContracts";
import { sendMessage } from "./MessageHandler";
describe("Logger", () => {
@@ -11,16 +9,16 @@ describe("Logger", () => {
it("should log info messages", () => {
Logger.logInfo("Test info", "DocDB");
expect(sendMessage).toBeCalled();
expect(sendMessage).toHaveBeenCalled();
});
it("should log error messages", () => {
Logger.logError("Test error", "DocDB");
expect(sendMessage).toBeCalled();
expect(sendMessage).toHaveBeenCalled();
});
it("should log warnings", () => {
Logger.logWarning("Test warning", "DocDB");
expect(sendMessage).toBeCalled();
expect(sendMessage).toHaveBeenCalled();
});
});

View File

@@ -1,3 +1,4 @@
import { isServerlessAccount } from "Utils/CapabilityUtils";
import * as _ from "underscore";
import * as DataModels from "../Contracts/DataModels";
import * as ViewModels from "../Contracts/ViewModels";
@@ -8,12 +9,11 @@ import { useDatabases } from "../Explorer/useDatabases";
import { userContext } from "../UserContext";
import * as NotificationConsoleUtils from "../Utils/NotificationConsoleUtils";
import { BackendDefaults, HttpStatusCodes, SavedQueries } from "./Constants";
import { handleError } from "./ErrorHandlingUtils";
import { createCollection } from "./dataAccess/createCollection";
import { createDocument } from "./dataAccess/createDocument";
import { deleteDocument } from "./dataAccess/deleteDocument";
import { queryDocuments } from "./dataAccess/queryDocuments";
import { handleError } from "./ErrorHandlingUtils";
import { isServerlessAccount } from "Utils/CapabilityUtils";
export class QueriesClient {
private static readonly PartitionKey: DataModels.PartitionKey = {

View File

@@ -1,5 +1,5 @@
import { getCommonQueryOptions } from "./queryDocuments";
import { LocalStorageUtility, StorageKey } from "../../Shared/StorageUtility";
import { getCommonQueryOptions } from "./queryDocuments";
describe("getCommonQueryOptions", () => {
it("builds the correct default options objects", () => {

View File

@@ -26,6 +26,5 @@ export const getCommonQueryOptions = (options: FeedOptions): FeedOptions => {
(storedItemPerPageSetting !== undefined && storedItemPerPageSetting) ||
Queries.itemsPerPage;
options.maxDegreeOfParallelism = LocalStorageUtility.getEntryNumber(StorageKey.MaxDegreeOfParellism);
return options;
};

View File

@@ -66,6 +66,7 @@ let configContext: Readonly<ConfigContext> = {
`^https:\\/\\/.*\\.powerbi\\.com$`,
`^https:\\/\\/.*\\.analysis-df\\.net$`,
`^https:\\/\\/.*\\.analysis-df\\.windows\\.net$`,
`^https:\\/\\/.*\\.azure-test\\.net$`,
], // Webpack injects this at build time
gitSha: process.env.GIT_SHA,
hostedExplorerURL: "https://cosmos.azure.com/",

View File

@@ -109,6 +109,7 @@ describe("iframe rendering when there is no data", () => {
theme: 4,
},
},
origin: "http://localhost",
};
const divElement = `<div id="${Heatmap.elementId}"></div>`;
@@ -129,6 +130,7 @@ describe("iframe rendering when there is no data", () => {
theme: 2,
},
},
origin: "http://localhost",
};
const divElement = `<div id="${Heatmap.elementId}"></div>`;

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@
* https://github.com/running-coder/jquery-typeahead/issues/156
* TODO: Replace this minimum definition by the official one when it comes out.
*/
/// <reference path="jquery.d.ts" />
/// <reference types="jquery" />
interface JQueryTypeaheadParam {
input: string;

View File

@@ -3,7 +3,7 @@
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, John Reilly <https://github.com/johnnyreilly>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="jquery.d.ts"/>
/// <reference types="jquery"/>
declare namespace JQueryUI {
// Accordion //////////////////////////////////////////////////

File diff suppressed because it is too large Load Diff

View File

@@ -27,6 +27,7 @@ export interface AccordionItemComponentProps {
isExpanded?: boolean;
containerStyles?: React.CSSProperties;
styles?: React.CSSProperties;
children: JSX.Element;
}
interface AccordionItemComponentState {

View File

@@ -16,6 +16,7 @@ export interface CollapsiblePanelProps {
isCollapsed: boolean;
onCollapsedChanged: (newValue: boolean) => void;
collapseToLeft?: boolean;
children: JSX.Element | JSX.Element[];
}
export class CollapsiblePanel extends React.Component<CollapsiblePanelProps> {

View File

@@ -7,6 +7,7 @@ describe("CollapsibleSectionComponent", () => {
const props: CollapsibleSectionProps = {
title: "Sample title",
isExpandedByDefault: true,
children: <></>,
};
const wrapper = shallow(<CollapsibleSectionComponent {...props} />);

View File

@@ -7,6 +7,7 @@ export interface CollapsibleSectionProps {
title: string;
isExpandedByDefault: boolean;
onExpand?: () => void;
children: JSX.Element;
}
export interface CollapsibleSectionState {

View File

@@ -99,7 +99,7 @@ export class DiffEditorViewModel {
) {
this.editorContainer = document.getElementById(this.getEditorId());
this.editorContainer.innerHTML = "";
const options: monaco.editor.IDiffEditorConstructionOptions = {
const options: monaco.editor.IStandaloneDiffEditorConstructionOptions = {
lineNumbers: this.params.lineNumbers || "off",
fontSize: 12,
ariaLabel: this.params.ariaLabel,

View File

@@ -52,7 +52,11 @@ class EditorViewModel extends JsonEditorViewModel {
if (EditorViewModel.providerRegistered.indexOf("sql") < 0) {
const { SqlCompletionItemProvider } = await import("@azure/cosmos-language-service");
const monaco = await loadMonaco();
monaco.languages.registerCompletionItemProvider("sql", new SqlCompletionItemProvider());
monaco.languages.registerCompletionItemProvider(
"sql",
// TODO cosmos-language-service could be outdated
new SqlCompletionItemProvider() as unknown as monaco.languages.CompletionItemProvider,
);
EditorViewModel.providerRegistered.push("sql");
}
}

View File

@@ -93,7 +93,7 @@ export class EditorReact extends React.Component<EditorReactProps, EditorReactSt
* Create the monaco editor and attach to DOM
*/
private async createEditor(createCallback: (e: monaco.editor.IStandaloneCodeEditor) => void) {
const options: monaco.editor.IEditorConstructionOptions = {
const options: monaco.editor.IStandaloneEditorConstructionOptions = {
language: this.props.language,
value: this.props.content,
readOnly: this.props.isReadOnly,

View File

@@ -90,7 +90,7 @@ export class JsonEditorViewModel extends WaitsForTemplateViewModel {
protected async createEditor(content: string, createCallback: (e: monaco.editor.IStandaloneCodeEditor) => void) {
this.registerCompletionItemProvider();
this.editorContainer = document.getElementById(this.getEditorId());
const options: monaco.editor.IEditorConstructionOptions = {
const options: monaco.editor.IStandaloneEditorConstructionOptions = {
value: content,
language: this.getEditorLanguage(),
readOnly: this.params.isReadOnly,

View File

@@ -29,6 +29,6 @@ describe("CodeOfConduct", () => {
const wrapper = shallow(<CodeOfConduct {...codeOfConductProps} />);
wrapper.find(".genericPaneSubmitBtn").first().simulate("click");
await Promise.resolve();
expect(codeOfConductProps.onAcceptCodeOfConduct).toBeCalled();
expect(codeOfConductProps.onAcceptCodeOfConduct).toHaveBeenCalled();
});
});

View File

@@ -9,7 +9,7 @@ import { updateUserContext } from "../../../UserContext";
import Explorer from "../../Explorer";
import { CollectionSettingsTabV2 } from "../../Tabs/SettingsTabV2";
import { SettingsComponent, SettingsComponentProps, SettingsComponentState } from "./SettingsComponent";
import { isDirty, TtlType } from "./SettingsUtils";
import { TtlType, isDirty } from "./SettingsUtils";
import { collection } from "./TestUtils";
jest.mock("../../../Common/dataAccess/getIndexTransformationProgress", () => ({
getIndexTransformationProgress: jest.fn().mockReturnValue(undefined),
@@ -190,8 +190,8 @@ describe("SettingsComponent", () => {
id: "id",
};
await settingsComponentInstance.onSaveClick();
expect(updateCollection).toBeCalled();
expect(updateOffer).toBeCalled();
expect(updateCollection).toHaveBeenCalled();
expect(updateOffer).toHaveBeenCalled();
});
it("revert resets state values", async () => {

View File

@@ -1,8 +1,8 @@
import { shallow } from "enzyme";
import React from "react";
import { renderToString } from "react-dom/server";
import { MongoIndexTypes, MongoNotificationMessage, MongoNotificationType } from "../../SettingsUtils";
import { MongoIndexingPolicyComponent, MongoIndexingPolicyComponentProps } from "./MongoIndexingPolicyComponent";
import { renderToString } from "react-dom/server";
describe("MongoIndexingPolicyComponent", () => {
const baseProps: MongoIndexingPolicyComponentProps = {
@@ -84,7 +84,7 @@ describe("MongoIndexingPolicyComponent", () => {
];
test.each(cases)(
"",
"mongo indexing policy saveable and discardable",
(
notification: MongoNotificationMessage,
indexToDropIsPresent: boolean,
@@ -111,8 +111,10 @@ describe("MongoIndexingPolicyComponent", () => {
);
if (mongoWarningNotificationMessage) {
const elementAsString = renderToString(mongoIndexingPolicyComponent.getMongoWarningNotificationMessage());
// eslint-disable-next-line jest/no-conditional-expect
expect(elementAsString).toContain(mongoWarningNotificationMessage);
} else {
// eslint-disable-next-line jest/no-conditional-expect
expect(mongoIndexingPolicyComponent.getMongoWarningNotificationMessage()).toBeUndefined();
}
},

View File

@@ -23,12 +23,12 @@ describe("ThroughputInput Pane", () => {
});
it("should switch mode properly", () => {
wrapper.find('[aria-label="Manual database throughput"]').simulate("change");
wrapper.find('[id="Manual-input"]').simulate("change");
expect(wrapper.find('[aria-label="Throughput header"]').at(0).text()).toBe(
"Container throughput (400 - unlimited RU/s)",
);
wrapper.find('[aria-label="Autoscale database throughput"]').simulate("change");
wrapper.find('[id="Autoscale-input"]').simulate("change");
expect(wrapper.find('[aria-label="Throughput header"]').at(0).text()).toBe("Container throughput (autoscale)");
});
});

View File

@@ -189,7 +189,7 @@ export const ThroughputInput: FunctionComponent<ThroughputInputProps> = ({
<input
id="Autoscale-input"
className="throughputInputRadioBtn"
aria-label="Autoscale database throughput"
aria-label={`${getThroughputLabelText()} Autoscale`}
aria-required={true}
checked={isAutoscaleSelected}
type="radio"
@@ -204,7 +204,7 @@ export const ThroughputInput: FunctionComponent<ThroughputInputProps> = ({
<input
id="Manual-input"
className="throughputInputRadioBtn"
aria-label="Manual database throughput"
aria-label={`${getThroughputLabelText()} Manual`}
checked={!isAutoscaleSelected}
type="radio"
aria-required={true}
@@ -276,6 +276,12 @@ export const ThroughputInput: FunctionComponent<ThroughputInputProps> = ({
</Link>
.
</Text>
<Stack horizontal>
<Text variant="small" style={{ lineHeight: "20px", fontWeight: 600 }} aria-label="maxRUDescription">
{isDatabase ? "Database" : getCollectionName()} Required RU/s
</Text>
<InfoTooltip>{getAutoScaleTooltip()}</InfoTooltip>
</Stack>
<TooltipHost
directionalHint={DirectionalHint.topLeftEdge}
@@ -296,7 +302,7 @@ export const ThroughputInput: FunctionComponent<ThroughputInputProps> = ({
min={SharedConstants.CollectionCreation.DefaultCollectionRUs400}
max={userContext.isTryCosmosDBSubscription ? Constants.TryCosmosExperience.maxRU : Infinity}
value={throughput.toString()}
aria-label="Max request units per second"
ariaLabel={`${isDatabase ? "Database" : getCollectionName()} Required RU/s`}
required={true}
errorMessage={throughputError}
/>

View File

@@ -18,17 +18,17 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
horizontal={true}
>
<div
className="ms-Stack css-53"
className="ms-Stack css-109"
>
<span
className="mandatoryStar"
key=".0:$.0"
key=".0:$.$.0"
>
* 
</span>
<Text
aria-label="Throughput header"
key=".0:$.1"
key=".0:$.$.1"
style={
Object {
"fontWeight": 600,
@@ -39,7 +39,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
>
<span
aria-label="Throughput header"
className="css-54"
className="css-110"
style={
Object {
"fontWeight": 600,
@@ -51,7 +51,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
</span>
</Text>
<InfoTooltip
key=".0:$.2"
key=".0:$.$.2"
>
<span>
<StyledTooltipHostBase
@@ -336,12 +336,13 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
}
>
<div
className="ms-TooltipHost root-55"
className="ms-TooltipHost root-111"
onBlurCapture={[Function]}
onFocusCapture={[Function]}
onKeyDown={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
role="none"
>
<StyledIconBase
ariaLabel="Set the throughput — Request Units per second (RU/s) — required for the workload. A read of a 1 KB document uses 1 RU. Select manual if you plan to scale RU/s yourself. Select autoscale to allow the system to scale RU/s based on usage."
@@ -631,7 +632,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
>
<i
aria-label="Set the throughput — Request Units per second (RU/s) — required for the workload. A read of a 1 KB document uses 1 RU. Select manual if you plan to scale RU/s yourself. Select autoscale to allow the system to scale RU/s based on usage."
className="panelInfoIcon root-57"
className="panelInfoIcon root-114"
data-icon-name="Info"
role="img"
tabIndex={0}
@@ -640,6 +641,24 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
</i>
</IconBase>
</StyledIconBase>
<div
hidden={true}
id="tooltip0"
style={
Object {
"border": 0,
"height": 1,
"margin": -1,
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
}
}
>
Set the throughput — Request Units per second (RU/s) — required for the workload. A read of a 1 KB document uses 1 RU. Select manual if you plan to scale RU/s yourself. Select autoscale to allow the system to scale RU/s based on usage.
</div>
</div>
</TooltipHostBase>
</StyledTooltipHostBase>
@@ -652,14 +671,14 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
verticalAlign="center"
>
<div
className="ms-Stack css-58"
className="ms-Stack css-115"
>
<div
key=".0:$.0"
key=".0:$.$.0"
role="radiogroup"
>
<input
aria-label="Autoscale database throughput"
aria-label="Container throughput (autoscale) Autoscale"
aria-required={true}
checked={true}
className="throughputInputRadioBtn"
@@ -676,7 +695,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
Autoscale
</label>
<input
aria-label="Manual database throughput"
aria-label="Container throughput (autoscale) Manual"
aria-required={true}
checked={false}
className="throughputInputRadioBtn"
@@ -699,16 +718,16 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
className="throughputInputSpacing"
>
<div
className="ms-Stack throughputInputSpacing css-59"
className="ms-Stack throughputInputSpacing css-116"
>
<Text
aria-label="capacity calculator of azure cosmos db"
key=".0:$.0"
key=".0:$.$.0"
variant="small"
>
<span
aria-label="capacity calculator of azure cosmos db"
className="css-54"
className="css-110"
>
Estimate your required RU/s with
@@ -998,7 +1017,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
>
<a
aria-label="capacity calculator of azure cosmos db"
className="ms-Link root-60"
className="ms-Link root-117"
href="https://cosmos.azure.com/capacitycalculator/"
onClick={[Function]}
target="_blank"
@@ -1012,14 +1031,14 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
</Text>
<Stack
horizontal={true}
key=".0:$.1"
key=".0:$.$.1"
>
<div
className="ms-Stack css-53"
className="ms-Stack css-109"
>
<Text
aria-label="maxRUDescription"
key=".0:$.0"
key=".0:$.$.0"
style={
Object {
"fontWeight": 600,
@@ -1030,7 +1049,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
>
<span
aria-label="maxRUDescription"
className="css-54"
className="css-110"
style={
Object {
"fontWeight": 600,
@@ -1043,7 +1062,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
</span>
</Text>
<InfoTooltip
key=".0:$.1"
key=".0:$.$.1"
>
<span>
<StyledTooltipHostBase
@@ -1328,12 +1347,13 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
}
>
<div
className="ms-TooltipHost root-55"
className="ms-TooltipHost root-111"
onBlurCapture={[Function]}
onFocusCapture={[Function]}
onKeyDown={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
role="none"
>
<StyledIconBase
ariaLabel="Set the max RU/s to the highest RU/s you want your container to scale to. The container will scale between 10% of max RU/s to the max RU/s based on usage."
@@ -1623,7 +1643,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
>
<i
aria-label="Set the max RU/s to the highest RU/s you want your container to scale to. The container will scale between 10% of max RU/s to the max RU/s based on usage."
className="panelInfoIcon root-57"
className="panelInfoIcon root-114"
data-icon-name="Info"
role="img"
tabIndex={0}
@@ -1632,6 +1652,24 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
</i>
</IconBase>
</StyledIconBase>
<div
hidden={true}
id="tooltip1"
style={
Object {
"border": 0,
"height": 1,
"margin": -1,
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
}
}
>
Set the max RU/s to the highest RU/s you want your container to scale to. The container will scale between 10% of max RU/s to the max RU/s based on usage.
</div>
</div>
</TooltipHostBase>
</StyledTooltipHostBase>
@@ -1643,7 +1681,7 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
ariaLabel="Container max RU/s"
errorMessage=""
id="autoscaleRUValueField"
key=".0:$.2"
key=".0:$.$.2"
max="9007199254740991"
min={1000}
onChange={[Function]}
@@ -1953,18 +1991,18 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
value="4000"
>
<div
className="ms-TextField is-required root-62"
className="ms-TextField is-required root-119"
>
<div
className="ms-TextField-wrapper"
>
<div
className="ms-TextField-fieldGroup fieldGroup-63"
className="ms-TextField-fieldGroup fieldGroup-120"
>
<input
aria-invalid={false}
aria-label="Container max RU/s"
className="ms-TextField-field field-64"
className="ms-TextField-field field-121"
id="autoscaleRUValueField"
max="9007199254740991"
min={1000}
@@ -1983,11 +2021,11 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
</TextFieldBase>
</StyledTextFieldBase>
<Text
key=".0:$.3"
key=".0:$.$.3"
variant="small"
>
<span
className="css-54"
className="css-110"
>
Your
container

View File

@@ -3,7 +3,7 @@ import { isPublicInternetAccessAllowed } from "Common/DatabaseAccountUtility";
import { sendMessage } from "Common/MessageHandler";
import { Platform, configContext } from "ConfigContext";
import { MessageTypes } from "Contracts/ExplorerContracts";
import { getCopilotEnabled, isCopilotFeatureRegistered } from "Explorer/QueryCopilot/Shared/QueryCopilotClient";
import { getCopilotEnabled } from "Explorer/QueryCopilot/Shared/QueryCopilotClient";
import { IGalleryItem } from "Juno/JunoClient";
import { requestDatabaseResourceTokens } from "Platform/Fabric/FabricUtil";
import { allowedNotebookServerUrls, validateEndpoint } from "Utils/EndpointValidation";
@@ -1389,14 +1389,9 @@ export default class Explorer {
if (userContext.apiType !== "SQL" || !userContext.subscriptionId) {
return;
}
const copilotEnabledPromise = getCopilotEnabled();
const copilotUserDBEnabledPromise = isCopilotFeatureRegistered(userContext.subscriptionId);
const [copilotEnabled, copilotUserDBEnabled] = await Promise.all([
copilotEnabledPromise,
copilotUserDBEnabledPromise,
]);
const copilotEnabled = await getCopilotEnabled();
useQueryCopilot.getState().setCopilotEnabled(copilotEnabled);
useQueryCopilot.getState().setCopilotUserDBEnabled(copilotUserDBEnabled);
useQueryCopilot.getState().setCopilotUserDBEnabled(copilotEnabled);
}
public async refreshSampleData(): Promise<void> {

View File

@@ -367,7 +367,7 @@ describe("GraphExplorer", () => {
});
it("should submit g.V() as docdb query with proper parameters", () => {
expect(queryDocuments).toBeCalledWith("databaseId", "collectionId", DOCDB_G_DOT_V_QUERY, {
expect(queryDocuments).toHaveBeenCalledWith("databaseId", "collectionId", DOCDB_G_DOT_V_QUERY, {
maxItemCount: GraphExplorer.ROOT_LIST_PAGE_SIZE,
enableCrossPartitionQuery: true,
});
@@ -404,7 +404,7 @@ describe("GraphExplorer", () => {
});
it("should submit g.V() as docdb query with proper parameters", () => {
expect(queryDocuments).toBeCalledWith("databaseId", "collectionId", DOCDB_G_DOT_V_QUERY, {
expect(queryDocuments).toHaveBeenCalledWith("databaseId", "collectionId", DOCDB_G_DOT_V_QUERY, {
maxItemCount: GraphExplorer.ROOT_LIST_PAGE_SIZE,
enableCrossPartitionQuery: true,
});

View File

@@ -1163,15 +1163,12 @@ export class GraphExplorer extends React.Component<GraphExplorerProps, GraphExpl
)}"`,
).then(
(documents: DataModels.DocumentId[]) => {
$.each(
documents,
(index: number, doc: { _graph_icon_property_value: string; icon: string; format: string }) => {
newIconsMap[doc["_graph_icon_property_value"]] = {
data: doc["icon"],
format: doc["format"],
};
},
);
$.each(documents, (index: number, doc: any) => {
newIconsMap[doc["_graph_icon_property_value"]] = {
data: doc["icon"],
format: doc["format"],
};
});
// Update graph configuration
this.setState({

View File

@@ -43,7 +43,7 @@ describe("Graph Style Component", () => {
expect(asFragment).toMatchSnapshot();
});
it("should render node properties dropdown list ", () => {
it("should render node properties dropdown list", () => {
const dropDownList = screen.getByText("Show vertex (node) as");
expect(dropDownList).toBeDefined();
});

View File

@@ -35,7 +35,7 @@ describe("CommandBarUtil tests", () => {
// Click gets called
converted.onClick();
expect(btn.onCommandClick).toBeCalled();
expect(btn.onCommandClick).toHaveBeenCalled();
});
it("should convert NavbarButtonConfig to split button", () => {

View File

@@ -1,14 +1,14 @@
import { makeNotebookRecord } from "@nteract/commutable";
import { actions, state } from "@nteract/core";
import * as Immutable from "immutable";
import { StateObservable } from "redux-observable";
import { Subject, of } from "rxjs";
import { toArray } from "rxjs/operators";
import { makeNotebookRecord } from "@nteract/commutable";
import { actions, state, epics } from "@nteract/core";
import * as sinon from "sinon";
import { CdbAppState, makeCdbRecord } from "./types";
import { launchWebSocketKernelEpic } from "./epics";
import { NotebookUtil } from "../NotebookUtil";
import { launchWebSocketKernelEpic } from "./epics";
import { CdbAppState, makeCdbRecord } from "./types";
import { sessions } from "rx-jupyter";
@@ -117,7 +117,7 @@ describe("launchWebSocketKernelEpic", () => {
const kernelRef = "fake";
it("launches remote kernels", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const cwd = "/";
const kernelId = "123";
@@ -183,7 +183,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("launches any kernel with no kernelspecs in the state", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const cwd = "/";
const kernelId = "123";
@@ -236,7 +236,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("launches no kernel if no kernel is specified and state has no kernelspecs", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const cwd = "/";
const kernelId = "123";
@@ -289,7 +289,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("emits an error if backend returns an error", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const cwd = "/";
const action$ = of(
@@ -388,7 +388,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("launches supported kernel in kernelspecs", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const action$ = of(
actions.launchKernelByName({
@@ -409,7 +409,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("launches undefined kernel uses default kernel from kernelspecs", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const action$ = of(
actions.launchKernelByName({
@@ -431,7 +431,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("launches unsupported kernel uses default kernel from kernelspecs", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const action$ = of(
actions.launchKernelByName({
@@ -453,7 +453,7 @@ describe("launchWebSocketKernelEpic", () => {
});
it("launches unsupported kernel uses kernelspecs with similar name", async () => {
const state$ = new StateObservable(new Subject<CdbAppState>(), initialState);
const state$ = new StateObservable(new Subject<CdbAppState>() as any, initialState);
const action$ = of(
actions.launchKernelByName({

View File

@@ -69,8 +69,8 @@ const addInitialCodeCellEpic = (
state$: StateObservable<AppState>,
): Observable<{} | actions.CreateCellBelow> => {
return action$.pipe(
ofType(actions.FETCH_CONTENT_FULFILLED),
mergeMap((action) => {
ofType(actions.FETCH_CONTENT_FULFILLED) as any,
mergeMap((action: any) => {
const state = state$.value;
const contentRef = action.payload.contentRef;
const model = selectors.model(state, { contentRef });
@@ -116,7 +116,7 @@ const formWebSocketURL = (serverConfig: NotebookServiceConfig, kernelId: string,
*/
export const acquireKernelInfoEpic = (action$: Observable<actions.NewKernelAction>) => {
return action$.pipe(
ofType(actions.LAUNCH_KERNEL_SUCCESSFUL),
ofType(actions.LAUNCH_KERNEL_SUCCESSFUL) as any,
switchMap((action: actions.NewKernelAction) => {
const {
payload: {
@@ -271,9 +271,9 @@ export const launchWebSocketKernelEpic = (
state$: StateObservable<CdbAppState>,
) => {
return action$.pipe(
ofType(actions.LAUNCH_KERNEL_BY_NAME),
ofType(actions.LAUNCH_KERNEL_BY_NAME) as any,
// Only accept jupyter servers for the host with this epic
filter(() => selectors.isCurrentHostJupyter(state$.value)),
filter(() => selectors.isCurrentHostJupyter(state$.value as never)),
switchMap((action: actions.LaunchKernelByNameAction) => {
const state = state$.value;
const host = selectors.currentHost(state);
@@ -382,7 +382,7 @@ export const restartWebSocketKernelEpic = (
state$: StateObservable<AppState>,
) =>
action$.pipe(
ofType(actions.RESTART_KERNEL),
ofType(actions.RESTART_KERNEL) as any,
concatMap((action: actions.RestartKernel) => {
const state = state$.value;
@@ -449,7 +449,7 @@ export const restartWebSocketKernelEpic = (
});
const awaitKernelReady = action$.pipe(
ofType(actions.LAUNCH_KERNEL_SUCCESSFUL),
ofType(actions.LAUNCH_KERNEL_SUCCESSFUL) as any,
filter((action: actions.NewKernelAction | actions.RestartKernel) => action.payload.kernelRef === newKernelRef),
take(1),
timeout(60000), // If kernel doesn't come up within this interval we will abort follow-on actions.
@@ -492,9 +492,9 @@ const changeWebSocketKernelEpic = (
state$: StateObservable<AppState>,
) => {
return action$.pipe(
ofType(actions.CHANGE_KERNEL_BY_NAME),
ofType(actions.CHANGE_KERNEL_BY_NAME) as any,
// Only accept jupyter servers for the host with this epic
filter(() => selectors.isCurrentHostJupyter(state$.value)),
filter(() => selectors.isCurrentHostJupyter(state$.value as never)),
switchMap((action: actions.ChangeKernelByName) => {
const {
payload: { contentRef, oldKernelRef, kernelSpecName },
@@ -574,8 +574,8 @@ const focusInitialCodeCellEpic = (
state$: StateObservable<AppState>,
): Observable<{} | actions.FocusCell> => {
return action$.pipe(
ofType(actions.CREATE_CELL_APPEND),
mergeMap((action) => {
ofType(actions.CREATE_CELL_APPEND) as any,
mergeMap((action: any) => {
const state = state$.value;
const contentRef = action.payload.contentRef;
const model = selectors.model(state, { contentRef });
@@ -616,8 +616,8 @@ const notificationsToUserEpic = (action$: Observable<any>, state$: StateObservab
actions.SAVE_FULFILLED,
actions.SAVE_FAILED,
actions.FETCH_CONTENT_FAILED,
),
mergeMap((action) => {
) as any,
mergeMap((action: any) => {
switch (action.type) {
case actions.RESTART_KERNEL_SUCCESSFUL: {
const title = "Kernel restart";
@@ -662,8 +662,8 @@ const handleKernelConnectionLostEpic = (
state$: StateObservable<CdbAppState>,
): Observable<CdbActions.UpdateKernelRestartDelayAction | actions.RestartKernel | {}> => {
return action$.pipe(
ofType(actions.UPDATE_DISPLAY_FAILED),
mergeMap((action) => {
ofType(actions.UPDATE_DISPLAY_FAILED) as any,
mergeMap((action: any) => {
const state = state$.value;
const msg = "Notebook was disconnected from kernel";
@@ -721,8 +721,8 @@ export const cleanKernelOnConnectionLostEpic = (
state$: StateObservable<AppState>,
): Observable<actions.KillKernelSuccessful> => {
return action$.pipe(
ofType(actions.UPDATE_DISPLAY_FAILED),
switchMap((action) => {
ofType(actions.UPDATE_DISPLAY_FAILED) as any,
switchMap((action: any) => {
const contentRef = action.payload.contentRef;
const kernelRef = selectors.kernelRefByContentRef(state$.value, { contentRef });
return of(
@@ -744,8 +744,8 @@ const executeFocusedCellAndFocusNextEpic = (
state$: StateObservable<AppState>,
): Observable<{} | actions.FocusNextCellEditor> => {
return action$.pipe(
ofType(CdbActions.EXECUTE_FOCUSED_CELL_AND_FOCUS_NEXT),
mergeMap((action) => {
ofType(CdbActions.EXECUTE_FOCUSED_CELL_AND_FOCUS_NEXT) as any,
mergeMap((action: any) => {
const contentRef = action.payload.contentRef;
return concat(
of(actions.executeFocusedCell({ contentRef })),
@@ -765,8 +765,8 @@ const closeUnsupportedMimetypesEpic = (
state$: StateObservable<AppState>,
): Observable<{}> => {
return action$.pipe(
ofType(actions.FETCH_CONTENT_FULFILLED),
mergeMap((action) => {
ofType(actions.FETCH_CONTENT_FULFILLED) as any,
mergeMap((action: any) => {
const mimetype = action.payload.model.mimetype;
if (!TextFile.handles(mimetype)) {
const filepath = action.payload.filepath;
@@ -796,8 +796,8 @@ const closeContentFailedToFetchEpic = (
state$: StateObservable<AppState>,
): Observable<{}> => {
return action$.pipe(
ofType(actions.FETCH_CONTENT_FAILED),
mergeMap((action) => {
ofType(actions.FETCH_CONTENT_FAILED) as any,
mergeMap((action: any) => {
const filepath = action.payload.filepath;
// Close tab and show error message
useTabs
@@ -818,7 +818,7 @@ const traceNotebookTelemetryEpic = (
state$: StateObservable<CdbAppState>,
): Observable<{}> => {
return action$.pipe(
ofType(cdbActions.TRACE_NOTEBOOK_TELEMETRY),
ofType(cdbActions.TRACE_NOTEBOOK_TELEMETRY) as any,
mergeMap((action: cdbActions.TraceNotebookTelemetryAction) => {
const state = state$.value;
@@ -844,7 +844,7 @@ const traceNotebookInfoEpic = (
state$: StateObservable<AppState>,
): Observable<{} | cdbActions.TraceNotebookTelemetryAction> => {
return action$.pipe(
ofType(actions.FETCH_CONTENT_FULFILLED),
ofType(actions.FETCH_CONTENT_FULFILLED) as any,
mergeMap((action: { payload: any }) => {
const state = state$.value;
const contentRef = action.payload.contentRef;
@@ -897,7 +897,7 @@ const traceNotebookKernelEpic = (
state$: StateObservable<AppState>,
): Observable<cdbActions.TraceNotebookTelemetryAction> => {
return action$.pipe(
ofType(actions.LAUNCH_KERNEL_SUCCESSFUL),
ofType(actions.LAUNCH_KERNEL_SUCCESSFUL) as any,
mergeMap((action: { payload: any; type: string }) => {
return of(
cdbActions.traceNotebookTelemetry({
@@ -917,8 +917,8 @@ const resetCellStatusOnExecuteCanceledEpic = (
state$: StateObservable<AppState>,
): Observable<actions.UpdateCellStatus> => {
return action$.pipe(
ofType(actions.EXECUTE_CANCELED),
mergeMap((action) => {
ofType(actions.EXECUTE_CANCELED) as any,
mergeMap((action: any) => {
const contentRef = action.payload.contentRef;
const model = state$.value.core.entities.contents.byRef.get(contentRef).model;
let busyCellIds: string[] = [];
@@ -960,8 +960,8 @@ export function autoSaveCurrentContentEpic(
state$: StateObservable<AppState>,
): Observable<actions.Save> {
return state$.pipe(
map((state) => autoSaveInterval(state)),
switchMap((time) => interval(time)),
map((state) => autoSaveInterval(state)) as any,
switchMap((time) => interval(time as number)) as any,
mergeMap(() => {
const state = state$.value;
return from(
@@ -976,7 +976,7 @@ export function autoSaveCurrentContentEpic(
)
.keys(),
);
}),
}) as any,
filter((contentRef: ContentRef) => {
const model = selectors.model(state$.value, { contentRef });
const content = selectors.content(state$.value, { contentRef });
@@ -985,12 +985,12 @@ export function autoSaveCurrentContentEpic(
model.type === "notebook" &&
NotebookUtil.getContentProviderType(content.filepath) !== NotebookContentProviderType.JupyterContentProviderType
) {
return selectors.notebook.isDirty(model);
return selectors.notebook.isDirty(model as never);
}
return false;
}),
map((contentRef: ContentRef) => actions.save({ contentRef })),
);
}) as any,
map((contentRef: ContentRef) => actions.save({ contentRef })) as any,
) as any;
}
export const allEpics = [

View File

@@ -34,11 +34,11 @@ export default function configureStore(
const protect = (epic: Epic) => {
return (action$: Observable<any>, state$: any, dependencies: any) =>
epic(action$, state$, dependencies).pipe(
epic(action$ as any, state$, dependencies).pipe(
catchError((error, caught) => {
traceFailure("Epic failure", error);
return caught;
}),
}) as any,
);
};
@@ -52,7 +52,7 @@ export default function configureStore(
};
const protectEpics = (epics: Epic[]): Epic[] => {
return epics.map((epic) => protect(epic));
return epics.map((epic) => protect(epic)) as any;
};
const filteredCoreEpics = getCoreEpics(autoStartKernelOnNotebookOpen);
@@ -64,7 +64,7 @@ export default function configureStore(
core: coreReducer as any,
cdb: cdbReducer,
},
epics: protectEpics([...filteredCoreEpics, ...allEpics]),
epics: protectEpics([...filteredCoreEpics, ...allEpics] as any),
epicDependencies: { contentProvider },
epicMiddleware: customMiddlewares.concat(catchErrorMiddleware),
enhancer: composeEnhancers,
@@ -106,5 +106,5 @@ export const getCoreEpics = (autoStartKernelOnNotebookOpen: boolean): Epic[] =>
filteredCoreEpics.push(coreEpics.launchKernelWhenNotebookSetEpic);
}
return filteredCoreEpics;
return filteredCoreEpics as any;
};

View File

@@ -23,7 +23,7 @@ describe("Cassandra add collection pane test", () => {
expect(screen.getByRole("combobox", { name: "Choose existing keyspace id" })).toBeDefined();
});
it("enter Keyspace name ", () => {
it("enter Keyspace name", () => {
fireEvent.change(screen.getByRole("textbox", { name: "Keyspace id" }), { target: { value: "table1" } });
expect(screen.getByText("CREATE TABLE table1.")).toBeDefined();
});

View File

@@ -32,7 +32,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
variant="small"
>
<span
className="css-53"
className="css-109"
>
Confirm by typing the
container
@@ -340,19 +340,19 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
value=""
>
<div
className="ms-TextField is-required root-55"
className="ms-TextField is-required root-111"
>
<div
className="ms-TextField-wrapper"
>
<div
className="ms-TextField-fieldGroup fieldGroup-56"
className="ms-TextField-fieldGroup fieldGroup-112"
>
<input
aria-invalid={false}
aria-label="Confirm by typing the container id"
autoFocus={true}
className="ms-TextField-field field-57"
className="ms-TextField-field field-113"
id="confirmCollectionId"
onBlur={[Function]}
onChange={[Function]}
@@ -1259,7 +1259,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1285,7 +1285,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1297,14 +1297,16 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1335,7 +1337,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -1362,7 +1364,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1387,14 +1389,16 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1428,7 +1432,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1445,7 +1449,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -1457,7 +1461,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1473,12 +1477,13 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -1489,14 +1494,16 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1519,13 +1526,21 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -1538,7 +1553,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -1551,7 +1566,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1565,7 +1580,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1579,7 +1594,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -1595,7 +1610,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -1604,7 +1619,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1620,7 +1635,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -1632,7 +1647,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -1645,7 +1660,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -1667,18 +1682,18 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -1728,7 +1743,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1737,7 +1752,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1745,7 +1760,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -1767,14 +1782,16 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1796,7 +1813,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2086,7 +2103,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
>
<button
aria-label="OK"
className="ms-Button ms-Button--primary root-66"
className="ms-Button ms-Button--primary root-122"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -2098,16 +2115,16 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-67"
className="ms-Button-flexContainer flexContainer-123"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-68"
className="ms-Button-textContainer textContainer-124"
>
<span
className="ms-Button-label label-70"
id="id__3"
key="id__3"
className="ms-Button-label label-126"
id="id__5"
key="id__5"
>
OK
</span>

View File

@@ -306,7 +306,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
}
>
<label
className="ms-Label root-53"
className="ms-Label root-109"
>
Partition key value
</label>
@@ -316,11 +316,11 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
horizontal={true}
>
<div
className="ms-Stack css-54"
className="ms-Stack css-110"
>
<Dropdown
defaultSelectedKey="string"
key=".0:$.0"
key=".0:$.$.0"
label="Key"
onChange={[Function]}
options={
@@ -661,7 +661,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
},
]
}
responsiveMode={3}
responsiveMode={0}
styles={[Function]}
tabIndex={0}
theme={
@@ -1225,7 +1225,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
}
>
<label
className="ms-Label ms-Dropdown-label root-71"
className="ms-Label ms-Dropdown-label root-129"
id="Dropdown0-label"
>
Key
@@ -1236,7 +1236,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
aria-expanded="false"
aria-haspopup="listbox"
aria-labelledby="Dropdown0-label Dropdown0-option"
className="ms-Dropdown dropdown-55"
className="ms-Dropdown dropdown-111"
data-is-focusable={true}
data-ktp-target={true}
id="Dropdown0"
@@ -1251,25 +1251,23 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
tabIndex={0}
>
<span
aria-atomic={true}
aria-invalid={false}
aria-live="polite"
className="ms-Dropdown-title title-97"
className="ms-Dropdown-title title-156"
id="Dropdown0-option"
>
String
</span>
<span
className="ms-Dropdown-caretDownWrapper caretDownWrapper-57"
className="ms-Dropdown-caretDownWrapper caretDownWrapper-113"
>
<StyledIconBase
aria-hidden={true}
className="ms-Dropdown-caretDown caretDown-58"
className="ms-Dropdown-caretDown caretDown-114"
iconName="ChevronDown"
>
<IconBase
aria-hidden={true}
className="ms-Dropdown-caretDown caretDown-58"
className="ms-Dropdown-caretDown caretDown-114"
iconName="ChevronDown"
styles={[Function]}
theme={
@@ -1548,7 +1546,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<i
aria-hidden={true}
className="ms-Dropdown-caretDown caretDown-73"
className="ms-Dropdown-caretDown caretDown-132"
data-icon-name="ChevronDown"
>
@@ -1563,7 +1561,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
</Dropdown>
<StyledTextFieldBase
id="confirmCollectionId"
key=".0:$.1"
key=".0:$.$.1"
label="Value"
onChange={[Function]}
tabIndex={0}
@@ -1852,7 +1850,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
validateOnLoad={true}
>
<div
className="ms-TextField root-75"
className="ms-TextField root-134"
>
<div
className="ms-TextField-wrapper"
@@ -2141,7 +2139,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
}
>
<label
className="ms-Label root-53"
className="ms-Label root-109"
htmlFor="confirmCollectionId"
id="TextFieldLabel3"
>
@@ -2150,12 +2148,12 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
</LabelBase>
</StyledLabelBase>
<div
className="ms-TextField-fieldGroup fieldGroup-76"
className="ms-TextField-fieldGroup fieldGroup-135"
>
<input
aria-invalid={false}
aria-labelledby="TextFieldLabel3"
className="ms-TextField-field field-77"
className="ms-TextField-field field-136"
id="confirmCollectionId"
onBlur={[Function]}
onChange={[Function]}
@@ -2464,7 +2462,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
}
>
<label
className="ms-Label root-53"
className="ms-Label root-109"
>
Enter input parameters (if any)
</label>
@@ -2474,11 +2472,11 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
horizontal={true}
>
<div
className="ms-Stack css-54"
className="ms-Stack css-110"
>
<Dropdown
defaultSelectedKey="string"
key=".0:$.0"
key=".0:$.$.0"
label="Key"
onChange={[Function]}
options={
@@ -2819,7 +2817,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
},
]
}
responsiveMode={3}
responsiveMode={0}
styles={[Function]}
tabIndex={0}
theme={
@@ -3101,12 +3099,12 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<StyledLabelBase
className="ms-Dropdown-label"
id="Dropdown4-label"
id="Dropdown6-label"
styles={[Function]}
>
<LabelBase
className="ms-Dropdown-label"
id="Dropdown4-label"
id="Dropdown6-label"
styles={[Function]}
theme={
Object {
@@ -3383,8 +3381,8 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
}
>
<label
className="ms-Label ms-Dropdown-label root-71"
id="Dropdown4-label"
className="ms-Label ms-Dropdown-label root-129"
id="Dropdown6-label"
>
Key
</label>
@@ -3393,11 +3391,11 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
<div
aria-expanded="false"
aria-haspopup="listbox"
aria-labelledby="Dropdown4-label Dropdown4-option"
className="ms-Dropdown dropdown-55"
aria-labelledby="Dropdown6-label Dropdown6-option"
className="ms-Dropdown dropdown-111"
data-is-focusable={true}
data-ktp-target={true}
id="Dropdown4"
id="Dropdown6"
onBlur={[Function]}
onChange={[Function]}
onClick={[Function]}
@@ -3409,25 +3407,23 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
tabIndex={0}
>
<span
aria-atomic={true}
aria-invalid={false}
aria-live="polite"
className="ms-Dropdown-title title-97"
id="Dropdown4-option"
className="ms-Dropdown-title title-156"
id="Dropdown6-option"
>
String
</span>
<span
className="ms-Dropdown-caretDownWrapper caretDownWrapper-57"
className="ms-Dropdown-caretDownWrapper caretDownWrapper-113"
>
<StyledIconBase
aria-hidden={true}
className="ms-Dropdown-caretDown caretDown-58"
className="ms-Dropdown-caretDown caretDown-114"
iconName="ChevronDown"
>
<IconBase
aria-hidden={true}
className="ms-Dropdown-caretDown caretDown-58"
className="ms-Dropdown-caretDown caretDown-114"
iconName="ChevronDown"
styles={[Function]}
theme={
@@ -3706,7 +3702,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<i
aria-hidden={true}
className="ms-Dropdown-caretDown caretDown-73"
className="ms-Dropdown-caretDown caretDown-132"
data-icon-name="ChevronDown"
>
@@ -3722,7 +3718,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
<StyledTextFieldBase
defaultValue=""
id="confirmCollectionId"
key=".0:$.1"
key=".0:$.$.1"
label="Param"
onChange={[Function]}
tabIndex={0}
@@ -4012,19 +4008,19 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
validateOnLoad={true}
>
<div
className="ms-TextField root-75"
className="ms-TextField root-134"
>
<div
className="ms-TextField-wrapper"
>
<StyledLabelBase
htmlFor="confirmCollectionId"
id="TextFieldLabel7"
id="TextFieldLabel9"
styles={[Function]}
>
<LabelBase
htmlFor="confirmCollectionId"
id="TextFieldLabel7"
id="TextFieldLabel9"
styles={[Function]}
theme={
Object {
@@ -4301,21 +4297,21 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
}
>
<label
className="ms-Label root-53"
className="ms-Label root-109"
htmlFor="confirmCollectionId"
id="TextFieldLabel7"
id="TextFieldLabel9"
>
Param
</label>
</LabelBase>
</StyledLabelBase>
<div
className="ms-TextField-fieldGroup fieldGroup-76"
className="ms-TextField-fieldGroup fieldGroup-135"
>
<input
aria-invalid={false}
aria-labelledby="TextFieldLabel7"
className="ms-TextField-field field-77"
aria-labelledby="TextFieldLabel9"
className="ms-TextField-field field-136"
id="confirmCollectionId"
onBlur={[Function]}
onChange={[Function]}
@@ -4331,6 +4327,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
</TextFieldBase>
</StyledTextFieldBase>
<div
key=".0:$.$.2/.$.$.0"
tabIndex={0}
>
<StyledImageBase
@@ -4628,7 +4625,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
width={20}
>
<div
className="ms-Image addRemoveIconLabel root-86"
className="ms-Image addRemoveIconLabel root-145"
style={
Object {
"height": 30,
@@ -4638,7 +4635,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<img
alt="Delete param"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-87"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-146"
id="deleteparam"
key="fabricImage[object Object]"
onClick={[Function]}
@@ -4652,6 +4649,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
</StyledImageBase>
</div>
<div
key=".0:$.$.2/.$.$.1"
tabIndex={0}
>
<StyledImageBase
@@ -4949,7 +4947,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
width={20}
>
<div
className="ms-Image addRemoveIconLabel root-86"
className="ms-Image addRemoveIconLabel root-145"
style={
Object {
"height": 30,
@@ -4959,7 +4957,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<img
alt="Add param"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-87"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-146"
id="addparam"
key="fabricImage[object Object]"
onClick={[Function]}
@@ -4981,14 +4979,14 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
tabIndex={0}
>
<div
className="ms-Stack css-54"
className="ms-Stack css-110"
onClick={[Function]}
tabIndex={0}
>
<StyledImageBase
alt="Add param"
height={30}
key=".0:$.0"
key=".0:$.$.0"
src={Object {}}
width={20}
>
@@ -5273,7 +5271,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
width={20}
>
<div
className="ms-Image root-86"
className="ms-Image root-145"
style={
Object {
"height": 30,
@@ -5283,7 +5281,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<img
alt="Add param"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-87"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-146"
key="fabricImage[object Object]"
onError={[Function]}
onLoad={[Function]}
@@ -5294,10 +5292,10 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
</StyledImageBase>
<Text
className="addNewParamStyle"
key=".0:$.1"
key=".0:$.$.1"
>
<span
className="addNewParamStyle css-88"
className="addNewParamStyle css-147"
>
Add New Param
</span>
@@ -6194,7 +6192,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -6220,7 +6218,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -6232,14 +6230,16 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -6270,7 +6270,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -6297,7 +6297,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -6322,14 +6322,16 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -6363,7 +6365,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -6380,7 +6382,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -6392,7 +6394,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -6408,12 +6410,13 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -6424,14 +6427,16 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -6454,13 +6459,21 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -6473,7 +6486,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -6486,7 +6499,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -6500,7 +6513,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -6514,7 +6527,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -6530,7 +6543,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -6539,7 +6552,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -6555,7 +6568,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -6567,7 +6580,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -6580,7 +6593,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -6602,18 +6615,18 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -6663,7 +6676,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -6672,7 +6685,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -6680,7 +6693,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -6702,14 +6715,16 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -6731,7 +6746,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -7021,7 +7036,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
>
<button
aria-label="Execute"
className="ms-Button ms-Button--primary root-89"
className="ms-Button ms-Button--primary root-148"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -7033,16 +7048,16 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-90"
className="ms-Button-flexContainer flexContainer-149"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-91"
className="ms-Button-textContainer textContainer-150"
>
<span
className="ms-Button-label label-93"
id="id__8"
key="id__8"
className="ms-Button-label label-152"
id="id__12"
key="id__12"
>
Execute
</span>

View File

@@ -29,7 +29,7 @@ export class PanelContainerComponent extends React.Component<PanelContainerProps
};
}
omponentDidMount(): void {
componentDidMount(): void {
window.addEventListener("resize", () => this.setState({ height: this.getPanelHeight() }));
}
@@ -62,12 +62,12 @@ export class PanelContainerComponent extends React.Component<PanelContainerProps
customWidth={this.props.panelWidth ? this.props.panelWidth : "440px"}
headerClassName="panelHeader"
onRenderNavigationContent={this.props.onRenderNavigationContent}
isFooterAtBottom={true}
styles={{
navigation: { borderBottom: "1px solid #cccccc" },
content: { padding: 0, height: "100%" },
scrollableContent: { height: "100%" },
content: { padding: 0 },
header: { padding: "0 0 8px 34px" },
commands: { marginTop: 8 },
commands: { marginTop: 8, paddingTop: 0 },
}}
style={{ height: this.state.height }}
>

View File

@@ -901,7 +901,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -927,7 +927,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -939,14 +939,16 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -977,7 +979,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -1004,7 +1006,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1029,14 +1031,16 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1070,7 +1074,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1087,7 +1091,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -1099,7 +1103,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1115,12 +1119,13 @@ exports[`Right Pane Form should render Default properly 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -1131,14 +1136,16 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1161,13 +1168,21 @@ exports[`Right Pane Form should render Default properly 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -1180,7 +1195,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -1193,7 +1208,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1207,7 +1222,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1221,7 +1236,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -1237,7 +1252,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -1246,7 +1261,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1262,7 +1277,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -1274,7 +1289,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -1287,7 +1302,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -1309,18 +1324,18 @@ exports[`Right Pane Form should render Default properly 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -1370,7 +1385,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1379,7 +1394,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1387,7 +1402,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -1409,14 +1424,16 @@ exports[`Right Pane Form should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1438,7 +1455,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1728,7 +1745,7 @@ exports[`Right Pane Form should render Default properly 1`] = `
>
<button
aria-label="Load"
className="ms-Button ms-Button--primary root-53"
className="ms-Button ms-Button--primary root-109"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -1740,14 +1757,14 @@ exports[`Right Pane Form should render Default properly 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-54"
className="ms-Button-flexContainer flexContainer-110"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-55"
className="ms-Button-textContainer textContainer-111"
>
<span
className="ms-Button-label label-57"
className="ms-Button-label label-113"
id="id__0"
key="id__0"
>

View File

@@ -53,6 +53,21 @@ export const SettingsPane: FunctionComponent = () => {
? LocalStorageUtility.getEntryString(StorageKey.IsGraphAutoVizDisabled)
: "false",
);
const [retryAttempts, setRetryAttempts] = useState<number>(
LocalStorageUtility.hasItem(StorageKey.RetryAttempts)
? LocalStorageUtility.getEntryNumber(StorageKey.RetryAttempts)
: Constants.Queries.DefaultRetryAttempts,
);
const [retryInterval, setRetryInterval] = useState<number>(
LocalStorageUtility.hasItem(StorageKey.RetryInterval)
? LocalStorageUtility.getEntryNumber(StorageKey.RetryInterval)
: Constants.Queries.DefaultRetryIntervalInMs,
);
const [MaxWaitTimeInSeconds, setMaxWaitTimeInSeconds] = useState<number>(
LocalStorageUtility.hasItem(StorageKey.MaxWaitTimeInSeconds)
? LocalStorageUtility.getEntryNumber(StorageKey.MaxWaitTimeInSeconds)
: Constants.Queries.DefaultMaxWaitTimeInSeconds,
);
const [maxDegreeOfParallelism, setMaxDegreeOfParallelism] = useState<number>(
LocalStorageUtility.hasItem(StorageKey.MaxDegreeOfParellism)
? LocalStorageUtility.getEntryNumber(StorageKey.MaxDegreeOfParellism)
@@ -78,6 +93,9 @@ export const SettingsPane: FunctionComponent = () => {
);
LocalStorageUtility.setEntryNumber(StorageKey.CustomItemPerPage, customItemPerPage);
LocalStorageUtility.setEntryBoolean(StorageKey.QueryTimeoutEnabled, queryTimeoutEnabled);
LocalStorageUtility.setEntryNumber(StorageKey.RetryAttempts, retryAttempts);
LocalStorageUtility.setEntryNumber(StorageKey.RetryInterval, retryInterval);
LocalStorageUtility.setEntryNumber(StorageKey.MaxWaitTimeInSeconds, MaxWaitTimeInSeconds);
LocalStorageUtility.setEntryString(StorageKey.ContainerPaginationEnabled, containerPaginationEnabled.toString());
LocalStorageUtility.setEntryString(StorageKey.IsCrossPartitionQueryEnabled, crossPartitionQueryEnabled.toString());
LocalStorageUtility.setEntryNumber(StorageKey.MaxDegreeOfParellism, maxDegreeOfParallelism);
@@ -179,6 +197,27 @@ export const SettingsPane: FunctionComponent = () => {
}
};
const handleOnQueryRetryAttemptsSpinButtonChange = (ev: React.MouseEvent<HTMLElement>, newValue?: string): void => {
const retryAttempts = Number(newValue);
if (!isNaN(retryAttempts)) {
setRetryAttempts(retryAttempts);
}
};
const handleOnRetryIntervalSpinButtonChange = (ev: React.MouseEvent<HTMLElement>, newValue?: string): void => {
const retryInterval = Number(newValue);
if (!isNaN(retryInterval)) {
setRetryInterval(retryInterval);
}
};
const handleOnMaxWaitTimeSpinButtonChange = (ev: React.MouseEvent<HTMLElement>, newValue?: string): void => {
const MaxWaitTimeInSeconds = Number(newValue);
if (!isNaN(MaxWaitTimeInSeconds)) {
setMaxWaitTimeInSeconds(MaxWaitTimeInSeconds);
}
};
const choiceButtonStyles = {
root: {
clear: "both",
@@ -323,6 +362,77 @@ export const SettingsPane: FunctionComponent = () => {
</div>
</div>
)}
<div className="settingsSection">
<div className="settingsSectionPart">
<div className="settingsSectionLabel">
Retry Settings
<InfoTooltip>Retry policy associated with throttled requests during CosmosDB queries.</InfoTooltip>
</div>
<div>
<legend id="queryRetryAttemptsLabel" className="settingsSectionLabel legendLabel">
Max retry attempts
</legend>
<InfoTooltip>Max number of retries to be performed for a request. Default value 9.</InfoTooltip>
</div>
<SpinButton
labelPosition={Position.top}
min={1}
step={1}
value={"" + retryAttempts}
onChange={handleOnQueryRetryAttemptsSpinButtonChange}
incrementButtonAriaLabel="Increase value by 1"
decrementButtonAriaLabel="Decrease value by 1"
onIncrement={(newValue) => setRetryAttempts(parseInt(newValue) + 1 || retryAttempts)}
onDecrement={(newValue) => setRetryAttempts(parseInt(newValue) - 1 || retryAttempts)}
onValidate={(newValue) => setRetryAttempts(parseInt(newValue) || retryAttempts)}
styles={queryTimeoutSpinButtonStyles}
/>
<div>
<legend id="queryRetryAttemptsLabel" className="settingsSectionLabel legendLabel">
Fixed retry interval (ms)
</legend>
<InfoTooltip>
Fixed retry interval in milliseconds to wait between each retry ignoring the retryAfter returned as part
of the response. Default value is 0 milliseconds.
</InfoTooltip>
</div>
<SpinButton
labelPosition={Position.top}
min={1000}
step={1000}
value={"" + retryInterval}
onChange={handleOnRetryIntervalSpinButtonChange}
incrementButtonAriaLabel="Increase value by 1000"
decrementButtonAriaLabel="Decrease value by 1000"
onIncrement={(newValue) => setRetryInterval(parseInt(newValue) + 1000 || retryInterval)}
onDecrement={(newValue) => setRetryInterval(parseInt(newValue) - 1000 || retryInterval)}
onValidate={(newValue) => setRetryInterval(parseInt(newValue) || retryInterval)}
styles={queryTimeoutSpinButtonStyles}
/>
<div>
<legend id="queryRetryAttemptsLabel" className="settingsSectionLabel legendLabel">
Max wait time (s)
</legend>
<InfoTooltip>
Max wait time in seconds to wait for a request while the retries are happening. Default value 30
seconds.
</InfoTooltip>
</div>
<SpinButton
labelPosition={Position.top}
min={1}
step={1}
value={"" + MaxWaitTimeInSeconds}
onChange={handleOnMaxWaitTimeSpinButtonChange}
incrementButtonAriaLabel="Increase value by 1"
decrementButtonAriaLabel="Decrease value by 1"
onIncrement={(newValue) => setMaxWaitTimeInSeconds(parseInt(newValue) + 1 || MaxWaitTimeInSeconds)}
onDecrement={(newValue) => setMaxWaitTimeInSeconds(parseInt(newValue) - 1 || MaxWaitTimeInSeconds)}
onValidate={(newValue) => setMaxWaitTimeInSeconds(parseInt(newValue) || MaxWaitTimeInSeconds)}
styles={queryTimeoutSpinButtonStyles}
/>
</div>
</div>
<div className="settingsSection">
<div className="settingsSectionPart">
<div className="settingsSectionLabel">

View File

@@ -137,6 +137,139 @@ exports[`Settings Pane should render Default properly 1`] = `
</div>
</div>
</div>
<div
className="settingsSection"
>
<div
className="settingsSectionPart"
>
<div
className="settingsSectionLabel"
>
Retry Settings
<InfoTooltip>
Retry policy associated with throttled requests during CosmosDB queries.
</InfoTooltip>
</div>
<div>
<legend
className="settingsSectionLabel legendLabel"
id="queryRetryAttemptsLabel"
>
Max retry attempts
</legend>
<InfoTooltip>
Max number of retries to be performed for a request. Default value 9.
</InfoTooltip>
</div>
<StyledSpinButton
decrementButtonAriaLabel="Decrease value by 1"
incrementButtonAriaLabel="Increase value by 1"
labelPosition={0}
min={1}
onChange={[Function]}
onDecrement={[Function]}
onIncrement={[Function]}
onValidate={[Function]}
step={1}
styles={
Object {
"arrowButtonsContainer": Object {},
"icon": Object {},
"input": Object {},
"label": Object {
"fontSize": 12,
"fontWeight": 400,
},
"labelWrapper": Object {},
"root": Object {
"paddingBottom": 10,
},
"spinButtonWrapper": Object {},
}
}
value="9"
/>
<div>
<legend
className="settingsSectionLabel legendLabel"
id="queryRetryAttemptsLabel"
>
Fixed retry interval (ms)
</legend>
<InfoTooltip>
Fixed retry interval in milliseconds to wait between each retry ignoring the retryAfter returned as part of the response. Default value is 0 milliseconds.
</InfoTooltip>
</div>
<StyledSpinButton
decrementButtonAriaLabel="Decrease value by 1000"
incrementButtonAriaLabel="Increase value by 1000"
labelPosition={0}
min={1000}
onChange={[Function]}
onDecrement={[Function]}
onIncrement={[Function]}
onValidate={[Function]}
step={1000}
styles={
Object {
"arrowButtonsContainer": Object {},
"icon": Object {},
"input": Object {},
"label": Object {
"fontSize": 12,
"fontWeight": 400,
},
"labelWrapper": Object {},
"root": Object {
"paddingBottom": 10,
},
"spinButtonWrapper": Object {},
}
}
value="0"
/>
<div>
<legend
className="settingsSectionLabel legendLabel"
id="queryRetryAttemptsLabel"
>
Max wait time (s)
</legend>
<InfoTooltip>
Max wait time in seconds to wait for a request while the retries are happening. Default value 30 seconds.
</InfoTooltip>
</div>
<StyledSpinButton
decrementButtonAriaLabel="Decrease value by 1"
incrementButtonAriaLabel="Increase value by 1"
labelPosition={0}
min={1}
onChange={[Function]}
onDecrement={[Function]}
onIncrement={[Function]}
onValidate={[Function]}
step={1}
styles={
Object {
"arrowButtonsContainer": Object {},
"icon": Object {},
"input": Object {},
"label": Object {
"fontSize": 12,
"fontWeight": 400,
},
"labelWrapper": Object {},
"root": Object {
"paddingBottom": 10,
},
"spinButtonWrapper": Object {},
}
}
value="30"
/>
</div>
</div>
<div
className="settingsSection"
>
@@ -251,6 +384,139 @@ exports[`Settings Pane should render Gremlin properly 1`] = `
<div
className="paneMainContent"
>
<div
className="settingsSection"
>
<div
className="settingsSectionPart"
>
<div
className="settingsSectionLabel"
>
Retry Settings
<InfoTooltip>
Retry policy associated with throttled requests during CosmosDB queries.
</InfoTooltip>
</div>
<div>
<legend
className="settingsSectionLabel legendLabel"
id="queryRetryAttemptsLabel"
>
Max retry attempts
</legend>
<InfoTooltip>
Max number of retries to be performed for a request. Default value 9.
</InfoTooltip>
</div>
<StyledSpinButton
decrementButtonAriaLabel="Decrease value by 1"
incrementButtonAriaLabel="Increase value by 1"
labelPosition={0}
min={1}
onChange={[Function]}
onDecrement={[Function]}
onIncrement={[Function]}
onValidate={[Function]}
step={1}
styles={
Object {
"arrowButtonsContainer": Object {},
"icon": Object {},
"input": Object {},
"label": Object {
"fontSize": 12,
"fontWeight": 400,
},
"labelWrapper": Object {},
"root": Object {
"paddingBottom": 10,
},
"spinButtonWrapper": Object {},
}
}
value="9"
/>
<div>
<legend
className="settingsSectionLabel legendLabel"
id="queryRetryAttemptsLabel"
>
Fixed retry interval (ms)
</legend>
<InfoTooltip>
Fixed retry interval in milliseconds to wait between each retry ignoring the retryAfter returned as part of the response. Default value is 0 milliseconds.
</InfoTooltip>
</div>
<StyledSpinButton
decrementButtonAriaLabel="Decrease value by 1000"
incrementButtonAriaLabel="Increase value by 1000"
labelPosition={0}
min={1000}
onChange={[Function]}
onDecrement={[Function]}
onIncrement={[Function]}
onValidate={[Function]}
step={1000}
styles={
Object {
"arrowButtonsContainer": Object {},
"icon": Object {},
"input": Object {},
"label": Object {
"fontSize": 12,
"fontWeight": 400,
},
"labelWrapper": Object {},
"root": Object {
"paddingBottom": 10,
},
"spinButtonWrapper": Object {},
}
}
value="0"
/>
<div>
<legend
className="settingsSectionLabel legendLabel"
id="queryRetryAttemptsLabel"
>
Max wait time (s)
</legend>
<InfoTooltip>
Max wait time in seconds to wait for a request while the retries are happening. Default value 30 seconds.
</InfoTooltip>
</div>
<StyledSpinButton
decrementButtonAriaLabel="Decrease value by 1"
incrementButtonAriaLabel="Increase value by 1"
labelPosition={0}
min={1}
onChange={[Function]}
onDecrement={[Function]}
onIncrement={[Function]}
onValidate={[Function]}
step={1}
styles={
Object {
"arrowButtonsContainer": Object {},
"icon": Object {},
"input": Object {},
"label": Object {
"fontSize": 12,
"fontWeight": 400,
},
"labelWrapper": Object {},
"root": Object {
"paddingBottom": 10,
},
"spinButtonWrapper": Object {},
}
}
value="30"
/>
</div>
</div>
<div
className="settingsSection"
>

View File

@@ -357,7 +357,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
value=""
>
<div
className="ms-TextField is-required root-54"
className="ms-TextField is-required root-110"
>
<div
className="ms-TextField-wrapper"
@@ -648,7 +648,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
}
>
<label
className="ms-Label root-65"
className="ms-Label root-121"
htmlFor="TextField0"
id="TextFieldLabel2"
>
@@ -657,13 +657,13 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
</LabelBase>
</StyledLabelBase>
<div
className="ms-TextField-fieldGroup fieldGroup-55"
className="ms-TextField-fieldGroup fieldGroup-111"
>
<input
aria-invalid={false}
aria-labelledby="TextFieldLabel2"
autoFocus={true}
className="ms-TextField-field field-56"
className="ms-TextField-field field-112"
id="TextField0"
name="collectionIdConfirmation"
onBlur={[Function]}
@@ -1569,7 +1569,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1595,7 +1595,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1607,14 +1607,16 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1645,7 +1647,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -1672,7 +1674,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1697,14 +1699,16 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1738,7 +1742,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1755,7 +1759,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -1767,7 +1771,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1783,12 +1787,13 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -1799,14 +1804,16 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1829,13 +1836,21 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -1848,7 +1863,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -1861,7 +1876,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1875,7 +1890,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1889,7 +1904,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -1905,7 +1920,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -1914,7 +1929,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1930,7 +1945,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -1942,7 +1957,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -1955,7 +1970,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -1977,18 +1992,18 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -2038,7 +2053,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2047,7 +2062,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2055,7 +2070,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -2077,14 +2092,16 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -2106,7 +2123,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2396,7 +2413,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
>
<button
aria-label="Create"
className="ms-Button ms-Button--primary root-66"
className="ms-Button ms-Button--primary root-122"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -2408,16 +2425,16 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-67"
className="ms-Button-flexContainer flexContainer-123"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-68"
className="ms-Button-textContainer textContainer-124"
>
<span
className="ms-Button-label label-70"
id="id__3"
key="id__3"
className="ms-Button-label label-126"
id="id__5"
key="id__5"
>
Create
</span>

View File

@@ -28,7 +28,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
>
<Text>
<span
className="css-53"
className="css-109"
>
Select the columns that you want to query.
</span>
@@ -323,32 +323,30 @@ exports[`Table query select Panel should render Default properly 1`] = `
}
>
<div
className="ms-Checkbox is-checked is-enabled root-54"
className="ms-Checkbox is-checked is-enabled root-110"
>
<input
aria-checked="true"
aria-label="Available Columns"
checked={true}
className="input-55"
className="input-111"
data-ktp-execute-target={true}
id="availableCheckbox"
onChange={[Function]}
type="checkbox"
/>
<label
className="ms-Checkbox-label label-56"
className="ms-Checkbox-label label-112"
htmlFor="availableCheckbox"
>
<div
className="ms-Checkbox-checkbox checkbox-57"
className="ms-Checkbox-checkbox checkbox-113"
data-ktp-target={true}
>
<StyledIconBase
className="ms-Checkbox-checkmark checkmark-58"
className="ms-Checkbox-checkmark checkmark-114"
iconName="CheckMark"
>
<IconBase
className="ms-Checkbox-checkmark checkmark-58"
className="ms-Checkbox-checkmark checkmark-114"
iconName="CheckMark"
styles={[Function]}
theme={
@@ -627,7 +625,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
>
<i
aria-hidden={true}
className="ms-Checkbox-checkmark checkmark-61"
className="ms-Checkbox-checkmark checkmark-118"
data-icon-name="CheckMark"
>
@@ -636,8 +634,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
</StyledIconBase>
</div>
<span
aria-hidden="true"
className="ms-Checkbox-text text-59"
className="ms-Checkbox-text text-115"
>
Available Columns
</span>
@@ -933,14 +930,12 @@ exports[`Table query select Panel should render Default properly 1`] = `
}
>
<div
className="ms-Checkbox is-checked is-enabled root-54"
className="ms-Checkbox is-checked is-enabled root-110"
>
<input
aria-checked="true"
aria-disabled={false}
aria-label=""
checked={true}
className="input-55"
className="input-111"
data-ktp-execute-target={true}
disabled={false}
id="checkbox-0"
@@ -948,19 +943,19 @@ exports[`Table query select Panel should render Default properly 1`] = `
type="checkbox"
/>
<label
className="ms-Checkbox-label label-56"
className="ms-Checkbox-label label-112"
htmlFor="checkbox-0"
>
<div
className="ms-Checkbox-checkbox checkbox-57"
className="ms-Checkbox-checkbox checkbox-113"
data-ktp-target={true}
>
<StyledIconBase
className="ms-Checkbox-checkmark checkmark-58"
className="ms-Checkbox-checkmark checkmark-114"
iconName="CheckMark"
>
<IconBase
className="ms-Checkbox-checkmark checkmark-58"
className="ms-Checkbox-checkmark checkmark-114"
iconName="CheckMark"
styles={[Function]}
theme={
@@ -1239,7 +1234,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
>
<i
aria-hidden={true}
className="ms-Checkbox-checkmark checkmark-61"
className="ms-Checkbox-checkmark checkmark-118"
data-icon-name="CheckMark"
>
@@ -2143,7 +2138,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2169,7 +2164,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2181,14 +2176,16 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -2219,7 +2216,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -2246,7 +2243,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -2271,14 +2268,16 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -2312,7 +2311,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2329,7 +2328,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -2341,7 +2340,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -2357,12 +2356,13 @@ exports[`Table query select Panel should render Default properly 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -2373,14 +2373,16 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -2403,13 +2405,21 @@ exports[`Table query select Panel should render Default properly 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -2422,7 +2432,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -2435,7 +2445,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -2449,7 +2459,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -2463,7 +2473,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -2479,7 +2489,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -2488,7 +2498,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2504,7 +2514,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -2516,7 +2526,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -2529,7 +2539,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -2551,18 +2561,18 @@ exports[`Table query select Panel should render Default properly 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -2612,7 +2622,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2621,7 +2631,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2629,7 +2639,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -2651,14 +2661,16 @@ exports[`Table query select Panel should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -2680,7 +2692,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2970,7 +2982,7 @@ exports[`Table query select Panel should render Default properly 1`] = `
>
<button
aria-label="OK"
className="ms-Button ms-Button--primary root-68"
className="ms-Button ms-Button--primary root-125"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -2982,14 +2994,14 @@ exports[`Table query select Panel should render Default properly 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-69"
className="ms-Button-flexContainer flexContainer-126"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-70"
className="ms-Button-textContainer textContainer-127"
>
<span
className="ms-Button-label label-72"
className="ms-Button-label label-129"
id="id__1"
key="id__1"
>

View File

@@ -35,7 +35,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
>
<div
aria-label="Add Property"
className="ms-Stack addButtonEntiy css-53"
className="ms-Stack addButtonEntiy css-109"
onClick={[Function]}
onKeyPress={[Function]}
tabIndex={0}
@@ -43,7 +43,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
<StyledImageBase
alt="Add Property"
height={30}
key=".0:$.0"
key=".0:$.$.0"
src={Object {}}
width={16}
>
@@ -328,7 +328,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
width={16}
>
<div
className="ms-Image root-54"
className="ms-Image root-110"
style={
Object {
"height": 30,
@@ -338,7 +338,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
>
<img
alt="Add Property"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-55"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-111"
key="fabricImage[object Object]"
onError={[Function]}
onLoad={[Function]}
@@ -349,10 +349,10 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
</StyledImageBase>
<Text
className="addNewParamStyle"
key=".0:$.1"
key=".0:$.$.1"
>
<span
className="addNewParamStyle css-56"
className="addNewParamStyle css-112"
>
Add Property
</span>
@@ -1249,7 +1249,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1275,7 +1275,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1287,14 +1287,16 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1325,7 +1327,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -1352,7 +1354,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1377,14 +1379,16 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1418,7 +1422,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1435,7 +1439,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -1447,7 +1451,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1463,12 +1467,13 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -1479,14 +1484,16 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1509,13 +1516,21 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -1528,7 +1543,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -1541,7 +1556,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1555,7 +1570,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1569,7 +1584,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -1585,7 +1600,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -1594,7 +1609,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1610,7 +1625,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -1622,7 +1637,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -1635,7 +1650,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -1657,18 +1672,18 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -1718,7 +1733,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1727,7 +1742,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1735,7 +1750,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -1757,14 +1772,16 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1786,7 +1803,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2076,7 +2093,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
>
<button
aria-label="Add Entity"
className="ms-Button ms-Button--primary root-57"
className="ms-Button ms-Button--primary root-113"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -2088,14 +2105,14 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-58"
className="ms-Button-flexContainer flexContainer-114"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-59"
className="ms-Button-textContainer textContainer-115"
>
<span
className="ms-Button-label label-61"
className="ms-Button-label label-117"
id="id__0"
key="id__0"
>

View File

@@ -32,13 +32,13 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
onClick={[Function]}
>
<div
className="ms-Stack addButtonEntiy css-53"
className="ms-Stack addButtonEntiy css-109"
onClick={[Function]}
>
<StyledImageBase
alt="Add Entity"
height={30}
key=".0:$.0"
key=".0:$.$.0"
src={Object {}}
width={16}
>
@@ -323,7 +323,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
width={16}
>
<div
className="ms-Image root-54"
className="ms-Image root-110"
style={
Object {
"height": 30,
@@ -333,7 +333,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
>
<img
alt="Add Entity"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-55"
className="ms-Image-image ms-Image-image--portrait is-notLoaded is-fadeIn image-111"
key="fabricImage[object Object]"
onError={[Function]}
onLoad={[Function]}
@@ -344,10 +344,10 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
</StyledImageBase>
<Text
className="addNewParamStyle"
key=".0:$.1"
key=".0:$.$.1"
>
<span
className="addNewParamStyle css-56"
className="addNewParamStyle css-112"
>
Add Property
</span>
@@ -1255,7 +1255,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1281,7 +1281,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1293,14 +1293,16 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1331,7 +1333,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -1358,7 +1360,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1383,14 +1385,16 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -1424,7 +1428,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1441,7 +1445,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -1453,7 +1457,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -1469,12 +1473,13 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -1485,14 +1490,16 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1515,13 +1522,21 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -1534,7 +1549,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -1547,7 +1562,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1561,7 +1576,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -1575,7 +1590,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -1591,7 +1606,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -1600,7 +1615,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1616,7 +1631,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -1628,7 +1643,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -1641,7 +1656,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -1663,18 +1678,18 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -1724,7 +1739,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -1733,7 +1748,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1741,7 +1756,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -1763,14 +1778,16 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -1792,7 +1809,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2082,7 +2099,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
>
<button
aria-label="Update"
className="ms-Button ms-Button--primary root-57"
className="ms-Button ms-Button--primary root-113"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -2094,14 +2111,14 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-58"
className="ms-Button-flexContainer flexContainer-114"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-59"
className="ms-Button-textContainer textContainer-115"
>
<span
className="ms-Button-label label-61"
className="ms-Button-label label-117"
id="id__0"
key="id__0"
>

View File

@@ -25,13 +25,13 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
verticalAlign="center"
>
<div
className="ms-Stack panelInfoErrorContainer css-53"
className="ms-Stack panelInfoErrorContainer css-109"
>
<StyledIconBase
aria-label="warning"
className="panelWarningIcon"
iconName="WarningSolid"
key=".0:$.0"
key=".0:$.$.0"
>
<IconBase
aria-label="warning"
@@ -314,7 +314,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
>
<i
aria-label="warning"
className="panelWarningIcon root-55"
className="panelWarningIcon root-112"
data-icon-name="WarningSolid"
role="img"
>
@@ -325,7 +325,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
<span
aria-live="assertive"
className="panelWarningErrorDetailsLinkContainer"
key=".0:$.1"
key=".0:$.$.1"
role="alert"
>
<Text
@@ -335,7 +335,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
>
<span
aria-label="Warning! The action you are about to take cannot be undone. Continuing will permanently delete this resource and all of its children resources."
className="panelWarningErrorMessage css-56"
className="panelWarningErrorMessage css-113"
>
Warning! The action you are about to take cannot be undone. Continuing will permanently delete this resource and all of its children resources.
</span>
@@ -359,7 +359,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
variant="small"
>
<span
className="css-56"
className="css-113"
>
Confirm by typing the database id
</span>
@@ -663,19 +663,19 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
validateOnLoad={true}
>
<div
className="ms-TextField is-required root-58"
className="ms-TextField is-required root-115"
>
<div
className="ms-TextField-wrapper"
>
<div
className="ms-TextField-fieldGroup fieldGroup-59"
className="ms-TextField-fieldGroup fieldGroup-116"
>
<input
aria-invalid={false}
aria-label="Confirm by typing the database id"
autoFocus={true}
className="ms-TextField-field field-60"
className="ms-TextField-field field-117"
id="confirmDatabaseId"
onBlur={[Function]}
onChange={[Function]}
@@ -699,7 +699,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
variant="small"
>
<span
className="css-69"
className="css-126"
>
Help us improve Azure Cosmos DB!
</span>
@@ -709,7 +709,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
variant="small"
>
<span
className="css-69"
className="css-126"
>
What is the reason why you are deleting this database?
</span>
@@ -1013,18 +1013,18 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
validateOnLoad={true}
>
<div
className="ms-TextField ms-TextField--multiline root-58"
className="ms-TextField ms-TextField--multiline root-115"
>
<div
className="ms-TextField-wrapper"
>
<div
className="ms-TextField-fieldGroup fieldGroup-70"
className="ms-TextField-fieldGroup fieldGroup-127"
>
<textarea
aria-invalid={false}
aria-label="Help us improve Azure Cosmos DB! What is the reason why you are deleting this database?"
className="ms-TextField-field field-71"
className="ms-TextField-field field-128"
id="deleteDatabaseFeedbackInput"
onBlur={[Function]}
onChange={[Function]}
@@ -1929,7 +1929,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"iconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1955,7 +1955,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"menuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -1967,14 +1967,16 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -2005,7 +2007,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"display": "inline-block",
"padding": "0 16px",
"selectors": Object {
":active > *": Object {
":active > span": Object {
"left": 0,
"position": "relative",
"top": 0,
@@ -2032,7 +2034,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -2057,14 +2059,16 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid transparent",
"borderRadius": undefined,
"bottom": 2,
"content": "\\"\\"",
"left": 2,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 2,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"bottom": -2,
"left": -2,
"outlineColor": "ButtonText",
@@ -2098,7 +2102,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"backgroundColor": "#f3f2f1",
"color": "#d2d0ce",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2115,7 +2119,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"border": "1px solid #106ebe",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"borderColor": "Highlight",
"color": "Window",
@@ -2127,7 +2131,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"border": "1px solid #005a9e",
"color": "#ffffff",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"borderColor": "WindowText",
@@ -2143,12 +2147,13 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"overflow": "hidden",
"padding": 0,
"position": "absolute",
"whiteSpace": "nowrap",
"width": 1,
},
"splitButtonContainer": Array [
Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
},
},
@@ -2159,14 +2164,16 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": "none",
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -2189,13 +2196,21 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"borderBottomRightRadius": "0",
"borderRight": "none",
"borderTopRightRadius": "0",
"flexGrow": "1",
},
".ms-Button--primary": Object {
"border": "none",
"borderBottomRightRadius": "0",
"borderTopRightRadius": "0",
"flexGrow": "1",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
":active": Object {
"border": "none",
},
":hover": Object {
"border": "none",
},
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"border": "1px solid WindowText",
@@ -2208,7 +2223,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
".ms-Button--primary + .ms-Button": Object {
"border": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "1px solid WindowText",
"borderLeftWidth": "0",
},
@@ -2221,7 +2236,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -2235,7 +2250,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "WindowText",
"color": "Window",
@@ -2249,7 +2264,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"border": "none",
"outline": "none",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"MsHighContrastAdjust": "none",
"backgroundColor": "Window",
"borderColor": "GrayText",
@@ -2265,7 +2280,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Highlight",
"color": "Window",
},
@@ -2274,7 +2289,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
".ms-Button.is-disabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2290,7 +2305,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
},
},
@@ -2302,7 +2317,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "WindowText",
},
},
@@ -2315,7 +2330,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"position": "absolute",
"right": 31,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "GrayText",
},
},
@@ -2337,18 +2352,18 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
":hover": Object {
"backgroundColor": "#106ebe",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "Highlight",
},
},
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"backgroundColor": "WindowText",
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Canvas",
},
},
},
Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
".ms-Button-menuIcon": Object {
"color": "WindowText",
},
@@ -2398,7 +2413,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Button--primary": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"borderColor": "GrayText",
"color": "GrayText",
@@ -2407,7 +2422,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
},
".ms-Button-menuIcon": Object {
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2415,7 +2430,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
":hover": Object {
"cursor": "default",
},
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"backgroundColor": "Window",
"border": "1px solid GrayText",
"color": "GrayText",
@@ -2437,14 +2452,16 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"selectors": Object {
".ms-Fabric--isFocusVisible &:focus:after": Object {
"border": "1px solid #ffffff",
"borderRadius": undefined,
"bottom": 3,
"content": "\\"\\"",
"left": 3,
"outline": "1px solid #605e5c",
"pointerEvents": undefined,
"position": "absolute",
"right": 3,
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"border": "none",
"bottom": -2,
"left": -2,
@@ -2466,7 +2483,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
"splitButtonMenuIconDisabled": Object {
"color": "#a19f9d",
"selectors": Object {
"@media screen and (-ms-high-contrast: active), (forced-colors: active)": Object {
"@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)": Object {
"color": "GrayText",
},
},
@@ -2756,7 +2773,7 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
>
<button
aria-label="OK"
className="ms-Button ms-Button--primary root-73"
className="ms-Button ms-Button--primary root-130"
data-is-focusable={true}
id="sidePanelOkButton"
onClick={[Function]}
@@ -2768,16 +2785,16 @@ exports[`Delete Database Confirmation Pane Should call delete database 1`] = `
type="submit"
>
<span
className="ms-Button-flexContainer flexContainer-74"
className="ms-Button-flexContainer flexContainer-131"
data-automationid="splitbuttonprimary"
>
<span
className="ms-Button-textContainer textContainer-75"
className="ms-Button-textContainer textContainer-132"
>
<span
className="ms-Button-label label-77"
id="id__6"
key="id__6"
className="ms-Button-label label-134"
id="id__10"
key="id__10"
>
OK
</span>

View File

@@ -6,6 +6,7 @@ exports[`PaneContainerComponent test should be resize if notification console is
customWidth="440px"
headerClassName="panelHeader"
headerText="test"
isFooterAtBottom={true}
isLightDismiss={true}
isOpen={true}
onDismiss={[Function]}
@@ -18,9 +19,9 @@ exports[`PaneContainerComponent test should be resize if notification console is
Object {
"commands": Object {
"marginTop": 8,
"paddingTop": 0,
},
"content": Object {
"height": "100%",
"padding": 0,
},
"header": Object {
@@ -29,9 +30,6 @@ exports[`PaneContainerComponent test should be resize if notification console is
"navigation": Object {
"borderBottom": "1px solid #cccccc",
},
"scrollableContent": Object {
"height": "100%",
},
}
}
type={7}
@@ -48,6 +46,7 @@ exports[`PaneContainerComponent test should render with panel content and header
customWidth="440px"
headerClassName="panelHeader"
headerText="test"
isFooterAtBottom={true}
isLightDismiss={true}
isOpen={true}
onDismiss={[Function]}
@@ -60,9 +59,9 @@ exports[`PaneContainerComponent test should render with panel content and header
Object {
"commands": Object {
"marginTop": 8,
"paddingTop": 0,
},
"content": Object {
"height": "100%",
"padding": 0,
},
"header": Object {
@@ -71,9 +70,6 @@ exports[`PaneContainerComponent test should render with panel content and header
"navigation": Object {
"borderBottom": "1px solid #cccccc",
},
"scrollableContent": Object {
"height": "100%",
},
}
}
type={7}

View File

@@ -99,7 +99,7 @@ describe("Query Copilot Feedback Modal snapshot test", () => {
expect(wrapper).toMatchSnapshot();
});
it("should render dont show again button and check it ", () => {
it("should render dont show again button and check it", () => {
mockUseCopilotStore.mockReturnValue({
...mockReturnValue,
showFeedbackModal: true,

View File

@@ -37,9 +37,6 @@ export const WelcomeModal = ({ visible }: { visible: boolean }): JSX.Element =>
</Stack.Item>
</Stack>
<Stack horizontal grow={1} horizontalAlign="end" verticalAlign="start" className="exitPadding">
<Stack.Item className="previewMargin">
<Text className="preview">Preview</Text>
</Stack.Item>
<Stack.Item>
<IconButton
onClick={hideModal}
@@ -53,7 +50,7 @@ export const WelcomeModal = ({ visible }: { visible: boolean }): JSX.Element =>
</Stack>
<Stack horizontalAlign="center">
<Stack.Item align="center" style={{ textAlign: "center" }}>
<Text className="title bold">Welcome to Microsoft Copilot for Azure in Cosmos DB (preview)</Text>
<Text className="title bold">Welcome to Microsoft Copilot for Azure in Cosmos DB</Text>
</Stack.Item>
<Stack.Item align="center" className="text">
<Stack horizontal>

View File

@@ -610,7 +610,7 @@ exports[`Query Copilot Feedback Modal snapshot test should not render dont show
</Modal>
`;
exports[`Query Copilot Feedback Modal snapshot test should render dont show again button and check it 1`] = `
exports[`Query Copilot Feedback Modal snapshot test should render dont show again button and check it 1`] = `
<Modal
isOpen={true}
>

View File

@@ -40,15 +40,6 @@ exports[`Query Copilot Welcome Modal snapshot test should render when isOpen is
horizontalAlign="end"
verticalAlign="start"
>
<StackItem
className="previewMargin"
>
<Text
className="preview"
>
Preview
</Text>
</StackItem>
<StackItem>
<CustomizedIconButton
ariaLabel="Exit"
@@ -78,7 +69,7 @@ exports[`Query Copilot Welcome Modal snapshot test should render when isOpen is
<Text
className="title bold"
>
Welcome to Microsoft Copilot for Azure in Cosmos DB (preview)
Welcome to Microsoft Copilot for Azure in Cosmos DB
</Text>
</StackItem>
<StackItem

View File

@@ -15,6 +15,7 @@ export const CopyPopup = ({
return showCopyPopup ? (
<Stack
role="status"
style={{
position: "fixed",
width: 345,

View File

@@ -4,6 +4,7 @@ exports[`Copy Popup snapshot test should render when showCopyPopup is false 1`]
exports[`Copy Popup snapshot test should render when showCopyPopup is true 1`] = `
<Stack
role="status"
style={
Object {
"background": "#FFFFFF",

View File

@@ -306,6 +306,16 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
resetButtonState();
};
const getAriaLabel = () => {
if (isGeneratingQuery === null) {
return " ";
} else if (isGeneratingQuery) {
return "Content is loading";
} else {
return "Content is updated";
}
};
React.useEffect(() => {
showTeachingBubble();
useTabs.getState().setIsQueryErrorThrown(false);
@@ -352,9 +362,13 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
};
return (
<Stack className="copilot-prompt-pane" styles={{ root: { backgroundColor: "#FAFAFA", padding: "16px 24px 0px" } }}>
<Stack
className="copilot-prompt-pane"
styles={{ root: { backgroundColor: "#FAFAFA", padding: "16px 24px 0px" } }}
id="copilot-textfield-label"
>
<Stack horizontal>
<Image src={CopilotIcon} style={{ width: 24, height: 24 }} />
<Image src={CopilotIcon} style={{ width: 24, height: 24 }} alt="Copilot" role="none" />
<Text style={{ marginLeft: 8, fontWeight: 600, fontSize: 16 }}>Copilot</Text>
<IconButton
iconProps={{ imageProps: { src: errorIcon } }}
@@ -387,7 +401,7 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
disabled={isGeneratingQuery}
autoComplete="off"
placeholder="Ask a question in natural language and well generate the query for you."
tabIndex={0}
aria-labelledby="copilot-textfield-label"
/>
{copilotTeachingBubbleVisible && (
<TeachingBubble
@@ -420,8 +434,11 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
startGenerateQueryProcess();
setShowSamplePrompts(false);
}}
aria-label="Send"
/>
{isGeneratingQuery && <Spinner style={{ marginLeft: 8 }} />}
<div role="alert" aria-label={getAriaLabel()}>
{isGeneratingQuery && <Spinner style={{ marginLeft: 8 }} />}
</div>
{showSamplePrompts && (
<Callout
styles={{ root: { minWidth: 400, maxWidth: "70vw" } }}
@@ -529,7 +546,7 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
<Stack style={{ margin: "8px 0" }}>
<Text style={{ fontSize: 12 }}>
AI-generated content can have mistakes. Make sure it&apos;s accurate and appropriate before using it.{" "}
<Link href="https://aka.ms/cdb-copilot-preview-terms" target="_blank">
<Link href="https://aka.ms/cdb-copilot-preview-terms" target="_blank" style={{ color: "#0072c9" }}>
Read preview terms
</Link>
{showErrorMessageBar && (
@@ -597,6 +614,7 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
id="likeBtn"
style={{ marginLeft: 20 }}
iconProps={{ iconName: likeQuery === true ? "LikeSolid" : "Like" }}
aria-label="Like"
onClick={() => {
setShowCallout(!likeQuery);
setLikeQuery(!likeQuery);
@@ -616,6 +634,7 @@ export const QueryCopilotPromptbar: React.FC<QueryCopilotPromptProps> = ({
setDislikeQuery(!dislikeQuery);
setShowCallout(false);
}}
aria-label="Dislike"
/>
<Separator vertical style={{ color: "#EDEBE9" }} />
<CommandBarButton

View File

@@ -135,6 +135,7 @@ describe("Query Copilot Client", () => {
},
explorer: new Explorer(),
}).catch((error) => {
// eslint-disable-next-line jest/no-conditional-expect
expect(error.message).toEqual("Mock error");
});

View File

@@ -15,12 +15,7 @@ import { MinimalQueryIterator } from "Common/IteratorUtilities";
import { createUri } from "Common/UrlUtility";
import { queryDocumentsPage } from "Common/dataAccess/queryDocumentsPage";
import { configContext } from "ConfigContext";
import {
ContainerConnectionInfo,
CopilotEnabledConfiguration,
FeatureRegistration,
IProvisionData,
} from "Contracts/DataModels";
import { ContainerConnectionInfo, CopilotEnabledConfiguration, IProvisionData } from "Contracts/DataModels";
import { AuthorizationTokenHeaderMetadata, QueryResults } from "Contracts/ViewModels";
import { useDialog } from "Explorer/Controls/Dialog";
import Explorer from "Explorer/Explorer";
@@ -57,28 +52,6 @@ async function fetchWithTimeout(
return response;
}
export const isCopilotFeatureRegistered = async (subscriptionId: string): Promise<boolean> => {
const api_version = "2021-07-01";
const url = `${configContext.ARM_ENDPOINT}/subscriptions/${subscriptionId}/providers/Microsoft.Features/featureProviders/Microsoft.DocumentDB/subscriptionFeatureRegistrations/MicrosoftCopilotForAzureInCDB?api-version=${api_version}`;
const authorizationHeader: AuthorizationTokenHeaderMetadata = getAuthorizationHeader();
const headers = { [authorizationHeader.header]: authorizationHeader.token };
let response;
try {
response = await fetchWithTimeout(url, headers);
} catch (error) {
return false;
}
if (!response?.ok) {
return false;
}
const featureRegistration = (await response?.json()) as FeatureRegistration;
return featureRegistration?.properties?.state === "Registered";
};
export const getCopilotEnabled = async (): Promise<boolean> => {
const url = `${configContext.BACKEND_ENDPOINT}/api/portalsettings/querycopilot`;
const authorizationHeader: AuthorizationTokenHeaderMetadata = getAuthorizationHeader();

View File

@@ -6,7 +6,7 @@ const mockedDate = new Date(2023, 7, 15);
jest.spyOn(global, "Date").mockImplementation(() => mockedDate as unknown as string);
describe("Welcome Bubble snapshot test", () => {
it("should render ", () => {
it("should render", () => {
const wrapper = shallow(<WelcomeBubble />);
expect(wrapper).toMatchSnapshot();
});

View File

@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Welcome Bubble snapshot test should render 1`] = `
exports[`Welcome Bubble snapshot test should render 1`] = `
<Stack>
<Stack
horizontalAlign="center"

View File

@@ -49,7 +49,7 @@ exports[`Footer snapshot test should not pass if no text 1`] = `
/>
</Stack>
<StyledTextFieldBase
disabled={false}
disabled={null}
multiline={true}
onChange={[Function]}
onKeyDown={[Function]}
@@ -74,7 +74,7 @@ exports[`Footer snapshot test should not pass if no text 1`] = `
value=""
/>
<CustomizedIconButton
disabled={false}
disabled={null}
iconProps={
Object {
"iconName": "Send",
@@ -134,7 +134,7 @@ exports[`Footer snapshot test should not pass text with non enter key 1`] = `
/>
</Stack>
<StyledTextFieldBase
disabled={false}
disabled={null}
multiline={true}
onChange={[Function]}
onKeyDown={[Function]}
@@ -159,7 +159,7 @@ exports[`Footer snapshot test should not pass text with non enter key 1`] = `
value=""
/>
<CustomizedIconButton
disabled={false}
disabled={null}
iconProps={
Object {
"iconName": "Send",
@@ -219,7 +219,7 @@ exports[`Footer snapshot test should open sample prompts on button click 1`] = `
/>
</Stack>
<StyledTextFieldBase
disabled={false}
disabled={null}
multiline={true}
onChange={[Function]}
onKeyDown={[Function]}
@@ -244,7 +244,7 @@ exports[`Footer snapshot test should open sample prompts on button click 1`] = `
value=""
/>
<CustomizedIconButton
disabled={false}
disabled={null}
iconProps={
Object {
"iconName": "Send",
@@ -304,7 +304,7 @@ exports[`Footer snapshot test should pass text with enter key 1`] = `
/>
</Stack>
<StyledTextFieldBase
disabled={false}
disabled={null}
multiline={true}
onChange={[Function]}
onKeyDown={[Function]}
@@ -329,7 +329,7 @@ exports[`Footer snapshot test should pass text with enter key 1`] = `
value="test message"
/>
<CustomizedIconButton
disabled={false}
disabled={null}
iconProps={
Object {
"iconName": "Send",
@@ -389,7 +389,7 @@ exports[`Footer snapshot test should pass text with icon button 1`] = `
/>
</Stack>
<StyledTextFieldBase
disabled={false}
disabled={null}
multiline={true}
onChange={[Function]}
onKeyDown={[Function]}
@@ -414,7 +414,7 @@ exports[`Footer snapshot test should pass text with icon button 1`] = `
value="test message"
/>
<CustomizedIconButton
disabled={false}
disabled={null}
iconProps={
Object {
"iconName": "Send",
@@ -474,7 +474,7 @@ exports[`Footer snapshot test should update user input 1`] = `
/>
</Stack>
<StyledTextFieldBase
disabled={false}
disabled={null}
multiline={true}
onChange={[Function]}
onKeyDown={[Function]}
@@ -499,7 +499,7 @@ exports[`Footer snapshot test should update user input 1`] = `
value=""
/>
<CustomizedIconButton
disabled={false}
disabled={null}
iconProps={
Object {
"iconName": "Send",

View File

@@ -5,7 +5,7 @@ import React from "react";
import { Header } from "./Header";
describe("Header snapshot test", () => {
it("should close on button click ", () => {
it("should close on button click", () => {
const wrapper = shallow(<Header />);
const iconButton = wrapper.find(IconButton).first();

View File

@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Header snapshot test should close on button click 1`] = `
exports[`Header snapshot test should close on button click 1`] = `
<Stack
horizontal={true}
style={

View File

@@ -6,7 +6,7 @@ import React from "react";
import { WelcomeSidebarModal } from "./WelcomeSidebarModal";
describe("Welcome Sidebar Modal snapshot test", () => {
it("should close on button click ", () => {
it("should close on button click", () => {
withHooks(() => {
const wrapper = shallow(<WelcomeSidebarModal />);
const spy = jest.spyOn(localStorage, "setItem");

View File

@@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Welcome Sidebar Modal snapshot test should close on button click 1`] = `""`;
exports[`Welcome Sidebar Modal snapshot test should close on button click 1`] = `""`;
exports[`Welcome Sidebar Modal snapshot test should not reneder with local storage key 1`] = `""`;

View File

@@ -14,7 +14,7 @@ describe("Query Copilot Sidebar snapshot test", () => {
useQueryCopilot.setState(initialState, true);
});
it("should render and set copilot used flag ", () => {
it("should render and set copilot used flag", () => {
withHooks(() => {
useQueryCopilot.getState().setShowCopilotSidebar(true);
const wrapper = shallow(<QueryCopilotSidebar explorer={new Explorer()} />);
@@ -24,7 +24,7 @@ describe("Query Copilot Sidebar snapshot test", () => {
});
});
it("should render and not set copilot used flag ", () => {
it("should render and not set copilot used flag", () => {
withHooks(() => {
const wrapper = shallow(<QueryCopilotSidebar explorer={new Explorer()} />);

View File

@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Query Copilot Sidebar snapshot test should render and not set copilot used flag 1`] = `
exports[`Query Copilot Sidebar snapshot test should render and not set copilot used flag 1`] = `
<Stack
style={
Object {
@@ -15,7 +15,7 @@ exports[`Query Copilot Sidebar snapshot test should render and not set copilot u
</Stack>
`;
exports[`Query Copilot Sidebar snapshot test should render and set copilot used flag 1`] = `
exports[`Query Copilot Sidebar snapshot test should render and set copilot used flag 1`] = `
<Stack
style={
Object {

View File

@@ -1,6 +1,8 @@
import * as ko from "knockout";
import * as _ from "underscore";
import * as DataTable from "datatables.net-dt";
import loadingIndicator3Squares from "../../../../images/LoadingIndicator_3Squares.gif";
import QueryTablesTab from "../../Tabs/QueryTablesTab";
import * as Constants from "../Constants";
import * as Entities from "../Entities";
@@ -94,7 +96,7 @@ function createDataTable(
});
}
tableEntityListViewModel.table = DataTableBuilder.createDataTable($dataTable, <DataTables.Settings>{
tableEntityListViewModel.table = DataTableBuilder.createDataTable($dataTable, <DataTable.Config>{
// WARNING!!! SECURITY: If you add new columns, make sure you encode them if they are user strings from Azure (see encodeText)
// so that they don't get interpreted as HTML in our page.
colReorder: true,
@@ -116,7 +118,7 @@ function createDataTable(
sPrevious: "<",
sLast: ">>",
},
sProcessing: '<img style="width: 28px; height: 6px; " src="images/LoadingIndicator_3Squares.gif">',
sProcessing: `<img style="width: 28px; height: 6px; " src="${loadingIndicator3Squares}">`,
oAria: {
sSortAscending: "",
sSortDescending: "",
@@ -345,7 +347,7 @@ function updateSelectionStatus(oSettings: any): void {
// TODO consider centralizing this "post-command" logic into some sort of Command Manager entity.
// See VSO:166520: "[Storage Explorer] Consider adding a 'command manager' to track command post-effects."
function updateDataTableFocus(queryTablesTabId: string): void {
var $activeElement: JQuery = $(document.activeElement);
var $activeElement: JQuery<Element> = $(document.activeElement);
var isFocusLost: boolean = $activeElement.is("body"); // When focus is lost, "body" becomes the active element.
var storageExplorerFrameHasFocus: boolean = document.hasFocus();
var operationManager = tableEntityListViewModelMap[queryTablesTabId].operationManager;

View File

@@ -1,3 +1,4 @@
import * as DataTable from "datatables.net-dt";
import * as Utilities from "../Utilities";
/**
@@ -8,7 +9,7 @@ import * as Utilities from "../Utilities";
* @param{$dataTableElem} JQuery data table element
* @param{$settings} Settings to use when creating the data table
*/
export function createDataTable($dataTableElem: JQuery, settings: any): DataTables.DataTable {
export function createDataTable($dataTableElem: JQuery, settings: any): DataTable.Api<HTMLElement> {
return $dataTableElem.DataTable(applyDefaultRendering(settings));
}
@@ -18,14 +19,14 @@ export function createDataTable($dataTableElem: JQuery, settings: any): DataTabl
* @param{settings} The settings to check
* @return The given settings with all columns having a rendering function
*/
function applyDefaultRendering(settings: any): DataTables.SettingsLegacy {
var tableColumns: DataTables.ColumnLegacy[] = null;
function applyDefaultRendering(settings: DataTable.Config): any {
var tableColumns: any[] = null;
if (settings.aoColumns) {
tableColumns = settings.aoColumns;
} else if (settings.aoColumnDefs) {
if (settings.columns) {
tableColumns = settings.columns;
} else if (settings.columnDefs) {
// for tables we use aoColumnDefs instead of aoColumns
tableColumns = settings.aoColumnDefs;
tableColumns = settings.columnDefs;
}
// either the settings had no columns defined, or they were called

View File

@@ -1,11 +1,11 @@
import ko from "knockout";
import * as DataTableOperations from "./DataTableOperations";
import * as Constants from "../Constants";
import * as Entities from "../Entities";
import * as Utilities from "../Utilities";
import * as DataTableOperations from "./DataTableOperations";
import TableCommands from "./TableCommands";
import TableEntityListViewModel from "./TableEntityListViewModel";
import * as Utilities from "../Utilities";
import * as Entities from "../Entities";
/*
* Base class for data table row selection.
@@ -13,9 +13,9 @@ import * as Entities from "../Entities";
export default class DataTableOperationManager {
private _tableEntityListViewModel: TableEntityListViewModel;
private _tableCommands: TableCommands;
private dataTable: JQuery;
private dataTable: JQuery<Element>;
constructor(table: JQuery, viewModel: TableEntityListViewModel, tableCommands: TableCommands) {
constructor(table: JQuery<Element>, viewModel: TableEntityListViewModel, tableCommands: TableCommands) {
this.dataTable = table;
this._tableEntityListViewModel = viewModel;
this._tableCommands = tableCommands;
@@ -25,7 +25,7 @@ export default class DataTableOperationManager {
}
private click = (event: JQueryEventObject) => {
var elem: JQuery = $(event.currentTarget);
var elem: JQuery<Element> = $(event.currentTarget);
this.updateLastSelectedItem(elem, event.shiftKey);
if (Utilities.isEnvironmentCtrlPressed(event)) {
@@ -48,7 +48,7 @@ export default class DataTableOperationManager {
if (isUpArrowKey || isDownArrowKey) {
var lastSelectedItem: Entities.ITableEntity = this._tableEntityListViewModel.lastSelectedItem;
var dataTableRows: JQuery = $(Constants.htmlSelectors.dataTableAllRowsSelector);
var dataTableRows: JQuery<Element> = $(Constants.htmlSelectors.dataTableAllRowsSelector);
var maximumIndex = dataTableRows.length - 1;
// If can't find an index for lastSelectedItem, then either no item is previously selected or it goes across page.
@@ -60,7 +60,7 @@ export default class DataTableOperationManager {
: -1;
var nextIndex: number = isUpArrowKey ? lastSelectedItemIndex - 1 : lastSelectedItemIndex + 1;
var safeIndex: number = Utilities.ensureBetweenBounds(nextIndex, 0, maximumIndex);
var selectedRowElement: JQuery = dataTableRows.eq(safeIndex);
var selectedRowElement: JQuery<Element> = dataTableRows.eq(safeIndex);
if (selectedRowElement) {
if (event.shiftKey) {
@@ -143,13 +143,13 @@ export default class DataTableOperationManager {
return handled;
}
private getEntityIdentity($elem: JQuery): Entities.ITableEntityIdentity {
private getEntityIdentity($elem: JQuery<Element>): Entities.ITableEntityIdentity {
return {
RowKey: $elem.attr(Constants.htmlAttributeNames.dataTableRowKeyAttr),
};
}
private updateLastSelectedItem($elem: JQuery, isShiftSelect: boolean) {
private updateLastSelectedItem($elem: JQuery<Element>, isShiftSelect: boolean) {
var entityIdentity: Entities.ITableEntityIdentity = this.getEntityIdentity($elem);
var entity = this._tableEntityListViewModel.getItemFromCurrentPage(
this._tableEntityListViewModel.getTableEntityKeys(entityIdentity.RowKey),
@@ -162,7 +162,7 @@ export default class DataTableOperationManager {
}
}
private applySingleSelection($elem: JQuery) {
private applySingleSelection($elem: JQuery<Element>) {
if ($elem) {
var entityIdentity: Entities.ITableEntityIdentity = this.getEntityIdentity($elem);
@@ -179,7 +179,7 @@ export default class DataTableOperationManager {
);
}
private applyCtrlSelection($elem: JQuery): void {
private applyCtrlSelection($elem: JQuery<Element>): void {
var koSelected: ko.ObservableArray<Entities.ITableEntity> = this._tableEntityListViewModel
? this._tableEntityListViewModel.selected
: null;
@@ -200,7 +200,7 @@ export default class DataTableOperationManager {
}
}
private applyShiftSelection($elem: JQuery): void {
private applyShiftSelection($elem: JQuery<Element>): void {
var anchorItem = this._tableEntityListViewModel.lastSelectedAnchorItem;
// If anchor item doesn't exist, use the first available item of current page instead
@@ -228,7 +228,7 @@ export default class DataTableOperationManager {
}
}
private applyContextMenuSelection($elem: JQuery) {
private applyContextMenuSelection($elem: JQuery<Element>) {
var entityIdentity: Entities.ITableEntityIdentity = this.getEntityIdentity($elem);
if (

View File

@@ -1,3 +1,4 @@
import * as DataTables from "datatables.net";
import Q from "q";
import _ from "underscore";
import * as QueryBuilderConstants from "../Constants";
@@ -13,7 +14,7 @@ export function getRowSelector(selectorSchema: Entities.IProperty[]): string {
return QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector + selector;
}
export function isRowVisible(dataTableScrollBodyQuery: JQuery, element: HTMLElement): boolean {
export function isRowVisible(dataTableScrollBodyQuery: JQuery<Element>, element: Element): boolean {
let isVisible = false;
if (dataTableScrollBodyQuery.length && element) {
@@ -26,16 +27,18 @@ export function isRowVisible(dataTableScrollBodyQuery: JQuery, element: HTMLElem
return isVisible;
}
export function scrollToRowIfNeeded(dataTableRows: JQuery, currentIndex: number, isScrollUp: boolean): void {
export function scrollToRowIfNeeded(dataTableRows: JQuery<Element>, currentIndex: number, isScrollUp: boolean): void {
if (dataTableRows.length) {
const dataTableScrollBodyQuery: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector),
selectedRowElement: HTMLElement = dataTableRows.get(currentIndex);
const dataTableScrollBodyQuery: JQuery<Element> = $(
QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector,
),
selectedRowElement: Element = dataTableRows.get(currentIndex);
if (dataTableScrollBodyQuery.length && selectedRowElement) {
const isVisible: boolean = isRowVisible(dataTableScrollBodyQuery, selectedRowElement);
if (!isVisible) {
const selectedRowQuery: JQuery = $(selectedRowElement),
const selectedRowQuery: JQuery<Element> = $(selectedRowElement),
scrollPosition: number = dataTableScrollBodyQuery.scrollTop(),
selectedElementPosition: number = selectedRowQuery.position().top;
let newScrollPosition = 0;
@@ -54,8 +57,8 @@ export function scrollToRowIfNeeded(dataTableRows: JQuery, currentIndex: number,
}
export function scrollToTopIfNeeded(): void {
const $dataTableRows: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector),
$dataTableScrollBody: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector);
const $dataTableRows: JQuery<Element> = $(QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector),
$dataTableScrollBody: JQuery<Element> = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector);
if ($dataTableRows.length && $dataTableScrollBody.length) {
$dataTableScrollBody.scrollTop(0);
@@ -71,7 +74,7 @@ export function setPaginationButtonEventHandlers(): void {
.attr("role", "button");
}
export function filterColumns(table: DataTables.DataTable, settings: boolean[]): void {
export function filterColumns(table: DataTables.Api<HTMLElement>, settings: boolean[]): void {
settings &&
settings.forEach((value: boolean, index: number) => {
table.column(index).visible(value, false);
@@ -84,7 +87,7 @@ export function filterColumns(table: DataTables.DataTable, settings: boolean[]):
* If no current order is specified, reorder the columns based on intial order.
*/
export function reorderColumns(
table: DataTables.DataTable,
table: DataTables.Api<HTMLElement>,
targetOrder: number[],
currentOrder?: number[],
//eslint-disable-next-line
@@ -108,7 +111,9 @@ export function reorderColumns(
? calculateTransformationOrder(currentOrder, targetOrder)
: targetOrder;
try {
$.fn.dataTable.ColReorder(table).fnOrder(transformationOrder);
// TODO: This possibly does not work with the new version of datatables.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
($.fn.dataTable as any).ColReorder(table).fnOrder(transformationOrder);
} catch (err) {
return Q.reject(err);
}
@@ -116,9 +121,9 @@ export function reorderColumns(
return Q.resolve(null);
}
export function resetColumns(table: DataTables.DataTable): void {
$.fn.dataTable.ColReorder(table).fnReset();
}
// export function resetColumns(table: DataTables.DataTable): void {
// $.fn.dataTable.ColReorder(table).fnReset();
// }
/**
* A table's initial order is described in the form of a natural ascending order.
@@ -133,8 +138,10 @@ export function getInitialOrder(columnsCount: number): number[] {
* Initial order: I = [0, 1, 2, 3, 4, 5, 6, 7, 8] <----> {prop0, prop1, prop2, prop3, prop4, prop5, prop6, prop7, prop8}
* Current order: C = [0, 1, 2, 6, 7, 3, 4, 5, 8] <----> {prop0, prop1, prop2, prop6, prop7, prop3, prop4, prop5, prop8}
*/
export function getCurrentOrder(table: DataTables.DataTable): number[] {
return $.fn.dataTable.ColReorder(table).fnOrder();
export function getCurrentOrder(table: DataTables.Api<HTMLElement>): number[] {
// TODO: This possibly does not work with the new version of datatables.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return ($.fn.dataTable as any).ColReorder(table).fnOrder();
}
/**
@@ -178,8 +185,8 @@ export function calculateTransformationOrder(currentOrder: number[], targetOrder
return transformationOrder;
}
export function getDataTableHeaders(table: DataTables.DataTable): string[] {
const columns: DataTables.ColumnsMethods = table.columns();
export function getDataTableHeaders(table: DataTables.Api<HTMLElement>): string[] {
const columns = table.columns();
let headers: string[] = [];
if (columns) {
// table.columns() return ColumnsMethods which is an array of arrays

View File

@@ -1,14 +1,15 @@
import * as ko from "knockout";
import * as _ from "underscore";
import { Action } from "../../../Shared/Telemetry/TelemetryConstants";
import CacheBase from "./CacheBase";
import { ItemDefinition, QueryIterator, Resource } from "@azure/cosmos";
import * as DataTables from "datatables.net";
import * as CommonConstants from "../../../Common/Constants";
import { Action } from "../../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import QueryTablesTab from "../../Tabs/QueryTablesTab";
import * as Constants from "../Constants";
import * as Entities from "../Entities";
import QueryTablesTab from "../../Tabs/QueryTablesTab";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import { QueryIterator, ItemDefinition, Resource } from "@azure/cosmos";
import CacheBase from "./CacheBase";
// This is the format of the data we will have to pass to Datatable render callback,
// and property names are defined by Datatable as well.
@@ -27,7 +28,7 @@ abstract class DataTableViewModel {
public items = ko.observableArray<Entities.ITableEntity>();
public selected = ko.observableArray<Entities.ITableEntity>();
public table: DataTables.DataTable;
public table: DataTables.Api<HTMLElement>;
// The anchor item is for shift selection. i.e., select all items between anchor item and a give item.
public lastSelectedAnchorItem: Entities.ITableEntity;

View File

@@ -1,3 +1,4 @@
import * as DataTables from "datatables.net";
import * as ko from "knockout";
import Q from "q";
import * as _ from "underscore";
@@ -56,7 +57,7 @@ function _parse(err: any): ErrorDataModel[] {
function _getInnerErrors(message: string): any[] {
/*
The backend error message has an inner-message which is a stringified object.
The backend error message has an inner-message which is a stringified object.
For SQL errors, the "errors" property is an array of SqlErrorDataModel.
Example:
"Message: {"Errors":["Resource with specified id or name already exists"]}\r\nActivityId: 80005000008d40b6a, Request URI: /apps/19000c000c0a0005/services/mctestdocdbprod-MasterService-0-00066ab9937/partitions/900005f9000e676fb8/replicas/13000000000955p"
@@ -131,7 +132,7 @@ export default class TableEntityListViewModel extends DataTableViewModel {
return [{ key: Constants.EntityKeyNames.RowKey, value: rowKey }];
}
public reloadTable(useSetting: boolean = true, resetHeaders: boolean = true): DataTables.DataTable {
public reloadTable(useSetting: boolean = true, resetHeaders: boolean = true): DataTables.Api<Element> {
this.clearCache();
this.clearSelection();
this.isCancelled = false;

View File

@@ -1,3 +1,4 @@
import * as DataTable from "datatables.net-dt";
import * as ko from "knockout";
import { KeyCodes } from "../../../Common/Constants";
import { userContext } from "../../../UserContext";
@@ -643,7 +644,7 @@ export default class QueryBuilderViewModel {
return groupViewModels;
};
public runQuery = (): DataTables.DataTable => {
public runQuery = (): DataTable.Api<Element> => {
return this._queryViewModel.runQuery();
};

View File

@@ -1,9 +1,10 @@
import * as DataTables from "datatables.net";
import * as ko from "knockout";
import React from "react";
import * as _ from "underscore";
import { KeyCodes } from "../../../Common/Constants";
import { useSidePanel } from "../../../hooks/useSidePanel";
import { userContext } from "../../../UserContext";
import { useSidePanel } from "../../../hooks/useSidePanel";
import { TableQuerySelectPanel } from "../../Panes/Tables/TableQuerySelectPanel/TableQuerySelectPanel";
import QueryTablesTab from "../../Tabs/QueryTablesTab";
import { getQuotedCqlIdentifier } from "../CqlUtilities";
@@ -158,7 +159,7 @@ export default class QueryViewModel {
notify: "always",
});
public runQuery = (): DataTables.DataTable => {
public runQuery = (): DataTables.Api<Element> => {
let filter = this.setFilter();
if (filter && userContext.apiType !== "Cassandra") {
filter = filter.replace(/"/g, "'");
@@ -176,7 +177,7 @@ export default class QueryViewModel {
return this._tableEntityListViewModel.reloadTable(/*useSetting*/ false, /*resetHeaders*/ false);
};
public clearQuery = (): DataTables.DataTable => {
public clearQuery = (): DataTables.Api<Element> => {
this.queryText();
this.topValue();
this.selectText();

View File

@@ -3,12 +3,12 @@ import * as ko from "knockout";
import Q from "q";
import { AuthType } from "../../AuthType";
import * as Constants from "../../Common/Constants";
import { handleError } from "../../Common/ErrorHandlingUtils";
import * as HeadersUtility from "../../Common/HeadersUtility";
import { createDocument } from "../../Common/dataAccess/createDocument";
import { deleteDocument } from "../../Common/dataAccess/deleteDocument";
import { queryDocuments } from "../../Common/dataAccess/queryDocuments";
import { updateDocument } from "../../Common/dataAccess/updateDocument";
import { handleError } from "../../Common/ErrorHandlingUtils";
import * as HeadersUtility from "../../Common/HeadersUtility";
import { configContext } from "../../ConfigContext";
import * as ViewModels from "../../Contracts/ViewModels";
import { userContext } from "../../UserContext";
@@ -281,7 +281,7 @@ export class CassandraAPIDataClient extends TableDataClient {
query,
paginationToken,
},
beforeSend: this.setAuthorizationHeader,
beforeSend: this.setAuthorizationHeader as any,
cache: false,
});
shouldNotify &&
@@ -423,7 +423,7 @@ export class CassandraAPIDataClient extends TableDataClient {
keyspaceId: collection.databaseId,
tableId: collection.id(),
},
beforeSend: this.setAuthorizationHeader,
beforeSend: this.setAuthorizationHeader as any,
cache: false,
})
.then(
@@ -463,7 +463,7 @@ export class CassandraAPIDataClient extends TableDataClient {
keyspaceId: collection.databaseId,
tableId: collection.id(),
},
beforeSend: this.setAuthorizationHeader,
beforeSend: this.setAuthorizationHeader as any,
cache: false,
})
.then(
@@ -496,7 +496,7 @@ export class CassandraAPIDataClient extends TableDataClient {
resourceId: resourceId,
query: query,
},
beforeSend: this.setAuthorizationHeader,
beforeSend: this.setAuthorizationHeader as any,
cache: false,
}).then(
(data: any) => {

View File

@@ -47,11 +47,11 @@ describe("getMongoShellUrl", () => {
queryString = `resourceId=${userContext.databaseAccount.id}&accountName=${userContext.databaseAccount.name}&mongoEndpoint=${userContext.databaseAccount.properties.documentEndpoint}`;
});
it("should return /mongoshell/indexv2.html by default ", () => {
it("should return /mongoshell/indexv2.html by default", () => {
expect(getMongoShellUrl()).toBe(`/mongoshell/indexv2.html?${queryString}`);
});
it("should return /mongoshell/indexv2.html when portalEnv==localhost ", () => {
it("should return /mongoshell/indexv2.html when portalEnv==localhost", () => {
updateUserContext({
portalEnv: "localhost",
});
@@ -149,7 +149,7 @@ describe("getMongoShellUrl", () => {
expect(getMongoShellUrl()).toBe(`${endpoint}/content/mongoshell/debug/index.html?${queryString}`);
});
it("configContext.BACKEND_ENDPOINT === '' and configContext.platform === Platform.Hosted, should return /mongoshell/indexv2.html ", () => {
it("configContext.BACKEND_ENDPOINT === '' and configContext.platform === Platform.Hosted, should return /mongoshell/indexv2.html", () => {
resetConfigContext();
updateConfigContext({
platform: Platform.Hosted,
@@ -172,7 +172,7 @@ describe("getMongoShellUrl", () => {
});
describe("getExtensionEndpoint", () => {
it("when platform === Platform.Hosted, backendEndpoint is undefined ", () => {
it("when platform === Platform.Hosted, backendEndpoint is undefined", () => {
expect(getExtensionEndpoint(Platform.Hosted, undefined)).toBe("");
});
@@ -184,15 +184,15 @@ describe("getExtensionEndpoint", () => {
expect(getExtensionEndpoint(Platform.Hosted, null)).toBe("");
});
it("when platform === Platform.Hosted, backendEndpoint != '' ", () => {
it("when platform === Platform.Hosted, backendEndpoint != ''", () => {
expect(getExtensionEndpoint(Platform.Hosted, "foo")).toBe("foo");
});
it("when platform === Platform.Portal, backendEndpoint is udefined ", () => {
it("when platform === Platform.Portal, backendEndpoint is udefined", () => {
expect(getExtensionEndpoint(Platform.Portal, undefined)).toBe("");
});
it("when platform === Platform.Portal, backendEndpoint === '' ", () => {
it("when platform === Platform.Portal, backendEndpoint === ''", () => {
expect(getExtensionEndpoint(Platform.Portal, "")).toBe("");
});
@@ -200,7 +200,7 @@ describe("getExtensionEndpoint", () => {
expect(getExtensionEndpoint(Platform.Portal, null)).toBe("");
});
it("when platform !== Platform.Portal, backendEndpoint != '' ", () => {
it("when platform !== Platform.Portal, backendEndpoint != ''", () => {
expect(getExtensionEndpoint(Platform.Portal, "foo")).toBe("foo");
});
});

View File

@@ -290,7 +290,7 @@ export default class QueryTabComponent extends React.Component<IQueryTabComponen
{
enableCrossPartitionQuery: HeadersUtility.shouldEnableCrossPartitionKey(),
abortSignal: this.queryAbortController.signal,
} as FeedOptions,
} as unknown as FeedOptions,
);
}
@@ -444,7 +444,7 @@ export default class QueryTabComponent extends React.Component<IQueryTabComponen
this._toggleCopilot(!this.state.copilotActive);
},
commandButtonLabel: this.state.copilotActive ? "Disable Copilot" : "Enable Copilot",
ariaLabel: "Copilot",
ariaLabel: this.state.copilotActive ? "Disable Copilot" : "Enable Copilot",
hasPopup: false,
};
buttons.push(toggleCopilotButton);

View File

@@ -42,7 +42,7 @@ describe("Add Schema", () => {
database.addSchema(collection);
expect(database.junoClient.requestSchema).toBeCalledTimes(0);
expect(database.junoClient.requestSchema).toHaveBeenCalledTimes(0);
});
it("should call requestSchema or getSchema if analyticalStorageTtl is not undefined", () => {
@@ -66,7 +66,7 @@ describe("Add Schema", () => {
const checkForSchema: NodeJS.Timeout = database.addSchema(collection, interval);
jest.advanceTimersByTime(interval + 1000);
expect(database.junoClient.requestSchema).toBeCalledWith({
expect(database.junoClient.requestSchema).toHaveBeenCalledWith({
id: undefined,
subscriptionId: userContext.subscriptionId,
resourceGroup: userContext.resourceGroup,
@@ -75,7 +75,7 @@ describe("Add Schema", () => {
status: "new",
});
expect(checkForSchema).not.toBeNull();
expect(database.junoClient.getSchema).toBeCalledWith(
expect(database.junoClient.getSchema).toHaveBeenCalledWith(
userContext.subscriptionId,
userContext.resourceGroup,
userContext.databaseAccount.name,

View File

@@ -788,7 +788,7 @@ export const ResourceTree: React.FC<ResourceTreeProps> = ({ container }: Resourc
</AccordionItemComponent>
</AccordionComponent>
{buildGalleryCallout()}
{/* {buildGalleryCallout()} */}
</>
)}
{!isNotebookEnabled && isSampleDataEnabled && (
@@ -802,7 +802,7 @@ export const ResourceTree: React.FC<ResourceTreeProps> = ({ container }: Resourc
</AccordionItemComponent>
</AccordionComponent>
{buildGalleryCallout()}
{/* {buildGalleryCallout()} */}
</>
)}
{isNotebookEnabled && isSampleDataEnabled && (
@@ -819,7 +819,7 @@ export const ResourceTree: React.FC<ResourceTreeProps> = ({ container }: Resourc
</AccordionItemComponent>
</AccordionComponent>
{buildGalleryCallout()}
{/* {buildGalleryCallout()} */}
</>
)}
</>

View File

@@ -15,13 +15,13 @@ describe("useSelectedNode", () => {
useSelectedNode.getState().setSelectedNode(undefined);
useTabs.setState({ activeTab: undefined });
});
it("it should not select if no selected node", () => {
it("should not select if no selected node", () => {
useTabs.setState({ activeTab: mockTab });
const isDataNodeSelected = useSelectedNode.getState().isDataNodeSelected("foo", "bar", undefined);
expect(isDataNodeSelected).toBeFalsy();
});
it("it should not select incorrect subnodekinds", () => {
it("should not select incorrect subnodekinds", () => {
useTabs.setState({ activeTab: mockTab });
useSelectedNode.getState().setSelectedNode({
nodeKind: "nodeKind",
@@ -32,7 +32,7 @@ describe("useSelectedNode", () => {
expect(isDataNodeSelected).toBeFalsy();
});
it("it should not select if no active tab", () => {
it("should not select if no active tab", () => {
useSelectedNode.getState().setSelectedNode({
nodeKind: "nodeKind",
rid: "rid",

View File

@@ -1,14 +1,14 @@
import { Callout, DirectionalHint, ICalloutProps, ILinkProps, Link, Stack, Text } from "@fluentui/react";
import { getItemName } from "Utils/APITypeUtils";
import * as ko from "knockout";
import * as React from "react";
import { getItemName } from "Utils/APITypeUtils";
import CosmosDBIcon from "../../../images/Azure-Cosmos-DB.svg";
import DeleteIcon from "../../../images/delete.svg";
import GalleryIcon from "../../../images/GalleryIcon.svg";
import FileIcon from "../../../images/notebook/file-cosmos.svg";
import DeleteIcon from "../../../images/delete.svg";
import CopyIcon from "../../../images/notebook/Notebook-copy.svg";
import NewNotebookIcon from "../../../images/notebook/Notebook-new.svg";
import NotebookIcon from "../../../images/notebook/Notebook-resource.svg";
import FileIcon from "../../../images/notebook/file-cosmos.svg";
import PublishIcon from "../../../images/notebook/publish_content.svg";
import RefreshIcon from "../../../images/refresh-cosmos.svg";
import CollectionIcon from "../../../images/tree-collection.svg";
@@ -17,8 +17,6 @@ import { Areas } from "../../Common/Constants";
import { isPublicInternetAccessAllowed } from "../../Common/DatabaseAccountUtility";
import * as DataModels from "../../Contracts/DataModels";
import * as ViewModels from "../../Contracts/ViewModels";
import { useSidePanel } from "../../hooks/useSidePanel";
import { useTabs } from "../../hooks/useTabs";
import { IPinnedRepo } from "../../Juno/JunoClient";
import { LocalStorageUtility, StorageKey } from "../../Shared/StorageUtility";
import { Action, ActionModifiers, Source } from "../../Shared/Telemetry/TelemetryConstants";
@@ -26,6 +24,8 @@ import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor";
import { userContext } from "../../UserContext";
import { isServerlessAccount } from "../../Utils/CapabilityUtils";
import * as GitHubUtils from "../../Utils/GitHubUtils";
import { useSidePanel } from "../../hooks/useSidePanel";
import { useTabs } from "../../hooks/useTabs";
import * as ResourceTreeContextMenuButtonFactory from "../ContextMenuButtonFactory";
import { AccordionComponent, AccordionItemComponent } from "../Controls/Accordion/AccordionComponent";
import { useDialog } from "../Controls/Dialog";
@@ -116,7 +116,7 @@ export class ResourceTreeAdapter implements ReactAdapter {
</AccordionItemComponent>
</AccordionComponent>
{this.galleryContentRoot && this.buildGalleryCallout()}
{/* {this.galleryContentRoot && this.buildGalleryCallout()} */}
</>
);
} else {

View File

@@ -53,130 +53,152 @@ const sampleNotebookModel: IContent<"notebook"> = {
};
describe("GitHubContentProvider remove", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors on invalid path", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync");
jest.spyOn(GitHubClient.prototype, "getContentsAsync");
const response = await gitHubContentProvider.remove(undefined, "invalid path").toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(GitHubContentProvider.SelfErrorCode);
expect(gitHubClient.getContentsAsync).not.toBeCalled();
expect(gitHubClient.getContentsAsync).not.toHaveBeenCalled();
});
it("errors on failed read", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.remove(undefined, sampleGitHubUri).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
});
it("errors on failed delete", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
spyOn(GitHubClient.prototype, "deleteFileAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
jest
.spyOn(GitHubClient.prototype, "deleteFileAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.remove(undefined, sampleGitHubUri).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.deleteFileAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
expect(gitHubClient.deleteFileAsync).toHaveBeenCalled();
});
it("removes notebook", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
spyOn(GitHubClient.prototype, "deleteFileAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: gitHubCommit }),
);
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
jest
.spyOn(GitHubClient.prototype, "deleteFileAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: gitHubCommit }));
const response = await gitHubContentProvider.remove(undefined, sampleGitHubUri).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(HttpStatusCodes.NoContent);
expect(gitHubClient.deleteFileAsync).toBeCalled();
expect(gitHubClient.deleteFileAsync).toHaveBeenCalled();
expect(response.response).toBeUndefined();
});
});
describe("GitHubContentProvider get", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors on invalid path", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync");
jest.spyOn(GitHubClient.prototype, "getContentsAsync");
const response = await gitHubContentProvider.get(undefined, "invalid path", undefined).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(GitHubContentProvider.SelfErrorCode);
expect(gitHubClient.getContentsAsync).not.toBeCalled();
expect(gitHubClient.getContentsAsync).not.toHaveBeenCalled();
});
it("errors on failed read", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.get(undefined, sampleGitHubUri, undefined).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
});
it("reads notebook", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
const response = await gitHubContentProvider.get(undefined, sampleGitHubUri, {}).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
expect(response.response).toEqual(sampleNotebookModel);
});
});
describe("GitHubContentProvider update", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors on invalid path", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync");
jest.spyOn(GitHubClient.prototype, "getContentsAsync");
const response = await gitHubContentProvider.update(undefined, "invalid path", undefined).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(GitHubContentProvider.SelfErrorCode);
expect(gitHubClient.getContentsAsync).not.toBeCalled();
expect(gitHubClient.getContentsAsync).not.toHaveBeenCalled();
});
it("errors on failed read", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.update(undefined, sampleGitHubUri, undefined).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
});
it("errors on failed rename", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
spyOn(GitHubClient.prototype, "renameFileAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
jest
.spyOn(GitHubClient.prototype, "renameFileAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.update(undefined, sampleGitHubUri, sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.renameFileAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
expect(gitHubClient.renameFileAsync).toHaveBeenCalled();
});
it("updates notebook", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
spyOn(GitHubClient.prototype, "renameFileAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: gitHubCommit }),
);
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
jest
.spyOn(GitHubClient.prototype, "renameFileAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: gitHubCommit }));
const response = await gitHubContentProvider.update(undefined, sampleGitHubUri, sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.renameFileAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
expect(gitHubClient.renameFileAsync).toHaveBeenCalled();
expect(response.response.type).toEqual(sampleNotebookModel.type);
expect(response.response.name).toEqual(sampleNotebookModel.name);
expect(response.response.path).toEqual(sampleNotebookModel.path);
@@ -185,33 +207,39 @@ describe("GitHubContentProvider update", () => {
});
describe("GitHubContentProvider create", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors on invalid path", async () => {
spyOn(GitHubClient.prototype, "createOrUpdateFileAsync");
jest.spyOn(GitHubClient.prototype, "createOrUpdateFileAsync");
const response = await gitHubContentProvider.create(undefined, "invalid path", sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(GitHubContentProvider.SelfErrorCode);
expect(gitHubClient.createOrUpdateFileAsync).not.toBeCalled();
expect(gitHubClient.createOrUpdateFileAsync).not.toHaveBeenCalled();
});
it("errors on failed create", async () => {
spyOn(GitHubClient.prototype, "createOrUpdateFileAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "createOrUpdateFileAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.create(undefined, sampleGitHubUri, sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.createOrUpdateFileAsync).toBeCalled();
expect(gitHubClient.createOrUpdateFileAsync).toHaveBeenCalled();
});
it("creates notebook", async () => {
spyOn(GitHubClient.prototype, "createOrUpdateFileAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.Created, data: gitHubCommit }),
);
jest
.spyOn(GitHubClient.prototype, "createOrUpdateFileAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.Created, data: gitHubCommit }));
const response = await gitHubContentProvider.create(undefined, sampleGitHubUri, sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(HttpStatusCodes.Created);
expect(gitHubClient.createOrUpdateFileAsync).toBeCalled();
expect(gitHubClient.createOrUpdateFileAsync).toHaveBeenCalled();
expect(response.response.type).toEqual(sampleNotebookModel.type);
expect(response.response.name).toBeDefined();
expect(response.response.path).toBeDefined();
@@ -220,50 +248,58 @@ describe("GitHubContentProvider create", () => {
});
describe("GitHubContentProvider save", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors on invalid path", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync");
jest.spyOn(GitHubClient.prototype, "getContentsAsync");
const response = await gitHubContentProvider.save(undefined, "invalid path", undefined).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(GitHubContentProvider.SelfErrorCode);
expect(gitHubClient.getContentsAsync).not.toBeCalled();
expect(gitHubClient.getContentsAsync).not.toHaveBeenCalled();
});
it("errors on failed read", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.save(undefined, sampleGitHubUri, undefined).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
});
it("errors on failed update", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
spyOn(GitHubClient.prototype, "createOrUpdateFileAsync").and.returnValue(Promise.resolve({ status: 888 }));
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
jest
.spyOn(GitHubClient.prototype, "createOrUpdateFileAsync")
.mockReturnValue(Promise.resolve({ status: 888, data: undefined }));
const response = await gitHubContentProvider.save(undefined, sampleGitHubUri, sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(888);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.createOrUpdateFileAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
expect(gitHubClient.createOrUpdateFileAsync).toHaveBeenCalled();
});
it("saves notebook", async () => {
spyOn(GitHubClient.prototype, "getContentsAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }),
);
spyOn(GitHubClient.prototype, "createOrUpdateFileAsync").and.returnValue(
Promise.resolve({ status: HttpStatusCodes.OK, data: gitHubCommit }),
);
jest
.spyOn(GitHubClient.prototype, "getContentsAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: sampleFile }));
jest
.spyOn(GitHubClient.prototype, "createOrUpdateFileAsync")
.mockReturnValue(Promise.resolve({ status: HttpStatusCodes.OK, data: gitHubCommit }));
const response = await gitHubContentProvider.save(undefined, sampleGitHubUri, sampleNotebookModel).toPromise();
expect(response).toBeDefined();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(gitHubClient.getContentsAsync).toBeCalled();
expect(gitHubClient.createOrUpdateFileAsync).toBeCalled();
expect(gitHubClient.getContentsAsync).toHaveBeenCalled();
expect(gitHubClient.createOrUpdateFileAsync).toHaveBeenCalled();
expect(response.response.type).toEqual(sampleNotebookModel.type);
expect(response.response.name).toEqual(sampleNotebookModel.name);
expect(response.response.path).toEqual(sampleNotebookModel.path);
@@ -272,6 +308,10 @@ describe("GitHubContentProvider save", () => {
});
describe("GitHubContentProvider listCheckpoints", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors for everything", async () => {
const response = await gitHubContentProvider.listCheckpoints().toPromise();
expect(response).toBeDefined();
@@ -280,6 +320,10 @@ describe("GitHubContentProvider listCheckpoints", () => {
});
describe("GitHubContentProvider createCheckpoint", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors for everything", async () => {
const response = await gitHubContentProvider.createCheckpoint().toPromise();
expect(response).toBeDefined();
@@ -288,6 +332,10 @@ describe("GitHubContentProvider createCheckpoint", () => {
});
describe("GitHubContentProvider deleteCheckpoint", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors for everything", async () => {
const response = await gitHubContentProvider.deleteCheckpoint().toPromise();
expect(response).toBeDefined();
@@ -296,6 +344,10 @@ describe("GitHubContentProvider deleteCheckpoint", () => {
});
describe("GitHubContentProvider restoreFromCheckpoint", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("errors for everything", async () => {
const response = await gitHubContentProvider.restoreFromCheckpoint().toPromise();
expect(response).toBeDefined();

View File

@@ -35,7 +35,7 @@ describe("GitHubOAuthService", () => {
junoClient.deleteAppAuthorization = deleteAppAuthorizationCallback;
await gitHubOAuthService.logout();
expect(deleteAppAuthorizationCallback).toBeCalled();
expect(deleteAppAuthorizationCallback).toHaveBeenCalled();
expect(gitHubOAuthService.getTokenObservable()()).toBeUndefined();
});
@@ -52,13 +52,13 @@ describe("GitHubOAuthService", () => {
window.open = windowOpenCallback;
await gitHubOAuthService.startOAuth("scope");
expect(windowOpenCallback).toBeCalled();
expect(windowOpenCallback).toHaveBeenCalled();
const initialParams = new URLSearchParams(new URL(url).search);
expect(initialParams.get("state")).toBeDefined();
await gitHubOAuthService.startOAuth("another scope");
expect(windowOpenCallback).toBeCalled();
expect(windowOpenCallback).toHaveBeenCalled();
const newParams = new URLSearchParams(new URL(url).search);
expect(newParams.get("state")).toBeDefined();
@@ -80,7 +80,7 @@ describe("GitHubOAuthService", () => {
await gitHubOAuthService.finishOAuth(params);
const updatedToken = gitHubOAuthService.getTokenObservable()();
expect(getGitHubTokenCallback).toBeCalledWith("code");
expect(getGitHubTokenCallback).toHaveBeenCalledWith("code");
expect(initialToken).not.toEqual(updatedToken);
});
@@ -108,7 +108,7 @@ describe("GitHubOAuthService", () => {
};
await gitHubOAuthService.finishOAuth(params);
expect(getGitHubTokenCallback).toBeCalledWith("code");
expect(getGitHubTokenCallback).toHaveBeenCalledWith("code");
expect(gitHubOAuthService.getTokenObservable()().error).toBeDefined();
});

View File

@@ -57,7 +57,7 @@ describe("Pinned repos", () => {
const response = await junoClient.updatePinnedRepos(samplePinnedRepos);
expect(response.status).toBe(HttpStatusCodes.OK);
expect(callback).toBeCalledWith(samplePinnedRepos);
expect(callback).toHaveBeenCalledWith(samplePinnedRepos);
});
it("getPinnedRepos invokes pinned repos subscribers", async () => {
@@ -68,7 +68,7 @@ describe("Pinned repos", () => {
const response = await junoClient.getPinnedRepos("scope");
expect(response.status).toBe(HttpStatusCodes.OK);
expect(callback).toBeCalledWith(samplePinnedRepos);
expect(callback).toHaveBeenCalledWith(samplePinnedRepos);
});
});
@@ -94,7 +94,7 @@ describe("GitHub", () => {
expect(response.status).toBe(HttpStatusCodes.OK);
expect(response.data.access_token).toBeDefined();
expect(window.fetch).toBeCalled();
expect(window.fetch).toHaveBeenCalled();
const fetchUrlParams = new URLSearchParams(new URL(fetchUrl).search);
let fetchUrlParamsCount = 0;
@@ -119,7 +119,7 @@ describe("GitHub", () => {
const response = await junoClient.deleteAppAuthorization("token");
expect(response.status).toBe(HttpStatusCodes.NoContent);
expect(window.fetch).toBeCalled();
expect(window.fetch).toHaveBeenCalled();
const fetchUrlParams = new URLSearchParams(new URL(fetchUrl).search);
let fetchUrlParamsCount = 0;
@@ -161,7 +161,10 @@ describe("Gallery", () => {
const response = await junoClient.getSampleNotebooks();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/samples`, undefined);
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/samples`,
undefined,
);
});
it("getPublicNotebooks", async () => {
@@ -173,7 +176,10 @@ describe("Gallery", () => {
const response = await junoClient.getPublicNotebooks();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/public`, undefined);
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/public`,
undefined,
);
});
it("getNotebook", async () => {
@@ -186,7 +192,7 @@ describe("Gallery", () => {
const response = await junoClient.getNotebookInfo(id);
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/${id}`);
expect(window.fetch).toHaveBeenCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/${id}`);
});
it("getNotebookContent", async () => {
@@ -199,7 +205,7 @@ describe("Gallery", () => {
const response = await junoClient.getNotebookContent(id);
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/${id}/content`);
expect(window.fetch).toHaveBeenCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/${id}/content`);
});
it("increaseNotebookViews", async () => {
@@ -211,7 +217,7 @@ describe("Gallery", () => {
const response = await junoClient.increaseNotebookViews(id);
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/${id}/views`, {
expect(window.fetch).toHaveBeenCalledWith(`${JunoClient.getJunoEndpoint()}/api/notebooks/gallery/${id}/views`, {
method: "PATCH",
});
});
@@ -227,7 +233,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery/${id}/downloads`,
@@ -252,7 +258,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery/${id}/favorite`,
@@ -277,7 +283,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery/${id}/unfavorite`,
@@ -301,7 +307,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery/favorites`,
@@ -324,7 +330,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery/published`,
@@ -348,7 +354,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery/${id}`,
@@ -378,7 +384,7 @@ describe("Gallery", () => {
const authorizationHeader = getAuthorizationHeader();
expect(response.status).toBe(HttpStatusCodes.OK);
expect(window.fetch).toBeCalledWith(
expect(window.fetch).toHaveBeenCalledWith(
`${JunoClient.getJunoEndpoint()}/api/notebooks/subscriptions/${sampleSubscriptionId}/databaseAccounts/${
sampleDatabaseAccount.name
}/gallery`,

View File

@@ -1,7 +1,6 @@
import { IsDisplayable, OnChange, PropertyInfo, RefreshOptions, Values } from "../Decorators";
import { selfServeTraceStart, selfServeTraceSuccess } from "../SelfServeTelemetryProcessor";
import {
ChoiceItem,
Description,
DescriptionType,
Info,
@@ -12,6 +11,9 @@ import {
SelfServeBaseClass,
SmartUiInput,
} from "../SelfServeTypes";
import type { ChoiceItem } from "../SelfServeTypes";
import {
getMaxCollectionThroughput,
getMaxDatabaseThroughput,
@@ -82,7 +84,7 @@ export default class SelfServeExample extends SelfServeBaseClass {
};
/*
In this example, the onSave callback simply sets the value for keys corresponding to the field name in the SessionStorage.
In this example, the onSave callback simply sets the value for keys corresponding to the field name in the SessionStorage.
It uses the currentValues and baselineValues maps to perform custom validations as well.
*/
public onSave = async (
@@ -198,7 +200,7 @@ This is an alternative to updating the throughput from the 'scale & settings' ta
/*
In this example, the onRegionsChange function sets the enableLogging property to false (and disables
the corresponsing toggle UI) when "regions" is set to "North Central US", and enables the toggle for
the corresponsing toggle UI) when "regions" is set to "North Central US", and enables the toggle for
any other value of "regions"
*/
@OnChange(onRegionsChange)

View File

@@ -1,7 +1,6 @@
import { IsDisplayable, OnChange, PropertyInfo, RefreshOptions, Values } from "../Decorators";
import { selfServeTrace } from "../SelfServeTelemetryProcessor";
import {
ChoiceItem,
Description,
DescriptionType,
Info,
@@ -12,6 +11,9 @@ import {
SelfServeBaseClass,
SmartUiInput,
} from "../SelfServeTypes";
import type { ChoiceItem } from "../SelfServeTypes";
import { BladeType, generateBladeLink } from "../SelfServeUtils";
import {
deleteComputeResource,

View File

@@ -6,7 +6,6 @@ import {
selfServeTraceSuccess,
} from "../SelfServeTelemetryProcessor";
import {
ChoiceItem,
Description,
DescriptionType,
Info,
@@ -17,6 +16,9 @@ import {
SelfServeBaseClass,
SmartUiInput,
} from "../SelfServeTypes";
import type { ChoiceItem } from "../SelfServeTypes";
import { BladeType, generateBladeLink } from "../SelfServeUtils";
import {
deleteMaterializedViewsBuilderResource,

View File

@@ -54,6 +54,8 @@ export enum BladeType {
/**
* Keys blade of a Azure Cosmos DB for Apache Gremlin account.
*/
// TODO This is a obviously a bug, but for now, let's ignore the eslint error
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
GremlinKeys = "keys",
/**
* Keys blade of a Azure Cosmos DB for Table account.

View File

@@ -7,7 +7,6 @@ import {
selfServeTraceSuccess,
} from "../SelfServeTelemetryProcessor";
import {
ChoiceItem,
Description,
DescriptionType,
Info,
@@ -18,6 +17,9 @@ import {
SelfServeBaseClass,
SmartUiInput,
} from "../SelfServeTypes";
import type { ChoiceItem } from "../SelfServeTypes";
import { BladeType, generateBladeLink } from "../SelfServeUtils";
import {
deleteDedicatedGatewayResource,

View File

@@ -6,6 +6,9 @@ export const createDefaultSettings = () => {
LocalStorageUtility.setEntryNumber(StorageKey.CustomItemPerPage, Constants.Queries.itemsPerPage);
LocalStorageUtility.setEntryString(StorageKey.IsCrossPartitionQueryEnabled, "true");
LocalStorageUtility.setEntryNumber(StorageKey.MaxDegreeOfParellism, Constants.Queries.DefaultMaxDegreeOfParallelism);
LocalStorageUtility.setEntryNumber(StorageKey.RetryAttempts, Constants.Queries.DefaultRetryAttempts);
LocalStorageUtility.setEntryNumber(StorageKey.RetryInterval, Constants.Queries.DefaultRetryIntervalInMs);
LocalStorageUtility.setEntryNumber(StorageKey.MaxWaitTimeInSeconds, Constants.Queries.DefaultMaxWaitTimeInSeconds);
LocalStorageUtility.setEntryString(StorageKey.PriorityLevel, Constants.PriorityLevel.Default);
};
@@ -13,7 +16,10 @@ export const hasSettingsDefined = (): boolean => {
return (
LocalStorageUtility.hasItem(StorageKey.ActualItemPerPage) &&
LocalStorageUtility.hasItem(StorageKey.IsCrossPartitionQueryEnabled) &&
LocalStorageUtility.hasItem(StorageKey.MaxDegreeOfParellism)
LocalStorageUtility.hasItem(StorageKey.MaxDegreeOfParellism) &&
LocalStorageUtility.hasItem(StorageKey.RetryAttempts) &&
LocalStorageUtility.hasItem(StorageKey.RetryInterval) &&
LocalStorageUtility.hasItem(StorageKey.MaxWaitTimeInSeconds)
);
};

Some files were not shown because too many files have changed in this diff Show More