amis 1.6.5-beta.3 → 1.8.0-beta.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 (238) hide show
  1. package/lib/Schema.d.ts +3 -2
  2. package/lib/Schema.js +0 -1
  3. package/lib/Schema.js.map +2 -2
  4. package/lib/components/Alert2.js +4 -2
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AssociatedSelection.d.ts +84 -84
  7. package/lib/components/Avatar.d.ts +20 -20
  8. package/lib/components/Breadcrumb.d.ts +130 -0
  9. package/lib/components/Breadcrumb.js +161 -0
  10. package/lib/components/Breadcrumb.js.map +13 -0
  11. package/lib/components/Card.d.ts +20 -20
  12. package/lib/components/ChainedSelection.d.ts +84 -84
  13. package/lib/components/CityArea.js +3 -0
  14. package/lib/components/CityArea.js.map +2 -2
  15. package/lib/components/Collapse.d.ts +20 -20
  16. package/lib/components/CollapseGroup.d.ts +20 -20
  17. package/lib/components/DatePicker.d.ts +84 -84
  18. package/lib/components/DateRangePicker.d.ts +2 -2
  19. package/lib/components/DateRangePicker.js +36 -45
  20. package/lib/components/DateRangePicker.js.map +2 -2
  21. package/lib/components/GroupedSelection.d.ts +84 -84
  22. package/lib/components/Layout.d.ts +21 -21
  23. package/lib/components/ListGroup.d.ts +21 -21
  24. package/lib/components/PopUp.js +2 -1
  25. package/lib/components/PopUp.js.map +2 -2
  26. package/lib/components/Radios.d.ts +21 -21
  27. package/lib/components/Range.js.map +2 -2
  28. package/lib/components/Selection.d.ts +84 -84
  29. package/lib/components/TableSelection.d.ts +84 -84
  30. package/lib/components/Tabs.d.ts +52 -23
  31. package/lib/components/Tabs.js +198 -46
  32. package/lib/components/Tabs.js.map +2 -2
  33. package/lib/components/TooltipWrapper.d.ts +21 -20
  34. package/lib/components/TooltipWrapper.js +2 -2
  35. package/lib/components/TooltipWrapper.js.map +2 -2
  36. package/lib/components/Transfer.d.ts +84 -84
  37. package/lib/components/TransferDropDown.d.ts +84 -84
  38. package/lib/components/Tree.d.ts +84 -84
  39. package/lib/components/TreeSelection.d.ts +84 -84
  40. package/lib/components/calendar/Calendar.js +5 -0
  41. package/lib/components/calendar/Calendar.js.map +2 -2
  42. package/lib/components/calendar/DaysView.js.map +1 -1
  43. package/lib/components/icons.js +8 -0
  44. package/lib/components/icons.js.map +2 -2
  45. package/lib/components/index.d.ts +2 -1
  46. package/lib/components/index.js +4 -2
  47. package/lib/components/index.js.map +2 -2
  48. package/lib/icons/cloud-upload.js +17 -0
  49. package/lib/icons/image.js +7 -0
  50. package/lib/icons/refresh.js +9 -0
  51. package/lib/icons/trash.js +10 -0
  52. package/lib/icons/upload.js +3 -8
  53. package/lib/index.d.ts +1 -0
  54. package/lib/index.js +2 -1
  55. package/lib/index.js.map +2 -2
  56. package/lib/locale/en-US.js +3 -1
  57. package/lib/locale/en-US.js.map +2 -2
  58. package/lib/locale/zh-CN.js +4 -2
  59. package/lib/locale/zh-CN.js.map +2 -2
  60. package/lib/renderers/Action.d.ts +1 -1
  61. package/lib/renderers/Action.js.map +2 -2
  62. package/lib/renderers/Breadcrumb.d.ts +41 -6
  63. package/lib/renderers/Breadcrumb.js +23 -19
  64. package/lib/renderers/Breadcrumb.js.map +2 -2
  65. package/lib/renderers/ButtonGroup.d.ts +2 -2
  66. package/lib/renderers/ButtonGroup.js.map +1 -1
  67. package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
  68. package/lib/renderers/Form/ChainedSelect.js +83 -34
  69. package/lib/renderers/Form/ChainedSelect.js.map +2 -2
  70. package/lib/renderers/Form/Checkbox.d.ts +3 -0
  71. package/lib/renderers/Form/Checkbox.js +38 -1
  72. package/lib/renderers/Form/Checkbox.js.map +2 -2
  73. package/lib/renderers/Form/Combo.d.ts +4 -3
  74. package/lib/renderers/Form/Combo.js +81 -32
  75. package/lib/renderers/Form/Combo.js.map +2 -2
  76. package/lib/renderers/Form/DiffEditor.d.ts +1 -1
  77. package/lib/renderers/Form/InputCity.d.ts +84 -84
  78. package/lib/renderers/Form/InputCity.js +4 -1
  79. package/lib/renderers/Form/InputCity.js.map +2 -2
  80. package/lib/renderers/Form/InputColor.js +3 -1
  81. package/lib/renderers/Form/InputColor.js.map +2 -2
  82. package/lib/renderers/Form/InputDate.js +3 -1
  83. package/lib/renderers/Form/InputDate.js.map +2 -2
  84. package/lib/renderers/Form/InputDateRange.js +3 -1
  85. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  86. package/lib/renderers/Form/InputExcel.d.ts +4 -0
  87. package/lib/renderers/Form/InputExcel.js +33 -6
  88. package/lib/renderers/Form/InputExcel.js.map +2 -2
  89. package/lib/renderers/Form/InputFile.d.ts +8 -1
  90. package/lib/renderers/Form/InputFile.js +71 -42
  91. package/lib/renderers/Form/InputFile.js.map +2 -2
  92. package/lib/renderers/Form/InputImage.d.ts +4 -1
  93. package/lib/renderers/Form/InputImage.js +21 -9
  94. package/lib/renderers/Form/InputImage.js.map +2 -2
  95. package/lib/renderers/Form/InputRange.d.ts +27 -9
  96. package/lib/renderers/Form/InputRange.js +88 -23
  97. package/lib/renderers/Form/InputRange.js.map +2 -2
  98. package/lib/renderers/Form/InputSubForm.js +2 -1
  99. package/lib/renderers/Form/InputSubForm.js.map +2 -2
  100. package/lib/renderers/Form/InputTag.js +2 -1
  101. package/lib/renderers/Form/InputTag.js.map +2 -2
  102. package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
  103. package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
  104. package/lib/renderers/Form/NestedSelect.d.ts +9 -6
  105. package/lib/renderers/Form/NestedSelect.js +247 -130
  106. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  107. package/lib/renderers/Form/Options.js +2 -1
  108. package/lib/renderers/Form/Options.js.map +2 -2
  109. package/lib/renderers/Form/Radios.js +2 -1
  110. package/lib/renderers/Form/Radios.js.map +2 -2
  111. package/lib/renderers/Form/Select.js +6 -3
  112. package/lib/renderers/Form/Select.js.map +2 -2
  113. package/lib/renderers/Form/Switch.d.ts +7 -6
  114. package/lib/renderers/Form/Switch.js +4 -1
  115. package/lib/renderers/Form/Switch.js.map +2 -2
  116. package/lib/renderers/Log.js +2 -1
  117. package/lib/renderers/Log.js.map +2 -2
  118. package/lib/renderers/PopOver.js +1 -1
  119. package/lib/renderers/PopOver.js.map +2 -2
  120. package/lib/renderers/Tabs.d.ts +58 -5
  121. package/lib/renderers/Tabs.js +170 -58
  122. package/lib/renderers/Tabs.js.map +2 -2
  123. package/lib/renderers/TooltipWrapper.d.ts +104 -0
  124. package/lib/renderers/TooltipWrapper.js +59 -0
  125. package/lib/renderers/TooltipWrapper.js.map +13 -0
  126. package/lib/renderers/Video.d.ts +6 -0
  127. package/lib/renderers/Video.js +13 -6
  128. package/lib/renderers/Video.js.map +2 -2
  129. package/lib/store/form.js +4 -13
  130. package/lib/store/form.js.map +2 -2
  131. package/lib/store/table.js +1 -1
  132. package/lib/store/table.js.map +2 -2
  133. package/lib/themes/ang-ie11.css +742 -160
  134. package/lib/themes/ang.css +793 -163
  135. package/lib/themes/ang.css.map +1 -1
  136. package/lib/themes/antd-ie11.css +757 -175
  137. package/lib/themes/antd.css +793 -163
  138. package/lib/themes/antd.css.map +1 -1
  139. package/lib/themes/cxd-ie11.css +1249 -667
  140. package/lib/themes/cxd.css +970 -321
  141. package/lib/themes/cxd.css.map +1 -1
  142. package/lib/themes/dark-ie11.css +742 -160
  143. package/lib/themes/dark.css +793 -163
  144. package/lib/themes/dark.css.map +1 -1
  145. package/lib/themes/default-ie11.css +1249 -667
  146. package/lib/themes/default.css +970 -321
  147. package/lib/themes/default.css.map +1 -1
  148. package/package.json +1 -1
  149. package/schema.json +16012 -736
  150. package/scss/_properties.scss +56 -2
  151. package/scss/components/_alert.scss +1 -1
  152. package/scss/components/_breadcrumb.scss +90 -1
  153. package/scss/components/_button-group.scss +15 -0
  154. package/scss/components/_city-area.scss +2 -0
  155. package/scss/components/_popup.scss +13 -3
  156. package/scss/components/_tabs.scss +629 -132
  157. package/scss/components/_tooltip.scss +72 -0
  158. package/scss/components/form/_file.scss +82 -24
  159. package/scss/components/form/_image.scss +30 -25
  160. package/scss/components/form/_number.scss +2 -0
  161. package/scss/components/form/_switch.scss +1 -3
  162. package/scss/themes/_cxd-colors.scss +47 -47
  163. package/scss/themes/_cxd-variables.scss +20 -0
  164. package/sdk/ang-ie11.css +879 -196
  165. package/sdk/ang.css +931 -200
  166. package/sdk/antd-ie11.css +951 -268
  167. package/sdk/antd.css +931 -200
  168. package/sdk/barcode.js +51 -51
  169. package/sdk/charts.js +14 -14
  170. package/sdk/codemirror.js +7 -7
  171. package/sdk/color-picker.js +65 -65
  172. package/sdk/cropperjs.js +2 -2
  173. package/sdk/cxd-ie11.css +1386 -703
  174. package/sdk/cxd.css +1107 -357
  175. package/sdk/dark-ie11.css +879 -196
  176. package/sdk/dark.css +931 -200
  177. package/sdk/exceljs.js +1 -1
  178. package/sdk/markdown.js +69 -69
  179. package/sdk/papaparse.js +1 -1
  180. package/sdk/renderers/Form/CityDB.js +1 -1
  181. package/sdk/rest.js +17 -17
  182. package/sdk/rich-text.js +62 -62
  183. package/sdk/sdk-ie11.css +1386 -703
  184. package/sdk/sdk.css +1107 -357
  185. package/sdk/sdk.js +1260 -1248
  186. package/sdk/thirds/hls.js/hls.js +1 -1
  187. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  188. package/sdk/tinymce.js +57 -57
  189. package/src/Schema.ts +5 -2
  190. package/src/components/Alert2.tsx +9 -3
  191. package/src/components/Breadcrumb.tsx +294 -0
  192. package/src/components/CityArea.tsx +3 -0
  193. package/src/components/DateRangePicker.tsx +40 -68
  194. package/src/components/PopUp.tsx +6 -5
  195. package/src/components/Range.tsx +7 -1
  196. package/src/components/Tabs.tsx +300 -54
  197. package/src/components/TooltipWrapper.tsx +4 -1
  198. package/src/components/calendar/Calendar.tsx +5 -0
  199. package/src/components/calendar/DaysView.tsx +2 -2
  200. package/src/components/icons.tsx +8 -0
  201. package/src/components/index.tsx +2 -0
  202. package/src/icons/cloud-upload.svg +22 -0
  203. package/src/icons/image.svg +1 -0
  204. package/src/icons/refresh.svg +7 -0
  205. package/src/icons/trash.svg +8 -0
  206. package/src/icons/upload.svg +4 -9
  207. package/src/index.tsx +1 -0
  208. package/src/locale/en-US.ts +3 -1
  209. package/src/locale/zh-CN.ts +4 -2
  210. package/src/renderers/Action.tsx +2 -1
  211. package/src/renderers/Breadcrumb.tsx +89 -45
  212. package/src/renderers/ButtonGroup.tsx +2 -2
  213. package/src/renderers/Form/ChainedSelect.tsx +56 -12
  214. package/src/renderers/Form/Checkbox.tsx +30 -1
  215. package/src/renderers/Form/Combo.tsx +84 -26
  216. package/src/renderers/Form/InputCity.tsx +13 -1
  217. package/src/renderers/Form/InputColor.tsx +2 -0
  218. package/src/renderers/Form/InputDate.tsx +2 -0
  219. package/src/renderers/Form/InputDateRange.tsx +2 -0
  220. package/src/renderers/Form/InputExcel.tsx +27 -5
  221. package/src/renderers/Form/InputFile.tsx +167 -115
  222. package/src/renderers/Form/InputImage.tsx +61 -35
  223. package/src/renderers/Form/InputRange.tsx +95 -40
  224. package/src/renderers/Form/InputSubForm.tsx +2 -1
  225. package/src/renderers/Form/InputTag.tsx +3 -1
  226. package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
  227. package/src/renderers/Form/NestedSelect.tsx +75 -26
  228. package/src/renderers/Form/Options.tsx +3 -1
  229. package/src/renderers/Form/Radios.tsx +3 -1
  230. package/src/renderers/Form/Select.tsx +6 -2
  231. package/src/renderers/Form/Switch.tsx +16 -9
  232. package/src/renderers/Log.tsx +2 -1
  233. package/src/renderers/PopOver.tsx +1 -1
  234. package/src/renderers/Tabs.tsx +254 -93
  235. package/src/renderers/TooltipWrapper.tsx +219 -0
  236. package/src/renderers/Video.tsx +21 -6
  237. package/src/store/form.ts +0 -9
  238. package/src/store/table.ts +1 -1
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Action.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport hotkeys from 'hotkeys-js';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport Button from '../components/Button';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\n\nexport interface ButtonSchema extends BaseSchema {\n /**\n * 主要用于用户行为跟踪里区分是哪个按钮\n */\n id?: string;\n\n /**\n * 是否为块状展示,默认为内联。\n */\n block?: boolean;\n\n /**\n * 禁用时的文案提示。\n */\n disabledTip?: string;\n\n /**\n * 按钮图标, iconfont 的类名\n */\n icon?: SchemaIcon;\n\n /**\n * icon 上的css 类名\n */\n iconClassName?: SchemaClassName;\n\n /**\n * 右侧按钮图标, iconfont 的类名\n */\n rightIcon?: SchemaIcon;\n\n /**\n * 右侧 icon 上的 css 类名\n */\n rightIconClassName?: SchemaClassName;\n /**\n * loading 上的css 类名\n */\n loadingClassName?: SchemaClassName;\n\n /**\n * 按钮文字\n */\n label?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * @deprecated 通过 level 来配置\n */\n primary?: boolean;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n\n tooltip?: SchemaTooltip;\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 指定按钮类型,支持 button、submit或者reset三种类型。\n */\n type: 'button' | 'submit' | 'reset';\n\n /**\n * 提示文字,配置了操作前会要求用户确认。\n */\n confirmText?: string;\n\n /**\n * 如果按钮在form中,配置此属性会要求用户把指定的字段通过验证后才会触发行为。\n */\n required?: Array<string>;\n\n /**\n * 激活状态时的样式\n */\n activeLevel?: string;\n\n /**\n * 激活状态时的类名\n */\n activeClassName?: string;\n\n /**\n * 如果按钮在弹框中,可以配置这个动作完成后是否关闭弹窗,或者指定关闭目标弹框。\n */\n close?: boolean | string;\n\n /**\n * 当按钮时批量操作按钮时,默认必须有勾选元素才能可点击,如果此属性配置成 false,则没有点选成员也能点击。\n */\n requireSelected?: boolean;\n\n /**\n * 是否将弹框中数据 merge 到父级作用域。\n */\n mergeData?: boolean;\n\n /**\n * 可以指定让谁来触发这个动作。\n */\n target?: string;\n\n /**\n * 点击后的禁止倒计时(秒)\n */\n countDown?: number;\n\n /**\n * 倒计时文字自定义\n */\n countDownTpl?: string;\n\n /**\n * 角标\n */\n badge?: BadgeSchema;\n\n /**\n * 键盘快捷键\n */\n hotKey?: string;\n /**\n * 是否显示loading效果\n */\n loadingOn?: string;\n\n /**\n * 自定义事件处理函数\n */\n onClick?: string | any;\n\n /**\n * 子内容\n */\n body?: SchemaCollection;\n}\n\nexport interface AjaxActionSchema extends ButtonSchema {\n /**\n * 指定为发送 ajax 的行为。\n */\n actionType: 'ajax';\n\n /**\n * 配置 ajax 发送地址\n */\n api: SchemaApi;\n\n feedback?: FeedbackDialog;\n\n reload?: SchemaReload;\n redirect?: string;\n ignoreConfirm?: boolean;\n}\n\nexport interface DownloadActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为下载行为\n */\n actionType: 'download';\n}\n\nexport interface UrlActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接\n */\n actionType: 'url';\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 打开的目标地址\n */\n url: string;\n}\n\nexport interface DialogActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗\n */\n actionType: 'dialog';\n\n /**\n * 弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/dialog\n */\n dialog: DialogSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface DrawerActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'drawer';\n\n /**\n * 抽出式弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/drawer\n */\n drawer: DrawerSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface ToastActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'toast';\n\n /**\n * 轻提示详情\n * 文档:https://baidu.gitee.io/amis/docs/components/toast\n */\n toast: ToastSchemaBase;\n}\n\nexport interface CopyActionSchema extends ButtonSchema {\n /**\n * 指定为复制内容行为\n */\n actionType: 'copy';\n\n /**\n * 复制啥内容由此配置,支持模板语法。\n */\n copy: SchemaTpl;\n}\n\nexport interface LinkActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接行为,跟 url 不同的时这个行为为单页模式。\n */\n actionType: 'link';\n\n /**\n * 跳转到哪?支持配置相对路径。\n */\n link: string;\n}\n\nexport interface ReloadActionSchema extends ButtonSchema {\n /**\n * 指定为刷新目标组件。\n */\n actionType: 'reload';\n\n /**\n * 指定目标组件。\n */\n target?: SchemaReload;\n}\n\nexport interface EmailActionSchema extends ButtonSchema {\n /**\n * 指定为打开邮箱行为\n */\n actionType: 'email';\n\n /**\n * 收件人邮箱\n */\n to: string;\n\n /**\n * 抄送邮箱\n */\n cc?: string;\n\n /**\n * 匿名抄送邮箱\n */\n bcc?: string;\n\n /**\n * 邮件主题\n */\n subject?: string;\n\n /**\n * 邮件正文\n */\n body?: string;\n}\n\nexport interface OtherActionSchema extends ButtonSchema {\n actionType:\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'add'\n | 'reset'\n | 'reset-and-submit';\n [propName: string]: any;\n}\n\nexport interface VanillaAction extends ButtonSchema {\n actionType?: string;\n}\n\n/**\n * 按钮动作渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/action\n */\nexport type ActionSchema =\n | AjaxActionSchema\n | UrlActionSchema\n | LinkActionSchema\n | DialogActionSchema\n | DrawerActionSchema\n | ToastActionSchema\n | CopyActionSchema\n | ReloadActionSchema\n | EmailActionSchema\n | OtherActionSchema\n | VanillaAction;\n\nconst ActionProps = [\n 'id',\n 'dialog',\n 'drawer',\n 'toast',\n 'url',\n 'link',\n 'confirmText',\n 'tooltip',\n 'disabledTip',\n 'className',\n 'asyncApi',\n 'redirect',\n 'size',\n 'level',\n 'primary',\n 'feedback',\n 'api',\n 'blank',\n 'tooltipPlacement',\n 'to',\n 'cc',\n 'bcc',\n 'subject',\n 'body',\n 'content',\n 'required',\n 'type',\n 'actionType',\n 'label',\n 'icon',\n 'rightIcon',\n 'reload',\n 'target',\n 'close',\n 'messages',\n 'mergeData',\n 'index',\n 'copy',\n 'copyFormat',\n 'payload',\n 'requireSelected'\n];\nimport {filterContents} from './Remark';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, createObject} from '../utils/helper';\nimport {\n BaseSchema,\n FeedbackDialog,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaExpression,\n SchemaIcon,\n SchemaReload,\n SchemaTooltip,\n SchemaTpl\n} from '../Schema';\nimport {DialogSchema, DialogSchemaBase} from './Dialog';\nimport {DrawerSchema, DrawerSchemaBase} from './Drawer';\nimport {ToastSchemaBase} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {BadgeSchema, withBadge} from '../components/Badge';\nimport {normalizeApi, str2AsyncFunction} from '../utils/api';\nimport {TooltipWrapper} from '../components/TooltipWrapper';\nimport handleAction from '../utils/handleAction';\n\n// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能\n// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n\nexport interface ActionProps\n extends Omit<\n ButtonSchema,\n 'className' | 'iconClassName' | 'rightIconClassName' | 'loadingClassName'\n >,\n ThemeProps,\n Omit<\n AjaxActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n UrlActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n LinkActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DialogActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DrawerActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ToastSchemaBase,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n CopyActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ReloadActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n EmailActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n | 'body'\n >,\n Omit<\n OtherActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n > {\n actionType: any;\n onAction?: (\n e: React.MouseEvent<any> | void | null,\n action: ActionSchema\n ) => void;\n isCurrentUrl?: (link: string) => boolean;\n onClick?:\n | ((e: React.MouseEvent<any>, props: any) => void)\n | string\n | Function\n | null;\n componentClass: React.ReactType;\n tooltipContainer?: any;\n data?: any;\n isMenuItem?: boolean;\n active?: boolean;\n}\n\nconst allowedType = ['button', 'submit', 'reset'];\n\ninterface ActionState {\n inCountDown: boolean; // 是否在倒计时\n countDownEnd: number; // 倒计时结束的精确时间\n timeLeft: number; // 倒计时剩余时间\n}\n\nexport class Action extends React.Component<ActionProps, ActionState> {\n static defaultProps = {\n type: 'button' as 'button',\n componentClass: 'button' as React.ReactType,\n tooltipPlacement: 'bottom' as 'bottom',\n activeClassName: 'is-active',\n countDownTpl: 'Action.countDown',\n countDown: 0\n };\n\n state: ActionState = {\n inCountDown: false,\n countDownEnd: 0,\n timeLeft: 0\n };\n\n localStorageKey: string;\n\n dom: any;\n\n constructor(props: ActionProps) {\n super(props);\n this.localStorageKey = 'amis-countdownend-' + (this.props.name || '');\n const countDownEnd = parseInt(\n localStorage.getItem(this.localStorageKey) || '0'\n );\n if (countDownEnd && this.props.countDown) {\n if (Date.now() < countDownEnd) {\n this.state = {\n inCountDown: true,\n countDownEnd,\n timeLeft: Math.floor((countDownEnd - Date.now()) / 1000)\n };\n this.handleCountDown();\n }\n }\n }\n\n @autobind\n async handleAction(e: React.MouseEvent<any>) {\n const {onAction, disabled, countDown, env} = this.props;\n\n // https://reactjs.org/docs/legacy-event-pooling.html\n e.persist();\n let onClick = this.props.onClick;\n\n if (typeof onClick === 'string') {\n onClick = str2AsyncFunction(onClick, 'event', 'props');\n }\n const result: any = onClick && (await onClick(e, this.props));\n\n if (\n disabled ||\n e.isDefaultPrevented() ||\n result === false ||\n !onAction ||\n this.state.inCountDown\n ) {\n return;\n }\n\n e.preventDefault();\n const action = pick(this.props, ActionProps) as ActionSchema;\n const actionType = action.actionType;\n\n // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉\n // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉\n if (\n actionType !== 'ajax' &&\n actionType !== 'download' &&\n actionType !== 'add'\n ) {\n env?.tracker(\n {\n eventType: actionType || this.props.type || 'click',\n eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])\n },\n this.props\n );\n }\n\n // download 是一种 ajax 的简写\n if (actionType === 'download') {\n action.actionType = 'ajax';\n const api = normalizeApi((action as AjaxActionSchema).api);\n api.responseType = 'blob';\n (action as AjaxActionSchema).api = api;\n }\n\n onAction(e, action);\n\n if (countDown) {\n const countDownEnd = Date.now() + countDown * 1000;\n this.setState({\n countDownEnd: countDownEnd,\n inCountDown: true,\n timeLeft: countDown\n });\n\n localStorage.setItem(this.localStorageKey, String(countDownEnd));\n\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n handleCountDown() {\n // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff\n const timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000);\n if (timeLeft <= 0) {\n this.setState({\n inCountDown: false,\n timeLeft: timeLeft\n });\n } else {\n this.setState({\n timeLeft: timeLeft\n });\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n componentDidMount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys(hotKey, event => {\n event.preventDefault();\n const click = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n this.handleAction(createSyntheticEvent(click) as any);\n });\n }\n }\n\n @autobind\n componentWillUnmount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys.unbind(hotKey);\n }\n }\n\n render() {\n const {\n type,\n icon,\n iconClassName,\n rightIcon,\n rightIconClassName,\n loadingClassName,\n primary,\n size,\n level,\n countDownTpl,\n block,\n className,\n componentClass,\n tooltip,\n disabledTip,\n tooltipPlacement,\n actionType,\n link,\n data,\n translate: __,\n activeClassName,\n isCurrentUrl,\n isMenuItem,\n active,\n activeLevel,\n tooltipTrigger,\n tooltipContainer,\n tooltipRootClose,\n loading,\n body,\n render,\n classnames: cx,\n classPrefix: ns\n } = this.props;\n\n if (actionType !== 'email' && body) {\n return (\n <TooltipWrapper\n classPrefix={ns}\n classnames={cx}\n placement={tooltipPlacement}\n tooltip={tooltip}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n <div className={cx('Action', className)} onClick={this.handleAction}>\n {render('body', body) as JSX.Element}\n </div>\n </TooltipWrapper>\n );\n }\n\n let label = this.props.label;\n let disabled = this.props.disabled;\n let isActive = !!active;\n\n if (actionType === 'link' && !isActive && link && isCurrentUrl) {\n isActive = isCurrentUrl(link);\n }\n\n // 倒计时\n if (this.state.inCountDown) {\n label = filterContents(__(countDownTpl), {\n ...data,\n timeLeft: this.state.timeLeft\n }) as string;\n disabled = true;\n }\n\n const iconElement = generateIcon(cx, icon, 'Button-icon', iconClassName);\n const rightIconElement = generateIcon(\n cx,\n rightIcon,\n 'Button-icon',\n rightIconClassName\n );\n\n return (\n <Button\n className={cx(className, {\n [activeClassName || 'is-active']: isActive\n })}\n size={size}\n level={\n activeLevel && isActive\n ? activeLevel\n : level || (primary ? 'primary' : undefined)\n }\n loadingClassName={loadingClassName}\n loading={loading}\n onClick={this.handleAction}\n type={type && ~allowedType.indexOf(type) ? type : 'button'}\n disabled={disabled}\n componentClass={isMenuItem ? 'a' : componentClass}\n overrideClassName={isMenuItem}\n tooltip={filterContents(tooltip, data)}\n disabledTip={filterContents(disabledTip, data)}\n tooltipPlacement={tooltipPlacement}\n tooltipContainer={tooltipContainer}\n tooltipTrigger={tooltipTrigger}\n tooltipRootClose={tooltipRootClose}\n block={block}\n iconOnly={!!(icon && !label && level !== 'link')}\n >\n {!loading ? iconElement : ''}\n {label ? <span>{filter(String(label), data)}</span> : null}\n {rightIconElement}\n </Button>\n );\n }\n}\n\nexport default themeable(Action);\n\n@Renderer({\n type: 'action'\n})\n// @ts-ignore 类型没搞定\n@withBadge\nexport class ActionRenderer extends React.Component<\n RendererProps &\n Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {\n onAction: (\n e: React.MouseEvent<any> | void | null,\n action: object,\n data: any\n ) => void;\n btnDisabled?: boolean;\n }\n> {\n @autobind\n async handleAction(e: React.MouseEvent<any> | void | null, action: any) {\n const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;\n\n // 触发渲染器事件\n const rendererEvent = await dispatchEvent(\n e as React.MouseEvent<any>,\n createObject(data, action)\n );\n\n // 阻止原有动作执行\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!ignoreConfirm && action.confirmText && env.confirm) {\n env\n .confirm(filter(action.confirmText, data))\n .then((confirmed: boolean) => confirmed && onAction(e, action, data));\n } else {\n onAction(e, action, data);\n }\n }\n\n @autobind\n isCurrentAction(link: string) {\n const {env, data} = this.props;\n return env.isCurrentUrl(filter(link, data));\n }\n\n render() {\n const {env, disabled, btnDisabled, loading, ...rest} = this.props;\n\n return (\n <Action\n {...(rest as any)}\n env={env}\n disabled={disabled || btnDisabled}\n onAction={this.handleAction}\n loading={loading}\n isCurrentUrl={this.isCurrentAction}\n tooltipContainer={\n env.getModalContainer ? env.getModalContainer : undefined\n }\n />\n );\n }\n}\n\n@Renderer({\n type: 'button'\n})\nexport class ButtonRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'submit'\n})\nexport class SubmitRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'reset'\n})\nexport class ResetRenderer extends ActionRenderer {}\n"
11
+ "import React from 'react';\nimport hotkeys from 'hotkeys-js';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport Button from '../components/Button';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\n\nexport interface ButtonSchema extends BaseSchema {\n /**\n * 主要用于用户行为跟踪里区分是哪个按钮\n */\n id?: string;\n\n /**\n * 是否为块状展示,默认为内联。\n */\n block?: boolean;\n\n /**\n * 禁用时的文案提示。\n */\n disabledTip?: string;\n\n /**\n * 按钮图标, iconfont 的类名\n */\n icon?: SchemaIcon;\n\n /**\n * icon 上的css 类名\n */\n iconClassName?: SchemaClassName;\n\n /**\n * 右侧按钮图标, iconfont 的类名\n */\n rightIcon?: SchemaIcon;\n\n /**\n * 右侧 icon 上的 css 类名\n */\n rightIconClassName?: SchemaClassName;\n /**\n * loading 上的css 类名\n */\n loadingClassName?: SchemaClassName;\n\n /**\n * 按钮文字\n */\n label?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light'\n | 'secondary';\n\n /**\n * @deprecated 通过 level 来配置\n */\n primary?: boolean;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n\n tooltip?: SchemaTooltip;\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 指定按钮类型,支持 button、submit或者reset三种类型。\n */\n type: 'button' | 'submit' | 'reset';\n\n /**\n * 提示文字,配置了操作前会要求用户确认。\n */\n confirmText?: string;\n\n /**\n * 如果按钮在form中,配置此属性会要求用户把指定的字段通过验证后才会触发行为。\n */\n required?: Array<string>;\n\n /**\n * 激活状态时的样式\n */\n activeLevel?: string;\n\n /**\n * 激活状态时的类名\n */\n activeClassName?: string;\n\n /**\n * 如果按钮在弹框中,可以配置这个动作完成后是否关闭弹窗,或者指定关闭目标弹框。\n */\n close?: boolean | string;\n\n /**\n * 当按钮时批量操作按钮时,默认必须有勾选元素才能可点击,如果此属性配置成 false,则没有点选成员也能点击。\n */\n requireSelected?: boolean;\n\n /**\n * 是否将弹框中数据 merge 到父级作用域。\n */\n mergeData?: boolean;\n\n /**\n * 可以指定让谁来触发这个动作。\n */\n target?: string;\n\n /**\n * 点击后的禁止倒计时(秒)\n */\n countDown?: number;\n\n /**\n * 倒计时文字自定义\n */\n countDownTpl?: string;\n\n /**\n * 角标\n */\n badge?: BadgeSchema;\n\n /**\n * 键盘快捷键\n */\n hotKey?: string;\n /**\n * 是否显示loading效果\n */\n loadingOn?: string;\n\n /**\n * 自定义事件处理函数\n */\n onClick?: string | any;\n\n /**\n * 子内容\n */\n body?: SchemaCollection;\n}\n\nexport interface AjaxActionSchema extends ButtonSchema {\n /**\n * 指定为发送 ajax 的行为。\n */\n actionType: 'ajax';\n\n /**\n * 配置 ajax 发送地址\n */\n api: SchemaApi;\n\n feedback?: FeedbackDialog;\n\n reload?: SchemaReload;\n redirect?: string;\n ignoreConfirm?: boolean;\n}\n\nexport interface DownloadActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为下载行为\n */\n actionType: 'download';\n}\n\nexport interface UrlActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接\n */\n actionType: 'url';\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 打开的目标地址\n */\n url: string;\n}\n\nexport interface DialogActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗\n */\n actionType: 'dialog';\n\n /**\n * 弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/dialog\n */\n dialog: DialogSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface DrawerActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'drawer';\n\n /**\n * 抽出式弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/drawer\n */\n drawer: DrawerSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface ToastActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'toast';\n\n /**\n * 轻提示详情\n * 文档:https://baidu.gitee.io/amis/docs/components/toast\n */\n toast: ToastSchemaBase;\n}\n\nexport interface CopyActionSchema extends ButtonSchema {\n /**\n * 指定为复制内容行为\n */\n actionType: 'copy';\n\n /**\n * 复制啥内容由此配置,支持模板语法。\n */\n copy: SchemaTpl;\n}\n\nexport interface LinkActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接行为,跟 url 不同的时这个行为为单页模式。\n */\n actionType: 'link';\n\n /**\n * 跳转到哪?支持配置相对路径。\n */\n link: string;\n}\n\nexport interface ReloadActionSchema extends ButtonSchema {\n /**\n * 指定为刷新目标组件。\n */\n actionType: 'reload';\n\n /**\n * 指定目标组件。\n */\n target?: SchemaReload;\n}\n\nexport interface EmailActionSchema extends ButtonSchema {\n /**\n * 指定为打开邮箱行为\n */\n actionType: 'email';\n\n /**\n * 收件人邮箱\n */\n to: string;\n\n /**\n * 抄送邮箱\n */\n cc?: string;\n\n /**\n * 匿名抄送邮箱\n */\n bcc?: string;\n\n /**\n * 邮件主题\n */\n subject?: string;\n\n /**\n * 邮件正文\n */\n body?: string;\n}\n\nexport interface OtherActionSchema extends ButtonSchema {\n actionType:\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'add'\n | 'reset'\n | 'reset-and-submit';\n [propName: string]: any;\n}\n\nexport interface VanillaAction extends ButtonSchema {\n actionType?: string;\n}\n\n/**\n * 按钮动作渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/action\n */\nexport type ActionSchema =\n | AjaxActionSchema\n | UrlActionSchema\n | LinkActionSchema\n | DialogActionSchema\n | DrawerActionSchema\n | ToastActionSchema\n | CopyActionSchema\n | ReloadActionSchema\n | EmailActionSchema\n | OtherActionSchema\n | VanillaAction;\n\nconst ActionProps = [\n 'id',\n 'dialog',\n 'drawer',\n 'toast',\n 'url',\n 'link',\n 'confirmText',\n 'tooltip',\n 'disabledTip',\n 'className',\n 'asyncApi',\n 'redirect',\n 'size',\n 'level',\n 'primary',\n 'feedback',\n 'api',\n 'blank',\n 'tooltipPlacement',\n 'to',\n 'cc',\n 'bcc',\n 'subject',\n 'body',\n 'content',\n 'required',\n 'type',\n 'actionType',\n 'label',\n 'icon',\n 'rightIcon',\n 'reload',\n 'target',\n 'close',\n 'messages',\n 'mergeData',\n 'index',\n 'copy',\n 'copyFormat',\n 'payload',\n 'requireSelected'\n];\nimport {filterContents} from './Remark';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, createObject} from '../utils/helper';\nimport {\n BaseSchema,\n FeedbackDialog,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaExpression,\n SchemaIcon,\n SchemaReload,\n SchemaTooltip,\n SchemaTpl\n} from '../Schema';\nimport {DialogSchema, DialogSchemaBase} from './Dialog';\nimport {DrawerSchema, DrawerSchemaBase} from './Drawer';\nimport {ToastSchemaBase} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {BadgeSchema, withBadge} from '../components/Badge';\nimport {normalizeApi, str2AsyncFunction} from '../utils/api';\nimport {TooltipWrapper} from '../components/TooltipWrapper';\nimport handleAction from '../utils/handleAction';\n\n// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能\n// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n\nexport interface ActionProps\n extends Omit<\n ButtonSchema,\n 'className' | 'iconClassName' | 'rightIconClassName' | 'loadingClassName'\n >,\n ThemeProps,\n Omit<\n AjaxActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n UrlActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n LinkActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DialogActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DrawerActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ToastSchemaBase,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n CopyActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ReloadActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n EmailActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n | 'body'\n >,\n Omit<\n OtherActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n > {\n actionType: any;\n onAction?: (\n e: React.MouseEvent<any> | void | null,\n action: ActionSchema\n ) => void;\n isCurrentUrl?: (link: string) => boolean;\n onClick?:\n | ((e: React.MouseEvent<any>, props: any) => void)\n | string\n | Function\n | null;\n componentClass: React.ReactType;\n tooltipContainer?: any;\n data?: any;\n isMenuItem?: boolean;\n active?: boolean;\n}\n\nconst allowedType = ['button', 'submit', 'reset'];\n\ninterface ActionState {\n inCountDown: boolean; // 是否在倒计时\n countDownEnd: number; // 倒计时结束的精确时间\n timeLeft: number; // 倒计时剩余时间\n}\n\nexport class Action extends React.Component<ActionProps, ActionState> {\n static defaultProps = {\n type: 'button' as 'button',\n componentClass: 'button' as React.ReactType,\n tooltipPlacement: 'bottom' as 'bottom',\n activeClassName: 'is-active',\n countDownTpl: 'Action.countDown',\n countDown: 0\n };\n\n state: ActionState = {\n inCountDown: false,\n countDownEnd: 0,\n timeLeft: 0\n };\n\n localStorageKey: string;\n\n dom: any;\n\n constructor(props: ActionProps) {\n super(props);\n this.localStorageKey = 'amis-countdownend-' + (this.props.name || '');\n const countDownEnd = parseInt(\n localStorage.getItem(this.localStorageKey) || '0'\n );\n if (countDownEnd && this.props.countDown) {\n if (Date.now() < countDownEnd) {\n this.state = {\n inCountDown: true,\n countDownEnd,\n timeLeft: Math.floor((countDownEnd - Date.now()) / 1000)\n };\n this.handleCountDown();\n }\n }\n }\n\n @autobind\n async handleAction(e: React.MouseEvent<any>) {\n const {onAction, disabled, countDown, env} = this.props;\n\n // https://reactjs.org/docs/legacy-event-pooling.html\n e.persist();\n let onClick = this.props.onClick;\n\n if (typeof onClick === 'string') {\n onClick = str2AsyncFunction(onClick, 'event', 'props');\n }\n const result: any = onClick && (await onClick(e, this.props));\n\n if (\n disabled ||\n e.isDefaultPrevented() ||\n result === false ||\n !onAction ||\n this.state.inCountDown\n ) {\n return;\n }\n\n e.preventDefault();\n const action = pick(this.props, ActionProps) as ActionSchema;\n const actionType = action.actionType;\n\n // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉\n // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉\n if (\n actionType !== 'ajax' &&\n actionType !== 'download' &&\n actionType !== 'add'\n ) {\n env?.tracker(\n {\n eventType: actionType || this.props.type || 'click',\n eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])\n },\n this.props\n );\n }\n\n // download 是一种 ajax 的简写\n if (actionType === 'download') {\n action.actionType = 'ajax';\n const api = normalizeApi((action as AjaxActionSchema).api);\n api.responseType = 'blob';\n (action as AjaxActionSchema).api = api;\n }\n\n onAction(e, action);\n\n if (countDown) {\n const countDownEnd = Date.now() + countDown * 1000;\n this.setState({\n countDownEnd: countDownEnd,\n inCountDown: true,\n timeLeft: countDown\n });\n\n localStorage.setItem(this.localStorageKey, String(countDownEnd));\n\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n handleCountDown() {\n // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff\n const timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000);\n if (timeLeft <= 0) {\n this.setState({\n inCountDown: false,\n timeLeft: timeLeft\n });\n } else {\n this.setState({\n timeLeft: timeLeft\n });\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n componentDidMount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys(hotKey, event => {\n event.preventDefault();\n const click = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n this.handleAction(createSyntheticEvent(click) as any);\n });\n }\n }\n\n @autobind\n componentWillUnmount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys.unbind(hotKey);\n }\n }\n\n render() {\n const {\n type,\n icon,\n iconClassName,\n rightIcon,\n rightIconClassName,\n loadingClassName,\n primary,\n size,\n level,\n countDownTpl,\n block,\n className,\n componentClass,\n tooltip,\n disabledTip,\n tooltipPlacement,\n actionType,\n link,\n data,\n translate: __,\n activeClassName,\n isCurrentUrl,\n isMenuItem,\n active,\n activeLevel,\n tooltipTrigger,\n tooltipContainer,\n tooltipRootClose,\n loading,\n body,\n render,\n classnames: cx,\n classPrefix: ns\n } = this.props;\n\n if (actionType !== 'email' && body) {\n return (\n <TooltipWrapper\n classPrefix={ns}\n classnames={cx}\n placement={tooltipPlacement}\n tooltip={tooltip}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n <div className={cx('Action', className)} onClick={this.handleAction}>\n {render('body', body) as JSX.Element}\n </div>\n </TooltipWrapper>\n );\n }\n\n let label = this.props.label;\n let disabled = this.props.disabled;\n let isActive = !!active;\n\n if (actionType === 'link' && !isActive && link && isCurrentUrl) {\n isActive = isCurrentUrl(link);\n }\n\n // 倒计时\n if (this.state.inCountDown) {\n label = filterContents(__(countDownTpl), {\n ...data,\n timeLeft: this.state.timeLeft\n }) as string;\n disabled = true;\n }\n\n const iconElement = generateIcon(cx, icon, 'Button-icon', iconClassName);\n const rightIconElement = generateIcon(\n cx,\n rightIcon,\n 'Button-icon',\n rightIconClassName\n );\n\n return (\n <Button\n className={cx(className, {\n [activeClassName || 'is-active']: isActive\n })}\n size={size}\n level={\n activeLevel && isActive\n ? activeLevel\n : level || (primary ? 'primary' : undefined)\n }\n loadingClassName={loadingClassName}\n loading={loading}\n onClick={this.handleAction}\n type={type && ~allowedType.indexOf(type) ? type : 'button'}\n disabled={disabled}\n componentClass={isMenuItem ? 'a' : componentClass}\n overrideClassName={isMenuItem}\n tooltip={filterContents(tooltip, data)}\n disabledTip={filterContents(disabledTip, data)}\n tooltipPlacement={tooltipPlacement}\n tooltipContainer={tooltipContainer}\n tooltipTrigger={tooltipTrigger}\n tooltipRootClose={tooltipRootClose}\n block={block}\n iconOnly={!!(icon && !label && level !== 'link')}\n >\n {!loading ? iconElement : ''}\n {label ? <span>{filter(String(label), data)}</span> : null}\n {rightIconElement}\n </Button>\n );\n }\n}\n\nexport default themeable(Action);\n\n@Renderer({\n type: 'action'\n})\n// @ts-ignore 类型没搞定\n@withBadge\nexport class ActionRenderer extends React.Component<\n RendererProps &\n Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {\n onAction: (\n e: React.MouseEvent<any> | void | null,\n action: object,\n data: any\n ) => void;\n btnDisabled?: boolean;\n }\n> {\n @autobind\n async handleAction(e: React.MouseEvent<any> | void | null, action: any) {\n const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;\n\n // 触发渲染器事件\n const rendererEvent = await dispatchEvent(\n e as React.MouseEvent<any>,\n createObject(data, action)\n );\n\n // 阻止原有动作执行\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!ignoreConfirm && action.confirmText && env.confirm) {\n env\n .confirm(filter(action.confirmText, data))\n .then((confirmed: boolean) => confirmed && onAction(e, action, data));\n } else {\n onAction(e, action, data);\n }\n }\n\n @autobind\n isCurrentAction(link: string) {\n const {env, data} = this.props;\n return env.isCurrentUrl(filter(link, data));\n }\n\n render() {\n const {env, disabled, btnDisabled, loading, ...rest} = this.props;\n\n return (\n <Action\n {...(rest as any)}\n env={env}\n disabled={disabled || btnDisabled}\n onAction={this.handleAction}\n loading={loading}\n isCurrentUrl={this.isCurrentAction}\n tooltipContainer={\n env.getModalContainer ? env.getModalContainer : undefined\n }\n />\n );\n }\n}\n\n@Renderer({\n type: 'button'\n})\nexport class ButtonRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'submit'\n})\nexport class SubmitRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'reset'\n})\nexport class ResetRenderer extends ActionRenderer {}\n"
12
12
  ]
