##// END OF EJS Templates
Added events map support to _WidgetBase, corrected attributes map support in _WidgetBase
cin -
r2:1e22cac2aaf4 v1.0.0-rc1 default
parent child
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -0,0 +1,25
1 import * as _WidgetBase from "dijit/_WidgetBase";
2 import * as Stateful from "dojo/Stateful";
3
4 export interface IRemovable {
5 remove(): void;
6 }
7
8 type StatefulAttrs<T> = T extends Stateful<infer A> ? A : never;
9
10 interface WatchFn {
11 <T extends Stateful, K extends keyof StatefulAttrs<T>>(
12 target: T,
13 prop: K,
14 render: (model: StatefulAttrs<T>[K]) => any,
15 own?: (obj: IRemovable) => void
16 );
17 <W extends _WidgetBase, K extends keyof W>(
18 target: W,
19 prop: K,
20 render: (model: W[K]) => any,
21 own?: (obj: IRemovable) => void
22 );
23 }
24
25 export declare const watch: WatchFn;
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
@@ -1,487 +1,487
1 /// <reference path="index.d.ts" />
1 /// <reference path="index.d.ts" />
2
2
3 declare module 'dijit/_Widget' {
3 declare module 'dijit/_Widget' {
4 type _Widget = dijit._Widget;
4 type _Widget = dijit._Widget;
5 const _Widget: dijit._WidgetBaseConstructor<_Widget>;
5 const _Widget: dijit._WidgetBaseConstructor<_Widget>;
6 export = _Widget;
6 export = _Widget;
7 }
7 }
8
8
9 declare module 'dijit/_WidgetBase' {
9 declare module 'dijit/_WidgetBase' {
10 type _WidgetBase<A = any> = dijit._WidgetBase<A>;
10 type _WidgetBase<E extends { [k in keyof E]: Event } = {}> = dijit._WidgetBase<E & GlobalEventHandlersEventMap>;
11
11
12 // individual _WidgetBase constructor to keep type parameters
12 // individual _WidgetBase constructor to keep type parameters
13 interface _WidgetBaseConstructor {
13 interface _WidgetBaseConstructor {
14 new <A = any>(params?: Partial<_WidgetBase<A> & A>, srcNodeRef?: dojo.NodeOrString): _WidgetBase<A> & dojo._base.DeclareCreatedObject;
14 new <A = {}, E extends { [k in keyof E]: Event } = {}>(params?: Partial<_WidgetBase<E> & A>, srcNodeRef?: dojo.NodeOrString): _WidgetBase<E> & dojo._base.DeclareCreatedObject;
15 prototype: _WidgetBase;
15 prototype: _WidgetBase<any>;
16 }
16 }
17 const _WidgetBase: _WidgetBaseConstructor;
17 const _WidgetBase: _WidgetBaseConstructor;
18 export = _WidgetBase;
18 export = _WidgetBase;
19 }
19 }
20
20
21 declare module 'dijit/_AttachMixin' {
21 declare module 'dijit/_AttachMixin' {
22 type _AttachMixin = dijit._AttachMixin;
22 type _AttachMixin = dijit._AttachMixin;
23 const _AttachMixin: dijit._AttachMixinConstructor;
23 const _AttachMixin: dijit._AttachMixinConstructor;
24 export = _AttachMixin;
24 export = _AttachMixin;
25 }
25 }
26
26
27 declare module 'dijit/_CssStateMixin' {
27 declare module 'dijit/_CssStateMixin' {
28 type _CssStateMixin = dijit._CssStateMixin;
28 type _CssStateMixin = dijit._CssStateMixin;
29 const _CssStateMixin: dijit._CssStateMixinConstructor;
29 const _CssStateMixin: dijit._CssStateMixinConstructor;
30 export = _CssStateMixin;
30 export = _CssStateMixin;
31 }
31 }
32
32
33 declare module 'dijit/_Contained' {
33 declare module 'dijit/_Contained' {
34 type _Contained = dijit._Contained;
34 type _Contained = dijit._Contained;
35 const _Contained: dijit._ContainedConstructor;
35 const _Contained: dijit._ContainedConstructor;
36 export = _Contained;
36 export = _Contained;
37 }
37 }
38
38
39 declare module 'dijit/_Container' {
39 declare module 'dijit/_Container' {
40 type _Container = dijit._Container;
40 type _Container = dijit._Container;
41 const _Container: dijit._ContainerConstructor;
41 const _Container: dijit._ContainerConstructor;
42 export = _Container;
42 export = _Container;
43 }
43 }
44
44
45 declare module 'dijit/_KeyNavContainer' {
45 declare module 'dijit/_KeyNavContainer' {
46 type _KeyNavContainer = dijit._KeyNavContainer;
46 type _KeyNavContainer = dijit._KeyNavContainer;
47 const _KeyNavContainer: dijit._KeyNavContainerConstructor;
47 const _KeyNavContainer: dijit._KeyNavContainerConstructor;
48 export = _KeyNavContainer;
48 export = _KeyNavContainer;
49 }
49 }
50
50
51 declare module 'dijit/_KeyNavMixin' {
51 declare module 'dijit/_KeyNavMixin' {
52 type _KeyNavMixin = dijit._KeyNavMixin;
52 type _KeyNavMixin = dijit._KeyNavMixin;
53 const _KeyNavMixin: dijit._KeyNavMixinConstructor;
53 const _KeyNavMixin: dijit._KeyNavMixinConstructor;
54 export = _KeyNavMixin;
54 export = _KeyNavMixin;
55 }
55 }
56
56
57 declare module 'dijit/_MenuBase' {
57 declare module 'dijit/_MenuBase' {
58 type _MenuBase = dijit._MenuBase;
58 type _MenuBase = dijit._MenuBase;
59 const _MenuBase: dijit._MenuBaseConstructor;
59 const _MenuBase: dijit._MenuBaseConstructor;
60 export = _MenuBase;
60 export = _MenuBase;
61 }
61 }
62
62
63 declare module 'dijit/_TemplatedMixin' {
63 declare module 'dijit/_TemplatedMixin' {
64 type _TemplatedMixin = dijit._TemplatedMixin;
64 type _TemplatedMixin = dijit._TemplatedMixin;
65 const _TemplatedMixin: dijit._TemplatedMixinConstructor;
65 const _TemplatedMixin: dijit._TemplatedMixinConstructor;
66 export = _TemplatedMixin;
66 export = _TemplatedMixin;
67 }
67 }
68
68
69 declare module 'dijit/_WidgetsInTemplateMixin' {
69 declare module 'dijit/_WidgetsInTemplateMixin' {
70 type _WidgetsInTemplateMixin = dijit._WidgetsInTemplateMixin;
70 type _WidgetsInTemplateMixin = dijit._WidgetsInTemplateMixin;
71 const _WidgetsInTemplateMixin: dijit._WidgetsInTemplateMixinConstructor;
71 const _WidgetsInTemplateMixin: dijit._WidgetsInTemplateMixinConstructor;
72 export = _WidgetsInTemplateMixin;
72 export = _WidgetsInTemplateMixin;
73 }
73 }
74
74
75 declare module 'dijit/ConfirmDialog' {
75 declare module 'dijit/ConfirmDialog' {
76 type ConfirmDialog = dijit.ConfirmDialog;
76 type ConfirmDialog = dijit.ConfirmDialog;
77 const ConfirmDialog: dijit.ConfirmDialogConstructor;
77 const ConfirmDialog: dijit.ConfirmDialogConstructor;
78 export = ConfirmDialog;
78 export = ConfirmDialog;
79 }
79 }
80
80
81 declare module 'dijit/Calendar' {
81 declare module 'dijit/Calendar' {
82 type Calendar = dijit.Calendar;
82 type Calendar = dijit.Calendar;
83 const Calendar: dijit.CalendarConstructor;
83 const Calendar: dijit.CalendarConstructor;
84 export = Calendar;
84 export = Calendar;
85 }
85 }
86
86
87 declare module 'dijit/CalendarLite' {
87 declare module 'dijit/CalendarLite' {
88 type CalendarLite = dijit.CalendarLite;
88 type CalendarLite = dijit.CalendarLite;
89 const CalendarLite: dijit.CalendarLiteConstructor;
89 const CalendarLite: dijit.CalendarLiteConstructor;
90 export = CalendarLite;
90 export = CalendarLite;
91 }
91 }
92
92
93 declare module 'dijit/Destroyable' {
93 declare module 'dijit/Destroyable' {
94 type Destroyable = dijit.Destroyable;
94 type Destroyable = dijit.Destroyable;
95 const Destroyable: dijit.DestroyableConstructor;
95 const Destroyable: dijit.DestroyableConstructor;
96 export = Destroyable;
96 export = Destroyable;
97 }
97 }
98
98
99 declare module 'dijit/Dialog' {
99 declare module 'dijit/Dialog' {
100 type Dialog = dijit.Dialog;
100 type Dialog = dijit.Dialog;
101 const Dialog: dijit.DialogConstructor;
101 const Dialog: dijit.DialogConstructor;
102 export = Dialog;
102 export = Dialog;
103 }
103 }
104
104
105 declare module 'dijit/DropDownMenu' {
105 declare module 'dijit/DropDownMenu' {
106 type DropDownMenu = dijit.DropDownMenu;
106 type DropDownMenu = dijit.DropDownMenu;
107 const DropDownMenu: dijit.DropDownMenuConstructor;
107 const DropDownMenu: dijit.DropDownMenuConstructor;
108 export = DropDownMenu;
108 export = DropDownMenu;
109 }
109 }
110
110
111 declare module 'dijit/Fieldset' {
111 declare module 'dijit/Fieldset' {
112 type Fieldset = dijit.Fieldset;
112 type Fieldset = dijit.Fieldset;
113 const Fieldset: dijit.FieldsetConstructor;
113 const Fieldset: dijit.FieldsetConstructor;
114 export = Fieldset;
114 export = Fieldset;
115 }
115 }
116
116
117 declare module 'dijit/Menu' {
117 declare module 'dijit/Menu' {
118 type Menu = dijit.Menu;
118 type Menu = dijit.Menu;
119 const Menu: dijit.MenuConstructor;
119 const Menu: dijit.MenuConstructor;
120 export = Menu;
120 export = Menu;
121 }
121 }
122
122
123 declare module 'dijit/MenuBar' {
123 declare module 'dijit/MenuBar' {
124 type MenuBar = dijit.MenuBar;
124 type MenuBar = dijit.MenuBar;
125 const MenuBar: dijit.MenuBarConstructor;
125 const MenuBar: dijit.MenuBarConstructor;
126 export = MenuBar;
126 export = MenuBar;
127 }
127 }
128
128
129 declare module 'dijit/MenuBarItem' {
129 declare module 'dijit/MenuBarItem' {
130 type MenuBarItem = dijit.MenuBarItem;
130 type MenuBarItem = dijit.MenuBarItem;
131 const MenuBarItem: dijit.MenuBarItemConstructor;
131 const MenuBarItem: dijit.MenuBarItemConstructor;
132 export = MenuBarItem;
132 export = MenuBarItem;
133 }
133 }
134
134
135 declare module 'dijit/MenuItem' {
135 declare module 'dijit/MenuItem' {
136 type MenuItem = dijit.MenuItem;
136 type MenuItem = dijit.MenuItem;
137 const MenuItem: dijit.MenuItemConstructor;
137 const MenuItem: dijit.MenuItemConstructor;
138 export = MenuItem;
138 export = MenuItem;
139 }
139 }
140
140
141 declare module 'dijit/MenuSeparator' {
141 declare module 'dijit/MenuSeparator' {
142 type MenuSeparator = dijit.MenuSeparator;
142 type MenuSeparator = dijit.MenuSeparator;
143 const MenuSeparator: dijit.MenuSeparatorConstructor;
143 const MenuSeparator: dijit.MenuSeparatorConstructor;
144 export = MenuSeparator;
144 export = MenuSeparator;
145 }
145 }
146
146
147 declare module 'dijit/place' {
147 declare module 'dijit/place' {
148 const place: dijit.Place;
148 const place: dijit.Place;
149 export = place;
149 export = place;
150 }
150 }
151
151
152 declare module 'dijit/popup' {
152 declare module 'dijit/popup' {
153 const popup: dijit.PopupManager;
153 const popup: dijit.PopupManager;
154 export = popup;
154 export = popup;
155 }
155 }
156
156
157 declare module 'dijit/PopupMenuBarItem' {
157 declare module 'dijit/PopupMenuBarItem' {
158 type PopupMenuBarItem = dijit.PopupMenuBarItem;
158 type PopupMenuBarItem = dijit.PopupMenuBarItem;
159 const PopupMenuBarItem: dijit.PopupMenuBarItemConstructor;
159 const PopupMenuBarItem: dijit.PopupMenuBarItemConstructor;
160 export = PopupMenuBarItem;
160 export = PopupMenuBarItem;
161 }
161 }
162
162
163 declare module 'dijit/PopupMenuItem' {
163 declare module 'dijit/PopupMenuItem' {
164 type PopupMenuItem = dijit.PopupMenuItem;
164 type PopupMenuItem = dijit.PopupMenuItem;
165 const PopupMenuItem: dijit.PopupMenuItemConstructor;
165 const PopupMenuItem: dijit.PopupMenuItemConstructor;
166 export = PopupMenuItem;
166 export = PopupMenuItem;
167 }
167 }
168
168
169 declare module 'dijit/registry' {
169 declare module 'dijit/registry' {
170 const registry: dijit.Registry;
170 const registry: dijit.Registry;
171 export = registry;
171 export = registry;
172 }
172 }
173
173
174 declare module 'dijit/TitlePane' {
174 declare module 'dijit/TitlePane' {
175 type TitlePane = dijit.TitlePane;
175 type TitlePane = dijit.TitlePane;
176 const TitlePane: dijit.TitlePaneConstructor;
176 const TitlePane: dijit.TitlePaneConstructor;
177 export = TitlePane;
177 export = TitlePane;
178 }
178 }
179
179
180 declare module 'dijit/Toolbar' {
180 declare module 'dijit/Toolbar' {
181 type Toolbar = dijit.Toolbar;
181 type Toolbar = dijit.Toolbar;
182 const Toolbar: dijit.ToolbarConstructor;
182 const Toolbar: dijit.ToolbarConstructor;
183 export = Toolbar;
183 export = Toolbar;
184 }
184 }
185
185
186 declare module 'dijit/ToolbarSeparator' {
186 declare module 'dijit/ToolbarSeparator' {
187 type ToolbarSeparator = dijit.ToolbarSeparator;
187 type ToolbarSeparator = dijit.ToolbarSeparator;
188 const ToolbarSeparator: dijit.ToolbarSeparatorConstructor;
188 const ToolbarSeparator: dijit.ToolbarSeparatorConstructor;
189 export = ToolbarSeparator;
189 export = ToolbarSeparator;
190 }
190 }
191
191
192 declare module 'dijit/Tooltip' {
192 declare module 'dijit/Tooltip' {
193 type Tooltip = dijit.Tooltip;
193 type Tooltip = dijit.Tooltip;
194 const Tooltip: dijit.TooltipConstructor;
194 const Tooltip: dijit.TooltipConstructor;
195 export = Tooltip;
195 export = Tooltip;
196 }
196 }
197
197
198 declare module 'dijit/TooltipDialog' {
198 declare module 'dijit/TooltipDialog' {
199 type TooltipDialog = dijit.TooltipDialog;
199 type TooltipDialog = dijit.TooltipDialog;
200 const TooltipDialog: dijit.TooltipDialogConstructor;
200 const TooltipDialog: dijit.TooltipDialogConstructor;
201 export = TooltipDialog;
201 export = TooltipDialog;
202 }
202 }
203
203
204 declare module 'dijit/_base/focus' {
204 declare module 'dijit/_base/focus' {
205 const focus: dijit._base.Focus;
205 const focus: dijit._base.Focus;
206 export = focus;
206 export = focus;
207 }
207 }
208
208
209 declare module 'dijit/_base/manager' {
209 declare module 'dijit/_base/manager' {
210 const manager: dijit._base.Manager;
210 const manager: dijit._base.Manager;
211 export = manager;
211 export = manager;
212 }
212 }
213
213
214 declare module 'dijit/_base/place' {
214 declare module 'dijit/_base/place' {
215 const place: dijit._base.Place;
215 const place: dijit._base.Place;
216 export = place;
216 export = place;
217 }
217 }
218
218
219 declare module 'dijit/_base/popup' {
219 declare module 'dijit/_base/popup' {
220 const popup: dijit._base.Popup;
220 const popup: dijit._base.Popup;
221 export = popup;
221 export = popup;
222 }
222 }
223
223
224 declare module 'dijit/_base/scroll' {
224 declare module 'dijit/_base/scroll' {
225 const scroll: dijit._base.Scroll;
225 const scroll: dijit._base.Scroll;
226 export = scroll;
226 export = scroll;
227 }
227 }
228
228
229 declare module 'dijit/_base/sniff' {
229 declare module 'dijit/_base/sniff' {
230 const sniff: dijit._base.Sniff;
230 const sniff: dijit._base.Sniff;
231 export = sniff;
231 export = sniff;
232 }
232 }
233
233
234 declare module 'dijit/_base/typematic' {
234 declare module 'dijit/_base/typematic' {
235 const typematic: dijit._base.Typematic;
235 const typematic: dijit._base.Typematic;
236 export = typematic;
236 export = typematic;
237 }
237 }
238
238
239 declare module 'dijit/_base/wai' {
239 declare module 'dijit/_base/wai' {
240 const wai: dijit._base.Wai;
240 const wai: dijit._base.Wai;
241 export = wai;
241 export = wai;
242 }
242 }
243
243
244 declare module 'dijit/_base/window' {
244 declare module 'dijit/_base/window' {
245 const window: dijit._base.Window;
245 const window: dijit._base.Window;
246 export = window;
246 export = window;
247 }
247 }
248
248
249 declare module 'dijit/form/_FormMixin' {
249 declare module 'dijit/form/_FormMixin' {
250 type _FormMixin = dijit.form._FormMixin;
250 type _FormMixin = dijit.form._FormMixin;
251 const _FormMixin: dijit.form._FormMixinConstructor;
251 const _FormMixin: dijit.form._FormMixinConstructor;
252 export = _FormMixin;
252 export = _FormMixin;
253 }
253 }
254
254
255 declare module 'dijit/form/_FormValueWidget' {
255 declare module 'dijit/form/_FormValueWidget' {
256 type _FormValueWidget = dijit.form._FormValueWidget;
256 type _FormValueWidget = dijit.form._FormValueWidget;
257 const _FormValueWidget: dijit.form._FormValueWidgetConstructor;
257 const _FormValueWidget: dijit.form._FormValueWidgetConstructor;
258 export = _FormValueWidget;
258 export = _FormValueWidget;
259 }
259 }
260
260
261 declare module 'dijit/form/_FormWidget' {
261 declare module 'dijit/form/_FormWidget' {
262 type _FormWidget = dijit.form._FormWidget;
262 type _FormWidget = dijit.form._FormWidget;
263 const _FormWidget: dijit.form._FormWidgetConstructor;
263 const _FormWidget: dijit.form._FormWidgetConstructor;
264 export = _FormWidget;
264 export = _FormWidget;
265 }
265 }
266
266
267 declare module 'dijit/form/Button' {
267 declare module 'dijit/form/Button' {
268 type Button = dijit.form.Button;
268 type Button = dijit.form.Button;
269 const Button: dijit.form.ButtonConstructor;
269 const Button: dijit.form.ButtonConstructor;
270 export = Button;
270 export = Button;
271 }
271 }
272
272
273 declare module 'dijit/form/CheckBox' {
273 declare module 'dijit/form/CheckBox' {
274 type CheckBox = dijit.form.CheckBox;
274 type CheckBox = dijit.form.CheckBox;
275 const CheckBox: dijit.form.CheckBoxConstructor;
275 const CheckBox: dijit.form.CheckBoxConstructor;
276 export = CheckBox;
276 export = CheckBox;
277 }
277 }
278
278
279 declare module 'dijit/form/ComboBox' {
279 declare module 'dijit/form/ComboBox' {
280 type ComboBox = dijit.form.TextBox;
280 type ComboBox = dijit.form.TextBox;
281 const ComboBox: dijit.form.ComboBoxConstructor;
281 const ComboBox: dijit.form.ComboBoxConstructor;
282 export = ComboBox;
282 export = ComboBox;
283 }
283 }
284
284
285 declare module 'dijit/form/ComboBoxMixin' {
285 declare module 'dijit/form/ComboBoxMixin' {
286 type ComboBoxMixin<T, U extends dojo.store.api.BaseQueryType, V> = dijit.form.ComboBoxMixin<T, U, V>;
286 type ComboBoxMixin<T, U extends dojo.store.api.BaseQueryType, V> = dijit.form.ComboBoxMixin<T, U, V>;
287 const ComboBoxMixin: dijit.form.ComboBoxConstructor;
287 const ComboBoxMixin: dijit.form.ComboBoxConstructor;
288 export = ComboBoxMixin;
288 export = ComboBoxMixin;
289 }
289 }
290
290
291 declare module 'dijit/form/CurrencyTextBox' {
291 declare module 'dijit/form/CurrencyTextBox' {
292 type CurrencyTextBox = dijit.form.CurrencyTextBox;
292 type CurrencyTextBox = dijit.form.CurrencyTextBox;
293 const CurrencyTextBox: dijit.form.CurrencyTextBoxConstructor;
293 const CurrencyTextBox: dijit.form.CurrencyTextBoxConstructor;
294 export = CurrencyTextBox;
294 export = CurrencyTextBox;
295 }
295 }
296
296
297 declare module 'dijit/form/DataList' {
297 declare module 'dijit/form/DataList' {
298 type DataList<T> = dijit.form.DataList<T>;
298 type DataList<T> = dijit.form.DataList<T>;
299 const DataList: dijit.form.DataListConstructor;
299 const DataList: dijit.form.DataListConstructor;
300 export = DataList;
300 export = DataList;
301 }
301 }
302
302
303 declare module 'dijit/form/DateTextBox' {
303 declare module 'dijit/form/DateTextBox' {
304 type DateTextBox = dijit.form.DateTextBox;
304 type DateTextBox = dijit.form.DateTextBox;
305 const DateTextBox: dijit.form.DateTextBoxConstructor;
305 const DateTextBox: dijit.form.DateTextBoxConstructor;
306 export = DateTextBox;
306 export = DateTextBox;
307 }
307 }
308
308
309 declare module 'dijit/form/DropDownButton' {
309 declare module 'dijit/form/DropDownButton' {
310 type DropDownButton<T extends dijit._WidgetBase> = dijit.form.DropDownButton<T>;
310 type DropDownButton<T extends dijit._WidgetBase> = dijit.form.DropDownButton<T>;
311 const DropDownButton: dijit.form.DropDownButtonConstructor;
311 const DropDownButton: dijit.form.DropDownButtonConstructor;
312 export = DropDownButton;
312 export = DropDownButton;
313 }
313 }
314
314
315 declare module 'dijit/form/FilteringSelect' {
315 declare module 'dijit/form/FilteringSelect' {
316 type FilteringSelect<C extends dijit.form.Constraints, T extends Object, Q extends string | Object | Function, O extends dojo.store.api.QueryOptions> = dijit.form.FilteringSelect<C, T, Q, O>;
316 type FilteringSelect<C extends dijit.form.Constraints, T extends Object, Q extends string | Object | Function, O extends dojo.store.api.QueryOptions> = dijit.form.FilteringSelect<C, T, Q, O>;
317 const FilteringSelect: dijit.form.FilteringSelectConstructor;
317 const FilteringSelect: dijit.form.FilteringSelectConstructor;
318 export = FilteringSelect;
318 export = FilteringSelect;
319 }
319 }
320
320
321 declare module 'dijit/form/Form' {
321 declare module 'dijit/form/Form' {
322 type Form = dijit.form.Form;
322 type Form = dijit.form.Form;
323 const Form: dijit.form.FormConstructor;
323 const Form: dijit.form.FormConstructor;
324 export = Form;
324 export = Form;
325 }
325 }
326
326
327 declare module 'dijit/form/HorizontalRule' {
327 declare module 'dijit/form/HorizontalRule' {
328 type HorizontalRule = dijit.form.HorizontalRule;
328 type HorizontalRule = dijit.form.HorizontalRule;
329 const HorizontalRule: dijit.form.HorizontalRuleConstructor;
329 const HorizontalRule: dijit.form.HorizontalRuleConstructor;
330 export = HorizontalRule;
330 export = HorizontalRule;
331 }
331 }
332
332
333 declare module 'dijit/form/HorizontalRuleLabels' {
333 declare module 'dijit/form/HorizontalRuleLabels' {
334 type HorizontalRuleLabels = dijit.form.HorizontalRuleLabels;
334 type HorizontalRuleLabels = dijit.form.HorizontalRuleLabels;
335 const HorizontalRuleLabels: dijit.form.HorizontalRuleLabelsConstructor;
335 const HorizontalRuleLabels: dijit.form.HorizontalRuleLabelsConstructor;
336 export = HorizontalRuleLabels;
336 export = HorizontalRuleLabels;
337 }
337 }
338
338
339 declare module 'dijit/form/HorizontalSlider' {
339 declare module 'dijit/form/HorizontalSlider' {
340 type HorizontalSlider = dijit.form.HorizontalSlider;
340 type HorizontalSlider = dijit.form.HorizontalSlider;
341 const HorizontalSlider: dijit.form.HorizontalSliderConstructor;
341 const HorizontalSlider: dijit.form.HorizontalSliderConstructor;
342 export = HorizontalSlider;
342 export = HorizontalSlider;
343 }
343 }
344
344
345 declare module 'dijit/form/MappedTextBox' {
345 declare module 'dijit/form/MappedTextBox' {
346 type MappedTextBox<C extends dijit.form.Constraints> = dijit.form.MappedTextBox<C>;
346 type MappedTextBox<C extends dijit.form.Constraints> = dijit.form.MappedTextBox<C>;
347 const MappedTextBox: dijit.form.MappedTextBoxConstructor;
347 const MappedTextBox: dijit.form.MappedTextBoxConstructor;
348 export = MappedTextBox;
348 export = MappedTextBox;
349 }
349 }
350
350
351 declare module 'dijit/form/NumberSpinner' {
351 declare module 'dijit/form/NumberSpinner' {
352 type NumberSpinner = dijit.form.NumberSpinner;
352 type NumberSpinner = dijit.form.NumberSpinner;
353 const NumberSpinner: dijit.form.NumberSpinnerConstructor;
353 const NumberSpinner: dijit.form.NumberSpinnerConstructor;
354 export = NumberSpinner;
354 export = NumberSpinner;
355 }
355 }
356
356
357 declare module 'dijit/form/NumberTextBox' {
357 declare module 'dijit/form/NumberTextBox' {
358 type NumberTextBox = dijit.form.NumberTextBox;
358 type NumberTextBox = dijit.form.NumberTextBox;
359 const NumberTextBox: dijit.form.NumberTextBoxConstructor;
359 const NumberTextBox: dijit.form.NumberTextBoxConstructor;
360 export = NumberTextBox;
360 export = NumberTextBox;
361 }
361 }
362
362
363 declare module 'dijit/form/RadioButton' {
363 declare module 'dijit/form/RadioButton' {
364 type RadioButton = dijit.form.RadioButton;
364 type RadioButton = dijit.form.RadioButton;
365 const RadioButton: dijit.form.RadioButtonConstructor;
365 const RadioButton: dijit.form.RadioButtonConstructor;
366 export = RadioButton;
366 export = RadioButton;
367 }
367 }
368
368
369 declare module 'dijit/form/RangeBoundTextBox' {
369 declare module 'dijit/form/RangeBoundTextBox' {
370 type RangeBoundTextBox = dijit.form.RangeBoundTextBox;
370 type RangeBoundTextBox = dijit.form.RangeBoundTextBox;
371 const RangeBoundTextBox: dijit.form.RangeBoundTextBoxConstructor;
371 const RangeBoundTextBox: dijit.form.RangeBoundTextBoxConstructor;
372 export = RangeBoundTextBox;
372 export = RangeBoundTextBox;
373 }
373 }
374
374
375 declare module 'dijit/form/Select' {
375 declare module 'dijit/form/Select' {
376 type Select<T, Q extends dojo.store.api.BaseQueryType, O, U extends dijit._WidgetBase> = dijit.form.Select<T, Q, O, U>;
376 type Select<T, Q extends dojo.store.api.BaseQueryType, O, U extends dijit._WidgetBase> = dijit.form.Select<T, Q, O, U>;
377 const Select: dijit.form.SelectConstructor;
377 const Select: dijit.form.SelectConstructor;
378 export = Select;
378 export = Select;
379 }
379 }
380
380
381 declare module 'dijit/form/SimpleTextarea' {
381 declare module 'dijit/form/SimpleTextarea' {
382 type SimpleTextarea = dijit.form.SimpleTextarea;
382 type SimpleTextarea = dijit.form.SimpleTextarea;
383 const SimpleTextarea: dijit.form.SimpleTextareaConstructor;
383 const SimpleTextarea: dijit.form.SimpleTextareaConstructor;
384 export = SimpleTextarea;
384 export = SimpleTextarea;
385 }
385 }
386
386
387 declare module 'dijit/form/Textarea' {
387 declare module 'dijit/form/Textarea' {
388 type Textarea = dijit.form.Textarea;
388 type Textarea = dijit.form.Textarea;
389 const Textarea: dijit.form.TextareaConstructor;
389 const Textarea: dijit.form.TextareaConstructor;
390 export = Textarea;
390 export = Textarea;
391 }
391 }
392
392
393 declare module 'dijit/form/TextBox' {
393 declare module 'dijit/form/TextBox' {
394 type TextBox = dijit.form.TextBox;
394 type TextBox = dijit.form.TextBox;
395 const TextBox: dijit.form.TextBoxConstructor;
395 const TextBox: dijit.form.TextBoxConstructor;
396 export = TextBox;
396 export = TextBox;
397 }
397 }
398
398
399 declare module 'dijit/form/ToggleButton' {
399 declare module 'dijit/form/ToggleButton' {
400 type ToggleButton = dijit.form.ToggleButton;
400 type ToggleButton = dijit.form.ToggleButton;
401 const ToggleButton: dijit.form.ToggleButtonConstructor;
401 const ToggleButton: dijit.form.ToggleButtonConstructor;
402 export = ToggleButton;
402 export = ToggleButton;
403 }
403 }
404
404
405 declare module 'dijit/form/ValidationTextBox' {
405 declare module 'dijit/form/ValidationTextBox' {
406 type ValidationTextBox<C extends dijit.form.Constraints> = dijit.form.ValidationTextBox<C>;
406 type ValidationTextBox<C extends dijit.form.Constraints> = dijit.form.ValidationTextBox<C>;
407 const ValidationTextBox: dijit.form.ValidationTextBoxConstructor;
407 const ValidationTextBox: dijit.form.ValidationTextBoxConstructor;
408 export = ValidationTextBox;
408 export = ValidationTextBox;
409 }
409 }
410
410
411 declare module 'dijit/layout/_LayoutWidget' {
411 declare module 'dijit/layout/_LayoutWidget' {
412 type _LayoutWidget = dijit.layout._LayoutWidget;
412 type _LayoutWidget = dijit.layout._LayoutWidget;
413 const _LayoutWidget: dijit.layout._LayoutWidgetConstructor;
413 const _LayoutWidget: dijit.layout._LayoutWidgetConstructor;
414 export = _LayoutWidget;
414 export = _LayoutWidget;
415 }
415 }
416
416
417 declare module 'dijit/layout/AccordionContainer' {
417 declare module 'dijit/layout/AccordionContainer' {
418 type AccordionContainer = dijit.layout.AccordionContainer;
418 type AccordionContainer = dijit.layout.AccordionContainer;
419 const AccordionContainer: dijit.layout.AccordionContainerConstructor;
419 const AccordionContainer: dijit.layout.AccordionContainerConstructor;
420 export = AccordionContainer;
420 export = AccordionContainer;
421 }
421 }
422
422
423 declare module 'dijit/layout/AccordionPane' {
423 declare module 'dijit/layout/AccordionPane' {
424 type AccordionPane = dijit.layout.AccordionPane;
424 type AccordionPane = dijit.layout.AccordionPane;
425 const AccordionPane: dijit.layout.AccordionPaneConstructor;
425 const AccordionPane: dijit.layout.AccordionPaneConstructor;
426 export = AccordionPane;
426 export = AccordionPane;
427 }
427 }
428
428
429 declare module 'dijit/layout/ContentPane' {
429 declare module 'dijit/layout/ContentPane' {
430 type ContentPane = dijit.layout.ContentPane;
430 type ContentPane = dijit.layout.ContentPane;
431 const ContentPane: dijit.layout.ContentPaneConstructor;
431 const ContentPane: dijit.layout.ContentPaneConstructor;
432 export = ContentPane;
432 export = ContentPane;
433 }
433 }
434
434
435 declare module 'dijit/layout/_ContentPaneResizeMixin' {
435 declare module 'dijit/layout/_ContentPaneResizeMixin' {
436 type _ContentPaneResizeMixin = dijit.layout._ContentPaneResizeMixin;
436 type _ContentPaneResizeMixin = dijit.layout._ContentPaneResizeMixin;
437 const _ContentPaneResizeMixin: dijit.layout._ContentPaneResizeMixinConstructor;
437 const _ContentPaneResizeMixin: dijit.layout._ContentPaneResizeMixinConstructor;
438 export = _ContentPaneResizeMixin;
438 export = _ContentPaneResizeMixin;
439 }
439 }
440
440
441 declare module 'dijit/layout/BorderContainer' {
441 declare module 'dijit/layout/BorderContainer' {
442 type BorderContainer = dijit.layout.BorderContainer;
442 type BorderContainer = dijit.layout.BorderContainer;
443 const BorderContainer: dijit.layout.BorderContainerConstructor;
443 const BorderContainer: dijit.layout.BorderContainerConstructor;
444 export = BorderContainer;
444 export = BorderContainer;
445 }
445 }
446
446
447 declare module 'dijit/layout/LayoutContainer' {
447 declare module 'dijit/layout/LayoutContainer' {
448 type LayoutContainer = dijit.layout.LayoutContainer;
448 type LayoutContainer = dijit.layout.LayoutContainer;
449 const LayoutContainer: dijit.layout.LayoutContainerConstructor;
449 const LayoutContainer: dijit.layout.LayoutContainerConstructor;
450 export = LayoutContainer;
450 export = LayoutContainer;
451 }
451 }
452
452
453 declare module 'dijit/layout/LinkPane' {
453 declare module 'dijit/layout/LinkPane' {
454 type LinkPane = dijit.layout.LinkPane;
454 type LinkPane = dijit.layout.LinkPane;
455 const LinkPane: dijit.layout.LinkPaneConstructor;
455 const LinkPane: dijit.layout.LinkPaneConstructor;
456 export = LinkPane;
456 export = LinkPane;
457 }
457 }
458
458
459 declare module 'dijit/layout/ScrollingTabController' {
459 declare module 'dijit/layout/ScrollingTabController' {
460 type ScrollingTabController = dijit.layout.ScrollingTabController;
460 type ScrollingTabController = dijit.layout.ScrollingTabController;
461 const ScrollingTabController: dijit.layout.ScrollingTabControllerConstructor;
461 const ScrollingTabController: dijit.layout.ScrollingTabControllerConstructor;
462 export = ScrollingTabController;
462 export = ScrollingTabController;
463 }
463 }
464
464
465 declare module 'dijit/layout/StackContainer' {
465 declare module 'dijit/layout/StackContainer' {
466 type StackContainer = dijit.layout.StackContainer;
466 type StackContainer = dijit.layout.StackContainer;
467 const StackContainer: dijit.layout.StackContainerConstructor;
467 const StackContainer: dijit.layout.StackContainerConstructor;
468 export = StackContainer;
468 export = StackContainer;
469 }
469 }
470
470
471 declare module 'dijit/layout/StackController' {
471 declare module 'dijit/layout/StackController' {
472 type StackController = dijit.layout.StackController;
472 type StackController = dijit.layout.StackController;
473 const StackController: dijit.layout.StackControllerConstructor;
473 const StackController: dijit.layout.StackControllerConstructor;
474 export = StackController;
474 export = StackController;
475 }
475 }
476
476
477 declare module 'dijit/layout/TabContainer' {
477 declare module 'dijit/layout/TabContainer' {
478 type TabContainer = dijit.layout.TabContainer;
478 type TabContainer = dijit.layout.TabContainer;
479 const TabContainer: dijit.layout.TabContainerConstructor;
479 const TabContainer: dijit.layout.TabContainerConstructor;
480 export = TabContainer;
480 export = TabContainer;
481 }
481 }
482
482
483 declare module 'dijit/layout/TabController' {
483 declare module 'dijit/layout/TabController' {
484 type TabController = dijit.layout.TabController;
484 type TabController = dijit.layout.TabController;
485 const TabController: dijit.layout.TabControllerConstructor;
485 const TabController: dijit.layout.TabControllerConstructor;
486 export = TabController;
486 export = TabController;
487 }
487 }
@@ -1,2101 +1,2101
1 /// <reference path="index.d.ts" />
1 /// <reference path="index.d.ts" />
2 /// <reference path="../doh/doh.d.ts" />
2 /// <reference path="../doh/doh.d.ts" />
3
3
4 declare namespace dojo {
4 declare namespace dojo {
5 /* general implied types */
5 /* general implied types */
6
6
7 type NodeOrString = Node | string;
7 type NodeOrString = Node | string;
8 type ElementOrString = Element | string;
8 type ElementOrString = Element | string;
9 type NodeFragmentOrString = NodeOrString | DocumentFragment;
9 type NodeFragmentOrString = NodeOrString | DocumentFragment;
10
10
11 interface GenericConstructor<T> {
11 interface GenericConstructor<T> {
12 new (...args: any[]): T;
12 new (...args: any[]): T;
13 prototype: T;
13 prototype: T;
14 }
14 }
15
15
16 interface GenericObject {
16 interface GenericObject {
17 [id: string]: any;
17 [id: string]: any;
18 }
18 }
19
19
20 interface GenericFunction<T> {
20 interface GenericFunction<T> {
21 (...args: any[]): T;
21 (...args: any[]): T;
22 }
22 }
23
23
24 interface Handle {
24 interface Handle {
25 remove(): void;
25 remove(): void;
26 }
26 }
27
27
28 interface EventListener {
28 interface EventListener {
29 (evt: any): void;
29 (evt: any): void;
30 }
30 }
31
31
32 interface BuildProfile {
32 interface BuildProfile {
33 resourceTags: { [tag: string]: (filename: string, mid?: string) => boolean; };
33 resourceTags: { [tag: string]: (filename: string, mid?: string) => boolean; };
34 }
34 }
35
35
36 interface Package {
36 interface Package {
37 location?: string;
37 location?: string;
38 main?: string;
38 main?: string;
39 name?: string;
39 name?: string;
40 }
40 }
41
41
42 export interface ModuleMap extends ModuleMapItem {
42 export interface ModuleMap extends ModuleMapItem {
43 [ sourceMid: string ]: ModuleMapReplacement;
43 [ sourceMid: string ]: ModuleMapReplacement;
44 }
44 }
45
45
46 export interface ModuleMapItem {
46 export interface ModuleMapItem {
47 [ mid: string ]: /* ModuleMapReplacement | ModuleMap */ any;
47 [ mid: string ]: /* ModuleMapReplacement | ModuleMap */ any;
48 }
48 }
49
49
50 export interface ModuleMapReplacement extends ModuleMapItem {
50 export interface ModuleMapReplacement extends ModuleMapItem {
51 [ findMid: string ]: /* replaceMid */ string;
51 [ findMid: string ]: /* replaceMid */ string;
52 }
52 }
53
53
54 /* dojo/AdapterRegistry */
54 /* dojo/AdapterRegistry */
55
55
56 interface AdapterRegistry {
56 interface AdapterRegistry {
57 /**
57 /**
58 * register a check function to determine if the wrap function or
58 * register a check function to determine if the wrap function or
59 * object gets selected
59 * object gets selected
60 */
60 */
61 register(name: string, check: (...args: any[]) => boolean, wrap: Function, directReturn?: boolean, override?: boolean): void;
61 register(name: string, check: (...args: any[]) => boolean, wrap: Function, directReturn?: boolean, override?: boolean): void;
62
62
63 /**
63 /**
64 * Find an adapter for the given arguments. If no suitable adapter
64 * Find an adapter for the given arguments. If no suitable adapter
65 * is found, throws an exception. match() accepts any number of
65 * is found, throws an exception. match() accepts any number of
66 * arguments, all of which are passed to all matching functions
66 * arguments, all of which are passed to all matching functions
67 * from the registered pairs.
67 * from the registered pairs.
68 */
68 */
69 match(...args: any[]): any;
69 match(...args: any[]): any;
70
70
71 /**
71 /**
72 * Remove a named adapter from the registry
72 * Remove a named adapter from the registry
73 */
73 */
74 unregister(name: string): boolean;
74 unregister(name: string): boolean;
75 }
75 }
76
76
77 interface AdapterRegistryConstructor {
77 interface AdapterRegistryConstructor {
78 new (returnWrappers?: boolean): AdapterRegistry;
78 new (returnWrappers?: boolean): AdapterRegistry;
79 prototype: AdapterRegistry;
79 prototype: AdapterRegistry;
80 }
80 }
81
81
82 /* dojo/aspect */
82 /* dojo/aspect */
83
83
84 interface AfterAdvice<T> {
84 interface AfterAdvice<T> {
85 (result: T, ...args: any[]): T;
85 (result: T, ...args: any[]): T;
86 }
86 }
87
87
88 interface AroundAdvice<T> {
88 interface AroundAdvice<T> {
89 (origFn: GenericFunction<T>): (...args: any[]) => T;
89 (origFn: GenericFunction<T>): (...args: any[]) => T;
90 }
90 }
91
91
92 interface BeforeAdvice {
92 interface BeforeAdvice {
93 (...args: any[]): any[] | void;
93 (...args: any[]): any[] | void;
94 }
94 }
95
95
96 interface Aspect {
96 interface Aspect {
97 /**
97 /**
98 * The "before" export of the aspect module is a function that can be used to attach
98 * The "before" export of the aspect module is a function that can be used to attach
99 * "before" advice to a method. This function will be executed before the original attach
99 * "before" advice to a method. This function will be executed before the original attach
100 * is executed. This function will be called with the arguments used to call the mattach
100 * is executed. This function will be called with the arguments used to call the mattach
101 * This function may optionally return an array as the new arguments to use tattach
101 * This function may optionally return an array as the new arguments to use tattach
102 * the original method (or the previous, next-to-execute before advice, if one exattach
102 * the original method (or the previous, next-to-execute before advice, if one exattach
103 * If the before method doesn't return anything (returns undefined) the original argattach
103 * If the before method doesn't return anything (returns undefined) the original argattach
104 * will be presattach
104 * will be presattach
105 * If there are multiple "before" advisors, they are executed in the reverse order they were registered.
105 * If there are multiple "before" advisors, they are executed in the reverse order they were registered.
106 */
106 */
107 before<T>(target: GenericObject, methodName: string, advice: BeforeAdvice | Function): Handle;
107 before<T>(target: GenericObject, methodName: string, advice: BeforeAdvice | Function): Handle;
108
108
109 /**
109 /**
110 * The "around" export of the aspect module is a function that can be used to attach
110 * The "around" export of the aspect module is a function that can be used to attach
111 * "around" advice to a method. The advisor function is immediately executeattach
111 * "around" advice to a method. The advisor function is immediately executeattach
112 * the around() is called, is passed a single argument that is a function that attach
112 * the around() is called, is passed a single argument that is a function that attach
113 * called to continue execution of the original method (or the next around advattach
113 * called to continue execution of the original method (or the next around advattach
114 * The advisor function should return a function, and this function will be called whattach
114 * The advisor function should return a function, and this function will be called whattach
115 * the method is called. It will be called with the arguments used to call the mattach
115 * the method is called. It will be called with the arguments used to call the mattach
116 * Whatever this function returns will be returned as the result of the method call (unless after advise changes it).
116 * Whatever this function returns will be returned as the result of the method call (unless after advise changes it).
117 */
117 */
118 around<T>(target: GenericObject, methodName: string, advice: AroundAdvice<T> | Function): Handle;
118 around<T>(target: GenericObject, methodName: string, advice: AroundAdvice<T> | Function): Handle;
119
119
120 /**
120 /**
121 * The "after" export of the aspect module is a function that can be used to attach
121 * The "after" export of the aspect module is a function that can be used to attach
122 * "after" advice to a method. This function will be executed after the original method
122 * "after" advice to a method. This function will be executed after the original method
123 * is executed. By default the function will be called with a single argument, the return
123 * is executed. By default the function will be called with a single argument, the return
124 * value of the original method, or the the return value of the last executed advice (if a previous one exists).
124 * value of the original method, or the the return value of the last executed advice (if a previous one exists).
125 * The fourth (optional) argument can be set to true to so the function receives the original
125 * The fourth (optional) argument can be set to true to so the function receives the original
126 * arguments (from when the original method was called) rather than the return value.
126 * arguments (from when the original method was called) rather than the return value.
127 * If there are multiple "after" advisors, they are executed in the order they were registered.
127 * If there are multiple "after" advisors, they are executed in the order they were registered.
128 */
128 */
129 after<T>(target: GenericObject, methodName: string, advice: AfterAdvice<T> | Function, receiveArguments?: boolean): Handle;
129 after<T>(target: GenericObject, methodName: string, advice: AfterAdvice<T> | Function, receiveArguments?: boolean): Handle;
130 }
130 }
131
131
132 /* dojo/back */
132 /* dojo/back */
133
133
134 interface BackArgs {
134 interface BackArgs {
135 back?: GenericFunction<void>;
135 back?: GenericFunction<void>;
136 forward?: GenericFunction<void>;
136 forward?: GenericFunction<void>;
137 changeUrl?: boolean | string;
137 changeUrl?: boolean | string;
138 }
138 }
139
139
140 interface Back {
140 interface Back {
141 getHash(): string;
141 getHash(): string;
142 setHash(h: string): void;
142 setHash(h: string): void;
143
143
144 /**
144 /**
145 * private method. Do not call this directly.
145 * private method. Do not call this directly.
146 */
146 */
147 goBack(): void;
147 goBack(): void;
148
148
149 /**
149 /**
150 * private method. Do not call this directly.
150 * private method. Do not call this directly.
151 */
151 */
152 goForward(): void;
152 goForward(): void;
153
153
154 /**
154 /**
155 * Initializes the undo stack. This must be called from a <script>
155 * Initializes the undo stack. This must be called from a <script>
156 * block that lives inside the `<body>` tag to prevent bugs on IE.
156 * block that lives inside the `<body>` tag to prevent bugs on IE.
157 * Only call this method before the page's DOM is finished loading. Otherwise
157 * Only call this method before the page's DOM is finished loading. Otherwise
158 * it will not work. Be careful with xdomain loading or djConfig.debugAtAllCosts scenarios,
158 * it will not work. Be careful with xdomain loading or djConfig.debugAtAllCosts scenarios,
159 * in order for this method to work, dojo/back will need to be part of a build layer.
159 * in order for this method to work, dojo/back will need to be part of a build layer.
160 */
160 */
161 init(): void;
161 init(): void;
162
162
163 /**
163 /**
164 * Sets the state object and back callback for the very first page
164 * Sets the state object and back callback for the very first page
165 * that is loaded.
165 * that is loaded.
166 * It is recommended that you call this method as part of an event
166 * It is recommended that you call this method as part of an event
167 * listener that is registered via dojo/ready.
167 * listener that is registered via dojo/ready.
168 */
168 */
169 setInitialState(args: BackArgs): void;
169 setInitialState(args: BackArgs): void;
170
170
171 /**
171 /**
172 * adds a state object (args) to the history list.
172 * adds a state object (args) to the history list.
173 */
173 */
174 addToHistory(args: BackArgs): void;
174 addToHistory(args: BackArgs): void;
175
175
176 /**
176 /**
177 * private method. Do not call this directly.
177 * private method. Do not call this directly.
178 */
178 */
179 _iframeLoaded(evt: Event, ifrLoc: Location): void;
179 _iframeLoaded(evt: Event, ifrLoc: Location): void;
180 }
180 }
181
181
182 /* dojo/behavior */
182 /* dojo/behavior */
183
183
184 interface Behavior {
184 interface Behavior {
185 _behaviors: { [selector: string]: any };
185 _behaviors: { [selector: string]: any };
186
186
187 /**
187 /**
188 * Add the specified behavior to the list of behaviors, ignoring existing
188 * Add the specified behavior to the list of behaviors, ignoring existing
189 * matches.
189 * matches.
190 */
190 */
191 add(behaviorObject: { [selector: string]: any }): void;
191 add(behaviorObject: { [selector: string]: any }): void;
192
192
193 /**
193 /**
194 * Applies all currently registered behaviors to the document.
194 * Applies all currently registered behaviors to the document.
195 */
195 */
196 apply(): void;
196 apply(): void;
197 }
197 }
198
198
199 /* dojo/cookie */
199 /* dojo/cookie */
200
200
201 interface CookieProps {
201 interface CookieProps {
202 expires?: Date | string | number;
202 expires?: Date | string | number;
203 path?: string;
203 path?: string;
204 domain?: string;
204 domain?: string;
205 secure?: boolean;
205 secure?: boolean;
206 }
206 }
207
207
208 interface Cookie {
208 interface Cookie {
209 /* Get or set a cookie. */
209 /* Get or set a cookie. */
210 (name: string, value?: string, props?: CookieProps): string;
210 (name: string, value?: string, props?: CookieProps): string;
211
211
212 /**
212 /**
213 * Use to determine if the current browser supports cookies or not.
213 * Use to determine if the current browser supports cookies or not.
214 */
214 */
215 isSupported(): boolean;
215 isSupported(): boolean;
216 }
216 }
217
217
218 /* dojo/currency */
218 /* dojo/currency */
219
219
220 interface CurrencyFormatOptions extends NumberFormatOptions {
220 interface CurrencyFormatOptions extends NumberFormatOptions {
221
221
222 /**
222 /**
223 * Should not be set. Value is assumed to be "currency".
223 * Should not be set. Value is assumed to be "currency".
224 */
224 */
225 type?: string;
225 type?: string;
226
226
227 /**
227 /**
228 * localized currency symbol. The default will be looked up in table of supported currencies in `dojo.cldr`
228 * localized currency symbol. The default will be looked up in table of supported currencies in `dojo.cldr`
229 * A [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code will be used if not found.
229 * A [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code will be used if not found.
230 */
230 */
231 symbol?: string;
231 symbol?: string;
232
232
233 /**
233 /**
234 * an [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD".
234 * an [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD".
235 * For use with dojo.currency only.
235 * For use with dojo.currency only.
236 */
236 */
237 currency?: string;
237 currency?: string;
238
238
239 /**
239 /**
240 * number of decimal places to show. Default is defined based on which currency is used.
240 * number of decimal places to show. Default is defined based on which currency is used.
241 */
241 */
242 places?: number;
242 places?: number;
243 }
243 }
244
244
245 interface CurrencyParseOptions extends NumberParseOptions {
245 interface CurrencyParseOptions extends NumberParseOptions {
246
246
247 /**
247 /**
248 * Should not be set. Value is assumed to be "currency".
248 * Should not be set. Value is assumed to be "currency".
249 */
249 */
250 type?: string;
250 type?: string;
251
251
252 /**
252 /**
253 * localized currency symbol. The default will be looked up in table of supported currencies in `dojo.cldr`
253 * localized currency symbol. The default will be looked up in table of supported currencies in `dojo.cldr`
254 * A [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code will be used if not found.
254 * A [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code will be used if not found.
255 */
255 */
256 symbol?: string;
256 symbol?: string;
257
257
258 /**
258 /**
259 * an [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD".
259 * an [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD".
260 * For use with dojo.currency only.
260 * For use with dojo.currency only.
261 */
261 */
262 currency?: string;
262 currency?: string;
263
263
264 /**
264 /**
265 * number of decimal places to show. Default is defined based on which currency is used.
265 * number of decimal places to show. Default is defined based on which currency is used.
266 */
266 */
267 places?: number;
267 places?: number;
268
268
269 /**
269 /**
270 * Whether to include the fractional portion, where the number of decimal places are implied by the currency
270 * Whether to include the fractional portion, where the number of decimal places are implied by the currency
271 * or explicit 'places' parameter. The value [true,false] makes the fractional portion optional.
271 * or explicit 'places' parameter. The value [true,false] makes the fractional portion optional.
272 * By default for currencies, it the fractional portion is optional.
272 * By default for currencies, it the fractional portion is optional.
273 */
273 */
274 fractional?: boolean | [boolean, boolean];
274 fractional?: boolean | [boolean, boolean];
275 }
275 }
276
276
277 interface Currency {
277 interface Currency {
278 _mixInDefaults(options: NumberFormatOptions): CurrencyFormatOptions;
278 _mixInDefaults(options: NumberFormatOptions): CurrencyFormatOptions;
279
279
280 /**
280 /**
281 * Format a Number as a currency, using locale-specific settings
281 * Format a Number as a currency, using locale-specific settings
282 */
282 */
283 format(value: number, options?: CurrencyFormatOptions): string;
283 format(value: number, options?: CurrencyFormatOptions): string;
284
284
285 /**
285 /**
286 * Builds the regular needed to parse a currency value
286 * Builds the regular needed to parse a currency value
287 */
287 */
288 regexp(options?: NumberRegexpOptions): string;
288 regexp(options?: NumberRegexpOptions): string;
289
289
290 /**
290 /**
291 * Convert a properly formatted currency string to a primitive Number,
291 * Convert a properly formatted currency string to a primitive Number,
292 * using locale-specific settings.
292 * using locale-specific settings.
293 */
293 */
294 parse(expression: string, options?: CurrencyParseOptions): number;
294 parse(expression: string, options?: CurrencyParseOptions): number;
295 }
295 }
296
296
297 /* dojo/debounce */
297 /* dojo/debounce */
298
298
299 interface Debounce {
299 interface Debounce {
300 /**
300 /**
301 * Create a function that will only execute after `wait` milliseconds
301 * Create a function that will only execute after `wait` milliseconds
302 */
302 */
303 <T extends Function>(cb: T, wait: number): T;
303 <T extends Function>(cb: T, wait: number): T;
304 <T extends Function>(cb: Function, wait: number, ...args: any[]): T;
304 <T extends Function>(cb: Function, wait: number, ...args: any[]): T;
305 }
305 }
306
306
307 /* dojo/Deferred */
307 /* dojo/Deferred */
308
308
309 interface Deferred<T> {
309 interface Deferred<T> {
310
310
311 /**
311 /**
312 * The public promise object that clients can add callbacks to.
312 * The public promise object that clients can add callbacks to.
313 */
313 */
314 promise: promise.Promise<T>;
314 promise: promise.Promise<T>;
315
315
316 /**
316 /**
317 * Checks whether the deferred has been resolved.
317 * Checks whether the deferred has been resolved.
318 */
318 */
319 isResolved(): boolean;
319 isResolved(): boolean;
320
320
321 /**
321 /**
322 * Checks whether the deferred has been rejected.
322 * Checks whether the deferred has been rejected.
323 */
323 */
324 isRejected(): boolean;
324 isRejected(): boolean;
325
325
326 /**
326 /**
327 * Checks whether the deferred has been resolved or rejected.
327 * Checks whether the deferred has been resolved or rejected.
328 */
328 */
329 isFulfilled(): boolean;
329 isFulfilled(): boolean;
330
330
331 /**
331 /**
332 * Checks whether the deferred has been canceled.
332 * Checks whether the deferred has been canceled.
333 */
333 */
334 isCanceled(): boolean;
334 isCanceled(): boolean;
335
335
336 /**
336 /**
337 * Emit a progress update on the deferred.
337 * Emit a progress update on the deferred.
338 */
338 */
339 progress(update: any, strict?: boolean): promise.Promise<T>;
339 progress(update: any, strict?: boolean): promise.Promise<T>;
340
340
341 /**
341 /**
342 * Resolve the deferred.
342 * Resolve the deferred.
343 */
343 */
344 resolve(value?: T, strict?: boolean): promise.Promise<T>;
344 resolve(value?: T, strict?: boolean): promise.Promise<T>;
345
345
346 /**
346 /**
347 * Reject the deferred.
347 * Reject the deferred.
348 */
348 */
349 reject(error?: any, strict?: boolean): promise.Promise<T>;
349 reject(error?: any, strict?: boolean): promise.Promise<T>;
350
350
351 /**
351 /**
352 * Add new callbacks to the deferred.
352 * Add new callbacks to the deferred.
353 */
353 */
354 then<U>(callback?: promise.PromiseCallback<T, U>, errback?: promise.PromiseErrback<U>, progback?: promise.PromiseProgback): promise.Promise<U>;
354 then<U>(callback?: promise.PromiseCallback<T, U>, errback?: promise.PromiseErrback<U>, progback?: promise.PromiseProgback): promise.Promise<U>;
355
355
356 /**
356 /**
357 * Inform the deferred it may cancel its asynchronous operation.
357 * Inform the deferred it may cancel its asynchronous operation.
358 */
358 */
359 cancel(reason?: any, strict?: boolean): any;
359 cancel(reason?: any, strict?: boolean): any;
360
360
361 /**
361 /**
362 * Returns `[object Deferred]`.
362 * Returns `[object Deferred]`.
363 */
363 */
364 toString(): string;
364 toString(): string;
365 }
365 }
366
366
367 interface DeferredConstructor {
367 interface DeferredConstructor {
368 /**
368 /**
369 * Creates a new deferred. This API is preferred over
369 * Creates a new deferred. This API is preferred over
370 * `dojo/_base/Deferred`.
370 * `dojo/_base/Deferred`.
371 */
371 */
372 new <T>(canceller?: (reason: any) => void): Deferred<T>;
372 new <T>(canceller?: (reason: any) => void): Deferred<T>;
373 prototype: Deferred<any>;
373 prototype: Deferred<any>;
374 }
374 }
375
375
376 /* dojo/DeferredList */
376 /* dojo/DeferredList */
377
377
378 interface DeferredList<T> extends Deferred<T[]> {
378 interface DeferredList<T> extends Deferred<T[]> {
379 /**
379 /**
380 * Gathers the results of the deferreds for packaging
380 * Gathers the results of the deferreds for packaging
381 * as the parameters to the Deferred Lists' callback
381 * as the parameters to the Deferred Lists' callback
382 */
382 */
383 gatherResults<T>(deferredList: DeferredList<any>): DeferredList<T>;
383 gatherResults<T>(deferredList: DeferredList<any>): DeferredList<T>;
384 }
384 }
385
385
386 interface DeferredListConstructor {
386 interface DeferredListConstructor {
387 /**
387 /**
388 * Deprecated, use dojo/promise/all instead.
388 * Deprecated, use dojo/promise/all instead.
389 * Provides event handling for a group of Deferred objects.
389 * Provides event handling for a group of Deferred objects.
390 */
390 */
391 new <T>(list: T[], fireOnOneCallback?: boolean, fireOnOneErrback?: boolean, consumeErrors?: boolean, canceller?: (reason: any) => void): DeferredList<T>;
391 new <T>(list: T[], fireOnOneCallback?: boolean, fireOnOneErrback?: boolean, consumeErrors?: boolean, canceller?: (reason: any) => void): DeferredList<T>;
392 prototype: DeferredList<any>;
392 prototype: DeferredList<any>;
393 }
393 }
394
394
395 /* dojo/dojo */
395 /* dojo/dojo */
396
396
397 interface RequireTrace {
397 interface RequireTrace {
398 (group: string, args: any[]): void;
398 (group: string, args: any[]): void;
399 on: boolean | number;
399 on: boolean | number;
400 group: GenericObject;
400 group: GenericObject;
401 set(group: string | GenericObject, value: any): void;
401 set(group: string | GenericObject, value: any): void;
402 }
402 }
403
403
404 interface Require {
404 interface Require {
405 (config: GenericObject, dependencies: string[], callback?: GenericFunction<void>): Require;
405 (config: GenericObject, dependencies: string[], callback?: GenericFunction<void>): Require;
406 (dependencies: string[], callback: GenericFunction<void>): Require;
406 (dependencies: string[], callback: GenericFunction<void>): Require;
407 async: number| boolean;
407 async: number| boolean;
408 has: dojo.Has;
408 has: dojo.Has;
409 isXdurl(url: string): boolean;
409 isXdurl(url: string): boolean;
410 initSyncLoader(dojoRequirePlugin: any, checkDojoRequirePlugin: any, transformToAmd: any): GenericObject;
410 initSyncLoader(dojoRequirePlugin: any, checkDojoRequirePlugin: any, transformToAmd: any): GenericObject;
411 getXhr(): XMLHttpRequest | ActiveXObject;
411 getXhr(): XMLHttpRequest | ActiveXObject;
412 getText(url: string, async?: boolean, onLoad?: (responseText: string, async?: boolean) => void): string;
412 getText(url: string, async?: boolean, onLoad?: (responseText: string, async?: boolean) => void): string;
413 eval(text: string, hint?: string): any;
413 eval(text: string, hint?: string): any;
414 signal(type: string, args: any[]): void;
414 signal(type: string, args: any[]): void;
415 on(type: string, listener: (...args: any[]) => void): Handle;
415 on(type: string, listener: (...args: any[]) => void): Handle;
416 map: { [id: string]: any };
416 map: { [id: string]: any };
417 waitms?: number;
417 waitms?: number;
418 legacyMode: boolean;
418 legacyMode: boolean;
419 rawConfig: dojo._base.Config;
419 rawConfig: dojo._base.Config;
420 baseUrl: string;
420 baseUrl: string;
421 combo?: {
421 combo?: {
422 add: () => void;
422 add: () => void;
423 done(callback: (mids: string[], url?: string) => void, req: Require): void;
423 done(callback: (mids: string[], url?: string) => void, req: Require): void;
424 plugins?: GenericObject;
424 plugins?: GenericObject;
425 };
425 };
426 idle(): boolean;
426 idle(): boolean;
427 toAbsMid(mid: string, referenceModule?: string): string;
427 toAbsMid(mid: string, referenceModule?: string): string;
428 toUrl(name: string, referenceModule?: string): string;
428 toUrl(name: string, referenceModule?: string): string;
429 undef(moduleId: string, referenceModule?: string): void;
429 undef(moduleId: string, referenceModule?: string): void;
430 pageLoaded: number | boolean;
430 pageLoaded: number | boolean;
431 injectUrl(url: string, callback?: () => void, owner?: HTMLScriptElement): HTMLScriptElement;
431 injectUrl(url: string, callback?: () => void, owner?: HTMLScriptElement): HTMLScriptElement;
432 log(...args: any[]): void;
432 log(...args: any[]): void;
433 trace: RequireTrace;
433 trace: RequireTrace;
434 boot?: [string[], Function] | number;
434 boot?: [string[], Function] | number;
435 }
435 }
436
436
437 interface Define {
437 interface Define {
438 (mid: string, dependencies?: string[], factory?: any): void;
438 (mid: string, dependencies?: string[], factory?: any): void;
439 (dependencies: string[], factory?: any): void;
439 (dependencies: string[], factory?: any): void;
440 amd: string;
440 amd: string;
441 }
441 }
442
442
443 /* dojo/dom */
443 /* dojo/dom */
444
444
445 interface Dom {
445 interface Dom {
446 /**
446 /**
447 * Returns DOM node with matching `id` attribute or falsy value (ex: null or undefined)
447 * Returns DOM node with matching `id` attribute or falsy value (ex: null or undefined)
448 * if not found. Internally if `id` is not a string then `id` returned.
448 * if not found. Internally if `id` is not a string then `id` returned.
449 */
449 */
450 byId<E extends Element>(id: string | E, doc?: Document): E;
450 byId<E extends Element>(id: string | E, doc?: Document): E;
451
451
452 /**
452 /**
453 * Returns true if node is a descendant of ancestor
453 * Returns true if node is a descendant of ancestor
454 */
454 */
455 isDescendant(node: NodeOrString, ancestor: NodeOrString): boolean;
455 isDescendant(node: NodeOrString, ancestor: NodeOrString): boolean;
456
456
457 /**
457 /**
458 * Enable or disable selection on a node
458 * Enable or disable selection on a node
459 */
459 */
460 setSelectable(node: ElementOrString, selectable?: boolean): void;
460 setSelectable(node: ElementOrString, selectable?: boolean): void;
461 }
461 }
462
462
463 /* dojo/dom-attr */
463 /* dojo/dom-attr */
464
464
465 interface DomAttr {
465 interface DomAttr {
466 /**
466 /**
467 * Returns true if the requested attribute is specified on the
467 * Returns true if the requested attribute is specified on the
468 * given element, and false otherwise.
468 * given element, and false otherwise.
469 */
469 */
470 has(node: NodeOrString, name: string): boolean;
470 has(node: NodeOrString, name: string): boolean;
471
471
472 /**
472 /**
473 * Gets an attribute on an HTML element.
473 * Gets an attribute on an HTML element.
474 * Because sometimes this uses node.getAttribute, it should be a string,
474 * Because sometimes this uses node.getAttribute, it should be a string,
475 * but it can also get any other attribute on a node, therefore it is unsafe
475 * but it can also get any other attribute on a node, therefore it is unsafe
476 * to type just a string.
476 * to type just a string.
477 */
477 */
478 get(node: ElementOrString, name: string): any;
478 get(node: ElementOrString, name: string): any;
479
479
480 /**
480 /**
481 * Sets an attribute on an HTML element.
481 * Sets an attribute on an HTML element.
482 */
482 */
483 set(node: ElementOrString, name: string, value: any): Element;
483 set(node: ElementOrString, name: string, value: any): Element;
484 set(node: ElementOrString, map: GenericObject): Element;
484 set(node: ElementOrString, map: GenericObject): Element;
485
485
486 /**
486 /**
487 * Removes an attribute from an HTML element.
487 * Removes an attribute from an HTML element.
488 */
488 */
489 remove(node: NodeOrString, name: string): void;
489 remove(node: NodeOrString, name: string): void;
490
490
491 /**
491 /**
492 * Returns an effective value of a property or an attribute.
492 * Returns an effective value of a property or an attribute.
493 */
493 */
494 getNodeProp(node: NodeOrString, name: string): any;
494 getNodeProp(node: NodeOrString, name: string): any;
495 }
495 }
496
496
497 /* dojo/dom-class */
497 /* dojo/dom-class */
498
498
499 interface DomClass {
499 interface DomClass {
500
500
501 /**
501 /**
502 * Returns whether or not the specified classes are a portion of the
502 * Returns whether or not the specified classes are a portion of the
503 * class list currently applied to the node.
503 * class list currently applied to the node.
504 */
504 */
505 contains(node: NodeOrString, classStr: string): boolean;
505 contains(node: NodeOrString, classStr: string): boolean;
506
506
507 /**
507 /**
508 * Adds the specified classes to the end of the class list on the
508 * Adds the specified classes to the end of the class list on the
509 * passed node. Will not re-apply duplicate classes.
509 * passed node. Will not re-apply duplicate classes.
510 */
510 */
511 add(node: NodeOrString, classStr: string | string[]): void;
511 add(node: NodeOrString, classStr: string | string[]): void;
512
512
513 /**
513 /**
514 * Removes the specified classes from node. No `contains()`
514 * Removes the specified classes from node. No `contains()`
515 * check is required.
515 * check is required.
516 */
516 */
517 remove(node: NodeOrString, classStr?: string | string[]): void;
517 remove(node: NodeOrString, classStr?: string | string[]): void;
518
518
519 /**
519 /**
520 * Replaces one or more classes on a node if not present.
520 * Replaces one or more classes on a node if not present.
521 * Operates more quickly than calling dojo.removeClass and dojo.addClass
521 * Operates more quickly than calling dojo.removeClass and dojo.addClass
522 */
522 */
523 replace(node: NodeOrString, addClassStr: string | string[], removeClassStr?: string | string[]): void;
523 replace(node: NodeOrString, addClassStr: string | string[], removeClassStr?: string | string[]): void;
524
524
525 /**
525 /**
526 * Adds a class to node if not present, or removes if present.
526 * Adds a class to node if not present, or removes if present.
527 * Pass a boolean condition if you want to explicitly add or remove.
527 * Pass a boolean condition if you want to explicitly add or remove.
528 * Returns the condition that was specified directly or indirectly.
528 * Returns the condition that was specified directly or indirectly.
529 */
529 */
530 toggle(node: NodeOrString, classStr: string | string[], condition?: boolean): boolean;
530 toggle(node: NodeOrString, classStr: string | string[], condition?: boolean): boolean;
531 }
531 }
532
532
533 /* dojo/dom-construct */
533 /* dojo/dom-construct */
534
534
535 /* TODO implement for TS 1.8 */
535 /* TODO implement for TS 1.8 */
536 /* type PosString = 'first' | 'after' | 'before' | 'last' | 'replace' | 'only'; */
536 /* type PosString = 'first' | 'after' | 'before' | 'last' | 'replace' | 'only'; */
537
537
538 interface DomConstruct {
538 interface DomConstruct {
539
539
540 /**
540 /**
541 * instantiates an HTML fragment returning the corresponding DOM.
541 * instantiates an HTML fragment returning the corresponding DOM.
542 */
542 */
543 toDom(frag: string, doc?: Document): DocumentFragment | Node;
543 toDom(frag: string, doc?: Document): DocumentFragment | Node;
544
544
545 /**
545 /**
546 * Attempt to insert node into the DOM, choosing from various positioning options.
546 * Attempt to insert node into the DOM, choosing from various positioning options.
547 * Returns the first argument resolved to a DOM node.
547 * Returns the first argument resolved to a DOM node.
548 */
548 */
549 place(node: NodeFragmentOrString, refNode: NodeOrString, position?: string /* PosString */ | number): HTMLElement;
549 place(node: NodeFragmentOrString, refNode: NodeOrString, position?: string /* PosString */ | number): HTMLElement;
550
550
551 /**
551 /**
552 * Create an element, allowing for optional attribute decoration
552 * Create an element, allowing for optional attribute decoration
553 * and placement.
553 * and placement.
554 */
554 */
555 create(tag: NodeOrString, attrs?: GenericObject, refNode?: NodeOrString, pos?: string /* PosString */ | number): HTMLElement;
555 create(tag: NodeOrString, attrs?: GenericObject, refNode?: NodeOrString, pos?: string /* PosString */ | number): HTMLElement;
556
556
557 /**
557 /**
558 * safely removes all children of the node.
558 * safely removes all children of the node.
559 */
559 */
560 empty(node: NodeOrString): void;
560 empty(node: NodeOrString): void;
561
561
562 /**
562 /**
563 * Removes a node from its parent, clobbering it and all of its
563 * Removes a node from its parent, clobbering it and all of its
564 * children.
564 * children.
565 */
565 */
566 destroy(node: NodeOrString): void;
566 destroy(node: NodeOrString): void;
567 }
567 }
568
568
569 /* dojo/dom-form */
569 /* dojo/dom-form */
570
570
571 interface DomForm {
571 interface DomForm {
572 /**
572 /**
573 * Serialize a form field to a JavaScript object.
573 * Serialize a form field to a JavaScript object.
574 */
574 */
575 fieldToObject(inputNode: NodeOrString): GenericObject;
575 fieldToObject(inputNode: NodeOrString): GenericObject;
576
576
577 /**
577 /**
578 * Serialize a form node to a JavaScript object.
578 * Serialize a form node to a JavaScript object.
579 */
579 */
580 toObject(fromNode: HTMLFormElement | string): GenericObject;
580 toObject(fromNode: HTMLFormElement | string): GenericObject;
581
581
582 /**
582 /**
583 * Returns a URL-encoded string representing the form passed as either a
583 * Returns a URL-encoded string representing the form passed as either a
584 * node or string ID identifying the form to serialize
584 * node or string ID identifying the form to serialize
585 */
585 */
586 toQuery(fromNode: HTMLFormElement | string): string;
586 toQuery(fromNode: HTMLFormElement | string): string;
587
587
588 /**
588 /**
589 * Create a serialized JSON string from a form node or string
589 * Create a serialized JSON string from a form node or string
590 * ID identifying the form to serialize
590 * ID identifying the form to serialize
591 */
591 */
592 toJson(formNode: HTMLFormElement | string, prettyPrint?: boolean): string;
592 toJson(formNode: HTMLFormElement | string, prettyPrint?: boolean): string;
593 }
593 }
594
594
595 /* dojo/dom-geometry */
595 /* dojo/dom-geometry */
596
596
597 interface DomGeometryWidthHeight {
597 interface DomGeometryWidthHeight {
598 w?: number;
598 w?: number;
599 h?: number;
599 h?: number;
600 }
600 }
601
601
602 interface DomGeometryBox extends DomGeometryWidthHeight {
602 interface DomGeometryBox extends DomGeometryWidthHeight {
603 l?: number;
603 l?: number;
604 t?: number;
604 t?: number;
605 }
605 }
606
606
607 interface DomGeometryBoxExtents extends DomGeometryBox {
607 interface DomGeometryBoxExtents extends DomGeometryBox {
608 r?: number;
608 r?: number;
609 b?: number;
609 b?: number;
610 }
610 }
611
611
612 interface Point {
612 interface Point {
613 x: number;
613 x: number;
614 y: number;
614 y: number;
615 }
615 }
616
616
617 interface DomGeometryXYBox extends DomGeometryWidthHeight, Point {
617 interface DomGeometryXYBox extends DomGeometryWidthHeight, Point {
618 }
618 }
619
619
620 interface DomGeometry {
620 interface DomGeometry {
621 boxModel: string; /* TODO: string literal 'border-box' | 'content-box' */
621 boxModel: string; /* TODO: string literal 'border-box' | 'content-box' */
622
622
623 /**
623 /**
624 * Returns object with special values specifically useful for node
624 * Returns object with special values specifically useful for node
625 * fitting.
625 * fitting.
626 */
626 */
627 getPadExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
627 getPadExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
628
628
629 /**
629 /**
630 * returns an object with properties useful for noting the border
630 * returns an object with properties useful for noting the border
631 * dimensions.
631 * dimensions.
632 */
632 */
633 getBorderExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
633 getBorderExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
634
634
635 /**
635 /**
636 * Returns object with properties useful for box fitting with
636 * Returns object with properties useful for box fitting with
637 * regards to padding.
637 * regards to padding.
638 */
638 */
639 getPadBorderExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
639 getPadBorderExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
640
640
641 /**
641 /**
642 * returns object with properties useful for box fitting with
642 * returns object with properties useful for box fitting with
643 * regards to box margins (i.e., the outer-box).
643 * regards to box margins (i.e., the outer-box).
644 * - l/t = marginLeft, marginTop, respectively
644 * - l/t = marginLeft, marginTop, respectively
645 * - w = total width, margin inclusive
645 * - w = total width, margin inclusive
646 * - h = total height, margin inclusive
646 * - h = total height, margin inclusive
647 * The w/h are used for calculating boxes.
647 * The w/h are used for calculating boxes.
648 * Normally application code will not need to invoke this
648 * Normally application code will not need to invoke this
649 * directly, and will use the ...box... functions instead.
649 * directly, and will use the ...box... functions instead.
650 */
650 */
651 getMarginExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
651 getMarginExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
652
652
653 /**
653 /**
654 * returns an object that encodes the width, height, left and top
654 * returns an object that encodes the width, height, left and top
655 * positions of the node's margin box.
655 * positions of the node's margin box.
656 */
656 */
657 getMarginBox(node: Element, computedStyle?: DomComputedStyle): DomGeometryBox;
657 getMarginBox(node: Element, computedStyle?: DomComputedStyle): DomGeometryBox;
658
658
659 /**
659 /**
660 * Returns an object that encodes the width, height, left and top
660 * Returns an object that encodes the width, height, left and top
661 * positions of the node's content box, irrespective of the
661 * positions of the node's content box, irrespective of the
662 * current box model.
662 * current box model.
663 */
663 */
664 getContentBox(node: Element, computedStyle?: DomComputedStyle): DomGeometryBox;
664 getContentBox(node: Element, computedStyle?: DomComputedStyle): DomGeometryBox;
665
665
666 /**
666 /**
667 * Sets the size of the node's contents, irrespective of margins,
667 * Sets the size of the node's contents, irrespective of margins,
668 * padding, or borders.
668 * padding, or borders.
669 */
669 */
670 setContentSize(node: Element, box: DomGeometryWidthHeight, computedStyle?: DomComputedStyle): void;
670 setContentSize(node: Element, box: DomGeometryWidthHeight, computedStyle?: DomComputedStyle): void;
671
671
672 /**
672 /**
673 * sets the size of the node's margin box and placement
673 * sets the size of the node's margin box and placement
674 * (left/top), irrespective of box model. Think of it as a
674 * (left/top), irrespective of box model. Think of it as a
675 * passthrough to setBox that handles box-model vagaries for
675 * passthrough to setBox that handles box-model vagaries for
676 * you.
676 * you.
677 */
677 */
678 setMarginBox(node: Element, box: DomGeometryBox, computedStyle?: DomComputedStyle): void;
678 setMarginBox(node: Element, box: DomGeometryBox, computedStyle?: DomComputedStyle): void;
679
679
680 /**
680 /**
681 * Returns true if the current language is left-to-right, and false otherwise.
681 * Returns true if the current language is left-to-right, and false otherwise.
682 */
682 */
683 isBodyLtr(doc?: Document): boolean;
683 isBodyLtr(doc?: Document): boolean;
684
684
685 /**
685 /**
686 * Returns an object with {node, x, y} with corresponding offsets.
686 * Returns an object with {node, x, y} with corresponding offsets.
687 */
687 */
688 docScroll(doc?: Document): Point;
688 docScroll(doc?: Document): Point;
689
689
690 /**
690 /**
691 * Deprecated method previously used for IE6-IE7. Now, just returns `{x:0, y:0}`.
691 * Deprecated method previously used for IE6-IE7. Now, just returns `{x:0, y:0}`.
692 */
692 */
693 getIeDocumentElementOffset(doc: Document): Point;
693 getIeDocumentElementOffset(doc: Document): Point;
694
694
695 /**
695 /**
696 * In RTL direction, scrollLeft should be a negative value, but IE
696 * In RTL direction, scrollLeft should be a negative value, but IE
697 * returns a positive one. All codes using documentElement.scrollLeft
697 * returns a positive one. All codes using documentElement.scrollLeft
698 * must call this function to fix this error, otherwise the position
698 * must call this function to fix this error, otherwise the position
699 * will offset to right when there is a horizontal scrollbar.
699 * will offset to right when there is a horizontal scrollbar.
700 */
700 */
701 fixIeBiDiScrollLeft(scrollLeft: number, doc?: Document): number;
701 fixIeBiDiScrollLeft(scrollLeft: number, doc?: Document): number;
702
702
703 /**
703 /**
704 * Gets the position and size of the passed element relative to
704 * Gets the position and size of the passed element relative to
705 * the viewport (if includeScroll==false), or relative to the
705 * the viewport (if includeScroll==false), or relative to the
706 * document root (if includeScroll==true).
706 * document root (if includeScroll==true).
707 */
707 */
708 position(node: Element, includeScroll?: boolean): DomGeometryXYBox;
708 position(node: Element, includeScroll?: boolean): DomGeometryXYBox;
709
709
710 /**
710 /**
711 * returns an object that encodes the width and height of
711 * returns an object that encodes the width and height of
712 * the node's margin box
712 * the node's margin box
713 */
713 */
714 getMarginSize(node: Element, computedStyle?: DomComputedStyle): DomGeometryWidthHeight;
714 getMarginSize(node: Element, computedStyle?: DomComputedStyle): DomGeometryWidthHeight;
715
715
716 /**
716 /**
717 * Normalizes the geometry of a DOM event, normalizing the pageX, pageY,
717 * Normalizes the geometry of a DOM event, normalizing the pageX, pageY,
718 * offsetX, offsetY, layerX, and layerX properties
718 * offsetX, offsetY, layerX, and layerX properties
719 */
719 */
720 normalizeEvent(event: Event): void;
720 normalizeEvent(event: Event): void;
721 }
721 }
722
722
723 /* dojo/dom-prop */
723 /* dojo/dom-prop */
724
724
725 interface DomProp {
725 interface DomProp {
726 /**
726 /**
727 * Gets a property on an HTML element.
727 * Gets a property on an HTML element.
728 */
728 */
729 get(node: ElementOrString, name: string): any;
729 get(node: ElementOrString, name: string): any;
730
730
731 /**
731 /**
732 * Sets a property on an HTML element.
732 * Sets a property on an HTML element.
733 */
733 */
734 set(node: ElementOrString, name: string | GenericObject, value?: any): Element;
734 set(node: ElementOrString, name: string | GenericObject, value?: any): Element;
735 }
735 }
736
736
737 /* dojo/dom-style */
737 /* dojo/dom-style */
738
738
739 // TODO move over the most common properties from CSSStyleDeclaration
739 // TODO move over the most common properties from CSSStyleDeclaration
740 interface DomComputedStyle {
740 interface DomComputedStyle {
741 position?: string;
741 position?: string;
742 width?: string;
742 width?: string;
743 height?: string;
743 height?: string;
744 [id: string]: any;
744 [id: string]: any;
745 }
745 }
746
746
747 interface DomStyle {
747 interface DomStyle {
748 /**
748 /**
749 * Returns a "computed style" object.
749 * Returns a "computed style" object.
750 */
750 */
751 getComputedStyle(node: Node): DomComputedStyle;
751 getComputedStyle(node: Node): DomComputedStyle;
752
752
753 /**
753 /**
754 * Accesses styles on a node.
754 * Accesses styles on a node.
755 */
755 */
756 get(node: ElementOrString): DomComputedStyle;
756 get(node: ElementOrString): DomComputedStyle;
757 get(node: ElementOrString, name: string): string | number;
757 get(node: ElementOrString, name: string): string | number;
758
758
759 /**
759 /**
760 * Sets styles on a node.
760 * Sets styles on a node.
761 */
761 */
762 set(node: ElementOrString, name: DomComputedStyle): DomComputedStyle;
762 set(node: ElementOrString, name: DomComputedStyle): DomComputedStyle;
763 set(node: ElementOrString, name: string, value: string | number): DomComputedStyle;
763 set(node: ElementOrString, name: string, value: string | number): DomComputedStyle;
764
764
765 /**
765 /**
766 * converts style value to pixels on IE or return a numeric value.
766 * converts style value to pixels on IE or return a numeric value.
767 */
767 */
768 toPixelValue(element: Element, value: string): number;
768 toPixelValue(element: Element, value: string): number;
769 }
769 }
770
770
771 /* dojo/domReady */
771 /* dojo/domReady */
772
772
773 interface DomReady {
773 interface DomReady {
774 /**
774 /**
775 * Plugin to delay require()/define() callback from firing until the DOM has finished
775 * Plugin to delay require()/define() callback from firing until the DOM has finished
776 */
776 */
777 (callback: Function): void;
777 (callback: Function): void;
778
778
779 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
779 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
780 _Q: Function[];
780 _Q: Function[];
781 _onEmpty(): void;
781 _onEmpty(): void;
782 }
782 }
783
783
784 /* dojo/Evented */
784 /* dojo/Evented */
785
785
786 interface Evented {
786 interface Evented {
787 on(type: string | ExtensionEvent, listener: EventListener | Function): Handle;
787 on(type: string | ExtensionEvent, listener: EventListener | Function): Handle;
788 emit(type: string | ExtensionEvent, ...events: any[]): boolean;
788 emit(type: string | ExtensionEvent, ...events: any[]): boolean;
789 }
789 }
790
790
791 interface EventedConstructor extends _base.DeclareConstructor<Evented> {
791 interface EventedConstructor extends _base.DeclareConstructor<Evented> {
792 new (params?: Object): Evented;
792 new (params?: Object): Evented;
793 }
793 }
794
794
795 /* dojo/fx */
795 /* dojo/fx */
796
796
797 /* dojo/fx augments the dojo/_base/fx, therefore it is typed in fx.d.ts and not referenced from
797 /* dojo/fx augments the dojo/_base/fx, therefore it is typed in fx.d.ts and not referenced from
798 index.d.ts or module.d.ts and is self contained typings for dojo/fx and dojo/fx/* */
798 index.d.ts or module.d.ts and is self contained typings for dojo/fx and dojo/fx/* */
799
799
800 /* dojo/gears */
800 /* dojo/gears */
801
801
802 /* This is long-ago deprecated by Google, so just doing a minimal typing */
802 /* This is long-ago deprecated by Google, so just doing a minimal typing */
803
803
804 interface Gears {
804 interface Gears {
805 _gearsObject(): any;
805 _gearsObject(): any;
806 available: boolean;
806 available: boolean;
807 }
807 }
808
808
809 /* dojo/has */
809 /* dojo/has */
810
810
811 interface HasCache {
811 interface HasCache {
812 [feature: string]: any;
812 [feature: string]: any;
813 }
813 }
814
814
815 interface HasTestFunction {
815 interface HasTestFunction {
816 /* TypeScript has no way of referring to the global scope see Microsoft/TypeScript#983 */
816 /* TypeScript has no way of referring to the global scope see Microsoft/TypeScript#983 */
817 (global?: any, doc?: Document, element?: Element): any;
817 (global?: any, doc?: Document, element?: Element): any;
818 }
818 }
819
819
820 interface Has {
820 interface Has {
821 /**
821 /**
822 * Return the current value of the named feature.
822 * Return the current value of the named feature.
823 * @param {string | number} name The name (if a string) or identifier (if an integer) of the feature to test.
823 * @param {string | number} name The name (if a string) or identifier (if an integer) of the feature to test.
824 */
824 */
825 (name: string | number): any;
825 (name: string | number): any;
826 (name: 'host-browser'): boolean;
826 (name: 'host-browser'): boolean;
827 (name: 'host-node'): any;
827 (name: 'host-node'): any;
828 (name: 'host-rhino'): boolean;
828 (name: 'host-rhino'): boolean;
829 (name: 'dom'): boolean;
829 (name: 'dom'): boolean;
830 (name: 'dojo-dom-ready-api'): 1;
830 (name: 'dojo-dom-ready-api'): 1;
831 (name: 'dojo-sniff'): 1;
831 (name: 'dojo-sniff'): 1;
832 // if host-browser is true
832 // if host-browser is true
833 (name: 'dom-addeventlistener'): void | boolean;
833 (name: 'dom-addeventlistener'): void | boolean;
834 (name: 'touch'): void | boolean;
834 (name: 'touch'): void | boolean;
835 (name: 'touch-events'): void | boolean;
835 (name: 'touch-events'): void | boolean;
836 (name: 'pointer-events'): void | boolean;
836 (name: 'pointer-events'): void | boolean;
837 (name: 'MSPointer'): void | boolean;
837 (name: 'MSPointer'): void | boolean;
838 (name: 'device-width'): void | number;
838 (name: 'device-width'): void | number;
839 (name: 'dom-attributes-explicit'): void | boolean;
839 (name: 'dom-attributes-explicit'): void | boolean;
840 (name: 'dom-attributes-specified-flag'): void | boolean;
840 (name: 'dom-attributes-specified-flag'): void | boolean;
841 // dojo/_base/browser
841 // dojo/_base/browser
842 (name: 'config-selectorEngine'): string;
842 (name: 'config-selectorEngine'): string;
843
843
844 cache: HasCache;
844 cache: HasCache;
845
845
846 /**
846 /**
847 * Register a new feature test for some named feature.
847 * Register a new feature test for some named feature.
848 */
848 */
849 add(name: string | number, test: HasTestFunction, now?: boolean, force?: boolean): any;
849 add(name: string | number, test: HasTestFunction, now?: boolean, force?: boolean): any;
850 add<T extends (Object | string | number | boolean | null | void)>(name: string | number, test: T, now?: boolean, force?: boolean): any;
850 add<T extends (Object | string | number | boolean | null | void)>(name: string | number, test: T, now?: boolean, force?: boolean): any;
851
851
852 /**
852 /**
853 * Deletes the contents of the element passed to test functions.
853 * Deletes the contents of the element passed to test functions.
854 */
854 */
855 clearElement(element: HTMLElement): HTMLElement;
855 clearElement(element: HTMLElement): HTMLElement;
856
856
857 /**
857 /**
858 * Resolves id into a module id based on possibly-nested tenary expression that branches on has feature test value(s).
858 * Resolves id into a module id based on possibly-nested tenary expression that branches on has feature test value(s).
859 */
859 */
860 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
860 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
861
861
862 /**
862 /**
863 * Conditional loading of AMD modules based on a has feature test value.
863 * Conditional loading of AMD modules based on a has feature test value.
864 */
864 */
865 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
865 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
866 }
866 }
867
867
868 /* dojo/hash */
868 /* dojo/hash */
869
869
870 interface Hash {
870 interface Hash {
871 (hash?: string, replace?: boolean): string;
871 (hash?: string, replace?: boolean): string;
872 }
872 }
873
873
874 /* dojo/hccss */
874 /* dojo/hccss */
875
875
876 /* this only does has.add and re-exports the has interface */
876 /* this only does has.add and re-exports the has interface */
877 interface Has {
877 interface Has {
878 (name: 'highcontrast'): void | boolean;
878 (name: 'highcontrast'): void | boolean;
879 }
879 }
880
880
881 /* dojo/html */
881 /* dojo/html */
882
882
883 type ContentSetterContent = string | Node | ArrayLike<Node>;
883 type ContentSetterContent = string | Node | ArrayLike<Node>;
884
884
885 interface ContentSetterParams {
885 interface ContentSetterParams {
886 node?: NodeOrString;
886 node?: NodeOrString;
887 content?: ContentSetterContent;
887 content?: ContentSetterContent;
888 id?: string;
888 id?: string;
889 cleanContent?: boolean;
889 cleanContent?: boolean;
890 extractContent?: boolean;
890 extractContent?: boolean;
891 parseContent?: boolean;
891 parseContent?: boolean;
892 parserScope?: boolean;
892 parserScope?: boolean;
893 startup?: boolean;
893 startup?: boolean;
894 onBegin?: Function;
894 onBegin?: Function;
895 onEnd?: Function;
895 onEnd?: Function;
896 tearDown?: Function;
896 tearDown?: Function;
897 onContentError?: Function;
897 onContentError?: Function;
898 onExecError?: Function;
898 onExecError?: Function;
899 }
899 }
900
900
901 interface ContentSetter {
901 interface ContentSetter {
902
902
903 /**
903 /**
904 * An node which will be the parent element that we set content into
904 * An node which will be the parent element that we set content into
905 */
905 */
906 node: NodeOrString;
906 node: NodeOrString;
907
907
908 /**
908 /**
909 * The content to be placed in the node. Can be an HTML string, a node reference, or a enumerable list of nodes
909 * The content to be placed in the node. Can be an HTML string, a node reference, or a enumerable list of nodes
910 */
910 */
911 content: ContentSetterContent;
911 content: ContentSetterContent;
912
912
913 /**
913 /**
914 * Usually only used internally, and auto-generated with each instance
914 * Usually only used internally, and auto-generated with each instance
915 */
915 */
916 id: string;
916 id: string;
917
917
918 /**
918 /**
919 * Should the content be treated as a full html document,
919 * Should the content be treated as a full html document,
920 * and the real content stripped of <html>, <body> wrapper before injection
920 * and the real content stripped of <html>, <body> wrapper before injection
921 */
921 */
922 cleanContent: boolean;
922 cleanContent: boolean;
923
923
924 /**
924 /**
925 * Should the content be treated as a full html document,
925 * Should the content be treated as a full html document,
926 * and the real content stripped of `<html> <body>` wrapper before injection
926 * and the real content stripped of `<html> <body>` wrapper before injection
927 */
927 */
928 extractContent: boolean;
928 extractContent: boolean;
929
929
930 /**
930 /**
931 * Should the node by passed to the parser after the new content is set
931 * Should the node by passed to the parser after the new content is set
932 */
932 */
933 parseContent: boolean;
933 parseContent: boolean;
934
934
935 /**
935 /**
936 * Flag passed to parser. Root for attribute names to search for. If scopeName is dojo,
936 * Flag passed to parser. Root for attribute names to search for. If scopeName is dojo,
937 * will search for data-dojo-type (or dojoType). For backwards compatibility
937 * will search for data-dojo-type (or dojoType). For backwards compatibility
938 * reasons defaults to dojo._scopeName (which is "dojo" except when
938 * reasons defaults to dojo._scopeName (which is "dojo" except when
939 * multi-version support is used, when it will be something like dojo16, dojo20, etc.)
939 * multi-version support is used, when it will be something like dojo16, dojo20, etc.)
940 */
940 */
941 parserScope: string;
941 parserScope: string;
942
942
943 /**
943 /**
944 * Start the child widgets after parsing them. Only obeyed if parseContent is true.
944 * Start the child widgets after parsing them. Only obeyed if parseContent is true.
945 */
945 */
946 startup: boolean;
946 startup: boolean;
947
947
948 /**
948 /**
949 * front-end to the set-content sequence
949 * front-end to the set-content sequence
950 */
950 */
951 set(cont?: ContentSetterContent, params?: ContentSetterParams): promise.Promise<Node> | Node;
951 set(cont?: ContentSetterContent, params?: ContentSetterParams): promise.Promise<Node> | Node;
952
952
953 /**
953 /**
954 * sets the content on the node
954 * sets the content on the node
955 */
955 */
956 setContent(): void;
956 setContent(): void;
957
957
958 /**
958 /**
959 * cleanly empty out existing content
959 * cleanly empty out existing content
960 */
960 */
961 empty(): void;
961 empty(): void;
962
962
963 /**
963 /**
964 * Called after instantiation, but before set();
964 * Called after instantiation, but before set();
965 * It allows modification of any of the object properties -
965 * It allows modification of any of the object properties -
966 * including the node and content provided - before the set operation actually takes place
966 * including the node and content provided - before the set operation actually takes place
967 */
967 */
968 onBegin(): Node;
968 onBegin(): Node;
969
969
970 /**
970 /**
971 * Called after set(), when the new content has been pushed into the node
971 * Called after set(), when the new content has been pushed into the node
972 * It provides an opportunity for post-processing before handing back the node to the caller
972 * It provides an opportunity for post-processing before handing back the node to the caller
973 * This default implementation checks a parseContent flag to optionally run the dojo parser over the new content
973 * This default implementation checks a parseContent flag to optionally run the dojo parser over the new content
974 */
974 */
975 onEnd(): Node;
975 onEnd(): Node;
976
976
977 /**
977 /**
978 * manually reset the Setter instance if its being re-used for example for another set()
978 * manually reset the Setter instance if its being re-used for example for another set()
979 */
979 */
980 tearDown(): void;
980 tearDown(): void;
981
981
982 onContentError(): string;
982 onContentError(): string;
983 onExecError(): string;
983 onExecError(): string;
984 _mixin(params: ContentSetterParams): void;
984 _mixin(params: ContentSetterParams): void;
985 parseDeferred: Deferred<any[]>;
985 parseDeferred: Deferred<any[]>;
986
986
987 /**
987 /**
988 * runs the dojo parser over the node contents, storing any results in this.parseResults
988 * runs the dojo parser over the node contents, storing any results in this.parseResults
989 */
989 */
990 _parse(): void;
990 _parse(): void;
991
991
992 /**
992 /**
993 * shows user the string that is returned by on[type]Error
993 * shows user the string that is returned by on[type]Error
994 * override/implement on[type]Error and return your own string to customize
994 * override/implement on[type]Error and return your own string to customize
995 */
995 */
996 _onError(type: string, err: Error, consoleText?: string): void;
996 _onError(type: string, err: Error, consoleText?: string): void;
997 }
997 }
998
998
999 interface ContentSetterConstructor extends _base.DeclareConstructor<ContentSetter> {
999 interface ContentSetterConstructor extends _base.DeclareConstructor<ContentSetter> {
1000 new (params?: ContentSetterParams, node?: NodeOrString): ContentSetter;
1000 new (params?: ContentSetterParams, node?: NodeOrString): ContentSetter;
1001 }
1001 }
1002
1002
1003 interface Html {
1003 interface Html {
1004 /**
1004 /**
1005 * removes !DOCTYPE and title elements from the html string.
1005 * removes !DOCTYPE and title elements from the html string.
1006 *
1006 *
1007 * khtml is picky about dom faults, you can't attach a style or `<title>` node as child of body
1007 * khtml is picky about dom faults, you can't attach a style or `<title>` node as child of body
1008 * must go into head, so we need to cut out those tags
1008 * must go into head, so we need to cut out those tags
1009 */
1009 */
1010 _secureForInnerHtml(cont: string): string;
1010 _secureForInnerHtml(cont: string): string;
1011
1011
1012 /**
1012 /**
1013 * Deprecated, should use dojo/dom-constuct.empty() directly, remove in 2.0.
1013 * Deprecated, should use dojo/dom-constuct.empty() directly, remove in 2.0.
1014 */
1014 */
1015 _emptyNode(node: NodeOrString): void;
1015 _emptyNode(node: NodeOrString): void;
1016
1016
1017 /**
1017 /**
1018 * inserts the given content into the given node
1018 * inserts the given content into the given node
1019 */
1019 */
1020 _setNodeContent<T extends Node>(node: Node, cont: string | Node | ArrayLike<T>): Node;
1020 _setNodeContent<T extends Node>(node: Node, cont: string | Node | ArrayLike<T>): Node;
1021
1021
1022 _ContentSetter: ContentSetterConstructor;
1022 _ContentSetter: ContentSetterConstructor;
1023
1023
1024 /**
1024 /**
1025 * inserts (replaces) the given content into the given node. dojo/dom-construct.place(cont, node, "only")
1025 * inserts (replaces) the given content into the given node. dojo/dom-construct.place(cont, node, "only")
1026 * may be a better choice for simple HTML insertion.
1026 * may be a better choice for simple HTML insertion.
1027 */
1027 */
1028 set(node: Node, cont?: ContentSetterContent, params?: ContentSetterParams): promise.Promise<Node> | Node;
1028 set(node: Node, cont?: ContentSetterContent, params?: ContentSetterParams): promise.Promise<Node> | Node;
1029 }
1029 }
1030
1030
1031 /* dojo/i18n */
1031 /* dojo/i18n */
1032
1032
1033 interface I18n {
1033 interface I18n {
1034 getLocalization(moduleName: string, bundleName: string, locale?: string): any;
1034 getLocalization(moduleName: string, bundleName: string, locale?: string): any;
1035
1035
1036 dynamic: boolean;
1036 dynamic: boolean;
1037
1037
1038 /**
1038 /**
1039 * Resolves id into a module id based on possibly-nested tenary expression that branches on has feature test value(s).
1039 * Resolves id into a module id based on possibly-nested tenary expression that branches on has feature test value(s).
1040 */
1040 */
1041 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
1041 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
1042
1042
1043 normalizeLocale(locale?: string): string;
1043 normalizeLocale(locale?: string): string;
1044
1044
1045 /**
1045 /**
1046 * Conditional loading of AMD modules based on a has feature test value.
1046 * Conditional loading of AMD modules based on a has feature test value.
1047 */
1047 */
1048 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
1048 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
1049
1049
1050 cache: { [bundle: string]: any };
1050 cache: { [bundle: string]: any };
1051
1051
1052 getL10nName(moduleName: string, bundleName: string, locale?: string): string;
1052 getL10nName(moduleName: string, bundleName: string, locale?: string): string;
1053 }
1053 }
1054
1054
1055 /* dojo/io-query */
1055 /* dojo/io-query */
1056
1056
1057 interface IoQuery {
1057 interface IoQuery {
1058 /**
1058 /**
1059 * takes a name/value mapping object and returns a string representing
1059 * takes a name/value mapping object and returns a string representing
1060 * a URL-encoded version of that object.
1060 * a URL-encoded version of that object.
1061 */
1061 */
1062 objectToQuery(map: GenericObject): string;
1062 objectToQuery(map: GenericObject): string;
1063
1063
1064 /**
1064 /**
1065 * Create an object representing a de-serialized query section of a
1065 * Create an object representing a de-serialized query section of a
1066 * URL. Query keys with multiple values are returned in an array.
1066 * URL. Query keys with multiple values are returned in an array.
1067 */
1067 */
1068 queryToObject(str: string): GenericObject;
1068 queryToObject(str: string): GenericObject;
1069 }
1069 }
1070
1070
1071 /* dojo/json */
1071 /* dojo/json */
1072
1072
1073 interface Json {
1073 interface Json {
1074
1074
1075 /**
1075 /**
1076 * Parses a [JSON](http://json.org) string to return a JavaScript object.
1076 * Parses a [JSON](http://json.org) string to return a JavaScript object.
1077 */
1077 */
1078 parse(str: string, strict?: boolean): any;
1078 parse(str: string, strict?: boolean): any;
1079
1079
1080 /**
1080 /**
1081 * Returns a [JSON](http://json.org) serialization of an object.
1081 * Returns a [JSON](http://json.org) serialization of an object.
1082 */
1082 */
1083 stringify(value: any, replacer?: (key: string, value: any) => any| any[], space?: string | number): string;
1083 stringify(value: any, replacer?: (key: string, value: any) => any| any[], space?: string | number): string;
1084 }
1084 }
1085
1085
1086 /* dojo/keys */
1086 /* dojo/keys */
1087
1087
1088 interface Keys {
1088 interface Keys {
1089 BACKSPACE: number;
1089 BACKSPACE: number;
1090 TAB: number;
1090 TAB: number;
1091 CLEAR: number;
1091 CLEAR: number;
1092 ENTER: number;
1092 ENTER: number;
1093 SHIFT: number;
1093 SHIFT: number;
1094 CTRL: number;
1094 CTRL: number;
1095 ALT: number;
1095 ALT: number;
1096 META: number;
1096 META: number;
1097 PAUSE: number;
1097 PAUSE: number;
1098 CAPS_LOCK: number;
1098 CAPS_LOCK: number;
1099 ESCAPE: number;
1099 ESCAPE: number;
1100 SPACE: number;
1100 SPACE: number;
1101 PAGE_UP: number;
1101 PAGE_UP: number;
1102 PAGE_DOWN: number;
1102 PAGE_DOWN: number;
1103 END: number;
1103 END: number;
1104 HOME: number;
1104 HOME: number;
1105 LEFT_ARROW: number;
1105 LEFT_ARROW: number;
1106 UP_ARROW: number;
1106 UP_ARROW: number;
1107 RIGHT_ARROW: number;
1107 RIGHT_ARROW: number;
1108 DOWN_ARROW: number;
1108 DOWN_ARROW: number;
1109 INSERT: number;
1109 INSERT: number;
1110 DELETE: number;
1110 DELETE: number;
1111 HELP: number;
1111 HELP: number;
1112 LEFT_WINDOW: number;
1112 LEFT_WINDOW: number;
1113 RIGHT_WINDOW: number;
1113 RIGHT_WINDOW: number;
1114 SELECT: number;
1114 SELECT: number;
1115 NUMPAD_0: number;
1115 NUMPAD_0: number;
1116 NUMPAD_1: number;
1116 NUMPAD_1: number;
1117 NUMPAD_2: number;
1117 NUMPAD_2: number;
1118 NUMPAD_3: number;
1118 NUMPAD_3: number;
1119 NUMPAD_4: number;
1119 NUMPAD_4: number;
1120 NUMPAD_5: number;
1120 NUMPAD_5: number;
1121 NUMPAD_6: number;
1121 NUMPAD_6: number;
1122 NUMPAD_7: number;
1122 NUMPAD_7: number;
1123 NUMPAD_8: number;
1123 NUMPAD_8: number;
1124 NUMPAD_9: number;
1124 NUMPAD_9: number;
1125 NUMPAD_MULTIPLY: number;
1125 NUMPAD_MULTIPLY: number;
1126 NUMPAD_PLUS: number;
1126 NUMPAD_PLUS: number;
1127 NUMPAD_ENTER: number;
1127 NUMPAD_ENTER: number;
1128 NUMPAD_MINUS: number;
1128 NUMPAD_MINUS: number;
1129 NUMPAD_PERIOD: number;
1129 NUMPAD_PERIOD: number;
1130 NUMPAD_DIVIDE: number;
1130 NUMPAD_DIVIDE: number;
1131 F1: number;
1131 F1: number;
1132 F2: number;
1132 F2: number;
1133 F3: number;
1133 F3: number;
1134 F4: number;
1134 F4: number;
1135 F5: number;
1135 F5: number;
1136 F6: number;
1136 F6: number;
1137 F7: number;
1137 F7: number;
1138 F8: number;
1138 F8: number;
1139 F9: number;
1139 F9: number;
1140 F10: number;
1140 F10: number;
1141 F11: number;
1141 F11: number;
1142 F12: number;
1142 F12: number;
1143 F13: number;
1143 F13: number;
1144 F14: number;
1144 F14: number;
1145 F15: number;
1145 F15: number;
1146 NUM_LOCK: number;
1146 NUM_LOCK: number;
1147 SCROLL_LOCK: number;
1147 SCROLL_LOCK: number;
1148 UP_DPAD: number;
1148 UP_DPAD: number;
1149 DOWN_DPAD: number;
1149 DOWN_DPAD: number;
1150 LEFT_DPAD: number;
1150 LEFT_DPAD: number;
1151 RIGHT_DPAD: number;
1151 RIGHT_DPAD: number;
1152 copyKey: number;
1152 copyKey: number;
1153 }
1153 }
1154
1154
1155 /* dojo/loadInit */
1155 /* dojo/loadInit */
1156
1156
1157 interface LoadInit {
1157 interface LoadInit {
1158 dynamic: number;
1158 dynamic: number;
1159
1159
1160 /**
1160 /**
1161 * Resolves id into a module id based on possibly-nested tenary expression that branches on has feature test value(s).
1161 * Resolves id into a module id based on possibly-nested tenary expression that branches on has feature test value(s).
1162 */
1162 */
1163 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
1163 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
1164
1164
1165 /**
1165 /**
1166 * Conditional loading of AMD modules based on a has feature test value.
1166 * Conditional loading of AMD modules based on a has feature test value.
1167 */
1167 */
1168 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
1168 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
1169 }
1169 }
1170
1170
1171 /* dojo/mouse */
1171 /* dojo/mouse */
1172
1172
1173 interface Mouse {
1173 interface Mouse {
1174 _eventHandler(type: string, selectHandler?: (evt: MouseEvent, listener: EventListener) => void): MouseEvent;
1174 _eventHandler(type: string, selectHandler?: (evt: MouseEvent, listener: EventListener) => void): MouseEvent;
1175
1175
1176 /**
1176 /**
1177 * This is an extension event for the mouseenter that IE provides, emulating the
1177 * This is an extension event for the mouseenter that IE provides, emulating the
1178 * behavior on other browsers.
1178 * behavior on other browsers.
1179 */
1179 */
1180 enter: MouseEvent;
1180 enter: MouseEvent;
1181
1181
1182 /**
1182 /**
1183 * This is an extension event for the mouseleave that IE provides, emulating the
1183 * This is an extension event for the mouseleave that IE provides, emulating the
1184 * behavior on other browsers.
1184 * behavior on other browsers.
1185 */
1185 */
1186 leave: MouseEvent;
1186 leave: MouseEvent;
1187
1187
1188 /**
1188 /**
1189 * This is an extension event for the mousewheel that non-Mozilla browsers provide,
1189 * This is an extension event for the mousewheel that non-Mozilla browsers provide,
1190 * emulating the behavior on Mozilla based browsers.
1190 * emulating the behavior on Mozilla based browsers.
1191 */
1191 */
1192 wheel: string | ExtensionEvent;
1192 wheel: string | ExtensionEvent;
1193
1193
1194 /**
1194 /**
1195 * Test an event object (from a mousedown event) to see if the left button was pressed.
1195 * Test an event object (from a mousedown event) to see if the left button was pressed.
1196 */
1196 */
1197 isLeft(e: MouseEvent): boolean;
1197 isLeft(e: MouseEvent): boolean;
1198
1198
1199 /**
1199 /**
1200 * Test an event object (from a mousedown event) to see if the middle button was pressed.
1200 * Test an event object (from a mousedown event) to see if the middle button was pressed.
1201 */
1201 */
1202 isMiddle(e: MouseEvent): boolean;
1202 isMiddle(e: MouseEvent): boolean;
1203
1203
1204 /**
1204 /**
1205 * Test an event object (from a mousedown event) to see if the right button was pressed.
1205 * Test an event object (from a mousedown event) to see if the right button was pressed.
1206 */
1206 */
1207 isRight(e: MouseEvent): boolean;
1207 isRight(e: MouseEvent): boolean;
1208 }
1208 }
1209
1209
1210 /* dojo/node */
1210 /* dojo/node */
1211
1211
1212 /* should only be used for re-exporting CommonJS modules */
1212 /* should only be used for re-exporting CommonJS modules */
1213
1213
1214 /* dojo/NodeList */
1214 /* dojo/NodeList */
1215
1215
1216 /* Just proxies dojo/query::NodeList */
1216 /* Just proxies dojo/query::NodeList */
1217
1217
1218 /* dojo/NodeList-* are included as seperate .d.ts files */
1218 /* dojo/NodeList-* are included as seperate .d.ts files */
1219
1219
1220 /* dojo/number */
1220 /* dojo/number */
1221
1221
1222 interface NumberFormatOptions {
1222 interface NumberFormatOptions {
1223
1223
1224 /**
1224 /**
1225 * override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)
1225 * override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)
1226 * with this string. Default value is based on locale. Overriding this property will defeat
1226 * with this string. Default value is based on locale. Overriding this property will defeat
1227 * localization. Literal characters in patterns are not supported.
1227 * localization. Literal characters in patterns are not supported.
1228 */
1228 */
1229 pattern?: string;
1229 pattern?: string;
1230
1230
1231 /**
1231 /**
1232 * choose a format type based on the locale from the following:
1232 * choose a format type based on the locale from the following:
1233 * decimal, scientific (not yet supported), percent, currency. decimal by default.
1233 * decimal, scientific (not yet supported), percent, currency. decimal by default.
1234 */
1234 */
1235 type?: string;
1235 type?: string;
1236
1236
1237 /**
1237 /**
1238 * fixed number of decimal places to show. This overrides any
1238 * fixed number of decimal places to show. This overrides any
1239 * information in the provided pattern.
1239 * information in the provided pattern.
1240 */
1240 */
1241 places?: number;
1241 places?: number;
1242
1242
1243 /**
1243 /**
1244 * 5 rounds to nearest .5; 0 rounds to nearest whole (default). -1
1244 * 5 rounds to nearest .5; 0 rounds to nearest whole (default). -1
1245 * means do not round.
1245 * means do not round.
1246 */
1246 */
1247 round?: number;
1247 round?: number;
1248
1248
1249 /**
1249 /**
1250 * override the locale used to determine formatting rules
1250 * override the locale used to determine formatting rules
1251 */
1251 */
1252 locale?: string;
1252 locale?: string;
1253
1253
1254 /**
1254 /**
1255 * If false, show no decimal places, overriding places and pattern settings.
1255 * If false, show no decimal places, overriding places and pattern settings.
1256 */
1256 */
1257 fractional?: boolean | [ boolean, boolean ];
1257 fractional?: boolean | [ boolean, boolean ];
1258 }
1258 }
1259
1259
1260 interface NumberFormatAbsoluteOptions {
1260 interface NumberFormatAbsoluteOptions {
1261 /**
1261 /**
1262 * the decimal separator
1262 * the decimal separator
1263 */
1263 */
1264 decimal?: string;
1264 decimal?: string;
1265
1265
1266 /**
1266 /**
1267 * the group separator
1267 * the group separator
1268 */
1268 */
1269 group?: string;
1269 group?: string;
1270
1270
1271 /**
1271 /**
1272 * number of decimal places. the range "n,m" will format to m places.
1272 * number of decimal places. the range "n,m" will format to m places.
1273 */
1273 */
1274 places?: number | string;
1274 places?: number | string;
1275
1275
1276 /**
1276 /**
1277 * 5 rounds to nearest .5; 0 rounds to nearest whole (default). -1
1277 * 5 rounds to nearest .5; 0 rounds to nearest whole (default). -1
1278 * means don't round.
1278 * means don't round.
1279 */
1279 */
1280 round?: number;
1280 round?: number;
1281 }
1281 }
1282
1282
1283 interface NumberRegexpOptions {
1283 interface NumberRegexpOptions {
1284
1284
1285 /**
1285 /**
1286 * override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)
1286 * override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)
1287 * with this string. Default value is based on locale. Overriding this property will defeat
1287 * with this string. Default value is based on locale. Overriding this property will defeat
1288 * localization.
1288 * localization.
1289 */
1289 */
1290 pattern?: string;
1290 pattern?: string;
1291
1291
1292 /**
1292 /**
1293 * choose a format type based on the locale from the following:
1293 * choose a format type based on the locale from the following:
1294 * decimal, scientific (not yet supported), percent, currency. decimal by default.
1294 * decimal, scientific (not yet supported), percent, currency. decimal by default.
1295 */
1295 */
1296 type?: string;
1296 type?: string;
1297
1297
1298 /**
1298 /**
1299 * override the locale used to determine formatting rules
1299 * override the locale used to determine formatting rules
1300 */
1300 */
1301 locacle?: string;
1301 locacle?: string;
1302
1302
1303 /**
1303 /**
1304 * strict parsing, false by default. Strict parsing requires input as produced by the format() method.
1304 * strict parsing, false by default. Strict parsing requires input as produced by the format() method.
1305 * Non-strict is more permissive, e.g. flexible on white space, omitting thousands separators
1305 * Non-strict is more permissive, e.g. flexible on white space, omitting thousands separators
1306 */
1306 */
1307 strict?: boolean;
1307 strict?: boolean;
1308
1308
1309 /**
1309 /**
1310 * number of decimal places to accept: Infinity, a positive number, or
1310 * number of decimal places to accept: Infinity, a positive number, or
1311 * a range "n,m". Defined by pattern or Infinity if pattern not provided.
1311 * a range "n,m". Defined by pattern or Infinity if pattern not provided.
1312 */
1312 */
1313 places?: number | string;
1313 places?: number | string;
1314 }
1314 }
1315
1315
1316 interface NumberParseOptions {
1316 interface NumberParseOptions {
1317
1317
1318 /**
1318 /**
1319 * override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)
1319 * override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)
1320 * with this string. Default value is based on locale. Overriding this property will defeat
1320 * with this string. Default value is based on locale. Overriding this property will defeat
1321 * localization. Literal characters in patterns are not supported.
1321 * localization. Literal characters in patterns are not supported.
1322 */
1322 */
1323 pattern?: string;
1323 pattern?: string;
1324
1324
1325 /**
1325 /**
1326 * choose a format type based on the locale from the following:
1326 * choose a format type based on the locale from the following:
1327 * decimal, scientific (not yet supported), percent, currency. decimal by default.
1327 * decimal, scientific (not yet supported), percent, currency. decimal by default.
1328 */
1328 */
1329 type?: string;
1329 type?: string;
1330
1330
1331 /**
1331 /**
1332 * override the locale used to determine formatting rules
1332 * override the locale used to determine formatting rules
1333 */
1333 */
1334 locale?: string;
1334 locale?: string;
1335
1335
1336 /**
1336 /**
1337 * strict parsing, false by default. Strict parsing requires input as produced by the format() method.
1337 * strict parsing, false by default. Strict parsing requires input as produced by the format() method.
1338 * Non-strict is more permissive, e.g. flexible on white space, omitting thousands separators
1338 * Non-strict is more permissive, e.g. flexible on white space, omitting thousands separators
1339 */
1339 */
1340 strict?: boolean;
1340 strict?: boolean;
1341
1341
1342 /**
1342 /**
1343 * Whether to include the fractional portion, where the number of decimal places are implied by pattern
1343 * Whether to include the fractional portion, where the number of decimal places are implied by pattern
1344 * or explicit 'places' parameter. The value [true,false] makes the fractional portion optional.
1344 * or explicit 'places' parameter. The value [true,false] makes the fractional portion optional.
1345 */
1345 */
1346 fractional?: boolean | [boolean, boolean];
1346 fractional?: boolean | [boolean, boolean];
1347 }
1347 }
1348
1348
1349 interface RealNumberRegexpFlags {
1349 interface RealNumberRegexpFlags {
1350
1350
1351 /**
1351 /**
1352 * The integer number of decimal places or a range given as "n,m". If
1352 * The integer number of decimal places or a range given as "n,m". If
1353 * not given, the decimal part is optional and the number of places is
1353 * not given, the decimal part is optional and the number of places is
1354 * unlimited.
1354 * unlimited.
1355 */
1355 */
1356 places?: number;
1356 places?: number;
1357
1357
1358 /**
1358 /**
1359 * A string for the character used as the decimal point. Default
1359 * A string for the character used as the decimal point. Default
1360 * is ".".
1360 * is ".".
1361 */
1361 */
1362 decimal?: string;
1362 decimal?: string;
1363
1363
1364 /**
1364 /**
1365 * Whether decimal places are used. Can be true, false, or [true,
1365 * Whether decimal places are used. Can be true, false, or [true,
1366 * false]. Default is [true, false] which means optional.
1366 * false]. Default is [true, false] which means optional.
1367 */
1367 */
1368 fractional?: boolean | [boolean, boolean];
1368 fractional?: boolean | [boolean, boolean];
1369
1369
1370 /**
1370 /**
1371 * Express in exponential notation. Can be true, false, or [true,
1371 * Express in exponential notation. Can be true, false, or [true,
1372 * false]. Default is [true, false], (i.e. will match if the
1372 * false]. Default is [true, false], (i.e. will match if the
1373 * exponential part is present are not).
1373 * exponential part is present are not).
1374 */
1374 */
1375 exponent?: boolean | [boolean, boolean];
1375 exponent?: boolean | [boolean, boolean];
1376
1376
1377 /**
1377 /**
1378 * The leading plus-or-minus sign on the exponent. Can be true,
1378 * The leading plus-or-minus sign on the exponent. Can be true,
1379 * false, or [true, false]. Default is [true, false], (i.e. will
1379 * false, or [true, false]. Default is [true, false], (i.e. will
1380 * match if it is signed or unsigned). flags in regexp.integer can be
1380 * match if it is signed or unsigned). flags in regexp.integer can be
1381 * applied.
1381 * applied.
1382 */
1382 */
1383 eSigned?: boolean | [boolean, boolean];
1383 eSigned?: boolean | [boolean, boolean];
1384 }
1384 }
1385
1385
1386 interface IntegerRegexpFlags {
1386 interface IntegerRegexpFlags {
1387
1387
1388 /**
1388 /**
1389 * The leading plus-or-minus sign. Can be true, false, or `[true,false]`.
1389 * The leading plus-or-minus sign. Can be true, false, or `[true,false]`.
1390 * Default is `[true, false]`, (i.e. will match if it is signed
1390 * Default is `[true, false]`, (i.e. will match if it is signed
1391 * or unsigned).
1391 * or unsigned).
1392 */
1392 */
1393 signed?: boolean;
1393 signed?: boolean;
1394
1394
1395 /**
1395 /**
1396 * The character used as the thousands separator. Default is no
1396 * The character used as the thousands separator. Default is no
1397 * separator. For more than one symbol use an array, e.g. `[",", ""]`,
1397 * separator. For more than one symbol use an array, e.g. `[",", ""]`,
1398 * makes ',' optional.
1398 * makes ',' optional.
1399 */
1399 */
1400 separator?: string;
1400 separator?: string;
1401
1401
1402 /**
1402 /**
1403 * group size between separators
1403 * group size between separators
1404 */
1404 */
1405 groupSize?: number;
1405 groupSize?: number;
1406
1406
1407 /**
1407 /**
1408 * second grouping, where separators 2..n have a different interval than the first separator (for India)
1408 * second grouping, where separators 2..n have a different interval than the first separator (for India)
1409 */
1409 */
1410 groupSize2?: number;
1410 groupSize2?: number;
1411 }
1411 }
1412
1412
1413 interface Number {
1413 interface Number {
1414 /**
1414 /**
1415 * Format a Number as a String, using locale-specific settings
1415 * Format a Number as a String, using locale-specific settings
1416 */
1416 */
1417 format(value: number, options?: NumberFormatOptions): string;
1417 format(value: number, options?: NumberFormatOptions): string;
1418
1418
1419 /**
1419 /**
1420 * not precise, but good enough
1420 * not precise, but good enough
1421 */
1421 */
1422 _numberPatternRE: RegExp;
1422 _numberPatternRE: RegExp;
1423
1423
1424 /**
1424 /**
1425 * Apply pattern to format value as a string using options. Gives no
1425 * Apply pattern to format value as a string using options. Gives no
1426 * consideration to local customs.
1426 * consideration to local customs.
1427 */
1427 */
1428 _applyPattern(value: number, pattern: string, options?: NumberFormatOptions): string;
1428 _applyPattern(value: number, pattern: string, options?: NumberFormatOptions): string;
1429
1429
1430 /**
1430 /**
1431 * Rounds to the nearest value with the given number of decimal places, away from zero
1431 * Rounds to the nearest value with the given number of decimal places, away from zero
1432 */
1432 */
1433 round(value: number, places?: number, increment?: number): number;
1433 round(value: number, places?: number, increment?: number): number;
1434
1434
1435 /**
1435 /**
1436 * Apply numeric pattern to absolute value using options. Gives no
1436 * Apply numeric pattern to absolute value using options. Gives no
1437 * consideration to local customs.
1437 * consideration to local customs.
1438 */
1438 */
1439 _formatAbsolute(value: number, pattern: string, options?: NumberFormatAbsoluteOptions): string;
1439 _formatAbsolute(value: number, pattern: string, options?: NumberFormatAbsoluteOptions): string;
1440
1440
1441 /**
1441 /**
1442 * Builds the regular needed to parse a number
1442 * Builds the regular needed to parse a number
1443 */
1443 */
1444 regexp(options?: NumberRegexpOptions): string;
1444 regexp(options?: NumberRegexpOptions): string;
1445
1445
1446 _parseInfo(options?: any): { regexp: string, group: string, decimal: string, factor: number };
1446 _parseInfo(options?: any): { regexp: string, group: string, decimal: string, factor: number };
1447
1447
1448 /**
1448 /**
1449 * Convert a properly formatted string to a primitive Number, using
1449 * Convert a properly formatted string to a primitive Number, using
1450 * locale-specific settings.
1450 * locale-specific settings.
1451 */
1451 */
1452 parse(expression: string, options?: NumberParseOptions): number;
1452 parse(expression: string, options?: NumberParseOptions): number;
1453
1453
1454 /**
1454 /**
1455 * Builds a regular expression to match a real number in exponential
1455 * Builds a regular expression to match a real number in exponential
1456 * notation
1456 * notation
1457 */
1457 */
1458 _realNumberRegexp(flags: RealNumberRegexpFlags): string;
1458 _realNumberRegexp(flags: RealNumberRegexpFlags): string;
1459
1459
1460 /**
1460 /**
1461 * Builds a regular expression that matches an integer
1461 * Builds a regular expression that matches an integer
1462 */
1462 */
1463 _integerRegexp(flags: IntegerRegexpFlags): string;
1463 _integerRegexp(flags: IntegerRegexpFlags): string;
1464 }
1464 }
1465
1465
1466 /* dojo/on */
1466 /* dojo/on */
1467
1467
1468 interface ExtensionEvent {
1468 interface ExtensionEvent {
1469 (target: Element | GenericObject, listener: EventListener): Handle;
1469 (target: Element | GenericObject, listener: EventListener): Handle;
1470 }
1470 }
1471
1471
1472 interface PauseHandle extends Handle {
1472 interface PauseHandle extends Handle {
1473 pause(): void;
1473 pause(): void;
1474 resume(): void;
1474 resume(): void;
1475 }
1475 }
1476
1476
1477 interface MatchesTarget {
1477 interface MatchesTarget {
1478 matches(node: Element, selector: string, context?: any): any[];
1478 matches(node: Element, selector: string, context?: any): any[];
1479 [id: string]: any;
1479 [id: string]: any;
1480 }
1480 }
1481
1481
1482 interface On {
1482 interface On {
1483 /**
1483 /**
1484 * A function that provides core event listening functionality. With this function
1484 * A function that provides core event listening functionality. With this function
1485 * you can provide a target, event type, and listener to be notified of
1485 * you can provide a target, event type, and listener to be notified of
1486 * future matching events that are fired.
1486 * future matching events that are fired.
1487 */
1487 */
1488 (target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix?: boolean): Handle;
1488 (target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix?: boolean): Handle;
1489
1489
1490 /**
1490 /**
1491 * This function acts the same as on(), but with pausable functionality. The
1491 * This function acts the same as on(), but with pausable functionality. The
1492 * returned signal object has pause() and resume() functions. Calling the
1492 * returned signal object has pause() and resume() functions. Calling the
1493 * pause() method will cause the listener to not be called for future events.
1493 * pause() method will cause the listener to not be called for future events.
1494 */
1494 */
1495 pausable(target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix?: boolean): PauseHandle;
1495 pausable(target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix?: boolean): PauseHandle;
1496
1496
1497 /**
1497 /**
1498 * This function acts the same as on(), but will only call the listener once. The
1498 * This function acts the same as on(), but will only call the listener once. The
1499 * listener will be called for the first
1499 * listener will be called for the first
1500 * event that takes place and then listener will automatically be removed.
1500 * event that takes place and then listener will automatically be removed.
1501 */
1501 */
1502 once(target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix?: boolean): Handle;
1502 once(target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix?: boolean): Handle;
1503
1503
1504 parse(target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix: boolean, matchesTarget: Element | GenericObject): Handle;
1504 parse(target: Element | GenericObject, type: string | ExtensionEvent, listener: EventListener | Function, dontFix: boolean, matchesTarget: Element | GenericObject): Handle;
1505
1505
1506 /**
1506 /**
1507 * Check if a node match the current selector within the constraint of a context
1507 * Check if a node match the current selector within the constraint of a context
1508 */
1508 */
1509 matches(node: Element, selector: string, context: Element, children: boolean, matchesTarget?: MatchesTarget): Element | boolean;
1509 matches(node: Element, selector: string, context: Element, children: boolean, matchesTarget?: MatchesTarget): Element | boolean;
1510
1510
1511 /**
1511 /**
1512 * Creates a new extension event with event delegation. This is based on
1512 * Creates a new extension event with event delegation. This is based on
1513 * the provided event type (can be extension event) that
1513 * the provided event type (can be extension event) that
1514 * only calls the listener when the CSS selector matches the target of the event.
1514 * only calls the listener when the CSS selector matches the target of the event.
1515 *
1515 *
1516 * The application must require() an appropriate level of dojo/query to handle the selector.
1516 * The application must require() an appropriate level of dojo/query to handle the selector.
1517 */
1517 */
1518 selector(selector: string, type: string | ExtensionEvent, children?: boolean): ExtensionEvent;
1518 selector(selector: string, type: string | ExtensionEvent, children?: boolean): ExtensionEvent;
1519
1519
1520 /**
1520 /**
1521 * Fires an event on the target object.
1521 * Fires an event on the target object.
1522 */
1522 */
1523 emit(target: Element | GenericObject, type: string | ExtensionEvent, event?: any): boolean;
1523 emit(target: Element | GenericObject, type: string | ExtensionEvent, event?: any): boolean;
1524
1524
1525 /**
1525 /**
1526 * normalizes properties on the event object including event
1526 * normalizes properties on the event object including event
1527 * bubbling methods, keystroke normalization, and x/y positions
1527 * bubbling methods, keystroke normalization, and x/y positions
1528 */
1528 */
1529 _fixEvent(evt: any, sender: any): any;
1529 _fixEvent(evt: any, sender: any): any;
1530 }
1530 }
1531
1531
1532 /* dojo/parser */
1532 /* dojo/parser */
1533
1533
1534 interface ParserOptions { }
1534 interface ParserOptions { }
1535
1535
1536 interface ParserObjects {
1536 interface ParserObjects {
1537 ctor?: GenericConstructor<any>;
1537 ctor?: GenericConstructor<any>;
1538 types?: string[];
1538 types?: string[];
1539 node: Node;
1539 node: Node;
1540 scripts?: HTMLScriptElement[];
1540 scripts?: HTMLScriptElement[];
1541 inherited?: { [prop: string]: any; };
1541 inherited?: { [prop: string]: any; };
1542 }
1542 }
1543
1543
1544 interface InstancesArray extends Array<any>, promise.Promise<any> {}
1544 interface InstancesArray extends Array<any>, promise.Promise<any> {}
1545
1545
1546 interface Parser {
1546 interface Parser {
1547 /**
1547 /**
1548 * Clear cached data. Used mainly for benchmarking.
1548 * Clear cached data. Used mainly for benchmarking.
1549 */
1549 */
1550 _clearCache(): void;
1550 _clearCache(): void;
1551
1551
1552 /**
1552 /**
1553 * Convert a `<script type="dojo/method" args="a, b, c"> ... </script>`
1553 * Convert a `<script type="dojo/method" args="a, b, c"> ... </script>`
1554 * into a function
1554 * into a function
1555 */
1555 */
1556 _functionFromScript(node: HTMLScriptElement, attrData: string): Function;
1556 _functionFromScript(node: HTMLScriptElement, attrData: string): Function;
1557
1557
1558 /**
1558 /**
1559 * Takes array of nodes, and turns them into class instances and
1559 * Takes array of nodes, and turns them into class instances and
1560 * potentially calls a startup method to allow them to connect with
1560 * potentially calls a startup method to allow them to connect with
1561 * any children.
1561 * any children.
1562 */
1562 */
1563 instantiate(nodes: Node[], mixin?: Object, options?: ParserOptions): any[];
1563 instantiate(nodes: Node[], mixin?: Object, options?: ParserOptions): any[];
1564
1564
1565 /**
1565 /**
1566 * Takes array of objects representing nodes, and turns them into class instances and
1566 * Takes array of objects representing nodes, and turns them into class instances and
1567 * potentially calls a startup method to allow them to connect with
1567 * potentially calls a startup method to allow them to connect with
1568 * any children.
1568 * any children.
1569 */
1569 */
1570 _instantiate(nodes: ParserObjects[], mixin?: Object, options?: ParserOptions, returnPromise?: boolean): any[] | promise.Promise<any[]>;
1570 _instantiate(nodes: ParserObjects[], mixin?: Object, options?: ParserOptions, returnPromise?: boolean): any[] | promise.Promise<any[]>;
1571
1571
1572 /**
1572 /**
1573 * Calls new ctor(params, node), where params is the hash of parameters specified on the node,
1573 * Calls new ctor(params, node), where params is the hash of parameters specified on the node,
1574 * excluding data-dojo-type and data-dojo-mixins. Does not call startup().
1574 * excluding data-dojo-type and data-dojo-mixins. Does not call startup().
1575 */
1575 */
1576 construct<T>(
1576 construct<T>(
1577 ctor: GenericConstructor<T>,
1577 ctor: GenericConstructor<T>,
1578 node: Node, mixin?: Object,
1578 node: Node, mixin?: Object,
1579 options?: ParserOptions,
1579 options?: ParserOptions,
1580 scripts?: HTMLScriptElement[],
1580 scripts?: HTMLScriptElement[],
1581 inherited?: { [prop: string]: any; }
1581 inherited?: { [prop: string]: any; }
1582 ): promise.Promise<T> | T;
1582 ): promise.Promise<T> | T;
1583
1583
1584 /**
1584 /**
1585 * Scan a DOM tree and return an array of objects representing the DOMNodes
1585 * Scan a DOM tree and return an array of objects representing the DOMNodes
1586 * that need to be turned into widgets.
1586 * that need to be turned into widgets.
1587 */
1587 */
1588 scan(root?: Node, options?: ParserOptions): promise.Promise<ParserObjects[]>;
1588 scan(root?: Node, options?: ParserOptions): promise.Promise<ParserObjects[]>;
1589
1589
1590 /**
1590 /**
1591 * Helper for _scanAMD(). Takes a `<script type=dojo/require>bar: "acme/bar", ...</script>` node,
1591 * Helper for _scanAMD(). Takes a `<script type=dojo/require>bar: "acme/bar", ...</script>` node,
1592 * calls require() to load the specified modules and (asynchronously) assign them to the specified global
1592 * calls require() to load the specified modules and (asynchronously) assign them to the specified global
1593 * variables, and returns a Promise for when that operation completes.
1593 * variables, and returns a Promise for when that operation completes.
1594 *
1594 *
1595 * In the example above, it is effectively doing a require(["acme/bar", ...], function(a){ bar = a; }).
1595 * In the example above, it is effectively doing a require(["acme/bar", ...], function(a){ bar = a; }).
1596 */
1596 */
1597 _require(script: HTMLScriptElement, options: ParserOptions): promise.Promise<any>;
1597 _require(script: HTMLScriptElement, options: ParserOptions): promise.Promise<any>;
1598
1598
1599 /**
1599 /**
1600 * Scans the DOM for any declarative requires and returns their values.
1600 * Scans the DOM for any declarative requires and returns their values.
1601 */
1601 */
1602 _scanAmd(root?: Node, options?: ParserOptions): promise.Promise<boolean>;
1602 _scanAmd(root?: Node, options?: ParserOptions): promise.Promise<boolean>;
1603
1603
1604 /**
1604 /**
1605 * Scan the DOM for class instances, and instantiate them.
1605 * Scan the DOM for class instances, and instantiate them.
1606 */
1606 */
1607 parse(rootNode?: Node, options?: ParserOptions): InstancesArray;
1607 parse(rootNode?: Node, options?: ParserOptions): InstancesArray;
1608 }
1608 }
1609
1609
1610 /* dojo/query */
1610 /* dojo/query */
1611
1611
1612 interface NodeListFilterCallback<T extends Node> {
1612 interface NodeListFilterCallback<T extends Node> {
1613 (item: T, idx: number, nodeList: this): boolean;
1613 (item: T, idx: number, nodeList: this): boolean;
1614 }
1614 }
1615
1615
1616 type NodeListFilter<T extends Node> = string | NodeListFilterCallback<T>;
1616 type NodeListFilter<T extends Node> = string | NodeListFilterCallback<T>;
1617
1617
1618 interface NodeList<T extends Node> extends ArrayLike<T> {
1618 interface NodeList<T extends Node> extends ArrayLike<T> {
1619 /**
1619 /**
1620 * decorate an array to make it look like a `dojo/NodeList`.
1620 * decorate an array to make it look like a `dojo/NodeList`.
1621 */
1621 */
1622 _wrap<U extends Node, V extends Node>(a: U[], parent?: NodeList<V>, NodeListCtor?: NodeListConstructor): NodeList<U>;
1622 _wrap<U extends Node, V extends Node>(a: U[], parent?: NodeList<V>, NodeListCtor?: NodeListConstructor): NodeList<U>;
1623
1623
1624 _NodeListCtor: NodeListConstructor;
1624 _NodeListCtor: NodeListConstructor;
1625 toString(): string;
1625 toString(): string;
1626
1626
1627 /**
1627 /**
1628 * private function to hold to a parent NodeList. end() to return the parent NodeList.
1628 * private function to hold to a parent NodeList. end() to return the parent NodeList.
1629 */
1629 */
1630 _stash(parent: Node): this;
1630 _stash(parent: Node): this;
1631
1631
1632 /**
1632 /**
1633 * Listen for events on the nodes in the NodeList.
1633 * Listen for events on the nodes in the NodeList.
1634 */
1634 */
1635 on(eventName: string, listener: EventListener): Handle[];
1635 on(eventName: string, listener: EventListener): Handle[];
1636
1636
1637 /**
1637 /**
1638 * Ends use of the current `NodeList` by returning the previous NodeList
1638 * Ends use of the current `NodeList` by returning the previous NodeList
1639 * that generated the current NodeList.
1639 * that generated the current NodeList.
1640 */
1640 */
1641 end<U extends Node>(): NodeList<U>;
1641 end<U extends Node>(): NodeList<U>;
1642
1642
1643 /**
1643 /**
1644 * Returns a new NodeList, maintaining this one in place
1644 * Returns a new NodeList, maintaining this one in place
1645 */
1645 */
1646 slice(begin: number, end?: number): this;
1646 slice(begin: number, end?: number): this;
1647
1647
1648 /**
1648 /**
1649 * Returns a new NodeList, manipulating this NodeList based on
1649 * Returns a new NodeList, manipulating this NodeList based on
1650 * the arguments passed, potentially splicing in new elements
1650 * the arguments passed, potentially splicing in new elements
1651 * at an offset, optionally deleting elements
1651 * at an offset, optionally deleting elements
1652 */
1652 */
1653 splice(index: number, howmany?: number, ...items: T[]): this;
1653 splice(index: number, howmany?: number, ...items: T[]): this;
1654
1654
1655 /**
1655 /**
1656 * see `dojo/_base/array.indexOf()`. The primary difference is that the acted-on
1656 * see `dojo/_base/array.indexOf()`. The primary difference is that the acted-on
1657 * array is implicitly this NodeList
1657 * array is implicitly this NodeList
1658 */
1658 */
1659 indexOf(value: T, fromIndex?: number, findLast?: boolean): number;
1659 indexOf(value: T, fromIndex?: number, findLast?: boolean): number;
1660
1660
1661 /**
1661 /**
1662 * see `dojo/_base/array.lastIndexOf()`. The primary difference is that the
1662 * see `dojo/_base/array.lastIndexOf()`. The primary difference is that the
1663 * acted-on array is implicitly this NodeList
1663 * acted-on array is implicitly this NodeList
1664 */
1664 */
1665 lastIndexOf(value: T, fromIndex?: number): number;
1665 lastIndexOf(value: T, fromIndex?: number): number;
1666
1666
1667 /**
1667 /**
1668 * see `dojo/_base/array.every()` and the [Array.every
1668 * see `dojo/_base/array.every()` and the [Array.every
1669 * docs](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every).
1669 * docs](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every).
1670 * Takes the same structure of arguments and returns as
1670 * Takes the same structure of arguments and returns as
1671 * dojo/_base/array.every() with the caveat that the passed array is
1671 * dojo/_base/array.every() with the caveat that the passed array is
1672 * implicitly this NodeList
1672 * implicitly this NodeList
1673 */
1673 */
1674 every(callback: (item: T, idx: number, nodeList: this) => boolean | string, thisObj?: Object): boolean;
1674 every(callback: (item: T, idx: number, nodeList: this) => boolean | string, thisObj?: Object): boolean;
1675
1675
1676 /**
1676 /**
1677 * Takes the same structure of arguments and returns as
1677 * Takes the same structure of arguments and returns as
1678 * `dojo/_base/array.some()` with the caveat that the passed array as
1678 * `dojo/_base/array.some()` with the caveat that the passed array as
1679 * implicitly this NodeList. See `dojo/_base/array.some()` and Mozillaas
1679 * implicitly this NodeList. See `dojo/_base/array.some()` and Mozillaas
1680 * [Array.soas
1680 * [Array.soas
1681 * documentation](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some).
1681 * documentation](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some).
1682 */
1682 */
1683 some(callback: (item: T, idx: number, nodeList: this) => boolean | string, thisObj?: Object): boolean;
1683 some(callback: (item: T, idx: number, nodeList: this) => boolean | string, thisObj?: Object): boolean;
1684
1684
1685 /**
1685 /**
1686 * Returns a new NodeList comprised of items in this NodeList
1686 * Returns a new NodeList comprised of items in this NodeList
1687 * as well as items passed in as parameters
1687 * as well as items passed in as parameters
1688 */
1688 */
1689 concat(...items: T[]): this;
1689 concat(...items: T[]): this;
1690
1690
1691 /**
1691 /**
1692 * see `dojo/_base/array.map()`. The primary difference is that the acted-on
1692 * see `dojo/_base/array.map()`. The primary difference is that the acted-on
1693 * array is implicitly this NodeList and the return is a
1693 * array is implicitly this NodeList and the return is a
1694 * NodeList (a subclass of Array)
1694 * NodeList (a subclass of Array)
1695 */
1695 */
1696 map<U extends Node>(func: (item: T, idx: number, nodeList: this) => U, obj?: Object): NodeList<U>;
1696 map<U extends Node>(func: (item: T, idx: number, nodeList: this) => U, obj?: Object): NodeList<U>;
1697
1697
1698 /**
1698 /**
1699 * see `dojo/_base/array.forEach()`. The primary difference is that the acted-on
1699 * see `dojo/_base/array.forEach()`. The primary difference is that the acted-on
1700 * array is implicitly this NodeList. If you want the option to break out
1700 * array is implicitly this NodeList. If you want the option to break out
1701 * of the forEach loop, use every() or some() instead.
1701 * of the forEach loop, use every() or some() instead.
1702 */
1702 */
1703 forEach(callback: (item: T, idx: number, nodeList: this) => void, thisObj?: Object): this;
1703 forEach(callback: (item: T, idx: number, nodeList: this) => void, thisObj?: Object): this;
1704
1704
1705 /**
1705 /**
1706 * "masks" the built-in javascript filter() method (supported
1706 * "masks" the built-in javascript filter() method (supported
1707 * in Dojo via `dojo/_base/array.filter`) to support passing a simple
1707 * in Dojo via `dojo/_base/array.filter`) to support passing a simple
1708 * string filter in addition to supporting filtering function
1708 * string filter in addition to supporting filtering function
1709 * objects.
1709 * objects.
1710 */
1710 */
1711 filter<U extends Node>(filter: NodeListFilter<T>, thisObj?: Object): NodeList<U>;
1711 filter<U extends Node>(filter: NodeListFilter<T>, thisObj?: Object): NodeList<U>;
1712
1712
1713 /**
1713 /**
1714 * Create a new instance of a specified class, using the
1714 * Create a new instance of a specified class, using the
1715 * specified properties and each node in the NodeList as a
1715 * specified properties and each node in the NodeList as a
1716 * srcNodeRef.
1716 * srcNodeRef.
1717 */
1717 */
1718 instantiate(declaredClass: string | GenericConstructor<any>, properties?: Object): this;
1718 instantiate(declaredClass: string | GenericConstructor<any>, properties?: Object): this;
1719
1719
1720 /**
1720 /**
1721 * Returns a new NodeList comprised of items in this NodeList
1721 * Returns a new NodeList comprised of items in this NodeList
1722 * at the given index or indices.
1722 * at the given index or indices.
1723 */
1723 */
1724 at(...indices: number[]): this;
1724 at(...indices: number[]): this;
1725
1725
1726 }
1726 }
1727
1727
1728 interface NodeListConstructor {
1728 interface NodeListConstructor {
1729 new <T extends Node>(array: number | Array<T>): NodeList<T>;
1729 new <T extends Node>(array: number | Array<T>): NodeList<T>;
1730 new <T extends Node>(...args: T[]): NodeList<T>;
1730 new <T extends Node>(...args: T[]): NodeList<T>;
1731 <T extends Node>(array: number | Array<T>): NodeList<T>;
1731 <T extends Node>(array: number | Array<T>): NodeList<T>;
1732 <T extends Node>(...args: T[]): NodeList<T>;
1732 <T extends Node>(...args: T[]): NodeList<T>;
1733
1733
1734 prototype: NodeList<any>;
1734 prototype: NodeList<any>;
1735
1735
1736 /**
1736 /**
1737 * decorate an array to make it look like a `dojo/NodeList`.
1737 * decorate an array to make it look like a `dojo/NodeList`.
1738 */
1738 */
1739 _wrap<U extends Node, V extends Node>(a: U[], parent?: NodeList<V>, NodeListCtor?: NodeListConstructor): NodeList<U>;
1739 _wrap<U extends Node, V extends Node>(a: U[], parent?: NodeList<V>, NodeListCtor?: NodeListConstructor): NodeList<U>;
1740
1740
1741 /**
1741 /**
1742 * adapts a single node function to be used in the map-type
1742 * adapts a single node function to be used in the map-type
1743 * actions. The return is a new array of values, as via `dojo/_base/array.map`
1743 * actions. The return is a new array of values, as via `dojo/_base/array.map`
1744 */
1744 */
1745 _adaptAsMap<T extends Node, U extends Node>(f: (node: T) => U, o?: Object): NodeList<U>;
1745 _adaptAsMap<T extends Node, U extends Node>(f: (node: T) => U, o?: Object): NodeList<U>;
1746
1746
1747 /**
1747 /**
1748 * adapts a single node function to be used in the forEach-type
1748 * adapts a single node function to be used in the forEach-type
1749 * actions. The initial object is returned from the specialized
1749 * actions. The initial object is returned from the specialized
1750 * function.
1750 * function.
1751 */
1751 */
1752 _adaptAsForEach<T extends Node>(f: (node: T) => void, o?: Object): this;
1752 _adaptAsForEach<T extends Node>(f: (node: T) => void, o?: Object): this;
1753
1753
1754 /**
1754 /**
1755 * adapts a single node function to be used in the filter-type actions
1755 * adapts a single node function to be used in the filter-type actions
1756 */
1756 */
1757 _adaptAsFilter<T extends Node>(f: (node: T) => boolean, o?: Object): this;
1757 _adaptAsFilter<T extends Node>(f: (node: T) => boolean, o?: Object): this;
1758
1758
1759 /**
1759 /**
1760 * adapts a single node function to be used in the map-type
1760 * adapts a single node function to be used in the map-type
1761 * actions, behaves like forEach() or map() depending on arguments
1761 * actions, behaves like forEach() or map() depending on arguments
1762 */
1762 */
1763 _adaptWithCondition<T extends Node, U extends Node>(f: (node: T) => U | void, g: (...args: any[]) => boolean, o?: Object): NodeList<U> | this;
1763 _adaptWithCondition<T extends Node, U extends Node>(f: (node: T) => U | void, g: (...args: any[]) => boolean, o?: Object): NodeList<U> | this;
1764 }
1764 }
1765
1765
1766 interface Query {
1766 interface Query {
1767 /**
1767 /**
1768 * Returns nodes which match the given CSS selector, searching the
1768 * Returns nodes which match the given CSS selector, searching the
1769 * entire document by default but optionally taking a node to scope
1769 * entire document by default but optionally taking a node to scope
1770 * the search by. Returns an instance of NodeList.
1770 * the search by. Returns an instance of NodeList.
1771 */
1771 */
1772 <T extends Node>(query: string, root?: NodeOrString): NodeList<T>;
1772 <T extends Node>(query: string, root?: NodeOrString): NodeList<T>;
1773
1773
1774 /**
1774 /**
1775 * Test to see if a node matches a selector
1775 * Test to see if a node matches a selector
1776 */
1776 */
1777 matches(node: Node, selector: string, root?: NodeOrString): boolean;
1777 matches(node: Node, selector: string, root?: NodeOrString): boolean;
1778
1778
1779 /**
1779 /**
1780 * Filters an array of nodes. Note that this does not guarantee to return a NodeList, just an array.
1780 * Filters an array of nodes. Note that this does not guarantee to return a NodeList, just an array.
1781 */
1781 */
1782 filter<T extends Node>(nodes: NodeList<T> | T[], select: string, root?: NodeOrString): T[] | NodeList<T>;
1782 filter<T extends Node>(nodes: NodeList<T> | T[], select: string, root?: NodeOrString): T[] | NodeList<T>;
1783
1783
1784 /**
1784 /**
1785 * can be used as AMD plugin to conditionally load new query engine
1785 * can be used as AMD plugin to conditionally load new query engine
1786 */
1786 */
1787 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
1787 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
1788 }
1788 }
1789
1789
1790 /* dojo/ready */
1790 /* dojo/ready */
1791
1791
1792 interface Ready {
1792 interface Ready {
1793 /**
1793 /**
1794 * Add a function to execute on DOM content loaded and all requested modules have arrived and been evaluated.
1794 * Add a function to execute on DOM content loaded and all requested modules have arrived and been evaluated.
1795 * In most cases, the `domReady` plug-in should suffice and this method should not be needed.
1795 * In most cases, the `domReady` plug-in should suffice and this method should not be needed.
1796 *
1796 *
1797 * When called in a non-browser environment, just checks that all requested modules have arrived and been
1797 * When called in a non-browser environment, just checks that all requested modules have arrived and been
1798 * evaluated.
1798 * evaluated.
1799 */
1799 */
1800 (callback: Function): void;
1800 (callback: Function): void;
1801 (context: Object, callback: Function | string): void;
1801 (context: Object, callback: Function | string): void;
1802 (priority: number, callback: Function): void;
1802 (priority: number, callback: Function): void;
1803 (priority: number, context: Object, callback: Function | string): void;
1803 (priority: number, context: Object, callback: Function | string): void;
1804 }
1804 }
1805
1805
1806 /* dojo/regexp */
1806 /* dojo/regexp */
1807
1807
1808 interface RegExpModule {
1808 interface RegExpModule {
1809 /**
1809 /**
1810 * Adds escape sequences for special characters in regular expressions
1810 * Adds escape sequences for special characters in regular expressions
1811 */
1811 */
1812 escapeString(str: string, except?: string): string;
1812 escapeString(str: string, except?: string): string;
1813
1813
1814 /**
1814 /**
1815 * Builds a regular expression that groups subexpressions
1815 * Builds a regular expression that groups subexpressions
1816 */
1816 */
1817 buildGroupRE(arr: any[] | Object, re: (item: any) => string, nonCapture?: boolean): string;
1817 buildGroupRE(arr: any[] | Object, re: (item: any) => string, nonCapture?: boolean): string;
1818
1818
1819 /**
1819 /**
1820 * adds group match to expression
1820 * adds group match to expression
1821 */
1821 */
1822 group(expression: string, nonCapture?: boolean): string;
1822 group(expression: string, nonCapture?: boolean): string;
1823 }
1823 }
1824
1824
1825 /* dojo/request */
1825 /* dojo/request */
1826
1826
1827 /* This is contained in request.d.ts */
1827 /* This is contained in request.d.ts */
1828
1828
1829 /* dojo/require */
1829 /* dojo/require */
1830
1830
1831 interface RequirePlugin {
1831 interface RequirePlugin {
1832 dynamic: number;
1832 dynamic: number;
1833 normalize(id: string): string;
1833 normalize(id: string): string;
1834 load(mid: string, require: any, loaded: (...modules: any[]) => void): void;
1834 load(mid: string, require: any, loaded: (...modules: any[]) => void): void;
1835 }
1835 }
1836
1836
1837 /* dojo/robot */
1837 /* dojo/robot */
1838
1838
1839 interface Robot extends doh.Robot {
1839 interface Robot extends doh.Robot {
1840 _resolveNode(n: NodeOrString | (() => Node)): Node;
1840 _resolveNode(n: NodeOrString | (() => Node)): Node;
1841 _scrollIntoView(n: Node): void;
1841 _scrollIntoView(n: Node): void;
1842 _position(n: Node): DomGeometryBoxExtents;
1842 _position(n: Node): DomGeometryBoxExtents;
1843 _getWindowChain(n: Node): Window[];
1843 _getWindowChain(n: Node): Window[];
1844
1844
1845 /**
1845 /**
1846 * Scroll the passed node into view, if it is not.
1846 * Scroll the passed node into view, if it is not.
1847 */
1847 */
1848 scrollIntoView(node: NodeOrString | (() => Node), delay?: number): void;
1848 scrollIntoView(node: NodeOrString | (() => Node), delay?: number): void;
1849
1849
1850 /**
1850 /**
1851 * Moves the mouse over the specified node at the specified relative x,y offset.
1851 * Moves the mouse over the specified node at the specified relative x,y offset.
1852 */
1852 */
1853 mouseMoveAt(
1853 mouseMoveAt(
1854 node: NodeOrString | (() => Node),
1854 node: NodeOrString | (() => Node),
1855 delay?: number,
1855 delay?: number,
1856 duration?: number,
1856 duration?: number,
1857 offsetX?: number,
1857 offsetX?: number,
1858 offsetY?: number
1858 offsetY?: number
1859 ): void;
1859 ): void;
1860 }
1860 }
1861
1861
1862 /* dojo/robotx */
1862 /* dojo/robotx */
1863
1863
1864 interface RobotX extends Robot {
1864 interface RobotX extends Robot {
1865 /**
1865 /**
1866 * Called every time a new page is loaded into the iframe, to setup variables
1866 * Called every time a new page is loaded into the iframe, to setup variables
1867 * Point dojo.global, dojo.publish, etc. to refer to iframe.
1867 * Point dojo.global, dojo.publish, etc. to refer to iframe.
1868 * Remove for 2.0?
1868 * Remove for 2.0?
1869 */
1869 */
1870 _updateDocument(): void;
1870 _updateDocument(): void;
1871
1871
1872 /**
1872 /**
1873 * Opens the application at the specified URL for testing, redirecting dojo to point to the application
1873 * Opens the application at the specified URL for testing, redirecting dojo to point to the application
1874 * environment instead of the test environment.
1874 * environment instead of the test environment.
1875 */
1875 */
1876 initRobot(url: string): void;
1876 initRobot(url: string): void;
1877
1877
1878 /**
1878 /**
1879 * Notifies DOH that the doh.robot is about to make a page change in the application it is driving,
1879 * Notifies DOH that the doh.robot is about to make a page change in the application it is driving,
1880 * returning a doh.Deferred object the user should return in their runTest function as part of a DOH test.
1880 * returning a doh.Deferred object the user should return in their runTest function as part of a DOH test.
1881 */
1881 */
1882 waitForPageToLoad(submitActions: () => void): any;
1882 waitForPageToLoad(submitActions: () => void): any;
1883 }
1883 }
1884
1884
1885 /* dojo/router */
1885 /* dojo/router */
1886
1886
1887 /* Module just exports instance of dojo.router.BaseRouter */
1887 /* Module just exports instance of dojo.router.BaseRouter */
1888
1888
1889 /* dojo/sniff */
1889 /* dojo/sniff */
1890
1890
1891 interface Has {
1891 interface Has {
1892 (name: 'air'): boolean;
1892 (name: 'air'): boolean;
1893 (name: 'wp'): void | number;
1893 (name: 'wp'): void | number;
1894 (name: 'msapp'): void | number;
1894 (name: 'msapp'): void | number;
1895 (name: 'khtml'): void | number;
1895 (name: 'khtml'): void | number;
1896 (name: 'edge'): void | number;
1896 (name: 'edge'): void | number;
1897 (name: 'opr'): void | number;
1897 (name: 'opr'): void | number;
1898 (name: 'webkit'): void | number;
1898 (name: 'webkit'): void | number;
1899 (name: 'chrome'): void | number;
1899 (name: 'chrome'): void | number;
1900 (name: 'android'): void | number;
1900 (name: 'android'): void | number;
1901 (name: 'safari'): void | number;
1901 (name: 'safari'): void | number;
1902 (name: 'mac'): boolean;
1902 (name: 'mac'): boolean;
1903 (name: 'quirks'): boolean;
1903 (name: 'quirks'): boolean;
1904 (name: 'iphone'): void | number;
1904 (name: 'iphone'): void | number;
1905 (name: 'ipod'): void | number;
1905 (name: 'ipod'): void | number;
1906 (name: 'ipad'): void | number;
1906 (name: 'ipad'): void | number;
1907 (name: 'ios'): void | number;
1907 (name: 'ios'): void | number;
1908 (name: 'bb'): void | number | boolean;
1908 (name: 'bb'): void | number | boolean;
1909 (name: 'trident'): void | number;
1909 (name: 'trident'): void | number;
1910 (name: 'svg'): boolean;
1910 (name: 'svg'): boolean;
1911 (name: 'opera'): void | number;
1911 (name: 'opera'): void | number;
1912 (name: 'mozilla'): void | number;
1912 (name: 'mozilla'): void | number;
1913 (name: 'ff'): void | number;
1913 (name: 'ff'): void | number;
1914 (name: 'ie'): void | number;
1914 (name: 'ie'): void | number;
1915 (name: 'wii'): boolean | any;
1915 (name: 'wii'): boolean | any;
1916 }
1916 }
1917
1917
1918 /* Just rexports has after adding features */
1918 /* Just rexports has after adding features */
1919
1919
1920 /* dojo/Stateful */
1920 /* dojo/Stateful */
1921
1921
1922 interface WatchHandle extends Handle {
1922 interface WatchHandle extends Handle {
1923 unwatch(): void;
1923 unwatch(): void;
1924 }
1924 }
1925
1925
1926 interface Stateful<T = any> {
1926 interface Stateful<T = any> {
1927 /**
1927 /**
1928 * Used across all instances a hash to cache attribute names and their getter
1928 * Used across all instances a hash to cache attribute names and their getter
1929 * and setter names.
1929 * and setter names.
1930 */
1930 */
1931 _attrPairNames: { [attr: string]: string };
1931 _attrPairNames: { [attr: string]: string };
1932
1932
1933 /**
1933 /**
1934 * Helper function for get() and set().
1934 * Helper function for get() and set().
1935 * Caches attribute name values so we don't do the string ops every time.
1935 * Caches attribute name values so we don't do the string ops every time.
1936 */
1936 */
1937 _getAttrNames(name: string): string;
1937 _getAttrNames(name: string): string;
1938
1938
1939 /**
1939 /**
1940 * Automatic setting of params during construction
1940 * Automatic setting of params during construction
1941 */
1941 */
1942 postscript(params?: Object): void;
1942 postscript(params?: Object): void;
1943
1943
1944 /**
1944 /**
1945 * Get a property on a Stateful instance.
1945 * Get a property on a Stateful instance.
1946 */
1946 */
1947 get<K extends keyof T & string>(name: K): T[K];
1947 get<K extends keyof T & string>(name: K): T[K];
1948
1948
1949 /**
1949 /**
1950 * Set a property on a Stateful instance
1950 * Set a property on a Stateful instance
1951 */
1951 */
1952 set<K extends keyof T & string>(name: K, value: T[K]): this;
1952 set<K extends keyof T & string>(name: K, value: T[K]): this;
1953 set<K extends { [p in keyof T]: T[p] extends any[] ? p : never; }[keyof T & string] >(name: K, ...values: T[K]): this;
1953 set<K extends { [p in keyof T]: T[p] extends any[] ? p : never; }[keyof T & string] >(name: K, ...values: T[K]): this;
1954 set(values: Partial<T>): this;
1954 set(values: Partial<T>): this;
1955
1955
1956 /**
1956 /**
1957 * Internal helper for directly changing an attribute value.
1957 * Internal helper for directly changing an attribute value.
1958 */
1958 */
1959 _changeAttrValue(name: string, value: any): this;
1959 _changeAttrValue(name: string, value: any): this;
1960
1960
1961 /**
1961 /**
1962 * Watches a property for changes
1962 * Watches a property for changes
1963 */
1963 */
1964 watch(callback: <K extends keyof T>(prop: K, oldValue: T[K], newValue: T[K]) => void): WatchHandle;
1964 watch(callback:(prop: keyof any, oldValue: any, newValue: any) => void): WatchHandle;
1965 watch<K extends keyof T>(name: K, callback: (prop: K, oldValue: T[K], newValue: T[K]) => void): WatchHandle;
1965 watch<K extends keyof T>(name: K, callback: (prop: K, oldValue: T[K], newValue: T[K]) => void): WatchHandle;
1966 }
1966 }
1967
1967
1968 interface StatefulConstructor extends _base.DeclareConstructor<Stateful> {
1968 interface StatefulConstructor extends _base.DeclareConstructor<Stateful> {
1969 new <T>(params?: Partial<T>): Stateful<T>;
1969 new <T>(params?: Partial<T>): Stateful<T>;
1970 }
1970 }
1971
1971
1972 /* dojo/string */
1972 /* dojo/string */
1973
1973
1974 interface String {
1974 interface String {
1975
1975
1976 /**
1976 /**
1977 * Efficiently escape a string for insertion into HTML (innerHTML or attributes), replacing &, <, >, ", ', and / characters.
1977 * Efficiently escape a string for insertion into HTML (innerHTML or attributes), replacing &, <, >, ", ', and / characters.
1978 */
1978 */
1979 escape(str: string): string;
1979 escape(str: string): string;
1980
1980
1981 /**
1981 /**
1982 * Efficiently replicate a string `n` times.
1982 * Efficiently replicate a string `n` times.
1983 */
1983 */
1984 rep(str: string, num: number): string;
1984 rep(str: string, num: number): string;
1985
1985
1986 /**
1986 /**
1987 * Pad a string to guarantee that it is at least `size` length by
1987 * Pad a string to guarantee that it is at least `size` length by
1988 * filling with the character `ch` at either the start or end of the
1988 * filling with the character `ch` at either the start or end of the
1989 * string. Pads at the start, by default.
1989 * string. Pads at the start, by default.
1990 */
1990 */
1991 pad(text: string, size: number, ch?: string, end?: boolean): string;
1991 pad(text: string, size: number, ch?: string, end?: boolean): string;
1992
1992
1993 /**
1993 /**
1994 * Performs parameterized substitutions on a string. Throws an
1994 * Performs parameterized substitutions on a string. Throws an
1995 * exception if any parameter is unmatched.
1995 * exception if any parameter is unmatched.
1996 */
1996 */
1997 substitute(template: string, map: Object | any[], transform?: (value: any, key: string) => any, thisObject?: Object): string;
1997 substitute(template: string, map: Object | any[], transform?: (value: any, key: string) => any, thisObject?: Object): string;
1998
1998
1999 /**
1999 /**
2000 * Trims whitespace from both sides of the string
2000 * Trims whitespace from both sides of the string
2001 */
2001 */
2002 trim(str: string): string;
2002 trim(str: string): string;
2003 }
2003 }
2004
2004
2005 /* dojo/text */
2005 /* dojo/text */
2006
2006
2007 /**
2007 /**
2008 * A getter and setter for storing the string content associated with the
2008 * A getter and setter for storing the string content associated with the
2009 * module and url arguments.
2009 * module and url arguments.
2010 */
2010 */
2011 interface Cache {
2011 interface Cache {
2012 (module: string | GenericObject, url: string, value?: string | { value: string, sanitize?: boolean }): string;
2012 (module: string | GenericObject, url: string, value?: string | { value: string, sanitize?: boolean }): string;
2013 }
2013 }
2014
2014
2015 interface Text {
2015 interface Text {
2016 /**
2016 /**
2017 * the dojo/text caches it's own resources because of dojo.cache
2017 * the dojo/text caches it's own resources because of dojo.cache
2018 */
2018 */
2019 dynamic: boolean;
2019 dynamic: boolean;
2020
2020
2021 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
2021 normalize(id: string, toAbsMid: Function): string; /* TODO: Align with loader api */
2022
2022
2023 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
2023 load(id: string, parentRequire: Function, loaded: Function): void; /* TODO: Align with loader api */
2024 }
2024 }
2025
2025
2026 /* dojo/throttle */
2026 /* dojo/throttle */
2027
2027
2028 interface Throttle {
2028 interface Throttle {
2029 <T extends Function>(cb: T, wait: number): T;
2029 <T extends Function>(cb: T, wait: number): T;
2030 }
2030 }
2031
2031
2032 /* dojo/topic */
2032 /* dojo/topic */
2033
2033
2034 interface Topic {
2034 interface Topic {
2035 /**
2035 /**
2036 * Publishes a message to a topic on the pub/sub hub. All arguments after
2036 * Publishes a message to a topic on the pub/sub hub. All arguments after
2037 * the first will be passed to the subscribers, so any number of arguments
2037 * the first will be passed to the subscribers, so any number of arguments
2038 * can be provided (not just event).
2038 * can be provided (not just event).
2039 */
2039 */
2040 publish(topic: string | ExtensionEvent, ...event: any[]): boolean;
2040 publish(topic: string | ExtensionEvent, ...event: any[]): boolean;
2041
2041
2042 /**
2042 /**
2043 * Subscribes to a topic on the pub/sub hub
2043 * Subscribes to a topic on the pub/sub hub
2044 */
2044 */
2045 subscribe(topic: string | ExtensionEvent, listener: EventListener | Function): Handle;
2045 subscribe(topic: string | ExtensionEvent, listener: EventListener | Function): Handle;
2046 }
2046 }
2047
2047
2048 /* dojo/touch */
2048 /* dojo/touch */
2049
2049
2050 interface Touch {
2050 interface Touch {
2051 press: ExtensionEvent;
2051 press: ExtensionEvent;
2052 move: ExtensionEvent;
2052 move: ExtensionEvent;
2053 release: ExtensionEvent;
2053 release: ExtensionEvent;
2054 cancel: ExtensionEvent;
2054 cancel: ExtensionEvent;
2055 over: ExtensionEvent;
2055 over: ExtensionEvent;
2056 out: ExtensionEvent;
2056 out: ExtensionEvent;
2057 enter: ExtensionEvent;
2057 enter: ExtensionEvent;
2058 leave: ExtensionEvent;
2058 leave: ExtensionEvent;
2059 }
2059 }
2060
2060
2061 /* dojo/uacss */
2061 /* dojo/uacss */
2062
2062
2063 /* rexports has after adding classes to dom */
2063 /* rexports has after adding classes to dom */
2064
2064
2065 /* dojo/when */
2065 /* dojo/when */
2066
2066
2067 interface When {
2067 interface When {
2068 /**
2068 /**
2069 * Transparently applies callbacks to values and/or promises.
2069 * Transparently applies callbacks to values and/or promises.
2070 */
2070 */
2071 <T>(value: T | dojo.promise.Promise<T>): dojo.promise.Promise<T>;
2071 <T>(value: T | dojo.promise.Promise<T>): dojo.promise.Promise<T>;
2072 <T>(value: T | dojo.promise.Promise<T>,
2072 <T>(value: T | dojo.promise.Promise<T>,
2073 callback?: dojo.promise.PromiseCallback<T, T>,
2073 callback?: dojo.promise.PromiseCallback<T, T>,
2074 errback?: dojo.promise.PromiseErrback<T>,
2074 errback?: dojo.promise.PromiseErrback<T>,
2075 progress?: dojo.promise.PromiseProgback): T | dojo.promise.Promise<T>;
2075 progress?: dojo.promise.PromiseProgback): T | dojo.promise.Promise<T>;
2076 <T, U>(value: T | dojo.promise.Promise<T>,
2076 <T, U>(value: T | dojo.promise.Promise<T>,
2077 callback?: dojo.promise.PromiseCallback<T, U>,
2077 callback?: dojo.promise.PromiseCallback<T, U>,
2078 errback?: dojo.promise.PromiseErrback<U>,
2078 errback?: dojo.promise.PromiseErrback<U>,
2079 progress?: dojo.promise.PromiseProgback): U | dojo.promise.Promise<U>;
2079 progress?: dojo.promise.PromiseProgback): U | dojo.promise.Promise<U>;
2080 }
2080 }
2081
2081
2082 /* dojo/window */
2082 /* dojo/window */
2083
2083
2084 interface WindowModule {
2084 interface WindowModule {
2085
2085
2086 /**
2086 /**
2087 * Returns the dimensions and scroll position of the viewable area of a browser window
2087 * Returns the dimensions and scroll position of the viewable area of a browser window
2088 */
2088 */
2089 getBox(doc?: Document): DomGeometryBox;
2089 getBox(doc?: Document): DomGeometryBox;
2090
2090
2091 /**
2091 /**
2092 * Get window object associated with document doc.
2092 * Get window object associated with document doc.
2093 */
2093 */
2094 get(doc?: Document): Window;
2094 get(doc?: Document): Window;
2095
2095
2096 /**
2096 /**
2097 * Scroll the passed node into view using minimal movement, if it is not already.
2097 * Scroll the passed node into view using minimal movement, if it is not already.
2098 */
2098 */
2099 scrollIntoView(node: Element, pos?: DomGeometryXYBox): void;
2099 scrollIntoView(node: Element, pos?: DomGeometryXYBox): void;
2100 }
2100 }
2101 }
2101 }
@@ -1,824 +1,824
1 /// <reference path="index.d.ts" />
1 /// <reference path="index.d.ts" />
2
2
3 declare module 'dojo/_base/array' {
3 declare module 'dojo/_base/array' {
4 const dojoArray: dojo._base.Array;
4 const dojoArray: dojo._base.Array;
5 export = dojoArray;
5 export = dojoArray;
6 }
6 }
7
7
8 declare module 'dojo/_base/browser' {
8 declare module 'dojo/_base/browser' {
9 const ready: dojo.Ready;
9 const ready: dojo.Ready;
10 export = ready;
10 export = ready;
11 }
11 }
12
12
13 declare module 'dojo/_base/Color' {
13 declare module 'dojo/_base/Color' {
14 type Color = dojo._base.Color;
14 type Color = dojo._base.Color;
15 const Color: dojo._base.ColorConstructor;
15 const Color: dojo._base.ColorConstructor;
16 export = Color;
16 export = Color;
17 }
17 }
18
18
19 declare module 'dojo/_base/config' {
19 declare module 'dojo/_base/config' {
20 const config: dojo._base.Config;
20 const config: dojo._base.Config;
21 export = config;
21 export = config;
22 }
22 }
23
23
24 declare module 'dojo/_base/connect' {
24 declare module 'dojo/_base/connect' {
25 const connect: dojo._base.Connect;
25 const connect: dojo._base.Connect;
26 export = connect;
26 export = connect;
27 }
27 }
28
28
29 declare module 'dojo/_base/declare' {
29 declare module 'dojo/_base/declare' {
30 const dojoDeclare: dojo._base.Declare;
30 const dojoDeclare: dojo._base.Declare;
31 export = dojoDeclare;
31 export = dojoDeclare;
32 }
32 }
33
33
34 declare module 'dojo/_base/Deferred' {
34 declare module 'dojo/_base/Deferred' {
35 type Deferred<T> = dojo._base.Deferred<T>;
35 type Deferred<T> = dojo._base.Deferred<T>;
36 const Deferred: dojo._base.DeferredConstructor;
36 const Deferred: dojo._base.DeferredConstructor;
37 export = Deferred;
37 export = Deferred;
38 }
38 }
39
39
40 declare module 'dojo/_base/event' {
40 declare module 'dojo/_base/event' {
41 const event: dojo._base.EventModule;
41 const event: dojo._base.EventModule;
42 export = event;
42 export = event;
43 }
43 }
44
44
45 declare module 'dojo/_base/fx' {
45 declare module 'dojo/_base/fx' {
46 const fx: dojo._base.Fx;
46 const fx: dojo._base.Fx;
47 export = fx;
47 export = fx;
48 }
48 }
49
49
50 declare module 'dojo/_base/html' {
50 declare module 'dojo/_base/html' {
51 const dojo: dojo._base.Dojo;
51 const dojo: dojo._base.Dojo;
52 export = dojo;
52 export = dojo;
53 }
53 }
54
54
55 declare module 'dojo/_base/json' {
55 declare module 'dojo/_base/json' {
56 const dojo: dojo._base.Dojo;
56 const dojo: dojo._base.Dojo;
57 export = dojo;
57 export = dojo;
58 }
58 }
59
59
60 declare module 'dojo/_base/kernel' {
60 declare module 'dojo/_base/kernel' {
61 const dojo: dojo._base.Dojo;
61 const dojo: dojo._base.Dojo;
62 export = dojo;
62 export = dojo;
63 }
63 }
64
64
65 declare module 'dojo/_base/lang' {
65 declare module 'dojo/_base/lang' {
66 const lang: dojo._base.Lang;
66 const lang: dojo._base.Lang;
67 export = lang;
67 export = lang;
68 }
68 }
69
69
70 declare module 'dojo/_base/loader' {
70 declare module 'dojo/_base/loader' {
71 const loader: dojo._base.Loader;
71 const loader: dojo._base.Loader;
72 export = loader;
72 export = loader;
73 }
73 }
74
74
75 declare module 'dojo/_base/NodeList' {
75 declare module 'dojo/_base/NodeList' {
76 type NodeList<T extends Node> = dojo.NodeList<T>;
76 type NodeList<T extends Node> = dojo.NodeList<T>;
77 const NodeList: dojo.NodeListConstructor;
77 const NodeList: dojo.NodeListConstructor;
78 export = NodeList;
78 export = NodeList;
79 }
79 }
80
80
81 declare module 'dojo/_base/query' {
81 declare module 'dojo/_base/query' {
82 const query: dojo.Query;
82 const query: dojo.Query;
83 export = query;
83 export = query;
84 }
84 }
85
85
86 declare module 'dojo/_base/sniff' {
86 declare module 'dojo/_base/sniff' {
87 const has: dojo.Has;
87 const has: dojo.Has;
88 export = has;
88 export = has;
89 }
89 }
90
90
91 declare module 'dojo/_base/unload' {
91 declare module 'dojo/_base/unload' {
92 const unload: dojo._base.Unload;
92 const unload: dojo._base.Unload;
93 export = unload;
93 export = unload;
94 }
94 }
95
95
96 declare module 'dojo/_base/url' {
96 declare module 'dojo/_base/url' {
97 type Url = dojo._base.Url;
97 type Url = dojo._base.Url;
98 const Url: dojo._base.UrlConstructor;
98 const Url: dojo._base.UrlConstructor;
99 export = Url;
99 export = Url;
100 }
100 }
101
101
102 declare module 'dojo/_base/window' {
102 declare module 'dojo/_base/window' {
103 const window: dojo._base.Window;
103 const window: dojo._base.Window;
104 export = window;
104 export = window;
105 }
105 }
106
106
107 declare module 'dojo/_base/xhr' {
107 declare module 'dojo/_base/xhr' {
108 const xhr: dojo._base.Xhr;
108 const xhr: dojo._base.Xhr;
109 export = xhr;
109 export = xhr;
110 }
110 }
111
111
112 declare module 'dojo/AdapterRegistry' {
112 declare module 'dojo/AdapterRegistry' {
113 type AdapterRegistry = dojo.AdapterRegistry;
113 type AdapterRegistry = dojo.AdapterRegistry;
114 const AdapterRegistry: dojo.AdapterRegistryConstructor;
114 const AdapterRegistry: dojo.AdapterRegistryConstructor;
115 export = AdapterRegistry;
115 export = AdapterRegistry;
116 }
116 }
117
117
118 declare module 'dojo/aspect' {
118 declare module 'dojo/aspect' {
119 const aspect: dojo.Aspect;
119 const aspect: dojo.Aspect;
120 export = aspect;
120 export = aspect;
121 }
121 }
122
122
123 declare module 'dojo/back' {
123 declare module 'dojo/back' {
124 const back: dojo.Back;
124 const back: dojo.Back;
125 export = back;
125 export = back;
126 }
126 }
127
127
128 declare module 'dojo/behavior' {
128 declare module 'dojo/behavior' {
129 const behavior: dojo.Behavior;
129 const behavior: dojo.Behavior;
130 export = behavior;
130 export = behavior;
131 }
131 }
132
132
133 declare module 'dojo/cache' {
133 declare module 'dojo/cache' {
134 const cache: dojo.Cache;
134 const cache: dojo.Cache;
135 export = cache;
135 export = cache;
136 }
136 }
137
137
138 declare module 'dojo/cldr/monetary' {
138 declare module 'dojo/cldr/monetary' {
139 const monetary: dojo.cldr.Monetary;
139 const monetary: dojo.cldr.Monetary;
140 export = monetary;
140 export = monetary;
141 }
141 }
142
142
143 declare module 'dojo/cldr/supplemental' {
143 declare module 'dojo/cldr/supplemental' {
144 const supplemental: dojo.cldr.Supplemental;
144 const supplemental: dojo.cldr.Supplemental;
145 export = supplemental;
145 export = supplemental;
146 }
146 }
147
147
148 declare module 'dojo/colors' {
148 declare module 'dojo/colors' {
149 type Color = dojo._base.Color;
149 type Color = dojo._base.Color;
150 const Color: dojo._base.ColorConstructor;
150 const Color: dojo._base.ColorConstructor;
151 export = Color;
151 export = Color;
152 }
152 }
153
153
154 declare module 'dojo/cookie' {
154 declare module 'dojo/cookie' {
155 const cookie: dojo.Cookie;
155 const cookie: dojo.Cookie;
156 export = cookie;
156 export = cookie;
157 }
157 }
158
158
159 declare module 'dojo/currency' {
159 declare module 'dojo/currency' {
160 const currency: dojo.Currency;
160 const currency: dojo.Currency;
161 export = currency;
161 export = currency;
162 }
162 }
163
163
164 declare module 'dojo/data/api/Identity' {
164 declare module 'dojo/data/api/Identity' {
165 type Identity<T> = dojo.data.api.Identity<T>;
165 type Identity<T> = dojo.data.api.Identity<T>;
166 const Identity: dojo.data.api.IdentityConstructor;
166 const Identity: dojo.data.api.IdentityConstructor;
167 export = Identity;
167 export = Identity;
168 }
168 }
169
169
170 declare module 'dojo/data/api/Item' {
170 declare module 'dojo/data/api/Item' {
171 type Item = dojo.data.api.Item;
171 type Item = dojo.data.api.Item;
172 const Item: dojo.data.api.ItemConstructor;
172 const Item: dojo.data.api.ItemConstructor;
173 export = Item;
173 export = Item;
174 }
174 }
175
175
176 declare module 'dojo/data/api/Notification' {
176 declare module 'dojo/data/api/Notification' {
177 type Notification<T> = dojo.data.api.Notification<T>;
177 type Notification<T> = dojo.data.api.Notification<T>;
178 const Notification: dojo.data.api.NotificationConstructor;
178 const Notification: dojo.data.api.NotificationConstructor;
179 export = Notification;
179 export = Notification;
180 }
180 }
181
181
182 declare module 'dojo/data/api/Read' {
182 declare module 'dojo/data/api/Read' {
183 type Read<T> = dojo.data.api.Read<T>;
183 type Read<T> = dojo.data.api.Read<T>;
184 const Read: dojo.data.api.ReadConstructor;
184 const Read: dojo.data.api.ReadConstructor;
185 export = Read;
185 export = Read;
186 }
186 }
187
187
188 declare module 'dojo/data/api/Request' {
188 declare module 'dojo/data/api/Request' {
189 type Request = dojo.data.api.Request;
189 type Request = dojo.data.api.Request;
190 const Request: dojo.data.api.RequestConstructor;
190 const Request: dojo.data.api.RequestConstructor;
191 export = Request;
191 export = Request;
192 }
192 }
193
193
194 declare module 'dojo/data/api/Write' {
194 declare module 'dojo/data/api/Write' {
195 type Write<T> = dojo.data.api.Write<T>;
195 type Write<T> = dojo.data.api.Write<T>;
196 const Write: dojo.data.api.WriteConstructor;
196 const Write: dojo.data.api.WriteConstructor;
197 export = Write;
197 export = Write;
198 }
198 }
199
199
200 declare module 'dojo/data/util/filter' {
200 declare module 'dojo/data/util/filter' {
201 const filter: dojo.data.util.Filter;
201 const filter: dojo.data.util.Filter;
202 export = filter;
202 export = filter;
203 }
203 }
204
204
205 declare module 'dojo/data/util/simpleFetch' {
205 declare module 'dojo/data/util/simpleFetch' {
206 const simpleFetch: dojo.data.util.SimpleFetch;
206 const simpleFetch: dojo.data.util.SimpleFetch;
207 export = simpleFetch;
207 export = simpleFetch;
208 }
208 }
209
209
210 declare module 'dojo/data/util/sorter' {
210 declare module 'dojo/data/util/sorter' {
211 const sorter: dojo.data.util.Sorter;
211 const sorter: dojo.data.util.Sorter;
212 export = sorter;
212 export = sorter;
213 }
213 }
214
214
215 declare module 'dojo/data/ItemFileReadStore' {
215 declare module 'dojo/data/ItemFileReadStore' {
216 type ItemFileReadStore<T> = dojo.data.ItemFileReadStore<T>;
216 type ItemFileReadStore<T> = dojo.data.ItemFileReadStore<T>;
217 const ItemFileReadStore: dojo.data.ItemFileReadStoreConstructor;
217 const ItemFileReadStore: dojo.data.ItemFileReadStoreConstructor;
218 export = ItemFileReadStore;
218 export = ItemFileReadStore;
219 }
219 }
220
220
221 declare module 'dojo/data/ItemFileWriteStore' {
221 declare module 'dojo/data/ItemFileWriteStore' {
222 type ItemFileWriteStore<T> = dojo.data.ItemFileWriteStore<T>;
222 type ItemFileWriteStore<T> = dojo.data.ItemFileWriteStore<T>;
223 const ItemFileWriteStore: dojo.data.ItemFileWriteStoreConstructor;
223 const ItemFileWriteStore: dojo.data.ItemFileWriteStoreConstructor;
224 export = ItemFileWriteStore;
224 export = ItemFileWriteStore;
225 }
225 }
226
226
227 declare module 'dojo/data/ObjectStore' {
227 declare module 'dojo/data/ObjectStore' {
228 type ObjectStore<T> = dojo.data.ObjectStore<T>;
228 type ObjectStore<T> = dojo.data.ObjectStore<T>;
229 const ObjectStore: dojo.data.ObjectStoreConstructor;
229 const ObjectStore: dojo.data.ObjectStoreConstructor;
230 export = ObjectStore;
230 export = ObjectStore;
231 }
231 }
232
232
233 declare module 'dojo/date' {
233 declare module 'dojo/date' {
234 const date: dojo.date.DateBase;
234 const date: dojo.date.DateBase;
235 export = date;
235 export = date;
236 }
236 }
237
237
238 declare module 'dojo/date/locale' {
238 declare module 'dojo/date/locale' {
239 const dateLocale: dojo.date.DateLocale;
239 const dateLocale: dojo.date.DateLocale;
240 export = dateLocale;
240 export = dateLocale;
241 }
241 }
242
242
243 declare module 'dojo/date/stamp' {
243 declare module 'dojo/date/stamp' {
244 const stamp: dojo.date.Stamp;
244 const stamp: dojo.date.Stamp;
245 export = stamp;
245 export = stamp;
246 }
246 }
247
247
248 declare module 'dojo/debounce' {
248 declare module 'dojo/debounce' {
249 const debounce: dojo.Debounce;
249 const debounce: dojo.Debounce;
250 export = debounce;
250 export = debounce;
251 }
251 }
252
252
253 declare module 'dojo/Deferred' {
253 declare module 'dojo/Deferred' {
254 type Deferred<T> = dojo.Deferred<T>;
254 type Deferred<T> = dojo.Deferred<T>;
255 const Deferred: dojo.DeferredConstructor;
255 const Deferred: dojo.DeferredConstructor;
256 export = Deferred;
256 export = Deferred;
257 }
257 }
258
258
259 declare module 'dojo/DeferredList' {
259 declare module 'dojo/DeferredList' {
260 type DeferredList<T> = dojo.DeferredList<T>;
260 type DeferredList<T> = dojo.DeferredList<T>;
261 const DeferredList: dojo.DeferredListConstructor;
261 const DeferredList: dojo.DeferredListConstructor;
262 export = DeferredList;
262 export = DeferredList;
263 }
263 }
264
264
265 declare module 'dojo/dnd/autoscroll' {
265 declare module 'dojo/dnd/autoscroll' {
266 const autoscroll: dojo.dnd.AutoScroll;
266 const autoscroll: dojo.dnd.AutoScroll;
267 export = autoscroll;
267 export = autoscroll;
268 }
268 }
269
269
270 declare module 'dojo/dnd/AutoSource' {
270 declare module 'dojo/dnd/AutoSource' {
271 const AutoSource: dojo.dnd.AutoSourceConstructor;
271 const AutoSource: dojo.dnd.AutoSourceConstructor;
272 export = AutoSource;
272 export = AutoSource;
273 }
273 }
274
274
275 declare module 'dojo/dnd/Avatar' {
275 declare module 'dojo/dnd/Avatar' {
276 type Avatar = dojo.dnd.Avatar;
276 type Avatar = dojo.dnd.Avatar;
277 const Avatar: dojo.dnd.AvatarConstructor;
277 const Avatar: dojo.dnd.AvatarConstructor;
278 export = Avatar;
278 export = Avatar;
279 }
279 }
280
280
281 declare module 'dojo/dnd/common' {
281 declare module 'dojo/dnd/common' {
282 const common: dojo.dnd.Common;
282 const common: dojo.dnd.Common;
283 export = common;
283 export = common;
284 }
284 }
285
285
286 declare module 'dojo/dnd/Container' {
286 declare module 'dojo/dnd/Container' {
287 type Container = dojo.dnd.Container;
287 type Container = dojo.dnd.Container;
288 const Container: dojo.dnd.ContainerConstructor;
288 const Container: dojo.dnd.ContainerConstructor;
289 export = Container;
289 export = Container;
290 }
290 }
291
291
292 declare module 'dojo/dnd/Manager' {
292 declare module 'dojo/dnd/Manager' {
293 type Manager = dojo.dnd.Manager;
293 type Manager = dojo.dnd.Manager;
294 const Manager: dojo.dnd.ManagerConstructor;
294 const Manager: dojo.dnd.ManagerConstructor;
295 export = Manager;
295 export = Manager;
296 }
296 }
297
297
298 declare module 'dojo/dnd/move' {
298 declare module 'dojo/dnd/move' {
299 const Move: dojo.dnd.Move;
299 const Move: dojo.dnd.Move;
300 export = Move;
300 export = Move;
301 }
301 }
302
302
303 declare module 'dojo/dnd/Moveable' {
303 declare module 'dojo/dnd/Moveable' {
304 type Moveable = dojo.dnd.Moveable;
304 type Moveable = dojo.dnd.Moveable;
305 const Moveable: dojo.dnd.Moveable;
305 const Moveable: dojo.dnd.Moveable;
306 export = Moveable;
306 export = Moveable;
307 }
307 }
308
308
309 declare module 'dojo/dnd/Mover' {
309 declare module 'dojo/dnd/Mover' {
310 type Mover = dojo.dnd.Mover;
310 type Mover = dojo.dnd.Mover;
311 const Mover: dojo.dnd.MoverConstructor;
311 const Mover: dojo.dnd.MoverConstructor;
312 export = Mover;
312 export = Mover;
313 }
313 }
314
314
315 declare module 'dojo/dnd/Selector' {
315 declare module 'dojo/dnd/Selector' {
316 type Selector = dojo.dnd.Selector;
316 type Selector = dojo.dnd.Selector;
317 const Selector: dojo.dnd.SelectorConstructor;
317 const Selector: dojo.dnd.SelectorConstructor;
318 export = Selector;
318 export = Selector;
319 }
319 }
320
320
321 declare module 'dojo/dnd/Source' {
321 declare module 'dojo/dnd/Source' {
322 type Source = dojo.dnd.Source;
322 type Source = dojo.dnd.Source;
323 const Source: dojo.dnd.SourceConstructor;
323 const Source: dojo.dnd.SourceConstructor;
324 export = Source;
324 export = Source;
325 }
325 }
326
326
327 declare module 'dojo/dnd/Target' {
327 declare module 'dojo/dnd/Target' {
328 type Target = dojo.dnd.Target;
328 type Target = dojo.dnd.Target;
329 const Target: dojo.dnd.TargetConstructor;
329 const Target: dojo.dnd.TargetConstructor;
330 export = Target;
330 export = Target;
331 }
331 }
332
332
333 declare module 'dojo/dnd/TimedMoveable' {
333 declare module 'dojo/dnd/TimedMoveable' {
334 type TimedMoveable = dojo.dnd.TimedMoveable;
334 type TimedMoveable = dojo.dnd.TimedMoveable;
335 const TimedMoveable: dojo.dnd.TimedMoveableConstructor;
335 const TimedMoveable: dojo.dnd.TimedMoveableConstructor;
336 export = TimedMoveable;
336 export = TimedMoveable;
337 }
337 }
338
338
339 declare module 'dojo/dojo' {
339 declare module 'dojo/dojo' {
340 const require: dojo.Require;
340 const require: dojo.Require;
341 export = require;
341 export = require;
342 }
342 }
343
343
344 declare module 'require' {
344 declare module 'require' {
345 const require: dojo.Require;
345 const require: dojo.Require;
346 export = require;
346 export = require;
347 }
347 }
348
348
349 declare module 'dojo/dom' {
349 declare module 'dojo/dom' {
350 const dom: dojo.Dom;
350 const dom: dojo.Dom;
351 export = dom;
351 export = dom;
352 }
352 }
353
353
354 declare module 'dojo/dom-attr' {
354 declare module 'dojo/dom-attr' {
355 const domAttr: dojo.DomAttr;
355 const domAttr: dojo.DomAttr;
356 export = domAttr;
356 export = domAttr;
357 }
357 }
358
358
359 declare module 'dojo/dom-class' {
359 declare module 'dojo/dom-class' {
360 const domClass: dojo.DomClass;
360 const domClass: dojo.DomClass;
361 export = domClass;
361 export = domClass;
362 }
362 }
363
363
364 declare module 'dojo/dom-construct' {
364 declare module 'dojo/dom-construct' {
365 const domConstruct: dojo.DomConstruct;
365 const domConstruct: dojo.DomConstruct;
366 export = domConstruct;
366 export = domConstruct;
367 }
367 }
368
368
369 declare module 'dojo/dom-form' {
369 declare module 'dojo/dom-form' {
370 const domForm: dojo.DomForm;
370 const domForm: dojo.DomForm;
371 export = domForm;
371 export = domForm;
372 }
372 }
373
373
374 declare module 'dojo/dom-geometry' {
374 declare module 'dojo/dom-geometry' {
375 const domGeom: dojo.DomGeometry;
375 const domGeom: dojo.DomGeometry;
376 export = domGeom;
376 export = domGeom;
377 }
377 }
378
378
379 declare module 'dojo/dom-prop' {
379 declare module 'dojo/dom-prop' {
380 const domProp: dojo.DomProp;
380 const domProp: dojo.DomProp;
381 export = domProp;
381 export = domProp;
382 }
382 }
383
383
384 declare module 'dojo/dom-style' {
384 declare module 'dojo/dom-style' {
385 const domStyle: dojo.DomStyle;
385 const domStyle: dojo.DomStyle;
386 export = domStyle;
386 export = domStyle;
387 }
387 }
388
388
389 declare module 'dojo/domReady' {
389 declare module 'dojo/domReady' {
390 const domReady: dojo.DomReady;
390 const domReady: dojo.DomReady;
391 export = domReady;
391 export = domReady;
392 }
392 }
393
393
394 declare module 'dojo/domReady!' {
394 declare module 'dojo/domReady!' {
395 const callback: any;
395 const callback: any;
396 export = callback;
396 export = callback;
397 }
397 }
398
398
399 declare module 'dojo/errors/CancelError' {
399 declare module 'dojo/errors/CancelError' {
400 type CancelError = dojo.errors.CancelError;
400 type CancelError = dojo.errors.CancelError;
401 const CancelError: dojo.errors.CancelErrorConstructor;
401 const CancelError: dojo.errors.CancelErrorConstructor;
402 export = CancelError;
402 export = CancelError;
403 }
403 }
404
404
405 declare module 'dojo/errors/create' {
405 declare module 'dojo/errors/create' {
406 const create: dojo.errors.Create;
406 const create: dojo.errors.Create;
407 export = create;
407 export = create;
408 }
408 }
409
409
410 declare module 'dojo/errors/RequestError' {
410 declare module 'dojo/errors/RequestError' {
411 type RequestError = dojo.errors.RequestError;
411 type RequestError = dojo.errors.RequestError;
412 const RequestError: dojo.errors.RequestErrorConstructor;
412 const RequestError: dojo.errors.RequestErrorConstructor;
413 export = RequestError;
413 export = RequestError;
414 }
414 }
415
415
416 declare module 'dojo/errors/RequestTimeoutError' {
416 declare module 'dojo/errors/RequestTimeoutError' {
417 type RequestTimeoutError = dojo.errors.RequestError;
417 type RequestTimeoutError = dojo.errors.RequestError;
418 const RequestTimeoutError: dojo.errors.RequestTimeoutErrorConstructor;
418 const RequestTimeoutError: dojo.errors.RequestTimeoutErrorConstructor;
419 export = RequestTimeoutError;
419 export = RequestTimeoutError;
420 }
420 }
421
421
422 declare module 'dojo/Evented' {
422 declare module 'dojo/Evented' {
423 type Evented = dojo.Evented;
423 type Evented = dojo.Evented;
424 const Evented: dojo.EventedConstructor;
424 const Evented: dojo.EventedConstructor;
425 export = Evented;
425 export = Evented;
426 }
426 }
427
427
428 declare module 'dojo/gears' {
428 declare module 'dojo/gears' {
429 const gears: dojo.Gears;
429 const gears: dojo.Gears;
430 export = gears;
430 export = gears;
431 }
431 }
432
432
433 declare module 'dojo/has' {
433 declare module 'dojo/has' {
434 const has: dojo.Has;
434 const has: dojo.Has;
435 export = has;
435 export = has;
436 }
436 }
437
437
438 declare module 'dojo/hash' {
438 declare module 'dojo/hash' {
439 const hash: dojo.Hash;
439 const hash: dojo.Hash;
440 export = hash;
440 export = hash;
441 }
441 }
442
442
443 declare module 'dojo/hccss' {
443 declare module 'dojo/hccss' {
444 const hccss: dojo.Has;
444 const hccss: dojo.Has;
445 export = hccss;
445 export = hccss;
446 }
446 }
447
447
448 declare module 'dojo/html' {
448 declare module 'dojo/html' {
449 const html: dojo.Html;
449 const html: dojo.Html;
450 export = html;
450 export = html;
451 }
451 }
452
452
453 declare module 'dojo/i18n' {
453 declare module 'dojo/i18n' {
454 const i18n: dojo.I18n;
454 const i18n: dojo.I18n;
455 export = i18n;
455 export = i18n;
456 }
456 }
457
457
458 declare module 'dojo/io/iframe' {
458 declare module 'dojo/io/iframe' {
459 const iframe: dojo.io.IFrame;
459 const iframe: dojo.io.IFrame;
460 export = iframe;
460 export = iframe;
461 }
461 }
462
462
463 declare module 'dojo/io/script' {
463 declare module 'dojo/io/script' {
464 const script: dojo.io.Script;
464 const script: dojo.io.Script;
465 export = script;
465 export = script;
466 }
466 }
467
467
468 declare module 'dojo/io-query' {
468 declare module 'dojo/io-query' {
469 const ioQuery: dojo.IoQuery;
469 const ioQuery: dojo.IoQuery;
470 export = ioQuery;
470 export = ioQuery;
471 }
471 }
472
472
473 declare module 'dojo/json' {
473 declare module 'dojo/json' {
474 const json: dojo.Json;
474 const json: dojo.Json;
475 export = json;
475 export = json;
476 }
476 }
477
477
478 declare module 'dojo/keys' {
478 declare module 'dojo/keys' {
479 const keys: dojo.Keys;
479 const keys: dojo.Keys;
480 export = keys;
480 export = keys;
481 }
481 }
482
482
483 declare module 'dojo/loadInit' {
483 declare module 'dojo/loadInit' {
484 const loadInit: dojo.LoadInit;
484 const loadInit: dojo.LoadInit;
485 export = loadInit;
485 export = loadInit;
486 }
486 }
487
487
488 declare module 'dojo/loadInit!' {
488 declare module 'dojo/loadInit!' {
489 const loadInit: (mid: string, require: any, loaded: (...modules: any[]) => void) => void;
489 const loadInit: (mid: string, require: any, loaded: (...modules: any[]) => void) => void;
490 export = loadInit;
490 export = loadInit;
491 }
491 }
492
492
493 declare module 'dojo/main' {
493 declare module 'dojo/main' {
494 const main: dojo._base.Dojo;
494 const main: dojo._base.Dojo;
495 export = main;
495 export = main;
496 }
496 }
497
497
498 declare module 'dojo/mouse' {
498 declare module 'dojo/mouse' {
499 const mouse: dojo.Mouse;
499 const mouse: dojo.Mouse;
500 export = mouse;
500 export = mouse;
501 }
501 }
502
502
503 declare module 'dojo/NodeList' {
503 declare module 'dojo/NodeList' {
504 type NodeList<T extends Node> = dojo.NodeList<T>;
504 type NodeList<T extends Node> = dojo.NodeList<T>;
505 const NodeList: dojo.NodeListConstructor;
505 const NodeList: dojo.NodeListConstructor;
506 export = NodeList;
506 export = NodeList;
507 }
507 }
508
508
509 declare module 'dojo/number' {
509 declare module 'dojo/number' {
510 const value: dojo.Number;
510 const value: dojo.Number;
511 export = value;
511 export = value;
512 }
512 }
513
513
514 declare module 'dojo/on' {
514 declare module 'dojo/on' {
515 const on: dojo.On;
515 const on: dojo.On;
516 export = on;
516 export = on;
517 }
517 }
518
518
519 declare module 'dojo/on/asyncEventListener' {
519 declare module 'dojo/on/asyncEventListener' {
520 const asyncEventListener: dojo.on.AsyncEventListener;
520 const asyncEventListener: dojo.on.AsyncEventListener;
521 export = asyncEventListener;
521 export = asyncEventListener;
522 }
522 }
523
523
524 declare module 'dojo/on/debounce' {
524 declare module 'dojo/on/debounce' {
525 const debounce: dojo.on.Debounce;
525 const debounce: dojo.on.Debounce;
526 export = debounce;
526 export = debounce;
527 }
527 }
528
528
529 declare module 'dojo/on/throttle' {
529 declare module 'dojo/on/throttle' {
530 const throttle: dojo.on.Throttle;
530 const throttle: dojo.on.Throttle;
531 export = throttle;
531 export = throttle;
532 }
532 }
533
533
534 declare module 'dojo/parser' {
534 declare module 'dojo/parser' {
535 const parser: dojo.Parser;
535 const parser: dojo.Parser;
536 export = parser;
536 export = parser;
537 }
537 }
538
538
539 declare module 'dojo/promise/all' {
539 declare module 'dojo/promise/all' {
540 const all: dojo.promise.All;
540 const all: dojo.promise.All;
541 export = all;
541 export = all;
542 }
542 }
543
543
544 declare module 'dojo/promise/first' {
544 declare module 'dojo/promise/first' {
545 const first: dojo.promise.First;
545 const first: dojo.promise.First;
546 export = first;
546 export = first;
547 }
547 }
548
548
549 declare module 'dojo/promise/instrumentation' {
549 declare module 'dojo/promise/instrumentation' {
550 const instrumentation: dojo.promise.Instrumentation;
550 const instrumentation: dojo.promise.Instrumentation;
551 export = instrumentation;
551 export = instrumentation;
552 }
552 }
553
553
554 declare module 'dojo/promise/Promise' {
554 declare module 'dojo/promise/Promise' {
555 type Promise<T> = dojo.promise.Promise<T>;
555 type Promise<T> = dojo.promise.Promise<T>;
556 const Promise: dojo.promise.PromiseConstructor;
556 const Promise: dojo.promise.PromiseConstructor;
557 export = Promise;
557 export = Promise;
558 }
558 }
559
559
560 declare module 'dojo/promise/tracer' {
560 declare module 'dojo/promise/tracer' {
561 const tracer: dojo.promise.Tracer;
561 const tracer: dojo.promise.Tracer;
562 export = tracer;
562 export = tracer;
563 }
563 }
564
564
565 declare module 'dojo/query' {
565 declare module 'dojo/query' {
566 const query: dojo.Query;
566 const query: dojo.Query;
567 export = query;
567 export = query;
568 }
568 }
569
569
570 /* modules for included selector engines */
570 /* modules for included selector engines */
571
571
572 declare module 'dojo/query!acme' {
572 declare module 'dojo/query!acme' {
573 const query: dojo.Query;
573 const query: dojo.Query;
574 export = query;
574 export = query;
575 }
575 }
576
576
577 declare module 'dojo/query!lite' {
577 declare module 'dojo/query!lite' {
578 const query: dojo.Query;
578 const query: dojo.Query;
579 export = query;
579 export = query;
580 }
580 }
581
581
582 declare module 'dojo/ready' {
582 declare module 'dojo/ready' {
583 const ready: dojo.Ready;
583 const ready: dojo.Ready;
584 export = ready;
584 export = ready;
585 }
585 }
586
586
587 declare module 'dojo/regexp' {
587 declare module 'dojo/regexp' {
588 const regexp: dojo.RegExpModule;
588 const regexp: dojo.RegExpModule;
589 export = regexp;
589 export = regexp;
590 }
590 }
591
591
592 declare module 'dojo/request' {
592 declare module 'dojo/request' {
593 const request: dojo.request.Request;
593 const request: dojo.request.Request;
594 export = request;
594 export = request;
595 }
595 }
596
596
597 declare module 'dojo/request/default' {
597 declare module 'dojo/request/default' {
598 const def: dojo.request.Default;
598 const def: dojo.request.Default;
599 export = def;
599 export = def;
600 }
600 }
601
601
602 declare module 'dojo/request/default!' {
602 declare module 'dojo/request/default!' {
603 const def: dojo.request.Request;
603 const def: dojo.request.Request;
604 export = def;
604 export = def;
605 }
605 }
606
606
607 declare module 'dojo/request/handlers' {
607 declare module 'dojo/request/handlers' {
608 const handlers: dojo.request.Handlers;
608 const handlers: dojo.request.Handlers;
609 export = handlers;
609 export = handlers;
610 }
610 }
611
611
612 declare module 'dojo/request/iframe' {
612 declare module 'dojo/request/iframe' {
613 const iframe: dojo.request.IFrame;
613 const iframe: dojo.request.IFrame;
614 export = iframe;
614 export = iframe;
615 }
615 }
616
616
617 declare module 'dojo/request/node' {
617 declare module 'dojo/request/node' {
618 const node: dojo.request.Node;
618 const node: dojo.request.Node;
619 export = node;
619 export = node;
620 }
620 }
621
621
622 declare module 'dojo/request/registry' {
622 declare module 'dojo/request/registry' {
623 const registry: dojo.request.Registry;
623 const registry: dojo.request.Registry;
624 export = registry;
624 export = registry;
625 }
625 }
626
626
627 declare module 'dojo/request/script' {
627 declare module 'dojo/request/script' {
628 const script: dojo.request.Script;
628 const script: dojo.request.Script;
629 export = script;
629 export = script;
630 }
630 }
631
631
632 declare module 'dojo/request/util' {
632 declare module 'dojo/request/util' {
633 const util: dojo.request.Util;
633 const util: dojo.request.Util;
634 export = util;
634 export = util;
635 }
635 }
636
636
637 declare module 'dojo/request/watch' {
637 declare module 'dojo/request/watch' {
638 const watch: dojo.request.Watch;
638 const watch: dojo.request.Watch;
639 export = watch;
639 export = watch;
640 }
640 }
641
641
642 declare module 'dojo/request/xhr' {
642 declare module 'dojo/request/xhr' {
643 const xhr: dojo.request.Xhr;
643 const xhr: dojo.request.Xhr;
644 export = xhr;
644 export = xhr;
645 }
645 }
646
646
647 declare module 'dojo/require' {
647 declare module 'dojo/require' {
648 const require: dojo.RequirePlugin;
648 const require: dojo.RequirePlugin;
649 export = require;
649 export = require;
650 }
650 }
651
651
652 declare module 'dojo/robot' {
652 declare module 'dojo/robot' {
653 const robot: dojo.Robot;
653 const robot: dojo.Robot;
654 export = robot;
654 export = robot;
655 }
655 }
656
656
657 declare module 'dojo/robotx' {
657 declare module 'dojo/robotx' {
658 const robotx: dojo.RobotX;
658 const robotx: dojo.RobotX;
659 export = robotx;
659 export = robotx;
660 }
660 }
661
661
662 declare module 'dojo/router' {
662 declare module 'dojo/router' {
663 const router: dojo.router.RouterBase;
663 const router: dojo.router.RouterBase;
664 export = router;
664 export = router;
665 }
665 }
666
666
667 declare module 'dojo/router/RouterBase' {
667 declare module 'dojo/router/RouterBase' {
668 type RouterBase = dojo.router.RouterBase;
668 type RouterBase = dojo.router.RouterBase;
669 const RouterBase: dojo.router.RouterBaseConstructor;
669 const RouterBase: dojo.router.RouterBaseConstructor;
670 export = RouterBase;
670 export = RouterBase;
671 }
671 }
672
672
673 declare module 'dojo/rpc/JsonpService' {
673 declare module 'dojo/rpc/JsonpService' {
674 type JsonpService<T> = dojo.rpc.JsonpService<T>;
674 type JsonpService<T> = dojo.rpc.JsonpService<T>;
675 const JsonpService: dojo.rpc.JsonpServiceConstructor;
675 const JsonpService: dojo.rpc.JsonpServiceConstructor;
676 export = JsonpService;
676 export = JsonpService;
677 }
677 }
678
678
679 declare module 'dojo/rpc/JsonService' {
679 declare module 'dojo/rpc/JsonService' {
680 type JsonService<T> = dojo.rpc.JsonService<T>;
680 type JsonService<T> = dojo.rpc.JsonService<T>;
681 const JsonService: dojo.rpc.JsonServiceConstructor;
681 const JsonService: dojo.rpc.JsonServiceConstructor;
682 export = JsonService;
682 export = JsonService;
683 }
683 }
684
684
685 declare module 'dojo/rpc/RpcService' {
685 declare module 'dojo/rpc/RpcService' {
686 type RpcService<T> = dojo.rpc.RpcService<T>;
686 type RpcService<T> = dojo.rpc.RpcService<T>;
687 const RpcService: dojo.rpc.RpcServiceConstructor;
687 const RpcService: dojo.rpc.RpcServiceConstructor;
688 export = RpcService;
688 export = RpcService;
689 }
689 }
690
690
691 declare module 'dojo/selector/_loader' {
691 declare module 'dojo/selector/_loader' {
692 const loader: dojo.selector.Loader;
692 const loader: dojo.selector.Loader;
693 export = loader;
693 export = loader;
694 }
694 }
695
695
696 declare module 'dojo/selector/_loader!' {
696 declare module 'dojo/selector/_loader!' {
697 const lite: dojo.selector.LiteQueryEnegine;
697 const lite: dojo.selector.LiteQueryEnegine;
698 export = lite;
698 export = lite;
699 }
699 }
700
700
701 declare module 'dojo/selector/_loader!acme' {
701 declare module 'dojo/selector/_loader!acme' {
702 const acme: dojo.selector.AcmeQueryEngine;
702 const acme: dojo.selector.AcmeQueryEngine;
703 export = acme;
703 export = acme;
704 }
704 }
705
705
706 declare module 'dojo/selector/_loader!lite' {
706 declare module 'dojo/selector/_loader!lite' {
707 const lite: dojo.selector.LiteQueryEnegine;
707 const lite: dojo.selector.LiteQueryEnegine;
708 export = lite;
708 export = lite;
709 }
709 }
710
710
711 declare module 'dojo/selector/acme' {
711 declare module 'dojo/selector/acme' {
712 const acme: dojo.selector.AcmeQueryEngine;
712 const acme: dojo.selector.AcmeQueryEngine;
713 export = acme;
713 export = acme;
714 }
714 }
715
715
716 declare module 'dojo/selector/lite' {
716 declare module 'dojo/selector/lite' {
717 const lite: dojo.selector.LiteQueryEnegine;
717 const lite: dojo.selector.LiteQueryEnegine;
718 export = lite;
718 export = lite;
719 }
719 }
720
720
721 declare module 'dojo/sniff' {
721 declare module 'dojo/sniff' {
722 const sniff: dojo.Has;
722 const sniff: dojo.Has;
723 export = sniff;
723 export = sniff;
724 }
724 }
725
725
726 declare module 'dojo/Stateful' {
726 declare module 'dojo/Stateful' {
727 type Stateful<T = any> = dojo.Stateful<any>;
727 type Stateful<T = any> = dojo.Stateful<T>;
728 const Stateful: dojo.StatefulConstructor;
728 const Stateful: dojo.StatefulConstructor;
729 export = Stateful;
729 export = Stateful;
730 }
730 }
731
731
732 declare module 'dojo/store/api/Store' {
732 declare module 'dojo/store/api/Store' {
733 type Store<T extends Object, Q extends string | Object | Function, O extends dojo.store.api.QueryOptions> = dojo.store.api.Store<T, Q, O>;
733 type Store<T extends Object, Q extends string | Object | Function, O extends dojo.store.api.QueryOptions> = dojo.store.api.Store<T, Q, O>;
734 const Store: dojo.store.api.StoreConstructor;
734 const Store: dojo.store.api.StoreConstructor;
735 export = Store;
735 export = Store;
736 }
736 }
737
737
738 declare module 'dojo/store/util/QueryResults' {
738 declare module 'dojo/store/util/QueryResults' {
739 const QueryResults: dojo.store.util.QueryResultsFunction;
739 const QueryResults: dojo.store.util.QueryResultsFunction;
740 export = QueryResults;
740 export = QueryResults;
741 }
741 }
742
742
743 declare module 'dojo/store/util/SimpleQueryEngine' {
743 declare module 'dojo/store/util/SimpleQueryEngine' {
744 const SimpleQueryEngine: dojo.store.util.SimpleQueryEngine;
744 const SimpleQueryEngine: dojo.store.util.SimpleQueryEngine;
745 export = SimpleQueryEngine;
745 export = SimpleQueryEngine;
746 }
746 }
747
747
748 declare module 'dojo/store/Cache' {
748 declare module 'dojo/store/Cache' {
749 const Cache: dojo.store.Cache;
749 const Cache: dojo.store.Cache;
750 export = Cache;
750 export = Cache;
751 }
751 }
752
752
753 declare module 'dojo/store/DataStore' {
753 declare module 'dojo/store/DataStore' {
754 type DataStore<T extends Object> = dojo.store.DataStore<T>;
754 type DataStore<T extends Object> = dojo.store.DataStore<T>;
755 const DataStore: dojo.store.DataStoreConstructor;
755 const DataStore: dojo.store.DataStoreConstructor;
756 export = DataStore;
756 export = DataStore;
757 }
757 }
758
758
759 declare module 'dojo/store/JsonRest' {
759 declare module 'dojo/store/JsonRest' {
760 type JsonRest<T extends object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.JsonRestQueryOptions> = dojo.store.JsonRest<T, Q, O>;
760 type JsonRest<T extends object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.JsonRestQueryOptions> = dojo.store.JsonRest<T, Q, O>;
761 const JsonRest: dojo.store.JsonRestConstructor;
761 const JsonRest: dojo.store.JsonRestConstructor;
762 export = JsonRest;
762 export = JsonRest;
763 }
763 }
764
764
765 declare module 'dojo/store/Memory' {
765 declare module 'dojo/store/Memory' {
766 type Memory<T extends Object> = dojo.store.Memory<T>;
766 type Memory<T extends Object> = dojo.store.Memory<T>;
767 const Memory: dojo.store.MemoryConstructor;
767 const Memory: dojo.store.MemoryConstructor;
768 export = Memory;
768 export = Memory;
769 }
769 }
770
770
771 declare module 'dojo/store/Observable' {
771 declare module 'dojo/store/Observable' {
772 const Observerable: dojo.store.Observable;
772 const Observerable: dojo.store.Observable;
773 export = Observerable;
773 export = Observerable;
774 }
774 }
775
775
776 declare module 'dojo/string' {
776 declare module 'dojo/string' {
777 const value: dojo.String;
777 const value: dojo.String;
778 export = value;
778 export = value;
779 }
779 }
780
780
781 declare module 'dojo/text' {
781 declare module 'dojo/text' {
782 const text: dojo.Text;
782 const text: dojo.Text;
783 export = text;
783 export = text;
784 }
784 }
785
785
786 declare module 'dojo/throttle' {
786 declare module 'dojo/throttle' {
787 const throttle: dojo.Throttle;
787 const throttle: dojo.Throttle;
788 export = throttle;
788 export = throttle;
789 }
789 }
790
790
791 declare module 'dojo/topic' {
791 declare module 'dojo/topic' {
792 const hub: dojo.Topic;
792 const hub: dojo.Topic;
793 export = hub;
793 export = hub;
794 }
794 }
795
795
796 declare module 'dojo/touch' {
796 declare module 'dojo/touch' {
797 const touch: dojo.Touch;
797 const touch: dojo.Touch;
798 export = touch;
798 export = touch;
799 }
799 }
800
800
801 declare module 'dojo/uacss' {
801 declare module 'dojo/uacss' {
802 const uacss: dojo.Has;
802 const uacss: dojo.Has;
803 export = uacss;
803 export = uacss;
804 }
804 }
805
805
806 declare module 'dojo/when' {
806 declare module 'dojo/when' {
807 const when: dojo.When;
807 const when: dojo.When;
808 export = when;
808 export = when;
809 }
809 }
810
810
811 declare module 'dojo/window' {
811 declare module 'dojo/window' {
812 const window: dojo.WindowModule;
812 const window: dojo.WindowModule;
813 export = window;
813 export = window;
814 }
814 }
815
815
816 declare module 'dojo/i18n!*' {
816 declare module 'dojo/i18n!*' {
817 const value: any;
817 const value: any;
818 export = value;
818 export = value;
819 }
819 }
820
820
821 declare module 'dojo/text!*' {
821 declare module 'dojo/text!*' {
822 const content: string;
822 const content: string;
823 export = content;
823 export = content;
824 }
824 }
@@ -1,21 +1,26
1 import Stateful = require("dojo/Stateful");
1 import * as Stateful from "dojo/Stateful";
2 import { StatefulAttrs, watch } from "./traits";
2
3
3 interface ScheduleAttrs {
4 interface ScheduleAttrs {
4 title: string;
5 title: string;
5
6
6 duration: number;
7 duration: number;
7
8
8 }
9 }
9
10
10 declare class Schedule extends Stateful<ScheduleAttrs> {
11 declare class Schedule extends Stateful<ScheduleAttrs> {
11 title: string;
12 title: string;
12
13
13
14
14 }
15 }
15
16
16 const model = new Schedule({duration: 10, title: "Test event"});
17 const model = new Schedule({duration: 10, title: "Test event"});
17
18
18 model.get("title");
19 model.get("title");
19 model.get("duration");
20 model.get("duration");
20
21
21 model.set("duration", 12); No newline at end of file
22 model.set("duration", 12);
23
24 watch(model, "duration", v => v);
25
26 declare const o : StatefulAttrs<Schedule>; No newline at end of file
@@ -1,28 +1,26
1 import Memory = require("dojo/store/Memory");
1 import * as Memory from "dojo/store/Memory";
2 import Observable = require("dojo/store/Observable");
2 import * as Observable from "dojo/store/Observable";
3
3
4 interface Schedule {
4 interface Schedule {
5
5
6 id?: string;
6 id?: string;
7
7
8 title: string;
8 title: string;
9
9
10 duration: number;
10 duration: number;
11 }
11 }
12
12
13 declare const store: dojo.store.api.Store<Schedule>;
13 declare const store: dojo.store.api.Store<Schedule>;
14
14
15 const observable = new Observable(store);
15 const observable = new Observable(store);
16
16
17 const mem = new Memory<Schedule>();
17 const mem = new Memory<Schedule>();
18
18
19 (async () => {
19 observable.query().observe(() => { });
20 observable.query().observe(() => {});
20 store.query().forEach(() => { });
21 store.query().forEach(() => {});
21 const total = await store.query().total;
22 const total = await store.query().total;
22 const result = await store.query();
23 const result = await store.query();
24
23
25 mem.query();
24 mem.query();
26
25
27 mem.add({duration: 10, title: "Test event"});
26 mem.add({ duration: 10, title: "Test event" });
28 })(); No newline at end of file
@@ -1,17 +1,41
1 import _WidgetBase = require("dijit/_WidgetBase");
1 import * as _WidgetBase from "dijit/_WidgetBase";
2 import { watch } from "./traits";
2
3
3 interface ScheduleWidgetAttrs {
4 interface ScheduleWidgetAttrs {
4 data: string[];
5 data: string[];
5 }
6 }
6
7
7 declare const w0: _WidgetBase<ScheduleWidgetAttrs>;
8 interface ScheduleWidgetEvents {
9 "scheduled": Event & {
10 detail: {
11 startDate: Date,
12 endDate: Date
13 }
14 };
15 }
8
16
9 w0.get("data");
17 declare class ScheduleWidget extends _WidgetBase<ScheduleWidgetAttrs, ScheduleWidgetEvents> {
10
11 declare class ScheduleWidget extends _WidgetBase {
12 data: string[];
18 data: string[];
13 }
19 }
14
20
15 const w = new ScheduleWidget({title: "Year schedule", data: ["a", "b"] });
21 const w = new ScheduleWidget({title: "Year schedule", data: ["a", "b"] });
16
22
17 w.get("data"); No newline at end of file
23 w.get("data");
24
25 w.watch((p, o, n) => [p,o,n]);
26
27 w.watch("data", (p, o, n) => [p,o,n]);
28
29 watch(w, "title", v => String(v) );
30 watch(w, "data", v => String(v) );
31
32 w.emit("scheduled", { detail: { startDate: new Date(), endDate: new Date()} });
33
34 w.emit("click", {} );
35
36 w.emit("click", {} );
37
38 w.emit("some-extra-event", {});
39
40 w.on("click", e => e);
41 w.on("some-extra-event", e => e);
@@ -1,22 +1,24
1 {
1 {
2 "extends": "../tsconfig",
2 "extends": "../tsconfig",
3 "compilerOptions": {
3 "compilerOptions": {
4 "baseUrl": ".",
4 "baseUrl": ".",
5 "rootDir": "ts",
5 "rootDir": "ts",
6 "rootDirs": [
6 "rootDirs": [
7 "ts",
7 "ts",
8 "typings",
8 "../main/ts"
9 "../main/ts"
9 ],
10 ],
10 "types": [
11 "types": [
11 "requirejs",
12 "requirejs",
12 "../main/typings/dojo/modules",
13 "../main/typings/dojo/modules",
13 "../main/typings/dijit/modules"
14 "../main/typings/dijit/modules"
14 ],
15 ],
15 "module": "amd"
16 "module": "ESNext",
17 "target": "ESNext"
16 },
18 },
17 "include": [
19 "include": [
18 "typings/**/*.ts",
20 "typings/**/*.ts",
19 "ts/**/*.ts",
21 "ts/**/*.ts",
20 "ts/**/*.tsx"
22 "ts/**/*.tsx"
21 ]
23 ]
22 } No newline at end of file
24 }
General Comments 0
You need to be logged in to leave comments. Login now