@opentiny/vue-renderless
Version:
An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.
96 lines (90 loc) • 3.53 kB
TypeScript
import { PropType, ExtractPropTypes } from 'vue';
import { IButtonGroupNode as IButtonGroupNode$1 } from '@opentiny/vue-renderless/types/button-group.type';
import { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type.js';
declare const buttonGroupProps: {
size: {
type: StringConstructor;
default: string;
validator: (val: string) => boolean;
};
data: {
type: PropType<IButtonGroupNode$1[]>;
default: () => never[];
};
plain: BooleanConstructor;
modelValue: (StringConstructor | NumberConstructor)[];
disabled: BooleanConstructor;
valueField: {
type: StringConstructor;
default: string;
};
textField: {
type: StringConstructor;
default: string;
};
showMore: NumberConstructor;
showEdit: {
type: BooleanConstructor;
default: boolean;
};
border: {
type: BooleanConstructor;
default: boolean;
};
tiny_mode: StringConstructor;
tiny_mode_root: BooleanConstructor;
tiny_template: (FunctionConstructor | ObjectConstructor)[];
tiny_renderless: FunctionConstructor;
tiny_theme: StringConstructor;
tiny_mcp_config: ObjectConstructor;
tiny_chart_theme: ObjectConstructor;
};
/**
* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
declare const handleChange: ({ emit, state }: Pick<IButtonGroupRenderlessParams, 'emit' | 'state'>) => () => void;
declare const handleClick: ({ emit, props, state }: Pick<IButtonGroupRenderlessParams, 'emit' | 'props' | 'state'>) => (node: IButtonGroupNode) => void;
declare const moreNodeClick: ({ emit, props, state }: Pick<IButtonGroupRenderlessParams, 'emit' | 'props' | 'state'>) => (node: IButtonGroupNode) => void;
declare const getItemClass: ({ props, state }: Pick<IButtonGroupRenderlessParams, 'props' | 'state'>) => (node: IButtonGroupNode) => IButtonGroupItemClass;
type IButtonGroupProps = ExtractPropTypes<typeof buttonGroupProps>;
interface IButtonGroupItemClass {
disabled?: boolean;
plain?: boolean;
medium?: boolean;
small?: boolean;
mini?: boolean;
}
interface IButtonGroupNode {
text?: string;
value?: string;
disabled?: boolean;
[otherKey: string]: any;
}
interface IButtonGroupState {
value: IButtonGroupProps['modelValue'];
buttonData: IButtonGroupNode[];
moreData: IButtonGroupNode[];
formDisabled: boolean;
disabled: boolean;
}
type IButtonGroupRenderlessParams = ISharedRenderlessFunctionParams<never> & {
state: IButtonGroupState;
props: IButtonGroupProps;
};
interface IButtonGroupApi {
state: IButtonGroupState;
handleChange: ReturnType<typeof handleChange>;
handleClick: ReturnType<typeof handleClick>;
moreNodeClick: ReturnType<typeof moreNodeClick>;
getItemClass: ReturnType<typeof getItemClass>;
}
type IButtonGroupRenderlessParamUtils = ISharedRenderlessParamUtils<never>;
export { IButtonGroupApi, IButtonGroupItemClass, IButtonGroupNode, IButtonGroupProps, IButtonGroupRenderlessParamUtils, IButtonGroupRenderlessParams, IButtonGroupState };