13
13
  }
@@ -4,6 +4,20 @@
4
4
  import React from 'react';
5
5
  import { RendererProps } from '../factory';
6
6
  import { BaseSchema, SchemaIcon, SchemaUrlPath } from '../Schema';
7
+ export declare type BreadcrumbBaseItemSchema = {
8
+ /**
9
+ * 文字
10
+ */
11
+ label?: string;
12
+ /**
13
+ * 图标类名
14
+ */
15
+ icon?: SchemaIcon;
16
+ /**
17
+ * 链接地址
18
+ */
19
+ href?: SchemaUrlPath;
20
+ } & Omit<BaseSchema, 'type'>;
7
21
  export declare type BreadcrumbItemSchema = {
8
22
  /**
9
23
  * 文字
@@ -17,7 +31,13 @@ export declare type BreadcrumbItemSchema = {
17
31
  * 链接地址
18
32
  */
19
33
  href?: SchemaUrlPath;
34
+ /**
35
+ * 下拉菜单
36
+ */
37
+ dropdown?: Array<BreadcrumbBaseItemSchema>;
20
38
  } & Omit<BaseSchema, 'type'>;
39
+ export declare type TooltipPositionType = 'top' | 'bottom' | 'left' | 'right';
40
+ export declare type ItemPlace = 'start' | 'middle' | 'end';
21
41
  /**
22
42
  * Breadcrumb 显示渲染器
23
43
  * 文档:https://baidu.gitee.io/amis/docs/components/breadcrumb
@@ -27,27 +47,42 @@ export interface BreadcrumbSchema extends BaseSchema {
27
47
  * 指定为面包屑显示控件
28
48
  */
