Merge branch 'develop' into feat/while-bord-order
This commit is contained in:
@@ -26,7 +26,7 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
scopes: [
|
scopes: [
|
||||||
{ name: 'selection' },
|
{ name: 'selection' },
|
||||||
{ name: 'whiteboard' },
|
{ name: 'edgeless' },
|
||||||
{ name: 'point' },
|
{ name: 'point' },
|
||||||
{ name: 'group' },
|
{ name: 'group' },
|
||||||
{ name: 'page' },
|
{ name: 'page' },
|
||||||
|
|||||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@@ -25,6 +25,7 @@
|
|||||||
"Kanban",
|
"Kanban",
|
||||||
"keyval",
|
"keyval",
|
||||||
"ligo",
|
"ligo",
|
||||||
|
"livedemo",
|
||||||
"lozad",
|
"lozad",
|
||||||
"mastersthesis",
|
"mastersthesis",
|
||||||
"nrwl",
|
"nrwl",
|
||||||
|
|||||||
11
apps/ligo-virgo-e2e/package.json
Normal file
11
apps/ligo-virgo-e2e/package.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"name": "ligo-virgo-e2e",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"description": "",
|
||||||
|
"author": "AFFiNE <developer@affine.pro>",
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"cypress": "^10.4.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ describe('ligo-virgo', () => {
|
|||||||
beforeEach(() => cy.visit('/'));
|
beforeEach(() => cy.visit('/'));
|
||||||
|
|
||||||
it('basic load check', () => {
|
it('basic load check', () => {
|
||||||
getTitle().contains('👋 Get Started with AFFINE');
|
getTitle().contains('👋 Get Started with AFFiNE');
|
||||||
|
|
||||||
cy.get('.block_container').contains('The Essentials');
|
cy.get('.block_container').contains('The Essentials');
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,14 @@
|
|||||||
declare namespace Cypress {
|
declare namespace Cypress {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
interface Chainable<Subject> {
|
interface Chainable<Subject> {
|
||||||
login(email: string, password: string): void;
|
// login(email: string, password: string): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// -- This is a parent command --
|
// -- This is a parent command --
|
||||||
Cypress.Commands.add('login', (email, password) => {
|
// Cypress.Commands.add('login', (email, password) => {
|
||||||
console.log('Custom command example: Login', email, password);
|
// console.log('Custom command example: Login', email, password);
|
||||||
});
|
// });
|
||||||
//
|
//
|
||||||
// -- This is a child command --
|
// -- This is a child command --
|
||||||
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ const MemoAffineBoard = memo(AffineBoard, (prev, next) => {
|
|||||||
return prev.rootBlockId === next.rootBlockId;
|
return prev.rootBlockId === next.rootBlockId;
|
||||||
});
|
});
|
||||||
|
|
||||||
type WhiteboardProps = {
|
type EdgelessProps = {
|
||||||
workspace: string;
|
workspace: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const Whiteboard = (props: WhiteboardProps) => {
|
export const Edgeless = (props: EdgelessProps) => {
|
||||||
const { page_id } = useParams();
|
const { page_id } = useParams();
|
||||||
const { user } = useUserAndSpaces();
|
const { user } = useUserAndSpaces();
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ export function WorkspaceHome() {
|
|||||||
workspace_id,
|
workspace_id,
|
||||||
user_initial_page_id,
|
user_initial_page_id,
|
||||||
TemplateFactory.generatePageTemplateByGroupKeys({
|
TemplateFactory.generatePageTemplateByGroupKeys({
|
||||||
name: '👋 Get Started with AFFINE',
|
name: '👋 Get Started with AFFiNE',
|
||||||
groupKeys: [
|
groupKeys: [
|
||||||
'getStartedGroup0',
|
'getStartedGroup0',
|
||||||
'getStartedGroup1',
|
'getStartedGroup1',
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import { useUserAndSpaces } from '@toeverything/datasource/state';
|
|||||||
|
|
||||||
import { WorkspaceRootContainer } from './Container';
|
import { WorkspaceRootContainer } from './Container';
|
||||||
import { Page } from './docs';
|
import { Page } from './docs';
|
||||||
|
import { Edgeless } from './Edgeless';
|
||||||
import { WorkspaceHome } from './Home';
|
import { WorkspaceHome } from './Home';
|
||||||
import Labels from './labels';
|
import Labels from './labels';
|
||||||
import Pages from './pages';
|
import Pages from './pages';
|
||||||
import { Whiteboard } from './Whiteboard';
|
|
||||||
|
|
||||||
export function WorkspaceContainer() {
|
export function WorkspaceContainer() {
|
||||||
const { workspace_id } = useParams();
|
const { workspace_id } = useParams();
|
||||||
@@ -26,8 +26,8 @@ export function WorkspaceContainer() {
|
|||||||
<Route path="/labels" element={<Labels />} />
|
<Route path="/labels" element={<Labels />} />
|
||||||
<Route path="/pages" element={<Pages />} />
|
<Route path="/pages" element={<Pages />} />
|
||||||
<Route
|
<Route
|
||||||
path="/:page_id/whiteboard"
|
path="/:page_id/edgeless"
|
||||||
element={<Whiteboard workspace={workspace_id} />}
|
element={<Edgeless workspace={workspace_id} />}
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route
|
||||||
path="/:page_id"
|
path="/:page_id"
|
||||||
|
|||||||
@@ -73,9 +73,9 @@ module.exports = function (webpackConfig) {
|
|||||||
priority: -5,
|
priority: -5,
|
||||||
chunks: 'all',
|
chunks: 'all',
|
||||||
},
|
},
|
||||||
whiteboard: {
|
edgeless: {
|
||||||
test: /(libs\/components\/board-|[\\/]node_modules[\\/]@tldraw)/,
|
test: /(libs\/components\/board-|[\\/]node_modules[\\/]@tldraw)/,
|
||||||
name: 'whiteboard',
|
name: 'edgeless',
|
||||||
priority: -7,
|
priority: -7,
|
||||||
chunks: 'all',
|
chunks: 'all',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ interface AffineEditorProps {
|
|||||||
*/
|
*/
|
||||||
scrollBlank?: boolean;
|
scrollBlank?: boolean;
|
||||||
|
|
||||||
isWhiteboard?: boolean;
|
isEdgeless?: boolean;
|
||||||
|
|
||||||
scrollContainer?: HTMLElement;
|
scrollContainer?: HTMLElement;
|
||||||
scrollController?: {
|
scrollController?: {
|
||||||
@@ -29,12 +29,12 @@ interface AffineEditorProps {
|
|||||||
function _useConstantWithDispose(
|
function _useConstantWithDispose(
|
||||||
workspace: string,
|
workspace: string,
|
||||||
rootBlockId: string,
|
rootBlockId: string,
|
||||||
isWhiteboard: boolean
|
isEdgeless: boolean
|
||||||
) {
|
) {
|
||||||
const ref = useRef<{ data: BlockEditor; onInit: boolean }>(null);
|
const ref = useRef<{ data: BlockEditor; onInit: boolean }>(null);
|
||||||
const { setCurrentEditors } = useCurrentEditors();
|
const { setCurrentEditors } = useCurrentEditors();
|
||||||
ref.current ??= {
|
ref.current ??= {
|
||||||
data: createEditor(workspace, rootBlockId, isWhiteboard),
|
data: createEditor(workspace, rootBlockId, isEdgeless),
|
||||||
onInit: true,
|
onInit: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -42,18 +42,14 @@ function _useConstantWithDispose(
|
|||||||
if (ref.current.onInit) {
|
if (ref.current.onInit) {
|
||||||
ref.current.onInit = false;
|
ref.current.onInit = false;
|
||||||
} else {
|
} else {
|
||||||
ref.current.data = createEditor(
|
ref.current.data = createEditor(workspace, rootBlockId, isEdgeless);
|
||||||
workspace,
|
|
||||||
rootBlockId,
|
|
||||||
isWhiteboard
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
setCurrentEditors(prev => ({
|
setCurrentEditors(prev => ({
|
||||||
...prev,
|
...prev,
|
||||||
[rootBlockId]: ref.current.data,
|
[rootBlockId]: ref.current.data,
|
||||||
}));
|
}));
|
||||||
return () => ref.current.data.dispose();
|
return () => ref.current.data.dispose();
|
||||||
}, [workspace, rootBlockId, isWhiteboard, setCurrentEditors]);
|
}, [workspace, rootBlockId, isEdgeless, setCurrentEditors]);
|
||||||
|
|
||||||
return ref.current.data;
|
return ref.current.data;
|
||||||
}
|
}
|
||||||
@@ -64,7 +60,7 @@ export const AffineEditor = forwardRef<BlockEditor, AffineEditorProps>(
|
|||||||
workspace,
|
workspace,
|
||||||
rootBlockId,
|
rootBlockId,
|
||||||
scrollBlank = true,
|
scrollBlank = true,
|
||||||
isWhiteboard,
|
isEdgeless,
|
||||||
scrollController,
|
scrollController,
|
||||||
scrollContainer,
|
scrollContainer,
|
||||||
},
|
},
|
||||||
@@ -73,7 +69,7 @@ export const AffineEditor = forwardRef<BlockEditor, AffineEditorProps>(
|
|||||||
const editor = _useConstantWithDispose(
|
const editor = _useConstantWithDispose(
|
||||||
workspace,
|
workspace,
|
||||||
rootBlockId,
|
rootBlockId,
|
||||||
isWhiteboard
|
isEdgeless
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import { BlockEditor } from '@toeverything/framework/virgo';
|
|||||||
export const createEditor = (
|
export const createEditor = (
|
||||||
workspace: string,
|
workspace: string,
|
||||||
rootBlockId: string,
|
rootBlockId: string,
|
||||||
isWhiteboard?: boolean
|
isEdgeless?: boolean
|
||||||
) => {
|
) => {
|
||||||
const blockEditor = new BlockEditor({
|
const blockEditor = new BlockEditor({
|
||||||
workspace,
|
workspace,
|
||||||
@@ -61,7 +61,7 @@ export const createEditor = (
|
|||||||
[Protocol.Block.Type.groupDivider]: new GroupDividerBlock(),
|
[Protocol.Block.Type.groupDivider]: new GroupDividerBlock(),
|
||||||
},
|
},
|
||||||
plugins,
|
plugins,
|
||||||
isWhiteboard,
|
isEdgeless,
|
||||||
});
|
});
|
||||||
|
|
||||||
return blockEditor;
|
return blockEditor;
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ export class EditorUtil extends TDShapeUtil<T, E> {
|
|||||||
workspace={workspace}
|
workspace={workspace}
|
||||||
rootBlockId={rootBlockId}
|
rootBlockId={rootBlockId}
|
||||||
scrollBlank={false}
|
scrollBlank={false}
|
||||||
isWhiteboard
|
isEdgeless
|
||||||
/>
|
/>
|
||||||
{editingText ? null : <Mask />}
|
{editingText ? null : <Mask />}
|
||||||
</Container>
|
</Container>
|
||||||
|
|||||||
@@ -3840,12 +3840,9 @@ export class TldrawApp extends StateManager<TDSnapshot> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private get_viewbox_from_svg = (svgStr: string | ArrayBuffer | null) => {
|
private get_viewbox_from_svg = (svgStr: string | ArrayBuffer | null) => {
|
||||||
const viewBoxRegex =
|
|
||||||
/.*?viewBox=["'](-?[\d.]+[, ]+-?[\d.]+[, ][\d.]+[, ][\d.]+)["']/;
|
|
||||||
|
|
||||||
if (typeof svgStr === 'string') {
|
if (typeof svgStr === 'string') {
|
||||||
const matches = svgStr.match(viewBoxRegex);
|
let viewBox = new DOMParser().parseFromString(svgStr, 'text/xml');
|
||||||
return matches && matches.length >= 2 ? matches[1] : null;
|
return viewBox.children[0].getAttribute('viewBox');
|
||||||
}
|
}
|
||||||
|
|
||||||
console.warn('could not get viewbox from svg string');
|
console.warn('could not get viewbox from svg string');
|
||||||
|
|||||||
@@ -2,28 +2,28 @@
|
|||||||
import {
|
import {
|
||||||
Descendant,
|
Descendant,
|
||||||
Editor,
|
Editor,
|
||||||
|
Location,
|
||||||
|
Node as SlateNode,
|
||||||
|
Path,
|
||||||
Point,
|
Point,
|
||||||
Transforms,
|
|
||||||
Range,
|
Range,
|
||||||
Text,
|
Text,
|
||||||
Location,
|
Transforms,
|
||||||
Path,
|
|
||||||
Node as SlateNode,
|
|
||||||
} from 'slate';
|
} from 'slate';
|
||||||
import { ReactEditor } from 'slate-react';
|
import { ReactEditor } from 'slate-react';
|
||||||
|
|
||||||
import {
|
|
||||||
getCommentsIdsOnTextNode,
|
|
||||||
getEditorMarkForCommentId,
|
|
||||||
MARKDOWN_STYLE_MAP,
|
|
||||||
MatchRes,
|
|
||||||
} from './utils';
|
|
||||||
import {
|
import {
|
||||||
fontBgColorPalette,
|
fontBgColorPalette,
|
||||||
fontColorPalette,
|
fontColorPalette,
|
||||||
type TextAlignOptions,
|
type TextAlignOptions,
|
||||||
type TextStyleMark,
|
type TextStyleMark,
|
||||||
} from './constants';
|
} from './constants';
|
||||||
|
import {
|
||||||
|
getCommentsIdsOnTextNode,
|
||||||
|
getEditorMarkForCommentId,
|
||||||
|
MARKDOWN_STYLE_MAP,
|
||||||
|
MatchRes,
|
||||||
|
} from './utils';
|
||||||
|
|
||||||
function isInlineAndVoid(editor: Editor, el: any) {
|
function isInlineAndVoid(editor: Editor, el: any) {
|
||||||
return editor.isInline(el) && editor.isVoid(el);
|
return editor.isInline(el) && editor.isVoid(el);
|
||||||
@@ -567,8 +567,51 @@ class SlateUtils {
|
|||||||
anchor: point1,
|
anchor: point1,
|
||||||
focus: point2,
|
focus: point2,
|
||||||
});
|
});
|
||||||
// @ts-ignore
|
if (!fragment.length) {
|
||||||
return fragment[0].children;
|
console.error('Debug information:', point1, point2, fragment);
|
||||||
|
throw new Error('Failed to get content between!');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fragment.length > 1) {
|
||||||
|
console.warn(
|
||||||
|
'Fragment length is greater than one, ' +
|
||||||
|
'please be careful if there is missing content!\n' +
|
||||||
|
'Debug information:',
|
||||||
|
point1,
|
||||||
|
point2,
|
||||||
|
fragment
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const firstFragment = fragment[0];
|
||||||
|
if (!('type' in firstFragment)) {
|
||||||
|
console.error('Debug information:', point1, point2, fragment);
|
||||||
|
throw new Error(
|
||||||
|
'Failed to get content between! type of firstFragment not found!'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const fragmentChildren = firstFragment.children;
|
||||||
|
|
||||||
|
const textChildren: Text[] = [];
|
||||||
|
for (const child of fragmentChildren) {
|
||||||
|
if (!('text' in child)) {
|
||||||
|
console.error('Debug information:', point1, point2, fragment);
|
||||||
|
throw new Error('Fragment exists nested!');
|
||||||
|
}
|
||||||
|
// Filter empty string
|
||||||
|
if (child.text === '') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
textChildren.push(child);
|
||||||
|
}
|
||||||
|
// If nothing, should preserve empty string
|
||||||
|
// Fix Slate Cannot get the start point in the node at path [0] because it has no start text node.
|
||||||
|
if (!textChildren.length) {
|
||||||
|
textChildren.push({ text: '' });
|
||||||
|
}
|
||||||
|
|
||||||
|
return textChildren;
|
||||||
}
|
}
|
||||||
|
|
||||||
public getSplitContentsBySelection() {
|
public getSplitContentsBySelection() {
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ export const BulletView = ({ block, editor }: CreateView) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return tabBlock(block, isShiftKey);
|
return tabBlock(editor, block, isShiftKey);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { Protocol } from '@toeverything/datasource/db-service';
|
||||||
import {
|
import {
|
||||||
AsyncBlock,
|
AsyncBlock,
|
||||||
BaseView,
|
BaseView,
|
||||||
SelectBlock,
|
SelectBlock,
|
||||||
} from '@toeverything/framework/virgo';
|
} from '@toeverything/framework/virgo';
|
||||||
import { Protocol, services } from '@toeverything/datasource/db-service';
|
|
||||||
import { FigmaView } from './FigmaView';
|
import { FigmaView } from './FigmaView';
|
||||||
|
|
||||||
export class FigmaBlock extends BaseView {
|
export class FigmaBlock extends BaseView {
|
||||||
@@ -19,7 +19,10 @@ export class FigmaBlock extends BaseView {
|
|||||||
const tag_name = el.tagName;
|
const tag_name = el.tagName;
|
||||||
if (tag_name === 'A' && el.parentElement?.childElementCount === 1) {
|
if (tag_name === 'A' && el.parentElement?.childElementCount === 1) {
|
||||||
const href = el.getAttribute('href');
|
const href = el.getAttribute('href');
|
||||||
if (href.indexOf('.figma.com') !== -1) {
|
const allowedHosts = ['www.figma.com'];
|
||||||
|
const host = new URL(href).host;
|
||||||
|
|
||||||
|
if (allowedHosts.includes(host)) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: this.type,
|
type: this.type,
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ export const GroupView = (props: CreateView) => {
|
|||||||
<View {...props} />
|
<View {...props} />
|
||||||
</GroupContainer>
|
</GroupContainer>
|
||||||
|
|
||||||
{editor.isWhiteboard ? null : (
|
{editor.isEdgeless ? null : (
|
||||||
<GroupAction onAddGroup={addGroup} />
|
<GroupAction onAddGroup={addGroup} />
|
||||||
)}
|
)}
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ const weakSqlCreator = (weak_sql_express = ''): Promise<Constraint[]> => {
|
|||||||
constraints.push({
|
constraints.push({
|
||||||
field: field.trim(),
|
field: field.trim(),
|
||||||
relation: relation.trim() as Relation,
|
relation: relation.trim() as Relation,
|
||||||
value: pickValue(value.replace(/&&|&|;/, '').trim()),
|
value: pickValue(value.replace(/&&|&|;/g, '').trim()),
|
||||||
});
|
});
|
||||||
|
|
||||||
/* meaningless return value */
|
/* meaningless return value */
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ export const NumberedView = ({ block, editor }: CreateView) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
tabBlock(block, isShiftKey);
|
tabBlock(editor, block, isShiftKey);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ import { useState } from 'react';
|
|||||||
|
|
||||||
import { CustomText, TextProps } from '@toeverything/components/common';
|
import { CustomText, TextProps } from '@toeverything/components/common';
|
||||||
import {
|
import {
|
||||||
mergeGroup,
|
BlockPendantProvider,
|
||||||
RenderBlockChildren,
|
RenderBlockChildren,
|
||||||
splitGroup,
|
splitGroup,
|
||||||
supportChildren,
|
supportChildren,
|
||||||
unwrapGroup,
|
|
||||||
useOnSelect,
|
useOnSelect,
|
||||||
BlockPendantProvider,
|
|
||||||
} from '@toeverything/components/editor-core';
|
} from '@toeverything/components/editor-core';
|
||||||
import { styled } from '@toeverything/components/ui';
|
import { styled } from '@toeverything/components/ui';
|
||||||
import { Protocol } from '@toeverything/datasource/db-service';
|
import { Protocol } from '@toeverything/datasource/db-service';
|
||||||
@@ -69,24 +67,36 @@ export const TextView = ({
|
|||||||
const { contentBeforeSelection, contentAfterSelection } = splitContents;
|
const { contentBeforeSelection, contentAfterSelection } = splitContents;
|
||||||
const before = [...contentBeforeSelection.content];
|
const before = [...contentBeforeSelection.content];
|
||||||
const after = [...contentAfterSelection.content];
|
const after = [...contentAfterSelection.content];
|
||||||
const _nextBlockChildren = await block.children();
|
const nextBlockChildren = await block.children();
|
||||||
const _nextBlock = await editor.createBlock('text');
|
const nextBlock = await editor.createBlock('text');
|
||||||
await _nextBlock.setProperty('text', {
|
if (!nextBlock) {
|
||||||
|
throw new Error('Failed to create text block');
|
||||||
|
}
|
||||||
|
await nextBlock.setProperty('text', {
|
||||||
value: after as CustomText[],
|
value: after as CustomText[],
|
||||||
});
|
});
|
||||||
_nextBlock.append(..._nextBlockChildren);
|
|
||||||
block.removeChildren();
|
|
||||||
await block.setProperty('text', {
|
await block.setProperty('text', {
|
||||||
value: before as CustomText[],
|
value: before as CustomText[],
|
||||||
});
|
});
|
||||||
await block.after(_nextBlock);
|
|
||||||
|
|
||||||
editor.selectionManager.activeNodeByNodeId(_nextBlock.id);
|
if (editor.getRootBlockId() === block.id) {
|
||||||
|
// If the block is the root block,
|
||||||
|
// new block can not append as next sibling,
|
||||||
|
// all new blocks should be append as children.
|
||||||
|
await block.insert(0, [nextBlock]);
|
||||||
|
editor.selectionManager.activeNodeByNodeId(nextBlock.id);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
await nextBlock.append(...nextBlockChildren);
|
||||||
|
await block.removeChildren();
|
||||||
|
await block.after(nextBlock);
|
||||||
|
|
||||||
|
editor.selectionManager.activeNodeByNodeId(nextBlock.id);
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onBackspace: TextProps['handleBackSpace'] = async props => {
|
const onBackspace: TextProps['handleBackSpace'] = editor.withBatch(
|
||||||
return await editor.withSuspend(async () => {
|
async props => {
|
||||||
const { isCollAndStart } = props;
|
const { isCollAndStart } = props;
|
||||||
if (!isCollAndStart) {
|
if (!isCollAndStart) {
|
||||||
return false;
|
return false;
|
||||||
@@ -95,20 +105,27 @@ export const TextView = ({
|
|||||||
await block.setType('text');
|
await block.setType('text');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (editor.getRootBlockId() === block.id) {
|
||||||
|
// Can not delete
|
||||||
|
return false;
|
||||||
|
}
|
||||||
const parentBlock = await block.parent();
|
const parentBlock = await block.parent();
|
||||||
|
|
||||||
if (!parentBlock) {
|
if (!parentBlock) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const preParent = await parentBlock.previousSibling();
|
const preParent = await parentBlock.previousSibling();
|
||||||
if (Protocol.Block.Type.group === parentBlock.type) {
|
if (
|
||||||
|
Protocol.Block.Type.group === parentBlock.type ||
|
||||||
|
editor.getRootBlockId() === parentBlock.id
|
||||||
|
) {
|
||||||
const children = await block.children();
|
const children = await block.children();
|
||||||
const preNode = await block.physicallyPerviousSibling();
|
const preNode = await block.physicallyPerviousSibling();
|
||||||
// FIXME support children do not means has textBlock
|
// FIXME support children do not means has textBlock
|
||||||
// TODO: abstract this part of code
|
// TODO: abstract this part of code
|
||||||
if (preNode) {
|
if (preNode) {
|
||||||
if (supportChildren(preNode)) {
|
if (supportChildren(preNode)) {
|
||||||
editor.suspend(true);
|
|
||||||
await editor.selectionManager.activePreviousNode(
|
await editor.selectionManager.activePreviousNode(
|
||||||
block.id,
|
block.id,
|
||||||
'end'
|
'end'
|
||||||
@@ -127,7 +144,6 @@ export const TextView = ({
|
|||||||
}
|
}
|
||||||
await preNode.append(...children);
|
await preNode.append(...children);
|
||||||
await block.remove();
|
await block.remove();
|
||||||
editor.suspend(false);
|
|
||||||
} else {
|
} else {
|
||||||
// TODO: point does not clear
|
// TODO: point does not clear
|
||||||
await editor.selectionManager.activePreviousNode(
|
await editor.selectionManager.activePreviousNode(
|
||||||
@@ -194,8 +210,9 @@ export const TextView = ({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
}
|
||||||
};
|
);
|
||||||
|
|
||||||
const handleConvert = async (
|
const handleConvert = async (
|
||||||
toType: string,
|
toType: string,
|
||||||
options?: Record<string, unknown>
|
options?: Record<string, unknown>
|
||||||
@@ -211,7 +228,7 @@ export const TextView = ({
|
|||||||
block.firstCreateFlag = true;
|
block.firstCreateFlag = true;
|
||||||
};
|
};
|
||||||
const onTab: TextProps['handleTab'] = async ({ isShiftKey }) => {
|
const onTab: TextProps['handleTab'] = async ({ isShiftKey }) => {
|
||||||
await tabBlock(block, isShiftKey);
|
await tabBlock(editor, block, isShiftKey);
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ export const TodoView = ({ block, editor }: CreateView) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const on_tab: TextProps['handleTab'] = async ({ isShiftKey }) => {
|
const on_tab: TextProps['handleTab'] = async ({ isShiftKey }) => {
|
||||||
await tabBlock(block, isShiftKey);
|
await tabBlock(editor, block, isShiftKey);
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { Protocol } from '@toeverything/datasource/db-service';
|
||||||
import {
|
import {
|
||||||
AsyncBlock,
|
AsyncBlock,
|
||||||
BaseView,
|
BaseView,
|
||||||
SelectBlock,
|
SelectBlock,
|
||||||
} from '@toeverything/framework/virgo';
|
} from '@toeverything/framework/virgo';
|
||||||
import { Protocol } from '@toeverything/datasource/db-service';
|
|
||||||
import { YoutubeView } from './YoutubeView';
|
import { YoutubeView } from './YoutubeView';
|
||||||
|
|
||||||
export class YoutubeBlock extends BaseView {
|
export class YoutubeBlock extends BaseView {
|
||||||
@@ -19,7 +19,10 @@ export class YoutubeBlock extends BaseView {
|
|||||||
const tag_name = el.tagName;
|
const tag_name = el.tagName;
|
||||||
if (tag_name === 'A' && el.parentElement?.childElementCount === 1) {
|
if (tag_name === 'A' && el.parentElement?.childElementCount === 1) {
|
||||||
const href = el.getAttribute('href');
|
const href = el.getAttribute('href');
|
||||||
if (href.indexOf('.youtube.com') !== -1) {
|
const allowedHosts = ['www.youtu.be', 'www.youtube.com'];
|
||||||
|
const host = new URL(href).host;
|
||||||
|
|
||||||
|
if (allowedHosts.includes(host)) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: this.type,
|
type: this.type,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const _regex =
|
const _regex =
|
||||||
/^(https?:\/\/(localhost:4200|(nightly|app)\.affine\.pro|.*?\.ligo-virgo\.pages\.dev)\/\w{28}\/)?(affine\w{16})(\/whiteboard)?$/;
|
/^(https?:\/\/(localhost:4200|(nightly|app|livedemo)\.affine\.pro|.*?\.ligo-virgo\.pages\.dev)\/(\w{28}|AFFiNE)\/)?(affine[\w\-_]{16})(\/edgeless)?$/;
|
||||||
|
|
||||||
export const isAffineUrl = (url?: string) => {
|
export const isAffineUrl = (url?: string) => {
|
||||||
if (!url) return false;
|
if (!url) return false;
|
||||||
@@ -7,5 +7,5 @@ export const isAffineUrl = (url?: string) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const toAffineEmbedUrl = (url: string) => {
|
export const toAffineEmbedUrl = (url: string) => {
|
||||||
return _regex.exec(url)?.[4];
|
return _regex.exec(url)?.[5];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
export const isYoutubeUrl = (url?: string): boolean => {
|
export const isYoutubeUrl = (url?: string): boolean => {
|
||||||
return url.includes('youtu.be') || url.includes('youtube.com');
|
const allowedHosts = ['www.youtu.be', 'www.youtube.com'];
|
||||||
|
const host = new URL(url).host;
|
||||||
|
return allowedHosts.includes(host);
|
||||||
};
|
};
|
||||||
|
|
||||||
const _regexp = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#&?]*).*/;
|
const _regexp = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#&?]*).*/;
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import {
|
|||||||
type SlateUtils,
|
type SlateUtils,
|
||||||
type TextProps,
|
type TextProps,
|
||||||
} from '@toeverything/components/common';
|
} from '@toeverything/components/common';
|
||||||
import {
|
import { useOnSelectActive } from '@toeverything/components/editor-core';
|
||||||
useOnSelectActive,
|
|
||||||
useOnSelectSetSelection,
|
|
||||||
} from '@toeverything/components/editor-core';
|
|
||||||
import { styled } from '@toeverything/components/ui';
|
import { styled } from '@toeverything/components/ui';
|
||||||
import { ContentColumnValue } from '@toeverything/datasource/db-service';
|
import { ContentColumnValue } from '@toeverything/datasource/db-service';
|
||||||
import {
|
import {
|
||||||
@@ -119,15 +116,6 @@ export const TextManage = forwardRef<ExtendedTextUtils, CreateTextView>(
|
|||||||
|
|
||||||
const properties = block.getProperties();
|
const properties = block.getProperties();
|
||||||
|
|
||||||
const onTextViewSetSelection = (selection: Range | Point) => {
|
|
||||||
if (selection instanceof Point) {
|
|
||||||
//do some thing
|
|
||||||
} else {
|
|
||||||
textRef.current.setSelection(selection);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// block = await editor.commands.blockCommands.createNextBlock(block.id,)
|
|
||||||
const onTextViewActive = useCallback(
|
const onTextViewActive = useCallback(
|
||||||
(point: CursorTypes) => {
|
(point: CursorTypes) => {
|
||||||
// TODO code to be optimized
|
// TODO code to be optimized
|
||||||
@@ -209,7 +197,6 @@ export const TextManage = forwardRef<ExtendedTextUtils, CreateTextView>(
|
|||||||
);
|
);
|
||||||
|
|
||||||
useOnSelectActive(block.id, onTextViewActive);
|
useOnSelectActive(block.id, onTextViewActive);
|
||||||
useOnSelectSetSelection<'Range'>(block.id, onTextViewSetSelection);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (textRef.current) {
|
if (textRef.current) {
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
import { supportChildren } from '@toeverything/components/editor-core';
|
import {
|
||||||
|
type BlockEditor,
|
||||||
|
supportChildren,
|
||||||
|
} from '@toeverything/components/editor-core';
|
||||||
import { Protocol } from '@toeverything/datasource/db-service';
|
import { Protocol } from '@toeverything/datasource/db-service';
|
||||||
import { AsyncBlock } from '@toeverything/framework/virgo';
|
import { AsyncBlock } from '@toeverything/framework/virgo';
|
||||||
import type { TodoAsyncBlock } from '../blocks/todo/types';
|
import type { TodoAsyncBlock } from '../blocks/todo/types';
|
||||||
@@ -6,14 +9,19 @@ import type { TodoAsyncBlock } from '../blocks/todo/types';
|
|||||||
/**
|
/**
|
||||||
* Is the block in top level
|
* Is the block in top level
|
||||||
*/
|
*/
|
||||||
export const isTopLevelBlock = (parentBlock: AsyncBlock): boolean => {
|
export const isTopLevelBlock = (
|
||||||
|
editor: BlockEditor,
|
||||||
|
block: AsyncBlock
|
||||||
|
): boolean => {
|
||||||
return (
|
return (
|
||||||
parentBlock.type === Protocol.Block.Type.group ||
|
editor.getRootBlockId() === block.id ||
|
||||||
parentBlock.type === Protocol.Block.Type.page
|
block.type === Protocol.Block.Type.group ||
|
||||||
|
block.type === Protocol.Block.Type.page
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Move down
|
||||||
* @returns true if indent is success
|
* @returns true if indent is success
|
||||||
* @example
|
* @example
|
||||||
* ```
|
* ```
|
||||||
@@ -31,7 +39,6 @@ export const isTopLevelBlock = (parentBlock: AsyncBlock): boolean => {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
const indentBlock = async (block: TodoAsyncBlock) => {
|
const indentBlock = async (block: TodoAsyncBlock) => {
|
||||||
// Move down
|
|
||||||
const previousBlock = await block.previousSibling();
|
const previousBlock = await block.previousSibling();
|
||||||
|
|
||||||
if (!previousBlock || !supportChildren(previousBlock)) {
|
if (!previousBlock || !supportChildren(previousBlock)) {
|
||||||
@@ -57,6 +64,7 @@ const indentBlock = async (block: TodoAsyncBlock) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Move up
|
||||||
* @returns true if dedent is success
|
* @returns true if dedent is success
|
||||||
* @example
|
* @example
|
||||||
* ```
|
* ```
|
||||||
@@ -73,13 +81,15 @@ const indentBlock = async (block: TodoAsyncBlock) => {
|
|||||||
* └─ [ ]
|
* └─ [ ]
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
const dedentBlock = async (block: AsyncBlock) => {
|
const dedentBlock = async (editor: BlockEditor, block: AsyncBlock) => {
|
||||||
// Move up
|
if (editor.getRootBlockId() === block.id) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
let parentBlock = await block.parent();
|
let parentBlock = await block.parent();
|
||||||
if (!parentBlock) {
|
if (!parentBlock) {
|
||||||
throw new Error('Failed to dedent block! Parent block not found!');
|
throw new Error('Failed to dedent block! Parent block not found!');
|
||||||
}
|
}
|
||||||
if (isTopLevelBlock(parentBlock)) {
|
if (isTopLevelBlock(editor, parentBlock)) {
|
||||||
// Top, do nothing
|
// Top, do nothing
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -111,9 +121,13 @@ const dedentBlock = async (block: AsyncBlock) => {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const tabBlock = async (block: AsyncBlock, isShiftKey: boolean) => {
|
export const tabBlock = async (
|
||||||
|
editor: BlockEditor,
|
||||||
|
block: AsyncBlock,
|
||||||
|
isShiftKey: boolean
|
||||||
|
) => {
|
||||||
if (isShiftKey) {
|
if (isShiftKey) {
|
||||||
return await dedentBlock(block);
|
return await dedentBlock(editor, block);
|
||||||
} else {
|
} else {
|
||||||
return await indentBlock(block);
|
return await indentBlock(block);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import type { BlockEditor } from './editor';
|
|
||||||
import { styled, usePatchNodes } from '@toeverything/components/ui';
|
import { styled, usePatchNodes } from '@toeverything/components/ui';
|
||||||
import type { PropsWithChildren } from 'react';
|
|
||||||
import React, { useEffect, useRef, useState, useCallback } from 'react';
|
|
||||||
import { EditorProvider } from './Contexts';
|
|
||||||
import { SelectionRect, SelectionRef } from './Selection';
|
|
||||||
import {
|
import {
|
||||||
Protocol,
|
Protocol,
|
||||||
services,
|
services,
|
||||||
type ReturnUnobserve,
|
type ReturnUnobserve,
|
||||||
} from '@toeverything/datasource/db-service';
|
} from '@toeverything/datasource/db-service';
|
||||||
import { addNewGroup, appendNewGroup } from './recast-block';
|
import type { PropsWithChildren } from 'react';
|
||||||
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
||||||
|
import { EditorProvider } from './Contexts';
|
||||||
|
import type { BlockEditor } from './editor';
|
||||||
import { useIsOnDrag } from './hooks';
|
import { useIsOnDrag } from './hooks';
|
||||||
|
import { addNewGroup, appendNewGroup } from './recast-block';
|
||||||
|
import { SelectionRect, SelectionRef } from './Selection';
|
||||||
|
|
||||||
interface RenderRootProps {
|
interface RenderRootProps {
|
||||||
editor: BlockEditor;
|
editor: BlockEditor;
|
||||||
@@ -160,7 +160,7 @@ export const RenderRoot = ({
|
|||||||
return (
|
return (
|
||||||
<EditorProvider value={{ editor, editorElement }}>
|
<EditorProvider value={{ editor, editorElement }}>
|
||||||
<Container
|
<Container
|
||||||
isWhiteboard={editor.isWhiteboard}
|
isEdgeless={editor.isEdgeless}
|
||||||
ref={ref => {
|
ref={ref => {
|
||||||
if (ref != null && ref !== editor.container) {
|
if (ref != null && ref !== editor.container) {
|
||||||
editor.container = ref;
|
editor.container = ref;
|
||||||
@@ -188,7 +188,7 @@ export const RenderRoot = ({
|
|||||||
</Content>
|
</Content>
|
||||||
{/** TODO: remove selectionManager insert */}
|
{/** TODO: remove selectionManager insert */}
|
||||||
{editor && <SelectionRect ref={selectionRef} editor={editor} />}
|
{editor && <SelectionRect ref={selectionRef} editor={editor} />}
|
||||||
{editor.isWhiteboard ? null : <ScrollBlank editor={editor} />}
|
{editor.isEdgeless ? null : <ScrollBlank editor={editor} />}
|
||||||
{patchedNodes}
|
{patchedNodes}
|
||||||
</Container>
|
</Container>
|
||||||
</EditorProvider>
|
</EditorProvider>
|
||||||
@@ -262,16 +262,10 @@ function ScrollBlank({ editor }: { editor: BlockEditor }) {
|
|||||||
const PADDING_X = 150;
|
const PADDING_X = 150;
|
||||||
|
|
||||||
const Container = styled('div')(
|
const Container = styled('div')(
|
||||||
({
|
({ isEdgeless, isOnDrag }: { isEdgeless: boolean; isOnDrag: boolean }) => ({
|
||||||
isWhiteboard,
|
|
||||||
isOnDrag,
|
|
||||||
}: {
|
|
||||||
isWhiteboard: boolean;
|
|
||||||
isOnDrag: boolean;
|
|
||||||
}) => ({
|
|
||||||
width: '100%',
|
width: '100%',
|
||||||
padding: isWhiteboard ? 0 : `72px ${PADDING_X}px 0 ${PADDING_X}px`,
|
padding: isEdgeless ? 0 : `72px ${PADDING_X}px 0 ${PADDING_X}px`,
|
||||||
minWidth: isWhiteboard ? 'unset' : '940px',
|
minWidth: isEdgeless ? 'unset' : '940px',
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
...(isOnDrag && {
|
...(isOnDrag && {
|
||||||
cursor: 'grabbing',
|
cursor: 'grabbing',
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export const BlockPendantProvider = ({
|
|||||||
<StyledPendantContainer ref={triggerRef}>
|
<StyledPendantContainer ref={triggerRef}>
|
||||||
<PendantPopover
|
<PendantPopover
|
||||||
block={block}
|
block={block}
|
||||||
container={triggerRef.current}
|
// container={triggerRef.current}
|
||||||
>
|
>
|
||||||
<StyledTriggerLine />
|
<StyledTriggerLine />
|
||||||
</PendantPopover>
|
</PendantPopover>
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ export const PendantHistoryPanel = ({
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
trigger="click"
|
trigger="click"
|
||||||
container={historyPanelRef.current}
|
// container={historyPanelRef.current}
|
||||||
>
|
>
|
||||||
<PendantTag
|
<PendantTag
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export const PendantRender = ({ block }: { block: AsyncBlock }) => {
|
|||||||
popperHandlerRef={ref => {
|
popperHandlerRef={ref => {
|
||||||
popoverHandlerRef.current[id] = ref;
|
popoverHandlerRef.current[id] = ref;
|
||||||
}}
|
}}
|
||||||
container={blockRenderContainerRef.current}
|
// container={blockRenderContainerRef.current}
|
||||||
key={id}
|
key={id}
|
||||||
trigger="click"
|
trigger="click"
|
||||||
placement="bottom-start"
|
placement="bottom-start"
|
||||||
|
|||||||
@@ -2,47 +2,47 @@
|
|||||||
import HotKeys from 'hotkeys-js';
|
import HotKeys from 'hotkeys-js';
|
||||||
import LRUCache from 'lru-cache';
|
import LRUCache from 'lru-cache';
|
||||||
|
|
||||||
import { services } from '@toeverything/datasource/db-service';
|
import type { PatchNode } from '@toeverything/components/ui';
|
||||||
import type {
|
import type {
|
||||||
BlockFlavors,
|
BlockFlavors,
|
||||||
ReturnEditorBlock,
|
ReturnEditorBlock,
|
||||||
UpdateEditorBlock,
|
UpdateEditorBlock,
|
||||||
} from '@toeverything/datasource/db-service';
|
} from '@toeverything/datasource/db-service';
|
||||||
import type { PatchNode } from '@toeverything/components/ui';
|
import { services } from '@toeverything/datasource/db-service';
|
||||||
|
|
||||||
import { AsyncBlock } from './block';
|
|
||||||
import type { WorkspaceAndBlockId } from './block';
|
|
||||||
import type { BaseView } from './views/base-view';
|
|
||||||
import { SelectionManager } from './selection';
|
|
||||||
import { Hooks, PluginManager } from './plugin';
|
|
||||||
import { EditorCommands } from './commands';
|
|
||||||
import {
|
|
||||||
Virgo,
|
|
||||||
HooksRunner,
|
|
||||||
PluginHooks,
|
|
||||||
PluginCreator,
|
|
||||||
StorageManager,
|
|
||||||
VirgoSelection,
|
|
||||||
PluginManagerInterface,
|
|
||||||
} from './types';
|
|
||||||
import { KeyboardManager } from './keyboard';
|
|
||||||
import { MouseManager } from './mouse';
|
|
||||||
import { ScrollManager } from './scroll';
|
|
||||||
import assert from 'assert';
|
|
||||||
import { domToRect, last, Point, sleep } from '@toeverything/utils';
|
|
||||||
import { Commands } from '@toeverything/datasource/commands';
|
import { Commands } from '@toeverything/datasource/commands';
|
||||||
|
import { domToRect, last, Point, sleep } from '@toeverything/utils';
|
||||||
|
import assert from 'assert';
|
||||||
|
import type { WorkspaceAndBlockId } from './block';
|
||||||
|
import { AsyncBlock } from './block';
|
||||||
|
import { BlockHelper } from './block/block-helper';
|
||||||
import { BrowserClipboard } from './clipboard/browser-clipboard';
|
import { BrowserClipboard } from './clipboard/browser-clipboard';
|
||||||
import { ClipboardPopulator } from './clipboard/clipboard-populator';
|
import { ClipboardPopulator } from './clipboard/clipboard-populator';
|
||||||
import { BlockHelper } from './block/block-helper';
|
import { EditorCommands } from './commands';
|
||||||
import { DragDropManager } from './drag-drop';
|
|
||||||
import { EditorConfig } from './config';
|
import { EditorConfig } from './config';
|
||||||
|
import { DragDropManager } from './drag-drop';
|
||||||
|
import { KeyboardManager } from './keyboard';
|
||||||
|
import { MouseManager } from './mouse';
|
||||||
|
import { Hooks, PluginManager } from './plugin';
|
||||||
|
import { ScrollManager } from './scroll';
|
||||||
|
import { SelectionManager } from './selection';
|
||||||
|
import {
|
||||||
|
HooksRunner,
|
||||||
|
PluginCreator,
|
||||||
|
PluginHooks,
|
||||||
|
PluginManagerInterface,
|
||||||
|
StorageManager,
|
||||||
|
Virgo,
|
||||||
|
VirgoSelection,
|
||||||
|
} from './types';
|
||||||
|
import type { BaseView } from './views/base-view';
|
||||||
|
|
||||||
export interface EditorCtorProps {
|
export interface EditorCtorProps {
|
||||||
workspace: string;
|
workspace: string;
|
||||||
views: Partial<Record<keyof BlockFlavors, BaseView>>;
|
views: Partial<Record<keyof BlockFlavors, BaseView>>;
|
||||||
plugins: PluginCreator[];
|
plugins: PluginCreator[];
|
||||||
rootBlockId: string;
|
rootBlockId: string;
|
||||||
isWhiteboard?: boolean;
|
isEdgeless?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Editor implements Virgo {
|
export class Editor implements Virgo {
|
||||||
@@ -75,7 +75,7 @@ export class Editor implements Virgo {
|
|||||||
render: PatchNode;
|
render: PatchNode;
|
||||||
has: (key: string) => boolean;
|
has: (key: string) => boolean;
|
||||||
};
|
};
|
||||||
public isWhiteboard = false;
|
public isEdgeless = false;
|
||||||
private _isDisposed = false;
|
private _isDisposed = false;
|
||||||
|
|
||||||
constructor(props: EditorCtorProps) {
|
constructor(props: EditorCtorProps) {
|
||||||
@@ -85,8 +85,8 @@ export class Editor implements Virgo {
|
|||||||
this.hooks = new Hooks();
|
this.hooks = new Hooks();
|
||||||
this.plugin_manager = new PluginManager(this, this.hooks);
|
this.plugin_manager = new PluginManager(this, this.hooks);
|
||||||
this.plugin_manager.registerAll(props.plugins);
|
this.plugin_manager.registerAll(props.plugins);
|
||||||
if (props.isWhiteboard) {
|
if (props.isEdgeless) {
|
||||||
this.isWhiteboard = true;
|
this.isEdgeless = true;
|
||||||
}
|
}
|
||||||
for (const [name, block] of Object.entries(props.views)) {
|
for (const [name, block] of Object.entries(props.views)) {
|
||||||
services.api.editorBlock.registerContentExporter(
|
services.api.editorBlock.registerContentExporter(
|
||||||
@@ -148,18 +148,41 @@ export class Editor implements Virgo {
|
|||||||
public get container() {
|
public get container() {
|
||||||
return this.ui_container;
|
return this.ui_container;
|
||||||
}
|
}
|
||||||
// preference to use withSuspend
|
|
||||||
|
/**
|
||||||
|
* Use it discreetly.
|
||||||
|
* Preference to use {@link withBatch}
|
||||||
|
*/
|
||||||
public suspend(flag: boolean) {
|
public suspend(flag: boolean) {
|
||||||
services.api.editorBlock.suspend(this.workspace, flag);
|
services.api.editorBlock.suspend(this.workspace, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async withSuspend<T extends (...args: any[]) => any>(
|
// TODO support suspend recursion
|
||||||
|
private _isSuspend = false;
|
||||||
|
public withBatch<T extends (...args: any[]) => Promise<any>>(fn: T): T {
|
||||||
|
return (async (...args) => {
|
||||||
|
if (this._isSuspend) {
|
||||||
|
console.warn(
|
||||||
|
'The editor currently has suspend! Please do not call batch method repeatedly!'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this._isSuspend = true;
|
||||||
|
services.api.editorBlock.suspend(this.workspace, true);
|
||||||
|
const result = await fn(...args);
|
||||||
|
services.api.editorBlock.suspend(this.workspace, false);
|
||||||
|
this._isSuspend = false;
|
||||||
|
return result;
|
||||||
|
}) as T;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use it discreetly.
|
||||||
|
* Preference to use {@link withBatch}
|
||||||
|
*/
|
||||||
|
public async batch<T extends (...args: any[]) => any>(
|
||||||
fn: T
|
fn: T
|
||||||
): Promise<Awaited<ReturnType<T>>> {
|
): Promise<Awaited<ReturnType<T>>> {
|
||||||
services.api.editorBlock.suspend(this.workspace, true);
|
return this.withBatch(fn)();
|
||||||
const result = await fn();
|
|
||||||
services.api.editorBlock.suspend(this.workspace, false);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public setReactRenderRoot(props: {
|
public setReactRenderRoot(props: {
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export interface Virgo {
|
|||||||
getBlockDomById: (id: string) => Promise<HTMLElement>;
|
getBlockDomById: (id: string) => Promise<HTMLElement>;
|
||||||
getBlockByPoint: (point: Point) => Promise<AsyncBlock>;
|
getBlockByPoint: (point: Point) => Promise<AsyncBlock>;
|
||||||
getGroupBlockByPoint: (point: Point) => Promise<AsyncBlock>;
|
getGroupBlockByPoint: (point: Point) => Promise<AsyncBlock>;
|
||||||
isWhiteboard: boolean;
|
isEdgeless: boolean;
|
||||||
mouseManager: MouseManager;
|
mouseManager: MouseManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ export enum RecastScene {
|
|||||||
Page = 'page',
|
Page = 'page',
|
||||||
Kanban = 'kanban',
|
Kanban = 'kanban',
|
||||||
Table = 'table',
|
Table = 'table',
|
||||||
// Whiteboard = 'whiteboard',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type RecastViewId = string & {
|
export type RecastViewId = string & {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export class GroupMenuPlugin extends BasePlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override _onRender(): void {
|
protected override _onRender(): void {
|
||||||
if (this.editor.isWhiteboard) return;
|
if (this.editor.isEdgeless) return;
|
||||||
this.root = new PluginRenderRoot({
|
this.root = new PluginRenderRoot({
|
||||||
name: PLUGIN_NAME,
|
name: PLUGIN_NAME,
|
||||||
render: this.editor.reactRenderRoot.render,
|
render: this.editor.reactRenderRoot.render,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { StatusText } from './StatusText';
|
|||||||
import { StatusTrack } from './StatusTrack';
|
import { StatusTrack } from './StatusTrack';
|
||||||
import { DocMode } from './type';
|
import { DocMode } from './type';
|
||||||
|
|
||||||
const isBoard = (pathname: string): boolean => pathname.endsWith('/whiteboard');
|
const isBoard = (pathname: string): boolean => pathname.endsWith('/edgeless');
|
||||||
|
|
||||||
export const Switcher = () => {
|
export const Switcher = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
@@ -20,11 +20,11 @@ export const Switcher = () => {
|
|||||||
/**
|
/**
|
||||||
* There are two possible modes:
|
* There are two possible modes:
|
||||||
* Page mode: /{workspaceId}/{pageId}
|
* Page mode: /{workspaceId}/{pageId}
|
||||||
* Board mode: /{workspaceId}/{pageId}/whiteboard
|
* Board mode: /{workspaceId}/{pageId}/edgeless
|
||||||
*/
|
*/
|
||||||
const pageId = params['*'].split('/')[0];
|
const pageId = params['*'].split('/')[0];
|
||||||
const targetUrl = `/${workspaceId}/${pageId}${
|
const targetUrl = `/${workspaceId}/${pageId}${
|
||||||
targetViewMode === DocMode.board ? '/whiteboard' : ''
|
targetViewMode === DocMode.board ? '/edgeless' : ''
|
||||||
}`;
|
}`;
|
||||||
navigate(targetUrl);
|
navigate(targetUrl);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ function hideAffineHeader(pathname: string): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type HeaderIconProps = {
|
type HeaderIconProps = {
|
||||||
isWhiteboardView?: boolean;
|
isEdgelessView?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const AffineHeader = () => {
|
export const AffineHeader = () => {
|
||||||
@@ -38,7 +38,7 @@ export const AffineHeader = () => {
|
|||||||
const { toggleSettingsSidebar: toggleInfoSidebar } =
|
const { toggleSettingsSidebar: toggleInfoSidebar } =
|
||||||
useShowSettingsSidebar();
|
useShowSettingsSidebar();
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const isWhiteboardView = pathname.endsWith('/whiteboard');
|
const isEdgelessView = pathname.endsWith('/edgeless');
|
||||||
const pageHistoryPortalFlag = useFlag('BooleanPageHistoryPortal', false);
|
const pageHistoryPortalFlag = useFlag('BooleanPageHistoryPortal', false);
|
||||||
const pageSettingPortalFlag = useFlag('PageSettingPortal', false);
|
const pageSettingPortalFlag = useFlag('PageSettingPortal', false);
|
||||||
const BooleanPageSharePortal = useFlag('BooleanPageSharePortal', false);
|
const BooleanPageSharePortal = useFlag('BooleanPageSharePortal', false);
|
||||||
@@ -77,9 +77,9 @@ export const AffineHeader = () => {
|
|||||||
<Tooltip content="Doc">
|
<Tooltip content="Doc">
|
||||||
<HeaderIcon
|
<HeaderIcon
|
||||||
style={{ width: '80px' }}
|
style={{ width: '80px' }}
|
||||||
isWhiteboardView={!isWhiteboardView}
|
isEdgelessView={!isEdgelessView}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
isWhiteboardView
|
isEdgelessView
|
||||||
? navigate(
|
? navigate(
|
||||||
`/${
|
`/${
|
||||||
params['workspace_id'] ||
|
params['workspace_id'] ||
|
||||||
@@ -100,17 +100,17 @@ export const AffineHeader = () => {
|
|||||||
</span>
|
</span>
|
||||||
</HeaderIcon>
|
</HeaderIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip content="Whiteboard">
|
<Tooltip content="Edgeless">
|
||||||
<HeaderIcon
|
<HeaderIcon
|
||||||
isWhiteboardView={isWhiteboardView}
|
isEdgelessView={isEdgelessView}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
isWhiteboardView
|
isEdgelessView
|
||||||
? null
|
? null
|
||||||
: navigate(
|
: navigate(
|
||||||
`/${
|
`/${
|
||||||
params['workspace_id'] ||
|
params['workspace_id'] ||
|
||||||
'space'
|
'space'
|
||||||
}/${params['*']}` + '/whiteboard'
|
}/${params['*']}` + '/edgeless'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
@@ -166,14 +166,14 @@ const StyledHeaderRight = styled('div')`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const HeaderIcon = styled(IconButton, {
|
const HeaderIcon = styled(IconButton, {
|
||||||
shouldForwardProp: (prop: string) => prop !== 'isWhiteboardView',
|
shouldForwardProp: (prop: string) => prop !== 'isEdgelessView',
|
||||||
})<HeaderIconProps>(({ isWhiteboardView = false }) => ({
|
})<HeaderIconProps>(({ isEdgelessView = false }) => ({
|
||||||
color: '#98ACBD',
|
color: '#98ACBD',
|
||||||
minWidth: 48,
|
minWidth: 48,
|
||||||
width: 48,
|
width: 48,
|
||||||
height: 36,
|
height: 36,
|
||||||
borderRadius: '8px',
|
borderRadius: '8px',
|
||||||
...(isWhiteboardView && {
|
...(isEdgelessView && {
|
||||||
color: '#fff',
|
color: '#fff',
|
||||||
backgroundColor: '#3E6FDB',
|
backgroundColor: '#3E6FDB',
|
||||||
'&:hover': {
|
'&:hover': {
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ const Protocol = {
|
|||||||
quote: 'quote',
|
quote: 'quote',
|
||||||
toc: 'toc',
|
toc: 'toc',
|
||||||
database: 'database',
|
database: 'database',
|
||||||
whiteboard: 'whiteboard',
|
|
||||||
template: 'template',
|
template: 'template',
|
||||||
discussion: 'discussion',
|
discussion: 'discussion',
|
||||||
comment: 'comment',
|
comment: 'comment',
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ export enum GroupScene {
|
|||||||
page = 'page',
|
page = 'page',
|
||||||
table = 'table',
|
table = 'table',
|
||||||
kanban = 'kanban',
|
kanban = 'kanban',
|
||||||
whiteboard = 'whiteboard',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ export const BlockFlavors = {
|
|||||||
quote: 'quote' as const, // quote
|
quote: 'quote' as const, // quote
|
||||||
toc: 'toc' as const, //directory
|
toc: 'toc' as const, //directory
|
||||||
database: 'database' as const, //Multidimensional table
|
database: 'database' as const, //Multidimensional table
|
||||||
whiteboard: 'whiteboard' as const, // whiteboard
|
|
||||||
template: 'template' as const, // template
|
template: 'template' as const, // template
|
||||||
discussion: 'discussion' as const, // comment header
|
discussion: 'discussion' as const, // comment header
|
||||||
comment: 'comment' as const, // comment details
|
comment: 'comment' as const, // comment details
|
||||||
|
|||||||
@@ -71,7 +71,6 @@
|
|||||||
"got": "^12.1.0",
|
"got": "^12.1.0",
|
||||||
"level": "^8.0.0",
|
"level": "^8.0.0",
|
||||||
"level-read-stream": "1.1.0",
|
"level-read-stream": "1.1.0",
|
||||||
"next": "12.2.0",
|
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-router": "^6.3.0",
|
"react-router": "^6.3.0",
|
||||||
@@ -91,8 +90,6 @@
|
|||||||
"@nrwl/jest": "^14.4.0",
|
"@nrwl/jest": "^14.4.0",
|
||||||
"@nrwl/js": "^14.4.0",
|
"@nrwl/js": "^14.4.0",
|
||||||
"@nrwl/linter": "^14.4.0",
|
"@nrwl/linter": "^14.4.0",
|
||||||
"@nrwl/nest": "^14.4.0",
|
|
||||||
"@nrwl/next": "^14.4.0",
|
|
||||||
"@nrwl/node": "^14.4.0",
|
"@nrwl/node": "^14.4.0",
|
||||||
"@nrwl/nx-cloud": "^14.2.0",
|
"@nrwl/nx-cloud": "^14.2.0",
|
||||||
"@nrwl/react": "^14.4.0",
|
"@nrwl/react": "^14.4.0",
|
||||||
@@ -120,11 +117,9 @@
|
|||||||
"compression-webpack-plugin": "^10.0.0",
|
"compression-webpack-plugin": "^10.0.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"css-minimizer-webpack-plugin": "^4.0.0",
|
"css-minimizer-webpack-plugin": "^4.0.0",
|
||||||
"cypress": "^10.4.0",
|
|
||||||
"cz-customizable": "^5.3.0",
|
"cz-customizable": "^5.3.0",
|
||||||
"env-cmd": "^10.1.0",
|
"env-cmd": "^10.1.0",
|
||||||
"eslint": "^8.19.0",
|
"eslint": "^8.19.0",
|
||||||
"eslint-config-next": "12.2.0",
|
|
||||||
"eslint-config-prettier": "^8.5.0",
|
"eslint-config-prettier": "^8.5.0",
|
||||||
"eslint-plugin-cypress": "^2.10.3",
|
"eslint-plugin-cypress": "^2.10.3",
|
||||||
"eslint-plugin-filename-rules": "^1.2.0",
|
"eslint-plugin-filename-rules": "^1.2.0",
|
||||||
|
|||||||
556
pnpm-lock.yaml
generated
556
pnpm-lock.yaml
generated
@@ -17,8 +17,6 @@ importers:
|
|||||||
'@nrwl/jest': ^14.4.0
|
'@nrwl/jest': ^14.4.0
|
||||||
'@nrwl/js': ^14.4.0
|
'@nrwl/js': ^14.4.0
|
||||||
'@nrwl/linter': ^14.4.0
|
'@nrwl/linter': ^14.4.0
|
||||||
'@nrwl/nest': ^14.4.0
|
|
||||||
'@nrwl/next': ^14.4.0
|
|
||||||
'@nrwl/node': ^14.4.0
|
'@nrwl/node': ^14.4.0
|
||||||
'@nrwl/nx-cloud': ^14.2.0
|
'@nrwl/nx-cloud': ^14.2.0
|
||||||
'@nrwl/react': ^14.4.0
|
'@nrwl/react': ^14.4.0
|
||||||
@@ -49,11 +47,9 @@ importers:
|
|||||||
core-js: ^3.23.3
|
core-js: ^3.23.3
|
||||||
cross-env: ^7.0.3
|
cross-env: ^7.0.3
|
||||||
css-minimizer-webpack-plugin: ^4.0.0
|
css-minimizer-webpack-plugin: ^4.0.0
|
||||||
cypress: ^10.4.0
|
|
||||||
cz-customizable: ^5.3.0
|
cz-customizable: ^5.3.0
|
||||||
env-cmd: ^10.1.0
|
env-cmd: ^10.1.0
|
||||||
eslint: ^8.19.0
|
eslint: ^8.19.0
|
||||||
eslint-config-next: 12.2.0
|
|
||||||
eslint-config-prettier: ^8.5.0
|
eslint-config-prettier: ^8.5.0
|
||||||
eslint-plugin-cypress: ^2.10.3
|
eslint-plugin-cypress: ^2.10.3
|
||||||
eslint-plugin-filename-rules: ^1.2.0
|
eslint-plugin-filename-rules: ^1.2.0
|
||||||
@@ -71,7 +67,6 @@ importers:
|
|||||||
level: ^8.0.0
|
level: ^8.0.0
|
||||||
level-read-stream: 1.1.0
|
level-read-stream: 1.1.0
|
||||||
lint-staged: ^13.0.3
|
lint-staged: ^13.0.3
|
||||||
next: 12.2.0
|
|
||||||
nx: ^14.4.0
|
nx: ^14.4.0
|
||||||
prettier: ^2.7.1
|
prettier: ^2.7.1
|
||||||
react: ^18.2.0
|
react: ^18.2.0
|
||||||
@@ -101,7 +96,6 @@ importers:
|
|||||||
got: 12.1.0
|
got: 12.1.0
|
||||||
level: 8.0.0
|
level: 8.0.0
|
||||||
level-read-stream: 1.1.0
|
level-read-stream: 1.1.0
|
||||||
next: 12.2.0_beenoklgwfttvph5dgxj7na7aq
|
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
react-dom: 18.2.0_react@18.2.0
|
react-dom: 18.2.0_react@18.2.0
|
||||||
react-router: 6.3.0_react@18.2.0
|
react-router: 6.3.0_react@18.2.0
|
||||||
@@ -115,18 +109,16 @@ importers:
|
|||||||
'@headlessui/react': 1.6.5_biqbaboplfbrettd7655fr4n2y
|
'@headlessui/react': 1.6.5_biqbaboplfbrettd7655fr4n2y
|
||||||
'@heroicons/react': 1.0.6_react@18.2.0
|
'@heroicons/react': 1.0.6_react@18.2.0
|
||||||
'@nrwl/cli': 14.4.2_@swc+core@1.2.210
|
'@nrwl/cli': 14.4.2_@swc+core@1.2.210
|
||||||
'@nrwl/cypress': 14.4.2_3xokhr63pvhsh24r6gmwyvbcfi
|
'@nrwl/cypress': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
'@nrwl/eslint-plugin-nx': 14.4.2_afsbewstkdex5d4fc6xnpjlnau
|
'@nrwl/eslint-plugin-nx': 14.4.2_afsbewstkdex5d4fc6xnpjlnau
|
||||||
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
||||||
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
||||||
'@nrwl/nest': 14.4.2_e6qtqvxbhokjbvzxuqyvhc6pli
|
|
||||||
'@nrwl/next': 14.4.2_tij6xbouytihgovru6qahme53a
|
|
||||||
'@nrwl/node': 14.4.2_ehspof47b5bphcyk4536mwaw4u
|
'@nrwl/node': 14.4.2_ehspof47b5bphcyk4536mwaw4u
|
||||||
'@nrwl/nx-cloud': 14.2.0
|
'@nrwl/nx-cloud': 14.2.0
|
||||||
'@nrwl/react': 14.4.2_uzkaey7ewjmyys5ezff4uhptsm
|
'@nrwl/react': 14.4.2_46t6z7wulh2zjyi5wmxujdm57y
|
||||||
'@nrwl/tao': 14.4.2_@swc+core@1.2.210
|
'@nrwl/tao': 14.4.2_@swc+core@1.2.210
|
||||||
'@nrwl/web': 14.4.2_hikps3f6ih4xnq3f4csrxvfvzu
|
'@nrwl/web': 14.4.2_7ggz7ibmlwrqtwusxeq53zzcym
|
||||||
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
||||||
'@portabletext/react': 1.0.6_react@18.2.0
|
'@portabletext/react': 1.0.6_react@18.2.0
|
||||||
'@svgr/core': 6.2.1
|
'@svgr/core': 6.2.1
|
||||||
@@ -149,11 +141,9 @@ importers:
|
|||||||
compression-webpack-plugin: 10.0.0_webpack@5.74.0
|
compression-webpack-plugin: 10.0.0_webpack@5.74.0
|
||||||
cross-env: 7.0.3
|
cross-env: 7.0.3
|
||||||
css-minimizer-webpack-plugin: 4.0.0_webpack@5.74.0
|
css-minimizer-webpack-plugin: 4.0.0_webpack@5.74.0
|
||||||
cypress: 10.4.0
|
|
||||||
cz-customizable: 5.10.0
|
cz-customizable: 5.10.0
|
||||||
env-cmd: 10.1.0
|
env-cmd: 10.1.0
|
||||||
eslint: 8.19.0
|
eslint: 8.19.0
|
||||||
eslint-config-next: 12.2.0_4x5o4skxv6sl53vpwefgt23khm
|
|
||||||
eslint-config-prettier: 8.5.0_eslint@8.19.0
|
eslint-config-prettier: 8.5.0_eslint@8.19.0
|
||||||
eslint-plugin-cypress: 2.12.1_eslint@8.19.0
|
eslint-plugin-cypress: 2.12.1_eslint@8.19.0
|
||||||
eslint-plugin-filename-rules: 1.2.0
|
eslint-plugin-filename-rules: 1.2.0
|
||||||
@@ -219,6 +209,12 @@ importers:
|
|||||||
mini-css-extract-plugin: 2.6.1_webpack@5.74.0
|
mini-css-extract-plugin: 2.6.1_webpack@5.74.0
|
||||||
webpack: 5.74.0
|
webpack: 5.74.0
|
||||||
|
|
||||||
|
apps/ligo-virgo-e2e:
|
||||||
|
specifiers:
|
||||||
|
cypress: ^10.4.0
|
||||||
|
devDependencies:
|
||||||
|
cypress: 10.4.0
|
||||||
|
|
||||||
apps/venus:
|
apps/venus:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@emotion/react': ^11.10.0
|
'@emotion/react': ^11.10.0
|
||||||
@@ -681,36 +677,6 @@ packages:
|
|||||||
'@jridgewell/gen-mapping': 0.1.1
|
'@jridgewell/gen-mapping': 0.1.1
|
||||||
'@jridgewell/trace-mapping': 0.3.14
|
'@jridgewell/trace-mapping': 0.3.14
|
||||||
|
|
||||||
/@angular-devkit/core/13.3.5:
|
|
||||||
resolution: {integrity: sha512-w7vzK4VoYP9rLgxJ2SwEfrkpKybdD+QgQZlsDBzT0C6Ebp7b4gkNcNVFo8EiZvfDl6Yplw2IAP7g7fs3STn0hQ==}
|
|
||||||
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
|
|
||||||
peerDependencies:
|
|
||||||
chokidar: ^3.5.2
|
|
||||||
peerDependenciesMeta:
|
|
||||||
chokidar:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
ajv: 8.9.0
|
|
||||||
ajv-formats: 2.1.1
|
|
||||||
fast-json-stable-stringify: 2.1.0
|
|
||||||
magic-string: 0.25.7
|
|
||||||
rxjs: 6.6.7
|
|
||||||
source-map: 0.7.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@angular-devkit/schematics/13.3.5:
|
|
||||||
resolution: {integrity: sha512-0N/kL/Vfx0yVAEwa3HYxNx9wYb+G9r1JrLjJQQzDp+z9LtcojNf7j3oey6NXrDUs1WjVZOa/AIdRl3/DuaoG5w==}
|
|
||||||
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
|
|
||||||
dependencies:
|
|
||||||
'@angular-devkit/core': 13.3.5
|
|
||||||
jsonc-parser: 3.0.0
|
|
||||||
magic-string: 0.25.7
|
|
||||||
ora: 5.4.1
|
|
||||||
rxjs: 6.6.7
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- chokidar
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/code-frame/7.18.6:
|
/@babel/code-frame/7.18.6:
|
||||||
resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
|
resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@@ -4952,134 +4918,6 @@ packages:
|
|||||||
yargs: 17.5.1
|
yargs: 17.5.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@nestjs/schematics/8.0.11_typescript@4.7.4:
|
|
||||||
resolution: {integrity: sha512-W/WzaxgH5aE01AiIErE9QrQJ73VR/M/8p8pq0LZmjmNcjZqU5kQyOWUxZg13WYfSpJdOa62t6TZRtFDmgZPoIg==}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: ^3.4.5 || ^4.3.5
|
|
||||||
dependencies:
|
|
||||||
'@angular-devkit/core': 13.3.5
|
|
||||||
'@angular-devkit/schematics': 13.3.5
|
|
||||||
fs-extra: 10.1.0
|
|
||||||
jsonc-parser: 3.0.0
|
|
||||||
pluralize: 8.0.0
|
|
||||||
typescript: 4.7.4
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- chokidar
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@next/env/12.2.0:
|
|
||||||
resolution: {integrity: sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==}
|
|
||||||
|
|
||||||
/@next/eslint-plugin-next/12.2.0:
|
|
||||||
resolution: {integrity: sha512-nIj5xV/z3dOfeBnE7qFAjUQZAi4pTlIMuusRM6s/T6lOz8x7mjY5s1ZkTUBmcjPVCb2VIv3CrMH0WZL6xfjZZg==}
|
|
||||||
dependencies:
|
|
||||||
glob: 7.1.7
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@next/swc-android-arm-eabi/12.2.0:
|
|
||||||
resolution: {integrity: sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-android-arm64/12.2.0:
|
|
||||||
resolution: {integrity: sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-darwin-arm64/12.2.0:
|
|
||||||
resolution: {integrity: sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-darwin-x64/12.2.0:
|
|
||||||
resolution: {integrity: sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-freebsd-x64/12.2.0:
|
|
||||||
resolution: {integrity: sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [freebsd]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-linux-arm-gnueabihf/12.2.0:
|
|
||||||
resolution: {integrity: sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-linux-arm64-gnu/12.2.0:
|
|
||||||
resolution: {integrity: sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-linux-arm64-musl/12.2.0:
|
|
||||||
resolution: {integrity: sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-linux-x64-gnu/12.2.0:
|
|
||||||
resolution: {integrity: sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-linux-x64-musl/12.2.0:
|
|
||||||
resolution: {integrity: sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-win32-arm64-msvc/12.2.0:
|
|
||||||
resolution: {integrity: sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-win32-ia32-msvc/12.2.0:
|
|
||||||
resolution: {integrity: sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@next/swc-win32-x64-msvc/12.2.0:
|
|
||||||
resolution: {integrity: sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==}
|
|
||||||
engines: {node: '>= 10'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@nodelib/fs.scandir/2.1.5:
|
/@nodelib/fs.scandir/2.1.5:
|
||||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
@@ -5116,7 +4954,7 @@ packages:
|
|||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@nrwl/cypress/14.4.2_3xokhr63pvhsh24r6gmwyvbcfi:
|
/@nrwl/cypress/14.4.2_gtbxvtmh5ipj3piki3xg57n5fe:
|
||||||
resolution: {integrity: sha512-vek4tJYzaJwnLgeJLAJKWuCmtE+XWCq6IgmCl/4G/lWxTWGzlJ19ZK8MoCEiJqbnNYeoHZPxoaAGwyBAbVuO3w==}
|
resolution: {integrity: sha512-vek4tJYzaJwnLgeJLAJKWuCmtE+XWCq6IgmCl/4G/lWxTWGzlJ19ZK8MoCEiJqbnNYeoHZPxoaAGwyBAbVuO3w==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
cypress: '>= 3 < 10'
|
cypress: '>= 3 < 10'
|
||||||
@@ -5132,7 +4970,6 @@ packages:
|
|||||||
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
||||||
babel-loader: 8.2.5_m3opitmgss2x7fiy6klia7uvaa
|
babel-loader: 8.2.5_m3opitmgss2x7fiy6klia7uvaa
|
||||||
chalk: 4.1.0
|
chalk: 4.1.0
|
||||||
cypress: 10.4.0
|
|
||||||
enhanced-resolve: 5.10.0
|
enhanced-resolve: 5.10.0
|
||||||
fork-ts-checker-webpack-plugin: 6.2.10_wln64xm7gyszy6wbwhdijmigya
|
fork-ts-checker-webpack-plugin: 6.2.10_wln64xm7gyszy6wbwhdijmigya
|
||||||
rxjs: 6.6.7
|
rxjs: 6.6.7
|
||||||
@@ -5290,101 +5127,6 @@ packages:
|
|||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@nrwl/nest/14.4.2_e6qtqvxbhokjbvzxuqyvhc6pli:
|
|
||||||
resolution: {integrity: sha512-TVlY7UbWQLMjQyCwkos8IkLzhKz/58IPUqoE3Jr9syf8KJ+JCkVxndEcUSPMlEJWtfxdEjchNrOwZH5bWpZPBw==}
|
|
||||||
dependencies:
|
|
||||||
'@nestjs/schematics': 8.0.11_typescript@4.7.4
|
|
||||||
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
|
||||||
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
|
||||||
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
|
||||||
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
|
||||||
'@nrwl/node': 14.4.2_ehspof47b5bphcyk4536mwaw4u
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@swc-node/register'
|
|
||||||
- '@swc/core'
|
|
||||||
- '@swc/wasm'
|
|
||||||
- '@types/node'
|
|
||||||
- bufferutil
|
|
||||||
- canvas
|
|
||||||
- chokidar
|
|
||||||
- esbuild
|
|
||||||
- eslint
|
|
||||||
- node-notifier
|
|
||||||
- nx
|
|
||||||
- prettier
|
|
||||||
- supports-color
|
|
||||||
- ts-node
|
|
||||||
- typescript
|
|
||||||
- uglify-js
|
|
||||||
- utf-8-validate
|
|
||||||
- vue-template-compiler
|
|
||||||
- webpack-cli
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@nrwl/next/14.4.2_tij6xbouytihgovru6qahme53a:
|
|
||||||
resolution: {integrity: sha512-T8F8Fy7jJ7dNhLET14FhslD9lGzpUrzOQQfES5mb8LK0Y3kNyumGfCetAuFwkUEp/7aC5FxsZSc/32l4b6dxZA==}
|
|
||||||
peerDependencies:
|
|
||||||
next: ^12.1.0
|
|
||||||
dependencies:
|
|
||||||
'@babel/plugin-proposal-decorators': 7.18.6_@babel+core@7.18.6
|
|
||||||
'@nrwl/cypress': 14.4.2_3xokhr63pvhsh24r6gmwyvbcfi
|
|
||||||
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
|
||||||
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
|
||||||
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
|
||||||
'@nrwl/react': 14.4.2_uzkaey7ewjmyys5ezff4uhptsm
|
|
||||||
'@nrwl/web': 14.4.2_hikps3f6ih4xnq3f4csrxvfvzu
|
|
||||||
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
|
||||||
'@svgr/webpack': 6.2.1
|
|
||||||
chalk: 4.1.0
|
|
||||||
eslint-config-next: 12.2.0_4x5o4skxv6sl53vpwefgt23khm
|
|
||||||
fs-extra: 10.1.0
|
|
||||||
next: 12.2.0_beenoklgwfttvph5dgxj7na7aq
|
|
||||||
ts-node: 10.8.2_y42jqzo3jkzuv3kp7opavo2xbi
|
|
||||||
tsconfig-paths: 3.14.1
|
|
||||||
url-loader: 4.1.1_webpack@5.74.0
|
|
||||||
webpack-merge: 5.8.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@babel/core'
|
|
||||||
- '@parcel/css'
|
|
||||||
- '@swc-node/register'
|
|
||||||
- '@swc/core'
|
|
||||||
- '@swc/wasm'
|
|
||||||
- '@types/babel__core'
|
|
||||||
- '@types/node'
|
|
||||||
- '@types/webpack'
|
|
||||||
- '@typescript-eslint/parser'
|
|
||||||
- bufferutil
|
|
||||||
- canvas
|
|
||||||
- clean-css
|
|
||||||
- csso
|
|
||||||
- cypress
|
|
||||||
- debug
|
|
||||||
- esbuild
|
|
||||||
- eslint
|
|
||||||
- eslint-import-resolver-typescript
|
|
||||||
- eslint-import-resolver-webpack
|
|
||||||
- fibers
|
|
||||||
- file-loader
|
|
||||||
- html-webpack-plugin
|
|
||||||
- node-notifier
|
|
||||||
- node-sass
|
|
||||||
- nx
|
|
||||||
- prettier
|
|
||||||
- sass-embedded
|
|
||||||
- sockjs-client
|
|
||||||
- supports-color
|
|
||||||
- type-fest
|
|
||||||
- typescript
|
|
||||||
- uglify-js
|
|
||||||
- utf-8-validate
|
|
||||||
- vue-template-compiler
|
|
||||||
- webpack
|
|
||||||
- webpack-cli
|
|
||||||
- webpack-dev-server
|
|
||||||
- webpack-hot-middleware
|
|
||||||
- webpack-plugin-serve
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@nrwl/node/14.4.2_ehspof47b5bphcyk4536mwaw4u:
|
/@nrwl/node/14.4.2_ehspof47b5bphcyk4536mwaw4u:
|
||||||
resolution: {integrity: sha512-YMolQH3R/DTyPap3fQFWXvBaKJQG6l+msAUqzHp5OML3lPDg+zBYGW2kD1IsXpYq/ccpaot1ePS5K0JDpbZ8zQ==}
|
resolution: {integrity: sha512-YMolQH3R/DTyPap3fQFWXvBaKJQG6l+msAUqzHp5OML3lPDg+zBYGW2kD1IsXpYq/ccpaot1ePS5K0JDpbZ8zQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5446,18 +5188,18 @@ packages:
|
|||||||
- debug
|
- debug
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@nrwl/react/14.4.2_uzkaey7ewjmyys5ezff4uhptsm:
|
/@nrwl/react/14.4.2_46t6z7wulh2zjyi5wmxujdm57y:
|
||||||
resolution: {integrity: sha512-5OlTpa5wRgADkNuP55Ii0myZLqzcefwR+lMRSBFquwOzxQ5VEU9JCyZVeO4pBdVr1ibbIJoj1EfO+NnVpCtELg==}
|
resolution: {integrity: sha512-5OlTpa5wRgADkNuP55Ii0myZLqzcefwR+lMRSBFquwOzxQ5VEU9JCyZVeO4pBdVr1ibbIJoj1EfO+NnVpCtELg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.18.6
|
'@babel/core': 7.18.6
|
||||||
'@babel/preset-react': 7.18.6_@babel+core@7.18.6
|
'@babel/preset-react': 7.18.6_@babel+core@7.18.6
|
||||||
'@nrwl/cypress': 14.4.2_3xokhr63pvhsh24r6gmwyvbcfi
|
'@nrwl/cypress': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
||||||
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
||||||
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
||||||
'@nrwl/storybook': 14.4.2_yflzlx5dxniwxy53i7vvsdpbmy
|
'@nrwl/storybook': 14.4.2_brofqo76x5gdh2qufyuyzjmfne
|
||||||
'@nrwl/web': 14.4.2_hikps3f6ih4xnq3f4csrxvfvzu
|
'@nrwl/web': 14.4.2_7ggz7ibmlwrqtwusxeq53zzcym
|
||||||
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
||||||
'@pmmmwh/react-refresh-webpack-plugin': 0.5.7_bgbvhssx5jbdjtmrq4m55itcsu
|
'@pmmmwh/react-refresh-webpack-plugin': 0.5.7_bgbvhssx5jbdjtmrq4m55itcsu
|
||||||
'@storybook/node-logger': 6.1.20
|
'@storybook/node-logger': 6.1.20
|
||||||
@@ -5513,10 +5255,10 @@ packages:
|
|||||||
- webpack-plugin-serve
|
- webpack-plugin-serve
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@nrwl/storybook/14.4.2_yflzlx5dxniwxy53i7vvsdpbmy:
|
/@nrwl/storybook/14.4.2_brofqo76x5gdh2qufyuyzjmfne:
|
||||||
resolution: {integrity: sha512-G6h3jQT+pIY0RAEbeclguEFSAIXsToRVKEeRyq1bk6fWJHy7y//bCeJrINL9xPf9zk12cWyKkjJvwsOcy0Z1Mw==}
|
resolution: {integrity: sha512-G6h3jQT+pIY0RAEbeclguEFSAIXsToRVKEeRyq1bk6fWJHy7y//bCeJrINL9xPf9zk12cWyKkjJvwsOcy0Z1Mw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nrwl/cypress': 14.4.2_3xokhr63pvhsh24r6gmwyvbcfi
|
'@nrwl/cypress': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
||||||
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
'@nrwl/linter': 14.4.2_jqnzvbaca4rx3byobgjku3onji
|
||||||
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
'@nrwl/workspace': 14.4.2_a22ftc74wzukohhtmp6cnnvzoq
|
||||||
@@ -5555,7 +5297,7 @@ packages:
|
|||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@nrwl/web/14.4.2_hikps3f6ih4xnq3f4csrxvfvzu:
|
/@nrwl/web/14.4.2_7ggz7ibmlwrqtwusxeq53zzcym:
|
||||||
resolution: {integrity: sha512-x00dE67yDRC3zmVEdO1HdtIbPezZ5gSKmNmEL2++PrA6AUz3a+f7/Ahhs4ALxnEPx1oDRLzM5OxRb5w6kLmGfw==}
|
resolution: {integrity: sha512-x00dE67yDRC3zmVEdO1HdtIbPezZ5gSKmNmEL2++PrA6AUz3a+f7/Ahhs4ALxnEPx1oDRLzM5OxRb5w6kLmGfw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.18.6
|
'@babel/core': 7.18.6
|
||||||
@@ -5566,7 +5308,7 @@ packages:
|
|||||||
'@babel/preset-env': 7.18.6_@babel+core@7.18.6
|
'@babel/preset-env': 7.18.6_@babel+core@7.18.6
|
||||||
'@babel/preset-typescript': 7.18.6_@babel+core@7.18.6
|
'@babel/preset-typescript': 7.18.6_@babel+core@7.18.6
|
||||||
'@babel/runtime': 7.18.6
|
'@babel/runtime': 7.18.6
|
||||||
'@nrwl/cypress': 14.4.2_3xokhr63pvhsh24r6gmwyvbcfi
|
'@nrwl/cypress': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
'@nrwl/devkit': 14.4.2_nx@14.4.2
|
||||||
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
'@nrwl/jest': 14.4.2_dltevkctzdxkrvyldbyepwbdle
|
||||||
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
'@nrwl/js': 14.4.2_gtbxvtmh5ipj3piki3xg57n5fe
|
||||||
@@ -6011,10 +5753,6 @@ packages:
|
|||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@rushstack/eslint-patch/1.1.4:
|
|
||||||
resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@sinclair/typebox/0.23.5:
|
/@sinclair/typebox/0.23.5:
|
||||||
resolution: {integrity: sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==}
|
resolution: {integrity: sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -6376,11 +6114,6 @@ packages:
|
|||||||
'@swc/core-win32-ia32-msvc': 1.2.210
|
'@swc/core-win32-ia32-msvc': 1.2.210
|
||||||
'@swc/core-win32-x64-msvc': 1.2.210
|
'@swc/core-win32-x64-msvc': 1.2.210
|
||||||
|
|
||||||
/@swc/helpers/0.4.2:
|
|
||||||
resolution: {integrity: sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==}
|
|
||||||
dependencies:
|
|
||||||
tslib: 2.4.0
|
|
||||||
|
|
||||||
/@swc/helpers/0.4.3:
|
/@swc/helpers/0.4.3:
|
||||||
resolution: {integrity: sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==}
|
resolution: {integrity: sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -7365,15 +7098,6 @@ packages:
|
|||||||
uri-js: 4.4.1
|
uri-js: 4.4.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ajv/8.9.0:
|
|
||||||
resolution: {integrity: sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==}
|
|
||||||
dependencies:
|
|
||||||
fast-deep-equal: 3.1.3
|
|
||||||
json-schema-traverse: 1.0.0
|
|
||||||
require-from-string: 2.0.2
|
|
||||||
uri-js: 4.4.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/ansi-colors/4.1.3:
|
/ansi-colors/4.1.3:
|
||||||
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -8501,11 +8225,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mimic-response: 1.0.1
|
mimic-response: 1.0.1
|
||||||
|
|
||||||
/clone/1.0.4:
|
|
||||||
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
|
|
||||||
engines: {node: '>=0.8'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/clsx/1.2.0:
|
/clsx/1.2.0:
|
||||||
resolution: {integrity: sha512-EPRP7XJsM1y0iCU3Z7C7jFKdQboXSeHgEfzQUTlz7m5NP3hDrlz48aUsmNGp4pC+JOW9WA3vIRqlYuo/bl4Drw==}
|
resolution: {integrity: sha512-EPRP7XJsM1y0iCU3Z7C7jFKdQboXSeHgEfzQUTlz7m5NP3hDrlz48aUsmNGp4pC+JOW9WA3vIRqlYuo/bl4Drw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -9332,12 +9051,6 @@ packages:
|
|||||||
execa: 5.1.1
|
execa: 5.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/defaults/1.0.3:
|
|
||||||
resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==}
|
|
||||||
dependencies:
|
|
||||||
clone: 1.0.4
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/defer-to-connect/2.0.1:
|
/defer-to-connect/2.0.1:
|
||||||
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
|
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -9782,31 +9495,6 @@ packages:
|
|||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-config-next/12.2.0_4x5o4skxv6sl53vpwefgt23khm:
|
|
||||||
resolution: {integrity: sha512-QWzNegadFXjQ0h3hixnLacRM9Kot85vQefyNsA8IeOnERZMz0Gvays1W6DMCjSxJbnCwuWaMXj9DCpar5IahRA==}
|
|
||||||
peerDependencies:
|
|
||||||
eslint: ^7.23.0 || ^8.0.0
|
|
||||||
typescript: '>=3.3.1'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
typescript:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@next/eslint-plugin-next': 12.2.0
|
|
||||||
'@rushstack/eslint-patch': 1.1.4
|
|
||||||
'@typescript-eslint/parser': 5.30.5_4x5o4skxv6sl53vpwefgt23khm
|
|
||||||
eslint: 8.19.0
|
|
||||||
eslint-import-resolver-node: 0.3.6
|
|
||||||
eslint-import-resolver-typescript: 2.7.1_q2xwze32dd33a2fc2qubwr4ie4
|
|
||||||
eslint-plugin-import: 2.26.0_6o2fuefo7gfpbr7nbqwgu7w4mq
|
|
||||||
eslint-plugin-jsx-a11y: 6.6.0_eslint@8.19.0
|
|
||||||
eslint-plugin-react: 7.30.1_eslint@8.19.0
|
|
||||||
eslint-plugin-react-hooks: 4.6.0_eslint@8.19.0
|
|
||||||
typescript: 4.7.4
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- eslint-import-resolver-webpack
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/eslint-config-prettier/8.5.0_eslint@8.19.0:
|
/eslint-config-prettier/8.5.0_eslint@8.19.0:
|
||||||
resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
|
resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -9825,24 +9513,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-import-resolver-typescript/2.7.1_q2xwze32dd33a2fc2qubwr4ie4:
|
|
||||||
resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
peerDependencies:
|
|
||||||
eslint: '*'
|
|
||||||
eslint-plugin-import: '*'
|
|
||||||
dependencies:
|
|
||||||
debug: 4.3.4
|
|
||||||
eslint: 8.19.0
|
|
||||||
eslint-plugin-import: 2.26.0_6o2fuefo7gfpbr7nbqwgu7w4mq
|
|
||||||
glob: 7.2.3
|
|
||||||
is-glob: 4.0.3
|
|
||||||
resolve: 1.22.1
|
|
||||||
tsconfig-paths: 3.14.1
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/eslint-module-utils/2.7.3_ea34krk32wbcqzxapvwr7rsjs4:
|
/eslint-module-utils/2.7.3_ea34krk32wbcqzxapvwr7rsjs4:
|
||||||
resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
|
resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -9869,33 +9539,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-module-utils/2.7.3_ngc5pgxzrdnldt43xbcfncn6si:
|
|
||||||
resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
peerDependencies:
|
|
||||||
'@typescript-eslint/parser': '*'
|
|
||||||
eslint-import-resolver-node: '*'
|
|
||||||
eslint-import-resolver-typescript: '*'
|
|
||||||
eslint-import-resolver-webpack: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@typescript-eslint/parser':
|
|
||||||
optional: true
|
|
||||||
eslint-import-resolver-node:
|
|
||||||
optional: true
|
|
||||||
eslint-import-resolver-typescript:
|
|
||||||
optional: true
|
|
||||||
eslint-import-resolver-webpack:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@typescript-eslint/parser': 5.30.5_4x5o4skxv6sl53vpwefgt23khm
|
|
||||||
debug: 3.2.7
|
|
||||||
eslint-import-resolver-node: 0.3.6
|
|
||||||
eslint-import-resolver-typescript: 2.7.1_q2xwze32dd33a2fc2qubwr4ie4
|
|
||||||
find-up: 2.1.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/eslint-plugin-cypress/2.12.1_eslint@8.19.0:
|
/eslint-plugin-cypress/2.12.1_eslint@8.19.0:
|
||||||
resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==}
|
resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -9910,37 +9553,6 @@ packages:
|
|||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-import/2.26.0_6o2fuefo7gfpbr7nbqwgu7w4mq:
|
|
||||||
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
peerDependencies:
|
|
||||||
'@typescript-eslint/parser': '*'
|
|
||||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@typescript-eslint/parser':
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@typescript-eslint/parser': 5.30.5_4x5o4skxv6sl53vpwefgt23khm
|
|
||||||
array-includes: 3.1.5
|
|
||||||
array.prototype.flat: 1.3.0
|
|
||||||
debug: 2.6.9
|
|
||||||
doctrine: 2.1.0
|
|
||||||
eslint: 8.19.0
|
|
||||||
eslint-import-resolver-node: 0.3.6
|
|
||||||
eslint-module-utils: 2.7.3_ngc5pgxzrdnldt43xbcfncn6si
|
|
||||||
has: 1.0.3
|
|
||||||
is-core-module: 2.9.0
|
|
||||||
is-glob: 4.0.3
|
|
||||||
minimatch: 3.1.2
|
|
||||||
object.values: 1.1.5
|
|
||||||
resolve: 1.22.1
|
|
||||||
tsconfig-paths: 3.14.1
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- eslint-import-resolver-typescript
|
|
||||||
- eslint-import-resolver-webpack
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/eslint-plugin-import/2.26.0_iom7pm3yknyiblqpw2vvqvxs5i:
|
/eslint-plugin-import/2.26.0_iom7pm3yknyiblqpw2vvqvxs5i:
|
||||||
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
|
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -11129,17 +10741,6 @@ packages:
|
|||||||
path-is-absolute: 1.0.1
|
path-is-absolute: 1.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/glob/7.1.7:
|
|
||||||
resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
|
|
||||||
dependencies:
|
|
||||||
fs.realpath: 1.0.0
|
|
||||||
inflight: 1.0.6
|
|
||||||
inherits: 2.0.4
|
|
||||||
minimatch: 3.1.2
|
|
||||||
once: 1.4.0
|
|
||||||
path-is-absolute: 1.0.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/glob/7.2.3:
|
/glob/7.2.3:
|
||||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -12072,11 +11673,6 @@ packages:
|
|||||||
is-path-inside: 3.0.3
|
is-path-inside: 3.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/is-interactive/1.0.0:
|
|
||||||
resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
|
|
||||||
engines: {node: '>=8'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/is-module/1.0.0:
|
/is-module/1.0.0:
|
||||||
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
|
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -13942,12 +13538,6 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/magic-string/0.25.7:
|
|
||||||
resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==}
|
|
||||||
dependencies:
|
|
||||||
sourcemap-codec: 1.4.8
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/magic-string/0.25.9:
|
/magic-string/0.25.9:
|
||||||
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
|
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -14284,54 +13874,6 @@ packages:
|
|||||||
/neo-async/2.6.2:
|
/neo-async/2.6.2:
|
||||||
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
||||||
|
|
||||||
/next/12.2.0_beenoklgwfttvph5dgxj7na7aq:
|
|
||||||
resolution: {integrity: sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==}
|
|
||||||
engines: {node: '>=12.22.0'}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
fibers: '>= 3.1.0'
|
|
||||||
node-sass: ^6.0.0 || ^7.0.0
|
|
||||||
react: ^17.0.2 || ^18.0.0-0
|
|
||||||
react-dom: ^17.0.2 || ^18.0.0-0
|
|
||||||
sass: ^1.3.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
fibers:
|
|
||||||
optional: true
|
|
||||||
node-sass:
|
|
||||||
optional: true
|
|
||||||
react:
|
|
||||||
optional: true
|
|
||||||
react-dom:
|
|
||||||
optional: true
|
|
||||||
sass:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@next/env': 12.2.0
|
|
||||||
'@swc/helpers': 0.4.2
|
|
||||||
caniuse-lite: 1.0.30001363
|
|
||||||
postcss: 8.4.5
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0_react@18.2.0
|
|
||||||
styled-jsx: 5.0.2_2sb3a56iojvze2npkgcccbebf4
|
|
||||||
use-sync-external-store: 1.1.0_react@18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@next/swc-android-arm-eabi': 12.2.0
|
|
||||||
'@next/swc-android-arm64': 12.2.0
|
|
||||||
'@next/swc-darwin-arm64': 12.2.0
|
|
||||||
'@next/swc-darwin-x64': 12.2.0
|
|
||||||
'@next/swc-freebsd-x64': 12.2.0
|
|
||||||
'@next/swc-linux-arm-gnueabihf': 12.2.0
|
|
||||||
'@next/swc-linux-arm64-gnu': 12.2.0
|
|
||||||
'@next/swc-linux-arm64-musl': 12.2.0
|
|
||||||
'@next/swc-linux-x64-gnu': 12.2.0
|
|
||||||
'@next/swc-linux-x64-musl': 12.2.0
|
|
||||||
'@next/swc-win32-arm64-msvc': 12.2.0
|
|
||||||
'@next/swc-win32-ia32-msvc': 12.2.0
|
|
||||||
'@next/swc-win32-x64-msvc': 12.2.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@babel/core'
|
|
||||||
- babel-plugin-macros
|
|
||||||
|
|
||||||
/nice-try/1.0.5:
|
/nice-try/1.0.5:
|
||||||
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -14684,21 +14226,6 @@ packages:
|
|||||||
bin-wrapper: 4.1.0
|
bin-wrapper: 4.1.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ora/5.4.1:
|
|
||||||
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
dependencies:
|
|
||||||
bl: 4.1.0
|
|
||||||
chalk: 4.1.2
|
|
||||||
cli-cursor: 3.1.0
|
|
||||||
cli-spinners: 2.6.1
|
|
||||||
is-interactive: 1.0.0
|
|
||||||
is-unicode-supported: 0.1.0
|
|
||||||
log-symbols: 4.1.0
|
|
||||||
strip-ansi: 6.0.1
|
|
||||||
wcwidth: 1.0.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/os-filter-obj/2.0.0:
|
/os-filter-obj/2.0.0:
|
||||||
resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==}
|
resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -15071,11 +14598,6 @@ packages:
|
|||||||
find-up: 5.0.0
|
find-up: 5.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/pluralize/8.0.0:
|
|
||||||
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/portfinder/1.0.28:
|
/portfinder/1.0.28:
|
||||||
resolution: {integrity: sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==}
|
resolution: {integrity: sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==}
|
||||||
engines: {node: '>= 0.12.0'}
|
engines: {node: '>= 0.12.0'}
|
||||||
@@ -15491,14 +15013,6 @@ packages:
|
|||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
source-map-js: 1.0.2
|
source-map-js: 1.0.2
|
||||||
|
|
||||||
/postcss/8.4.5:
|
|
||||||
resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==}
|
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
|
||||||
dependencies:
|
|
||||||
nanoid: 3.3.4
|
|
||||||
picocolors: 1.0.0
|
|
||||||
source-map-js: 1.0.2
|
|
||||||
|
|
||||||
/prelude-ls/1.1.2:
|
/prelude-ls/1.1.2:
|
||||||
resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
|
resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
|
||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 0.8.0'}
|
||||||
@@ -17267,24 +16781,6 @@ packages:
|
|||||||
- webpack
|
- webpack
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/styled-jsx/5.0.2_2sb3a56iojvze2npkgcccbebf4:
|
|
||||||
resolution: {integrity: sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==}
|
|
||||||
engines: {node: '>= 12.0.0'}
|
|
||||||
peerDependencies:
|
|
||||||
'@babel/core': '*'
|
|
||||||
babel-plugin-macros: '*'
|
|
||||||
react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@babel/core':
|
|
||||||
optional: true
|
|
||||||
babel-plugin-macros:
|
|
||||||
optional: true
|
|
||||||
react:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@babel/core': 7.18.6
|
|
||||||
react: 18.2.0
|
|
||||||
|
|
||||||
/stylehacks/5.1.0_postcss@8.4.14:
|
/stylehacks/5.1.0_postcss@8.4.14:
|
||||||
resolution: {integrity: sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==}
|
resolution: {integrity: sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==}
|
||||||
engines: {node: ^10 || ^12 || >=14.0}
|
engines: {node: ^10 || ^12 || >=14.0}
|
||||||
@@ -18019,16 +17515,6 @@ packages:
|
|||||||
querystring: 0.2.0
|
querystring: 0.2.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use-sync-external-store/1.1.0_react@18.2.0:
|
|
||||||
resolution: {integrity: sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==}
|
|
||||||
peerDependencies:
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
react:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
|
|
||||||
/user-home/2.0.0:
|
/user-home/2.0.0:
|
||||||
resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==}
|
resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -18150,12 +17636,6 @@ packages:
|
|||||||
minimalistic-assert: 1.0.1
|
minimalistic-assert: 1.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/wcwidth/1.0.1:
|
|
||||||
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
|
|
||||||
dependencies:
|
|
||||||
defaults: 1.0.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/webidl-conversions/3.0.1:
|
/webidl-conversions/3.0.1:
|
||||||
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user