amis 1.8.0-beta.13 → 1.8.0-beta.17

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 (120) hide show
  1. package/lib/WithStore.js +1 -1
  2. package/lib/WithStore.js.map +2 -2
  3. package/lib/components/DatePicker.js +3 -1
  4. package/lib/components/DatePicker.js.map +2 -2
  5. package/lib/components/Progress.js +3 -4
  6. package/lib/components/Progress.js.map +2 -2
  7. package/lib/components/TabsTransfer.d.ts +22 -3
  8. package/lib/components/TabsTransfer.js +149 -42
  9. package/lib/components/TabsTransfer.js.map +2 -2
  10. package/lib/components/Tree.js +3 -1
  11. package/lib/components/Tree.js.map +2 -2
  12. package/lib/components/formula/Editor.js +4 -4
  13. package/lib/components/formula/Editor.js.map +2 -2
  14. package/lib/components/formula/VariableList.d.ts +63 -4
  15. package/lib/components/formula/VariableList.js +23 -8
  16. package/lib/components/formula/VariableList.js.map +2 -2
  17. package/lib/helper.css +1 -1
  18. package/lib/helper.css.map +1 -1
  19. package/lib/index.js +1 -1
  20. package/lib/renderers/Date.js +6 -1
  21. package/lib/renderers/Date.js.map +2 -2
  22. package/lib/renderers/Form/NestedSelect.d.ts +1 -1
  23. package/lib/renderers/Form/NestedSelect.js +7 -2
  24. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  25. package/lib/renderers/Form/TabsTransfer.d.ts +6 -1
  26. package/lib/renderers/Form/TabsTransfer.js +155 -6
  27. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  28. package/lib/renderers/Form/TabsTransferPicker.d.ts +2 -2
  29. package/lib/renderers/Form/TabsTransferPicker.js +4 -4
  30. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  31. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  32. package/lib/renderers/Form/index.js +6 -2
  33. package/lib/renderers/Form/index.js.map +2 -2
  34. package/lib/renderers/Markdown.js +4 -3
  35. package/lib/renderers/Markdown.js.map +2 -2
  36. package/lib/renderers/Nav.d.ts +21 -20
  37. package/lib/renderers/Nav.js +8 -1
  38. package/lib/renderers/Nav.js.map +2 -2
  39. package/lib/renderers/Page.js +1 -1
  40. package/lib/renderers/Page.js.map +2 -2
  41. package/lib/renderers/Service.js +1 -1
  42. package/lib/renderers/Service.js.map +2 -2
  43. package/lib/renderers/Table/exportExcel.d.ts +6 -0
  44. package/lib/renderers/Table/exportExcel.js +288 -0
  45. package/lib/renderers/Table/exportExcel.js.map +13 -0
  46. package/lib/renderers/Table/index.d.ts +1 -1
  47. package/lib/renderers/Table/index.js +4 -251
  48. package/lib/renderers/Table/index.js.map +2 -2
  49. package/lib/themes/ang-ie11.css +112 -36
  50. package/lib/themes/ang.css +100 -21
  51. package/lib/themes/ang.css.map +1 -1
  52. package/lib/themes/antd-ie11.css +112 -36
  53. package/lib/themes/antd.css +100 -21
  54. package/lib/themes/antd.css.map +1 -1
  55. package/lib/themes/cxd-ie11.css +97 -21
  56. package/lib/themes/cxd.css +100 -21
  57. package/lib/themes/cxd.css.map +1 -1
  58. package/lib/themes/dark-ie11.css +112 -36
  59. package/lib/themes/dark.css +100 -21
  60. package/lib/themes/dark.css.map +1 -1
  61. package/lib/themes/default-ie11.css +97 -21
  62. package/lib/themes/default.css +100 -21
  63. package/lib/themes/default.css.map +1 -1
  64. package/lib/utils/api.js +35 -6
  65. package/lib/utils/api.js.map +2 -2
  66. package/package.json +1 -1
  67. package/schema.json +1 -1
  68. package/scss/_properties.scss +4 -0
  69. package/scss/components/_formula.scss +77 -12
  70. package/scss/components/_progress.scss +2 -7
  71. package/scss/components/form/_date.scss +1 -0
  72. package/scss/components/form/_transfer.scss +21 -0
  73. package/scss/helper/layout/_display.scss +1 -1
  74. package/sdk/ang-ie11.css +130 -36
  75. package/sdk/ang.css +118 -21
  76. package/sdk/antd-ie11.css +130 -36
  77. package/sdk/antd.css +118 -21
  78. package/sdk/barcode.js +51 -51
  79. package/sdk/charts.js +14 -14
  80. package/sdk/codemirror.js +7 -7
  81. package/sdk/color-picker.js +65 -65
  82. package/sdk/cropperjs.js +2 -2
  83. package/sdk/cxd-ie11.css +115 -21
  84. package/sdk/cxd.css +118 -21
  85. package/sdk/dark-ie11.css +130 -36
  86. package/sdk/dark.css +118 -21
  87. package/sdk/exceljs.js +1 -1
  88. package/sdk/helper.css +1 -1
  89. package/sdk/helper.css.map +1 -1
  90. package/sdk/markdown.js +69 -69
  91. package/sdk/papaparse.js +1 -1
  92. package/sdk/renderers/Form/CityDB.js +1 -1
  93. package/sdk/rest.js +17 -17
  94. package/sdk/rich-text.js +62 -62
  95. package/sdk/sdk-ie11.css +115 -21
  96. package/sdk/sdk.css +118 -21
  97. package/sdk/sdk.js +1270 -1268
  98. package/sdk/thirds/hls.js/hls.js +1 -1
  99. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  100. package/sdk/tinymce.js +57 -57
  101. package/src/WithStore.tsx +1 -1
  102. package/src/components/DatePicker.tsx +2 -1
  103. package/src/components/Progress.tsx +6 -4
  104. package/src/components/TabsTransfer.tsx +253 -143
  105. package/src/components/Tree.tsx +3 -1
  106. package/src/components/formula/Editor.tsx +12 -5
  107. package/src/components/formula/VariableList.tsx +55 -21
  108. package/src/renderers/Date.tsx +14 -1
  109. package/src/renderers/Form/NestedSelect.tsx +11 -2
  110. package/src/renderers/Form/TabsTransfer.tsx +174 -11
  111. package/src/renderers/Form/TabsTransferPicker.tsx +5 -10
  112. package/src/renderers/Form/TreeSelect.tsx +15 -12
  113. package/src/renderers/Form/index.tsx +37 -16
  114. package/src/renderers/Markdown.tsx +4 -5
  115. package/src/renderers/Nav.tsx +7 -1
  116. package/src/renderers/Page.tsx +9 -2
  117. package/src/renderers/Service.tsx +8 -2
  118. package/src/renderers/Table/exportExcel.ts +289 -0
  119. package/src/renderers/Table/index.tsx +5 -252
  120. package/src/utils/api.ts +42 -10
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerLocale = exports.setDefaultLocale = exports.getDefaultLocale = exports.classnames = exports.getClassPrefix = exports.classPrefix = exports.getTheme = exports.theme = exports.setDefaultTheme = exports.validateObject = exports.validate = exports.ScopedContext = exports.Scoped = exports.registerIcon = exports.Icon = exports.setIconVendor = exports.resolveVariableAndFilter = exports.resolveVariable = exports.relativeValueRe = exports.filterDate = exports.filterSchema = exports.resolveRenderer = exports.registerOptionsControl = exports.registerFormItem = exports.getRenderers = exports.unRegisterRenderer = exports.registerRenderer = exports.getRendererByName = exports.normalizeOptions = exports.str2rules = exports.addRule = exports.setCustomEvalExpression = exports.setCustomEvalJs = exports.evalJS = exports.evalExpression = exports.registerTplEnginer = exports.registerFilter = exports.resizeSensor = exports.utils = exports.filter = exports.buildApi = exports.wrapFetcher = exports.OptionsControl = exports.FormItemWrap = exports.FormItem = exports.RegisterStore = exports.Renderer = exports.updateEnv = exports.clearStoresCache = exports.render = void 0;
4
4
  exports.animation = exports.makeTranslator = void 0;
5
5
  var tslib_1 = require("tslib");
