amis 1.6.5-beta.3 → 1.8.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.d.ts +84 -84
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/Breadcrumb.d.ts +130 -0
- package/lib/components/Breadcrumb.js +161 -0
- package/lib/components/Breadcrumb.js.map +13 -0
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/ChainedSelection.d.ts +84 -84
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/CollapseGroup.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +2 -2
- package/lib/components/DateRangePicker.js +36 -45
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/GroupedSelection.d.ts +84 -84
- package/lib/components/Layout.d.ts +21 -21
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/PopUp.js +2 -1
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Radios.d.ts +21 -21
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Selection.d.ts +84 -84
- package/lib/components/TableSelection.d.ts +84 -84
- package/lib/components/Tabs.d.ts +52 -23
- package/lib/components/Tabs.js +198 -46
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +21 -20
- package/lib/components/TooltipWrapper.js +2 -2
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/Calendar.js +5 -0
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.js.map +1 -1
- package/lib/components/icons.js +8 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/icons/cloud-upload.js +17 -0
- package/lib/icons/image.js +7 -0
- package/lib/icons/refresh.js +9 -0
- package/lib/icons/trash.js +10 -0
- package/lib/icons/upload.js +3 -8
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/en-US.js +3 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +4 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Breadcrumb.d.ts +41 -6
- package/lib/renderers/Breadcrumb.js +23 -19
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
- package/lib/renderers/Form/ChainedSelect.js +83 -34
- package/lib/renderers/Form/ChainedSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +3 -0
- package/lib/renderers/Form/Checkbox.js +38 -1
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +4 -3
- package/lib/renderers/Form/Combo.js +81 -32
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +1 -1
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +4 -1
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +3 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +3 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +3 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +4 -0
- package/lib/renderers/Form/InputExcel.js +33 -6
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +8 -1
- package/lib/renderers/Form/InputFile.js +71 -42
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +21 -9
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +27 -9
- package/lib/renderers/Form/InputRange.js +88 -23
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputSubForm.js +2 -1
- package/lib/renderers/Form/InputSubForm.js.map +2 -2
- package/lib/renderers/Form/InputTag.js +2 -1
- package/lib/renderers/Form/InputTag.js.map +2 -2
- package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
- package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +9 -6
- package/lib/renderers/Form/NestedSelect.js +247 -130
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +2 -1
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Radios.js +2 -1
- package/lib/renderers/Form/Radios.js.map +2 -2
- package/lib/renderers/Form/Select.js +6 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Switch.d.ts +7 -6
- package/lib/renderers/Form/Switch.js +4 -1
- package/lib/renderers/Form/Switch.js.map +2 -2
- package/lib/renderers/Log.js +2 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +58 -5
- package/lib/renderers/Tabs.js +170 -58
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +104 -0
- package/lib/renderers/TooltipWrapper.js +59 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Video.d.ts +6 -0
- package/lib/renderers/Video.js +13 -6
- package/lib/renderers/Video.js.map +2 -2
- package/lib/store/form.js +4 -13
- package/lib/store/form.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +742 -160
- package/lib/themes/ang.css +793 -163
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +757 -175
- package/lib/themes/antd.css +793 -163
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1249 -667
- package/lib/themes/cxd.css +970 -321
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +742 -160
- package/lib/themes/dark.css +793 -163
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1249 -667
- package/lib/themes/default.css +970 -321
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +16012 -736
- package/scss/_properties.scss +56 -2
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_breadcrumb.scss +90 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_tabs.scss +629 -132
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_file.scss +82 -24
- package/scss/components/form/_image.scss +30 -25
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-colors.scss +47 -47
- package/scss/themes/_cxd-variables.scss +20 -0
- package/sdk/ang-ie11.css +879 -196
- package/sdk/ang.css +931 -200
- package/sdk/antd-ie11.css +951 -268
- package/sdk/antd.css +931 -200
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1386 -703
- package/sdk/cxd.css +1107 -357
- package/sdk/dark-ie11.css +879 -196
- package/sdk/dark.css +931 -200
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1386 -703
- package/sdk/sdk.css +1107 -357
- package/sdk/sdk.js +1260 -1248
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +5 -2
- package/src/components/Alert2.tsx +9 -3
- package/src/components/Breadcrumb.tsx +294 -0
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DateRangePicker.tsx +40 -68
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +300 -54
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +5 -0
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/icons.tsx +8 -0
- package/src/components/index.tsx +2 -0
- package/src/icons/cloud-upload.svg +22 -0
- package/src/icons/image.svg +1 -0
- package/src/icons/refresh.svg +7 -0
- package/src/icons/trash.svg +8 -0
- package/src/icons/upload.svg +4 -9
- package/src/index.tsx +1 -0
- package/src/locale/en-US.ts +3 -1
- package/src/locale/zh-CN.ts +4 -2
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/Breadcrumb.tsx +89 -45
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Form/ChainedSelect.tsx +56 -12
- package/src/renderers/Form/Checkbox.tsx +30 -1
- package/src/renderers/Form/Combo.tsx +84 -26
- package/src/renderers/Form/InputCity.tsx +13 -1
- package/src/renderers/Form/InputColor.tsx +2 -0
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputExcel.tsx +27 -5
- package/src/renderers/Form/InputFile.tsx +167 -115
- package/src/renderers/Form/InputImage.tsx +61 -35
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputSubForm.tsx +2 -1
- package/src/renderers/Form/InputTag.tsx +3 -1
- package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
- package/src/renderers/Form/NestedSelect.tsx +75 -26
- package/src/renderers/Form/Options.tsx +3 -1
- package/src/renderers/Form/Radios.tsx +3 -1
- package/src/renderers/Form/Select.tsx +6 -2
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Tabs.tsx +254 -93
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/form.ts +0 -9
- package/src/store/table.ts +1 -1
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/MatrixCheckboxes.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;GAGG;;;;AAEH,6DAA0B;AAC1B,+BAAmE;AACnE,uCAAqE;AACrE,+CAAmD;AACnD,6CAAuE;AAsEvE;IAA4C,+CAG3C;IAWC,wBAAY,KAAkB;QAA9B,YACE,kBAAM,KAAK,CAAC,SAYb;QAfD,aAAO,GAAY,KAAK,CAAC;QAKvB,KAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAC7C,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACrC,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAC/C,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;IACtB,CAAC;IAED,0CAAiB,GAAjB;QACQ,IAAA,KAAwB,IAAI,CAAC,KAAK,EAAjC,UAAU,gBAAA,EAAE,OAAO,aAAc,CAAC;QAEzC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,2CAAkB,GAAlB,UAAmB,SAAsB;QACvC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;YACxE,IAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;aACvB,CAAC,CAAC;SACJ;aAAM,IACL,KAAK,CAAC,UAAU;YAChB,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EACpE;YACA,IAAI,OAAO,GAAG,IAAA,cAAQ,EACpB,SAAS,CAAC,MAAgB,EAC1B,SAAS,CAAC,IAAc,EACxB;gBACE,UAAU,EAAE,IAAI;aACjB,CACF,CAAC;YACF,IAAI,OAAO,GAAG,IAAA,cAAQ,EAAC,KAAK,CAAC,MAAgB,EAAE,KAAK,CAAC,IAAc,EAAE;gBACnE,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,IAAA,gBAAU,EAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;SACF;IACH,CAAC;IAED,6CAAoB,GAApB;QACE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACd,IAAA,UAAU,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAChC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,iCAAQ,GAAR,UAAS,MAAc,EAAE,IAAY,EAAE,WAAoB;QACnD,IAAA,KAAyB,IAAI,CAAC,KAAK,EAAlC,UAAU,gBAAA,EAAE,QAAQ,cAAc,CAAC;QAC1C,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file filter\n * @author fex\n */\n\nimport React from 'react';\nimport {FormBaseControl, FormControlProps, FormItem} from './Item';\nimport {buildApi, isValidApi, isEffectiveApi} from '../../utils/api';\nimport {Checkbox, Spinner} from '../../components';\nimport {autobind, setVariable, createObject} from '../../utils/helper';\nimport {ApiObject, Action} from '../../types';\nimport {SchemaApi} from '../../Schema';\n\n/**\n * Matrix 选择控件。适合做权限勾选。\n * 文档:https://baidu.gitee.io/amis/docs/components/form/matrix\n */\nexport interface MatrixControlSchema extends FormBaseControl {\n type: 'matrix-checkboxes';\n\n /**\n * 配置singleSelectMode时设置为false\n */\n multiple?: boolean;\n\n /**\n * 设置单选模式,multiple为false时有效\n */\n singleSelectMode?: boolean;\n\n /**\n * 可用来通过 API 拉取 options。\n */\n source?: SchemaApi;\n\n columns?: Array<{\n label: string;\n [propName: string]: any;\n }>;\n\n rows?: Array<{\n label: string;\n [propName: string]: any;\n }>;\n\n /**\n * 行标题说明\n */\n rowLabel?: string;\n}\n\nexport interface Column {\n label: string;\n [propName: string]: any;\n}\n\nexport interface Row {\n label: string;\n [propName: string]: any;\n}\n\nexport interface ValueItem extends Column, Row {\n checked: boolean;\n}\n\nexport interface MatrixProps extends FormControlProps {\n columns: Array<Column>;\n rows: Array<Row>;\n multiple: boolean;\n}\n\nexport interface MatrixState {\n columns: Array<Column>;\n rows: Array<Row>;\n loading: boolean;\n error?: string;\n singleSelectMode?: 'cell' | 'row' | 'column';\n}\n\nexport default class MatrixCheckbox extends React.Component<\n MatrixProps,\n MatrixState\n> {\n static defaultProps: Partial<MatrixProps> = {\n columns: [],\n rows: [],\n multiple: true,\n singleSelectMode: 'column' // multiple 为 false 时有效。\n };\n\n state: MatrixState;\n mounted: boolean = false;\n\n constructor(props: MatrixProps) {\n super(props);\n\n this.state = {\n columns: props.columns || [],\n rows: props.rows || [],\n loading: false\n };\n\n this.toggleItem = this.toggleItem.bind(this);\n this.reload = this.reload.bind(this);\n this.initOptions = this.initOptions.bind(this);\n this.mounted = true;\n }\n\n componentDidMount() {\n const {formInited, addHook} = this.props;\n\n formInited || !addHook ? this.reload() : addHook(this.initOptions, 'init');\n }\n\n componentDidUpdate(prevProps: MatrixProps) {\n const props = this.props;\n\n if (prevProps.columns !== props.columns || prevProps.rows !== props.rows) {\n this.setState({\n columns: props.columns || [],\n rows: props.rows || []\n });\n } else if (\n props.formInited &&\n (props.source !== prevProps.source || prevProps.data !== props.data)\n ) {\n let prevApi = buildApi(\n prevProps.source as string,\n prevProps.data as object,\n {\n ignoreData: true\n }\n );\n let nextApi = buildApi(props.source as string, props.data as object, {\n ignoreData: true\n });\n\n if (prevApi.url !== nextApi.url && isValidApi(nextApi.url)) {\n this.reload();\n }\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n const {removeHook} = this.props;\n removeHook?.(this.initOptions, 'init');\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n if (action.actionType === 'clear') {\n onChange(resetValue ?? '');\n }\n }\n\n async initOptions(data: any) {\n await this.reload();\n const {formItem, name} = this.props;\n if (!formItem) {\n return;\n }\n if (formItem.value) {\n setVariable(data, name!, formItem.value);\n }\n }\n\n async reload() {\n const {source, data, env, onChange, translate: __} = this.props;\n\n if (!isEffectiveApi(source, data) || this.state.loading) {\n return;\n }\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n // todo 优化这块\n return await new Promise<void>((resolve, reject) => {\n if (!this.mounted) {\n return resolve();\n }\n\n this.setState(\n {\n loading: true\n },\n () => {\n if (!this.mounted) {\n return resolve();\n }\n env\n .fetcher(source, data)\n .then(ret => {\n if (!ret.ok) {\n throw new Error(ret.msg || __('fetchFailed'));\n }\n if (!this.mounted) {\n return resolve();\n }\n this.setState(\n {\n loading: false,\n rows: (ret.data as any).rows || [],\n columns: (ret.data as any).columns || []\n },\n () => {\n let replace = source && (source as ApiObject).replaceData;\n let value = (ret.data as any).value;\n if (value) {\n value = (source as ApiObject).replaceData\n ? value\n : mergeValue(value, this.state.columns, this.state.rows);\n onChange(value);\n }\n resolve();\n }\n );\n })\n .catch(reason =>\n this.setState(\n {\n error: reason,\n loading: false\n },\n () => resolve()\n )\n );\n }\n );\n });\n }\n\n async toggleItem(checked: boolean, x: number, y: number) {\n const {columns, rows} = this.state;\n const {multiple, singleSelectMode, dispatchEvent, data} = this.props;\n\n const value = this.props.value || buildDefaultValue(columns, rows);\n\n if (multiple) {\n value[x][y] = {\n ...value[x][y],\n checked\n };\n } else if (singleSelectMode === 'row') {\n for (let x2 = 0, len = columns.length; x2 < len; x2++) {\n value[x2][y] = {\n ...value[x2][y],\n checked: x === x2 ? checked : !checked\n };\n }\n } else if (singleSelectMode === 'column') {\n for (let y2 = 0, len = rows.length; y2 < len; y2++) {\n value[x][y2] = {\n ...value[x][y2],\n checked: y === y2 ? checked : !checked\n };\n }\n } else {\n // 只剩下 cell 了\n for (let y2 = 0, len = rows.length; y2 < len; y2++) {\n for (let x2 = 0, len2 = columns.length; x2 < len2; x2++) {\n value[x2][y2] = {\n ...value[x2][y2],\n checked: x === x2 && y === y2 ? checked : !checked\n };\n }\n }\n }\n\n const rendererEvent = await dispatchEvent('change',\n createObject(data, {\n value: value.concat(),\n })\n );\n if (rendererEvent?.prevented) {\n return;\n }\n\n this.props.onChange(value.concat());\n }\n\n renderInput() {\n const {columns, rows} = this.state;\n const {rowLabel, disabled, classnames: cx, multiple} = this.props;\n\n const value = this.props.value || buildDefaultValue(columns, rows);\n\n return (\n <div className={cx('Table m-b-none')}>\n <div className={cx('Table-content')}>\n <table className={cx('Table-table')}>\n <thead>\n <tr>\n <th>{rowLabel}</th>\n {columns.map((column, x) => (\n <th key={x} className=\"text-center\">\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, y) => (\n <tr key={y}>\n <td>\n {row.label}\n {row.description || row.desc ? (\n <span className=\"m-l-xs text-muted text-xs\">\n {row.description || row.desc}\n </span>\n ) : null}\n </td>\n {columns.map((column, x) => (\n <td key={x} className=\"text-center\">\n <Checkbox\n type={multiple ? 'checkbox' : 'radio'}\n disabled={disabled}\n checked={\n !!(value[x] && value[x][y] && value[x][y].checked)\n }\n onChange={(checked: boolean) =>\n this.toggleItem(checked, x, y)\n }\n />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n }\n\n render() {\n const {className, render, classnames: cx} = this.props;\n\n const {error, loading} = this.state;\n\n return (\n <div key=\"input\" className={cx('MatrixControl', className || '')}>\n {error ? (\n <div className={cx('MatrixControl-error Alert Alert--danger')}>\n {String(error)}\n </div>\n ) : (\n this.renderInput()\n )}\n\n <Spinner size=\"lg\" overlay key=\"info\" show={loading} />\n </div>\n );\n }\n}\n\nfunction buildDefaultValue(\n columns: Array<Column>,\n rows: Array<Row>\n): Array<Array<ValueItem>> {\n if (!Array.isArray(columns)) {\n columns = [];\n }\n\n if (!Array.isArray(rows)) {\n rows = [];\n }\n\n return columns.map(column =>\n rows.map(row => ({\n ...row,\n ...column,\n checked: false\n }))\n );\n}\n\nfunction mergeValue(\n value: Array<Array<ValueItem>>,\n columns: Array<Column>,\n rows: Array<Row>\n): Array<Array<ValueItem>> {\n return value.map((column, x) =>\n column.map((item, y) => ({\n ...columns[x],\n ...rows[y],\n ...item\n }))\n );\n}\n\n@FormItem({\n type: 'matrix-checkboxes',\n strictMode: false,\n sizeMutable: false\n})\nexport class MatrixRenderer extends MatrixCheckbox {}\n"
|
11
|
+
"/**\n * @file filter\n * @author fex\n */\n\nimport React from 'react';\nimport {FormBaseControl, FormControlProps, FormItem} from './Item';\nimport {buildApi, isValidApi, isEffectiveApi} from '../../utils/api';\nimport {Checkbox, Spinner} from '../../components';\nimport {autobind, setVariable, createObject} from '../../utils/helper';\nimport {ApiObject, Action} from '../../types';\nimport {SchemaApi} from '../../Schema';\n\n/**\n * Matrix 选择控件。适合做权限勾选。\n * 文档:https://baidu.gitee.io/amis/docs/components/form/matrix\n */\nexport interface MatrixControlSchema extends FormBaseControl {\n type: 'matrix-checkboxes';\n\n /**\n * 配置singleSelectMode时设置为false\n */\n multiple?: boolean;\n\n /**\n * 设置单选模式,multiple为false时有效\n */\n singleSelectMode?: boolean;\n\n /**\n * 可用来通过 API 拉取 options。\n */\n source?: SchemaApi;\n\n columns?: Array<{\n label: string;\n [propName: string]: any;\n }>;\n\n rows?: Array<{\n label: string;\n [propName: string]: any;\n }>;\n\n /**\n * 行标题说明\n */\n rowLabel?: string;\n}\n\nexport interface Column {\n label: string;\n [propName: string]: any;\n}\n\nexport interface Row {\n label: string;\n [propName: string]: any;\n}\n\nexport interface ValueItem extends Column, Row {\n checked: boolean;\n}\n\nexport interface MatrixProps extends FormControlProps {\n columns: Array<Column>;\n rows: Array<Row>;\n multiple: boolean;\n}\n\nexport interface MatrixState {\n columns: Array<Column>;\n rows: Array<Row>;\n loading: boolean;\n error?: string;\n singleSelectMode?: 'cell' | 'row' | 'column';\n}\n\nexport default class MatrixCheckbox extends React.Component<\n MatrixProps,\n MatrixState\n> {\n static defaultProps: Partial<MatrixProps> = {\n columns: [],\n rows: [],\n multiple: true,\n singleSelectMode: 'column' // multiple 为 false 时有效。\n };\n\n state: MatrixState;\n mounted: boolean = false;\n\n constructor(props: MatrixProps) {\n super(props);\n\n this.state = {\n columns: props.columns || [],\n rows: props.rows || [],\n loading: false\n };\n\n this.toggleItem = this.toggleItem.bind(this);\n this.reload = this.reload.bind(this);\n this.initOptions = this.initOptions.bind(this);\n this.mounted = true;\n }\n\n componentDidMount() {\n const {formInited, addHook} = this.props;\n\n formInited || !addHook ? this.reload() : addHook(this.initOptions, 'init');\n }\n\n componentDidUpdate(prevProps: MatrixProps) {\n const props = this.props;\n\n if (prevProps.columns !== props.columns || prevProps.rows !== props.rows) {\n this.setState({\n columns: props.columns || [],\n rows: props.rows || []\n });\n } else if (\n props.formInited &&\n (props.source !== prevProps.source || prevProps.data !== props.data)\n ) {\n let prevApi = buildApi(\n prevProps.source as string,\n prevProps.data as object,\n {\n ignoreData: true\n }\n );\n let nextApi = buildApi(props.source as string, props.data as object, {\n ignoreData: true\n });\n\n if (prevApi.url !== nextApi.url && isValidApi(nextApi.url)) {\n this.reload();\n }\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n const {removeHook} = this.props;\n removeHook?.(this.initOptions, 'init');\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 async initOptions(data: any) {\n await this.reload();\n const {formItem, name} = this.props;\n if (!formItem) {\n return;\n }\n if (formItem.value) {\n setVariable(data, name!, formItem.value);\n }\n }\n\n async reload() {\n const {source, data, env, onChange, translate: __} = this.props;\n\n if (!isEffectiveApi(source, data) || this.state.loading) {\n return;\n }\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n // todo 优化这块\n return await new Promise<void>((resolve, reject) => {\n if (!this.mounted) {\n return resolve();\n }\n\n this.setState(\n {\n loading: true\n },\n () => {\n if (!this.mounted) {\n return resolve();\n }\n env\n .fetcher(source, data)\n .then(ret => {\n if (!ret.ok) {\n throw new Error(ret.msg || __('fetchFailed'));\n }\n if (!this.mounted) {\n return resolve();\n }\n this.setState(\n {\n loading: false,\n rows: (ret.data as any).rows || [],\n columns: (ret.data as any).columns || []\n },\n () => {\n let replace = source && (source as ApiObject).replaceData;\n let value = (ret.data as any).value;\n if (value) {\n value = (source as ApiObject).replaceData\n ? value\n : mergeValue(value, this.state.columns, this.state.rows);\n onChange(value);\n }\n resolve();\n }\n );\n })\n .catch(reason =>\n this.setState(\n {\n error: reason,\n loading: false\n },\n () => resolve()\n )\n );\n }\n );\n });\n }\n\n async toggleItem(checked: boolean, x: number, y: number) {\n const {columns, rows} = this.state;\n const {multiple, singleSelectMode, dispatchEvent, data} = this.props;\n\n const value = this.props.value || buildDefaultValue(columns, rows);\n\n if (multiple) {\n value[x][y] = {\n ...value[x][y],\n checked\n };\n } else if (singleSelectMode === 'row') {\n for (let x2 = 0, len = columns.length; x2 < len; x2++) {\n value[x2][y] = {\n ...value[x2][y],\n checked: x === x2 ? checked : !checked\n };\n }\n } else if (singleSelectMode === 'column') {\n for (let y2 = 0, len = rows.length; y2 < len; y2++) {\n value[x][y2] = {\n ...value[x][y2],\n checked: y === y2 ? checked : !checked\n };\n }\n } else {\n // 只剩下 cell 了\n for (let y2 = 0, len = rows.length; y2 < len; y2++) {\n for (let x2 = 0, len2 = columns.length; x2 < len2; x2++) {\n value[x2][y2] = {\n ...value[x2][y2],\n checked: x === x2 && y === y2 ? checked : !checked\n };\n }\n }\n }\n\n const rendererEvent = await dispatchEvent('change',\n createObject(data, {\n value: value.concat(),\n })\n );\n if (rendererEvent?.prevented) {\n return;\n }\n\n this.props.onChange(value.concat());\n }\n\n renderInput() {\n const {columns, rows} = this.state;\n const {rowLabel, disabled, classnames: cx, multiple} = this.props;\n\n const value = this.props.value || buildDefaultValue(columns, rows);\n\n return (\n <div className={cx('Table m-b-none')}>\n <div className={cx('Table-content')}>\n <table className={cx('Table-table')}>\n <thead>\n <tr>\n <th>{rowLabel}</th>\n {columns.map((column, x) => (\n <th key={x} className=\"text-center\">\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, y) => (\n <tr key={y}>\n <td>\n {row.label}\n {row.description || row.desc ? (\n <span className=\"m-l-xs text-muted text-xs\">\n {row.description || row.desc}\n </span>\n ) : null}\n </td>\n {columns.map((column, x) => (\n <td key={x} className=\"text-center\">\n <Checkbox\n type={multiple ? 'checkbox' : 'radio'}\n disabled={disabled}\n checked={\n !!(value[x] && value[x][y] && value[x][y].checked)\n }\n onChange={(checked: boolean) =>\n this.toggleItem(checked, x, y)\n }\n />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n }\n\n render() {\n const {className, render, classnames: cx} = this.props;\n\n const {error, loading} = this.state;\n\n return (\n <div key=\"input\" className={cx('MatrixControl', className || '')}>\n {error ? (\n <div className={cx('MatrixControl-error Alert Alert--danger')}>\n {String(error)}\n </div>\n ) : (\n this.renderInput()\n )}\n\n <Spinner size=\"lg\" overlay key=\"info\" show={loading} />\n </div>\n );\n }\n}\n\nfunction buildDefaultValue(\n columns: Array<Column>,\n rows: Array<Row>\n): Array<Array<ValueItem>> {\n if (!Array.isArray(columns)) {\n columns = [];\n }\n\n if (!Array.isArray(rows)) {\n rows = [];\n }\n\n return columns.map(column =>\n rows.map(row => ({\n ...row,\n ...column,\n checked: false\n }))\n );\n}\n\nfunction mergeValue(\n value: Array<Array<ValueItem>>,\n columns: Array<Column>,\n rows: Array<Row>\n): Array<Array<ValueItem>> {\n return value.map((column, x) =>\n column.map((item, y) => ({\n ...columns[x],\n ...rows[y],\n ...item\n }))\n );\n}\n\n@FormItem({\n type: 'matrix-checkboxes',\n strictMode: false,\n sizeMutable: false\n})\nexport class MatrixRenderer extends MatrixCheckbox {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { FormOptionsControl, OptionsControlProps } from '../Form/Options';
|
3
3
|
import { Option, Options } from '../../components/Select';
|
4
|
+
import { Action } from '../../types';
|
4
5
|
/**
|
5
6
|
* Nested Select
|
6
7
|
* 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select
|
@@ -53,23 +54,25 @@ export default class NestedSelectControl extends React.Component<NestedSelectPro
|
|
53
54
|
state: NestedSelectState;
|
54
55
|
domRef(ref: any): void;
|
55
56
|
componentDidUpdate(prevProps: NestedSelectProps): void;
|
57
|
+
doAction(action: Action, data: object, throwErrors: boolean): void;
|
58
|
+
dispatchEvent(eventName: string, eventData?: any): Promise<boolean>;
|
56
59
|
handleOutClick(e: React.MouseEvent<any>): void;
|
57
60
|
handleResultClear(): void;
|
58
61
|
close(): void;
|
59
|
-
removeItem(index: number, e?: React.MouseEvent<HTMLElement>): void
|
62
|
+
removeItem(index: number, e?: React.MouseEvent<HTMLElement>): Promise<void>;
|
60
63
|
renderValue(option: Option, key?: any): any;
|
61
|
-
handleOptionClick(option: Option): void
|
62
|
-
handleCheck(option: Option | Options, index?: number): void
|
64
|
+
handleOptionClick(option: Option): Promise<void>;
|
65
|
+
handleCheck(option: Option | Options, index?: number): Promise<void>;
|
63
66
|
allChecked(options: Options): boolean;
|
64
67
|
partialChecked(options: Options): boolean;
|
65
68
|
reload(): void;
|
66
|
-
onFocus(e: any): void
|
67
|
-
onBlur(e: any): void
|
69
|
+
onFocus(e: any): Promise<void>;
|
70
|
+
onBlur(e: any): Promise<void>;
|
68
71
|
getTarget(): HTMLElement;
|
69
72
|
handleKeyPress(e: React.KeyboardEvent): void;
|
70
73
|
handleInputKeyDown(event: React.KeyboardEvent): void;
|
71
74
|
handleInputChange(inputValue: string): void;
|
72
|
-
handleResultChange(value: Array<Option>): void
|
75
|
+
handleResultChange(value: Array<Option>): Promise<void>;
|
73
76
|
renderOptions(): JSX.Element;
|
74
77
|
renderSearchResult(): JSX.Element;
|
75
78
|
onMouseEnter(option: Option, index: number, e: MouseEvent): void;
|
@@ -40,6 +40,30 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
40
40
|
});
|
41
41
|
}
|
42
42
|
};
|
43
|
+
NestedSelectControl.prototype.doAction = function (action, data, throwErrors) {
|
44
|
+
var _a = this.props, resetValue = _a.resetValue, onChange = _a.onChange;
|
45
|
+
var actionType = action === null || action === void 0 ? void 0 : action.actionType;
|
46
|
+
if (!!~['clear', 'reset'].indexOf(actionType)) {
|
47
|
+
onChange(resetValue !== null && resetValue !== void 0 ? resetValue : '');
|
48
|
+
}
|
49
|
+
};
|
50
|
+
NestedSelectControl.prototype.dispatchEvent = function (eventName, eventData) {
|
51
|
+
if (eventData === void 0) { eventData = {}; }
|
52
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
53
|
+
var _a, dispatchEvent, data, rendererEvent;
|
54
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
55
|
+
switch (_b.label) {
|
56
|
+
case 0:
|
57
|
+
_a = this.props, dispatchEvent = _a.dispatchEvent, data = _a.data;
|
58
|
+
return [4 /*yield*/, dispatchEvent(eventName, (0, helper_1.createObject)(data, (0, tslib_1.__assign)({}, eventData)))];
|
59
|
+
case 1:
|
60
|
+
rendererEvent = _b.sent();
|
61
|
+
// 返回阻塞标识
|
62
|
+
return [2 /*return*/, !!(rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented)];
|
63
|
+
}
|
64
|
+
});
|
65
|
+
});
|
66
|
+
};
|
43
67
|
NestedSelectControl.prototype.handleOutClick = function (e) {
|
44
68
|
var options = this.props.options;
|
45
69
|
e.defaultPrevented ||
|
@@ -58,18 +82,32 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
58
82
|
});
|
59
83
|
};
|
60
84
|
NestedSelectControl.prototype.removeItem = function (index, e) {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
85
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
86
|
+
var _a, onChange, selectedOptions, joinValues, valueField, extractValue, delimiter, value, isPrevented;
|
87
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
88
|
+
switch (_b.label) {
|
89
|
+
case 0:
|
90
|
+
_a = this.props, onChange = _a.onChange, selectedOptions = _a.selectedOptions, joinValues = _a.joinValues, valueField = _a.valueField, extractValue = _a.extractValue, delimiter = _a.delimiter, value = _a.value;
|
91
|
+
e && e.stopPropagation();
|
92
|
+
selectedOptions.splice(index, 1);
|
93
|
+
if (joinValues) {
|
94
|
+
value = selectedOptions
|
95
|
+
.map(function (item) { return item[valueField || 'value']; })
|
96
|
+
.join(delimiter || ',');
|
97
|
+
}
|
98
|
+
else if (extractValue) {
|
99
|
+
value = selectedOptions.map(function (item) { return item[valueField || 'value']; });
|
100
|
+
}
|
101
|
+
return [4 /*yield*/, this.dispatchEvent('change', {
|
102
|
+
value: value
|
103
|
+
})];
|
104
|
+
case 1:
|
105
|
+
isPrevented = _b.sent();
|
106
|
+
isPrevented || onChange(value);
|
107
|
+
return [2 /*return*/];
|
108
|
+
}
|
109
|
+
});
|
110
|
+
});
|
73
111
|
};
|
74
112
|
NestedSelectControl.prototype.renderValue = function (option, key) {
|
75
113
|
var _a = this.props, cx = _a.classnames, labelField = _a.labelField, valueField = _a.valueField, options = _a.options, hideNodePathLabel = _a.hideNodePathLabel;
|
@@ -100,105 +138,131 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
100
138
|
: option[labelField || 'label']));
|
101
139
|
};
|
102
140
|
NestedSelectControl.prototype.handleOptionClick = function (option) {
|
103
|
-
|
104
|
-
|
105
|
-
return
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
141
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
142
|
+
var _a, multiple, onChange, joinValues, extractValue, valueField, value, isPrevented;
|
143
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
144
|
+
switch (_b.label) {
|
145
|
+
case 0:
|
146
|
+
_a = this.props, multiple = _a.multiple, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue, valueField = _a.valueField;
|
147
|
+
if (multiple) {
|
148
|
+
return [2 /*return*/];
|
149
|
+
}
|
150
|
+
value = joinValues
|
151
|
+
? option[valueField || 'value']
|
152
|
+
: extractValue
|
153
|
+
? option[valueField || 'value']
|
154
|
+
: option;
|
155
|
+
return [4 /*yield*/, this.dispatchEvent('change', {
|
156
|
+
value: value
|
157
|
+
})];
|
158
|
+
case 1:
|
159
|
+
isPrevented = _b.sent();
|
160
|
+
isPrevented || onChange(value);
|
161
|
+
!multiple && this.close();
|
162
|
+
return [2 /*return*/];
|
163
|
+
}
|
164
|
+
});
|
165
|
+
});
|
113
166
|
};
|
114
167
|
NestedSelectControl.prototype.handleCheck = function (option, index) {
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
* 打平树且只保留叶节点
|
133
|
-
*/
|
134
|
-
var flattenTreeWithLeafNodes = function (option) {
|
135
|
-
return (0, compact_1.default)((0, helper_1.flattenTree)(Array.isArray(option) ? option : [option], function (node) {
|
136
|
-
return node.children && node.children.length ? null : node;
|
137
|
-
}));
|
138
|
-
};
|
139
|
-
// 三种情况:
|
140
|
-
// 1.全选,option为数组
|
141
|
-
// 2.单个选中,且有children
|
142
|
-
// 3.单个选中,没有children
|
143
|
-
if (Array.isArray(option)) {
|
144
|
-
if (withChildren) {
|
145
|
-
option = (0, helper_1.flattenTree)(option);
|
146
|
-
}
|
147
|
-
else if (onlyChildren) {
|
148
|
-
option = flattenTreeWithLeafNodes(option);
|
149
|
-
}
|
150
|
-
value = items.length === option.length ? [] : option;
|
151
|
-
}
|
152
|
-
else if (Array.isArray(option.children)) {
|
153
|
-
if (cascade) {
|
154
|
-
value = (0, xor_1.default)(items, [option]);
|
155
|
-
}
|
156
|
-
else if (withChildren) {
|
157
|
-
option = (0, helper_1.flattenTree)([option]);
|
158
|
-
var isEvery = option.every(function (opt) { return !!~items.indexOf(opt); });
|
159
|
-
value = (isEvery ? xor_1.default : union_1.default)(items, option);
|
160
|
-
}
|
161
|
-
else if (onlyChildren) {
|
162
|
-
option = flattenTreeWithLeafNodes(option);
|
163
|
-
var isEvery = option.every(function (opt) { return !!~items.indexOf(opt); });
|
164
|
-
value = (isEvery ? xor_1.default : union_1.default)(items, option);
|
165
|
-
}
|
166
|
-
else {
|
167
|
-
value = items.filter(function (item) { return !~(0, helper_1.flattenTree)([option]).indexOf(item); });
|
168
|
-
!~items.indexOf(option) && value.push(option);
|
169
|
-
}
|
170
|
-
}
|
171
|
-
else {
|
172
|
-
value = (0, xor_1.default)(items, [option]);
|
173
|
-
}
|
174
|
-
if (!cascade) {
|
175
|
-
var toCheck = option;
|
176
|
-
while (true) {
|
177
|
-
var parent = (0, helper_1.getTreeParent)(options, toCheck);
|
178
|
-
if (parent === null || parent === void 0 ? void 0 : parent.value) {
|
179
|
-
// 如果所有孩子节点都勾选了,应该自动勾选父级。
|
180
|
-
if (parent.children.every(function (child) { return ~value.indexOf(child); })) {
|
181
|
-
parent.children.forEach(function (child) {
|
182
|
-
var index = value.indexOf(child);
|
183
|
-
if (~index && !withChildren && !onlyChildren) {
|
184
|
-
value.splice(index, 1);
|
168
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
169
|
+
var _a, onChange, selectedOptions, joinValues, delimiter, extractValue, withChildren, onlyChildren, cascade, options, stack, valueField, items, value, flattenTreeWithLeafNodes, isEvery, isEvery, toCheck, parent, newValue, isPrevented;
|
170
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
171
|
+
switch (_b.label) {
|
172
|
+
case 0:
|
173
|
+
_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;
|
174
|
+
stack = this.state.stack;
|
175
|
+
valueField = this.props.valueField || 'value';
|
176
|
+
if (!Array.isArray(option) &&
|
177
|
+
option.children &&
|
178
|
+
option.children.length &&
|
179
|
+
typeof index === 'number') {
|
180
|
+
if (stack[index]) {
|
181
|
+
stack.splice(index + 1, 1, option.children);
|
182
|
+
}
|
183
|
+
else {
|
184
|
+
stack.push(option.children);
|
185
185
|
}
|
186
|
-
});
|
187
|
-
if (!onlyChildren) {
|
188
|
-
value.push(parent);
|
189
186
|
}
|
190
|
-
|
191
|
-
|
192
|
-
|
187
|
+
items = selectedOptions;
|
188
|
+
flattenTreeWithLeafNodes = function (option) {
|
189
|
+
return (0, compact_1.default)((0, helper_1.flattenTree)(Array.isArray(option) ? option : [option], function (node) {
|
190
|
+
return node.children && node.children.length ? null : node;
|
191
|
+
}));
|
192
|
+
};
|
193
|
+
// 三种情况:
|
194
|
+
// 1.全选,option为数组
|
195
|
+
// 2.单个选中,且有children
|
196
|
+
// 3.单个选中,没有children
|
197
|
+
if (Array.isArray(option)) {
|
198
|
+
if (withChildren) {
|
199
|
+
option = (0, helper_1.flattenTree)(option);
|
200
|
+
}
|
201
|
+
else if (onlyChildren) {
|
202
|
+
option = flattenTreeWithLeafNodes(option);
|
203
|
+
}
|
204
|
+
value = items.length === option.length ? [] : option;
|
205
|
+
}
|
206
|
+
else if (Array.isArray(option.children)) {
|
207
|
+
if (cascade) {
|
208
|
+
value = (0, xor_1.default)(items, [option]);
|
209
|
+
}
|
210
|
+
else if (withChildren) {
|
211
|
+
option = (0, helper_1.flattenTree)([option]);
|
212
|
+
isEvery = option.every(function (opt) { return !!~items.indexOf(opt); });
|
213
|
+
value = (isEvery ? xor_1.default : union_1.default)(items, option);
|
214
|
+
}
|
215
|
+
else if (onlyChildren) {
|
216
|
+
option = flattenTreeWithLeafNodes(option);
|
217
|
+
isEvery = option.every(function (opt) { return !!~items.indexOf(opt); });
|
218
|
+
value = (isEvery ? xor_1.default : union_1.default)(items, option);
|
219
|
+
}
|
220
|
+
else {
|
221
|
+
value = items.filter(function (item) { return !~(0, helper_1.flattenTree)([option]).indexOf(item); });
|
222
|
+
!~items.indexOf(option) && value.push(option);
|
223
|
+
}
|
224
|
+
}
|
225
|
+
else {
|
226
|
+
value = (0, xor_1.default)(items, [option]);
|
227
|
+
}
|
228
|
+
if (!cascade) {
|
229
|
+
toCheck = option;
|
230
|
+
while (true) {
|
231
|
+
parent = (0, helper_1.getTreeParent)(options, toCheck);
|
232
|
+
if (parent === null || parent === void 0 ? void 0 : parent.value) {
|
233
|
+
// 如果所有孩子节点都勾选了,应该自动勾选父级。
|
234
|
+
if (parent.children.every(function (child) { return ~value.indexOf(child); })) {
|
235
|
+
parent.children.forEach(function (child) {
|
236
|
+
var index = value.indexOf(child);
|
237
|
+
if (~index && !withChildren && !onlyChildren) {
|
238
|
+
value.splice(index, 1);
|
239
|
+
}
|
240
|
+
});
|
241
|
+
if (!onlyChildren) {
|
242
|
+
value.push(parent);
|
243
|
+
}
|
244
|
+
toCheck = parent;
|
245
|
+
continue;
|
246
|
+
}
|
247
|
+
}
|
248
|
+
break;
|
249
|
+
}
|
250
|
+
}
|
251
|
+
newValue = joinValues
|
252
|
+
? value.map(function (item) { return item[valueField]; }).join(delimiter)
|
253
|
+
: extractValue
|
254
|
+
? value.map(function (item) { return item[valueField]; })
|
255
|
+
: value;
|
256
|
+
return [4 /*yield*/, this.dispatchEvent('change', {
|
257
|
+
value: newValue
|
258
|
+
})];
|
259
|
+
case 1:
|
260
|
+
isPrevented = _b.sent();
|
261
|
+
isPrevented || onChange(newValue);
|
262
|
+
return [2 /*return*/];
|
193
263
|
}
|
194
|
-
|
195
|
-
|
196
|
-
}
|
197
|
-
onChange(joinValues
|
198
|
-
? value.map(function (item) { return item[valueField]; }).join(delimiter)
|
199
|
-
: extractValue
|
200
|
-
? value.map(function (item) { return item[valueField]; })
|
201
|
-
: value);
|
264
|
+
});
|
265
|
+
});
|
202
266
|
};
|
203
267
|
NestedSelectControl.prototype.allChecked = function (options) {
|
204
268
|
var _this = this;
|
@@ -223,15 +287,43 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
223
287
|
reload && reload();
|
224
288
|
};
|
225
289
|
NestedSelectControl.prototype.onFocus = function (e) {
|
226
|
-
this
|
227
|
-
|
228
|
-
|
229
|
-
|
290
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
291
|
+
var _a, onFocus, disabled, isPrevented;
|
292
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
293
|
+
switch (_b.label) {
|
294
|
+
case 0:
|
295
|
+
_a = this.props, onFocus = _a.onFocus, disabled = _a.disabled;
|
296
|
+
if (!(!disabled && !this.state.isOpened)) return [3 /*break*/, 2];
|
297
|
+
this.setState({
|
298
|
+
isFocused: true
|
299
|
+
});
|
300
|
+
return [4 /*yield*/, this.dispatchEvent('focus', e)];
|
301
|
+
case 1:
|
302
|
+
isPrevented = _b.sent();
|
303
|
+
isPrevented || onFocus && onFocus(e);
|
304
|
+
_b.label = 2;
|
305
|
+
case 2: return [2 /*return*/];
|
306
|
+
}
|
230
307
|
});
|
308
|
+
});
|
231
309
|
};
|
232
310
|
NestedSelectControl.prototype.onBlur = function (e) {
|
233
|
-
|
234
|
-
|
311
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
312
|
+
var onBlur, isPrevented;
|
313
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
314
|
+
switch (_a.label) {
|
315
|
+
case 0:
|
316
|
+
onBlur = this.props.onBlur;
|
317
|
+
this.setState({
|
318
|
+
isFocused: false
|
319
|
+
});
|
320
|
+
return [4 /*yield*/, this.dispatchEvent('blur', e)];
|
321
|
+
case 1:
|
322
|
+
isPrevented = _a.sent();
|
323
|
+
isPrevented || onBlur && onBlur(e);
|
324
|
+
return [2 /*return*/];
|
325
|
+
}
|
326
|
+
});
|
235
327
|
});
|
236
328
|
};
|
237
329
|
NestedSelectControl.prototype.getTarget = function () {
|
@@ -272,19 +364,38 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
272
364
|
});
|
273
365
|
};
|
274
366
|
NestedSelectControl.prototype.handleResultChange = function (value) {
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
367
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
368
|
+
var _a, joinValues, extractValue, delimiter, valueField, onChange, multiple, newValue, isPrevented_1, isPrevented;
|
369
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
370
|
+
switch (_b.label) {
|
371
|
+
case 0:
|
372
|
+
_a = this.props, joinValues = _a.joinValues, extractValue = _a.extractValue, delimiter = _a.delimiter, valueField = _a.valueField, onChange = _a.onChange, multiple = _a.multiple;
|
373
|
+
newValue = Array.isArray(value) ? value.concat() : [];
|
374
|
+
if (!(!multiple && !newValue.length)) return [3 /*break*/, 2];
|
375
|
+
return [4 /*yield*/, this.dispatchEvent('change', {
|
376
|
+
value: ''
|
377
|
+
})];
|
378
|
+
case 1:
|
379
|
+
isPrevented_1 = _b.sent();
|
380
|
+
isPrevented_1 || onChange('');
|
381
|
+
return [2 /*return*/];
|
382
|
+
case 2:
|
383
|
+
if (joinValues || extractValue) {
|
384
|
+
newValue = value.map(function (item) { return item[valueField || 'value']; });
|
385
|
+
}
|
386
|
+
if (joinValues) {
|
387
|
+
newValue = newValue.join(delimiter || ',');
|
388
|
+
}
|
389
|
+
return [4 /*yield*/, this.dispatchEvent('change', {
|
390
|
+
value: newValue
|
391
|
+
})];
|
392
|
+
case 3:
|
393
|
+
isPrevented = _b.sent();
|
394
|
+
isPrevented || onChange(newValue);
|
395
|
+
return [2 /*return*/];
|
396
|
+
}
|
397
|
+
});
|
398
|
+
});
|
288
399
|
};
|
289
400
|
NestedSelectControl.prototype.renderOptions = function () {
|
290
401
|
var _this = this;
|
@@ -442,6 +553,12 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
442
553
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
443
554
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
444
555
|
], NestedSelectControl.prototype, "domRef", null);
|
556
|
+
(0, tslib_1.__decorate)([
|
557
|
+
helper_1.autobind,
|
558
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
559
|
+
(0, tslib_1.__metadata)("design:paramtypes", [String, Object]),
|
560
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
561
|
+
], NestedSelectControl.prototype, "dispatchEvent", null);
|
445
562
|
(0, tslib_1.__decorate)([
|
446
563
|
helper_1.autobind,
|
447
564
|
(0, tslib_1.__metadata)("design:type", Function),
|
@@ -470,25 +587,25 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
470
587
|
helper_1.autobind,
|
471
588
|
(0, tslib_1.__metadata)("design:type", Function),
|
472
589
|
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_c = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _c : Object]),
|
473
|
-
(0, tslib_1.__metadata)("design:returntype",
|
590
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
474
591
|
], NestedSelectControl.prototype, "handleOptionClick", null);
|
475
592
|
(0, tslib_1.__decorate)([
|
476
593
|
helper_1.autobind,
|
477
594
|
(0, tslib_1.__metadata)("design:type", Function),
|
478
595
|
(0, tslib_1.__metadata)("design:paramtypes", [Object, Number]),
|
479
|
-
(0, tslib_1.__metadata)("design:returntype",
|
596
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
480
597
|
], NestedSelectControl.prototype, "handleCheck", null);
|
481
598
|
(0, tslib_1.__decorate)([
|
482
599
|
helper_1.autobind,
|
483
600
|
(0, tslib_1.__metadata)("design:type", Function),
|
484
601
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
485
|
-
(0, tslib_1.__metadata)("design:returntype",
|
602
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
486
603
|
], NestedSelectControl.prototype, "onFocus", null);
|
487
604
|
(0, tslib_1.__decorate)([
|
488
605
|
helper_1.autobind,
|
489
606
|
(0, tslib_1.__metadata)("design:type", Function),
|
490
607
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
491
|
-
(0, tslib_1.__metadata)("design:returntype",
|
608
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
492
609
|
], NestedSelectControl.prototype, "onBlur", null);
|
493
610
|
(0, tslib_1.__decorate)([
|
494
611
|
helper_1.autobind,
|
@@ -518,7 +635,7 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
518
635
|
helper_1.autobind,
|
519
636
|
(0, tslib_1.__metadata)("design:type", Function),
|
520
637
|
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_h = typeof Array !== "undefined" && Array) === "function" ? _h : Object]),
|
521
|
-
(0, tslib_1.__metadata)("design:returntype",
|
638
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
522
639
|
], NestedSelectControl.prototype, "handleResultChange", null);
|
523
640
|
return NestedSelectControl;
|
524
641
|
}(react_1.default.Component));
|