@base-framework/base 2.6.1 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/base.js +1 -0
- package/package.json +9 -4
- package/.jshintrc +0 -3
- package/base.js +0 -41
- package/base.min.js +0 -1
- package/core.js +0 -1
- package/data-tracker.js +0 -351
- package/es5/base.js +0 -2968
- package/es5/modules/ajax.js +0 -663
- package/es5/modules/animation.js +0 -188
- package/es5/modules/animations.js +0 -1080
- package/es5/modules/atom.js +0 -65
- package/es5/modules/component.js +0 -1310
- package/es5/modules/data-binder.js +0 -1131
- package/es5/modules/data.js +0 -1808
- package/es5/modules/date.js +0 -525
- package/es5/modules/form-validator.js +0 -324
- package/es5/modules/history.js +0 -126
- package/es5/modules/html-builder.js +0 -461
- package/es5/modules/layout.js +0 -1679
- package/es5/modules/mouse.js +0 -124
- package/es5/modules/nav-link.js +0 -123
- package/es5/modules/olderversions/animations-ease.js +0 -1095
- package/es5/modules/olderversions/animations-update.js +0 -1048
- package/es5/modules/olderversions/base-animations.js +0 -636
- package/es5/modules/olderversions/base-component-class.js +0 -100
- package/es5/modules/olderversions/base-data-binder-1.js +0 -407
- package/es5/modules/olderversions/base-data-binder-class.js +0 -358
- package/es5/modules/olderversions/base-layout-parser-class.js +0 -172
- package/es5/modules/olderversions/base-mode-1.js +0 -777
- package/es5/modules/olderversions/base-model-class.js +0 -585
- package/es5/modules/olderversions/data-binder/element-binding/base-data-binder-class.js +0 -358
- package/es5/modules/olderversions/data-binder/element-binding/base-model-class.js +0 -585
- package/es5/modules/olderversions/data-binder/model-binding/base-data-binder-class.js +0 -353
- package/es5/modules/olderversions/data-binder/model-binding/base-model-class.js +0 -604
- package/es5/modules/olderversions/data-binder-update-watcher.js +0 -640
- package/es5/modules/olderversions/data-tracker.js +0 -187
- package/es5/modules/olderversions/event-update.js +0 -666
- package/es5/modules/olderversions/nav-link.js +0 -119
- package/es5/modules/olderversions/router-with-templates-1.js +0 -785
- package/es5/modules/olderversions/router-with-templates.js +0 -701
- package/es5/modules/prototypes/ajax.js +0 -657
- package/es5/modules/prototypes/atom.js +0 -65
- package/es5/modules/prototypes/component.js +0 -972
- package/es5/modules/prototypes/data-binder.js +0 -1089
- package/es5/modules/prototypes/data.js +0 -1290
- package/es5/modules/prototypes/html-builder.js +0 -414
- package/es5/modules/prototypes/layout.js +0 -879
- package/es5/modules/router.js +0 -1680
- package/es5/modules/state.js +0 -274
- package/es6/.jshintrc +0 -3
- package/es6/base.js +0 -41
- package/es6/core.js +0 -1
- package/es6/data-tracker.js +0 -351
- package/es6/events.js +0 -602
- package/es6/legacy/es5/base.js +0 -2968
- package/es6/legacy/es5/modules/ajax.js +0 -663
- package/es6/legacy/es5/modules/animation.js +0 -188
- package/es6/legacy/es5/modules/animations.js +0 -1080
- package/es6/legacy/es5/modules/atom.js +0 -65
- package/es6/legacy/es5/modules/component.js +0 -1310
- package/es6/legacy/es5/modules/data-binder.js +0 -1131
- package/es6/legacy/es5/modules/data.js +0 -1808
- package/es6/legacy/es5/modules/date.js +0 -525
- package/es6/legacy/es5/modules/form-validator.js +0 -324
- package/es6/legacy/es5/modules/history.js +0 -126
- package/es6/legacy/es5/modules/html-builder.js +0 -461
- package/es6/legacy/es5/modules/layout.js +0 -1679
- package/es6/legacy/es5/modules/mouse.js +0 -124
- package/es6/legacy/es5/modules/nav-link.js +0 -123
- package/es6/legacy/es5/modules/olderversions/animations-ease.js +0 -1095
- package/es6/legacy/es5/modules/olderversions/animations-update.js +0 -1048
- package/es6/legacy/es5/modules/olderversions/base-animations.js +0 -636
- package/es6/legacy/es5/modules/olderversions/base-component-class.js +0 -100
- package/es6/legacy/es5/modules/olderversions/base-data-binder-1.js +0 -407
- package/es6/legacy/es5/modules/olderversions/base-data-binder-class.js +0 -358
- package/es6/legacy/es5/modules/olderversions/base-layout-parser-class.js +0 -172
- package/es6/legacy/es5/modules/olderversions/base-mode-1.js +0 -777
- package/es6/legacy/es5/modules/olderversions/base-model-class.js +0 -585
- package/es6/legacy/es5/modules/olderversions/data-binder/element-binding/base-data-binder-class.js +0 -358
- package/es6/legacy/es5/modules/olderversions/data-binder/element-binding/base-model-class.js +0 -585
- package/es6/legacy/es5/modules/olderversions/data-binder/model-binding/base-data-binder-class.js +0 -353
- package/es6/legacy/es5/modules/olderversions/data-binder/model-binding/base-model-class.js +0 -604
- package/es6/legacy/es5/modules/olderversions/data-binder-update-watcher.js +0 -640
- package/es6/legacy/es5/modules/olderversions/data-tracker.js +0 -187
- package/es6/legacy/es5/modules/olderversions/event-update.js +0 -666
- package/es6/legacy/es5/modules/olderversions/nav-link.js +0 -119
- package/es6/legacy/es5/modules/olderversions/router-with-templates-1.js +0 -785
- package/es6/legacy/es5/modules/olderversions/router-with-templates.js +0 -701
- package/es6/legacy/es5/modules/prototypes/ajax.js +0 -657
- package/es6/legacy/es5/modules/prototypes/atom.js +0 -65
- package/es6/legacy/es5/modules/prototypes/component.js +0 -972
- package/es6/legacy/es5/modules/prototypes/data-binder.js +0 -1089
- package/es6/legacy/es5/modules/prototypes/data.js +0 -1290
- package/es6/legacy/es5/modules/prototypes/html-builder.js +0 -414
- package/es6/legacy/es5/modules/prototypes/layout.js +0 -879
- package/es6/legacy/es5/modules/router.js +0 -1680
- package/es6/legacy/es5/modules/state.js +0 -274
- package/es6/main.js +0 -1331
- package/es6/modules/ajax/ajax.js +0 -514
- package/es6/modules/animation/animation.js +0 -236
- package/es6/modules/animations/animation-controller.js +0 -231
- package/es6/modules/animations/animation.js +0 -64
- package/es6/modules/animations/attr-movement.js +0 -66
- package/es6/modules/animations/css-movement.js +0 -170
- package/es6/modules/animations/movement.js +0 -131
- package/es6/modules/animations/value.js +0 -187
- package/es6/modules/atom/atom.js +0 -54
- package/es6/modules/component/component.js +0 -230
- package/es6/modules/component/event-helper.js +0 -119
- package/es6/modules/component/jot.js +0 -144
- package/es6/modules/component/state-helper.js +0 -262
- package/es6/modules/component/unit.js +0 -551
- package/es6/modules/data/attrs.js +0 -40
- package/es6/modules/data/basic-data.js +0 -500
- package/es6/modules/data/data-utils.js +0 -29
- package/es6/modules/data/data.js +0 -3
- package/es6/modules/data/deep-data.js +0 -541
- package/es6/modules/data/model-service.js +0 -528
- package/es6/modules/data/model.js +0 -133
- package/es6/modules/data/simple-data.js +0 -33
- package/es6/modules/data-binder/connection-tracker.js +0 -113
- package/es6/modules/data-binder/connection.js +0 -16
- package/es6/modules/data-binder/data-binder.js +0 -352
- package/es6/modules/data-binder/data-pub-sub.js +0 -141
- package/es6/modules/data-binder/data-source.js +0 -56
- package/es6/modules/data-binder/element-source.js +0 -219
- package/es6/modules/data-binder/one-way-connection.js +0 -46
- package/es6/modules/data-binder/one-way-source.js +0 -43
- package/es6/modules/data-binder/source.js +0 -36
- package/es6/modules/data-binder/two-way-connection.js +0 -75
- package/es6/modules/data-binder/two-way-source.js +0 -41
- package/es6/modules/date/date.js +0 -544
- package/es6/modules/history/history.js +0 -89
- package/es6/modules/html-builder/html-builder.js +0 -434
- package/es6/modules/import/import.js +0 -390
- package/es6/modules/layout/layout-builder.js +0 -1269
- package/es6/modules/layout/layout-parser.js +0 -134
- package/es6/modules/layout/watcher-helper.js +0 -282
- package/es6/modules/mouse/mouse.js +0 -114
- package/es6/modules/router/component-helper.js +0 -163
- package/es6/modules/router/history-controller.js +0 -216
- package/es6/modules/router/nav-link.js +0 -124
- package/es6/modules/router/route.js +0 -401
- package/es6/modules/router/router.js +0 -789
- package/es6/modules/router/utils.js +0 -31
- package/es6/modules/state/state-target.js +0 -91
- package/es6/modules/state/state.js +0 -171
- package/es6/package-lock.json +0 -13
- package/es6/package.json +0 -28
- package/es6/shared/objects.js +0 -99
- package/events.js +0 -602
- package/legacy/es5/base.js +0 -2968
- package/legacy/es5/modules/ajax.js +0 -663
- package/legacy/es5/modules/animation.js +0 -188
- package/legacy/es5/modules/animations.js +0 -1080
- package/legacy/es5/modules/atom.js +0 -65
- package/legacy/es5/modules/component.js +0 -1310
- package/legacy/es5/modules/data-binder.js +0 -1131
- package/legacy/es5/modules/data.js +0 -1808
- package/legacy/es5/modules/date.js +0 -525
- package/legacy/es5/modules/form-validator.js +0 -324
- package/legacy/es5/modules/history.js +0 -126
- package/legacy/es5/modules/html-builder.js +0 -461
- package/legacy/es5/modules/layout.js +0 -1679
- package/legacy/es5/modules/mouse.js +0 -124
- package/legacy/es5/modules/nav-link.js +0 -123
- package/legacy/es5/modules/olderversions/animations-ease.js +0 -1095
- package/legacy/es5/modules/olderversions/animations-update.js +0 -1048
- package/legacy/es5/modules/olderversions/base-animations.js +0 -636
- package/legacy/es5/modules/olderversions/base-component-class.js +0 -100
- package/legacy/es5/modules/olderversions/base-data-binder-1.js +0 -407
- package/legacy/es5/modules/olderversions/base-data-binder-class.js +0 -358
- package/legacy/es5/modules/olderversions/base-layout-parser-class.js +0 -172
- package/legacy/es5/modules/olderversions/base-mode-1.js +0 -777
- package/legacy/es5/modules/olderversions/base-model-class.js +0 -585
- package/legacy/es5/modules/olderversions/data-binder/element-binding/base-data-binder-class.js +0 -358
- package/legacy/es5/modules/olderversions/data-binder/element-binding/base-model-class.js +0 -585
- package/legacy/es5/modules/olderversions/data-binder/model-binding/base-data-binder-class.js +0 -353
- package/legacy/es5/modules/olderversions/data-binder/model-binding/base-model-class.js +0 -604
- package/legacy/es5/modules/olderversions/data-binder-update-watcher.js +0 -640
- package/legacy/es5/modules/olderversions/data-tracker.js +0 -187
- package/legacy/es5/modules/olderversions/event-update.js +0 -666
- package/legacy/es5/modules/olderversions/nav-link.js +0 -119
- package/legacy/es5/modules/olderversions/router-with-templates-1.js +0 -785
- package/legacy/es5/modules/olderversions/router-with-templates.js +0 -701
- package/legacy/es5/modules/prototypes/ajax.js +0 -657
- package/legacy/es5/modules/prototypes/atom.js +0 -65
- package/legacy/es5/modules/prototypes/component.js +0 -972
- package/legacy/es5/modules/prototypes/data-binder.js +0 -1089
- package/legacy/es5/modules/prototypes/data.js +0 -1290
- package/legacy/es5/modules/prototypes/html-builder.js +0 -414
- package/legacy/es5/modules/prototypes/layout.js +0 -879
- package/legacy/es5/modules/router.js +0 -1680
- package/legacy/es5/modules/state.js +0 -274
- package/main.js +0 -1331
- package/modules/ajax/ajax.js +0 -514
- package/modules/animation/animation.js +0 -236
- package/modules/animations/animation-controller.js +0 -231
- package/modules/animations/animation.js +0 -64
- package/modules/animations/attr-movement.js +0 -66
- package/modules/animations/css-movement.js +0 -170
- package/modules/animations/movement.js +0 -131
- package/modules/animations/value.js +0 -187
- package/modules/atom/atom.js +0 -54
- package/modules/component/component.js +0 -230
- package/modules/component/event-helper.js +0 -119
- package/modules/component/jot.js +0 -144
- package/modules/component/state-helper.js +0 -262
- package/modules/component/unit.js +0 -551
- package/modules/data/attrs.js +0 -40
- package/modules/data/basic-data.js +0 -500
- package/modules/data/data-utils.js +0 -29
- package/modules/data/data.js +0 -3
- package/modules/data/deep-data.js +0 -541
- package/modules/data/model-service.js +0 -528
- package/modules/data/model.js +0 -133
- package/modules/data/simple-data.js +0 -33
- package/modules/data-binder/connection-tracker.js +0 -113
- package/modules/data-binder/connection.js +0 -16
- package/modules/data-binder/data-binder.js +0 -352
- package/modules/data-binder/data-pub-sub.js +0 -141
- package/modules/data-binder/data-source.js +0 -56
- package/modules/data-binder/element-source.js +0 -219
- package/modules/data-binder/one-way-connection.js +0 -46
- package/modules/data-binder/one-way-source.js +0 -43
- package/modules/data-binder/source.js +0 -36
- package/modules/data-binder/two-way-connection.js +0 -75
- package/modules/data-binder/two-way-source.js +0 -41
- package/modules/date/date.js +0 -544
- package/modules/history/history.js +0 -89
- package/modules/html-builder/html-builder.js +0 -434
- package/modules/import/import.js +0 -390
- package/modules/layout/layout-builder.js +0 -1269
- package/modules/layout/layout-parser.js +0 -134
- package/modules/layout/watcher-helper.js +0 -282
- package/modules/mouse/mouse.js +0 -114
- package/modules/router/component-helper.js +0 -163
- package/modules/router/history-controller.js +0 -216
- package/modules/router/nav-link.js +0 -124
- package/modules/router/route.js +0 -401
- package/modules/router/router.js +0 -789
- package/modules/router/utils.js +0 -31
- package/modules/state/state-target.js +0 -91
- package/modules/state/state.js +0 -171
- package/shared/objects.js +0 -99
- package/update +0 -16
|
@@ -1,657 +0,0 @@
|
|
|
1
|
-
/* base framework module */
|
|
2
|
-
(function()
|
|
3
|
-
{
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This is the default xhr (ajax) settings.
|
|
8
|
-
*/
|
|
9
|
-
var XhrDefaultSettings =
|
|
10
|
-
{
|
|
11
|
-
url: '',
|
|
12
|
-
|
|
13
|
-
/* this is the responseType of the server
|
|
14
|
-
response (string) */
|
|
15
|
-
responseType: 'json',
|
|
16
|
-
|
|
17
|
-
/* this is the server method */
|
|
18
|
-
method: 'POST',
|
|
19
|
-
|
|
20
|
-
/* this can fix a param string to be added
|
|
21
|
-
to every ajax request */
|
|
22
|
-
fixedParams: '',
|
|
23
|
-
|
|
24
|
-
/* headers (object) */
|
|
25
|
-
headers:
|
|
26
|
-
{
|
|
27
|
-
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
|
|
28
|
-
},
|
|
29
|
-
|
|
30
|
-
/* this will set the ajax request to async (bool) */
|
|
31
|
-
async: true,
|
|
32
|
-
|
|
33
|
-
/* cross domain (bool) */
|
|
34
|
-
crossDomain: false,
|
|
35
|
-
|
|
36
|
-
/* cors with credentials (bool) */
|
|
37
|
-
withCredentials: false,
|
|
38
|
-
|
|
39
|
-
/* events (function) */
|
|
40
|
-
completed: null,
|
|
41
|
-
failed: null,
|
|
42
|
-
aborted: null,
|
|
43
|
-
progress: null
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* This is the xhr factory that can create new xhr objects.
|
|
48
|
-
*/
|
|
49
|
-
var XhrFactory =
|
|
50
|
-
{
|
|
51
|
-
/**
|
|
52
|
-
* This will create an xhr object.
|
|
53
|
-
*
|
|
54
|
-
* @return {(object|null)}
|
|
55
|
-
*/
|
|
56
|
-
_createXHR: function()
|
|
57
|
-
{
|
|
58
|
-
/* create a local function to perform the check
|
|
59
|
-
once then override the function */
|
|
60
|
-
var createXhr;
|
|
61
|
-
if(typeof XMLHttpRequest !== "undefined")
|
|
62
|
-
{
|
|
63
|
-
// modern browsers
|
|
64
|
-
createXhr = function()
|
|
65
|
-
{
|
|
66
|
-
return new XMLHttpRequest();
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
else
|
|
70
|
-
{
|
|
71
|
-
try{
|
|
72
|
-
createXhr = function()
|
|
73
|
-
{
|
|
74
|
-
return new ActiveXObject("Msxml2.XMLHTTP");
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
catch(e)
|
|
78
|
-
{
|
|
79
|
-
try{
|
|
80
|
-
createXhr = function()
|
|
81
|
-
{
|
|
82
|
-
return new ActiveXObject("Microsoft.XMLHTTP");
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
catch(err)
|
|
86
|
-
{
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if(!createXhr)
|
|
92
|
-
{
|
|
93
|
-
createXhr = function()
|
|
94
|
-
{
|
|
95
|
-
return false;
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return base.override(this, '_createXHR', createXhr, arguments);
|
|
101
|
-
},
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* This will create a CORS xhr object.
|
|
105
|
-
*
|
|
106
|
-
* @return {(object|null)}
|
|
107
|
-
*/
|
|
108
|
-
_createCorsXHR: function()
|
|
109
|
-
{
|
|
110
|
-
/* create a local function to perform the check
|
|
111
|
-
once then override the function */
|
|
112
|
-
var createXhr;
|
|
113
|
-
if(typeof XMLHttpRequest !== "undefined" && typeof XDomainRequest === "undefined")
|
|
114
|
-
{
|
|
115
|
-
// modern browsers
|
|
116
|
-
createXhr = function()
|
|
117
|
-
{
|
|
118
|
-
return new XMLHttpRequest();
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
else if(typeof XDomainRequest !== "undefined")
|
|
122
|
-
{
|
|
123
|
-
createXhr = function()
|
|
124
|
-
{
|
|
125
|
-
return new XDomainRequest();
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
else
|
|
129
|
-
{
|
|
130
|
-
createXhr = function()
|
|
131
|
-
{
|
|
132
|
-
return false;
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return base.override(this, '_createCorsXHR', createXhr, arguments);
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
/* this will add ajax settings to the base class */
|
|
141
|
-
base.augment(
|
|
142
|
-
{
|
|
143
|
-
/**
|
|
144
|
-
* @member {object} xhrSettings
|
|
145
|
-
*/
|
|
146
|
-
xhrSettings: XhrDefaultSettings,
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* This will add fixed params to each xhr request.
|
|
150
|
-
*
|
|
151
|
-
* @param {(string|object)} params
|
|
152
|
-
*/
|
|
153
|
-
addFixedParams: function(params)
|
|
154
|
-
{
|
|
155
|
-
base.xhrSettings.fixedParams = params;
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* This will update the xhr settings.
|
|
160
|
-
*
|
|
161
|
-
* @param {object} settingsObj
|
|
162
|
-
*/
|
|
163
|
-
ajaxSettings: function(settingsObj)
|
|
164
|
-
{
|
|
165
|
-
if(typeof settingsObj === 'object')
|
|
166
|
-
{
|
|
167
|
-
base.xhrSettings = base.extendClass(base.xhrSettings, settingsObj);
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* This will reset the xhr settings.
|
|
173
|
-
*/
|
|
174
|
-
resetAjaxSettings: function()
|
|
175
|
-
{
|
|
176
|
-
base.xhrSettings = XhrDefaultSettings;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* This will make an xhr (ajax) request.
|
|
182
|
-
*
|
|
183
|
-
* @param {string} url
|
|
184
|
-
* @param {string} params
|
|
185
|
-
* @param {function} callBackFn
|
|
186
|
-
* @param {string} responseType
|
|
187
|
-
* @param {string} [method=POST]
|
|
188
|
-
* @param {boolean} async
|
|
189
|
-
*
|
|
190
|
-
* or
|
|
191
|
-
*
|
|
192
|
-
* @param {object} settings
|
|
193
|
-
* @example
|
|
194
|
-
* {
|
|
195
|
-
* url: '',
|
|
196
|
-
* params: '',
|
|
197
|
-
* completed: function(response)
|
|
198
|
-
* {
|
|
199
|
-
*
|
|
200
|
-
* }
|
|
201
|
-
* }
|
|
202
|
-
*
|
|
203
|
-
* @return {object} xhr object.
|
|
204
|
-
*/
|
|
205
|
-
base.extend.ajax = function()
|
|
206
|
-
{
|
|
207
|
-
/* we want to save the args so we can check
|
|
208
|
-
which way we are adding the ajax settings */
|
|
209
|
-
var args = base.listToArray(arguments),
|
|
210
|
-
ajax = new XhrRequest(args);
|
|
211
|
-
return ajax.xhr;
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* XhrRequest
|
|
216
|
-
*
|
|
217
|
-
* This will create an xhr request object.
|
|
218
|
-
* @class
|
|
219
|
-
*/
|
|
220
|
-
var XhrRequest = base.Class.extend(
|
|
221
|
-
{
|
|
222
|
-
/**
|
|
223
|
-
* @constructor
|
|
224
|
-
* @param {*} args
|
|
225
|
-
*/
|
|
226
|
-
constructor: function(args)
|
|
227
|
-
{
|
|
228
|
-
this.settings = null;
|
|
229
|
-
this.xhr = null;
|
|
230
|
-
this.setup(args);
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* This will setup the xhr request.
|
|
235
|
-
*
|
|
236
|
-
* @protected
|
|
237
|
-
* @param {*} args
|
|
238
|
-
* @return {(object|boolean)}
|
|
239
|
-
*/
|
|
240
|
-
setup: function(args)
|
|
241
|
-
{
|
|
242
|
-
this.getXhrSettings(args);
|
|
243
|
-
|
|
244
|
-
var xhr = this.xhr = this.createXHR();
|
|
245
|
-
if(xhr === false)
|
|
246
|
-
{
|
|
247
|
-
return false;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
var settings = this.settings;
|
|
251
|
-
xhr.open(settings.method, settings.url, settings.async);
|
|
252
|
-
|
|
253
|
-
this.setupHeaders();
|
|
254
|
-
this.addXhrEvents();
|
|
255
|
-
|
|
256
|
-
/* this will setup the params and send the
|
|
257
|
-
xhr request */
|
|
258
|
-
xhr.send(this.getParams());
|
|
259
|
-
},
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* This will convert an object to a string.
|
|
263
|
-
*
|
|
264
|
-
* @protected
|
|
265
|
-
* @param {object} object
|
|
266
|
-
* @return {string}
|
|
267
|
-
*/
|
|
268
|
-
objectToString: function(object)
|
|
269
|
-
{
|
|
270
|
-
var params = [];
|
|
271
|
-
for (var prop in object)
|
|
272
|
-
{
|
|
273
|
-
if(object.hasOwnProperty(prop))
|
|
274
|
-
{
|
|
275
|
-
params.push(prop + '=' + object[prop]);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return params.join('&');
|
|
279
|
-
},
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* This will add the base params to the request params.
|
|
283
|
-
*
|
|
284
|
-
* @protected
|
|
285
|
-
* @param {*} params
|
|
286
|
-
* @param {*} addingParams
|
|
287
|
-
* @return {*}
|
|
288
|
-
*/
|
|
289
|
-
setupParams: function(params, addingParams)
|
|
290
|
-
{
|
|
291
|
-
var paramsType = typeof params;
|
|
292
|
-
if(addingParams)
|
|
293
|
-
{
|
|
294
|
-
/* this will convert the adding params to match
|
|
295
|
-
the params type */
|
|
296
|
-
var addingType = typeof addingParams;
|
|
297
|
-
if(paramsType === 'string')
|
|
298
|
-
{
|
|
299
|
-
if(addingType !== 'string')
|
|
300
|
-
{
|
|
301
|
-
addingParams = this.objectToString(addingParams);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
var char = (params === '')? '?' : '&';
|
|
305
|
-
params += char + addingParams;
|
|
306
|
-
}
|
|
307
|
-
else
|
|
308
|
-
{
|
|
309
|
-
if(addingType === 'string')
|
|
310
|
-
{
|
|
311
|
-
addingParams = base.parseQueryString(addingParams);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
if(params instanceof FormData)
|
|
315
|
-
{
|
|
316
|
-
for(var key in addingParams)
|
|
317
|
-
{
|
|
318
|
-
if(addingParams.hasOwnProperty(key))
|
|
319
|
-
{
|
|
320
|
-
params.append(key, addingParams[key]);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
else if(paramsType === 'object')
|
|
325
|
-
{
|
|
326
|
-
/* we don't want to modify the original object
|
|
327
|
-
so we need to clone the object before extending */
|
|
328
|
-
params = base.clone(params);
|
|
329
|
-
|
|
330
|
-
params = base.extendObject(addingParams, params);
|
|
331
|
-
params = this.objectToString(params);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
else
|
|
336
|
-
{
|
|
337
|
-
if((params instanceof FormData) === false && paramsType === 'object')
|
|
338
|
-
{
|
|
339
|
-
params = this.objectToString(params);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
return params;
|
|
343
|
-
},
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* This will get the params.
|
|
347
|
-
* @protected
|
|
348
|
-
* @return {*}
|
|
349
|
-
*/
|
|
350
|
-
getParams: function()
|
|
351
|
-
{
|
|
352
|
-
var settings = this.settings,
|
|
353
|
-
params = settings.params;
|
|
354
|
-
|
|
355
|
-
var fixedParams = settings.fixedParams;
|
|
356
|
-
if(params)
|
|
357
|
-
{
|
|
358
|
-
params = this.setupParams(params, fixedParams);
|
|
359
|
-
}
|
|
360
|
-
else if(fixedParams)
|
|
361
|
-
{
|
|
362
|
-
params = this.setupParams(fixedParams);
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
return params;
|
|
366
|
-
},
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* This will set the settings from the args.
|
|
370
|
-
*
|
|
371
|
-
* @protected
|
|
372
|
-
* @param {array} args
|
|
373
|
-
*/
|
|
374
|
-
getXhrSettings: function(args)
|
|
375
|
-
{
|
|
376
|
-
/* we want to create a clone of the default
|
|
377
|
-
settings before adding the new settings */
|
|
378
|
-
var settings = this.settings = base.createObject(base.xhrSettings);
|
|
379
|
-
|
|
380
|
-
/* we want to check if we are adding the ajax settings by
|
|
381
|
-
individual args or by a settings object */
|
|
382
|
-
if(args.length >= 2 && typeof args[0] !== 'object')
|
|
383
|
-
{
|
|
384
|
-
for(var i = 0, maxLength = args.length; i < maxLength; i++)
|
|
385
|
-
{
|
|
386
|
-
var arg = args[i];
|
|
387
|
-
|
|
388
|
-
switch(i)
|
|
389
|
-
{
|
|
390
|
-
case 0:
|
|
391
|
-
settings.url = arg;
|
|
392
|
-
break;
|
|
393
|
-
case 1:
|
|
394
|
-
settings.params = arg;
|
|
395
|
-
break;
|
|
396
|
-
case 2:
|
|
397
|
-
settings.completed = arg;
|
|
398
|
-
settings.failed = arg;
|
|
399
|
-
break;
|
|
400
|
-
case 3:
|
|
401
|
-
settings.responseType = arg || 'json';
|
|
402
|
-
break;
|
|
403
|
-
case 4:
|
|
404
|
-
settings.method = (arg)? arg.toUpperCase() : 'POST';
|
|
405
|
-
break;
|
|
406
|
-
case 5:
|
|
407
|
-
settings.async = (typeof arg !== 'undefined')? arg : true;
|
|
408
|
-
break;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
else
|
|
413
|
-
{
|
|
414
|
-
/* override the default settings with the args
|
|
415
|
-
settings object */
|
|
416
|
-
settings = this.settings = base.extendClass(this.settings, args[0]);
|
|
417
|
-
|
|
418
|
-
/* we want to check to add the completed callback
|
|
419
|
-
as the error and aborted if not set */
|
|
420
|
-
if(typeof settings.completed === 'function')
|
|
421
|
-
{
|
|
422
|
-
if(typeof settings.failed !== 'function')
|
|
423
|
-
{
|
|
424
|
-
settings.failed = settings.completed;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
if(typeof settings.aborted !== 'function')
|
|
428
|
-
{
|
|
429
|
-
settings.aborted = settings.failed;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
},
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* This will create the xhr object.
|
|
437
|
-
*
|
|
438
|
-
* @protected
|
|
439
|
-
* @return {(object|boolean)}
|
|
440
|
-
*/
|
|
441
|
-
createXHR: function()
|
|
442
|
-
{
|
|
443
|
-
/* we want to check to setup the xhr by
|
|
444
|
-
the crossDomain settings */
|
|
445
|
-
var settings = this.settings;
|
|
446
|
-
var xhr = (settings && settings.crossDomain === true)? XhrFactory._createCorsXHR() : XhrFactory._createXHR();
|
|
447
|
-
if(!xhr)
|
|
448
|
-
{
|
|
449
|
-
return false;
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
if(xhr.hasOwnProperty('responseType'))
|
|
453
|
-
{
|
|
454
|
-
xhr.responseType = settings.responseType;
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
if(settings.withCredentials === true)
|
|
458
|
-
{
|
|
459
|
-
xhr.withCredentials = true;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
return xhr;
|
|
463
|
-
},
|
|
464
|
-
|
|
465
|
-
/**
|
|
466
|
-
* This will setup the request headers.
|
|
467
|
-
*/
|
|
468
|
-
setupHeaders: function()
|
|
469
|
-
{
|
|
470
|
-
var settings = this.settings;
|
|
471
|
-
if(settings && typeof settings.headers === 'object')
|
|
472
|
-
{
|
|
473
|
-
/* we want to add a header for each
|
|
474
|
-
property in the object */
|
|
475
|
-
var headers = settings.headers;
|
|
476
|
-
for(var header in headers)
|
|
477
|
-
{
|
|
478
|
-
if(headers.hasOwnProperty(header))
|
|
479
|
-
{
|
|
480
|
-
this.xhr.setRequestHeader(header, headers[header]);
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
},
|
|
485
|
-
|
|
486
|
-
/**
|
|
487
|
-
* This will update the request status.
|
|
488
|
-
*
|
|
489
|
-
* @param {object} e
|
|
490
|
-
* @param {string} [overrideType]
|
|
491
|
-
*/
|
|
492
|
-
update: function(e, overrideType)
|
|
493
|
-
{
|
|
494
|
-
e = e || window.event;
|
|
495
|
-
|
|
496
|
-
var xhr = this.xhr;
|
|
497
|
-
|
|
498
|
-
/* this will remove the xhr events from the active events
|
|
499
|
-
after the events are completed, aborted, or errored */
|
|
500
|
-
var removeEvents = function()
|
|
501
|
-
{
|
|
502
|
-
var events = base.events;
|
|
503
|
-
events.removeEvents(xhr.upload);
|
|
504
|
-
events.removeEvents(xhr);
|
|
505
|
-
};
|
|
506
|
-
|
|
507
|
-
var settings = this.settings;
|
|
508
|
-
if(!settings)
|
|
509
|
-
{
|
|
510
|
-
return false;
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
var type = overrideType || e.type;
|
|
514
|
-
switch(type)
|
|
515
|
-
{
|
|
516
|
-
case 'load':
|
|
517
|
-
if(typeof settings.completed === 'function')
|
|
518
|
-
{
|
|
519
|
-
var response = this.getResponseData();
|
|
520
|
-
settings.completed(response, this.xhr);
|
|
521
|
-
}
|
|
522
|
-
removeEvents();
|
|
523
|
-
break;
|
|
524
|
-
case 'error':
|
|
525
|
-
if(typeof settings.failed === 'function')
|
|
526
|
-
{
|
|
527
|
-
settings.failed(false, this.xhr);
|
|
528
|
-
}
|
|
529
|
-
removeEvents();
|
|
530
|
-
break;
|
|
531
|
-
case 'progress':
|
|
532
|
-
if(typeof settings.progress === 'function')
|
|
533
|
-
{
|
|
534
|
-
settings.progress(e);
|
|
535
|
-
}
|
|
536
|
-
break;
|
|
537
|
-
case 'abort':
|
|
538
|
-
if(typeof settings.aborted === 'function')
|
|
539
|
-
{
|
|
540
|
-
settings.aborted(false, this.xhr);
|
|
541
|
-
}
|
|
542
|
-
removeEvents();
|
|
543
|
-
break;
|
|
544
|
-
}
|
|
545
|
-
},
|
|
546
|
-
|
|
547
|
-
/**
|
|
548
|
-
* This will get the response data.
|
|
549
|
-
*
|
|
550
|
-
* @return {*}
|
|
551
|
-
*/
|
|
552
|
-
getResponseData: function()
|
|
553
|
-
{
|
|
554
|
-
var xhr = this.xhr,
|
|
555
|
-
response = xhr.responseText;
|
|
556
|
-
|
|
557
|
-
if(xhr.responseType || typeof response !== 'string')
|
|
558
|
-
{
|
|
559
|
-
return response;
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
var encoded = false;
|
|
563
|
-
/* we want to check to decode the response by the type */
|
|
564
|
-
switch(this.settings.responseType.toLowerCase())
|
|
565
|
-
{
|
|
566
|
-
case 'json':
|
|
567
|
-
|
|
568
|
-
encoded = base.jsonDecode(response);
|
|
569
|
-
if(encoded !== false)
|
|
570
|
-
{
|
|
571
|
-
response = encoded;
|
|
572
|
-
}
|
|
573
|
-
else
|
|
574
|
-
{
|
|
575
|
-
response = response;
|
|
576
|
-
this.error = 'yes';
|
|
577
|
-
}
|
|
578
|
-
break;
|
|
579
|
-
case 'xml':
|
|
580
|
-
encoded = base.xmlParse(response);
|
|
581
|
-
if(encoded !== false)
|
|
582
|
-
{
|
|
583
|
-
response = encoded;
|
|
584
|
-
}
|
|
585
|
-
else
|
|
586
|
-
{
|
|
587
|
-
response = response;
|
|
588
|
-
this.error = 'yes';
|
|
589
|
-
}
|
|
590
|
-
break;
|
|
591
|
-
case 'text':
|
|
592
|
-
break;
|
|
593
|
-
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
return response;
|
|
597
|
-
},
|
|
598
|
-
|
|
599
|
-
/**
|
|
600
|
-
* This will check the ready state.
|
|
601
|
-
*
|
|
602
|
-
* @protected
|
|
603
|
-
* @param {object} e
|
|
604
|
-
*/
|
|
605
|
-
checkReadyState: function(e)
|
|
606
|
-
{
|
|
607
|
-
e = e || window.event;
|
|
608
|
-
|
|
609
|
-
var xhr = this.xhr;
|
|
610
|
-
if(xhr.readyState != 4)
|
|
611
|
-
{
|
|
612
|
-
/* the response is not ready */
|
|
613
|
-
return;
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
var type = 'error';
|
|
617
|
-
if(xhr.status == 200)
|
|
618
|
-
{
|
|
619
|
-
/* the ajax was successful
|
|
620
|
-
but we want to change the event type to load */
|
|
621
|
-
type = 'load';
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
this.update(e, type);
|
|
625
|
-
},
|
|
626
|
-
|
|
627
|
-
/**
|
|
628
|
-
* This will add the xhr events.
|
|
629
|
-
*/
|
|
630
|
-
addXhrEvents: function()
|
|
631
|
-
{
|
|
632
|
-
var settings = this.settings;
|
|
633
|
-
if(!settings)
|
|
634
|
-
{
|
|
635
|
-
return false;
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
var xhr = this.xhr;
|
|
639
|
-
/* we need to check if we can add new event listeners or
|
|
640
|
-
if we have to use the old ready state */
|
|
641
|
-
if(typeof xhr.onload !== 'undefined')
|
|
642
|
-
{
|
|
643
|
-
var callBack = base.bind(this, this.update);
|
|
644
|
-
base.on(['load', 'error', 'abort'], xhr, callBack);
|
|
645
|
-
base.on('progress', xhr.upload, callBack);
|
|
646
|
-
}
|
|
647
|
-
else
|
|
648
|
-
{
|
|
649
|
-
var self = this;
|
|
650
|
-
xhr.onreadystatechange = function(e)
|
|
651
|
-
{
|
|
652
|
-
self.checkReadyState(e);
|
|
653
|
-
};
|
|
654
|
-
}
|
|
655
|
-
}
|
|
656
|
-
});
|
|
657
|
-
})();
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/* base framework module */
|
|
2
|
-
/*
|
|
3
|
-
this will create dynamic html to be
|
|
4
|
-
added and modified
|
|
5
|
-
*/
|
|
6
|
-
(function(global)
|
|
7
|
-
{
|
|
8
|
-
"use strict";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Atom
|
|
12
|
-
*
|
|
13
|
-
* This will create an interface for atoms to
|
|
14
|
-
* extend from a parent atom.
|
|
15
|
-
* @class
|
|
16
|
-
*/
|
|
17
|
-
var Atom = function()
|
|
18
|
-
{
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* This will extend the atom to a child atom.
|
|
24
|
-
* @static
|
|
25
|
-
* @param {(object|function)}
|
|
26
|
-
* @return {function} The child atom constructor.
|
|
27
|
-
*/
|
|
28
|
-
Atom.extend = function extend(childLayout)
|
|
29
|
-
{
|
|
30
|
-
var parent = this;
|
|
31
|
-
|
|
32
|
-
/*
|
|
33
|
-
this will setup a layout function to call to standardize
|
|
34
|
-
the interface for non function atoms.
|
|
35
|
-
*/
|
|
36
|
-
if(typeof childLayout === 'object')
|
|
37
|
-
{
|
|
38
|
-
var layoutObject = childLayout;
|
|
39
|
-
childLayout = function(props)
|
|
40
|
-
{
|
|
41
|
-
return base.clone(layoutObject);
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
var child = function(props)
|
|
46
|
-
{
|
|
47
|
-
props = props || {};
|
|
48
|
-
var layout = childLayout(props);
|
|
49
|
-
|
|
50
|
-
// we want to check to merge the layout with the parent layout
|
|
51
|
-
var parentLayout = parent(props);
|
|
52
|
-
if(typeof parentLayout === 'object')
|
|
53
|
-
{
|
|
54
|
-
layout = base.extendObject(parentLayout, layout);
|
|
55
|
-
}
|
|
56
|
-
return layout;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
child.extend = extend;
|
|
60
|
-
return child;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
global.Atom = Atom;
|
|
64
|
-
|
|
65
|
-
})(this);
|