mirror of https://github.com/ghostfolio/ghostfolio
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.2 KiB
25 lines
1.2 KiB
export declare const DEFAULT_GROUP = "$DEFAULT";
|
|
export type GroupQuery = string | RegExp;
|
|
export type GroupKey<TPresets extends Presets> = keyof TPresets | string | typeof DEFAULT_GROUP;
|
|
export type Presets = Record<string, GroupQuery | GroupQuery[]>;
|
|
export type OrganizedGroup<TValue> = {
|
|
values: TValue[];
|
|
query: GroupQuery;
|
|
};
|
|
export type OrganizedResult<TValue> = {
|
|
groups: OrganizedGroup<TValue>[];
|
|
flat: TValue[];
|
|
};
|
|
export interface BaseOrganizeOptions<TPresets extends Presets> {
|
|
presets?: TPresets;
|
|
groups: GroupKey<TPresets>[];
|
|
sort?: OrganizeOptionsSort;
|
|
ignoreCase?: boolean;
|
|
}
|
|
export type OrganizeOptionsSort = "ASC" | "DESC" | boolean;
|
|
export interface MapOrganizeOptions<TPresets extends Presets, TValue> extends BaseOrganizeOptions<TPresets> {
|
|
map: (value: TValue) => string;
|
|
}
|
|
export type OrganizeOptions<TPresets extends Presets, TValue> = BaseOrganizeOptions<TPresets> | MapOrganizeOptions<TPresets, TValue>;
|
|
export declare function miniorganize<TPresets extends Presets>(values: string[], options: BaseOrganizeOptions<TPresets>): OrganizedResult<string>;
|
|
export declare function miniorganize<TPresets extends Presets, TValue>(values: TValue[], options: MapOrganizeOptions<TPresets, TValue>): OrganizedResult<TValue>;
|
|
|