@tiny-codes/react-easy 1.1.2 → 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 (140) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/es/components/BreakLines/index.d.ts +13 -19
  3. package/es/components/BreakLines/index.js +2 -3
  4. package/es/components/BreakLines/index.js.map +1 -1
  5. package/es/components/ConfigProvider/context.d.ts +20 -26
  6. package/es/components/ConfigProvider/context.js.map +1 -1
  7. package/es/components/ConfigProvider/index.d.ts +5 -7
  8. package/es/components/ConfigProvider/index.js +2 -3
  9. package/es/components/ConfigProvider/index.js.map +1 -1
  10. package/es/components/ConfirmAction/index.d.ts +66 -89
  11. package/es/components/ConfirmAction/index.js +27 -18
  12. package/es/components/ConfirmAction/index.js.map +1 -1
  13. package/es/components/ContextMenu/index.d.ts +42 -0
  14. package/es/components/ContextMenu/index.js +188 -0
  15. package/es/components/ContextMenu/index.js.map +1 -0
  16. package/es/components/ContextMenu/style/index.d.ts +3 -0
  17. package/es/components/ContextMenu/style/index.js +25 -0
  18. package/es/components/ContextMenu/style/index.js.map +1 -0
  19. package/es/components/DeleteConfirmAction/index.d.ts +2 -3
  20. package/es/components/DeleteConfirmAction/index.js +8 -12
  21. package/es/components/DeleteConfirmAction/index.js.map +1 -1
  22. package/es/components/EditableText/form.d.ts +150 -0
  23. package/es/components/EditableText/form.js +359 -0
  24. package/es/components/EditableText/form.js.map +1 -0
  25. package/es/components/EditableText/index.d.ts +160 -0
  26. package/es/components/EditableText/index.js +222 -0
  27. package/es/components/EditableText/index.js.map +1 -0
  28. package/es/components/EditableText/style/index.d.ts +3 -0
  29. package/es/components/EditableText/style/index.js +76 -0
  30. package/es/components/EditableText/style/index.js.map +1 -0
  31. package/es/components/FloatDrawer/index.d.ts +89 -86
  32. package/es/components/FloatDrawer/index.js +43 -20
  33. package/es/components/FloatDrawer/index.js.map +1 -1
  34. package/es/components/FloatDrawer/style/index.js +42 -21
  35. package/es/components/FloatDrawer/style/index.js.map +1 -1
  36. package/es/components/Loading/index.d.ts +9 -14
  37. package/es/components/Loading/index.js +7 -6
  38. package/es/components/Loading/index.js.map +1 -1
  39. package/es/components/Loading/style/index.js +1 -1
  40. package/es/components/Loading/style/index.js.map +1 -1
  41. package/es/components/ModalAction/index.d.ts +98 -139
  42. package/es/components/ModalAction/index.js +25 -37
  43. package/es/components/ModalAction/index.js.map +1 -1
  44. package/es/components/OverflowTags/index.d.ts +30 -8
  45. package/es/components/OverflowTags/index.js +26 -7
  46. package/es/components/OverflowTags/index.js.map +1 -1
  47. package/es/components/OverflowTags/style/index.js +1 -1
  48. package/es/components/OverflowTags/style/index.js.map +1 -1
  49. package/es/components/index.d.ts +4 -0
  50. package/es/components/index.js +2 -0
  51. package/es/components/index.js.map +1 -1
  52. package/es/hooks/useRefFunction.d.ts +4 -5
  53. package/es/hooks/useRefFunction.js +6 -7
  54. package/es/hooks/useRefFunction.js.map +1 -1
  55. package/es/hooks/useRefValue.d.ts +2 -3
  56. package/es/hooks/useRefValue.js +2 -3
  57. package/es/hooks/useRefValue.js.map +1 -1
  58. package/es/hooks/useT.js +1 -2
  59. package/es/hooks/useT.js.map +1 -1
  60. package/es/hooks/useValidator.d.ts +2 -3
  61. package/es/hooks/useValidator.js +2 -3
  62. package/es/hooks/useValidator.js.map +1 -1
  63. package/es/hooks/useValidatorBuilder.d.ts +41 -61
  64. package/es/hooks/useValidatorBuilder.js +4 -6
  65. package/es/hooks/useValidatorBuilder.js.map +1 -1
  66. package/es/hooks/useValidators.d.ts +62 -83
  67. package/es/hooks/useValidators.js +3 -4
  68. package/es/hooks/useValidators.js.map +1 -1
  69. package/es/locales/index.d.ts +15 -0
  70. package/es/locales/langs/en-US.d.ts +5 -0
  71. package/es/locales/langs/en-US.js +5 -0
  72. package/es/locales/langs/en-US.js.map +1 -1
  73. package/es/locales/langs/zh-CN.d.ts +5 -0
  74. package/es/locales/langs/zh-CN.js +5 -0
  75. package/es/locales/langs/zh-CN.js.map +1 -1
  76. package/lib/components/BreakLines/index.d.ts +13 -19
  77. package/lib/components/BreakLines/index.js.map +2 -2
  78. package/lib/components/ConfigProvider/context.d.ts +20 -26
  79. package/lib/components/ConfigProvider/context.js.map +2 -2
  80. package/lib/components/ConfigProvider/index.d.ts +5 -7
  81. package/lib/components/ConfigProvider/index.js.map +2 -2
  82. package/lib/components/ConfirmAction/index.d.ts +66 -89
  83. package/lib/components/ConfirmAction/index.js +9 -0
  84. package/lib/components/ConfirmAction/index.js.map +2 -2
  85. package/lib/components/ContextMenu/index.d.ts +42 -0
  86. package/lib/components/ContextMenu/index.js +190 -0
  87. package/lib/components/ContextMenu/index.js.map +7 -0
  88. package/lib/components/ContextMenu/style/index.d.ts +3 -0
  89. package/lib/components/ContextMenu/style/index.js +48 -0
  90. package/lib/components/ContextMenu/style/index.js.map +7 -0
  91. package/lib/components/DeleteConfirmAction/index.d.ts +2 -3
  92. package/lib/components/DeleteConfirmAction/index.js.map +2 -2
  93. package/lib/components/EditableText/form.d.ts +150 -0
  94. package/lib/components/EditableText/form.js +253 -0
  95. package/lib/components/EditableText/form.js.map +7 -0
  96. package/lib/components/EditableText/index.d.ts +160 -0
  97. package/lib/components/EditableText/index.js +181 -0
  98. package/lib/components/EditableText/index.js.map +7 -0
  99. package/lib/components/EditableText/style/index.d.ts +3 -0
  100. package/lib/components/EditableText/style/index.js +118 -0
  101. package/lib/components/EditableText/style/index.js.map +7 -0
  102. package/lib/components/FloatDrawer/index.d.ts +89 -86
  103. package/lib/components/FloatDrawer/index.js +64 -39
  104. package/lib/components/FloatDrawer/index.js.map +2 -2
  105. package/lib/components/FloatDrawer/style/index.js +60 -23
  106. package/lib/components/FloatDrawer/style/index.js.map +2 -2
  107. package/lib/components/Loading/index.d.ts +9 -14
  108. package/lib/components/Loading/index.js +13 -4
  109. package/lib/components/Loading/index.js.map +2 -2
  110. package/lib/components/Loading/style/index.js +1 -1
  111. package/lib/components/Loading/style/index.js.map +2 -2
  112. package/lib/components/ModalAction/index.d.ts +98 -139
  113. package/lib/components/ModalAction/index.js.map +2 -2
  114. package/lib/components/OverflowTags/index.d.ts +30 -8
  115. package/lib/components/OverflowTags/index.js +7 -5
  116. package/lib/components/OverflowTags/index.js.map +2 -2
  117. package/lib/components/OverflowTags/style/index.js +1 -1
  118. package/lib/components/OverflowTags/style/index.js.map +2 -2
  119. package/lib/components/index.d.ts +4 -0
  120. package/lib/components/index.js +6 -0
  121. package/lib/components/index.js.map +2 -2
  122. package/lib/hooks/useRefFunction.d.ts +4 -5
  123. package/lib/hooks/useRefFunction.js.map +2 -2
  124. package/lib/hooks/useRefValue.d.ts +2 -3
  125. package/lib/hooks/useRefValue.js.map +2 -2
  126. package/lib/hooks/useT.js.map +2 -2
  127. package/lib/hooks/useValidator.d.ts +2 -3
  128. package/lib/hooks/useValidator.js.map +2 -2
  129. package/lib/hooks/useValidatorBuilder.d.ts +41 -61
  130. package/lib/hooks/useValidatorBuilder.js.map +2 -2
  131. package/lib/hooks/useValidators.d.ts +62 -83
  132. package/lib/hooks/useValidators.js.map +2 -2
  133. package/lib/locales/index.d.ts +15 -0
  134. package/lib/locales/langs/en-US.d.ts +5 -0
  135. package/lib/locales/langs/en-US.js +5 -0
  136. package/lib/locales/langs/en-US.js.map +2 -2
  137. package/lib/locales/langs/zh-CN.d.ts +5 -0
  138. package/lib/locales/langs/zh-CN.js +5 -0
  139. package/lib/locales/langs/zh-CN.js.map +2 -2
  140. package/package.json +3 -2
@@ -26,10 +26,9 @@ import { isForwardRef } from 'react-is';
26
26
  import useContextValidator from "../../hooks/useContextValidator";
27
27
 
28
28
  /**
29
- * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when
30
- * returning in the `onSave` event of the editing form component
31
- *
32
- * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效
29
+ * - **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when
30
+ * returning in the `onSave` event of the editing form component
31
+ * - **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效
33
32
  */