29
49
  type: 'breadcrumb';
50
+ /**
51
+ * 面包项类名
52
+ */
53
+ itemClassName?: string;
30
54
  /**
31
55
  * 分隔符
32
56
  */
33
57
  separator?: string;
34
58
  /**
35
- * 分隔符类
59
+ * 分隔符类名
36
60
  */
37
61
  separatorClassName?: string;
62
+ /**
63
+ * 下拉菜单类名
64
+ */
65
+ dropdownClassName?: string;
66
+ /**
67
+ * 下拉菜单项类名
68
+ */
69
+ dropdownItemClassName?: string;
38
70
  /**
39
71
  * 列表
40
72
  */
41
73
  items: Array<BreadcrumbItemSchema>;
74
+ /**
75
+ * labelMaxLength
76
+ */
77
+ labelMaxLength?: number;
78
+ /**
79
+ * 浮窗提示位置
80
+ */
81
+ tooltipPosition?: TooltipPositionType;
42
82
  }
43
83
  export interface BreadcrumbProps extends RendererProps, Omit<BreadcrumbSchema, 'type' | 'className'> {
44
84
  }
45
85
  export declare class BreadcrumbField extends React.Component<BreadcrumbProps, object> {
46
- static defaultProps: {
47
- className: string;
48
- itemClassName: string;
49
- separator: string;
50
- };
51
86
  render(): JSX.Element;
52
87
  }