6
- /** @license amis v1.8.0-beta.13
6
+ /** @license amis v1.8.0-beta.17
7
7
  *
8
8
  * Copyright Baidu
9
9
  *
@@ -34,6 +34,8 @@ var DateField = /** @class */ (function (_super) {
34
34
  var _a = this.props, valueFormat = _a.valueFormat, format = _a.format, placeholder = _a.placeholder, fromNow = _a.fromNow, className = _a.className, cx = _a.classnames, __ = _a.translate;
35
35
  var viewValue = (react_1.default.createElement("span", { className: "text-muted" }, placeholder));
36
36
  var value = (0, helper_1.getPropValue)(this.props);
37
+ // 主要是给 fromNow 用的
38
+ var date;
37
39
  if (value) {
38
40
  var ISODate = (0, moment_1.default)(value, moment_1.default.ISO_8601);
39
41
  var NormalDate = (0, moment_1.default)(value, valueFormat);
@@ -42,12 +44,15 @@ var DateField = /** @class */ (function (_super) {
42
44
  : NormalDate.isValid()
43
45
  ? NormalDate.format(format)
44
46
  : false;
47
+ if (viewValue) {
48
+ date = viewValue;
49
+ }
45
50
  }
46
51
  if (fromNow) {
47
52
  viewValue = (0, moment_1.default)(viewValue).fromNow();
48
53
  }
49
54
  viewValue = !viewValue ? (react_1.default.createElement("span", { className: "text-danger" }, __('Date.invalid'))) : (viewValue);
50
- return react_1.default.createElement("span", { className: cx('DateField', className) }, viewValue);
55
+ return (react_1.default.createElement("span", { className: cx('DateField', className), title: fromNow ? date : undefined }, viewValue));
51
56
  };
52
57
  DateField.defaultProps = {
53
58
  placeholder: '-',
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Date.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA,6DAA0B;AAC1B,sCAAmD;AACnD,+DAA4B;AAE5B,0CAA6C;AAoD7C;IAA+B,0CAAqC;IAApE;QAAA,qEA0EC;QA5DC,qBAAqB;QACrB,WAAK,GAAc;YACjB,MAAM,EAAE,CAAC;SACV,CAAC;;IAyDJ,CAAC;IAvDC,qCAAiB,GAAjB;QAAA,iBAUC;QATO,IAAA,KAA6B,IAAI,CAAC,KAAK,EAAtC,OAAO,aAAA,EAAE,eAAe,qBAAc,CAAC;QAE9C,IAAI,OAAO,IAAI,eAAe,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;gBACjC,KAAI,CAAC,QAAQ,CAAC;oBACZ,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC,EAAE,eAAe,CAAC,CAAC;SACrB;IACH,CAAC;IAED,wCAAoB,GAApB;QACE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,0BAAM,GAAN;QACQ,IAAA,KAQF,IAAI,CAAC,KAAK,EAPZ,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,SAAS,eAAA,EACG,EAAE,gBAAA,EACH,EAAE,eACD,CAAC;QACf,IAAI,SAAS,GAAoB,CAC/B,wCAAM,SAAS,EAAC,YAAY,IAAE,WAAW,CAAQ,CAClD,CAAC;QAEF,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,KAAK,EAAE;YACT,IAAI,OAAO,GAAG,IAAA,gBAAM,EAAC,KAAK,EAAE,gBAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,UAAU,GAAG,IAAA,gBAAM,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAE5C,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE;gBAC3B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE;oBACtB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC3B,CAAC,CAAC,KAAK,CAAC;SACX;QAED,IAAI,OAAO,EAAE;YACX,SAAS,GAAG,IAAA,gBAAM,EAAC,SAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;SACnD;QAED,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CACvB,wCAAM,SAAS,EAAC,aAAa,IAAE,EAAE,CAAC,cAAc,CAAC,CAAQ,CAC1D,CAAC,CAAC,CAAC,CACF,SAAS,CACV,CAAC;QAEF,OAAO,wCAAM,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,IAAG,SAAS,CAAQ,CAAC;IACzE,CAAC;IAtEM,sBAAY,GAGf;QACF,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,GAAG;QAChB,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,KAAK;KACvB,CAAC;IA8DJ,gBAAC;CAAA,AA1ED,CAA+B,eAAK,CAAC,SAAS,GA0E7C;AA1EY,8BAAS;AA+EtB;IAAuC,kDAAS;IAAhD;;IAKA,CAAC;IAJQ,8BAAY,mDACd,SAAS,CAAC,YAAY,KACzB,MAAM,EAAE,YAAY,GACpB,CAAA;IAJS,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,MAAM;SACb,CAAC;OACW,iBAAiB,CAK7B;IAAD,wBAAC;CAAA,AALD,CAAuC,SAAS,GAK/C;AALY,8CAAiB;AAU9B;IAA2C,sDAAS;IAApD;;IAKA,CAAC;IAJQ,kCAAY,mDACd,SAAS,CAAC,YAAY,KACzB,MAAM,EAAE,qBAAqB,GAC7B,CAAA;IAJS,qBAAqB;QAHjC,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,UAAU;SACjB,CAAC;OACW,qBAAqB,CAKjC;IAAD,4BAAC;CAAA,AALD,CAA2C,SAAS,GAKnD;AALY,sDAAqB;AAUlC;IAAuC,kDAAS;IAAhD;;IAKA,CAAC;IAJQ,8BAAY,mDACd,SAAS,CAAC,YAAY,KACzB,MAAM,EAAE,OAAO,GACf,CAAA;IAJS,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,MAAM;SACb,CAAC;OACW,iBAAiB,CAK7B;IAAD,wBAAC;CAAA,AALD,CAAuC,SAAS,GAK/C;AALY,8CAAiB;AAS9B;IAAwC,mDAAS;IAAjD;;IAKA,CAAC;IAJQ,+BAAY,mDACd,SAAS,CAAC,YAAY,KACzB,MAAM,EAAE,SAAS,GACjB,CAAA;IAJS,kBAAkB;QAH9B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,OAAO;SACd,CAAC;OACW,kBAAkB,CAK9B;IAAD,yBAAC;CAAA,AALD,CAAwC,SAAS,GAKhD;AALY,gDAAkB",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport moment from 'moment';\nimport {BaseSchema} from '../Schema';\nimport {getPropValue} from '../utils/helper';\n\n/**\n * Date 展示渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/date\n */\nexport interface DateSchema extends BaseSchema {\n /**\n * 指定为日期展示类型\n */\n type:\n | 'date'\n | 'datetime'\n | 'time'\n | 'static-date'\n | 'static-datetime'\n | 'static-time';\n\n /**\n * 展示的时间格式,参考 moment 中的格式说明。\n */\n format?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 值的时间格式,参考 moment 中的格式说明。\n */\n valueFormat?: string;\n\n /**\n * 显示成相对时间,比如1分钟前\n */\n fromNow?: boolean;\n\n /**\n * 更新频率, 默认为1分钟\n */\n updateFrequency?: number;\n}\n\nexport interface DateProps\n extends RendererProps,\n Omit<DateSchema, 'type' | 'className'> {}\n\nexport interface DateState {\n random?: number;\n}\n\nexport class DateField extends React.Component<DateProps, DateState> {\n refreshInterval: ReturnType<typeof setTimeout>;\n\n static defaultProps: Pick<\n DateProps,\n 'placeholder' | 'format' | 'valueFormat' | 'fromNow' | 'updateFrequency'\n > = {\n placeholder: '-',\n format: 'YYYY-MM-DD',\n valueFormat: 'X',\n fromNow: false,\n updateFrequency: 60000\n };\n\n // 动态显示相对时间时,用来触发视图更新\n state: DateState = {\n random: 0\n };\n\n componentDidMount() {\n const {fromNow, updateFrequency} = this.props;\n\n if (fromNow && updateFrequency) {\n this.refreshInterval = setInterval(() => {\n this.setState({\n random: Math.random()\n });\n }, updateFrequency);\n }\n }\n\n componentWillUnmount() {\n clearInterval(this.refreshInterval);\n }\n\n render() {\n const {\n valueFormat,\n format,\n placeholder,\n fromNow,\n className,\n classnames: cx,\n translate: __\n } = this.props;\n let viewValue: React.ReactNode = (\n <span className=\"text-muted\">{placeholder}</span>\n );\n\n const value = getPropValue(this.props);\n\n if (value) {\n let ISODate = moment(value, moment.ISO_8601);\n let NormalDate = moment(value, valueFormat);\n\n viewValue = ISODate.isValid()\n ? ISODate.format(format)\n : NormalDate.isValid()\n ? NormalDate.format(format)\n : false;\n }\n\n if (fromNow) {\n viewValue = moment(viewValue as string).fromNow();\n }\n\n viewValue = !viewValue ? (\n <span className=\"text-danger\">{__('Date.invalid')}</span>\n ) : (\n viewValue\n );\n\n return <span className={cx('DateField', className)}>{viewValue}</span>;\n }\n}\n\n@Renderer({\n type: 'date'\n})\nexport class DateFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM-DD'\n };\n}\n\n@Renderer({\n type: 'datetime'\n})\nexport class DateTimeFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM-DD HH:mm:ss'\n };\n}\n\n@Renderer({\n type: 'time'\n})\nexport class TimeFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'HH:mm'\n };\n}\n@Renderer({\n type: 'month'\n})\nexport class MonthFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM'\n };\n}\n"
11
+ "import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport moment from 'moment';\nimport {BaseSchema} from '../Schema';\nimport {getPropValue} from '../utils/helper';\n\n/**\n * Date 展示渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/date\n */\nexport interface DateSchema extends BaseSchema {\n /**\n * 指定为日期展示类型\n */\n type:\n | 'date'\n | 'datetime'\n | 'time'\n | 'static-date'\n | 'static-datetime'\n | 'static-time';\n\n /**\n * 展示的时间格式,参考 moment 中的格式说明。\n */\n format?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 值的时间格式,参考 moment 中的格式说明。\n */\n valueFormat?: string;\n\n /**\n * 显示成相对时间,比如1分钟前\n */\n fromNow?: boolean;\n\n /**\n * 更新频率, 默认为1分钟\n */\n updateFrequency?: number;\n}\n\nexport interface DateProps\n extends RendererProps,\n Omit<DateSchema, 'type' | 'className'> {}\n\nexport interface DateState {\n random?: number;\n}\n\nexport class DateField extends React.Component<DateProps, DateState> {\n refreshInterval: ReturnType<typeof setTimeout>;\n\n static defaultProps: Pick<\n DateProps,\n 'placeholder' | 'format' | 'valueFormat' | 'fromNow' | 'updateFrequency'\n > = {\n placeholder: '-',\n format: 'YYYY-MM-DD',\n valueFormat: 'X',\n fromNow: false,\n updateFrequency: 60000\n };\n\n // 动态显示相对时间时,用来触发视图更新\n state: DateState = {\n random: 0\n };\n\n componentDidMount() {\n const {fromNow, updateFrequency} = this.props;\n\n if (fromNow && updateFrequency) {\n this.refreshInterval = setInterval(() => {\n this.setState({\n random: Math.random()\n });\n }, updateFrequency);\n }\n }\n\n componentWillUnmount() {\n clearInterval(this.refreshInterval);\n }\n\n render() {\n const {\n valueFormat,\n format,\n placeholder,\n fromNow,\n className,\n classnames: cx,\n translate: __\n } = this.props;\n let viewValue: React.ReactNode = (\n <span className=\"text-muted\">{placeholder}</span>\n );\n\n const value = getPropValue(this.props);\n\n // 主要是给 fromNow 用的\n let date;\n if (value) {\n let ISODate = moment(value, moment.ISO_8601);\n let NormalDate = moment(value, valueFormat);\n\n viewValue = ISODate.isValid()\n ? ISODate.format(format)\n : NormalDate.isValid()\n ? NormalDate.format(format)\n : false;\n\n if (viewValue) {\n date = viewValue as string;\n }\n }\n\n if (fromNow) {\n viewValue = moment(viewValue as string).fromNow();\n }\n\n viewValue = !viewValue ? (\n <span className=\"text-danger\">{__('Date.invalid')}</span>\n ) : (\n viewValue\n );\n\n return (\n <span\n className={cx('DateField', className)}\n title={fromNow ? date : undefined}\n >\n {viewValue}\n </span>\n );\n }\n}\n\n@Renderer({\n type: 'date'\n})\nexport class DateFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM-DD'\n };\n}\n\n@Renderer({\n type: 'datetime'\n})\nexport class DateTimeFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM-DD HH:mm:ss'\n };\n}\n\n@Renderer({\n type: 'time'\n})\nexport class TimeFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'HH:mm'\n };\n}\n@Renderer({\n type: 'month'\n})\nexport class MonthFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM'\n };\n}\n"
12
12
  ]
13
13
  }
@@ -29,7 +29,7 @@ export interface NestedSelectControlSchema extends FormOptionsControl {
29
29
  */
30
30
  onlyChildren?: boolean;
31
31
  /**
32
- * 单选时只允许选择叶子节点
32
+ * 只允许选择叶子节点
33
33
  */
34
34
  onlyLeaf?: boolean;
35
35
  /**
@@ -173,13 +173,18 @@ var NestedSelectControl = /** @class */ (function (_super) {
173
173
  };
174
174
  NestedSelectControl.prototype.handleCheck = function (option, index) {
175
175
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
176
- var _a, onChange, selectedOptions, joinValues, delimiter, extractValue, withChildren, onlyChildren, cascade, options, stack, valueField, items, value, flattenTreeWithLeafNodes, isEvery, isEvery, toCheck, parent, newValue, isPrevented;
176
+ var _a, onChange, selectedOptions, joinValues, delimiter, extractValue, withChildren, onlyChildren, cascade, options, onlyLeaf, stack, valueField, items, value, flattenTreeWithLeafNodes, isEvery, isEvery, toCheck, parent, newValue, isPrevented;
177
177
  return (0, tslib_1.__generator)(this, function (_b) {
178
178
  switch (_b.label) {
179
179
  case 0:
180
- _a = this.props, onChange = _a.onChange, selectedOptions = _a.selectedOptions, joinValues = _a.joinValues, delimiter = _a.delimiter, extractValue = _a.extractValue, withChildren = _a.withChildren, onlyChildren = _a.onlyChildren, cascade = _a.cascade, options = _a.options;
180
+ _a = this.props, onChange = _a.onChange, selectedOptions = _a.selectedOptions, joinValues = _a.joinValues, delimiter = _a.delimiter, extractValue = _a.extractValue, withChildren = _a.withChildren, onlyChildren = _a.onlyChildren, cascade = _a.cascade, options = _a.options, onlyLeaf = _a.onlyLeaf;
181
181
  stack = this.state.stack;
182
182
  valueField = this.props.valueField || 'value';
183
+ if (onlyLeaf
184
+ && !Array.isArray(option)
185
+ && option.children) {
186
+ return [2 /*return*/];
187
+ }
183
188
  if (!Array.isArray(option) &&
184
189
  option.children &&
185
190
  option.children.length &&
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Form/NestedSelect.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport Overlay from '../../components/Overlay';\nimport Checkbox from '../../components/Checkbox';\nimport PopOver from '../../components/PopOver';\nimport PopUp from '../../components/PopUp';\nimport {Icon} from '../../components/icons';\nimport {\n autobind,\n flattenTree,\n filterTree,\n string2regExp,\n getTreeAncestors,\n getTreeParent,\n ucFirst,\n isMobile,\n createObject\n} from '../../utils/helper';\nimport {\n FormOptionsControl,\n OptionsControl,\n OptionsControlProps\n} from '../Form/Options';\nimport {Option, Options} from '../../components/Select';\nimport {findDOMNode} from 'react-dom';\nimport {ResultBox, Spinner} from '../../components';\nimport xor from 'lodash/xor';\nimport union from 'lodash/union';\nimport compact from 'lodash/compact';\nimport {RootClose} from '../../utils/RootClose';\nimport Cascader from '../../components/Cascader';\nimport {Action} from '../../types';\n\n/**\n * Nested Select\n * 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select\n */\nexport interface NestedSelectControlSchema extends FormOptionsControl {\n type: 'nested-select';\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 弹框的 css 类\n */\n menuClassName?: string;\n\n /**\n * 父子之间是否完全独立。\n */\n cascade?: boolean;\n\n /**\n * 选父级的时候是否把子节点的值也包含在内。\n */\n withChildren?: boolean;\n\n /**\n * 选父级的时候,是否只把子节点的值包含在内\n */\n onlyChildren?: boolean;\n\n /**\n * 单选时只允许选择叶子节点\n */\n onlyLeaf?: boolean;\n\n /**\n * 是否隐藏选择框中已选中节点的祖先节点的文本信息\n */\n hideNodePathLabel?: boolean;\n}\n\nexport interface NestedSelectProps extends OptionsControlProps {\n cascade?: boolean;\n noResultsText?: string;\n withChildren?: boolean;\n onlyChildren?: boolean;\n hideNodePathLabel?: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface NestedSelectState {\n isOpened?: boolean;\n isFocused?: boolean;\n inputValue?: string;\n stack: Array<Array<Option>>;\n}\n\nexport default class NestedSelectControl extends React.Component<\n NestedSelectProps,\n NestedSelectState\n> {\n static defaultProps: Partial<NestedSelectProps> = {\n cascade: false,\n withChildren: false,\n onlyChildren: false,\n onlyLeaf: false,\n searchPromptText: 'Select.searchPromptText',\n noResultsText: 'noResult',\n checkAll: true,\n checkAllLabel: '全选',\n hideNodePathLabel: false\n };\n target: any;\n input: HTMLInputElement;\n state: NestedSelectState = {\n isOpened: false,\n isFocused: false,\n inputValue: '',\n stack: [this.props.options]\n };\n\n @autobind\n domRef(ref: any) {\n this.target = ref;\n }\n\n componentDidUpdate(prevProps: NestedSelectProps) {\n if (prevProps.options !== this.props.options) {\n this.setState({\n stack: [this.props.options]\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n const actionType = action?.actionType as string;\n\n if (!!~['clear', 'reset'].indexOf(actionType)) {\n onChange(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n handleOutClick(e: React.MouseEvent<any>) {\n const {options} = this.props;\n e.defaultPrevented ||\n this.setState({\n isOpened: true\n });\n }\n\n @autobind\n handleResultClear() {\n this.setState({\n inputValue: undefined\n });\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n async removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n let {\n onChange,\n selectedOptions,\n joinValues,\n valueField,\n extractValue,\n delimiter,\n value\n } = this.props;\n\n e && e.stopPropagation();\n\n selectedOptions.splice(index, 1);\n\n if (joinValues) {\n value = (selectedOptions as Options)\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',');\n } else if (extractValue) {\n value = (selectedOptions as Options).map(\n item => item[valueField || 'value']\n );\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n }\n\n @autobind\n renderValue(option: Option, key?: any) {\n const {\n classnames: cx,\n labelField,\n valueField,\n options,\n hideNodePathLabel\n } = this.props;\n const inputValue = this.state.inputValue;\n const regexp = string2regExp(inputValue || '');\n\n if (hideNodePathLabel) {\n return option[labelField || 'label'];\n }\n const ancestors = getTreeAncestors(options, option, true);\n\n return (\n <span\n className={cx('Select-valueLabel')}\n key={key || option[valueField || 'value']}\n >\n {ancestors\n ? ancestors.map((item, index) => {\n const label = item[labelField || 'label'];\n const isEnd = index === ancestors.length - 1;\n const unmatchText = label.split(regexp || '');\n let pointer = 0;\n return (\n <span key={index}>\n {regexp.test(label)\n ? unmatchText.map((text: string, textIndex: number) => {\n const current = pointer;\n pointer += text.length || inputValue?.length || 0;\n return (\n <span\n key={textIndex}\n className={cx({\n 'NestedSelect-optionLabel-highlight': !text\n })}\n >\n {text || label.slice(current, pointer)}\n </span>\n );\n })\n : label}\n {!isEnd && ' > '}\n </span>\n );\n })\n : option[labelField || 'label']}\n </span>\n );\n }\n\n @autobind\n async handleOptionClick(option: Option) {\n const {multiple, onChange, joinValues, extractValue, valueField, onlyLeaf} =\n this.props;\n\n if (multiple) {\n return;\n }\n\n const value = joinValues\n ? option[valueField || 'value']\n : extractValue\n ? option[valueField || 'value']\n : option;\n\n if (value === undefined) {\n return;\n }\n\n if (onlyLeaf && option.children) {\n return;\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n\n isPrevented || this.handleResultClear();\n\n !multiple && this.close();\n }\n\n @autobind\n async handleCheck(option: Option | Options, index?: number) {\n const {\n onChange,\n selectedOptions,\n joinValues,\n delimiter,\n extractValue,\n withChildren,\n onlyChildren,\n cascade,\n options\n } = this.props;\n const {stack} = this.state;\n\n let valueField = this.props.valueField || 'value';\n\n if (\n !Array.isArray(option) &&\n option.children &&\n option.children.length &&\n typeof index === 'number'\n ) {\n if (stack[index]) {\n stack.splice(index + 1, 1, option.children);\n } else {\n stack.push(option.children);\n }\n }\n\n const items = selectedOptions;\n let value: any[];\n /**\n * 打平树且只保留叶节点\n */\n const flattenTreeWithLeafNodes = (option: Option | Options) =>\n compact(\n flattenTree(Array.isArray(option) ? option : [option], node =>\n node.children && node.children.length ? null : node\n )\n );\n\n // 三种情况:\n // 1.全选,option为数组\n // 2.单个选中,且有children\n // 3.单个选中,没有children\n\n if (Array.isArray(option)) {\n if (withChildren) {\n option = flattenTree(option);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n }\n value = items.length === option.length ? [] : (option as Options);\n } else if (Array.isArray(option.children)) {\n if (cascade) {\n value = xor(items, [option]);\n } else if (withChildren) {\n option = flattenTree([option]);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else {\n value = items.filter(item => !~flattenTree([option]).indexOf(item));\n !~items.indexOf(option) && value.push(option);\n }\n } else {\n value = xor(items, [option]);\n }\n\n if (!cascade) {\n let toCheck = option;\n\n while (true) {\n const parent = getTreeParent(options, toCheck as any);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (parent.children.every((child: any) => ~value.indexOf(child))) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index && !withChildren && !onlyChildren) {\n value.splice(index, 1);\n }\n });\n\n if (!onlyChildren) {\n value.push(parent);\n }\n\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n\n const newValue = joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value;\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n\n isPrevented || this.handleResultClear();\n }\n\n allChecked(options: Options): boolean {\n const {selectedOptions, withChildren, onlyChildren} = this.props;\n return options.every(option => {\n if ((withChildren || onlyChildren) && option.children) {\n return this.allChecked(option.children);\n }\n return selectedOptions.some(item => item === option);\n });\n }\n\n partialChecked(options: Options): boolean {\n return options.some(option => {\n const childrenPartialChecked =\n option.children && this.partialChecked(option.children);\n return (\n childrenPartialChecked ||\n this.props.selectedOptions.some(item => item === option)\n );\n });\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n async onFocus(e: any) {\n const {onFocus, disabled} = this.props;\n\n if (!disabled && !this.state.isOpened) {\n this.setState({\n isFocused: true\n });\n\n const isPrevented = await this.dispatchEvent('focus', e);\n isPrevented || (onFocus && onFocus(e));\n }\n }\n\n @autobind\n async onBlur(e: any) {\n const {onBlur} = this.props;\n\n this.setState({\n isFocused: false\n });\n\n const isPrevented = await this.dispatchEvent('blur', e);\n isPrevented || (onBlur && onBlur(e));\n }\n\n @autobind\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n @autobind\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleOutClick(e as any);\n e.preventDefault();\n }\n }\n\n @autobind\n handleInputKeyDown(event: React.KeyboardEvent) {\n const inputValue = this.state.inputValue;\n const {multiple, selectedOptions} = this.props;\n\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n selectedOptions.length &&\n multiple\n ) {\n this.removeItem(selectedOptions.length - 1);\n }\n }\n\n @autobind\n handleInputChange(inputValue: string) {\n const {options, labelField, valueField} = this.props;\n\n const regexp = string2regExp(inputValue);\n\n let filtedOptions =\n inputValue && this.state.isOpened\n ? filterTree(\n options,\n option =>\n regexp.test(option[labelField || 'label']) ||\n regexp.test(option[valueField || 'value']) ||\n !!(option.children && option.children.length),\n 1,\n true\n )\n : options.concat();\n\n this.setState({\n inputValue,\n stack: [filtedOptions]\n });\n }\n\n @autobind\n async handleResultChange(value: Array<Option>) {\n const {\n joinValues,\n extractValue,\n delimiter,\n valueField,\n onChange,\n multiple\n } = this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\n\n if (!multiple && !newValue.length) {\n const isPrevented = await this.dispatchEvent('change', {\n value: ''\n });\n isPrevented || onChange('');\n return;\n }\n\n if (joinValues || extractValue) {\n newValue = value.map(item => item[valueField || 'value']);\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n renderOptions() {\n const {\n multiple,\n selectedOptions,\n classnames: cx,\n options: propOptions,\n disabled,\n checkAll,\n checkAllLabel,\n translate: __,\n labelField,\n menuClassName,\n cascade,\n onlyChildren\n } = this.props;\n const valueField = this.props.valueField || 'value';\n\n const stack = this.state.stack;\n\n let partialChecked = this.partialChecked(propOptions);\n let allChecked = this.allChecked(propOptions);\n\n return (\n <>\n {stack.map((options, index) => (\n <div key={index} className={cx('NestedSelect-menu', menuClassName)}>\n {multiple && checkAll && index === 0 ? (\n <div className={cx('NestedSelect-option', 'checkall')}>\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, options)}\n checked={partialChecked}\n partial={partialChecked && !allChecked}\n ></Checkbox>\n <span onClick={this.handleCheck.bind(this, options)}>\n {__(checkAllLabel)}\n </span>\n </div>\n ) : null}\n\n {options.map((option: Option, idx: number) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n const parentChecked = ancestors?.some(\n item => !!~selectedOptions.indexOf(item)\n );\n const uncheckable = cascade ? false : multiple && parentChecked;\n const parentDisabled = ancestors?.some(item => !!item.disabled);\n\n let nodeDisabled =\n uncheckable || option.disabled || parentDisabled || !!disabled;\n let selfChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n let selfChecked =\n uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !selfChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n selfChecked = true;\n }\n\n return (\n <div\n key={idx}\n className={cx('NestedSelect-option', {\n 'is-active':\n !nodeDisabled &&\n (selfChecked || (!cascade && selfChildrenChecked))\n })}\n onMouseEnter={this.onMouseEnter.bind(this, option, index)}\n >\n {multiple ? (\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, option, index)}\n trueValue={option[valueField]}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n disabled={nodeDisabled}\n ></Checkbox>\n ) : null}\n\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': nodeDisabled\n })}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(option, index)\n : this.handleOptionClick(option))\n }\n >\n {option[labelField || 'label']}\n </div>\n\n {option.children && option.children.length ? (\n <div className={cx('NestedSelect-optionArrowRight')}>\n <Icon icon=\"right-arrow\" className=\"icon\" />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ))}\n </>\n );\n }\n\n renderSearchResult() {\n const {stack, inputValue} = this.state;\n const {\n classnames: cx,\n options: propOptions,\n labelField,\n cascade,\n selectedOptions,\n multiple,\n disabled,\n onlyChildren,\n noResultsText\n } = this.props;\n const regexp = string2regExp(inputValue || '');\n const flattenTreeWithNodes = flattenTree(stack[0]).filter(option => {\n return regexp.test(option[labelField || 'label']);\n });\n\n // 一个stack一个menu\n const resultBody = (\n <div className={cx('NestedSelect-menu')}>\n {flattenTreeWithNodes.length ? (\n flattenTreeWithNodes.map((option, index) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n\n const uncheckable = cascade\n ? false\n : multiple &&\n ancestors?.some(item => !!~selectedOptions.indexOf(item));\n\n let isNodeDisabled =\n uncheckable ||\n option.disabled ||\n !!disabled ||\n ancestors?.some(item => !!item.disabled);\n\n let isChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n\n let isChecked = uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !isChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n isChecked = true;\n }\n\n return (\n <div\n className={cx('NestedSelect-option', {\n 'is-active':\n !isNodeDisabled &&\n (isChecked || (!cascade && isChildrenChecked))\n })}\n key={index}\n >\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': isNodeDisabled\n })}\n onClick={() => {\n !isNodeDisabled &&\n (multiple\n ? this.handleCheck(option, option.value)\n : this.handleOptionClick(option));\n }}\n >\n {this.renderValue(option, option.value)}\n </div>\n </div>\n );\n })\n ) : (\n <div\n className={cx('NestedSelect-option', {\n 'no-result': true\n })}\n >\n {noResultsText}\n </div>\n )}\n </div>\n );\n return resultBody;\n }\n\n onMouseEnter(option: Option, index: number, e: MouseEvent) {\n let {stack} = this.state;\n index = index + 1;\n\n const children = option.children;\n if (children && children.length) {\n if (stack[index]) {\n stack.splice(index, 1, children);\n } else {\n stack.push(children);\n }\n } else {\n stack[index] && stack.splice(index, 1);\n }\n\n this.setState({stack: stack.slice(0, index + 1)});\n }\n\n renderOuter() {\n const {\n popOverContainer,\n translate: __,\n classnames: cx,\n options,\n render\n } = this.props;\n const isSearch = !!this.state.inputValue;\n let noResultsText: any = this.props.noResultsText;\n\n if (noResultsText) {\n noResultsText = render('noResultText', __(noResultsText));\n }\n\n let body = (\n <RootClose disabled={!this.state.isOpened} onRootClose={this.close}>\n {(ref: any) => {\n return (\n <div className={cx('NestedSelect-menuOuter')} ref={ref}>\n {isSearch ? (\n this.renderSearchResult()\n ) : options.length ? (\n this.renderOptions()\n ) : (\n <div className={cx('NestedSelect-noResult')}>\n {noResultsText}\n </div>\n )}\n </div>\n );\n }}\n </RootClose>\n );\n\n return (\n <Overlay\n target={this.getTarget}\n container={popOverContainer || (() => findDOMNode(this))}\n placement={'auto'}\n show\n >\n <PopOver className={cx('NestedSelect-popover')}>{body}</PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n classnames: cx,\n multiple,\n placeholder,\n translate: __,\n inline,\n searchable,\n autoComplete,\n selectedOptions,\n clearable,\n loading,\n borderMode,\n useMobileUI,\n env\n } = this.props;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx('NestedSelectControl', className)}>\n <ResultBox\n useMobileUI={useMobileUI}\n disabled={disabled}\n ref={this.domRef}\n placeholder={__(placeholder || '空')}\n className={cx(`NestedSelect`, {\n 'NestedSelect--inline': inline,\n 'NestedSelect--single': !multiple,\n 'NestedSelect--multi': multiple,\n 'NestedSelect--searchable': searchable,\n 'is-opened': this.state.isOpened,\n 'is-focused': this.state.isFocused,\n [`NestedSelect--border${ucFirst(borderMode)}`]: borderMode\n })}\n result={\n multiple\n ? selectedOptions\n : selectedOptions.length\n ? selectedOptions[0]\n : ''\n }\n onResultClick={this.handleOutClick}\n value={this.state.inputValue}\n onChange={this.handleInputChange}\n onResultChange={this.handleResultChange}\n onClear={this.handleResultClear}\n itemRender={this.renderValue}\n onKeyPress={this.handleKeyPress}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.handleInputKeyDown}\n clearable={clearable}\n hasDropDownArrow={true}\n allowInput={searchable}\n inputPlaceholder={''}\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n {mobileUI ? (\n <PopUp\n className={cx(`NestedSelect-popup`)}\n container={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n isShow={this.state.isOpened}\n onHide={this.close}\n showConfirm={false}\n showClose={false}\n >\n <Cascader\n onClose={this.close}\n {...this.props}\n options={this.props.options.slice()}\n value={selectedOptions}\n />\n </PopUp>\n ) : this.state.isOpened ? (\n this.renderOuter()\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'nested-select'\n})\nexport class NestedSelectControlRenderer extends NestedSelectControl {}\n@OptionsControl({\n type: 'cascader-select'\n})\nexport class CascaderSelectControlRenderer extends NestedSelectControl {}\n"
11
+ "import React from 'react';\nimport Overlay from '../../components/Overlay';\nimport Checkbox from '../../components/Checkbox';\nimport PopOver from '../../components/PopOver';\nimport PopUp from '../../components/PopUp';\nimport {Icon} from '../../components/icons';\nimport {\n autobind,\n flattenTree,\n filterTree,\n string2regExp,\n getTreeAncestors,\n getTreeParent,\n ucFirst,\n isMobile,\n createObject\n} from '../../utils/helper';\nimport {\n FormOptionsControl,\n OptionsControl,\n OptionsControlProps\n} from '../Form/Options';\nimport {Option, Options} from '../../components/Select';\nimport {findDOMNode} from 'react-dom';\nimport {ResultBox, Spinner} from '../../components';\nimport xor from 'lodash/xor';\nimport union from 'lodash/union';\nimport compact from 'lodash/compact';\nimport {RootClose} from '../../utils/RootClose';\nimport Cascader from '../../components/Cascader';\nimport {Action} from '../../types';\n\n/**\n * Nested Select\n * 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select\n */\nexport interface NestedSelectControlSchema extends FormOptionsControl {\n type: 'nested-select';\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 弹框的 css 类\n */\n menuClassName?: string;\n\n /**\n * 父子之间是否完全独立。\n */\n cascade?: boolean;\n\n /**\n * 选父级的时候是否把子节点的值也包含在内。\n */\n withChildren?: boolean;\n\n /**\n * 选父级的时候,是否只把子节点的值包含在内\n */\n onlyChildren?: boolean;\n\n /**\n * 只允许选择叶子节点\n */\n onlyLeaf?: boolean;\n\n /**\n * 是否隐藏选择框中已选中节点的祖先节点的文本信息\n */\n hideNodePathLabel?: boolean;\n}\n\nexport interface NestedSelectProps extends OptionsControlProps {\n cascade?: boolean;\n noResultsText?: string;\n withChildren?: boolean;\n onlyChildren?: boolean;\n hideNodePathLabel?: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface NestedSelectState {\n isOpened?: boolean;\n isFocused?: boolean;\n inputValue?: string;\n stack: Array<Array<Option>>;\n}\n\nexport default class NestedSelectControl extends React.Component<\n NestedSelectProps,\n NestedSelectState\n> {\n static defaultProps: Partial<NestedSelectProps> = {\n cascade: false,\n withChildren: false,\n onlyChildren: false,\n onlyLeaf: false,\n searchPromptText: 'Select.searchPromptText',\n noResultsText: 'noResult',\n checkAll: true,\n checkAllLabel: '全选',\n hideNodePathLabel: false\n };\n target: any;\n input: HTMLInputElement;\n state: NestedSelectState = {\n isOpened: false,\n isFocused: false,\n inputValue: '',\n stack: [this.props.options]\n };\n\n @autobind\n domRef(ref: any) {\n this.target = ref;\n }\n\n componentDidUpdate(prevProps: NestedSelectProps) {\n if (prevProps.options !== this.props.options) {\n this.setState({\n stack: [this.props.options]\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n const actionType = action?.actionType as string;\n\n if (!!~['clear', 'reset'].indexOf(actionType)) {\n onChange(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n handleOutClick(e: React.MouseEvent<any>) {\n const {options} = this.props;\n e.defaultPrevented ||\n this.setState({\n isOpened: true\n });\n }\n\n @autobind\n handleResultClear() {\n this.setState({\n inputValue: undefined\n });\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n async removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n let {\n onChange,\n selectedOptions,\n joinValues,\n valueField,\n extractValue,\n delimiter,\n value\n } = this.props;\n\n e && e.stopPropagation();\n\n selectedOptions.splice(index, 1);\n\n if (joinValues) {\n value = (selectedOptions as Options)\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',');\n } else if (extractValue) {\n value = (selectedOptions as Options).map(\n item => item[valueField || 'value']\n );\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n }\n\n @autobind\n renderValue(option: Option, key?: any) {\n const {\n classnames: cx,\n labelField,\n valueField,\n options,\n hideNodePathLabel\n } = this.props;\n const inputValue = this.state.inputValue;\n const regexp = string2regExp(inputValue || '');\n\n if (hideNodePathLabel) {\n return option[labelField || 'label'];\n }\n const ancestors = getTreeAncestors(options, option, true);\n\n return (\n <span\n className={cx('Select-valueLabel')}\n key={key || option[valueField || 'value']}\n >\n {ancestors\n ? ancestors.map((item, index) => {\n const label = item[labelField || 'label'];\n const isEnd = index === ancestors.length - 1;\n const unmatchText = label.split(regexp || '');\n let pointer = 0;\n return (\n <span key={index}>\n {regexp.test(label)\n ? unmatchText.map((text: string, textIndex: number) => {\n const current = pointer;\n pointer += text.length || inputValue?.length || 0;\n return (\n <span\n key={textIndex}\n className={cx({\n 'NestedSelect-optionLabel-highlight': !text\n })}\n >\n {text || label.slice(current, pointer)}\n </span>\n );\n })\n : label}\n {!isEnd && ' > '}\n </span>\n );\n })\n : option[labelField || 'label']}\n </span>\n );\n }\n\n @autobind\n async handleOptionClick(option: Option) {\n const {multiple, onChange, joinValues, extractValue, valueField, onlyLeaf} =\n this.props;\n\n if (multiple) {\n return;\n }\n\n const value = joinValues\n ? option[valueField || 'value']\n : extractValue\n ? option[valueField || 'value']\n : option;\n\n if (value === undefined) {\n return;\n }\n\n if (onlyLeaf && option.children) {\n return;\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n\n isPrevented || this.handleResultClear();\n\n !multiple && this.close();\n }\n\n @autobind\n async handleCheck(option: Option | Options, index?: number) {\n const {\n onChange,\n selectedOptions,\n joinValues,\n delimiter,\n extractValue,\n withChildren,\n onlyChildren,\n cascade,\n options,\n onlyLeaf\n } = this.props;\n const {stack} = this.state;\n\n let valueField = this.props.valueField || 'value';\n \n if (\n onlyLeaf\n && !Array.isArray(option)\n && option.children\n ) {\n return;\n }\n\n if (\n !Array.isArray(option) &&\n option.children &&\n option.children.length &&\n typeof index === 'number'\n ) {\n if (stack[index]) {\n stack.splice(index + 1, 1, option.children);\n } else {\n stack.push(option.children);\n }\n }\n\n const items = selectedOptions;\n let value: any[];\n /**\n * 打平树且只保留叶节点\n */\n const flattenTreeWithLeafNodes = (option: Option | Options) =>\n compact(\n flattenTree(Array.isArray(option) ? option : [option], node =>\n node.children && node.children.length ? null : node\n )\n );\n\n // 三种情况:\n // 1.全选,option为数组\n // 2.单个选中,且有children\n // 3.单个选中,没有children\n\n if (Array.isArray(option)) {\n if (withChildren) {\n option = flattenTree(option);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n }\n value = items.length === option.length ? [] : (option as Options);\n } else if (Array.isArray(option.children)) {\n if (cascade) {\n value = xor(items, [option]);\n } else if (withChildren) {\n option = flattenTree([option]);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else {\n value = items.filter(item => !~flattenTree([option]).indexOf(item));\n !~items.indexOf(option) && value.push(option);\n }\n } else {\n value = xor(items, [option]);\n }\n\n if (!cascade) {\n let toCheck = option;\n\n while (true) {\n const parent = getTreeParent(options, toCheck as any);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (parent.children.every((child: any) => ~value.indexOf(child))) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index && !withChildren && !onlyChildren) {\n value.splice(index, 1);\n }\n });\n\n if (!onlyChildren) {\n value.push(parent);\n }\n\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n\n const newValue = joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value;\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n\n isPrevented || this.handleResultClear();\n }\n\n allChecked(options: Options): boolean {\n const {selectedOptions, withChildren, onlyChildren} = this.props;\n return options.every(option => {\n if ((withChildren || onlyChildren) && option.children) {\n return this.allChecked(option.children);\n }\n return selectedOptions.some(item => item === option);\n });\n }\n\n partialChecked(options: Options): boolean {\n return options.some(option => {\n const childrenPartialChecked =\n option.children && this.partialChecked(option.children);\n return (\n childrenPartialChecked ||\n this.props.selectedOptions.some(item => item === option)\n );\n });\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n async onFocus(e: any) {\n const {onFocus, disabled} = this.props;\n\n if (!disabled && !this.state.isOpened) {\n this.setState({\n isFocused: true\n });\n\n const isPrevented = await this.dispatchEvent('focus', e);\n isPrevented || (onFocus && onFocus(e));\n }\n }\n\n @autobind\n async onBlur(e: any) {\n const {onBlur} = this.props;\n\n this.setState({\n isFocused: false\n });\n\n const isPrevented = await this.dispatchEvent('blur', e);\n isPrevented || (onBlur && onBlur(e));\n }\n\n @autobind\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n @autobind\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleOutClick(e as any);\n e.preventDefault();\n }\n }\n\n @autobind\n handleInputKeyDown(event: React.KeyboardEvent) {\n const inputValue = this.state.inputValue;\n const {multiple, selectedOptions} = this.props;\n\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n selectedOptions.length &&\n multiple\n ) {\n this.removeItem(selectedOptions.length - 1);\n }\n }\n\n @autobind\n handleInputChange(inputValue: string) {\n const {options, labelField, valueField} = this.props;\n\n const regexp = string2regExp(inputValue);\n\n let filtedOptions =\n inputValue && this.state.isOpened\n ? filterTree(\n options,\n option =>\n regexp.test(option[labelField || 'label']) ||\n regexp.test(option[valueField || 'value']) ||\n !!(option.children && option.children.length),\n 1,\n true\n )\n : options.concat();\n\n this.setState({\n inputValue,\n stack: [filtedOptions]\n });\n }\n\n @autobind\n async handleResultChange(value: Array<Option>) {\n const {\n joinValues,\n extractValue,\n delimiter,\n valueField,\n onChange,\n multiple\n } = this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\n\n if (!multiple && !newValue.length) {\n const isPrevented = await this.dispatchEvent('change', {\n value: ''\n });\n isPrevented || onChange('');\n return;\n }\n\n if (joinValues || extractValue) {\n newValue = value.map(item => item[valueField || 'value']);\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n renderOptions() {\n const {\n multiple,\n selectedOptions,\n classnames: cx,\n options: propOptions,\n disabled,\n checkAll,\n checkAllLabel,\n translate: __,\n labelField,\n menuClassName,\n cascade,\n onlyChildren\n } = this.props;\n const valueField = this.props.valueField || 'value';\n\n const stack = this.state.stack;\n\n let partialChecked = this.partialChecked(propOptions);\n let allChecked = this.allChecked(propOptions);\n\n return (\n <>\n {stack.map((options, index) => (\n <div key={index} className={cx('NestedSelect-menu', menuClassName)}>\n {multiple && checkAll && index === 0 ? (\n <div className={cx('NestedSelect-option', 'checkall')}>\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, options)}\n checked={partialChecked}\n partial={partialChecked && !allChecked}\n ></Checkbox>\n <span onClick={this.handleCheck.bind(this, options)}>\n {__(checkAllLabel)}\n </span>\n </div>\n ) : null}\n\n {options.map((option: Option, idx: number) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n const parentChecked = ancestors?.some(\n item => !!~selectedOptions.indexOf(item)\n );\n const uncheckable = cascade ? false : multiple && parentChecked;\n const parentDisabled = ancestors?.some(item => !!item.disabled);\n\n let nodeDisabled =\n uncheckable || option.disabled || parentDisabled || !!disabled;\n let selfChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n let selfChecked =\n uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !selfChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n selfChecked = true;\n }\n\n return (\n <div\n key={idx}\n className={cx('NestedSelect-option', {\n 'is-active':\n !nodeDisabled &&\n (selfChecked || (!cascade && selfChildrenChecked))\n })}\n onMouseEnter={this.onMouseEnter.bind(this, option, index)}\n >\n {multiple ? (\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, option, index)}\n trueValue={option[valueField]}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n disabled={nodeDisabled}\n ></Checkbox>\n ) : null}\n\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': nodeDisabled\n })}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(option, index)\n : this.handleOptionClick(option))\n }\n >\n {option[labelField || 'label']}\n </div>\n\n {option.children && option.children.length ? (\n <div className={cx('NestedSelect-optionArrowRight')}>\n <Icon icon=\"right-arrow\" className=\"icon\" />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ))}\n </>\n );\n }\n\n renderSearchResult() {\n const {stack, inputValue} = this.state;\n const {\n classnames: cx,\n options: propOptions,\n labelField,\n cascade,\n selectedOptions,\n multiple,\n disabled,\n onlyChildren,\n noResultsText\n } = this.props;\n const regexp = string2regExp(inputValue || '');\n const flattenTreeWithNodes = flattenTree(stack[0]).filter(option => {\n return regexp.test(option[labelField || 'label']);\n });\n\n // 一个stack一个menu\n const resultBody = (\n <div className={cx('NestedSelect-menu')}>\n {flattenTreeWithNodes.length ? (\n flattenTreeWithNodes.map((option, index) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n\n const uncheckable = cascade\n ? false\n : multiple &&\n ancestors?.some(item => !!~selectedOptions.indexOf(item));\n\n let isNodeDisabled =\n uncheckable ||\n option.disabled ||\n !!disabled ||\n ancestors?.some(item => !!item.disabled);\n\n let isChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n\n let isChecked = uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !isChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n isChecked = true;\n }\n\n return (\n <div\n className={cx('NestedSelect-option', {\n 'is-active':\n !isNodeDisabled &&\n (isChecked || (!cascade && isChildrenChecked))\n })}\n key={index}\n >\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': isNodeDisabled\n })}\n onClick={() => {\n !isNodeDisabled &&\n (multiple\n ? this.handleCheck(option, option.value)\n : this.handleOptionClick(option));\n }}\n >\n {this.renderValue(option, option.value)}\n </div>\n </div>\n );\n })\n ) : (\n <div\n className={cx('NestedSelect-option', {\n 'no-result': true\n })}\n >\n {noResultsText}\n </div>\n )}\n </div>\n );\n return resultBody;\n }\n\n onMouseEnter(option: Option, index: number, e: MouseEvent) {\n let {stack} = this.state;\n index = index + 1;\n\n const children = option.children;\n if (children && children.length) {\n if (stack[index]) {\n stack.splice(index, 1, children);\n } else {\n stack.push(children);\n }\n } else {\n stack[index] && stack.splice(index, 1);\n }\n\n this.setState({stack: stack.slice(0, index + 1)});\n }\n\n renderOuter() {\n const {\n popOverContainer,\n translate: __,\n classnames: cx,\n options,\n render\n } = this.props;\n const isSearch = !!this.state.inputValue;\n let noResultsText: any = this.props.noResultsText;\n\n if (noResultsText) {\n noResultsText = render('noResultText', __(noResultsText));\n }\n\n let body = (\n <RootClose disabled={!this.state.isOpened} onRootClose={this.close}>\n {(ref: any) => {\n return (\n <div className={cx('NestedSelect-menuOuter')} ref={ref}>\n {isSearch ? (\n this.renderSearchResult()\n ) : options.length ? (\n this.renderOptions()\n ) : (\n <div className={cx('NestedSelect-noResult')}>\n {noResultsText}\n </div>\n )}\n </div>\n );\n }}\n </RootClose>\n );\n\n return (\n <Overlay\n target={this.getTarget}\n container={popOverContainer || (() => findDOMNode(this))}\n placement={'auto'}\n show\n >\n <PopOver className={cx('NestedSelect-popover')}>{body}</PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n classnames: cx,\n multiple,\n placeholder,\n translate: __,\n inline,\n searchable,\n autoComplete,\n selectedOptions,\n clearable,\n loading,\n borderMode,\n useMobileUI,\n env\n } = this.props;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx('NestedSelectControl', className)}>\n <ResultBox\n useMobileUI={useMobileUI}\n disabled={disabled}\n ref={this.domRef}\n placeholder={__(placeholder || '空')}\n className={cx(`NestedSelect`, {\n 'NestedSelect--inline': inline,\n 'NestedSelect--single': !multiple,\n 'NestedSelect--multi': multiple,\n 'NestedSelect--searchable': searchable,\n 'is-opened': this.state.isOpened,\n 'is-focused': this.state.isFocused,\n [`NestedSelect--border${ucFirst(borderMode)}`]: borderMode\n })}\n result={\n multiple\n ? selectedOptions\n : selectedOptions.length\n ? selectedOptions[0]\n : ''\n }\n onResultClick={this.handleOutClick}\n value={this.state.inputValue}\n onChange={this.handleInputChange}\n onResultChange={this.handleResultChange}\n onClear={this.handleResultClear}\n itemRender={this.renderValue}\n onKeyPress={this.handleKeyPress}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.handleInputKeyDown}\n clearable={clearable}\n hasDropDownArrow={true}\n allowInput={searchable}\n inputPlaceholder={''}\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n {mobileUI ? (\n <PopUp\n className={cx(`NestedSelect-popup`)}\n container={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n isShow={this.state.isOpened}\n onHide={this.close}\n showConfirm={false}\n showClose={false}\n >\n <Cascader\n onClose={this.close}\n {...this.props}\n options={this.props.options.slice()}\n value={selectedOptions}\n />\n </PopUp>\n ) : this.state.isOpened ? (\n this.renderOuter()\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'nested-select'\n})\nexport class NestedSelectControlRenderer extends NestedSelectControl {}\n@OptionsControl({\n type: 'cascader-select'\n})\nexport class CascaderSelectControlRenderer extends NestedSelectControl {}\n"
12
12
  ]
13
13
  }
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { OptionsControlProps } from './Options';
3
3
  import { BaseTransferRenderer, TransferControlSchema } from './Transfer';
4
+ import { Option } from '../../components/Select';
4
5
  import { ItemRenderStates } from '../../components/Selection';
5
6
  /**
6
7
  * TabsTransfer
@@ -11,7 +12,11 @@ export interface TabsTransferControlSchema extends Omit<TransferControlSchema, '
11
12
  }
12
13
  export interface TabsTransferProps extends OptionsControlProps, Omit<TabsTransferControlSchema, 'type' | 'options' | 'inputClassName' | 'className' | 'descriptionClassName'> {
13
14
  }
14
- export declare class TabsTransferRenderer extends BaseTransferRenderer<TabsTransferProps> {
15
+ export declare class BaseTabsTransferRenderer<T extends OptionsControlProps = TabsTransferProps> extends BaseTransferRenderer<T> {
16
+ handleTabSearch(term: string, option: Option, cancelExecutor: Function): Promise<any[]>;
17
+ handleChange(value: Array<Option> | Option, optionModified?: boolean): Promise<void>;
18
+ }
19
+ export declare class TabsTransferRenderer extends BaseTabsTransferRenderer<TabsTransferProps> {
15
20
  optionItemRender(option: any, states: ItemRenderStates): JSX.Element;
16
21
  render(): JSX.Element;
17
22
  }
@@ -1,14 +1,163 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TabsTransferRenderer = void 0;
3
+ exports.TabsTransferRenderer = exports.BaseTabsTransferRenderer = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var Options_1 = require("./Options");
6
6
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
7
+ var find_1 = (0, tslib_1.__importDefault)(require("lodash/find"));
7
8
  var Spinner_1 = (0, tslib_1.__importDefault)(require("../../components/Spinner"));
8
9
  var Transfer_1 = require("./Transfer");
9
10
  var TabsTransfer_1 = (0, tslib_1.__importDefault)(require("../../components/TabsTransfer"));
11
+ var Select_1 = require("../../components/Select");
10
12
  var helper_1 = require("../../utils/helper");
11
13
  var Selection_1 = require("../../components/Selection");
14
+ var BaseTabsTransferRenderer = /** @class */ (function (_super) {
15
+ (0, tslib_1.__extends)(BaseTabsTransferRenderer, _super);
16
+ function BaseTabsTransferRenderer() {
17
+ return _super !== null && _super.apply(this, arguments) || this;
18
+ }
19
+ BaseTabsTransferRenderer.prototype.handleTabSearch = function (term, option, cancelExecutor) {
20
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
21
+ var _a, options, labelField, valueField, env, data, searchApi, payload, result, e_1, regexp_1;
22
+ return (0, tslib_1.__generator)(this, function (_b) {
23
+ switch (_b.label) {
24
+ case 0:
25
+ _a = this.props, options = _a.options, labelField = _a.labelField, valueField = _a.valueField, env = _a.env, data = _a.data;
26
+ searchApi = option.searchApi;
27
+ if (!searchApi) return [3 /*break*/, 5];
28
+ _b.label = 1;
29
+ case 1:
30
+ _b.trys.push([1, 3, , 4]);
31
+ return [4 /*yield*/, env.fetcher(searchApi, (0, helper_1.createObject)(data, { term: term }), {
32
+ cancelExecutor: cancelExecutor
33
+ })];
34
+ case 2:
35
+ payload = _b.sent();
36
+ if (!payload.ok) {
37
+ throw new Error(payload.msg || '搜索请求异常');
38
+ }
39
+ result = payload.data.options || payload.data.items || payload.data;
40
+ if (!Array.isArray(result)) {
41
+ throw new Error('CRUD.invalidArray');
42
+ }
43
+ return [2 /*return*/, result.map(function (item) {
44
+ var resolved = null;
45
+ var value = item[valueField || 'value'];
46
+ // 只有 value 值有意义的时候,再去找;否则直接返回
47
+ if (Array.isArray(options) && value !== null && value !== undefined) {
48
+ resolved = (0, find_1.default)(options, (0, Select_1.optionValueCompare)(value, valueField));
49
+ }
50
+ return resolved || item;
51
+ })];
52
+ case 3:
53
+ e_1 = _b.sent();
54
+ if (!env.isCancel(e_1)) {
55
+ env.notify('error', e_1.message);
56
+ }
57
+ return [2 /*return*/, []];
58
+ case 4: return [3 /*break*/, 6];
59
+ case 5:
60
+ if (term) {
61
+ regexp_1 = (0, helper_1.string2regExp)(term);
62
+ return [2 /*return*/, (0, helper_1.filterTree)(options, function (option) {
63
+ return !!((Array.isArray(option.children) && option.children.length) ||
64
+ (option[valueField || 'value'] &&
65
+ (regexp_1.test(option[labelField || 'label']) ||
66
+ regexp_1.test(option[valueField || 'value']))));
67
+ }, 0, true)];
68
+ }
69
+ else {
70
+ return [2 /*return*/, options];
71
+ }
72
+ _b.label = 6;
73
+ case 6: return [2 /*return*/];
74
+ }
75
+ });
76
+ });
77
+ };
78
+ BaseTabsTransferRenderer.prototype.handleChange = function (value, optionModified) {
79
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
80
+ var _a, onChange, joinValues, delimiter, valueField, extractValue, options, dispatchEvent, setOptions, __, newValue, newOptions, UN_MATCH_RESULT, rendererEvent;
81
+ return (0, tslib_1.__generator)(this, function (_b) {
82
+ switch (_b.label) {
83
+ case 0:
84
+ _a = this.props, onChange = _a.onChange, joinValues = _a.joinValues, delimiter = _a.delimiter, valueField = _a.valueField, extractValue = _a.extractValue, options = _a.options, dispatchEvent = _a.dispatchEvent, setOptions = _a.setOptions, __ = _a.translate;
85
+ newValue = value;
86
+ newOptions = options.concat();
87
+ UN_MATCH_RESULT = 'UN_MATCH_RESULT';
88
+ if (Array.isArray(value)) {
89
+ newValue = value.map(function (item) {
90
+ var indexes = (0, helper_1.findTreeIndex)(options, (0, Select_1.optionValueCompare)(item[valueField || 'value'], valueField || 'value'));
91
+ // 这里主要是把查询出来的没有匹配的搜索的结果(一般是DEFFER时)聚合在一个分类下
92
+ if (!indexes) {
93
+ var searchIndexes = (0, helper_1.findTreeIndex)(newOptions, function (item) { return item.value === UN_MATCH_RESULT; });
94
+ if (!searchIndexes) {
95
+ newOptions.push({
96
+ label: __('searchResult'),
97
+ value: UN_MATCH_RESULT,
98
+ visible: false,
99
+ children: [item]
100
+ });
101
+ }
102
+ else {
103
+ var origin = (0, helper_1.getTree)(newOptions, searchIndexes);
104
+ if (origin === null || origin === void 0 ? void 0 : origin.children) {
105
+ origin.children.push(item);
106
+ newOptions = (0, helper_1.spliceTree)(newOptions, searchIndexes, 1, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, origin), item));
107
+ }
108
+ }
109
+ }
110
+ else if (optionModified) {
111
+ var origin = (0, helper_1.getTree)(newOptions, indexes);
112
+ newOptions = (0, helper_1.spliceTree)(newOptions, indexes, 1, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, origin), item));
113
+ }
114
+ return joinValues || extractValue
115
+ ? item[valueField || 'value']
116
+ : item;
117
+ });
118
+ if (joinValues) {
119
+ newValue = newValue.join(delimiter || ',');
120
+ }
121
+ }
122
+ else if (value) {
123
+ newValue =
124
+ joinValues || extractValue
125
+ ? value[valueField || 'value']
126
+ : value;
127
+ }
128
+ (newOptions.length > options.length || optionModified) &&
129
+ setOptions(newOptions, true);
130
+ return [4 /*yield*/, dispatchEvent('change', {
131
+ value: newValue,
132
+ options: options
133
+ })];
134
+ case 1:
135
+ rendererEvent = _b.sent();
136
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
137
+ return [2 /*return*/];
138
+ }
139
+ onChange(newValue);
140
+ return [2 /*return*/];
141
+ }
142
+ });
143
+ });
144
+ };
145
+ var _a, _b, _c, _d;
146
+ (0, tslib_1.__decorate)([
147
+ helper_1.autobind,
148
+ (0, tslib_1.__metadata)("design:type", Function),
149
+ (0, tslib_1.__metadata)("design:paramtypes", [String, typeof (_a = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _a : Object, typeof (_b = typeof Function !== "undefined" && Function) === "function" ? _b : Object]),
150
+ (0, tslib_1.__metadata)("design:returntype", Promise)
151
+ ], BaseTabsTransferRenderer.prototype, "handleTabSearch", null);
152
+ (0, tslib_1.__decorate)([
153
+ helper_1.autobind,
154
+ (0, tslib_1.__metadata)("design:type", Function),
155
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, Boolean]),
156
+ (0, tslib_1.__metadata)("design:returntype", Promise)
157
+ ], BaseTabsTransferRenderer.prototype, "handleChange", null);
158
+ return BaseTabsTransferRenderer;
159
+ }(Transfer_1.BaseTransferRenderer));
160
+ exports.BaseTabsTransferRenderer = BaseTabsTransferRenderer;
12
161
  var TabsTransferRenderer = /** @class */ (function (_super) {
13
162
  (0, tslib_1.__extends)(TabsTransferRenderer, _super);
14
163
  function TabsTransferRenderer() {
@@ -25,16 +174,16 @@ var TabsTransferRenderer = /** @class */ (function (_super) {
25
174
  return Selection_1.BaseSelection.itemRender(option, states);
26
175
  };
27
176
  TabsTransferRenderer.prototype.render = function () {
28
- var _a = this.props, className = _a.className, cx = _a.classnames, options = _a.options, selectedOptions = _a.selectedOptions, sortable = _a.sortable, loading = _a.loading, searchable = _a.searchable, searchResultMode = _a.searchResultMode, showArrow = _a.showArrow, deferLoad = _a.deferLoad, leftDeferLoad = _a.leftDeferLoad, disabled = _a.disabled, selectTitle = _a.selectTitle, resultTitle = _a.resultTitle;
177
+ var _a = this.props, className = _a.className, cx = _a.classnames, options = _a.options, selectedOptions = _a.selectedOptions, sortable = _a.sortable, loading = _a.loading, searchResultMode = _a.searchResultMode, showArrow = _a.showArrow, deferLoad = _a.deferLoad, leftDeferLoad = _a.leftDeferLoad, disabled = _a.disabled, selectTitle = _a.selectTitle, resultTitle = _a.resultTitle;
29
178
  return (react_1.default.createElement("div", { className: cx('TabsTransferControl', className) },
30
- react_1.default.createElement(TabsTransfer_1.default, { value: selectedOptions, disabled: disabled, options: options, onChange: this.handleChange, option2value: this.option2value, sortable: sortable, searchResultMode: searchResultMode, onSearch: searchable ? this.handleSearch : undefined, showArrow: showArrow, onDeferLoad: deferLoad, onLeftDeferLoad: leftDeferLoad, selectTitle: selectTitle, resultTitle: resultTitle, optionItemRender: this.optionItemRender, resultItemRender: this.resultItemRender }),
179
+ react_1.default.createElement(TabsTransfer_1.default, { value: selectedOptions, disabled: disabled, options: options, onChange: this.handleChange, option2value: this.option2value, sortable: sortable, searchResultMode: searchResultMode, onSearch: this.handleTabSearch, showArrow: showArrow, onDeferLoad: deferLoad, onLeftDeferLoad: leftDeferLoad, selectTitle: selectTitle, resultTitle: resultTitle, optionItemRender: this.optionItemRender, resultItemRender: this.resultItemRender }),
31
180
  react_1.default.createElement(Spinner_1.default, { overlay: true, key: "info", show: loading })));
32
181
  };
33
- var _a;
182
+ var _e;
34
183
  (0, tslib_1.__decorate)([
35
184
  helper_1.autobind,
36
185
  (0, tslib_1.__metadata)("design:type", Function),
37
- (0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (_a = typeof Selection_1.ItemRenderStates !== "undefined" && Selection_1.ItemRenderStates) === "function" ? _a : Object]),
186
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (_e = typeof Selection_1.ItemRenderStates !== "undefined" && Selection_1.ItemRenderStates) === "function" ? _e : Object]),
38
187
  (0, tslib_1.__metadata)("design:returntype", void 0)
39
188
  ], TabsTransferRenderer.prototype, "optionItemRender", null);
40
189
  TabsTransferRenderer = (0, tslib_1.__decorate)([
@@ -43,6 +192,6 @@ var TabsTransferRenderer = /** @class */ (function (_super) {
43
192
  })
44
193
  ], TabsTransferRenderer);
45
194
  return TabsTransferRenderer;
46
- }(Transfer_1.BaseTransferRenderer));
195
+ }(BaseTabsTransferRenderer));
47
196
  exports.TabsTransferRenderer = TabsTransferRenderer;
48
197
  //# sourceMappingURL=./renderers/Form/TabsTransfer.js.map