34
33
  import { jsx as _jsx } from "react/jsx-runtime";
35
34
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -314,9 +313,8 @@ function FormCreator(props) {
314
313
  }
315
314
 
316
315
  /**
317
- * **EN:** Add default properties to the ModalAction component
318
- *
319
- * **CN:** 给ModalAction组件添加默认属性
316
+ * - **EN:** Add default properties to the ModalAction component
317
+ * - **CN:** 给ModalAction组件添加默认属性
320
318
  *
321
319
  * @param WrappedComponent ModalAction component | ModalAction组件
322
320
  * @param defaultProps Default properties | 默认属性
@@ -339,45 +337,38 @@ var renderModalAction = genModalActionRenderer({});
339
337
  var forwardedModalAction = /*#__PURE__*/forwardRef(renderModalAction);
340
338
  forwardedModalAction.displayName = 'ForwardedRef(ModalAction)';
341
339
  /**
342
- * **EN:** ModalAction component type
343
- *
344
- * **CN:** ModalAction组件的类型
340
+ * - **EN:** ModalAction component type
341
+ * - **CN:** ModalAction组件的类型
345
342
  */
346
343
 
347
344
  /**
348
- * **EN:** ModalAction component with generic type
349
- *
350
- * **CN:** ModalAction泛型组件的类型
345
+ * - **EN:** ModalAction component with generic type
346
+ * - **CN:** ModalAction泛型组件的类型
351
347
  */
352
348
 
353
349
  /**
354
- * **EN:** ModalAction with specified trigger type (specified form component)
355
- *
356
- * **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)
350
+ * - **EN:** ModalAction with specified trigger type (specified form component)
351
+ * - **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)
357
352
  */
358
353
 
359
354
  /**
360
- * **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)
361
- *
362
- * **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)
355
+ * - **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)
356
+ * - **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)
363
357
  */
364
358
 
365
359
  /**
366
- * **EN:** Built-in trigger types (specified form components)
367
- *
368
- * **CN:** 内置的几种触发器类型(已指定表单组件)
360
+ * - **EN:** Built-in trigger types (specified form components)
361
+ * - **CN:** 内置的几种触发器类型(已指定表单组件)
369
362
  */
370
363
 
371
364
  /**
372
- * **EN:** Built-in trigger types (generic types, unspecified form components)
373
- *
374
- * **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)
365
+ * - **EN:** Built-in trigger types (generic types, unspecified form components)
366
+ * - **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)
375
367
  */
376
368
 
377
369
  /**
378
- * **EN:** Add trigger types to the ModalAction component
379
- *
380
- * **CN:** 给ModalAction组件添加子触发器类型
370
+ * - **EN:** Add trigger types to the ModalAction component
371
+ * - **CN:** 给ModalAction组件添加子触发器类型
381
372
  */
