amis 1.8.0-beta.16 → 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 (75) hide show
  1. package/lib/components/TabsTransfer.d.ts +22 -3
  2. package/lib/components/TabsTransfer.js +149 -42
  3. package/lib/components/TabsTransfer.js.map +2 -2
  4. package/lib/components/formula/Editor.js +4 -4
  5. package/lib/components/formula/Editor.js.map +2 -2
  6. package/lib/components/formula/VariableList.d.ts +63 -4
  7. package/lib/components/formula/VariableList.js +23 -8
  8. package/lib/components/formula/VariableList.js.map +2 -2
  9. package/lib/index.js +1 -1
  10. package/lib/renderers/Form/NestedSelect.d.ts +1 -1
  11. package/lib/renderers/Form/NestedSelect.js +7 -2
  12. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  13. package/lib/renderers/Form/TabsTransfer.d.ts +6 -1
  14. package/lib/renderers/Form/TabsTransfer.js +155 -6
  15. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  16. package/lib/renderers/Form/TabsTransferPicker.d.ts +2 -2
  17. package/lib/renderers/Form/TabsTransferPicker.js +4 -4
  18. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  19. package/lib/renderers/Form/index.js +6 -2
  20. package/lib/renderers/Form/index.js.map +2 -2
  21. package/lib/renderers/Markdown.js +4 -3
  22. package/lib/renderers/Markdown.js.map +2 -2
  23. package/lib/themes/ang-ie11.css +92 -14
  24. package/lib/themes/ang.css +94 -14
  25. package/lib/themes/ang.css.map +1 -1
  26. package/lib/themes/antd-ie11.css +92 -14
  27. package/lib/themes/antd.css +94 -14
  28. package/lib/themes/antd.css.map +1 -1
  29. package/lib/themes/cxd-ie11.css +92 -14
  30. package/lib/themes/cxd.css +94 -14
  31. package/lib/themes/cxd.css.map +1 -1
  32. package/lib/themes/dark-ie11.css +92 -14
  33. package/lib/themes/dark.css +94 -14
  34. package/lib/themes/dark.css.map +1 -1
  35. package/lib/themes/default-ie11.css +92 -14
  36. package/lib/themes/default.css +94 -14
  37. package/lib/themes/default.css.map +1 -1
  38. package/package.json +1 -1
  39. package/schema.json +1 -1
  40. package/scss/_properties.scss +3 -0
  41. package/scss/components/_formula.scss +77 -12
  42. package/scss/components/form/_transfer.scss +21 -0
  43. package/sdk/ang-ie11.css +109 -14
  44. package/sdk/ang.css +111 -14
  45. package/sdk/antd-ie11.css +109 -14
  46. package/sdk/antd.css +111 -14
  47. package/sdk/barcode.js +51 -51
  48. package/sdk/charts.js +14 -14
  49. package/sdk/codemirror.js +7 -7
  50. package/sdk/color-picker.js +65 -65
  51. package/sdk/cropperjs.js +2 -2
  52. package/sdk/cxd-ie11.css +109 -14
  53. package/sdk/cxd.css +111 -14
  54. package/sdk/dark-ie11.css +109 -14
  55. package/sdk/dark.css +111 -14
  56. package/sdk/exceljs.js +1 -1
  57. package/sdk/markdown.js +69 -69
  58. package/sdk/papaparse.js +1 -1
  59. package/sdk/renderers/Form/CityDB.js +1 -1
  60. package/sdk/rest.js +17 -17
  61. package/sdk/rich-text.js +62 -62
  62. package/sdk/sdk-ie11.css +109 -14
  63. package/sdk/sdk.css +111 -14
  64. package/sdk/sdk.js +1268 -1268
  65. package/sdk/thirds/hls.js/hls.js +1 -1
  66. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  67. package/sdk/tinymce.js +57 -57
  68. package/src/components/TabsTransfer.tsx +253 -143
  69. package/src/components/formula/Editor.tsx +12 -5
  70. package/src/components/formula/VariableList.tsx +55 -21
  71. package/src/renderers/Form/NestedSelect.tsx +11 -2
  72. package/src/renderers/Form/TabsTransfer.tsx +174 -11
  73. package/src/renderers/Form/TabsTransferPicker.tsx +5 -10
  74. package/src/renderers/Form/index.tsx +37 -16
  75. package/src/renderers/Markdown.tsx +4 -5
