# All files / src/viewer viewer.props.ts

100% Statements 6/6
100% Branches 2/2
100% Functions 1/1
100% Lines 6/6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52

    1x
    1x
    1x
    1x
    1x
    1x

     import { ManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
    import { ViewerClassNameContract } from "./viewer.class-name-contract";

    export enum ResizeHandleLocation {
        left,
        right,
        bottom,
        bottomLeft,
        bottomRight,
    }

    export interface ViewerManagedClasses extends ManagedClasses<ViewerClassNameContract> {}
    export interface ViewerUnhandledProps extends React.AllHTMLAttributes<HTMLElement> {}
    export interface ViewerHandledProps extends ViewerManagedClasses {
        /**
         * The src route for the viewer iframe
         */
        iframeSrc: string;

        /**
         * The props to be assigned to the viewer content
         */
        viewerContentProps?: any;

        /**
         * The responsive, resizable functionality for the viewer
         */
        responsive?: boolean;

        /**
         * The height of the viewer
         */
        height?: number;

        /**
         * The width of the viewer
         */
        width?: number;

        /**
         * A callback for when height should update
         */
        onUpdateHeight?: (height: number) => void;

        /**
         * A callback for when width should update
         */
        onUpdateWidth?: (width: number) => void;
    }

    export type ViewerProps = ViewerUnhandledProps & ViewerHandledProps;