@nextcloud/vue
Version:
Nextcloud vue components
155 lines (154 loc) • 5.67 kB
TypeScript
import { Slot } from 'vue';
/**
* Content layout used when a list is provided together with the main content.
*/
export type AppContentLayout = 'no-split' | 'vertical-split' | 'horizontal-split';
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
showDetails?: boolean;
} & {
/**
* Allows to disable the control by swipe of the app navigation open state.
*/
disableSwipe?: boolean;
/**
* Allows you to set the default width of the resizable list in % on vertical-split
* or respectively the default height on horizontal-split.
*
* Must be between `listMinWidth` and `listMaxWidth`.
*
* @default 20
*/
listSize?: number;
/**
* Allows you to set the minimum width of the list column in % on vertical-split
* or respectively the minimum height on horizontal-split.
*
* @default 15
*/
listMinWidth?: number;
/**
* Allows you to set the maximum width of the list column in % on vertical-split
* or respectively the maximum height on horizontal-split.
*
* @default 40
*/
listMaxWidth?: number;
/**
* Specify the config key for the pane config sizes
* Default is the global var appName if you use the webpack-vue-config
*/
paneConfigKey?: string;
/**
* Content layout used when there is a list together with content:
* - `vertical-split` - a 2-column layout with list and default content separated vertically
* - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.
* - 'horizontal-split' - a 2-column layout with list and default content separated horizontally
* On mobile screen `no-split` layout is forced.
*
* @default 'vertical-split'
*/
layout?: AppContentLayout;
/**
* Specify the `<h1>` page heading
*/
pageHeading?: string | null;
/**
* Allow setting the page's `<title>`
*
* If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.
* When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.
* When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`
*/
pageTitle?: string | null;
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
"update:showDetails": (...args: unknown[]) => any;
resizeList: (payload: {
size: number;
}) => any;
}, string, import('vue').PublicProps, Readonly<{
showDetails?: boolean;
} & {
/**
* Allows to disable the control by swipe of the app navigation open state.
*/
disableSwipe?: boolean;
/**
* Allows you to set the default width of the resizable list in % on vertical-split
* or respectively the default height on horizontal-split.
*
* Must be between `listMinWidth` and `listMaxWidth`.
*
* @default 20
*/
listSize?: number;
/**
* Allows you to set the minimum width of the list column in % on vertical-split
* or respectively the minimum height on horizontal-split.
*
* @default 15
*/
listMinWidth?: number;
/**
* Allows you to set the maximum width of the list column in % on vertical-split
* or respectively the maximum height on horizontal-split.
*
* @default 40
*/
listMaxWidth?: number;
/**
* Specify the config key for the pane config sizes
* Default is the global var appName if you use the webpack-vue-config
*/
paneConfigKey?: string;
/**
* Content layout used when there is a list together with content:
* - `vertical-split` - a 2-column layout with list and default content separated vertically
* - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.
* - 'horizontal-split' - a 2-column layout with list and default content separated horizontally
* On mobile screen `no-split` layout is forced.
*
* @default 'vertical-split'
*/
layout?: AppContentLayout;
/**
* Specify the `<h1>` page heading
*/
pageHeading?: string | null;
/**
* Allow setting the page's `<title>`
*
* If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.
* When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.
* When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`
*/
pageTitle?: string | null;
}> & Readonly<{
"onUpdate:showDetails"?: ((...args: unknown[]) => any) | undefined;
onResizeList?: ((payload: {
size: number;
}) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>, Readonly<{
/**
* Provide the main content to the app content
*/
default?: Slot;
/**
* Provide a list to the app content
*/
list?: Slot;
}> & {
/**
* Provide the main content to the app content
*/
default?: Slot;
/**
* Provide a list to the app content
*/
list?: Slot;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};