import { IPublicTypeComponentMetadata, IPublicTypeSnippet } from '@alilc/lowcode-types'; const YCTabsMeta: IPublicTypeComponentMetadata = { componentName: 'YCTabs', title: 'YCTabs', docUrl: '', screenshot: '', devMode: 'proCode', npm: { package: 'yc-material', version: '0.1.0', exportName: 'YCTabs', main: 'src/index.tsx', destructuring: true, subName: '', }, configure: { props: [ { title: { label: { type: 'i18n', 'en-US': 'className', 'zh-CN': 'className', }, }, name: 'className', setter: { componentName: 'MixedSetter', props: { setters: [ { componentName: 'StringSetter', isRequired: false, initialValue: '', }, { componentName: 'ArraySetter', props: { itemSetter: { componentName: 'StringSetter', isRequired: false, initialValue: '', }, }, initialValue: [], }, ], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'defaultActiveTab', 'zh-CN': '默认选中的标', }, tip: 'defaultActiveTab | 默认选中的标签选项卡,如不指定默认选择第一个', }, name: 'defaultActiveTab', description: '默认选中的标签选项卡,如不指定默认选择第一个', setter: { componentName: 'StringSetter', isRequired: false, initialValue: '', }, }, { title: { label: { type: 'i18n', 'en-US': 'activeTab', 'zh-CN': '当前选中的 ', }, tip: 'activeTab | 当前选中的 tab 的 key', }, name: 'activeTab', description: '当前选中的 tab 的 key', setter: { componentName: 'StringSetter', isRequired: false, initialValue: '', }, }, { title: { label: { type: 'i18n', 'en-US': 'animation', 'zh-CN': '是否开启过渡', }, tip: 'animation | 是否开启过渡效果', }, name: 'animation', description: '是否开启过渡效果', setter: { componentName: 'MixedSetter', props: { setters: [ { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, { componentName: 'ObjectSetter', props: { config: { items: [ { title: { label: { type: 'i18n', 'en-US': 'tabPane', 'zh-CN': 'tabPane', }, }, name: 'tabPane', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'inkBar', 'zh-CN': 'inkBar', }, }, name: 'inkBar', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, ], extraSetter: { componentName: 'MixedSetter', isRequired: false, props: {}, }, }, }, }, ], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'tabPosition', 'zh-CN': '选项卡位置', }, tip: 'tabPosition | 选项卡位置', }, name: 'tabPosition', description: '选项卡位置', setter: { componentName: 'SelectSetter', props: { dataSource: [ { label: 'left', value: 'left', }, { label: 'right', value: 'right', }, { label: 'bottom', value: 'bottom', }, { label: 'top', value: 'top', }, ], options: [ { label: 'left', value: 'left', }, { label: 'right', value: 'right', }, { label: 'bottom', value: 'bottom', }, { label: 'top', value: 'top', }, ], }, initialValue: 'left', }, }, { title: { label: { type: 'i18n', 'en-US': 'direction', 'zh-CN': '标签选项卡的', }, tip: 'direction | 标签选项卡的方向是水平还是竖直,分别对应 `horizontal `和 `vertical`。** 注意: 已废弃,使用 tabPosition 替代。**', }, name: 'direction', description: '标签选项卡的方向是水平还是竖直,分别对应 `horizontal `和 `vertical`。** 注意: 已废弃,使用 tabPosition 替代。**', setter: { componentName: 'RadioGroupSetter', props: { dataSource: [ { label: 'horizontal', value: 'horizontal', }, { label: 'vertical', value: 'vertical', }, ], options: [ { label: 'horizontal', value: 'horizontal', }, { label: 'vertical', value: 'vertical', }, ], }, initialValue: 'horizontal', }, }, { title: { label: { type: 'i18n', 'en-US': 'size', 'zh-CN': '有四个尺寸供', }, tip: 'size | 有四个尺寸供选择,分别为`mini`, `small`, `default`, `large`', }, name: 'size', description: '有四个尺寸供选择,分别为`mini`, `small`, `default`, `large`', setter: { componentName: 'SelectSetter', props: { dataSource: [ { label: 'default', value: 'default', }, { label: 'mini', value: 'mini', }, { label: 'small', value: 'small', }, { label: 'large', value: 'large', }, ], options: [ { label: 'default', value: 'default', }, { label: 'mini', value: 'mini', }, { label: 'small', value: 'small', }, { label: 'large', value: 'large', }, ], }, initialValue: 'default', }, }, { title: { label: { type: 'i18n', 'en-US': 'type', 'zh-CN': '标签选项卡的', }, tip: 'type | 标签选项卡的类型', }, name: 'type', description: '标签选项卡的类型', setter: { componentName: 'SelectSetter', props: { dataSource: [ { label: 'text', value: 'text', }, { label: 'card', value: 'card', }, { label: 'line', value: 'line', }, { label: 'card-gutter', value: 'card-gutter', }, { label: 'rounded', value: 'rounded', }, { label: 'capsule', value: 'capsule', }, ], options: [ { label: 'text', value: 'text', }, { label: 'card', value: 'card', }, { label: 'line', value: 'line', }, { label: 'card-gutter', value: 'card-gutter', }, { label: 'rounded', value: 'rounded', }, { label: 'capsule', value: 'capsule', }, ], }, initialValue: 'text', }, }, { title: { label: { type: 'i18n', 'en-US': 'inkBarSize', 'zh-CN': '定制下划线尺', }, tip: 'inkBarSize | 定制下划线尺寸', }, name: 'inkBarSize', description: '定制下划线尺寸', setter: { componentName: 'ObjectSetter', props: { config: { items: [ { title: { label: { type: 'i18n', 'en-US': 'width', 'zh-CN': 'width', }, }, name: 'width', setter: { componentName: 'MixedSetter', props: { setters: [ { componentName: 'StringSetter', isRequired: false, initialValue: '', }, { componentName: 'NumberSetter', isRequired: false, initialValue: 0, }, { componentName: 'ObjectSetter', props: { config: { extraSetter: { componentName: 'MixedSetter', isRequired: false, props: {}, }, }, }, isRequired: false, initialValue: {}, }, ], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'height', 'zh-CN': 'height', }, }, name: 'height', setter: { componentName: 'MixedSetter', props: { setters: [ { componentName: 'StringSetter', isRequired: false, initialValue: '', }, { componentName: 'NumberSetter', isRequired: false, initialValue: 0, }, { componentName: 'ObjectSetter', props: { config: { extraSetter: { componentName: 'MixedSetter', isRequired: false, props: {}, }, }, }, isRequired: false, initialValue: {}, }, ], }, }, }, ], extraSetter: { componentName: 'MixedSetter', isRequired: false, props: {}, }, }, }, }, }, { title: { label: { type: 'i18n', 'en-US': 'headerPadding', 'zh-CN': '选项卡头部是', }, tip: 'headerPadding | 选项卡头部是否存在水平边距。仅对 `type`等于 `line`、`text`类型的选项卡生效', }, name: 'headerPadding', description: '选项卡头部是否存在水平边距。仅对 `type`等于 `line`、`text`类型的选项卡生效', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'overflow', 'zh-CN': '标签页较多时', }, tip: 'overflow | 标签页较多时候,选择滚动/下拉菜单形式展示 tab', }, name: 'overflow', description: '标签页较多时候,选择滚动/下拉菜单形式展示 tab', setter: { componentName: 'RadioGroupSetter', props: { dataSource: [ { label: 'scroll', value: 'scroll', }, { label: 'dropdown', value: 'dropdown', }, ], options: [ { label: 'scroll', value: 'scroll', }, { label: 'dropdown', value: 'dropdown', }, ], }, initialValue: 'scroll', }, }, { title: { label: { type: 'i18n', 'en-US': 'editable', 'zh-CN': '是否允许增减', }, tip: 'editable | 是否允许增减标签。只在 `type` 为 `card` 或 `card-gutter` 时候生效。', }, name: 'editable', description: '是否允许增减标签。只在 `type` 为 `card` 或 `card-gutter` 时候生效。', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'showAddButton', 'zh-CN': '是否显示新增', }, tip: 'showAddButton | 是否显示新增按钮(仅在`editable`为`true`时生效)', }, name: 'showAddButton', description: '是否显示新增按钮(仅在`editable`为`true`时生效)', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'icons', 'zh-CN': '标签页头部 ', }, tip: 'icons | 标签页头部 编辑/滚动/下拉 图标配置。对于不想展示的图标可以将其设置为`null`', }, name: 'icons', description: '标签页头部 编辑/滚动/下拉 图标配置。对于不想展示的图标可以将其设置为`null`', setter: { componentName: 'ObjectSetter', props: { config: { items: [ { title: { label: { type: 'i18n', 'en-US': 'add', 'zh-CN': 'add', }, }, name: 'add', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'delete', 'zh-CN': 'delete', }, }, name: 'delete', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'prev', 'zh-CN': 'prev', }, }, name: 'prev', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'next', 'zh-CN': 'next', }, }, name: 'next', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'dropdown', 'zh-CN': 'dropdown', }, }, name: 'dropdown', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, ], extraSetter: { componentName: 'MixedSetter', isRequired: false, props: {}, }, }, }, }, }, { title: { label: { type: 'i18n', 'en-US': 'scrollAfterEdit', 'zh-CN': '是否在标签增', }, tip: 'scrollAfterEdit | 是否在标签增减后,自动进行滚动调整(`editable`为`true`时生效)', }, name: 'scrollAfterEdit', description: '是否在标签增减后,自动进行滚动调整(`editable`为`true`时生效)', setter: { componentName: 'ObjectSetter', props: { config: { items: [ { title: { label: { type: 'i18n', 'en-US': 'delete', 'zh-CN': 'delete', }, }, name: 'delete', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'add', 'zh-CN': 'add', }, }, name: 'add', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, ], extraSetter: { componentName: 'MixedSetter', isRequired: false, props: {}, }, }, }, }, }, { title: { label: { type: 'i18n', 'en-US': 'extra', 'zh-CN': '显示在标签页', }, tip: 'extra | 显示在标签页右侧的附加', }, name: 'extra', description: '显示在标签页右侧的附加', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'destroyOnHide', 'zh-CN': '是否销毁隐藏', }, tip: 'destroyOnHide | 是否销毁隐藏标签页的节点, `TabPane` 的该属性优先级高于 `YCTabs`。', }, name: 'destroyOnHide', description: '是否销毁隐藏标签页的节点, `TabPane` 的该属性优先级高于 `YCTabs`。', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'lazyload', 'zh-CN': '设置为 `t', }, tip: 'lazyload | 设置为 `true` 时,将不会在组件挂载的时候渲染被隐藏的标签页。', }, name: 'lazyload', description: '设置为 `true` 时,将不会在组件挂载的时候渲染被隐藏的标签页。', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'justify', 'zh-CN': '高度撑满容器', }, tip: 'justify | 高度撑满容器,只在水平模式下生效。(默认的高度是又撑起的。)', }, name: 'justify', description: '高度撑满容器,只在水平模式下生效。(默认的高度是又撑起的。)', setter: { componentName: 'BoolSetter', isRequired: false, initialValue: false, }, }, { title: { label: { type: 'i18n', 'en-US': 'deleteButton', 'zh-CN': '自定义删除按', }, tip: 'deleteButton | 自定义删除按钮', }, name: 'deleteButton', description: '自定义删除按钮', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'addButton', 'zh-CN': '自定义新增按', }, tip: 'addButton | 自定义新增按钮', }, name: 'addButton', description: '自定义新增按钮', setter: { componentName: 'SlotSetter', props: { mode: 'node', }, isRequired: false, initialValue: { type: 'JSSlot', value: [], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'scrollPosition', 'zh-CN': '被选中 ta', }, tip: 'scrollPosition | 被选中 tab 的滚动位置,默认 auto 即会将 activeTab 滚动到可见区域,但不会特意做位置调整', }, name: 'scrollPosition', description: '被选中 tab 的滚动位置,默认 auto 即会将 activeTab 滚动到可见区域,但不会特意做位置调整', setter: { componentName: 'MixedSetter', props: { setters: [ { componentName: 'NumberSetter', isRequired: false, initialValue: 0, }, { componentName: 'SelectSetter', props: { dataSource: [ { label: 'center', value: 'center', }, { label: 'start', value: 'start', }, { label: 'end', value: 'end', }, { label: 'auto', value: 'auto', }, ], options: [ { label: 'center', value: 'center', }, { label: 'start', value: 'start', }, { label: 'end', value: 'end', }, { label: 'auto', value: 'auto', }, ], }, initialValue: 'center', }, ], }, }, }, { title: { label: { type: 'i18n', 'en-US': 'onChange', 'zh-CN': '`activ', }, tip: 'onChange | `activeTab` 改变的回调', }, name: 'onChange', description: '`activeTab` 改变的回调', setter: { componentName: 'FunctionSetter', }, }, { title: { label: { type: 'i18n', 'en-US': 'onClickTab', 'zh-CN': '点击选项卡的', }, tip: 'onClickTab | 点击选项卡的回调', }, name: 'onClickTab', description: '点击选项卡的回调', setter: { componentName: 'FunctionSetter', }, }, { title: { label: { type: 'i18n', 'en-US': 'onDeleteTab', 'zh-CN': '点击删除按钮', }, tip: 'onDeleteTab | 点击删除按钮的回调', }, name: 'onDeleteTab', description: '点击删除按钮的回调', setter: { componentName: 'FunctionSetter', }, }, { title: { label: { type: 'i18n', 'en-US': 'renderTabHeader', 'zh-CN': '自定义选项卡', }, tip: 'renderTabHeader | 自定义选项卡头部', }, name: 'renderTabHeader', description: '自定义选项卡头部', setter: { componentName: 'FunctionSetter', }, }, { title: { label: { type: 'i18n', 'en-US': 'renderTabTitle', 'zh-CN': '自定义单个选', }, tip: 'renderTabTitle | 自定义单个选项卡头部', }, name: 'renderTabTitle', description: '自定义单个选项卡头部', setter: { componentName: 'FunctionSetter', }, }, ], supports: { style: true, events: [ { name: 'onAddTab', description: '点击新增 tab 按钮的回调', }, ], }, component: { isContainer: true }, }, }; const snippets: IPublicTypeSnippet[] = [ { title: 'YCTabs', screenshot: '', schema: { componentName: 'YCTabs', props: {}, }, }, ]; export default { ...YCTabsMeta, snippets, };