382
373
  var addTriggers = function addTriggers(comp) {
383
374
  var patchedComp = comp;
@@ -411,24 +402,21 @@ var addTriggers = function addTriggers(comp) {
411
402
  };
412
403
 
413
404
  /**
414
- * **EN:** Dialog component with trigger
415
- *
416
- * **CN:** 带触发器的弹窗组件
405
+ * - **EN:** Dialog component with trigger
406
+ * - **CN:** 带触发器的弹窗组件
417
407
  */
418
408
  var ModalAction = addTriggers(forwardedModalAction);
419
409
 
420
410
  /**
421
- * **EN:** Dialog component with trigger
422
- *
423
- * **CN:** 带触发器的弹窗组件
411
+ * - **EN:** Dialog component with trigger
412
+ * - **CN:** 带触发器的弹窗组件
424
413
  */
425
414
 
426
415
  ModalAction.SubmitWithoutClosing = SubmitWithoutClosingSymbol;
427
416
 
428
417
  /**
429
- * **EN:** Generate a dialog component based on the editing form component
430
- *
431
- * **CN:** 基于编辑表单组件生成一个弹框组件
418
+ * - **EN:** Generate a dialog component based on the editing form component
419
+ * - **CN:** 基于编辑表单组件生成一个弹框组件
432
420
  *
433
421
  * @param formComp Component of dialog content | 弹窗内容组件
434
422
  * @param defaultProps Default properties of the dialog | 弹窗的默认属性
@@ -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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Button","Form","Modal","Switch","Typography","isForwardRef","useContextValidator","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SubmitWithoutClosingSymbol","genModalActionRenderer","defaultProps","ModalActionRenderer","props","ref","_children","_useState","_useState2","userModalProps","setUserModalProps","mergedProps","mergeProps","_mergedProps","formComp","formProps","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","triggerProps","openInProps","open","_mergedProps$destroyO","destroyOnClose","_mergedProps$destroyO2","destroyOnHidden","_mergedProps$maskClos","maskClosable","okButtonProps","cancelButtonProps","onOk","afterOk","onCancel","afterClose","children","restProps","_excluded","FormComp","triggerEventArgsRef","_useState3","_useState4","setOpen","saveFuncRef","_useState5","_useState6","isSaving","setIsSaving","_useState7","_useState8","formCompRef","setFormCompRef","_useState9","_useState10","form","setForm","formRef","current","destroyOnCloseRef","openListenerRef","resetFields","showInProps","show","showTrigger","showModal","_openListenerRef$curr","hideModal","_openListenerRef$curr2","setOpenListener","listener","_openListenerRef$curr3","setOnSaveHandler","handler","handleSetOpen","_openListenerRef$curr4","_len","_key","confirmLoading","loading","disabled","_callee","formData","_saveFuncRef$current","_triggerEventArgsRef$","_ref3","_triggerEventArgsRef$2","result","_callee$","_context","validateFields","t0","console","warn","concat","t1","_ref4","_callee2","_callee2$","_context2","_x","FormCreator","onCreate","onOpenChange","onSave","triggerEventData","updateModalProps","first","second","bodyProps","maskProps","wrapProps","style","onCreateRef","_Form$useForm","useForm","_Form$useForm2","withDefaultModalActionProps","WrappedComponent","WithDefaultProps","useDefaultProps","defaults","renderModalAction","forwardedModalAction","addTriggers","comp","patchedComp","Link","whiteSpace","ModalAction","SubmitWithoutClosing","withModalAction","withForm"],"sources":["../../../src/components/ModalAction/index.tsx"],"sourcesContent":["import type { ComponentType, FC, ForwardedRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps, FormInstance, ModalProps, SwitchProps } from 'antd';\nimport { Button, Form, Modal, Switch, Typography } from 'antd';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport { isForwardRef } from 'react-is';\nimport useContextValidator from '../../hooks/useContextValidator';\n\n/**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\nexport const SubmitWithoutClosingSymbol = Symbol('[SubmitWithoutClose]');\n\nexport type ModalActionProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = Omit<ModalProps, 'onOk'> &\n ModalActionTrigger<FD, CP, TP, E> & {\n /**\n * **EN:** Form editing component, do not use the Form component inside the component, the form\n * component and form instance are automatically created by the parent component\n *\n * **CN:** 表单编辑组件,组件内部不要使用Form组件,表单组件及表单实例由父组件自动创建\n */\n formComp: ComponentType<CP & RefAttributes<CRef>>;\n /**\n * **EN:** Props of the form editing component\n *\n * **CN:** 表单编辑组件的Props属性\n */\n formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>;\n /**\n * **EN:** The callback when clicks the confirmation button, support asynchronous saving, return\n * `SubmitWithoutClosingSymbol` can prevent the dialog from closing, return other values will be\n * passed to the `afterOk` event, if any\n *\n * **CN:** 点击确认按钮的回调,支持异步保存,返回`SubmitWithoutClosingSymbol`可以阻止弹框关闭,返回其他值会传递给`afterOk`事件,如果有的话\n */\n onOk?: (\n formData: FD,\n // @ts-expect-error: because TP[E] should be a function type\n ...args: Parameters<TP[E]>\n ) => unknown | Promise<unknown>;\n /**\n * **EN:** The callback after the confirmation event is completed, it will not be triggered when\n * it fails, the parameter is the return value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface FormCompPropsConstraint<FD> {\n /**\n * **EN:** Automatically generated form instance, use this form instance in FormComp, do not\n * create a new instance\n *\n * **CN:** 自动生成的表单实例,编辑表单要使用这个表单实例,不要新创建实例\n */\n form: FormInstance<FD>;\n /**\n * **EN:** Register the form save event, the callback function passed in will be called when the\n * confirm button is clicked, support asynchronous saving\n *\n * **CN:** 注册表单保存事件,传入的回调函数会在点击确认按钮时被调用,支持异步保存\n *\n * @param handler Event handler | 事件处理函数\n */\n onSave: (\n handler: (\n /**\n * **EN:** Form data\n *\n * **CN:** 表单数据\n */\n formData: FD,\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get\n * the value of the switch; for the `Button` type trigger, you can get the click event object\n * of the button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值;对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n ...triggerEventData: any[]\n ) => unknown | Promise<unknown>\n ) => void;\n /**\n * **EN:** Listen to the open and close status of the dialog. When `destroyOnHidden` is set to\n * false, the form component instance is cached, and the dialog can only be listened to in this\n * way\n *\n * **CN:** 监听弹框打开关闭状态。当`destroyOnHidden`设置为false时,表单组件实例被缓存,只能通过这种方式监听弹框\n *\n * @param handler Event handler | 事件处理函数\n */\n onOpenChange: (handler: ModalProps['afterOpenChange']) => void;\n /**\n * **EN:** Set the dialog open status\n *\n * **CN:** 设置弹框打开状态\n *\n * @param open Whether is open or not | 弹窗是否打开\n */\n setOpen: (open: boolean) => void;\n /**\n * **EN:** Modify the properties of the dialog, such as title, width, button properties, etc.\n *\n * **CN:** 修改弹窗的属性,例如标题、宽度,按钮属性等\n */\n updateModalProps: (props: Partial<ModalProps>) => void;\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get the\n * value of the switch; for the `Button` type trigger, you can get the click event object of the\n * button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值,对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerEventData?: any[];\n}\n\nexport interface ModalActionTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n> {\n /**\n * **EN:** Trigger component, click to show the dialog\n *\n * **CN:** 弹窗触发器组件,点击触发显示弹框\n */\n triggerComponent?: ComponentType<TP> | FC<TP>;\n /**\n * **EN:** Props of the trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP & {\n /**\n * **EN:** Set a custom function to determine whether to show the trigger button\n *\n * **CN:** 设置一个自定义函数,用于判断是否显示触发器按钮\n *\n * @default true\n *\n * @param formProps Form component props | 表单组件的props\n */\n show?: boolean | ((formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>) => boolean);\n };\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ModalActionRef<R> = R & {\n /**\n * **EN:** Show the dialog\n *\n * **CN:** 显示弹框\n */\n show: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const genModalActionRenderer = (defaultProps: Partial<ModalActionProps<any, any, any, never, never>>) => {\n const ModalActionRenderer = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n >(\n props: ModalActionProps<FD, CP, TP, E, CRef>,\n ref: ForwardedRef<ModalActionRef<CRef>>\n ) => {\n const [userModalProps, setUserModalProps] = useState<Partial<ModalProps>>({});\n let mergedProps = mergeProps<FD, CP, TP, E, CRef>(defaultProps, props);\n mergedProps = mergeProps(mergedProps, userModalProps as typeof props);\n const {\n formComp,\n formProps,\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n open: openInProps,\n destroyOnClose = true,\n destroyOnHidden = true,\n maskClosable = false,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n onCancel,\n afterClose,\n children,\n ...restProps\n } = mergedProps;\n useContextValidator();\n const FormComp = formComp as ComponentType<FormCompPropsConstraint<FD> & RefAttributes<CRef>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n const [open, setOpen] = useState(false);\n const saveFuncRef = useRef<(formData: FD, ...args: any[]) => unknown>(undefined);\n const [isSaving, setIsSaving] = useState(false);\n const [formCompRef, setFormCompRef] = useState<CRef | null>(null);\n const [form, setForm] = useState<FormInstance<FD>>();\n const formRef = useRef<FormInstance<FD>>(form);\n formRef.current = form;\n const destroyOnCloseRef = useRef(destroyOnClose);\n destroyOnCloseRef.current = destroyOnClose || destroyOnHidden;\n const openListenerRef = useRef<ModalProps['afterOpenChange']>(undefined);\n\n // Listen to the open props changes\n useEffect(() => {\n if (openInProps) {\n setOpen(openInProps);\n }\n }, [openInProps]);\n\n // Reset the form after closed\n useEffect(() => {\n if (!destroyOnCloseRef.current && open && formRef.current) {\n formRef.current.resetFields();\n }\n }, [open]);\n\n // show trigger\n const showInProps = triggerProps?.show;\n const showTrigger = useMemo(() => {\n if (typeof showInProps === 'boolean') {\n return showInProps;\n } else if (typeof showInProps === 'function') {\n return showInProps(formProps);\n }\n return true;\n }, [showInProps, formProps]);\n\n // Show the dialog\n const showModal = useCallback(() => {\n setOpen(true);\n openListenerRef.current?.(true);\n }, []);\n // Hide the dialog\n const hideModal = useCallback(() => {\n setOpen(false);\n openListenerRef.current?.(false);\n }, []);\n // Set the dialog status listener\n const setOpenListener = useCallback(\n (listener: ModalProps['afterOpenChange']) => {\n openListenerRef.current = listener;\n // Call once when initialized\n openListenerRef.current?.(open);\n },\n [open]\n );\n // Receive the onSave callback method passed by the form component\n const setOnSaveHandler: FormCompPropsConstraint<FD>['onSave'] = useCallback((handler) => {\n saveFuncRef.current = handler;\n }, []);\n // Set the dialog status and trigger the onOpenChange event of the form component\n const handleSetOpen = useCallback((open: boolean) => {\n setOpen(open);\n openListenerRef.current?.(open);\n }, []);\n\n // Output ref\n useImperativeHandle(ref, () => ({ ...formCompRef, show: showModal }) as ModalActionRef<CRef>, [\n formCompRef,\n showModal,\n ]);\n\n // Render the trigger component\n return (\n <>\n {showTrigger && (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showModal();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n )}\n <Modal\n open={open}\n confirmLoading={isSaving}\n destroyOnClose={destroyOnClose}\n destroyOnHidden={destroyOnHidden}\n maskClosable={maskClosable}\n okButtonProps={{\n loading: isSaving,\n ...okButtonProps,\n }}\n cancelButtonProps={{\n disabled: isSaving,\n ...cancelButtonProps,\n }}\n onOk={async () => {\n let formData: FD;\n try {\n formData = (await form?.validateFields()) as FD;\n } catch (e) {\n // Validation error, should not throw error\n return;\n }\n if (Object.keys(formData).length === 0) {\n console.warn(\n 'form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.'\n );\n }\n try {\n setIsSaving(true);\n // First call onSave of the form component\n let result = await saveFuncRef.current?.(formData, ...(triggerEventArgsRef.current ?? []));\n // The onSave of the form component has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // Then call onOk of the dialog, support asynchronous, and will pass the return value of onSave, if any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = await onOk?.((result as FD) ?? formData, ...((triggerEventArgsRef.current ?? []) as any));\n // onOk also has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // If onOK is successful, close the dialog and trigger the afterOk event\n hideModal();\n afterOk?.(result);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }}\n onCancel={async (e) => {\n hideModal();\n onCancel?.(e);\n }}\n afterClose={() => {\n hideModal();\n afterClose?.();\n }}\n {...restProps}\n >\n <FormCreator<FD> onCreate={setForm} />\n {form && (\n <FormComp\n ref={isForwardRef(FormComp) ? setFormCompRef : undefined}\n {...formProps}\n form={form}\n onOpenChange={setOpenListener}\n onSave={setOnSaveHandler}\n triggerEventData={triggerEventArgsRef.current}\n setOpen={handleSetOpen}\n updateModalProps={setUserModalProps}\n />\n )}\n </Modal>\n </>\n );\n };\n return ModalActionRenderer;\n};\n\nfunction mergeProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(first?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>, second?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>) {\n return {\n ...first,\n ...second,\n okButtonProps: {\n ...first?.okButtonProps,\n ...second?.okButtonProps,\n },\n cancelButtonProps: {\n ...first?.cancelButtonProps,\n ...second?.cancelButtonProps,\n },\n bodyProps: {\n ...first?.bodyProps,\n ...second?.bodyProps,\n },\n maskProps: {\n ...first?.maskProps,\n ...second?.maskProps,\n },\n wrapProps: {\n ...first?.wrapProps,\n ...second?.wrapProps,\n },\n triggerProps: {\n ...first?.triggerProps,\n ...second?.triggerProps,\n style: {\n ...(first?.triggerProps && 'style' in first.triggerProps && typeof first.triggerProps.style === 'object'\n ? first.triggerProps.style\n : {}),\n ...(second?.triggerProps && 'style' in second.triggerProps && typeof second.triggerProps.style === 'object'\n ? second.triggerProps.style\n : {}),\n },\n },\n } as unknown as ModalActionProps<FD, CP, TP, E, CRef>;\n}\n\nfunction FormCreator<FD extends object>(props: { onCreate: (form: FormInstance<FD> | undefined) => void }) {\n const { onCreate } = props;\n const onCreateRef = useRef(onCreate);\n onCreateRef.current = onCreate;\n const [form] = Form.useForm<FD>();\n\n // output ref\n useEffect(() => {\n onCreateRef.current(form);\n return () => {\n onCreateRef.current(undefined);\n };\n }, [form]);\n\n return null;\n}\n\n/**\n * **EN:** Add default properties to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加默认属性\n *\n * @param WrappedComponent ModalAction component | ModalAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultModalActionProps = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n WrappedComponent: ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>,\n defaultProps?: Partial<ModalActionProps<FD, CP, TP, E, CRef>> | (() => Partial<ModalActionProps<FD, CP, TP, E, CRef>>)\n) => {\n const WithDefaultProps = forwardRef<ModalActionRef<CRef>, ModalActionProps<FD, CP, TP, E, CRef>>((props, ref) => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n const mergedProps = mergeProps(defaults, props);\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n return WithDefaultProps;\n};\n\nconst renderModalAction = genModalActionRenderer({});\nconst forwardedModalAction = forwardRef(renderModalAction);\nforwardedModalAction.displayName = 'ForwardedRef(ModalAction)';\n/**\n * **EN:** ModalAction component type\n *\n * **CN:** ModalAction组件的类型\n */\nexport type ModalActionInterface<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>;\n/**\n * **EN:** ModalAction component with generic type\n *\n * **CN:** ModalAction泛型组件的类型\n */\nexport type GenericModalActionInterface = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n props: ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n/**\n * **EN:** ModalAction with specified trigger type (specified form component)\n *\n * **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)\n */\ntype ModalActionWithTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n OMIT extends string = never,\n> = ComponentType<\n Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n>;\n\n/**\n * **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)\n *\n * **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)\n */\ntype GenericModalActionWithTrigger<TP extends object, E extends keyof TP, OMIT extends string = never> = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n\n/**\n * **EN:** Built-in trigger types (specified form components)\n *\n * **CN:** 内置的几种触发器类型(已指定表单组件)\n */\ninterface TypedTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: ModalActionWithTrigger<FD, CP, ButtonProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: ModalActionWithTrigger<FD, CP, SwitchProps, 'onChange', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: ModalActionWithTrigger<FD, CP, LinkProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\n/**\n * **EN:** Built-in trigger types (generic types, unspecified form components)\n *\n * **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)\n */\ninterface GenericTypedTriggers<OMIT extends string = never> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: GenericModalActionWithTrigger<ButtonProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: GenericModalActionWithTrigger<SwitchProps, 'onChange', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: GenericModalActionWithTrigger<LinkProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\ntype WithGenericTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> = (<TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, OMIT> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement) &\n (CP extends never ? GenericTypedTriggers<OMIT> : TypedTriggers<FD, CP, CRef, OMIT>);\n\n/**\n * **EN:** Add trigger types to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加子触发器类型\n */\nconst addTriggers = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n OMIT extends string = never,\n>(\n comp: ComponentType<ModalActionProps<FD, CP, OuterTP, OuterE, CRef> & RefAttributes<ModalActionRef<CRef>>>\n) => {\n const patchedComp = comp as WithGenericTriggers<FD, CP, CRef, OMIT>;\n // Type of button trigger\n patchedComp.Button = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, ButtonProps, 'onClick', CRef>, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n // Type of switch trigger\n patchedComp.Switch = withDefaultModalActionProps(\n comp as ModalActionInterface<FD, CP, SwitchProps, 'onChange', CRef>,\n {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as any;\n // Type of link trigger\n patchedComp.Link = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, LinkProps, 'onClick', CRef>, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n return patchedComp;\n};\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nconst ModalAction = addTriggers(forwardedModalAction);\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nexport type ModalActionWithStatic = typeof ModalAction & {\n /**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\n SubmitWithoutClosing: symbol;\n};\n(ModalAction as ModalActionWithStatic).SubmitWithoutClosing = SubmitWithoutClosingSymbol;\n\n/**\n * **EN:** Generate a dialog component based on the editing form component\n *\n * **CN:** 基于编辑表单组件生成一个弹框组件\n *\n * @param formComp Component of dialog content | 弹窗内容组件\n * @param defaultProps Default properties of the dialog | 弹窗的默认属性\n */\nexport function withModalAction<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n>(\n formComp: ComponentType<CP & FormCompPropsConstraint<FD> & RefAttributes<CRef>>,\n defaultProps?:\n | Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>\n | (() => Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>)\n) {\n const withForm = withDefaultModalActionProps(\n forwardedModalAction as unknown as ModalActionInterface<FD, CP, OuterTP, OuterE, CRef>,\n () => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n return {\n formComp,\n ...defaults,\n };\n }\n ) as unknown as <TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'formComp'> & RefAttributes<ModalActionRef<CRef>>\n ) => ReactElement;\n return addTriggers<FD, CP, OuterTP, OuterE, CRef, 'formComp'>(withForm);\n}\n\nexport default ModalAction as ModalActionWithStatic;\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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Button","Form","Modal","Switch","Typography","isForwardRef","useContextValidator","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SubmitWithoutClosingSymbol","genModalActionRenderer","defaultProps","ModalActionRenderer","props","ref","_children","_useState","_useState2","userModalProps","setUserModalProps","mergedProps","mergeProps","_mergedProps","formComp","formProps","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","triggerProps","openInProps","open","_mergedProps$destroyO","destroyOnClose","_mergedProps$destroyO2","destroyOnHidden","_mergedProps$maskClos","maskClosable","okButtonProps","cancelButtonProps","onOk","afterOk","onCancel","afterClose","children","restProps","_excluded","FormComp","triggerEventArgsRef","_useState3","_useState4","setOpen","saveFuncRef","_useState5","_useState6","isSaving","setIsSaving","_useState7","_useState8","formCompRef","setFormCompRef","_useState9","_useState10","form","setForm","formRef","current","destroyOnCloseRef","openListenerRef","resetFields","showInProps","show","showTrigger","showModal","_openListenerRef$curr","hideModal","_openListenerRef$curr2","setOpenListener","listener","_openListenerRef$curr3","setOnSaveHandler","handler","handleSetOpen","_openListenerRef$curr4","_len","_key","confirmLoading","loading","disabled","_callee","formData","_saveFuncRef$current","_triggerEventArgsRef$","_ref3","_triggerEventArgsRef$2","result","_callee$","_context","validateFields","t0","console","warn","concat","t1","_ref4","_callee2","_callee2$","_context2","_x","FormCreator","onCreate","onOpenChange","onSave","triggerEventData","updateModalProps","first","second","bodyProps","maskProps","wrapProps","style","onCreateRef","_Form$useForm","useForm","_Form$useForm2","withDefaultModalActionProps","WrappedComponent","WithDefaultProps","useDefaultProps","defaults","renderModalAction","forwardedModalAction","addTriggers","comp","patchedComp","Link","whiteSpace","ModalAction","SubmitWithoutClosing","withModalAction","withForm"],"sources":["../../../src/components/ModalAction/index.tsx"],"sourcesContent":["import type { ComponentType, FC, ForwardedRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps, FormInstance, ModalProps, SwitchProps } from 'antd';\nimport { Button, Form, Modal, Switch, Typography } from 'antd';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport { isForwardRef } from 'react-is';\nimport useContextValidator from '../../hooks/useContextValidator';\n\n/**\n * - **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n * - **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\nexport const SubmitWithoutClosingSymbol = Symbol('[SubmitWithoutClose]');\n\nexport type ModalActionProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = Omit<ModalProps, 'onOk'> &\n ModalActionTrigger<FD, CP, TP, E> & {\n /**\n * - **EN:** Form editing component, do not use the Form component inside the component, the form\n * component and form instance are automatically created by the parent component\n * - **CN:** 表单编辑组件,组件内部不要使用Form组件,表单组件及表单实例由父组件自动创建\n */\n formComp: ComponentType<CP & RefAttributes<CRef>>;\n /**\n * - **EN:** Props of the form editing component\n * - **CN:** 表单编辑组件的Props属性\n */\n formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>;\n /**\n * - **EN:** The callback when clicks the confirmation button, support asynchronous saving, return\n * `SubmitWithoutClosingSymbol` can prevent the dialog from closing, return other values will\n * be passed to the `afterOk` event, if any\n * - **CN:** 点击确认按钮的回调,支持异步保存,返回`SubmitWithoutClosingSymbol`可以阻止弹框关闭,返回其他值会传递给`afterOk`事件,如果有的话\n */\n onOk?: (\n formData: FD,\n // @ts-expect-error: because TP[E] should be a function type\n ...args: Parameters<TP[E]>\n ) => unknown | Promise<unknown>;\n /**\n * - **EN:** The callback after the confirmation event is completed, it will not be triggered when\n * it fails, the parameter is the return 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 FormCompPropsConstraint<FD> {\n /**\n * - **EN:** Automatically generated form instance, use this form instance in FormComp, do not\n * create a new instance\n * - **CN:** 自动生成的表单实例,编辑表单要使用这个表单实例,不要新创建实例\n */\n form: FormInstance<FD>;\n /**\n * - **EN:** Register the form save event, the callback function passed in will be called when the\n * confirm button is clicked, support asynchronous saving\n * - **CN:** 注册表单保存事件,传入的回调函数会在点击确认按钮时被调用,支持异步保存\n *\n * @param handler Event handler | 事件处理函数\n */\n onSave: (\n handler: (\n /**\n * - **EN:** Form data\n * - **CN:** 表单数据\n */\n formData: FD,\n /**\n * - **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get\n * the value of the switch; for the `Button` type trigger, you can get the click event\n * object of the button\n * - **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值;对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n ...triggerEventData: any[]\n ) => unknown | Promise<unknown>\n ) => void;\n /**\n * - **EN:** Listen to the open and close status of the dialog. When `destroyOnHidden` is set to\n * false, the form component instance is cached, and the dialog can only be listened to in this\n * way\n * - **CN:** 监听弹框打开关闭状态。当`destroyOnHidden`设置为false时,表单组件实例被缓存,只能通过这种方式监听弹框\n *\n * @param handler Event handler | 事件处理函数\n */\n onOpenChange: (handler: ModalProps['afterOpenChange']) => void;\n /**\n * - **EN:** Set the dialog open status\n * - **CN:** 设置弹框打开状态\n *\n * @param open Whether is open or not | 弹窗是否打开\n */\n setOpen: (open: boolean) => void;\n /**\n * - **EN:** Modify the properties of the dialog, such as title, width, button properties, etc.\n * - **CN:** 修改弹窗的属性,例如标题、宽度,按钮属性等\n */\n updateModalProps: (props: Partial<ModalProps>) => void;\n /**\n * - **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get the\n * value of the switch; for the `Button` type trigger, you can get the click event object of the\n * button\n * - **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值,对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerEventData?: any[];\n}\n\nexport interface ModalActionTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n> {\n /**\n * - **EN:** Trigger component, click to show the dialog\n * - **CN:** 弹窗触发器组件,点击触发显示弹框\n */\n triggerComponent?: ComponentType<TP> | FC<TP>;\n /**\n * - **EN:** Props of the trigger component\n * - **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP & {\n /**\n * - **EN:** Set a custom function to determine whether to show the trigger button\n * - **CN:** 设置一个自定义函数,用于判断是否显示触发器按钮\n *\n * @default true\n *\n * @param formProps Form component props | 表单组件的props\n */\n show?: boolean | ((formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>) => boolean);\n };\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 ModalActionRef<R> = R & {\n /**\n * - **EN:** Show the dialog\n * - **CN:** 显示弹框\n */\n show: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const genModalActionRenderer = (defaultProps: Partial<ModalActionProps<any, any, any, never, never>>) => {\n const ModalActionRenderer = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n >(\n props: ModalActionProps<FD, CP, TP, E, CRef>,\n ref: ForwardedRef<ModalActionRef<CRef>>\n ) => {\n const [userModalProps, setUserModalProps] = useState<Partial<ModalProps>>({});\n let mergedProps = mergeProps<FD, CP, TP, E, CRef>(defaultProps, props);\n mergedProps = mergeProps(mergedProps, userModalProps as typeof props);\n const {\n formComp,\n formProps,\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n open: openInProps,\n destroyOnClose = true,\n destroyOnHidden = true,\n maskClosable = false,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n onCancel,\n afterClose,\n children,\n ...restProps\n } = mergedProps;\n useContextValidator();\n const FormComp = formComp as ComponentType<FormCompPropsConstraint<FD> & RefAttributes<CRef>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n const [open, setOpen] = useState(false);\n const saveFuncRef = useRef<(formData: FD, ...args: any[]) => unknown>(undefined);\n const [isSaving, setIsSaving] = useState(false);\n const [formCompRef, setFormCompRef] = useState<CRef | null>(null);\n const [form, setForm] = useState<FormInstance<FD>>();\n const formRef = useRef<FormInstance<FD>>(form);\n formRef.current = form;\n const destroyOnCloseRef = useRef(destroyOnClose);\n destroyOnCloseRef.current = destroyOnClose || destroyOnHidden;\n const openListenerRef = useRef<ModalProps['afterOpenChange']>(undefined);\n\n // Listen to the open props changes\n useEffect(() => {\n if (openInProps) {\n setOpen(openInProps);\n }\n }, [openInProps]);\n\n // Reset the form after closed\n useEffect(() => {\n if (!destroyOnCloseRef.current && open && formRef.current) {\n formRef.current.resetFields();\n }\n }, [open]);\n\n // show trigger\n const showInProps = triggerProps?.show;\n const showTrigger = useMemo(() => {\n if (typeof showInProps === 'boolean') {\n return showInProps;\n } else if (typeof showInProps === 'function') {\n return showInProps(formProps);\n }\n return true;\n }, [showInProps, formProps]);\n\n // Show the dialog\n const showModal = useCallback(() => {\n setOpen(true);\n openListenerRef.current?.(true);\n }, []);\n // Hide the dialog\n const hideModal = useCallback(() => {\n setOpen(false);\n openListenerRef.current?.(false);\n }, []);\n // Set the dialog status listener\n const setOpenListener = useCallback(\n (listener: ModalProps['afterOpenChange']) => {\n openListenerRef.current = listener;\n // Call once when initialized\n openListenerRef.current?.(open);\n },\n [open]\n );\n // Receive the onSave callback method passed by the form component\n const setOnSaveHandler: FormCompPropsConstraint<FD>['onSave'] = useCallback((handler) => {\n saveFuncRef.current = handler;\n }, []);\n // Set the dialog status and trigger the onOpenChange event of the form component\n const handleSetOpen = useCallback((open: boolean) => {\n setOpen(open);\n openListenerRef.current?.(open);\n }, []);\n\n // Output ref\n useImperativeHandle(ref, () => ({ ...formCompRef, show: showModal }) as ModalActionRef<CRef>, [\n formCompRef,\n showModal,\n ]);\n\n // Render the trigger component\n return (\n <>\n {showTrigger && (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showModal();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n )}\n <Modal\n open={open}\n confirmLoading={isSaving}\n destroyOnClose={destroyOnClose}\n destroyOnHidden={destroyOnHidden}\n maskClosable={maskClosable}\n okButtonProps={{\n loading: isSaving,\n ...okButtonProps,\n }}\n cancelButtonProps={{\n disabled: isSaving,\n ...cancelButtonProps,\n }}\n onOk={async () => {\n let formData: FD;\n try {\n formData = (await form?.validateFields()) as FD;\n } catch (e) {\n // Validation error, should not throw error\n return;\n }\n if (Object.keys(formData).length === 0) {\n console.warn(\n 'form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.'\n );\n }\n try {\n setIsSaving(true);\n // First call onSave of the form component\n let result = await saveFuncRef.current?.(formData, ...(triggerEventArgsRef.current ?? []));\n // The onSave of the form component has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // Then call onOk of the dialog, support asynchronous, and will pass the return value of onSave, if any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = await onOk?.((result as FD) ?? formData, ...((triggerEventArgsRef.current ?? []) as any));\n // onOk also has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // If onOK is successful, close the dialog and trigger the afterOk event\n hideModal();\n afterOk?.(result);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }}\n onCancel={async (e) => {\n hideModal();\n onCancel?.(e);\n }}\n afterClose={() => {\n hideModal();\n afterClose?.();\n }}\n {...restProps}\n >\n <FormCreator<FD> onCreate={setForm} />\n {form && (\n <FormComp\n ref={isForwardRef(FormComp) ? setFormCompRef : undefined}\n {...formProps}\n form={form}\n onOpenChange={setOpenListener}\n onSave={setOnSaveHandler}\n triggerEventData={triggerEventArgsRef.current}\n setOpen={handleSetOpen}\n updateModalProps={setUserModalProps}\n />\n )}\n </Modal>\n </>\n );\n };\n return ModalActionRenderer;\n};\n\nfunction mergeProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(first?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>, second?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>) {\n return {\n ...first,\n ...second,\n okButtonProps: {\n ...first?.okButtonProps,\n ...second?.okButtonProps,\n },\n cancelButtonProps: {\n ...first?.cancelButtonProps,\n ...second?.cancelButtonProps,\n },\n bodyProps: {\n ...first?.bodyProps,\n ...second?.bodyProps,\n },\n maskProps: {\n ...first?.maskProps,\n ...second?.maskProps,\n },\n wrapProps: {\n ...first?.wrapProps,\n ...second?.wrapProps,\n },\n triggerProps: {\n ...first?.triggerProps,\n ...second?.triggerProps,\n style: {\n ...(first?.triggerProps && 'style' in first.triggerProps && typeof first.triggerProps.style === 'object'\n ? first.triggerProps.style\n : {}),\n ...(second?.triggerProps && 'style' in second.triggerProps && typeof second.triggerProps.style === 'object'\n ? second.triggerProps.style\n : {}),\n },\n },\n } as unknown as ModalActionProps<FD, CP, TP, E, CRef>;\n}\n\nfunction FormCreator<FD extends object>(props: { onCreate: (form: FormInstance<FD> | undefined) => void }) {\n const { onCreate } = props;\n const onCreateRef = useRef(onCreate);\n onCreateRef.current = onCreate;\n const [form] = Form.useForm<FD>();\n\n // output ref\n useEffect(() => {\n onCreateRef.current(form);\n return () => {\n onCreateRef.current(undefined);\n };\n }, [form]);\n\n return null;\n}\n\n/**\n * - **EN:** Add default properties to the ModalAction component\n * - **CN:** 给ModalAction组件添加默认属性\n *\n * @param WrappedComponent ModalAction component | ModalAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultModalActionProps = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n WrappedComponent: ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>,\n defaultProps?: Partial<ModalActionProps<FD, CP, TP, E, CRef>> | (() => Partial<ModalActionProps<FD, CP, TP, E, CRef>>)\n) => {\n const WithDefaultProps = forwardRef<ModalActionRef<CRef>, ModalActionProps<FD, CP, TP, E, CRef>>((props, ref) => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n const mergedProps = mergeProps(defaults, props);\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n return WithDefaultProps;\n};\n\nconst renderModalAction = genModalActionRenderer({});\nconst forwardedModalAction = forwardRef(renderModalAction);\nforwardedModalAction.displayName = 'ForwardedRef(ModalAction)';\n/**\n * - **EN:** ModalAction component type\n * - **CN:** ModalAction组件的类型\n */\nexport type ModalActionInterface<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>;\n/**\n * - **EN:** ModalAction component with generic type\n * - **CN:** ModalAction泛型组件的类型\n */\nexport type GenericModalActionInterface = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n props: ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n/**\n * - **EN:** ModalAction with specified trigger type (specified form component)\n * - **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)\n */\ntype ModalActionWithTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n OMIT extends string = never,\n> = ComponentType<\n Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n>;\n\n/**\n * - **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)\n * - **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)\n */\ntype GenericModalActionWithTrigger<TP extends object, E extends keyof TP, OMIT extends string = never> = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n\n/**\n * - **EN:** Built-in trigger types (specified form components)\n * - **CN:** 内置的几种触发器类型(已指定表单组件)\n */\ninterface TypedTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> {\n /**\n * - **EN:** Dialog with button type trigger\n * - **CN:** 按钮类型的弹窗\n */\n Button: ModalActionWithTrigger<FD, CP, ButtonProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * - **EN:** Dialog with switch type trigger\n * - **CN:** 开关类型的弹窗\n */\n Switch: ModalActionWithTrigger<FD, CP, SwitchProps, 'onChange', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * - **EN:** Dialog with link type trigger\n * - **CN:** 链接类型的弹窗\n */\n Link: ModalActionWithTrigger<FD, CP, LinkProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\n/**\n * - **EN:** Built-in trigger types (generic types, unspecified form components)\n * - **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)\n */\ninterface GenericTypedTriggers<OMIT extends string = never> {\n /**\n * - **EN:** Dialog with button type trigger\n * - **CN:** 按钮类型的弹窗\n */\n Button: GenericModalActionWithTrigger<ButtonProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * - **EN:** Dialog with switch type trigger\n * - **CN:** 开关类型的弹窗\n */\n Switch: GenericModalActionWithTrigger<SwitchProps, 'onChange', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * - **EN:** Dialog with link type trigger\n * - **CN:** 链接类型的弹窗\n */\n Link: GenericModalActionWithTrigger<LinkProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\ntype WithGenericTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> = (<TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, OMIT> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement) &\n (CP extends never ? GenericTypedTriggers<OMIT> : TypedTriggers<FD, CP, CRef, OMIT>);\n\n/**\n * - **EN:** Add trigger types to the ModalAction component\n * - **CN:** 给ModalAction组件添加子触发器类型\n */\nconst addTriggers = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n OMIT extends string = never,\n>(\n comp: ComponentType<ModalActionProps<FD, CP, OuterTP, OuterE, CRef> & RefAttributes<ModalActionRef<CRef>>>\n) => {\n const patchedComp = comp as WithGenericTriggers<FD, CP, CRef, OMIT>;\n // Type of button trigger\n patchedComp.Button = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, ButtonProps, 'onClick', CRef>, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n // Type of switch trigger\n patchedComp.Switch = withDefaultModalActionProps(\n comp as ModalActionInterface<FD, CP, SwitchProps, 'onChange', CRef>,\n {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as any;\n // Type of link trigger\n patchedComp.Link = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, LinkProps, 'onClick', CRef>, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n return patchedComp;\n};\n\n/**\n * - **EN:** Dialog component with trigger\n * - **CN:** 带触发器的弹窗组件\n */\nconst ModalAction = addTriggers(forwardedModalAction);\n\n/**\n * - **EN:** Dialog component with trigger\n * - **CN:** 带触发器的弹窗组件\n */\nexport type ModalActionWithStatic = typeof ModalAction & {\n /**\n * - **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n * - **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\n SubmitWithoutClosing: symbol;\n};\n(ModalAction as ModalActionWithStatic).SubmitWithoutClosing = SubmitWithoutClosingSymbol;\n\n/**\n * - **EN:** Generate a dialog component based on the editing form component\n * - **CN:** 基于编辑表单组件生成一个弹框组件\n *\n * @param formComp Component of dialog content | 弹窗内容组件\n * @param defaultProps Default properties of the dialog | 弹窗的默认属性\n */\nexport function withModalAction<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n>(\n formComp: ComponentType<CP & FormCompPropsConstraint<FD> & RefAttributes<CRef>>,\n defaultProps?:\n | Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>\n | (() => Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>)\n) {\n const withForm = withDefaultModalActionProps(\n forwardedModalAction as unknown as ModalActionInterface<FD, CP, OuterTP, OuterE, CRef>,\n () => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n return {\n formComp,\n ...defaults,\n };\n }\n ) as unknown as <TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'formComp'> & RefAttributes<ModalActionRef<CRef>>\n ) => ReactElement;\n return addTriggers<FD, CP, OuterTP, OuterE, CRef, 'formComp'>(withForm);\n}\n\nexport default ModalAction as ModalActionWithStatic;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { TagProps } from 'antd';
3
3
  import type { OverflowProps } from 'rc-overflow';
4
- export interface OverflowTagsProps<T extends Record<string, unknown> = Record<string, unknown>> extends OverflowProps<T> {
4
+ export interface OverflowTagsProps<T extends Record<string, unknown> = Record<string, unknown>> extends Omit<OverflowProps<T>, 'renderItem'> {
5
5
  /**
6
6
  * **CN**: 标签集合的数据
7
7
  *
@@ -9,23 +9,29 @@ export interface OverflowTagsProps<T extends Record<string, unknown> = Record<st
9
9
  */
10
10
  tags: T[] | undefined;
11
11
  /**
12
- * **EN**: Function to get the tag name, default is `tag.name`
12
+ * **EN**: Function to get the tag name, default is `tag.label` or `tag.name`
13
13
  *
14
- * **CN**: 获取标签名称的函数,默认取`tag.name`
14
+ * **CN**: 获取标签名称的函数,默认取`tag.label`或`tag.name`
15
15
  */
16
16
  getTagName?: (tag: T) => ReactNode;
17
17
  /**
18
- * **EN**: Function to get the unique identifier of the tag, default is `tag.id`
18
+ * **EN**: Function to get the unique identifier of the tag, default is `tag.value` or `tag.id`
19
19
  *
20
- * **CN**: 获取标签唯一标识的函数,默认取`tag.id`
20
+ * **CN**: 获取标签唯一标识的函数,默认取`tag.value`或`tag.id`
21
21
  */
22
22
  getTagKey?: (tag: T) => React.Key;
23
23
  /**
24
- * **EN**: Function to render the tag, returns `TagProps`
24
+ * **EN**: Custom tag rendering function
25
25
  *
26
- * **CN**: 渲染标签的函数,返回`TagProps`
26
+ * **CN**: 标签渲染函数
27
27
  */
28
- renderTag?: (tag: T, tags: T[]) => TagProps;
28
+ renderTag?: OverflowProps<T>['renderItem'];
29
+ /**
30
+ * **EN**: Custom properties for the default tag rendering function, returning `TagProps`
31
+ *
32
+ * **CN**: 对于默认的标签渲染函数,自定义标签的属性,返回`TagProps`
33
+ */
34
+ getTagProps?: (tag: T, tags: T[]) => TagProps;
29
35
  /**
30
36
  * **EN**: Custom properties for the tag component, if `renderTag` is also specified, the latter
31
37
  * will override the former
@@ -48,5 +54,21 @@ export interface OverflowTagsProps<T extends Record<string, unknown> = Record<st
48
54
  */
49
55
  randomColors?: boolean;
50
56
  }
57
+ /**
58
+ * - **EN:** Overflow tags component, used to display a collection of tags that can overflow and be
59
+ * truncated. It supports displaying tags in a dropdown when the number of tags exceeds the
60
+ * maximum display count. It also supports custom tag rendering and properties.
61
+ * - **CN:** 溢出标签组件,用于显示一组可以溢出和截断的标签集合。当标签数量超过最大显示数量时,支持在下拉菜单中显示标签。还支持自定义标签渲染和属性。
62
+ *
63
+ * @example
64
+ * <OverflowTags
65
+ * tags={[
66
+ * { value: 1, label: 'Tag1', icon: <Icon1 /> },
67
+ * { value: 2, label: 'Tag2', icon: <Icon2 /> },
68
+ * ]}
69
+ * tagProps={{ color: 'blue' }}
70
+ * ellipsisTagProps={{ color: 'grey' }}
71
+ * />;
72
+ */
51
73
  declare const OverflowTags: <T extends Record<string, any>>(props: OverflowTagsProps<T>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
52
74
  export default OverflowTags;
@@ -1,5 +1,5 @@
1
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
- var _excluded = ["tags", "randomColors", "getTagName", "getTagKey", "renderTag", "tagProps", "ellipsisTagProps", "className"];
2
+ var _excluded = ["tags", "randomColors", "getTagName", "getTagKey", "getTagProps", "tagProps", "ellipsisTagProps", "className", "prefixCls"];
3
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
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
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; }
@@ -22,6 +22,22 @@ import { random } from "../../utils/math";
22
22
  import useStyle from "./style";
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
25
+ /**
26
+ * - **EN:** Overflow tags component, used to display a collection of tags that can overflow and be
27
+ * truncated. It supports displaying tags in a dropdown when the number of tags exceeds the
28
+ * maximum display count. It also supports custom tag rendering and properties.
29
+ * - **CN:** 溢出标签组件,用于显示一组可以溢出和截断的标签集合。当标签数量超过最大显示数量时,支持在下拉菜单中显示标签。还支持自定义标签渲染和属性。
30
+ *
31
+ * @example
32
+ * <OverflowTags
33
+ * tags={[
34
+ * { value: 1, label: 'Tag1', icon: <Icon1 /> },
35
+ * { value: 2, label: 'Tag2', icon: <Icon2 /> },
36
+ * ]}
37
+ * tagProps={{ color: 'blue' }}
38
+ * ellipsisTagProps={{ color: 'grey' }}
39
+ * />;
40
+ */
25
41
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
42
  var OverflowTags = function OverflowTags(props) {
27
43
  var _props$tags = props.tags,
@@ -29,16 +45,17 @@ var OverflowTags = function OverflowTags(props) {
29
45
  randomColors = props.randomColors,
30
46
  getTagNameInProps = props.getTagName,
31
47
  getTagKey = props.getTagKey,
32
- renderTagInProps = props.renderTag,
48
+ getTagPropsInProps = props.getTagProps,
33
49
  tagProps = props.tagProps,
34
50
  ellipsisTagProps = props.ellipsisTagProps,
35
51
  className = props.className,
52
+ prefixClsInProps = props.prefixCls,
36
53
  restProps = _objectWithoutProperties(props, _excluded);
37
54
  var _theme$useToken = theme.useToken(),
38
55
  token = _theme$useToken.token;
39
56
  var _useContext = useContext(ConfigProvider.ConfigContext),
40
57
  getPrefixCls = _useContext.getPrefixCls;
41
- var prefixCls = getPrefixCls('easy-float-drawer');
58
+ var prefixCls = getPrefixCls('easy-overflow-tags', prefixClsInProps);
42
59
  var _useStyle = useStyle(prefixCls),
43
60
  _useStyle2 = _slicedToArray(_useStyle, 3),
44
61
  wrapCSSVar = _useStyle2[0],
@@ -52,12 +69,14 @@ var OverflowTags = function OverflowTags(props) {
52
69
  });
53
70
  }, [token]);
54
71
  var getTagName = useCallback(function (tag) {
55
- return getTagNameInProps ? getTagNameInProps(tag) : tag.name;
72
+ var _tag$label;
73
+ return getTagNameInProps ? getTagNameInProps(tag) : (_tag$label = tag.label) !== null && _tag$label !== void 0 ? _tag$label : tag.name;
56
74
  }, [getTagNameInProps]);
57
75
  var renderTag = function renderTag(item) {
58
76
  var _item$color;
59
- var customProps = renderTagInProps === null || renderTagInProps === void 0 ? void 0 : renderTagInProps(item, tags);
77
+ var customProps = getTagPropsInProps === null || getTagPropsInProps === void 0 ? void 0 : getTagPropsInProps(item, tags);
60
78
  return /*#__PURE__*/_jsx(Tag, _objectSpread(_objectSpread(_objectSpread({}, tagProps), {}, {
79
+ icon: item.icon,
61
80
  color: randomColors ? colors[random(0, colors.length - 1)] : (_item$color = item.color) !== null && _item$color !== void 0 ? _item$color : 'default'
62
81
  }, customProps), {}, {
63
82
  children: getTagName(item)
@@ -72,10 +91,10 @@ var OverflowTags = function OverflowTags(props) {
72
91
  return /*#__PURE__*/_jsx(Dropdown, {
73
92
  menu: {
74
93
  items: omittedItems.map(function (tag) {
75
- var _tag$id;
94
+ var _ref, _tag$value;
76
95
  return {
77
96
  type: 'item',
78
- key: getTagKey ? getTagKey(tag) : (_tag$id = tag.id) !== null && _tag$id !== void 0 ? _tag$id : getTagName(tag),
97
+ key: getTagKey ? getTagKey(tag) : (_ref = (_tag$value = tag.value) !== null && _tag$value !== void 0 ? _tag$value : tag.id) !== null && _ref !== void 0 ? _ref : getTagName(tag),
79
98
  label: getTagName(tag)
80
99
  };
81
100
  })
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useContext","useMemo","ConfigProvider","Dropdown","Tag","theme","PresetColors","classNames","Overflow","random","useStyle","jsx","_jsx","jsxs","_jsxs","OverflowTags","props","_props$tags","tags","randomColors","getTagNameInProps","getTagName","getTagKey","renderTagInProps","renderTag","tagProps","ellipsisTagProps","className","restProps","_objectWithoutProperties","_excluded","_theme$useToken","useToken","token","_useContext","ConfigContext","getPrefixCls","prefixCls","_useStyle","_useStyle2","_slicedToArray","wrapCSSVar","hashId","cssVarCls","colors","filter","c","includes","map","color","concat","tag","name","item","_item$color","customProps","_objectSpread","length","children","data","maxCount","renderItem","renderRest","omittedItems","menu","items","_tag$id","type","key","id","label"],"sources":["../../../src/components/OverflowTags/index.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { useCallback, useContext, useMemo } from 'react';\nimport type { TagProps } from 'antd';\nimport { ConfigProvider, Dropdown, Tag, theme } from 'antd';\nimport { PresetColors } from 'antd/es/theme/internal';\nimport classNames from 'classnames';\nimport type { OverflowProps } from 'rc-overflow';\nimport Overflow from 'rc-overflow';\nimport { random } from '../../utils/math';\nimport useStyle from './style';\n\nexport interface OverflowTagsProps<T extends Record<string, unknown> = Record<string, unknown>>\n extends OverflowProps<T> {\n /**\n * **CN**: 标签集合的数据\n *\n * **EN**: Data collection of tags\n */\n tags: T[] | undefined;\n /**\n * **EN**: Function to get the tag name, default is `tag.name`\n *\n * **CN**: 获取标签名称的函数,默认取`tag.name`\n */\n getTagName?: (tag: T) => ReactNode;\n /**\n * **EN**: Function to get the unique identifier of the tag, default is `tag.id`\n *\n * **CN**: 获取标签唯一标识的函数,默认取`tag.id`\n */\n getTagKey?: (tag: T) => React.Key;\n /**\n * **EN**: Function to render the tag, returns `TagProps`\n *\n * **CN**: 渲染标签的函数,返回`TagProps`\n */\n renderTag?: (tag: T, tags: T[]) => TagProps;\n /**\n * **EN**: Custom properties for the tag component, if `renderTag` is also specified, the latter\n * will override the former\n *\n * **CN**: 自定义标签的组件属性,如果同时指定了`renderTag`,则后者会覆盖前者\n */\n tagProps?: TagProps;\n /**\n * **EN**: When the number of tags exceeds the maximum display count, an ellipsis tag will be\n * shown. This property is used to set the style of the ellipsis tag.\n *\n * **CN**: 当标签数量超过最大显示数量时,会显示省略号的标签,此属性用于设置省略号标签的样式\n */\n ellipsisTagProps?: TagProps;\n /**\n * **EN**: Whether to use random colors, default is `false`. Note that the tag object can also\n * contain a `color` property to specify the color, and the latter takes precedence.\n *\n * **CN**: 是否使用随机颜色,默认`false`。注意,tag对象还可以包含`color`属性来指定颜色,而且后者优先级更高。\n */\n randomColors?: boolean;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst OverflowTags = <T extends Record<string, any>>(props: OverflowTagsProps<T>) => {\n const {\n tags = [],\n randomColors,\n getTagName: getTagNameInProps,\n getTagKey,\n renderTag: renderTagInProps,\n tagProps,\n ellipsisTagProps,\n className,\n ...restProps\n } = props;\n const { token } = theme.useToken();\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const prefixCls = getPrefixCls('easy-float-drawer');\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n\n const colors = useMemo(\n () => PresetColors.filter((c) => !['lime', 'yellow', 'magenta'].includes(c)).map((color) => token[`${color}-3`]),\n [token]\n );\n const getTagName = useCallback(\n (tag: T) => {\n return getTagNameInProps ? getTagNameInProps(tag) : tag.name;\n },\n [getTagNameInProps]\n );\n const renderTag = (item: T) => {\n const customProps = renderTagInProps?.(item, tags);\n return (\n <Tag\n {...tagProps}\n color={randomColors ? colors[random(0, colors.length - 1)] : (item.color ?? 'default')}\n {...customProps}\n >\n {getTagName(item)}\n </Tag>\n );\n };\n\n return wrapCSSVar(\n <Overflow<T>\n className={classNames(hashId, cssVarCls, prefixCls, className)}\n data={tags}\n maxCount=\"responsive\"\n renderItem={renderTag}\n renderRest={(omittedItems) => (\n <Dropdown\n menu={{\n items: omittedItems.map((tag) => ({\n type: 'item',\n key: getTagKey ? getTagKey(tag) : (tag.id ?? getTagName(tag)),\n label: getTagName(tag),\n })),\n }}\n >\n <Tag {...ellipsisTagProps}>+ {omittedItems.length}...</Tag>\n </Dropdown>\n )}\n {...restProps}\n />\n );\n};\n\nexport default OverflowTags;\n"],"mappings":";;;;;;;;;;;;;;;AACA,SAASA,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAExD,SAASC,cAAc,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,MAAM;AAC3D,SAASC,YAAY,QAAQ,wBAAwB;AACrD,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,MAAM;AACf,OAAOC,QAAQ;AAAgB,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAmD/B;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAmCC,KAA2B,EAAK;EACnF,IAAAC,WAAA,GAUID,KAAK,CATPE,IAAI;IAAJA,IAAI,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA;IACTE,YAAY,GAQVH,KAAK,CARPG,YAAY;IACAC,iBAAiB,GAO3BJ,KAAK,CAPPK,UAAU;IACVC,SAAS,GAMPN,KAAK,CANPM,SAAS;IACEC,gBAAgB,GAKzBP,KAAK,CALPQ,SAAS;IACTC,QAAQ,GAINT,KAAK,CAJPS,QAAQ;IACRC,gBAAgB,GAGdV,KAAK,CAHPU,gBAAgB;IAChBC,SAAS,GAEPX,KAAK,CAFPW,SAAS;IACNC,SAAS,GAAAC,wBAAA,CACVb,KAAK,EAAAc,SAAA;EACT,IAAAC,eAAA,GAAkB1B,KAAK,CAAC2B,QAAQ,CAAC,CAAC;IAA1BC,KAAK,GAAAF,eAAA,CAALE,KAAK;EACb,IAAAC,WAAA,GAAyBlC,UAAU,CAACE,cAAc,CAACiC,aAAa,CAAC;IAAzDC,YAAY,GAAAF,WAAA,CAAZE,YAAY;EACpB,IAAMC,SAAS,GAAGD,YAAY,CAAC,mBAAmB,CAAC;EACnD,IAAAE,SAAA,GAAwC5B,QAAQ,CAAC2B,SAAS,CAAC;IAAAE,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAApDG,UAAU,GAAAF,UAAA;IAAEG,MAAM,GAAAH,UAAA;IAAEI,SAAS,GAAAJ,UAAA;EAEpC,IAAMK,MAAM,GAAG3C,OAAO,CACpB;IAAA,OAAMK,YAAY,CAACuC,MAAM,CAAC,UAACC,CAAC;MAAA,OAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACD,CAAC,CAAC;IAAA,EAAC,CAACE,GAAG,CAAC,UAACC,KAAK;MAAA,OAAKhB,KAAK,IAAAiB,MAAA,CAAID,KAAK,QAAK;IAAA,EAAC;EAAA,GAChH,CAAChB,KAAK,CACR,CAAC;EACD,IAAMZ,UAAU,GAAGtB,WAAW,CAC5B,UAACoD,GAAM,EAAK;IACV,OAAO/B,iBAAiB,GAAGA,iBAAiB,CAAC+B,GAAG,CAAC,GAAGA,GAAG,CAACC,IAAI;EAC9D,CAAC,EACD,CAAChC,iBAAiB,CACpB,CAAC;EACD,IAAMI,SAAS,GAAG,SAAZA,SAASA,CAAI6B,IAAO,EAAK;IAAA,IAAAC,WAAA;IAC7B,IAAMC,WAAW,GAAGhC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAG8B,IAAI,EAAEnC,IAAI,CAAC;IAClD,oBACEN,IAAA,CAACR,GAAG,EAAAoD,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACE/B,QAAQ;MACZwB,KAAK,EAAE9B,YAAY,GAAGyB,MAAM,CAACnC,MAAM,CAAC,CAAC,EAAEmC,MAAM,CAACa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAAH,WAAA,GAAID,IAAI,CAACJ,KAAK,cAAAK,WAAA,cAAAA,WAAA,GAAI;IAAW,GACnFC,WAAW;MAAAG,QAAA,EAEdrC,UAAU,CAACgC,IAAI;IAAC,EACd,CAAC;EAEV,CAAC;EAED,OAAOZ,UAAU,eACf7B,IAAA,CAACJ,QAAQ,EAAAgD,aAAA;IACP7B,SAAS,EAAEpB,UAAU,CAACmC,MAAM,EAAEC,SAAS,EAAEN,SAAS,EAAEV,SAAS,CAAE;IAC/DgC,IAAI,EAAEzC,IAAK;IACX0C,QAAQ,EAAC,YAAY;IACrBC,UAAU,EAAErC,SAAU;IACtBsC,UAAU,EAAE,SAAAA,WAACC,YAAY;MAAA,oBACvBnD,IAAA,CAACT,QAAQ;QACP6D,IAAI,EAAE;UACJC,KAAK,EAAEF,YAAY,CAACf,GAAG,CAAC,UAACG,GAAG;YAAA,IAAAe,OAAA;YAAA,OAAM;cAChCC,IAAI,EAAE,MAAM;cACZC,GAAG,EAAE9C,SAAS,GAAGA,SAAS,CAAC6B,GAAG,CAAC,IAAAe,OAAA,GAAIf,GAAG,CAACkB,EAAE,cAAAH,OAAA,cAAAA,OAAA,GAAI7C,UAAU,CAAC8B,GAAG,CAAE;cAC7DmB,KAAK,EAAEjD,UAAU,CAAC8B,GAAG;YACvB,CAAC;UAAA,CAAC;QACJ,CAAE;QAAAO,QAAA,eAEF5C,KAAA,CAACV,GAAG,EAAAoD,aAAA,CAAAA,aAAA,KAAK9B,gBAAgB;UAAAgC,QAAA,GAAE,IAAE,EAACK,YAAY,CAACN,MAAM,EAAC,KAAG;QAAA,EAAK;MAAC,CACnD,CAAC;IAAA;EACX,GACE7B,SAAS,CACd,CACH,CAAC;AACH,CAAC;AAED,eAAeb,YAAY"}
1
+ {"version":3,"names":["useCallback","useContext","useMemo","ConfigProvider","Dropdown","Tag","theme","PresetColors","classNames","Overflow","random","useStyle","jsx","_jsx","jsxs","_jsxs","OverflowTags","props","_props$tags","tags","randomColors","getTagNameInProps","getTagName","getTagKey","getTagPropsInProps","getTagProps","tagProps","ellipsisTagProps","className","prefixClsInProps","prefixCls","restProps","_objectWithoutProperties","_excluded","_theme$useToken","useToken","token","_useContext","ConfigContext","getPrefixCls","_useStyle","_useStyle2","_slicedToArray","wrapCSSVar","hashId","cssVarCls","colors","filter","c","includes","map","color","concat","tag","_tag$label","label","name","renderTag","item","_item$color","customProps","_objectSpread","icon","length","children","data","maxCount","renderItem","renderRest","omittedItems","menu","items","_ref","_tag$value","type","key","value","id"],"sources":["../../../src/components/OverflowTags/index.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { useCallback, useContext, useMemo } from 'react';\nimport type { TagProps } from 'antd';\nimport { ConfigProvider, Dropdown, Tag, theme } from 'antd';\nimport { PresetColors } from 'antd/es/theme/internal';\nimport classNames from 'classnames';\nimport type { OverflowProps } from 'rc-overflow';\nimport Overflow from 'rc-overflow';\nimport { random } from '../../utils/math';\nimport useStyle from './style';\n\nexport interface OverflowTagsProps<T extends Record<string, unknown> = Record<string, unknown>>\n extends Omit<OverflowProps<T>, 'renderItem'> {\n /**\n * **CN**: 标签集合的数据\n *\n * **EN**: Data collection of tags\n */\n tags: T[] | undefined;\n /**\n * **EN**: Function to get the tag name, default is `tag.label` or `tag.name`\n *\n * **CN**: 获取标签名称的函数,默认取`tag.label`或`tag.name`\n */\n getTagName?: (tag: T) => ReactNode;\n /**\n * **EN**: Function to get the unique identifier of the tag, default is `tag.value` or `tag.id`\n *\n * **CN**: 获取标签唯一标识的函数,默认取`tag.value`或`tag.id`\n */\n getTagKey?: (tag: T) => React.Key;\n\n /**\n * **EN**: Custom tag rendering function\n *\n * **CN**: 标签渲染函数\n */\n renderTag?: OverflowProps<T>['renderItem'];\n /**\n * **EN**: Custom properties for the default tag rendering function, returning `TagProps`\n *\n * **CN**: 对于默认的标签渲染函数,自定义标签的属性,返回`TagProps`\n */\n getTagProps?: (tag: T, tags: T[]) => TagProps;\n /**\n * **EN**: Custom properties for the tag component, if `renderTag` is also specified, the latter\n * will override the former\n *\n * **CN**: 自定义标签的组件属性,如果同时指定了`renderTag`,则后者会覆盖前者\n */\n tagProps?: TagProps;\n /**\n * **EN**: When the number of tags exceeds the maximum display count, an ellipsis tag will be\n * shown. This property is used to set the style of the ellipsis tag.\n *\n * **CN**: 当标签数量超过最大显示数量时,会显示省略号的标签,此属性用于设置省略号标签的样式\n */\n ellipsisTagProps?: TagProps;\n /**\n * **EN**: Whether to use random colors, default is `false`. Note that the tag object can also\n * contain a `color` property to specify the color, and the latter takes precedence.\n *\n * **CN**: 是否使用随机颜色,默认`false`。注意,tag对象还可以包含`color`属性来指定颜色,而且后者优先级更高。\n */\n randomColors?: boolean;\n}\n\n/**\n * - **EN:** Overflow tags component, used to display a collection of tags that can overflow and be\n * truncated. It supports displaying tags in a dropdown when the number of tags exceeds the\n * maximum display count. It also supports custom tag rendering and properties.\n * - **CN:** 溢出标签组件,用于显示一组可以溢出和截断的标签集合。当标签数量超过最大显示数量时,支持在下拉菜单中显示标签。还支持自定义标签渲染和属性。\n *\n * @example\n * <OverflowTags\n * tags={[\n * { value: 1, label: 'Tag1', icon: <Icon1 /> },\n * { value: 2, label: 'Tag2', icon: <Icon2 /> },\n * ]}\n * tagProps={{ color: 'blue' }}\n * ellipsisTagProps={{ color: 'grey' }}\n * />;\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst OverflowTags = <T extends Record<string, any>>(props: OverflowTagsProps<T>) => {\n const {\n tags = [],\n randomColors,\n getTagName: getTagNameInProps,\n getTagKey,\n getTagProps: getTagPropsInProps,\n tagProps,\n ellipsisTagProps,\n className,\n prefixCls: prefixClsInProps,\n ...restProps\n } = props;\n const { token } = theme.useToken();\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const prefixCls = getPrefixCls('easy-overflow-tags', prefixClsInProps);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n\n const colors = useMemo(\n () => PresetColors.filter((c) => !['lime', 'yellow', 'magenta'].includes(c)).map((color) => token[`${color}-3`]),\n [token]\n );\n const getTagName = useCallback(\n (tag: T) => {\n return getTagNameInProps ? getTagNameInProps(tag) : (tag.label ?? tag.name);\n },\n [getTagNameInProps]\n );\n const renderTag = (item: T) => {\n const customProps = getTagPropsInProps?.(item, tags);\n return (\n <Tag\n {...tagProps}\n icon={item.icon}\n color={randomColors ? colors[random(0, colors.length - 1)] : (item.color ?? 'default')}\n {...customProps}\n >\n {getTagName(item)}\n </Tag>\n );\n };\n\n return wrapCSSVar(\n <Overflow<T>\n className={classNames(hashId, cssVarCls, prefixCls, className)}\n data={tags}\n maxCount=\"responsive\"\n renderItem={renderTag}\n renderRest={(omittedItems) => (\n <Dropdown\n menu={{\n items: omittedItems.map((tag) => ({\n type: 'item',\n key: getTagKey ? getTagKey(tag) : (tag.value ?? tag.id ?? getTagName(tag)),\n label: getTagName(tag),\n })),\n }}\n >\n <Tag {...ellipsisTagProps}>+ {omittedItems.length}...</Tag>\n </Dropdown>\n )}\n {...restProps}\n />\n );\n};\n\nexport default OverflowTags;\n"],"mappings":"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"}