@jupyterlab/ui-components
Version:
JupyterLab - UI components written in React
99 lines (98 loc) • 3.41 kB
TypeScript
import { Widget } from '@lumino/widgets';
/**
* A Lumino widget which wraps an IFrame.
*/
export declare class IFrame extends Widget {
/**
* Create a new IFrame widget.
*/
constructor(options?: IFrame.IOptions);
/**
* Referrer policy for the iframe.
*
* #### Notes
* By default, `no-referrer` is chosen.
*
* For more information, see
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy
*/
get referrerPolicy(): IFrame.ReferrerPolicy;
set referrerPolicy(value: IFrame.ReferrerPolicy);
/**
* Loading for the iFrame
*
* ### Notes
* By default, 'eager' loading is chosen
*
* For more information, see
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/loading
*/
get loading(): IFrame.Loading;
set loading(value: IFrame.Loading);
/**
* Exceptions to the sandboxing.
*
* #### Notes
* By default, all sandboxing security policies are enabled.
* This setting allows the user to selectively disable these
* policies. This should be done with care, as it can
* introduce security risks, and possibly allow malicious
* sites to execute code in a JupyterLab session.
*
* For more information, see
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
*/
get sandbox(): IFrame.SandboxExceptions[];
set sandbox(values: IFrame.SandboxExceptions[]);
/**
* The url of the IFrame.
*/
get url(): string;
set url(url: string);
private _sandbox;
private _referrerPolicy;
private _loading;
}
/**
* A namespace for IFrame widget statics.
*/
export declare namespace IFrame {
/**
* Referrer policy for the iframe.
*
* User documentation for the policies can be found here:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy
*/
type ReferrerPolicy = 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
/**
* Exceptions to the iframe sandboxing policies.
* These are specified here:
* https://www.w3.org/TR/2011/WD-html5-20110525/the-iframe-element.html#attr-iframe-sandbox
*
* More user-friendly documentation can be found here:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox
*/
type SandboxExceptions = 'allow-downloads' | 'allow-forms' | 'allow-modals' | 'allow-orientation-lock' | 'allow-pointer-lock' | 'allow-popups' | 'popups-to-escape-sandbox' | 'allow-presentation' | 'allow-same-origin' | 'allow-scripts' | 'allow-storage-access-by-user-activation' | 'allow-top-navigation' | 'allow-top-navigation-by-user-activation';
/**
* The loading attribute for the iframe.
* It can be either 'eager' or 'lazy'.
*/
type Loading = 'eager' | 'lazy';
/**
* Options for creating a new IFrame widget.
*/
interface IOptions {
/**
* Exceptions for the iframe sandbox.
*/
sandbox?: SandboxExceptions[];
/**
* Referrer policy for the iframe.
*/
referrerPolicy?: ReferrerPolicy;
/**
* The loading attribute for the iframe.
*/
loading?: Loading;
}
}