@base-framework/base 2.6.0 → 2.6.1

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.
Files changed (190) hide show
  1. package/base.min.js +1 -0
  2. package/es5/base.js +2968 -0
  3. package/es5/modules/ajax.js +663 -0
  4. package/es5/modules/animation.js +188 -0
  5. package/es5/modules/animations.js +1080 -0
  6. package/es5/modules/atom.js +65 -0
  7. package/es5/modules/component.js +1310 -0
  8. package/es5/modules/data-binder.js +1131 -0
  9. package/es5/modules/data.js +1808 -0
  10. package/es5/modules/date.js +525 -0
  11. package/es5/modules/form-validator.js +324 -0
  12. package/es5/modules/history.js +126 -0
  13. package/es5/modules/html-builder.js +461 -0
  14. package/es5/modules/layout.js +1679 -0
  15. package/es5/modules/mouse.js +124 -0
  16. package/es5/modules/nav-link.js +123 -0
  17. package/es5/modules/olderversions/animations-ease.js +1095 -0
  18. package/es5/modules/olderversions/animations-update.js +1048 -0
  19. package/es5/modules/olderversions/base-animations.js +636 -0
  20. package/es5/modules/olderversions/base-component-class.js +100 -0
  21. package/es5/modules/olderversions/base-data-binder-1.js +407 -0
  22. package/es5/modules/olderversions/base-data-binder-class.js +358 -0
  23. package/es5/modules/olderversions/base-layout-parser-class.js +172 -0
  24. package/es5/modules/olderversions/base-mode-1.js +777 -0
  25. package/es5/modules/olderversions/base-model-class.js +585 -0
  26. package/es5/modules/olderversions/data-binder/element-binding/base-data-binder-class.js +358 -0
  27. package/es5/modules/olderversions/data-binder/element-binding/base-model-class.js +585 -0
  28. package/es5/modules/olderversions/data-binder/model-binding/base-data-binder-class.js +353 -0
  29. package/es5/modules/olderversions/data-binder/model-binding/base-model-class.js +604 -0
  30. package/es5/modules/olderversions/data-binder-update-watcher.js +640 -0
  31. package/es5/modules/olderversions/data-tracker.js +187 -0
  32. package/es5/modules/olderversions/event-update.js +666 -0
  33. package/es5/modules/olderversions/nav-link.js +119 -0
  34. package/es5/modules/olderversions/router-with-templates-1.js +785 -0
  35. package/es5/modules/olderversions/router-with-templates.js +701 -0
  36. package/es5/modules/prototypes/ajax.js +657 -0
  37. package/es5/modules/prototypes/atom.js +65 -0
  38. package/es5/modules/prototypes/component.js +972 -0
  39. package/es5/modules/prototypes/data-binder.js +1089 -0
  40. package/es5/modules/prototypes/data.js +1290 -0
  41. package/es5/modules/prototypes/html-builder.js +414 -0
  42. package/es5/modules/prototypes/layout.js +879 -0
  43. package/es5/modules/router.js +1680 -0
  44. package/es5/modules/state.js +274 -0
  45. package/es6/.jshintrc +3 -0
  46. package/es6/base.js +41 -0
  47. package/es6/core.js +1 -0
  48. package/es6/data-tracker.js +351 -0
  49. package/es6/events.js +602 -0
  50. package/es6/legacy/es5/base.js +2968 -0
  51. package/es6/legacy/es5/modules/ajax.js +663 -0
  52. package/es6/legacy/es5/modules/animation.js +188 -0
  53. package/es6/legacy/es5/modules/animations.js +1080 -0
  54. package/es6/legacy/es5/modules/atom.js +65 -0
  55. package/es6/legacy/es5/modules/component.js +1310 -0
  56. package/es6/legacy/es5/modules/data-binder.js +1131 -0
  57. package/es6/legacy/es5/modules/data.js +1808 -0
  58. package/es6/legacy/es5/modules/date.js +525 -0
  59. package/es6/legacy/es5/modules/form-validator.js +324 -0
  60. package/es6/legacy/es5/modules/history.js +126 -0
  61. package/es6/legacy/es5/modules/html-builder.js +461 -0
  62. package/es6/legacy/es5/modules/layout.js +1679 -0
  63. package/es6/legacy/es5/modules/mouse.js +124 -0
  64. package/es6/legacy/es5/modules/nav-link.js +123 -0
  65. package/es6/legacy/es5/modules/olderversions/animations-ease.js +1095 -0
  66. package/es6/legacy/es5/modules/olderversions/animations-update.js +1048 -0
  67. package/es6/legacy/es5/modules/olderversions/base-animations.js +636 -0
  68. package/es6/legacy/es5/modules/olderversions/base-component-class.js +100 -0
  69. package/es6/legacy/es5/modules/olderversions/base-data-binder-1.js +407 -0
  70. package/es6/legacy/es5/modules/olderversions/base-data-binder-class.js +358 -0
  71. package/es6/legacy/es5/modules/olderversions/base-layout-parser-class.js +172 -0
  72. package/es6/legacy/es5/modules/olderversions/base-mode-1.js +777 -0
  73. package/es6/legacy/es5/modules/olderversions/base-model-class.js +585 -0
  74. package/es6/legacy/es5/modules/olderversions/data-binder/element-binding/base-data-binder-class.js +358 -0
  75. package/es6/legacy/es5/modules/olderversions/data-binder/element-binding/base-model-class.js +585 -0
  76. package/es6/legacy/es5/modules/olderversions/data-binder/model-binding/base-data-binder-class.js +353 -0
  77. package/es6/legacy/es5/modules/olderversions/data-binder/model-binding/base-model-class.js +604 -0
  78. package/es6/legacy/es5/modules/olderversions/data-binder-update-watcher.js +640 -0
  79. package/es6/legacy/es5/modules/olderversions/data-tracker.js +187 -0
  80. package/es6/legacy/es5/modules/olderversions/event-update.js +666 -0
  81. package/es6/legacy/es5/modules/olderversions/nav-link.js +119 -0
  82. package/es6/legacy/es5/modules/olderversions/router-with-templates-1.js +785 -0
  83. package/es6/legacy/es5/modules/olderversions/router-with-templates.js +701 -0
  84. package/es6/legacy/es5/modules/prototypes/ajax.js +657 -0
  85. package/es6/legacy/es5/modules/prototypes/atom.js +65 -0
  86. package/es6/legacy/es5/modules/prototypes/component.js +972 -0
  87. package/es6/legacy/es5/modules/prototypes/data-binder.js +1089 -0
  88. package/es6/legacy/es5/modules/prototypes/data.js +1290 -0
  89. package/es6/legacy/es5/modules/prototypes/html-builder.js +414 -0
  90. package/es6/legacy/es5/modules/prototypes/layout.js +879 -0
  91. package/es6/legacy/es5/modules/router.js +1680 -0
  92. package/es6/legacy/es5/modules/state.js +274 -0
  93. package/es6/main.js +1331 -0
  94. package/es6/modules/ajax/ajax.js +514 -0
  95. package/es6/modules/animation/animation.js +236 -0
  96. package/es6/modules/animations/animation-controller.js +231 -0
  97. package/es6/modules/animations/animation.js +64 -0
  98. package/es6/modules/animations/attr-movement.js +66 -0
  99. package/es6/modules/animations/css-movement.js +170 -0
  100. package/es6/modules/animations/movement.js +131 -0
  101. package/es6/modules/animations/value.js +187 -0
  102. package/es6/modules/atom/atom.js +54 -0
  103. package/es6/modules/component/component.js +230 -0
  104. package/es6/modules/component/event-helper.js +119 -0
  105. package/es6/modules/component/jot.js +144 -0
  106. package/es6/modules/component/state-helper.js +262 -0
  107. package/es6/modules/component/unit.js +551 -0
  108. package/es6/modules/data/attrs.js +40 -0
  109. package/es6/modules/data/basic-data.js +500 -0
  110. package/es6/modules/data/data-utils.js +29 -0
  111. package/es6/modules/data/data.js +3 -0
  112. package/es6/modules/data/deep-data.js +541 -0
  113. package/es6/modules/data/model-service.js +528 -0
  114. package/es6/modules/data/model.js +133 -0
  115. package/es6/modules/data/simple-data.js +33 -0
  116. package/es6/modules/data-binder/connection-tracker.js +113 -0
  117. package/es6/modules/data-binder/connection.js +16 -0
  118. package/es6/modules/data-binder/data-binder.js +352 -0
  119. package/es6/modules/data-binder/data-pub-sub.js +141 -0
  120. package/es6/modules/data-binder/data-source.js +56 -0
  121. package/es6/modules/data-binder/element-source.js +219 -0
  122. package/es6/modules/data-binder/one-way-connection.js +46 -0
  123. package/es6/modules/data-binder/one-way-source.js +43 -0
  124. package/es6/modules/data-binder/source.js +36 -0
  125. package/es6/modules/data-binder/two-way-connection.js +75 -0
  126. package/es6/modules/data-binder/two-way-source.js +41 -0
  127. package/es6/modules/date/date.js +544 -0
  128. package/es6/modules/history/history.js +89 -0
  129. package/es6/modules/html-builder/html-builder.js +434 -0
  130. package/es6/modules/import/import.js +390 -0
  131. package/es6/modules/layout/layout-builder.js +1269 -0
  132. package/es6/modules/layout/layout-parser.js +134 -0
  133. package/es6/modules/layout/watcher-helper.js +282 -0
  134. package/es6/modules/mouse/mouse.js +114 -0
  135. package/es6/modules/router/component-helper.js +163 -0
  136. package/es6/modules/router/history-controller.js +216 -0
  137. package/es6/modules/router/nav-link.js +124 -0
  138. package/es6/modules/router/route.js +401 -0
  139. package/es6/modules/router/router.js +789 -0
  140. package/es6/modules/router/utils.js +31 -0
  141. package/es6/modules/state/state-target.js +91 -0
  142. package/es6/modules/state/state.js +171 -0
  143. package/es6/package-lock.json +13 -0
  144. package/es6/package.json +28 -0
  145. package/es6/shared/objects.js +99 -0
  146. package/legacy/es5/base.js +2968 -0
  147. package/legacy/es5/modules/ajax.js +663 -0
  148. package/legacy/es5/modules/animation.js +188 -0
  149. package/legacy/es5/modules/animations.js +1080 -0
  150. package/legacy/es5/modules/atom.js +65 -0
  151. package/legacy/es5/modules/component.js +1310 -0
  152. package/legacy/es5/modules/data-binder.js +1131 -0
  153. package/legacy/es5/modules/data.js +1808 -0
  154. package/legacy/es5/modules/date.js +525 -0
  155. package/legacy/es5/modules/form-validator.js +324 -0
  156. package/legacy/es5/modules/history.js +126 -0
  157. package/legacy/es5/modules/html-builder.js +461 -0
  158. package/legacy/es5/modules/layout.js +1679 -0
  159. package/legacy/es5/modules/mouse.js +124 -0
  160. package/legacy/es5/modules/nav-link.js +123 -0
  161. package/legacy/es5/modules/olderversions/animations-ease.js +1095 -0
  162. package/legacy/es5/modules/olderversions/animations-update.js +1048 -0
  163. package/legacy/es5/modules/olderversions/base-animations.js +636 -0
  164. package/legacy/es5/modules/olderversions/base-component-class.js +100 -0
  165. package/legacy/es5/modules/olderversions/base-data-binder-1.js +407 -0
  166. package/legacy/es5/modules/olderversions/base-data-binder-class.js +358 -0
  167. package/legacy/es5/modules/olderversions/base-layout-parser-class.js +172 -0
  168. package/legacy/es5/modules/olderversions/base-mode-1.js +777 -0
  169. package/legacy/es5/modules/olderversions/base-model-class.js +585 -0
  170. package/legacy/es5/modules/olderversions/data-binder/element-binding/base-data-binder-class.js +358 -0
  171. package/legacy/es5/modules/olderversions/data-binder/element-binding/base-model-class.js +585 -0
  172. package/legacy/es5/modules/olderversions/data-binder/model-binding/base-data-binder-class.js +353 -0
  173. package/legacy/es5/modules/olderversions/data-binder/model-binding/base-model-class.js +604 -0
  174. package/legacy/es5/modules/olderversions/data-binder-update-watcher.js +640 -0
  175. package/legacy/es5/modules/olderversions/data-tracker.js +187 -0
  176. package/legacy/es5/modules/olderversions/event-update.js +666 -0
  177. package/legacy/es5/modules/olderversions/nav-link.js +119 -0
  178. package/legacy/es5/modules/olderversions/router-with-templates-1.js +785 -0
  179. package/legacy/es5/modules/olderversions/router-with-templates.js +701 -0
  180. package/legacy/es5/modules/prototypes/ajax.js +657 -0
  181. package/legacy/es5/modules/prototypes/atom.js +65 -0
  182. package/legacy/es5/modules/prototypes/component.js +972 -0
  183. package/legacy/es5/modules/prototypes/data-binder.js +1089 -0
  184. package/legacy/es5/modules/prototypes/data.js +1290 -0
  185. package/legacy/es5/modules/prototypes/html-builder.js +414 -0
  186. package/legacy/es5/modules/prototypes/layout.js +879 -0
  187. package/legacy/es5/modules/router.js +1680 -0
  188. package/legacy/es5/modules/state.js +274 -0
  189. package/package.json +8 -3
  190. package/update +16 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Utils