53
88
  export declare class BreadcrumbFieldRenderer extends BreadcrumbField {
@@ -7,36 +7,40 @@ var tslib_1 = require("tslib");
7
7
  */
8
8
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
9
9
  var factory_1 = require("../factory");
10
- var icon_1 = require("../utils/icon");
11
10
  var tpl_1 = require("../utils/tpl");
12
11
  var tpl_builtin_1 = require("../utils/tpl-builtin");
12
+ var Breadcrumb_1 = (0, tslib_1.__importDefault)(require("../components/Breadcrumb"));
13
13
  var BreadcrumbField = /** @class */ (function (_super) {
14
14
  (0, tslib_1.__extends)(BreadcrumbField, _super);
15
15
  function BreadcrumbField() {
16
16
  return _super !== null && _super.apply(this, arguments) || this;
17
17
  }
18
18
  BreadcrumbField.prototype.render = function () {
19
- var _a = this.props, className = _a.className, itemClassName = _a.itemClassName, separatorClassName = _a.separatorClassName, cx = _a.classnames, items = _a.items, source = _a.source, data = _a.data, separator = _a.separator, render = _a.render;
19
+ var _a = this.props, items = _a.items, source = _a.source, data = _a.data, env = _a.env, restProps = (0, tslib_1.__rest)(_a, ["items", "source", "data", "env"]);
20
20
  var crumbItems = items
21
21
  ? items
22
22
  : (0, tpl_builtin_1.resolveVariableAndFilter)(source, data, '| raw');
23
- var crumbs = crumbItems
24
- .map(function (item, index) { return (react_1.default.createElement("span", { className: cx('Breadcrumb-item', itemClassName), key: index },
25
- item.icon
26
- ? (0, icon_1.generateIcon)(cx, item.icon, 'Icon', 'Breadcrumb-icon')
27
- : null,
28
- item.href ? (react_1.default.createElement("a", { href: (0, tpl_1.filter)(item.href, data) }, (0, tpl_1.filter)(item.label, data))) : (render('label', (0, tpl_1.filter)(item.label, data))))); })
29
- .reduce(function (prev, curr, index) { return [
30
- prev,
31
- react_1.default.createElement("span", { className: cx('Breadcrumb-separator', separatorClassName), key: "separator-".concat(index) }, separator),
32
- curr
33
- ]; });
34
- return react_1.default.createElement("div", { className: cx('Breadcrumb', className) }, crumbs);
35
- };
36
- BreadcrumbField.defaultProps = {
37
- className: '',
38
- itemClassName: '',
39
- separator: '/'
23
+ crumbItems = crumbItems.map(function (item) {
24
+ if (item.label) {
25
+ item.label = (0, tpl_1.filter)(item.label, data);
26
+ }
27
+ if (item.href) {
28
+ item.href = (0, tpl_1.filter)(item.href, data);
29
+ }
30
+ if (item.dropdown) {
31
+ item.dropdown = item.dropdown.map(function (dropdownItem) {
32
+ if (dropdownItem.label) {
33
+ dropdownItem.label = (0, tpl_1.filter)(dropdownItem.label, data);
34
+ }
35
+ if (dropdownItem.href) {
36
+ dropdownItem.href = (0, tpl_1.filter)(dropdownItem.href, data);
37
+ }
38
+ return dropdownItem;
39
+ });
40
+ }
41
+ return item;
42
+ });
43
+ return (react_1.default.createElement(Breadcrumb_1.default, (0, tslib_1.__assign)({ items: crumbItems, tooltipContainer: env === null || env === void 0 ? void 0 : env.getModalContainer }, restProps)));
40
44
  };
41
45
  return BreadcrumbField;
42
46
  }(react_1.default.Component));
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Breadcrumb.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,sCAAmD;AAEnD,sCAA2C;AAC3C,oCAAoC;AACpC,oDAA+E;AAiD/E;IAAqC,gDAAwC;IAA7E;;IAqDA,CAAC;IA9CC,gCAAM,GAAN;QACQ,IAAA,KAUF,IAAI,CAAC,KAAK,EATZ,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,kBAAkB,wBAAA,EACN,EAAE,gBAAA,EACd,KAAK,WAAA,EACL,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,SAAS,eAAA,EACT,MAAM,YACM,CAAC;QAEf,IAAM,UAAU,GAAG,KAAK;YACtB,CAAC,CAAC,KAAK;YACP,CAAC,CAAE,IAAA,sCAAwB,EACvB,MAAM,EACN,IAAI,EACJ,OAAO,CACwB,CAAC;QACtC,IAAM,MAAM,GAAG,UAAU;aACtB,GAAG,CAAkB,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CACrC,wCAAM,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK;YAC9D,IAAI,CAAC,IAAI;gBACR,CAAC,CAAC,IAAA,mBAAY,EAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC;gBACxD,CAAC,CAAC,IAAI;YACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,qCAAG,IAAI,EAAE,IAAA,YAAM,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAG,IAAA,YAAM,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAK,CACjE,CAAC,CAAC,CAAC,CACF,MAAM,CAAC,OAAO,EAAE,IAAA,YAAM,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC1C,CACI,CACR,EAXsC,CAWtC,CAAC;aACD,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAK,OAAA;YAC7B,IAAI;YACJ,wCACE,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,EACzD,GAAG,EAAE,oBAAa,KAAK,CAAE,IAExB,SAAS,CACL;YACP,IAAI;SACL,EAT8B,CAS9B,CAAC,CAAC;QAEL,OAAO,uCAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,IAAG,MAAM,CAAO,CAAC;IACrE,CAAC;IAnDM,4BAAY,GAAG;QACpB,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,GAAG;KACf,CAAC;IAgDJ,sBAAC;CAAA,AArDD,CAAqC,eAAK,CAAC,SAAS,GAqDnD;AArDY,0CAAe;AA0D5B;IAA6C,wDAAe;IAA5D;;IAA8D,CAAC;IAAlD,uBAAuB;QAHnC,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;OACW,uBAAuB,CAA2B;IAAD,8BAAC;CAAA,AAA/D,CAA6C,eAAe,GAAG;AAAlD,0DAAuB",
9
+ "mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,sCAAmD;AAEnD,oCAAoC;AACpC,oDAA8D;AAC9D,qFAAkD;AAoGlD;IAAqC,gDAAwC;IAA7E;;IA8CA,CAAC;IA7CC,gCAAM,GAAN;QACE,IAAM,KAMF,IAAI,CAAC,KAAK,EALZ,KAAK,WAAA,EACL,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,GAAG,SAAA,EACA,SAAS,2BALR,kCAML,CAAa,CAAC;QAEf,IAAI,UAAU,GAAG,KAAK;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAE,IAAA,sCAAwB,EACvB,MAAM,EACN,IAAI,EACJ,OAAO,CACwB,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,IAAI;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,GAAG,IAAA,YAAM,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,IAAI,GAAG,IAAA,YAAM,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,YAAY;oBAC5C,IAAI,YAAY,CAAC,KAAK,EAAE;wBACtB,YAAY,CAAC,KAAK,GAAG,IAAA,YAAM,EAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACvD;oBACD,IAAI,YAAY,CAAC,IAAI,EAAE;wBACrB,YAAY,CAAC,IAAI,GAAG,IAAA,YAAM,EAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACrD;oBACD,OAAO,YAAY,CAAC;gBACtB,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,8BAAC,oBAAU,0BACT,KAAK,EAAE,UAAU,EACjB,gBAAgB,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,iBAAiB,IACpC,SAAS,EACD,CACf,CAAC;IACJ,CAAC;IACH,sBAAC;AAAD,CAAC,AA9CD,CAAqC,eAAK,CAAC,SAAS,GA8CnD;AA9CY,0CAAe;AAmD5B;IAA6C,wDAAe;IAA5D;;IAA8D,CAAC;IAAlD,uBAAuB;QAHnC,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;OACW,uBAAuB,CAA2B;IAAD,8BAAC;CAAA,AAA/D,CAA6C,eAAe,GAAG;AAAlD,0DAAuB",
10
10
  "sourcesContent": [
11
- "/**\n * @file 用来展示面包屑导航\n */\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaIcon, SchemaUrlPath} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {filter} from '../utils/tpl';\nimport {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';\n\nexport type BreadcrumbItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n} & Omit<BaseSchema, 'type'>;\n\n/**\n * Breadcrumb 显示渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/breadcrumb\n */\nexport interface BreadcrumbSchema extends BaseSchema {\n /**\n * 指定为面包屑显示控件\n */\n type: 'breadcrumb';\n\n /**\n * 分隔符\n */\n separator?: string;\n\n /**\n * 分隔符类\n */\n separatorClassName?: string;\n\n /**\n * 列表\n */\n items: Array<BreadcrumbItemSchema>;\n}\n\nexport interface BreadcrumbProps\n extends RendererProps,\n Omit<BreadcrumbSchema, 'type' | 'className'> {}\n\nexport class BreadcrumbField extends React.Component<BreadcrumbProps, object> {\n static defaultProps = {\n className: '',\n itemClassName: '',\n separator: '/'\n };\n\n render() {\n const {\n className,\n itemClassName,\n separatorClassName,\n classnames: cx,\n items,\n source,\n data,\n separator,\n render\n } = this.props;\n\n const crumbItems = items\n ? items\n : (resolveVariableAndFilter(\n source,\n data,\n '| raw'\n ) as Array<BreadcrumbItemSchema>);\n const crumbs = crumbItems\n .map<React.ReactNode>((item, index) => (\n <span className={cx('Breadcrumb-item', itemClassName)} key={index}>\n {item.icon\n ? generateIcon(cx, item.icon, 'Icon', 'Breadcrumb-icon')\n : null}\n {item.href ? (\n <a href={filter(item.href, data)}>{filter(item.label, data)}</a>\n ) : (\n render('label', filter(item.label, data))\n )}\n </span>\n ))\n .reduce((prev, curr, index) => [\n prev,\n <span\n className={cx('Breadcrumb-separator', separatorClassName)}\n key={`separator-${index}`}\n >\n {separator}\n </span>,\n curr\n ]);\n\n return <div className={cx('Breadcrumb', className)}>{crumbs}</div>;\n }\n}\n\n@Renderer({\n type: 'breadcrumb'\n})\nexport class BreadcrumbFieldRenderer extends BreadcrumbField {}\n"
11
+ "/**\n * @file 用来展示面包屑导航\n */\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaIcon, SchemaUrlPath} from '../Schema';\nimport {filter} from '../utils/tpl';\nimport {resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport Breadcrumb from '../components/Breadcrumb';\n\nexport type BreadcrumbBaseItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n} & Omit<BaseSchema, 'type'>;\n\nexport type BreadcrumbItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n\n /**\n * 下拉菜单\n */\n dropdown?: Array<BreadcrumbBaseItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\nexport type TooltipPositionType = 'top' | 'bottom' | 'left' | 'right';\n\nexport type ItemPlace = 'start' | 'middle' | 'end';\n\n/**\n * Breadcrumb 显示渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/breadcrumb\n */\n\n export interface BreadcrumbSchema extends BaseSchema {\n /**\n * 指定为面包屑显示控件\n */\n type: 'breadcrumb';\n\n /**\n * 面包项类名\n */\n itemClassName?: string;\n\n /**\n * 分隔符\n */\n separator?: string;\n\n /**\n * 分隔符类名\n */\n separatorClassName?: string;\n\n /**\n * 下拉菜单类名\n */\n dropdownClassName?: string;\n\n /**\n * 下拉菜单项类名\n */\n dropdownItemClassName?: string;\n\n /**\n * 列表\n */\n items: Array<BreadcrumbItemSchema>;\n\n /**\n * labelMaxLength\n */\n labelMaxLength?: number;\n\n /**\n * 浮窗提示位置\n */\n tooltipPosition?: TooltipPositionType;\n}\n\nexport interface BreadcrumbProps extends RendererProps,\n Omit<BreadcrumbSchema, 'type' | 'className'> {}\n\nexport class BreadcrumbField extends React.Component<BreadcrumbProps, object> {\n render() {\n const {\n items,\n source,\n data,\n env,\n ...restProps\n } = this.props;\n\n let crumbItems = items\n ? items\n : (resolveVariableAndFilter(\n source,\n data,\n '| raw'\n ) as Array<BreadcrumbItemSchema>);\n crumbItems = crumbItems.map(item => {\n if (item.label) {\n item.label = filter(item.label, data);\n }\n if (item.href) {\n item.href = filter(item.href, data);\n }\n if (item.dropdown) {\n item.dropdown = item.dropdown.map(dropdownItem => {\n if (dropdownItem.label) {\n dropdownItem.label = filter(dropdownItem.label, data);\n }\n if (dropdownItem.href) {\n dropdownItem.href = filter(dropdownItem.href, data);\n }\n return dropdownItem;\n });\n }\n return item;\n });\n\n return (\n <Breadcrumb\n items={crumbItems}\n tooltipContainer={env?.getModalContainer}\n {...restProps}\n ></Breadcrumb>\n );\n }\n}\n\n@Renderer({\n type: 'breadcrumb'\n})\nexport class BreadcrumbFieldRenderer extends BreadcrumbField {}\n"
12
12
  ]
13
13
  }
