ng-devui
Version:
DevUI components based on Angular
211 lines (210 loc) • 5.73 kB
TypeScript
import { TemplateRef } from '@angular/core';
import { OperableTreeComponent } from 'ng-devui/tree';
export type CategorySearchTagType = 'radio' | 'checkbox' | 'dateRange' | 'label' | 'textInput' | 'numberRange' | 'treeSelect' | 'keyword';
export interface ITagOption {
/**
* 选项,label和color默认都会取对应的 filterKey 和 colorKey,如未设置取默认值
*/
label?: string;
color?: string;
[propName: string]: any;
}
/**
* 候选tag数据配置项
*/
export interface ICategorySearchTagItem {
/**
* 搜索字段,tag的键,用于区分不同的分类,需要唯一
*/
field: string;
/**
* tag 键的显示值
*/
label: string;
/**
* 配置项可生产的tag类型
*/
type?: CategorySearchTagType;
/**
* 配置项所属的分组
*/
group?: string;
/**
* tag 值的选择项数据
*/
options?: Array<ITagOption>;
/**
* 用于显示的 tag 值的键值,如未设置默认取label
*/
filterKey?: string | 'label';
/**
* 用于显示的label类型中色值的键值,如未设置默认取color
*/
colorKey?: string | 'color';
/**
* 自定义下拉模板
*/
customTemplate?: TemplateRef<any>;
/**
* 自定义已选标签内容模板
*/
tagCustomTemplate?: TemplateRef<any>;
/**
* 当前分类选中后是否可以删除
*/
deletable?: boolean;
/**
* 已选中值
*/
value?: {
label?: string;
value?: string | ITagOption | Array<ITagOption | number | string | Date>;
cache?: string | ITagOption | Array<ITagOption | number | string | Date>;
[propName: string]: any;
};
/**
* checkbox | label 类型是否显示全选
*/
showSelectAll?: boolean;
/**
* dateRange 类型是否显示时分秒
*/
showTime?: boolean;
/**
* dateRange 类型默认激活开始或者结束日期
*/
activeRangeType?: 'start' | 'end';
/**
* textInput | numberRange 类型设置最大长度,numberRange 需传入对象分别设置左右
*/
maxLength?: number | {
left?: number;
right?: number;
};
/**
* textInput | numberRange 类型设置占位符,numberRange 需传入对象分别设置左右
*/
placeholder?: string | {
left?: string;
right?: string;
};
/**
* numberRange 步进值,需传入对象分别设置左右
*/
step?: {
left?: number;
right?: number;
};
/**
* numberRange 最大值,需传入对象分别设置左右
*/
max?: {
left?: number;
right?: number;
};
/**
* numberRange 最小值,需传入对象分别设置左右
*/
min?: {
left?: number;
right?: number;
};
/**
* numberRange 限制输入的正则或正则字符串,需传入对象分别设置左右
*/
reg?: {
left?: RegExp | string;
right?: RegExp | string;
};
/**
* numberRange 限制小数点后的位数,需传入对象分别设置左右
*/
decimalLimit?: {
left?: number;
right?: number;
};
/**
* numberRange 校验方法,点击确定时执行,返回 true 通过
*/
validateFunc?: (start: number, end: number, tag: ICategorySearchTagItem) => boolean;
/**
* treeSelect 类型是否为多选,并显示已选择列表
*/
multiple?: boolean;
/**
* treeSelect 类型是否显示搜索框
*/
searchable?: boolean;
/**
* treeSelect 类型设置搜索框占位符
*/
searchPlaceholder?: string;
/**
* treeSelect 类型自定义搜索方法,参数为搜索关键字和 d-operable-tree 组件实例
*/
searchFn?: (value: string, treeInstance: OperableTreeComponent) => boolean | Array<any>;
/**
* treeSelect 类型相关配置,请参考treeSelect组件API中同名配置
*/
checkableRelation?: 'upward' | 'downward' | 'both' | 'none';
treeNodeIdKey?: string;
treeNodeChildrenKey?: string;
treeNodeTitleKey?: string;
disabledKey?: string;
leafOnly?: boolean;
iconParentOpen?: string;
iconParentClose?: string;
iconLeaf?: string;
[propName: string]: any;
}
export interface SelectedTagsEvent {
selectedTags: Array<ICategorySearchTagItem>;
currentChangeTag: ICategorySearchTagItem;
operation: 'add' | 'delete' | 'clear';
}
export interface CreateFilterEvent {
name: string;
selectedTags: Array<ICategorySearchTagItem>;
keyword: string;
}
export interface SearchEvent {
selectedTags: Array<ICategorySearchTagItem>;
searchKey: string;
}
export interface SearchConfig {
keyword?: boolean;
keywordDescription?: (searchKey: string) => string;
field?: boolean;
fieldDescription?: (label: string) => string;
category?: boolean;
categoryDescription?: string;
noCategoriesAvailableTip?: boolean;
searchInputMaxLength?: number;
}
export interface TextConfig {
keywordName?: string;
createFilter?: string;
filterTitle?: string;
labelConnector?: string;
noCategoriesAvailable?: string;
}
export interface ExtendedConfig {
show?: boolean;
clear?: {
show?: boolean;
disabled?: boolean;
template?: TemplateRef<any>;
};
save?: {
show?: boolean;
disabled?: boolean;
template?: TemplateRef<any>;
};
more?: {
show?: boolean;
disabled?: boolean;
template?: TemplateRef<any>;
};
customTemplate?: TemplateRef<any>;
}
export declare const COLORS: string[];