@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,124 @@
1
+ /* base framework module */
2
+ (function()
3
+ {
4
+ "use strict";
5
+
6
+ /**
7
+ * Mouse
8
+ *
9
+ * This will create a mouse event object.
10
+ * @class
11
+ */
12
+ var Mouse = base.Class.extend(
13
+ {
14
+ /**
15
+ * @contrustor
16
+ * @param {string} [mode]
17
+ * @param {function} [callBackFn]
18
+ * @param {object} [obj]
19
+ * @param {boolean} [capture]
20
+ */
21
+ constructor: function(mode, callBackFn, obj, capture)
22
+ {
23
+ /* this will store the mouse position */
24
+ this.position = { x: null, y: null };
25
+ this.callBackFn = callBackFn;
26
+ this.obj = obj || window;
27
+ this.capture = capture || false;
28
+
29
+ /* the mouse can be tracked by different modes
30
+ and this will control the tracking position mode */
31
+ this.mode = mode || 'page';
32
+ },
33
+
34
+ /**
35
+ * This will update the mode.
36
+ *
37
+ * @param {string} mode
38
+ */
39
+ updateMode: function(mode)
40
+ {
41
+ switch(mode)
42
+ {
43
+ case 'client':
44
+ this.mode = mode;
45
+ break;
46
+ case 'screen':
47
+ this.mode = mode;
48
+ break;
49
+ default:
50
+ this.mode = 'page';
51
+ }
52
+ },
53
+
54
+ /**
55
+ * This will update the position.
56
+ *
57
+ * @param {object} e
58
+ * @return {object}
59
+ */
60
+ updatePosition: function(e)
61
+ {
62
+ var position = this.position;
63
+
64
+ if(e)
65
+ {
66
+ /* we need to check if the mode is set to
67
+ client or return page position */
68
+ switch(this.mode)
69
+ {
70
+ case 'client':
71
+ position.x = e.clientX || e.pageX;
72
+ position.y = e.clientY || e.pageY;
73
+ break;
74
+ case 'screen':
75
+ position.x = e.clientX || e.pageX;
76
+ position.y = e.clientY || e.pageY;
77
+ break;
78
+ default:
79
+ position.x = e.pageX;
80
+ position.y = e.pageY;
81
+ }
82
+ }
83
+
84
+ return position;
85
+ },
86
+
87
+ /**
88
+ * This will start tracking.
89
+ */
90
+ start: function()
91
+ {
92
+ var parent = this;
93
+ var callBackFn = this.callBackFn;
94
+ /* we want to update mouse position and
95
+ standardize the return */
96
+ var mouseResults = function(e)
97
+ {
98
+ // cross-browser result
99
+ e = e || window.event;
100
+
101
+ var position = this.position = parent.updatePosition(e);
102
+
103
+ /* we can now send the mouse wheel results to
104
+ the call back function */
105
+ if(typeof callBackFn === 'function')
106
+ {
107
+ callBackFn.call(position, e);
108
+ }
109
+ };
110
+
111
+ base.events.add('mousemove', this.obj, mouseResults, this.capture, true, callBackFn);
112
+ },
113
+
114
+ /**
115
+ * This will stop tracking.
116
+ */
117
+ stop: function()
118
+ {
119
+ base.off('mousemove', this.obj, this.callBackFn, this.capture);
120
+ }
121
+ });
122
+
123
+ base.extend.Mouse = Mouse;
124
+ })();
@@ -0,0 +1,123 @@
1
+ /**
2
+ * NavLink
3
+ *
4
+ * This will create a nav link that will add an active
5
+ * class when the browser route path matches the link
6
+ * href.
7
+ *
8
+ * @class
9
+ */
10
+ var NavLink = base.Component.extend(
11
+ {
12
+ /**
13
+ * This will configure the link active class.
14
+ *
15
+ * @protected
16
+ */
17
+ beforeSetup: function()
18
+ {
19
+ this.selectedClass = this.activeClass || 'active';
20
+ },
21
+
22
+ /**
23
+ * This will render the component.
24
+ *
25
+ * @return {object}
26
+ */
27
+ render: function()
28
+ {
29
+ var href = this.href,
30
+ text = this.text;
31
+
32
+ var watchers = this.setupWatchers(href, text);
33
+
34
+ var onState = {};
35
+ onState[this.selectedClass] = true;
36
+
37
+ return {
38
+ tag: 'a',
39
+ className: this.className || null,
40
+ onState: ['selected', onState],
41
+ href: this.getString(href),
42
+ text: this.getString(text),
43
+ children: this.children,
44
+ watch: watchers
45
+ };
46
+ },
47
+
48
+ /**
49
+ * This will get string.
50
+ *
51
+ * @param {string} string
52
+ * @return {(string|null)}
53
+ */
54
+ getString: function(string)
55
+ {
56
+ var type = typeof string;
57
+ return (type !== 'object' && type !== 'undefined')? string : null;
58
+ },
59
+
60
+ /**
61
+ * This will setup the watchers.
62
+ *
63
+ * @protected
64
+ * @param {string} href
65
+ * @param {string} text
66
+ * @return {array}
67
+ */
68
+ setupWatchers: function(href, text)
69
+ {
70
+ var self = this,
71
+ exact = (this.exact !== false),
72
+ data = base.router.data;
73
+
74
+ var watchers = [];
75
+
76
+ if(href && typeof href === 'object')
77
+ {
78
+ watchers.push(
79
+ {
80
+ attr: 'href',
81
+ value: href
82
+ });
83
+ }
84
+
85
+ if(text && typeof text === 'object')
86
+ {
87
+ watchers.push(
88
+ {
89
+ attr: 'text',
90
+ value: text
91
+ });
92
+ }
93
+
94
+ watchers.push({
95
+ value: ['[[path]]', data],
96
+ callBack: function(ele, value)
97
+ {
98
+ var selected = exact? (value === ele.pathname) : (new RegExp('^' + ele.pathname + '($|\/|\\.).*').test(value));
99
+ self.update(ele, selected);
100
+ }
101
+ });
102
+
103
+ return watchers;
104
+ },
105
+
106
+ setupStates: function()
107
+ {
108
+ return {
109
+ selected: false
110
+ };
111
+ },
112
+
113
+ /**
114
+ * This will update the class on the element.
115
+ *
116
+ * @param {object} ele
117
+ * @param {bool} selected
118
+ */
119
+ update: function(ele, selected)
120
+ {
121
+ this.state.set('selected', selected);
122
+ }
123
+ });