amis 1.6.5-beta.4 → 1.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/Avatar.d.ts +20 -20
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/DatePicker.d.ts +3 -0
- package/lib/components/DatePicker.js +41 -7
- package/lib/components/DatePicker.js.map +2 -2
- 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/Progress.js +12 -9
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- 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/calendar/Calendar.js +16 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -1
- package/lib/components/formula/Editor.js +20 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +19 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.js +2 -2
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Dialog.d.ts +4 -0
- package/lib/renderers/Dialog.js +4 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.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/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 +4 -1
- package/lib/renderers/Form/InputFile.js +9 -0
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +12 -2
- 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/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Select.js +3 -1
- 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/Page.js +2 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Progress.d.ts +1 -1
- package/lib/renderers/Progress.js +1 -1
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +10 -2
- package/lib/renderers/Tabs.js +3 -3
- 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/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +242 -46
- package/lib/themes/ang.css +250 -41
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +242 -46
- package/lib/themes/antd.css +250 -41
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +231 -35
- package/lib/themes/cxd.css +252 -42
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +242 -46
- package/lib/themes/dark.css +250 -41
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +231 -35
- package/lib/themes/default.css +252 -42
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +15871 -608
- package/scss/_properties.scss +23 -12
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_formula.scss +18 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_progress.scss +3 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_date.scss +13 -0
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-variables.scss +2 -1
- package/sdk/ang-ie11.css +287 -48
- package/sdk/ang.css +295 -43
- package/sdk/antd-ie11.css +287 -48
- package/sdk/antd.css +295 -43
- 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 +276 -37
- package/sdk/cxd.css +297 -44
- package/sdk/dark-ie11.css +287 -48
- package/sdk/dark.css +295 -43
- 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 +276 -37
- package/sdk/sdk.css +297 -44
- package/sdk/sdk.js +1251 -1247
- 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/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +56 -18
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Progress.tsx +8 -12
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +51 -21
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +17 -12
- package/src/components/formula/Editor.tsx +34 -3
- package/src/components/formula/Picker.tsx +28 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +2 -2
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Dialog.tsx +17 -3
- package/src/renderers/DropDownButton.tsx +14 -3
- 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 +13 -1
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +32 -12
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/Select.tsx +2 -0
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/Page.tsx +1 -2
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Progress.tsx +2 -2
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Tabs.tsx +16 -4
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/table.ts +1 -1
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputCity.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAmE;AACnE,qCAAgE;AAChE,kFAA+C;AAC/C,gFAA6C;AAC7C,oFAAiD;AACjD,6CAAsD;AACtD,qCAAiC;AACjC,uCAAqD;AAyFrD;IAAgC,2CAG/B;IAHD;QAAA,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport {ClassNamesFn, themeable, ThemeProps} from '../../theme';\nimport Spinner from '../../components/Spinner';\nimport Select from '../../components/Select';\nimport CityArea from '../../components/CityArea';\nimport {autobind, isMobile} from '../../utils/helper';\nimport {Option} from './Options';\nimport {localeable, LocaleProps} from '../../locale';\n\n/**\n * City 城市选择框。\n * 文档:https://baidu.gitee.io/amis/docs/components/form/city\n */\nexport interface InputCityControlSchema extends FormBaseControl {\n /**\n * 指定为城市选择框。\n */\n type: 'input-city';\n\n /**\n * 开启后只会存城市的 code 信息\n */\n extractValue?: boolean;\n\n /**\n * 是否将各个信息拼接成字符串。\n */\n joinValues?: boolean;\n\n /**\n * 拼接的符号是啥?\n */\n delimiter?: string;\n\n /**\n * 允许选择城市?\n */\n allowCity?: boolean;\n\n /**\n * 允许选择地区?\n */\n allowDistrict?: boolean;\n\n /**\n * 允许选择街道?\n */\n allowStreet?: boolean;\n\n /**\n * 是否显示搜索框\n */\n searchable?: boolean;\n}\n\nexport interface CityPickerProps\n extends Omit<InputCityControlSchema, 'type' | 'className'>,\n LocaleProps,\n ThemeProps {\n value: any;\n onChange: (value: any) => void;\n\n extractValue: boolean;\n delimiter: string;\n allowCity: boolean;\n allowDistrict: boolean;\n allowStreet: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface CityPickerState {\n code: number;\n province: string;\n provinceCode: number;\n city: string;\n cityCode: number;\n district: string;\n districtCode: number;\n street: string;\n\n db?: {\n province: Array<string>;\n city: {\n [propName: number]: Array<number>;\n };\n district: {\n [propName: number]:\n | {\n [propName: number]: Array<number>;\n }\n | Array<number>;\n };\n [propName: string]: any;\n };\n}\n\nexport class CityPicker extends React.Component<\n CityPickerProps,\n CityPickerState\n> {\n static defaultProps = {\n joinValues: true,\n extractValue: true,\n delimiter: ',',\n allowCity: true,\n allowDistrict: true,\n allowStreet: false\n };\n\n state: CityPickerState = {\n code: 0,\n province: '',\n provinceCode: 0,\n city: '',\n cityCode: 0,\n district: '',\n districtCode: 0,\n street: ''\n };\n\n componentDidMount() {\n this.loadDb(() => this.syncIn());\n }\n\n componentDidUpdate(prevProps: CityPickerProps) {\n const props = this.props;\n\n if (props.value !== prevProps.value) {\n this.loadDb(() => this.syncIn(props));\n }\n }\n\n loadDb(callback?: () => void) {\n if (this.state.db) {\n callback?.();\n return;\n }\n\n import('./CityDB').then(db => {\n this.setState(\n {\n db: {\n ...db.default,\n province: db.province as any,\n city: db.city,\n district: db.district\n }\n },\n callback\n );\n });\n\n // require.ensure(['./CityDB'], (db: any) =>\n // this.setState(\n // {\n // db: {\n // ...db.default,\n // province: db.province,\n // city: db.city,\n // district: db.district\n // }\n // },\n // callback\n // )\n // );\n }\n\n @autobind\n handleProvinceChange(option: Option) {\n this.setState(\n {\n province: option.label as string,\n provinceCode: option.value as number,\n city: '',\n cityCode: 0,\n district: '',\n districtCode: 0,\n street: '',\n code: option.value\n },\n this.syncOut\n );\n }\n\n @autobind\n handleCityChange(option: Option) {\n if (option.value % 100) {\n return this.handleDistrictChange(option, {\n cityCode: option.value as number\n });\n }\n\n this.setState(\n {\n city: option.label as string,\n cityCode: option.value as number,\n district: '',\n districtCode: 0,\n street: '',\n code: option.value\n },\n this.syncOut\n );\n }\n\n @autobind\n handleDistrictChange(\n option: Option,\n otherStates: Partial<CityPickerState> = {}\n ) {\n this.setState(\n {\n ...(otherStates as any),\n district: option.label as string,\n districtCode: option.value as number,\n street: '',\n code: option.value as number\n },\n this.syncOut\n );\n }\n\n @autobind\n handleStreetChange(e: React.ChangeEvent<HTMLInputElement>) {\n this.setState({\n street: e.currentTarget.value\n });\n }\n\n @autobind\n handleStreetEnd() {\n this.syncOut();\n }\n\n @autobind\n syncIn(props = this.props) {\n const db = this.state.db!;\n const {value, delimiter} = props;\n\n if (!db) {\n return;\n }\n\n const state = {\n code: 0,\n province: '',\n provinceCode: 0,\n city: '',\n cityCode: 0,\n district: '',\n districtCode: 0,\n street: ''\n };\n\n let code =\n (value && value.code) ||\n (typeof value === 'number' && value) ||\n (typeof value === 'string' && /(\\d{6})/.test(value) && RegExp.$1);\n\n if (code && db[code]) {\n code = parseInt(code, 10);\n state.code = code;\n\n const provinceCode = code - (code % 10000);\n if (db[provinceCode]) {\n state.provinceCode = provinceCode;\n state.province = db[provinceCode];\n }\n\n const cityCode = code - (code % 100);\n if (db[cityCode]) {\n state.cityCode = cityCode;\n state.city = db[cityCode];\n } else if (~db.city[provinceCode]?.indexOf(code)) {\n state.cityCode = code;\n state.city = db[code];\n }\n\n if (code % 100) {\n state.district = db[code];\n state.districtCode = code;\n }\n } else if (value) {\n // todo 模糊查找\n }\n\n if (value && value.street) {\n state.street = value.street;\n } else if (typeof value === 'string' && ~value.indexOf(delimiter)) {\n state.street = value.slice(value.indexOf(delimiter) + delimiter.length);\n }\n\n this.setState(state);\n }\n\n @autobind\n syncOut() {\n const {onChange, allowStreet, joinValues, extractValue, delimiter} =\n this.props;\n\n const {code, province, city, district, street} = this.state;\n\n if (typeof extractValue === 'undefined' ? joinValues : extractValue) {\n code\n ? onChange(\n allowStreet && street\n ? [code, street].join(delimiter)\n : String(code)\n )\n : onChange('');\n } else {\n onChange({\n code,\n province,\n city,\n district,\n street\n });\n }\n }\n\n render() {\n const {\n classnames: cx,\n className,\n disabled,\n allowCity,\n allowDistrict,\n allowStreet,\n searchable,\n translate: __\n } = this.props;\n\n const {provinceCode, cityCode, districtCode, street, db} = this.state;\n\n return db ? (\n <div className={cx('CityPicker', className)}>\n <Select\n searchable={searchable}\n disabled={disabled}\n options={db.province.map(item => ({\n label: db[item],\n value: item\n }))}\n value={provinceCode}\n onChange={this.handleProvinceChange}\n />\n\n {provinceCode &&\n allowDistrict &&\n Array.isArray(db.district[provinceCode]) ? (\n <Select\n searchable={searchable}\n disabled={disabled}\n options={(db.district[provinceCode] as Array<number>).map(item => ({\n label: db[item],\n value: item\n }))}\n value={districtCode}\n onChange={this.handleDistrictChange}\n />\n ) : allowCity &&\n db.city[provinceCode] &&\n db.city[provinceCode].length ? (\n <Select\n searchable={searchable}\n disabled={disabled}\n options={db.city[provinceCode].map(item => ({\n label: db[item],\n value: item\n }))}\n value={cityCode}\n onChange={this.handleCityChange}\n />\n ) : null}\n\n {cityCode &&\n allowDistrict &&\n (db.district[provinceCode]?.[cityCode] as any)?.length ? (\n <Select\n searchable={searchable}\n disabled={disabled}\n options={(db.district[provinceCode][cityCode] as Array<number>).map(\n item => ({\n label: db[item],\n value: item\n })\n )}\n value={districtCode}\n onChange={this.handleDistrictChange}\n />\n ) : null}\n\n {allowStreet && provinceCode ? (\n <input\n className={cx('CityPicker-input')}\n value={street}\n onChange={this.handleStreetChange}\n onBlur={this.handleStreetEnd}\n placeholder={__('City.street')}\n disabled={disabled}\n />\n ) : null}\n </div>\n ) : (\n <Spinner show size=\"sm\" />\n );\n }\n}\n\nconst ThemedCity = themeable(localeable(CityPicker));\nexport default ThemedCity;\n\nexport interface LocationControlProps extends FormControlProps {\n allowCity?: boolean;\n allowDistrict?: boolean;\n extractValue?: boolean;\n joinValues?: boolean;\n allowStreet?: boolean;\n}\nexport class LocationControl extends React.Component<LocationControlProps> {\n render() {\n const {\n value,\n onChange,\n allowCity,\n allowDistrict,\n extractValue,\n joinValues,\n allowStreet,\n disabled,\n searchable,\n env,\n useMobileUI\n } = this.props;\n const mobileUI = useMobileUI && isMobile();\n return mobileUI ? (\n <CityArea\n value={value}\n popOverContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onChange={onChange}\n allowCity={allowCity}\n allowDistrict={allowDistrict}\n extractValue={extractValue}\n joinValues={joinValues}\n allowStreet={allowStreet}\n disabled={disabled}\n useMobileUI={useMobileUI}\n />\n ) : (\n <ThemedCity\n searchable={searchable}\n value={value}\n onChange={onChange}\n allowCity={allowCity}\n allowDistrict={allowDistrict}\n extractValue={extractValue}\n joinValues={joinValues}\n allowStreet={allowStreet}\n disabled={disabled}\n />\n );\n }\n}\n\n@FormItem({\n type: 'input-city',\n sizeMutable: false\n})\nexport class CheckboxControlRenderer extends LocationControl {}\n"
|
11
|
+
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport {ClassNamesFn, themeable, ThemeProps} from '../../theme';\nimport Spinner from '../../components/Spinner';\nimport Select from '../../components/Select';\nimport CityArea from '../../components/CityArea';\nimport {autobind, isMobile} from '../../utils/helper';\nimport {Option} from './Options';\nimport {localeable, LocaleProps} from '../../locale';\n\n/**\n * City 城市选择框。\n * 文档:https://baidu.gitee.io/amis/docs/components/form/city\n */\nexport interface InputCityControlSchema extends FormBaseControl {\n /**\n * 指定为城市选择框。\n */\n type: 'input-city';\n\n /**\n * 开启后只会存城市的 code 信息\n */\n extractValue?: boolean;\n\n /**\n * 是否将各个信息拼接成字符串。\n */\n joinValues?: boolean;\n\n /**\n * 拼接的符号是啥?\n */\n delimiter?: string;\n\n /**\n * 允许选择城市?\n */\n allowCity?: boolean;\n\n /**\n * 允许选择地区?\n */\n allowDistrict?: boolean;\n\n /**\n * 允许选择街道?\n */\n allowStreet?: boolean;\n\n /**\n * 是否显示搜索框\n */\n searchable?: boolean;\n}\n\nexport interface CityPickerProps\n extends Omit<InputCityControlSchema, 'type' | 'className'>,\n LocaleProps,\n ThemeProps {\n value: any;\n onChange: (value: any) => void;\n\n extractValue: boolean;\n delimiter: string;\n allowCity: boolean;\n allowDistrict: boolean;\n allowStreet: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface CityPickerState {\n code: number;\n province: string;\n provinceCode: number;\n city: string;\n cityCode: number;\n district: string;\n districtCode: number;\n street: string;\n\n db?: {\n province: Array<string>;\n city: {\n [propName: number]: Array<number>;\n };\n district: {\n [propName: number]:\n | {\n [propName: number]: Array<number>;\n }\n | Array<number>;\n };\n [propName: string]: any;\n };\n}\n\nexport class CityPicker extends React.Component<\n CityPickerProps,\n CityPickerState\n> {\n static defaultProps = {\n joinValues: true,\n extractValue: true,\n delimiter: ',',\n allowCity: true,\n allowDistrict: true,\n allowStreet: false\n };\n\n state: CityPickerState = {\n code: 0,\n province: '',\n provinceCode: 0,\n city: '',\n cityCode: 0,\n district: '',\n districtCode: 0,\n street: ''\n };\n\n componentDidMount() {\n this.loadDb(() => this.syncIn());\n }\n\n componentDidUpdate(prevProps: CityPickerProps) {\n const props = this.props;\n\n if (props.value !== prevProps.value) {\n this.loadDb(() => this.syncIn(props));\n }\n }\n\n loadDb(callback?: () => void) {\n if (this.state.db) {\n callback?.();\n return;\n }\n\n import('./CityDB').then(db => {\n this.setState(\n {\n db: {\n ...db.default,\n province: db.province as any,\n city: db.city,\n district: db.district\n }\n },\n callback\n );\n });\n\n // require.ensure(['./CityDB'], (db: any) =>\n // this.setState(\n // {\n // db: {\n // ...db.default,\n // province: db.province,\n // city: db.city,\n // district: db.district\n // }\n // },\n // callback\n // )\n // );\n }\n\n @autobind\n handleProvinceChange(option: Option) {\n this.setState(\n {\n province: option.label as string,\n provinceCode: option.value as number,\n city: '',\n cityCode: 0,\n district: '',\n districtCode: 0,\n street: '',\n code: option.value\n },\n this.syncOut\n );\n }\n\n @autobind\n handleCityChange(option: Option) {\n if (option.value % 100) {\n return this.handleDistrictChange(option, {\n cityCode: option.value as number\n });\n }\n\n this.setState(\n {\n city: option.label as string,\n cityCode: option.value as number,\n district: '',\n districtCode: 0,\n street: '',\n code: option.value\n },\n this.syncOut\n );\n }\n\n @autobind\n handleDistrictChange(\n option: Option,\n otherStates: Partial<CityPickerState> = {}\n ) {\n this.setState(\n {\n ...(otherStates as any),\n district: option.label as string,\n districtCode: option.value as number,\n street: '',\n code: option.value as number\n },\n this.syncOut\n );\n }\n\n @autobind\n handleStreetChange(e: React.ChangeEvent<HTMLInputElement>) {\n this.setState({\n street: e.currentTarget.value\n });\n }\n\n @autobind\n handleStreetEnd() {\n this.syncOut();\n }\n\n @autobind\n syncIn(props = this.props) {\n const db = this.state.db!;\n const {value, delimiter} = props;\n\n if (!db) {\n return;\n }\n\n const state = {\n code: 0,\n province: '',\n provinceCode: 0,\n city: '',\n cityCode: 0,\n district: '',\n districtCode: 0,\n street: ''\n };\n\n let code =\n (value && value.code) ||\n (typeof value === 'number' && value) ||\n (typeof value === 'string' && /(\\d{6})/.test(value) && RegExp.$1);\n\n if (code && db[code]) {\n code = parseInt(code, 10);\n state.code = code;\n\n const provinceCode = code - (code % 10000);\n if (db[provinceCode]) {\n state.provinceCode = provinceCode;\n state.province = db[provinceCode];\n }\n\n const cityCode = code - (code % 100);\n if (db[cityCode]) {\n state.cityCode = cityCode;\n state.city = db[cityCode];\n } else if (~db.city[provinceCode]?.indexOf(code)) {\n state.cityCode = code;\n state.city = db[code];\n }\n\n if (code % 100) {\n state.district = db[code];\n state.districtCode = code;\n }\n } else if (value) {\n // todo 模糊查找\n }\n\n if (value && value.street) {\n state.street = value.street;\n } else if (typeof value === 'string' && ~value.indexOf(delimiter)) {\n state.street = value.slice(value.indexOf(delimiter) + delimiter.length);\n }\n\n this.setState(state);\n }\n\n @autobind\n syncOut() {\n const {onChange, allowStreet, joinValues, extractValue, delimiter} =\n this.props;\n\n const {\n code,\n province,\n city,\n district,\n street,\n provinceCode,\n cityCode,\n districtCode\n } = this.state;\n\n if (typeof extractValue === 'undefined' ? joinValues : extractValue) {\n code\n ? onChange(\n allowStreet && street\n ? [code, street].join(delimiter)\n : String(code)\n )\n : onChange('');\n } else {\n onChange({\n code,\n provinceCode,\n province,\n cityCode,\n city,\n districtCode,\n district,\n street\n });\n }\n }\n\n render() {\n const {\n classnames: cx,\n className,\n disabled,\n allowCity,\n allowDistrict,\n allowStreet,\n searchable,\n translate: __\n } = this.props;\n\n const {provinceCode, cityCode, districtCode, street, db} = this.state;\n\n return db ? (\n <div className={cx('CityPicker', className)}>\n <Select\n searchable={searchable}\n disabled={disabled}\n options={db.province.map(item => ({\n label: db[item],\n value: item\n }))}\n value={provinceCode}\n onChange={this.handleProvinceChange}\n />\n\n {provinceCode &&\n allowDistrict &&\n Array.isArray(db.district[provinceCode]) ? (\n <Select\n searchable={searchable}\n disabled={disabled}\n options={(db.district[provinceCode] as Array<number>).map(item => ({\n label: db[item],\n value: item\n }))}\n value={districtCode}\n onChange={this.handleDistrictChange}\n />\n ) : allowCity &&\n db.city[provinceCode] &&\n db.city[provinceCode].length ? (\n <Select\n searchable={searchable}\n disabled={disabled}\n options={db.city[provinceCode].map(item => ({\n label: db[item],\n value: item\n }))}\n value={cityCode}\n onChange={this.handleCityChange}\n />\n ) : null}\n\n {cityCode &&\n allowDistrict &&\n (db.district[provinceCode]?.[cityCode] as any)?.length ? (\n <Select\n searchable={searchable}\n disabled={disabled}\n options={(db.district[provinceCode][cityCode] as Array<number>).map(\n item => ({\n label: db[item],\n value: item\n })\n )}\n value={districtCode}\n onChange={this.handleDistrictChange}\n />\n ) : null}\n\n {allowStreet && provinceCode ? (\n <input\n className={cx('CityPicker-input')}\n value={street}\n onChange={this.handleStreetChange}\n onBlur={this.handleStreetEnd}\n placeholder={__('City.street')}\n disabled={disabled}\n />\n ) : null}\n </div>\n ) : (\n <Spinner show size=\"sm\" />\n );\n }\n}\n\nconst ThemedCity = themeable(localeable(CityPicker));\nexport default ThemedCity;\n\nexport interface LocationControlProps extends FormControlProps {\n allowCity?: boolean;\n allowDistrict?: boolean;\n extractValue?: boolean;\n joinValues?: boolean;\n allowStreet?: boolean;\n}\nexport class LocationControl extends React.Component<LocationControlProps> {\n render() {\n const {\n value,\n onChange,\n allowCity,\n allowDistrict,\n extractValue,\n joinValues,\n allowStreet,\n disabled,\n searchable,\n env,\n useMobileUI\n } = this.props;\n const mobileUI = useMobileUI && isMobile();\n return mobileUI ? (\n <CityArea\n value={value}\n popOverContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onChange={onChange}\n allowCity={allowCity}\n allowDistrict={allowDistrict}\n extractValue={extractValue}\n joinValues={joinValues}\n allowStreet={allowStreet}\n disabled={disabled}\n useMobileUI={useMobileUI}\n />\n ) : (\n <ThemedCity\n searchable={searchable}\n value={value}\n onChange={onChange}\n allowCity={allowCity}\n allowDistrict={allowDistrict}\n extractValue={extractValue}\n joinValues={joinValues}\n allowStreet={allowStreet}\n disabled={disabled}\n />\n );\n }\n}\n\n@FormItem({\n type: 'input-city',\n sizeMutable: false\n})\nexport class CheckboxControlRenderer extends LocationControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -23,7 +23,9 @@ var ColorControl = /** @class */ (function (_super) {
|
|
23
23
|
react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null, "...") },
|
24
24
|
react_1.default.createElement(exports.ColorPicker, (0, tslib_1.__assign)({ classPrefix: ns }, rest, { useMobileUI: useMobileUI, popOverContainer: mobileUI && env && env.getModalContainer
|
25
25
|
? env.getModalContainer
|
26
|
-
:
|
26
|
+
: mobileUI
|
27
|
+
? undefined
|
28
|
+
: rest.popOverContainer, value: value || '' })))));
|
27
29
|
};
|
28
30
|
ColorControl.defaultProps = {
|
29
31
|
format: 'hex',
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputColor.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,0DAAsC;AACtC,uEAA4B;AAE5B,+BAAmE;AAEnE,6CAA4C;AAE/B,QAAA,WAAW,GAAG,eAAK,CAAC,IAAI,CACnC,cAAM,qFAAO,8BAA8B,QAArC,CAAsC,CAC7C,CAAC;AAiDF;IAA0C,6CAGzC;IAHD;QAAA,
|
9
|
+
"mappings": ";;;;AAAA,0DAAsC;AACtC,uEAA4B;AAE5B,+BAAmE;AAEnE,6CAA4C;AAE/B,QAAA,WAAW,GAAG,eAAK,CAAC,IAAI,CACnC,cAAM,qFAAO,8BAA8B,QAArC,CAAsC,CAC7C,CAAC;AAiDF;IAA0C,6CAGzC;IAHD;QAAA,qEA0CC;QAlCC,WAAK,GAAsB;YACzB,IAAI,EAAE,KAAK;SACZ,CAAC;;IAgCJ,CAAC;IA9BC,6BAAM,GAAN;QACE,IAAM,KAOF,IAAI,CAAC,KAAK,EANZ,SAAS,eAAA,EACI,EAAE,iBAAA,EACf,KAAK,WAAA,EACL,GAAG,SAAA,EACH,WAAW,iBAAA,EACR,IAAI,2BANH,2DAOL,CAAa,CAAC;QACf,IAAM,QAAQ,GAAG,WAAW,IAAI,IAAA,iBAAQ,GAAE,CAAC;QAC3C,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAE,EAAC,UAAG,EAAE,iBAAc,EAAE,SAAS,CAAC;YAChD,8BAAC,gBAAQ,IAAC,QAAQ,EAAE,iDAAc;gBAChC,8BAAC,mBAAW,0BACV,WAAW,EAAE,EAAE,IACX,IAAI,IACR,WAAW,EAAE,WAAW,EACxB,gBAAgB,EACd,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB;wBACtC,CAAC,CAAC,GAAG,CAAC,iBAAiB;wBACvB,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAE3B,KAAK,EAAE,KAAK,IAAI,EAAE,IAClB,CACO,CACP,CACP,CAAC;IACJ,CAAC;IArCM,yBAAY,GAAwB;QACzC,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,IAAI;KAChB,CAAC;IAmCJ,mBAAC;CAAA,AA1CD,CAA0C,eAAK,CAAC,aAAa,GA0C5D;kBA1CoB,YAAY;AA+CjC;IAA0C,qDAAY;IAAtD;;IAAwD,CAAC;IAA5C,oBAAoB;QAHhC,IAAA,eAAQ,EAAC;YACR,IAAI,EAAE,aAAa;SACpB,CAAC;OACW,oBAAoB,CAAwB;IAAD,2BAAC;CAAA,AAAzD,CAA0C,YAAY,GAAG;AAA5C,oDAAoB",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React, {Suspense} from 'react';\nimport cx from 'classnames';\n\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport type {PresetColor} from '../../components/ColorPicker';\nimport {isMobile} from '../../utils/helper';\n\nexport const ColorPicker = React.lazy(\n () => import('../../components/ColorPicker')\n);\n\n/**\n * Color 颜色选择框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/color\n */\nexport interface InputColorControlSchema extends FormBaseControl {\n /**\n * 指定为颜色选择框\n */\n type: 'input-color';\n\n /**\n * 是否显示清除按钮\n */\n clearable?: boolean;\n\n /**\n * 颜色格式\n */\n format?: 'hex' | 'rgb' | 'rgba' | 'hsl';\n\n /**\n * 选中颜色后是否关闭弹出层。\n */\n closeOnSelect?: boolean;\n\n /**\n * 预设颜色,用户可以直接从预设中选。\n */\n presetColors?: Array<PresetColor>;\n\n /**\n * 是否允许用户输入颜色。\n */\n allowCustomColor?: boolean;\n}\n\nexport interface ColorProps\n extends FormControlProps,\n Omit<\n InputColorControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface ColorControlState {\n open: boolean;\n}\n\nexport default class ColorControl extends React.PureComponent<\n ColorProps,\n ColorControlState\n> {\n static defaultProps: Partial<ColorProps> = {\n format: 'hex',\n clearable: true\n };\n state: ColorControlState = {\n open: false\n };\n\n render() {\n const {\n className,\n classPrefix: ns,\n value,\n env,\n useMobileUI,\n ...rest\n } = this.props;\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx(`${ns}ColorControl`, className)}>\n <Suspense fallback={<div>...</div>}>\n <ColorPicker\n classPrefix={ns}\n {...rest}\n useMobileUI={useMobileUI}\n popOverContainer={\n mobileUI && env && env.getModalContainer\n ? env.getModalContainer\n : rest.popOverContainer\n }\n value={value || ''}\n />\n </Suspense>\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-color'\n})\nexport class ColorControlRenderer extends ColorControl {}\n"
|
11
|
+
"import React, {Suspense} from 'react';\nimport cx from 'classnames';\n\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport type {PresetColor} from '../../components/ColorPicker';\nimport {isMobile} from '../../utils/helper';\n\nexport const ColorPicker = React.lazy(\n () => import('../../components/ColorPicker')\n);\n\n/**\n * Color 颜色选择框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/color\n */\nexport interface InputColorControlSchema extends FormBaseControl {\n /**\n * 指定为颜色选择框\n */\n type: 'input-color';\n\n /**\n * 是否显示清除按钮\n */\n clearable?: boolean;\n\n /**\n * 颜色格式\n */\n format?: 'hex' | 'rgb' | 'rgba' | 'hsl';\n\n /**\n * 选中颜色后是否关闭弹出层。\n */\n closeOnSelect?: boolean;\n\n /**\n * 预设颜色,用户可以直接从预设中选。\n */\n presetColors?: Array<PresetColor>;\n\n /**\n * 是否允许用户输入颜色。\n */\n allowCustomColor?: boolean;\n}\n\nexport interface ColorProps\n extends FormControlProps,\n Omit<\n InputColorControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface ColorControlState {\n open: boolean;\n}\n\nexport default class ColorControl extends React.PureComponent<\n ColorProps,\n ColorControlState\n> {\n static defaultProps: Partial<ColorProps> = {\n format: 'hex',\n clearable: true\n };\n state: ColorControlState = {\n open: false\n };\n\n render() {\n const {\n className,\n classPrefix: ns,\n value,\n env,\n useMobileUI,\n ...rest\n } = this.props;\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx(`${ns}ColorControl`, className)}>\n <Suspense fallback={<div>...</div>}>\n <ColorPicker\n classPrefix={ns}\n {...rest}\n useMobileUI={useMobileUI}\n popOverContainer={\n mobileUI && env && env.getModalContainer\n ? env.getModalContainer\n : mobileUI\n ? undefined\n : rest.popOverContainer\n }\n value={value || ''}\n />\n </Suspense>\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-color'\n})\nexport class ColorControlRenderer extends ColorControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -125,7 +125,9 @@ var DateControl = /** @class */ (function (_super) {
|
|
125
125
|
return (react_1.default.createElement("div", { className: cx("DateControl", className) },
|
126
126
|
react_1.default.createElement(DatePicker_1.default, (0, tslib_1.__assign)({}, rest, { useMobileUI: useMobileUI, popOverContainer: mobileUI && env && env.getModalContainer
|
127
127
|
? env.getModalContainer
|
128
|
-
:
|
128
|
+
: mobileUI
|
129
|
+
? undefined
|
130
|
+
: rest.popOverContainer, timeFormat: timeFormat, format: valueFormat || format }, this.state, { classnames: cx, schedules: this.state.schedules, largeMode: largeMode, onScheduleClick: this.onScheduleClick.bind(this), onChange: this.handleChange, onFocus: this.dispatchEvent, onBlur: this.dispatchEvent }))));
|
129
131
|
};
|
130
132
|
var _a;
|
131
133
|
DateControl.defaultProps = {
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputDate.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAmE;AAEnE,uDAIiC;AACjC,+DAA4B;AAC5B,+BAA6B;AAC7B,wFAAqD;AAErD,6CAAgF;AAgRhF;IAAyC,4CAGxC;IAaC,qBAAY,KAAgB;QAA5B,YACE,kBAAM,KAAK,CAAC,SA+Bb;QA5BG,IAAA,OAAO,GAQL,KAAK,QARA,EACP,OAAO,GAOL,KAAK,QAPA,EACP,KAAK,GAMH,KAAK,MANF,EACL,YAAY,GAKV,KAAK,aALK,EACZ,iBAAiB,GAIf,KAAK,kBAJU,EACjB,IAAI,GAGF,KAAK,KAHH,EACJ,MAAM,GAEJ,KAAK,OAFD,EACN,GAAG,GACD,KAAK,IADJ,CACK;QAEV,IAAI,YAAY,IAAI,KAAK,KAAK,YAAY,EAAE;YAC1C,IAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpD,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SACnE;QAED,IAAI,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;QACpC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACrC,IAAM,QAAQ,GAAG,IAAA,sCAAwB,EAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC3B,aAAa,GAAG,QAAQ,CAAC;aAC1B;SACF;QAED,KAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAChE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAChE,SAAS,EAAE,aAAa;SACzB,CAAC;;IACJ,CAAC;IAED,wCAAkB,GAAlB,UAAmB,SAAoB;QACrC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,SAAS,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,EAAE;YACjD,IAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACtE,KAAK,CAAC,iBAAiB,CACrB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAC3D,CAAC;SACH;QAED,IACE,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YACnC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YACnC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAC7B;YACA,IAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;oBACpB,CAAC,CAAC,IAAA,wBAAU,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1D,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,KAAK,CAAC,OAAO;oBACpB,CAAC,CAAC,IAAA,wBAAU,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1D,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;SACJ;QAED,IACE,IAAA,mBAAU,EAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC;YACnD,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YACnC,IAAA,4BAAc,EAAC,KAAK,CAAC,SAAS,CAAC,EAC/B;YACA,IAAM,aAAa,GAAG,IAAA,sCAAwB,EAC5C,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,IAAI,EACV,OAAO,CACR,CAAC;YACF,IAAM,gBAAgB,GAAG,IAAA,sCAAwB,EAC/C,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,IAAI,EACd,OAAO,CACR,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,gBAAgB,KAAK,aAAa,EAAE;gBACtE,IAAI,CAAC,QAAQ,CAAC;oBACZ,SAAS,EAAE,aAAa;iBACzB,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,SAAS;IACT,qCAAe,GAAf,UAAgB,YAAiB;QACzB,IAAA,KAAkD,IAAI,CAAC,KAAK,EAA3D,cAAc,oBAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAa,EAAE,eAAc,CAAC;QACnE,IAAM,qBAAqB,GAAG;YAC5B,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC;gBACrB,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;yBAClB;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC;yBACrB;qBACF;oBACD,IAAI,EAAE,iBAAiB;iBACxB;aACF;SACF,CAAC;QAEF,QAAQ;YACN,QAAQ,CACN,IAAI,EACJ,cAAc,IAAI,qBAAqB,EACvC,IAAA,qBAAY,EAAC,IAAI,EAAE,YAAY,CAAC,CACjC,CAAC;IACN,CAAC;IAED,cAAc;IAEd,mCAAa,GAAb,UAAc,CAAoC;QAC1C,IAAA,KAAwB,IAAI,CAAC,KAAK,EAAjC,aAAa,mBAAA,EAAE,IAAI,UAAc,CAAC;QACzC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;IACL,8BAAQ,GAAR,UAAS,MAAc,EAAE,IAAY,EAAE,WAAoB;QACnD,IAAA,KAAyB,IAAI,CAAC,KAAK,EAAlC,UAAU,gBAAA,EAAE,QAAQ,cAAc,CAAC;QAC1C,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE;YACjC,QAAQ,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,OAAO;IAED,kCAAY,GAAlB,UAAmB,SAAc;;;;gBACzB,KAAwB,IAAI,CAAC,KAAK,EAAjC,aAAa,mBAAA,EAAE,IAAI,UAAA,CAAe;gBACnC,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAA,qBAAY,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC1E,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,EAAE;oBACzB,sBAAO;iBACR;gBACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;;;KAChC;IAED,4BAAM,GAAN;QACE,IAAI,KAgBA,IAAI,CAAC,KAAK,EAfZ,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,WAAW,iBAAA,EACC,EAAE,gBAAA,EACd,OAAO,aAAA,EACP,OAAO,aAAA,EACP,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,GAAG,SAAA,EACH,SAAS,eAAA,EACT,MAAM,YAAA,EACN,WAAW,iBAAA,EACR,IAAI,2BAfL,4KAgBH,CAAa,CAAC;QAEf,IAAI,IAAI,KAAK,MAAM,IAAI,UAAU,EAAE;YACjC,MAAM,GAAG,UAAU,CAAC;SACrB;QAED,IAAM,QAAQ,GAAG,WAAW,IAAI,IAAA,iBAAQ,GAAE,CAAC;QAE3C,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;YAC1C,8BAAC,oBAAU,4BACL,IAAI,IACR,WAAW,EAAE,WAAW,EACxB,gBAAgB,EACd,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB;oBACtC,CAAC,CAAC,GAAG,CAAC,iBAAiB;oBACvB,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAE3B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,WAAW,IAAI,MAAM,IACzB,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,EAAE,EACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAChD,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,aAAa,IAC1B,CACE,CACP,CAAC;IACJ,CAAC;;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport cx from 'classnames';\nimport {\n filterDate,\n isPureVariable,\n resolveVariableAndFilter\n} from '../../utils/tpl-builtin';\nimport moment from 'moment';\nimport 'moment/locale/zh-cn';\nimport DatePicker from '../../components/DatePicker';\nimport {SchemaObject} from '../../Schema';\nimport {createObject, anyChanged, isMobile, autobind} from '../../utils/helper';\nimport {Action} from '../../types';\n\nexport interface InputDateBaseControlSchema extends FormBaseControl {\n /**\n * 指定为日期选择控件\n */\n type:\n | 'input-date'\n | 'input-datetime'\n | 'input-time'\n | 'input-month'\n | 'input-quarter'\n | 'input-year';\n\n /**\n * 是否显示清除按钮\n */\n clearable?: boolean;\n\n /**\n * 日期存储格式\n */\n format?: string;\n\n /**\n * 日期展示格式\n */\n inputFormat?: string;\n\n /**\n * 设定是否存储 utc 时间。\n */\n utc?: boolean;\n\n /**\n * 是否为内联模式?\n */\n emebed?: boolean;\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n}\n\n/**\n * Date日期选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/date\n */\nexport interface DateControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为日期选择控件\n */\n type: 'input-date';\n\n /**\n * 日期存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 日期展示格式\n * @default YYYY-MM-DD\n */\n inputFormat?: string;\n\n /**\n * 点选日期后是否关闭弹窗\n */\n closeOnSelect?: boolean;\n\n /**\n * 限制最小日期\n */\n minDate?: string;\n\n /**\n * 限制最大日期\n */\n maxDate?: string;\n}\n\n/**\n * Datetime日期时间选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/datetime\n */\nexport interface DateTimeControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为日期时间选择控件\n */\n type: 'input-datetime';\n\n /**\n * 日期存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 日期展示格式\n * @default YYYY-MM-DD HH:mm\n */\n inputFormat?: string;\n\n /**\n * 时间的格式。\n *\n * @default HH:mm\n */\n timeFormat?: string;\n\n /**\n * 限制最小日期\n */\n minDate?: string;\n\n /**\n * 限制最大日期\n */\n maxDate?: string;\n\n /**\n * 不记得了\n */\n timeConstraints?: any;\n}\n\n/**\n * Time 时间选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/time\n */\nexport interface TimeControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为日期时间选择控件\n */\n type: 'input-time';\n\n /**\n * 日期存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 日期展示格式\n * @default YYYY-MM-DD HH:mm\n */\n inputFormat?: string;\n\n /**\n * 时间的格式。\n *\n * @default HH:mm\n */\n timeFormat?: string;\n\n /**\n * 不记得了\n */\n timeConstraints?: any;\n}\n\n/**\n * Month 月份选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/Month\n */\nexport interface MonthControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为月份时间选择控件\n */\n type: 'input-month';\n\n /**\n * 月份存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 月份展示格式\n * @default YYYY-MM\n */\n inputFormat?: string;\n}\n\n/**\n * 季度选择控件\n */\nexport interface QuarterControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为月份时间选择控件\n */\n type: 'input-quarter';\n\n /**\n * 月份存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 月份展示格式\n * @default YYYY-MM\n */\n inputFormat?: string;\n}\n\n/**\n * 年份选择控件\n */\nexport interface YearControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为月份时间选择控件\n */\n type: 'input-year';\n\n /**\n * 月份存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 月份展示格式\n * @default YYYY-MM\n */\n inputFormat?: string;\n}\n\nexport interface DateProps extends FormControlProps {\n inputFormat?: string;\n timeFormat?: string;\n format?: string;\n valueFormat?: string;\n timeConstraints?: {\n hours?: {\n min: number;\n max: number;\n step: number;\n };\n minutes?: {\n min: number;\n max: number;\n step: number;\n };\n seconds: {\n min: number;\n max: number;\n step: number;\n };\n };\n closeOnSelect?: boolean;\n disabled: boolean;\n iconClassName?: string;\n utc?: boolean; // 设定是否存储 utc 时间。\n minDate?: string;\n maxDate?: string;\n}\n\ninterface DateControlState {\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: any;\n className?: string;\n }>;\n}\n\nexport default class DateControl extends React.PureComponent<\n DateProps,\n DateControlState\n> {\n static defaultProps = {\n format: 'X',\n viewMode: 'days',\n inputFormat: 'YYYY-MM-DD',\n timeConstraints: {\n minutes: {\n step: 1\n }\n },\n clearable: true\n };\n\n constructor(props: DateProps) {\n super(props);\n\n const {\n minDate,\n maxDate,\n value,\n defaultValue,\n setPrinstineValue,\n data,\n format,\n utc\n } = props;\n\n if (defaultValue && value === defaultValue) {\n const date = filterDate(defaultValue, data, format);\n setPrinstineValue((utc ? moment.utc(date) : date).format(format));\n }\n\n let schedulesData = props.schedules;\n if (typeof schedulesData === 'string') {\n const resolved = resolveVariableAndFilter(schedulesData, data, '| raw');\n if (Array.isArray(resolved)) {\n schedulesData = resolved;\n }\n }\n\n this.state = {\n minDate: minDate ? filterDate(minDate, data, format) : undefined,\n maxDate: maxDate ? filterDate(maxDate, data, format) : undefined,\n schedules: schedulesData\n };\n }\n\n componentDidUpdate(prevProps: DateProps) {\n const props = this.props;\n\n if (prevProps.defaultValue !== props.defaultValue) {\n const date = filterDate(props.defaultValue, props.data, props.format);\n props.setPrinstineValue(\n (props.utc ? moment.utc(date) : date).format(props.format)\n );\n }\n\n if (\n prevProps.minDate !== props.minDate ||\n prevProps.maxDate !== props.maxDate ||\n prevProps.data !== props.data\n ) {\n this.setState({\n minDate: props.minDate\n ? filterDate(props.minDate, props.data, this.props.format)\n : undefined,\n maxDate: props.maxDate\n ? filterDate(props.maxDate, props.data, this.props.format)\n : undefined\n });\n }\n\n if (\n anyChanged(['schedules', 'data'], prevProps, props) &&\n typeof props.schedules === 'string' &&\n isPureVariable(props.schedules)\n ) {\n const schedulesData = resolveVariableAndFilter(\n props.schedules,\n props.data,\n '| raw'\n );\n const preSchedulesData = resolveVariableAndFilter(\n prevProps.schedules,\n prevProps.data,\n '| raw'\n );\n if (Array.isArray(schedulesData) && preSchedulesData !== schedulesData) {\n this.setState({\n schedules: schedulesData\n });\n }\n }\n }\n\n // 日程点击事件\n onScheduleClick(scheduleData: any) {\n const {scheduleAction, onAction, data, translate: __} = this.props;\n const defaultscheduleAction = {\n actionType: 'dialog',\n dialog: {\n title: __('Schedule'),\n actions: [],\n body: {\n type: 'table',\n columns: [\n {\n name: 'time',\n label: __('Time')\n },\n {\n name: 'content',\n label: __('Content')\n }\n ],\n data: '${scheduleData}'\n }\n }\n };\n\n onAction &&\n onAction(\n null,\n scheduleAction || defaultscheduleAction,\n createObject(data, scheduleData)\n );\n }\n\n // 派发有event的事件\n @autobind\n dispatchEvent(e: React.SyntheticEvent<HTMLElement>) {\n const {dispatchEvent, data} = this.props;\n dispatchEvent(e, data);\n }\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 // 值的变化\n @autobind\n async handleChange(nextValue: any) {\n const {dispatchEvent, data} = this.props;\n const dispatcher = dispatchEvent('change', createObject(data, nextValue));\n if (dispatcher?.prevented) {\n return;\n }\n this.props.onChange(nextValue);\n }\n\n render() {\n let {\n className,\n defaultValue,\n defaultData,\n classnames: cx,\n minDate,\n maxDate,\n type,\n format,\n timeFormat,\n valueFormat,\n env,\n largeMode,\n render,\n useMobileUI,\n ...rest\n } = this.props;\n\n if (type === 'time' && timeFormat) {\n format = timeFormat;\n }\n\n const mobileUI = useMobileUI && isMobile();\n\n return (\n <div className={cx(`DateControl`, className)}>\n <DatePicker\n {...rest}\n useMobileUI={useMobileUI}\n popOverContainer={\n mobileUI && env && env.getModalContainer\n ? env.getModalContainer\n : rest.popOverContainer\n }\n timeFormat={timeFormat}\n format={valueFormat || format}\n {...this.state}\n classnames={cx}\n schedules={this.state.schedules}\n largeMode={largeMode}\n onScheduleClick={this.onScheduleClick.bind(this)}\n onChange={this.handleChange}\n onFocus={this.dispatchEvent}\n onBlur={this.dispatchEvent}\n />\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-date',\n weight: -150\n})\nexport class DateControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Date.placeholder',\n dateFormat: 'YYYY-MM-DD',\n timeFormat: '',\n strictMode: false\n };\n}\n\n@FormItem({\n type: 'input-datetime'\n})\nexport class DatetimeControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'DateTime.placeholder',\n inputFormat: 'YYYY-MM-DD HH:mm:ss',\n dateFormat: 'LL',\n timeFormat: 'HH:mm:ss',\n closeOnSelect: false,\n strictMode: false\n };\n}\n\n@FormItem({\n type: 'input-time'\n})\nexport class TimeControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Time.placeholder',\n inputFormat: 'HH:mm',\n dateFormat: '',\n timeFormat: 'HH:mm',\n viewMode: 'time',\n closeOnSelect: false\n };\n}\n\n@FormItem({\n type: 'input-month'\n})\nexport class MonthControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Month.placeholder',\n inputFormat: 'YYYY-MM',\n dateFormat: 'MM',\n timeFormat: '',\n viewMode: 'months',\n closeOnSelect: true\n };\n}\n\n@FormItem({\n type: 'input-quarter'\n})\nexport class QuarterControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Quarter.placeholder',\n inputFormat: 'YYYY [Q]Q',\n dateFormat: 'YYYY [Q]Q',\n timeFormat: '',\n viewMode: 'quarters',\n closeOnSelect: true\n };\n}\n\n@FormItem({\n type: 'input-year'\n})\nexport class YearControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Year.placeholder',\n inputFormat: 'YYYY',\n dateFormat: 'YYYY',\n timeFormat: '',\n viewMode: 'years',\n closeOnSelect: true\n };\n}\n"
|
11
|
+
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport cx from 'classnames';\nimport {\n filterDate,\n isPureVariable,\n resolveVariableAndFilter\n} from '../../utils/tpl-builtin';\nimport moment from 'moment';\nimport 'moment/locale/zh-cn';\nimport DatePicker from '../../components/DatePicker';\nimport {SchemaObject} from '../../Schema';\nimport {createObject, anyChanged, isMobile, autobind} from '../../utils/helper';\nimport {Action} from '../../types';\n\nexport interface InputDateBaseControlSchema extends FormBaseControl {\n /**\n * 指定为日期选择控件\n */\n type:\n | 'input-date'\n | 'input-datetime'\n | 'input-time'\n | 'input-month'\n | 'input-quarter'\n | 'input-year';\n\n /**\n * 是否显示清除按钮\n */\n clearable?: boolean;\n\n /**\n * 日期存储格式\n */\n format?: string;\n\n /**\n * 日期展示格式\n */\n inputFormat?: string;\n\n /**\n * 设定是否存储 utc 时间。\n */\n utc?: boolean;\n\n /**\n * 是否为内联模式?\n */\n emebed?: boolean;\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n}\n\n/**\n * Date日期选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/date\n */\nexport interface DateControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为日期选择控件\n */\n type: 'input-date';\n\n /**\n * 日期存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 日期展示格式\n * @default YYYY-MM-DD\n */\n inputFormat?: string;\n\n /**\n * 点选日期后是否关闭弹窗\n */\n closeOnSelect?: boolean;\n\n /**\n * 限制最小日期\n */\n minDate?: string;\n\n /**\n * 限制最大日期\n */\n maxDate?: string;\n}\n\n/**\n * Datetime日期时间选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/datetime\n */\nexport interface DateTimeControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为日期时间选择控件\n */\n type: 'input-datetime';\n\n /**\n * 日期存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 日期展示格式\n * @default YYYY-MM-DD HH:mm\n */\n inputFormat?: string;\n\n /**\n * 时间的格式。\n *\n * @default HH:mm\n */\n timeFormat?: string;\n\n /**\n * 限制最小日期\n */\n minDate?: string;\n\n /**\n * 限制最大日期\n */\n maxDate?: string;\n\n /**\n * 不记得了\n */\n timeConstraints?: any;\n}\n\n/**\n * Time 时间选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/time\n */\nexport interface TimeControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为日期时间选择控件\n */\n type: 'input-time';\n\n /**\n * 日期存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 日期展示格式\n * @default YYYY-MM-DD HH:mm\n */\n inputFormat?: string;\n\n /**\n * 时间的格式。\n *\n * @default HH:mm\n */\n timeFormat?: string;\n\n /**\n * 不记得了\n */\n timeConstraints?: any;\n}\n\n/**\n * Month 月份选择控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/Month\n */\nexport interface MonthControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为月份时间选择控件\n */\n type: 'input-month';\n\n /**\n * 月份存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 月份展示格式\n * @default YYYY-MM\n */\n inputFormat?: string;\n}\n\n/**\n * 季度选择控件\n */\nexport interface QuarterControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为月份时间选择控件\n */\n type: 'input-quarter';\n\n /**\n * 月份存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 月份展示格式\n * @default YYYY-MM\n */\n inputFormat?: string;\n}\n\n/**\n * 年份选择控件\n */\nexport interface YearControlSchema extends InputDateBaseControlSchema {\n /**\n * 指定为月份时间选择控件\n */\n type: 'input-year';\n\n /**\n * 月份存储格式\n * @default X\n */\n format?: string;\n\n /**\n * 月份展示格式\n * @default YYYY-MM\n */\n inputFormat?: string;\n}\n\nexport interface DateProps extends FormControlProps {\n inputFormat?: string;\n timeFormat?: string;\n format?: string;\n valueFormat?: string;\n timeConstraints?: {\n hours?: {\n min: number;\n max: number;\n step: number;\n };\n minutes?: {\n min: number;\n max: number;\n step: number;\n };\n seconds: {\n min: number;\n max: number;\n step: number;\n };\n };\n closeOnSelect?: boolean;\n disabled: boolean;\n iconClassName?: string;\n utc?: boolean; // 设定是否存储 utc 时间。\n minDate?: string;\n maxDate?: string;\n}\n\ninterface DateControlState {\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: any;\n className?: string;\n }>;\n}\n\nexport default class DateControl extends React.PureComponent<\n DateProps,\n DateControlState\n> {\n static defaultProps = {\n format: 'X',\n viewMode: 'days',\n inputFormat: 'YYYY-MM-DD',\n timeConstraints: {\n minutes: {\n step: 1\n }\n },\n clearable: true\n };\n\n constructor(props: DateProps) {\n super(props);\n\n const {\n minDate,\n maxDate,\n value,\n defaultValue,\n setPrinstineValue,\n data,\n format,\n utc\n } = props;\n\n if (defaultValue && value === defaultValue) {\n const date = filterDate(defaultValue, data, format);\n setPrinstineValue((utc ? moment.utc(date) : date).format(format));\n }\n\n let schedulesData = props.schedules;\n if (typeof schedulesData === 'string') {\n const resolved = resolveVariableAndFilter(schedulesData, data, '| raw');\n if (Array.isArray(resolved)) {\n schedulesData = resolved;\n }\n }\n\n this.state = {\n minDate: minDate ? filterDate(minDate, data, format) : undefined,\n maxDate: maxDate ? filterDate(maxDate, data, format) : undefined,\n schedules: schedulesData\n };\n }\n\n componentDidUpdate(prevProps: DateProps) {\n const props = this.props;\n\n if (prevProps.defaultValue !== props.defaultValue) {\n const date = filterDate(props.defaultValue, props.data, props.format);\n props.setPrinstineValue(\n (props.utc ? moment.utc(date) : date).format(props.format)\n );\n }\n\n if (\n prevProps.minDate !== props.minDate ||\n prevProps.maxDate !== props.maxDate ||\n prevProps.data !== props.data\n ) {\n this.setState({\n minDate: props.minDate\n ? filterDate(props.minDate, props.data, this.props.format)\n : undefined,\n maxDate: props.maxDate\n ? filterDate(props.maxDate, props.data, this.props.format)\n : undefined\n });\n }\n\n if (\n anyChanged(['schedules', 'data'], prevProps, props) &&\n typeof props.schedules === 'string' &&\n isPureVariable(props.schedules)\n ) {\n const schedulesData = resolveVariableAndFilter(\n props.schedules,\n props.data,\n '| raw'\n );\n const preSchedulesData = resolveVariableAndFilter(\n prevProps.schedules,\n prevProps.data,\n '| raw'\n );\n if (Array.isArray(schedulesData) && preSchedulesData !== schedulesData) {\n this.setState({\n schedules: schedulesData\n });\n }\n }\n }\n\n // 日程点击事件\n onScheduleClick(scheduleData: any) {\n const {scheduleAction, onAction, data, translate: __} = this.props;\n const defaultscheduleAction = {\n actionType: 'dialog',\n dialog: {\n title: __('Schedule'),\n actions: [],\n body: {\n type: 'table',\n columns: [\n {\n name: 'time',\n label: __('Time')\n },\n {\n name: 'content',\n label: __('Content')\n }\n ],\n data: '${scheduleData}'\n }\n }\n };\n\n onAction &&\n onAction(\n null,\n scheduleAction || defaultscheduleAction,\n createObject(data, scheduleData)\n );\n }\n\n // 派发有event的事件\n @autobind\n dispatchEvent(e: React.SyntheticEvent<HTMLElement>) {\n const {dispatchEvent, data} = this.props;\n dispatchEvent(e, data);\n }\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 // 值的变化\n @autobind\n async handleChange(nextValue: any) {\n const {dispatchEvent, data} = this.props;\n const dispatcher = dispatchEvent('change', createObject(data, nextValue));\n if (dispatcher?.prevented) {\n return;\n }\n this.props.onChange(nextValue);\n }\n\n render() {\n let {\n className,\n defaultValue,\n defaultData,\n classnames: cx,\n minDate,\n maxDate,\n type,\n format,\n timeFormat,\n valueFormat,\n env,\n largeMode,\n render,\n useMobileUI,\n ...rest\n } = this.props;\n\n if (type === 'time' && timeFormat) {\n format = timeFormat;\n }\n\n const mobileUI = useMobileUI && isMobile();\n\n return (\n <div className={cx(`DateControl`, className)}>\n <DatePicker\n {...rest}\n useMobileUI={useMobileUI}\n popOverContainer={\n mobileUI && env && env.getModalContainer\n ? env.getModalContainer\n : mobileUI\n ? undefined\n : rest.popOverContainer\n }\n timeFormat={timeFormat}\n format={valueFormat || format}\n {...this.state}\n classnames={cx}\n schedules={this.state.schedules}\n largeMode={largeMode}\n onScheduleClick={this.onScheduleClick.bind(this)}\n onChange={this.handleChange}\n onFocus={this.dispatchEvent}\n onBlur={this.dispatchEvent}\n />\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-date',\n weight: -150\n})\nexport class DateControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Date.placeholder',\n dateFormat: 'YYYY-MM-DD',\n timeFormat: '',\n strictMode: false\n };\n}\n\n@FormItem({\n type: 'input-datetime'\n})\nexport class DatetimeControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'DateTime.placeholder',\n inputFormat: 'YYYY-MM-DD HH:mm:ss',\n dateFormat: 'LL',\n timeFormat: 'HH:mm:ss',\n closeOnSelect: false,\n strictMode: false\n };\n}\n\n@FormItem({\n type: 'input-time'\n})\nexport class TimeControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Time.placeholder',\n inputFormat: 'HH:mm',\n dateFormat: '',\n timeFormat: 'HH:mm',\n viewMode: 'time',\n closeOnSelect: false\n };\n}\n\n@FormItem({\n type: 'input-month'\n})\nexport class MonthControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Month.placeholder',\n inputFormat: 'YYYY-MM',\n dateFormat: 'MM',\n timeFormat: '',\n viewMode: 'months',\n closeOnSelect: true\n };\n}\n\n@FormItem({\n type: 'input-quarter'\n})\nexport class QuarterControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Quarter.placeholder',\n inputFormat: 'YYYY [Q]Q',\n dateFormat: 'YYYY [Q]Q',\n timeFormat: '',\n viewMode: 'quarters',\n closeOnSelect: true\n };\n}\n\n@FormItem({\n type: 'input-year'\n})\nexport class YearControlRenderer extends DateControl {\n static defaultProps = {\n ...DateControl.defaultProps,\n placeholder: 'Year.placeholder',\n inputFormat: 'YYYY',\n dateFormat: 'YYYY',\n timeFormat: '',\n viewMode: 'years',\n closeOnSelect: true\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -72,7 +72,9 @@ var DateRangeControl = /** @class */ (function (_super) {
|
|
72
72
|
return (react_1.default.createElement("div", { className: (0, classnames_1.default)("".concat(ns, "DateRangeControl"), className) },
|
73
73
|
react_1.default.createElement(DateRangePicker_1.default, (0, tslib_1.__assign)({}, rest, { useMobileUI: useMobileUI, classPrefix: ns, popOverContainer: mobileUI && env && env.getModalContainer
|
74
74
|
? env.getModalContainer
|
75
|
-
:
|
75
|
+
: mobileUI
|
76
|
+
? undefined
|
77
|
+
: rest.popOverContainer, data: data, format: format, minDate: minDate ? (0, tpl_builtin_1.filterDate)(minDate, data, format) : undefined, maxDate: maxDate ? (0, tpl_builtin_1.filterDate)(maxDate, data, format) : undefined, minDuration: minDuration ? (0, tpl_builtin_1.parseDuration)(minDuration) : undefined, maxDuration: maxDuration ? (0, tpl_builtin_1.parseDuration)(maxDuration) : undefined, onChange: this.handleChange, onFocus: this.dispatchEvent, onBlur: this.dispatchEvent }))));
|
76
78
|
};
|
77
79
|
var _a;
|
78
80
|
DateRangeControl.defaultProps = {
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputDateRange.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 {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport cx from 'classnames';\nimport {filterDate, parseDuration} from '../../utils/tpl-builtin';\nimport 'moment/locale/zh-cn';\nimport includes from 'lodash/includes';\nimport DateRangePicker, {\n DateRangePicker as BaseDateRangePicker\n} from '../../components/DateRangePicker';\nimport { isMobile, createObject, autobind } from '../../utils/helper';\nimport {Action} from '../../types';\n\n/**\n * DateRange 日期范围控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/date-range\n */\nexport interface DateRangeControlSchema extends FormBaseControl {\n /**\n * 指定为日期范围控件\n */\n type: 'input-date-range' | 'input-datetime-range' | 'input-time-range';\n\n /**\n * 分割符, 因为有两个值,开始时间和结束时间,所以要有连接符。默认为英文逗号。\n *\n */\n delimiter?: string;\n\n /**\n * 默认 `X` 即时间戳格式,用来提交的时间格式。更多格式类型请参考 moment.\n */\n format?: string;\n\n /**\n * 默认 `YYYY-MM-DD` 用来配置显示的时间格式。\n */\n inputFormat?: string;\n\n /**\n * 开启后将选中的选项 value 的值用连接符拼接起来,作为当前表单项的值。如: `value1,value2` 否则为 `[value1, value2]`\n */\n joinValues?: boolean;\n\n /**\n * 最大日期限制,支持变量 $xxx 来取值,或者用相对值如:* `-2mins` 2分钟前\\n * `+2days` 2天后\\n* `-10week` 十周前\\n可用单位: `min`、`hour`、`day`、`week`、`month`、`year`。所有单位支持复数形式。\n */\n maxDate?: string;\n\n /**\n * 最小日期限制,支持变量 $xxx 来取值,或者用相对值如:* `-2mins` 2分钟前\\n * `+2days` 2天后\\n* `-10week` 十周前\\n可用单位: `min`、`hour`、`day`、`week`、`month`、`year`。所有单位支持复数形式。\n */\n minDate?: string;\n\n /**\n * 最大跨度,比如 2days\n */\n maxDuration?: string;\n\n /**\n * 最小跨度,比如 2days\n */\n minDuration?: string;\n\n /**\n * 这里面 value 需要特殊说明一下,因为支持相对值。* `-2mins` 2分钟前\\n * `+2days` 2天后\\n* `-10week` 十周前\\n可用单位: `min`、`hour`、`day`、`week`、`month`、`year`。所有单位支持复数形式。\n */\n value?: any;\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 开启后变成非弹出模式,即内联模式。\n */\n embed?: boolean;\n}\n\nexport interface DateRangeProps\n extends FormControlProps,\n Omit<\n DateRangeControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n delimiter: string;\n format: string;\n joinValues: boolean;\n}\n\nexport default class DateRangeControl extends React.Component<DateRangeProps> {\n static defaultProps = {\n format: 'X',\n joinValues: true,\n delimiter: ','\n };\n\n constructor(props: DateRangeProps) {\n super(props);\n\n const {\n defaultValue,\n setPrinstineValue,\n delimiter,\n format,\n data,\n value,\n joinValues,\n utc\n } = props;\n\n if (defaultValue && value === defaultValue) {\n let arr =\n typeof defaultValue === 'string'\n ? defaultValue.split(delimiter)\n : defaultValue;\n setPrinstineValue(\n BaseDateRangePicker.formatValue(\n {\n startDate: filterDate(arr[0], data, format),\n endDate: filterDate(arr[1], data, format)\n },\n format,\n joinValues,\n delimiter,\n utc\n )\n );\n }\n }\n\n componentDidUpdate(prevProps: DateRangeProps) {\n const {\n defaultValue,\n delimiter,\n joinValues,\n setPrinstineValue,\n data,\n utc,\n format\n } = this.props;\n\n if (prevProps.defaultValue !== defaultValue) {\n let arr =\n typeof defaultValue === 'string'\n ? defaultValue.split(delimiter)\n : defaultValue;\n\n setPrinstineValue(\n arr\n ? BaseDateRangePicker.formatValue(\n {\n startDate: filterDate(arr[0], data, format),\n endDate: filterDate(arr[1], data, format)\n },\n format,\n joinValues,\n delimiter,\n utc\n )\n : undefined\n );\n }\n }\n\n // 派发有event的事件\n @autobind\n dispatchEvent(e: React.SyntheticEvent<HTMLElement>) {\n const {dispatchEvent, data} = this.props;\n dispatchEvent(e, data);\n }\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 // 值的变化\n @autobind\n async handleChange(nextValue: any) {\n const {dispatchEvent, data} = this.props;\n const dispatcher = dispatchEvent('change', createObject(data, nextValue));\n if (dispatcher?.prevented) {\n return;\n }\n this.props.onChange(nextValue);\n }\n\n render() {\n const {\n className,\n classPrefix: ns,\n defaultValue,\n defaultData,\n minDate,\n maxDate,\n minDuration,\n maxDuration,\n data,\n format,\n env,\n useMobileUI,\n ...rest\n } = this.props;\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx(`${ns}DateRangeControl`, className)}>\n <DateRangePicker\n {...rest}\n useMobileUI={useMobileUI}\n classPrefix={ns}\n popOverContainer={\n mobileUI && env && env.getModalContainer\n ? env.getModalContainer\n : rest.popOverContainer\n }\n data={data}\n format={format}\n minDate={minDate ? filterDate(minDate, data, format) : undefined}\n maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}\n minDuration={minDuration ? parseDuration(minDuration) : undefined}\n maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}\n onChange={this.handleChange}\n onFocus={this.dispatchEvent}\n onBlur={this.dispatchEvent}\n />\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-date-range'\n})\nexport class DateRangeControlRenderer extends DateRangeControl {\n static defaultProps = {\n ...DateRangeControl.defaultProps,\n timeFormat: ''\n };\n}\n\n@FormItem({\n type: 'input-datetime-range',\n sizeMutable: false\n})\nexport class DateTimeRangeControlRenderer extends DateRangeControl {\n static defaultProps = {\n ...DateRangeControl.defaultProps,\n timeFormat: 'HH:mm',\n inputFormat: 'YYYY-MM-DD HH:mm'\n };\n}\n\n@FormItem({\n type: 'input-time-range',\n sizeMutable: false\n})\nexport class TimeRangeControlRenderer extends DateRangeControl {\n static defaultProps = {\n ...DateRangeControl.defaultProps,\n format: 'HH:mm',\n timeFormat: 'HH:mm',\n inputFormat: 'HH:mm',\n viewMode: 'time',\n ranges: ''\n };\n}\n"
|
11
|
+
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport cx from 'classnames';\nimport {filterDate, parseDuration} from '../../utils/tpl-builtin';\nimport 'moment/locale/zh-cn';\nimport includes from 'lodash/includes';\nimport DateRangePicker, {\n DateRangePicker as BaseDateRangePicker\n} from '../../components/DateRangePicker';\nimport { isMobile, createObject, autobind } from '../../utils/helper';\nimport {Action} from '../../types';\n\n/**\n * DateRange 日期范围控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/date-range\n */\nexport interface DateRangeControlSchema extends FormBaseControl {\n /**\n * 指定为日期范围控件\n */\n type: 'input-date-range' | 'input-datetime-range' | 'input-time-range';\n\n /**\n * 分割符, 因为有两个值,开始时间和结束时间,所以要有连接符。默认为英文逗号。\n *\n */\n delimiter?: string;\n\n /**\n * 默认 `X` 即时间戳格式,用来提交的时间格式。更多格式类型请参考 moment.\n */\n format?: string;\n\n /**\n * 默认 `YYYY-MM-DD` 用来配置显示的时间格式。\n */\n inputFormat?: string;\n\n /**\n * 开启后将选中的选项 value 的值用连接符拼接起来,作为当前表单项的值。如: `value1,value2` 否则为 `[value1, value2]`\n */\n joinValues?: boolean;\n\n /**\n * 最大日期限制,支持变量 $xxx 来取值,或者用相对值如:* `-2mins` 2分钟前\\n * `+2days` 2天后\\n* `-10week` 十周前\\n可用单位: `min`、`hour`、`day`、`week`、`month`、`year`。所有单位支持复数形式。\n */\n maxDate?: string;\n\n /**\n * 最小日期限制,支持变量 $xxx 来取值,或者用相对值如:* `-2mins` 2分钟前\\n * `+2days` 2天后\\n* `-10week` 十周前\\n可用单位: `min`、`hour`、`day`、`week`、`month`、`year`。所有单位支持复数形式。\n */\n minDate?: string;\n\n /**\n * 最大跨度,比如 2days\n */\n maxDuration?: string;\n\n /**\n * 最小跨度,比如 2days\n */\n minDuration?: string;\n\n /**\n * 这里面 value 需要特殊说明一下,因为支持相对值。* `-2mins` 2分钟前\\n * `+2days` 2天后\\n* `-10week` 十周前\\n可用单位: `min`、`hour`、`day`、`week`、`month`、`year`。所有单位支持复数形式。\n */\n value?: any;\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 开启后变成非弹出模式,即内联模式。\n */\n embed?: boolean;\n}\n\nexport interface DateRangeProps\n extends FormControlProps,\n Omit<\n DateRangeControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n delimiter: string;\n format: string;\n joinValues: boolean;\n}\n\nexport default class DateRangeControl extends React.Component<DateRangeProps> {\n static defaultProps = {\n format: 'X',\n joinValues: true,\n delimiter: ','\n };\n\n constructor(props: DateRangeProps) {\n super(props);\n\n const {\n defaultValue,\n setPrinstineValue,\n delimiter,\n format,\n data,\n value,\n joinValues,\n utc\n } = props;\n\n if (defaultValue && value === defaultValue) {\n let arr =\n typeof defaultValue === 'string'\n ? defaultValue.split(delimiter)\n : defaultValue;\n setPrinstineValue(\n BaseDateRangePicker.formatValue(\n {\n startDate: filterDate(arr[0], data, format),\n endDate: filterDate(arr[1], data, format)\n },\n format,\n joinValues,\n delimiter,\n utc\n )\n );\n }\n }\n\n componentDidUpdate(prevProps: DateRangeProps) {\n const {\n defaultValue,\n delimiter,\n joinValues,\n setPrinstineValue,\n data,\n utc,\n format\n } = this.props;\n\n if (prevProps.defaultValue !== defaultValue) {\n let arr =\n typeof defaultValue === 'string'\n ? defaultValue.split(delimiter)\n : defaultValue;\n\n setPrinstineValue(\n arr\n ? BaseDateRangePicker.formatValue(\n {\n startDate: filterDate(arr[0], data, format),\n endDate: filterDate(arr[1], data, format)\n },\n format,\n joinValues,\n delimiter,\n utc\n )\n : undefined\n );\n }\n }\n\n // 派发有event的事件\n @autobind\n dispatchEvent(e: React.SyntheticEvent<HTMLElement>) {\n const {dispatchEvent, data} = this.props;\n dispatchEvent(e, data);\n }\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 // 值的变化\n @autobind\n async handleChange(nextValue: any) {\n const {dispatchEvent, data} = this.props;\n const dispatcher = dispatchEvent('change', createObject(data, nextValue));\n if (dispatcher?.prevented) {\n return;\n }\n this.props.onChange(nextValue);\n }\n\n render() {\n const {\n className,\n classPrefix: ns,\n defaultValue,\n defaultData,\n minDate,\n maxDate,\n minDuration,\n maxDuration,\n data,\n format,\n env,\n useMobileUI,\n ...rest\n } = this.props;\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx(`${ns}DateRangeControl`, className)}>\n <DateRangePicker\n {...rest}\n useMobileUI={useMobileUI}\n classPrefix={ns}\n popOverContainer={\n mobileUI && env && env.getModalContainer\n ? env.getModalContainer\n : mobileUI\n ? undefined\n : rest.popOverContainer\n }\n data={data}\n format={format}\n minDate={minDate ? filterDate(minDate, data, format) : undefined}\n maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}\n minDuration={minDuration ? parseDuration(minDuration) : undefined}\n maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}\n onChange={this.handleChange}\n onFocus={this.dispatchEvent}\n onBlur={this.dispatchEvent}\n />\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-date-range'\n})\nexport class DateRangeControlRenderer extends DateRangeControl {\n static defaultProps = {\n ...DateRangeControl.defaultProps,\n timeFormat: ''\n };\n}\n\n@FormItem({\n type: 'input-datetime-range',\n sizeMutable: false\n})\nexport class DateTimeRangeControlRenderer extends DateRangeControl {\n static defaultProps = {\n ...DateRangeControl.defaultProps,\n timeFormat: 'HH:mm',\n inputFormat: 'YYYY-MM-DD HH:mm'\n };\n}\n\n@FormItem({\n type: 'input-time-range',\n sizeMutable: false\n})\nexport class TimeRangeControlRenderer extends DateRangeControl {\n static defaultProps = {\n ...DateRangeControl.defaultProps,\n format: 'HH:mm',\n timeFormat: 'HH:mm',\n inputFormat: 'HH:mm',\n viewMode: 'time',\n ranges: ''\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -31,15 +31,19 @@ export interface ExcelProps extends FormControlProps, Omit<InputExcelControlSche
|
|
31
31
|
export interface ExcelControlState {
|
32
32
|
filename: string;
|
33
33
|
}
|
34
|
+
export declare type InputExcelRendererEvent = 'change';
|
35
|
+
export declare type InputExcelRendererAction = 'clear';
|
34
36
|
export default class ExcelControl extends React.PureComponent<ExcelProps, ExcelControlState> {
|
35
37
|
static defaultProps: Partial<ExcelProps>;
|
36
38
|
state: ExcelControlState;
|
37
39
|
ExcelJS: any;
|
38
40
|
handleDrop(files: File[]): void;
|
41
|
+
dispatchEvent(eventName: string, eventData?: Record<string, any>): Promise<any>;
|
39
42
|
/**
|
40
43
|
* 读取单个 sheet 的内容
|
41
44
|
*/
|
42
45
|
readWorksheet(worksheet: any): any[];
|
46
|
+
doAction(action: any, data: object, throwErrors: boolean): void;
|
43
47
|
render(): JSX.Element;
|
44
48
|
}
|
45
49
|
export declare class ExcelControlRenderer extends ExcelControl {
|
@@ -17,7 +17,7 @@ var ExcelControl = /** @class */ (function (_super) {
|
|
17
17
|
}
|
18
18
|
ExcelControl.prototype.handleDrop = function (files) {
|
19
19
|
var _this = this;
|
20
|
-
var _a = this.props, allSheets = _a.allSheets, onChange = _a.onChange;
|
20
|
+
var _a = this.props, allSheets = _a.allSheets, onChange = _a.onChange, dispatchEvent = _a.dispatchEvent, data = _a.data;
|
21
21
|
var excel = files[0];
|
22
22
|
var reader = new FileReader();
|
23
23
|
reader.readAsArrayBuffer(excel);
|
@@ -26,7 +26,7 @@ var ExcelControl = /** @class */ (function (_super) {
|
|
26
26
|
return (0, tslib_1.__generator)(this, function (_a) {
|
27
27
|
if (reader.result) {
|
28
28
|
Promise.resolve().then(function () { return new Promise(function(resolve){require(['exceljs'], function(ret) {resolve(tslib_1.__importStar(ret));})}); }).then(function (ExcelJS) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
29
|
-
var workbook,
|
29
|
+
var workbook, sheetsResult, worksheet, dispatcher;
|
30
30
|
var _this = this;
|
31
31
|
return (0, tslib_1.__generator)(this, function (_a) {
|
32
32
|
switch (_a.label) {
|
@@ -36,20 +36,26 @@ var ExcelControl = /** @class */ (function (_super) {
|
|
36
36
|
return [4 /*yield*/, workbook.xlsx.load(reader.result)];
|
37
37
|
case 1:
|
38
38
|
_a.sent();
|
39
|
+
sheetsResult = [];
|
39
40
|
if (allSheets) {
|
40
|
-
sheetsResult_1 = [];
|
41
41
|
workbook.eachSheet(function (worksheet) {
|
42
|
-
|
42
|
+
sheetsResult.push({
|
43
43
|
sheetName: worksheet.name,
|
44
44
|
data: _this.readWorksheet(worksheet)
|
45
45
|
});
|
46
|
-
onChange(sheetsResult_1);
|
47
46
|
});
|
48
47
|
}
|
49
48
|
else {
|
50
49
|
worksheet = workbook.worksheets[0];
|
51
|
-
|
50
|
+
sheetsResult = this.readWorksheet(worksheet);
|
52
51
|
}
|
52
|
+
return [4 /*yield*/, this.dispatchEvent('change', sheetsResult)];
|
53
|
+
case 2:
|
54
|
+
dispatcher = _a.sent();
|
55
|
+
if (dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented) {
|
56
|
+
return [2 /*return*/];
|
57
|
+
}
|
58
|
+
onChange(sheetsResult);
|
53
59
|
this.setState({ filename: files[0].name });
|
54
60
|
return [2 /*return*/];
|
55
61
|
}
|
@@ -60,6 +66,21 @@ var ExcelControl = /** @class */ (function (_super) {
|
|
60
66
|
});
|
61
67
|
}); };
|
62
68
|
};
|
69
|
+
ExcelControl.prototype.dispatchEvent = function (eventName, eventData) {
|
70
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
71
|
+
var _a, dispatchEvent, data;
|
72
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
73
|
+
switch (_b.label) {
|
74
|
+
case 0:
|
75
|
+
_a = this.props, dispatchEvent = _a.dispatchEvent, data = _a.data;
|
76
|
+
return [4 /*yield*/, dispatchEvent(eventName, (0, helper_1.createObject)(data, {
|
77
|
+
value: eventData
|
78
|
+
}))];
|
79
|
+
case 1: return [2 /*return*/, _b.sent()];
|
80
|
+
}
|
81
|
+
});
|
82
|
+
});
|
83
|
+
};
|
63
84
|
/**
|
64
85
|
* 读取单个 sheet 的内容
|
65
86
|
*/
|
@@ -113,6 +134,12 @@ var ExcelControl = /** @class */ (function (_super) {
|
|
113
134
|
return result;
|
114
135
|
}
|
115
136
|
};
|
137
|
+
ExcelControl.prototype.doAction = function (action, data, throwErrors) {
|
138
|
+
var onChange = this.props.onChange;
|
139
|
+
if (action.actionType === 'clear') {
|
140
|
+
onChange('');
|
141
|
+
}
|
142
|
+
};
|
116
143
|
ExcelControl.prototype.render = function () {
|
117
144
|
var _this = this;
|
118
145
|
var _a = this.props, className = _a.className, cx = _a.classnames, ns = _a.classPrefix, value = _a.value, disabled = _a.disabled, __ = _a.translate;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputExcel.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAAsC;AACtC,+EAAsC;AAGtC,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React, {Suspense} from 'react';\nimport Dropzone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport {Icon} from '../../components/icons';\nimport {autobind} from '../../utils/helper';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\n\n/**\n * Excel 解析\n * 文档:https://baidu.gitee.io/amis/docs/components/form/input-excel\n */\nexport interface InputExcelControlSchema extends FormBaseControl {\n /**\n * 指定为 Excel 解析\n */\n type: 'input-excel';\n\n /**\n * 是否解析所有 sheet,默认情况下只解析第一个\n */\n allSheets: boolean;\n\n /**\n * 解析模式,array 是解析成二维数组,object 是将第一列作为字段名,解析为对象数组\n */\n parseMode: 'array' | 'object';\n\n /**\n * 是否包含空内容,主要用于二维数组模式\n */\n includeEmpty: boolean;\n\n /**\n * 纯文本模式\n */\n plainText: boolean;\n}\n\nexport interface ExcelProps\n extends FormControlProps,\n Omit<\n InputExcelControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface ExcelControlState {\n filename: string;\n}\n\nexport default class ExcelControl extends React.PureComponent<\n ExcelProps,\n ExcelControlState\n> {\n static defaultProps: Partial<ExcelProps> = {\n allSheets: false,\n parseMode: 'object',\n includeEmpty: true,\n plainText: true\n };\n\n state: ExcelControlState = {\n filename: ''\n };\n\n ExcelJS: any;\n\n @autobind\n handleDrop(files: File[]) {\n const {allSheets, onChange} = this.props;\n const excel = files[0];\n const reader = new FileReader();\n reader.readAsArrayBuffer(excel);\n reader.onload = async () => {\n if (reader.result) {\n import('exceljs').then(async (ExcelJS: any) => {\n this.ExcelJS = ExcelJS;\n const workbook = new ExcelJS.Workbook();\n await workbook.xlsx.load(reader.result);\n
|
11
|
+
"import React, {Suspense} from 'react';\nimport Dropzone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport {Icon} from '../../components/icons';\nimport {autobind, createObject} from '../../utils/helper';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\n\n/**\n * Excel 解析\n * 文档:https://baidu.gitee.io/amis/docs/components/form/input-excel\n */\nexport interface InputExcelControlSchema extends FormBaseControl {\n /**\n * 指定为 Excel 解析\n */\n type: 'input-excel';\n\n /**\n * 是否解析所有 sheet,默认情况下只解析第一个\n */\n allSheets: boolean;\n\n /**\n * 解析模式,array 是解析成二维数组,object 是将第一列作为字段名,解析为对象数组\n */\n parseMode: 'array' | 'object';\n\n /**\n * 是否包含空内容,主要用于二维数组模式\n */\n includeEmpty: boolean;\n\n /**\n * 纯文本模式\n */\n plainText: boolean;\n}\n\nexport interface ExcelProps\n extends FormControlProps,\n Omit<\n InputExcelControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface ExcelControlState {\n filename: string;\n}\n\nexport type InputExcelRendererEvent = 'change';\nexport type InputExcelRendererAction = 'clear';\nexport default class ExcelControl extends React.PureComponent<\n ExcelProps,\n ExcelControlState\n> {\n static defaultProps: Partial<ExcelProps> = {\n allSheets: false,\n parseMode: 'object',\n includeEmpty: true,\n plainText: true\n };\n\n state: ExcelControlState = {\n filename: ''\n };\n\n ExcelJS: any;\n\n @autobind\n handleDrop(files: File[]) {\n const {allSheets, onChange, dispatchEvent, data} = this.props;\n const excel = files[0];\n const reader = new FileReader();\n reader.readAsArrayBuffer(excel);\n reader.onload = async () => {\n if (reader.result) {\n import('exceljs').then(async (ExcelJS: any) => {\n this.ExcelJS = ExcelJS;\n const workbook = new ExcelJS.Workbook();\n await workbook.xlsx.load(reader.result);\n let sheetsResult: any[] = [];\n if (allSheets) {\n workbook.eachSheet((worksheet: any) => {\n sheetsResult.push({\n sheetName: worksheet.name,\n data: this.readWorksheet(worksheet)\n });\n });\n } else {\n const worksheet = workbook.worksheets[0];\n sheetsResult = this.readWorksheet(worksheet);\n }\n const dispatcher = await this.dispatchEvent('change', sheetsResult);\n if (dispatcher?.prevented) {\n return;\n }\n onChange(sheetsResult);\n this.setState({filename: files[0].name});\n });\n }\n };\n }\n\n async dispatchEvent(eventName: string, eventData?: Record<string, any>) {\n const {dispatchEvent, data} = this.props;\n return await dispatchEvent(\n eventName,\n createObject(data, {\n value: eventData\n })\n );\n }\n /**\n * 读取单个 sheet 的内容\n */\n readWorksheet(worksheet: any) {\n const result: any[] = [];\n const {parseMode, plainText} = this.props;\n\n if (parseMode === 'array') {\n worksheet.eachRow((row: any, rowNumber: number) => {\n const values = row.values;\n values.shift(); // excel 返回的值是从 1 开始的,0 节点永远是 null\n result.push(values);\n });\n return result;\n } else {\n let firstRowValues: any[] = [];\n worksheet.eachRow((row: any, rowNumber: number) => {\n // 将第一列作为字段名\n if (rowNumber == 1) {\n firstRowValues = row.values;\n } else {\n const data: any = {};\n row.eachCell((cell: any, colNumber: any) => {\n if (firstRowValues[colNumber]) {\n let value = cell.value;\n if (plainText) {\n const ExcelValueType = this.ExcelJS.ValueType;\n if (cell.type === ExcelValueType.Hyperlink) {\n value = cell.value.hyperlink;\n } else if (cell.type === ExcelValueType.Formula) {\n value = cell.value.result;\n } else if (cell.type === ExcelValueType.RichText) {\n value = cell.value.richText\n .map((item: any) => item.text)\n .join('');\n } else if (cell.type === ExcelValueType.Error) {\n value = '';\n }\n }\n\n data[firstRowValues[colNumber]] = value;\n }\n });\n result.push(data);\n }\n });\n return result;\n }\n }\n\n doAction(action: any, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n onChange('');\n }\n }\n\n render() {\n const {\n className,\n classnames: cx,\n classPrefix: ns,\n value,\n disabled,\n translate: __\n } = this.props;\n\n return (\n <div className={cx('ExcelControl', className)}>\n <Dropzone\n key=\"drop-zone\"\n onDrop={this.handleDrop}\n accept=\".xlsx\"\n multiple={false}\n disabled={disabled}\n >\n {({getRootProps, getInputProps}) => (\n <section className={cx('ExcelControl-container', className)}>\n <div {...getRootProps({className: cx('ExcelControl-dropzone')})}>\n <input {...getInputProps()} />\n {this.state.filename ? (\n __('Excel.parsed', {\n filename: this.state.filename\n })\n ) : (\n <p>{__('Excel.placeholder')}</p>\n )}\n </div>\n </section>\n )}\n </Dropzone>\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-excel'\n})\nexport class ExcelControlRenderer extends ExcelControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { FormControlProps, FormBaseControl } from './Item';
|
3
|
-
import { Payload, ApiObject, ApiString } from '../../types';
|
3
|
+
import { Payload, ApiObject, ApiString, Action } from '../../types';
|
4
4
|
import { FileRejection } from 'react-dropzone';
|
5
5
|
import { SchemaApi, SchemaClassName, SchemaTokenizeableString } from '../../Schema';
|
6
6
|
/**
|
@@ -194,6 +194,8 @@ export interface FileState {
|
|
194
194
|
error?: string | null;
|
195
195
|
}
|
196
196
|
export declare function getNameFromUrl(url: string): string;
|
197
|
+
export declare type InputFileRendererEvent = 'change' | 'success' | 'fail' | 'remove';
|
198
|
+
export declare type InputFileRendererAction = 'clear';
|
197
199
|
export default class FileControl extends React.Component<FileProps, FileState> {
|
198
200
|
static defaultProps: Partial<FileProps>;
|
199
201
|
state: FileState;
|
@@ -231,6 +233,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
231
233
|
removeFileCanelExecutor(file: any, execute?: boolean): void;
|
232
234
|
validate(): any;
|
233
235
|
dispatchEvent(e: string, data?: Record<string, any>): Promise<any>;
|
236
|
+
doAction(action: Action, data: object, throwErrors: boolean): void;
|
234
237
|
render(): JSX.Element;
|
235
238
|
}
|
236
239
|
export declare class FileControlRenderer extends FileControl {
|
@@ -731,6 +731,15 @@ var FileControl = /** @class */ (function (_super) {
|
|
731
731
|
});
|
732
732
|
});
|
733
733
|
};
|
734
|
+
// 动作
|
735
|
+
FileControl.prototype.doAction = function (action, data, throwErrors) {
|
736
|
+
var onChange = this.props.onChange;
|
737
|
+
if (action.actionType === 'clear') {
|
738
|
+
this.setState({ files: [] }, function () {
|
739
|
+
onChange('');
|
740
|
+
});
|
741
|
+
}
|
742
|
+
};
|
734
743
|
FileControl.prototype.render = function () {
|
735
744
|
var _this = this;
|
736
745
|
var _a = this.props, btnLabel = _a.btnLabel, accept = _a.accept, disabled = _a.disabled, maxLength = _a.maxLength, maxSize = _a.maxSize, multiple = _a.multiple, autoUpload = _a.autoUpload, description = _a.description, descriptionClassName = _a.descriptionClassName, hideUploadButton = _a.hideUploadButton, className = _a.className, btnClassName = _a.btnClassName, btnUploadClassName = _a.btnUploadClassName, cx = _a.classnames, __ = _a.translate, render = _a.render, downloadUrl = _a.downloadUrl, templateUrl = _a.templateUrl, drag = _a.drag;
|