diff --git a/package.json b/package.json index d005af385..e92e986b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "shineout", - "version": "2.0.21", + "version": "2.0.22", "description": "Shein 前端组件库", "main": "./lib/index.js", "module": "./es/index.js", diff --git a/site/chunks/Components/Image.js b/site/chunks/Components/Image.js index 77e7ccfd3..f6fcf54d8 100644 --- a/site/chunks/Components/Image.js +++ b/site/chunks/Components/Image.js @@ -147,7 +147,7 @@ const examples = [ const codes = undefined -const api = '[{"title":"Image","properties":[{"name":"height","tag":{"cn":"图片高度(值为百分比时,对比值为图片宽度)","en":"the height of the image(When the value is percentage, the ratio is the width of the image)","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"href","tag":{"cn":"原始图片地址","en":"original picture address","default":"","version":""},"required":false,"type":"string "},{"name":"lazy","tag":{"cn":"是否延迟加载,如果为数字则表示懒加载偏移量","en":"whether to delay loading, number to set lazy offset","default":"false","version":""},"required":false,"type":"number | boolean "},{"name":"src","tag":{"cn":"图片地址","en":"the picture address","default":"","version":""},"required":false,"type":"string "},{"name":"alt","tag":{"cn":"备用地址,src无效时会应用","en":"Alternate address, applied when src is invalid","default":"","version":""},"required":false,"type":"string "},{"name":"onError","tag":{"cn":"src或alt 地址请求出错回调","en":"callback of image src or alt request fail","default":"","version":""},"required":false,"type":"((error: Event, type?: number ) => void) "},{"name":"target","tag":{"cn":"图片打开方式","en":"target of image","default":"\\\"_modal\\\"","version":""},"required":false,"type":"\\\"_self\\\" | \\\"_blank\\\" | \\\"_modal\\\" | \\\"_download\\\" "},{"name":"width","tag":{"cn":"图片宽度","en":"the width of the image","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"placeholder","tag":{"cn":"图片加载中占位内容","en":"loading image placeholder content","default":"\\\"loading\\\"","version":""},"required":false,"type":"ReactNode"},{"name":"container","tag":{"cn":"对特定元素进行懒加载判断的选择器, 如: \\\"#id\\\", \\\".class\\\"","en":"the special element selector witch container the lazy image, such as: \\\"#id\\\", \\\".class\\\"","default":"","version":""},"required":false,"type":"string | Element "},{"name":"error","tag":{"cn":"图片载入错误的文案","en":"image error placeholder","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"autoSSL","tag":{"cn":"是否根据页面自动转换协议","en":"auto transform protocol","default":"false","version":""},"required":false,"type":"boolean "},{"name":"fit","tag":{"cn":"适应容器的方式","en":"fit the container","default":"","version":""},"required":false,"type":"\\\"center\\\" | \\\"fill\\\" | \\\"fit\\\" | \\\"stretch\\\" "},{"name":"shape","tag":{"cn":"图片样式","en":"shape of image","default":"\\\"rounded\\\"","version":""},"required":false,"type":"\\\"circle\\\" | \\\"rounded\\\" | \\\"thumbnail\\\" "},{"name":"onClick","tag":{"cn":"点击图片的回调","en":"The callback of click","default":"","version":""},"required":false,"type":"((e: MouseEvent) => void) "},{"name":"title","tag":{"cn":"原生 title 属性","en":"The original property of html","default":"","version":""},"required":false,"type":"string "},{"name":"noImgDrag","tag":{"cn":"是否禁止 img 元素原生 draggable 属性","en":"The original property of html","default":"false","version":""},"required":false,"type":"boolean "},{"name":"className","tag":{"cn":"扩展 className","en":"extend className","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"最外层扩展样式","en":"Container element style","default":"","version":""},"required":false,"type":"CSSProperties "}],"cn":"","en":""},{"title":"Image.Group","properties":[{"name":"height","tag":{"cn":"单个图片高度(值为百分比时,对比值为图片宽度)","en":"the height of single image(When the value is percentage, the ratio is the width of the image)","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"lazy","tag":{"cn":"是否延迟加载","en":"whether to delay loading","default":"false","version":""},"required":false,"type":"boolean "},{"name":"pile","tag":{"cn":"是否堆叠","en":"whether to stack","default":"false","version":""},"required":false,"type":"boolean "},{"name":"target","tag":{"cn":"图片打开方式","en":"target of image","default":"\\\"_modal\\\"","version":""},"required":false,"type":"\\\"_self\\\" | \\\"_blank\\\" | \\\"_modal\\\" | \\\"_download\\\" "},{"name":"width","tag":{"cn":"单个图片宽度","en":"the width of single picture","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"children","tag":{"cn":"子元素","en":"children","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"className","tag":{"cn":"扩展 className","en":"extend className","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"最外层扩展样式","en":"Container element style","default":"","version":""},"required":false,"type":"CSSProperties "}],"cn":"","en":""}]'; +const api = '[{"title":"Image","properties":[{"name":"height","tag":{"cn":"图片高度(值为百分比时,对比值为图片宽度)","en":"the height of the image(When the value is percentage, the ratio is the width of the image)","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"href","tag":{"cn":"原始图片地址","en":"original picture address","default":"","version":""},"required":false,"type":"string "},{"name":"lazy","tag":{"cn":"是否延迟加载,如果为数字则表示懒加载偏移量","en":"whether to delay loading, number to set lazy offset","default":"false","version":""},"required":false,"type":"number | boolean "},{"name":"src","tag":{"cn":"图片地址","en":"the picture address","default":"","version":""},"required":false,"type":"string "},{"name":"alt","tag":{"cn":"备用地址,src无效时会应用","en":"Alternate address, applied when src is invalid","default":"","version":""},"required":false,"type":"string "},{"name":"onError","tag":{"cn":"src或alt 地址请求出错回调","en":"callback of image src or alt request fail","default":"","version":""},"required":false,"type":"((error: Event, type?: number ) => void) "},{"name":"target","tag":{"cn":"图片打开方式","en":"target of image","default":"\\\"_modal\\\"","version":""},"required":false,"type":"\\\"_self\\\" | \\\"_blank\\\" | \\\"_modal\\\" | \\\"_download\\\" "},{"name":"width","tag":{"cn":"图片宽度","en":"the width of the image","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"placeholder","tag":{"cn":"图片加载中占位内容","en":"loading image placeholder content","default":"\\\"loading\\\"","version":""},"required":false,"type":"ReactNode"},{"name":"container","tag":{"cn":"对特定元素进行懒加载判断的选择器, 如: \\\"#id\\\", \\\".class\\\"","en":"the special element selector witch container the lazy image, such as: \\\"#id\\\", \\\".class\\\"","default":"","version":""},"required":false,"type":"string | Element "},{"name":"error","tag":{"cn":"图片载入错误的文案","en":"image error placeholder","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"autoSSL","tag":{"cn":"是否根据页面自动转换协议","en":"auto transform protocol","default":"false","version":""},"required":false,"type":"boolean "},{"name":"fit","tag":{"cn":"适应容器的方式","en":"fit the container","default":"","version":""},"required":false,"type":"\\\"center\\\" | \\\"fill\\\" | \\\"fit\\\" | \\\"stretch\\\" "},{"name":"shape","tag":{"cn":"图片样式","en":"shape of image","default":"\\\"rounded\\\"","version":""},"required":false,"type":"\\\"circle\\\" | \\\"rounded\\\" | \\\"thumbnail\\\" "},{"name":"onClick","tag":{"cn":"点击图片的回调","en":"The callback of click","default":"","version":""},"required":false,"type":"((e: MouseEvent) => void) "},{"name":"title","tag":{"cn":"原生 title 属性","en":"The original property of html","default":"","version":""},"required":false,"type":"string "},{"name":"noImgDrag","tag":{"cn":"是否禁止 img 元素原生 draggable 属性","en":"The original property of html","default":"false","version":""},"required":false,"type":"boolean "},{"name":"zIndex","tag":{"cn":"图片预览遮罩层的 z-index","en":"The z-index of the image preview mask layer","default":"1050","version":""},"required":false,"type":"number "},{"name":"className","tag":{"cn":"扩展 className","en":"extend className","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"最外层扩展样式","en":"Container element style","default":"","version":""},"required":false,"type":"CSSProperties "}],"cn":"","en":""},{"title":"Image.Group","properties":[{"name":"height","tag":{"cn":"单个图片高度(值为百分比时,对比值为图片宽度)","en":"the height of single image(When the value is percentage, the ratio is the width of the image)","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"lazy","tag":{"cn":"是否延迟加载","en":"whether to delay loading","default":"false","version":""},"required":false,"type":"boolean "},{"name":"pile","tag":{"cn":"是否堆叠","en":"whether to stack","default":"false","version":""},"required":false,"type":"boolean "},{"name":"target","tag":{"cn":"图片打开方式","en":"target of image","default":"\\\"_modal\\\"","version":""},"required":false,"type":"\\\"_self\\\" | \\\"_blank\\\" | \\\"_modal\\\" | \\\"_download\\\" "},{"name":"width","tag":{"cn":"单个图片宽度","en":"the width of single picture","default":"\\\"100%\\\"","version":""},"required":false,"type":"string | number "},{"name":"children","tag":{"cn":"子元素","en":"children","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"className","tag":{"cn":"扩展 className","en":"extend className","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"最外层扩展样式","en":"Container element style","default":"","version":""},"required":false,"type":"CSSProperties "}],"cn":"","en":""}]'; export default navable(props => ( diff --git a/site/chunks/Components/Textarea.js b/site/chunks/Components/Textarea.js index 8e3b19e5f..5a6545531 100644 --- a/site/chunks/Components/Textarea.js +++ b/site/chunks/Components/Textarea.js @@ -82,7 +82,7 @@ const examples = [ const codes = undefined -const api = '[{"title":"Textarea","properties":[{"name":"info","tag":{"cn":"提示信息","en":"Information","default":"","version":""},"required":false,"type":"number | ((value?: string ) => ReactNode) "},{"name":"className","tag":{"cn":"扩展 className","en":"extend className","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"最外层扩展样式","en":"Container element style","default":"","version":""},"required":false,"type":"CSSProperties "},{"name":"disabled","tag":{"cn":"是否禁用","en":"disabled","default":"false","version":""},"required":false,"type":"boolean "},{"name":"value","tag":{"cn":"defaultValue 和 value 可以同时设置,defaultValue 会被value覆盖","en":"DefaultValue and value can be set at the same time and defaultValue will be overridden by value.","default":"","version":""},"required":false,"type":"string "},{"name":"onChange","tag":{"cn":"值改变回调函数","en":"The callback function for changing value","default":"","version":""},"required":false,"type":"(value: string) => void"},{"name":"beforeChange","tag":{"cn":"值改变前的回调,当返回值不为空时将作为组件的新值","en":"The callback before the value is changed, when the return value is not empty, it will be used as the new value of the component","default":"","version":""},"required":false,"type":"(value: any , datum?: FormDatum) => any"},{"name":"onError","tag":{"cn":"rules 校验回调","en":"rules validation callback","default":"","version":""},"required":false,"type":"((e?: Error ) => void) "},{"name":"popover","tag":{"cn":"校验信息弹出位置,参考 [Popover](/components/Popover)","en":"The position where the validation info pop up, see [Popover](/components/Popover)","default":"","version":""},"required":false,"type":"PopoverProps[\\\"position\\\"]"},{"name":"bind","tag":{"cn":"当值改变是会联动校验 bind 中的字段, 需要配合 Form 使用","en":"When the value changes, it will link to verify the fields in the bind, which needs to be used with Form","default":"","version":""},"required":false,"type":"string[] "},{"name":"defaultValue","tag":{"cn":"默认值 和 value 类型相同","en":"defaultValue 和 value 类型相同","default":"","version":""},"required":false,"type":"Value "},{"name":"rules","tag":{"cn":"校验规则 详见 [Rule](/components/rule)","en":"Validation rules, see [Rule](/components/rule) usage for details","default":"","version":""},"required":false,"type":"RuleItem[]"},{"name":"name","tag":{"cn":"表单字段, 配合 Form 使用","en":"Form field, used with Form","default":"","version":""},"required":false,"type":"string "},{"name":"size","tag":{"cn":"尺寸","en":"size","default":"\\\"default\\\"","version":""},"required":false,"type":"\\\"small\\\" | \\\"default\\\" | \\\"large\\\""},{"name":"onFocus","tag":{"cn":"focus 事件回调函数","en":"callback function for blur focus","default":"","version":""},"required":false,"type":"FocusEventHandler "},{"name":"onBlur","tag":{"cn":"失去焦点后的回调","en":"The callback when Textarea blur","default":"","version":""},"required":false,"type":"FocusEventHandler "},{"name":"tip","tag":{"cn":"提示信息","en":"Prompt information","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"width","tag":{"cn":"输入框宽度","en":"input width","default":"","version":""},"required":false,"type":"string | number "},{"name":"popoverProps","tag":{"cn":"校验弹框接受的属性,具体属性参考 [Popover](/components/Popover)","en":"Vilidate popup properties, specific properties refer to [Popover](/components/Popover)","default":"","version":""},"required":false,"type":"PopoverProps "},{"name":"underline","tag":{"cn":"是否只展示下边框","en":"only display border bottom","default":"false","version":""},"required":false,"type":"boolean "},{"name":"autoFocus","tag":{"cn":"是否自动获得焦点","en":"Whether to automatically get the focus","default":"false","version":""},"required":false,"type":"boolean "},{"name":"border","tag":{"cn":"是否展示边框","en":"Whether to display border","default":"false","version":""},"required":false,"type":"boolean "},{"name":"trim","tag":{"cn":"trim 为 true 时,失去焦点时会自动删除空白字符。","en":"When trim is true, blank characters are automatically deleted when lose focus","default":"false","version":""},"required":false,"type":"boolean "},{"name":"delay","tag":{"cn":"用户输入触发 onChange 和校验间隔时间,单位 毫秒。","en":"User input triggers the onChange and to check interval, unit: ms.","default":"400","version":""},"required":false,"type":"number "},{"name":"maxHeight","tag":{"cn":"输入框的最大高度, 超过之后会出现滚动条","en":"the maxHeight of the textarea, scroll bars appear after more than","default":"","version":""},"required":false,"type":"string | number "},{"name":"renderFooter","tag":{"cn":"渲染 textarea footer","en":"render textarea footer","default":"","version":""},"required":false,"type":"((value?: string ) => ReactNode) "},{"name":"onEnterPress","tag":{"cn":"回车键回调函数","en":"The callback function for enter key","default":"","version":""},"required":false,"type":"((value: string, e: KeyboardEvent) => void) "},{"name":"autosize","tag":{"cn":"高度是否随内容自动变化","en":"Whether the height changes automatically with the content","default":"false","version":""},"required":false,"type":"boolean "},{"name":"rows","tag":{"cn":"最小行高,同原生 textarea rows 属性","en":"The minimum row height. Same as native textarea rows property.","default":"4","version":""},"required":false,"type":"number "},{"name":"resize","tag":{"cn":"是否可以伸缩高度","en":"support resize","default":"false","version":""},"required":false,"type":"boolean "}],"cn":"支持原生 textarea 所有属性","en":"Supports all attributes of native textarea"}]'; +const api = '[{"title":"Textarea","properties":[{"name":"info","tag":{"cn":"提示信息","en":"Information","default":"","version":""},"required":false,"type":"number | ((value?: string ) => ReactNode) "},{"name":"className","tag":{"cn":"扩展 className","en":"extend className","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"最外层扩展样式","en":"Container element style","default":"","version":""},"required":false,"type":"CSSProperties "},{"name":"disabled","tag":{"cn":"是否禁用","en":"disabled","default":"false","version":""},"required":false,"type":"boolean "},{"name":"value","tag":{"cn":"defaultValue 和 value 可以同时设置,defaultValue 会被value覆盖","en":"DefaultValue and value can be set at the same time and defaultValue will be overridden by value.","default":"","version":""},"required":false,"type":"string "},{"name":"onChange","tag":{"cn":"值改变回调函数","en":"The callback function for changing value","default":"","version":""},"required":false,"type":"(value: string) => void"},{"name":"beforeChange","tag":{"cn":"值改变前的回调,当返回值不为空时将作为组件的新值","en":"The callback before the value is changed, when the return value is not empty, it will be used as the new value of the component","default":"","version":""},"required":false,"type":"(value: any , datum?: FormDatum) => any"},{"name":"onError","tag":{"cn":"rules 校验回调","en":"rules validation callback","default":"","version":""},"required":false,"type":"((e?: Error ) => void) "},{"name":"popover","tag":{"cn":"校验信息弹出位置,参考 [Popover](/components/Popover)","en":"The position where the validation info pop up, see [Popover](/components/Popover)","default":"","version":""},"required":false,"type":"PopoverProps[\\\"position\\\"]"},{"name":"bind","tag":{"cn":"当值改变是会联动校验 bind 中的字段, 需要配合 Form 使用","en":"When the value changes, it will link to verify the fields in the bind, which needs to be used with Form","default":"","version":""},"required":false,"type":"string[] "},{"name":"defaultValue","tag":{"cn":"默认值 和 value 类型相同","en":"defaultValue 和 value 类型相同","default":"","version":""},"required":false,"type":"Value "},{"name":"rules","tag":{"cn":"校验规则 详见 [Rule](/components/rule)","en":"Validation rules, see [Rule](/components/rule) usage for details","default":"","version":""},"required":false,"type":"RuleItem[]"},{"name":"name","tag":{"cn":"表单字段, 配合 Form 使用","en":"Form field, used with Form","default":"","version":""},"required":false,"type":"string "},{"name":"size","tag":{"cn":"尺寸","en":"size","default":"\\\"default\\\"","version":""},"required":false,"type":"\\\"small\\\" | \\\"default\\\" | \\\"large\\\""},{"name":"onFocus","tag":{"cn":"focus 事件回调函数","en":"callback function for blur focus","default":"","version":""},"required":false,"type":"FocusEventHandler "},{"name":"onBlur","tag":{"cn":"失去焦点后的回调","en":"The callback when Textarea blur","default":"","version":""},"required":false,"type":"FocusEventHandler "},{"name":"tip","tag":{"cn":"提示信息","en":"Prompt information","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"width","tag":{"cn":"输入框宽度","en":"input width","default":"","version":""},"required":false,"type":"string | number "},{"name":"popoverProps","tag":{"cn":"校验弹框接受的属性,具体属性参考 [Popover](/components/Popover)","en":"Vilidate popup properties, specific properties refer to [Popover](/components/Popover)","default":"","version":""},"required":false,"type":"PopoverProps "},{"name":"underline","tag":{"cn":"是否只展示下边框","en":"only display border bottom","default":"false","version":""},"required":false,"type":"boolean "},{"name":"autoFocus","tag":{"cn":"是否自动获得焦点","en":"Whether to automatically get the focus","default":"false","version":""},"required":false,"type":"boolean "},{"name":"border","tag":{"cn":"是否展示边框","en":"Whether to display border","default":"false","version":""},"required":false,"type":"boolean "},{"name":"trim","tag":{"cn":"trim 为 true 时,失去焦点时会自动删除空白字符。","en":"When trim is true, blank characters are automatically deleted when lose focus","default":"false","version":""},"required":false,"type":"boolean "},{"name":"delay","tag":{"cn":"用户输入触发 onChange 和校验间隔时间,单位 毫秒。","en":"User input triggers the onChange and to check interval, unit: ms.","default":"400","version":""},"required":false,"type":"number "},{"name":"maxHeight","tag":{"cn":"输入框的最大高度, 超过之后会出现滚动条","en":"the maxHeight of the textarea, scroll bars appear after more than","default":"","version":""},"required":false,"type":"string | number "},{"name":"renderFooter","tag":{"cn":"渲染 textarea footer","en":"render textarea footer","default":"","version":""},"required":false,"type":"((value?: string ) => ReactNode) "},{"name":"onEnterPress","tag":{"cn":"回车键回调函数","en":"The callback function for enter key","default":"","version":""},"required":false,"type":"((value: string, e: KeyboardEvent) => void) "},{"name":"onKeyUp","tag":{"cn":"按键抬起回调函数","en":"Key up callback function","default":"","version":""},"required":false,"type":"((e: KeyboardEvent) => void) "},{"name":"autosize","tag":{"cn":"高度是否随内容自动变化","en":"Whether the height changes automatically with the content","default":"false","version":""},"required":false,"type":"boolean "},{"name":"rows","tag":{"cn":"最小行高,同原生 textarea rows 属性","en":"The minimum row height. Same as native textarea rows property.","default":"4","version":""},"required":false,"type":"number "},{"name":"resize","tag":{"cn":"是否可以伸缩高度","en":"support resize","default":"false","version":""},"required":false,"type":"boolean "}],"cn":"支持原生 textarea 所有属性","en":"Supports all attributes of native textarea"}]'; export default navable(props => ( diff --git a/site/chunks/Components/index.js b/site/chunks/Components/index.js index b8ca3046b..e69de29bb 100644 --- a/site/chunks/Components/index.js +++ b/site/chunks/Components/index.js @@ -1,292 +0,0 @@ -/** - * 此文件根据 scripts/component-index.ejs 生成,不要手动修改 - */ -import { lazy } from 'react' -import Page from 'doc/pages/Page' - -const pages = [ - { - name: 'GetStart', - cn: '', - level: 1, - component: lazy(() => import(/* webpackChunkName: "GetStart" */ './GetStart')), - }, - 'General', - { - name: 'Button', - cn: '按钮', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Button" */ './Button')), - }, - { - name: 'Dropdown', - cn: '下拉菜单', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Dropdown" */ './Dropdown')), - }, - { - name: 'Icon', - cn: '图标', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Icon" */ './Icon')), - }, - { - name: 'Image', - cn: '图片', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Image" */ './Image')), - }, - 'Form', - { - name: 'Cascader', - cn: '级联选择', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Cascader" */ './Cascader')), - }, - { - name: 'Checkbox', - cn: '复选框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Checkbox" */ './Checkbox')), - }, - { - name: 'DatePicker', - cn: '日期选择', - level: 2, - component: lazy(() => import(/* webpackChunkName: "DatePicker" */ './DatePicker')), - }, - { - name: 'EditableArea', - cn: '可编辑域', - level: 2, - component: lazy(() => import(/* webpackChunkName: "EditableArea" */ './EditableArea')), - }, - { - name: 'Form', - cn: '表单', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Form" */ './Form')), - }, - { - name: 'Input', - cn: '输入框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Input" */ './Input')), - }, - { - name: 'Radio', - cn: '单选框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Radio" */ './Radio')), - }, - { - name: 'Rate', - cn: '评分', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Rate" */ './Rate')), - }, - { - name: 'Rule', - cn: '校验规则', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Rule" */ './Rule')), - }, - { - name: 'Select', - cn: '选择框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Select" */ './Select')), - }, - { - name: 'Slider', - cn: '滑块', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Slider" */ './Slider')), - }, - { - name: 'Switch', - cn: '开关', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Switch" */ './Switch')), - }, - { - name: 'Textarea', - cn: '多行文本框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Textarea" */ './Textarea')), - }, - { - name: 'Transfer', - cn: '穿梭框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Transfer" */ './Transfer')), - }, - { - name: 'TreeSelect', - cn: '树选择', - level: 2, - component: lazy(() => import(/* webpackChunkName: "TreeSelect" */ './TreeSelect')), - }, - { - name: 'Upload', - cn: '上传', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Upload" */ './Upload')), - }, - 'Data', - { - name: 'Carousel', - cn: '轮播', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Carousel" */ './Carousel')), - }, - { - name: 'Datum.Form', - cn: '表单处理', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Datum.Form" */ './Datum.Form')), - }, - { - name: 'Datum.List', - cn: '数据处理', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Datum.List" */ './Datum.List')), - }, - { - name: 'List', - cn: '列表', - level: 2, - component: lazy(() => import(/* webpackChunkName: "List" */ './List')), - }, - { - name: 'Pagination', - cn: '分页', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Pagination" */ './Pagination')), - }, - { - name: 'Table', - cn: '表格', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Table" */ './Table')), - }, - { - name: 'Tree', - cn: '树', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Tree" */ './Tree')), - }, - 'Feedback', - { - name: 'Alert', - cn: '提示框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Alert" */ './Alert')), - }, - { - name: 'Drawer', - cn: '抽屉', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Drawer" */ './Drawer')), - }, - { - name: 'Message', - cn: '消息提示', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Message" */ './Message')), - }, - { - name: 'Modal', - cn: '对话框', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Modal" */ './Modal')), - }, - { - name: 'Popover', - cn: '气泡', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Popover" */ './Popover')), - }, - { - name: 'Progress', - cn: '进度条', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Progress" */ './Progress')), - }, - { - name: 'Spin', - cn: '加载中', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Spin" */ './Spin')), - }, - { - name: 'Tag', - cn: '标签', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Tag" */ './Tag')), - }, - { - name: 'Tooltip', - cn: '提示', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Tooltip" */ './Tooltip')), - }, - 'Layout', - { - name: 'Card', - cn: '卡片', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Card" */ './Card')), - }, - { - name: 'CardGroup', - cn: '卡片组', - level: 2, - component: lazy(() => import(/* webpackChunkName: "CardGroup" */ './CardGroup')), - }, - { - name: 'Divider', - cn: '分割线', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Divider" */ './Divider')), - }, - { - name: 'Gap', - cn: '间距', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Gap" */ './Gap')), - }, - { - name: 'Grid', - cn: '栅格', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Grid" */ './Grid')), - }, - { - name: 'Sticky', - cn: '附着', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Sticky" */ './Sticky')), - }, - { - name: 'Tabs', - cn: '标签页', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Tabs" */ './Tabs')), - }, - 'Navigation', - { - name: 'Breadcrumb', - cn: '面包屑', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Breadcrumb" */ './Breadcrumb')), - }, - { - name: 'Menu', - cn: '菜单', - level: 2, - component: lazy(() => import(/* webpackChunkName: "Menu" */ './Menu')), - }, -] - -export default Page(pages) diff --git a/site/pages/documentation/changelog/2.x.x.md b/site/pages/documentation/changelog/2.x.x.md index 2d2188c7c..cf7a6a324 100644 --- a/site/pages/documentation/changelog/2.x.x.md +++ b/site/pages/documentation/changelog/2.x.x.md @@ -1,5 +1,10 @@ # 更新日志 +### 2.0.22 + +- 修复 Textarea 组件 onKeyUp 失效的问题 (< 2.0.22) +- 修复 Upload 组件 webkitdirectory 属性失效的问题 (< 2.0.22) + ### 2.0.21 - 修复 Cascader 在 disabled 状态下 singleRemove 依然可删除的问题 (< 2.0.21) diff --git a/src/Textarea/Textarea.tsx b/src/Textarea/Textarea.tsx index 6f888affa..b88a954cc 100644 --- a/src/Textarea/Textarea.tsx +++ b/src/Textarea/Textarea.tsx @@ -79,10 +79,11 @@ class Textarea extends PureComponent { } handleKeyUp(e: KeyboardEvent) { - const { onEnterPress } = this.props + const { onEnterPress, onKeyUp } = this.props if (e.keyCode === 13 && onEnterPress) { onEnterPress((e.target as HTMLTextAreaElement).value, e) } + if (onKeyUp) onKeyUp(e) } handleBlur(e: FocusEvent) { diff --git a/src/Textarea/props.ts b/src/Textarea/props.ts index f01256434..97aaf2849 100644 --- a/src/Textarea/props.ts +++ b/src/Textarea/props.ts @@ -42,6 +42,11 @@ export interface OriginTextareaProps extends Pick) => void + /** + * @en Key up callback function + * @cn 按键抬起回调函数 + */ + onKeyUp?: (e: KeyboardEvent) => void /** * @en The minimum row height. Same as native textarea rows property. * @cn 最小行高,同原生 textarea rows 属性 diff --git a/src/Upload/FileInput.tsx b/src/Upload/FileInput.tsx index 0a69f41c2..8c8d6d327 100644 --- a/src/Upload/FileInput.tsx +++ b/src/Upload/FileInput.tsx @@ -33,7 +33,13 @@ class FileInput extends PureComponent { render() { const { accept, onChange, multiple, webkitdirectory } = this.props - const OriginProps = { webkitdirectory } + const OriginProps: { + webkitdirectory?: string + [props: string]: unknown + } = {} + if (webkitdirectory) { + OriginProps.webkitdirectory = '' + } return (