3
+ *
4
+ * These are some helper functions for the router.
5
+ */
6
+ export const Utils =
7
+ {
8
+ /**
9
+ * This will remove the begining and ending slashes from a url.
10
+ *
11
+ * @param {string} uri
12
+ * @return {string}
13
+ */
14
+ removeSlashes(uri)
15
+ {
16
+ if(typeof uri === 'string')
17
+ {
18
+ if(uri.substring(0, 1) === '/')
19
+ {
20
+ uri = uri.substring(1);
21
+ }
22
+
23
+ if(uri.substring(-1) === '/')
24
+ {
25
+ uri = uri.substring(0, uri.length - 1);
26
+ }
27
+ }
28
+
29
+ return uri;
30
+ }
31
+ };
@@ -0,0 +1,91 @@
1
+
2
+ import {SimpleData} from '../data/data.js';
3
+ import {state} from './state.js';
4
+
5
+ /**
6
+ * StateTarget
7
+ *
8
+ * This will create a state target to track the state
9
+ * of an object.
10
+ * @class
11
+ * @augments SimpleData
12
+ */
13
+ export class StateTarget extends SimpleData
14
+ {
15
+ /**
16
+ * @constructor
17
+ * @param {string} id
18
+ */
19
+ constructor(id)
20
+ {
21
+ super();
22
+ this.id = id;
23
+ }
24
+
25
+ /**
26
+ * This will restore a state to the controller.
27
+ */
28
+ restore()
29
+ {
30
+ state.restore(this.id, this);
31
+ }
32
+
33
+ /**
34
+ * This will remove the target from the controller.
35
+ */
36
+ remove()
37
+ {
38
+ state.remove(this.id);
39
+ }
40
+
41
+ /**
42
+ * This will add an action to the target.
43
+ *
44
+ * @param {string} action
45
+ * @param {*} state
46
+ */
47
+ addAction(action, state)
48
+ {
49
+ if(typeof state !== 'undefined')
50
+ {
51
+ this.set(action, state);
52
+ }
53
+ }
54
+
55
+ /**
56
+ * This will get the state of an action.
57
+ *
58
+ * @param {string} action
59
+ * @return {*}
60
+ */
61
+ getState(action)
62
+ {
63
+ return this.get(action);
64
+ }
65
+
66
+ /**
67
+ * This will remove an action or a callBack
68
+ * from an action. if no token is passed the
69
+ * whole action is removed.
70
+ *
71
+ * @param {string} action
72
+ * @param {string} [token]
73
+ */
74
+ removeAction(action, token)
75
+ {
76
+ /* if we have a token then the token will be
77
+ the only item removed */
78
+ if(token)
79
+ {
80
+ this.off(action, token);
81
+ }
82
+ else
83
+ {
84
+ let actions = this.stage;
85
+ if(typeof actions[action] !== 'undefined')
86
+ {
87
+ delete actions[action];
88
+ }
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,171 @@
1
+
2
+ import {StateTarget} from './state-target.js';
3
+
4
+ /**
5
+ * StateController
6
+ *
7
+ * This will create a state controller that can
8
+ * add and remove targets, actions, and action
9
+ * subscriber callBack functions.
10
+ *
11
+ * @class
12
+ */
13
+ class StateController
14
+ {
15
+ /**
16
+ * @constructor
17
+ */
18
+ constructor()
19
+ {
20
+ this.targets = {};
21
+ }
22
+
23
+ /**
24
+ * This will restore a state target.
25
+ *
26
+ * @param {string} id
27
+ * @param {object} target
28
+ */
29
+ restore(id, target)
30
+ {
31
+ this.targets[id] = target;
32
+ }
33
+
34
+ /**
35
+ * This will get the state target.
36
+ *
37
+ * @param {string} id
38
+ * @return {object}
39
+ */
40
+ getTarget(id)
41
+ {
42
+ let targets = this.targets;
43
+ return (targets[id] || (targets[id] = new StateTarget(id)));
44
+ }
45
+
46
+ /**
47
+ * This will get the state of an action.
48
+ *
49
+ * @param {string} targetId
50
+ * @param {string} action
51
+ */
52
+ getActionState(targetId, action)
53
+ {
54
+ const target = this.getTarget(targetId);
55
+ return target.get(action);
56
+ }
57
+
58
+ /**
59
+ * This will add a new target.
60
+ *
61
+ * @param {string} targetId
62
+ * @param {string} [action]
63
+ * @param {*} [state] the primary action state
64
+ * @return {object}
65
+ */
66
+ add(targetId, action, state)
67
+ {
68
+ const target = this.getTarget(targetId);
69
+ if(action)
70
+ {
71
+ target.addAction(action, state);
72
+ }
73
+ return target;
74
+ }
75
+
76
+ /**
77
+ * This will add a new action to a target.
78
+ *
79
+ * @param {string} targetId
80
+ * @param {string} action
81
+ * @param {string} [state]
82
+ * @return {object}
83
+ */
84
+ addAction(targetId, action, state)
85
+ {
86
+ return this.add(targetId, action, state);
87
+ }
88
+
89
+ /**
90
+ * This will remove the action from a target.
91
+ *
92
+ * @param {string} targetId
93
+ * @param {string} action
94
+ * @param {string} [token]
95
+ */
96
+ removeAction(targetId, action, token)
97
+ {
98
+ this.off(targetId, action, token);
99
+ }
100
+
101
+ /**
102
+ * This will add a new subscriber to the action.
103
+ *
104
+ * @param {string} targetId
105
+ * @param {string} action
106
+ * @param {function} callBack
107
+ * @return {string}
108
+ */
109
+ on(targetId, action, callBack)
110
+ {
111
+ let target = this.getTarget(targetId);
112
+ if(action)
113
+ {
114
+ return target.on(action, callBack);
115
+ }
116
+ return false;
117
+ }
118
+
119
+ /**
120
+ * This will remove a subscriber from an action.
121
+ *
122
+ * @param {string} targetId
123
+ * @param {string} action
124
+ * @param {string} token
125
+ */
126
+ off(targetId, action, token)
127
+ {
128
+ this.remove(targetId, action, token);
129
+ }
130
+
131
+ /**
132
+ * This will remove a target or action or callBack.
133
+ *
134
+ * @param {string} targetId
135
+ * @param {string} [action]
136
+ * @param {string} [token]
137
+ */
138
+ remove(targetId, action, token)
139
+ {
140
+ let targets = this.targets,
141
+ target = targets[targetId];
142
+ if(!target)
143
+ {
144
+ return false;
145
+ }
146
+
147
+ if(action)
148
+ {
149
+ target.off(action, token);
150
+ }
151
+ else
152
+ {
153
+ delete targets[targetId];
154
+ }
155
+ }
156
+
157
+ /**
158
+ * This will set the action state.
159
+ *
160
+ * @param {string} targetId
161
+ * @param {string} action
162
+ * @param {*} state
163
+ */
164
+ set(targetId, action, state)
165
+ {
166
+ var target = this.getTarget(targetId);
167
+ target.set(action, state);
168
+ }
169
+ }
170
+
171
+ export const state = new StateController();
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "Base Framework",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 2,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "Base Framework",
9
+ "version": "1.0.0",
10
+ "license": "ISC"
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@base-framework/base",
3
+ "version": "2.6.0",
4
+ "description": "This is a javascript framework.",
5
+ "main": "base.min.js",
6
+ "scripts": {
7
+ "prepublishOnly" : "uglifyjs -o myfile.min.js myfile.js"
8
+ },
9
+ "keywords": [
10
+ "JavaScript",
11
+ "Framework",
12
+ "Base",
13
+ "ES6"
14
+ ],
15
+ "author": "Chris Durfee",
16
+ "license": "ISC",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/chrisdurfee/base.git"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/chrisdurfee/base/issues"
23
+ },
24
+ "devDependencies": {
25
+ "uglify-js": "^3.17.0"
26
+ },
27
+ "homepage": "https://github.com/chrisdurfee/base#readme"
28
+ }
@@ -0,0 +1,99 @@
1
+
2
+ export const Objects =
3
+ {
4
+ /**
5
+ * This will create a new object.
6
+ *
7
+ * @param {object} [object] An object to extend.
8
+ * @return {object}
9
+ */
10
+ createObject(object)
11
+ {
12
+ return Object.create(object);
13
+ },
14
+
15
+ /**
16
+ * This will extend an object to another object.
17
+ *
18
+ * @param {(function|object)} sourceObj
19
+ * @param {(function|object)} targetObj
20
+ * @return {object}
21
+ */
22
+ extendObject(sourceObj, targetObj)
23
+ {
24
+ if(typeof sourceObj === 'undefined' || typeof targetObj === 'undefined')
25
+ {
26
+ return false;
27
+ }
28
+
29
+ for(var property in sourceObj)
30
+ {
31
+ if(sourceObj.hasOwnProperty(property) && typeof targetObj[property] === 'undefined')
32
+ {
33
+ targetObj[property] = sourceObj[property];
34
+ }
35
+ }
36
+
37
+ return targetObj;
38
+ },
39
+
40
+ /**
41
+ * This will clone an object.
42
+ *
43
+ * @param {object} obj
44
+ * @return {object}
45
+ */
46
+ cloneObject(obj)
47
+ {
48
+ if(!obj)
49
+ {
50
+ return {};
51
+ }
52
+
53
+ return JSON.parse(JSON.stringify(obj));
54
+ },
55
+
56
+ /**
57
+ * This will get the class prototype.
58
+ *
59
+ * @param {(function|object)} object
60
+ * @return {object}
61
+ */
62
+ _getClassObject(object)
63
+ {
64
+ return (typeof object === 'function')? object.prototype : object;
65
+ },
66
+
67
+ /**
68
+ * This will extend an object to another object.
69
+ *
70
+ * @param {(function|object)} sourceClass
71
+ * @param {(function|object)} targetClass
72
+ * @return {object}
73
+ */
74
+ extendClass(sourceClass, targetClass)
75
+ {
76
+ /* if we are using a class constructor function
77
+ we want to get the class prototype object */
78
+ let source = this._getClassObject(sourceClass),
79
+ target = this._getClassObject(targetClass);
80
+
81
+ if(typeof source !== 'object' || typeof target !== 'object')
82
+ {
83
+ return false;
84
+ }
85
+
86
+ /* we want to create a new object and add the source
87
+ prototype to the new object */
88
+ let obj = Object.create(source);
89
+
90
+ /* we want to add any additional properties from the
91
+ target class to the new object */
92
+ for(var prop in target)
93
+ {
94
+ obj[prop] = target[prop];
95
+ }
96
+
97
+ return obj;
98
+ }
99
+ };