mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-21 13:27:15 +08:00
committed by
Masahiro Wakame
parent
e515b24a20
commit
f9acb8d76d
186
seamless/index.d.ts
vendored
Normal file
186
seamless/index.d.ts
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
// Type definitions for seamless.js 0.0.6
|
||||
// Project: https://github.com/travist/seamless.js
|
||||
// Definitions by: Dan Manastireanu <https://github.com/danmana>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="jquery" />
|
||||
|
||||
declare namespace Seamless {
|
||||
export interface SeamlessJQuery extends JQuery {
|
||||
seamless_options: Options,
|
||||
connection: Connection,
|
||||
send(data: any): void,
|
||||
receive(callback: Callback): void,
|
||||
receive(type: string, callback: Callback): void,
|
||||
seamless_ready(data: any, event: any): void,
|
||||
seamless_update(data: any, event: any): any,
|
||||
seamless_error(data: any, event: any): void
|
||||
}
|
||||
|
||||
export interface Options {
|
||||
/**
|
||||
* The text to show when the child page is loading.
|
||||
* @default 'Loading ...'
|
||||
*/
|
||||
loading?: string,
|
||||
/**
|
||||
* The url of the spinner GIF that is shown when the child page is loading.
|
||||
* @default 'http://www.travistidwell.com/seamless.js/src/loader.gif'
|
||||
*/
|
||||
spinner?: string,
|
||||
/**
|
||||
* Show or not the loading indicator.
|
||||
* @default true
|
||||
*/
|
||||
showLoadingIndicator?: boolean,
|
||||
/**
|
||||
* Called when a child iframe has finished connecting.
|
||||
* @default null
|
||||
*/
|
||||
onConnect?: ((data: any) => void) | null,
|
||||
/**
|
||||
* The styles to inject into the child page.
|
||||
* @default []
|
||||
*/
|
||||
styles?: string[],
|
||||
/**
|
||||
* If the fallback functionality is enabled.
|
||||
* @default false
|
||||
*/
|
||||
fallback?: boolean,
|
||||
/**
|
||||
* Additional query params to attach to the fallback window when it is opened.
|
||||
* @default ''
|
||||
*/
|
||||
fallbackParams?: string,
|
||||
/**
|
||||
* A message to show below the child iframe to offer assistance if they are having problems.
|
||||
* @default ''
|
||||
*/
|
||||
fallbackText?: string,
|
||||
/**
|
||||
* The string to show within the 'Click here' link to open the fallback window.
|
||||
* @default 'Click Here'
|
||||
*/
|
||||
fallbackLinkText?: string,
|
||||
/**
|
||||
* Text to add after the fallbackLinkText link.
|
||||
* @default 'to open in a separate window.'
|
||||
*/
|
||||
fallbackLinkAfter?: string,
|
||||
/**
|
||||
* An array of string styles to add to the fallback text when something bad happens.
|
||||
* @default [ 'padding: 15px', 'border: 1px solid transparent', 'border-radius: 4px', 'color: #3a87ad', 'background-color: #d9edf7', 'border-color: #bce8f1' ]
|
||||
*/
|
||||
fallbackStyles?: string[],
|
||||
/**
|
||||
* An array of string styles to add to the fallback link.
|
||||
* @default [ 'display: inline-block', 'color: #333', 'border: 1px solid #ccc', 'background-color: #fff', 'padding: 5px 10px', 'text-decoration: none', 'font-size: 12px', 'line-height: 1.5', 'border-radius: 6px', 'font-weight: 400', 'cursor: pointer', '-webkit-user-select: none', '-moz-user-select: none', '-ms-user-select: none', 'user-select: none' ]
|
||||
*/
|
||||
fallbackLinkStyles?: string[],
|
||||
/**
|
||||
* An array of string styles to add to the fallback link on hover.
|
||||
* @default [ 'background-color:#ebebeb', 'border-color:#adadad' ]
|
||||
*/
|
||||
fallbackLinkHoverStyles?: string[],
|
||||
/**
|
||||
* The width of the window that is opened up for the fallback.
|
||||
* @default 960
|
||||
*/
|
||||
fallbackWindowWidth?: number,
|
||||
/**
|
||||
* The height of the window that is opened up for the fallback.
|
||||
* @default 800
|
||||
*/
|
||||
fallbackWindowHeight?: number
|
||||
}
|
||||
|
||||
export interface ConnectOptions {
|
||||
/**
|
||||
* The url of the parent page to connect to.
|
||||
* @default ''
|
||||
*/
|
||||
url?: string,
|
||||
/**
|
||||
* The container for the main content on the page which determines the height of the page.
|
||||
* @default 'body'
|
||||
*/
|
||||
container?: string,
|
||||
/**
|
||||
* The milliseconds that an update is created from the child to the parent.
|
||||
* @default 200
|
||||
*/
|
||||
update?: number,
|
||||
/**
|
||||
* If this page should allow injected styles.
|
||||
* @default false
|
||||
*/
|
||||
allowStyleInjection?: boolean,
|
||||
/**
|
||||
* Allow appended styles to be injected.
|
||||
* @default false
|
||||
*/
|
||||
allowAppendedStyleInjection?: boolean,
|
||||
/**
|
||||
* If the child page requires cookies (See Child iFrame Cookie Problem section)
|
||||
* @default false
|
||||
*/
|
||||
requireCookies?: boolean,
|
||||
/**
|
||||
* The message to show if the cookie test fails.
|
||||
* @default 'Your browser requires this page to be opened in a separate window.'
|
||||
*/
|
||||
cookieFallbackMsg?: string,
|
||||
/**
|
||||
* The text to place inside the link to have them open a new window if the cookie test fails.
|
||||
* @default 'Click Here'
|
||||
*/
|
||||
cookieFallbackLinkMsg?: string,
|
||||
/**
|
||||
* The text to place after the link when the cookie test fails.
|
||||
* @default ' to open in a separate window.'
|
||||
*/
|
||||
cookieFallbackAfterMsg?: string,
|
||||
/**
|
||||
* Callback that is called when an update is triggered to the parent.
|
||||
* @default null
|
||||
*/
|
||||
onUpdate?(data: any): void,
|
||||
/**
|
||||
* Called when the parent connects to this iframe.
|
||||
* @default null
|
||||
*/
|
||||
onConnect?(data: any): void
|
||||
}
|
||||
|
||||
export interface Callback {
|
||||
(data: any, event: any): any | boolean | void;
|
||||
}
|
||||
|
||||
export interface Connection {
|
||||
id: number,
|
||||
target: string,
|
||||
url: string,
|
||||
active: boolean,
|
||||
queue: any[]
|
||||
send(data: any): void,
|
||||
receive(callback: Callback): void,
|
||||
receive(type: string, callback: Callback): void,
|
||||
setActive(active: boolean): void
|
||||
|
||||
}
|
||||
|
||||
export interface Static {
|
||||
options: ConnectOptions,
|
||||
connect(options: ConnectOptions): Connection
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
interface JQuery {
|
||||
seamless(options?: Seamless.Options): Seamless.SeamlessJQuery
|
||||
}
|
||||
|
||||
interface JQueryStatic {
|
||||
seamless: Seamless.Static
|
||||
}
|
||||
135
seamless/seamless-tests.ts
Normal file
135
seamless/seamless-tests.ts
Normal file
@@ -0,0 +1,135 @@
|
||||
/// <reference types="jquery" />
|
||||
|
||||
/* Create Parent Seamless IFrame */
|
||||
$('#myiframe').seamless();
|
||||
$('#myiframe').seamless({
|
||||
loading: 'I am loading!!!!'
|
||||
});
|
||||
// The default arguments.
|
||||
var defaults = {
|
||||
showLoadingIndicator: true,
|
||||
loading: 'Loading ...',
|
||||
spinner: 'http://www.travistidwell.com/seamless.js/src/loader.gif',
|
||||
onConnect: null,
|
||||
styles: [],
|
||||
fallback: true,
|
||||
fallbackParams: '',
|
||||
fallbackText: '',
|
||||
fallbackLinkText: 'Click here',
|
||||
fallbackLinkAfter: ' to open in a separate window.',
|
||||
fallbackStyles: [
|
||||
'padding: 15px',
|
||||
'border: 1px solid transparent',
|
||||
'border-radius: 4px',
|
||||
'color: #3a87ad',
|
||||
'background-color: #d9edf7',
|
||||
'border-color: #bce8f1'
|
||||
],
|
||||
fallbackLinkStyles: [
|
||||
'display: inline-block',
|
||||
'color: #333',
|
||||
'border: 1px solid #ccc',
|
||||
'background-color: #fff',
|
||||
'padding: 5px 10px',
|
||||
'text-decoration: none',
|
||||
'font-size: 12px',
|
||||
'line-height: 1.5',
|
||||
'border-radius: 6px',
|
||||
'font-weight: 400',
|
||||
'cursor: pointer',
|
||||
'-webkit-user-select: none',
|
||||
'-moz-user-select: none',
|
||||
'-ms-user-select: none',
|
||||
'user-select: none'
|
||||
],
|
||||
fallbackLinkHoverStyles: [
|
||||
'background-color:#ebebeb',
|
||||
'border-color:#adadad'
|
||||
],
|
||||
fallbackWindowWidth: 960,
|
||||
fallbackWindowHeight: 800
|
||||
};
|
||||
$('#myiframe').seamless(defaults);
|
||||
|
||||
/* Connect Child Page to Parent Page */
|
||||
(function(){
|
||||
$.seamless.connect({
|
||||
url: 'index.html'
|
||||
});
|
||||
$.seamless.connect({
|
||||
url: 'index.html',
|
||||
container: 'div.content'
|
||||
});
|
||||
}());
|
||||
|
||||
/* Communicate to the Child page from the Parent page. */
|
||||
(function() {
|
||||
var child = $('#myiframe').seamless();
|
||||
child.show();
|
||||
// Send a message
|
||||
child.send({
|
||||
myparam: 'This is anything you want it to be...'
|
||||
});
|
||||
|
||||
// Receive a message
|
||||
child.receive(function (data, event) {
|
||||
|
||||
// Print out the data that was received.
|
||||
console.log(data);
|
||||
});
|
||||
}());
|
||||
|
||||
/* Communicate to the Parent page from the Child page. */
|
||||
(function(){
|
||||
var parent = $.seamless.connect({
|
||||
url: 'index.html'
|
||||
});
|
||||
|
||||
// Send a message
|
||||
parent.send({
|
||||
myparam: 'This is anything you want it to be...'
|
||||
});
|
||||
|
||||
// Receive a message
|
||||
parent.receive(function(data, event) {
|
||||
|
||||
// Print out the data that was received.
|
||||
console.log(data);
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
/* Send Responses */
|
||||
(function(){
|
||||
var child = $('#myiframe').seamless();
|
||||
|
||||
child.send({
|
||||
data: {
|
||||
mydata: 'This is a message'
|
||||
},
|
||||
success: function(data: any) {
|
||||
|
||||
// 'data' is what was returned from the child 'receive' function.
|
||||
console.log(data);
|
||||
}
|
||||
});
|
||||
|
||||
/* Receive a message */
|
||||
var parent = $.seamless.connect({
|
||||
url: 'index.html'
|
||||
});
|
||||
|
||||
parent.receive(function(data, event) {
|
||||
|
||||
// Print out the data that was received.
|
||||
console.log(data);
|
||||
|
||||
// Now return something for the response.
|
||||
return {
|
||||
myresponse: "I'm listening..."
|
||||
};
|
||||
});
|
||||
}());
|
||||
|
||||
/* Child iFrame Cookie Problem */
|
||||
$.seamless.options.requireCookies = true;
|
||||
19
seamless/tsconfig.json
Normal file
19
seamless/tsconfig.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"seamless-tests.ts"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user