mirror of
https://github.com/mathuo/dockview
synced 2025-03-09 23:42:05 +00:00
chore: docs
This commit is contained in:
parent
8b1499e89a
commit
861d13c4ad
@ -170,10 +170,10 @@ type AddPanelPositionUnion = {
|
|||||||
|
|
||||||
type AddPanelOptionsUnion = AddPanelFloatingGroupUnion | AddPanelPositionUnion;
|
type AddPanelOptionsUnion = AddPanelFloatingGroupUnion | AddPanelPositionUnion;
|
||||||
|
|
||||||
export type AddPanelOptions<P extends object = Parameters> = Omit<
|
export type AddPanelOptions<P extends object = Parameters> = {
|
||||||
PanelOptions<P>,
|
params?: P;
|
||||||
'component' | 'tabComponent'
|
id: string;
|
||||||
> & {
|
title?: string;
|
||||||
component: string;
|
component: string;
|
||||||
tabComponent?: string;
|
tabComponent?: string;
|
||||||
renderer?: DockviewPanelRenderer;
|
renderer?: DockviewPanelRenderer;
|
||||||
|
@ -15,10 +15,11 @@ export * from './panel/types';
|
|||||||
export * from './panel/componentFactory';
|
export * from './panel/componentFactory';
|
||||||
|
|
||||||
export * from './splitview/splitview';
|
export * from './splitview/splitview';
|
||||||
export * from './splitview/options';
|
export { SplitviewComponentOptions } from './splitview/options';
|
||||||
|
|
||||||
export * from './paneview/paneview';
|
export * from './paneview/paneview';
|
||||||
export * from './gridview/gridview';
|
export * from './gridview/gridview';
|
||||||
|
export { GridviewComponentOptions } from './gridview/options';
|
||||||
export * from './dockview/dockviewGroupPanelModel';
|
export * from './dockview/dockviewGroupPanelModel';
|
||||||
export * from './gridview/baseComponentGridview';
|
export * from './gridview/baseComponentGridview';
|
||||||
|
|
||||||
|
@ -15,10 +15,6 @@ export interface PanelViewInitParameters extends PanelInitParameters {
|
|||||||
accessor: SplitviewComponent;
|
accessor: SplitviewComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ISerializableView extends IView, IPanel {
|
|
||||||
init: (params: PanelViewInitParameters) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface SplitviewComponentOptions extends SplitViewOptions {
|
export interface SplitviewComponentOptions extends SplitViewOptions {
|
||||||
disableAutoResizing?: boolean;
|
disableAutoResizing?: boolean;
|
||||||
components?: {
|
components?: {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { ISerializableView, PanelViewInitParameters } from './options';
|
import { PanelViewInitParameters } from './options';
|
||||||
import {
|
import {
|
||||||
BasePanelView,
|
BasePanelView,
|
||||||
BasePanelViewExported,
|
BasePanelViewExported,
|
||||||
@ -19,7 +19,7 @@ export interface ISplitviewPanel
|
|||||||
|
|
||||||
export abstract class SplitviewPanel
|
export abstract class SplitviewPanel
|
||||||
extends BasePanelView<SplitviewPanelApiImpl>
|
extends BasePanelView<SplitviewPanelApiImpl>
|
||||||
implements ISerializableView, ISplitviewPanel
|
implements ISplitviewPanel
|
||||||
{
|
{
|
||||||
private _evaluatedMinimumSize = 0;
|
private _evaluatedMinimumSize = 0;
|
||||||
private _evaluatedMaximumSize = Number.POSITIVE_INFINITY;
|
private _evaluatedMaximumSize = Number.POSITIVE_INFINITY;
|
||||||
|
14
packages/docs/docs/api/dockview/groupApi.mdx
Normal file
14
packages/docs/docs/api/dockview/groupApi.mdx
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
title: Group API
|
||||||
|
sidebar_position: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
:::info
|
||||||
|
Use the group API sparingly. As you move panels, groups change and if you don't track this correctly you may encounter unexpected
|
||||||
|
behaviours. You should be able to achieve most things directly through the panel API.
|
||||||
|
:::
|
||||||
|
|
||||||
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
|
|
||||||
|
<DocRef declaration="DockviewGroupPanelApi" />
|
18
packages/docs/docs/api/dockview/options.mdx
Normal file
18
packages/docs/docs/api/dockview/options.mdx
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Options
|
||||||
|
sidebar_position: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="JavaScript">
|
||||||
|
<DocRef declaration="DockviewComponentOptions" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="React">
|
||||||
|
<DocRef declaration="IDockviewReactProps" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Overview
|
title: API
|
||||||
sidebar_position: 0
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: Panel API
|
title: Panel API
|
||||||
|
sidebar_position: 2
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
description: API
|
|
||||||
title: React Props
|
|
||||||
---
|
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
|
||||||
|
|
||||||
|
|
||||||
<DocRef declaration="IDockviewReactProps" />
|
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: "API"
|
title: "API"
|
||||||
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
18
packages/docs/docs/api/gridview/options.mdx
Normal file
18
packages/docs/docs/api/gridview/options.mdx
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Options
|
||||||
|
sidebar_position: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="JavaScript">
|
||||||
|
<DocRef declaration="GridviewComponentOptions" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="React">
|
||||||
|
<DocRef declaration="IGridviewReactProps" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: Panel API
|
title: Panel API
|
||||||
|
sidebar_position: 2
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
description: API
|
|
||||||
title: React Props
|
|
||||||
---
|
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
|
||||||
|
|
||||||
|
|
||||||
<DocRef declaration="IGridviewReactProps" />
|
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: "API"
|
title: "API"
|
||||||
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
18
packages/docs/docs/api/paneview/options.mdx
Normal file
18
packages/docs/docs/api/paneview/options.mdx
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Options
|
||||||
|
sidebar_position: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="JavaScript">
|
||||||
|
<DocRef declaration="PaneviewComponentOptions" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="React">
|
||||||
|
<DocRef declaration="IPaneviewReactProps" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: Panel API
|
title: Panel API
|
||||||
|
sidebar_position: 2
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
description: API
|
|
||||||
title: React Props
|
|
||||||
---
|
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
|
||||||
|
|
||||||
|
|
||||||
<DocRef declaration="IPaneviewReactProps" />
|
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: "API"
|
title: "API"
|
||||||
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
18
packages/docs/docs/api/splitview/options.mdx
Normal file
18
packages/docs/docs/api/splitview/options.mdx
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Options
|
||||||
|
sidebar_position: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="JavaScript">
|
||||||
|
<DocRef declaration="SplitviewComponentOptions" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
<FrameworkSpecific framework="React">
|
||||||
|
<DocRef declaration="ISplitviewReactProps" />
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
description: API
|
description: API
|
||||||
title: Panel API
|
title: Panel API
|
||||||
|
sidebar_position: 2
|
||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
description: API
|
|
||||||
title: React Props
|
|
||||||
---
|
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
|
||||||
|
|
||||||
|
|
||||||
<DocRef declaration="ISplitviewReactProps" />
|
|
24
packages/docs/docs/core/groups/move.mdx
Normal file
24
packages/docs/docs/core/groups/move.mdx
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
title: Move Group
|
||||||
|
sidebar_position: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
|
This section describes how you can move a group.
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
<DocRef declaration="DockviewGroupPanelApi" methods={["moveTo"]}/>
|
||||||
|
|
||||||
|
## Move a Group
|
||||||
|
|
||||||
|
You can move a group through the [Group API](/docs/api/dockview/groupApi) and you can find out how to move a Panel [here](/docs/core/panels/move).
|
||||||
|
|
||||||
|
```ts
|
||||||
|
panel.group.api.moveTo({ group, position, index });
|
||||||
|
```
|
||||||
|
|
||||||
|
## Live Example
|
||||||
|
|
||||||
|
To Be Completed...
|
@ -5,7 +5,10 @@ sidebar_position: 0
|
|||||||
|
|
||||||
This section provided a core overview.
|
This section provided a core overview.
|
||||||
|
|
||||||
Once you have created an dock you will want to store a reference to the [API](/docs/api/dockview/overview).
|
|
||||||
|
|
||||||
|
The component takes a collection of [Options](/docs/api/dockview/options) as inputs and
|
||||||
|
once you have created a dock you can store a reference to the [API](/docs/api/dockview/overview) that is created.
|
||||||
|
|
||||||
<FrameworkSpecific framework='React'>
|
<FrameworkSpecific framework='React'>
|
||||||
```tsx
|
```tsx
|
||||||
@ -21,3 +24,12 @@ function onReady(event: DockviewReadyEvent) {
|
|||||||
```
|
```
|
||||||
</FrameworkSpecific>
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
|
||||||
|
<FrameworkSpecific framework='JavaScript'>
|
||||||
|
```tsx
|
||||||
|
const component = new DockviewComponent({
|
||||||
|
/** options */
|
||||||
|
});
|
||||||
|
```
|
||||||
|
</FrameworkSpecific>
|
||||||
|
|
||||||
|
@ -9,95 +9,128 @@ This section describes how to add a new panel.
|
|||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
The API associated with opening a panel
|
|
||||||
|
|
||||||
<DocRef declaration="DockviewApi" methods={['addPanel']} />
|
<DocRef declaration="DockviewApi" methods={['addPanel']} />
|
||||||
|
|
||||||
## Open a panel
|
## Opening a Simple Panel
|
||||||
|
|
||||||
Using the dockview API you can access the `addPanel` method which returns an instance of the created panel.
|
The minimum options required to open a panel a unique `id` for the panel and the name of the `component` you want to render.
|
||||||
The minimum method signature is:
|
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel = api.addPanel({
|
const panel: IDockviewPanel = api.addPanel({
|
||||||
id: 'my_unique_panel_id',
|
id: 'my_unique_panel_id',
|
||||||
component: 'my_component',
|
component: 'my_component',
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
where `id` is the unique id of the panel and `component` is the implenentation which
|
> See [Overview](/docs/core/overview) to learn how to register components.
|
||||||
will be used to render the panel. You will have registered this using the `components` prop of the `DockviewReactComponent` component.
|
|
||||||
|
|
||||||
You can optionally provide a `tabComponent` parameters to the `addPanel` method which will render the tab using a custom renderer.
|
## Provide a custom Tab renderer
|
||||||
You will have registered this using the `tabComponents` prop of the `DockviewReactComponent` component.
|
|
||||||
|
:::info
|
||||||
|
You can override the default tab renderer through the [Options](/docs/api/dockview/options).
|
||||||
|
:::
|
||||||
|
|
||||||
|
To render a custom tab component you should specify the `tabComponent`.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel = api.addPanel({
|
const panel: IDockviewPanel = api.addPanel({
|
||||||
id: 'my_unique_panel_id',
|
id: 'my_unique_panel_id',
|
||||||
component: 'my_component',
|
component: 'my_component',
|
||||||
tabComponent: 'my_tab_component',
|
tabComponent: 'my_tab_component',
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
You can pass properties to the panel using the `params` key.
|
> See [Overview](/docs/core/overview) to learn how to register tab components.
|
||||||
You can update these properties through the panels `api` object and its `updateParameters` method.
|
|
||||||
|
## Provide custom Parameters
|
||||||
|
|
||||||
|
Using the `params` option you can specific a simple object that is accessible in both the panel and tab renderer.
|
||||||
|
To update these parameters after the panel has been created see [Update Panel](/docs/core/panels/update).
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel = api.addPanel({
|
const panel: IDockviewPanel = api.addPanel({
|
||||||
id: 'my_unique_panel_id',
|
id: 'my_unique_panel_id',
|
||||||
component: 'my_component',
|
component: 'my_component',
|
||||||
params: {
|
params: {
|
||||||
myCustomKey: 'my_custom_value',
|
myCustomKey: 'my_custom_value',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
panel.api.updateParameters({
|
|
||||||
myCustomKey: 'my_custom_value',
|
|
||||||
myOtherCustomKey: 'my_other_custom_key',
|
|
||||||
});
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note `updateParameters` does not accept partial parameter updates, you should call it with the entire set of parameters
|
## Rendering
|
||||||
> you want the panel to receive.
|
|
||||||
|
|
||||||
Finally `addPanel` accepts a `position` object which tells dockview where to place the panel.
|
Rendering is worthy of it's own page which can be found [here](/docs/core/panels/rendering).
|
||||||
|
|
||||||
- This object optionally accepts either a `referencePanel` or `referenceGroup` which can be the associated id as a string
|
## Positioning the Panel
|
||||||
or the panel/group object reference.
|
|
||||||
- This object accepts a `direction` property which dictates where,
|
|
||||||
relative to the provided reference the new panel will be placed.
|
|
||||||
|
|
||||||
> If neither a `referencePanel` or `referenceGroup` is provided then the `direction` will be treated as absolute.
|
### Relative to another Panel
|
||||||
|
|
||||||
> If no `direction` is provided the library will place the new panel in a pre-determined position.
|
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel = api.addPanel({
|
const panel2: IDockviewPanel = api.addPanel({
|
||||||
id: 'panel_1',
|
|
||||||
component: 'default',
|
|
||||||
});
|
|
||||||
|
|
||||||
const panel2 = api.addPanel({
|
|
||||||
id: 'panel_2',
|
id: 'panel_2',
|
||||||
component: 'default',
|
component: 'default',
|
||||||
position: {
|
position: {
|
||||||
referencePanel: panel1,
|
referencePanel: 'panel_1',
|
||||||
direction: 'right',
|
direction: 'above'
|
||||||
},
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
api.addPanel({
|
||||||
|
id: 'panel_3',
|
||||||
|
component: 'default',
|
||||||
|
position: {
|
||||||
|
referencePanel: panel2,
|
||||||
|
direction: 'above'
|
||||||
|
}
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
To add a floating panel you should include the `floating` variable which can be either a `boolean` or an object defining it's bounds.
|
### Relative to another Group
|
||||||
These bounds are relative to the dockview component.
|
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel1 = api.addPanel({
|
const panel2: IDockviewPanel = api.addPanel({
|
||||||
id: 'panel_2',
|
id: 'panel_2',
|
||||||
component: 'default',
|
component: 'default',
|
||||||
|
position: {
|
||||||
|
referenceGroup: 'panel_1',
|
||||||
|
direction: 'left'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const panel = api.addPanel({
|
||||||
|
id: 'panel_2',
|
||||||
|
component: 'default',
|
||||||
|
position: {
|
||||||
|
referenceGroup: panel2.group,
|
||||||
|
direction: 'left'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### Relative to the container
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const panel = api.addPanel({
|
||||||
|
id: 'panel_2',
|
||||||
|
component: 'default',
|
||||||
|
position: {
|
||||||
|
direction: 'right'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### Floating
|
||||||
|
|
||||||
|
You should specific the `floating` option which can be either `true` or an object describing the position of the floating group.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
api.addPanel({
|
||||||
|
id: 'panel_1',
|
||||||
|
component: 'default',
|
||||||
floating: true,
|
floating: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const panel2 = api.addPanel({
|
api.addPanel({
|
||||||
id: 'panel_2',
|
id: 'panel_2',
|
||||||
component: 'default',
|
component: 'default',
|
||||||
floating: { x: 10, y: 10, width: 300, height: 300 },
|
floating: { x: 10, y: 10, width: 300, height: 300 },
|
||||||
|
@ -3,9 +3,17 @@ title: Move Panel
|
|||||||
sidebar_position: 3
|
sidebar_position: 3
|
||||||
---
|
---
|
||||||
|
|
||||||
## Move panel
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
You can programatically move a panel using the panel `api`.
|
This section describes how you can move a panel to another panel or group.
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
<DocRef declaration="DockviewPanelApi" methods={["moveTo"]}/>
|
||||||
|
|
||||||
|
## Move a Panel
|
||||||
|
|
||||||
|
You can move a panel through the [Panel API](/docs/api/dockview/panelApi) and you can find out how to move a Group [here](/docs/core/groups/move).
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
panel.api.moveTo({ group, position, index });
|
panel.api.moveTo({ group, position, index });
|
||||||
@ -17,3 +25,7 @@ An equivalent method for moving groups is avaliable on the group `api`.
|
|||||||
const group = panel.api.group;
|
const group = panel.api.group;
|
||||||
group.api.moveTo({ group, position });
|
group.api.moveTo({ group, position });
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Live Example
|
||||||
|
|
||||||
|
To Be Completed...
|
||||||
|
@ -3,17 +3,27 @@ title: Remove Panel
|
|||||||
sidebar_position: 4
|
sidebar_position: 4
|
||||||
---
|
---
|
||||||
|
|
||||||
## Remove panel
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
|
||||||
You can programatically remove a panel using the panel `api`.
|
This section describes multiple ways to remove a panel.
|
||||||
|
|
||||||
|
## Remove a Panel using the Panel API
|
||||||
|
|
||||||
|
<DocRef declaration="DockviewPanelApi" methods={["close"]}/>
|
||||||
|
|
||||||
|
Calling `close` on the panel API is the easiest way to close a panel through code.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
panel.api.close();
|
panel.api.close();
|
||||||
```
|
```
|
||||||
|
|
||||||
Given a reference to the panel you can also use the component `api` to remove it.
|
## Remove a Panel using the API
|
||||||
|
<DocRef declaration="DockviewApi" methods={["removePanel"]}/>
|
||||||
|
|
||||||
|
Firstly, you can retrieve a reference to the panel given it's id and then you can
|
||||||
|
pass that reference into `removePanel` to remove the panel.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel = api.getPanel('myPanel');
|
const panel: IDockviewPanel = api.getPanel('myPanel');
|
||||||
api.removePanel(panel);
|
api.removePanel(panel);
|
||||||
```
|
```
|
||||||
|
@ -7,18 +7,66 @@ import { MultiFrameworkContainer } from '@site/src/components/ui/container';
|
|||||||
import DockviewRenderMode from '@site/sandboxes/rendermode-dockview/src/app';
|
import DockviewRenderMode from '@site/sandboxes/rendermode-dockview/src/app';
|
||||||
import RenderingDockview from '@site/sandboxes/rendering-dockview/src/app';
|
import RenderingDockview from '@site/sandboxes/rendering-dockview/src/app';
|
||||||
|
|
||||||
## Panel Rendering
|
Rendering type is an important consideration when creating your application and whether your panels should be destroyed when hidden.
|
||||||
|
|
||||||
## Render Mode
|
:::info
|
||||||
|
If you are looking for information on how to render **iframes** in Dockview please go the the [iframes](/docs/advanced/iframe) section.
|
||||||
|
:::
|
||||||
|
|
||||||
Dockview has two rendering modes `onlyWhenVisible` (default) and `always`. A rendering mode can be defined through the `renderer` prop to `DockviewReact` or at an individual panel level when added where
|
When a panel is selected all other panels in that group are not visible. The API does expose methods to determine whether your panel is visible or not
|
||||||
the panel declaration takes precedence if both are defined. Rendering modes defined at the panel level are persisted, those defined at the `DockviewReact` level are not persisted.
|
and the panel instance only ever destroyed when removed however the question still remains, what to do with the partial DOM tree that makes up your panel and there are two options the dock can take:
|
||||||
|
|
||||||
- `onlyWhenVisible` mode is the default mode. In this mode when a panel is no longer visible through either it's visiblity being hidden or it not being the active panel within a group the panels HTMLElement is removed
|
1. (*onlyWhenVisible*) Remove the element from the DOM tree to make space for the new panel.
|
||||||
from the DOM and any DOM state such as scrollbar positions will be lost. If you are using any ResizeObservers to measure size this will result both zero height and width as the HTMLElement no longer belongs to the DOM.
|
|
||||||
This design allows for maximum performance at some cost.
|
This will cause the element to loss any DOM-specific state such as scrollbar position and if you measure the size of any elements during this time you will mostly like see both a width and height of 0px,
|
||||||
- `always` mode. In this mode when panels become hidden the HTMLElement is not destroyed so all DOM state such as scrollbar positions will be maintained. This is implemented by rendering each panel as an absolutely positioned
|
this is also true for any active ResizeObservers.
|
||||||
HTMLElement and hidden the HTMLElement with `display: none` when it should be hidden.
|
|
||||||
|
```ts
|
||||||
|
api.addPanel({
|
||||||
|
id: 'my_unique_panel_id',
|
||||||
|
component: 'my_component',
|
||||||
|
renderer: 'always'
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
2. (*always*) Keep the DOM tree alive but hide it in order to allow the select panels content to show.
|
||||||
|
|
||||||
|
This approach will maintain any DOM-sepcific state you had and is essential if you require the native scrollbar position to be preserved.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
api.addPanel({
|
||||||
|
id: 'my_unique_panel_id',
|
||||||
|
component: 'my_component',
|
||||||
|
renderer: 'onlyWhenVisible'
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Both are valid use-cases therefore the dock allows you to choose your rendering mode, the default however is the first option since this is the most memory efficient solution.
|
||||||
|
|
||||||
|
> You can change the `defaultRenderer` in the Dock [Options](/docs/api/dockview/options).
|
||||||
|
|
||||||
|
:::info
|
||||||
|
The panel instance is only ever destroyed when it is removed from the dock allowing you to still run code associated with the panel when it is not visible.
|
||||||
|
The renderer only affects what happens to the DOM element.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Choose a Render Mode
|
||||||
|
|
||||||
|
```ts
|
||||||
|
api.addPanel({
|
||||||
|
id: 'my_unique_panel_id',
|
||||||
|
component: 'my_component',
|
||||||
|
renderer: 'always'
|
||||||
|
});
|
||||||
|
|
||||||
|
api.addPanel({
|
||||||
|
id: 'my_unique_panel_id',
|
||||||
|
component: 'my_component',
|
||||||
|
renderer: 'onlyWhenVisible'
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Live Example
|
||||||
|
|
||||||
<MultiFrameworkContainer
|
<MultiFrameworkContainer
|
||||||
height={500}
|
height={500}
|
||||||
|
@ -4,49 +4,43 @@ sidebar_position: 2
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
import { DocRef } from '@site/src/components/ui/reference/docRef';
|
||||||
|
import LiveExample from '@site/src/components/ui/exampleFrame';
|
||||||
|
|
||||||
This section describes how to update the parameters of a panel.
|
This section describes how to update the parameters of a panel.
|
||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
**Use this feature sparingly**: Anything you assign to the `params` options of a panel will be persisted.
|
**Use this feature sparingly**: Anything you assign to the `params` options of a panel will be saved when calling `api.toJSON()`.
|
||||||
Only use this to store small amounts of static view data.
|
Only use this to store small amounts of static view data.
|
||||||
**Do not** use this to pass application state.
|
**Do not** use this to store application state or dynamic panel state.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Panel API
|
## Methods
|
||||||
|
|
||||||
<DocRef declaration="DockviewPanelApi" methods={['updateParameters']} />
|
<DocRef declaration="DockviewPanelApi" methods={['updateParameters']} />
|
||||||
|
|
||||||
## Update Panel
|
## Updating parameters
|
||||||
|
|
||||||
You can programatically update the `params` passed through to the panel through the panal api using `api.updateParameters`.
|
:::info
|
||||||
|
If you want to set initial parameters when adding a panel see the [Add Panel](/docs/core/panels/add) section.
|
||||||
|
:::
|
||||||
|
|
||||||
|
You can update a panel through the [Panel API](/docs/api/dockview/panelApi).
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const panel = api.addPanel({
|
|
||||||
id: 'panel_1',
|
|
||||||
component: 'default',
|
|
||||||
params: {
|
|
||||||
keyA: 'valueA',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// ...
|
|
||||||
|
|
||||||
panel.api.updateParameters({
|
|
||||||
keyB: 'valueB',
|
|
||||||
});
|
|
||||||
|
|
||||||
// ...
|
|
||||||
|
|
||||||
panel.api.updateParameters({
|
panel.api.updateParameters({
|
||||||
keyA: 'anotherValueA',
|
keyA: 'anotherValueA',
|
||||||
|
keyB: 'valueB',
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
To delete a parameter you should pass a value of `undefined` for the key.
|
To delete a parameter you should pass a value of `undefined`.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
panel.api.updateParameters({
|
panel.api.updateParameters({
|
||||||
keyA: undefined, // this will delete 'keyA'.
|
keyA: undefined,
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Live Example
|
||||||
|
|
||||||
|
<LiveExample framework="react" id="dockview/update-parameters"/>
|
||||||
|
@ -260,6 +260,9 @@ const config = {
|
|||||||
id: 'announcementBar', // Increment on change
|
id: 'announcementBar', // Increment on change
|
||||||
content: `⭐️ If you like Dockview, give it a star on <a target="_blank" rel="noopener noreferrer" href="https://github.com/mathuo/dockview">GitHub</a>`,
|
content: `⭐️ If you like Dockview, give it a star on <a target="_blank" rel="noopener noreferrer" href="https://github.com/mathuo/dockview">GitHub</a>`,
|
||||||
},
|
},
|
||||||
|
tableOfContents: {
|
||||||
|
maxHeadingLevel: 5,
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^3.1.0",
|
"@docusaurus/core": "^3.1.1",
|
||||||
"@docusaurus/module-type-aliases": "^3.1.0",
|
"@docusaurus/module-type-aliases": "^3.1.1",
|
||||||
"@docusaurus/preset-classic": "^3.1.0",
|
"@docusaurus/preset-classic": "^3.1.1",
|
||||||
"@mdx-js/react": "^3.0.0",
|
"@mdx-js/react": "^3.0.0",
|
||||||
"@minoru/react-dnd-treeview": "^3.4.4",
|
"@minoru/react-dnd-treeview": "^3.4.4",
|
||||||
"@radix-ui/react-icons": "^1.3.0",
|
"@radix-ui/react-icons": "^1.3.0",
|
||||||
|
@ -5,6 +5,7 @@ import {
|
|||||||
IDockviewPanelHeaderProps,
|
IDockviewPanelHeaderProps,
|
||||||
IDockviewPanelProps,
|
IDockviewPanelProps,
|
||||||
IDockviewHeaderActionsProps,
|
IDockviewHeaderActionsProps,
|
||||||
|
DockviewApi,
|
||||||
} from 'dockview';
|
} from 'dockview';
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import * as ReactDOM from 'react-dom';
|
import * as ReactDOM from 'react-dom';
|
||||||
@ -38,6 +39,17 @@ const components = {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
iframe: () => {
|
||||||
|
return (
|
||||||
|
<iframe
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
height: '100%',
|
||||||
|
}}
|
||||||
|
src="https://dockview.dev"
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const headerComponents = {
|
const headerComponents = {
|
||||||
@ -114,7 +126,7 @@ const RightControls = (props: IDockviewHeaderActionsProps) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClick2 = () => {
|
const onClick2 = () => {
|
||||||
if (props.api.location !== 'popout') {
|
if (props.api.location.type !== 'popout') {
|
||||||
props.containerApi.addPopoutGroup(props.group);
|
props.containerApi.addPopoutGroup(props.group);
|
||||||
} else {
|
} else {
|
||||||
props.api.moveTo({ position: 'right' });
|
props.api.moveTo({ position: 'right' });
|
||||||
@ -198,10 +210,21 @@ const PrefixHeaderControls = (props: IDockviewHeaderActionsProps) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const DockviewDemo = (props: { theme?: string }) => {
|
const DockviewDemo = (props: { theme?: string }) => {
|
||||||
|
const [api, setApi] = React.useState<DockviewApi>();
|
||||||
|
|
||||||
const onReady = (event: DockviewReadyEvent) => {
|
const onReady = (event: DockviewReadyEvent) => {
|
||||||
|
setApi(event.api);
|
||||||
|
|
||||||
|
const value = localStorage.getItem('dv-demo-app');
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
event.api.fromJSON(JSON.parse(value));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const panel1 = event.api.addPanel({
|
const panel1 = event.api.addPanel({
|
||||||
id: 'panel_1',
|
id: 'panel_1',
|
||||||
component: 'default',
|
component: 'iframe',
|
||||||
|
renderer: 'always',
|
||||||
title: 'Panel 1',
|
title: 'Panel 1',
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -258,6 +281,53 @@ const DockviewDemo = (props: { theme?: string }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
<div
|
||||||
|
style={{ height: '100%', display: 'flex', flexDirection: 'column' }}
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
if (!api) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const value = localStorage.getItem('dv-demo-app');
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
api.fromJSON(JSON.parse(value));
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{'Load'}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
if (!api) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
localStorage.setItem(
|
||||||
|
'dv-demo-app',
|
||||||
|
JSON.stringify(api.toJSON())
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{'Save'}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
api?.clear();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{'Clear'}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
localStorage.removeItem('dv-demo-app');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{'Reset'}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div style={{ flexGrow: 1 }}>
|
||||||
<DockviewReact
|
<DockviewReact
|
||||||
components={components}
|
components={components}
|
||||||
defaultTabComponent={headerComponents.default}
|
defaultTabComponent={headerComponents.default}
|
||||||
@ -267,6 +337,8 @@ const DockviewDemo = (props: { theme?: string }) => {
|
|||||||
onReady={onReady}
|
onReady={onReady}
|
||||||
className={props.theme || 'dockview-theme-abyss'}
|
className={props.theme || 'dockview-theme-abyss'}
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"name": "dockview.update-parameters",
|
||||||
|
"description": "",
|
||||||
|
"keywords": [
|
||||||
|
"dockview"
|
||||||
|
],
|
||||||
|
"version": "1.0.0",
|
||||||
|
"main": "src/index.tsx",
|
||||||
|
"dependencies": {
|
||||||
|
"dockview": "*",
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/react": "^18.0.28",
|
||||||
|
"@types/react-dom": "^18.0.11",
|
||||||
|
"typescript": "^4.9.5",
|
||||||
|
"react-scripts": "*"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-scripts start",
|
||||||
|
"build": "react-scripts build",
|
||||||
|
"test": "react-scripts test --env=jsdom",
|
||||||
|
"eject": "react-scripts eject"
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not ie <= 11",
|
||||||
|
"not op_mini all"
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="theme-color" content="#000000">
|
||||||
|
<!--
|
||||||
|
manifest.json provides metadata used when your web app is added to the
|
||||||
|
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
|
||||||
|
-->
|
||||||
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
|
||||||
|
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
|
||||||
|
<!--
|
||||||
|
Notice the use of %PUBLIC_URL% in the tags above.
|
||||||
|
It will be replaced with the URL of the `public` folder during the build.
|
||||||
|
Only files inside the `public` folder can be referenced from the HTML.
|
||||||
|
|
||||||
|
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||||
|
work correctly both with client-side routing and a non-root public URL.
|
||||||
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
|
-->
|
||||||
|
<title>React App</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<noscript>
|
||||||
|
You need to enable JavaScript to run this app.
|
||||||
|
</noscript>
|
||||||
|
<div id="root"></div>
|
||||||
|
<!--
|
||||||
|
This HTML file is a template.
|
||||||
|
If you open it directly in the browser, you will see an empty page.
|
||||||
|
|
||||||
|
You can add webfonts, meta tags, or analytics to this file.
|
||||||
|
The build step will place the bundled scripts into the <body> tag.
|
||||||
|
|
||||||
|
To begin the development, run `npm start` or `yarn start`.
|
||||||
|
To create a production bundle, use `npm run build` or `yarn build`.
|
||||||
|
-->
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,85 @@
|
|||||||
|
import {
|
||||||
|
DockviewReact,
|
||||||
|
DockviewReadyEvent,
|
||||||
|
IDockviewPanelHeaderProps,
|
||||||
|
IDockviewPanelProps,
|
||||||
|
} from 'dockview';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
|
interface CustomParams {
|
||||||
|
myValue: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
const components = {
|
||||||
|
default: (props: IDockviewPanelProps<CustomParams>) => {
|
||||||
|
const [running, setRunning] = React.useState<boolean>(false);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (!running) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const interval = setInterval(() => {
|
||||||
|
props.api.updateParameters({ myValue: Date.now() });
|
||||||
|
}, 1000);
|
||||||
|
props.api.updateParameters({ myValue: Date.now() });
|
||||||
|
return () => {
|
||||||
|
clearInterval(interval);
|
||||||
|
};
|
||||||
|
}, [running]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div style={{ padding: '20px', color: 'white' }}>
|
||||||
|
<div>{props.api.title}</div>
|
||||||
|
<button onClick={() => setRunning(!running)}>
|
||||||
|
{running ? 'Stop' : 'Start'}
|
||||||
|
</button>
|
||||||
|
<span>{`value: ${props.params.myValue}`}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const tabComponents = {
|
||||||
|
default: (props: IDockviewPanelHeaderProps<CustomParams>) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<div>{`custom tab: ${props.api.title}`}</div>
|
||||||
|
<span>{`value: ${props.params.myValue}`}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const App: React.FC = (props: { theme?: string }) => {
|
||||||
|
const onReady = (event: DockviewReadyEvent) => {
|
||||||
|
event.api.addPanel({
|
||||||
|
id: 'panel_1',
|
||||||
|
component: 'default',
|
||||||
|
tabComponent: 'default',
|
||||||
|
params: {
|
||||||
|
myValue: Date.now(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
event.api.addPanel({
|
||||||
|
id: 'panel_2',
|
||||||
|
component: 'default',
|
||||||
|
tabComponent: 'default',
|
||||||
|
params: {
|
||||||
|
myValue: Date.now(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<DockviewReact
|
||||||
|
components={components}
|
||||||
|
tabComponents={tabComponents}
|
||||||
|
onReady={onReady}
|
||||||
|
className={props.theme || 'dockview-theme-abyss'}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default App;
|
@ -0,0 +1,20 @@
|
|||||||
|
import { StrictMode } from 'react';
|
||||||
|
import * as ReactDOMClient from 'react-dom/client';
|
||||||
|
import './styles.css';
|
||||||
|
import 'dockview/dist/styles/dockview.css';
|
||||||
|
|
||||||
|
import App from './app';
|
||||||
|
|
||||||
|
const rootElement = document.getElementById('root');
|
||||||
|
|
||||||
|
if (rootElement) {
|
||||||
|
const root = ReactDOMClient.createRoot(rootElement);
|
||||||
|
|
||||||
|
root.render(
|
||||||
|
<StrictMode>
|
||||||
|
<div className="app">
|
||||||
|
<App />
|
||||||
|
</div>
|
||||||
|
</StrictMode>
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
body {
|
||||||
|
margin: 0px;
|
||||||
|
color: white;
|
||||||
|
font-family: sans-serif;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#root {
|
||||||
|
height: 100vh;
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "build/dist",
|
||||||
|
"module": "esnext",
|
||||||
|
"target": "es5",
|
||||||
|
"lib": ["es6", "dom"],
|
||||||
|
"sourceMap": true,
|
||||||
|
"allowJs": true,
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"rootDir": "src",
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"noImplicitThis": true,
|
||||||
|
"noImplicitAny": true,
|
||||||
|
"strictNullChecks": true
|
||||||
|
}
|
||||||
|
}
|
28
packages/docs/src/components/ui/exampleFrame.tsx
Normal file
28
packages/docs/src/components/ui/exampleFrame.tsx
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
|
const ExampleFrame = (props: {
|
||||||
|
framework: string;
|
||||||
|
id: string;
|
||||||
|
height?: string;
|
||||||
|
}) => {
|
||||||
|
const Component = React.useMemo(
|
||||||
|
() =>
|
||||||
|
React.lazy(
|
||||||
|
() =>
|
||||||
|
import(
|
||||||
|
`../../../sandboxes/${props.framework}/${props.id}/src/app`
|
||||||
|
)
|
||||||
|
),
|
||||||
|
[props.framework, props.id]
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<React.Suspense>
|
||||||
|
<div style={{ height: props.height ?? '500px' }}>
|
||||||
|
<Component />
|
||||||
|
</div>
|
||||||
|
</React.Suspense>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ExampleFrame;
|
@ -7,7 +7,8 @@ export interface DocRefProps {
|
|||||||
methods?: string[];
|
methods?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
import docsJson from '../../../generated/api.output.json';
|
import docsJson_ from '../../../generated/api.output.json';
|
||||||
|
const docsJson = docsJson_ as any as DocsJson;
|
||||||
|
|
||||||
type DocsContent = { kind: string; text: string; tag?: string };
|
type DocsContent = { kind: string; text: string; tag?: string };
|
||||||
type DocsTag = { tag: string; content: DocsContent[] };
|
type DocsTag = { tag: string; content: DocsContent[] };
|
||||||
@ -15,13 +16,19 @@ type DocsComment = {
|
|||||||
summary?: DocsContent[];
|
summary?: DocsContent[];
|
||||||
blockTags?: DocsTag[];
|
blockTags?: DocsTag[];
|
||||||
};
|
};
|
||||||
type DocsJson = {
|
type Doc = {
|
||||||
[index: string]: Array<{
|
|
||||||
name: string;
|
name: string;
|
||||||
code: string;
|
code: string;
|
||||||
comment?: DocsComment;
|
comment?: DocsComment;
|
||||||
kind: 'accessor' | 'property' | 'method';
|
kind: 'accessor' | 'property' | 'method';
|
||||||
}>;
|
pieces: string[];
|
||||||
|
};
|
||||||
|
type DocsJson = {
|
||||||
|
[index: string]: {
|
||||||
|
kind: string;
|
||||||
|
metadata?: Doc;
|
||||||
|
children: Doc[];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const Text = (props: { content: DocsContent[] }) => {
|
export const Text = (props: { content: DocsContent[] }) => {
|
||||||
@ -74,24 +81,25 @@ export const Markdown = (props: { children: string }) => {
|
|||||||
return <span>{props.children}</span>;
|
return <span>{props.children}</span>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DocRef = (props: DocRefProps) => {
|
const Piece = (props: { piece: string }) => {
|
||||||
const docs = React.useMemo(
|
const item = docsJson[props.piece];
|
||||||
() => (docsJson as DocsJson)[props.declaration],
|
|
||||||
[props.declaration]
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!docs) {
|
if (!item) {
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (item.kind === 'interface') {
|
||||||
<table className="doc-ref-table">
|
return;
|
||||||
<tbody>
|
|
||||||
{docs.map((doc) => {
|
|
||||||
if (props.methods && !props.methods.includes(doc.name)) {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!item.metadata?.code) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return <CodeBlock language="tsx">{item.metadata.code}</CodeBlock>;
|
||||||
|
};
|
||||||
|
|
||||||
|
const Row = (props: { doc: Doc }) => {
|
||||||
return (
|
return (
|
||||||
<tr>
|
<tr>
|
||||||
<th
|
<th
|
||||||
@ -114,7 +122,7 @@ export const DocRef = (props: DocRefProps) => {
|
|||||||
fontSize: '1.2em',
|
fontSize: '1.2em',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{doc.name}
|
{props.doc.name}
|
||||||
</h6>
|
</h6>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
@ -145,17 +153,54 @@ export const DocRef = (props: DocRefProps) => {
|
|||||||
{/* <div>{'-'}</div> */}
|
{/* <div>{'-'}</div> */}
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
{doc.comment && (
|
{props.doc.comment && (
|
||||||
<Summary summary={doc.comment} />
|
<Summary summary={props.doc.comment} />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<CodeBlock language="tsx">
|
<CodeBlock language="tsx">{props.doc.code}</CodeBlock>
|
||||||
{doc.code}
|
|
||||||
</CodeBlock>
|
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
);
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const DocRef = (props: DocRefProps) => {
|
||||||
|
const docs = React.useMemo(
|
||||||
|
() => (docsJson as DocsJson)[props.declaration],
|
||||||
|
[props.declaration]
|
||||||
|
);
|
||||||
|
|
||||||
|
const filteredDocs = React.useMemo(
|
||||||
|
() =>
|
||||||
|
docs?.children?.filter((child) => {
|
||||||
|
if (props.methods && !props.methods.includes(child.name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
[docs]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!docs) {
|
||||||
|
return <span>{`Failed to find docs for '${props.declaration}'`}</span>;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<table className="doc-ref-table">
|
||||||
|
<tbody>
|
||||||
|
{filteredDocs.map((doc, i) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Row key={i} doc={doc} />
|
||||||
|
{/* {doc.pieces?.map((piece) => (
|
||||||
|
<tr>
|
||||||
|
<th colSpan={2}>
|
||||||
|
<Piece piece={piece} />
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
))} */}
|
||||||
|
</>
|
||||||
|
);
|
||||||
})}
|
})}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
File diff suppressed because it is too large
Load Diff
232
scripts/docs.mjs
232
scripts/docs.mjs
@ -67,8 +67,9 @@ const dockviewCore = content.children.find(
|
|||||||
const dockview = content.children.find((child) => child.name === 'dockview');
|
const dockview = content.children.find((child) => child.name === 'dockview');
|
||||||
|
|
||||||
const declarations = [dockviewCore, dockview]
|
const declarations = [dockviewCore, dockview]
|
||||||
.flatMap((item) =>
|
.flatMap(
|
||||||
item.children.filter((child) => DOCUMENT_LIST.includes(child.name))
|
(item) => item.children
|
||||||
|
// .filter((child) => DOCUMENT_LIST.includes(child.name))
|
||||||
)
|
)
|
||||||
.filter(Boolean);
|
.filter(Boolean);
|
||||||
|
|
||||||
@ -93,44 +94,77 @@ function parseType(obj) {
|
|||||||
return `${obj.qualifiedName ?? obj.name}${parseTypeArguments(obj)}`;
|
return `${obj.qualifiedName ?? obj.name}${parseTypeArguments(obj)}`;
|
||||||
case 'array':
|
case 'array':
|
||||||
return `${parseType(obj.elementType)}[]`;
|
return `${parseType(obj.elementType)}[]`;
|
||||||
|
case 'intersection':
|
||||||
|
return obj.types.map(parseType).reverse().join(' & ');
|
||||||
|
case 'predicate':
|
||||||
|
return `${obj.name} is ${parseType(obj.targetType)}`;
|
||||||
|
case 'tuple':
|
||||||
|
return `[${obj.elements.map(parseType)}]`;
|
||||||
default:
|
default:
|
||||||
throw new Error(`unhandled type ${obj.type}`);
|
throw new Error(`unhandled type ${obj.type}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function extractPiecesFromType(obj) {
|
||||||
|
if (obj.type === 'reference' && obj.package?.startsWith('dockview-')) {
|
||||||
|
return obj.name;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
function parse(data) {
|
function parse(data) {
|
||||||
const { name, comment, flags } = data;
|
const { name, comment, flags } = data;
|
||||||
|
|
||||||
let code = '';
|
let code = '';
|
||||||
|
const pieces = [];
|
||||||
|
|
||||||
switch (data.kind) {
|
switch (data.kind) {
|
||||||
case ReflectionKind.Accessor: // 262144
|
case ReflectionKind.Accessor: // 262144
|
||||||
|
if (!data.getSignature) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
const getSignature = parse(data.getSignature);
|
const getSignature = parse(data.getSignature);
|
||||||
code += getSignature.code;
|
code += getSignature.code;
|
||||||
|
pieces.push(...getSignature.pieces);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name,
|
name,
|
||||||
code,
|
code,
|
||||||
kind: 'accessor',
|
kind: 'accessor',
|
||||||
comment: getSignature.comment,
|
comment: getSignature.comment,
|
||||||
|
pieces,
|
||||||
};
|
};
|
||||||
case ReflectionKind.Method: // 2048
|
case ReflectionKind.Method: // 2048
|
||||||
if (data.signatures.length > 1) {
|
const methodSignature = data.signatures.map((signature) =>
|
||||||
throw new Error('unhandled');
|
parse(signature)
|
||||||
}
|
);
|
||||||
|
pieces.push(...methodSignature.flatMap((_) => _.pieces));
|
||||||
|
|
||||||
const signature = parse(data.signatures[0]);
|
code += methodSignature
|
||||||
|
.map((signature) => signature.code)
|
||||||
|
.join('\n');
|
||||||
|
|
||||||
code += signature.code;
|
return {
|
||||||
|
name,
|
||||||
return { name, code, kind: 'method', comment: signature.comment };
|
code,
|
||||||
|
kind: 'method',
|
||||||
|
comment: data.signatures[0].comment,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
case ReflectionKind.Property: // 1024
|
case ReflectionKind.Property: // 1024
|
||||||
code += parseType(data.type);
|
code += parseType(data.type);
|
||||||
|
pieces.push(extractPiecesFromType(data.type));
|
||||||
|
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
code,
|
||||||
|
kind: 'property',
|
||||||
|
flags,
|
||||||
|
comment,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
|
||||||
return { name, code, kind: 'property', flags, comment };
|
|
||||||
case ReflectionKind.Constructor: // 512
|
|
||||||
// don't care for constrcutors
|
|
||||||
return null;
|
|
||||||
case ReflectionKind.Parameter: // 32768
|
case ReflectionKind.Parameter: // 32768
|
||||||
code += `${name}`;
|
code += `${name}`;
|
||||||
|
|
||||||
@ -140,10 +174,12 @@ function parse(data) {
|
|||||||
code += ': ';
|
code += ': ';
|
||||||
|
|
||||||
code += parseType(data.type);
|
code += parseType(data.type);
|
||||||
|
pieces.push(extractPiecesFromType(data.type));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name,
|
name,
|
||||||
code,
|
code,
|
||||||
|
pieces,
|
||||||
};
|
};
|
||||||
case ReflectionKind.TypeLiteral: // 65536
|
case ReflectionKind.TypeLiteral: // 65536
|
||||||
if (Array.isArray(data.children)) {
|
if (Array.isArray(data.children)) {
|
||||||
@ -155,7 +191,10 @@ function parse(data) {
|
|||||||
if (child.flags.isOptional) {
|
if (child.flags.isOptional) {
|
||||||
code += '?';
|
code += '?';
|
||||||
}
|
}
|
||||||
code += `: ${parse(child).code}`;
|
const childData = parse(child);
|
||||||
|
pieces.push(...childData.pieces);
|
||||||
|
|
||||||
|
code += `: ${childData.code}`;
|
||||||
return code;
|
return code;
|
||||||
})
|
})
|
||||||
.join(', ');
|
.join(', ');
|
||||||
@ -163,23 +202,34 @@ function parse(data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(data.signatures)) {
|
if (Array.isArray(data.signatures)) {
|
||||||
code += data.signatures
|
const signatures = data.signatures.map((signature) =>
|
||||||
.map((signature) => parse(signature).code)
|
parse(signature)
|
||||||
|
);
|
||||||
|
code += signatures
|
||||||
|
.map((signature) => signature.code)
|
||||||
.join(', ');
|
.join(', ');
|
||||||
|
pieces.push(...signatures.flatMap((_) => _.pieces));
|
||||||
}
|
}
|
||||||
|
|
||||||
return { name, code };
|
return { name, code, pieces };
|
||||||
case ReflectionKind.CallSignature: // 4096
|
case ReflectionKind.CallSignature: // 4096
|
||||||
// don't care for constrcutors
|
// don't care for constrcutors
|
||||||
|
|
||||||
if (Array.isArray(data.typeParameter)) {
|
if (Array.isArray(data.typeParameter)) {
|
||||||
code += `<${data.typeParameter.map((typeParameter) => {
|
code += `<${data.typeParameter.map((typeParameter) => {
|
||||||
let type = `${typeParameter.name} extends ${parseType(
|
let type = `${typeParameter.name}`;
|
||||||
typeParameter.type
|
|
||||||
)}`;
|
if (typeParameter.type) {
|
||||||
|
type += ` extends ${parseType(typeParameter.type)}`;
|
||||||
|
|
||||||
|
pieces.push(extractPiecesFromType(typeParameter.type));
|
||||||
|
}
|
||||||
|
|
||||||
if (typeParameter.default) {
|
if (typeParameter.default) {
|
||||||
type += ` = ${typeParameter.default.name}`;
|
type += ` = ${typeParameter.default.name}`;
|
||||||
|
pieces.push(
|
||||||
|
extractPiecesFromType(typeParameter.default)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
@ -189,42 +239,170 @@ function parse(data) {
|
|||||||
code += '(';
|
code += '(';
|
||||||
|
|
||||||
if (Array.isArray(data.parameters)) {
|
if (Array.isArray(data.parameters)) {
|
||||||
code += `${data.parameters
|
const parameters = data.parameters.map((parameter) =>
|
||||||
.map((parameter) => parse(parameter).code)
|
parse(parameter)
|
||||||
|
);
|
||||||
|
code += `${parameters
|
||||||
|
.map((parameter) => parameter.code)
|
||||||
.join(', ')}`;
|
.join(', ')}`;
|
||||||
|
pieces.push(...parameters.flatMap((_) => _.pieces));
|
||||||
}
|
}
|
||||||
|
|
||||||
code += '): ';
|
code += '): ';
|
||||||
|
|
||||||
code += parseType(data.type);
|
code += parseType(data.type);
|
||||||
|
pieces.push(extractPiecesFromType(data.type));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name,
|
name,
|
||||||
comment,
|
comment,
|
||||||
code,
|
code,
|
||||||
|
pieces,
|
||||||
};
|
};
|
||||||
case ReflectionKind.GetSignature: // 524288
|
case ReflectionKind.GetSignature: // 524288
|
||||||
code += parseType(data.type);
|
code += parseType(data.type);
|
||||||
|
pieces.push(extractPiecesFromType(data.type));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name,
|
name,
|
||||||
comment,
|
comment,
|
||||||
code,
|
code,
|
||||||
|
pieces,
|
||||||
};
|
};
|
||||||
|
case ReflectionKind.Function: // 64
|
||||||
|
if (data.signatures.length > 1) {
|
||||||
|
throw new Error('unhandled');
|
||||||
|
}
|
||||||
|
const functionSignature = parse(data.signatures[0]);
|
||||||
|
pieces.push(...functionSignature.pieces);
|
||||||
|
|
||||||
|
code += functionSignature.code;
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
case ReflectionKind.Variable: // 32
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
case ReflectionKind.EnumMember: // 16
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
case ReflectionKind.Interface: // 16
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
case ReflectionKind.ConstructorSignature: // 16384
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
case ReflectionKind.Constructor: // 512
|
||||||
|
// don't care for constrcutors
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
|
case ReflectionKind.TypeAlias: // 2097152
|
||||||
|
if (Array.isArray(data.typeParameter)) {
|
||||||
|
code += `<${data.typeParameter.map((typeParameter) => {
|
||||||
|
let type = `${typeParameter.name}`;
|
||||||
|
|
||||||
|
if (typeParameter.type) {
|
||||||
|
type += ` extends ${parseType(typeParameter.type)}`;
|
||||||
|
|
||||||
|
pieces.push(extractPiecesFromType(typeParameter.type));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeParameter.default) {
|
||||||
|
type += ` = ${typeParameter.default.name}`;
|
||||||
|
pieces.push(
|
||||||
|
extractPiecesFromType(typeParameter.default)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return type;
|
||||||
|
})}>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
code += parseType(data.type);
|
||||||
|
pieces.push(extractPiecesFromType(data.type));
|
||||||
|
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
comment,
|
||||||
|
code,
|
||||||
|
pieces,
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
throw new Error(`unhandled kind ${data.kind}`);
|
throw new Error(`unhandled kind ${data.kind}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseDeclarationMetadata(declaration) {
|
||||||
|
switch (declaration.kind) {
|
||||||
|
case ReflectionKind.Namespace:
|
||||||
|
return { kind: 'namespace' };
|
||||||
|
case ReflectionKind.Variable:
|
||||||
|
return { kind: 'variable' };
|
||||||
|
case ReflectionKind.Enum:
|
||||||
|
return { kind: 'enum' };
|
||||||
|
case ReflectionKind.Function:
|
||||||
|
return { kind: 'function' };
|
||||||
|
case ReflectionKind.Class:
|
||||||
|
return { kind: 'class' };
|
||||||
|
case ReflectionKind.Interface:
|
||||||
|
return { kind: 'interface' };
|
||||||
|
case ReflectionKind.TypeAlias:
|
||||||
|
return { kind: 'typeAlias' };
|
||||||
|
default:
|
||||||
|
throw new Error(`unhandled declaration kind ${declaration.kind}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function createDocument(declarations) {
|
function createDocument(declarations) {
|
||||||
const documentation = {};
|
const documentation = {};
|
||||||
|
|
||||||
for (const declaration of declarations) {
|
for (const declaration of declarations) {
|
||||||
const { children, name } = declaration;
|
const { children, name } = declaration;
|
||||||
|
|
||||||
documentation[name] = [];
|
/**
|
||||||
|
* 4: Namespace
|
||||||
|
* 8: Enum
|
||||||
|
* 64: Function
|
||||||
|
* 128: Class
|
||||||
|
* 256: Interface
|
||||||
|
* 2097152: TypeAlias
|
||||||
|
*/
|
||||||
|
|
||||||
|
const metadata = parseDeclarationMetadata(declaration);
|
||||||
|
|
||||||
|
documentation[name] = {
|
||||||
|
...metadata,
|
||||||
|
children: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!children) {
|
||||||
|
documentation[name].metadata = parse(declaration);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (children) {
|
||||||
for (const child of children) {
|
for (const child of children) {
|
||||||
try {
|
try {
|
||||||
const { flags } = child;
|
const { flags } = child;
|
||||||
@ -234,8 +412,13 @@ function createDocument(declarations) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const output = parse(child);
|
const output = parse(child);
|
||||||
|
|
||||||
if (output) {
|
if (output) {
|
||||||
documentation[name].push(output);
|
output.pieces = Array.from(new Set(output.pieces))
|
||||||
|
.filter(Boolean)
|
||||||
|
.sort();
|
||||||
|
|
||||||
|
documentation[name].children.push(output);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('error', err, JSON.stringify(child, null, 4));
|
console.error('error', err, JSON.stringify(child, null, 4));
|
||||||
@ -243,6 +426,7 @@ function createDocument(declarations) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return documentation;
|
return documentation;
|
||||||
}
|
}
|
||||||
|
354
yarn.lock
354
yarn.lock
@ -2059,10 +2059,10 @@
|
|||||||
"@docsearch/css" "3.5.2"
|
"@docsearch/css" "3.5.2"
|
||||||
algoliasearch "^4.19.1"
|
algoliasearch "^4.19.1"
|
||||||
|
|
||||||
"@docusaurus/core@3.1.0", "@docusaurus/core@^3.1.0":
|
"@docusaurus/core@3.1.1", "@docusaurus/core@^3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.1.0.tgz#b66e7eaf867c1f44738d725d217a1c0e879629d7"
|
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.1.1.tgz#29ce8df7a3d3d12ee8962d6d86133b87235ff17b"
|
||||||
integrity sha512-GWudMGYA9v26ssbAWJNfgeDZk+lrudUTclLPRsmxiknEBk7UMp7Rglonhqbsf3IKHOyHkMU4Fr5jFyg5SBx9jQ==
|
integrity sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/core" "^7.23.3"
|
"@babel/core" "^7.23.3"
|
||||||
"@babel/generator" "^7.23.3"
|
"@babel/generator" "^7.23.3"
|
||||||
@ -2074,13 +2074,13 @@
|
|||||||
"@babel/runtime" "^7.22.6"
|
"@babel/runtime" "^7.22.6"
|
||||||
"@babel/runtime-corejs3" "^7.22.6"
|
"@babel/runtime-corejs3" "^7.22.6"
|
||||||
"@babel/traverse" "^7.22.8"
|
"@babel/traverse" "^7.22.8"
|
||||||
"@docusaurus/cssnano-preset" "3.1.0"
|
"@docusaurus/cssnano-preset" "3.1.1"
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/mdx-loader" "3.1.0"
|
"@docusaurus/mdx-loader" "3.1.1"
|
||||||
"@docusaurus/react-loadable" "5.5.2"
|
"@docusaurus/react-loadable" "5.5.2"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-common" "3.1.0"
|
"@docusaurus/utils-common" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
"@slorber/static-site-generator-webpack-plugin" "^4.0.7"
|
"@slorber/static-site-generator-webpack-plugin" "^4.0.7"
|
||||||
"@svgr/webpack" "^6.5.1"
|
"@svgr/webpack" "^6.5.1"
|
||||||
autoprefixer "^10.4.14"
|
autoprefixer "^10.4.14"
|
||||||
@ -2134,34 +2134,34 @@
|
|||||||
webpack-merge "^5.9.0"
|
webpack-merge "^5.9.0"
|
||||||
webpackbar "^5.0.2"
|
webpackbar "^5.0.2"
|
||||||
|
|
||||||
"@docusaurus/cssnano-preset@3.1.0":
|
"@docusaurus/cssnano-preset@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.0.tgz#b3fe7134cc4d0c1950eeb1c940089a190591ad4e"
|
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.1.tgz#03a4cb8e6d41654d7ff5ed79fddd73fd224feea4"
|
||||||
integrity sha512-ned7qsgCqSv/e7KyugFNroAfiszuxLwnvMW7gmT2Ywxb/Nyt61yIw7KHyAZCMKglOalrqnYA4gMhLUCK/mVePA==
|
integrity sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-preset-advanced "^5.3.10"
|
cssnano-preset-advanced "^5.3.10"
|
||||||
postcss "^8.4.26"
|
postcss "^8.4.26"
|
||||||
postcss-sort-media-queries "^4.4.1"
|
postcss-sort-media-queries "^4.4.1"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/logger@3.1.0":
|
"@docusaurus/logger@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.1.0.tgz#eef6475c2d59a3ae7e138ac1f60007d6fafd76b0"
|
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.1.1.tgz#423e8270c00a57b1b3a0cc8a3ee0a4c522a68387"
|
||||||
integrity sha512-p740M+HCst1VnKKzL60Hru9xfG4EUYJDarjlEC4hHeBy9+afPmY3BNPoSHx9/8zxuYfUlv/psf7I9NvRVdmdvg==
|
integrity sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^4.1.2"
|
chalk "^4.1.2"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/mdx-loader@3.1.0":
|
"@docusaurus/mdx-loader@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.1.0.tgz#61d562ff442f62ef04cc31d3f0d5865a8dd390e4"
|
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.1.1.tgz#f79290abc5044bef1d7ecac4eccec887058b8e03"
|
||||||
integrity sha512-D7onDz/3mgBonexWoQXPw3V2E5Bc4+jYRf9gGUUK+KoQwU8xMDaDkUUfsr7t6UBa/xox9p5+/3zwLuXOYMzGSg==
|
integrity sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.22.7"
|
"@babel/parser" "^7.22.7"
|
||||||
"@babel/traverse" "^7.22.8"
|
"@babel/traverse" "^7.22.8"
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
"@mdx-js/mdx" "^3.0.0"
|
"@mdx-js/mdx" "^3.0.0"
|
||||||
"@slorber/remark-comment" "^1.0.0"
|
"@slorber/remark-comment" "^1.0.0"
|
||||||
escape-html "^1.0.3"
|
escape-html "^1.0.3"
|
||||||
@ -2184,13 +2184,13 @@
|
|||||||
vfile "^6.0.1"
|
vfile "^6.0.1"
|
||||||
webpack "^5.88.1"
|
webpack "^5.88.1"
|
||||||
|
|
||||||
"@docusaurus/module-type-aliases@3.1.0", "@docusaurus/module-type-aliases@^3.1.0":
|
"@docusaurus/module-type-aliases@3.1.1", "@docusaurus/module-type-aliases@^3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.0.tgz#f3451702f143557bfde0502287713a08086a0415"
|
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.1.tgz#b304402b0535a13ebd4c0db1c368d2604d54d02f"
|
||||||
integrity sha512-XUl7Z4PWlKg4l6KF05JQ3iDHQxnPxbQUqTNKvviHyuHdlalOFv6qeDAm7IbzyQPJD5VA6y4dpRbTWSqP9ClwPg==
|
integrity sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/react-loadable" "5.5.2"
|
"@docusaurus/react-loadable" "5.5.2"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@types/history" "^4.7.11"
|
"@types/history" "^4.7.11"
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
"@types/react-router-config" "*"
|
"@types/react-router-config" "*"
|
||||||
@ -2198,18 +2198,18 @@
|
|||||||
react-helmet-async "*"
|
react-helmet-async "*"
|
||||||
react-loadable "npm:@docusaurus/react-loadable@5.5.2"
|
react-loadable "npm:@docusaurus/react-loadable@5.5.2"
|
||||||
|
|
||||||
"@docusaurus/plugin-content-blog@3.1.0":
|
"@docusaurus/plugin-content-blog@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.0.tgz#d2102e9286486e526dbc0dfc741e53dc5cee0ff0"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.1.tgz#16f4fd723227b2158461bba6b9bcc18c1926f7ea"
|
||||||
integrity sha512-iMa6WBaaEdYuxckvJtLcq/HQdlA4oEbCXf/OFfsYJCCULcDX7GDZpKxLF3X1fLsax3sSm5bmsU+CA0WD+R1g3A==
|
integrity sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/mdx-loader" "3.1.0"
|
"@docusaurus/mdx-loader" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-common" "3.1.0"
|
"@docusaurus/utils-common" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
cheerio "^1.0.0-rc.12"
|
cheerio "^1.0.0-rc.12"
|
||||||
feed "^4.2.2"
|
feed "^4.2.2"
|
||||||
fs-extra "^11.1.1"
|
fs-extra "^11.1.1"
|
||||||
@ -2221,18 +2221,18 @@
|
|||||||
utility-types "^3.10.0"
|
utility-types "^3.10.0"
|
||||||
webpack "^5.88.1"
|
webpack "^5.88.1"
|
||||||
|
|
||||||
"@docusaurus/plugin-content-docs@3.1.0":
|
"@docusaurus/plugin-content-docs@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.0.tgz#55d7bdb8e14f854ea6c6e256f1b51b8c17963c19"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.1.tgz#f2eddebf351dd8dd504a2c26061165c519e1f964"
|
||||||
integrity sha512-el5GxhT8BLrsWD0qGa8Rq+Ttb/Ni6V3DGT2oAPio0qcs/mUAxeyXEAmihkvmLCnAgp6xD27Ce7dISZ5c6BXeqA==
|
integrity sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/mdx-loader" "3.1.0"
|
"@docusaurus/mdx-loader" "3.1.1"
|
||||||
"@docusaurus/module-type-aliases" "3.1.0"
|
"@docusaurus/module-type-aliases" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
"@types/react-router-config" "^5.0.7"
|
"@types/react-router-config" "^5.0.7"
|
||||||
combine-promises "^1.1.0"
|
combine-promises "^1.1.0"
|
||||||
fs-extra "^11.1.1"
|
fs-extra "^11.1.1"
|
||||||
@ -2242,96 +2242,96 @@
|
|||||||
utility-types "^3.10.0"
|
utility-types "^3.10.0"
|
||||||
webpack "^5.88.1"
|
webpack "^5.88.1"
|
||||||
|
|
||||||
"@docusaurus/plugin-content-pages@3.1.0":
|
"@docusaurus/plugin-content-pages@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.0.tgz#cdb73c804ded307e81ceea39874dc0bb540c2dc4"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.1.tgz#05aec68c2abeac2140c7a16d4c5b506bf4d19fb2"
|
||||||
integrity sha512-9gntYQFpk+93+Xl7gYczJu8I9uWoyRLnRwS0+NUFcs9iZtHKsdqKWPRrONC9elfN3wJ9ORwTbcVzsTiB8jvYlg==
|
integrity sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/mdx-loader" "3.1.0"
|
"@docusaurus/mdx-loader" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
fs-extra "^11.1.1"
|
fs-extra "^11.1.1"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
webpack "^5.88.1"
|
webpack "^5.88.1"
|
||||||
|
|
||||||
"@docusaurus/plugin-debug@3.1.0":
|
"@docusaurus/plugin-debug@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.1.0.tgz#545872bc8f9cd697d9f1d6c695f8a1674bfc149c"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.1.1.tgz#cee5aae1fef288fb93f68894db79a2612e313d3f"
|
||||||
integrity sha512-AbvJwCVRbmQ8w9d8QXbF4Iq/ui0bjPZNYFIhtducGFnm2YQRN1mraK8mCEQb0Aq0T8SqRRvSfC/far4n/s531w==
|
integrity sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
fs-extra "^11.1.1"
|
fs-extra "^11.1.1"
|
||||||
react-json-view-lite "^1.2.0"
|
react-json-view-lite "^1.2.0"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/plugin-google-analytics@3.1.0":
|
"@docusaurus/plugin-google-analytics@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.0.tgz#3035eace3121db16aec7c10852ebb4cd860f4434"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.1.tgz#bfc58205b4fcaf3222e04f9c3542f3bef9804887"
|
||||||
integrity sha512-zvUOMzu9Uhz0ciqnSbtnp/5i1zEYlzarQrOXG90P3Is3efQI43p2YLW/rzSGdLb5MfQo2HvKT6Q5+tioMO045Q==
|
integrity sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/plugin-google-gtag@3.1.0":
|
"@docusaurus/plugin-google-gtag@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.0.tgz#2f4040da81d36bfc6324abc1a12b258e6c7f202a"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.1.tgz#7e8b5aa6847a12461c104a65a335f4a45dae2f28"
|
||||||
integrity sha512-0txshvaY8qIBdkk2UATdVcfiCLGq3KAUfuRQD2cRNgO39iIf4/ihQxH9NXcRTwKs4Q5d9yYHoix3xT6pFuEYOg==
|
integrity sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
"@types/gtag.js" "^0.0.12"
|
"@types/gtag.js" "^0.0.12"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/plugin-google-tag-manager@3.1.0":
|
"@docusaurus/plugin-google-tag-manager@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.0.tgz#4c026e9f65468a332326770f95ccd9c6e12d564b"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.1.tgz#e1aae4d821e786d133386b4ae6e6fe66a4bc0089"
|
||||||
integrity sha512-zOWPEi8kMyyPtwG0vhyXrdbLs8fIZmY5vlbi9lUU+v8VsroO5iHmfR2V3SMsrsfOanw5oV/ciWqbxezY00qEZg==
|
integrity sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/plugin-sitemap@3.1.0":
|
"@docusaurus/plugin-sitemap@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.0.tgz#9d9dbb4d87e6dc46ae9321badf6ac7cd9aa96b23"
|
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.1.tgz#8828bf5e2922273aad207a35189f22913e6a0dfd"
|
||||||
integrity sha512-TkR5vGBpUooEB9SoW42thahqqwKzfHrQQhkB+JrEGERsl4bKODSuJNle4aA4h6LSkg4IyfXOW8XOI0NIPWb9Cg==
|
integrity sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-common" "3.1.0"
|
"@docusaurus/utils-common" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
fs-extra "^11.1.1"
|
fs-extra "^11.1.1"
|
||||||
sitemap "^7.1.1"
|
sitemap "^7.1.1"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/preset-classic@^3.1.0":
|
"@docusaurus/preset-classic@^3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.1.0.tgz#ca67d5e416c211b4c23f0fb01f0e3e36b759dfa0"
|
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.1.1.tgz#15fd80012529dafd7e01cc0bce59d39ee6ad6bf5"
|
||||||
integrity sha512-xGLQRFmmT9IinAGUDVRYZ54Ys28USNbA3OTXQXnSJLPr1rCY7CYnHI4XoOnKWrNnDiAI4ruMzunXWyaElUYCKQ==
|
integrity sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/plugin-content-blog" "3.1.0"
|
"@docusaurus/plugin-content-blog" "3.1.1"
|
||||||
"@docusaurus/plugin-content-docs" "3.1.0"
|
"@docusaurus/plugin-content-docs" "3.1.1"
|
||||||
"@docusaurus/plugin-content-pages" "3.1.0"
|
"@docusaurus/plugin-content-pages" "3.1.1"
|
||||||
"@docusaurus/plugin-debug" "3.1.0"
|
"@docusaurus/plugin-debug" "3.1.1"
|
||||||
"@docusaurus/plugin-google-analytics" "3.1.0"
|
"@docusaurus/plugin-google-analytics" "3.1.1"
|
||||||
"@docusaurus/plugin-google-gtag" "3.1.0"
|
"@docusaurus/plugin-google-gtag" "3.1.1"
|
||||||
"@docusaurus/plugin-google-tag-manager" "3.1.0"
|
"@docusaurus/plugin-google-tag-manager" "3.1.1"
|
||||||
"@docusaurus/plugin-sitemap" "3.1.0"
|
"@docusaurus/plugin-sitemap" "3.1.1"
|
||||||
"@docusaurus/theme-classic" "3.1.0"
|
"@docusaurus/theme-classic" "3.1.1"
|
||||||
"@docusaurus/theme-common" "3.1.0"
|
"@docusaurus/theme-common" "3.1.1"
|
||||||
"@docusaurus/theme-search-algolia" "3.1.0"
|
"@docusaurus/theme-search-algolia" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
|
|
||||||
"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2":
|
"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2":
|
||||||
version "5.5.2"
|
version "5.5.2"
|
||||||
@ -2341,23 +2341,23 @@
|
|||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
prop-types "^15.6.2"
|
prop-types "^15.6.2"
|
||||||
|
|
||||||
"@docusaurus/theme-classic@3.1.0":
|
"@docusaurus/theme-classic@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.1.0.tgz#6ee68bf4d4db53c8d9b18d4866512abadb00a802"
|
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.1.1.tgz#0a188c787fc4bf2bb525cc30c7aa34e555ee96b8"
|
||||||
integrity sha512-/+jMl2Z9O8QQxves5AtHdt91gWsEZFgOV3La/6eyKEd7QLqQUtM5fxEJ40rq9NKYjqCd1HzZ9egIMeJoWwillw==
|
integrity sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/mdx-loader" "3.1.0"
|
"@docusaurus/mdx-loader" "3.1.1"
|
||||||
"@docusaurus/module-type-aliases" "3.1.0"
|
"@docusaurus/module-type-aliases" "3.1.1"
|
||||||
"@docusaurus/plugin-content-blog" "3.1.0"
|
"@docusaurus/plugin-content-blog" "3.1.1"
|
||||||
"@docusaurus/plugin-content-docs" "3.1.0"
|
"@docusaurus/plugin-content-docs" "3.1.1"
|
||||||
"@docusaurus/plugin-content-pages" "3.1.0"
|
"@docusaurus/plugin-content-pages" "3.1.1"
|
||||||
"@docusaurus/theme-common" "3.1.0"
|
"@docusaurus/theme-common" "3.1.1"
|
||||||
"@docusaurus/theme-translations" "3.1.0"
|
"@docusaurus/theme-translations" "3.1.1"
|
||||||
"@docusaurus/types" "3.1.0"
|
"@docusaurus/types" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-common" "3.1.0"
|
"@docusaurus/utils-common" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
"@mdx-js/react" "^3.0.0"
|
"@mdx-js/react" "^3.0.0"
|
||||||
clsx "^2.0.0"
|
clsx "^2.0.0"
|
||||||
copy-text-to-clipboard "^3.2.0"
|
copy-text-to-clipboard "^3.2.0"
|
||||||
@ -2372,18 +2372,18 @@
|
|||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
utility-types "^3.10.0"
|
utility-types "^3.10.0"
|
||||||
|
|
||||||
"@docusaurus/theme-common@3.1.0":
|
"@docusaurus/theme-common@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.1.0.tgz#d176af1d0fc8ea27fea0afb298157f9a75256336"
|
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.1.1.tgz#5a16893928b8379c9e83aef01d753e7e142459e2"
|
||||||
integrity sha512-YGwEFALLIbF5ocW/Fy6Ae7tFWUOugEN3iwxTx8UkLAcLqYUboDSadesYtVBmRCEB4FVA2qoP7YaW3lu3apUPPw==
|
integrity sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/mdx-loader" "3.1.0"
|
"@docusaurus/mdx-loader" "3.1.1"
|
||||||
"@docusaurus/module-type-aliases" "3.1.0"
|
"@docusaurus/module-type-aliases" "3.1.1"
|
||||||
"@docusaurus/plugin-content-blog" "3.1.0"
|
"@docusaurus/plugin-content-blog" "3.1.1"
|
||||||
"@docusaurus/plugin-content-docs" "3.1.0"
|
"@docusaurus/plugin-content-docs" "3.1.1"
|
||||||
"@docusaurus/plugin-content-pages" "3.1.0"
|
"@docusaurus/plugin-content-pages" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-common" "3.1.0"
|
"@docusaurus/utils-common" "3.1.1"
|
||||||
"@types/history" "^4.7.11"
|
"@types/history" "^4.7.11"
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
"@types/react-router-config" "*"
|
"@types/react-router-config" "*"
|
||||||
@ -2393,19 +2393,19 @@
|
|||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
utility-types "^3.10.0"
|
utility-types "^3.10.0"
|
||||||
|
|
||||||
"@docusaurus/theme-search-algolia@3.1.0":
|
"@docusaurus/theme-search-algolia@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.0.tgz#3cdb1f0e8d15698a60110856ca5a06f10d3b049d"
|
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.1.tgz#5170cd68cc59d150416b070bdc6d15c363ddf5e1"
|
||||||
integrity sha512-8cJH0ZhPsEDjq3jR3I+wHmWzVY2bXMQJ59v2QxUmsTZxbWA4u+IzccJMIJx4ooFl9J6iYynwYsFuHxyx/KUmfQ==
|
integrity sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docsearch/react" "^3.5.2"
|
"@docsearch/react" "^3.5.2"
|
||||||
"@docusaurus/core" "3.1.0"
|
"@docusaurus/core" "3.1.1"
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/plugin-content-docs" "3.1.0"
|
"@docusaurus/plugin-content-docs" "3.1.1"
|
||||||
"@docusaurus/theme-common" "3.1.0"
|
"@docusaurus/theme-common" "3.1.1"
|
||||||
"@docusaurus/theme-translations" "3.1.0"
|
"@docusaurus/theme-translations" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
"@docusaurus/utils-validation" "3.1.0"
|
"@docusaurus/utils-validation" "3.1.1"
|
||||||
algoliasearch "^4.18.0"
|
algoliasearch "^4.18.0"
|
||||||
algoliasearch-helper "^3.13.3"
|
algoliasearch-helper "^3.13.3"
|
||||||
clsx "^2.0.0"
|
clsx "^2.0.0"
|
||||||
@ -2415,18 +2415,18 @@
|
|||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
utility-types "^3.10.0"
|
utility-types "^3.10.0"
|
||||||
|
|
||||||
"@docusaurus/theme-translations@3.1.0":
|
"@docusaurus/theme-translations@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.1.0.tgz#1c6bdc19723a87e042b5e89b6cdc8b747fdcbc13"
|
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.1.1.tgz#117e91ba5e3a8178cb59f3028bf41de165a508c1"
|
||||||
integrity sha512-DApE4AbDI+WBajihxB54L4scWQhVGNZAochlC9fkbciPuFAgdRBD3NREb0rgfbKexDC/rioppu/WJA0u8tS+yA==
|
integrity sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==
|
||||||
dependencies:
|
dependencies:
|
||||||
fs-extra "^11.1.1"
|
fs-extra "^11.1.1"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/types@3.1.0":
|
"@docusaurus/types@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.1.0.tgz#1dbb60ea38e98ba869f8d7ea2323e4460f05ab65"
|
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.1.1.tgz#747c9dee8cf7c3b0e5ee7351bac5e9c4fdc7f259"
|
||||||
integrity sha512-VaczOZf7+re8aFBIWnex1XENomwHdsSTkrdX43zyor7G/FY4OIsP6X28Xc3o0jiY0YdNuvIDyA5TNwOtpgkCVw==
|
integrity sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@mdx-js/mdx" "^3.0.0"
|
"@mdx-js/mdx" "^3.0.0"
|
||||||
"@types/history" "^4.7.11"
|
"@types/history" "^4.7.11"
|
||||||
@ -2438,30 +2438,30 @@
|
|||||||
webpack "^5.88.1"
|
webpack "^5.88.1"
|
||||||
webpack-merge "^5.9.0"
|
webpack-merge "^5.9.0"
|
||||||
|
|
||||||
"@docusaurus/utils-common@3.1.0":
|
"@docusaurus/utils-common@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.1.0.tgz#846ce9c12b9ebf1ebf513e65303fb8158dcd2e1b"
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.1.1.tgz#b48fade63523fd40f3adb67b47c3371e5183c20b"
|
||||||
integrity sha512-SfvnRLHoZ9bwTw67knkSs7IcUR0GY2SaGkpdB/J9pChrDiGhwzKNUhcieoPyPYrOWGRPk3rVNYtoy+Bc7psPAw==
|
integrity sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/utils-validation@3.1.0":
|
"@docusaurus/utils-validation@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.1.0.tgz#3e88c42caec29cd3eedbbd17af97f88719613340"
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.1.1.tgz#3a747349ed05aee0e4d543552b41f3c9467ee731"
|
||||||
integrity sha512-dFxhs1NLxPOSzmcTk/eeKxLY5R+U4cua22g9MsAMiRWcwFKStZ2W3/GDY0GmnJGqNS8QAQepJrxQoyxXkJNDeg==
|
integrity sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@docusaurus/utils" "3.1.0"
|
"@docusaurus/utils" "3.1.1"
|
||||||
joi "^17.9.2"
|
joi "^17.9.2"
|
||||||
js-yaml "^4.1.0"
|
js-yaml "^4.1.0"
|
||||||
tslib "^2.6.0"
|
tslib "^2.6.0"
|
||||||
|
|
||||||
"@docusaurus/utils@3.1.0":
|
"@docusaurus/utils@3.1.1":
|
||||||
version "3.1.0"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.1.0.tgz#6ef821bc4c40a91586835a385110b5c0082c590c"
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.1.1.tgz#e822d14704e4b3bb451ca464a7cc56aea9b55a45"
|
||||||
integrity sha512-LgZfp0D+UBqAh7PZ//MUNSFBMavmAPku6Si9x8x3V+S318IGCNJ6hUr2O29UO0oLybEWUjD5Jnj9IUN6XyZeeg==
|
integrity sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@docusaurus/logger" "3.1.0"
|
"@docusaurus/logger" "3.1.1"
|
||||||
"@svgr/webpack" "^6.5.1"
|
"@svgr/webpack" "^6.5.1"
|
||||||
escape-string-regexp "^4.0.0"
|
escape-string-regexp "^4.0.0"
|
||||||
file-loader "^6.2.0"
|
file-loader "^6.2.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user