UNPKG

@wix/design-system

Version:

@wix/design-system

168 lines 7.44 kB
import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { ResizeSensor } from 'css-element-queries'; import PageHeader, { HeaderProps } from './components/Header'; import { SectionProps } from './components/Section'; import { ContentProps, PageProps, TailProps, FixedContentProps, FixedFooterProps } from './Page.types'; type DefaultProps = Required<Pick<PageProps, 'minWidth' | 'maxWidth' | 'scrollProps'>>; type Props = PageProps & DefaultProps; type State = { headerContainerHeight: number; headerWrapperHeight: number; tailHeight: number; footerHeight: number; pageHeight?: number; windowHeight?: number; minimized: boolean; }; type HeaderElement = React.ReactElement<HeaderProps>; type SectionElement = React.ReactElement<SectionProps>; type ContentElement = React.ReactElement<ContentProps>; type FixedContentElement = React.ReactElement<FixedContentProps>; type TailElement = React.ReactElement<TailProps>; type FixedFooterElement = React.ReactElement<FixedFooterProps>; type ChildrenObject = { PageHeader?: HeaderElement; Section?: SectionElement; PageContent?: ContentElement; PageFixedContent?: FixedContentElement; PageTail?: TailElement; FixedFooter?: FixedFooterElement; }; declare class Page extends PureComponent<Props, State> { static displayName: string; static defaultProps: DefaultProps; static propTypes: { dataHook: PropTypes.Requireable<string>; backgroundImageUrl: PropTypes.Requireable<string>; maxWidth: PropTypes.Requireable<number>; minWidth: PropTypes.Requireable<number>; horizontalScroll: PropTypes.Requireable<boolean>; height: PropTypes.Requireable<string>; sidePadding: PropTypes.Requireable<number>; className: PropTypes.Requireable<string>; gradientClassName: PropTypes.Requireable<string>; scrollableContentRef: PropTypes.Requireable<(...args: any[]) => any>; scrollProps: PropTypes.Requireable<PropTypes.InferProps<{ onScrollAreaChanged: React.Validator<((scrollChangedData: import("../common/ScrollableContainer").ScrollAreaData) => void) | null | undefined> | undefined; onScrollChanged: React.Validator<((target: HTMLElement) => void) | null | undefined> | undefined; }>>; children: PropTypes.Requireable<PropTypes.ReactNodeLike>; zIndex: PropTypes.Requireable<number>; }; static Header: typeof PageHeader; static Section: { ({ dataHook, showDivider, title, subtitle, actionsBar, className, }: SectionProps): React.JSX.Element; displayName: string; propTypes: { dataHook: PropTypes.Requireable<string>; className: PropTypes.Requireable<string>; title: PropTypes.Requireable<PropTypes.ReactNodeLike>; subtitle: PropTypes.Requireable<PropTypes.ReactNodeLike>; actionsBar: PropTypes.Requireable<PropTypes.ReactNodeLike>; showDivider: PropTypes.Requireable<boolean>; }; }; static Content: { ({ children, stickyStyle }: ContentProps): any; displayName: string; propTypes: { children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>; className: PropTypes.Requireable<string>; fullScreen: PropTypes.Requireable<boolean>; }; }; static FixedContent: { (props: { children: React.ReactNode; }): React.ReactNode; displayName: string; propTypes: { children: PropTypes.Validator<PropTypes.ReactElementLike>; }; }; static Tail: { ({ children, minimized }: TailProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>; displayName: string; propTypes: { children: PropTypes.Validator<PropTypes.ReactElementLike>; minimized: PropTypes.Requireable<boolean>; }; }; static FixedFooter: { ({ children }: FixedContentProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>; displayName: string; propTypes: { children: PropTypes.Validator<PropTypes.ReactElementLike>; }; }; static Sticky: { ({ children, className, style, ...props }: import("./Page.types").StickyProps): React.JSX.Element; displayName: string; propTypes: { children: PropTypes.Validator<PropTypes.ReactElementLike>; style: PropTypes.Requireable<object>; }; }; static Footer: { ({ divider, className, children, dataHook, ...props }: import("./components/Footer").FooterProps): React.JSX.Element; displayName: string; propTypes: { children: PropTypes.Requireable<PropTypes.ReactNodeLike>; dataHook: PropTypes.Requireable<string>; className: PropTypes.Requireable<string>; divider: PropTypes.Requireable<boolean>; showDivider: PropTypes.Requireable<boolean>; }; Start: typeof import("./components/Footer/components/Start/Start").default; Center: typeof import("./components/Footer/components/Center/Center").default; End: typeof import("./components/Footer/components/End/End").default; }; scrollableContainerRef: React.RefObject<HTMLDivElement>; headerWrapperRef: HTMLDivElement | null; headerContainerRef: HTMLDivElement | null; pageHeaderTailRef: HTMLDivElement | null; pageRef: HTMLDivElement | null; footerWrapperRef: HTMLDivElement | null; pageScrollContextValue: { scrollableContentRef: React.RefObject<HTMLDivElement>; }; contentResizeListener: ResizeSensor | undefined; timerId: NodeJS.Timeout | undefined; constructor(props: Props); componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; _getNamedChildren(): ChildrenObject; _calculateComponentsHeights(): void; _getScrollContainer(): HTMLDivElement | null; _getMinimizedHeaderWrapperHeight(): number; _getMinimizationDiff(): number | null; _handleScroll(e: HTMLElement): void; _handleWidthResize(): void; _handleWindowResize(): void; _safeGetChildren(element?: ContentElement): string | number | true | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>; _getPageDimensionsStyle(): React.CSSProperties | undefined; _hasBackgroundImage(): boolean; _hasGradientClassName(): boolean; _renderContentHorizontalLayout(props: React.HTMLAttributes<HTMLDivElement> & { horizontalScroll?: boolean; }): React.JSX.Element; _renderHeader(): React.JSX.Element | undefined; _renderHeaderContainer(): React.JSX.Element; _renderScrollableContainer(): React.JSX.Element; _hasTail(): boolean; _hasHeader(): boolean; _renderScrollableBackground(): React.JSX.Element | null; _renderTail(): React.JSX.Element | undefined; _renderContentContainer(): React.JSX.Element; _renderFixedFooter: () => React.JSX.Element | null; render(): React.JSX.Element; /** * Scrolls the page to a particular set of coordinates * @param {ScrollToOptions} scrollTo { left: number, top: number, behavior: 'smooth' | 'auto' } */ scrollTo(scrollTo?: ScrollToOptions): void; } export default Page; //# sourceMappingURL=Page.d.ts.map