@tiny-codes/react-easy 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/es/components/ConfirmAction/index.d.ts +8 -0
  3. package/es/components/ConfirmAction/index.js +15 -0
  4. package/es/components/ConfirmAction/index.js.map +1 -1
  5. package/es/components/ContextMenu/index.d.ts +42 -0
  6. package/es/components/ContextMenu/index.js +188 -0
  7. package/es/components/ContextMenu/index.js.map +1 -0
  8. package/es/components/ContextMenu/style/index.d.ts +3 -0
  9. package/es/components/ContextMenu/style/index.js +25 -0
  10. package/es/components/ContextMenu/style/index.js.map +1 -0
  11. package/es/components/EditableText/form.d.ts +12 -6
  12. package/es/components/EditableText/form.js +106 -56
  13. package/es/components/EditableText/form.js.map +1 -1
  14. package/es/components/EditableText/index.d.ts +31 -9
  15. package/es/components/EditableText/index.js +13 -7
  16. package/es/components/EditableText/index.js.map +1 -1
  17. package/es/components/Loading/index.d.ts +2 -2
  18. package/es/components/Loading/index.js +5 -5
  19. package/es/components/Loading/index.js.map +1 -1
  20. package/es/components/index.d.ts +2 -0
  21. package/es/components/index.js +1 -0
  22. package/es/components/index.js.map +1 -1
  23. package/lib/components/ConfirmAction/index.d.ts +8 -0
  24. package/lib/components/ConfirmAction/index.js +9 -0
  25. package/lib/components/ConfirmAction/index.js.map +2 -2
  26. package/lib/components/ContextMenu/index.d.ts +42 -0
  27. package/lib/components/ContextMenu/index.js +190 -0
  28. package/lib/components/ContextMenu/index.js.map +7 -0
  29. package/lib/components/ContextMenu/style/index.d.ts +3 -0
  30. package/lib/components/ContextMenu/style/index.js +48 -0
  31. package/lib/components/ContextMenu/style/index.js.map +7 -0
  32. package/lib/components/EditableText/form.d.ts +12 -6
  33. package/lib/components/EditableText/form.js +69 -39
  34. package/lib/components/EditableText/form.js.map +2 -2
  35. package/lib/components/EditableText/index.d.ts +31 -9
  36. package/lib/components/EditableText/index.js +12 -5
  37. package/lib/components/EditableText/index.js.map +2 -2
  38. package/lib/components/Loading/index.d.ts +2 -2
  39. package/lib/components/Loading/index.js +4 -4
  40. package/lib/components/Loading/index.js.map +2 -2
  41. package/lib/components/index.d.ts +2 -0
  42. package/lib/components/index.js +3 -0
  43. package/lib/components/index.js.map +2 -2
  44. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## 1.2.0
6
+
7
+ 2025-7-16
8
+
9
+ ### Features
10
+
11
+ - 🔥 Add `ContextMenu` component
12
+ - `EditableText` component
13
+ - ✨ now supports `block` prop to control both view and editing mode
14
+ - ✨ `inputComp` prop allows for custom input components
15
+ - `Loading` component
16
+ - 💥 Renamed two properties:
17
+ - `maskStyle` to `rootStyle`
18
+ - `maskClassName` to `rootClassName`
19
+
5
20
  ## 1.1.3
6
21
 
7
22
  2025-7-4
@@ -168,4 +168,12 @@ export type ConfirmActionWithStatic = GenericConfirmActionInterface & {
168
168
  * - **CN:** 带触发器的确认框组件
169
169
  */
170
170
  declare const ConfirmAction: ConfirmActionWithStatic;
171
+ /**
172
+ * - **EN:** Generate a confirm box component with custom trigger and default props
173
+ * - **CN:** 基于自定义触发器和默认属性生成一个确认弹框组件
174
+ *
175
+ * @param actionComponent Custom trigger component | 自定义触发器组件
176
+ * @param defaultProps Default properties of the confirm box | 确认弹框的默认属性
177
+ */
178
+ export declare function withConfirmAction<TP extends object, E extends keyof TP>(actionComponent: ComponentType<TP>, defaultProps?: Partial<ConfirmActionProps<TP, E>> | (() => Partial<ConfirmActionProps<TP, E>>)): ComponentType<Omit<ConfirmActionProps<TP, E>, "triggerComponent"> & RefAttributes<ConfirmActionRef>>;
171
179
  export default ConfirmAction;
@@ -273,5 +273,20 @@ ConfirmAction.Link = withDefaultConfirmActionProps(forwarded, {
273
273
  }
274
274
  }
275
275
  });
276
+
277
+ // todo: 实现hoc
278
+ /**
279
+ * - **EN:** Generate a confirm box component with custom trigger and default props
280
+ * - **CN:** 基于自定义触发器和默认属性生成一个确认弹框组件
281
+ *
282
+ * @param actionComponent Custom trigger component | 自定义触发器组件
283
+ * @param defaultProps Default properties of the confirm box | 确认弹框的默认属性
284
+ */
285
+ export function withConfirmAction(actionComponent, defaultProps) {
286
+ var withTrigger = withDefaultConfirmActionProps(forwarded, _objectSpread({
287
+ triggerComponent: actionComponent
288
+ }, typeof defaultProps === 'function' ? defaultProps() : defaultProps));
289
+ return withTrigger;
290
+ }
276
291
  export default ConfirmAction;
