diff --git a/chui/chui-tests.js b/chui/chui-tests.js
new file mode 100644
index 0000000000..92c2da5fa2
--- /dev/null
+++ b/chui/chui-tests.js
@@ -0,0 +1,91 @@
+///
+///
+$(function () {
+ /**
+ * Test static methods:
+ */
+ var concatenatedText = $.concat("This", "is", "text", "to", "contatenate.");
+ $.forEach([1, 2, 3], function (ctx) {
+ return ctx;
+ });
+ $.forEach([1, 2, 3], function (ctx, idx) {
+ return idx;
+ });
+ var isiPhone = $.isiPhone;
+ var isAndroid = $.isAndroid;
+ var isWinPhone = $.isWinPhone;
+ $('li').on($.eventStart, function () {
+ return;
+ });
+ $('li').on($.eventEnd, function () {
+ return;
+ });
+ $('li').on($.eventMove, function () {
+ return;
+ });
+ $('li').on($.eventCancel, function () {
+ return;
+ });
+ var browserVersion = $.browserVersion();
+ $.UIHideNavBar();
+ $.UIShowNavBar();
+ $.UIGoToArticle("#main");
+ $.UIGoBack();
+ $.UIGoBackToArticle("#main");
+ $.UIEnableBrowserHashModification();
+ $.UIBlock();
+ $.UIBlock(.5);
+ $.UIUnblock();
+ $.UIPopup({ id: "myPopup", message: 'Hello!!!' });
+ $.UIPopup({ message: 'Hello!!!', title: "Whatever", callback: $.noop });
+ $.UIPopup({ message: 'Hello!!!', cancelButton: "Forget It!", continueButton: "OK" });
+ $.UIPopover({ id: "myPopover" });
+ $.UIPopover({ callback: function () { } });
+ $.UIPopover({ title: "Whatever" });
+ $.UIPopover({ id: "myPopover", callback: function () { }, title: "Whatever" });
+ $.UIPopoverClose();
+ $.UICreateSegmented({ id: "mySegmentedControl", labels: ['first', 'second', 'third'], selected: 0, className: "special" });
+ $.UIPaging();
+ $.UISheet({ id: "mySheet", listClass: "specialList", background: 'red', handle: false });
+ $.UIShowSheet("#mySheet");
+ $.UIHideSheet();
+ $.UISlideout({ dynamic: false, callback: $.noop });
+ var myStepper = $('#myStepper');
+ $.UIResetStepper(myStepper);
+ $.UICreateSwitch({ id: "mySwitch", value: 5, checked: "true", callback: $.noop });
+ $.UITabbar({ tabs: 3, labels: ["one", "two", "three"], selected: 2 });
+ $.UISearch({ articleId: "#main", placeholder: "Looking?", results: 10 });
+ var carouselPanels = $("
123");
+ $.UISetupCarousel({ target: "#carousel", panels: carouselPanels });
+ $.UIBindData();
+ $.UIBindData("#myBoundData");
+ $.UIUnBindData();
+ $.UIUnBindData("#myBoundData");
+ /**
+ * Test plugin methods:
+ */
+ $("li").forEach(function (ctx, idx) {
+ console.log(ctx.nodeName + ": " + idx);
+ });
+ $('li').iz(".selected").hide();
+ $('li').iznt(".selected").show();
+ $('li').haz("span").hide();
+ $('li').haznt("span").show();
+ $('li').hazClass(".selected").hide();
+ $('li').hazntClass(".selected").show();
+ $('li').hazAttr("disabled").hide();
+ $('li').hazntAttr("disabled").show();
+ $('#main').bind("singletap", function () {
+ return;
+ });
+ $('#main').UICenter();
+ $('#main').UIBusy({ size: "120px", color: "red", duration: "5000ms" });
+ $('#myPopup').UIPopupClose();
+ $('#mySegementedControl').UISegmented({ selected: 2, callback: $.noop });
+ $("#panelToggler").UIPanelToggle("#togglePanels", $.noop);
+ $('#editList').UIEditList({ callback: $.noop, deletable: false, movable: true });
+ $('#mySelectList').UISelectList();
+ $('#myStepper').UIStepper({ start: 1, end: 10, defaultValue: 5 });
+ $('#mySwitch').UISwitch();
+ $('#myRangeControl').UIRange();
+});
diff --git a/chui/chui-tests.ts b/chui/chui-tests.ts
index 98070b4333..d4f7be5f30 100644
--- a/chui/chui-tests.ts
+++ b/chui/chui-tests.ts
@@ -37,6 +37,7 @@ $(function() {
$.UIGoToArticle("#main");
$.UIGoBack();
$.UIGoBackToArticle("#main");
+ $.UIEnableBrowserHashModification();
$.UIBlock();
$.UIBlock(.5);
$.UIUnblock();
diff --git a/chui/chui.d.ts b/chui/chui.d.ts
index 2f68ae4540..5a7d41a5bb 100644
--- a/chui/chui.d.ts
+++ b/chui/chui.d.ts
@@ -1,8 +1,8 @@
-// Type definitions for chui v3.9.0
+// Type definitions for chui v3.9.1
// Project: https://github.com/chocolatechipui/chocolatechip-ui
// Definitions by: Robert Biggs
// Definitions: https://github.com/borisyankov/DefinitelyTyped
-// ChocolateChip-UI 3.9.0
+// ChocolateChip-UI 3.9.1
/**
These TypeScript delcarations for ChocolateChip-UI contain interfaces for both ChocolateChipJS and jQuery. Depending on which library you are using, you will get the type interfaces appropriate for it.
*/
@@ -89,6 +89,17 @@ interface ChocolateChipStatic {
*/
isNavigating: boolean;
+ /**
+ * Tell ChocolateChip-UI to not modify window hash during navigation.
+ * The default value is false.
+ */
+ UIBrowserHashModification: boolean;
+
+ /**
+ * Method to tell ChocolateChip-UI to register navigation history on Window hash.
+ */
+ UIEnableBrowserHashModification(): void;
+
/**
* Navigate to the article indicated by the provided destination ID. This enters the destination into the navigation history array.
*
@@ -784,6 +795,17 @@ interface JQueryStatic {
*/
isNavigating: boolean;
+ /**
+ * Tell ChocolateChip-UI to not modify window hash during navigation.
+ * The default value is false.
+ */
+ UIBrowserHashModification: boolean;
+
+ /**
+ * Method to tell ChocolateChip-UI to register navigation history on Window hash.
+ */
+ UIEnableBrowserHashModification(): void;
+
/**
* Navigate to the article indicated by the provided destination ID. This enters the destination into the navigation history array.
*
@@ -1014,6 +1036,54 @@ interface JQueryStatic {
*/
UIUnBindData(controller?: string): void;
+ /**
+ * Object used to store string templates and parsed templates.
+ *
+ * @param string A string defining the template.
+ * @param string A label used to access an object's properties in the template. If none is provided it defaults to "data": [[= data.name]].
+ * @return void
+ */
+ templates: Object;
+
+ /**
+ * This method returns a parsed template.
+ *
+ */
+ template: {
+
+ /**
+ * This method parses a string and an optoinal variable name and returns a parsed template in the form of a function. You can then pass this function data to get rendered nodes.
+ *
+ * @param template A string of markup to use as a template.
+ * @param variable An option name to use in the template. If it were "myData": [[= myData.name]]. Otherwise it defaults to "data": [[= data.name]].
+ * @return A function.
+ */
+ (template: string, variable?: string): Function;
+
+ /**
+ * A method to repeated output a template.
+ *
+ * @param element The target container into which the content will be inserted.
+ * @param template A string of markup.
+ * @param data The iterable data the template will consume.
+ * @return void.
+ */
+ repeater: (element: JQuery, template: string, data: any) => void;
+
+ /**
+ * A object that holds the reference to the controller for a repeater.
+ * This is used to cache the data that a repeater uses. After the repeater is rendered, the reference is deleted from this object.
+ *
+ */
+ data: {
+ repeaterName?: any;
+ };
+
+ /**
+ * Use this value to output an index value in a template repeater.
+ */
+ index: number;
+ };
}
/**