dark
7 months ago
36 changed files with 2113 additions and 383 deletions
-
7package.json
-
9src/App.tsx
-
15src/components/breadcrumb/index.tsx
-
16src/components/config-provider/index.tsx
-
182src/components/draggable-panel/DraggablePanel.tsx
-
258src/components/draggable-panel/FixMode.tsx
-
182src/components/draggable-panel/FloatMode.tsx
-
3src/components/draggable-panel/index.ts
-
183src/components/draggable-panel/style.ts
-
5src/components/icon/action/ActionIcon.tsx
-
6src/components/icon/action/style.ts
-
9src/components/icon/index.tsx
-
1src/components/icon/picker/Display.tsx
-
9src/components/icon/types.ts
-
2src/i18n.ts
-
8src/index.css
-
9src/layout/RootLayout.tsx
-
21src/layout/style.ts
-
2src/pages/login/index.css
-
30src/pages/login/index.tsx
-
130src/pages/login/style.ts
-
32src/pages/system/menus/components/BatchButton.tsx
-
97src/pages/system/menus/components/ButtonTable.tsx
-
103src/pages/system/menus/components/MenuTree.tsx
-
66src/pages/system/menus/components/TreeNodeRender.tsx
-
171src/pages/system/menus/index.tsx
-
40src/pages/system/menus/store.ts
-
72src/pages/system/menus/style.ts
-
36src/request.ts
-
6src/service/base.ts
-
9src/store/system.ts
-
8src/store/user.ts
-
2src/theme/themes/antdTheme.ts
-
1src/theme/themes/token.ts
-
29src/utils/index.ts
-
253yarn.lock
@ -0,0 +1,182 @@ |
|||||
|
import type { NumberSize, Size } from 're-resizable' |
||||
|
import type { CSSProperties, FC, ReactNode } from 'react' |
||||
|
import { memo } from 'react' |
||||
|
import type { Props as RndProps } from 'react-rnd' |
||||
|
import { withProvider } from '@/components/config-provider' |
||||
|
import { FixMode } from './FixMode' |
||||
|
import { FloatMode } from './FloatMode' |
||||
|
|
||||
|
export interface DraggablePanelProps { |
||||
|
/** |
||||
|
* 位置, |
||||
|
* 使用固定模式或者浮动窗口 |
||||
|
*/ |
||||
|
mode?: 'fixed' | 'float'; |
||||
|
|
||||
|
/** |
||||
|
* 固定模式下面板的朝向,默认放置在右侧 |
||||
|
* @default right |
||||
|
*/ |
||||
|
placement?: 'right' | 'left' | 'top' | 'bottom'; |
||||
|
|
||||
|
/** |
||||
|
* 最小宽度 |
||||
|
*/ |
||||
|
minWidth?: number; |
||||
|
/** |
||||
|
* 最小高度 |
||||
|
*/ |
||||
|
minHeight?: number; |
||||
|
/** |
||||
|
* 最大宽度 |
||||
|
*/ |
||||
|
maxWidth?: number; |
||||
|
/** |
||||
|
* 最大高度 |
||||
|
*/ |
||||
|
maxHeight?: number; |
||||
|
/** |
||||
|
* 控制可缩放区域 |
||||
|
*/ |
||||
|
resize?: RndProps['enableResizing']; |
||||
|
/** |
||||
|
* 面板尺寸 |
||||
|
* |
||||
|
*/ |
||||
|
size?: Partial<Size>; |
||||
|
onSizeChange?: (delta: NumberSize, size?: Size) => void; |
||||
|
/** |
||||
|
* 当用户在拖拽过程中触发 |
||||
|
* @param delta |
||||
|
* @param size |
||||
|
*/ |
||||
|
onSizeDragging?: (delta: NumberSize, size?: Size) => void; |
||||
|
/** |
||||
|
* 是否可展开 |
||||
|
* @default true |
||||
|
*/ |
||||
|
expandable?: boolean; |
||||
|
/** |
||||
|
* 当前是否是展开态 |
||||
|
*/ |
||||
|
isExpand?: boolean; |
||||
|
/** |
||||
|
* 展开是否可以变更 |
||||
|
* @param expand |
||||
|
*/ |
||||
|
onExpandChange?: (expand: boolean) => void; |
||||
|
/** |
||||
|
* 面板位置 |
||||
|
* 受控模式 |
||||
|
*/ |
||||
|
position?: RndProps['position']; |
||||
|
/** |
||||
|
* 面板默认尺寸 |
||||
|
* 固定模式下: width 320px height 100% |
||||
|
* 浮动模式下:width 320px height 400px |
||||
|
*/ |
||||
|
defaultSize?: Partial<Size>; |
||||
|
/** |
||||
|
* 面板默认位置悬浮模式下有效 |
||||
|
* @default [100,100] |
||||
|
*/ |
||||
|
defaultPosition?: RndProps['position']; |
||||
|
/** |
||||
|
* 位置变更回调 |
||||
|
*/ |
||||
|
onPositionChange?: (position: RndProps['position']) => void; |
||||
|
/** |
||||
|
* 样式 |
||||
|
*/ |
||||
|
style?: CSSProperties; |
||||
|
/** |
||||
|
* 类名 |
||||
|
*/ |
||||
|
className?: string; |
||||
|
/** |
||||
|
* 内容 |
||||
|
*/ |
||||
|
children: ReactNode; |
||||
|
} |
||||
|
|
||||
|
const Draggable: FC<DraggablePanelProps> = memo( |
||||
|
({ |
||||
|
children, |
||||
|
className, |
||||
|
mode, |
||||
|
placement, |
||||
|
resize, |
||||
|
style, |
||||
|
position, |
||||
|
onPositionChange, |
||||
|
size, |
||||
|
defaultSize, |
||||
|
defaultPosition, |
||||
|
minWidth, |
||||
|
minHeight, |
||||
|
maxHeight, |
||||
|
maxWidth, |
||||
|
onSizeChange, |
||||
|
onSizeDragging, |
||||
|
expandable = true, |
||||
|
isExpand, |
||||
|
onExpandChange, |
||||
|
}) => { |
||||
|
switch (mode) { |
||||
|
case 'fixed': |
||||
|
default: |
||||
|
return ( |
||||
|
<FixMode |
||||
|
// 尺寸
|
||||
|
size={size} |
||||
|
defaultSize={defaultSize} |
||||
|
onSizeDragging={onSizeDragging} |
||||
|
onSizeChange={onSizeChange} |
||||
|
minHeight={minHeight} |
||||
|
minWidth={minWidth} |
||||
|
maxHeight={maxHeight} |
||||
|
maxWidth={maxWidth} |
||||
|
// 缩放
|
||||
|
resize={resize} |
||||
|
onExpandChange={onExpandChange} |
||||
|
expandable={expandable} |
||||
|
isExpand={isExpand} |
||||
|
className={className} |
||||
|
placement={placement} |
||||
|
style={style} |
||||
|
> |
||||
|
{children} |
||||
|
</FixMode> |
||||
|
) |
||||
|
case 'float': |
||||
|
return ( |
||||
|
<FloatMode |
||||
|
// 坐标
|
||||
|
defaultPosition={defaultPosition} |
||||
|
position={position} |
||||
|
onPositionChange={onPositionChange} |
||||
|
// 尺寸
|
||||
|
minHeight={minHeight} |
||||
|
minWidth={minWidth} |
||||
|
maxHeight={maxHeight} |
||||
|
maxWidth={maxWidth} |
||||
|
defaultSize={defaultSize} |
||||
|
size={size} |
||||
|
onSizeDragging={onSizeDragging} |
||||
|
onSizeChange={onSizeChange} |
||||
|
// 缩放
|
||||
|
resize={resize} |
||||
|
canResizing={resize !== false} |
||||
|
className={className} |
||||
|
style={style} |
||||
|
> |
||||
|
{children} |
||||
|
</FloatMode> |
||||
|
) |
||||
|
} |
||||
|
}, |
||||
|
) |
||||
|
|
||||
|
const WithProviderDraggable: FC<DraggablePanelProps> = withProvider(Draggable) |
||||
|
|
||||
|
export { WithProviderDraggable as Draggable } |
@ -0,0 +1,258 @@ |
|||||
|
import type { Enable, NumberSize, Size } from 're-resizable' |
||||
|
import { HandleClassName, Resizable } from 're-resizable' |
||||
|
import type { CSSProperties, FC, ReactNode } from 'react' |
||||
|
import { memo, useMemo } from 'react' |
||||
|
import { Center } from 'react-layout-kit' |
||||
|
import type { Props as RndProps } from 'react-rnd' |
||||
|
import useControlledState from 'use-merge-value' |
||||
|
|
||||
|
import { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '@ant-design/icons' |
||||
|
import { useStyle } from './style' |
||||
|
|
||||
|
export interface FixModePanelProps { |
||||
|
/** |
||||
|
* 位置, |
||||
|
* 使用固定模式或者浮动窗口 |
||||
|
*/ |
||||
|
mode?: 'fixed' | 'float'; |
||||
|
|
||||
|
/** |
||||
|
* 固定模式下面板的朝向,默认放置在右侧 |
||||
|
* @default right |
||||
|
*/ |
||||
|
placement: 'right' | 'left' | 'top' | 'bottom' | undefined; |
||||
|
|
||||
|
/** |
||||
|
* 最小宽度 |
||||
|
*/ |
||||
|
minWidth?: number; |
||||
|
/** |
||||
|
* 最小高度 |
||||
|
*/ |
||||
|
minHeight?: number; |
||||
|
|
||||
|
/** |
||||
|
* 最大宽度 |
||||
|
*/ |
||||
|
maxWidth?: number; |
||||
|
/** |
||||
|
* 最大高度 |
||||
|
*/ |
||||
|
maxHeight?: number; |
||||
|
/** |
||||
|
* 控制可缩放区域 |
||||
|
*/ |
||||
|
resize?: RndProps['enableResizing']; |
||||
|
/** |
||||
|
* 面板尺寸 |
||||
|
* |
||||
|
*/ |
||||
|
size?: Partial<Size>; |
||||
|
onSizeChange?: (delta: NumberSize, size?: Size) => void; |
||||
|
/** |
||||
|
* 当用户在拖拽过程中触发 |
||||
|
* @param delta |
||||
|
* @param size |
||||
|
*/ |
||||
|
onSizeDragging?: (delta: NumberSize, size?: Size) => void; |
||||
|
/** |
||||
|
* 是否可展开 |
||||
|
* @default true |
||||
|
*/ |
||||
|
expandable?: boolean; |
||||
|
/** |
||||
|
* 当前是否是展开态 |
||||
|
*/ |
||||
|
isExpand?: boolean; |
||||
|
/** |
||||
|
* 展开是否可以变更 |
||||
|
* @param expand |
||||
|
*/ |
||||
|
onExpandChange?: (expand: boolean) => void; |
||||
|
/** |
||||
|
* 面板位置 |
||||
|
* 受控模式 |
||||
|
*/ |
||||
|
position?: RndProps['position']; |
||||
|
/** |
||||
|
* 面板默认尺寸 |
||||
|
* 固定模式下: width 320px height 100% |
||||
|
* 浮动模式下:width 320px height 400px |
||||
|
*/ |
||||
|
defaultSize?: Partial<Size>; |
||||
|
/** |
||||
|
* 面板默认位置悬浮模式下有效 |
||||
|
* @default [100,100] |
||||
|
*/ |
||||
|
defaultPosition?: RndProps['position']; |
||||
|
/** |
||||
|
* 位置变更回调 |
||||
|
*/ |
||||
|
onPositionChange?: (position: RndProps['position']) => void; |
||||
|
/** |
||||
|
* 样式 |
||||
|
*/ |
||||
|
style?: CSSProperties; |
||||
|
className?: string; |
||||
|
/** |
||||
|
* 内容 |
||||
|
*/ |
||||
|
children: ReactNode; |
||||
|
} |
||||
|
|
||||
|
const DEFAULT_HEIGHT = 150 |
||||
|
const DEFAULT_WIDTH = 400 |
||||
|
|
||||
|
const reversePlacement = (placement: 'right' | 'left' | 'top' | 'bottom') => { |
||||
|
switch (placement) { |
||||
|
case 'bottom': |
||||
|
return 'top' |
||||
|
case 'top': |
||||
|
return 'bottom' |
||||
|
case 'right': |
||||
|
return 'left' |
||||
|
case 'left': |
||||
|
return 'right' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
const FixMode: FC<FixModePanelProps> = memo<FixModePanelProps>( |
||||
|
({ |
||||
|
children, |
||||
|
placement = 'right', |
||||
|
resize, |
||||
|
style, |
||||
|
size, |
||||
|
defaultSize: customizeDefaultSize, |
||||
|
minWidth, |
||||
|
minHeight, |
||||
|
maxHeight, |
||||
|
maxWidth, |
||||
|
onSizeChange, |
||||
|
onSizeDragging, |
||||
|
expandable = true, |
||||
|
isExpand: expand, |
||||
|
onExpandChange, |
||||
|
className, |
||||
|
}) => { |
||||
|
const isVertical = placement === 'top' || placement === 'bottom' |
||||
|
|
||||
|
const { styles, cx } = useStyle() |
||||
|
|
||||
|
const [ isExpand, setIsExpand ] = useControlledState(true, { |
||||
|
value: expand, |
||||
|
onChange: onExpandChange, |
||||
|
}) |
||||
|
|
||||
|
// 只有配置了 resize 和 isExpand 属性后才可拖拽
|
||||
|
const canResizing = resize !== false && isExpand |
||||
|
|
||||
|
const resizeHandleClassNames: HandleClassName = useMemo(() => { |
||||
|
if (!canResizing) return {} |
||||
|
|
||||
|
return { |
||||
|
[reversePlacement(placement)]: styles[`${reversePlacement(placement)}Handle`], |
||||
|
} |
||||
|
}, [ canResizing, placement ]) |
||||
|
|
||||
|
const resizing = { |
||||
|
top: false, |
||||
|
bottom: false, |
||||
|
right: false, |
||||
|
left: false, |
||||
|
topRight: false, |
||||
|
bottomRight: false, |
||||
|
bottomLeft: false, |
||||
|
topLeft: false, |
||||
|
[reversePlacement(placement)]: true, |
||||
|
...(resize as Enable), |
||||
|
} |
||||
|
|
||||
|
const defaultSize: Size = useMemo(() => { |
||||
|
if (isVertical) |
||||
|
return { |
||||
|
width: '100%', |
||||
|
height: DEFAULT_HEIGHT, |
||||
|
...customizeDefaultSize, |
||||
|
} |
||||
|
|
||||
|
return { |
||||
|
width: DEFAULT_WIDTH, |
||||
|
height: '100%', |
||||
|
...customizeDefaultSize, |
||||
|
} |
||||
|
}, [ isVertical ]) |
||||
|
|
||||
|
const sizeProps = isExpand |
||||
|
? { |
||||
|
minWidth: typeof minWidth === 'number' ? Math.max(minWidth, 0) : 280, |
||||
|
minHeight: typeof minHeight === 'number' ? Math.max(minHeight, 0) : undefined, |
||||
|
maxHeight: typeof maxHeight === 'number' ? Math.max(maxHeight, 0) : undefined, |
||||
|
maxWidth: typeof maxWidth === 'number' ? Math.max(maxWidth, 0) : undefined, |
||||
|
defaultSize, |
||||
|
size: size as Size, |
||||
|
style, |
||||
|
} |
||||
|
: { |
||||
|
minWidth: 0, |
||||
|
minHeight: 0, |
||||
|
size: { width: 0, height: 0 }, |
||||
|
} |
||||
|
|
||||
|
const { Arrow, className: arrowPlacement } = useMemo(() => { |
||||
|
switch (placement) { |
||||
|
case 'top': |
||||
|
return { className: 'Bottom', Arrow: DownOutlined } |
||||
|
case 'bottom': |
||||
|
return { className: 'Top', Arrow: UpOutlined } |
||||
|
case 'right': |
||||
|
return { className: 'Left', Arrow: LeftOutlined } |
||||
|
case 'left': |
||||
|
return { className: 'Right', Arrow: RightOutlined } |
||||
|
} |
||||
|
}, [ styles, placement ]) |
||||
|
|
||||
|
return ( |
||||
|
<div |
||||
|
className={cx(styles.container, className)} |
||||
|
style={{ [`border${arrowPlacement}Width`]: 1 }} |
||||
|
> |
||||
|
{expandable && ( |
||||
|
<Center |
||||
|
className={cx(styles[`toggle${arrowPlacement}`])} |
||||
|
onClick={() => { |
||||
|
setIsExpand(!isExpand) |
||||
|
}} |
||||
|
style={{ opacity: isExpand ? undefined : 1 }} |
||||
|
> |
||||
|
<Arrow rotate={isExpand ? 180 : 0}/> |
||||
|
</Center> |
||||
|
)} |
||||
|
{ |
||||
|
<Resizable |
||||
|
{...sizeProps} |
||||
|
className={styles.fixed} |
||||
|
enable={canResizing ? (resizing as Enable) : undefined} |
||||
|
handleClasses={resizeHandleClassNames} |
||||
|
onResizeStop={(_e, _direction, ref, delta) => { |
||||
|
onSizeChange?.(delta, { |
||||
|
width: ref.style.width, |
||||
|
height: ref.style.height, |
||||
|
}) |
||||
|
}} |
||||
|
onResize={(_, _direction, ref, delta) => { |
||||
|
onSizeDragging?.(delta, { |
||||
|
width: ref.style.width, |
||||
|
height: ref.style.height, |
||||
|
}) |
||||
|
}} |
||||
|
> |
||||
|
{children} |
||||
|
</Resizable> |
||||
|
} |
||||
|
</div> |
||||
|
) |
||||
|
}, |
||||
|
) |
||||
|
|
||||
|
export { FixMode } |
@ -0,0 +1,182 @@ |
|||||
|
import type { Enable, NumberSize, Size } from 're-resizable' |
||||
|
import { HandleClassName } from 're-resizable' |
||||
|
import type { CSSProperties, FC, ReactNode } from 'react' |
||||
|
import { memo, useMemo } from 'react' |
||||
|
import type { Position, Props as RndProps } from 'react-rnd' |
||||
|
import { Rnd } from 'react-rnd' |
||||
|
|
||||
|
import { useStyle } from './style' |
||||
|
|
||||
|
export interface FloatProps { |
||||
|
/** |
||||
|
* 位置, |
||||
|
* 使用固定模式或者浮动窗口 |
||||
|
*/ |
||||
|
mode?: 'fixed' | 'float'; |
||||
|
|
||||
|
/** |
||||
|
* 面板的朝向,默认是 左右模式 |
||||
|
* @default horizontal |
||||
|
*/ |
||||
|
direction?: 'vertical' | 'horizontal'; |
||||
|
|
||||
|
/** |
||||
|
* 最小宽度 |
||||
|
*/ |
||||
|
minWidth?: number; |
||||
|
/** |
||||
|
* 最小高度 |
||||
|
*/ |
||||
|
minHeight?: number; |
||||
|
/** |
||||
|
* 最大宽度 |
||||
|
*/ |
||||
|
maxWidth?: number; |
||||
|
/** |
||||
|
* 最大高度 |
||||
|
*/ |
||||
|
maxHeight?: number; |
||||
|
/** |
||||
|
* 控制可缩放区域 |
||||
|
*/ |
||||
|
resize?: RndProps['enableResizing']; |
||||
|
/** |
||||
|
* 面板尺寸 |
||||
|
* |
||||
|
*/ |
||||
|
size?: Partial<Size>; |
||||
|
onSizeChange?: (delta: NumberSize, size?: Size) => void; |
||||
|
/** |
||||
|
* 当用户在拖拽过程中触发 |
||||
|
* @param delta |
||||
|
* @param size |
||||
|
*/ |
||||
|
onSizeDragging?: (delta: NumberSize, size?: Size) => void; |
||||
|
|
||||
|
canResizing?: boolean; |
||||
|
/** |
||||
|
* 面板位置 |
||||
|
* 受控模式 |
||||
|
*/ |
||||
|
position?: RndProps['position']; |
||||
|
/** |
||||
|
* 面板默认尺寸 |
||||
|
* 固定模式下: width 320px height 100% |
||||
|
* 浮动模式下:width 320px height 400px |
||||
|
*/ |
||||
|
defaultSize?: Partial<Size>; |
||||
|
/** |
||||
|
* 面板默认位置悬浮模式下有效 |
||||
|
* @default [100,100] |
||||
|
*/ |
||||
|
defaultPosition?: RndProps['position']; |
||||
|
/** |
||||
|
* 位置变更回调 |
||||
|
*/ |
||||
|
onPositionChange?: (position: RndProps['position']) => void; |
||||
|
/** |
||||
|
* 样式 |
||||
|
*/ |
||||
|
style?: CSSProperties; |
||||
|
/** |
||||
|
* 类名 |
||||
|
*/ |
||||
|
className?: string; |
||||
|
/** |
||||
|
* 内容 |
||||
|
*/ |
||||
|
children: ReactNode; |
||||
|
} |
||||
|
|
||||
|
const DEFAULT_HEIGHT = 300 |
||||
|
const DEFAULT_WIDTH = 400 |
||||
|
|
||||
|
export const FloatMode: FC<FloatProps> = memo( |
||||
|
({ |
||||
|
children, |
||||
|
direction, |
||||
|
resize, |
||||
|
style, |
||||
|
position, |
||||
|
onPositionChange, |
||||
|
size, |
||||
|
defaultSize: customizeDefaultSize, |
||||
|
defaultPosition: customizeDefaultPosition, |
||||
|
minWidth = 280, |
||||
|
minHeight = 200, |
||||
|
maxHeight, |
||||
|
maxWidth, |
||||
|
canResizing, |
||||
|
}) => { |
||||
|
const { styles } = useStyle() |
||||
|
|
||||
|
const resizeHandleClassNames: HandleClassName = useMemo(() => { |
||||
|
if (!canResizing) return {} |
||||
|
|
||||
|
return { |
||||
|
right: styles.rightHandle, |
||||
|
left: styles.leftHandle, |
||||
|
top: styles.topHandle, |
||||
|
bottom: styles.bottomHandle, |
||||
|
} |
||||
|
}, [ canResizing, direction ]) |
||||
|
|
||||
|
const resizing = useMemo(() => { |
||||
|
if (canResizing) return resize |
||||
|
|
||||
|
return { |
||||
|
top: true, |
||||
|
bottom: true, |
||||
|
right: true, |
||||
|
left: true, |
||||
|
topRight: true, |
||||
|
bottomRight: true, |
||||
|
bottomLeft: true, |
||||
|
topLeft: true, |
||||
|
...(resize as Enable), |
||||
|
} |
||||
|
}, [ canResizing, resize ]) |
||||
|
|
||||
|
const defaultSize: Size = { |
||||
|
width: DEFAULT_WIDTH, |
||||
|
height: DEFAULT_HEIGHT, |
||||
|
...customizeDefaultSize, |
||||
|
} |
||||
|
|
||||
|
const defaultPosition: Position = { |
||||
|
x: 100, |
||||
|
y: 100, |
||||
|
...customizeDefaultPosition, |
||||
|
} |
||||
|
|
||||
|
const sizeProps = { |
||||
|
minWidth: Math.max(minWidth, 0), |
||||
|
minHeight: Math.max(minHeight, 0), |
||||
|
maxHeight: maxHeight ? Math.max(maxHeight, 0) : undefined, |
||||
|
maxWidth: maxWidth ? Math.max(maxWidth, 0) : undefined, |
||||
|
defaultSize, |
||||
|
size: size as Size, |
||||
|
style, |
||||
|
} |
||||
|
|
||||
|
return ( |
||||
|
<Rnd |
||||
|
position={position} |
||||
|
resizeHandleClasses={resizeHandleClassNames} |
||||
|
default={{ |
||||
|
...defaultPosition, |
||||
|
...defaultSize, |
||||
|
}} |
||||
|
onDragStop={(_e, data) => { |
||||
|
onPositionChange?.({ x: data.x, y: data.y }) |
||||
|
}} |
||||
|
bound={'parent'} |
||||
|
enableResizing={resizing} |
||||
|
{...sizeProps} |
||||
|
className={styles.float} |
||||
|
> |
||||
|
{children} |
||||
|
</Rnd> |
||||
|
) |
||||
|
}, |
||||
|
) |
@ -0,0 +1,3 @@ |
|||||
|
export type { Position } from 'react-rnd'; |
||||
|
export { Draggable as DraggablePanel } from './DraggablePanel'; |
||||
|
export type { DraggablePanelProps } from './DraggablePanel'; |
@ -0,0 +1,183 @@ |
|||||
|
import { createStyles } from '@/theme'; |
||||
|
|
||||
|
export const useStyle = createStyles(({ token, css, cx, prefixCls }) => { |
||||
|
const prefix = `${prefixCls}-${token?.proPrefix}-draggable-panel`; |
||||
|
const commonHandle = css`
|
||||
|
position: relative; |
||||
|
|
||||
|
&::before { |
||||
|
position: absolute; |
||||
|
z-index: 50; |
||||
|
transition: all 0.3s ease-in-out; |
||||
|
content: ''; |
||||
|
} |
||||
|
|
||||
|
&:hover, |
||||
|
&:active { |
||||
|
&::before { |
||||
|
background: ${token.colorPrimary}; |
||||
|
} |
||||
|
} |
||||
|
`;
|
||||
|
|
||||
|
const commonToggle = css`
|
||||
|
position: absolute; |
||||
|
opacity: 0; |
||||
|
z-index: 1001; |
||||
|
transition: opacity 0.1s; |
||||
|
|
||||
|
border-radius: 4px; |
||||
|
cursor: pointer; |
||||
|
background: ${token.colorBgElevated}; |
||||
|
border-width: 1px; |
||||
|
border-style: solid; |
||||
|
color: ${token.colorTextTertiary}; |
||||
|
border-color: ${token.colorBorder}; |
||||
|
|
||||
|
&:hover { |
||||
|
color: ${token.colorTextSecondary}; |
||||
|
background: ${token.colorFillQuaternary}; |
||||
|
} |
||||
|
`;
|
||||
|
|
||||
|
const offset = 17; |
||||
|
const toggleLength = 40; |
||||
|
const toggleShort = 16; |
||||
|
|
||||
|
return { |
||||
|
container: cx( |
||||
|
prefix, |
||||
|
css`
|
||||
|
flex-shrink: 0; |
||||
|
position: relative; |
||||
|
border: 0 solid ${token.colorSplit}; |
||||
|
|
||||
|
&:hover { |
||||
|
.${prefix}-toggle { |
||||
|
opacity: 1; |
||||
|
} |
||||
|
} |
||||
|
`,
|
||||
|
), |
||||
|
toggleLeft: cx( |
||||
|
`${prefix}-toggle`, |
||||
|
`${prefix}-toggle-left`, |
||||
|
commonToggle, |
||||
|
css`
|
||||
|
width: ${toggleShort}px; |
||||
|
height: ${toggleLength}px; |
||||
|
left: -${offset}px; |
||||
|
top: 50%; |
||||
|
margin-top: -20px; |
||||
|
border-radius: 4px 0 0 4px; |
||||
|
border-right-width: 0; |
||||
|
`,
|
||||
|
), |
||||
|
toggleRight: cx( |
||||
|
`${prefix}-toggle`, |
||||
|
`${prefix}-toggle-right`, |
||||
|
commonToggle, |
||||
|
css`
|
||||
|
width: ${toggleShort}px; |
||||
|
height: ${toggleLength}px; |
||||
|
right: -${offset}px; |
||||
|
top: 50%; |
||||
|
margin-top: -20px; |
||||
|
border-radius: 0 4px 4px 0; |
||||
|
border-left-width: 0; |
||||
|
`,
|
||||
|
), |
||||
|
toggleTop: cx( |
||||
|
`${prefix}-toggle`, |
||||
|
`${prefix}-toggle-top`, |
||||
|
commonToggle, |
||||
|
css`
|
||||
|
height: ${toggleShort}px; |
||||
|
width: ${toggleLength}px; |
||||
|
top: -${offset}px; |
||||
|
left: 50%; |
||||
|
margin-left: -20px; |
||||
|
border-radius: 4px 4px 0 0; |
||||
|
border-bottom-width: 0; |
||||
|
`,
|
||||
|
), |
||||
|
toggleBottom: cx( |
||||
|
`${prefix}-toggle`, |
||||
|
`${prefix}-toggle-bottom`, |
||||
|
commonToggle, |
||||
|
css`
|
||||
|
height: 16px; |
||||
|
width: ${toggleLength}px; |
||||
|
bottom: -${offset}px; |
||||
|
left: 50%; |
||||
|
margin-left: -20px; |
||||
|
border-radius: 0 0 4px 4px; |
||||
|
border-top-width: 0; |
||||
|
`,
|
||||
|
), |
||||
|
fixed: cx( |
||||
|
`${prefix}-fixed`, |
||||
|
css`
|
||||
|
background: ${token.colorBgContainer}; |
||||
|
overflow: hidden; |
||||
|
`,
|
||||
|
), |
||||
|
float: cx( |
||||
|
`${prefix}-float`, |
||||
|
css`
|
||||
|
overflow: hidden; |
||||
|
border-radius: 8px; |
||||
|
background: ${token.colorBgElevated}; |
||||
|
box-shadow: ${token.boxShadowSecondary}; |
||||
|
z-index: 2000; |
||||
|
`,
|
||||
|
), |
||||
|
leftHandle: cx( |
||||
|
css`
|
||||
|
${commonHandle}; |
||||
|
|
||||
|
&::before { |
||||
|
left: 50%; |
||||
|
width: 2px; |
||||
|
height: 100%; |
||||
|
} |
||||
|
`,
|
||||
|
`${prefix}-left-handle`, |
||||
|
), |
||||
|
rightHandle: cx( |
||||
|
css`
|
||||
|
${commonHandle}; |
||||
|
&::before { |
||||
|
right: 50%; |
||||
|
width: 2px; |
||||
|
height: 100%; |
||||
|
} |
||||
|
`,
|
||||
|
`${prefix}-right-handle`, |
||||
|
), |
||||
|
topHandle: cx( |
||||
|
`${prefix}-top-handle`, |
||||
|
css`
|
||||
|
${commonHandle}; |
||||
|
|
||||
|
&::before { |
||||
|
top: 50%; |
||||
|
height: 2px; |
||||
|
width: 100%; |
||||
|
} |
||||
|
`,
|
||||
|
), |
||||
|
bottomHandle: cx( |
||||
|
`${prefix}-bottom-handle`, |
||||
|
css`
|
||||
|
${commonHandle}; |
||||
|
|
||||
|
&::before { |
||||
|
bottom: 50%; |
||||
|
height: 2px; |
||||
|
width: 100%; |
||||
|
} |
||||
|
`,
|
||||
|
), |
||||
|
}; |
||||
|
}); |
@ -0,0 +1,8 @@ |
|||||
|
body{ |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; |
||||
|
} |
||||
|
body.login { |
||||
|
overflow: hidden; |
||||
|
} |
@ -0,0 +1,21 @@ |
|||||
|
import { createStyles } from '@/theme' |
||||
|
|
||||
|
export const useStyle = createStyles(({ token, css, cx, prefixCls }, props: any) => { |
||||
|
const prefix = `${prefixCls}-${token?.proPrefix}-layout` |
||||
|
|
||||
|
const container = { |
||||
|
[prefix]: css`
|
||||
|
|
||||
|
`,
|
||||
|
} |
||||
|
|
||||
|
const pageContext = css`
|
||||
|
box-shadow: ${token.boxShadowSecondary}; |
||||
|
`
|
||||
|
|
||||
|
return { |
||||
|
container: cx(container[prefix], props?.className), |
||||
|
pageContext, |
||||
|
} |
||||
|
|
||||
|
}) |
@ -0,0 +1,130 @@ |
|||||
|
import { createStyles } from '@/theme' |
||||
|
import loginBg from '@/assets/login.png' |
||||
|
|
||||
|
|
||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
|
// @ts-ignore
|
||||
|
export const useStyles = createStyles(({ token, css, cx, prefixCls }, props: any) => { |
||||
|
|
||||
|
const prefix = `${prefixCls}-${token.proPrefix}-login-page` |
||||
|
|
||||
|
|
||||
|
const container = css`
|
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
height: 100vh; |
||||
|
background-image: url(${loginBg}); |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: cover; |
||||
|
`
|
||||
|
const language = css`
|
||||
|
position: absolute; |
||||
|
top: 10px; |
||||
|
right: 10px; |
||||
|
color: #fff; |
||||
|
font-size: 14px; |
||||
|
cursor: pointer; |
||||
|
`
|
||||
|
|
||||
|
|
||||
|
const loginBlock = css`
|
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
padding: 40px 0; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
`
|
||||
|
|
||||
|
const innerBlock = css`
|
||||
|
width: 356px; |
||||
|
margin: 0 auto; |
||||
|
`
|
||||
|
|
||||
|
const logo = css`
|
||||
|
height: 30px; |
||||
|
`
|
||||
|
|
||||
|
const infoLine = css`
|
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
margin: 0; |
||||
|
`
|
||||
|
|
||||
|
const infoLeft = css`
|
||||
|
color: #666; |
||||
|
font-size: 14px; |
||||
|
`
|
||||
|
|
||||
|
|
||||
|
const desc = css`
|
||||
|
margin: 24px 0; |
||||
|
color: #999; |
||||
|
font-size: 16px; |
||||
|
cursor: pointer; |
||||
|
`
|
||||
|
const active = css`
|
||||
|
color: #333; |
||||
|
font-weight: bold; |
||||
|
font-size: 24px; |
||||
|
`
|
||||
|
|
||||
|
const innerBeforeInput = css`
|
||||
|
margin-left: 10px; |
||||
|
color: #999; |
||||
|
`
|
||||
|
|
||||
|
const line = css`
|
||||
|
margin-left: 10px; |
||||
|
`
|
||||
|
|
||||
|
const innerAfterInput = css`
|
||||
|
margin-right: 10px; |
||||
|
color: #999; |
||||
|
`
|
||||
|
|
||||
|
const lineR = css`
|
||||
|
margin-right: 10px; |
||||
|
vertical-align: middle; |
||||
|
|
||||
|
`
|
||||
|
|
||||
|
const sendCode = css`
|
||||
|
max-width: 65px; |
||||
|
margin-right: 10px; |
||||
|
`
|
||||
|
|
||||
|
const otherLogin = css`
|
||||
|
color: #666; |
||||
|
font-size: 14px; |
||||
|
`
|
||||
|
|
||||
|
const icon = css`
|
||||
|
margin-left: 10px; |
||||
|
`
|
||||
|
|
||||
|
const submitBtn = css`
|
||||
|
width: 100%; |
||||
|
`
|
||||
|
|
||||
|
return { |
||||
|
container: cx(prefix, container, props?.className ?? ''), |
||||
|
language, |
||||
|
loginBlock, |
||||
|
innerBlock, |
||||
|
logo, |
||||
|
infoLine, |
||||
|
infoLeft, |
||||
|
desc, |
||||
|
active, |
||||
|
innerBeforeInput, |
||||
|
line: cx( innerBeforeInput, line), |
||||
|
innerAfterInput, |
||||
|
lineR: cx(innerAfterInput, lineR), |
||||
|
sendCode, |
||||
|
otherLogin, |
||||
|
icon, |
||||
|
submitBtn, |
||||
|
} |
||||
|
}) |
@ -0,0 +1,32 @@ |
|||||
|
import { Button, Popconfirm } from 'antd' |
||||
|
import { useAtomValue } from 'jotai' |
||||
|
import { batchIdsAtom, deleteMenuAtom } from '../store.ts' |
||||
|
import { useTranslation } from '@/i18n.ts' |
||||
|
|
||||
|
const BatchButton = () => { |
||||
|
|
||||
|
const { t } = useTranslation() |
||||
|
const { isPending, mutate, } = useAtomValue(deleteMenuAtom) |
||||
|
const ids = useAtomValue(batchIdsAtom) |
||||
|
if (ids.length === 0) { |
||||
|
return null |
||||
|
} |
||||
|
|
||||
|
return ( |
||||
|
<Popconfirm |
||||
|
onConfirm={()=>{ |
||||
|
mutate(ids as number[]) |
||||
|
}} |
||||
|
title={t('system.menus.batchDel.confirm', '确定要删除所选数据吗?')}> |
||||
|
<Button |
||||
|
type="primary" |
||||
|
danger={true} |
||||
|
size={'small'} |
||||
|
disabled={ids.length === 0} |
||||
|
loading={isPending} |
||||
|
>{t('t.system.menus.batchDel', '批量删除')}</Button> |
||||
|
</Popconfirm> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
export default BatchButton |
@ -0,0 +1,97 @@ |
|||||
|
import { EditableFormInstance, EditableProTable } from '@ant-design/pro-components' |
||||
|
import { useMemo, useRef, useState } from 'react' |
||||
|
import { IDataProps } from '@/types' |
||||
|
import { FormInstance } from 'antd/lib' |
||||
|
|
||||
|
type DataSourceType = { |
||||
|
id: number, |
||||
|
name: string, |
||||
|
code: string, |
||||
|
} |
||||
|
|
||||
|
const fixRowKey = (data: DataSourceType[]) => { |
||||
|
return data.map((item, index) => ({ ...item, id: item.id ?? index+1 })) |
||||
|
} |
||||
|
|
||||
|
const ButtonTable = (props: IDataProps & { |
||||
|
form: FormInstance |
||||
|
}) => { |
||||
|
|
||||
|
const { value, onChange } = props |
||||
|
const editorFormRef = useRef<EditableFormInstance<DataSourceType>>() |
||||
|
const [ editableKeys, setEditableRowKeys ] = useState<any[]>(() => { |
||||
|
return fixRowKey(value || []).map(item => item.id) |
||||
|
}) |
||||
|
|
||||
|
const values = fixRowKey(value || []) |
||||
|
|
||||
|
const columns = useMemo(() => { |
||||
|
|
||||
|
return [ |
||||
|
{ |
||||
|
title: 'id', |
||||
|
dataIndex: 'id', |
||||
|
hideInTable: true, |
||||
|
}, |
||||
|
{ |
||||
|
title: '名称', |
||||
|
dataIndex: 'label', |
||||
|
formItemProps: () => { |
||||
|
return { |
||||
|
rules: [ { required: true, message: '此项为必填项' } ], |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
title: '标识', |
||||
|
dataIndex: 'code', |
||||
|
formItemProps: () => { |
||||
|
return { |
||||
|
rules: [ { required: true, message: '此项为必填项' } ], |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
title: '操作', |
||||
|
valueType: 'option', |
||||
|
width: 80, |
||||
|
|
||||
|
} |
||||
|
] |
||||
|
|
||||
|
}, []) |
||||
|
|
||||
|
|
||||
|
return ( |
||||
|
|
||||
|
<EditableProTable<DataSourceType> |
||||
|
rowKey="id" |
||||
|
value={values } |
||||
|
onChange={onChange} |
||||
|
editableFormRef={editorFormRef} |
||||
|
recordCreatorProps={ |
||||
|
{ |
||||
|
newRecordType: 'dataSource', |
||||
|
record: () => { |
||||
|
return { id: ((value?? []).length + 1) } as DataSourceType |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
editable={{ |
||||
|
type: 'multiple', |
||||
|
editableKeys, |
||||
|
actionRender: (_row, _config, defaultDoms) => { |
||||
|
return [ defaultDoms.delete ] |
||||
|
}, |
||||
|
onValuesChange: (_record, recordList) => { |
||||
|
onChange?.(recordList) |
||||
|
}, |
||||
|
onChange: setEditableRowKeys, |
||||
|
}} |
||||
|
columns={columns as any} |
||||
|
/> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
export default ButtonTable |
@ -0,0 +1,103 @@ |
|||||
|
import { Button, Empty, Spin, Tree } from 'antd' |
||||
|
import { PlusOutlined } from '@ant-design/icons' |
||||
|
import { MenuItem } from '@/types' |
||||
|
import { useStyle } from '../style.ts' |
||||
|
import { useTranslation } from '@/i18n.ts' |
||||
|
import { useSetAtom } from 'jotai' |
||||
|
import { batchIdsAtom, menuDataAtom, selectedMenuAtom } from '../store.ts' |
||||
|
import { FormInstance } from 'antd/lib' |
||||
|
import { useAtomValue } from 'jotai/index' |
||||
|
import { TreeNodeRender } from '../components/TreeNodeRender.tsx' |
||||
|
import { useRef } from 'react' |
||||
|
import { flattenTree } from '@/utils' |
||||
|
import { useDeepCompareEffect } from 'react-use' |
||||
|
|
||||
|
const MenuTree = ({ form }: { form: FormInstance }) => { |
||||
|
|
||||
|
|
||||
|
const { styles } = useStyle() |
||||
|
const { t } = useTranslation() |
||||
|
const setCurrentMenu = useSetAtom(selectedMenuAtom) |
||||
|
const setIds = useSetAtom(batchIdsAtom) |
||||
|
const { data = [], isLoading } = useAtomValue(menuDataAtom) |
||||
|
const flattenMenusRef = useRef<MenuItem[]>([]) |
||||
|
|
||||
|
useDeepCompareEffect(() => { |
||||
|
|
||||
|
if (isLoading) return |
||||
|
|
||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
|
// @ts-ignore array
|
||||
|
if (data.length) { |
||||
|
// @ts-ignore flattenTree
|
||||
|
flattenMenusRef.current = flattenTree<MenuItem[]>(data as any) |
||||
|
// console.log(flattenMenusRef.current)
|
||||
|
} |
||||
|
|
||||
|
return () => { |
||||
|
setCurrentMenu({} as MenuItem) |
||||
|
} |
||||
|
|
||||
|
}, [ data, isLoading ]) |
||||
|
|
||||
|
const renderEmpty = () => { |
||||
|
if ((data as any).length > 0 || isLoading) return null |
||||
|
return <Empty description={t('system.menus.empty', '暂无数据,点击添加')}> |
||||
|
<Button type="default" |
||||
|
icon={<PlusOutlined/>} |
||||
|
onClick={() => { |
||||
|
const menu = { |
||||
|
parent_id: 0, |
||||
|
type: 'menu', |
||||
|
name: '', |
||||
|
title: '', |
||||
|
icon: '', |
||||
|
path: '', |
||||
|
component: '', |
||||
|
sort: 0, |
||||
|
id: 0, |
||||
|
} as MenuItem |
||||
|
setCurrentMenu(menu) |
||||
|
form.setFieldsValue(menu) |
||||
|
}} |
||||
|
> |
||||
|
{t('system.menus.add', '添加')} |
||||
|
</Button> |
||||
|
</Empty> |
||||
|
} |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<Spin spinning={isLoading} style={{ minHeight: 200 }}> |
||||
|
{ |
||||
|
renderEmpty() |
||||
|
} |
||||
|
<Tree.DirectoryTree |
||||
|
className={styles.tree} |
||||
|
treeData={data as any} |
||||
|
defaultExpandAll={true} |
||||
|
draggable={true} |
||||
|
titleRender={(node) => { |
||||
|
return (<TreeNodeRender node={node as any} form={form}/>) |
||||
|
}} |
||||
|
fieldNames={{ |
||||
|
title: 'title', |
||||
|
key: 'id' |
||||
|
}} |
||||
|
onSelect={(item) => { |
||||
|
const current = flattenMenusRef.current?.find((menu) => menu.id === item[0]) |
||||
|
setCurrentMenu(current as MenuItem) |
||||
|
form.setFieldsValue({ ...current }) |
||||
|
}} |
||||
|
onCheck={(item) => { |
||||
|
setIds(item as number[]) |
||||
|
}} |
||||
|
checkable={true} |
||||
|
showIcon={false} |
||||
|
/> |
||||
|
</Spin> |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
export default MenuTree |
@ -0,0 +1,66 @@ |
|||||
|
import { memo } from 'react' |
||||
|
import { MenuItem } from '@/types' |
||||
|
import { Popconfirm, Space, TreeDataNode } from 'antd' |
||||
|
import { FormInstance } from 'antd/lib' |
||||
|
import { useTranslation } from '@/i18n.ts' |
||||
|
import { useStyle } from '../style.ts' |
||||
|
import { useAtomValue, useSetAtom } from 'jotai/index' |
||||
|
import { deleteMenuAtom, selectedMenuAtom } from '../store.ts' |
||||
|
import { PlusOutlined } from '@ant-design/icons' |
||||
|
import ActionIcon, { DeleteAction } from '@/components/icon/action' |
||||
|
|
||||
|
export const TreeNodeRender = memo(({ node, form }: { node: MenuItem & TreeDataNode, form: FormInstance }) => { |
||||
|
const { title } = node |
||||
|
const { t } = useTranslation() |
||||
|
const { styles } = useStyle() |
||||
|
const { mutate, } = useAtomValue(deleteMenuAtom) |
||||
|
|
||||
|
const setMenuData = useSetAtom(selectedMenuAtom) |
||||
|
|
||||
|
return ( |
||||
|
<div className={styles.treeNode}> |
||||
|
<span>{title as any}</span> |
||||
|
<span className={'actions'}> |
||||
|
<Space size={'middle'}> |
||||
|
<ActionIcon |
||||
|
size={12} |
||||
|
icon={<PlusOutlined/>} |
||||
|
title={t('system.menus.add', '添加')} |
||||
|
onClick={(e) => { |
||||
|
// console.log('add')
|
||||
|
e.stopPropagation() |
||||
|
e.preventDefault() |
||||
|
|
||||
|
const menu = { |
||||
|
parent_id: node.id, |
||||
|
type: 'menu', |
||||
|
name: '', |
||||
|
title: '', |
||||
|
icon: '', |
||||
|
path: '', |
||||
|
component: '', |
||||
|
sort: 0, |
||||
|
id: 0, |
||||
|
} as MenuItem |
||||
|
setMenuData(menu) |
||||
|
form.setFieldsValue(menu) |
||||
|
|
||||
|
}}/> |
||||
|
<Popconfirm |
||||
|
title={t('system.menus.delConfirm', '确定要删除吗?')} |
||||
|
onConfirm={() => { |
||||
|
mutate([ (node as any).id ]) |
||||
|
}} |
||||
|
> |
||||
|
<DeleteAction |
||||
|
size={12} |
||||
|
onClick={(e) => { |
||||
|
e.stopPropagation() |
||||
|
e.stopPropagation() |
||||
|
}}/> |
||||
|
</Popconfirm> |
||||
|
</Space> |
||||
|
</span> |
||||
|
</div> |
||||
|
) |
||||
|
}) |
@ -0,0 +1,72 @@ |
|||||
|
import { createStyles } from '@/theme' |
||||
|
|
||||
|
export const useStyle = createStyles(({ token, css, cx, prefixCls }) => { |
||||
|
const prefix = `${prefixCls}-${token?.proPrefix}-menu-page`; |
||||
|
|
||||
|
const tree = css`
|
||||
|
.ant-tree { |
||||
|
overflow: auto; |
||||
|
height: 100%; |
||||
|
border-right: 1px solid ${token.colorBorder}; |
||||
|
background: ${token.colorBgContainer}; |
||||
|
|
||||
|
} |
||||
|
.ant-tree-directory .ant-tree-treenode-selected::before{ |
||||
|
background: ${token.colorBgTextHover}; |
||||
|
} |
||||
|
.ant-tree-treenode:before{ |
||||
|
border-radius: ${token.borderRadius}px; |
||||
|
} |
||||
|
`
|
||||
|
|
||||
|
const box = css`
|
||||
|
flex: 1; |
||||
|
background: ${token.colorBgContainer}; |
||||
|
`
|
||||
|
|
||||
|
const form = css`
|
||||
|
display: flex; |
||||
|
flex-wrap: wrap; |
||||
|
min-width: 500px; |
||||
|
`
|
||||
|
|
||||
|
const formSetting = css`
|
||||
|
flex: 1; |
||||
|
|
||||
|
`
|
||||
|
|
||||
|
const formButtons = css`
|
||||
|
width: 500px; |
||||
|
|
||||
|
`
|
||||
|
|
||||
|
const treeNode = css`
|
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
|
||||
|
.actions{ |
||||
|
display: none; |
||||
|
padding: 0 10px; |
||||
|
} |
||||
|
|
||||
|
&:hover .actions{ { |
||||
|
display: flex; |
||||
|
} |
||||
|
|
||||
|
`
|
||||
|
const treeActions = css`
|
||||
|
|
||||
|
`
|
||||
|
|
||||
|
return { |
||||
|
container: cx(prefix), |
||||
|
box, |
||||
|
tree, |
||||
|
form, |
||||
|
treeNode, |
||||
|
treeActions, |
||||
|
formSetting, |
||||
|
formButtons, |
||||
|
} |
||||
|
}) |
@ -486,7 +486,7 @@ |
|||||
"@babel/helper-plugin-utils" "^7.24.0" |
"@babel/helper-plugin-utils" "^7.24.0" |
||||
"@babel/plugin-syntax-typescript" "^7.24.1" |
"@babel/plugin-syntax-typescript" "^7.24.1" |
||||
|
|
||||
"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.1", "@babel/runtime@^7.24.4": |
|
||||
|
"@babel/runtime@^7", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.1", "@babel/runtime@^7.24.4": |
||||
version "7.24.4" |
version "7.24.4" |
||||
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd" |
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd" |
||||
integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== |
integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== |
||||
@ -607,7 +607,7 @@ |
|||||
"@emotion/weak-memoize" "^0.3.1" |
"@emotion/weak-memoize" "^0.3.1" |
||||
stylis "4.2.0" |
stylis "4.2.0" |
||||
|
|
||||
"@emotion/css@^11.11.2": |
|
||||
|
"@emotion/css@^11", "@emotion/css@^11.11.2": |
||||
version "11.11.2" |
version "11.11.2" |
||||
resolved "https://registry.npmmirror.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" |
resolved "https://registry.npmmirror.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" |
||||
integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== |
integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== |
||||
@ -984,7 +984,7 @@ |
|||||
resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" |
resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" |
||||
integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== |
integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== |
||||
|
|
||||
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": |
|
||||
|
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": |
||||
version "1.4.15" |
version "1.4.15" |
||||
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" |
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" |
||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== |
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== |
||||
@ -1282,6 +1282,11 @@ |
|||||
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" |
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" |
||||
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== |
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== |
||||
|
|
||||
|
"@types/js-cookie@^2.2.6": |
||||
|
version "2.2.7" |
||||
|
resolved "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" |
||||
|
integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== |
||||
|
|
||||
"@types/json-schema@^7.0.15": |
"@types/json-schema@^7.0.15": |
||||
version "7.0.15" |
version "7.0.15" |
||||
resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" |
resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" |
||||
@ -1434,6 +1439,11 @@ |
|||||
"@types/babel__core" "^7.20.5" |
"@types/babel__core" "^7.20.5" |
||||
react-refresh "^0.14.0" |
react-refresh "^0.14.0" |
||||
|
|
||||
|
"@xobotyi/scrollbar-width@^1.9.5": |
||||
|
version "1.9.5" |
||||
|
resolved "https://registry.npmmirror.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" |
||||
|
integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== |
||||
|
|
||||
acorn-jsx@^5.3.2: |
acorn-jsx@^5.3.2: |
||||
version "5.3.2" |
version "5.3.2" |
||||
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" |
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" |
||||
@ -1654,6 +1664,11 @@ bundle-require@^4.0.1: |
|||||
dependencies: |
dependencies: |
||||
load-tsconfig "^0.2.3" |
load-tsconfig "^0.2.3" |
||||
|
|
||||
|
bunshi@^2.1.4: |
||||
|
version "2.1.4" |
||||
|
resolved "https://registry.npmmirror.com/bunshi/-/bunshi-2.1.4.tgz#1b7b99294ce101eb7167c6d98d79129b0cd2bf73" |
||||
|
integrity sha512-8kHpSsfFQu3Dj6nuVP5qr6wwqeXHbdu/hqrT1hdv6N4KcIQ0amHJYR0iSgjYhxazS6NlQb6JacP1/A7EJ+ZRAg== |
||||
|
|
||||
callsites@^3.0.0: |
callsites@^3.0.0: |
||||
version "3.1.0" |
version "3.1.0" |
||||
resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" |
resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" |
||||
@ -1714,6 +1729,11 @@ client-only@^0.0.1: |
|||||
resolved "https://registry.npmmirror.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" |
resolved "https://registry.npmmirror.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" |
||||
integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== |
integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== |
||||
|
|
||||
|
clsx@^1.1.1: |
||||
|
version "1.2.1" |
||||
|
resolved "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" |
||||
|
integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== |
||||
|
|
||||
clsx@^2.1.0: |
clsx@^2.1.0: |
||||
version "2.1.0" |
version "2.1.0" |
||||
resolved "https://registry.npmmirror.com/clsx/-/clsx-2.1.0.tgz#e851283bcb5c80ee7608db18487433f7b23f77cb" |
resolved "https://registry.npmmirror.com/clsx/-/clsx-2.1.0.tgz#e851283bcb5c80ee7608db18487433f7b23f77cb" |
||||
@ -1785,7 +1805,7 @@ convert-source-map@^2.0.0: |
|||||
resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" |
resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" |
||||
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== |
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== |
||||
|
|
||||
copy-to-clipboard@^3.3.3: |
|
||||
|
copy-to-clipboard@^3.3.1, copy-to-clipboard@^3.3.3: |
||||
version "3.3.3" |
version "3.3.3" |
||||
resolved "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" |
resolved "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" |
||||
integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== |
integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== |
||||
@ -1817,7 +1837,22 @@ cross-spawn@^7.0.2: |
|||||
shebang-command "^2.0.0" |
shebang-command "^2.0.0" |
||||
which "^2.0.1" |
which "^2.0.1" |
||||
|
|
||||
csstype@^3.0.2, csstype@^3.1.3: |
|
||||
|
css-in-js-utils@^3.1.0: |
||||
|
version "3.1.0" |
||||
|
resolved "https://registry.npmmirror.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz#640ae6a33646d401fc720c54fc61c42cd76ae2bb" |
||||
|
integrity sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A== |
||||
|
dependencies: |
||||
|
hyphenate-style-name "^1.0.3" |
||||
|
|
||||
|
css-tree@^1.1.2: |
||||
|
version "1.1.3" |
||||
|
resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" |
||||
|
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== |
||||
|
dependencies: |
||||
|
mdn-data "2.0.14" |
||||
|
source-map "^0.6.1" |
||||
|
|
||||
|
csstype@^3.0.2, csstype@^3.1.2, csstype@^3.1.3: |
||||
version "3.1.3" |
version "3.1.3" |
||||
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" |
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" |
||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== |
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== |
||||
@ -1909,6 +1944,13 @@ error-ex@^1.3.1: |
|||||
dependencies: |
dependencies: |
||||
is-arrayish "^0.2.1" |
is-arrayish "^0.2.1" |
||||
|
|
||||
|
error-stack-parser@^2.0.6: |
||||
|
version "2.1.4" |
||||
|
resolved "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" |
||||
|
integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== |
||||
|
dependencies: |
||||
|
stackframe "^1.3.4" |
||||
|
|
||||
esbuild@^0.20.1: |
esbuild@^0.20.1: |
||||
version "0.20.2" |
version "0.20.2" |
||||
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" |
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" |
||||
@ -2084,6 +2126,26 @@ fast-levenshtein@^2.0.6: |
|||||
resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" |
resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" |
||||
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== |
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== |
||||
|
|
||||
|
fast-loops@^1.1.3: |
||||
|
version "1.1.3" |
||||
|
resolved "https://registry.npmmirror.com/fast-loops/-/fast-loops-1.1.3.tgz#ce96adb86d07e7bf9b4822ab9c6fac9964981f75" |
||||
|
integrity sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g== |
||||
|
|
||||
|
fast-memoize@^2.5.1: |
||||
|
version "2.5.2" |
||||
|
resolved "https://registry.npmmirror.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" |
||||
|
integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== |
||||
|
|
||||
|
fast-shallow-equal@^1.0.0: |
||||
|
version "1.0.0" |
||||
|
resolved "https://registry.npmmirror.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" |
||||
|
integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== |
||||
|
|
||||
|
fastest-stable-stringify@^2.0.2: |
||||
|
version "2.0.2" |
||||
|
resolved "https://registry.npmmirror.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76" |
||||
|
integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== |
||||
|
|
||||
fastq@^1.6.0: |
fastq@^1.6.0: |
||||
version "1.17.1" |
version "1.17.1" |
||||
resolved "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" |
resolved "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" |
||||
@ -2281,6 +2343,11 @@ html-tokenize@^2.0.0: |
|||||
readable-stream "~1.0.27-1" |
readable-stream "~1.0.27-1" |
||||
through2 "~0.4.1" |
through2 "~0.4.1" |
||||
|
|
||||
|
hyphenate-style-name@^1.0.3: |
||||
|
version "1.0.4" |
||||
|
resolved "https://registry.npmmirror.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" |
||||
|
integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== |
||||
|
|
||||
i18next-browser-languagedetector@^7.2.1: |
i18next-browser-languagedetector@^7.2.1: |
||||
version "7.2.1" |
version "7.2.1" |
||||
resolved "https://registry.npmmirror.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz#1968196d437b4c8db847410c7c33554f6c448f6f" |
resolved "https://registry.npmmirror.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz#1968196d437b4c8db847410c7c33554f6c448f6f" |
||||
@ -2326,6 +2393,14 @@ inherits@2, inherits@~2.0.1, inherits@~2.0.3: |
|||||
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" |
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" |
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== |
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== |
||||
|
|
||||
|
inline-style-prefixer@^7.0.0: |
||||
|
version "7.0.0" |
||||
|
resolved "https://registry.npmmirror.com/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz#991d550735d42069f528ac1bcdacd378d1305442" |
||||
|
integrity sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ== |
||||
|
dependencies: |
||||
|
css-in-js-utils "^3.1.0" |
||||
|
fast-loops "^1.1.3" |
||||
|
|
||||
is-arrayish@^0.2.1: |
is-arrayish@^0.2.1: |
||||
version "0.2.1" |
version "0.2.1" |
||||
resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" |
resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" |
||||
@ -2382,6 +2457,11 @@ isexe@^2.0.0: |
|||||
resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" |
resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" |
||||
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== |
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== |
||||
|
|
||||
|
jotai-scope@^0.5.1: |
||||
|
version "0.5.1" |
||||
|
resolved "https://registry.npmmirror.com/jotai-scope/-/jotai-scope-0.5.1.tgz#a0eee96435262ff195901c420ca55b411639d8ef" |
||||
|
integrity sha512-GKaqtCj1Hv36nyl63PVm+s5jo+hQqz+wAb81iqA8VuUXp5ot4eXGOZt4Hc66lFZMP0N/yEOISMlazprmDI6kFA== |
||||
|
|
||||
jotai-tanstack-query@^0.8.5: |
jotai-tanstack-query@^0.8.5: |
||||
version "0.8.5" |
version "0.8.5" |
||||
resolved "https://registry.npmmirror.com/jotai-tanstack-query/-/jotai-tanstack-query-0.8.5.tgz#12616f18a7623cc3786f3e2d7b1e1b2dc60394b2" |
resolved "https://registry.npmmirror.com/jotai-tanstack-query/-/jotai-tanstack-query-0.8.5.tgz#12616f18a7623cc3786f3e2d7b1e1b2dc60394b2" |
||||
@ -2392,6 +2472,11 @@ jotai@^2.8.0: |
|||||
resolved "https://registry.npmmirror.com/jotai/-/jotai-2.8.0.tgz#5a6585cd5576c400c2c5f8e157b83ad2ba70b2ab" |
resolved "https://registry.npmmirror.com/jotai/-/jotai-2.8.0.tgz#5a6585cd5576c400c2c5f8e157b83ad2ba70b2ab" |
||||
integrity sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g== |
integrity sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g== |
||||
|
|
||||
|
js-cookie@^2.2.1: |
||||
|
version "2.2.1" |
||||
|
resolved "https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" |
||||
|
integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== |
||||
|
|
||||
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: |
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: |
||||
version "4.0.0" |
version "4.0.0" |
||||
resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" |
resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" |
||||
@ -2516,6 +2601,11 @@ lru-cache@^6.0.0: |
|||||
dependencies: |
dependencies: |
||||
yallist "^4.0.0" |
yallist "^4.0.0" |
||||
|
|
||||
|
[email protected]: |
||||
|
version "2.0.14" |
||||
|
resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" |
||||
|
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== |
||||
|
|
||||
merge2@^1.3.0, merge2@^1.4.1: |
merge2@^1.3.0, merge2@^1.4.1: |
||||
version "1.4.1" |
version "1.4.1" |
||||
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" |
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" |
||||
@ -2585,6 +2675,20 @@ multipipe@^1.0.2: |
|||||
duplexer2 "^0.1.2" |
duplexer2 "^0.1.2" |
||||
object-assign "^4.1.0" |
object-assign "^4.1.0" |
||||
|
|
||||
|
nano-css@^5.6.1: |
||||
|
version "5.6.1" |
||||
|
resolved "https://registry.npmmirror.com/nano-css/-/nano-css-5.6.1.tgz#964120cb1af6cccaa6d0717a473ccd876b34c197" |
||||
|
integrity sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw== |
||||
|
dependencies: |
||||
|
"@jridgewell/sourcemap-codec" "^1.4.15" |
||||
|
css-tree "^1.1.2" |
||||
|
csstype "^3.1.2" |
||||
|
fastest-stable-stringify "^2.0.2" |
||||
|
inline-style-prefixer "^7.0.0" |
||||
|
rtl-css-js "^1.16.1" |
||||
|
stacktrace-js "^2.0.2" |
||||
|
stylis "^4.3.0" |
||||
|
|
||||
nanoid@^3.3.7: |
nanoid@^3.3.7: |
||||
version "3.3.7" |
version "3.3.7" |
||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" |
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" |
||||
@ -2775,7 +2879,7 @@ process-nextick-args@~2.0.0: |
|||||
resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" |
resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" |
||||
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== |
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== |
||||
|
|
||||
prop-types@^15.5.10: |
|
||||
|
prop-types@^15.5.10, prop-types@^15.8.1: |
||||
version "15.8.1" |
version "15.8.1" |
||||
resolved "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" |
resolved "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" |
||||
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== |
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== |
||||
@ -3176,6 +3280,18 @@ rc-virtual-list@^3.11.1, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: |
|||||
rc-resize-observer "^1.0.0" |
rc-resize-observer "^1.0.0" |
||||
rc-util "^5.36.0" |
rc-util "^5.36.0" |
||||
|
|
||||
|
[email protected]: |
||||
|
version "6.9.6" |
||||
|
resolved "https://registry.npmmirror.com/re-resizable/-/re-resizable-6.9.6.tgz#b95d37e3821481b56ddfb1e12862940a791e827d" |
||||
|
integrity sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ== |
||||
|
dependencies: |
||||
|
fast-memoize "^2.5.1" |
||||
|
|
||||
|
re-resizable@^6.9.11: |
||||
|
version "6.9.11" |
||||
|
resolved "https://registry.npmmirror.com/re-resizable/-/re-resizable-6.9.11.tgz#f356e27877f12d926d076ab9ad9ff0b95912b475" |
||||
|
integrity sha512-a3hiLWck/NkmyLvGWUuvkAmN1VhwAz4yOhS6FdMTaxCUVN9joIWkT11wsO68coG/iEYuwn+p/7qAmfQzRhiPLQ== |
||||
|
|
||||
react-dom@^18.2.0: |
react-dom@^18.2.0: |
||||
version "18.2.0" |
version "18.2.0" |
||||
resolved "https://registry.npmmirror.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" |
resolved "https://registry.npmmirror.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" |
||||
@ -3184,6 +3300,14 @@ react-dom@^18.2.0: |
|||||
loose-envify "^1.1.0" |
loose-envify "^1.1.0" |
||||
scheduler "^0.23.0" |
scheduler "^0.23.0" |
||||
|
|
||||
|
[email protected]: |
||||
|
version "4.4.5" |
||||
|
resolved "https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.5.tgz#9e37fe7ce1a4cf843030f521a0a4cc41886d7e7c" |
||||
|
integrity sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g== |
||||
|
dependencies: |
||||
|
clsx "^1.1.1" |
||||
|
prop-types "^15.8.1" |
||||
|
|
||||
react-i18next@^14.1.0: |
react-i18next@^14.1.0: |
||||
version "14.1.0" |
version "14.1.0" |
||||
resolved "https://registry.npmmirror.com/react-i18next/-/react-i18next-14.1.0.tgz#44da74fbffd416f5d0c5307ef31735cf10cc91d9" |
resolved "https://registry.npmmirror.com/react-i18next/-/react-i18next-14.1.0.tgz#44da74fbffd416f5d0c5307ef31735cf10cc91d9" |
||||
@ -3202,6 +3326,14 @@ react-is@^18.2.0: |
|||||
resolved "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" |
resolved "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" |
||||
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== |
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== |
||||
|
|
||||
|
react-layout-kit@^1.9.0: |
||||
|
version "1.9.0" |
||||
|
resolved "https://registry.npmmirror.com/react-layout-kit/-/react-layout-kit-1.9.0.tgz#db04c27a048d76243c0a4dfb107f7aa0428e9c5f" |
||||
|
integrity sha512-YjFXGaWTemwagfdmqz1VxTATXCpQmDfW/giHOSQDrGsddyBC6MEFdj+kNHYY9WpRamQDjyzAIkOQaJ1KxmcC2g== |
||||
|
dependencies: |
||||
|
"@babel/runtime" "^7" |
||||
|
"@emotion/css" "^11" |
||||
|
|
||||
react-lifecycles-compat@^3.0.4: |
react-lifecycles-compat@^3.0.4: |
||||
version "3.0.4" |
version "3.0.4" |
||||
resolved "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" |
resolved "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" |
||||
@ -3212,6 +3344,15 @@ react-refresh@^0.14.0: |
|||||
resolved "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" |
resolved "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" |
||||
integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== |
integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== |
||||
|
|
||||
|
react-rnd@^10.4.2-test2: |
||||
|
version "10.4.2-test2" |
||||
|
resolved "https://registry.npmmirror.com/react-rnd/-/react-rnd-10.4.2-test2.tgz#09e6bcb8fca0c40e60829b89380bd64a017cb4fb" |
||||
|
integrity sha512-gIlqsvhAM3mNz+QKa7n/fOkChHwU5Hq0hiSq4d+kq9Q7mW0KO9jp+M9ufHGuPykbWv1LST5ybrxPVyddN7oXZg== |
||||
|
dependencies: |
||||
|
re-resizable "6.9.6" |
||||
|
react-draggable "4.4.5" |
||||
|
tslib "2.3.1" |
||||
|
|
||||
react-sticky-box@^1.0.2: |
react-sticky-box@^1.0.2: |
||||
version "1.0.2" |
version "1.0.2" |
||||
resolved "https://registry.npmmirror.com/react-sticky-box/-/react-sticky-box-1.0.2.tgz#7e72a0f237bdf8270cec9254337f49519a411174" |
resolved "https://registry.npmmirror.com/react-sticky-box/-/react-sticky-box-1.0.2.tgz#7e72a0f237bdf8270cec9254337f49519a411174" |
||||
@ -3219,6 +3360,31 @@ react-sticky-box@^1.0.2: |
|||||
dependencies: |
dependencies: |
||||
resize-observer-polyfill "^1.5.1" |
resize-observer-polyfill "^1.5.1" |
||||
|
|
||||
|
react-universal-interface@^0.6.2: |
||||
|
version "0.6.2" |
||||
|
resolved "https://registry.npmmirror.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" |
||||
|
integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== |
||||
|
|
||||
|
react-use@^17.5.0: |
||||
|
version "17.5.0" |
||||
|
resolved "https://registry.npmmirror.com/react-use/-/react-use-17.5.0.tgz#1fae45638828a338291efa0f0c61862db7ee6442" |
||||
|
integrity sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg== |
||||
|
dependencies: |
||||
|
"@types/js-cookie" "^2.2.6" |
||||
|
"@xobotyi/scrollbar-width" "^1.9.5" |
||||
|
copy-to-clipboard "^3.3.1" |
||||
|
fast-deep-equal "^3.1.3" |
||||
|
fast-shallow-equal "^1.0.0" |
||||
|
js-cookie "^2.2.1" |
||||
|
nano-css "^5.6.1" |
||||
|
react-universal-interface "^0.6.2" |
||||
|
resize-observer-polyfill "^1.5.1" |
||||
|
screenfull "^5.1.0" |
||||
|
set-harmonic-interval "^1.0.1" |
||||
|
throttle-debounce "^3.0.1" |
||||
|
ts-easing "^0.2.0" |
||||
|
tslib "^2.1.0" |
||||
|
|
||||
react@^18.2.0: |
react@^18.2.0: |
||||
version "18.2.0" |
version "18.2.0" |
||||
resolved "https://registry.npmmirror.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" |
resolved "https://registry.npmmirror.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" |
||||
@ -3323,6 +3489,13 @@ rollup@^4.13.0: |
|||||
"@rollup/rollup-win32-x64-msvc" "4.14.2" |
"@rollup/rollup-win32-x64-msvc" "4.14.2" |
||||
fsevents "~2.3.2" |
fsevents "~2.3.2" |
||||
|
|
||||
|
rtl-css-js@^1.16.1: |
||||
|
version "1.16.1" |
||||
|
resolved "https://registry.npmmirror.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz#4b48b4354b0ff917a30488d95100fbf7219a3e80" |
||||
|
integrity sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg== |
||||
|
dependencies: |
||||
|
"@babel/runtime" "^7.1.2" |
||||
|
|
||||
run-parallel@^1.1.9: |
run-parallel@^1.1.9: |
||||
version "1.2.0" |
version "1.2.0" |
||||
resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" |
resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" |
||||
@ -3347,6 +3520,11 @@ scheduler@^0.23.0: |
|||||
dependencies: |
dependencies: |
||||
loose-envify "^1.1.0" |
loose-envify "^1.1.0" |
||||
|
|
||||
|
screenfull@^5.1.0: |
||||
|
version "5.2.0" |
||||
|
resolved "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba" |
||||
|
integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== |
||||
|
|
||||
scroll-into-view-if-needed@^3.1.0: |
scroll-into-view-if-needed@^3.1.0: |
||||
version "3.1.0" |
version "3.1.0" |
||||
resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f" |
resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f" |
||||
@ -3366,6 +3544,11 @@ semver@^7.6.0: |
|||||
dependencies: |
dependencies: |
||||
lru-cache "^6.0.0" |
lru-cache "^6.0.0" |
||||
|
|
||||
|
set-harmonic-interval@^1.0.1: |
||||
|
version "1.0.1" |
||||
|
resolved "https://registry.npmmirror.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" |
||||
|
integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== |
||||
|
|
||||
shallowequal@^1.1.0: |
shallowequal@^1.1.0: |
||||
version "1.1.0" |
version "1.1.0" |
||||
resolved "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" |
resolved "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" |
||||
@ -3393,11 +3576,50 @@ source-map-js@^1.2.0: |
|||||
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" |
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" |
||||
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== |
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== |
||||
|
|
||||
|
[email protected]: |
||||
|
version "0.5.6" |
||||
|
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" |
||||
|
integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== |
||||
|
|
||||
source-map@^0.5.7: |
source-map@^0.5.7: |
||||
version "0.5.7" |
version "0.5.7" |
||||
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" |
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" |
||||
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== |
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== |
||||
|
|
||||
|
source-map@^0.6.1: |
||||
|
version "0.6.1" |
||||
|
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" |
||||
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== |
||||
|
|
||||
|
stack-generator@^2.0.5: |
||||
|
version "2.0.10" |
||||
|
resolved "https://registry.npmmirror.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d" |
||||
|
integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== |
||||
|
dependencies: |
||||
|
stackframe "^1.3.4" |
||||
|
|
||||
|
stackframe@^1.3.4: |
||||
|
version "1.3.4" |
||||
|
resolved "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" |
||||
|
integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== |
||||
|
|
||||
|
stacktrace-gps@^3.0.4: |
||||
|
version "3.1.2" |
||||
|
resolved "https://registry.npmmirror.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz#0c40b24a9b119b20da4525c398795338966a2fb0" |
||||
|
integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ== |
||||
|
dependencies: |
||||
|
source-map "0.5.6" |
||||
|
stackframe "^1.3.4" |
||||
|
|
||||
|
stacktrace-js@^2.0.2: |
||||
|
version "2.0.2" |
||||
|
resolved "https://registry.npmmirror.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" |
||||
|
integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== |
||||
|
dependencies: |
||||
|
error-stack-parser "^2.0.6" |
||||
|
stack-generator "^2.0.5" |
||||
|
stacktrace-gps "^3.0.4" |
||||
|
|
||||
statuses@~1.5.0: |
statuses@~1.5.0: |
||||
version "1.5.0" |
version "1.5.0" |
||||
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" |
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" |
||||
@ -3437,7 +3659,7 @@ [email protected]: |
|||||
resolved "https://registry.npmmirror.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" |
resolved "https://registry.npmmirror.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" |
||||
integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== |
integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== |
||||
|
|
||||
stylis@^4.0.13: |
|
||||
|
stylis@^4.0.13, stylis@^4.3.0: |
||||
version "4.3.1" |
version "4.3.1" |
||||
resolved "https://registry.npmmirror.com/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb" |
resolved "https://registry.npmmirror.com/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb" |
||||
integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ== |
integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ== |
||||
@ -3474,6 +3696,11 @@ text-table@^0.2.0: |
|||||
resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" |
resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" |
||||
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== |
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== |
||||
|
|
||||
|
throttle-debounce@^3.0.1: |
||||
|
version "3.0.1" |
||||
|
resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" |
||||
|
integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== |
||||
|
|
||||
throttle-debounce@^5.0.0: |
throttle-debounce@^5.0.0: |
||||
version "5.0.0" |
version "5.0.0" |
||||
resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" |
resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" |
||||
@ -3529,7 +3756,17 @@ ts-api-utils@^1.3.0: |
|||||
resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" |
resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" |
||||
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== |
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== |
||||
|
|
||||
tslib@^2.0.0, tslib@^2.0.3: |
|
||||
|
ts-easing@^0.2.0: |
||||
|
version "0.2.0" |
||||
|
resolved "https://registry.npmmirror.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" |
||||
|
integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== |
||||
|
|
||||
|
[email protected]: |
||||
|
version "2.3.1" |
||||
|
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" |
||||
|
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== |
||||
|
|
||||
|
tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0: |
||||
version "2.6.2" |
version "2.6.2" |
||||
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" |
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" |
||||
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== |
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== |
||||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue