diff --git a/config/kibana.yml b/config/kibana.yml
index c816337f881d47..b84b63a133f530 100644
--- a/config/kibana.yml
+++ b/config/kibana.yml
@@ -181,3 +181,6 @@
# Maximum number of documents loaded by each shard to generate autocomplete suggestions.
# This value must be a whole number greater than zero. Defaults to 100_000
#unifiedSearch.autocomplete.valueSuggestions.terminateAfter: 100000
+
+# setting needed for POC of help-center
+server.securityResponseHeaders.crossOriginOpenerPolicy: unsafe-none
\ No newline at end of file
diff --git a/package.json b/package.json
index 55eb4bfd3daec2..aedad8ae8f5707 100644
--- a/package.json
+++ b/package.json
@@ -111,6 +111,8 @@
"@elastic/ems-client": "8.5.1",
"@elastic/eui": "95.1.0-backport.0",
"@elastic/filesaver": "1.1.2",
+ "@elastic/help-center-common": "file:../help-center-sdk/packages/common",
+ "@elastic/help-center-host": "file:../help-center-sdk/packages/host",
"@elastic/node-crypto": "1.2.1",
"@elastic/numeral": "^2.5.1",
"@elastic/react-search-ui": "^1.20.2",
@@ -270,6 +272,8 @@
"@kbn/core-execution-context-server-internal": "link:packages/core/execution-context/core-execution-context-server-internal",
"@kbn/core-fatal-errors-browser": "link:packages/core/fatal-errors/core-fatal-errors-browser",
"@kbn/core-fatal-errors-browser-internal": "link:packages/core/fatal-errors/core-fatal-errors-browser-internal",
+ "@kbn/core-help-center-browser": "link:packages/core/help-center/core-help-center-browser",
+ "@kbn/core-help-center-browser-internal": "link:packages/core/help-center/core-help-center-browser-internal",
"@kbn/core-history-block-plugin": "link:test/plugin_functional/plugins/core_history_block",
"@kbn/core-http-browser": "link:packages/core/http/core-http-browser",
"@kbn/core-http-browser-internal": "link:packages/core/http/core-http-browser-internal",
diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx
index 637e87773cf7a8..3e72e99adf5951 100644
--- a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx
+++ b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx
@@ -37,6 +37,7 @@ import useObservable from 'react-use/lib/useObservable';
import { debounceTime, Observable } from 'rxjs';
import type { CustomBranding } from '@kbn/core-custom-branding-common';
+import { LocationHelpButton } from '@elastic/help-center-host';
import { useHeaderActionMenuMounter } from '../header/header_action_menu';
import { Breadcrumbs } from './breadcrumbs';
import { HeaderHelpMenu } from '../header/header_help_menu';
@@ -283,6 +284,9 @@ export const ProjectHeader = ({
+
+
+
/packages/core/help-center/core-help-center-browser-internal'],
+};
diff --git a/packages/core/help-center/core-help-center-browser-internal/kibana.jsonc b/packages/core/help-center/core-help-center-browser-internal/kibana.jsonc
new file mode 100644
index 00000000000000..3ff1ebc6c3e0ff
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser-internal/kibana.jsonc
@@ -0,0 +1,5 @@
+{
+ "type": "shared-common",
+ "id": "@kbn/core-help-center-browser-internal",
+ "owner": "@elastic/appex-sharedux"
+}
\ No newline at end of file
diff --git a/packages/core/help-center/core-help-center-browser-internal/package.json b/packages/core/help-center/core-help-center-browser-internal/package.json
new file mode 100644
index 00000000000000..f9e90e56c6df35
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser-internal/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@kbn/core-help-center-browser-internal",
+ "private": true,
+ "version": "1.0.0",
+ "license": "SSPL-1.0 OR Elastic License 2.0"
+}
\ No newline at end of file
diff --git a/packages/core/help-center/core-help-center-browser-internal/src/help_center_service.ts b/packages/core/help-center/core-help-center-browser-internal/src/help_center_service.ts
new file mode 100644
index 00000000000000..d02ec4d0aa5231
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser-internal/src/help_center_service.ts
@@ -0,0 +1,65 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { Subject, BehaviorSubject } from 'rxjs';
+import { shareReplay, takeUntil, map } from 'rxjs';
+import type { HelpCenterSetup, HelpCenterStart } from '@kbn/core-help-center-browser';
+import { HelpTopic } from '@elastic/help-center-common';
+
+export class HelpCenterService {
+ private helpCenterUrl$ = new BehaviorSubject(undefined);
+ private helpTopics$ = new BehaviorSubject>({});
+ private version$ = new BehaviorSubject(undefined);
+ private stop$ = new Subject();
+
+ /**
+ * @public
+ */
+ public setup(): HelpCenterSetup {
+ return {
+ configure: ({ helpCenterUrl, version, helpTopics }) => {
+ this.helpCenterUrl$.next(helpCenterUrl);
+ this.version$.next(version);
+ if (helpTopics && Object.keys(helpTopics).length > 0) {
+ this.helpTopics$.next(helpTopics);
+ }
+ },
+ addHelpTopics: (helpTopics) => {
+ this.helpTopics$.next({ ...this.helpTopics$.value, ...helpTopics });
+ },
+ hasHelpTopics$: this.helpTopics$.pipe(
+ takeUntil(this.stop$),
+ map((cb) => Object.keys(cb).length > 0),
+ shareReplay(1)
+ ),
+ };
+ }
+
+ /**
+ * @public
+ */
+ public start(): HelpCenterStart {
+ if (!this.helpTopics$) {
+ throw new Error('Setup needs to be called before start');
+ }
+ return {
+ hasHelpTopics$: this.helpTopics$.pipe(
+ takeUntil(this.stop$),
+ map((cb) => Object.keys(cb).length > 0),
+ shareReplay(1)
+ ),
+ helpCenterUrl$: this.helpCenterUrl$.pipe(takeUntil(this.stop$), shareReplay(1)),
+ helpTopics$: this.helpTopics$.pipe(takeUntil(this.stop$), shareReplay(1)),
+ version$: this.version$.pipe(takeUntil(this.stop$), shareReplay(1)),
+ };
+ }
+
+ public stop() {
+ this.stop$.next();
+ }
+}
diff --git a/packages/core/help-center/core-help-center-browser-internal/tsconfig.json b/packages/core/help-center/core-help-center-browser-internal/tsconfig.json
new file mode 100644
index 00000000000000..b4b8fe926a43f6
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser-internal/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "extends": "../../../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "target/types",
+ "types": [
+ "jest",
+ "node",
+ "react"
+ ]
+ },
+ "include": [
+ "**/*.ts",
+ "**/*.tsx",
+ ],
+ "exclude": [
+ "target/**/*"
+ ],
+ "kbn_references": []
+}
\ No newline at end of file
diff --git a/packages/core/help-center/core-help-center-browser/index.ts b/packages/core/help-center/core-help-center-browser/index.ts
new file mode 100644
index 00000000000000..c52128d5edbdb8
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser/index.ts
@@ -0,0 +1,8 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+export type { HelpCenterSetup, HelpCenterStart } from './types';
diff --git a/packages/core/help-center/core-help-center-browser/jest.config.js b/packages/core/help-center/core-help-center-browser/jest.config.js
new file mode 100644
index 00000000000000..c0e5e0dad272f4
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser/jest.config.js
@@ -0,0 +1,13 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+module.exports = {
+ preset: '@kbn/test/jest_node',
+ rootDir: '../../../..',
+ roots: ['/packages/core/help-center/core-help-center-browser'],
+};
diff --git a/packages/core/help-center/core-help-center-browser/kibana.jsonc b/packages/core/help-center/core-help-center-browser/kibana.jsonc
new file mode 100644
index 00000000000000..739cc188051669
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser/kibana.jsonc
@@ -0,0 +1,5 @@
+{
+ "type": "shared-common",
+ "id": "@kbn/core-help-center-browser",
+ "owner": "@elastic/appex-sharedux"
+}
\ No newline at end of file
diff --git a/packages/core/help-center/core-help-center-browser/package.json b/packages/core/help-center/core-help-center-browser/package.json
new file mode 100644
index 00000000000000..c6f832feb9e248
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@kbn/core-help-center-browser",
+ "private": true,
+ "version": "1.0.0",
+ "license": "SSPL-1.0 OR Elastic License 2.0"
+}
\ No newline at end of file
diff --git a/packages/core/help-center/core-help-center-browser/tsconfig.json b/packages/core/help-center/core-help-center-browser/tsconfig.json
new file mode 100644
index 00000000000000..d89e83fdea135d
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "../../../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "target/types",
+ "types": [
+ "jest",
+ "node"
+ ]
+ },
+ "include": [
+ "**/*.ts",
+ ],
+ "exclude": [
+ "target/**/*"
+ ],
+ "kbn_references": []
+}
\ No newline at end of file
diff --git a/packages/core/help-center/core-help-center-browser/types.ts b/packages/core/help-center/core-help-center-browser/types.ts
new file mode 100644
index 00000000000000..63683d197881ae
--- /dev/null
+++ b/packages/core/help-center/core-help-center-browser/types.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { Observable } from 'rxjs';
+import { HelpTopic } from '@elastic/help-center-common';
+
+export interface HelpCenterStart {
+ helpTopics$: Observable>;
+ hasHelpTopics$: Observable;
+ version$: Observable;
+ helpCenterUrl$: Observable;
+}
+
+export interface HelpCenterSetup {
+ configure: (config: {
+ helpCenterUrl: string;
+ version: string;
+ helpTopics?: Record;
+ }) => void;
+ addHelpTopics: (helpTopics: Record) => void;
+ hasHelpTopics$: Observable;
+}
diff --git a/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts b/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts
index fa276f375414b8..4538e5cab1da09 100644
--- a/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts
+++ b/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts
@@ -18,6 +18,7 @@ import type { CustomBrandingSetup } from '@kbn/core-custom-branding-browser';
import type { PluginsServiceSetup } from '@kbn/core-plugins-contracts-browser';
import type { SecurityServiceSetup } from '@kbn/core-security-browser';
import type { UserProfileServiceSetup } from '@kbn/core-user-profile-browser';
+import type { HelpCenterSetup } from '@kbn/core-help-center-browser';
import type { CoreStart } from './core_start';
/**
@@ -43,6 +44,8 @@ export interface CoreSetup
);
};
+
+export const HelpCenterWrapper: FC<
+ PropsWithChildren<{
+ helpTopics$: Observable>;
+ helpCenterUrl$: Observable;
+ version$: Observable;
+ }>
+> = ({ helpTopics$, version$, helpCenterUrl$, children }) => {
+ const helpTopics = useObservable(helpTopics$);
+ const version = useObservable(version$);
+ const helpCenterUrl = useObservable(helpCenterUrl$);
+
+ if (!helpTopics || !version || !helpCenterUrl) {
+ return <>{children}>;
+ }
+
+ return (
+
+ {children}
+
+
+ );
+};
diff --git a/packages/core/rendering/core-rendering-browser-internal/src/rendering_service.tsx b/packages/core/rendering/core-rendering-browser-internal/src/rendering_service.tsx
index 0cfa0a0da2bc4d..a7f6fae943dc86 100644
--- a/packages/core/rendering/core-rendering-browser-internal/src/rendering_service.tsx
+++ b/packages/core/rendering/core-rendering-browser-internal/src/rendering_service.tsx
@@ -17,10 +17,12 @@ import type { I18nStart } from '@kbn/core-i18n-browser';
import type { OverlayStart } from '@kbn/core-overlays-browser';
import type { ThemeServiceStart } from '@kbn/core-theme-browser';
import { KibanaRootContextProvider } from '@kbn/react-kibana-context-root';
-import { AppWrapper } from './app_containers';
+import { HelpCenterStart } from '@kbn/core-help-center-browser';
+import { AppWrapper, HelpCenterWrapper } from './app_containers';
interface StartServices {
analytics: AnalyticsServiceStart;
+ helpCenter: HelpCenterStart;
i18n: I18nStart;
theme: ThemeServiceStart;
}
@@ -41,7 +43,14 @@ export interface StartDeps extends StartServices {
* @internal
*/
export class RenderingService {
- start({ application, chrome, overlays, targetDomElement, ...startServices }: StartDeps) {
+ start({
+ application,
+ chrome,
+ overlays,
+ targetDomElement,
+ helpCenter,
+ ...startServices
+ }: StartDeps) {
const chromeHeader = chrome.getHeaderComponent();
const appComponent = application.getComponent();
const bannerComponent = overlays.banners.getComponent();
@@ -54,10 +63,11 @@ export class RenderingService {
body.classList.remove(...previousClasses);
body.classList.add(...newClasses);
});
+ const { helpCenterUrl$, helpTopics$, version$ } = helpCenter;
ReactDOM.render(
- <>
+
{/* Fixed headers */}
{chromeHeader}
@@ -72,7 +82,7 @@ export class RenderingService {
{/* The actual plugin/app */}
{appComponent}
- >
+
,
targetDomElement
);
diff --git a/packages/core/root/core-root-browser-internal/src/core_system.ts b/packages/core/root/core-root-browser-internal/src/core_system.ts
index f06f1becbf2483..c886fe48670b8b 100644
--- a/packages/core/root/core-root-browser-internal/src/core_system.ts
+++ b/packages/core/root/core-root-browser-internal/src/core_system.ts
@@ -38,6 +38,7 @@ import { PluginsService } from '@kbn/core-plugins-browser-internal';
import { CustomBrandingService } from '@kbn/core-custom-branding-browser-internal';
import { SecurityService } from '@kbn/core-security-browser-internal';
import { UserProfileService } from '@kbn/core-user-profile-browser-internal';
+import { HelpCenterService } from '@kbn/core-help-center-browser-internal';
import { KBN_LOAD_MARKS } from './events';
import { fetchOptionalMemoryInfo } from './fetch_optional_memory_info';
import {
@@ -107,6 +108,7 @@ export class CoreSystem {
private readonly customBranding: CustomBrandingService;
private readonly security: SecurityService;
private readonly userProfile: UserProfileService;
+ private readonly helpCenter: HelpCenterService;
private fatalErrorsSetup: FatalErrorsSetup | null = null;
constructor(params: CoreSystemParams) {
@@ -154,6 +156,7 @@ export class CoreSystem {
this.plugins = new PluginsService(this.coreContext, injectedMetadata.uiPlugins);
this.coreApp = new CoreAppsService(this.coreContext);
this.customBranding = new CustomBrandingService();
+ this.helpCenter = new HelpCenterService();
performance.mark(KBN_LOAD_MARKS, {
detail: LOAD_CORE_CREATED,
@@ -247,6 +250,7 @@ export class CoreSystem {
const settings = this.settings.setup({ http, injectedMetadata });
const notifications = this.notifications.setup({ uiSettings, analytics });
const customBranding = this.customBranding.setup({ injectedMetadata });
+ const helpCenter = this.helpCenter.setup();
const application = this.application.setup({ http, analytics });
this.coreApp.setup({ application, http, injectedMetadata, notifications });
@@ -255,6 +259,7 @@ export class CoreSystem {
analytics,
application,
fatalErrors: this.fatalErrorsSetup,
+ helpCenter,
http,
injectedMetadata,
notifications,
@@ -344,6 +349,7 @@ export class CoreSystem {
customBranding,
});
const deprecations = this.deprecations.start({ http });
+ const helpCenter = this.helpCenter.start();
this.coreApp.start({
application,
@@ -362,6 +368,7 @@ export class CoreSystem {
chrome,
docLinks,
executionContext,
+ helpCenter,
http,
theme,
savedObjects,
@@ -391,6 +398,7 @@ export class CoreSystem {
application,
chrome,
analytics,
+ helpCenter,
i18n,
overlays,
theme,
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 8baaf9a5c0dd73..9e38094158e49f 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -340,6 +340,10 @@
"@kbn/core-fatal-errors-browser-internal/*": ["packages/core/fatal-errors/core-fatal-errors-browser-internal/*"],
"@kbn/core-fatal-errors-browser-mocks": ["packages/core/fatal-errors/core-fatal-errors-browser-mocks"],
"@kbn/core-fatal-errors-browser-mocks/*": ["packages/core/fatal-errors/core-fatal-errors-browser-mocks/*"],
+ "@kbn/core-help-center-browser": ["packages/core/help-center/core-help-center-browser"],
+ "@kbn/core-help-center-browser/*": ["packages/core/help-center/core-help-center-browser/*"],
+ "@kbn/core-help-center-browser-internal": ["packages/core/help-center/core-help-center-browser-internal"],
+ "@kbn/core-help-center-browser-internal/*": ["packages/core/help-center/core-help-center-browser-internal/*"],
"@kbn/core-history-block-plugin": ["test/plugin_functional/plugins/core_history_block"],
"@kbn/core-history-block-plugin/*": ["test/plugin_functional/plugins/core_history_block/*"],
"@kbn/core-http-browser": ["packages/core/http/core-http-browser"],
diff --git a/x-pack/plugins/serverless_observability/public/mappings_for_docs.ts b/x-pack/plugins/serverless_observability/public/mappings_for_docs.ts
new file mode 100644
index 00000000000000..cd8b2701e5f39d
--- /dev/null
+++ b/x-pack/plugins/serverless_observability/public/mappings_for_docs.ts
@@ -0,0 +1,50 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+const HELP_CENTER_CREATE_SLO = '/observability/create-an-slo';
+const HELP_CENTER_OBS_DIAGNOSE_AND_DEBUG = '/observability/devtools/search-profiler/overview';
+const HELP_CENTER_OBS_DISCOVER = '/observability/discover';
+const HELP_CENTER_OBS_INDEX_MAPPING = '/observability/index-management/index-mapping';
+const HELP_CENTER_OBS_KIBANA_SEARCH = '/observability/search';
+const HELP_CENTER_OBS_PREPROCESS_DATA =
+ '/observability/project-settings/preprocess-data-before-indexing';
+const HELP_CENTER_OBS_QUERY_CLUSTER_WITH_CONSOLE =
+ '/observability/devtools/console/query-cluster-with-console';
+const HELP_CENTER_API_KEYS = '/serverless/api-keys';
+
+const createItem = (name: string, hostPath?: string | RegExp) => ({
+ name,
+ path: name,
+ hostPath,
+ popup: { width: 600, height: 800 },
+});
+
+export const helpTopics = {
+ [HELP_CENTER_CREATE_SLO]: createItem(HELP_CENTER_CREATE_SLO, '/observability/create-an-slo'),
+ [HELP_CENTER_OBS_DIAGNOSE_AND_DEBUG]: createItem(
+ HELP_CENTER_OBS_DIAGNOSE_AND_DEBUG,
+ '/observability/devtools/search-profiler/overview'
+ ),
+ [HELP_CENTER_OBS_DISCOVER]: createItem(HELP_CENTER_OBS_DISCOVER, '/observability/discover'),
+ [HELP_CENTER_OBS_INDEX_MAPPING]: createItem(
+ HELP_CENTER_OBS_INDEX_MAPPING,
+ '/observability/index-management/index-mapping'
+ ),
+ [HELP_CENTER_OBS_KIBANA_SEARCH]: createItem(
+ HELP_CENTER_OBS_KIBANA_SEARCH,
+ '/observability/search'
+ ),
+ [HELP_CENTER_OBS_PREPROCESS_DATA]: createItem(
+ HELP_CENTER_OBS_PREPROCESS_DATA,
+ '/observability/project-settings/preprocess-data-before-indexing'
+ ),
+ [HELP_CENTER_OBS_QUERY_CLUSTER_WITH_CONSOLE]: createItem(
+ HELP_CENTER_OBS_QUERY_CLUSTER_WITH_CONSOLE,
+ '/observability/devtools/console/query-cluster-with-console'
+ ),
+ [HELP_CENTER_API_KEYS]: createItem(HELP_CENTER_API_KEYS, 'serverless/api_keys'),
+};
diff --git a/x-pack/plugins/serverless_observability/public/plugin.ts b/x-pack/plugins/serverless_observability/public/plugin.ts
index 4910b7de92a44e..d3f580fc85b42a 100644
--- a/x-pack/plugins/serverless_observability/public/plugin.ts
+++ b/x-pack/plugins/serverless_observability/public/plugin.ts
@@ -17,6 +17,7 @@ import {
ServerlessObservabilityPublicSetupDependencies,
ServerlessObservabilityPublicStartDependencies,
} from './types';
+import { helpTopics } from './mappings_for_docs';
export class ServerlessObservabilityPlugin
implements
@@ -42,6 +43,12 @@ export class ServerlessObservabilityPlugin
})
);
+ _core.helpCenter.configure({
+ helpCenterUrl: 'https://www.elastic.co/docs/current/serverless/',
+ version: '0.0.1',
+ helpTopics,
+ });
+
return {};
}
diff --git a/x-pack/plugins/serverless_search/public/mappings_for_docs.ts b/x-pack/plugins/serverless_search/public/mappings_for_docs.ts
new file mode 100644
index 00000000000000..c884a399b314ac
--- /dev/null
+++ b/x-pack/plugins/serverless_search/public/mappings_for_docs.ts
@@ -0,0 +1,131 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+const HELP_CENTER_ES_HOME = 'elasticsearch/what-is-elasticsearch-serverless';
+const HELP_CENTER_CONSOLE = 'devtools/run-api-requests-in-the-console';
+const HELP_CENTER_SEARCH_PROFILER = 'devtools/profile-queries-and-aggregations';
+const HELP_CENTER_GROK = 'devtools/debug-grok-expressions';
+const HELP_CENTER_CONNECTORS = 'elasticsearch/ingest-data-through-integrations-connector-client';
+const HELP_CENTER_CONNECTOR_CLIENT = '/elasticsearch/setup-connector-client';
+const HELP_CENTER_ES_DIAGNOSE_AND_DEBUG = '/elasticsearch/devtools/search-profiler/overview';
+const HELP_CENTER_ES_DISCOVER = '/elasticsearch/discover';
+const HELP_CENTER_ES_INDEX_MAPPING = '/elasticsearch/index-management/index-mapping';
+const HELP_CENTER_ES_KIBANA_SEARCH = '/elasticsearch/search';
+const HELP_CENTER_ES_PREPROCESS_DATA =
+ '/elasticsearch/project-settings/preprocess-data-before-indexing';
+const HELP_CENTER_QUERY_CLUSTER_WITH_CONSOLE =
+ '/elasticsearch/devtools/console/query-cluster-with-console';
+// const HELP_CENTER_FIND_APPS_AND_OBJECTS = '';
+// const HELP_CENTER_INDEX_MAPPING = '';
+
+// Observability specific
+const HELP_CENTER_CREATE_SLO = '/observability/create-an-slo';
+const HELP_CENTER_OBS_DIAGNOSE_AND_DEBUG = '/observability/devtools/search-profiler/overview';
+const HELP_CENTER_OBS_DISCOVER = '/observability/discover';
+const HELP_CENTER_OBS_INDEX_MAPPING = '/observability/index-management/index-mapping';
+const HELP_CENTER_OBS_KIBANA_SEARCH = '/observability/search';
+const HELP_CENTER_OBS_PREPROCESS_DATA =
+ '/observability/project-settings/preprocess-data-before-indexing';
+const HELP_CENTER_OBS_QUERY_CLUSTER_WITH_CONSOLE =
+ '/observability/devtools/console/query-cluster-with-console';
+// const HELP_CENTER_PREPROCESS_DATA = '';
+// const HELP_CENTER_SEARCH_PROFILER_BASICS = '';
+
+// Security specific
+const HELP_CENTER_SEC_DIAGNOSE_AND_DEBUG = '/security/devtools/search-profiler/overview';
+const HELP_CENTER_SEC_DISCOVER = '/security/discover';
+const HELP_CENTER_SEC_INDEX_MAPPING = '/security/index-management/index-mapping';
+const HELP_CENTER_SEC_KIBANA_SEARCH = '/security/search';
+const HELP_CENTER_SEC_NAV_AND_INTERACT_WITH_SECURITY = '/security/interact-with-ui';
+const HELP_CENTER_SEC_PREPROCESS_DATA =
+ '/security/project-settings/preprocess-data-before-indexing';
+const HELP_CENTER_SEC_QUERY_CLUSTER_WITH_CONSOLE =
+ '/security/devtools/console/query-cluster-with-console';
+// const HELP_CENTER_ = '';
+const HELP_CENTER_API_KEYS = '/serverless/api-keys';
+
+const createItem = (name: string, hostPath?: string | RegExp) => ({
+ name,
+ path: name,
+ hostPath,
+ popup: { width: 600, height: 800 },
+});
+
+export const helpTopics = {
+ [HELP_CENTER_ES_HOME]: createItem(HELP_CENTER_ES_HOME),
+ [HELP_CENTER_CONSOLE]: createItem(HELP_CENTER_CONSOLE, '/console'),
+ [HELP_CENTER_SEARCH_PROFILER]: createItem(HELP_CENTER_SEARCH_PROFILER, '/searchprofiler'),
+ [HELP_CENTER_GROK]: createItem(HELP_CENTER_GROK, '/grokdebugger'),
+ [HELP_CENTER_CONNECTORS]: createItem(HELP_CENTER_CONNECTORS, '/connectors'),
+ [HELP_CENTER_CONNECTOR_CLIENT]: createItem(
+ HELP_CENTER_CONNECTOR_CLIENT,
+ '/elasticsearch/setup-connector-client'
+ ),
+ [HELP_CENTER_CREATE_SLO]: createItem(HELP_CENTER_CREATE_SLO, '/observability/create-an-slo'),
+ [HELP_CENTER_ES_DIAGNOSE_AND_DEBUG]: createItem(
+ HELP_CENTER_ES_DIAGNOSE_AND_DEBUG,
+ '/elasticsearch/devtools/search-profiler/overview'
+ ),
+ [HELP_CENTER_ES_DISCOVER]: createItem(HELP_CENTER_ES_DISCOVER, '/elasticsearch/discover'),
+ [HELP_CENTER_ES_INDEX_MAPPING]: createItem(
+ HELP_CENTER_ES_INDEX_MAPPING,
+ '/elasticsearch/index-management/index-mapping'
+ ),
+ [HELP_CENTER_ES_KIBANA_SEARCH]: createItem(HELP_CENTER_ES_KIBANA_SEARCH, '/elasticsearch/search'),
+ [HELP_CENTER_ES_PREPROCESS_DATA]: createItem(
+ HELP_CENTER_ES_PREPROCESS_DATA,
+ '/elasticsearch/project-settings/preprocess-data-before-indexing'
+ ),
+ [HELP_CENTER_QUERY_CLUSTER_WITH_CONSOLE]: createItem(
+ HELP_CENTER_QUERY_CLUSTER_WITH_CONSOLE,
+ '/elasticsearch/devtools/console/query-cluster-with-console'
+ ),
+ [HELP_CENTER_OBS_DIAGNOSE_AND_DEBUG]: createItem(
+ HELP_CENTER_OBS_DIAGNOSE_AND_DEBUG,
+ '/observability/devtools/search-profiler/overview'
+ ),
+ [HELP_CENTER_OBS_DISCOVER]: createItem(HELP_CENTER_OBS_DISCOVER, '/observability/discover'),
+ [HELP_CENTER_OBS_INDEX_MAPPING]: createItem(
+ HELP_CENTER_OBS_INDEX_MAPPING,
+ '/observability/index-management/index-mapping'
+ ),
+ [HELP_CENTER_OBS_KIBANA_SEARCH]: createItem(
+ HELP_CENTER_OBS_KIBANA_SEARCH,
+ '/observability/search'
+ ),
+ [HELP_CENTER_OBS_PREPROCESS_DATA]: createItem(
+ HELP_CENTER_OBS_PREPROCESS_DATA,
+ '/observability/project-settings/preprocess-data-before-indexing'
+ ),
+ [HELP_CENTER_OBS_QUERY_CLUSTER_WITH_CONSOLE]: createItem(
+ HELP_CENTER_OBS_QUERY_CLUSTER_WITH_CONSOLE,
+ '/observability/devtools/console/query-cluster-with-console'
+ ),
+ [HELP_CENTER_SEC_DIAGNOSE_AND_DEBUG]: createItem(
+ HELP_CENTER_SEC_DIAGNOSE_AND_DEBUG,
+ '/security/devtools/search-profiler/overview'
+ ),
+ [HELP_CENTER_SEC_DISCOVER]: createItem(HELP_CENTER_SEC_DISCOVER, '/security/discover'),
+ [HELP_CENTER_SEC_INDEX_MAPPING]: createItem(
+ HELP_CENTER_SEC_INDEX_MAPPING,
+ '/security/index-management/index-mapping'
+ ),
+ [HELP_CENTER_SEC_KIBANA_SEARCH]: createItem(HELP_CENTER_SEC_KIBANA_SEARCH, '/security/search'),
+ [HELP_CENTER_SEC_NAV_AND_INTERACT_WITH_SECURITY]: createItem(
+ HELP_CENTER_SEC_NAV_AND_INTERACT_WITH_SECURITY,
+ '/security/interact-with-ui'
+ ),
+ [HELP_CENTER_SEC_PREPROCESS_DATA]: createItem(
+ HELP_CENTER_SEC_PREPROCESS_DATA,
+ '/security/project-settings/preprocess-data-before-indexing'
+ ),
+ [HELP_CENTER_SEC_QUERY_CLUSTER_WITH_CONSOLE]: createItem(
+ HELP_CENTER_SEC_QUERY_CLUSTER_WITH_CONSOLE,
+ '/security/devtools/console/query-cluster-with-console'
+ ),
+ [HELP_CENTER_API_KEYS]: createItem(HELP_CENTER_API_KEYS, 'serverless/api_keys'),
+};
diff --git a/x-pack/plugins/serverless_search/public/plugin.ts b/x-pack/plugins/serverless_search/public/plugin.ts
index e72e1a4575079a..bb9244e3c2c79c 100644
--- a/x-pack/plugins/serverless_search/public/plugin.ts
+++ b/x-pack/plugins/serverless_search/public/plugin.ts
@@ -29,6 +29,7 @@ import {
import { createIndexDocumentsContent } from './application/components/index_documents/documents_tab';
import { getErrorCode, getErrorMessage, isKibanaServerError } from './utils/get_error_message';
import { navigationTree } from './navigation_tree';
+import { helpTopics } from './mappings_for_docs';
export class ServerlessSearchPlugin
implements
@@ -133,7 +134,11 @@ export class ServerlessSearchPlugin
},
});
- setupDeps.discover.showInlineTopNav();
+ core.helpCenter.configure({
+ helpCenterUrl: 'https://www.elastic.co/docs/current/serverless/',
+ version: '0.0.1',
+ helpTopics,
+ });
return {};
}
diff --git a/yarn.lock b/yarn.lock
index d168b25927c984..99e09f793cce07 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1683,7 +1683,7 @@
utility-types "^3.10.0"
uuid "^9"
-"@elastic/datemath@5.0.3":
+"@elastic/datemath@5.0.3", "@elastic/datemath@^5.0.3":
version "5.0.3"
resolved "https://registry.yarnpkg.com/@elastic/datemath/-/datemath-5.0.3.tgz#7baccdab672b9a3ecb7fe8387580670936b58573"
integrity sha512-8Hbr1Uyjm5OcYBfEB60K7sCP6U3IXuWDaLaQmYv3UxgI4jqBWbakoemwWvsqPVUvnwEjuX6z7ghPZbefs8xiaA==
@@ -1782,11 +1782,67 @@
uuid "^8.3.0"
vfile "^4.2.1"
+"@elastic/eui@^94.5.2":
+ version "94.6.0"
+ resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-94.6.0.tgz#fd56be1dbdcdea259cdb3504085c8479fa35bcef"
+ integrity sha512-lYXVcylXn4Iz2WumBuOEkc1PRFoUby7CTnNhTS/gVrbTP7Mn0ombcoPFUSiZcA7VuN2mHfPmTUdBQptC/apTzA==
+ dependencies:
+ "@hello-pangea/dnd" "^16.6.0"
+ "@types/lodash" "^4.14.202"
+ "@types/numeral" "^2.0.5"
+ "@types/react-window" "^1.8.8"
+ "@types/refractor" "^3.4.0"
+ chroma-js "^2.4.2"
+ classnames "^2.5.1"
+ lodash "^4.17.21"
+ mdast-util-to-hast "^10.2.0"
+ numeral "^2.0.6"
+ prop-types "^15.8.1"
+ react-dropzone "^11.7.1"
+ react-element-to-jsx-string "^15.0.0"
+ react-focus-on "^3.9.1"
+ react-is "^17.0.2"
+ react-remove-scroll-bar "^2.3.4"
+ react-virtualized-auto-sizer "^1.0.24"
+ react-window "^1.8.10"
+ refractor "^3.6.0"
+ rehype-raw "^5.1.0"
+ rehype-react "^6.2.1"
+ rehype-stringify "^8.0.0"
+ remark-breaks "^2.0.2"
+ remark-emoji "^2.1.0"
+ remark-parse-no-trim "^8.0.4"
+ remark-rehype "^8.1.0"
+ tabbable "^5.3.3"
+ text-diff "^1.0.1"
+ unified "^9.2.2"
+ unist-util-visit "^2.0.3"
+ url-parse "^1.5.10"
+ uuid "^8.3.0"
+ vfile "^4.2.1"
+
"@elastic/filesaver@1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@elastic/filesaver/-/filesaver-1.1.2.tgz#1998ffb3cd89c9da4ec12a7793bfcae10e30c77a"
integrity sha512-YZbSufYFBhAj+S2cJgiKALoxIJevqXN2MSr6Yqr42rJdaPuM31cj6pUDwflkql1oDjupqD9la+MfxPFjXI1JFQ==
+"@elastic/help-center-common@file:../help-center-sdk/packages/common":
+ version "0.0.1"
+ dependencies:
+ "@reduxjs/toolkit" "^1.9.7"
+ redux-dynamic-middlewares "^2.2.0"
+
+"@elastic/help-center-host@file:../help-center-sdk/packages/host":
+ version "0.0.1"
+ dependencies:
+ "@elastic/datemath" "^5.0.3"
+ "@elastic/eui" "^94.5.2"
+ "@reduxjs/toolkit" "1.9.7"
+ moment "^2.30.1"
+ react "^17.0.2"
+ react-redux "^7.2.8"
+ react-use "^17.5.0"
+
"@elastic/makelogs@^6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@elastic/makelogs/-/makelogs-6.1.1.tgz#5bc173b16acdfd7844fd85c97824ddcffd67cfb3"
@@ -3889,6 +3945,14 @@
version "0.0.0"
uid ""
+"@kbn/core-help-center-browser-internal@link:packages/core/help-center/core-help-center-browser-internal":
+ version "0.0.0"
+ uid ""
+
+"@kbn/core-help-center-browser@link:packages/core/help-center/core-help-center-browser":
+ version "0.0.0"
+ uid ""
+
"@kbn/core-history-block-plugin@link:test/plugin_functional/plugins/core_history_block":
version "0.0.0"
uid ""
@@ -8177,7 +8241,7 @@
resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.1.0.tgz#0e81ce56b4883b4b2a3001ebe1ab298b84237204"
integrity sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg==
-"@reduxjs/toolkit@1.9.7":
+"@reduxjs/toolkit@1.9.7", "@reduxjs/toolkit@^1.9.7":
version "1.9.7"
resolved "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz"
integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==
@@ -10362,6 +10426,11 @@
resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f"
integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw==
+"@types/js-cookie@^2.2.6":
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3"
+ integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==
+
"@types/js-levenshtein@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@types/js-levenshtein/-/js-levenshtein-1.1.0.tgz#9541eec4ad6e3ec5633270a3a2b55d981edc44a9"
@@ -11742,7 +11811,7 @@
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99"
integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==
-"@xobotyi/scrollbar-width@1.9.5":
+"@xobotyi/scrollbar-width@1.9.5", "@xobotyi/scrollbar-width@^1.9.5":
version "1.9.5"
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==
@@ -14832,6 +14901,13 @@ css-in-js-utils@^2.0.0:
hyphenate-style-name "^1.0.2"
isobject "^3.0.1"
+css-in-js-utils@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz#640ae6a33646d401fc720c54fc61c42cd76ae2bb"
+ integrity sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==
+ dependencies:
+ hyphenate-style-name "^1.0.3"
+
css-loader@^3.4.2, css-loader@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
@@ -15008,6 +15084,11 @@ csstype@^3.0.2:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b"
integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==
+csstype@^3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -17626,6 +17707,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fast-loops@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/fast-loops/-/fast-loops-1.1.3.tgz#ce96adb86d07e7bf9b4822ab9c6fac9964981f75"
+ integrity sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==
+
fast-redact@^3.0.0, fast-redact@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa"
@@ -17658,6 +17744,11 @@ fastest-stable-stringify@^1.0.1:
resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-1.0.1.tgz#9122d406d4c9d98bea644a6b6853d5874b87b028"
integrity sha1-kSLUBtTJ2YvqZEpraFPVh0uHsCg=
+fastest-stable-stringify@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76"
+ integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==
+
fastq@^1.13.0, fastq@^1.6.0:
version "1.15.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
@@ -19598,6 +19689,11 @@ hyphenate-style-name@^1.0.2:
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48"
integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==
+hyphenate-style-name@^1.0.3:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436"
+ integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==
+
i18n-iso-countries@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/i18n-iso-countries/-/i18n-iso-countries-4.3.1.tgz#f110a8824ce14edbb0eb8f3b0bd817ff950af37c"
@@ -19770,6 +19866,14 @@ inline-style-prefixer@^4.0.0:
bowser "^1.7.3"
css-in-js-utils "^2.0.0"
+inline-style-prefixer@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz#991d550735d42069f528ac1bcdacd378d1305442"
+ integrity sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==
+ dependencies:
+ css-in-js-utils "^3.1.0"
+ fast-loops "^1.1.3"
+
inquirer@^7.0.0, inquirer@^7.3.3:
version "7.3.3"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
@@ -23340,6 +23444,11 @@ moment@>=2.14.0, moment@^2.10.6, moment@^2.29.4:
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
+moment@^2.30.1:
+ version "2.30.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
+ integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
+
monaco-editor@^0.44.0:
version "0.44.0"
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.44.0.tgz#3c0fe3655923bbf7dd647057302070b5095b6c59"
@@ -23584,6 +23693,20 @@ nano-css@^5.2.1:
stacktrace-js "^2.0.0"
stylis "3.5.0"
+nano-css@^5.6.1:
+ version "5.6.1"
+ resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.6.1.tgz#964120cb1af6cccaa6d0717a473ccd876b34c197"
+ integrity sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.15"
+ css-tree "^1.1.2"
+ csstype "^3.1.2"
+ fastest-stable-stringify "^2.0.2"
+ inline-style-prefixer "^7.0.0"
+ rtl-css-js "^1.16.1"
+ stacktrace-js "^2.0.2"
+ stylis "^4.3.0"
+
nanoid@3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
@@ -26777,6 +26900,26 @@ react-use@^15.3.8:
ts-easing "^0.2.0"
tslib "^2.0.0"
+react-use@^17.5.0:
+ version "17.5.0"
+ resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.5.0.tgz#1fae45638828a338291efa0f0c61862db7ee6442"
+ integrity sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==
+ dependencies:
+ "@types/js-cookie" "^2.2.6"
+ "@xobotyi/scrollbar-width" "^1.9.5"
+ copy-to-clipboard "^3.3.1"
+ fast-deep-equal "^3.1.3"
+ fast-shallow-equal "^1.0.0"
+ js-cookie "^2.2.1"
+ nano-css "^5.6.1"
+ react-universal-interface "^0.6.2"
+ resize-observer-polyfill "^1.5.1"
+ screenfull "^5.1.0"
+ set-harmonic-interval "^1.0.1"
+ throttle-debounce "^3.0.1"
+ ts-easing "^0.2.0"
+ tslib "^2.1.0"
+
react-virtualized-auto-sizer@^1.0.24:
version "1.0.24"
resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.24.tgz#3ebdc92f4b05ad65693b3cc8e7d8dd54924c0227"
@@ -27056,6 +27199,11 @@ redux-devtools-extension@^2.13.8:
resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz#37b982688626e5e4993ff87220c9bbb7cd2d96e1"
integrity sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg==
+redux-dynamic-middlewares@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/redux-dynamic-middlewares/-/redux-dynamic-middlewares-2.2.0.tgz#6835dd6d4f2fd975266376b45dcae0141320ae97"
+ integrity sha512-GHESQC+Y0PV98ZBoaC6br6cDOsNiM1Cu4UleGMqMWCXX03jIr3BoozYVrRkLVVAl4sC216chakMnZOu6SwNdGA==
+
redux-saga@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.1.3.tgz#9f3e6aebd3c994bbc0f6901a625f9a42b51d1112"
@@ -27716,6 +27864,13 @@ rsvp@^4.8.4:
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
+rtl-css-js@^1.16.1:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz#4b48b4354b0ff917a30488d95100fbf7219a3e80"
+ integrity sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
+
rtl-css-js@^1.9.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.13.1.tgz#80deabf6e8f36d6767d495cd3eb60fecb20c67e1"
@@ -28082,6 +28237,11 @@ screenfull@^5.0.0:
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.0.tgz#5c2010c0e84fd4157bf852877698f90b8cbe96f6"
integrity sha512-yShzhaIoE9OtOhWVyBBffA6V98CDCoyHTsp8228blmqYy1Z5bddzE/4FPiJKlr8DVR4VBiiUyfPzIQPIYDkeMA==
+screenfull@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba"
+ integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
+
secure-json-parse@^2.4.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.6.0.tgz#95d89f84adf32d76ff7800e68a673b129fe918b0"
@@ -29042,6 +29202,13 @@ stack-generator@^2.0.4:
dependencies:
stackframe "^1.1.0"
+stack-generator@^2.0.5:
+ version "2.0.10"
+ resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d"
+ integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==
+ dependencies:
+ stackframe "^1.3.4"
+
stack-trace@0.0.x:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
@@ -29069,6 +29236,11 @@ stackframe@^1.1.0, stackframe@^1.1.1:
resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71"
integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ==
+stackframe@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310"
+ integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
+
stacktrace-gps@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.0.3.tgz#b89f84cc13bb925b96607e737b617c8715facf57"
@@ -29077,6 +29249,14 @@ stacktrace-gps@^3.0.3:
source-map "0.5.6"
stackframe "^1.1.0"
+stacktrace-gps@^3.0.4:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz#0c40b24a9b119b20da4525c398795338966a2fb0"
+ integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==
+ dependencies:
+ source-map "0.5.6"
+ stackframe "^1.3.4"
+
stacktrace-js@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.1.tgz#ebdb0e9a16e6f171f96ca7878404e7f15c3d42ba"
@@ -29086,6 +29266,15 @@ stacktrace-js@^2.0.0:
stack-generator "^2.0.4"
stacktrace-gps "^3.0.3"
+stacktrace-js@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b"
+ integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==
+ dependencies:
+ error-stack-parser "^2.0.6"
+ stack-generator "^2.0.5"
+ stacktrace-gps "^3.0.4"
+
state-toggle@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.0.tgz#d20f9a616bb4f0c3b98b91922d25b640aa2bc425"
@@ -29247,7 +29436,7 @@ string-replace-loader@^2.2.0:
loader-utils "^1.2.3"
schema-utils "^1.0.0"
-"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -29265,6 +29454,15 @@ string-width@^1.0.1:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -29374,7 +29572,7 @@ stringify-object@^3.2.1:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -29388,6 +29586,13 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -29577,6 +29782,11 @@ stylis@4.3.1:
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb"
integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==
+stylis@^4.3.0:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444"
+ integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==
+
stylus-lookup@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-5.0.1.tgz#3c4d116c3b1e8e1a8169c0d9cd20e608595560f4"
@@ -32265,7 +32475,7 @@ workerpool@6.2.1:
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -32291,6 +32501,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"