@@ -1,24 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VariableList = void 0;
4
3
  var tslib_1 = require("tslib");
5
4
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
- var classnames_1 = (0, tslib_1.__importDefault)(require("classnames"));
5
+ var theme_1 = require("../../theme");
7
6
  var GroupedSelection_1 = (0, tslib_1.__importDefault)(require("../GroupedSelection"));
8
7
  var Tabs_1 = tslib_1.__importStar(require("../Tabs"));
9
8
  var TreeSelection_1 = (0, tslib_1.__importDefault)(require("../TreeSelection"));
9
+ var SearchBox_1 = (0, tslib_1.__importDefault)(require("../SearchBox"));
10
+ var helper_1 = require("../../utils/helper");
10
11
  function VariableList(props) {
11
- var list = props.data, className = props.className, _a = props.tabsMode, tabsMode = _a === void 0 ? 'card' : _a, themePrefix = props.classPrefix, itemClassName = props.itemClassName, selectMode = props.selectMode, onSelect = props.onSelect;
12
+ var list = props.data, className = props.className, cx = props.classnames, _a = props.tabsMode, tabsMode = _a === void 0 ? 'line' : _a, themePrefix = props.classPrefix, itemClassName = props.itemClassName, selectMode = props.selectMode, onSelect = props.onSelect;
13
+ var _b = react_1.default.useState(list), filterVars = _b[0], setFilterVars = _b[1];
12
14
  var classPrefix = "".concat(themePrefix, "FormulaEditor-VariableList");
13
15
  var itemRender = props.itemRender && typeof props.itemRender === 'function'
14
16
  ? props.itemRender
15
17
  : function (option, states) {
16
- return (react_1.default.createElement("span", { className: (0, classnames_1.default)("".concat(classPrefix, "-item"), itemClassName) },
18
+ return (react_1.default.createElement("span", { className: cx("".concat(classPrefix, "-item"), itemClassName) },
17
19
  react_1.default.createElement("label", null, option.label),
18
- (option === null || option === void 0 ? void 0 : option.tag) ? (react_1.default.createElement("span", { className: (0, classnames_1.default)("".concat(classPrefix, "-item-tag")) }, option.tag)) : null));
20
+ (option === null || option === void 0 ? void 0 : option.tag) ? (react_1.default.createElement("span", { className: cx("".concat(classPrefix, "-item-tag")) }, option.tag)) : null));
19
21
  };
20
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, { 'is-scrollable': selectMode !== 'tabs' }) }, selectMode === 'tabs' ? (react_1.default.createElement(Tabs_1.default, { tabsMode: tabsMode, className: (0, classnames_1.default)("".concat(classPrefix, "-base ").concat(classPrefix, "-tabs")) }, list.map(function (item, index) { return (react_1.default.createElement(Tabs_1.Tab, { className: (0, classnames_1.default)("".concat(classPrefix, "-tab")), eventKey: index, key: index, title: item.label },
21
- react_1.default.createElement(VariableList, { className: (0, classnames_1.default)("".concat(classPrefix, "-sub")), itemRender: itemRender, selectMode: item.selectMode, data: item.children, onSelect: onSelect }))); }))) : selectMode === 'tree' ? (react_1.default.createElement(TreeSelection_1.default, { itemRender: itemRender, className: (0, classnames_1.default)("".concat(classPrefix, "-base")), multiple: false, options: list, onChange: function (item) { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(item); } })) : (react_1.default.createElement(GroupedSelection_1.default, { itemRender: itemRender, className: (0, classnames_1.default)("".concat(classPrefix, "-base")), multiple: false, options: list, onChange: function (item) { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(item); } }))));
22
+ function onSearch(term) {
23
+ var flatten = (0, helper_1.flattenTree)(list);
24
+ var filtered = flatten.filter(function (item) { return ~item.label.indexOf(term); });
25
+ setFilterVars(!term ? list : filtered);
26
+ }
27
+ function renderSearchBox() {
28
+ return (react_1.default.createElement("div", { className: cx('FormulaEditor-VariableList-searchBox') },
29
+ react_1.default.createElement(SearchBox_1.default, { mini: false, onSearch: onSearch })));
30
+ }
31
+ return (react_1.default.createElement("div", { className: cx(className, 'FormulaEditor-VariableList', selectMode && "FormulaEditor-VariableList-".concat(selectMode)) }, selectMode === 'tabs' ? (react_1.default.createElement(Tabs_1.default, { tabsMode: tabsMode, className: cx("".concat(classPrefix, "-base ").concat(classPrefix, "-tabs")) }, filterVars.map(function (item, index) { return (react_1.default.createElement(Tabs_1.Tab, { className: cx("".concat(classPrefix, "-tab")), eventKey: index, key: index, title: item.label },
32
+ react_1.default.createElement(VariableList, { classnames: cx, classPrefix: "".concat(classPrefix, "-sub-"), className: cx("".concat(classPrefix, "-sub")), itemRender: itemRender, selectMode: item.selectMode, data: item.children, onSelect: onSelect }))); }))) : selectMode === 'tree' ? (react_1.default.createElement("div", { className: cx('FormulaEditor-VariableList-body') },
33
+ renderSearchBox(),
34
+ react_1.default.createElement(TreeSelection_1.default, { itemRender: itemRender, className: cx("".concat(classPrefix, "-base"), 'is-scrollable'), multiple: false, options: filterVars, onChange: function (item) { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(item); } }))) : (react_1.default.createElement("div", { className: cx('FormulaEditor-VariableList-body') },
35
+ renderSearchBox(),
36
+ react_1.default.createElement(GroupedSelection_1.default, { itemRender: itemRender, className: cx("".concat(classPrefix, "-base"), 'is-scrollable'), multiple: false, options: filterVars, onChange: function (item) { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(item); } })))));
22
37
  }