@@ -11,11 +11,11 @@ export interface ButtonGroupSchema extends BaseSchema {
11
11
  */
12
12
  type: 'button-group';
13
13
  /**
14
- * 给 Button 配置 className
14
+ * @deprecated 给 Button 配置 className。建议用btnLevel
15
15
  */
16
16
  btnClassName?: SchemaClassName;
17
17
  /**
18
- * 给选中态 Button 配置 className
18
+ * @deprecated 给选中态 Button 配置 className。建议用btnActiveLevel
19
19
  */
20
20
  btnActiveClassName: string;
21
21
  /**
@@ -8,6 +8,6 @@
8
8
  "names": [],
9
9
  "mappings": ";;;;AACA,4FAAmD;AACnD,sCAAoC;AA2EpC,kBAAe,2BAAW,CAAC;AAK3B;IAAyC,oDAAW;IAApD;;IAAsD,CAAC;IAA1C,mBAAmB;QAH/B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,cAAc;SACrB,CAAC;OACW,mBAAmB,CAAuB;IAAD,0BAAC;CAAA,AAAvD,CAAyC,2BAAW,GAAG;AAA1C,kDAAmB",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport ButtonGroup from './Form/ButtonGroupSelect';\nimport {Renderer} from '../factory';\nimport {BaseSchema, SchemaClassName, SchemaExpression} from '../Schema';\nimport {ActionSchema} from './Action';\n\n/**\n * Button Group 渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/button-group\n */\nexport interface ButtonGroupSchema extends BaseSchema {\n /**\n * 指定为提交按钮类型\n */\n type: 'button-group';\n\n /**\n * 给 Button 配置 className。\n */\n btnClassName?: SchemaClassName;\n\n /**\n * 给选中态 Button 配置 className。\n */\n btnActiveClassName: string;\n\n /**\n * 按钮集合\n */\n buttons?: Array<ActionSchema>;\n\n /**\n * 按钮样式级别\n */\n btnLevel: string;\n\n /**\n * 按钮选中的样式级别\n */\n btnActiveLevel: string;\n\n /**\n * 垂直展示?\n */\n vertical?: boolean;\n\n /**\n * 平铺展示?\n */\n tiled?: boolean;\n\n /**\n * 是否为禁用状态。\n */\n disabled?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前表单项的禁用状态。\n */\n disabledOn?: SchemaExpression;\n\n /**\n * 是否显示\n */\n visible?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前表单项是否显示\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport default ButtonGroup;\n\n@Renderer({\n type: 'button-group'\n})\nexport class ButtonGroupRenderer extends ButtonGroup {}\n"
11
+ "import React from 'react';\nimport ButtonGroup from './Form/ButtonGroupSelect';\nimport {Renderer} from '../factory';\nimport {BaseSchema, SchemaClassName, SchemaExpression} from '../Schema';\nimport {ActionSchema} from './Action';\n\n/**\n * Button Group 渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/button-group\n */\nexport interface ButtonGroupSchema extends BaseSchema {\n /**\n * 指定为提交按钮类型\n */\n type: 'button-group';\n\n /**\n * @deprecated 给 Button 配置 className。建议用btnLevel\n */\n btnClassName?: SchemaClassName;\n\n /**\n * @deprecated 给选中态 Button 配置 className。建议用btnActiveLevel\n */\n btnActiveClassName: string;\n\n /**\n * 按钮集合\n */\n buttons?: Array<ActionSchema>;\n\n /**\n * 按钮样式级别\n */\n btnLevel: string;\n\n /**\n * 按钮选中的样式级别\n */\n btnActiveLevel: string;\n\n /**\n * 垂直展示?\n */\n vertical?: boolean;\n\n /**\n * 平铺展示?\n */\n tiled?: boolean;\n\n /**\n * 是否为禁用状态。\n */\n disabled?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前表单项的禁用状态。\n */\n disabledOn?: SchemaExpression;\n\n /**\n * 是否显示\n */\n visible?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前表单项是否显示\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport default ButtonGroup;\n\n@Renderer({\n type: 'button-group'\n})\nexport class ButtonGroupRenderer extends ButtonGroup {}\n"
12
12
  ]
13
13
  }
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { OptionsControlProps, Option, FormOptionsControl } from './Options';
3
+ import { Action } from '../../types';
3
4
  /**
4
5
  * 级联选择框
5
6
  * 文档:https://baidu.gitee.io/amis/docs/components/form/chained-select
@@ -23,8 +24,10 @@ export default class ChainedSelectControl extends React.Component<ChainedSelectP
23
24
  constructor(props: ChainedSelectProps);
24
25
  componentDidMount(): void;
25
26
  componentDidUpdate(prevProps: ChainedSelectProps): void;
27
+ doAction(action: Action, data: object, throwErrors: boolean): void;
28
+ array2value(arr: Array<any>, isExtracted?: boolean): string | any[];
26
29
  loadMore(): void;
27
- handleChange(index: number, currentValue: any): void;
30
+ handleChange(index: number, currentValue: any): Promise<void>;
28
31
  reload(): void;
29
32
  render(): JSX.Element;
30
33
  }
@@ -37,9 +37,28 @@ var ChainedSelectControl = /** @class */ (function (_super) {
37
37
  this.loadMore();
38
38
  }
39
39
  };