277
292
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","forwardRef","useContext","useImperativeHandle","useRef","useState","App","Button","Modal","Switch","Typography","useToken","useContextValidator","useLocalizedText","useRefFunction","ReactEasyContext","jsx","_jsx","genRenderer","defaultProps","Render","props","ref","_restDefaults$trigger","_app$modal","_children","confirmType","restDefaults","_excluded","mergedProps","okButtonProps","cancelButtonProps","bodyProps","maskProps","wrapProps","triggerProps","style","context","defaultTitle","defaultDeletionConfirmTitle","defaultConfirmTitle","defaultContent","defaultDeletionConfirmContent","defaultConfirmContent","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","danger","_mergedProps$title","title","_mergedProps$content","content","titleColor","contentColor","icon","iconColor","onOk","afterOk","children","restProps","_excluded2","app","useApp","modal","confirm","_useContext","localize","_useToken","_useToken2","token","_useState","_useState2","confirmApi","setConfirmApi","triggerEventArgsRef","fallbackColor","coloredText","text","color","_localize","textContent","Text","colorPrimary","showConfirm","_ref","_ref2","okProps","cancelProps","api","autoFocusButton","_onOk2","_callee","_triggerEventArgsRef$","result","_callee$","_context","update","closable","loading","disabled","current","show","_len","_key","concat","withDefaultConfirmActionProps","WrappedComponent","WithDefaultProps","renderConfirmAction","forwarded","ConfirmAction","Link","whiteSpace"],"sources":["../../../src/components/ConfirmAction/index.tsx"],"sourcesContent":["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * - **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n * - **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * - **EN:** The color of confirm box title, default is `warning`\n * - **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box content\n * - **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box title icon, default is the same as `titleColor`\n * - **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** Callback when click confirm button\n * - **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * - **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n * - **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * - **EN:** Trigger component, trigger to show confirm box\n * - **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * - **EN:** Props of trigger component\n * - **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * - **EN:** The event name that triggers the dialog\n * - **CN:** 触发弹窗的事件名称\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * - **EN:** Custom trigger content\n * - **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * - **EN:** Show confirm box\n * - **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * - **EN:** Generate a confirm box component\n * - **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const okProps: ButtonProps = {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n };\n const cancelProps: ButtonProps = {\n ...(cancelButtonProps ?? {}),\n };\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n okButtonProps: okProps,\n cancelButtonProps: cancelProps,\n onOk: async () => {\n try {\n api.update({\n closable: true,\n okButtonProps: {\n loading: true,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: true,\n ...cancelProps,\n },\n });\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n } finally {\n api.update({\n closable: false,\n okButtonProps: {\n loading: false,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: false,\n ...cancelProps,\n },\n });\n }\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n const api = showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args, { api });\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * - **EN:** Add default properties to the ConfirmAction component\n * - **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * - **EN:** Interface of generic type component\n * - **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * - **EN:** Interface of specific type component\n * - **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * - **EN:** Props definition of specific type component\n * - **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * - **EN:** Confirm box with button trigger\n * - **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * - **EN:** Confirm box with switch trigger\n * - **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * - **EN:** Confirm box with link trigger\n * - **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * - **EN:** Confirm box component with trigger\n * - **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\nexport default ConfirmAction;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","forwardRef","useContext","useImperativeHandle","useRef","useState","App","Button","Modal","Switch","Typography","useToken","useContextValidator","useLocalizedText","useRefFunction","ReactEasyContext","jsx","_jsx","genRenderer","defaultProps","Render","props","ref","_restDefaults$trigger","_app$modal","_children","confirmType","restDefaults","_excluded","mergedProps","okButtonProps","cancelButtonProps","bodyProps","maskProps","wrapProps","triggerProps","style","context","defaultTitle","defaultDeletionConfirmTitle","defaultConfirmTitle","defaultContent","defaultDeletionConfirmContent","defaultConfirmContent","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","danger","_mergedProps$title","title","_mergedProps$content","content","titleColor","contentColor","icon","iconColor","onOk","afterOk","children","restProps","_excluded2","app","useApp","modal","confirm","_useContext","localize","_useToken","_useToken2","token","_useState","_useState2","confirmApi","setConfirmApi","triggerEventArgsRef","fallbackColor","coloredText","text","color","_localize","textContent","Text","colorPrimary","showConfirm","_ref","_ref2","okProps","cancelProps","api","autoFocusButton","_onOk2","_callee","_triggerEventArgsRef$","result","_callee$","_context","update","closable","loading","disabled","current","show","_len","_key","concat","withDefaultConfirmActionProps","WrappedComponent","WithDefaultProps","renderConfirmAction","forwarded","ConfirmAction","Link","whiteSpace","withConfirmAction","actionComponent","withTrigger"],"sources":["../../../src/components/ConfirmAction/index.tsx"],"sourcesContent":["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * - **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n * - **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * - **EN:** The color of confirm box title, default is `warning`\n * - **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box content\n * - **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box title icon, default is the same as `titleColor`\n * - **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** Callback when click confirm button\n * - **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * - **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n * - **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * - **EN:** Trigger component, trigger to show confirm box\n * - **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * - **EN:** Props of trigger component\n * - **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * - **EN:** The event name that triggers the dialog\n * - **CN:** 触发弹窗的事件名称\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * - **EN:** Custom trigger content\n * - **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * - **EN:** Show confirm box\n * - **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * - **EN:** Generate a confirm box component\n * - **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const okProps: ButtonProps = {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n };\n const cancelProps: ButtonProps = {\n ...(cancelButtonProps ?? {}),\n };\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n okButtonProps: okProps,\n cancelButtonProps: cancelProps,\n onOk: async () => {\n try {\n api.update({\n closable: true,\n okButtonProps: {\n loading: true,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: true,\n ...cancelProps,\n },\n });\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n } finally {\n api.update({\n closable: false,\n okButtonProps: {\n loading: false,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: false,\n ...cancelProps,\n },\n });\n }\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n const api = showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args, { api });\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * - **EN:** Add default properties to the ConfirmAction component\n * - **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * - **EN:** Interface of generic type component\n * - **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * - **EN:** Interface of specific type component\n * - **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * - **EN:** Props definition of specific type component\n * - **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * - **EN:** Confirm box with button trigger\n * - **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * - **EN:** Confirm box with switch trigger\n * - **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * - **EN:** Confirm box with link trigger\n * - **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * - **EN:** Confirm box component with trigger\n * - **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\n// todo: 实现hoc\n/**\n * - **EN:** Generate a confirm box component with custom trigger and default props\n * - **CN:** 基于自定义触发器和默认属性生成一个确认弹框组件\n *\n * @param actionComponent Custom trigger component | 自定义触发器组件\n * @param defaultProps Default properties of the confirm box | 确认弹框的默认属性\n */\nexport function withConfirmAction<TP extends object, E extends keyof TP>(\n actionComponent: ComponentType<TP>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>> | (() => Partial<ConfirmActionProps<TP, E>>)\n) {\n const withTrigger = withDefaultConfirmActionProps(forwarded as unknown as TypedConfirmActionInterface<TP, E>, {\n triggerComponent: actionComponent,\n ...(typeof defaultProps === 'function' ? defaultProps() : defaultProps),\n }) as unknown as ComponentType<Omit<ConfirmActionProps<TP, E>, 'triggerComponent'> & RefAttributes<ConfirmActionRef>>;\n return withTrigger;\n}\n\nexport default ConfirmAction;\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ import type { ItemProps, MenuProps, SeparatorProps, SubMenuProps } from 'react-contexify';
3
+ import 'react-contexify/dist/ReactContexify.css';
4
+ export interface ContextMenuProps extends MenuProps {
5
+ /**
6
+ * - **EN:** Menu items to be displayed
7
+ * - **CN:** 要显示的菜单项
8
+ */
9
+ items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[] | undefined;
10
+ /**
11
+ * - **EN:** Trigger methods to show the menu, default is `['contextMenu']`
12
+ * - **CN:** 触发显示菜单的方式,默认是 `['contextMenu']`
13
+ */
14
+ trigger?: ('click' | 'doubleClick' | 'hover' | 'contextMenu')[];
15
+ triggerProps?: {
16
+ className?: string;
17
+ style?: CSSProperties;
18
+ };
19
+ prefixCls?: string;
20
+ }
21
+ declare const ContextMenu: import("react").ForwardRefExoticComponent<ContextMenuProps & import("react").RefAttributes<ContextMenuRef>>;
22
+ export interface ContextMenuRef {
23
+ show: (event: React.MouseEvent<HTMLElement>) => void;
24
+ hideAll: () => void;
25
+ }
26
+ export interface ContextMenuItem extends Omit<ItemProps, 'children' | 'keyMatcher'> {
27
+ key: string;
28
+ className?: string;
29
+ icon?: ReactNode;
30
+ label?: ReactNode;
31
+ shortcutKey?: Partial<Pick<KeyboardEvent, 'ctrlKey' | 'altKey' | 'shiftKey' | 'metaKey' | 'key'>> | ItemProps['keyMatcher'];
32
+ children?: ReactNode;
33
+ }
34
+ export interface ContextMenuSeparator extends SeparatorProps {
35
+ type: 'separator';
36
+ }
37
+ export interface ContextMenuSubmenu extends SubMenuProps {
38
+ key: string;
39
+ type: 'submenu';
40
+ items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[];
41
+ }
42
+ export default ContextMenu;
@@ -0,0 +1,188 @@
1
+ var _excluded = ["id", "items", "trigger", "triggerProps", "prefixCls", "className", "children"];
2
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
16
+ import { forwardRef, useContext, useImperativeHandle, useMemo } from 'react';
17
+ import { theme as AntdTheme, ConfigProvider, Typography } from 'antd';
18
+ import classNames from 'classnames';
19
+ import { Item, Menu, RightSlot, Separator, Submenu, useContextMenu } from 'react-contexify';
20
+ import { useRefFunction } from "../../hooks";
21
+ import useStyle from "./style";
22
+ import 'react-contexify/dist/ReactContexify.css';
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { Fragment as _Fragment } from "react/jsx-runtime";
25
+ import { jsxs as _jsxs } from "react/jsx-runtime";
26
+ import { createElement as _createElement } from "react";
27
+ // 上下文菜单组件
28
+ var ContextMenu = /*#__PURE__*/forwardRef(function (props, ref) {
29
+ var id = props.id,
30
+ items = props.items,
31
+ _props$trigger = props.trigger,
32
+ trigger = _props$trigger === void 0 ? ['contextMenu'] : _props$trigger,
33
+ triggerProps = props.triggerProps,
34
+ prefixClsInProps = props.prefixCls,
35
+ className = props.className,
36
+ children = props.children,
37
+ rest = _objectWithoutProperties(props, _excluded);
38
+ var _useContext = useContext(ConfigProvider.ConfigContext),
39
+ getPrefixCls = _useContext.getPrefixCls;
40
+ var prefixCls = getPrefixCls('context-menu', prefixClsInProps);
41
+ var _useStyle = useStyle(prefixCls),
42
+ _useStyle2 = _slicedToArray(_useStyle, 3),
43
+ wrapCSSVar = _useStyle2[0],
44
+ hashId = _useStyle2[1],
45
+ cssVarCls = _useStyle2[2];
46
+ var _useContextMenu = useContextMenu({
47
+ id: id
48
+ }),
49
+ show = _useContextMenu.show,
50
+ hideAll = _useContextMenu.hideAll;
51
+ var eventNames = useMemo(function () {
52
+ return {
53
+ click: ['onClick', undefined],
54
+ doubleClick: ['onDoubleClick', undefined],
55
+ hover: ['onPointerEnter', 'onPointerLeave'],
56
+ contextMenu: ['onContextMenu', undefined]
57
+ };
58
+ }, []);
59
+
60
+ // Show context menu handler
61
+ var handleShow = useRefFunction(function (event, options) {
62
+ show({
63
+ id: id,
64
+ event: event,
65
+ props: props,
66
+ position: options === null || options === void 0 ? void 0 : options.position
67
+ });
68
+ });
69
+ // Hide all context menus handler
70
+ var handleHideAll = useRefFunction(function () {
71
+ hideAll();
72
+ });
73
+ var eventHandlers = useMemo(function () {
74
+ var handlers = {};
75
+ if (trigger) {
76
+ trigger.forEach(function (eventType) {
77
+ var _eventNames$eventType = _slicedToArray(eventNames[eventType], 2),
78
+ handlerName = _eventNames$eventType[0],
79
+ leaveHandlerName = _eventNames$eventType[1];
80
+ handlers[handlerName] = function (event) {
81
+ handleShow(event);
82
+ };
83
+ if (leaveHandlerName) {
84
+ handlers[leaveHandlerName] = handleHideAll;
85
+ }
86
+ });
87
+ }
88
+ return handlers;
89
+ }, [eventNames, trigger]);
90
+
91
+ // Expose show and hideAll methods to the ref
92
+ useImperativeHandle(ref, function () {
93
+ return {
94
+ show: handleShow,
95
+ hideAll: handleHideAll
96
+ };
97
+ }, []);
98
+ return /*#__PURE__*/_jsxs(_Fragment, {
99
+ children: [children && wrapCSSVar( /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({}, eventHandlers), {}, {
100
+ className: classNames(hashId, cssVarCls, prefixCls, "".concat(prefixCls, "-trigger"), triggerProps === null || triggerProps === void 0 ? void 0 : triggerProps.className),
101
+ style: triggerProps === null || triggerProps === void 0 ? void 0 : triggerProps.style,
102
+ children: children
103
+ }))), wrapCSSVar( /*#__PURE__*/_jsx(Menu, _objectSpread(_objectSpread({
104
+ id: id,
105
+ className: classNames(hashId, cssVarCls, prefixCls, "".concat(prefixCls, "-menu"), _defineProperty({}, "".concat(prefixCls, "-menu-has-items"), !!(items !== null && items !== void 0 && items.length)), className)
106
+ }, rest), {}, {
107
+ children: renderItems(items, {
108
+ theme: props.theme,
109
+ cmpPrefixCls: prefixCls
110
+ })
111
+ })))]
112
+ });
113
+ });
114
+ ContextMenu.displayName = 'ContextMenu';
115
+
116
+ // Render menu items
117
+ function renderItems(items, options) {
118
+ return items === null || items === void 0 ? void 0 : items.map(function (item, index) {
119
+ var isSeparator = 'type' in item && item.type === 'separator';
120
+ var isSubmenu = 'type' in item && item.type === 'submenu';
121
+ var menuItem = item;
122
+ if (isSeparator) {
123
+ // eslint-disable-next-line react/no-array-index-key
124
+ return /*#__PURE__*/_jsx(Separator, {}, "[separator]:".concat(index));
125
+ }
126
+ if (isSubmenu) {
127
+ var subMenu = item;
128
+ return /*#__PURE__*/_createElement(Submenu, _objectSpread(_objectSpread({}, subMenu), {}, {
129
+ key: subMenu.key
130
+ }), renderItems(item.items, options));
131
+ }
132
+ return /*#__PURE__*/_createElement(Item, _objectSpread(_objectSpread({}, menuItem), {}, {
133
+ keyMatcher: _typeof(menuItem.shortcutKey) === 'object' ? function (e) {
134
+ var shortcutKey = menuItem.shortcutKey;
135
+ if (shortcutKey.ctrlKey && !e.ctrlKey) return false;
136
+ if (shortcutKey.altKey && !e.altKey) return false;
137
+ if (shortcutKey.shiftKey && !e.shiftKey) return false;
138
+ if (shortcutKey.metaKey && !e.metaKey) return false;
139
+ if (!shortcutKey.key || shortcutKey.key !== e.key) return false;
140
+ return true;
141
+ } : menuItem.shortcutKey,
142
+ key: menuItem.key
143
+ }), menuItem.children ? menuItem.children : /*#__PURE__*/_jsxs(_Fragment, {
144
+ children: [menuItem.icon, /*#__PURE__*/_jsx("span", {
145
+ children: menuItem.label
146
+ }), _typeof(menuItem.shortcutKey) === 'object' && /*#__PURE__*/_jsx(RightSlot, {
147
+ children: getShortcutText(menuItem.shortcutKey, options)
148
+ })]
149
+ }));
150
+ });
151
+ }
152
+ function getShortcutText(event, options) {
153
+ var theme = options.theme,
154
+ cmpPrefixCls = options.cmpPrefixCls;
155
+ var keys = [];
156
+ var Keyboard = function Keyboard(props) {
157
+ return /*#__PURE__*/_jsx(ConfigProvider, {
158
+ theme: {
159
+ algorithm: theme === 'dark' ? AntdTheme.darkAlgorithm : undefined
160
+ },
161
+ children: /*#__PURE__*/_jsx(Typography.Text, {
162
+ keyboard: true,
163
+ className: "".concat(cmpPrefixCls, "-shortcut-key"),
164
+ children: props.children
165
+ })
166
+ });
167
+ };
168
+ if (event.ctrlKey) keys.push( /*#__PURE__*/_jsx(Keyboard, {
169
+ children: "^"
170
+ }));
171
+ if (event.altKey) keys.push( /*#__PURE__*/_jsx(Keyboard, {
172
+ children: "\u2325"
173
+ }));
174
+ if (event.shiftKey) keys.push( /*#__PURE__*/_jsx(Keyboard, {
175
+ children: "\u21E7"
176
+ }));
177
+ if (event.metaKey) keys.push( /*#__PURE__*/_jsx(Keyboard, {
178
+ children: "\u2318"
179
+ }));
180
+ if (event.key) {
181
+ keys.push( /*#__PURE__*/_jsx(Keyboard, {
182
+ children: event.key
183
+ }));
184
+ }
185
+ return keys;
186
+ }
187
+ export default ContextMenu;
188
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useContext","useImperativeHandle","useMemo","theme","AntdTheme","ConfigProvider","Typography","classNames","Item","Menu","RightSlot","Separator","Submenu","useContextMenu","useRefFunction","useStyle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","createElement","_createElement","ContextMenu","props","ref","id","items","_props$trigger","trigger","triggerProps","prefixClsInProps","prefixCls","className","children","rest","_objectWithoutProperties","_excluded","_useContext","ConfigContext","getPrefixCls","_useStyle","_useStyle2","_slicedToArray","wrapCSSVar","hashId","cssVarCls","_useContextMenu","show","hideAll","eventNames","click","undefined","doubleClick","hover","contextMenu","handleShow","event","options","position","handleHideAll","eventHandlers","handlers","forEach","eventType","_eventNames$eventType","handlerName","leaveHandlerName","_objectSpread","concat","style","_defineProperty","length","renderItems","cmpPrefixCls","displayName","map","item","index","isSeparator","type","isSubmenu","menuItem","subMenu","key","keyMatcher","_typeof","shortcutKey","e","ctrlKey","altKey","shiftKey","metaKey","icon","label","getShortcutText","keys","Keyboard","algorithm","darkAlgorithm","Text","keyboard","push"],"sources":["../../../src/components/ContextMenu/index.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useMemo } from 'react';\nimport { theme as AntdTheme, ConfigProvider, Typography } from 'antd';\nimport classNames from 'classnames';\nimport type { ItemProps, MenuProps, SeparatorProps, ShowContextMenuParams, SubMenuProps } from 'react-contexify';\nimport { Item, Menu, RightSlot, Separator, Submenu, useContextMenu } from 'react-contexify';\nimport { useRefFunction } from '../../hooks';\nimport useStyle from './style';\nimport 'react-contexify/dist/ReactContexify.css';\n\nexport interface ContextMenuProps extends MenuProps {\n /**\n * - **EN:** Menu items to be displayed\n * - **CN:** 要显示的菜单项\n */\n items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[] | undefined;\n /**\n * - **EN:** Trigger methods to show the menu, default is `['contextMenu']`\n * - **CN:** 触发显示菜单的方式,默认是 `['contextMenu']`\n */\n trigger?: ('click' | 'doubleClick' | 'hover' | 'contextMenu')[];\n triggerProps?: {\n className?: string;\n style?: CSSProperties;\n };\n prefixCls?: string;\n}\n// 上下文菜单组件\nconst ContextMenu = forwardRef<ContextMenuRef, ContextMenuProps>((props, ref) => {\n const {\n id,\n items,\n trigger = ['contextMenu'],\n triggerProps,\n prefixCls: prefixClsInProps,\n className,\n children,\n ...rest\n } = props;\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const prefixCls = getPrefixCls('context-menu', prefixClsInProps);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const { show, hideAll } = useContextMenu({ id });\n const eventNames = useMemo<Record<NonNullable<ContextMenuProps['trigger']>[number], [string, string | undefined]>>(\n () => ({\n click: ['onClick', undefined],\n doubleClick: ['onDoubleClick', undefined],\n hover: ['onPointerEnter', 'onPointerLeave'],\n contextMenu: ['onContextMenu', undefined],\n }),\n []\n );\n\n // Show context menu handler\n const handleShow = useRefFunction(\n (event: React.MouseEvent<HTMLElement>, options?: Pick<ShowContextMenuParams, 'position'>) => {\n show({\n id,\n event,\n props,\n position: options?.position,\n });\n }\n );\n // Hide all context menus handler\n const handleHideAll = useRefFunction(() => {\n hideAll();\n });\n const eventHandlers = useMemo(() => {\n const handlers: Record<string, (event: React.MouseEvent<HTMLElement>) => void> = {};\n if (trigger) {\n trigger.forEach((eventType) => {\n const [handlerName, leaveHandlerName] = eventNames[eventType];\n handlers[handlerName] = (event: React.MouseEvent<HTMLElement>) => {\n handleShow(event);\n };\n if (leaveHandlerName) {\n handlers[leaveHandlerName] = handleHideAll;\n }\n });\n }\n return handlers;\n }, [eventNames, trigger]);\n\n // Expose show and hideAll methods to the ref\n useImperativeHandle(\n ref,\n () => ({\n show: handleShow,\n hideAll: handleHideAll,\n }),\n []\n );\n\n return (\n <>\n {children &&\n wrapCSSVar(\n <div\n {...eventHandlers}\n className={classNames(hashId, cssVarCls, prefixCls, `${prefixCls}-trigger`, triggerProps?.className)}\n style={triggerProps?.style}\n >\n {children}\n </div>\n )}\n {wrapCSSVar(\n <Menu\n id={id}\n className={classNames(\n hashId,\n cssVarCls,\n prefixCls,\n `${prefixCls}-menu`,\n {\n [`${prefixCls}-menu-has-items`]: !!items?.length,\n },\n className\n )}\n {...rest}\n >\n {renderItems(items, { theme: props.theme, cmpPrefixCls: prefixCls })}\n </Menu>\n )}\n </>\n );\n});\nContextMenu.displayName = 'ContextMenu';\n\n// Render menu items\nfunction renderItems(\n items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[] | undefined,\n options: Pick<ContextMenuProps, 'theme'> & { cmpPrefixCls: string }\n): ReactNode[] | undefined {\n return items?.map((item, index) => {\n const isSeparator = 'type' in item && item.type === 'separator';\n const isSubmenu = 'type' in item && item.type === 'submenu';\n const menuItem = item as ContextMenuItem;\n\n if (isSeparator) {\n // eslint-disable-next-line react/no-array-index-key\n return <Separator key={`[separator]:${index}`} />;\n }\n\n if (isSubmenu) {\n const subMenu = item as ContextMenuSubmenu;\n return (\n <Submenu {...subMenu} key={subMenu.key}>\n {renderItems(item.items, options)}\n </Submenu>\n );\n }\n\n return (\n <Item\n {...menuItem}\n keyMatcher={\n typeof menuItem.shortcutKey === 'object'\n ? (e) => {\n const shortcutKey = menuItem.shortcutKey as Partial<KeyboardEvent>;\n if (shortcutKey.ctrlKey && !e.ctrlKey) return false;\n if (shortcutKey.altKey && !e.altKey) return false;\n if (shortcutKey.shiftKey && !e.shiftKey) return false;\n if (shortcutKey.metaKey && !e.metaKey) return false;\n if (!shortcutKey.key || shortcutKey.key !== e.key) return false;\n return true;\n }\n : menuItem.shortcutKey\n }\n key={menuItem.key}\n >\n {menuItem.children ? (\n menuItem.children\n ) : (\n <>\n {menuItem.icon}\n <span>{menuItem.label}</span>\n {typeof menuItem.shortcutKey === 'object' && (\n <RightSlot>{getShortcutText(menuItem.shortcutKey, options)}</RightSlot>\n )}\n </>\n )}\n </Item>\n );\n });\n}\n\nfunction getShortcutText(\n event: Partial<Pick<KeyboardEvent, 'ctrlKey' | 'altKey' | 'shiftKey' | 'metaKey' | 'key'>>,\n options: Pick<ContextMenuProps, 'theme'> & { cmpPrefixCls: string }\n): ReactNode[] {\n const { theme, cmpPrefixCls } = options;\n const keys: ReactNode[] = [];\n const Keyboard = (props: { children: ReactNode }) => {\n return (\n <ConfigProvider theme={{ algorithm: theme === 'dark' ? AntdTheme.darkAlgorithm : undefined }}>\n <Typography.Text keyboard className={`${cmpPrefixCls}-shortcut-key`}>\n {props.children}\n </Typography.Text>\n </ConfigProvider>\n );\n };\n if (event.ctrlKey) keys.push(<Keyboard>^</Keyboard>);\n if (event.altKey) keys.push(<Keyboard>⌥</Keyboard>);\n if (event.shiftKey) keys.push(<Keyboard>⇧</Keyboard>);\n if (event.metaKey) keys.push(<Keyboard>⌘</Keyboard>);\n if (event.key) {\n keys.push(<Keyboard>{event.key}</Keyboard>);\n }\n return keys;\n}\n\nexport interface ContextMenuRef {\n show: (event: React.MouseEvent<HTMLElement>) => void;\n hideAll: () => void;\n}\n\nexport interface ContextMenuItem extends Omit<ItemProps, 'children' | 'keyMatcher'> {\n key: string;\n className?: string;\n icon?: ReactNode;\n label?: ReactNode;\n shortcutKey?:\n | Partial<Pick<KeyboardEvent, 'ctrlKey' | 'altKey' | 'shiftKey' | 'metaKey' | 'key'>>\n | ItemProps['keyMatcher'];\n children?: ReactNode;\n}\n\nexport interface ContextMenuSeparator extends SeparatorProps {\n type: 'separator';\n}\n\nexport interface ContextMenuSubmenu extends SubMenuProps {\n key: string;\n type: 'submenu';\n items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[];\n}\n\nexport default ContextMenu;\n"],"mappings":";;;;;;;;;;;;;;;AACA,SAASA,UAAU,EAAEC,UAAU,EAAEC,mBAAmB,EAAEC,OAAO,QAAQ,OAAO;AAC5E,SAASC,KAAK,IAAIC,SAAS,EAAEC,cAAc,EAAEC,UAAU,QAAQ,MAAM;AACrE,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,IAAI,EAAEC,IAAI,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAEC,cAAc,QAAQ,iBAAiB;AAC3F,SAASC,cAAc;AACvB,OAAOC,QAAQ;AACf,OAAO,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,aAAA,IAAAC,cAAA;AAmBjD;AACA,IAAMC,WAAW,gBAAGzB,UAAU,CAAmC,UAAC0B,KAAK,EAAEC,GAAG,EAAK;EAC/E,IACEC,EAAE,GAQAF,KAAK,CARPE,EAAE;IACFC,KAAK,GAOHH,KAAK,CAPPG,KAAK;IAAAC,cAAA,GAOHJ,KAAK,CANPK,OAAO;IAAPA,OAAO,GAAAD,cAAA,cAAG,CAAC,aAAa,CAAC,GAAAA,cAAA;IACzBE,YAAY,GAKVN,KAAK,CALPM,YAAY;IACDC,gBAAgB,GAIzBP,KAAK,CAJPQ,SAAS;IACTC,SAAS,GAGPT,KAAK,CAHPS,SAAS;IACTC,QAAQ,GAENV,KAAK,CAFPU,QAAQ;IACLC,IAAI,GAAAC,wBAAA,CACLZ,KAAK,EAAAa,SAAA;EACT,IAAAC,WAAA,GAAyBvC,UAAU,CAACK,cAAc,CAACmC,aAAa,CAAC;IAAzDC,YAAY,GAAAF,WAAA,CAAZE,YAAY;EACpB,IAAMR,SAAS,GAAGQ,YAAY,CAAC,cAAc,EAAET,gBAAgB,CAAC;EAChE,IAAAU,SAAA,GAAwC3B,QAAQ,CAACkB,SAAS,CAAC;IAAAU,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAApDG,UAAU,GAAAF,UAAA;IAAEG,MAAM,GAAAH,UAAA;IAAEI,SAAS,GAAAJ,UAAA;EACpC,IAAAK,eAAA,GAA0BnC,cAAc,CAAC;MAAEc,EAAE,EAAFA;IAAG,CAAC,CAAC;IAAxCsB,IAAI,GAAAD,eAAA,CAAJC,IAAI;IAAEC,OAAO,GAAAF,eAAA,CAAPE,OAAO;EACrB,IAAMC,UAAU,GAAGjD,OAAO,CACxB;IAAA,OAAO;MACLkD,KAAK,EAAE,CAAC,SAAS,EAAEC,SAAS,CAAC;MAC7BC,WAAW,EAAE,CAAC,eAAe,EAAED,SAAS,CAAC;MACzCE,KAAK,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;MAC3CC,WAAW,EAAE,CAAC,eAAe,EAAEH,SAAS;IAC1C,CAAC;EAAA,CAAC,EACF,EACF,CAAC;;EAED;EACA,IAAMI,UAAU,GAAG3C,cAAc,CAC/B,UAAC4C,KAAoC,EAAEC,OAAiD,EAAK;IAC3FV,IAAI,CAAC;MACHtB,EAAE,EAAFA,EAAE;MACF+B,KAAK,EAALA,KAAK;MACLjC,KAAK,EAALA,KAAK;MACLmC,QAAQ,EAAED,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC;IACrB,CAAC,CAAC;EACJ,CACF,CAAC;EACD;EACA,IAAMC,aAAa,GAAG/C,cAAc,CAAC,YAAM;IACzCoC,OAAO,CAAC,CAAC;EACX,CAAC,CAAC;EACF,IAAMY,aAAa,GAAG5D,OAAO,CAAC,YAAM;IAClC,IAAM6D,QAAwE,GAAG,CAAC,CAAC;IACnF,IAAIjC,OAAO,EAAE;MACXA,OAAO,CAACkC,OAAO,CAAC,UAACC,SAAS,EAAK;QAC7B,IAAAC,qBAAA,GAAAtB,cAAA,CAAwCO,UAAU,CAACc,SAAS,CAAC;UAAtDE,WAAW,GAAAD,qBAAA;UAAEE,gBAAgB,GAAAF,qBAAA;QACpCH,QAAQ,CAACI,WAAW,CAAC,GAAG,UAACT,KAAoC,EAAK;UAChED,UAAU,CAACC,KAAK,CAAC;QACnB,CAAC;QACD,IAAIU,gBAAgB,EAAE;UACpBL,QAAQ,CAACK,gBAAgB,CAAC,GAAGP,aAAa;QAC5C;MACF,CAAC,CAAC;IACJ;IACA,OAAOE,QAAQ;EACjB,CAAC,EAAE,CAACZ,UAAU,EAAErB,OAAO,CAAC,CAAC;;EAEzB;EACA7B,mBAAmB,CACjByB,GAAG,EACH;IAAA,OAAO;MACLuB,IAAI,EAAEQ,UAAU;MAChBP,OAAO,EAAEW;IACX,CAAC;EAAA,CAAC,EACF,EACF,CAAC;EAED,oBACExC,KAAA,CAAAF,SAAA;IAAAgB,QAAA,GACGA,QAAQ,IACPU,UAAU,eACR5B,IAAA,QAAAoD,aAAA,CAAAA,aAAA,KACMP,aAAa;MACjB5B,SAAS,EAAE3B,UAAU,CAACuC,MAAM,EAAEC,SAAS,EAAEd,SAAS,KAAAqC,MAAA,CAAKrC,SAAS,eAAYF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,SAAS,CAAE;MACrGqC,KAAK,EAAExC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEwC,KAAM;MAAApC,QAAA,EAE1BA;IAAQ,EACN,CACP,CAAC,EACFU,UAAU,eACT5B,IAAA,CAACR,IAAI,EAAA4D,aAAA,CAAAA,aAAA;MACH1C,EAAE,EAAEA,EAAG;MACPO,SAAS,EAAE3B,UAAU,CACnBuC,MAAM,EACNC,SAAS,EACTd,SAAS,KAAAqC,MAAA,CACNrC,SAAS,YAAAuC,eAAA,QAAAF,MAAA,CAENrC,SAAS,sBAAoB,CAAC,EAACL,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE6C,MAAM,IAElDvC,SACF;IAAE,GACEE,IAAI;MAAAD,QAAA,EAEPuC,WAAW,CAAC9C,KAAK,EAAE;QAAEzB,KAAK,EAAEsB,KAAK,CAACtB,KAAK;QAAEwE,YAAY,EAAE1C;MAAU,CAAC;IAAC,EAChE,CACR,CAAC;EAAA,CACD,CAAC;AAEP,CAAC,CAAC;AACFT,WAAW,CAACoD,WAAW,GAAG,aAAa;;AAEvC;AACA,SAASF,WAAWA,CAClB9C,KAAkF,EAClF+B,OAAmE,EAC1C;EACzB,OAAO/B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEiD,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;IACjC,IAAMC,WAAW,GAAG,MAAM,IAAIF,IAAI,IAAIA,IAAI,CAACG,IAAI,KAAK,WAAW;IAC/D,IAAMC,SAAS,GAAG,MAAM,IAAIJ,IAAI,IAAIA,IAAI,CAACG,IAAI,KAAK,SAAS;IAC3D,IAAME,QAAQ,GAAGL,IAAuB;IAExC,IAAIE,WAAW,EAAE;MACf;MACA,oBAAO/D,IAAA,CAACN,SAAS,qBAAA2D,MAAA,CAAqBS,KAAK,CAAK,CAAC;IACnD;IAEA,IAAIG,SAAS,EAAE;MACb,IAAME,OAAO,GAAGN,IAA0B;MAC1C,oBACEvD,cAAA,CAACX,OAAO,EAAAyD,aAAA,CAAAA,aAAA,KAAKe,OAAO;QAAEC,GAAG,EAAED,OAAO,CAACC;MAAI,IACpCX,WAAW,CAACI,IAAI,CAAClD,KAAK,EAAE+B,OAAO,CACzB,CAAC;IAEd;IAEA,oBACEpC,cAAA,CAACf,IAAI,EAAA6D,aAAA,CAAAA,aAAA,KACCc,QAAQ;MACZG,UAAU,EACRC,OAAA,CAAOJ,QAAQ,CAACK,WAAW,MAAK,QAAQ,GACpC,UAACC,CAAC,EAAK;QACL,IAAMD,WAAW,GAAGL,QAAQ,CAACK,WAAqC;QAClE,IAAIA,WAAW,CAACE,OAAO,IAAI,CAACD,CAAC,CAACC,OAAO,EAAE,OAAO,KAAK;QACnD,IAAIF,WAAW,CAACG,MAAM,IAAI,CAACF,CAAC,CAACE,MAAM,EAAE,OAAO,KAAK;QACjD,IAAIH,WAAW,CAACI,QAAQ,IAAI,CAACH,CAAC,CAACG,QAAQ,EAAE,OAAO,KAAK;QACrD,IAAIJ,WAAW,CAACK,OAAO,IAAI,CAACJ,CAAC,CAACI,OAAO,EAAE,OAAO,KAAK;QACnD,IAAI,CAACL,WAAW,CAACH,GAAG,IAAIG,WAAW,CAACH,GAAG,KAAKI,CAAC,CAACJ,GAAG,EAAE,OAAO,KAAK;QAC/D,OAAO,IAAI;MACb,CAAC,GACDF,QAAQ,CAACK,WACd;MACDH,GAAG,EAAEF,QAAQ,CAACE;IAAI,IAEjBF,QAAQ,CAAChD,QAAQ,GAChBgD,QAAQ,CAAChD,QAAQ,gBAEjBd,KAAA,CAAAF,SAAA;MAAAgB,QAAA,GACGgD,QAAQ,CAACW,IAAI,eACd7E,IAAA;QAAAkB,QAAA,EAAOgD,QAAQ,CAACY;MAAK,CAAO,CAAC,EAC5BR,OAAA,CAAOJ,QAAQ,CAACK,WAAW,MAAK,QAAQ,iBACvCvE,IAAA,CAACP,SAAS;QAAAyB,QAAA,EAAE6D,eAAe,CAACb,QAAQ,CAACK,WAAW,EAAE7B,OAAO;MAAC,CAAY,CACvE;IAAA,CACD,CAEA,CAAC;EAEX,CAAC,CAAC;AACJ;AAEA,SAASqC,eAAeA,CACtBtC,KAA0F,EAC1FC,OAAmE,EACtD;EACb,IAAQxD,KAAK,GAAmBwD,OAAO,CAA/BxD,KAAK;IAAEwE,YAAY,GAAKhB,OAAO,CAAxBgB,YAAY;EAC3B,IAAMsB,IAAiB,GAAG,EAAE;EAC5B,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAIzE,KAA8B,EAAK;IACnD,oBACER,IAAA,CAACZ,cAAc;MAACF,KAAK,EAAE;QAAEgG,SAAS,EAAEhG,KAAK,KAAK,MAAM,GAAGC,SAAS,CAACgG,aAAa,GAAG/C;MAAU,CAAE;MAAAlB,QAAA,eAC3FlB,IAAA,CAACX,UAAU,CAAC+F,IAAI;QAACC,QAAQ;QAACpE,SAAS,KAAAoC,MAAA,CAAKK,YAAY,kBAAgB;QAAAxC,QAAA,EACjEV,KAAK,CAACU;MAAQ,CACA;IAAC,CACJ,CAAC;EAErB,CAAC;EACD,IAAIuB,KAAK,CAACgC,OAAO,EAAEO,IAAI,CAACM,IAAI,eAACtF,IAAA,CAACiF,QAAQ;IAAA/D,QAAA,EAAC;EAAC,CAAU,CAAC,CAAC;EACpD,IAAIuB,KAAK,CAACiC,MAAM,EAAEM,IAAI,CAACM,IAAI,eAACtF,IAAA,CAACiF,QAAQ;IAAA/D,QAAA,EAAC;EAAC,CAAU,CAAC,CAAC;EACnD,IAAIuB,KAAK,CAACkC,QAAQ,EAAEK,IAAI,CAACM,IAAI,eAACtF,IAAA,CAACiF,QAAQ;IAAA/D,QAAA,EAAC;EAAC,CAAU,CAAC,CAAC;EACrD,IAAIuB,KAAK,CAACmC,OAAO,EAAEI,IAAI,CAACM,IAAI,eAACtF,IAAA,CAACiF,QAAQ;IAAA/D,QAAA,EAAC;EAAC,CAAU,CAAC,CAAC;EACpD,IAAIuB,KAAK,CAAC2B,GAAG,EAAE;IACbY,IAAI,CAACM,IAAI,eAACtF,IAAA,CAACiF,QAAQ;MAAA/D,QAAA,EAAEuB,KAAK,CAAC2B;IAAG,CAAW,CAAC,CAAC;EAC7C;EACA,OAAOY,IAAI;AACb;AA4BA,eAAezE,WAAW"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (prefixCls: string, rootCls?: string | undefined) => readonly [(node: import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>, string, string];
3
+ export default _default;
@@ -0,0 +1,25 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
+ import { genStyleHooks } from 'antd/es/theme/internal';
6
+ var genStyle = function genStyle(token) {
7
+ var componentCls = token.componentCls;
8
+ return _defineProperty({}, componentCls, {
9
+ '&-trigger': {
10
+ width: 'fit-content'
11
+ },
12
+ '&-menu': _defineProperty({
13
+ padding: 0,
14
+ '&-has-items': {
15
+ padding: 'var(--contexify-menu-padding)'
16
+ }
17
+ }, "".concat(componentCls, "-shortcut-key"), {
18
+ kbd: {
19
+ fontFamily: '-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,sans-serif'
20
+ }
21
+ })
22
+ });
23
+ };
24
+ export default genStyleHooks('ContextMenu', genStyle);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["genStyleHooks","genStyle","token","componentCls","_defineProperty","width","padding","concat","kbd","fontFamily"],"sources":["../../../../src/components/ContextMenu/style/index.ts"],"sourcesContent":["import { genStyleHooks } from 'antd/es/theme/internal';\nimport type { AliasToken, GenerateStyle } from 'antd/es/theme/internal';\nimport type { CSSObject } from '@ant-design/cssinjs';\nimport type { FullToken } from '@ant-design/cssinjs-utils';\n\ntype OverflowTagsToken = FullToken<{ ''?: object }, AliasToken, ''>;\n\nconst genStyle: GenerateStyle<OverflowTagsToken> = (token): CSSObject => {\n const { componentCls } = token;\n return {\n [componentCls]: {\n '&-trigger': {\n width: 'fit-content',\n },\n '&-menu': {\n padding: 0,\n '&-has-items': {\n padding: 'var(--contexify-menu-padding)',\n },\n [`${componentCls}-shortcut-key`]: {\n kbd: {\n fontFamily: '-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,sans-serif',\n },\n },\n },\n },\n };\n};\n\nexport default genStyleHooks('ContextMenu' as never, genStyle);\n"],"mappings":";;;;AAAA,SAASA,aAAa,QAAQ,wBAAwB;AAOtD,IAAMC,QAA0C,GAAG,SAA7CA,QAA0CA,CAAIC,KAAK,EAAgB;EACvE,IAAQC,YAAY,GAAKD,KAAK,CAAtBC,YAAY;EACpB,OAAAC,eAAA,KACGD,YAAY,EAAG;IACd,WAAW,EAAE;MACXE,KAAK,EAAE;IACT,CAAC;IACD,QAAQ,EAAAD,eAAA;MACNE,OAAO,EAAE,CAAC;MACV,aAAa,EAAE;QACbA,OAAO,EAAE;MACX;IAAC,MAAAC,MAAA,CACGJ,YAAY,oBAAkB;MAChCK,GAAG,EAAE;QACHC,UAAU,EAAE;MACd;IACF,CAAC;EAEL,CAAC;AAEL,CAAC;AAED,eAAeT,aAAa,CAAC,aAAa,EAAWC,QAAQ,CAAC"}