amis 1.3.5-beta.6 → 1.4.2-beta.1

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 (352) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +17 -0
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.js.map +2 -2
  6. package/lib/components/Badge.d.ts +16 -3
  7. package/lib/components/Badge.js +53 -4
  8. package/lib/components/Badge.js.map +2 -2
  9. package/lib/components/Button.d.ts +24 -22
  10. package/lib/components/Button.js +13 -7
  11. package/lib/components/Button.js.map +2 -2
  12. package/lib/components/Checkbox.d.ts +1 -1
  13. package/lib/components/Checkbox.js +1 -1
  14. package/lib/components/Checkbox.js.map +2 -2
  15. package/lib/components/Collapse.js +1 -1
  16. package/lib/components/Collapse.js.map +2 -2
  17. package/lib/components/DatePicker.js +1 -1
  18. package/lib/components/DatePicker.js.map +2 -2
  19. package/lib/components/DateRangePicker.js +1 -1
  20. package/lib/components/DateRangePicker.js.map +2 -2
  21. package/lib/components/Drawer.js +1 -1
  22. package/lib/components/Drawer.js.map +2 -2
  23. package/lib/components/InputBox.js +1 -1
  24. package/lib/components/InputBox.js.map +2 -2
  25. package/lib/components/Link.d.ts +91 -0
  26. package/lib/components/Link.js +44 -0
  27. package/lib/components/Link.js.map +13 -0
  28. package/lib/components/Modal.js +1 -1
  29. package/lib/components/Modal.js.map +2 -2
  30. package/lib/components/MonthRangePicker.js +1 -1
  31. package/lib/components/MonthRangePicker.js.map +2 -2
  32. package/lib/components/RichText.d.ts +6 -1
  33. package/lib/components/RichText.js +207 -8
  34. package/lib/components/RichText.js.map +2 -2
  35. package/lib/components/Select.d.ts +7 -0
  36. package/lib/components/Select.js +3 -0
  37. package/lib/components/Select.js.map +2 -2
  38. package/lib/components/SparkLine.d.ts +85 -84
  39. package/lib/components/SparkLine.js +2 -2
  40. package/lib/components/SparkLine.js.map +2 -2
  41. package/lib/components/Steps.d.ts +3 -3
  42. package/lib/components/Steps.js.map +1 -1
  43. package/lib/components/Toast.js +2 -2
  44. package/lib/components/Toast.js.map +2 -2
  45. package/lib/components/Tree.js +5 -3
  46. package/lib/components/Tree.js.map +2 -2
  47. package/lib/components/WithRemoteConfig.d.ts +8 -0
  48. package/lib/components/WithRemoteConfig.js +28 -2
  49. package/lib/components/WithRemoteConfig.js.map +2 -2
  50. package/lib/components/calendar/DaysView.js +2 -2
  51. package/lib/components/calendar/DaysView.js.map +2 -2
  52. package/lib/components/condition-builder/Field.js +0 -1
  53. package/lib/components/condition-builder/Field.js.map +2 -2
  54. package/lib/components/condition-builder/Value.js +2 -1
  55. package/lib/components/condition-builder/Value.js.map +2 -2
  56. package/lib/components/condition-builder/types.d.ts +5 -0
  57. package/lib/components/condition-builder/types.js.map +1 -1
  58. package/lib/components/icons.js +14 -0
  59. package/lib/components/icons.js.map +2 -2
  60. package/lib/factory.d.ts +5 -1
  61. package/lib/factory.js +9 -4
  62. package/lib/factory.js.map +2 -2
  63. package/lib/helper.css.map +1 -1
  64. package/lib/icons/clock.js +10 -0
  65. package/lib/icons/loading-outline.js +7 -0
  66. package/lib/icons/status-close.js +11 -0
  67. package/lib/icons/status-fail.js +11 -0
  68. package/lib/icons/status-info.js +10 -0
  69. package/lib/icons/status-success.js +11 -0
  70. package/lib/icons/status-warning.js +10 -0
  71. package/lib/index.js +1 -1
  72. package/lib/locale/de-DE.js +3 -0
  73. package/lib/locale/de-DE.js.map +2 -2
  74. package/lib/locale/en-US.js +4 -1
  75. package/lib/locale/en-US.js.map +2 -2
  76. package/lib/locale/zh-CN.js +5 -2
  77. package/lib/locale/zh-CN.js.map +2 -2
  78. package/lib/renderers/Action.d.ts +16 -1
  79. package/lib/renderers/Action.js +5 -5
  80. package/lib/renderers/Action.js.map +2 -2
  81. package/lib/renderers/CRUD.d.ts +2 -2
  82. package/lib/renderers/CRUD.js +32 -26
  83. package/lib/renderers/CRUD.js.map +2 -2
  84. package/lib/renderers/Collapse.d.ts +1 -1
  85. package/lib/renderers/Collapse.js +7 -3
  86. package/lib/renderers/Collapse.js.map +2 -2
  87. package/lib/renderers/Dialog.d.ts +0 -252
  88. package/lib/renderers/Dialog.js +1 -4
  89. package/lib/renderers/Dialog.js.map +2 -2
  90. package/lib/renderers/Drawer.js +0 -3
  91. package/lib/renderers/Drawer.js.map +2 -2
  92. package/lib/renderers/DropDownButton.d.ts +13 -1
  93. package/lib/renderers/DropDownButton.js +9 -5
  94. package/lib/renderers/DropDownButton.js.map +2 -2
  95. package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
  96. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  97. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  98. package/lib/renderers/Form/Checkbox.js +4 -0
  99. package/lib/renderers/Form/Checkbox.js.map +2 -2
  100. package/lib/renderers/Form/Combo.js +2 -2
  101. package/lib/renderers/Form/Combo.js.map +2 -2
  102. package/lib/renderers/Form/DiffEditor.d.ts +0 -2
  103. package/lib/renderers/Form/Editor.d.ts +0 -2
  104. package/lib/renderers/Form/Editor.js +1 -1
  105. package/lib/renderers/Form/Editor.js.map +2 -2
  106. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  107. package/lib/renderers/Form/InputExcel.js +24 -3
  108. package/lib/renderers/Form/InputExcel.js.map +2 -2
  109. package/lib/renderers/Form/InputFile.js +2 -2
  110. package/lib/renderers/Form/InputFile.js.map +2 -2
  111. package/lib/renderers/Form/InputImage.d.ts +8 -0
  112. package/lib/renderers/Form/InputImage.js +7 -4
  113. package/lib/renderers/Form/InputImage.js.map +2 -2
  114. package/lib/renderers/Form/InputTable.d.ts +23 -5
  115. package/lib/renderers/Form/InputTable.js +32 -3
  116. package/lib/renderers/Form/InputTable.js.map +2 -2
  117. package/lib/renderers/Form/Options.js +6 -3
  118. package/lib/renderers/Form/Options.js.map +2 -2
  119. package/lib/renderers/Form/Picker.js +2 -2
  120. package/lib/renderers/Form/Picker.js.map +2 -2
  121. package/lib/renderers/Form/wrapControl.js +2 -2
  122. package/lib/renderers/Form/wrapControl.js.map +2 -2
  123. package/lib/renderers/IFrame.js +2 -2
  124. package/lib/renderers/IFrame.js.map +2 -2
  125. package/lib/renderers/Image.d.ts +1 -0
  126. package/lib/renderers/Image.js +15 -1
  127. package/lib/renderers/Image.js.map +2 -2
  128. package/lib/renderers/Json.js +5 -1
  129. package/lib/renderers/Json.js.map +2 -2
  130. package/lib/renderers/Link.d.ts +16 -3
  131. package/lib/renderers/Link.js +16 -13
  132. package/lib/renderers/Link.js.map +2 -2
  133. package/lib/renderers/Log.d.ts +2 -2
  134. package/lib/renderers/Log.js +7 -1
  135. package/lib/renderers/Log.js.map +2 -2
  136. package/lib/renderers/Nav.d.ts +81 -25
  137. package/lib/renderers/Nav.js +272 -29
  138. package/lib/renderers/Nav.js.map +2 -2
  139. package/lib/renderers/Page.js +4 -1
  140. package/lib/renderers/Page.js.map +2 -2
  141. package/lib/renderers/Service.d.ts +10 -1
  142. package/lib/renderers/Service.js +85 -3
  143. package/lib/renderers/Service.js.map +2 -2
  144. package/lib/renderers/SparkLine.d.ts +4 -0
  145. package/lib/renderers/SparkLine.js.map +2 -2
  146. package/lib/renderers/Steps.d.ts +4 -4
  147. package/lib/renderers/Steps.js +5 -2
  148. package/lib/renderers/Steps.js.map +2 -2
  149. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  150. package/lib/renderers/Table/ColumnToggler.js +216 -0
  151. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  152. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  153. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  154. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  155. package/lib/renderers/Table/TableBody.d.ts +5 -1
  156. package/lib/renderers/Table/TableBody.js +5 -1
  157. package/lib/renderers/Table/TableBody.js.map +2 -2
  158. package/lib/renderers/Table/TableCell.js +3 -1
  159. package/lib/renderers/Table/TableCell.js.map +2 -2
  160. package/lib/renderers/Table/TableContent.d.ts +1 -1
  161. package/lib/renderers/Table/TableContent.js +4 -0
  162. package/lib/renderers/Table/TableContent.js.map +2 -2
  163. package/lib/renderers/Table/index.d.ts +22 -4
  164. package/lib/renderers/Table/index.js +196 -81
  165. package/lib/renderers/Table/index.js.map +2 -2
  166. package/lib/store/app.d.ts +0 -1
  167. package/lib/store/combo.d.ts +0 -2
  168. package/lib/store/crud.d.ts +3 -3
  169. package/lib/store/crud.js +41 -36
  170. package/lib/store/crud.js.map +2 -2
  171. package/lib/store/form.d.ts +0 -1
  172. package/lib/store/modal.d.ts +1 -1
  173. package/lib/store/modal.js +4 -0
  174. package/lib/store/modal.js.map +2 -2
  175. package/lib/store/root.d.ts +0 -1
  176. package/lib/store/service.d.ts +0 -1
  177. package/lib/store/service.js +0 -13
  178. package/lib/store/service.js.map +2 -2
  179. package/lib/store/table.d.ts +258 -3
  180. package/lib/store/table.js +83 -7
  181. package/lib/store/table.js.map +2 -2
  182. package/lib/themes/ang-ie11.css +941 -98
  183. package/lib/themes/ang.css +941 -98
  184. package/lib/themes/ang.css.map +1 -1
  185. package/lib/themes/antd-ie11.css +941 -98
  186. package/lib/themes/antd.css +941 -98
  187. package/lib/themes/antd.css.map +1 -1
  188. package/lib/themes/cxd-ie11.css +1580 -411
  189. package/lib/themes/cxd.css +1580 -411
  190. package/lib/themes/cxd.css.map +1 -1
  191. package/lib/themes/dark-ie11.css +941 -98
  192. package/lib/themes/dark.css +941 -98
  193. package/lib/themes/dark.css.map +1 -1
  194. package/lib/themes/default.css +1580 -411
  195. package/lib/themes/default.css.map +1 -1
  196. package/lib/utils/api.js +16 -4
  197. package/lib/utils/api.js.map +2 -2
  198. package/lib/utils/attachmentAdpator.d.ts +7 -0
  199. package/lib/utils/attachmentAdpator.js +82 -0
  200. package/lib/utils/attachmentAdpator.js.map +13 -0
  201. package/lib/utils/handleAction.d.ts +7 -0
  202. package/lib/utils/handleAction.js +30 -0
  203. package/lib/utils/handleAction.js.map +13 -0
  204. package/lib/utils/helper.d.ts +1 -1
  205. package/lib/utils/helper.js +3 -3
  206. package/lib/utils/helper.js.map +2 -2
  207. package/lib/utils/tpl-builtin.d.ts +1 -1
  208. package/lib/utils/tpl-builtin.js +25 -15
  209. package/lib/utils/tpl-builtin.js.map +2 -2
  210. package/lib/utils/validations.js +62 -5
  211. package/lib/utils/validations.js.map +2 -2
  212. package/package.json +1 -2
  213. package/schema.json +633 -273
  214. package/scss/_mixins.scss +29 -0
  215. package/scss/_properties.scss +64 -13
  216. package/scss/_utilities.scss +4 -0
  217. package/scss/components/_badge.scss +67 -2
  218. package/scss/components/_button.scss +34 -3
  219. package/scss/components/_collapse.scss +26 -8
  220. package/scss/components/_column-toggler.scss +234 -0
  221. package/scss/components/_dropdown.scss +2 -1
  222. package/scss/components/_image-gallery.scss +1 -1
  223. package/scss/components/_images.scss +2 -1
  224. package/scss/components/_link.scss +6 -0
  225. package/scss/components/_markdown.scss +266 -0
  226. package/scss/components/_nav.scss +236 -154
  227. package/scss/components/_page.scss +5 -4
  228. package/scss/components/_progress.scss +2 -0
  229. package/scss/components/_spinner.scss +6 -2
  230. package/scss/components/_steps.scss +1 -1
  231. package/scss/components/_table.scss +25 -1
  232. package/scss/components/form/_color.scss +1 -0
  233. package/scss/components/form/_date-range.scss +2 -0
  234. package/scss/components/form/_date.scss +2 -0
  235. package/scss/components/form/_fieldset.scss +1 -2
  236. package/scss/components/form/_file.scss +5 -4
  237. package/scss/components/form/_group.scss +4 -0
  238. package/scss/components/form/_image.scss +7 -2
  239. package/scss/components/form/_list.scss +1 -0
  240. package/scss/components/form/_location.scss +1 -1
  241. package/scss/components/form/_text.scss +13 -0
  242. package/scss/components/form/_textarea.scss +10 -0
  243. package/scss/components/form/_transfer.scss +2 -0
  244. package/scss/themes/_common.scss +3 -0
  245. package/scss/themes/_cxd-colors.scss +56 -0
  246. package/scss/themes/_cxd-variables.scss +217 -92
  247. package/scss/themes/cxd.scss +366 -0
  248. package/sdk/ang-ie11.css +1192 -176
  249. package/sdk/ang.css +1175 -118
  250. package/sdk/antd-ie11.css +1177 -163
  251. package/sdk/antd.css +1175 -118
  252. package/sdk/charts.js +13 -13
  253. package/sdk/color-picker.js +67 -67
  254. package/sdk/cropperjs.js +2 -2
  255. package/sdk/cxd-ie11.css +2538 -1222
  256. package/sdk/cxd.css +1825 -401
  257. package/sdk/dark-ie11.css +1192 -176
  258. package/sdk/dark.css +1175 -118
  259. package/sdk/exceljs.js +1 -1
  260. package/sdk/helper.css.map +1 -1
  261. package/sdk/ie11-patch.css +1 -0
  262. package/sdk/locale/de-DE.js +3 -0
  263. package/sdk/markdown.js +69 -69
  264. package/sdk/papaparse.js +1 -1
  265. package/sdk/renderers/Form/CityDB.js +1 -1
  266. package/sdk/rest.js +22 -24
  267. package/sdk/rich-text.js +62 -64
  268. package/sdk/sdk-ie11.css +2538 -1222
  269. package/sdk/sdk.css +1825 -401
  270. package/sdk/sdk.js +1139 -1113
  271. package/sdk/thirds/hls.js/hls.js +1 -1
  272. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  273. package/sdk/tinymce.js +57 -57
  274. package/src/Schema.ts +18 -0
  275. package/src/components/Alert.tsx +3 -1
  276. package/src/components/Badge.tsx +124 -21
  277. package/src/components/Button.tsx +23 -7
  278. package/src/components/Checkbox.tsx +5 -2
  279. package/src/components/Collapse.tsx +14 -9
  280. package/src/components/DatePicker.tsx +1 -1
  281. package/src/components/DateRangePicker.tsx +23 -11
  282. package/src/components/Drawer.tsx +3 -2
  283. package/src/components/InputBox.tsx +1 -1
  284. package/src/components/Link.tsx +94 -0
  285. package/src/components/Modal.tsx +3 -2
  286. package/src/components/MonthRangePicker.tsx +10 -2
  287. package/src/components/RichText.tsx +244 -3
  288. package/src/components/Select.tsx +4 -0
  289. package/src/components/SparkLine.tsx +4 -1
  290. package/src/components/Steps.tsx +3 -3
  291. package/src/components/Toast.tsx +5 -5
  292. package/src/components/Tree.tsx +6 -8
  293. package/src/components/WithRemoteConfig.tsx +37 -2
  294. package/src/components/calendar/DaysView.tsx +2 -2
  295. package/src/components/condition-builder/Field.tsx +1 -2
  296. package/src/components/condition-builder/Value.tsx +3 -0
  297. package/src/components/condition-builder/types.ts +6 -0
  298. package/src/components/icons.tsx +15 -0
  299. package/src/factory.tsx +13 -3
  300. package/src/icons/clock.svg +1 -0
  301. package/src/icons/loading-outline.svg +4 -0
  302. package/src/icons/status-close.svg +10 -0
  303. package/src/icons/status-fail.svg +10 -0
  304. package/src/icons/status-info.svg +8 -0
  305. package/src/icons/status-success.svg +10 -0
  306. package/src/icons/status-warning.svg +8 -0
  307. package/src/locale/de-DE.ts +3 -0
  308. package/src/locale/en-US.ts +4 -1
  309. package/src/locale/zh-CN.ts +5 -2
  310. package/src/renderers/Action.tsx +71 -13
  311. package/src/renderers/CRUD.tsx +44 -59
  312. package/src/renderers/Collapse.tsx +6 -2
  313. package/src/renderers/Dialog.tsx +1 -5
  314. package/src/renderers/Drawer.tsx +0 -4
  315. package/src/renderers/DropDownButton.tsx +34 -12
  316. package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
  317. package/src/renderers/Form/Checkbox.tsx +8 -0
  318. package/src/renderers/Form/Combo.tsx +2 -3
  319. package/src/renderers/Form/Editor.tsx +19 -20
  320. package/src/renderers/Form/InputExcel.tsx +28 -3
  321. package/src/renderers/Form/InputFile.tsx +2 -1
  322. package/src/renderers/Form/InputImage.tsx +28 -10
  323. package/src/renderers/Form/InputTable.tsx +88 -9
  324. package/src/renderers/Form/Options.tsx +16 -5
  325. package/src/renderers/Form/Picker.tsx +3 -2
  326. package/src/renderers/Form/wrapControl.tsx +2 -2
  327. package/src/renderers/IFrame.tsx +2 -1
  328. package/src/renderers/Image.tsx +10 -0
  329. package/src/renderers/Json.tsx +10 -1
  330. package/src/renderers/Link.tsx +36 -11
  331. package/src/renderers/Log.tsx +16 -3
  332. package/src/renderers/Nav.tsx +340 -56
  333. package/src/renderers/Page.tsx +3 -1
  334. package/src/renderers/Service.tsx +101 -3
  335. package/src/renderers/SparkLine.tsx +5 -0
  336. package/src/renderers/Steps.tsx +12 -9
  337. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  338. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  339. package/src/renderers/Table/TableBody.tsx +3 -2
  340. package/src/renderers/Table/TableCell.tsx +16 -1
  341. package/src/renderers/Table/TableContent.tsx +3 -1
  342. package/src/renderers/Table/index.tsx +240 -60
  343. package/src/store/crud.ts +34 -38
  344. package/src/store/modal.ts +4 -0
  345. package/src/store/service.ts +0 -19
  346. package/src/store/table.ts +103 -4
  347. package/src/utils/api.ts +24 -4
  348. package/src/utils/attachmentAdpator.ts +90 -0
  349. package/src/utils/handleAction.ts +41 -0
  350. package/src/utils/helper.ts +4 -3
  351. package/src/utils/tpl-builtin.ts +48 -17
  352. package/src/utils/validations.ts +80 -12
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
8
8
  var tslib_1 = require("tslib");
