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
@@ -76,12 +76,12 @@ export declare class Avatar extends React.Component<AvatarCmptProps, AvatarState
76
76
  render(): JSX.Element;
77
77
  }
78
78
  declare const _default: {
79
- new (props: (Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps) | Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>): {
79
+ new (props: (Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps) | Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>): {
80
80
  render(): JSX.Element;
81
81
  context: any;
82
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
82
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
83
83
  forceUpdate(callback?: (() => void) | undefined): void;
84
- readonly props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps> & Readonly<{
84
+ readonly props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps> & Readonly<{
85
85
  children?: React.ReactNode;
86
86
  }>;
87
87
  state: Readonly<{}>;
@@ -89,24 +89,24 @@ declare const _default: {
89
89
  [key: string]: React.ReactInstance;
90
90
  };
91
91
  componentDidMount?(): void;
92
- shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
92
+ shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
93
93
  componentWillUnmount?(): void;
94
94
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
95
- getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
96
- componentDidUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
95
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
96
+ componentDidUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
97
97
  componentWillMount?(): void;
98
98
  UNSAFE_componentWillMount?(): void;
99
- componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
100
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
101
- componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
102
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
99
+ componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
100
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
101
+ componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
102
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
103
103
  };
104
- new (props: Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps, context: any): {
104
+ new (props: Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps, context: any): {
105
105
  render(): JSX.Element;
106
106
  context: any;
107
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
107
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
108
108
  forceUpdate(callback?: (() => void) | undefined): void;
109
- readonly props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps> & Readonly<{
109
+ readonly props: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps> & Readonly<{
110
110
  children?: React.ReactNode;
111
111
  }>;
112
112
  state: Readonly<{}>;
@@ -114,17 +114,17 @@ declare const _default: {
114
114
  [key: string]: React.ReactInstance;
115
115
  };
116
116
  componentDidMount?(): void;
117
- shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
117
+ shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
118
118
  componentWillUnmount?(): void;
119
119
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
120
- getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
121
- componentDidUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
120
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
121
+ componentDidUpdate?(prevProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
122
122
  componentWillMount?(): void;
123
123
  UNSAFE_componentWillMount?(): void;
124
- componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
125
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
126
- componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
127
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "icon" | "alt" | "src" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
124
+ componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
125
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
126
+ componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
127
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, never> & Partial<Pick<Omit<AvatarCmptProps, keyof ThemeProps>, "style" | "text" | "children" | "src" | "icon" | "alt" | "size" | "crossOrigin" | "shape" | "draggable" | "onError" | "fit" | "gap">> & Partial<Pick<Partial<AvatarCmptProps>, "classPrefix" | "classnames" | "className" | "theme">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
128
128
  };
129
129
  displayName: string;
130
130
  contextType: React.Context<string>;
@@ -0,0 +1,130 @@
1
+ /**
2
+ * @file Breadcrumb 面包屑
3
+ */
4
+ /// <reference types="hoist-non-react-statics" />
5
+ import React from 'react';
6
+ import { Trigger } from './TooltipWrapper';
7
+ import { ClassNamesFn, ThemeProps } from '../theme';
8
+ import { ItemPlace, BreadcrumbBaseItemSchema, BreadcrumbItemSchema, TooltipPositionType, BreadcrumbSchema } from '../renderers/Breadcrumb';
9
+ interface BreadcrumbItemState {
10
+ isOpened: boolean;
11
+ tooltipTrigger: Trigger | Array<Trigger>;
12
+ tooltipRootClose: boolean;
13
+ }
14
+ interface BreadcrumbBaseItemProps extends BreadcrumbBaseItemSchema {
15
+ }
16
+ interface BreadcrumbItemProps {
17
+ item: BreadcrumbItemSchema;
18
+ itemPlace: ItemPlace;
19
+ labelMaxLength?: number;
20
+ tooltipContainer?: any;
21
+ tooltipPosition?: TooltipPositionType;
22
+ classnames: ClassNamesFn;
23
+ [propName: string]: any;
24
+ }
25
+ interface BreadcrumbProps extends ThemeProps, Omit<BreadcrumbSchema, 'type' | 'className'> {
26
+ tooltipContainer?: any;
27
+ tooltipPosition?: TooltipPositionType;
28
+ [propName: string]: any;
29
+ }
30
+ /**
31
+ * Breadcrumb 面包屑类
32
+ */
33
+ export declare class Breadcrumb extends React.Component<BreadcrumbProps> {
34
+ Item: typeof BreadcrumbItem;
35
+ static defaultProps: Pick<BreadcrumbProps, 'separator' | 'labelMaxLength' | 'tooltipPosition'>;
36
+ render(): JSX.Element;
37
+ }
38
+ /**
39
+ * BreadcrumbItem 面包项类
40
+ */
41
+ export declare class BreadcrumbItem extends React.Component<BreadcrumbItemProps, BreadcrumbItemState> {
42
+ target: any;
43
+ state: BreadcrumbItemState;
44
+ domRef: (ref: any) => void;
45
+ toogle: (e: React.MouseEvent<any>) => void;
46
+ close: () => void;
47
+ /**
48
+ * 渲染基础面包项
49
+ * @param showHref 是否显示超链接
50
+ * @param itemType 基础面包项类型
51
+ * @param item 面包项
52
+ * @param label 渲染文本
53
+ * @returns
54
+ */
55
+ renderBreadcrumbBaseItem(showHref: boolean, itemType: 'default' | 'dropdown', item: BreadcrumbBaseItemProps, label?: string): JSX.Element;
56
+ /**
57
+ * 渲染基础面包项完整节点
58
+ * @param item 面包项
59
+ * @param tooltipPosition 浮窗提示位置
60
+ * @param itemPlace 面包香所在相对位置
61
+ * @param itemType 基础面包项类型
62
+ * @returns
63
+ */
64
+ renderBreadcrumbNode(item: BreadcrumbBaseItemProps, tooltipPosition: TooltipPositionType | undefined, itemPlace: ItemPlace, itemType: 'default' | 'dropdown'): JSX.Element;
65
+ /**
66
+ * 渲染下拉菜单节点
67
+ * @param dropdown 面包项下拉菜单
68
+ * @returns
69
+ */
70
+ renderDropdownNode(dropdown: BreadcrumbBaseItemProps[]): JSX.Element;
71
+ render(): JSX.Element;
72
+ }
73
+ declare const _default: {
74
+ new (props: (Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps) | Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>): {
75
+ render(): JSX.Element;
76
+ context: any;
77
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
78
+ forceUpdate(callback?: (() => void) | undefined): void;
79
+ readonly props: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps> & Readonly<{
80
+ children?: React.ReactNode;
81
+ }>;
82
+ state: Readonly<{}>;
83
+ refs: {
84
+ [key: string]: React.ReactInstance;
85
+ };
86
+ componentDidMount?(): void;
87
+ shouldComponentUpdate?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
88
+ componentWillUnmount?(): void;
89
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
90
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
91
+ componentDidUpdate?(prevProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
92
+ componentWillMount?(): void;
93
+ UNSAFE_componentWillMount?(): void;
94
+ componentWillReceiveProps?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
95
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
96
+ componentWillUpdate?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
97
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
98
+ };
99
+ new (props: Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps, context: any): {
100
+ render(): JSX.Element;
101
+ context: any;
102
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
103
+ forceUpdate(callback?: (() => void) | undefined): void;
104
+ readonly props: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps> & Readonly<{
105
+ children?: React.ReactNode;
106
+ }>;
107
+ state: Readonly<{}>;
108
+ refs: {
109
+ [key: string]: React.ReactInstance;
110
+ };
111
+ componentDidMount?(): void;
112
+ shouldComponentUpdate?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
113
+ componentWillUnmount?(): void;
114
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
115
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
116
+ componentDidUpdate?(prevProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
117
+ componentWillMount?(): void;
118
+ UNSAFE_componentWillMount?(): void;
119
+ componentWillReceiveProps?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
120
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
121
+ componentWillUpdate?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
122
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<BreadcrumbProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
123
+ };
124
+ displayName: string;
125
+ contextType: React.Context<string>;
126
+ ComposedComponent: React.ComponentType<typeof Breadcrumb>;
127
+ } & import("hoist-non-react-statics").NonReactStatics<typeof Breadcrumb, {}> & {
128
+ ComposedComponent: typeof Breadcrumb;
129
+ };
130
+ export default _default;
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ /**
3
+ * @file Breadcrumb 面包屑
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BreadcrumbItem = exports.Breadcrumb = void 0;
7
+ var tslib_1 = require("tslib");
8
+ var react_1 = (0, tslib_1.__importDefault)(require("react"));
9
+ var TooltipWrapper_1 = (0, tslib_1.__importDefault)(require("./TooltipWrapper"));
10
+ var theme_1 = require("../theme");
11
+ var RootClose_1 = require("../utils/RootClose");
12
+ var helper_1 = require("../utils/helper");
13
+ var icons_1 = require("../components/icons");
14
+ var icon_1 = require("../utils/icon");
15
+ /**
16
+ * Breadcrumb 面包屑类
17
+ */
18
+ var Breadcrumb = /** @class */ (function (_super) {
19
+ (0, tslib_1.__extends)(Breadcrumb, _super);
20
+ function Breadcrumb() {
21
+ return _super !== null && _super.apply(this, arguments) || this;
22
+ }
23
+ Breadcrumb.prototype.render = function () {
24
+ var cx = this.props.classnames;
25
+ var _a = this.props, className = _a.className, separatorClassName = _a.separatorClassName, items = _a.items, separator = _a.separator, restProps = (0, tslib_1.__rest)(_a, ["className", "separatorClassName", "items", "separator"]);
26
+ var crumbsLength = items === null || items === void 0 ? void 0 : items.length;
27
+ if (!crumbsLength) {
28
+ return react_1.default.createElement("div", { className: cx('Breadcrumb', className) });
29
+ }
30
+ var crumbs = items.map(function (item, index) {
31
+ var itemPlace = 'middle';
32
+ if (index === 0) {
33
+ itemPlace = 'start';
34
+ }
35
+ if (index === crumbsLength - 1) {
36
+ itemPlace = 'end';
37
+ }
38
+ return (react_1.default.createElement(BreadcrumbItem, (0, tslib_1.__assign)({}, restProps, { item: item, itemPlace: itemPlace, key: index })));
39
+ })
40
+ .reduce(function (prev, curr, index) { return [
41
+ prev,
42
+ react_1.default.createElement("span", { className: cx('Breadcrumb-separator', separatorClassName), key: "separator-".concat(index) }, separator),
43
+ curr
44
+ ]; });
45
+ return (react_1.default.createElement("div", { className: cx('Breadcrumb', className) }, crumbs));
46
+ };
47
+ Breadcrumb.defaultProps = {
48
+ separator: '>',
49
+ labelMaxLength: 16,
50
+ tooltipPosition: 'top'
51
+ };
52
+ return Breadcrumb;
53
+ }(react_1.default.Component));
54
+ exports.Breadcrumb = Breadcrumb;
55
+ /**
56
+ * BreadcrumbItem 面包项类
57
+ */
58
+ var BreadcrumbItem = /** @class */ (function (_super) {
59
+ (0, tslib_1.__extends)(BreadcrumbItem, _super);
60
+ function BreadcrumbItem() {
61
+ var _this = _super !== null && _super.apply(this, arguments) || this;
62
+ _this.state = {
63
+ tooltipTrigger: ['hover', 'focus'],
64
+ tooltipRootClose: false,
65
+ isOpened: false
66
+ };
67
+ _this.domRef = function (ref) {
68
+ _this.target = ref;
69
+ };
70
+ _this.toogle = function (e) {
71
+ e.preventDefault();
72
+ _this.setState({
73
+ isOpened: !_this.state.isOpened
74
+ });
75
+ };
76
+ _this.close = function () {
77
+ _this.setState({
78
+ isOpened: false
79
+ });
80
+ };
81
+ return _this;
82
+ }
83
+ /**
84
+ * 渲染基础面包项
85
+ * @param showHref 是否显示超链接
86
+ * @param itemType 基础面包项类型
87
+ * @param item 面包项
88
+ * @param label 渲染文本
89
+ * @returns
90
+ */
91
+ BreadcrumbItem.prototype.renderBreadcrumbBaseItem = function (showHref, itemType, item, label) {
92
+ var _a = this.props, itemClassName = _a.itemClassName, dropdownItemClassName = _a.dropdownItemClassName, cx = _a.classnames;
93
+ var baseItemClassName = itemType === 'default' ? itemClassName : dropdownItemClassName;
94
+ if (showHref) {
95
+ return (react_1.default.createElement("a", { href: item.href, className: cx('Breadcrumb-item-' + itemType, baseItemClassName) },
96
+ item.icon
97
+ ? (0, icon_1.generateIcon)(cx, item.icon, 'Icon', 'Breadcrumb-icon')
98
+ : null,
99
+ react_1.default.createElement("span", { className: cx('TplField') }, label)));
100
+ }
101
+ return (react_1.default.createElement("span", { className: cx('Breadcrumb-item-' + itemType, baseItemClassName) },
102
+ item.icon
103
+ ? (0, icon_1.generateIcon)(cx, item.icon, 'Icon', 'Breadcrumb-icon')
104
+ : null,
105
+ react_1.default.createElement("span", { className: cx('TplField') }, label)));
106
+ };
107
+ /**
108
+ * 渲染基础面包项完整节点
109
+ * @param item 面包项
110
+ * @param tooltipPosition 浮窗提示位置
111
+ * @param itemPlace 面包香所在相对位置
112
+ * @param itemType 基础面包项类型
113
+ * @returns
114
+ */
115
+ BreadcrumbItem.prototype.renderBreadcrumbNode = function (item, tooltipPosition, itemPlace, itemType) {
116
+ if (tooltipPosition === void 0) { tooltipPosition = 'top'; }
117
+ var _a = this.props, labelMaxLength = _a.labelMaxLength, tooltipContainer = _a.tooltipContainer;
118
+ var _b = this.state, tooltipTrigger = _b.tooltipTrigger, tooltipRootClose = _b.tooltipRootClose;
119
+ var pureLabel = item.label ? (0, helper_1.removeHTMLTag)(item.label) : '';
120
+ // 限制最大展示长度的最小值
121
+ var maxLength = labelMaxLength && +labelMaxLength > 1 ? +labelMaxLength : 1;
122
+ // 面包项相对位置为 middle ,且超过最大展示长度的面包项,进行缩略展示,并使用浮窗提示
123
+ if (pureLabel.length > maxLength && itemPlace === 'middle') {
124
+ return (react_1.default.createElement(TooltipWrapper_1.default, { tooltip: pureLabel, placement: tooltipPosition, container: tooltipContainer, trigger: tooltipTrigger, rootClose: tooltipRootClose }, this.renderBreadcrumbBaseItem(true, itemType, item, pureLabel.substring(0, maxLength) + '...')));
125
+ }
126
+ var showHref = !item.href || itemPlace === 'end';
127
+ return this.renderBreadcrumbBaseItem(!showHref, itemType, item, pureLabel);
128
+ };
129
+ /**
130
+ * 渲染下拉菜单节点
131
+ * @param dropdown 面包项下拉菜单
132
+ * @returns
133
+ */
134
+ BreadcrumbItem.prototype.renderDropdownNode = function (dropdown) {
135
+ var _this = this;
136
+ var _a = this.props, dropdownClassName = _a.dropdownClassName, cx = _a.classnames;
137
+ return (react_1.default.createElement(RootClose_1.RootClose, { disabled: !this.state.isOpened, onRootClose: this.close }, function (ref) {
138
+ return (react_1.default.createElement("ul", { className: cx('Breadcrumb-dropdown', dropdownClassName), onClick: _this.close, ref: ref }, Array.isArray(dropdown)
139
+ && dropdown.map(function (menuItem, index) {
140
+ return (react_1.default.createElement("li", { key: 'dropdown-item' + index }, _this.renderBreadcrumbNode(menuItem, 'right', 'middle', 'dropdown')));
141
+ })));
142
+ }));
143
+ };
144
+ BreadcrumbItem.prototype.render = function () {
145
+ var _a = this.props, item = _a.item, itemPlace = _a.itemPlace, tooltipPosition = _a.tooltipPosition, cx = _a.classnames;
146
+ var dropdown = item.dropdown, restItemProps = (0, tslib_1.__rest)(item, ["dropdown"]);
147
+ return (react_1.default.createElement("span", { className: cx('Breadcrumb-item', {
148
+ 'is-opened': this.state.isOpened
149
+ }, {
150
+ 'Breadcrumb-item-last': itemPlace === 'end'
151
+ }), ref: this.domRef },
152
+ this.renderBreadcrumbNode((0, tslib_1.__assign)({}, restItemProps), tooltipPosition, itemPlace, 'default'),
153
+ dropdown ? (react_1.default.createElement("span", { onClick: this.toogle, className: cx('Breadcrumb-item-caret') },
154
+ react_1.default.createElement(icons_1.Icon, { icon: "caret", className: "icon" }))) : null,
155
+ dropdown && this.state.isOpened ? this.renderDropdownNode(dropdown) : null));
156
+ };
157
+ return BreadcrumbItem;
158
+ }(react_1.default.Component));
159
+ exports.BreadcrumbItem = BreadcrumbItem;
160
+ exports.default = (0, theme_1.themeable)(Breadcrumb);
161
+ //# sourceMappingURL=./components/Breadcrumb.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Breadcrumb.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/components/Breadcrumb.tsx"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "/**\n * @file Breadcrumb 面包屑\n */\n\nimport React from 'react';\nimport TooltipWrapper, {Trigger} from './TooltipWrapper';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {RootClose} from '../utils/RootClose';\nimport {removeHTMLTag} from '../utils/helper';\nimport {Icon} from '../components/icons';\nimport {generateIcon} from '../utils/icon';\nimport {\n ItemPlace,\n BreadcrumbBaseItemSchema,\n BreadcrumbItemSchema,\n TooltipPositionType,\n BreadcrumbSchema\n} from '../renderers/Breadcrumb';\n\ninterface BreadcrumbItemState {\n isOpened: boolean;\n tooltipTrigger: Trigger | Array<Trigger>;\n tooltipRootClose: boolean;\n}\n\ninterface BreadcrumbBaseItemProps\n extends BreadcrumbBaseItemSchema {}\n\ninterface BreadcrumbItemProps {\n item: BreadcrumbItemSchema;\n itemPlace: ItemPlace;\n labelMaxLength?: number; \n tooltipContainer?: any;\n tooltipPosition?: TooltipPositionType;\n classnames: ClassNamesFn;\n [propName: string]: any;\n}\n\ninterface BreadcrumbProps extends ThemeProps,\n Omit<BreadcrumbSchema, 'type' | 'className'> {\n tooltipContainer?: any;\n tooltipPosition?: TooltipPositionType;\n [propName: string]: any;\n}\n\n/**\n * Breadcrumb 面包屑类\n */\nexport class Breadcrumb extends React.Component<BreadcrumbProps> {\n Item: typeof BreadcrumbItem;\n\n static defaultProps: Pick<\n BreadcrumbProps, \n | 'separator'\n | 'labelMaxLength'\n | 'tooltipPosition'\n > = {\n separator: '>',\n labelMaxLength: 16,\n tooltipPosition: 'top'\n };\n\n render() {\n const cx = this.props.classnames;\n const {\n className,\n separatorClassName,\n items,\n separator,\n ...restProps\n } = this.props;\n\n const crumbsLength = items?.length;\n if (!crumbsLength) {\n return <div className={cx('Breadcrumb', className)}></div>;\n }\n\n const crumbs = items.map<React.ReactNode>((item, index) => {\n let itemPlace: ItemPlace = 'middle';\n if (index === 0) {\n itemPlace = 'start';\n }\n if (index === crumbsLength - 1) {\n itemPlace = 'end';\n }\n return (\n <BreadcrumbItem\n {...restProps}\n item={item}\n itemPlace={itemPlace}\n key={index}\n ></BreadcrumbItem>\n )\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 (\n <div className={cx('Breadcrumb', className)}>{crumbs}</div>\n );\n }\n}\n\n/**\n * BreadcrumbItem 面包项类\n */\nexport class BreadcrumbItem extends React.Component<BreadcrumbItemProps, BreadcrumbItemState> {\n target: any;\n\n state: BreadcrumbItemState = {\n tooltipTrigger: ['hover', 'focus'],\n tooltipRootClose: false,\n isOpened: false\n };\n\n domRef = (ref: any) => {\n this.target = ref;\n }\n\n toogle = (e: React.MouseEvent<any>) => {\n e.preventDefault();\n\n this.setState({\n isOpened: !this.state.isOpened\n });\n }\n\n close = () => {\n this.setState({\n isOpened: false\n });\n }\n\n /**\n * 渲染基础面包项\n * @param showHref 是否显示超链接\n * @param itemType 基础面包项类型\n * @param item 面包项\n * @param label 渲染文本\n * @returns \n */\n renderBreadcrumbBaseItem(\n showHref: boolean,\n itemType: 'default' | 'dropdown',\n item: BreadcrumbBaseItemProps,\n label?: string,\n ) {\n const {\n itemClassName,\n dropdownItemClassName,\n classnames: cx\n } = this.props;\n const baseItemClassName = itemType === 'default' ? itemClassName : dropdownItemClassName;\n if (showHref) {\n return (\n <a href={item.href} className={cx('Breadcrumb-item-' + itemType, baseItemClassName)}>\n {item.icon\n ? generateIcon(cx, item.icon, 'Icon', 'Breadcrumb-icon')\n : null}\n <span className={cx('TplField')}>{label}</span>\n </a>\n );\n }\n return (\n <span className={cx('Breadcrumb-item-' + itemType, baseItemClassName)}>\n {item.icon\n ? generateIcon(cx, item.icon, 'Icon', 'Breadcrumb-icon')\n : null}\n <span className={cx('TplField')}>{label}</span>\n </span>\n );\n }\n\n /**\n * 渲染基础面包项完整节点\n * @param item 面包项\n * @param tooltipPosition 浮窗提示位置\n * @param itemPlace 面包香所在相对位置\n * @param itemType 基础面包项类型\n * @returns \n */\n renderBreadcrumbNode(\n item: BreadcrumbBaseItemProps,\n tooltipPosition: TooltipPositionType = 'top',\n itemPlace: ItemPlace,\n itemType: 'default' | 'dropdown'\n ) {\n const {\n labelMaxLength,\n tooltipContainer\n } = this.props;\n const {\n tooltipTrigger,\n tooltipRootClose\n } = this.state;\n const pureLabel = item.label ? removeHTMLTag(item.label) : '';\n // 限制最大展示长度的最小值\n const maxLength = labelMaxLength && +labelMaxLength > 1 ? +labelMaxLength : 1;\n // 面包项相对位置为 middle ,且超过最大展示长度的面包项,进行缩略展示,并使用浮窗提示\n if (pureLabel.length > maxLength && itemPlace === 'middle') {\n return (\n <TooltipWrapper\n tooltip={pureLabel}\n placement={tooltipPosition}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n {this.renderBreadcrumbBaseItem(true, itemType, item, pureLabel.substring(0, maxLength) + '...')}\n </TooltipWrapper>\n );\n }\n const showHref = !item.href || itemPlace === 'end';\n return this.renderBreadcrumbBaseItem(!showHref, itemType, item, pureLabel);\n }\n\n /**\n * 渲染下拉菜单节点\n * @param dropdown 面包项下拉菜单\n * @returns \n */\n renderDropdownNode(dropdown: BreadcrumbBaseItemProps[]) {\n const {\n dropdownClassName,\n classnames: cx\n } = this.props;\n return (\n <RootClose\n disabled={!this.state.isOpened}\n onRootClose={this.close}\n >\n {(ref: any) => {\n return (\n <ul\n className={cx('Breadcrumb-dropdown', dropdownClassName)}\n onClick={this.close}\n ref={ref}\n >\n {Array.isArray(dropdown) \n && dropdown.map((menuItem: BreadcrumbBaseItemProps, index: number) => {\n return (\n <li key={'dropdown-item' + index}>\n {this.renderBreadcrumbNode(menuItem, 'right', 'middle', 'dropdown')}\n </li>\n );\n })}\n </ul>\n );\n }}\n </RootClose>\n );\n }\n\n render() {\n const {\n item,\n itemPlace,\n tooltipPosition,\n classnames: cx\n } = this.props;\n const {dropdown, ...restItemProps} = item;\n return (\n <span\n className={cx('Breadcrumb-item',\n {\n 'is-opened': this.state.isOpened\n },\n {\n 'Breadcrumb-item-last': itemPlace === 'end'\n }\n )}\n ref={this.domRef}\n >\n {this.renderBreadcrumbNode({...restItemProps}, tooltipPosition, itemPlace, 'default')}\n {dropdown ? (\n <span onClick={this.toogle} className={cx('Breadcrumb-item-caret')}>\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n ): null}\n {dropdown && this.state.isOpened ? this.renderDropdownNode(dropdown) : null}\n </span>\n );\n }\n}\n\nexport default themeable(Breadcrumb);"
12
+ ]
13
+ }