typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
1,156 lines (1,050 loc) • 425 kB
TypeScript
// Type definitions for sptypescript
// Project: http://sptypescript.codeplex.com
// Definitions by: Stanislav Vyshchepan <http://gandjustas.blogspot.ru>, Andrey Markeev <http://markeev.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module Sys {
export class EventArgs {
static Empty: Sys.EventArgs;
}
export class StringBuilder {
/** Appends a string to the string builder */
append(s: string): void;
/** Appends a line to the string builder */
appendLine(s: string): void;
/** Clears the contents of the string builder */
clear(): void;
/** Indicates wherever the string builder is empty */
isEmpty(): boolean;
/** Gets the contents of the string builder as a string */
toString(): string;
}
export class Component {
get_id(): string;
static create(type: Component, properties?: any, events?: any, references?: any, element?: Node);
initialize(): void;
updated(): void;
}
export interface IContainer {
addComponent(component: Component): void;
findComponent(id: string): Component;
getComponents(): Component[];
removeComponent(component: Component);
}
export class Application extends Component implements IContainer {
addComponent(component: Component): void;
findComponent(id: string): Component;
getComponents(): Component[];
removeComponent(component: Component);
static add_load(handler: (sender: Application, eventArgs: ApplicationLoadEventArgs) => void);
static remove_load(handler: (sender: Application, eventArgs: ApplicationLoadEventArgs) => void);
}
export class ApplicationLoadEventArgs {
constructor(components: Component[], isPartialLoad: boolean);
public components: Component[];
public isPartialLoad: boolean;
}
module UI {
export class Control extends Component { }
export class DomEvent {
static addHandler(element: HTMLElement, eventName: string, handler: (e: Event) => void);
static removeHandler(element: HTMLElement, eventName: string, handler: (e: Event) => void);
}
export class DomElement {
static getBounds(element: HTMLElement): { x: number; y: number; width: number; height: number; };
}
}
module Net {
export class WebRequest {
get_url(): string;
set_url(value: string): void;
get_httpVerb(): string;
set_httpVerb(value: string): void;
get_timeout(): number;
set_timeout(value: number): void;
get_body(): string;
set_body(value: string): void;
get_headers(): { [key: string]: string; };
get_userContext(): any;
set_userContext(value: any): void;
get_executor(): WebRequestExecutor;
set_executor(value: WebRequestExecutor): void;
getResolvedUrl(); string;
invoke(): void;
completed(args: Sys.EventArgs): void;
add_completed(handler: (executor: WebRequestExecutor, args: Sys.EventArgs) => void): void;
remove_completed(handler: (executor: WebRequestExecutor, args: Sys.EventArgs) => void): void;
}
export class WebRequestExecutor {
get_aborted(): boolean;
get_responseAvailable(): boolean;
get_responseData(): string;
get_object(): any;
get_started(): boolean;
get_statusCode(): number;
get_statusText(): string;
get_timedOut(): boolean;
get_xml(): Document;
get_webRequest(): WebRequest;
abort(): void;
executeRequest(): void;
getAllResponseHeaders(): string;
getResponseHeader(key: string): string;
}
export class NetworkRequestEventArgs extends EventArgs {
get_webRequest(): WebRequest;
}
export class WebRequestManager {
static get_defaultExecutorType(): string;
static set_defaultExecutorType(value: string): void;
static get_defaultTimeout(): number;
static set_defaultTimeout(value: number): void;
static executeRequest(request: WebRequest): void;
static add_completedRequest(handler: (executor: WebRequestExecutor, args: Sys.EventArgs) => void): void;
static remove_completedRequest(handler: (executor: WebRequestExecutor, args: Sys.EventArgs) => void): void;
static add_invokingRequest(handler: (executor: WebRequestExecutor, args: NetworkRequestEventArgs) => void): void;
static remove_invokingRequest(handler: (executor: WebRequestExecutor, args: NetworkRequestEventArgs) => void): void;
}
export class WebServiceProxy {
static invoke(
servicePath: string,
methodName: string,
useGet?: boolean,
params?: any,
onSuccess?: (result: string, eventArgs: EventArgs) => void,
onFailure?: (error: WebServiceError) => void,
userContext?: any,
timeout?: number,
enableJsonp?: boolean,
jsonpCallbackParameter?: string): WebRequest;
}
export class WebServiceError {
get_errorObject(): any;
get_exceptionType(): any;
get_message(): string;
get_stackTrace(): string;
get_statusCode(): number;
get_timedOut(): boolean;
}
}
interface IDisposable {
dispose(): void;
}
}
declare var $get: { (id: string): HTMLElement; };
declare var $addHandler: { (element: HTMLElement, eventName: string, handler: (e: Event) => void): void; };
declare var $removeHandler: { (element: HTMLElement, eventName: string, handler: (e: Event) => void): void; };
declare module SP {
export class SOD {
static execute(fileName: string, functionName: string, ...args: any[]): void;
static executeFunc(fileName: string, typeName: string, fn: () => void): void;
static executeOrDelayUntilEventNotified(func: Function, eventName: string): boolean;
static executeOrDelayUntilScriptLoaded(func: () => void, depScriptFileName: string): boolean;
static notifyScriptLoadedAndExecuteWaitingJobs(scriptFileName: string): void;
static notifyEventAndExecuteWaitingJobs(eventName: string, args?: any[]): void;
static registerSod(fileName: string, url: string): void;
static registerSodDep(fileName: string, dependentFileName: string): void;
static loadMultiple(keys: string[], fn: () => void, bSync?: boolean): void;
static delayUntilEventNotified(func: Function, eventName: string): void;
static get_prefetch(): boolean;
static set_prefetch(value: boolean): void;
static get_ribbonImagePrefetchEnabled(): boolean;
static set_ribbonImagePrefetchEnabled(value: boolean): void;
}
}
/** Register function to rerun on partial update in MDS-enabled site.*/
declare function RegisterModuleInit(scriptFileName: string, initFunc: () => void): void;
/** Provides access to url and query string parts.*/
declare class JSRequest {
/** Query string parts.*/
static QueryString: { [parameter: string]: string; };
/** initializes class.*/
static EnsureSetup(): void;
/** Current file name (after last '/' in url).*/
static FileName: string;
/** Current file path (before last '/' in url).*/
static PathName: string;
}
declare class _spPageContextInfo {
static alertsEnabled: boolean; //true
static allowSilverlightPrompt: string; //"True"
static clientServerTimeDelta: number; //-182
static crossDomainPhotosEnabled: boolean; //true
static currentCultureName: string; //"ru-RU"
static currentLanguage: number; //1049
static currentUICultureName: string; //"ru-RU"
static layoutsUrl: string; //"_layouts/15"
static pageListId: string; //"{06ee6d96-f27f-4160-b6bb-c18f187b18a7}"
static pagePersonalizationScope: string; //1
static serverRequestPath: string; //"/SPTypeScript/Lists/ConditionalFormattingTasksList/AllItems.aspx"
static siteAbsoluteUrl: string; // "https://gandjustas-7b20d3715e8ed4.sharepoint.com"
static siteClientTag: string; //"0$$15.0.4454.1021"
static siteServerRelativeUrl: string; // "/"
static systemUserKey: string; //"i:0h.f|membership|10033fff84e7cb2b@live.com"
static tenantAppVersion: string; //"0"
static userId: number; //12
static webAbsoluteUrl: string; //"https://gandjustas-7b20d3715e8ed4.sharepoint.com/SPTypeScript"
static webLanguage: number; //1049
static webLogoUrl: string; //"/_layouts/15/images/siteIcon.png?rev=23"
static webPermMasks: { High: number; Low: number; };
static webServerRelativeUrl: string; //"/SPTypeScript"
static webTemplate: string; //"17"
static webTitle: string; //"SPTypeScript"
static webUIVersion: number; //15
}
declare function STSHtmlEncode(value: string): string;
declare function AddEvtHandler(element: HTMLElement, event: string, func: EventListener): void;
/** Gets query string parameter */
declare function GetUrlKeyValue(key: string): string;
declare module SP {
export enum RequestExecutorErrors {
requestAbortedOrTimedout,
unexpectedResponse,
httpError,
noAppWeb,
domainDoesNotMatch,
noTrustedOrigins,
iFrameLoadError
}
export class RequestExecutor {
constructor(url: string, options?: any);
get_formDigestHandlingEnabled(): boolean;
set_formDigestHandlingEnabled(value: boolean): void;
get_iFrameSourceUrl(): string;
set_iFrameSourceUrl(value: string): void;
executeAsync(requestInfo: RequestInfo): void;
attemptLogin(returnUrl: string, success: (response: ResponseInfo) => void, error?: (response: ResponseInfo, error: RequestExecutorErrors, statusText: string) => void): void;
}
export interface RequestInfo {
url: string;
method?: string;
headers?: { [key: string]: string; };
/** Can be string or bytearray depending on binaryStringRequestBody field */
body?: any;
binaryStringRequestBody?: boolean;
/** Currently need fix to get ginary response. Details: http://techmikael.blogspot.ru/2013/07/how-to-copy-files-between-sites-using.html */
binaryStringResponseBody?: boolean;
timeout?: number;
success?: (response: ResponseInfo) => void;
error?: (response: ResponseInfo, error: RequestExecutorErrors, statusText: string) => void;
state?: any;
}
export interface ResponseInfo {
statusCode?: number;
statusText?: string;
responseAvailable: boolean;
allResponseHeaders?: string;
headers?: { [key: string]: string; };
contentType?: string;
/** Can be string or bytearray depending on request.binaryStringResponseBody field */
body?: any;
state?: any;
}
export class ProxyWebRequestExecutor extends Sys.Net.WebRequestExecutor {
constructor(url: string, options?: any);
}
export class ProxyWebRequestExecutorFactory implements SP.IWebRequestExecutorFactory {
constructor(url: string, options?: any);
createWebRequestExecutor(): ProxyWebRequestExecutor;
}
}
interface MQuery {
(selector: string, context?: any): MQueryResultSetElements;
(element: HTMLElement): MQueryResultSetElements;
(object: MQueryResultSetElements): MQueryResultSetElements;
<T>(object: MQueryResultSet<T>): MQueryResultSet<T>;
<T>(object: T): MQueryResultSet<T>;
(elementArray: HTMLElement[]): MQueryResultSetElements;
<T>(array: T[]): MQueryResultSet<T>;
<T>(): MQueryResultSet<T>;
throttle(fn: Function, interval: number, shouldOverrideThrottle: boolean): Function;
extend(target: any, ...objs: any[]): Object;
extend(deep: boolean, target: any, ...objs: any[]): Object;
makeArray<T>(obj: any): any[];
isDefined(obj: any): boolean;
isNotNull(obj: any): boolean;
isUndefined(obj: any): boolean;
isNull(obj: any): boolean;
isUndefinedOrNull(obj: any): boolean;
isDefinedAndNotNull(obj: any): boolean;
isString(obj: any): boolean;
isBoolean(obj: any): boolean;
isFunction(obj: any): boolean;
isArray(obj: any): boolean;
isNode(obj: any): boolean;
isElement(obj: any): boolean;
isMQueryResultSet(obj: any): boolean;
isNumber(obj: any): boolean;
isObject(obj: any): boolean;
isEmptyObject(obj: any): boolean;
ready(callback: () => void): void;
contains(container: HTMLElement, contained: HTMLElement): boolean;
proxy(fn: (...args: any[]) => any, context: any, ...args: any[]): Function;
proxy(context: any, name: string, ...args: any[]): any;
every<T>(obj: T[], fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): boolean;
every<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): boolean;
every<T>(obj: T[], fn: (elementOfArray: T) => boolean, context?: any): boolean;
every<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: any) => boolean, context?: any): boolean;
some<T>(obj: T[], fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): boolean;
some<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): boolean;
some<T>(obj: T[], fn: (elementOfArray: T) => boolean, context?: any): boolean;
some<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T) => boolean, context?: any): boolean;
filter<T>(obj: T[], fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): T[];
filter<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): MQueryResultSet<T>;
filter<T>(obj: T[], fn: (elementOfArray: T) => boolean, context?: any): T[];
filter<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T) => boolean, context?: any): MQueryResultSet<T>;
forEach<T>(obj: T[], fn: (elementOfArray: T, indexInArray: number) => void, context?: any): void;
forEach<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T, indexInArray: number) => void, context?: any): void;
forEach<T>(obj: T[], fn: (elementOfArray: T) => void, context?: any): void;
forEach<T>(obj: MQueryResultSet<T>, fn: (elementOfArray: T) => void, context?: any): void;
map<T, U>(array: T[], callback: (elementOfArray: T, indexInArray: number) => U): U[];
map<T, U>(array: MQueryResultSet<T>, callback: (elementOfArray: T, indexInArray: number) => U): MQueryResultSet<U>;
map<T, U>(array: T[], callback: (elementOfArray: T) => U): U[];
map<T, U>(array: MQueryResultSet<T>, callback: (elementOfArray: T) => U): MQueryResultSet<U>;
indexOf<T>(obj: T[], object: T, startIndex?: number): number;
lastIndexOf<T>(obj: T[], object: T, startIndex?: number): number;
data(element: HTMLElement, key: string, value: any): any;
data(element: HTMLElement, key: string): any;
data(element: HTMLElement): any;
removeData(element: HTMLElement, name?: string): MQueryResultSetElements;
hasData(element: HTMLElement): boolean;
}
interface MQueryResultSetElements extends MQueryResultSet<HTMLElement> {
append(node: HTMLElement): MQueryResultSetElements;
append(mQuerySet: MQueryResultSetElements): MQueryResultSetElements;
append(html: string): MQueryResultSetElements;
bind(eventType: string, handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
unbind(eventType: string, handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
trigger(eventType: string): MQueryResultSetElements;
one(eventType: string, handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
detach(): MQueryResultSetElements;
find(selector: string): MQueryResultSetElements;
closest(selector: string, context?: any): MQueryResultSetElements;
offset(): { left: number; top: number; };
offset(coordinates: { left: any; top: any; }): MQueryResultSetElements;
filter(selector: string): MQueryResultSetElements;
filter(fn: (elementOfArray: HTMLElement, indexInArray: number) => boolean, context?: any): MQueryResultSetElements;
filter(fn: (elementOfArray: HTMLElement) => boolean, context?: any): MQueryResultSetElements;
not(selector: string): MQueryResultSetElements;
parent(selector?: string): MQueryResultSetElements;
offsetParent(selector?: string): MQueryResultSetElements;
parents(selector?: string): MQueryResultSetElements;
parentsUntil(selector?: string, filter?: string): MQueryResultSetElements;
parentsUntil(element?: HTMLElement, filter?: string): MQueryResultSetElements;
position(): { top: number; left: number; };
attr(attributeName: string): string;
attr(attributeName: string, value: any): MQueryResultSetElements;
attr(map: { [key: string]: any; }): MQueryResultSetElements;
attr(attributeName: string, func: (index: number, attr: any) => any): MQueryResultSetElements;
addClass(classNames: string): MQueryResultSetElements;
removeClass(classNames: string): MQueryResultSetElements;
css(propertyName: string): string;
css(propertyNames: string[]): string;
css(properties: any): MQueryResultSetElements;
css(propertyName: string, value: any): MQueryResultSetElements;
css(propertyName: any, value: any): MQueryResultSetElements;
remove(selector?: string): MQueryResultSetElements;
children(selector?: string): MQueryResultSetElements;
empty(): MQueryResultSetElements;
first(): MQueryResultSetElements;
data(key: string, value: any): MQueryResultSetElements;
data(obj: { [key: string]: any; }): MQueryResultSetElements;
data(key: string): any;
removeData(key: string): MQueryResultSetElements;
map(callback: (elementOfArray: HTMLElement, indexInArray: number) => any): MQueryResultSetElements;
map(callback: (elementOfArray: HTMLElement) => any): MQueryResultSetElements;
blur(): MQueryResultSetElements;
blur(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
change(): MQueryResultSetElements;
change(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
click(): MQueryResultSetElements;
click(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
dblclick(): MQueryResultSetElements;
dblclick(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
error(): MQueryResultSetElements;
error(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
focus(): MQueryResultSetElements;
focus(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
focusin(): MQueryResultSetElements;
focusin(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
focusout(): MQueryResultSetElements;
focusout(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
keydown(): MQueryResultSetElements;
keydown(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
keypress(): MQueryResultSetElements;
keypress(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
keyup(): MQueryResultSetElements;
keyup(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
load(): MQueryResultSetElements;
load(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mousedown(): MQueryResultSetElements;
mousedown(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mouseenter(): MQueryResultSetElements;
mouseenter(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mouseleave(): MQueryResultSetElements;
mouseleave(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mousemove(): MQueryResultSetElements;
mousemove(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mouseout(): MQueryResultSetElements;
mouseout(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mouseover(): MQueryResultSetElements;
mouseover(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
mouseup(): MQueryResultSetElements;
mouseup(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
resize(): MQueryResultSetElements;
resize(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
scroll(): MQueryResultSetElements;
scroll(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
select(): MQueryResultSetElements;
select(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
submit(): MQueryResultSetElements;
submit(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
unload(): MQueryResultSetElements;
unload(handler: (eventObject: MQueryEvent) => any): MQueryResultSetElements;
}
interface MQueryResultSet<T> {
[index: number]: T;
contains(contained: T): boolean;
filter(fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): MQueryResultSet<T>;
filter(fn: (elementOfArray: T) => boolean, context?: any): MQueryResultSet<T>;
every(fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): boolean;
every(fn: (elementOfArray: T) => boolean, context?: any): boolean;
some(fn: (elementOfArray: T, indexInArray: number) => boolean, context?: any): boolean;
some(fn: (elementOfArray: T) => boolean, context?: any): boolean;
map(callback: (elementOfArray: T, indexInArray: number) => any): MQueryResultSet<T>;
map(callback: (elementOfArray: T) => any): MQueryResultSet<T>;
forEach(fn: (elementOfArray: T, indexInArray: number) => void, context?: any): void;
forEach(fn: (elementOfArray: T) => void, context?: any): void;
indexOf(object: any, startIndex?: number): number;
lastIndexOf(object: any, startIndex?: number): number;
}
interface MQueryEvent extends Event {
altKey: boolean;
attrChange: number;
attrName: string;
bubbles: boolean;
button: number;
cancelable: boolean;
ctrlKey: boolean;
defaultPrevented: boolean;
detail: number;
eventPhase: number;
newValue: string;
prevValue: string;
relatedNode: HTMLElement;
screenX: number;
screenY: number;
shiftKey: boolean;
view: any;
}
declare var m$: MQuery;
declare class CalloutActionOptions {
/** Text for the action link */
text: string;
tooltip: string;
disabledTooltip: string;
/** Callback that is executed when the action link is clicked.
@param event Standard javascript event object
@param action The action object */
onClickCallback: (event: Event, action: CalloutAction) => any;
/** Callback which returns if the action link is enabled */
isEnabledCallback: (action: CalloutAction) => boolean;
/** Callback which returns if the action link is visible */
isVisibleCallback: (action: CalloutAction) => boolean;
/** Submenu entries for the action. If defined, the action link click will popup the specified menu. */
menuEntries: CalloutActionMenuEntry[];
}
/** Defines a callout action menu entry */
declare class CalloutActionMenuEntry {
/** Creates a callout action menu entry
@param text Text to be displayed as the menu item text
@param onClickCallback Callback that will be fired when the item is clicked
@param wzISrc Url of the icon
@param wzIAlt Alternative text for the icon image
@param wzISeq Sequence for the menu item
@param wzDesc Description of the menu item */
constructor(
text: string,
onClickCallback: (actionMenuEntry: CalloutActionMenuEntry, actionMenuEntryIndex: number) => void,
wzISrc: string,
wzIAlt: string,
wzISeq: number,
wzDesc: string);
}
declare class CalloutActionMenu {
constructor(actionsId);
addAction(action: CalloutAction);
getActions(): CalloutAction[];
render(): void;
refreshActions(): void;
calculateActionWidth(): void;
}
declare class CalloutAction {
constructor(options: CalloutActionOptions);
getText(): string;
getToolTop(): string;
getDisabledToolTip(): string;
getOnClickCallback(): (event, action: CalloutAction) => any;
getIsDisabledCallback(): (action: CalloutAction) => boolean;
getIsVisibleCallback(): (action: CalloutAction) => boolean;
getIsMenu(): boolean;
getMenuEntries(): CalloutActionMenuEntry[];
render(): void;
isEnabled(): boolean;
isVisible(): boolean;
set(options: CalloutActionOptions): void;
}
declare class Callout {
/** Sets options for the callout. Not all options can be changed for the callout after its creation. */
set(options: CalloutOptions);
/** Adds event handler to the callout.
@param eventName one of the following: "opened", "opening", "closing", "closed" */
addEventCallback(eventName: string, callback: (callout: Callout) => void);
/** Returns the launch point element of the callout. */
getLaunchPoint(): HTMLElement;
/** Returns the ID of the callout. */
getID(): string;
/** Returns the title of the callout. */
getTitle(): string;
/** Returns the contents of the callout. */
getContent(): string;
/** Returns the content element of the callout. */
getContentElement(): HTMLElement;
/** Returns the bounding element defined for the callout during its creation. */
getBoundingBox(): HTMLElement;
/** Returns the content width defined for the callout during its creation. */
getContentWidth(): number;
/** Returns the object that represents open behaivor defined for the callout during its creation. */
getOpenOptions(): CalloutOpenOptions;
/** Returns the beak orientation defined for the callout during its creation. */
getBeakOrientation(): string;
/** Returns the position algorithm function defined for the callout during its creation. */
getPositionAlgorithm(): any;
/** Specifies wherever callout is in "Opened" state */
isOpen(): boolean;
/** Specifies wherever callout is in "Opening" state */
isOpening(): boolean;
/** Specifies wherever callout is in "Opened" or "Opening" state */
isOpenOrOpening(): boolean;
/** Specifies wherever callout is in "Closing" state */
isClosing(): boolean;
/** Specifies wherever callout is in "Closed" state */
isClosed(): boolean;
/** Returns the callout actions menu */
getActionMenu(): CalloutActionMenu;
/** Adds a link to the actions panel in the bottom part of the callout window */
addAction(action: CalloutAction);
/** Re-renders the actions menu. Call after the actions menu is changed. */
refreshActions(): void;
/** Display the callout. Animation can be used only for IE9+ */
open(useAnimation: boolean);
/** Hide the callout. Animation can be used only for IE9+ */
close(useAnimation: boolean);
/** Display if hidden, hide if shown. */
toggle(): void;
/** Do not call this directly. Instead, use CalloutManager.remove */
destroy(): void;
}
declare class CalloutOpenOptions {
/** HTML event name, e.g. "click" */
event: string;
/** Callout will be closed on blur */
closeCalloutOnBlur: boolean;
/** Close button will be shown within the callout window */
showCloseButton: boolean;
}
declare class CalloutOptions {
/** Some unique id for the callout. */
ID: string;
/** Element on that the callout is shown. */
launchPoint: HTMLElement;
/** One of the following: "topBottom" (default) or "leftRight". */
beakOrientation: string;
/** String (HTML allowed) that represents contents of the callout window. */
content: string;
/** Title for the callout */
title: string;
/** HTML element that represents contents of the callout window. */
contentElement: HTMLElement;
/** If defined, callout will be inscribed into the bounding element. */
boundingBox: HTMLElement;
/** Content element's width in pixels. By default = 350. */
contentWidth: number;
/** Defines opening behavior */
openOptions: CalloutOpenOptions;
/** Fires after the callout is rendered but before it is positioned and shown */
onOpeningCallback: (callout: Callout) => void;
/** Fires right after the callout is shown */
onOpenedCallback: (callout: Callout) => void;
/** Fires right before the callout is closed */
onClosingCallback: (callout: Callout) => void;
/** Fires right after the callout is closed */
onClosedCallback: (callout: Callout) => void;
/** Sets the position of the callout during its opening phase. For an example of a position algorithm function, please explore defaultPositionAlgorithm function from the callout.debug.js file */
positionAlgorithm: (callout: Callout) => void;
}
declare class CalloutManager {
/** Creates a new callout */
static createNew(options: CalloutOptions): Callout;
/** Checks if callout with specified ID already exists. If it doesn't, creates it, otherwise returns the existing one. */
static createNewIfNecessary(options: CalloutOptions): Callout;
/** Detaches callout from the launch point and destroys it. */
static remove(callout: Callout);
/** Searches for a callout associated with the specified launch point. Throws error if not found. */
static getFromLaunchPoint(launchPoint: HTMLElement): Callout;
/** Searches for a callout associated with the specified launch point. Returns null if not found. */
static getFromLaunchPointIfExists(launchPoint: HTMLElement): Callout;
/** Gets the first launch point within the specified ancestor element, and returns true if the associated with it callout is opened or opening.
If the launch point is not found or the callout is hidden, returns false. */
static containsOneCalloutOpen(ancestor: HTMLElement): boolean;
/** Finds the closest launch point based on the specified descendant element, and returns callout associated with the launch point. */
static getFromCalloutDescendant(descendant: HTMLElement): Callout;
/** Perform some action for each callout on the page. */
static forEach(callback: (callout: Callout) => void);
/** Closes all callouts on the page */
static closeAll(): boolean;
/** Returns true if at least one of the defined on page callouts is opened. */
static isAtLeastOneCalloutOpen(): boolean;
/** Returns true if at least one of the defined on page callouts is opened or opening. */
static isAtLeastOneCalloutOn(): boolean;
}
declare module SPClientTemplates {
export enum FileSystemObjectType {
Invalid,
File,
Folder,
Web
}
export enum ChoiceFormatType {
Dropdown,
Radio
}
export enum ClientControlMode {
Invalid,
DisplayForm,
EditForm,
NewForm,
View
}
export enum RichTextMode {
Compatible,
FullHtml,
HtmlAsXml,
ThemeHtml
}
export enum UrlFormatType {
Hyperlink,
Image
}
export enum DateTimeDisplayFormat {
DateOnly,
DateTime,
TimeOnly
}
export enum DateTimeCalendarType {
None,
Gregorian,
Japan,
Taiwan,
Korea,
Hijri,
Thai,
Hebrew,
GregorianMEFrench,
GregorianArabic,
GregorianXLITEnglish,
GregorianXLITFrench,
KoreaJapanLunar,
ChineseLunar,
SakaEra,
UmAlQura
}
export enum UserSelectionMode {
PeopleOnly,
PeopleAndGroups
}
/** Represents schema for a Choice field in list form or in list view in grid mode */
export interface FieldSchema_InForm_Choice extends FieldSchema_InForm {
/** List of choices for this field. */
Choices: string[];
/** Display format for the choice field */
FormatType: ChoiceFormatType;
}
/** Represents schema for a Lookup field in list form or in list view in grid mode */
export interface FieldSchema_InForm_Lookup extends FieldSchema_InForm {
/** Specifies if the field allows multiple values */
AllowMultipleValues: boolean;
/** Returns base url for a list display form, e.g. "http://portal/web/_layouts/15/listform.aspx?PageType=4"
You must add "ListId" (Guid of the list) and "ID" (integer Id of the item) parameters in order to use this Url */
BaseDisplayFormUrl: string;
/** Indicates if the field is a dependent lookup */
DependentLookup: boolean;
/** Indicates wherever the lookup list is throttled (contains more items than value of the "List Throttle Limit" setting). */
Throttled: boolean;
/** Returns string representation of a number that represents the current value for the "List Throttle Limit" web application setting.
Only appears if Throttled property is true, i.e. the target lookup list is throttled. */
MaxQueryResult: string;
/** List of choices for this field. */
Choices: { LookupId: number; LookupValue: string; }[];
/** Number of choices. Appears only for Lookup field. */
ChoiceCount: number;
LookupListId: string;
}
/** Represents schema for a DateTime field in list form or in list view in grid mode */
export interface FieldSchema_InForm_DateTime extends FieldSchema_InForm {
/** Type of calendar to use */
CalendarType: DateTimeCalendarType;
/** Display format for DateTime field. */
DisplayFormat: DateTimeDisplayFormat;
/** Indicates wherever current user regional settings specify to display week numbers in day or week views of a calendar.
Only appears for DateTime fields. */
ShowWeekNumber: boolean;
TimeSeparator: string;
TimeZoneDifference: string;
FirstDayOfWeek: number;
FirstWeekOfYear: number;
HijriAdjustment: number;
WorkWeek: string;
LocaleId: string;
LanguageId: string;
MinJDay: number;
MaxJDay: number;
HoursMode24: boolean;
HoursOptions: string[];
}
/** Represents schema for a DateTime field in list form or in list view in grid mode */
export interface FieldSchema_InForm_Geolocation extends FieldSchema_InForm {
BingMapsKey: string;
IsBingMapBlockedInCurrentRegion: boolean;
}
/** Represents schema for a Choice field in list form or in list view in grid mode */
export interface FieldSchema_InForm_MultiChoice extends FieldSchema_InForm {
/** List of choices for this field. */
MultiChoices: string[];
/** Indicates wherever fill-in choice is allowed */
FillInChoice: boolean;
}
/** Represents schema for a Choice field in list form or in list view in grid mode */
export interface FieldSchema_InForm_MultiLineText extends FieldSchema_InForm {
/** Specifies whether rich text formatting can be used in the field */
RichText: boolean;
/** Changes are appended to the existing text. */
AppendOnly: boolean;
/** Rich text mode for the field */
RichTextMode: RichTextMode;
/** Number of lines configured to display */
NumberOfLines: number;
/** A boolean value that specifies whether hyperlinks can be used in this fields. */
AllowHyperlink: boolean;
/** WebPartAdderId for the ScriptEditorWebPart */
ScriptEditorAdderId: string;
}
/** Represents schema for a Number field in list form or in list view in grid mode */
export interface FieldSchema_InForm_Number extends FieldSchema_InForm {
ShowAsPercentage: boolean;
}
/** Represents schema for a Number field in list form or in list view in grid mode */
export interface FieldSchema_InForm_Text extends FieldSchema_InForm {
MaxLength: number;
}
/** Represents schema for a Number field in list form or in list view in grid mode */
export interface FieldSchema_InForm_Url extends FieldSchema_InForm {
DisplayFormat: UrlFormatType;
}
/** Represents schema for a Number field in list form or in list view in grid mode */
export interface FieldSchema_InForm_User extends FieldSchema_InForm {
Presence: boolean;
WithPicture: boolean;
DefaultRender: boolean;
WithPictureDetail: boolean;
/** Server relative Url for ~site/_layouts/listform.aspx */
ListFormUrl: string;
/** Server relative Url for ~site/_layouts/userdisp.aspx */
UserDisplayUrl: string;
EntitySeparator: string;
PictureOnly: boolean;
PictureSize: string;
}
/** Represents field schema in Grid mode and on list forms.
Consider casting objects of this type to more specific field types, e.g. FieldSchemaInForm_Lookup */
export interface FieldSchema_InForm {
/** Specifies if the field can be edited while list view is in the Grid mode */
AllowGridEditing: boolean;
/** Description for this field. */
Description: string;
/** Direction of the reading order for the field. */
Direction: string;
/** String representation of the field type, e.g. "Lookup". Same as SPField.TypeAsString */
FieldType: string;
/** Indicates whether the field is hidden */
Hidden: boolean;
/** Guid of the field */
Id: string;
/** Specifies Input Method Editor (IME) mode bias to use for the field.
The IME enables conversion of keystrokes between languages when one writing system has more characters than can be encoded for the given keyboard. */
IMEMode: any;
/** Internal name of the field */
Name: string;
/** Specifies if the field is read only */
ReadOnlyField: boolean;
/** Specifies wherever field requires values */
Required: boolean;
RestrictedMode: boolean;
/** Title of the field */
Title: string;
/** For OOTB fields, returns the type of field. For "UserMulti" returns "User", for "LookupMulti" returns "Lookup".
For custom field types, returns base type of the field. */
Type: string;
/** If SPFarm.Local.UseMinWidthForHtmlPicker is true, UseMinWidth will be set to true. Undefined in other cases. */
UseMinWidth: boolean;
}
export interface ListSchema_InForm {
Field: FieldSchema_InForm[];
}
export interface ListData_InForm {
Items: Item[];
}
export interface RenderContext_FieldInForm extends RenderContext_Form {
CurrentGroupIdx: number;
CurrentGroup: Group;
CurrentItems: Item[];
CurrentFieldSchema: FieldSchema_InForm;
CurrentFieldValue: any;
}
export interface RenderContext_Form extends RenderContext {
CurrentItem: Item;
FieldControlModes: { [fieldInternalName: string]: ClientControlMode; };
FormContext: ClientFormContext;
FormUniqueId: string;
ListData: ListData_InForm;
ListSchema: ListSchema_InForm;
}
export interface FieldSchema_InView_LookupField extends FieldSchema_InView {
/** Either "TRUE" or "FALSE" */
AllowMultipleValues: string;
/** Target lookup list display form URL, including PageType and List attributes. */
DispFormUrl: string;
/** Either "TRUE" or "FALSE" */
HasPrefix: string;
}
export interface FieldSchema_InView_UserField extends FieldSchema_InView {
/** Either "TRUE" or "FALSE" */
AllowMultipleValues: string;
/** Either "TRUE" or "FALSE" */
ImnHeader: string;
/** Either "TRUE" or "FALSE" */
HasPrefix: string;
/** Either "1" or "0" */
HasUserLink: string;
/** Either "1" or "0" */
DefaultRender: string;
}
/** Represents field schema in a list view. */
export interface FieldSchema_InView {
/** Either "TRUE" or "FALSE" */
AllowGridEditing: string;
/** Either "TRUE" or "FALSE" */
CalloutMenu: string;
ClassInfo: string; // e.g. "Menu"
css: string;
DisplayName: string;
/** Either "TRUE" or "FALSE" */
Explicit: string;
fieldRenderer: any;
FieldTitle: string;
/** Represents SPField.TypeAsString, e.g. "Computed", "UserMulti", etc. */
FieldType: string;
/** Indicates whether the field can be filtered. Either "TRUE" or "FALSE" */
Filterable: string;
/** Set to "TRUE" for fields that comply to the following Xpath query:
ViewFields/FieldRef[@Explicit='TRUE'] | Query/GroupBy/FieldRef[not(@Name=ViewFields/FieldRef/@Name)] */
GroupField: string;
/** Either "TRUE" or "FALSE" */
GridActiveAndReadOnly: string;
/** Guid of the field */
ID: string;
/** Specifies if the field contains list item menu.
Corresponds to ViewFields/FieldRef/@ListItemMenu attribute. Either "TRUE" or "FALSE" and might be missing. */
listItemMenu: string;
Name: string;
RealFieldName: string;
/** Either "TRUE" or "FALSE" */
ReadOnly: string;
ResultType: string;
/** Indicates whether the field can be sorted. Either "TRUE" or "FALSE" */
Sortable: string;
Type: string;
}
export interface ListSchema_InView {
/** Key-value object that represents all aggregations defined for the view.
Key specifies the field internal name, and value specifies the type of the aggregation. */
Aggregate: { [name: string]: string; };
/** Either "TRUE" or false (for grouping) */
Collapse: string;
/** Specifies whether to open items in a client application ("1") or in browser ("0"). */
DefaultItemOpen: string;
Direction: string;
/** Either "0" or "1" */
EffectivePresenceEnabled: string;
/** If in grid mode (context.inGridMode == true), cast to FieldSchema_InForm[], otherwise cast to FieldSchema_InView[] */
Field: any[];
FieldSortParam: string;
Filter: any;
/** Either "0" or "1" */
ForceCheckout: string;
/** Internal name for the first group by field, if any */
group1: string;
/** Internal name for the second group by field, if any */
group2: string;
/** "1" if the view contains "Title" field, otherwise not defined. */
HasTitle: string;
HttpVDir: string;
/** Either "0" or "1" */
InplaceSearchEnabled: string;
/** Either "0" or "1" */
IsDocLib: string;
/** e.g. "1033" */
LCID: string;
/** Either "0" or "1" */
ListRight_AddListItems: string;
NoListItem: string;
NoListItemHowTo: string;
/** Server-relative path to the current page */
PagePath: string;
/** Internal name of the field inside which the hierarchy buttons are displayed */
ParentHierarchyDisplayField: string;
PresenceAlt: string;
/** Represents SPList.RootFolder.Properties. Exists only if SPList.FetchPropertyBagForListView property is set to true. */
PropertyBag: { [key: string]: string; };
/** Either "True" or "False" */
RenderSaveAsNewViewButton: string;
/** Either "True" or "False" */
RenderViewSelectorPivotMenu: string;
/** Either "True" or "False" */
RenderViewSelectorPivotMenuAsync: string;
/** Query string parameters that specify GUID of the current view and the current root folder */
RootFolderParam: string;
SelectedID: string; // number
ShowWebPart: string;
/** Either "1" or undefined. */
StrikeThroughOnCompletedEnabled: string;
/** Either "0" or "1" */
TabularView: string;
Toolbar: string;
UIVersion: string; // number
Userid: string; // number
UserVanilla: any;
/** Server relative path to "/_layouts/userdisp.aspx" in the current web */
UserDispUrl: string;
/** Either "1" or "" */
UseParentHierarchy: string;
/** Guid of the view */
View: string;
/** JSON string */
ViewSelectorPivotMenuOptions: string;
/** Query string parameters that specify current root folder (RootFolder) and folder content type id (FolderCTID) */
ViewSelector_ViewParameters: string;
}
export interface ListData_InView {
FilterLink: string;
FilterFields: string;
FirstRow: number;
/** Either "0" or "1" */
ForceNoHierarchy: string;
HierarchyHasIndention: string;
/** Link to the previous page (not defined if not available) */
PrevHref: string;
/** Link to the next page (not defined if not available) */
NextHref: string;
SortField: string;
SortDir: string;
LastRow: number;
Row: Item[];
}
export interface RenderContext_GroupInView extends RenderContext_InView {
CurrentGroupIdx: number;
CurrentGroup: Group;
CurrentItems: Item[];
}
export interface RenderContext_InView extends RenderContext {
AllowCreateFolder: boolean;
AllowGridMode: boolean;
BasePermissions: { [PermissionName: string]: boolean; }; // SP.BasePermissions?
bInitialRender: boolean;
CanShareLinkForNewDocument: boolean;
CascadeDeleteWarningMessage: string;
clvp: HTMLElement; // not in View
ContentTypesEnabled: boolean;
ctxId: number;
ctxType: any; // not in View
CurrentUserId: number;
CurrentUserIsSiteAdmin: boolean;
dictSel: any;
/** Absolute path for the list display form */
displayFormUrl: string;
/** Absolute path for the list edit form */
editFormUrl: string;
EnableMinorVersions: boolean;
ExternalDataList: boolean;
enteringGridMode: boolean;
existingServerFilterHash: any;
HasRelatedCascadeLists: number;
heroId: string; // e.g. "idHomePageNewItem"
HttpPath: string;
HttpRoot: string;
imagesPath: string;
inGridFullRender: any; // not in View
inGridMode: boolean;
IsAppWeb: boolean;
IsClientRendering: boolean;
isForceCheckout: boolean;
isModerated: boolean;
isPortalTemplate: any;
isWebEditorPreview: number;
isVersions: number;
isXslView: boolean;
LastRowIndexSelected: any; // not in View
LastSelectableRowIdx: any;
LastSelectedItemId: any; // not in View
leavingGridMode: boolean;
listBaseType: number;
ListData: ListData_InView;
ListDataJSONItemsKey: string; // ="Row"
/** Guid of the list */
listName: string;
ListSchema: ListSchema_InView;
listTemplate: string;
ListTitle: string;
listUrlDir: string;
loadingAsyncData: boolean;
ModerationStatus: number;
NavigateForFormsPages: boolean;
/** Absolute path for the list new form */
newFormUrl: string;
NewWOPIDocumentEnabled: any;
NewWOPIDocumentUrl: any;
noGroupCollapse: boolean;
OfficialFileName: string;
OfficialFileNames: string;
overrideDeleteConfirmation: string; // not in View
overrideFilterQstring: string; // not in View
PortalUrl: string;
queryString: any;
recursiveView: boolean;
/** either 1 or 0 */
RecycleBinEnabled: number;
RegionalSettingsTimeZoneBias: string;
rootFolder: string;
rootFolderForDisplay: any;
RowFocusTimerID: any;
SelectAllCbx: any;
SendToLocationName: string;
SendToLocationUrl: string;
serverUrl: any;
SiteTitle: string;
StateInitDone: boolean;
TableCbxFocusHandler: any;
TableMouseOverHandler: any;
TotalListItems: any;
verEnabled: number;
/** Guid of the view. */
view: string