9
9
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
10
10
  // @ts-ignore
11
- var react_froala_wysiwyg_1 = (0, tslib_1.__importDefault)(require("react-froala-wysiwyg"));
11
+ var froala_editor_1 = (0, tslib_1.__importDefault)(require("froala-editor"));
12
12
  // @ts-ignore
13
13
  var froala_editor_min_js_1 = (0, tslib_1.__importDefault)(require("froala-editor/js/froala_editor.min.js"));
14
14
  require("froala-editor/js/plugins/align.min");
@@ -44,9 +44,208 @@ require("froala-editor/js/languages/zh_cn.js");
44
44
  // Require Editor CSS files.
45
45
  require("froala-editor/css/froala_style.min.css");
46
46
  require("froala-editor/css/froala_editor.pkgd.min.css");
47
- var FroalaEditor = /** @class */ (function (_super) {
48
- (0, tslib_1.__extends)(FroalaEditor, _super);
49
- function FroalaEditor(props) {
47
+ // 代码来源于:https://github.com/froala/react-froala-wysiwyg/blob/master/lib/FroalaEditorFunctionality.jsx
48
+ // 改动原因是model 同步有些问题,有时候不更新,所以基于官方代码改造一下。
49
+ // 目前发现的问题是,如果 model 数据修改,如果此时 editor 还没有初始化完成则不会同步成功
50
+ var FroalaEditorComponent = /** @class */ (function (_super) {
51
+ (0, tslib_1.__extends)(FroalaEditorComponent, _super);
52
+ function FroalaEditorComponent(props) {
53
+ var _this = _super.call(this, props) || this;
54
+ _this.listeningEvents = [];
55
+ _this.element = null;
56
+ _this.editor = null;
57
+ _this.config = {
58
+ immediateReactModelUpdate: false,
59
+ reactIgnoreAttrs: null
60
+ };
61
+ _this.editorInitialized = false;
62
+ _this.INNER_HTML_ATTR = 'innerHTML';
63
+ _this.oldModel = null;
64
+ return _this;
65
+ }
66
+ // After first time render.
67
+ FroalaEditorComponent.prototype.componentDidMount = function () {
68
+ this.createEditor();
69
+ };
70
+ FroalaEditorComponent.prototype.componentWillUnmount = function () {
71
+ this.destroyEditor();
72
+ };
73
+ FroalaEditorComponent.prototype.componentDidUpdate = function () {
74
+ if (JSON.stringify(this.oldModel) == JSON.stringify(this.props.model)) {
75
+ return;
76
+ }
77
+ this.setContent();
78
+ };
79
+ // Return cloned object
80
+ FroalaEditorComponent.prototype.clone = function (item) {
81
+ var me = this;
82
+ if (!item) {
83
+ return item;
84
+ } // null, undefined values check
85
+ var types = [Number, String, Boolean], result;
86
+ // normalizing primitives if someone did new String('aaa'), or new Number('444');
87
+ types.forEach(function (type) {
88
+ if (item instanceof type) {
89
+ result = type(item);
90
+ }
91
+ });
92
+ if (typeof result == 'undefined') {
93
+ if (Object.prototype.toString.call(item) === '[object Array]') {
94
+ result = [];
95
+ item.forEach(function (child, index, array) {
96
+ result[index] = me.clone(child);
97
+ });
98
+ }
99
+ else if (typeof item == 'object') {
100
+ // testing that this is DOM
101
+ if (item.nodeType && typeof item.cloneNode == 'function') {
102
+ result = item.cloneNode(true);
103
+ }
104
+ else if (!item.prototype) {
105
+ // check that this is a literal
106
+ if (item instanceof Date) {
107
+ result = new Date(item);
108
+ }
109
+ else {
110
+ // it is an object literal
111
+ result = {};
112
+ for (var i in item) {
113
+ result[i] = me.clone(item[i]);
114
+ }
115
+ }
116
+ }
117
+ else {
118
+ if (false && item.constructor) {
119
+ result = new item.constructor();
120
+ }
121
+ else {
122
+ result = item;
123
+ }
124
+ }
125
+ }
126
+ else {
127
+ result = item;
128
+ }
129
+ }
130
+ return result;
131
+ };
132
+ FroalaEditorComponent.prototype.createEditor = function () {
133
+ var _this = this;
134
+ if (this.editorInitialized) {
135
+ return;
136
+ }
137
+ this.config = this.clone(this.props.config || this.config);
138
+ this.config = (0, tslib_1.__assign)({}, this.config);
139
+ this.element = this.el;
140
+ if (this.props.model) {
141
+ this.element.innerHTML = this.props.model;
142
+ }
143
+ this.setContent();
144
+ // Default initialized.
145
+ this.registerEvent('initialized', this.config.events && this.config.events.initialized);
146
+ // Check if events are set.
147
+ if (!this.config.events)
148
+ this.config.events = {};
149
+ this.config.events.initialized = function () {
150
+ _this.editorInitialized = true;
151
+ _this.initListeners();
152
+ };
153
+ this.editor = new froala_editor_1.default(this.element, this.config);
154
+ };
155
+ FroalaEditorComponent.prototype.setContent = function () {
156
+ var _this = this;
157
+ if (this.props.model || this.props.model == '') {
158
+ this.oldModel = this.props.model;
159
+ if (this.editorInitialized) {
160
+ this.setNormalTagContent();
161
+ }
162
+ else {
163
+ if (!this._initEvents)
164
+ this._initEvents = [];
165
+ this._initEvents.push(function () { return _this.setNormalTagContent(); });
166
+ }
167
+ }
168
+ };
169
+ FroalaEditorComponent.prototype.setNormalTagContent = function () {
170
+ var self = this;
171
+ self.editor.html && self.editor.html.set(self.props.model || '');
172
+ if (self.editorInitialized && self.editor.undo) {
173
+ //This will reset the undo stack everytime the model changes externally. Can we fix this?
174
+ self.editor.undo.reset();
175
+ self.editor.undo.saveStep();
176
+ }
177
+ };
178
+ FroalaEditorComponent.prototype.destroyEditor = function () {
179
+ if (this.element) {
180
+ this.editor.destroy && this.editor.destroy();
181
+ this.listeningEvents.length = 0;
182
+ this.element = null;
183
+ this.editorInitialized = false;
184
+ this._initEvents = [];
185
+ }
186
+ };
187
+ FroalaEditorComponent.prototype.getEditor = function () {
188
+ if (this.element) {
189
+ return this.editor;
190
+ }
191
+ return null;
192
+ };
193
+ FroalaEditorComponent.prototype.updateModel = function () {
194
+ if (!this.props.onModelChange) {
195
+ return;
196
+ }
197
+ var modelContent = '';
198
+ var returnedHtml = this.editor.html.get();
199
+ if (typeof returnedHtml === 'string') {
200
+ modelContent = returnedHtml;
201
+ }
202
+ this.oldModel = modelContent;
203
+ this.props.onModelChange(modelContent);
204
+ };
205
+ FroalaEditorComponent.prototype.initListeners = function () {
206
+ var self = this;
207
+ // bind contentChange and keyup event to froalaModel
208
+ this.editor.events.on('contentChanged', function () {
209
+ self.updateModel();
210
+ });
211
+ if (this.config.immediateReactModelUpdate) {
212
+ this.editor.events.on('keyup', function () {
213
+ self.updateModel();
214
+ });
215
+ }
216
+ // Call init events.
217
+ if (this._initEvents) {
218
+ for (var i = 0; i < this._initEvents.length; i++) {
219
+ this._initEvents[i].call(this.editor);
220
+ }
221
+ }
222
+ };
223
+ // register event on jquery editor element
224
+ FroalaEditorComponent.prototype.registerEvent = function (eventName, callback) {
225
+ if (!eventName || !callback) {
226
+ return;
227
+ }
228
+ if (eventName == 'initialized') {
229
+ if (!this._initEvents)
230
+ this._initEvents = [];
231
+ this._initEvents.push(callback);
232
+ }
233
+ else {
234
+ if (!this.config.events) {
235
+ this.config.events = {};
236
+ }
237
+ this.config.events[eventName] = callback;
238
+ }
239
+ };
240
+ FroalaEditorComponent.prototype.render = function () {
241
+ var _this = this;
242
+ return (react_1.default.createElement("textarea", { ref: function (el) { return (_this.el = el); } }, this.props.children));
243
+ };
244
+ return FroalaEditorComponent;
245
+ }(react_1.default.Component));
246
+ var default_1 = /** @class */ (function (_super) {
247
+ (0, tslib_1.__extends)(default_1, _super);
248
+ function default_1(props) {
50
249
  var _this = _super.call(this, props) || this;
51
250
  froala_editor_min_js_1.default.VIDEO_PROVIDERS = [
52
251
  {
@@ -58,10 +257,10 @@ var FroalaEditor = /** @class */ (function (_super) {
58
257
  ];
59
258
  return _this;
60
259
  }
61
- FroalaEditor.prototype.render = function () {
62
- return (react_1.default.createElement(react_froala_wysiwyg_1.default, { tag: "textarea", config: this.props.config, model: this.props.model, onModelChange: this.props.onModelChange }));
260
+ default_1.prototype.render = function () {
261
+ return (react_1.default.createElement(FroalaEditorComponent, { config: this.props.config, model: this.props.model, onModelChange: this.props.onModelChange }));
63
262
  };
64
- return FroalaEditor;
263
+ return default_1;
65
264
  }(react_1.default.Component));
66
- exports.default = FroalaEditor;
265
+ exports.default = default_1;
67
266
  //# sourceMappingURL=./components/RichText.js.map
@@ -6,8 +6,8 @@
6
6
  "/src/components/RichText.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";AAAA;;;;GAIG;;;AAEH,6DAA0B;AAE1B,aAAa;AACb,2FAAyD;AACzD,aAAa;AACb,4GAA2D;AAC3D,8CAA4C;AAC5C,+CAA6C;AAC7C,qDAAmD;AACnD,kDAAgD;AAChD,kDAAgD;AAChD,iDAA+C;AAC/C,oDAAkD;AAClD,kDAAgD;AAChD,8CAA4C;AAC5C,mDAAiD;AACjD,6CAA2C;AAC3C,8CAA4C;AAC5C,qDAAmD;AACnD,qDAAmD;AACnD,qDAAmD;AACnD,oDAAkD;AAClD,6CAA2C;AAC3C,8CAA4C;AAC5C,yDAAuD;AACvD,wDAAsD;AACtD,8CAA4C;AAC5C,qDAAmD;AACnD,8CAA4C;AAC5C,6CAA2C;AAC3C,2DAAyD;AACzD,8CAA4C;AAC5C,4CAA0C;AAC1C,8CAA4C;AAC5C,mDAAiD;AACjD,+CAA6C;AAE7C,4BAA4B;AAC5B,kDAAgD;AAChD,wDAAsD;AAEtD;IAA0C,6CAAyB;IACjE,sBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SASb;QARC,8BAAM,CAAC,eAAe,GAAG;YACvB;gBACE,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,6MAA6M;aACpN;SACF,CAAC;;IACJ,CAAC;IAED,6BAAM,GAAN;QACE,OAAO,CACL,8BAAC,8BAAqB,IACpB,GAAG,EAAC,UAAU,EACd,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GACvC,CACH,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAvBD,CAA0C,eAAK,CAAC,SAAS,GAuBxD",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "/**\n * @file RichText\n * @description\n * @author fex\n */\n\nimport React from 'react';\n\n// @ts-ignore\nimport FroalaEditorComponent from 'react-froala-wysiwyg';\n// @ts-ignore\nimport Froala from 'froala-editor/js/froala_editor.min.js';\nimport 'froala-editor/js/plugins/align.min';\nimport 'froala-editor/js/plugins/colors.min';\nimport 'froala-editor/js/plugins/char_counter.min';\nimport 'froala-editor/js/plugins/code_view.min';\nimport 'froala-editor/js/plugins/draggable.min';\nimport 'froala-editor/js/plugins/entities.min';\nimport 'froala-editor/js/plugins/font_family.min';\nimport 'froala-editor/js/plugins/font_size.min';\nimport 'froala-editor/js/plugins/forms.min';\nimport 'froala-editor/js/plugins/fullscreen.min';\nimport 'froala-editor/js/plugins/help.min';\nimport 'froala-editor/js/plugins/image.min';\nimport 'froala-editor/js/plugins/inline_class.min';\nimport 'froala-editor/js/plugins/inline_style.min';\nimport 'froala-editor/js/plugins/line_breaker.min';\nimport 'froala-editor/js/plugins/line_height.min';\nimport 'froala-editor/js/plugins/link.min';\nimport 'froala-editor/js/plugins/lists.min';\nimport 'froala-editor/js/plugins/paragraph_format.min';\nimport 'froala-editor/js/plugins/paragraph_style.min';\nimport 'froala-editor/js/plugins/print.min';\nimport 'froala-editor/js/plugins/quick_insert.min';\nimport 'froala-editor/js/plugins/quote.min';\nimport 'froala-editor/js/plugins/save.min';\nimport 'froala-editor/js/plugins/special_characters.min';\nimport 'froala-editor/js/plugins/table.min';\nimport 'froala-editor/js/plugins/url.min';\nimport 'froala-editor/js/plugins/video.min';\nimport 'froala-editor/js/plugins/word_paste.min';\nimport 'froala-editor/js/languages/zh_cn.js';\n\n// Require Editor CSS files.\nimport 'froala-editor/css/froala_style.min.css';\nimport 'froala-editor/css/froala_editor.pkgd.min.css';\n\nexport default class FroalaEditor extends React.Component<any, any> {\n constructor(props: any) {\n super(props);\n Froala.VIDEO_PROVIDERS = [\n {\n test_regex: /.*/,\n url_regex: '',\n url_text: '',\n html: '<span class=\"fr-video fr-dvb fr-draggable\" contenteditable=\"false\" draggable=\"true\"><video class=\"fr-draggable\" controls=\"\" data-msg=\"ok\" data-status=\"0\" src=\"{url}\" style=\"width: 600px;\"></video></span>'\n }\n ];\n }\n\n render() {\n return (\n <FroalaEditorComponent\n tag=\"textarea\"\n config={this.props.config}\n model={this.props.model}\n onModelChange={this.props.onModelChange}\n />\n );\n }\n}\n"
11
+ "/**\n * @file RichText\n * @description\n * @author fex\n */\n\nimport React from 'react';\n\n// @ts-ignore\nimport FroalaEditor from 'froala-editor';\n// @ts-ignore\nimport Froala from 'froala-editor/js/froala_editor.min.js';\nimport 'froala-editor/js/plugins/align.min';\nimport 'froala-editor/js/plugins/colors.min';\nimport 'froala-editor/js/plugins/char_counter.min';\nimport 'froala-editor/js/plugins/code_view.min';\nimport 'froala-editor/js/plugins/draggable.min';\nimport 'froala-editor/js/plugins/entities.min';\nimport 'froala-editor/js/plugins/font_family.min';\nimport 'froala-editor/js/plugins/font_size.min';\nimport 'froala-editor/js/plugins/forms.min';\nimport 'froala-editor/js/plugins/fullscreen.min';\nimport 'froala-editor/js/plugins/help.min';\nimport 'froala-editor/js/plugins/image.min';\nimport 'froala-editor/js/plugins/inline_class.min';\nimport 'froala-editor/js/plugins/inline_style.min';\nimport 'froala-editor/js/plugins/line_breaker.min';\nimport 'froala-editor/js/plugins/line_height.min';\nimport 'froala-editor/js/plugins/link.min';\nimport 'froala-editor/js/plugins/lists.min';\nimport 'froala-editor/js/plugins/paragraph_format.min';\nimport 'froala-editor/js/plugins/paragraph_style.min';\nimport 'froala-editor/js/plugins/print.min';\nimport 'froala-editor/js/plugins/quick_insert.min';\nimport 'froala-editor/js/plugins/quote.min';\nimport 'froala-editor/js/plugins/save.min';\nimport 'froala-editor/js/plugins/special_characters.min';\nimport 'froala-editor/js/plugins/table.min';\nimport 'froala-editor/js/plugins/url.min';\nimport 'froala-editor/js/plugins/video.min';\nimport 'froala-editor/js/plugins/word_paste.min';\nimport 'froala-editor/js/languages/zh_cn.js';\n\n// Require Editor CSS files.\nimport 'froala-editor/css/froala_style.min.css';\nimport 'froala-editor/css/froala_editor.pkgd.min.css';\n\nexport interface FroalaEditorComponentProps {\n config: any;\n model: string;\n onModelChange: (value: string) => void;\n}\n\n// 代码来源于:https://github.com/froala/react-froala-wysiwyg/blob/master/lib/FroalaEditorFunctionality.jsx\n// 改动原因是model 同步有些问题,有时候不更新,所以基于官方代码改造一下。\n// 目前发现的问题是,如果 model 数据修改,如果此时 editor 还没有初始化完成则不会同步成功\nclass FroalaEditorComponent extends React.Component<FroalaEditorComponentProps> {\n listeningEvents: any;\n element: any;\n editor: any;\n config: any;\n editorInitialized: any;\n INNER_HTML_ATTR: any;\n oldModel: any;\n el: any;\n _initEvents: any;\n\n constructor(props: FroalaEditorComponentProps) {\n super(props);\n\n this.listeningEvents = [];\n this.element = null;\n this.editor = null;\n this.config = {\n immediateReactModelUpdate: false,\n reactIgnoreAttrs: null\n };\n\n this.editorInitialized = false;\n this.INNER_HTML_ATTR = 'innerHTML';\n\n this.oldModel = null;\n }\n\n // After first time render.\n componentDidMount() {\n this.createEditor();\n }\n\n componentWillUnmount() {\n this.destroyEditor();\n }\n\n componentDidUpdate() {\n if (JSON.stringify(this.oldModel) == JSON.stringify(this.props.model)) {\n return;\n }\n\n this.setContent();\n }\n\n // Return cloned object\n clone(item: any) {\n const me = this;\n if (!item) {\n return item;\n } // null, undefined values check\n\n let types = [Number, String, Boolean],\n result: any;\n\n // normalizing primitives if someone did new String('aaa'), or new Number('444');\n types.forEach(function (type) {\n if (item instanceof type) {\n result = type(item);\n }\n });\n\n if (typeof result == 'undefined') {\n if (Object.prototype.toString.call(item) === '[object Array]') {\n result = [];\n item.forEach(function (child: any, index: number, array: Array<any>) {\n result[index] = me.clone(child);\n });\n } else if (typeof item == 'object') {\n // testing that this is DOM\n if (item.nodeType && typeof item.cloneNode == 'function') {\n result = item.cloneNode(true);\n } else if (!item.prototype) {\n // check that this is a literal\n if (item instanceof Date) {\n result = new Date(item);\n } else {\n // it is an object literal\n result = {};\n for (var i in item) {\n result[i] = me.clone(item[i]);\n }\n }\n } else {\n if (false && item.constructor) {\n result = new item.constructor();\n } else {\n result = item;\n }\n }\n } else {\n result = item;\n }\n }\n return result;\n }\n\n createEditor() {\n if (this.editorInitialized) {\n return;\n }\n\n this.config = this.clone(this.props.config || this.config);\n this.config = {...this.config};\n\n this.element = this.el;\n\n if (this.props.model) {\n this.element.innerHTML = this.props.model;\n }\n\n this.setContent();\n\n // Default initialized.\n this.registerEvent(\n 'initialized',\n this.config.events && this.config.events.initialized\n );\n\n // Check if events are set.\n if (!this.config.events) this.config.events = {};\n this.config.events.initialized = () => {\n this.editorInitialized = true;\n this.initListeners();\n };\n\n this.editor = new FroalaEditor(this.element, this.config);\n }\n\n setContent() {\n if (this.props.model || this.props.model == '') {\n this.oldModel = this.props.model;\n\n if (this.editorInitialized) {\n this.setNormalTagContent();\n } else {\n if (!this._initEvents) this._initEvents = [];\n this._initEvents.push(() => this.setNormalTagContent());\n }\n }\n }\n\n setNormalTagContent() {\n let self = this;\n\n self.editor.html && self.editor.html.set(self.props.model || '');\n if (self.editorInitialized && self.editor.undo) {\n //This will reset the undo stack everytime the model changes externally. Can we fix this?\n self.editor.undo.reset();\n self.editor.undo.saveStep();\n }\n }\n\n destroyEditor() {\n if (this.element) {\n this.editor.destroy && this.editor.destroy();\n this.listeningEvents.length = 0;\n this.element = null;\n this.editorInitialized = false;\n this._initEvents = [];\n }\n }\n\n getEditor() {\n if (this.element) {\n return this.editor;\n }\n\n return null;\n }\n\n updateModel() {\n if (!this.props.onModelChange) {\n return;\n }\n\n let modelContent = '';\n\n let returnedHtml = this.editor.html.get();\n if (typeof returnedHtml === 'string') {\n modelContent = returnedHtml;\n }\n\n this.oldModel = modelContent;\n this.props.onModelChange(modelContent);\n }\n\n initListeners() {\n let self = this;\n\n // bind contentChange and keyup event to froalaModel\n this.editor.events.on('contentChanged', function () {\n self.updateModel();\n });\n if (this.config.immediateReactModelUpdate) {\n this.editor.events.on('keyup', function () {\n self.updateModel();\n });\n }\n\n // Call init events.\n if (this._initEvents) {\n for (let i = 0; i < this._initEvents.length; i++) {\n this._initEvents[i].call(this.editor);\n }\n }\n }\n\n // register event on jquery editor element\n registerEvent(eventName: string, callback: Function) {\n if (!eventName || !callback) {\n return;\n }\n\n if (eventName == 'initialized') {\n if (!this._initEvents) this._initEvents = [];\n this._initEvents.push(callback);\n } else {\n if (!this.config.events) {\n this.config.events = {};\n }\n\n this.config.events[eventName] = callback;\n }\n }\n\n render() {\n return (\n <textarea ref={el => (this.el = el)}>{this.props.children}</textarea>\n );\n }\n}\n\nexport default class extends React.Component<any, any> {\n constructor(props: any) {\n super(props);\n Froala.VIDEO_PROVIDERS = [\n {\n test_regex: /.*/,\n url_regex: '',\n url_text: '',\n html: '<span class=\"fr-video fr-dvb fr-draggable\" contenteditable=\"false\" draggable=\"true\"><video class=\"fr-draggable\" controls=\"\" data-msg=\"ok\" data-status=\"0\" src=\"{url}\" style=\"width: 600px;\"></video></span>'\n }\n ];\n }\n\n render() {\n return (\n <FroalaEditorComponent\n config={this.props.config}\n model={this.props.model}\n onModelChange={this.props.onModelChange}\n />\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -5,6 +5,7 @@
5
5
  * @date 2017-11-07
6
6
  */
7
7
  /// <reference types="hoist-non-react-statics" />
8
+ /// <reference types="lodash" />
8
9
  import React from 'react';
9
10
  import { ControllerStateAndHelpers } from 'downshift';
10
11
  import { ThemeProps } from '../theme';
@@ -3412,10 +3413,12 @@ export declare const SelectWithRemoteOptions: {
3412
3413
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
3413
3414
  }): {
3414
3415
  toDispose: (() => void)[];
3416
+ loadOptions: import("lodash").DebouncedFunc<any>;
3415
3417
  componentDidMount(): void;
3416
3418
  componentDidUpdate(prevProps: any): void;
3417
3419
  componentWillUnmount(): void;
3418
3420
  loadConfig(ctx?: any): Promise<void>;
3421
+ loadAutoComplete(input: string): Promise<any>;
3419
3422
  setConfig(value: any, ctx?: any): void;
3420
3423
  syncConfig(): void;
3421
3424
  deferLoadConfig(item: any): Promise<void>;
@@ -4388,10 +4391,12 @@ export declare const SelectWithRemoteOptions: {
4388
4391
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
4389
4392
  }): {
4390
4393
  toDispose: (() => void)[];
4394
+ loadOptions: import("lodash").DebouncedFunc<any>;
4391
4395
  componentDidMount(): void;
4392
4396
  componentDidUpdate(prevProps: any): void;
4393
4397
  componentWillUnmount(): void;
4394
4398
  loadConfig(ctx?: any): Promise<void>;
4399
+ loadAutoComplete(input: string): Promise<any>;
4395
4400
  setConfig(value: any, ctx?: any): void;
4396
4401
  syncConfig(): void;
4397
4402
  deferLoadConfig(item: any): Promise<void>;
@@ -5363,10 +5368,12 @@ export declare const SelectWithRemoteOptions: {
5363
5368
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
5364
5369
  }): {
5365
5370
  toDispose: (() => void)[];
5371
+ loadOptions: import("lodash").DebouncedFunc<any>;
5366
5372
  componentDidMount(): void;
5367
5373
  componentDidUpdate(prevProps: any): void;
5368
5374
  componentWillUnmount(): void;
5369
5375
  loadConfig(ctx?: any): Promise<void>;
5376
+ loadAutoComplete(input: string): Promise<any>;
5370
5377
  setConfig(value: any, ctx?: any): void;
5371
5378
  syncConfig(): void;
5372
5379
  deferLoadConfig(item: any): Promise<void>;
@@ -424,6 +424,9 @@ var Select = /** @class */ (function (_super) {
424
424
  var renderItem = function (_a) {
425
425
  var index = _a.index, style = _a.style;
426
426
  var item = filtedOptions[index];
427
+ if (!item) {
428
+ return null;
429
+ }
427
430
  var checked = selectedItem === item || !!~selectionValues.indexOf(item[valueField]);
428
431
  if (hideSelected && checked) {
429
432
  return null;
@@ -6,8 +6,8 @@
6
6
  "/src/components/Select.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "/**\n * @file Select\n * @description\n * @author fex\n * @date 2017-11-07\n */\n\nimport {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport VirtualList from './virtual-list';\nimport Overlay from './Overlay';\nimport PopOver from './PopOver';\nimport Downshift, {ControllerStateAndHelpers} from 'downshift';\nimport {closeIcon, Icon} from './icons';\n// @ts-ignore\nimport {matchSorter} from 'match-sorter';\nimport {\n noop,\n isObject,\n findTree,\n autobind,\n ucFirst,\n normalizeNodePath\n} from '../utils/helper';\nimport find from 'lodash/find';\nimport isPlainObject from 'lodash/isPlainObject';\nimport union from 'lodash/union';\nimport {highlight} from '../renderers/Form/Options';\nimport {findDOMNode} from 'react-dom';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport Checkbox from './Checkbox';\nimport Input from './Input';\nimport {Api} from '../types';\nimport {LocaleProps, localeable} from '../locale';\nimport Spinner from './Spinner';\nimport {Option, Options} from '../Schema';\nimport {RemoteOptionsProps, withRemoteConfig} from './WithRemoteConfig';\n\nexport {Option, Options};\n\nexport interface OptionProps {\n className?: string;\n multi?: boolean;\n multiple?: boolean;\n valueField?: string;\n labelField?: string;\n simpleValue?: boolean; // 默认onChange 出去是整个 option 节点,如果配置了 simpleValue 就只包含值。\n options: Options;\n loading?: boolean;\n joinValues?: boolean;\n extractValue?: boolean;\n delimiter?: string;\n clearable?: boolean;\n resetValue: any;\n placeholder?: string;\n disabled?: boolean;\n creatable?: boolean;\n pathSeparator?: string;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n editable?: boolean;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n removable?: boolean;\n onDelete?: (value: Option) => void;\n}\n\nexport type OptionValue = string | number | null | undefined | Option;\n\nexport function value2array(\n value: OptionValue | Array<OptionValue>,\n props: Pick<\n OptionProps,\n | 'multi'\n | 'multiple'\n | 'delimiter'\n | 'valueField'\n | 'labelField'\n | 'options'\n | 'pathSeparator'\n >,\n enableNodePath: boolean = false\n): Array<Option> {\n if (enableNodePath) {\n value = normalizeNodePath(\n value,\n enableNodePath,\n props.labelField,\n props.valueField,\n props.pathSeparator,\n props.delimiter\n ).nodeValueArray;\n }\n\n if (props.multi || props.multiple) {\n if (typeof value === 'string') {\n value = value.split(props.delimiter || ',');\n }\n\n if (!Array.isArray(value)) {\n if (value === null || value === undefined) {\n return [];\n }\n\n value = [value];\n }\n\n return value\n .map((value: any) => expandValue(value, props.options, props.valueField))\n .filter((item: any) => item) as Array<Option>;\n } else if (Array.isArray(value)) {\n value = value[0];\n }\n\n let expandedValue = expandValue(\n value as OptionValue,\n props.options,\n props.valueField\n );\n return expandedValue ? [expandedValue] : [];\n}\n\nexport function expandValue(\n value: OptionValue,\n options: Options,\n valueField = 'value'\n): Option | null {\n const valueType = typeof value;\n\n if (\n valueType !== 'string' &&\n valueType !== 'number' &&\n valueType !== 'boolean' &&\n valueType !== 'object'\n ) {\n return value as Option;\n }\n\n if (!options) {\n return null;\n }\n\n if (\n valueType === 'object' &&\n value &&\n value.hasOwnProperty(valueField || 'value')\n ) {\n value = (value as Option)[valueField || 'value'] ?? '';\n }\n\n return findTree(\n options,\n optionValueCompare(value, valueField || 'value')\n ) as Option;\n}\n\nexport function matchOptionValue(\n a: OptionValue,\n b: Option,\n valueField: string = 'value'\n) {\n return isObject(a)\n ? a === b[valueField || 'value']\n : String(b[valueField || 'value']) === String(a);\n}\n\nexport function optionValueCompare(\n a: OptionValue,\n valueField: string = 'value'\n) {\n return (b: Option) => matchOptionValue(a, b, valueField);\n}\n\nexport function normalizeOptions(\n options: string | {[propName: string]: string} | Array<string> | Options,\n share: {\n values: Array<any>;\n options: Array<any>;\n } = {\n values: [],\n options: []\n }\n): Options {\n if (typeof options === 'string') {\n return options.split(',').map(item => {\n const idx = share.values.indexOf(item);\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n label: item,\n value: item\n };\n\n share.values.push(option.value);\n share.options.push(option);\n\n return option;\n });\n } else if (\n Array.isArray(options as Array<string>) &&\n typeof (options as Array<string>)[0] === 'string'\n ) {\n return (options as Array<string>).map(item => {\n const idx = share.values.indexOf(item);\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n label: item,\n value: item\n };\n\n share.values.push(option.value);\n share.options.push(option);\n\n return option;\n });\n } else if (Array.isArray(options as Options)) {\n return (options as Options).map(item => {\n const value = item && item.value;\n\n const idx =\n value !== undefined && !item.children\n ? share.values.indexOf(value)\n : -1;\n\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n ...item,\n value\n };\n\n if (typeof option.children !== 'undefined') {\n option.children = normalizeOptions(option.children, share);\n } else if (value !== undefined) {\n share.values.push(value);\n share.options.push(option);\n }\n\n return option;\n });\n } else if (isPlainObject(options)) {\n return Object.keys(options).map(key => {\n const idx = share.values.indexOf(key);\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n label: (options as {[propName: string]: string})[key] as string,\n value: key\n };\n\n share.values.push(option.value);\n share.options.push(option);\n\n return option;\n });\n }\n\n return [];\n}\n\nconst DownshiftChangeTypes = Downshift.stateChangeTypes;\n\ninterface SelectProps extends OptionProps, ThemeProps, LocaleProps {\n className?: string;\n popoverClassName?: string;\n creatable: boolean;\n createBtnLabel: string;\n multiple: boolean;\n valuesNoWrap?: boolean;\n valueField: string;\n labelField: string;\n renderMenu?: (\n item: Option,\n states: {\n index: number;\n multiple?: boolean;\n checkAll?: boolean;\n checked: boolean;\n onChange: () => void;\n inputValue?: string;\n searchable?: boolean;\n }\n ) => JSX.Element;\n searchable?: boolean;\n options: Array<Option>;\n value: any;\n loadOptions?: Function;\n searchPromptText: string;\n loadingPlaceholder: string;\n spinnerClassName?: string;\n noResultsText: string;\n clearable: boolean;\n clearAllText: string;\n clearValueText: string;\n placeholder: string;\n inline: boolean;\n disabled: boolean;\n popOverContainer?: any;\n overlayPlacement?: string;\n onChange: (value: void | string | Option | Array<Option>) => void;\n onFocus?: Function;\n onBlur?: Function;\n checkAll?: boolean;\n checkAllLabel?: string;\n checkAllBySearch?: boolean;\n defaultCheckAll?: boolean;\n simpleValue?: boolean;\n defaultOpen?: boolean;\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n /**\n * 是否隐藏已选项\n */\n hideSelected?: boolean;\n}\n\ninterface SelectState {\n itemHeight: number;\n isOpen: boolean;\n isFocused: boolean;\n inputValue: string;\n highlightedIndex: number;\n selection: Array<Option>;\n}\n\nexport class Select extends React.Component<SelectProps, SelectState> {\n static defaultProps = {\n multiple: false,\n clearable: true,\n creatable: false,\n createBtnLabel: 'Select.createLabel',\n searchPromptText: 'Select.searchPromptText',\n loadingPlaceholder: 'loading',\n noResultsText: 'noResult',\n clearAllText: 'Select.clearAll',\n clearValueText: 'Select.clear',\n placeholder: 'Select.placeholder',\n valueField: 'value',\n labelField: 'label',\n resetValue: '',\n inline: false,\n disabled: false,\n checkAll: false,\n checkAllLabel: 'Select.checkAll',\n defaultCheckAll: false,\n overlayPlacement: 'auto'\n };\n\n input: HTMLInputElement;\n target: HTMLElement;\n menu: React.RefObject<HTMLDivElement> = React.createRef();\n constructor(props: SelectProps) {\n super(props);\n\n this.open = this.open.bind(this);\n this.close = this.close.bind(this);\n this.toggle = this.toggle.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.focus = this.focus.bind(this);\n this.inputRef = this.inputRef.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.clearValue = this.clearValue.bind(this);\n this.clearSearchValue = this.clearSearchValue.bind(this);\n this.handleStateChange = this.handleStateChange.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.getTarget = this.getTarget.bind(this);\n this.toggleCheckAll = this.toggleCheckAll.bind(this);\n this.handleAddClick = this.handleAddClick.bind(this);\n this.handleEditClick = this.handleEditClick.bind(this);\n this.handleDeleteClick = this.handleDeleteClick.bind(this);\n\n this.state = {\n isOpen: props.defaultOpen || false,\n isFocused: false,\n inputValue: '',\n highlightedIndex: -1,\n selection: value2array(props.value, props),\n itemHeight: 35\n };\n }\n\n componentDidMount() {\n const {loadOptions} = this.props;\n loadOptions && loadOptions('');\n }\n\n componentDidUpdate(prevProps: SelectProps) {\n const props = this.props;\n let fn: () => void = noop;\n\n if (\n JSON.stringify(props.value) !== JSON.stringify(prevProps.value) ||\n JSON.stringify(props.options) !== JSON.stringify(prevProps.options)\n ) {\n const selection: Array<Option> = value2array(props.value, props);\n this.setState(\n {\n selection: selection\n },\n fn\n );\n }\n }\n\n open() {\n this.props.disabled ||\n this.setState(\n {\n isOpen: true,\n highlightedIndex: -1\n },\n () => setTimeout(this.focus, 500)\n );\n }\n\n close() {\n this.setState({\n isOpen: false\n });\n }\n\n toggle(e?: React.MouseEvent<HTMLDivElement>) {\n if (\n e &&\n this.menu.current &&\n this.menu.current.contains(e.target as HTMLElement)\n ) {\n return;\n }\n\n this.props.disabled ||\n this.setState(\n {\n isOpen: !this.state.isOpen,\n highlightedIndex: -1\n },\n this.state.isOpen ? undefined : () => setTimeout(this.focus, 500)\n );\n }\n\n onFocus(e: any) {\n this.props.disabled ||\n this.state.isOpen ||\n this.setState(\n {\n isFocused: true\n },\n this.focus\n );\n\n this.props.onFocus && this.props.onFocus(e);\n }\n\n onBlur(e: any) {\n this.setState({\n isFocused: false\n });\n\n this.props.onBlur && this.props.onBlur(e);\n }\n\n focus() {\n this.input\n ? this.input.focus()\n : this.getTarget() && this.getTarget().focus();\n }\n\n blur() {\n this.input\n ? this.input.blur()\n : this.getTarget() && this.getTarget().blur();\n }\n\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n inputRef(ref: HTMLInputElement) {\n this.input = ref;\n }\n\n toggleCheckAll() {\n const {\n options,\n onChange,\n simpleValue,\n checkAllBySearch,\n labelField,\n valueField\n } = this.props;\n const inputValue = this.state.inputValue;\n let {selection} = this.state;\n let filtedOptions: Array<Option> =\n inputValue && checkAllBySearch\n ? matchSorter(options, inputValue, {\n keys: [labelField || 'label', valueField || 'value']\n })\n : options.concat();\n const optionsValues = filtedOptions.map(option => option.value);\n const selectionValues = selection.map(select => select.value);\n const checkedAll = optionsValues.every(\n option => selectionValues.indexOf(option) > -1\n );\n\n selection = checkedAll ? [] : filtedOptions;\n onChange(simpleValue ? selection.map(item => item.value) : selection);\n }\n\n removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n const {onChange, simpleValue, disabled} = this.props;\n if (disabled) {\n return;\n }\n let {selection: value} = this.state;\n\n e && e.stopPropagation();\n value = Array.isArray(value) ? value.concat() : [value];\n value.splice(index, 1);\n\n onChange(simpleValue ? value.map(item => item.value) : value);\n }\n\n handleInputChange(evt: React.ChangeEvent<HTMLInputElement>) {\n const {loadOptions} = this.props;\n this.setState(\n {\n inputValue: evt.currentTarget.value\n },\n () => loadOptions && loadOptions(this.state.inputValue)\n );\n }\n\n handleChange(selectItem: any) {\n const {onChange, multiple, simpleValue, valueField} = this.props;\n let {selection} = this.state;\n\n if (multiple) {\n const selectionValues = selection.map(item => item[valueField]);\n selection = selection.concat();\n const idx = selectionValues.indexOf(selectItem[valueField]);\n if (~idx) {\n selection.splice(idx, 1);\n } else {\n selection.push(selectItem);\n }\n onChange(\n simpleValue ? selection.map(item => item[valueField]) : selection\n );\n } else {\n onChange(simpleValue ? selectItem[valueField] : selectItem);\n }\n }\n\n handleStateChange(changes: any) {\n const {multiple, checkAll} = this.props;\n let update: any = {};\n\n switch (changes.type) {\n case DownshiftChangeTypes.keyDownEnter:\n case DownshiftChangeTypes.clickItem:\n update = {\n ...update,\n isOpen: multiple ? true : false,\n isFocused: multiple && checkAll ? true : false\n };\n break;\n case DownshiftChangeTypes.controlledPropUpdatedSelectedItem:\n break;\n case DownshiftChangeTypes.changeInput:\n update.highlightedIndex = 0;\n break;\n case DownshiftChangeTypes.keyDownArrowDown:\n case DownshiftChangeTypes.keyDownArrowUp:\n case DownshiftChangeTypes.itemMouseEnter:\n update = {\n ...update,\n ...changes\n };\n break;\n }\n\n if (Object.keys(update).length) {\n this.setState(update);\n }\n }\n\n handleKeyPress(e: React.KeyboardEvent) {\n if (this.props.multiple && e.key === ' ') {\n this.toggle();\n e.preventDefault();\n }\n }\n\n clearValue(e: React.MouseEvent<any>) {\n const onChange = this.props.onChange;\n e.preventDefault();\n e.stopPropagation();\n onChange(this.props.resetValue);\n }\n\n clearSearchValue() {\n const {loadOptions} = this.props;\n this.setState(\n {\n inputValue: ''\n },\n () => loadOptions?.('')\n );\n }\n\n handleAddClick() {\n const {onAdd} = this.props;\n onAdd && onAdd();\n }\n\n handleEditClick(e: Event, item: any) {\n const {onEdit} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onEdit && onEdit(item);\n }\n\n handleDeleteClick(e: Event, item: any) {\n const {onDelete} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onDelete && onDelete(item);\n }\n\n @autobind\n menuItemRef(ref: any) {\n ref && this.setState({itemHeight: ref.offsetHeight});\n }\n\n renderValue({inputValue, isOpen}: ControllerStateAndHelpers<any>) {\n const {\n multiple,\n valuesNoWrap,\n placeholder,\n classPrefix: ns,\n labelField,\n disabled,\n translate: __\n } = this.props;\n\n const selection = this.state.selection;\n // console.log('selection', selection);\n\n if (!selection.length) {\n return (\n <div key=\"placeholder\" className={`${ns}Select-placeholder`}>\n {__(placeholder)}\n </div>\n );\n }\n\n return selection.map((item, index) => {\n if (!multiple) {\n return (\n <div className={`${ns}Select-value`} key={index}>\n {`${item[labelField || 'label']}`}\n </div>\n );\n }\n\n return valuesNoWrap ? (\n `${item[labelField || 'label']}${\n index === selection.length - 1 ? '' : ' + '\n }`\n ) : (\n <div className={`${ns}Select-value`} key={index}>\n <span\n className={`${ns}Select-valueIcon ${\n disabled || item.disabled ? 'is-disabled' : ''\n }`}\n onClick={this.removeItem.bind(this, index)}\n >\n ×\n </span>\n <span className={`${ns}Select-valueLabel`}>\n {`${item[labelField || 'label']}`}\n </span>\n </div>\n );\n });\n }\n\n renderOuter({\n selectedItem,\n getItemProps,\n highlightedIndex,\n inputValue,\n isOpen,\n getToggleButtonProps,\n getInputProps\n }: ControllerStateAndHelpers<any>) {\n const {\n popOverContainer,\n options,\n valueField,\n labelField,\n noResultsText,\n loadOptions,\n creatable,\n multiple,\n valuesNoWrap,\n classnames: cx,\n popoverClassName,\n checkAll,\n checkAllLabel,\n checkAllBySearch,\n searchable,\n createBtnLabel,\n disabled,\n searchPromptText,\n editable,\n removable,\n overlayPlacement,\n translate: __,\n hideSelected,\n renderMenu\n } = this.props;\n const {selection} = this.state;\n\n let checkedAll = false;\n let checkedPartial = false;\n let filtedOptions: Array<Option> = (\n inputValue && isOpen && !loadOptions\n ? matchSorter(options, inputValue, {\n keys: [labelField || 'label', valueField || 'value']\n })\n : options.concat()\n ).filter((option: Option) => !option.hidden && option.visible !== false);\n\n const selectionValues = selection.map(select => select[valueField]);\n if (multiple && checkAll) {\n const optionsValues = (checkAllBySearch ? filtedOptions : options).map(\n option => option[valueField]\n );\n\n checkedAll = optionsValues.every(\n option => selectionValues.indexOf(option) > -1\n );\n checkedPartial = optionsValues.some(\n option => selectionValues.indexOf(option) > -1\n );\n }\n\n const itemHeight = this.state.itemHeight;\n\n // 渲染单个选项\n const renderItem = ({index, style}: {index: number; style?: object}) => {\n const item = filtedOptions[index];\n const checked =\n selectedItem === item || !!~selectionValues.indexOf(item[valueField]);\n if (hideSelected && checked) {\n return null;\n }\n return (\n <div\n {...getItemProps({\n key:\n typeof item.value === 'string'\n ? `${item.label}-${item.value}`\n : index,\n index,\n item,\n disabled: item.disabled\n })}\n style={style}\n className={cx(`Select-option`, {\n 'is-disabled': item.disabled,\n 'is-highlight': highlightedIndex === index,\n 'is-active': checked\n })}\n >\n {removable ? (\n <a data-tooltip={__('Select.clear')} data-position=\"left\">\n <Icon\n icon=\"minus\"\n className=\"icon\"\n onClick={(e: any) => this.handleDeleteClick(e, item)}\n />\n </a>\n ) : null}\n {editable ? (\n <a data-tooltip=\"编辑\" data-position=\"left\">\n <Icon\n icon=\"pencil\"\n className=\"icon\"\n onClick={(e: any) => this.handleEditClick(e, item)}\n />\n </a>\n ) : null}\n\n {renderMenu ? (\n checkAll || multiple ? (\n <Checkbox\n checked={checked}\n trueValue={item.value}\n onChange={() => {\n this.handleChange(item);\n }}\n disabled={item.disabled}\n >\n {renderMenu(item, {\n multiple,\n checkAll,\n checked,\n onChange: () => this.handleChange(item),\n inputValue: inputValue || '',\n searchable,\n index\n })}\n </Checkbox>\n ) : (\n renderMenu(item, {\n multiple,\n checkAll,\n checked,\n onChange: () => this.handleChange(item),\n inputValue: inputValue || '',\n searchable,\n index\n })\n )\n ) : checkAll || multiple ? (\n <Checkbox\n checked={checked}\n trueValue={item.value}\n onChange={() => {\n this.handleChange(item);\n }}\n disabled={item.disabled}\n size=\"sm\"\n >\n {item.disabled\n ? item[labelField]\n : highlight(\n item[labelField],\n inputValue as string,\n cx('Select-option-hl')\n )}\n\n {item.tip}\n </Checkbox>\n ) : (\n <span>\n {item.disabled\n ? item[labelField]\n : highlight(\n item[labelField],\n inputValue as string,\n cx('Select-option-hl')\n )}\n {item.tip}\n </span>\n )}\n </div>\n );\n };\n\n const menu = (\n <div\n ref={this.menu}\n className={cx('Select-menu', {\n 'Select--longlist': filtedOptions.length && filtedOptions.length > 100\n })}\n >\n {searchable ? (\n <div\n className={cx(`Select-input`, {\n 'is-focused': this.state.isFocused\n })}\n >\n <Icon icon=\"search\" className=\"icon\" />\n <Input\n {...getInputProps({\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: disabled,\n placeholder: __(searchPromptText),\n onChange: this.handleInputChange,\n ref: this.inputRef\n })}\n />\n {inputValue?.length ? (\n <a onClick={this.clearSearchValue} className={cx('Select-clear')}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n ) : null}\n {multiple && valuesNoWrap ? (\n <div className={cx('Select-option')}>\n 已选择({selectionValues.length})\n </div>\n ) : null}\n {multiple && checkAll && filtedOptions.length ? (\n <div className={cx('Select-option')}>\n <Checkbox\n checked={checkedPartial}\n partial={checkedPartial && !checkedAll}\n onChange={this.toggleCheckAll}\n size=\"sm\"\n >\n {__(checkAllLabel)}\n </Checkbox>\n </div>\n ) : null}\n\n <div ref={this.menuItemRef} className={cx('Select-option invisible')}>\n {multiple ? (\n <Checkbox size=\"sm\">Placeholder</Checkbox>\n ) : (\n <span>Placeholder</span>\n )}\n </div>\n\n {creatable && !disabled ? (\n <a className={cx('Select-addBtn')} onClick={this.handleAddClick}>\n <Icon icon=\"plus\" className=\"icon\" />\n {__(createBtnLabel)}\n </a>\n ) : null}\n\n {filtedOptions.length ? (\n filtedOptions.length > 100 ? ( // 超过 100 行数据才启用 virtuallist 避免滚动条问题\n <VirtualList\n height={\n filtedOptions.length > 8\n ? 266\n : filtedOptions.length * itemHeight\n }\n itemCount={filtedOptions.length}\n itemSize={itemHeight}\n renderItem={renderItem}\n />\n ) : (\n filtedOptions.map((item, index) => {\n return renderItem({index});\n })\n )\n ) : (\n <div className={cx('Select-noResult')}>{__(noResultsText)}</div>\n )}\n </div>\n );\n\n return (\n <Overlay\n container={popOverContainer || this.getTarget}\n target={this.getTarget}\n placement={overlayPlacement}\n show\n >\n <PopOver\n overlay\n className={cx('Select-popover', popoverClassName)}\n style={{\n minWidth: this.target ? this.target.offsetWidth : 'auto'\n }}\n onHide={this.close}\n >\n {menu}\n </PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n classnames: cx,\n multiple,\n valuesNoWrap,\n searchable,\n inline,\n className,\n value,\n loading,\n clearable,\n labelField,\n disabled,\n checkAll,\n borderMode\n } = this.props;\n\n const selection = this.state.selection;\n const inputValue = this.state.inputValue;\n const resetValue = this.props.resetValue;\n\n return (\n <Downshift\n selectedItem={selection}\n highlightedIndex={this.state.highlightedIndex}\n isOpen={this.state.isOpen}\n inputValue={inputValue}\n onChange={\n /*展示 Checkbox 的时候,会出发多次 onChange 原因待查*/ multiple ||\n checkAll\n ? noop\n : this.handleChange\n }\n onStateChange={this.handleStateChange}\n itemToString={item => (item ? `${item[labelField]}` : '')}\n >\n {(options: ControllerStateAndHelpers<any>) => {\n const {isOpen} = options;\n return (\n <div\n tabIndex={disabled ? -1 : 0}\n onKeyPress={this.handleKeyPress}\n onClick={this.toggle}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n className={cx(\n `Select`,\n {\n [`Select--multi`]: multiple,\n [`Select--inline`]: inline,\n [`Select--searchable`]: searchable,\n 'is-opened': isOpen,\n 'is-focused': this.state.isFocused,\n 'is-disabled': disabled,\n [`Select--border${ucFirst(borderMode)}`]: borderMode\n },\n className\n )}\n >\n <div\n className={cx(`Select-valueWrap`, {\n 'Select-valuesNoWrap': valuesNoWrap\n })}\n >\n {this.renderValue(options)}\n </div>\n {clearable &&\n !disabled &&\n (Array.isArray(value) ? value.length : value !== resetValue) ? (\n <a onClick={this.clearValue} className={cx('Select-clear')}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n {loading ? (\n <Spinner\n show\n icon=\"reload\"\n spinnerClassName={cx('Select-spinner')}\n />\n ) : null}\n\n <span className={cx('Select-arrow')}>\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n {isOpen ? this.renderOuter(options) : null}\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst EnhancedSelect = themeable(\n localeable(\n uncontrollable(Select, {\n value: 'onChange'\n })\n )\n);\n\nexport default EnhancedSelect;\nexport const SelectWithRemoteOptions = withRemoteConfig<Array<Options>>({\n adaptor: data => data.options || data.items || data.rows || data,\n normalizeConfig: (options: any, origin) => {\n options = normalizeOptions(options);\n\n if (Array.isArray(options)) {\n return options.concat();\n }\n\n return origin;\n }\n})(\n class extends React.Component<\n RemoteOptionsProps<Array<Options>> &\n React.ComponentProps<typeof EnhancedSelect>\n > {\n render() {\n const {loading, config, deferLoad, updateConfig, ...rest} = this.props;\n return (\n <EnhancedSelect\n {...rest}\n options={config || rest.options || []}\n loading={loading}\n />\n );\n }\n }\n);\n"
11
+ "/**\n * @file Select\n * @description\n * @author fex\n * @date 2017-11-07\n */\n\nimport {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport VirtualList from './virtual-list';\nimport Overlay from './Overlay';\nimport PopOver from './PopOver';\nimport Downshift, {ControllerStateAndHelpers} from 'downshift';\nimport {closeIcon, Icon} from './icons';\n// @ts-ignore\nimport {matchSorter} from 'match-sorter';\nimport {\n noop,\n isObject,\n findTree,\n autobind,\n ucFirst,\n normalizeNodePath\n} from '../utils/helper';\nimport find from 'lodash/find';\nimport isPlainObject from 'lodash/isPlainObject';\nimport union from 'lodash/union';\nimport {highlight} from '../renderers/Form/Options';\nimport {findDOMNode} from 'react-dom';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport Checkbox from './Checkbox';\nimport Input from './Input';\nimport {Api} from '../types';\nimport {LocaleProps, localeable} from '../locale';\nimport Spinner from './Spinner';\nimport {Option, Options} from '../Schema';\nimport {RemoteOptionsProps, withRemoteConfig} from './WithRemoteConfig';\n\nexport {Option, Options};\n\nexport interface OptionProps {\n className?: string;\n multi?: boolean;\n multiple?: boolean;\n valueField?: string;\n labelField?: string;\n simpleValue?: boolean; // 默认onChange 出去是整个 option 节点,如果配置了 simpleValue 就只包含值。\n options: Options;\n loading?: boolean;\n joinValues?: boolean;\n extractValue?: boolean;\n delimiter?: string;\n clearable?: boolean;\n resetValue: any;\n placeholder?: string;\n disabled?: boolean;\n creatable?: boolean;\n pathSeparator?: string;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n editable?: boolean;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n removable?: boolean;\n onDelete?: (value: Option) => void;\n}\n\nexport type OptionValue = string | number | null | undefined | Option;\n\nexport function value2array(\n value: OptionValue | Array<OptionValue>,\n props: Pick<\n OptionProps,\n | 'multi'\n | 'multiple'\n | 'delimiter'\n | 'valueField'\n | 'labelField'\n | 'options'\n | 'pathSeparator'\n >,\n enableNodePath: boolean = false\n): Array<Option> {\n if (enableNodePath) {\n value = normalizeNodePath(\n value,\n enableNodePath,\n props.labelField,\n props.valueField,\n props.pathSeparator,\n props.delimiter\n ).nodeValueArray;\n }\n\n if (props.multi || props.multiple) {\n if (typeof value === 'string') {\n value = value.split(props.delimiter || ',');\n }\n\n if (!Array.isArray(value)) {\n if (value === null || value === undefined) {\n return [];\n }\n\n value = [value];\n }\n\n return value\n .map((value: any) => expandValue(value, props.options, props.valueField))\n .filter((item: any) => item) as Array<Option>;\n } else if (Array.isArray(value)) {\n value = value[0];\n }\n\n let expandedValue = expandValue(\n value as OptionValue,\n props.options,\n props.valueField\n );\n return expandedValue ? [expandedValue] : [];\n}\n\nexport function expandValue(\n value: OptionValue,\n options: Options,\n valueField = 'value'\n): Option | null {\n const valueType = typeof value;\n\n if (\n valueType !== 'string' &&\n valueType !== 'number' &&\n valueType !== 'boolean' &&\n valueType !== 'object'\n ) {\n return value as Option;\n }\n\n if (!options) {\n return null;\n }\n\n if (\n valueType === 'object' &&\n value &&\n value.hasOwnProperty(valueField || 'value')\n ) {\n value = (value as Option)[valueField || 'value'] ?? '';\n }\n\n return findTree(\n options,\n optionValueCompare(value, valueField || 'value')\n ) as Option;\n}\n\nexport function matchOptionValue(\n a: OptionValue,\n b: Option,\n valueField: string = 'value'\n) {\n return isObject(a)\n ? a === b[valueField || 'value']\n : String(b[valueField || 'value']) === String(a);\n}\n\nexport function optionValueCompare(\n a: OptionValue,\n valueField: string = 'value'\n) {\n return (b: Option) => matchOptionValue(a, b, valueField);\n}\n\nexport function normalizeOptions(\n options: string | {[propName: string]: string} | Array<string> | Options,\n share: {\n values: Array<any>;\n options: Array<any>;\n } = {\n values: [],\n options: []\n }\n): Options {\n if (typeof options === 'string') {\n return options.split(',').map(item => {\n const idx = share.values.indexOf(item);\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n label: item,\n value: item\n };\n\n share.values.push(option.value);\n share.options.push(option);\n\n return option;\n });\n } else if (\n Array.isArray(options as Array<string>) &&\n typeof (options as Array<string>)[0] === 'string'\n ) {\n return (options as Array<string>).map(item => {\n const idx = share.values.indexOf(item);\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n label: item,\n value: item\n };\n\n share.values.push(option.value);\n share.options.push(option);\n\n return option;\n });\n } else if (Array.isArray(options as Options)) {\n return (options as Options).map(item => {\n const value = item && item.value;\n\n const idx =\n value !== undefined && !item.children\n ? share.values.indexOf(value)\n : -1;\n\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n ...item,\n value\n };\n\n if (typeof option.children !== 'undefined') {\n option.children = normalizeOptions(option.children, share);\n } else if (value !== undefined) {\n share.values.push(value);\n share.options.push(option);\n }\n\n return option;\n });\n } else if (isPlainObject(options)) {\n return Object.keys(options).map(key => {\n const idx = share.values.indexOf(key);\n if (~idx) {\n return share.options[idx];\n }\n\n const option = {\n label: (options as {[propName: string]: string})[key] as string,\n value: key\n };\n\n share.values.push(option.value);\n share.options.push(option);\n\n return option;\n });\n }\n\n return [];\n}\n\nconst DownshiftChangeTypes = Downshift.stateChangeTypes;\n\ninterface SelectProps extends OptionProps, ThemeProps, LocaleProps {\n className?: string;\n popoverClassName?: string;\n creatable: boolean;\n createBtnLabel: string;\n multiple: boolean;\n valuesNoWrap?: boolean;\n valueField: string;\n labelField: string;\n renderMenu?: (\n item: Option,\n states: {\n index: number;\n multiple?: boolean;\n checkAll?: boolean;\n checked: boolean;\n onChange: () => void;\n inputValue?: string;\n searchable?: boolean;\n }\n ) => JSX.Element;\n searchable?: boolean;\n options: Array<Option>;\n value: any;\n loadOptions?: Function;\n searchPromptText: string;\n loadingPlaceholder: string;\n spinnerClassName?: string;\n noResultsText: string;\n clearable: boolean;\n clearAllText: string;\n clearValueText: string;\n placeholder: string;\n inline: boolean;\n disabled: boolean;\n popOverContainer?: any;\n overlayPlacement?: string;\n onChange: (value: void | string | Option | Array<Option>) => void;\n onFocus?: Function;\n onBlur?: Function;\n checkAll?: boolean;\n checkAllLabel?: string;\n checkAllBySearch?: boolean;\n defaultCheckAll?: boolean;\n simpleValue?: boolean;\n defaultOpen?: boolean;\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n /**\n * 是否隐藏已选项\n */\n hideSelected?: boolean;\n}\n\ninterface SelectState {\n itemHeight: number;\n isOpen: boolean;\n isFocused: boolean;\n inputValue: string;\n highlightedIndex: number;\n selection: Array<Option>;\n}\n\nexport class Select extends React.Component<SelectProps, SelectState> {\n static defaultProps = {\n multiple: false,\n clearable: true,\n creatable: false,\n createBtnLabel: 'Select.createLabel',\n searchPromptText: 'Select.searchPromptText',\n loadingPlaceholder: 'loading',\n noResultsText: 'noResult',\n clearAllText: 'Select.clearAll',\n clearValueText: 'Select.clear',\n placeholder: 'Select.placeholder',\n valueField: 'value',\n labelField: 'label',\n resetValue: '',\n inline: false,\n disabled: false,\n checkAll: false,\n checkAllLabel: 'Select.checkAll',\n defaultCheckAll: false,\n overlayPlacement: 'auto'\n };\n\n input: HTMLInputElement;\n target: HTMLElement;\n menu: React.RefObject<HTMLDivElement> = React.createRef();\n constructor(props: SelectProps) {\n super(props);\n\n this.open = this.open.bind(this);\n this.close = this.close.bind(this);\n this.toggle = this.toggle.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.focus = this.focus.bind(this);\n this.inputRef = this.inputRef.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.clearValue = this.clearValue.bind(this);\n this.clearSearchValue = this.clearSearchValue.bind(this);\n this.handleStateChange = this.handleStateChange.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.getTarget = this.getTarget.bind(this);\n this.toggleCheckAll = this.toggleCheckAll.bind(this);\n this.handleAddClick = this.handleAddClick.bind(this);\n this.handleEditClick = this.handleEditClick.bind(this);\n this.handleDeleteClick = this.handleDeleteClick.bind(this);\n\n this.state = {\n isOpen: props.defaultOpen || false,\n isFocused: false,\n inputValue: '',\n highlightedIndex: -1,\n selection: value2array(props.value, props),\n itemHeight: 35\n };\n }\n\n componentDidMount() {\n const {loadOptions} = this.props;\n loadOptions && loadOptions('');\n }\n\n componentDidUpdate(prevProps: SelectProps) {\n const props = this.props;\n let fn: () => void = noop;\n\n if (\n JSON.stringify(props.value) !== JSON.stringify(prevProps.value) ||\n JSON.stringify(props.options) !== JSON.stringify(prevProps.options)\n ) {\n const selection: Array<Option> = value2array(props.value, props);\n this.setState(\n {\n selection: selection\n },\n fn\n );\n }\n }\n\n open() {\n this.props.disabled ||\n this.setState(\n {\n isOpen: true,\n highlightedIndex: -1\n },\n () => setTimeout(this.focus, 500)\n );\n }\n\n close() {\n this.setState({\n isOpen: false\n });\n }\n\n toggle(e?: React.MouseEvent<HTMLDivElement>) {\n if (\n e &&\n this.menu.current &&\n this.menu.current.contains(e.target as HTMLElement)\n ) {\n return;\n }\n\n this.props.disabled ||\n this.setState(\n {\n isOpen: !this.state.isOpen,\n highlightedIndex: -1\n },\n this.state.isOpen ? undefined : () => setTimeout(this.focus, 500)\n );\n }\n\n onFocus(e: any) {\n this.props.disabled ||\n this.state.isOpen ||\n this.setState(\n {\n isFocused: true\n },\n this.focus\n );\n\n this.props.onFocus && this.props.onFocus(e);\n }\n\n onBlur(e: any) {\n this.setState({\n isFocused: false\n });\n\n this.props.onBlur && this.props.onBlur(e);\n }\n\n focus() {\n this.input\n ? this.input.focus()\n : this.getTarget() && this.getTarget().focus();\n }\n\n blur() {\n this.input\n ? this.input.blur()\n : this.getTarget() && this.getTarget().blur();\n }\n\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n inputRef(ref: HTMLInputElement) {\n this.input = ref;\n }\n\n toggleCheckAll() {\n const {\n options,\n onChange,\n simpleValue,\n checkAllBySearch,\n labelField,\n valueField\n } = this.props;\n const inputValue = this.state.inputValue;\n let {selection} = this.state;\n let filtedOptions: Array<Option> =\n inputValue && checkAllBySearch\n ? matchSorter(options, inputValue, {\n keys: [labelField || 'label', valueField || 'value']\n })\n : options.concat();\n const optionsValues = filtedOptions.map(option => option.value);\n const selectionValues = selection.map(select => select.value);\n const checkedAll = optionsValues.every(\n option => selectionValues.indexOf(option) > -1\n );\n\n selection = checkedAll ? [] : filtedOptions;\n onChange(simpleValue ? selection.map(item => item.value) : selection);\n }\n\n removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n const {onChange, simpleValue, disabled} = this.props;\n if (disabled) {\n return;\n }\n let {selection: value} = this.state;\n\n e && e.stopPropagation();\n value = Array.isArray(value) ? value.concat() : [value];\n value.splice(index, 1);\n\n onChange(simpleValue ? value.map(item => item.value) : value);\n }\n\n handleInputChange(evt: React.ChangeEvent<HTMLInputElement>) {\n const {loadOptions} = this.props;\n this.setState(\n {\n inputValue: evt.currentTarget.value\n },\n () => loadOptions && loadOptions(this.state.inputValue)\n );\n }\n\n handleChange(selectItem: any) {\n const {onChange, multiple, simpleValue, valueField} = this.props;\n let {selection} = this.state;\n\n if (multiple) {\n const selectionValues = selection.map(item => item[valueField]);\n selection = selection.concat();\n const idx = selectionValues.indexOf(selectItem[valueField]);\n if (~idx) {\n selection.splice(idx, 1);\n } else {\n selection.push(selectItem);\n }\n onChange(\n simpleValue ? selection.map(item => item[valueField]) : selection\n );\n } else {\n onChange(simpleValue ? selectItem[valueField] : selectItem);\n }\n }\n\n handleStateChange(changes: any) {\n const {multiple, checkAll} = this.props;\n let update: any = {};\n\n switch (changes.type) {\n case DownshiftChangeTypes.keyDownEnter:\n case DownshiftChangeTypes.clickItem:\n update = {\n ...update,\n isOpen: multiple ? true : false,\n isFocused: multiple && checkAll ? true : false\n };\n break;\n case DownshiftChangeTypes.controlledPropUpdatedSelectedItem:\n break;\n case DownshiftChangeTypes.changeInput:\n update.highlightedIndex = 0;\n break;\n case DownshiftChangeTypes.keyDownArrowDown:\n case DownshiftChangeTypes.keyDownArrowUp:\n case DownshiftChangeTypes.itemMouseEnter:\n update = {\n ...update,\n ...changes\n };\n break;\n }\n\n if (Object.keys(update).length) {\n this.setState(update);\n }\n }\n\n handleKeyPress(e: React.KeyboardEvent) {\n if (this.props.multiple && e.key === ' ') {\n this.toggle();\n e.preventDefault();\n }\n }\n\n clearValue(e: React.MouseEvent<any>) {\n const onChange = this.props.onChange;\n e.preventDefault();\n e.stopPropagation();\n onChange(this.props.resetValue);\n }\n\n clearSearchValue() {\n const {loadOptions} = this.props;\n this.setState(\n {\n inputValue: ''\n },\n () => loadOptions?.('')\n );\n }\n\n handleAddClick() {\n const {onAdd} = this.props;\n onAdd && onAdd();\n }\n\n handleEditClick(e: Event, item: any) {\n const {onEdit} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onEdit && onEdit(item);\n }\n\n handleDeleteClick(e: Event, item: any) {\n const {onDelete} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onDelete && onDelete(item);\n }\n\n @autobind\n menuItemRef(ref: any) {\n ref && this.setState({itemHeight: ref.offsetHeight});\n }\n\n renderValue({inputValue, isOpen}: ControllerStateAndHelpers<any>) {\n const {\n multiple,\n valuesNoWrap,\n placeholder,\n classPrefix: ns,\n labelField,\n disabled,\n translate: __\n } = this.props;\n\n const selection = this.state.selection;\n // console.log('selection', selection);\n\n if (!selection.length) {\n return (\n <div key=\"placeholder\" className={`${ns}Select-placeholder`}>\n {__(placeholder)}\n </div>\n );\n }\n\n return selection.map((item, index) => {\n if (!multiple) {\n return (\n <div className={`${ns}Select-value`} key={index}>\n {`${item[labelField || 'label']}`}\n </div>\n );\n }\n\n return valuesNoWrap ? (\n `${item[labelField || 'label']}${\n index === selection.length - 1 ? '' : ' + '\n }`\n ) : (\n <div className={`${ns}Select-value`} key={index}>\n <span\n className={`${ns}Select-valueIcon ${\n disabled || item.disabled ? 'is-disabled' : ''\n }`}\n onClick={this.removeItem.bind(this, index)}\n >\n ×\n </span>\n <span className={`${ns}Select-valueLabel`}>\n {`${item[labelField || 'label']}`}\n </span>\n </div>\n );\n });\n }\n\n renderOuter({\n selectedItem,\n getItemProps,\n highlightedIndex,\n inputValue,\n isOpen,\n getToggleButtonProps,\n getInputProps\n }: ControllerStateAndHelpers<any>) {\n const {\n popOverContainer,\n options,\n valueField,\n labelField,\n noResultsText,\n loadOptions,\n creatable,\n multiple,\n valuesNoWrap,\n classnames: cx,\n popoverClassName,\n checkAll,\n checkAllLabel,\n checkAllBySearch,\n searchable,\n createBtnLabel,\n disabled,\n searchPromptText,\n editable,\n removable,\n overlayPlacement,\n translate: __,\n hideSelected,\n renderMenu\n } = this.props;\n const {selection} = this.state;\n\n let checkedAll = false;\n let checkedPartial = false;\n let filtedOptions: Array<Option> = (\n inputValue && isOpen && !loadOptions\n ? matchSorter(options, inputValue, {\n keys: [labelField || 'label', valueField || 'value']\n })\n : options.concat()\n ).filter((option: Option) => !option.hidden && option.visible !== false);\n\n const selectionValues = selection.map(select => select[valueField]);\n if (multiple && checkAll) {\n const optionsValues = (checkAllBySearch ? filtedOptions : options).map(\n option => option[valueField]\n );\n\n checkedAll = optionsValues.every(\n option => selectionValues.indexOf(option) > -1\n );\n checkedPartial = optionsValues.some(\n option => selectionValues.indexOf(option) > -1\n );\n }\n\n const itemHeight = this.state.itemHeight;\n\n // 渲染单个选项\n const renderItem = ({index, style}: {index: number; style?: object}) => {\n const item = filtedOptions[index];\n if (!item) {\n return null;\n }\n const checked =\n selectedItem === item || !!~selectionValues.indexOf(item[valueField]);\n if (hideSelected && checked) {\n return null;\n }\n return (\n <div\n {...getItemProps({\n key:\n typeof item.value === 'string'\n ? `${item.label}-${item.value}`\n : index,\n index,\n item,\n disabled: item.disabled\n })}\n style={style}\n className={cx(`Select-option`, {\n 'is-disabled': item.disabled,\n 'is-highlight': highlightedIndex === index,\n 'is-active': checked\n })}\n >\n {removable ? (\n <a data-tooltip={__('Select.clear')} data-position=\"left\">\n <Icon\n icon=\"minus\"\n className=\"icon\"\n onClick={(e: any) => this.handleDeleteClick(e, item)}\n />\n </a>\n ) : null}\n {editable ? (\n <a data-tooltip=\"编辑\" data-position=\"left\">\n <Icon\n icon=\"pencil\"\n className=\"icon\"\n onClick={(e: any) => this.handleEditClick(e, item)}\n />\n </a>\n ) : null}\n\n {renderMenu ? (\n checkAll || multiple ? (\n <Checkbox\n checked={checked}\n trueValue={item.value}\n onChange={() => {\n this.handleChange(item);\n }}\n disabled={item.disabled}\n >\n {renderMenu(item, {\n multiple,\n checkAll,\n checked,\n onChange: () => this.handleChange(item),\n inputValue: inputValue || '',\n searchable,\n index\n })}\n </Checkbox>\n ) : (\n renderMenu(item, {\n multiple,\n checkAll,\n checked,\n onChange: () => this.handleChange(item),\n inputValue: inputValue || '',\n searchable,\n index\n })\n )\n ) : checkAll || multiple ? (\n <Checkbox\n checked={checked}\n trueValue={item.value}\n onChange={() => {\n this.handleChange(item);\n }}\n disabled={item.disabled}\n size=\"sm\"\n >\n {item.disabled\n ? item[labelField]\n : highlight(\n item[labelField],\n inputValue as string,\n cx('Select-option-hl')\n )}\n\n {item.tip}\n </Checkbox>\n ) : (\n <span>\n {item.disabled\n ? item[labelField]\n : highlight(\n item[labelField],\n inputValue as string,\n cx('Select-option-hl')\n )}\n {item.tip}\n </span>\n )}\n </div>\n );\n };\n\n const menu = (\n <div\n ref={this.menu}\n className={cx('Select-menu', {\n 'Select--longlist': filtedOptions.length && filtedOptions.length > 100\n })}\n >\n {searchable ? (\n <div\n className={cx(`Select-input`, {\n 'is-focused': this.state.isFocused\n })}\n >\n <Icon icon=\"search\" className=\"icon\" />\n <Input\n {...getInputProps({\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: disabled,\n placeholder: __(searchPromptText),\n onChange: this.handleInputChange,\n ref: this.inputRef\n })}\n />\n {inputValue?.length ? (\n <a onClick={this.clearSearchValue} className={cx('Select-clear')}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n ) : null}\n {multiple && valuesNoWrap ? (\n <div className={cx('Select-option')}>\n 已选择({selectionValues.length})\n </div>\n ) : null}\n {multiple && checkAll && filtedOptions.length ? (\n <div className={cx('Select-option')}>\n <Checkbox\n checked={checkedPartial}\n partial={checkedPartial && !checkedAll}\n onChange={this.toggleCheckAll}\n size=\"sm\"\n >\n {__(checkAllLabel)}\n </Checkbox>\n </div>\n ) : null}\n\n <div ref={this.menuItemRef} className={cx('Select-option invisible')}>\n {multiple ? (\n <Checkbox size=\"sm\">Placeholder</Checkbox>\n ) : (\n <span>Placeholder</span>\n )}\n </div>\n\n {creatable && !disabled ? (\n <a className={cx('Select-addBtn')} onClick={this.handleAddClick}>\n <Icon icon=\"plus\" className=\"icon\" />\n {__(createBtnLabel)}\n </a>\n ) : null}\n\n {filtedOptions.length ? (\n filtedOptions.length > 100 ? ( // 超过 100 行数据才启用 virtuallist 避免滚动条问题\n <VirtualList\n height={\n filtedOptions.length > 8\n ? 266\n : filtedOptions.length * itemHeight\n }\n itemCount={filtedOptions.length}\n itemSize={itemHeight}\n renderItem={renderItem}\n />\n ) : (\n filtedOptions.map((item, index) => {\n return renderItem({index});\n })\n )\n ) : (\n <div className={cx('Select-noResult')}>{__(noResultsText)}</div>\n )}\n </div>\n );\n\n return (\n <Overlay\n container={popOverContainer || this.getTarget}\n target={this.getTarget}\n placement={overlayPlacement}\n show\n >\n <PopOver\n overlay\n className={cx('Select-popover', popoverClassName)}\n style={{\n minWidth: this.target ? this.target.offsetWidth : 'auto'\n }}\n onHide={this.close}\n >\n {menu}\n </PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n classnames: cx,\n multiple,\n valuesNoWrap,\n searchable,\n inline,\n className,\n value,\n loading,\n clearable,\n labelField,\n disabled,\n checkAll,\n borderMode\n } = this.props;\n\n const selection = this.state.selection;\n const inputValue = this.state.inputValue;\n const resetValue = this.props.resetValue;\n\n return (\n <Downshift\n selectedItem={selection}\n highlightedIndex={this.state.highlightedIndex}\n isOpen={this.state.isOpen}\n inputValue={inputValue}\n onChange={\n /*展示 Checkbox 的时候,会出发多次 onChange 原因待查*/ multiple ||\n checkAll\n ? noop\n : this.handleChange\n }\n onStateChange={this.handleStateChange}\n itemToString={item => (item ? `${item[labelField]}` : '')}\n >\n {(options: ControllerStateAndHelpers<any>) => {\n const {isOpen} = options;\n return (\n <div\n tabIndex={disabled ? -1 : 0}\n onKeyPress={this.handleKeyPress}\n onClick={this.toggle}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n className={cx(\n `Select`,\n {\n [`Select--multi`]: multiple,\n [`Select--inline`]: inline,\n [`Select--searchable`]: searchable,\n 'is-opened': isOpen,\n 'is-focused': this.state.isFocused,\n 'is-disabled': disabled,\n [`Select--border${ucFirst(borderMode)}`]: borderMode\n },\n className\n )}\n >\n <div\n className={cx(`Select-valueWrap`, {\n 'Select-valuesNoWrap': valuesNoWrap\n })}\n >\n {this.renderValue(options)}\n </div>\n {clearable &&\n !disabled &&\n (Array.isArray(value) ? value.length : value !== resetValue) ? (\n <a onClick={this.clearValue} className={cx('Select-clear')}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n {loading ? (\n <Spinner\n show\n icon=\"reload\"\n spinnerClassName={cx('Select-spinner')}\n />\n ) : null}\n\n <span className={cx('Select-arrow')}>\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n {isOpen ? this.renderOuter(options) : null}\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst EnhancedSelect = themeable(\n localeable(\n uncontrollable(Select, {\n value: 'onChange'\n })\n )\n);\n\nexport default EnhancedSelect;\nexport const SelectWithRemoteOptions = withRemoteConfig<Array<Options>>({\n adaptor: data => data.options || data.items || data.rows || data,\n normalizeConfig: (options: any, origin) => {\n options = normalizeOptions(options);\n\n if (Array.isArray(options)) {\n return options.concat();\n }\n\n return origin;\n }\n})(\n class extends React.Component<\n RemoteOptionsProps<Array<Options>> &\n React.ComponentProps<typeof EnhancedSelect>\n > {\n render() {\n const {loading, config, deferLoad, updateConfig, ...rest} = this.props;\n\n return (\n <EnhancedSelect\n {...rest}\n options={config || rest.options || []}\n loading={loading}\n />\n );\n }\n }\n);\n"
12
12
  ]
13
13
  }