xooie 1.0.4 → 1.0.5
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.
- checksums.yaml +7 -0
- data/vendor/assets/javascripts/xooie/addons/base.js +61 -74
- data/vendor/assets/javascripts/xooie/addons/carousel_lentils.js +79 -78
- data/vendor/assets/javascripts/xooie/addons/carousel_pagination.js +140 -137
- data/vendor/assets/javascripts/xooie/addons/dropdown_accordion.js +38 -0
- data/vendor/assets/javascripts/xooie/addons/tab_animation.js +228 -227
- data/vendor/assets/javascripts/xooie/addons/tab_automation.js +150 -0
- data/vendor/assets/javascripts/xooie/base.js +214 -0
- data/vendor/assets/javascripts/xooie/carousel.js +400 -0
- data/vendor/assets/javascripts/xooie/dialog.js +132 -0
- data/vendor/assets/javascripts/xooie/dropdown.js +273 -0
- data/vendor/assets/javascripts/xooie/event_handler.js +14 -16
- data/vendor/assets/javascripts/xooie/helpers.js +45 -35
- data/vendor/assets/javascripts/xooie/shared.js +65 -37
- data/vendor/assets/javascripts/xooie/stylesheet.js +95 -90
- data/vendor/assets/javascripts/xooie/tab.js +125 -0
- data/vendor/assets/javascripts/xooie/widgets/accordion.js +7 -7
- data/vendor/assets/javascripts/xooie/widgets/base.js +73 -97
- data/vendor/assets/javascripts/xooie/widgets/carousel.js +95 -101
- data/vendor/assets/javascripts/xooie/widgets/dialog.js +84 -85
- data/vendor/assets/javascripts/xooie/widgets/dropdown.js +223 -188
- data/vendor/assets/javascripts/xooie/widgets/tab.js +36 -36
- data/vendor/assets/javascripts/xooie/xooie.js +151 -148
- data/vendor/assets/javascripts/xooie.js +169 -0
- metadata +53 -58
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c87aa1306202800647994b0d91fbfe16cd4992cd
|
4
|
+
data.tar.gz: 2a42d82815fbe8b38ba052542bdae07c1003e2a2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d95038096ccde4ec760e5519d10e37b338ecd9010432859af1b1240cf56ec9b0183c8e510ad024a225a1736b2497cf4e3e137434837f7081bb598f36d4959e6b
|
7
|
+
data.tar.gz: d9f4abf26f3c44e47b263658e1eee195bc016a1279902b0433a9e694544a38265b898f8de93e3c129c47ca4864004ca09c09a02c169f46bccbc43ee636359663
|
@@ -20,7 +20,9 @@
|
|
20
20
|
* The base xooie addon module. This module defines how addons function in relation to
|
21
21
|
* widgets, but contains no specific functionality.
|
22
22
|
**/
|
23
|
-
define('xooie/addons/base', ['
|
23
|
+
define('xooie/addons/base', ['xooie/shared', 'xooie/helpers'], function (shared, helpers) {
|
24
|
+
"use strict";
|
25
|
+
var Addon;
|
24
26
|
/**
|
25
27
|
* Xooie.Addon@xooie-addon-init(event)
|
26
28
|
* - event (Event): A jQuery event object
|
@@ -36,48 +38,30 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
36
38
|
* Instantiating a new Addon associates the addon with the widget passed into the constructor. The addon is
|
37
39
|
* stored in the [[Xooie.Widget#addons]] collection.
|
38
40
|
**/
|
39
|
-
|
40
|
-
|
41
|
+
Addon = shared.create(function (widget) {
|
42
|
+
// Check to see if the module is defined:
|
43
|
+
if (helpers.isUndefined(widget)) {
|
44
|
+
return false;
|
45
|
+
}
|
41
46
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
47
|
+
// If there is already an instance of this addon instantiated for the module, return it:
|
48
|
+
if (widget.addons() && widget.addons().hasOwnProperty(this.name())) {
|
49
|
+
return widget.addons()[this.name()];
|
50
|
+
}
|
46
51
|
|
47
|
-
|
48
|
-
|
49
|
-
return widget.addons()[this.name()];
|
50
|
-
}
|
52
|
+
// Add this addon to the widget's addons collection:
|
53
|
+
widget.addons()[this.name()] = this;
|
51
54
|
|
52
|
-
|
53
|
-
widget.addons()[this.name()] = this;
|
55
|
+
widget.root().addClass(this.addonClass());
|
54
56
|
|
55
|
-
|
57
|
+
// Set the default options
|
58
|
+
shared.setData(this, widget.root().data());
|
56
59
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
// Check to see if there are any additional constructors to call;
|
64
|
-
var initCheck = function(){
|
65
|
-
var i;
|
66
|
-
|
67
|
-
if (!self._extendCount || self._extendCount <= 0) {
|
68
|
-
self.widget().root().trigger(self.get('initEvent'));
|
69
|
-
self._extendCount = null;
|
70
|
-
} else {
|
71
|
-
setTimeout(initCheck, 0);
|
72
|
-
}
|
73
|
-
};
|
74
|
-
|
75
|
-
if (this._extendCount > 0) {
|
76
|
-
setTimeout(initCheck, 0);
|
77
|
-
} else {
|
78
|
-
initCheck();
|
79
|
-
}
|
80
|
-
};
|
60
|
+
// Reference the widget:
|
61
|
+
this.widget(widget);
|
62
|
+
}, function () {
|
63
|
+
this.widget().root().trigger(this.get('initEvent'));
|
64
|
+
});
|
81
65
|
|
82
66
|
/**
|
83
67
|
* Xooie.Addon.defineReadOnly(name, defaultValue)
|
@@ -86,9 +70,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
86
70
|
*
|
87
71
|
* See [[Xooie.shared.defineReadOnly]].
|
88
72
|
**/
|
89
|
-
|
90
|
-
|
91
|
-
|
73
|
+
Addon.defineReadOnly = function (name, defaultValue) {
|
74
|
+
shared.defineReadOnly(this, name, defaultValue);
|
75
|
+
};
|
92
76
|
|
93
77
|
/**
|
94
78
|
* Xooie.Addon.defineWriteOnly(name)
|
@@ -96,9 +80,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
96
80
|
*
|
97
81
|
* See [[Xooie.shared.defineWriteOnly]].
|
98
82
|
**/
|
99
|
-
|
100
|
-
|
101
|
-
|
83
|
+
Addon.defineWriteOnly = function (name) {
|
84
|
+
shared.defineWriteOnly(this, name);
|
85
|
+
};
|
102
86
|
|
103
87
|
/**
|
104
88
|
* Xooie.Widget.define(name[, defaultValue])
|
@@ -108,36 +92,39 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
108
92
|
* A method that defines a property as both readable and writable. In reality it calls both [[Xooie.Addon.defineReadOnly]]
|
109
93
|
* and [[Xooie.Addon.defineWriteOnly]].
|
110
94
|
**/
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
95
|
+
Addon.define = function (name, defaultValue) {
|
96
|
+
this.defineReadOnly(name, defaultValue);
|
97
|
+
this.defineWriteOnly(name);
|
98
|
+
};
|
115
99
|
|
116
100
|
/**
|
117
101
|
* Xooie.Addon.extend(constr) -> Addon
|
118
102
|
* - constr (Function): The constructor for the new [[Xooie.Addon]] class.
|
119
103
|
*
|
120
|
-
* See [[Xooie.shared.
|
104
|
+
* See [[Xooie.shared.create]].
|
121
105
|
**/
|
122
|
-
|
123
|
-
|
124
|
-
|
106
|
+
Addon.extend = function (constr, post_constr) {
|
107
|
+
return shared.create(constr, post_constr, this);
|
108
|
+
};
|
125
109
|
|
126
110
|
/** internal
|
127
111
|
* Xooie.Addon#_definedProps -> Array
|
128
112
|
*
|
129
113
|
* Same as [[Xooie.Widget#_definedProps]].
|
130
114
|
**/
|
131
|
-
|
115
|
+
Addon.prototype._definedProps = [];
|
132
116
|
|
133
117
|
/** internal
|
118
|
+
<<<<<<< HEAD
|
134
119
|
* Xooie.Addon#_extendCount -> Integer | null
|
135
120
|
*
|
136
121
|
* Same as [[Xooie.Widget#_extendCount]].
|
137
122
|
**/
|
138
|
-
|
123
|
+
Addon.prototype._extendCount = null;
|
139
124
|
|
140
125
|
/** internal
|
126
|
+
=======
|
127
|
+
>>>>>>> bcde81f4a5817b1ab23f9f90ab6dd67cd86867b8
|
141
128
|
* Xooie.Addon#_widget -> Widget
|
142
129
|
*
|
143
130
|
* The widget for which this addon was instantiated.
|
@@ -149,7 +136,7 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
149
136
|
* The method for setting or getting [[Xooie.Addon#_widget]]. Returns the current value of
|
150
137
|
* [[Xooie.Addon#_widget]] if no value is passed or sets the value.
|
151
138
|
**/
|
152
|
-
|
139
|
+
Addon.define('widget');
|
153
140
|
|
154
141
|
/** internal
|
155
142
|
* Xooie.Addon#_name -> String
|
@@ -163,7 +150,7 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
163
150
|
* The method for setting or getting [[Xooie.Addon#_name]]. Returns the current value of
|
164
151
|
* [[Xooie.Addon#_name]] if no value is passed or sets the value.
|
165
152
|
**/
|
166
|
-
|
153
|
+
Addon.define('name', 'addon');
|
167
154
|
|
168
155
|
/** internal, read-only
|
169
156
|
* Xooie.Addon#_initEvent -> String
|
@@ -175,7 +162,7 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
175
162
|
*
|
176
163
|
* The method for getting [[Xooie.Addon#_initEvent]].
|
177
164
|
**/
|
178
|
-
|
165
|
+
Addon.defineReadOnly('initEvent', 'xooie-addon-init');
|
179
166
|
|
180
167
|
/** internal, read-only
|
181
168
|
* Xooie.Addon#_addonClass -> String
|
@@ -187,7 +174,7 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
187
174
|
*
|
188
175
|
* The method for getting [[Xooie.Addon#_addonClass]].
|
189
176
|
**/
|
190
|
-
|
177
|
+
Addon.defineReadOnly('addonClass', 'has-addon');
|
191
178
|
|
192
179
|
/**
|
193
180
|
* Xooie.Addon#get(name) -> object
|
@@ -195,9 +182,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
195
182
|
*
|
196
183
|
* See [[Xooie.shared.get]].
|
197
184
|
**/
|
198
|
-
|
199
|
-
|
200
|
-
|
185
|
+
Addon.prototype.get = function (name) {
|
186
|
+
return shared.get(this, name);
|
187
|
+
};
|
201
188
|
|
202
189
|
/**
|
203
190
|
* Xooie.Addon#set(name, value)
|
@@ -206,9 +193,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
206
193
|
*
|
207
194
|
* See [[Xooie.shared.set]].
|
208
195
|
**/
|
209
|
-
|
210
|
-
|
211
|
-
|
196
|
+
Addon.prototype.set = function (name, value) {
|
197
|
+
return shared.set(this, name, value);
|
198
|
+
};
|
212
199
|
|
213
200
|
/**
|
214
201
|
* Xooie.Addon#cleanup()
|
@@ -216,9 +203,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
216
203
|
* Removes the `addonClass` from the `root` of the associated `widget` and prepares this widget to be
|
217
204
|
* garbage collected.
|
218
205
|
**/
|
219
|
-
|
220
|
-
|
221
|
-
|
206
|
+
Addon.prototype.cleanup = function () {
|
207
|
+
this.widget().root().removeClass(this.addonClass());
|
208
|
+
};
|
222
209
|
|
223
210
|
/** internal
|
224
211
|
* Xooie.Addon#_process_initEvent(initEvent) -> String
|
@@ -226,9 +213,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
226
213
|
*
|
227
214
|
* Adds the [[Xooie.Addon#name]] to the `initEvent`
|
228
215
|
**/
|
229
|
-
|
230
|
-
|
231
|
-
|
216
|
+
Addon.prototype._process_initEvent = function (initEvent) {
|
217
|
+
return this.name() === 'addon' ? initEvent : initEvent + '.' + this.name();
|
218
|
+
};
|
232
219
|
|
233
220
|
/** internal
|
234
221
|
* Xooie.Addon#_process_addonClass(className) -> String
|
@@ -236,9 +223,9 @@ define('xooie/addons/base', ['jquery', 'xooie/shared'], function($, shared) {
|
|
236
223
|
*
|
237
224
|
* Adds the [[Xooie.Addon#name]] to the `addonClass`
|
238
225
|
**/
|
239
|
-
|
240
|
-
|
241
|
-
|
226
|
+
Addon.prototype._process_addonClass = function (addonClass) {
|
227
|
+
return this.name() === 'addon' ? addonClass : 'has-' + this.name() + '-addon';
|
228
|
+
};
|
242
229
|
|
243
|
-
|
230
|
+
return Addon;
|
244
231
|
});
|
@@ -14,109 +14,110 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
define('xooie/addons/carousel_lentils', ['jquery', 'xooie/addons/base'], function($, Base) {
|
17
|
+
define('xooie/addons/carousel_lentils', ['jquery', 'xooie/addons/base', 'xooie/helpers'], function ($, Base, helpers) {
|
18
|
+
'use strict';
|
18
19
|
|
19
|
-
|
20
|
-
|
20
|
+
var Lentils = new Base('lentils', function () {
|
21
|
+
var self = this;
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
element, i;
|
23
|
+
this.lentilBuilders = {
|
24
|
+
"item": function (container, template) {
|
25
|
+
var items, element, i;
|
26
26
|
|
27
|
-
|
27
|
+
items = self.module.content.children();
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
"page": function(container, template){
|
39
|
-
if (typeof self.module.addons.pagination === 'undefined') {
|
40
|
-
return;
|
41
|
-
}
|
29
|
+
for (i = 0; i < items.length; i += 1) {
|
30
|
+
element = self.module.render(template, {
|
31
|
+
number: i + 1,
|
32
|
+
scroll_mode: "item",
|
33
|
+
lentil_is_last: (i === items.length - 1)
|
34
|
+
});
|
35
|
+
container.append(element);
|
36
|
+
}
|
37
|
+
},
|
42
38
|
|
43
|
-
|
39
|
+
"page": function (container, template) {
|
40
|
+
if (helpers.isUndefined(self.module.addons.pagination)) {
|
41
|
+
return;
|
42
|
+
}
|
44
43
|
|
45
|
-
|
46
|
-
element = self.module.render(template, {
|
47
|
-
number: i + 1,
|
48
|
-
scroll_mode: "page",
|
49
|
-
lentil_is_last: (i === self.module.addons.pagination._breaks.length - 1)
|
50
|
-
});
|
44
|
+
var element, i;
|
51
45
|
|
52
|
-
|
53
|
-
|
46
|
+
for (i = 0; i < self.module.addons.pagination._breaks.length; i += 1) {
|
47
|
+
element = self.module.render(template, {
|
48
|
+
number: i + 1,
|
49
|
+
scroll_mode: "page",
|
50
|
+
lentil_is_last: (i === self.module.addons.pagination._breaks.length - 1)
|
51
|
+
});
|
54
52
|
|
55
|
-
|
53
|
+
container.append(element);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
};
|
56
57
|
|
57
|
-
|
58
|
+
this.module.root.addClass('is-carousel-lentiled');
|
58
59
|
|
59
|
-
|
60
|
+
this.module.root.on('carouselUpdated', function () {
|
61
|
+
self.updateLentils();
|
62
|
+
});
|
60
63
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
+
this.module.root.on('carouselScrollComplete', function () {
|
65
|
+
self.currentLentil();
|
66
|
+
});
|
64
67
|
|
65
|
-
|
66
|
-
self.currentLentil();
|
67
|
-
});
|
68
|
+
this.updateLentils();
|
68
69
|
|
69
|
-
|
70
|
+
this.currentLentil();
|
70
71
|
|
71
|
-
|
72
|
+
});
|
72
73
|
|
73
|
-
|
74
|
+
Lentils.setDefaultOptions({
|
75
|
+
lentilMode: 'item',
|
76
|
+
lentilSelector: '[data-role="carousel-lentils"]',
|
77
|
+
lentilTemplateSelector: '[data-role="carousel-lentils-template"]',
|
74
78
|
|
75
|
-
|
76
|
-
|
77
|
-
lentilSelector: '[data-role="carousel-lentils"]',
|
78
|
-
lentilTemplateSelector: '[data-role="carousel-lentils-template"]',
|
79
|
+
activeLentilClass: 'is-active-lentil'
|
80
|
+
});
|
79
81
|
|
80
|
-
|
81
|
-
|
82
|
+
Lentils.prototype.currentLentil = function () {
|
83
|
+
var container, lentils, index;
|
82
84
|
|
83
|
-
|
84
|
-
|
85
|
-
lentils = container.children(),
|
86
|
-
index;
|
85
|
+
container = this.module.root.find(this.options.lentilSelector);
|
86
|
+
lentils = container.children();
|
87
87
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
if (this.options.lentilMode === 'page' && !helpers.isUndefned(this.module.addons.pagination)) {
|
89
|
+
index = this.module.addons.pagination.currentPage();
|
90
|
+
} else {
|
91
|
+
index = this.module.currentItem();
|
92
|
+
}
|
93
93
|
|
94
|
-
|
94
|
+
lentils.filter('.' + this.options.activeLentilClass).removeClass(this.options.activeLentilClass);
|
95
95
|
|
96
|
-
|
97
|
-
|
96
|
+
lentils.eq(index).addClass(this.options.activeLentilClass);
|
97
|
+
};
|
98
98
|
|
99
|
-
|
100
|
-
|
101
|
-
template = this.module.root.find(this.options.lentilTemplateSelector),
|
102
|
-
self = this;
|
99
|
+
Lentils.prototype.updateLentils = function () {
|
100
|
+
var container, template, self;
|
103
101
|
|
104
|
-
|
105
|
-
|
102
|
+
container = this.module.root.find(this.options.lentilSelector);
|
103
|
+
template = this.module.root.find(this.options.lentilTemplateSelector);
|
104
|
+
self = this;
|
106
105
|
|
107
|
-
|
108
|
-
|
106
|
+
if (container.length > 0 && template.length > 0) {
|
107
|
+
container.html('');
|
109
108
|
|
110
|
-
|
111
|
-
|
112
|
-
self.module.updatePosition($(this).data('scroll'));
|
113
|
-
});
|
109
|
+
if (helpers.isFunction(this.lentilBuilders[this.options.lentilMode])) {
|
110
|
+
this.lentilBuilders[this.options.lentilMode](container, template);
|
114
111
|
|
115
|
-
|
112
|
+
container.children().on('click', function (event) {
|
113
|
+
event.preventDefault();
|
114
|
+
self.module.updatePosition($(this).data('scroll'));
|
115
|
+
});
|
116
116
|
|
117
|
-
|
118
|
-
|
119
|
-
}
|
117
|
+
this.currentLentil();
|
118
|
+
}
|
119
|
+
}
|
120
|
+
};
|
120
121
|
|
121
|
-
|
122
|
-
});
|
122
|
+
return Lentils;
|
123
|
+
});
|