Merge pull request #7048 from samvloeberghs/foundation-sites

Foundation sites
This commit is contained in:
Boris Yankov
2015-12-09 17:31:45 +02:00
3 changed files with 537 additions and 0 deletions
+99
View File
@@ -0,0 +1,99 @@
// Tests for type definitions for Foundation Sites v6.0.4
// Project: http://foundation.zurb.com/
// Definitions by: Sam Vloeberghs <https://github.com/samvloeberghs/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts" />
/// <reference path="foundation.d.ts" />
$(document).foundation();
$(document).foundation('method5');
$(document).foundation(['method', 'method2']);
Foundation.Abide($('.selector'));
Foundation.Abide($('.selector'), {});
Foundation.Accordion($('.selector'));
Foundation.Accordion($('.selector'), {});
Foundation.AccordionMenu($('.selector'));
Foundation.AccordionMenu($('.selector'), {});
Foundation.DrillDown($('.selector'));
Foundation.DrillDown($('.selector'), {});
Foundation.Dropdown($('.selector'));
Foundation.Dropdown($('.selector'), {});
Foundation.DropdownMenu($('.selector'));
Foundation.DropdownMenu($('.selector'), {});
Foundation.Equalizer($('.selector'));
Foundation.Equalizer($('.selector'), {});
Foundation.Interchange($('.selector'));
Foundation.Interchange($('.selector'), {});
Foundation.Magellan($('.selector'));
Foundation.Magellan($('.selector'), {});
Foundation.OffCanvas($('.selector'));
Foundation.OffCanvas($('.selector'), {});
Foundation.Orbit($('.selector'));
Foundation.Orbit($('.selector'), {});
Foundation.Reveal($('.selector'));
Foundation.Reveal($('.selector'), {});
Foundation.Slider($('.selector'));
Foundation.Slider($('.selector'), {});
Foundation.Sticky($('.selector'));
Foundation.Sticky($('.selector'), {});
Foundation.Tabs($('.selector'));
Foundation.Tabs($('.selector'), {});
Foundation.Toggler($('.selector'));
Foundation.Toggler($('.selector'), {});
Foundation.Tooltip($('.selector'));
Foundation.Tooltip($('.selector'), {});
/*
TODO: fix this:
error TS7017: Index signature of object type implicitly has an 'any' type.
function pluginList() {
'use strict';
return [
'Abide',
'Accordion',
'AccordionMenu',
'DrillDown',
'Dropdown',
'DropdownMenu',
'Equalizer',
'Interchange',
'Magellan',
'OffCanvas',
'Orbit',
'Reveal',
'Slider',
'Sticky',
'Tabs',
'Toggler',
'Tooltip'
];
}
pluginList().forEach((value:string) => {
Foundation[value]($('.selector'));
Foundation[value]($('.selector'), {});
});
*/
+428
View File
@@ -0,0 +1,428 @@
// Type definitions for Foundation Sites v6.0.4
// Project: http://foundation.zurb.com/
// Definitions by: Sam Vloeberghs <https://github.com/samvloeberghs/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts"/>
declare module FoundationSites {
// http://foundation.zurb.com/sites/docs/abide.html#javascript-reference
interface Abide {
requiredChedck(element:Object): boolean;
findLabel(element:Object): boolean;
addErrorClasses(element:Object): void;
removeErrorClasses(element:Object): void;
validateInput(element:Object, form:Object): void;
validateForm(element:Object): void;
validateText(element:Object): boolean;
validateRadio(group:string): boolean;
resetForm($form:Object): void;
}
interface IAbidePatterns {
alpha?: RegExp;
alpha_numeric?: RegExp;
integer?: RegExp;
number?: RegExp;
card?: RegExp;
cvv?: RegExp;
email ?: RegExp;
url?: RegExp;
domain?: RegExp;
datetime?: RegExp;
date?: RegExp;
time?: RegExp;
dateISO?: RegExp;
month_day_year?: RegExp;
day_month_year?: RegExp;
color?: RegExp;
}
interface IAbideOptions {
slideSpeed?: number;
multiOpen?: boolean;
patters?: IAbidePatterns;
}
// http://foundation.zurb.com/sites/docs/accordion.html#javascript-reference
interface Accordion {
toggle($target:JQuery): void;
down($target:JQuery, firstTime:boolean): void;
up($target:JQuery): void;
destroy(): void;
}
interface IAccordionOptions {
slideSpeed?: number
multiOpen?: boolean;
}
// http://foundation.zurb.com/sites/docs/accordion-menu.html#javascript-reference
interface AccordionMenu {
toggle($target:JQuery): void;
down($target:JQuery, firstTime:boolean): void;
up($target:JQuery): void;
destroy(): void;
}
interface IAccordionMenuOptions {
slideSpeed?: number;
multiOpen?: boolean;
}
// http://foundation.zurb.com/sites/docs/drilldown-menu.html#javascript-reference
interface Drilldown {
_hideAll($elem:JQuery): void;
_show($elem:JQuery): void;
_hide($elem:JQuery): void;
destroy(): void;
}
interface IDrilldownOptions {
backButton?: string;
wrapper?: string
closeOnClick?: boolean
}
// http://foundation.zurb.com/sites/docs/dropdown.html#javascript-reference
interface Dropdown {
getPositionClass(): string;
open(): void;
close(): void;
toggle(): void;
destroy(): void;
}
interface IDropdownOptions {
hoverDelay?: number;
hover?: boolean;
vOffset?: number;
hOffset?: number;
positionClass?: string;
trapFocus?: boolean;
autoFocus?: boolean;
}
// http://foundation.zurb.com/sites/docs/dropdown-menu.html#javascript-reference
interface DropdownMenu {
destroy(): void;
}
interface IDropdownMenuOptions {
disableHover?: boolean;
autoclose?: boolean;
hoverDelay?: number;
clickOpen?: boolean;
closingTime?: number;
alignments?: string;
verticalClasss?: string;
rightClasss?: string;
}
// http://foundation.zurb.com/sites/docs/equalizer.html#javascript-reference
interface Equalizer {
getHeights(element:Object): Array<any>;
applyHeight($eqParent:Object, heights:Array<any>): void;
destroy(): void;
}
interface IEqualizerOptions {
equalizeOnStack?: boolean;
throttleInterval?: number;
}
// http://foundation.zurb.com/sites/docs/interchange.html#javascript-reference
interface Interchange {
replace(path:string): void;
destroy(): void;
}
interface IInterchangeOptions {
rules?: Array<any>
}
// http://foundation.zurb.com/sites/docs/magellan.html#javascript-reference
interface Magellan {
calcPoints(): void;
reflow(): void;
destroy(): void;
}
interface IMagellanOptions {
animationDuration?: number;
animationEasing?: string;
threshold?: number;
activeClass?: string;
deepLinking?: boolean;
}
// http://foundation.zurb.com/sites/docs/offcanvas.html#javascript-reference
interface OffCanvas {
open(event:Object, trigger:JQuery): void;
toggle(event:Object, trigger:JQuery): void;
close(): void;
destroy(): void;
}
interface IOffCanvasOptions {
closeOnClick?: boolean;
transitionTime?: number;
position?: string;
forceTop?: boolean;
isRevealed?: boolean;
revealOn?: string;
autoFocus?: boolean;
revealClass?: string;
}
// http://foundation.zurb.com/sites/docs/orbit.html#javascript-reference
interface Orbit {
changeSlide(isLTR:boolean, chosenSlide?:Object, idx?:number): void;
geoSync(): void;
destroy(): void;
}
interface IOrbitOptions {
bullets?: boolean;
navButtons?: boolean;
animInFromRight?: string;
animOutToRight?: string;
animInFromLeft?: string;
animOutToLeft?: string;
autoPlay?: boolean;
timerDelay?: number;
infiniteWrap?: boolean;
swipe?: boolean;
pauseOnHover?: boolean;
accessible?: boolean;
containerClass?: string;
slideClass?: string;
boxOfBullets?: string;
nextClass?: string;
prevClass?: string;
}
// http://foundation.zurb.com/sites/docs/reveal.html#javascript-reference
interface Reveal {
open(): void;
toggle(): void;
close(): void;
destroy(): void;
}
interface IRevealOptions {
animationIn?: string;
animationOut?: string;
showDelay?: number;
hideDelay?: number;
closeOnClick?: boolean;
closeOnEsc?: boolean;
multipleOpened?: boolean;
vOffset?: number;
hOffset?: number;
fullScreen?: boolean;
btmOffsetPct?: number;
overlay?: boolean;
resetOnClose?: boolean;
}
// http://foundation.zurb.com/sites/docs/slider.html#javascript-reference
interface Slider {
destroy(): void;
}
interface ISliderOptions {
start?: number;
end?: number;
step?: number;
initialStart ?: number;
initialEnd?: number;
binding?: boolean;
clickSelect?: boolean;
vertical?: boolean;
draggable?: boolean;
disabled?: boolean;
doubleSided?: boolean;
decimal?: number;
moveTime?: number;
disabledClass?: string;
}
// http://foundation.zurb.com/sites/docs/sticky.html#javascript-reference
interface Sticky {
_pauseListeners(scrollListener:string): void;
_calc(checkSizes:boolean, scroll:number): void;
destroy(): void;
emCalc(number:any): void;
}
interface IStickyOptions {
container?: string;
stickTo?: string;
anchor?: string;
topAnchor?: string;
btmAnchor?: string;
marginTop?: number;
marginBottom?: number;
stickyOn?: string;
stickyClass?: string;
containerClass?: string;
checkEvery?: number;
}
// http://foundation.zurb.com/sites/docs/tabs.html#javascript-reference
interface Tabs {
_handleTabChange($target:JQuery): void;
selectTab($target:JQuery): void;
destroy(): void;
}
interface ITabsOptions {
animate?: boolean;
}
// http://foundation.zurb.com/sites/docs/toggler.html#javascript-reference
interface Toggler {
toggle(): void;
destroy(): void;
}
interface ITogglerOptions {
animate?: boolean;
}
// http://foundation.zurb.com/sites/docs/tooltip.html#javascript-reference
interface Tooltip {
show(): void;
hide(): void;
toggle(): void;
destroy(): void;
}
interface ITooltipOptions {
hoverDelay?: number;
fadeInDuration?: number;
fadeOutDuration?: number;
disableHover?: boolean;
templateClasses?: string;
tooltipClass?: string;
triggerClass?: string;
showOn?: string;
template?: string;
tipText?: string;
clickOpen?: boolean;
positionClass?: string;
vOffset?: number;
hOffset?:number;
}
// Utilities
// ---------
interface Box {
ImNotTouchingYou(element:Object, parent?:Object, lrOnly?:boolean, tbOnly?:boolean): boolean;
GetDimensions(element:Object): Object;
GetOffsets(element:Object, anchor:Object, position:string, vOffset:number, hOffset:number, isOverflow:boolean): Object;
}
interface KeyBoard {
parseKey(event:any): string;
findFocusable($element:Object): Object;
}
interface MediaQuery {
get(size:string): string;
atLeast(size:string): boolean;
queries:Array<any>;
current:any;
}
interface Motion {
animateIn(element:Object, animation:any, cb:Function): void;
animateOut(element:Object, animation:any, cb:Function): void;
}
interface Move {
// TODO
}
interface Nest {
// TODO
//Feather: function(menu, type)
// Burn: function(menu, type){
}
interface Timer {
start(): void;
restart(): void;
pause(): void;
}
interface Touch {
// TODO :extension on jQuery
}
interface Triggers {
// TODO :extension on jQuery
}
interface FoundationSitesStatic {
version : string;
rtl(): boolean;
plugin(plugin:Object, name:string): void;
registerPlugin(plugin:Object): void;
unregisterPlugin(plugin:Object): void;
GetYoDigits(length:number, namespace?:string): string;
reflow(elem:Object, plugins?:Array<string>|string): void;
getFnName(fn:string): string;
transitionend(): string;
util : {
throttle(func:(...args:any[]) => any, delay:number): (...args:any[]) => any;
};
onImagesLoaded(images:Object, cb:Function): void;
Abide(element:Object, options?:IAbideOptions): Abide;
Accordion(element:Object, options?:IAccordionOptions): Accordion;
AccordionMenu(element:Object, options?:IAccordionMenuOptions): AccordionMenu;
DrillDown(element:Object, options?:IDrilldownOptions): Drilldown;
Dropdown(element:Object, options?:IDropdownOptions): Dropdown;
DropdownMenu(element:Object, options?:IDropdownMenuOptions): DropdownMenu;
Equalizer(element:Object, options?:IEqualizerOptions): Equalizer;
Interchange(element:Object, options?:IInterchangeOptions): Interchange;
Magellan(element:Object, options?:IMagellanOptions): Magellan;
OffCanvas(element:Object, options?:IOffCanvasOptions): OffCanvas;
Orbit(element:Object, options?:IOrbitOptions): Orbit;
Reveal(element:Object, options?:IRevealOptions): Reveal;
Slider(element:Object, options?:ISliderOptions): Slider;
Sticky(element:Object, options?:IStickyOptions): Sticky;
Tabs(element:Object, options?:ITabsOptions): Tabs;
Toggler(element:Object, options?:ITogglerOptions): Toggler;
Tooltip(element:Object, options?:ITooltipOptions): Tooltip;
// utils
Box: Box;
KeyBoard: KeyBoard;
MediaQuery: MediaQuery;
Motion: Motion;
Move: Move;
Nest: Nest;
Timer: Timer;
Touch: Touch;
Triggers: Triggers;
}
}
interface JQuery {
foundation(method?:string|Array<any>) : JQuery;
}
declare var Foundation:FoundationSites.FoundationSitesStatic;
declare module "Foundation" {
export = Foundation;
}
+10
View File
@@ -304,6 +304,16 @@ declare module Foundation {
add_custom_rule(rule : string, media : string) : void;
image_loaded(images : JQuery, callback : (...args : any[]) => any) : void;
random_str(length? : number) : string;
is_small_only(): boolean;
is_small_up(): boolean;
is_medium_only(): boolean;
is_medium_up(): boolean;
is_large_only(): boolean;
is_large_up(): boolean;
is_xlarge_only(): boolean;
is_xlarge_up(): boolean;
is_xxlarge_only(): boolean;
is_xxlarge_up(): boolean;
};
}
}