@bitrix24/b24ui-nuxt
Version:
Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE
98 lines (97 loc) • 3.18 kB
TypeScript
import type { AppConfig } from '@nuxt/schema';
import theme from '#build/b24ui/sidebar-layout';
import type { ComponentConfig } from '../types/utils';
import type { Ref } from 'vue';
import type { SidebarLayoutApi } from '../composables/useSidebarLayout';
type SidebarLayout = ComponentConfig<typeof theme, AppConfig, 'sidebarLayout'>;
export interface SidebarLayoutProps {
/**
* The element or component this component should render as.
* @defaultValue 'div'
*/
as?: any;
/**
* The content is placed on a light background.
* @defaultValue 'true'
*/
useLightContent?: boolean;
/**
* Set inner mode. Use in slider, modal and etc
* @defaultValue 'false'
*/
isInner?: boolean;
/**
* Off scrollbar control of the content area in inner mode.
* @defaultValue 'false'
*/
offContentScrollbar?: boolean;
class?: any;
b24ui?: Pick<SidebarLayout['slots'], 'root' | 'sidebar' | 'sidebarSlideoverContainer' | 'sidebarSlideover' | 'sidebarSlideoverBtnClose' | 'contentWrapper' | 'header' | 'headerMenuIcon' | 'headerWrapper' | 'container' | 'containerWrapper' | 'pageTopWrapper' | 'pageActionsWrapper' | 'containerWrapperInner' | 'pageBottomWrapper' | 'loadingWrapper' | 'loadingIcon'>;
}
export interface SidebarLayoutSlots {
/**
* Left menu.
* @param props
* @param props.handleClick - Handler for navigation click events
* @param props.isLoading - loading state
*/
'sidebar'(props: {
handleClick: () => void;
isLoading: boolean;
}): any;
/**
* Top menu.
*/
'navbar'(props?: {
handleClick: () => void;
isLoading: boolean;
}): any;
/**
* Content above the page. Used for title, filter, etc.
*/
'content-top': (props?: {
isLoading: boolean;
}) => any;
/**
* Content above the page. Use for show actions.
*/
'content-actions': (props?: {
isLoading: boolean;
}) => any;
/**
* The page content.
*/
'default'(props?: {
isLoading: boolean;
}): any;
/**
* Content below the page.
*/
'content-bottom': (props?: {
isLoading: boolean;
}) => any;
/**
* Loading state. You need to use `useSidebarLayout` to control it.
*/
'loading': (props?: {
isLoading: boolean;
}) => any;
}
export interface SidebarLayoutInstance {
api: SidebarLayoutApi;
isLoading: Readonly<Ref<boolean>>;
setLoading: (value: boolean) => void;
setRootLoading: (value: boolean) => void;
}
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<SidebarLayoutProps, SidebarLayoutInstance, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SidebarLayoutProps> & Readonly<{}>, {
as: any;
offContentScrollbar: boolean;
useLightContent: boolean;
isInner: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SidebarLayoutSlots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
new (): {
$slots: S;
};
};