23
- exports.VariableList = VariableList;
38
+ exports.default = (0, theme_1.themeable)(VariableList);
24
39
  //# sourceMappingURL=./components/formula/VariableList.js.map
@@ -6,8 +6,8 @@
6
6
  "/src/components/formula/VariableList.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 cx from 'classnames';\n\nimport GroupedSelection from '../GroupedSelection';\nimport Tabs, {Tab} from '../Tabs';\nimport TreeSelection from '../TreeSelection';\n\nimport type {VariableItem} from './Editor';\nimport type {ItemRenderStates} from '../Selection';\nimport type {Option} from '../Select';\nimport type {TabsMode} from '../Tabs';\n\nexport interface VariableListProps {\n className?: string;\n itemClassName?: string;\n classPrefix?: string;\n data: Array<VariableItem>;\n selectMode?: 'list' | 'tree' | 'tabs';\n tabsMode?: TabsMode;\n itemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;\n onSelect?: (item: VariableItem) => void;\n}\n\nexport function VariableList(props: VariableListProps) {\n const {\n data: list,\n className,\n tabsMode = 'card',\n classPrefix: themePrefix,\n itemClassName,\n selectMode,\n onSelect\n } = props;\n const classPrefix = `${themePrefix}FormulaEditor-VariableList`;\n const itemRender =\n props.itemRender && typeof props.itemRender === 'function'\n ? props.itemRender\n : (option: Option, states: ItemRenderStates): JSX.Element => {\n return (\n <span className={cx(`${classPrefix}-item`, itemClassName)}>\n <label>{option.label}</label>\n {option?.tag ? (\n <span className={cx(`${classPrefix}-item-tag`)}>\n {option.tag}\n </span>\n ) : null}\n </span>\n );\n };\n\n return (\n <div className={cx(className, {'is-scrollable': selectMode !== 'tabs'})}>\n {selectMode === 'tabs' ? (\n <Tabs\n tabsMode={tabsMode}\n className={cx(`${classPrefix}-base ${classPrefix}-tabs`)}\n >\n {list.map((item, index) => (\n <Tab\n className={cx(`${classPrefix}-tab`)}\n eventKey={index}\n key={index}\n title={item.label}\n >\n <VariableList\n className={cx(`${classPrefix}-sub`)}\n itemRender={itemRender}\n selectMode={item.selectMode}\n data={item.children!}\n onSelect={onSelect}\n />\n </Tab>\n ))}\n </Tabs>\n ) : selectMode === 'tree' ? (\n <TreeSelection\n itemRender={itemRender}\n className={cx(`${classPrefix}-base`)}\n multiple={false}\n options={list}\n onChange={(item: any) => onSelect?.(item)}\n />\n ) : (\n <GroupedSelection\n itemRender={itemRender}\n className={cx(`${classPrefix}-base`)}\n multiple={false}\n options={list}\n onChange={(item: any) => onSelect?.(item)}\n />\n )}\n </div>\n );\n}\n"
