# Dojo Reference Documentation

## Table of Contents

- The Dojo packaging and debugging systems
- General Purpose Libraries
- Visual Web
- Web I/O (AJAX, etc.)
- Data Structures
- Math & Crypto
- Widgets

## Dojo Infrastructure

Dojo's bootstrap system provides some fundamental behaviors, including a package system for dynamically loading scripts.

- dojo: The Dojo bootstrap.

## General purpose libraries

Dojo includes some core libraries to make it easier to work with JavaScript, HTML, the DOM:

- dojo.lang: Utility routines to make JavaScript easier to use.
- dojo.string: String manipulation routines.
- dojo.dom: DOM manipulation routines.
- dojo.style: CSS Style manipulation routines.
- dojo.html: HTML specific operations
- dojo.event: The Aspect Oriented Programming-inspired event system (undocumented, but see this introduction)
- dojo.reflect: Reflection API (undocumented)
- dojo.date: Date manipulation. (undocumented)
- dojo.logging.Logger: Logging library (undocumented).
- dojo.profile: JS Profiler (undocumented)
- dojo.regexp: Regular Expression generators (undocumented)

## Data Structures

The dojo.collections package has a few sub-parts:

- Dictionary: a dictionary/hash object
- ArrayList: an extended version of the core ECMAScript Array object.
- Queue: a basic implementation of a typical queue (FIFO) object.
- SortedList: An indexed/ordered Dictionary
- Set: an object that provides basic set operations.
- Stack: a basic implementation of a standard Stack (FILO).

## Web I/O

- dojo.io: Platform independent input/output APIs (also see this)
- dojo.rpc: RPC, the Dojo way
- dojo.json: JSON, the Dojo way

## Visual Web

- dojo.animation.Animation: Animation supprt
- dojo.dnd: Drag and Drop support
- dojo.validate: Data validation methods (isText, isNumber, isValidDate, etc..)
- dojo.fx: Fading, exploding visual effects (undocumented)
- dojo.graphics.Colorspace: Colorspace manipulation (undocumented)
- dojo.graphics.color: color manipulation (undocumented)
- dojo.svg: SVG library (undocumented)

## Math and Crypto

- dojo.crypto: Cryptographic routines.
- dojo.math.Math: Math library (undocumented)
- dojo.math.curves: Curve generation library (undocumented)
- dojo.math.matrix: Linear Algebra (undocumented)
- dojo.math.points: Point manipulations (undocumented)

## Other

- dojo.storage: The storage system implements a local durable cache.
- dojo.xml.Parse: a first pass XML to JS parser.
- dojo.uri: URI/URL manipulation routines

## Widgets

### Core widgets

- The Widget base class.
- The DomWidget base class (undocumented)
- The HtmlWidget base class (undocumented)
- The Editor widget (undocumented, but see this)
- The Checkbox widget (undocumented)
- The ComboBox widget (undocumented)
- The ContextMenu widget (undocumented)
- The DropdownButton widget (undocumented)
- The Menu widget (undocumented)
- The MenuItem widget (undocumented)
- The PopUpButton widget (undocumented)
- The SimpleDropDownButton widget (undocumented)
- The TabContainer widget (undocumented)
- The Tabs widget (undocumented)
- The Tree widget (undocumented)

### Layout widgets

- The Container widget (undocumented)
- The Accordion widget (undocumented)
- The Dialog widget (undocumented)
- The FloatingPane widget (undocumented)
- The LayoutContainer widget (undocumented)
- The Manager widget (undocumented)
- The SplitContainer widget (undocumented)
- The TemplatedContainer widget (undocumented)

### Other widgets

- The DatePicker widget
- The TimePicker widget
- The RichText widget (undocumented, but see this))
- The Chart widget (undocumented)
- The ColorPalette widget (undocumented)
- The CiviCrmDatePicker widget (undocumented)
- The FisheyeList widget (undocumented)
- The InlineEditBox widget (undocumented)
- The ResizableTextArea widget (undocumented)
- The SlideShow widget (undocumented)
- The TaskBar widget (undocumented)
- The Toggler widget (undocumented)
- The Toolbar widget (undocumented)
- The Wizard widget (undocumented)

### SVG widgets

- The SvgButton widget (undocumented)
- The SvgWidget widget (undocumented)