@base-framework/base 2.6.1 → 2.6.3
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 +30 -26
- 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,434 +0,0 @@
|
|
|
1
|
-
import {base} from '../../core.js';
|
|
2
|
-
import {dataBinder} from '../data-binder/data-binder.js';
|
|
3
|
-
|
|
4
|
-
const dataTracker = base.dataTracker;
|
|
5
|
-
|
|
6
|
-
const NORMALIZED_NAMES =
|
|
7
|
-
{
|
|
8
|
-
class: 'className',
|
|
9
|
-
text: 'textContent',
|
|
10
|
-
for: 'htmlFor',
|
|
11
|
-
readonly: 'readOnly',
|
|
12
|
-
maxlength: 'maxLength',
|
|
13
|
-
cellspacing: 'cellSpacing',
|
|
14
|
-
rowspan: 'rowSpan',
|
|
15
|
-
colspan: 'colSpan',
|
|
16
|
-
tabindex: 'tabIndex',
|
|
17
|
-
celpadding: 'cellPadding',
|
|
18
|
-
useMap: 'useMap',
|
|
19
|
-
frameborder: 'frameBorder',
|
|
20
|
-
contenteditable: 'contentEditable'
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* This will get the javascript property name.
|
|
25
|
-
*
|
|
26
|
-
* @param {string} prop
|
|
27
|
-
* @return {string}
|
|
28
|
-
*/
|
|
29
|
-
export const normalizeAttr = (prop) =>
|
|
30
|
-
{
|
|
31
|
-
return NORMALIZED_NAMES[prop] || prop;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* This will remove on from a property.
|
|
36
|
-
*
|
|
37
|
-
* @param {string} prop
|
|
38
|
-
* @return {string}
|
|
39
|
-
*/
|
|
40
|
-
export const removeEventPrefix = (prop) =>
|
|
41
|
-
{
|
|
42
|
-
if(typeof prop === 'string' && prop.substring(0, 2) === 'on')
|
|
43
|
-
{
|
|
44
|
-
return prop.substring(2);
|
|
45
|
-
}
|
|
46
|
-
return prop;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* htmlBuilder
|
|
51
|
-
*
|
|
52
|
-
* This will create an html builder object that can create
|
|
53
|
-
* and remove dom elements.
|
|
54
|
-
* @class
|
|
55
|
-
*/
|
|
56
|
-
export class htmlBuilder
|
|
57
|
-
{
|
|
58
|
-
/**
|
|
59
|
-
* This will create a new element.
|
|
60
|
-
*
|
|
61
|
-
* @param {string} nodeName The node name.
|
|
62
|
-
* @param {object} attrObject The node attributes.
|
|
63
|
-
* @param {object} container The node container.
|
|
64
|
-
* @param {boolean} [prepend=false] Add to the begining of the container.
|
|
65
|
-
* @return {object} The new element.
|
|
66
|
-
*/
|
|
67
|
-
create(nodeName, attrObject, container, prepend)
|
|
68
|
-
{
|
|
69
|
-
let obj = document.createElement(nodeName);
|
|
70
|
-
this._addElementAttrs(obj, attrObject);
|
|
71
|
-
|
|
72
|
-
/* we want to check if the new element should be
|
|
73
|
-
added to the begining or end */
|
|
74
|
-
if(prepend === true)
|
|
75
|
-
{
|
|
76
|
-
this.prepend(container, obj);
|
|
77
|
-
}
|
|
78
|
-
else
|
|
79
|
-
{
|
|
80
|
-
this.append(container, obj);
|
|
81
|
-
}
|
|
82
|
-
return obj;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* This will add the element attributes.
|
|
87
|
-
*
|
|
88
|
-
* @protected
|
|
89
|
-
* @param {object} obj
|
|
90
|
-
* @param {object} attrObject
|
|
91
|
-
*/
|
|
92
|
-
_addElementAttrs(obj, attrObject)
|
|
93
|
-
{
|
|
94
|
-
/* we want to check if we have attrributes to add */
|
|
95
|
-
if(!attrObject || typeof attrObject !== 'object')
|
|
96
|
-
{
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* we need to add the type if set to stop ie
|
|
101
|
-
from removing the value if set after the value is
|
|
102
|
-
added */
|
|
103
|
-
let type = attrObject.type;
|
|
104
|
-
if(typeof type !== 'undefined')
|
|
105
|
-
{
|
|
106
|
-
base.setAttr(obj, 'type', type);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/* we want to add each attr to the obj */
|
|
110
|
-
for(var prop in attrObject)
|
|
111
|
-
{
|
|
112
|
-
/* we have already added the type so we need to
|
|
113
|
-
skip if the prop is type */
|
|
114
|
-
if(attrObject.hasOwnProperty(prop) === false || prop === 'type')
|
|
115
|
-
{
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
var attrPropValue = attrObject[prop];
|
|
120
|
-
|
|
121
|
-
/* we want to check to add the attr settings
|
|
122
|
-
by property name */
|
|
123
|
-
if(prop === 'innerHTML')
|
|
124
|
-
{
|
|
125
|
-
obj.innerHTML = attrPropValue;
|
|
126
|
-
}
|
|
127
|
-
else if(prop.substring(4, 1) === '-')
|
|
128
|
-
{
|
|
129
|
-
// this will handle data and aria attributes
|
|
130
|
-
base.setAttr(obj, prop, attrPropValue);
|
|
131
|
-
}
|
|
132
|
-
else
|
|
133
|
-
{
|
|
134
|
-
this.addAttr(obj, prop, attrPropValue);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* This will add html to an element.
|
|
141
|
-
*
|
|
142
|
-
* @param {object} obj
|
|
143
|
-
* @param {string} content
|
|
144
|
-
*/
|
|
145
|
-
addHtml(obj, content)
|
|
146
|
-
{
|
|
147
|
-
if(typeof content !== 'undefined' && content !== '')
|
|
148
|
-
{
|
|
149
|
-
/* we need to check if we are adding inner
|
|
150
|
-
html content or just a string */
|
|
151
|
-
let pattern = /(?:<[a-z][\s\S]*>)/i;
|
|
152
|
-
if(pattern.test(content))
|
|
153
|
-
{
|
|
154
|
-
/* html */
|
|
155
|
-
obj.innerHTML = content;
|
|
156
|
-
}
|
|
157
|
-
else
|
|
158
|
-
{
|
|
159
|
-
/* string */
|
|
160
|
-
obj.textContent = content;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* This will add an element attribute.
|
|
167
|
-
*
|
|
168
|
-
* @param {object} obj
|
|
169
|
-
* @param {object} attr
|
|
170
|
-
* @param {string} value
|
|
171
|
-
*/
|
|
172
|
-
addAttr(obj, attr, value)
|
|
173
|
-
{
|
|
174
|
-
if(value === '' || !attr)
|
|
175
|
-
{
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/* we want to check to add a value or an event listener */
|
|
180
|
-
let type = typeof value;
|
|
181
|
-
if(type === 'function')
|
|
182
|
-
{
|
|
183
|
-
/* this will add the event using the base events
|
|
184
|
-
so the event is tracked */
|
|
185
|
-
attr = removeEventPrefix(attr);
|
|
186
|
-
base.addListener(attr, obj, value);
|
|
187
|
-
}
|
|
188
|
-
else
|
|
189
|
-
{
|
|
190
|
-
let attrName = normalizeAttr(attr);
|
|
191
|
-
obj[attrName] = value;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* This will create a doc fragment.
|
|
197
|
-
*
|
|
198
|
-
* @return {object}
|
|
199
|
-
*/
|
|
200
|
-
createDocFragment()
|
|
201
|
-
{
|
|
202
|
-
return document.createDocumentFragment();
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* This will create a text node.
|
|
207
|
-
*
|
|
208
|
-
* @param {string} text
|
|
209
|
-
* @param {object} container
|
|
210
|
-
* @return {object}
|
|
211
|
-
*/
|
|
212
|
-
createTextNode(text, container)
|
|
213
|
-
{
|
|
214
|
-
let obj = document.createTextNode(text);
|
|
215
|
-
|
|
216
|
-
if(container)
|
|
217
|
-
{
|
|
218
|
-
this.append(container, obj);
|
|
219
|
-
}
|
|
220
|
-
return obj;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* This will create a text node.
|
|
225
|
-
*
|
|
226
|
-
* @param {string} text
|
|
227
|
-
* @param {object} container
|
|
228
|
-
* @return {object}
|
|
229
|
-
*/
|
|
230
|
-
createCommentNode(text, container)
|
|
231
|
-
{
|
|
232
|
-
let obj = document.createComment(text);
|
|
233
|
-
|
|
234
|
-
if(container)
|
|
235
|
-
{
|
|
236
|
-
this.append(container, obj);
|
|
237
|
-
}
|
|
238
|
-
return obj;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* This will create the options on a select.
|
|
243
|
-
*
|
|
244
|
-
* @param {object} selectElem
|
|
245
|
-
* @param {array} optionArray
|
|
246
|
-
* @param {string} [defaultValue]
|
|
247
|
-
*/
|
|
248
|
-
setupSelectOptions(selectElem, optionArray, defaultValue)
|
|
249
|
-
{
|
|
250
|
-
if(!selectElem || typeof selectElem !== 'object')
|
|
251
|
-
{
|
|
252
|
-
return false;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
if(!optionArray || !optionArray.length)
|
|
256
|
-
{
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/* create each option then add it to the select */
|
|
261
|
-
for(var n = 0, maxLength = optionArray.length; n < maxLength; n++)
|
|
262
|
-
{
|
|
263
|
-
var settings = optionArray[n];
|
|
264
|
-
var option = selectElem.options[n] = new Option(settings.label, settings.value);
|
|
265
|
-
|
|
266
|
-
/* we can select an option if a default value
|
|
267
|
-
has been sumbitted */
|
|
268
|
-
if(defaultValue !== null && option.value == defaultValue)
|
|
269
|
-
{
|
|
270
|
-
option.selected = true;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* This will remove an elements data.
|
|
277
|
-
*
|
|
278
|
-
* @param {object} ele
|
|
279
|
-
*/
|
|
280
|
-
removeElementData(ele)
|
|
281
|
-
{
|
|
282
|
-
/* we want to do a recursive remove child
|
|
283
|
-
removal */
|
|
284
|
-
let children = ele.childNodes;
|
|
285
|
-
if(children)
|
|
286
|
-
{
|
|
287
|
-
let length = children.length - 1;
|
|
288
|
-
for(var i = length; i >= 0; i--)
|
|
289
|
-
{
|
|
290
|
-
var child = children[i];
|
|
291
|
-
if(child)
|
|
292
|
-
{
|
|
293
|
-
/* this will remove the child element data
|
|
294
|
-
before the parent is removed */
|
|
295
|
-
this.removeElementData(child);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
dataTracker.remove(ele);
|
|
301
|
-
|
|
302
|
-
let bound = ele.bindId;
|
|
303
|
-
if(bound)
|
|
304
|
-
{
|
|
305
|
-
/* this will check to remove any data bindings
|
|
306
|
-
to the element */
|
|
307
|
-
dataBinder.unbind(ele);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* This will remove an element and its data.
|
|
313
|
-
*
|
|
314
|
-
* @param {object} obj
|
|
315
|
-
*/
|
|
316
|
-
removeElement(obj)
|
|
317
|
-
{
|
|
318
|
-
let container;
|
|
319
|
-
|
|
320
|
-
if(!obj || !(container = obj.parentNode))
|
|
321
|
-
{
|
|
322
|
-
return this;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
/* this will remove all element data and binding
|
|
326
|
-
and remove from the parent container */
|
|
327
|
-
this.removeElementData(obj);
|
|
328
|
-
container.removeChild(obj);
|
|
329
|
-
|
|
330
|
-
return this;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* This will remove an element.
|
|
335
|
-
*
|
|
336
|
-
* @param {object} child
|
|
337
|
-
*/
|
|
338
|
-
removeChild(child)
|
|
339
|
-
{
|
|
340
|
-
this.removeElement(child);
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* This will remove all elements from the container.
|
|
345
|
-
*
|
|
346
|
-
* @param {object} container
|
|
347
|
-
*/
|
|
348
|
-
removeAll(container)
|
|
349
|
-
{
|
|
350
|
-
if(typeof container === 'object')
|
|
351
|
-
{
|
|
352
|
-
let children = container.childNodes;
|
|
353
|
-
for(var child in children)
|
|
354
|
-
{
|
|
355
|
-
if(children.hasOwnProperty(child))
|
|
356
|
-
{
|
|
357
|
-
this.removeElementData(children[child]);
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
container.innerHTML = '';
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
/**
|
|
365
|
-
* This change the parent of an element.
|
|
366
|
-
*
|
|
367
|
-
* @param {object} child
|
|
368
|
-
* @param {object} newParent
|
|
369
|
-
*/
|
|
370
|
-
changeParent(child, newParent)
|
|
371
|
-
{
|
|
372
|
-
newParent.appendChild(child);
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* This will append a child element.
|
|
377
|
-
*
|
|
378
|
-
* @param {object} parent
|
|
379
|
-
* @param {object} child
|
|
380
|
-
*/
|
|
381
|
-
append(parent, child)
|
|
382
|
-
{
|
|
383
|
-
switch(typeof parent)
|
|
384
|
-
{
|
|
385
|
-
case "object":
|
|
386
|
-
break;
|
|
387
|
-
case "undefined":
|
|
388
|
-
parent = document.body;
|
|
389
|
-
break;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
parent.appendChild(child);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/**
|
|
396
|
-
* This will prepend a child element.
|
|
397
|
-
*
|
|
398
|
-
* @param {object} parent
|
|
399
|
-
* @param {object} child
|
|
400
|
-
* @param {object} [optionalNode]
|
|
401
|
-
*/
|
|
402
|
-
prepend(parent, child, optionalNode)
|
|
403
|
-
{
|
|
404
|
-
switch(typeof parent)
|
|
405
|
-
{
|
|
406
|
-
case "object":
|
|
407
|
-
break;
|
|
408
|
-
case "undefined":
|
|
409
|
-
parent = document.body;
|
|
410
|
-
break;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
var node = optionalNode || parent.firstChild;
|
|
414
|
-
parent.insertBefore(child, node);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
/**
|
|
418
|
-
* This will clone an element.
|
|
419
|
-
*
|
|
420
|
-
* @param {object} node
|
|
421
|
-
* @param {boolean} deepCopy
|
|
422
|
-
* @return {object}
|
|
423
|
-
*/
|
|
424
|
-
clone(node, deepCopy)
|
|
425
|
-
{
|
|
426
|
-
if(!node || typeof node !== 'object')
|
|
427
|
-
{
|
|
428
|
-
return false;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
deepCopy = deepCopy || false;
|
|
432
|
-
return node.cloneNode(deepCopy);
|
|
433
|
-
}
|
|
434
|
-
}
|