40
+ ChainedSelectControl.prototype.doAction = function (action, data, throwErrors) {
41
+ var _a = this.props, resetValue = _a.resetValue, onChange = _a.onChange;
42
+ var actionType = action === null || action === void 0 ? void 0 : action.actionType;
43
+ if (!!~['clear', 'reset'].indexOf(actionType)) {
44
+ onChange(resetValue !== null && resetValue !== void 0 ? resetValue : '');
45
+ }
46
+ };
47
+ ChainedSelectControl.prototype.array2value = function (arr, isExtracted) {
48
+ if (isExtracted === void 0) { isExtracted = false; }
49
+ var _a = this.props, delimiter = _a.delimiter, joinValues = _a.joinValues, extractValue = _a.extractValue;
50
+ // 判断arr的项是否已抽取
51
+ return isExtracted
52
+ ? (joinValues ? arr.join(delimiter || ',') : arr)
53
+ : (joinValues
54
+ ? arr.join(delimiter || ',')
55
+ : extractValue
56
+ ? arr.map(function (item) { return item.value || item; })
57
+ : arr);
58
+ };
40
59
  ChainedSelectControl.prototype.loadMore = function () {
41
60
  var _this = this;
42
- var _a = this.props, value = _a.value, delimiter = _a.delimiter, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue, source = _a.source, data = _a.data, env = _a.env;
61
+ var _a = this.props, value = _a.value, delimiter = _a.delimiter, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue, source = _a.source, data = _a.data, env = _a.env, dispatchEvent = _a.dispatchEvent;
43
62
  var arr = Array.isArray(value)
44
63
  ? value.concat()
45
64
  : value && typeof value === 'string'
@@ -69,46 +88,76 @@ var ChainedSelectControl = /** @class */ (function (_super) {
69
88
  }, function () {
70
89
  env
71
90
  .fetcher(source, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, data), { value: arr, level: idx + 1, parentId: parentId, parent: arr[idx] }))
72
- .then(function (ret) {
73
- // todo 没有检测 response.ok
74
- var stack = _this.state.stack.concat();
75
- var remoteValue = ret.data ? ret.data.value : undefined;
76
- var options = (ret.data && ret.data.options) || ret.data;
77
- stack.splice(idx, stack.length - idx);
78
- if (typeof remoteValue !== 'undefined') {
79
- arr.splice(idx + 1, value.length - idx - 1);
80
- arr.push(remoteValue);
81
- onChange(joinValues ? arr.join(delimiter || ',') : arr);
82
- }
83
- stack.push({
84
- options: options,
85
- parentId: parentId,
86
- loading: false,
87
- visible: !!options
91
+ .then(function (ret) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
92
+ var stack, remoteValue, options, valueRes, rendererEvent;
93
+ return (0, tslib_1.__generator)(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ stack = this.state.stack.concat();
97
+ remoteValue = ret.data ? ret.data.value : undefined;
98
+ options = (ret.data && ret.data.options) || ret.data;
99
+ stack.splice(idx, stack.length - idx);
100
+ if (!(typeof remoteValue !== 'undefined')) return [3 /*break*/, 2];
101
+ arr.splice(idx + 1, value.length - idx - 1);
102
+ arr.push(remoteValue);
103
+ valueRes = this.array2value(arr, true);
104
+ return [4 /*yield*/, dispatchEvent('change', (0, helper_1.createObject)(data, {
105
+ value: valueRes
106
+ }))];
107
+ case 1:
108
+ rendererEvent = _a.sent();
109
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
110
+ return [2 /*return*/];
111
+ }
112
+ onChange(valueRes);
113
+ _a.label = 2;
114
+ case 2:
115
+ stack.push({
116
+ options: options,
117
+ parentId: parentId,
118
+ loading: false,
119
+ visible: !!options
120
+ });
121
+ this.setState({
122
+ stack: stack
123
+ }, this.loadMore);
124
+ return [2 /*return*/];
125
+ }
88
126
  });
89
- _this.setState({
90
- stack: stack
91
- }, _this.loadMore);
92
- })
127
+ }); })
93
128
  .catch(function (e) {
94
129
  env.notify('error', e.message);
95
130
  });
