@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
46 lines (45 loc) • 1.79 kB
TypeScript
import { ComputedRef, Ref } from "vue";
import { ConditionGroup, FieldConfig, Condition } from "../types";
import { EditorType } from "../../../dynamic-form";
import { ConditionValue } from "./condition-value/types";
export interface UseFieldConfig {
convertToSingleControl(configs: FieldConfig[]): FieldConfig[];
fields: Ref<FieldConfig[]>;
fieldMap: Map<string, FieldConfig>;
fieldConditions: Ref<FieldConfig[]>;
loadFieldConfigs: (useRangeEditor: boolean) => void;
initialConditionValue: (conditions: Condition[]) => Condition[];
}
export interface UseCondition {
addCondition(): void;
changeGroupRelation(targetGroup: ConditionGroup): void;
conditionGroupMap: Map<number, ConditionGroup>;
getConditions: (conditionGroup: ConditionGroup) => Condition[];
group(targetsToGroup: (Condition | ConditionGroup)[]): void;
groupParentMap: Map<number, ConditionGroup>;
insertConditionTo(preCondtion: Condition): void;
loadConditionGroup(conditions: Condition[]): ConditionGroup;
refresh(): void;
removeCondition(targetToRemove: Condition): void;
rootGroup: Ref<ConditionGroup>;
unGroup(groupToDisperse: ConditionGroup): void;
}
export interface UseConditionValue {
createConditionValue: (editorType: EditorType, initialValue?: any, editor?: any) => ConditionValue;
}
export interface UseSelection {
clear(): void;
selectedItems: Ref<Set<number>>;
toggleSelect(condition: Condition): void;
getSelectedGroupItem(): (Condition | ConditionGroup)[];
}
export interface UseCompare {
getCompareOperators(condition: Condition): {
name: string;
value: string;
}[];
}
export interface UseSizeValue {
conditionClass: ComputedRef<string>;
resizeObserver: Ref<ResizeObserver | null>;
}