11
+ "import React from 'react';\n\nimport {themeable, ThemeProps} from '../../theme';\nimport GroupedSelection from '../GroupedSelection';\nimport Tabs, {Tab} from '../Tabs';\nimport TreeSelection from '../TreeSelection';\nimport SearchBox from '../SearchBox';\nimport {filterTree, flattenTree} from '../../utils/helper';\n\nimport type {VariableItem} from './Editor';\nimport type {ItemRenderStates} from '../Selection';\nimport type {Option} from '../Select';\nimport type {TabsMode} from '../Tabs';\n\nexport interface VariableListProps extends ThemeProps {\n className?: string;\n itemClassName?: string;\n data: Array<VariableItem>;\n selectMode?: 'list' | 'tree' | 'tabs';\n tabsMode?: TabsMode;\n itemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;\n onSelect?: (item: VariableItem) => void;\n}\n\nfunction VariableList(props: VariableListProps) {\n const {\n data: list,\n className,\n classnames: cx,\n tabsMode = 'line',\n classPrefix: themePrefix,\n itemClassName,\n selectMode,\n onSelect\n } = props;\n const [filterVars, setFilterVars] = React.useState(list);\n const classPrefix = `${themePrefix}FormulaEditor-VariableList`;\n const itemRender =\n props.itemRender && typeof props.itemRender === 'function'\n ? props.itemRender\n : (option: Option, states: ItemRenderStates): JSX.Element => {\n return (\n <span className={cx(`${classPrefix}-item`, itemClassName)}>\n <label>{option.label}</label>\n {option?.tag ? (\n <span className={cx(`${classPrefix}-item-tag`)}>\n {option.tag}\n </span>\n ) : null}\n </span>\n );\n };\n\n function onSearch(term: string) {\n const flatten = flattenTree(list);\n const filtered = flatten.filter(item => ~item.label.indexOf(term));\n\n setFilterVars(!term ? list : filtered);\n }\n\n function renderSearchBox() {\n return (\n <div className={cx('FormulaEditor-VariableList-searchBox')}>\n <SearchBox mini={false} onSearch={onSearch} />\n </div>\n );\n }\n\n return (\n <div\n className={cx(\n className,\n 'FormulaEditor-VariableList',\n selectMode && `FormulaEditor-VariableList-${selectMode}`\n )}\n >\n {selectMode === 'tabs' ? (\n <Tabs\n tabsMode={tabsMode}\n className={cx(`${classPrefix}-base ${classPrefix}-tabs`)}\n >\n {filterVars.map((item, index) => (\n <Tab\n className={cx(`${classPrefix}-tab`)}\n eventKey={index}\n key={index}\n title={item.label}\n >\n <VariableList\n classnames={cx}\n classPrefix={`${classPrefix}-sub-`}\n className={cx(`${classPrefix}-sub`)}\n itemRender={itemRender}\n selectMode={item.selectMode}\n data={item.children!}\n onSelect={onSelect}\n />\n </Tab>\n ))}\n </Tabs>\n ) : selectMode === 'tree' ? (\n <div className={cx('FormulaEditor-VariableList-body')}>\n {renderSearchBox()}\n <TreeSelection\n itemRender={itemRender}\n className={cx(`${classPrefix}-base`, 'is-scrollable')}\n multiple={false}\n options={filterVars}\n onChange={(item: any) => onSelect?.(item)}\n />\n </div>\n ) : (\n <div className={cx('FormulaEditor-VariableList-body')}>\n {renderSearchBox()}\n <GroupedSelection\n itemRender={itemRender}\n className={cx(`${classPrefix}-base`, 'is-scrollable')}\n multiple={false}\n options={filterVars}\n onChange={(item: any) => onSelect?.(item)}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport default themeable(VariableList);\n"
12
12
  ]
13
13
  }
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.16
6
+ /** @license amis v1.8.0-beta.17
7
7
  *
8
8
  * Copyright Baidu
9
9
  *
@@ -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