96
131
  });
97
132
  };
98
133
  ChainedSelectControl.prototype.handleChange = function (index, currentValue) {
99
- var _a = this.props, value = _a.value, delimiter = _a.delimiter, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue;
100
- var arr = Array.isArray(value)
101
- ? value.concat()
102
- : value && typeof value === 'string'
103
- ? value.split(delimiter || ',')
104
- : [];
105
- arr.splice(index, arr.length - index);
106
- arr.push(joinValues ? currentValue.value : currentValue);
107
- onChange(joinValues
108
- ? arr.join(delimiter || ',')
109
- : extractValue
110
- ? arr.map(function (item) { return item.value || item; })
111
- : arr);
134
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
135
+ var _a, value, delimiter, onChange, joinValues, extractValue, dispatchEvent, data, arr, valueRes, rendererEvent;
136
+ return (0, tslib_1.__generator)(this, function (_b) {
137
+ switch (_b.label) {
138
+ case 0:
139
+ _a = this.props, value = _a.value, delimiter = _a.delimiter, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue, dispatchEvent = _a.dispatchEvent, data = _a.data;
140
+ arr = Array.isArray(value)
141
+ ? value.concat()
142
+ : value && typeof value === 'string'
143
+ ? value.split(delimiter || ',')
144
+ : [];
145
+ arr.splice(index, arr.length - index);
146
+ arr.push(joinValues ? currentValue.value : currentValue);
147
+ valueRes = this.array2value(arr);
148
+ return [4 /*yield*/, dispatchEvent('change', (0, helper_1.createObject)(data, {
149
+ value: valueRes
150
+ }))];
151
+ case 1:
152
+ rendererEvent = _b.sent();
153
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
154
+ return [2 /*return*/];
155
+ }
156
+ onChange(valueRes);
157
+ return [2 /*return*/];
158
+ }
159
+ });
160
+ });
112
161
  };
113
162
  ChainedSelectControl.prototype.reload = function () {
114
163
  var reload = this.props.reloadOptions;