@agendize/design-system
Version:
Agendize web design system
185 lines • 6.62 kB
TypeScript
import { CardProperties } from "../card/viewModel";
import { Ref } from "vue";
import { ButtonColor } from "../../action/button/viewModel";
export interface CardItemProperties extends CardProperties {
picture?: {
url: string;
alt: string;
};
disabled?: boolean;
action?: string;
data?: any;
}
export interface CardListCustomAction {
title?: string;
ariaLabel: string;
icon?: string;
action: Function;
color?: ButtonColor;
}
export declare const BasicSearchModeValues: string[];
export type BasicSearchMode = typeof BasicSearchModeValues[number];
export interface CardListItemSearchOptions {
basicSearch?: {
filter?: CardListItemFilter;
placeholder: string;
ariaLabel: string;
button?: {
icon?: string;
label?: string;
ariaLabel: string;
};
mode?: BasicSearchMode;
};
quickFilters?: {
exclusive?: boolean;
defaultAllFilter?: boolean;
allFilterLabel?: string;
filters: {
id: string;
title: string;
ariaLabel: string;
default?: boolean;
visible?: boolean;
filter?: CardListItemFilter;
}[];
};
advancedFilters?: {
filter: CardListItemFilter;
};
}
export interface CardListItemSearchFilterData {
basic?: string;
quickFilters?: Map<string, boolean>;
orderBy?: string;
}
export declare const BodyOverflowValues: string[];
export type BodyOverflow = typeof BodyOverflowValues[number];
export interface CardListProperties {
id?: string;
items?: CardItemProperties[];
fetchItems?: CardListItemFetch;
searchOption?: CardListItemSearchOptions;
bodyOverflow?: BodyOverflow;
itemClickable?: boolean;
customAction?: CardListCustomAction;
persistence?: boolean;
defaultPicture?: {
url: string;
alt: string;
};
maxElementByLine?: number;
loadingOptions?: CardListLoadingOptions;
imgHeight?: string;
emptyLabel?: string;
}
export interface CardListItemFetchResponse {
items?: CardItemProperties[];
totalItems?: number;
}
export interface CardListLoadingOptions {
picture: boolean;
subtitle: boolean;
action: boolean;
cardNumber: number;
}
export declare type CardListItemFetch = (data?: CardListItemSearchFilterData, callback?: Function) => Promise<CardItemProperties[] | CardListItemFetchResponse>;
export type CardListItemFilter = (item: CardItemProperties, data?: CardListItemSearchFilterData, callback?: Function) => boolean;
export declare function StructuredCardListViewModel(props: CardListProperties, emits: any, searchInput: Ref, localList: Ref, overload?: {
filterFunction?: (items: CardItemProperties[]) => CardItemProperties[];
}): {
loading: Ref<boolean, boolean>;
totalItems: Ref<number, number>;
searchBarInput: Ref<string | undefined, string | undefined>;
quickFilters: Ref<Map<string, boolean> & Omit<Map<string, boolean>, keyof Map<any, any>>, Map<string, boolean> | (Map<string, boolean> & Omit<Map<string, boolean>, keyof Map<any, any>>)>;
allItems: Ref<{
picture?: {
url: string;
alt: string;
} | undefined;
disabled?: boolean | undefined;
action?: string | undefined;
data?: any;
id: string;
variant?: import("../card/viewModel").CardVariant | undefined;
title: string;
subTitle?: string | undefined;
description?: string | undefined;
imgHeight?: string | undefined;
stopPropagation?: boolean | undefined;
selectable?: boolean | undefined;
ariaLabel: string;
}[], CardItemProperties[] | {
picture?: {
url: string;
alt: string;
} | undefined;
disabled?: boolean | undefined;
action?: string | undefined;
data?: any;
id: string;
variant?: import("../card/viewModel").CardVariant | undefined;
title: string;
subTitle?: string | undefined;
description?: string | undefined;
imgHeight?: string | undefined;
stopPropagation?: boolean | undefined;
selectable?: boolean | undefined;
ariaLabel: string;
}[]>;
filteredItemsRow: Ref<{
picture?: {
url: string;
alt: string;
} | undefined;
disabled?: boolean | undefined;
action?: string | undefined;
data?: any;
id: string;
variant?: import("../card/viewModel").CardVariant | undefined;
title: string;
subTitle?: string | undefined;
description?: string | undefined;
imgHeight?: string | undefined;
stopPropagation?: boolean | undefined;
selectable?: boolean | undefined;
ariaLabel: string;
}[], CardItemProperties[] | {
picture?: {
url: string;
alt: string;
} | undefined;
disabled?: boolean | undefined;
action?: string | undefined;
data?: any;
id: string;
variant?: import("../card/viewModel").CardVariant | undefined;
title: string;
subTitle?: string | undefined;
description?: string | undefined;
imgHeight?: string | undefined;
stopPropagation?: boolean | undefined;
selectable?: boolean | undefined;
ariaLabel: string;
}[]>;
hasCustomAction: import("vue").ComputedRef<boolean>;
searchContext: import("vue").ComputedRef<CardListItemSearchFilterData>;
searched: import("vue").ComputedRef<boolean>;
hasQuickFilter: import("vue").ComputedRef<boolean>;
orderBy: Ref<string | undefined, string | undefined>;
initDefaultQuickFilters: () => Map<string, boolean>;
quickFilterAction: (filterId: string, disabledIfAlreadyActive?: boolean) => void;
triggerFilter: () => void;
onBasicSearch: () => void;
onBasicSearchEnter: () => void;
onBasicSearchButton: () => void;
filter: () => void;
applyBasicFilter: (items: CardItemProperties[]) => CardItemProperties[];
applyQuickFilters: (items: CardItemProperties[]) => CardItemProperties[];
applyFiltersFunction: (item: CardItemProperties, filters?: (CardListItemFilter | undefined)[]) => boolean;
applyFilters: (items?: CardItemProperties[]) => CardItemProperties[];
convertItemsAndFilter: (items?: CardItemProperties[], initialisation?: boolean) => CardItemProperties[];
loadAndFetch: (pageParam?: number) => void;
focus: () => void;
};
//# sourceMappingURL=viewModel.d.ts.map