Skip to content

Commit

Permalink
feat: 3.4.0 (#677)
Browse files Browse the repository at this point in the history
🐞 BugFix

- 修复 `Carousel` 组件点击箭头切换后,鼠标悬停时没有禁用切换的现象 (#674)
- 修复 `Rate` 组件在 Safari 浏览器下对齐样式异常的问题(#670)
- 修复 `TableRef` 的 `scrollToIndex` 的回调方法不生效问题 (#651)
- 修复 `Tabs` 组件的 Tabs.Panel 是异常动态长度时,需要 resize 页面才会出现左右的滚动箭头 (#668)
- 修复 `TreeSelect` 组件 `filterDelay` 属性失效的问题 (#672)
- 修复 `Modal` 组件使用方法调用方式时,点击确定或取消按钮没有关闭动画 (#675)
- 修复 `Modal` 组件下存在多个 Form 组件时,Modal.Submit 提交无效的问题 (#625)


🆕 Feature

- 新增 `Link` 组件
- 新增 `Badge` 组件
- `Datepicker` 新增 `needConfirm` 属性: 是否开启手动确认按钮,开启后只有点击确认按钮才会提交选择的值 (#650)
- `Datepicker` 新增 `clearToUndefined`,点击清除后返回 undefined (#644)
- `Dropdown` 组件新增 `zIndex` 属性 (#660)
- `Menu` 组件新增父节点激活状态下的文字颜色 token (#659)
- `Select` 组件支持动态虚拟列表行高(#646)
- `Select` 组件新增 `onLoadMore` 属性,支持滚动加载 (#610)
- `Select` 组件新增 `threshold` 属性,支持设置滚动加载阈值 (#610)
- `Select` 组件新增 `trigger` 属性,支持更改展开下拉面板的触发方式 (#610)
- `Table` 组件新增属性 `showTopScrollbar`,开启顶部滚动条 (#671)
- `Table` 组件 `onScroll` 事件新增 top 参数 (#658)
- `Table` 组件 `Ref` 支持 `getRenderIndexByData` 方法,用于获取指定数据在渲染列表中的索引
- `Textarea` 组件 `info` 属性新增配置模式,支持配置定位 (#676)
- `Tree` 组件新增 `setActive` 属性,与active组成高亮的受控功能 (#665)


💎 Enhancement

- 优化 `Select` 组件在同时使用 `emptyText` 和 `renderOptionList` 时的渲染顺序 (#627)
- 优化 `Table` 初始化加载性能 (#673)


---------

Co-authored-by: 翟胜佳 <[email protected]>
Co-authored-by: 颜宇浩 <[email protected]>
Co-authored-by: saint <[email protected]>
Co-authored-by: 利浩 <[email protected]>
  • Loading branch information
5 people authored Sep 19, 2024
1 parent e6e3156 commit d6cae6a
Show file tree
Hide file tree
Showing 184 changed files with 4,442 additions and 941 deletions.
2 changes: 2 additions & 0 deletions docs/api/shineout/badge.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const api = JSON.parse('[{"title":"Badge","properties":[{"name":"className","tag":{"cn":"自定义类名","en":"Custom class name","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"自定义样式","en":"Custom style","default":"","version":""},"required":false,"type":"CSSProperties "},{"name":"children","tag":{"cn":"内容","en":"Content","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"color","tag":{"cn":"自定义徽标颜色","en":"Custom badge color","default":"","version":""},"required":false,"type":"string "},{"name":"count","tag":{"cn":"展示的数字,大于 overflowCount 时显示 ${overflowCount}+,为 0 时隐藏","en":"Number to show, show ${overflowCount}+ when it is greater than overflowCount, hide when it is 0","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"dot","tag":{"cn":"小点模式,开启后不展示数字","en":"Dot mode","default":"false","version":""},"required":false,"type":"boolean "},{"name":"offset","tag":{"cn":"偏移量","en":"Offset of the badge","default":"","version":""},"required":false,"type":"[number, number] "},{"name":"overflowCount","tag":{"cn":"封顶数值","en":"Offset of the badge","default":"","version":""},"required":false,"type":"number "},{"name":"showZero","tag":{"cn":"当数值为 0 时,是否展示 Badge","en":"Whether to show Badge when the number is 0","default":"","version":""},"required":false,"type":"boolean "},{"name":"status","tag":{"cn":"徽标状态","en":"Whether to show Badge when the number is 0","default":"","version":""},"required":false,"type":"\\\"success\\\" | \\\"processing\\\" | \\\"default\\\" | \\\"error\\\" | \\\"warning\\\" "},{"name":"text","tag":{"cn":"状态点文本,仅在配置了 status 属性后生效","en":"Status point text, only valid after configuring the status property","default":"","version":""},"required":false,"type":"ReactNode"},{"name":"size","tag":{"cn":"尺寸,仅在非 dot 模式下生效,支持 small 和 default 两种尺寸","en":"Size, only valid in non-dot mode, supports two sizes: small and default","default":"","version":""},"required":false,"type":"\\\"default\\\" | \\\"small\\\" "}],"cn":"","en":"","sort":"0"}]');
export default api;
2 changes: 1 addition & 1 deletion docs/api/shineout/cascader.ts

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/api/shineout/date-picker.ts

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions docs/api/shineout/link.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const api = JSON.parse('[{"title":"Link","properties":[{"name":"className","tag":{"cn":"自定义类名","en":"Custom class name","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"自定义样式","en":"Custom style","default":"","version":""},"required":false,"type":"CSSProperties "},{"name":"disabled","tag":{"cn":"是否禁用","en":"Whether the link is disabled","default":"","version":""},"required":false,"type":"boolean "},{"name":"underline","tag":{"cn":"是否常驻显示下划线, 设置为 \\\"hover\\\" 时鼠标悬浮时显示下划线","en":"Whether to always show the underline, set to \\\"hover\\\" to show the underline when the mouse is hovered","default":"","version":""},"required":false,"type":"boolean | \\\"hover\\\" "},{"name":"type","tag":{"cn":"链接类型","en":"Link type","default":"primary","version":""},"required":false,"type":"\\\"primary\\\" | \\\"secondary\\\" | \\\"danger\\\" | \\\"warning\\\" | \\\"success\\\" "},{"name":"size","tag":{"cn":"链接图标大小","en":"Link icon size","default":"default","version":""},"required":false,"type":"\\\"small\\\" | \\\"default\\\" | \\\"large\\\" "},{"name":"icon","tag":{"cn":"显示图标,设置为 true 时展示默认图标","en":"Show icon, set to true to show default icon","default":"","version":""},"required":false,"type":"ReactNode"}],"cn":"","en":"","sort":"0"}]');
export default api;
2 changes: 1 addition & 1 deletion docs/api/shineout/menu.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
const api = JSON.parse('[{"title":"menu","properties":[{"name":"className","tag":{"cn":"自定义类名","en":"Custom class name","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"自定义样式","en":"Custom style","default":"","version":""},"required":false,"type":"CSSProperties "},{"name":"mode","tag":{"cn":"菜单样式","en":"style of menu","default":"\\\"inline\\\"","version":""},"required":false,"type":"\\\"inline\\\" | \\\"vertical\\\" | \\\"horizontal\\\" | \\\"vertical-auto\\\" "},{"name":"data","tag":{"cn":"需要渲染成菜单的数据","en":"Menu items data","default":"[]","version":""},"required":false,"type":"object[]"},{"name":"theme","tag":{"cn":"主题","en":"theme of menu","default":"","version":""},"required":false,"type":"\\\"dark\\\" | \\\"light\\\" "},{"name":"height","tag":{"cn":"菜单高度","en":"menu height","default":"","version":""},"required":false,"type":"string | number "},{"name":"openKeys","tag":{"cn":"展开的菜单(受控)","en":"expended menu","default":"[]","version":""},"required":false,"type":"(string | number)[]"},{"name":"caretColor","tag":{"cn":"三角展开符颜色","en":"triangle expansion color","default":"","version":""},"required":false,"type":"string "},{"name":"frontCaret","tag":{"cn":"前置实心三角展开符","en":"Front solid triangle expansion","default":"","version":""},"required":false,"type":"boolean "},{"name":"inlineIndent","tag":{"cn":"每一层缩进宽度","en":"indent of each level","default":"24","version":""},"required":false,"type":"number "},{"name":"looseChildren","tag":{"cn":"如果 children 有设置则菜单项可展开","en":"menu item expandable if has children","default":"false","version":""},"required":false,"type":"boolean "},{"name":"keygen","tag":{"cn":"生成每一项key的辅助方法。为 true 时,以数据项本身作为key,相当于 (d => d)。为函数时,使用此函数返回值。为string时,使用这个string对应的数据值。如 \\\"id\\\",相当于 (d => d.id)","en":"Key generator. When it is true, the data itself is used as the key equivalent to (d => d). When it is a function, use its return value. When it is a string,ues the value of the string. For example, \\\"id\\\" is the same thing as (d) => d.id.","default":"true","version":""},"required":true,"type":"| ObjectKey<DataItem> | ((data: DataItem, index?: number) => string | number) | true"},{"name":"defaultOpenKeys","tag":{"cn":"初始展开的菜单;如果需要设置此值,则需要设置keygen,此值为一个包含key的数组","en":"Initial expanded menu","default":"[]","version":""},"required":false,"type":"(string | number)[]"},{"name":"parentSelectable","tag":{"cn":"父级菜单是否可选中","en":"parent menu Selectable","default":"false","version":""},"required":false,"type":"boolean "},{"name":"onClick","tag":{"cn":"子菜单点击事件,参数为当条数据","en":"The function will be called when the user clicks the menu item.","default":"","version":""},"required":false,"type":"((data: DataItem) => void) "},{"name":"active","tag":{"cn":"验证是否激活,参数为对应的数据对象,返回true则代表该菜单激活","en":"The item is actived when the active function return true.","default":"","version":""},"required":false,"type":"((data: DataItem) => boolean) "},{"name":"disabled","tag":{"cn":"是否禁用选项","en":"Whether to be disabled","default":"d => d.disabled","version":""},"required":false,"type":"((data: DataItem) => boolean) "},{"name":"frontCaretType","tag":{"cn":"前置三角展开符类型","en":"front triangle expansion symbol type","default":"\\\"solid\\\"","version":""},"required":false,"type":"\\\"hollow\\\" | \\\"solid\\\" "},{"name":"onOpenChange","tag":{"cn":"菜单展开/收起回调","en":"menu open change callback","default":"","version":""},"required":false,"type":"((keys: Key[]) => void) "},{"name":"linkKey","tag":{"cn":"需要注入子菜单的链接键值","en":"the key of inject the link value of the submenu","default":"","version":""},"required":false,"type":"((d: DataItem) => string) | ObjectKey<DataItem> "},{"name":"renderItem","tag":{"cn":"元素渲染方式,如果为字符串,则会以对应的值作为显示内容;如果为函数,则以函数返回的结果作为显示内容,函数参数为对应的数据对象","en":"Element render mode. If it is a string, the corresponding value is taken as the display content; If it is a function, the result returned by the function is taken as the display content.","default":"\\\"title\\\"","version":""},"required":false,"type":"ObjectKey<DataItem> | ((data: DataItem, index: number) => ReactNode) "},{"name":"renderIcon","tag":{"cn":"渲染Icon","en":"Render Icon","default":"","version":""},"required":false,"type":"((data: DataItem) => ReactNode) "},{"name":"collapse","tag":{"cn":"是否折叠","en":"Whether to collapse","default":"false","version":""},"required":false,"type":"boolean "},{"name":"header","tag":{"cn":"头部内容, 仅在 mode为 \\\"inline\\\" 时生效","en":"","default":"","version":""},"required":false,"type":"ReactNode"}],"cn":"","en":"","sort":"0"}]');
const api = JSON.parse('[{"title":"Menu","properties":[{"name":"className","tag":{"cn":"自定义类名","en":"Custom class name","default":"","version":""},"required":false,"type":"string "},{"name":"style","tag":{"cn":"自定义样式","en":"Custom style","default":"","version":""},"required":false,"type":"CSSProperties "},{"name":"mode","tag":{"cn":"菜单样式","en":"style of menu","default":"\\\"inline\\\"","version":""},"required":false,"type":"\\\"inline\\\" | \\\"vertical\\\" | \\\"horizontal\\\" | \\\"vertical-auto\\\" "},{"name":"data","tag":{"cn":"需要渲染成菜单的数据","en":"Menu items data","default":"[]","version":""},"required":false,"type":"object[]"},{"name":"theme","tag":{"cn":"主题","en":"theme of menu","default":"","version":""},"required":false,"type":"\\\"dark\\\" | \\\"light\\\" "},{"name":"height","tag":{"cn":"菜单高度","en":"menu height","default":"","version":""},"required":false,"type":"string | number "},{"name":"openKeys","tag":{"cn":"展开的菜单(受控)","en":"expended menu","default":"[]","version":""},"required":false,"type":"(string | number)[]"},{"name":"caretColor","tag":{"cn":"三角展开符颜色","en":"triangle expansion color","default":"","version":""},"required":false,"type":"string "},{"name":"frontCaret","tag":{"cn":"前置实心三角展开符","en":"Front solid triangle expansion","default":"","version":""},"required":false,"type":"boolean "},{"name":"inlineIndent","tag":{"cn":"每一层缩进宽度","en":"indent of each level","default":"24","version":""},"required":false,"type":"number "},{"name":"looseChildren","tag":{"cn":"如果 children 有设置则菜单项可展开","en":"menu item expandable if has children","default":"false","version":""},"required":false,"type":"boolean "},{"name":"keygen","tag":{"cn":"生成每一项key的辅助方法。为 true 时,以数据项本身作为key,相当于 (d => d)。为函数时,使用此函数返回值。为string时,使用这个string对应的数据值。如 \\\"id\\\",相当于 (d => d.id)","en":"Key generator. When it is true, the data itself is used as the key equivalent to (d => d). When it is a function, use its return value. When it is a string,ues the value of the string. For example, \\\"id\\\" is the same thing as (d) => d.id.","default":"true","version":""},"required":true,"type":"| ObjectKey<DataItem> | ((data: DataItem, index?: number) => string | number) | true"},{"name":"defaultOpenKeys","tag":{"cn":"初始展开的菜单;如果需要设置此值,则需要设置keygen,此值为一个包含key的数组","en":"Initial expanded menu","default":"[]","version":""},"required":false,"type":"(string | number)[]"},{"name":"parentSelectable","tag":{"cn":"父级菜单是否可选中","en":"parent menu Selectable","default":"false","version":""},"required":false,"type":"boolean "},{"name":"onClick","tag":{"cn":"子菜单点击事件,参数为当条数据","en":"The function will be called when the user clicks the menu item.","default":"","version":""},"required":false,"type":"((data: DataItem) => void) "},{"name":"active","tag":{"cn":"验证是否激活,参数为对应的数据对象,返回true则代表该菜单激活","en":"The item is actived when the active function return true.","default":"","version":""},"required":false,"type":"((data: DataItem) => boolean) "},{"name":"disabled","tag":{"cn":"是否禁用选项","en":"Whether to be disabled","default":"d => d.disabled","version":""},"required":false,"type":"((data: DataItem) => boolean) "},{"name":"frontCaretType","tag":{"cn":"前置三角展开符类型","en":"front triangle expansion symbol type","default":"\\\"solid\\\"","version":""},"required":false,"type":"\\\"hollow\\\" | \\\"solid\\\" "},{"name":"onOpenChange","tag":{"cn":"菜单展开/收起回调","en":"menu open change callback","default":"","version":""},"required":false,"type":"((keys: Key[]) => void) "},{"name":"linkKey","tag":{"cn":"需要注入子菜单的链接键值","en":"the key of inject the link value of the submenu","default":"","version":""},"required":false,"type":"((d: DataItem) => string) | ObjectKey<DataItem> "},{"name":"renderItem","tag":{"cn":"元素渲染方式,如果为字符串,则会以对应的值作为显示内容;如果为函数,则以函数返回的结果作为显示内容,函数参数为对应的数据对象","en":"Element render mode. If it is a string, the corresponding value is taken as the display content; If it is a function, the result returned by the function is taken as the display content.","default":"\\\"title\\\"","version":""},"required":false,"type":"ObjectKey<DataItem> | ((data: DataItem, index: number) => ReactNode) "},{"name":"renderIcon","tag":{"cn":"渲染Icon","en":"Render Icon","default":"","version":""},"required":false,"type":"((data: DataItem) => ReactNode) "},{"name":"collapse","tag":{"cn":"是否折叠","en":"Whether to collapse","default":"false","version":""},"required":false,"type":"boolean "},{"name":"header","tag":{"cn":"头部内容, 仅在 mode为 \\\"inline\\\" 时生效","en":"","default":"","version":""},"required":false,"type":"ReactNode"}],"cn":"","en":"","sort":"0"}]');
export default api;
Loading

0 comments on commit d6cae6a

Please sign in to comment.