diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 04b77912d..386e57d2e 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -235,6 +235,7 @@ All definitions files include a header with the author and editors, so at some p * [Knockout.Rx](https://github.com/Igorbek/knockout.rx) (by [Igor Oleinikov](https://github.com/Igorbek)) * [Knockout.Validation](https://github.com/ericmbarnard/Knockout-Validation) (by [Dan Ludwig](https://github.com/danludwig)) * [Knockout.Viewmodel](http://coderenaissance.github.com/knockout.viewmodel/) (by [Oisin Grehan](https://github.com/oising)) +* [Knockstrap](http://faulknercs.github.io/Knockstrap/) (by [Adam Pluciński](https://github.com/adaskothebeast)) * [ko.editables](http://romanych.github.com/ko.editables/) (by [Oisin Grehan](https://github.com/oising)) * [KoLite](https://github.com/CodeSeven/kolite) (by [Boris Yankov](https://github.com/borisyankov)) * [Lazy.js](http://danieltao.com/lazy.js/) (by [Bart van der Schoor](https://github.com/Bartvds)) diff --git a/knockstrap/knockstrap-tests.ts b/knockstrap/knockstrap-tests.ts new file mode 100644 index 000000000..233ce6f4d --- /dev/null +++ b/knockstrap/knockstrap-tests.ts @@ -0,0 +1,43 @@ +/// +/// +/// +/// + + +// test unique id +var adaskoUnitqueId: string = ko.utils.uniqueId('adaskothebeast'); + +class Sample { + public property1: KnockoutObservable; + + constructor() { + this.property1 = ko.observable('test'); + } +} + +var sample = new Sample(); + +// test unwrap properties +var unwrappedProperties = ko.utils.unwrapProperties(sample); + +var kts: KnockoutTemplateSources; +var stringTemplate = kts.stringTemplate('string-template'); +var stname = stringTemplate.templateName; + +ko.stringTemplateEngine.instance.allowTemplateRewriting = true; + +var templateSource = ko.stringTemplateEngine.instance.makeTemplateSource('template'); +ko.stringTemplateEngine.instance.addTemplate('test', {}); +ko.stringTemplateEngine.instance.removeTemplate('test'); +ko.stringTemplateEngine.instance.isTemplateExist('test'); + + +var alertbh = ko.bindingHandlers.alert; +var carouselbh = ko.bindingHandlers.carousel; +var checkboxbh = ko.bindingHandlers.checkbox; +var modalbh = ko.bindingHandlers.modal; +var popoverbh = ko.bindingHandlers.popover; +var progressbh = ko.bindingHandlers.progress; +var radiobh = ko.bindingHandlers.radio; +var togglebh = ko.bindingHandlers.toggle; +var tooltipbh = ko.bindingHandlers.tooltip; \ No newline at end of file diff --git a/knockstrap/knockstrap.d.ts b/knockstrap/knockstrap.d.ts new file mode 100644 index 000000000..a1f9791da --- /dev/null +++ b/knockstrap/knockstrap.d.ts @@ -0,0 +1,163 @@ +// Type definitions for Knockstrap +// Project: http://faulknercs.github.io/Knockstrap/ +// Definitions by: Adam Pluciński +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// +/// + +interface KnockoutUtils { + uniqueId(prefix: string): string; + unwrapProperties(wrappedProperies: any): any; +} + +interface KnockoutTemplateSources { + stringTemplate: { + prototype: KnockstrapStringTemplate; + new (template: string): KnockstrapStringTemplate; + }; +} + +interface KnockstrapStringTemplate extends KnockoutTemplateSourcesDomElement { + templateName: string; +} + +interface KnockoutStatic { + stringTemplateEngine: { + prototype: KnockstrapStringTemplateEngine; + new (): KnockstrapStringTemplateEngine; + instance: KnockstrapStringTemplateEngine; + } +} + +interface KnockstrapStringTemplateEngine extends KnockoutNativeTemplateEngine { + allowTemplateRewriting: boolean; + makeTemplateSource(template: string): KnockstrapStringTemplate; + addTemplate(name: string, template: any): void; + removeTemplate(name: string): void; + isTemplateExist(name: string): boolean; + getTemplate(name: string): any; +} + +interface KnockoutBindingHandlers { + alert: AlertKnockoutBindingHandler; + carousel: CarouselKnockoutBindingHandler; + checkbox: KnockoutBindingHandler; + modal: ModalKnockoutBindingHandler; + popover: PopoverKnockoutBindingHandler; + progress: ProgressKnockoutBindingHandler; + radio: KnockoutBindingHandler; + toggle: KnockoutBindingHandler; + tooltip: KnockoutBindingHandler; +} + +interface KnockoutControlsDescendantBindings { + controlsDescendantBindings: boolean; +} + +interface AlertKnockoutBindingHandler extends KnockoutBindingHandler { + init? (element: any, + valueAccessor: () => any, + allBindingsAccessor: KnockoutAllBindingsAccessor, + viewModel: any, + bindingContext: KnockoutBindingContext): KnockoutControlsDescendantBindings; +} + +interface CarouselKnockoutBindingHandler extends KnockoutBindingHandler { + init? (element: any, + valueAccessor: () => any, + allBindingsAccessor: KnockoutAllBindingsAccessor, + viewModel: any, + bindingContext: KnockoutBindingContext): KnockoutControlsDescendantBindings; + defaults: KnockstrapCarouselDefaults; +} + +interface KnockstrapCarouselDefaults { + css: string; + controlsTemplate: KnockstrapCarouselDefaultsControlsTemplate; + indicatorsTemplate: KnockstrapCarouselDefaultsIndicatorsTemplate; + itemTemplate: KnockstrapCarouselDefaultsItemTemplate; +} + +interface KnockstrapDefaultsTemplateBase { + name: string; + templateEngine: KnockstrapStringTemplateEngine; +} + +interface KnockstrapCarouselDefaultsControlsTemplate extends KnockstrapDefaultsTemplateBase { + dataConverter(value: any): KnockstrapCarouselDefaultsIdDataConverted; + +} + +interface KnockstrapCarouselDefaultsIdDataConverted { + id: KnockoutComputed; +} + +interface KnockstrapCarouselDefaultsIndicatorsTemplate extends KnockstrapDefaultsTemplateBase { + dataConverter(value: any): KnockstrapCarouselDefaultsIdItemsDataConverted; +} + +interface KnockstrapCarouselDefaultsIdItemsDataConverted extends KnockstrapCarouselDefaultsIdDataConverted { + items: any; +} + +interface KnockstrapCarouselDefaultsItemTemplate extends KnockstrapDefaultsTemplateBase { + converter(value: any): any; +} + +interface ModalKnockoutBindingHandler extends KnockoutBindingHandler { + init? (element: any, + valueAccessor: () => any, + allBindingsAccessor: KnockoutAllBindingsAccessor, + viewModel: any, + bindingContext: KnockoutBindingContext): KnockoutControlsDescendantBindings; + defaults: KnockstrapModalDefaults; +} + +interface KnockstrapModalDefaults { + css: string; + attributes: KnockstrapModalDefaultsAttributes; + headerTemplate: KnockstrapDefaultsTemplateBase; + bodyTemplate: KnockstrapDefaultsTemplateBase; + footerTemplate: KnockstrapModalDefaultsFooterTemplate; +} + +interface KnockstrapModalDefaultsAttributes { + role: string; +} + +interface KnockstrapModalDefaultsFooterTemplate extends KnockstrapDefaultsTemplateBase { + data: KnockstrapModalDefaultsFooterData; +} + +interface KnockstrapModalDefaultsFooterData { + closeLabel: string; + primaryLabel: string; +} + +interface PopoverKnockoutBindingHandler extends KnockoutBindingHandler { + init? (element: any, + valueAccessor: () => any, + allBindingsAccessor: KnockoutAllBindingsAccessor, + viewModel: any, + bindingContext: KnockoutBindingContext): KnockoutControlsDescendantBindings; +} + +interface ProgressKnockoutBindingHandler extends KnockoutBindingHandler { + init? (element: any, + valueAccessor: () => any, + allBindingsAccessor: KnockoutAllBindingsAccessor, + viewModel: any, + bindingContext: KnockoutBindingContext): KnockoutControlsDescendantBindings; + defaults: KnockstrapProgressDefaults; +} + +interface KnockstrapProgressDefaults { + css: string; + text: string; + textHidden: boolean; + striped: boolean; + type: string; + animated: boolean; +} \ No newline at end of file