@yeger/vue-masonry-wall
Version:
Responsive masonry layout with SSR support and zero dependencies for Vue 3.
46 lines (45 loc) • 1.8 kB
text/typescript
import * as _$vue from "vue";
import { VNode } from "vue";
//#region src/masonry-wall.vue.d.ts
type NonEmptyArray<T> = [T, ...T[]];
type KeyMapper<T> = (item: T, column: number, row: number, index: number) => string | number | symbol | undefined;
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
props: _$vue.PublicProps & __VLS_PrettifyLocal<{
columnWidth?: number | NonEmptyArray<number> | undefined;
items: T[];
gap?: number | undefined;
rtl?: boolean | undefined;
ssrColumns?: number | undefined;
scrollContainer?: HTMLElement | null | undefined;
minColumns?: number | undefined;
maxColumns?: number | undefined;
keyMapper?: KeyMapper<T> | undefined;
} & {
onRedraw?: () => any;
onRedrawSkip?: () => any;
}> & (typeof globalThis extends {
__VLS_PROPS_FALLBACK: infer P;
} ? P : {});
expose: (exposed: {}) => void;
attrs: any;
slots: {
default?: (props: {
item: T;
column: number;
columnCount: number;
row: number;
index: number;
}) => VNode | VNode[] | Element | Element[];
};
emit: {
(event: "redraw"): void;
(event: "redrawSkip"): void;
};
}>) => _$vue.VNode & {
__ctx?: Awaited<typeof __VLS_setup>;
};
declare const _default: typeof __VLS_export;
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {}; //# sourceMappingURL=masonry-wall.vue.d.ts.map
//#endregion
export { type KeyMapper, _default as MasonryWall, type NonEmptyArray };
//# sourceMappingURL=index.d.mts.map