Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(comp:tooltip,comp:tree,comp:tree-select): add offset prop #1221

Merged
merged 1 commit into from
Oct 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/components/cascader/src/Cascader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import OverlayContent from './contents/OverlayContent'
import { cascaderToken } from './token'
import { cascaderProps } from './types'

const defaultOffset: [number, number] = [0, 8]
const defaultOffset: [number, number] = [0, 4]

export default defineComponent({
name: 'IxCascader',
Expand Down
9 changes: 7 additions & 2 deletions packages/components/config/src/defaultConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ export const defaultConfig: GlobalConfig = {
dropdown: {
autoAdjust: true,
destroyOnHide: false,
offset: [0, 8],
offset: [0, 4],
placement: 'bottomStart',
showArrow: false,
trigger: 'hover',
Expand Down Expand Up @@ -166,7 +166,7 @@ export const defaultConfig: GlobalConfig = {
menu: {
getKey: 'key',
indent: 24,
offset: [0, 8],
offset: [0, 4],
suffix: 'right',
theme: 'light',
},
Expand Down Expand Up @@ -214,6 +214,7 @@ export const defaultConfig: GlobalConfig = {
destroyOnHide: false,
placement: 'top',
trigger: 'click',
offset: [0, 8],
},
popover: {
autoAdjust: true,
Expand All @@ -223,6 +224,7 @@ export const defaultConfig: GlobalConfig = {
showArrow: true,
trigger: 'hover',
closeIcon: 'close',
offset: [0, 8],
},
progress: {
strokeLinecap: 'round',
Expand Down Expand Up @@ -251,6 +253,7 @@ export const defaultConfig: GlobalConfig = {
getKey: 'key',
clearIcon: 'close-circle',
labelKey: 'label',
offset: [0, 4],
overlayMatchWidth: true,
size: 'md',
suffix: 'down',
Expand Down Expand Up @@ -337,6 +340,7 @@ export const defaultConfig: GlobalConfig = {
autoAdjust: true,
delay: 100,
destroyOnHide: false,
offset: [0, 8],
placement: 'top',
trigger: 'hover',
},
Expand All @@ -356,6 +360,7 @@ export const defaultConfig: GlobalConfig = {
clearIcon: 'close-circle',
labelKey: 'label',
getKey: 'key',
offset: [0, 4],
overlayMatchWidth: true,
size: 'md',
suffix: 'down',
Expand Down
5 changes: 5 additions & 0 deletions packages/components/config/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ export interface PopconfirmConfig {
overlayContainer?: PortalTargetType
placement: PopperPlacement
trigger: PopperTrigger
offset: [number, number]
}

export interface PopoverConfig {
Expand All @@ -344,6 +345,7 @@ export interface PopoverConfig {
showArrow: boolean
trigger: PopperTrigger
closeIcon: string
offset: [number, number]
}

export interface ProgressConfig {
Expand Down Expand Up @@ -382,6 +384,7 @@ export interface SelectConfig {
clearIcon: string
getKey: string | ((data: SelectData<any>) => any)
labelKey: string
offset: [number, number]
overlayContainer?: PortalTargetType
overlayMatchWidth: boolean
size: FormSize
Expand Down Expand Up @@ -501,6 +504,7 @@ export interface TooltipConfig {
destroyOnHide: boolean
overlayContainer?: PortalTargetType
placement: PopperPlacement
offset: [number, number]
trigger: PopperTrigger
}

Expand All @@ -521,6 +525,7 @@ export interface TreeSelectConfig {
clearIcon: string
getKey: string | ((data: TreeNode<any>) => any)
labelKey: string
offset: [number, number]
overlayContainer?: PortalTargetType
overlayMatchWidth: boolean
size: FormSize
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { useOverlayContainer } from '@idux/components/utils'

import { type DatePickerContext, type DateRangePickerContext } from '../token'

const defaultOffset: [number, number] = [0, 8]
const defaultOffset: [number, number] = [0, 4]
export function useOverlayProps(context: DatePickerContext | DateRangePickerContext): ComputedRef<ɵOverlayProps> {
const { props, common, config, accessor, mergedPrefixCls, overlayOpened, setOverlayOpened, onAfterLeave } = context
const mergedOverlayContainer = useOverlayContainer(props, config, common, mergedPrefixCls)
Expand Down
2 changes: 1 addition & 1 deletion packages/components/menu/docs/Api.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export type MenuCustomAdditional = (options: { data: MenuData; index: number })
| `disabled` | 是否禁用 | `boolean` | - | - | - |
| `icon` | 菜单图标| `string \| VNode` | - | - |
| `label` | 菜单文本 | `string` | - | - |
| `offset` | 浮层偏移量 | `[number, number]` | `[0, 8]` | ✅ | `inline` 模式时无效 |
| `offset` | 浮层偏移量 | `[number, number]` | `[0, 4]` | ✅ | `inline` 模式时无效 |
| `suffix` | 后缀图标 | `string` | `right` | ✅ | - |
| `customIcon` | 自定义图标 | `string \| ((data: MenuSubProps & { expanded: boolean; selected: boolean }) => VNodeChild)` | `'subIcon'` | - | 类型为 `string` 时,对应插槽名 |
| `customLabel` | 自定义文本 | `string \| ((data: MenuSubProps & { expanded: boolean; selected: boolean }) => VNodeChild)` | `'subLabel'` | - | 类型为 `string` 时,对应插槽名 |
Expand Down
1 change: 1 addition & 0 deletions packages/components/select/docs/Api.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
| `maxLabel` | 最多显示多少个标签,响应式模式会对性能产生损耗 | `number \| 'responsive'` | - | - | - |
| `multiple` | 多选模式 | `boolean` | `false` | - | - |
| `multipleLimit` | 最多选中多少项 | `number` | - | - | - |
| `offset` | 浮层相对目标元素的偏移量 | `[number, number]` | `[0, 4]` | ✅ | 第一个元素是水平偏移量,第二个元素是垂直偏移量 |
| `overlayClassName` | 下拉菜单的 `class` | `string` | - | - | - |
| `overlayContainer` | 自定义下拉框容器节点 | `string \| HTMLElement \| () => string \| HTMLElement` | - | ✅ | - |
| `overlayMatchWidth` | 下拉菜单和选择器同宽 | `boolean` | `true` | ✅ | - |
Expand Down
4 changes: 1 addition & 3 deletions packages/components/select/src/Select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ import Panel from './panel/Panel'
import { SELECT_PANEL_DATA_TOKEN } from './token'
import { type SelectData, type SelectPanelInstance, type SelectProps, selectProps } from './types'

const defaultOffset: [number, number] = [0, 8]

export default defineComponent({
name: 'IxSelect',
inheritAttrs: false,
Expand Down Expand Up @@ -200,7 +198,7 @@ export default defineComponent({
clickOutside: true,
container: mergedOverlayContainer.value,
disabled: accessor.disabled || props.readonly,
offset: defaultOffset,
offset: props.offset ?? config.offset,
placement: 'bottomStart',
trigger: 'manual',
triggerId: attrs.id,
Expand Down
1 change: 1 addition & 0 deletions packages/components/select/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const selectProps = {
maxLabel: { type: [Number, String] as PropType<number | 'responsive'>, default: Number.MAX_SAFE_INTEGER },
multiple: { type: Boolean, default: false },
multipleLimit: { type: Number, default: Number.MAX_SAFE_INTEGER },
offset: Array as unknown as PropType<[number, number]>,
overlayClassName: { type: String, default: undefined },
overlayContainer: {
type: [String, HTMLElement, Function] as PropType<PortalTargetType>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { useOverlayContainer } from '@idux/components/utils'

import { TimePickerContext, TimeRangePickerContext } from '../tokens'

const defaultOffset: [number, number] = [0, 8]
const defaultOffset: [number, number] = [0, 4]
export function useOverlayProps(context: TimePickerContext | TimeRangePickerContext): ComputedRef<ɵOverlayProps> {
const { props, common, config, accessor, mergedPrefixCls, overlayOpened, setOverlayOpened } = context
const mergedOverlayContainer = useOverlayContainer(props, config, common, mergedPrefixCls)
Expand Down
1 change: 1 addition & 0 deletions packages/components/tooltip/docs/Api.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
| `closeOnDeactivated` | 是否在 [onDeactivated](https://cn.vuejs.org/api/composition-api-lifecycle.html#ondeactivated) 时关闭 | `boolean` | `true` | - | - |
| `destroyOnHide` | 隐藏时是否销毁浮层 | `boolean` | `false` | ✅ | - |
| `delay` | 浮层显示隐藏延时 | `number \| [number, number]` | `100` | ✅ | - |
| `offset` | 浮层相对目标元素的偏移量 | `[number, number]` | `[0, 12]` | ✅ | 第一个元素是水平偏移量,第二个元素是垂直偏移量 |
| `overlayContainer` | 自定义容器节点 | `string \| HTMLElement \| () => string \| HTMLElement` | - | ✅ | - |
| `placement` | 浮层的对齐方式 | `OverlayPlacement` | `top` | ✅ | - |
| `title` | 浮层的标题 | `string \| #title` | - | - | - |
Expand Down
4 changes: 1 addition & 3 deletions packages/components/tooltip/src/useTooltipOverlay.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ import { useOverlayContainer, useZIndex } from '@idux/components/utils'

import { type TooltipProps } from './types'

const defaultOffset: [number, number] = [0, 12]

export interface TooltipOverlayContext {
overlayRef: Ref<ɵOverlayInstance | undefined>
updatePopper: () => void | undefined
Expand Down Expand Up @@ -54,7 +52,7 @@ export function useTooltipOverlay(
container: mergedOverlayContainer.value,
delay: props.delay ?? config.delay,
destroyOnHide: props.destroyOnHide ?? config.destroyOnHide,
offset: props.offset ?? defaultOffset,
offset: props.offset ?? config.offset,
showArrow: true,
placement: props.placement ?? config.placement,
trigger: trigger,
Expand Down
12 changes: 0 additions & 12 deletions packages/components/tree-select/demo/Cascade.md

This file was deleted.

49 changes: 0 additions & 49 deletions packages/components/tree-select/demo/Cascade.vue

This file was deleted.

1 change: 1 addition & 0 deletions packages/components/tree-select/demo/CascaderStrategy.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<IxTreeSelect
v-model:value="value"
v-model:expandedKeys="expandedKeys"
checkable
multiple
:cascaderStrategy="cascaderStrategy"
:dataSource="treeData"
Expand Down
1 change: 1 addition & 0 deletions packages/components/tree-select/demo/Multiple.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
v-model:expandedKeys="expandedKeys"
placeholder="多选"
multiple
cascaderStrategy="all"
:dataSource="treeData"
:checkable="checkable"
/>
Expand Down
1 change: 1 addition & 0 deletions packages/components/tree-select/docs/Api.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
| `loadChildren` | 加载子节点数据 | `(node: TreeSelectNode) => Promise<TreeSelectNode[]>` | - | - | - |
| `maxLabel` | 最多显示多少个标签,响应式模式会对性能产生损耗 | `number \| 'responsive'` | - | - | - |
| `multiple` | 多选模式 | `boolean` | `false` | - | - |
| `offset` | 浮层相对目标元素的偏移量 | `[number, number]` | `[0, 4]` | ✅ | 第一个元素是水平偏移量,第二个元素是垂直偏移量 |
| `overlayClassName` | 下拉菜单的 `class` | `string` | - | - | - |
| `overlayContainer` | 自定义浮层容器节点 | `string \| HTMLElement \| () => string \| HTMLElement` | - | ✅ | - |
| `overlayMatchWidth` | 下拉菜单和选择器同宽 | `boolean` | `true` | ✅ | - |
Expand Down
4 changes: 1 addition & 3 deletions packages/components/tree-select/src/TreeSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ import Content from './content/Content'
import { treeSelectToken } from './token'
import { treeSelectProps } from './types'

const defaultOffset: [number, number] = [0, 8]

export default defineComponent({
name: 'IxTreeSelect',
inheritAttrs: false,
Expand Down Expand Up @@ -184,7 +182,7 @@ export default defineComponent({
clickOutside: true,
container: mergedOverlayContainer.value,
disabled: accessor.disabled || props.readonly,
offset: defaultOffset,
offset: props.offset ?? config.offset,
placement: 'bottomStart',
trigger: 'manual',
triggerId: attrs.id,
Expand Down
1 change: 1 addition & 0 deletions packages/components/tree-select/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ export const treeSelectProps = {
},
maxLabel: { type: [Number, String] as PropType<number | 'responsive'>, default: Number.MAX_SAFE_INTEGER },
multiple: { type: Boolean, default: false },
offset: Array as unknown as PropType<[number, number]>,
overlayClassName: { type: String, default: undefined },
overlayContainer: {
type: [String, HTMLElement, Function] as PropType<PortalTargetType>,
Expand Down
12 changes: 0 additions & 12 deletions packages/components/tree/demo/Cascade.md

This file was deleted.

65 changes: 0 additions & 65 deletions packages/components/tree/demo/Cascade.vue

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ export function useCommonOverlayProps(
return computed(() => ({
container: props.overlayContainer || config.overlayContainer || `.${mergedPrefixCls.value}-overlay-container`,
placement: 'bottomStart',
offset: [0, 8],
offset: [0, 4],
}))
}