fomantic-ui-sass 2.9.0 → 2.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/app/assets/fonts/semantic-ui/Lato-Bold.woff +0 -0
  4. data/app/assets/fonts/semantic-ui/Lato-Bold.woff2 +0 -0
  5. data/app/assets/fonts/semantic-ui/Lato-BoldItalic.woff +0 -0
  6. data/app/assets/fonts/semantic-ui/Lato-BoldItalic.woff2 +0 -0
  7. data/app/assets/fonts/semantic-ui/Lato-Italic.woff +0 -0
  8. data/app/assets/fonts/semantic-ui/Lato-Italic.woff2 +0 -0
  9. data/app/assets/fonts/semantic-ui/Lato-Regular.woff +0 -0
  10. data/app/assets/fonts/semantic-ui/Lato-Regular.woff2 +0 -0
  11. data/app/assets/fonts/semantic-ui/LatoLatin-Bold.woff +0 -0
  12. data/app/assets/fonts/semantic-ui/LatoLatin-Bold.woff2 +0 -0
  13. data/app/assets/fonts/semantic-ui/LatoLatin-BoldItalic.woff +0 -0
  14. data/app/assets/fonts/semantic-ui/LatoLatin-BoldItalic.woff2 +0 -0
  15. data/app/assets/fonts/semantic-ui/LatoLatin-Italic.woff +0 -0
  16. data/app/assets/fonts/semantic-ui/LatoLatin-Italic.woff2 +0 -0
  17. data/app/assets/fonts/semantic-ui/LatoLatin-Regular.woff +0 -0
  18. data/app/assets/fonts/semantic-ui/LatoLatin-Regular.woff2 +0 -0
  19. data/app/assets/fonts/semantic-ui/brand-icons.woff +0 -0
  20. data/app/assets/fonts/semantic-ui/brand-icons.woff2 +0 -0
  21. data/app/assets/fonts/semantic-ui/icons.woff +0 -0
  22. data/app/assets/fonts/semantic-ui/icons.woff2 +0 -0
  23. data/app/assets/fonts/semantic-ui/outline-icons.woff +0 -0
  24. data/app/assets/fonts/semantic-ui/outline-icons.woff2 +0 -0
  25. data/app/assets/javascripts/semantic-ui/accordion.js +569 -596
  26. data/app/assets/javascripts/semantic-ui/api.js +1158 -1180
  27. data/app/assets/javascripts/semantic-ui/calendar.js +1935 -1810
  28. data/app/assets/javascripts/semantic-ui/checkbox.js +843 -842
  29. data/app/assets/javascripts/semantic-ui/dimmer.js +707 -738
  30. data/app/assets/javascripts/semantic-ui/dropdown.js +4196 -4237
  31. data/app/assets/javascripts/semantic-ui/embed.js +646 -676
  32. data/app/assets/javascripts/semantic-ui/flyout.js +1503 -1466
  33. data/app/assets/javascripts/semantic-ui/form.js +2035 -2007
  34. data/app/assets/javascripts/semantic-ui/modal.js +1552 -1487
  35. data/app/assets/javascripts/semantic-ui/nag.js +521 -527
  36. data/app/assets/javascripts/semantic-ui/popup.js +1469 -1457
  37. data/app/assets/javascripts/semantic-ui/progress.js +944 -998
  38. data/app/assets/javascripts/semantic-ui/rating.js +508 -524
  39. data/app/assets/javascripts/semantic-ui/search.js +1521 -1535
  40. data/app/assets/javascripts/semantic-ui/shape.js +762 -811
  41. data/app/assets/javascripts/semantic-ui/sidebar.js +1042 -1100
  42. data/app/assets/javascripts/semantic-ui/site.js +437 -477
  43. data/app/assets/javascripts/semantic-ui/slider.js +1311 -1312
  44. data/app/assets/javascripts/semantic-ui/state.js +639 -658
  45. data/app/assets/javascripts/semantic-ui/sticky.js +848 -902
  46. data/app/assets/javascripts/semantic-ui/tab.js +903 -967
  47. data/app/assets/javascripts/semantic-ui/toast.js +911 -885
  48. data/app/assets/javascripts/semantic-ui/transition.js +998 -1078
  49. data/app/assets/javascripts/semantic-ui/visibility.js +1214 -1246
  50. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +7 -7
  51. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +311 -377
  52. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +191 -331
  53. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +302 -439
  54. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +127 -199
  55. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +549 -776
  56. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +711 -1123
  57. data/app/assets/stylesheets/semantic-ui/elements/_container.scss +9 -8
  58. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +45 -63
  59. data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +3558 -3558
  60. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +272 -270
  61. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +120 -144
  62. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +667 -747
  63. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +41 -65
  64. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +416 -300
  65. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +361 -412
  66. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +51 -72
  67. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +69 -157
  68. data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +24 -44
  69. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +17 -22
  70. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +46 -85
  71. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +173 -227
  72. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +79 -152
  73. data/app/assets/stylesheets/semantic-ui/elements/_text.scss +34 -34
  74. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +10 -15
  75. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +29 -51
  76. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +37 -55
  77. data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +26 -29
  78. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +159 -230
  79. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +55 -174
  80. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +261 -393
  81. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +21 -32
  82. data/app/assets/stylesheets/semantic-ui/modules/_flyout.scss +97 -143
  83. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +122 -156
  84. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +55 -65
  85. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +573 -206
  86. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +108 -213
  87. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +83 -124
  88. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +71 -100
  89. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +16 -32
  90. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +105 -208
  91. data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +102 -127
  92. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +3 -7
  93. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +12 -16
  94. data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +71 -149
  95. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +371 -1282
  96. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +36 -47
  97. data/app/assets/stylesheets/semantic-ui/views/_card.scss +221 -367
  98. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +43 -61
  99. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +37 -59
  100. data/app/assets/stylesheets/semantic-ui/views/_item.scss +87 -134
  101. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +77 -118
  102. data/lib/fomantic/ui/sass/version.rb +2 -2
  103. data/tasks/converter.rb +1 -1
  104. metadata +17 -1
@@ -1,713 +1,683 @@
1
1
  /*!
2
2
  * # Fomantic-UI - Embed
3
- * http://github.com/fomantic/Fomantic-UI/
3
+ * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
6
6
  * Released under the MIT license
7
- * http://opensource.org/licenses/MIT
7
+ * https://opensource.org/licenses/MIT
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
11
+ (function ($, window, document) {
12
+ 'use strict';
12
13
 
13
- "use strict";
14
-
15
- $.isFunction = $.isFunction || function(obj) {
16
- return typeof obj === "function" && typeof obj.nodeType !== "number";
17
- };
18
-
19
- window = (typeof window != 'undefined' && window.Math == Math)
20
- ? window
21
- : (typeof self != 'undefined' && self.Math == Math)
22
- ? self
23
- : Function('return this')()
24
- ;
25
-
26
- $.fn.embed = function(parameters) {
27
-
28
- var
29
- $allModules = $(this),
30
-
31
- moduleSelector = $allModules.selector || '',
32
-
33
- time = new Date().getTime(),
34
- performance = [],
35
-
36
- query = arguments[0],
37
- methodInvoked = (typeof query == 'string'),
38
- queryArguments = [].slice.call(arguments, 1),
39
-
40
- returnedValue
41
- ;
42
-
43
- $allModules
44
- .each(function() {
45
- var
46
- settings = ( $.isPlainObject(parameters) )
47
- ? $.extend(true, {}, $.fn.embed.settings, parameters)
48
- : $.extend({}, $.fn.embed.settings),
49
-
50
- selector = settings.selector,
51
- className = settings.className,
52
- sources = settings.sources,
53
- error = settings.error,
54
- metadata = settings.metadata,
55
- namespace = settings.namespace,
56
- templates = settings.templates,
57
-
58
- eventNamespace = '.' + namespace,
59
- moduleNamespace = 'module-' + namespace,
60
-
61
- $module = $(this),
62
- $placeholder = $module.find(selector.placeholder),
63
- $icon = $module.find(selector.icon),
64
- $embed = $module.find(selector.embed),
65
-
66
- element = this,
67
- instance = $module.data(moduleNamespace),
68
- module
69
- ;
70
-
71
- module = {
72
-
73
- initialize: function() {
74
- module.debug('Initializing embed');
75
- module.determine.autoplay();
76
- module.create();
77
- module.bind.events();
78
- module.instantiate();
79
- },
80
-
81
- instantiate: function() {
82
- module.verbose('Storing instance of module', module);
83
- instance = module;
84
- $module
85
- .data(moduleNamespace, module)
86
- ;
87
- },
88
-
89
- destroy: function() {
90
- module.verbose('Destroying previous instance of embed');
91
- module.reset();
92
- $module
93
- .removeData(moduleNamespace)
94
- .off(eventNamespace)
95
- ;
96
- },
97
-
98
- refresh: function() {
99
- module.verbose('Refreshing selector cache');
100
- $placeholder = $module.find(selector.placeholder);
101
- $icon = $module.find(selector.icon);
102
- $embed = $module.find(selector.embed);
103
- },
104
-
105
- bind: {
106
- events: function() {
107
- if( module.has.placeholder() ) {
108
- module.debug('Adding placeholder events');
109
- $module
110
- .on('click' + eventNamespace, selector.placeholder, module.createAndShow)
111
- .on('click' + eventNamespace, selector.icon, module.createAndShow)
112
- ;
113
- }
114
- }
115
- },
116
-
117
- create: function() {
118
- var
119
- placeholder = module.get.placeholder()
120
- ;
121
- if(placeholder) {
122
- module.createPlaceholder();
123
- }
124
- else {
125
- module.createAndShow();
126
- }
127
- },
128
-
129
- createPlaceholder: function(placeholder) {
130
- var
131
- icon = module.get.icon()
132
- ;
133
- placeholder = placeholder || module.get.placeholder();
134
- $module.html( templates.placeholder(placeholder, icon) );
135
- module.debug('Creating placeholder for embed', placeholder, icon);
136
- },
137
-
138
- createEmbed: function(url) {
139
- module.refresh();
140
- url = url || module.get.url();
141
- $embed = $('<div/>')
142
- .addClass(className.embed)
143
- .html( module.generate.embed(url) )
144
- .appendTo($module)
145
- ;
146
- settings.onCreate.call(element, url);
147
- module.debug('Creating embed object', $embed);
148
- },
149
-
150
- changeEmbed: function(url) {
151
- $embed
152
- .html( module.generate.embed(url) )
153
- ;
154
- },
155
-
156
- createAndShow: function() {
157
- module.createEmbed();
158
- module.show();
159
- },
14
+ function isFunction(obj) {
15
+ return typeof obj === 'function' && typeof obj.nodeType !== 'number';
16
+ }
160
17
 
161
- // sets new embed
162
- change: function(source, id, url) {
163
- module.debug('Changing video to ', source, id, url);
164
- $module
165
- .data(metadata.source, source)
166
- .data(metadata.id, id)
167
- ;
168
- if(url) {
169
- $module.data(metadata.url, url);
170
- }
171
- else {
172
- $module.removeData(metadata.url);
173
- }
174
- if(module.has.embed()) {
175
- module.changeEmbed();
176
- }
177
- else {
178
- module.create();
179
- }
180
- },
18
+ window = window !== undefined && window.Math === Math
19
+ ? window
20
+ : globalThis;
181
21
 
182
- // clears embed
183
- reset: function() {
184
- module.debug('Clearing embed and showing placeholder');
185
- module.remove.data();
186
- module.remove.active();
187
- module.remove.embed();
188
- module.showPlaceholder();
189
- settings.onReset.call(element);
190
- },
22
+ $.fn.embed = function (parameters) {
23
+ var
24
+ $allModules = $(this),
191
25
 
192
- // shows current embed
193
- show: function() {
194
- module.debug('Showing embed');
195
- module.set.active();
196
- settings.onDisplay.call(element);
197
- },
26
+ moduleSelector = $allModules.selector || '',
198
27
 
199
- hide: function() {
200
- module.debug('Hiding embed');
201
- module.showPlaceholder();
202
- },
28
+ time = Date.now(),
29
+ performance = [],
203
30
 
204
- showPlaceholder: function() {
205
- module.debug('Showing placeholder image');
206
- module.remove.active();
207
- settings.onPlaceholderDisplay.call(element);
208
- },
31
+ query = arguments[0],
32
+ methodInvoked = typeof query === 'string',
33
+ queryArguments = [].slice.call(arguments, 1),
209
34
 
210
- get: {
211
- id: function() {
212
- return settings.id || $module.data(metadata.id);
213
- },
214
- placeholder: function() {
215
- return settings.placeholder || $module.data(metadata.placeholder);
216
- },
217
- icon: function() {
218
- return (settings.icon)
219
- ? settings.icon
220
- : ($module.data(metadata.icon) !== undefined)
221
- ? $module.data(metadata.icon)
222
- : module.determine.icon()
223
- ;
224
- },
225
- source: function(url) {
226
- return (settings.source)
227
- ? settings.source
228
- : ($module.data(metadata.source) !== undefined)
229
- ? $module.data(metadata.source)
230
- : module.determine.source()
231
- ;
232
- },
233
- type: function() {
234
- var source = module.get.source();
235
- return (sources[source] !== undefined)
236
- ? sources[source].type
237
- : false
238
- ;
239
- },
240
- url: function() {
241
- return (settings.url)
242
- ? settings.url
243
- : ($module.data(metadata.url) !== undefined)
244
- ? $module.data(metadata.url)
245
- : module.determine.url()
246
- ;
247
- }
248
- },
35
+ returnedValue
36
+ ;
249
37
 
250
- determine: {
251
- autoplay: function() {
252
- if(module.should.autoplay()) {
253
- settings.autoplay = true;
254
- }
255
- },
256
- source: function(url) {
38
+ $allModules.each(function () {
257
39
  var
258
- matchedSource = false
40
+ settings = $.isPlainObject(parameters)
41
+ ? $.extend(true, {}, $.fn.embed.settings, parameters)
42
+ : $.extend({}, $.fn.embed.settings),
43
+
44
+ selector = settings.selector,
45
+ className = settings.className,
46
+ sources = settings.sources,
47
+ error = settings.error,
48
+ metadata = settings.metadata,
49
+ namespace = settings.namespace,
50
+ templates = settings.templates,
51
+
52
+ eventNamespace = '.' + namespace,
53
+ moduleNamespace = 'module-' + namespace,
54
+
55
+ $module = $(this),
56
+ $placeholder = $module.find(selector.placeholder),
57
+ $icon = $module.find(selector.icon),
58
+ $embed = $module.find(selector.embed),
59
+
60
+ element = this,
61
+ instance = $module.data(moduleNamespace),
62
+ module
259
63
  ;
260
- url = url || module.get.url();
261
- if(url) {
262
- $.each(sources, function(name, source) {
263
- if(url.search(source.domain) !== -1) {
264
- matchedSource = name;
265
- return false;
64
+
65
+ module = {
66
+
67
+ initialize: function () {
68
+ module.debug('Initializing embed');
69
+ module.determine.autoplay();
70
+ module.create();
71
+ module.bind.events();
72
+ module.instantiate();
73
+ },
74
+
75
+ instantiate: function () {
76
+ module.verbose('Storing instance of module', module);
77
+ instance = module;
78
+ $module
79
+ .data(moduleNamespace, module)
80
+ ;
81
+ },
82
+
83
+ destroy: function () {
84
+ module.verbose('Destroying previous instance of embed');
85
+ module.reset();
86
+ $module
87
+ .removeData(moduleNamespace)
88
+ .off(eventNamespace)
89
+ ;
90
+ },
91
+
92
+ refresh: function () {
93
+ module.verbose('Refreshing selector cache');
94
+ $placeholder = $module.find(selector.placeholder);
95
+ $icon = $module.find(selector.icon);
96
+ $embed = $module.find(selector.embed);
97
+ },
98
+
99
+ bind: {
100
+ events: function () {
101
+ if (module.has.placeholder()) {
102
+ module.debug('Adding placeholder events');
103
+ $module
104
+ .on('click' + eventNamespace, selector.placeholder, module.createAndShow)
105
+ .on('click' + eventNamespace, selector.icon, module.createAndShow)
106
+ ;
107
+ }
108
+ },
109
+ },
110
+
111
+ create: function () {
112
+ var
113
+ placeholder = module.get.placeholder()
114
+ ;
115
+ if (placeholder) {
116
+ module.createPlaceholder();
117
+ } else {
118
+ module.createAndShow();
119
+ }
120
+ },
121
+
122
+ createPlaceholder: function (placeholder) {
123
+ var
124
+ icon = module.get.icon()
125
+ ;
126
+ placeholder = placeholder || module.get.placeholder();
127
+ $module.html(templates.placeholder(placeholder, icon));
128
+ module.debug('Creating placeholder for embed', placeholder, icon);
129
+ },
130
+
131
+ createEmbed: function (url) {
132
+ module.refresh();
133
+ url = url || module.get.url();
134
+ $embed = $('<div/>')
135
+ .addClass(className.embed)
136
+ .html(module.generate.embed(url))
137
+ .appendTo($module)
138
+ ;
139
+ settings.onCreate.call(element, url);
140
+ module.debug('Creating embed object', $embed);
141
+ },
142
+
143
+ changeEmbed: function (url) {
144
+ $embed
145
+ .html(module.generate.embed(url))
146
+ ;
147
+ },
148
+
149
+ createAndShow: function () {
150
+ module.createEmbed();
151
+ module.show();
152
+ },
153
+
154
+ // sets new embed
155
+ change: function (source, id, url) {
156
+ module.debug('Changing video to ', source, id, url);
157
+ $module
158
+ .data(metadata.source, source)
159
+ .data(metadata.id, id)
160
+ ;
161
+ if (url) {
162
+ $module.data(metadata.url, url);
163
+ } else {
164
+ $module.removeData(metadata.url);
165
+ }
166
+ if (module.has.embed()) {
167
+ module.changeEmbed();
168
+ } else {
169
+ module.create();
170
+ }
171
+ },
172
+
173
+ // clears embed
174
+ reset: function () {
175
+ module.debug('Clearing embed and showing placeholder');
176
+ module.remove.data();
177
+ module.remove.active();
178
+ module.remove.embed();
179
+ module.showPlaceholder();
180
+ settings.onReset.call(element);
181
+ },
182
+
183
+ // shows current embed
184
+ show: function () {
185
+ module.debug('Showing embed');
186
+ module.set.active();
187
+ settings.onDisplay.call(element);
188
+ },
189
+
190
+ hide: function () {
191
+ module.debug('Hiding embed');
192
+ module.showPlaceholder();
193
+ },
194
+
195
+ showPlaceholder: function () {
196
+ module.debug('Showing placeholder image');
197
+ module.remove.active();
198
+ settings.onPlaceholderDisplay.call(element);
199
+ },
200
+
201
+ get: {
202
+ id: function () {
203
+ return settings.id || $module.data(metadata.id);
204
+ },
205
+ placeholder: function () {
206
+ return settings.placeholder || $module.data(metadata.placeholder);
207
+ },
208
+ icon: function () {
209
+ return settings.icon || ($module.data(metadata.icon) !== undefined
210
+ ? $module.data(metadata.icon)
211
+ : module.determine.icon());
212
+ },
213
+ source: function (url) {
214
+ return settings.source || ($module.data(metadata.source) !== undefined
215
+ ? $module.data(metadata.source)
216
+ : module.determine.source());
217
+ },
218
+ type: function () {
219
+ var source = module.get.source();
220
+
221
+ return sources[source] !== undefined
222
+ ? sources[source].type
223
+ : false;
224
+ },
225
+ url: function () {
226
+ return settings.url || ($module.data(metadata.url) !== undefined
227
+ ? $module.data(metadata.url)
228
+ : module.determine.url());
229
+ },
230
+ },
231
+
232
+ determine: {
233
+ autoplay: function () {
234
+ if (module.should.autoplay()) {
235
+ settings.autoplay = true;
236
+ }
237
+ },
238
+ source: function (url) {
239
+ var
240
+ matchedSource = false
241
+ ;
242
+ url = url || module.get.url();
243
+ if (url) {
244
+ $.each(sources, function (name, source) {
245
+ if (url.search(source.domain) !== -1) {
246
+ matchedSource = name;
247
+
248
+ return false;
249
+ }
250
+ });
251
+ }
252
+
253
+ return matchedSource;
254
+ },
255
+ icon: function () {
256
+ var
257
+ source = module.get.source()
258
+ ;
259
+
260
+ return sources[source] !== undefined
261
+ ? sources[source].icon
262
+ : false;
263
+ },
264
+ url: function () {
265
+ var
266
+ id = settings.id || $module.data(metadata.id),
267
+ source = settings.source || $module.data(metadata.source),
268
+ url
269
+ ;
270
+ url = sources[source] !== undefined
271
+ ? sources[source].url.replace('{id}', id)
272
+ : false;
273
+ if (url) {
274
+ $module.data(metadata.url, url);
275
+ }
276
+
277
+ return url;
278
+ },
279
+ },
280
+
281
+ set: {
282
+ active: function () {
283
+ $module.addClass(className.active);
284
+ },
285
+ },
286
+
287
+ remove: {
288
+ data: function () {
289
+ $module
290
+ .removeData(metadata.id)
291
+ .removeData(metadata.icon)
292
+ .removeData(metadata.placeholder)
293
+ .removeData(metadata.source)
294
+ .removeData(metadata.url)
295
+ ;
296
+ },
297
+ active: function () {
298
+ $module.removeClass(className.active);
299
+ },
300
+ embed: function () {
301
+ $embed.empty();
302
+ },
303
+ },
304
+
305
+ encode: {
306
+ parameters: function (parameters) {
307
+ var
308
+ urlString = [],
309
+ index
310
+ ;
311
+ for (index in parameters) {
312
+ urlString.push(encodeURIComponent(index) + '=' + encodeURIComponent(parameters[index]));
313
+ }
314
+
315
+ return urlString.join('&amp;');
316
+ },
317
+ },
318
+
319
+ generate: {
320
+ embed: function (url) {
321
+ module.debug('Generating embed html');
322
+ var
323
+ source = module.get.source(),
324
+ html,
325
+ parameters
326
+ ;
327
+ url = module.get.url(url);
328
+ if (url) {
329
+ parameters = module.generate.parameters(source);
330
+ html = templates.iframe(url, parameters);
331
+ } else {
332
+ module.error(error.noURL, $module);
333
+ }
334
+
335
+ return html;
336
+ },
337
+ parameters: function (source, extraParameters) {
338
+ var
339
+ parameters = sources[source] && sources[source].parameters !== undefined
340
+ ? sources[source].parameters(settings)
341
+ : {}
342
+ ;
343
+ extraParameters = extraParameters || settings.parameters;
344
+ if (extraParameters) {
345
+ parameters = $.extend({}, parameters, extraParameters);
346
+ }
347
+ parameters = settings.onEmbed(parameters);
348
+
349
+ return module.encode.parameters(parameters);
350
+ },
351
+ },
352
+
353
+ has: {
354
+ embed: function () {
355
+ return $embed.length > 0;
356
+ },
357
+ placeholder: function () {
358
+ return settings.placeholder || $module.data(metadata.placeholder);
359
+ },
360
+ },
361
+
362
+ should: {
363
+ autoplay: function () {
364
+ return settings.autoplay === 'auto'
365
+ ? settings.placeholder || $module.data(metadata.placeholder) !== undefined
366
+ : settings.autoplay;
367
+ },
368
+ },
369
+
370
+ is: {
371
+ video: function () {
372
+ return module.get.type() === 'video';
373
+ },
374
+ },
375
+
376
+ setting: function (name, value) {
377
+ module.debug('Changing setting', name, value);
378
+ if ($.isPlainObject(name)) {
379
+ $.extend(true, settings, name);
380
+ } else if (value !== undefined) {
381
+ if ($.isPlainObject(settings[name])) {
382
+ $.extend(true, settings[name], value);
383
+ } else {
384
+ settings[name] = value;
385
+ }
386
+ } else {
387
+ return settings[name];
388
+ }
389
+ },
390
+ internal: function (name, value) {
391
+ if ($.isPlainObject(name)) {
392
+ $.extend(true, module, name);
393
+ } else if (value !== undefined) {
394
+ module[name] = value;
395
+ } else {
396
+ return module[name];
397
+ }
398
+ },
399
+ debug: function () {
400
+ if (!settings.silent && settings.debug) {
401
+ if (settings.performance) {
402
+ module.performance.log(arguments);
403
+ } else {
404
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
405
+ module.debug.apply(console, arguments);
406
+ }
407
+ }
408
+ },
409
+ verbose: function () {
410
+ if (!settings.silent && settings.verbose && settings.debug) {
411
+ if (settings.performance) {
412
+ module.performance.log(arguments);
413
+ } else {
414
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
415
+ module.verbose.apply(console, arguments);
416
+ }
417
+ }
418
+ },
419
+ error: function () {
420
+ if (!settings.silent) {
421
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
422
+ module.error.apply(console, arguments);
423
+ }
424
+ },
425
+ performance: {
426
+ log: function (message) {
427
+ var
428
+ currentTime,
429
+ executionTime,
430
+ previousTime
431
+ ;
432
+ if (settings.performance) {
433
+ currentTime = Date.now();
434
+ previousTime = time || currentTime;
435
+ executionTime = currentTime - previousTime;
436
+ time = currentTime;
437
+ performance.push({
438
+ Name: message[0],
439
+ Arguments: [].slice.call(message, 1) || '',
440
+ Element: element,
441
+ 'Execution Time': executionTime,
442
+ });
443
+ }
444
+ clearTimeout(module.performance.timer);
445
+ module.performance.timer = setTimeout(module.performance.display, 500);
446
+ },
447
+ display: function () {
448
+ var
449
+ title = settings.name + ':',
450
+ totalTime = 0
451
+ ;
452
+ time = false;
453
+ clearTimeout(module.performance.timer);
454
+ $.each(performance, function (index, data) {
455
+ totalTime += data['Execution Time'];
456
+ });
457
+ title += ' ' + totalTime + 'ms';
458
+ if (moduleSelector) {
459
+ title += ' \'' + moduleSelector + '\'';
460
+ }
461
+ if ($allModules.length > 1) {
462
+ title += ' (' + $allModules.length + ')';
463
+ }
464
+ if (performance.length > 0) {
465
+ console.groupCollapsed(title);
466
+ if (console.table) {
467
+ console.table(performance);
468
+ } else {
469
+ $.each(performance, function (index, data) {
470
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
471
+ });
472
+ }
473
+ console.groupEnd();
474
+ }
475
+ performance = [];
476
+ },
477
+ },
478
+ invoke: function (query, passedArguments, context) {
479
+ var
480
+ object = instance,
481
+ maxDepth,
482
+ found,
483
+ response
484
+ ;
485
+ passedArguments = passedArguments || queryArguments;
486
+ context = context || element;
487
+ if (typeof query === 'string' && object !== undefined) {
488
+ query = query.split(/[ .]/);
489
+ maxDepth = query.length - 1;
490
+ $.each(query, function (depth, value) {
491
+ var camelCaseValue = depth !== maxDepth
492
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
493
+ : query
494
+ ;
495
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
496
+ object = object[camelCaseValue];
497
+ } else if (object[camelCaseValue] !== undefined) {
498
+ found = object[camelCaseValue];
499
+
500
+ return false;
501
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
502
+ object = object[value];
503
+ } else if (object[value] !== undefined) {
504
+ found = object[value];
505
+
506
+ return false;
507
+ } else {
508
+ module.error(error.method, query);
509
+
510
+ return false;
511
+ }
512
+ });
513
+ }
514
+ if (isFunction(found)) {
515
+ response = found.apply(context, passedArguments);
516
+ } else if (found !== undefined) {
517
+ response = found;
518
+ }
519
+ if (Array.isArray(returnedValue)) {
520
+ returnedValue.push(response);
521
+ } else if (returnedValue !== undefined) {
522
+ returnedValue = [returnedValue, response];
523
+ } else if (response !== undefined) {
524
+ returnedValue = response;
525
+ }
526
+
527
+ return found;
528
+ },
529
+ };
530
+
531
+ if (methodInvoked) {
532
+ if (instance === undefined) {
533
+ module.initialize();
266
534
  }
267
- });
268
- }
269
- return matchedSource;
270
- },
271
- icon: function() {
272
- var
273
- source = module.get.source()
274
- ;
275
- return (sources[source] !== undefined)
276
- ? sources[source].icon
277
- : false
278
- ;
279
- },
280
- url: function() {
281
- var
282
- id = settings.id || $module.data(metadata.id),
283
- source = settings.source || $module.data(metadata.source),
284
- url
285
- ;
286
- url = (sources[source] !== undefined)
287
- ? sources[source].url.replace('{id}', id)
288
- : false
289
- ;
290
- if(url) {
291
- $module.data(metadata.url, url);
535
+ module.invoke(query);
536
+ } else {
537
+ if (instance !== undefined) {
538
+ instance.invoke('destroy');
539
+ }
540
+ module.initialize();
292
541
  }
293
- return url;
294
- }
542
+ });
543
+
544
+ return returnedValue !== undefined
545
+ ? returnedValue
546
+ : this;
547
+ };
548
+
549
+ $.fn.embed.settings = {
550
+
551
+ name: 'Embed',
552
+ namespace: 'embed',
553
+
554
+ silent: false,
555
+ debug: false,
556
+ verbose: false,
557
+ performance: true,
558
+
559
+ icon: false,
560
+ source: false,
561
+ url: false,
562
+ id: false,
563
+
564
+ // standard video settings
565
+ autoplay: 'auto',
566
+ color: '#444',
567
+ hd: true,
568
+ brandedUI: false,
569
+
570
+ // additional parameters to include with the embed
571
+ parameters: false,
572
+
573
+ onDisplay: function () {},
574
+ onPlaceholderDisplay: function () {},
575
+ onReset: function () {},
576
+ onCreate: function (url) {},
577
+ onEmbed: function (parameters) {
578
+ return parameters;
295
579
  },
296
580
 
297
-
298
- set: {
299
- active: function() {
300
- $module.addClass(className.active);
301
- }
581
+ metadata: {
582
+ id: 'id',
583
+ icon: 'icon',
584
+ placeholder: 'placeholder',
585
+ source: 'source',
586
+ url: 'url',
302
587
  },
303
588
 
304
- remove: {
305
- data: function() {
306
- $module
307
- .removeData(metadata.id)
308
- .removeData(metadata.icon)
309
- .removeData(metadata.placeholder)
310
- .removeData(metadata.source)
311
- .removeData(metadata.url)
312
- ;
313
- },
314
- active: function() {
315
- $module.removeClass(className.active);
316
- },
317
- embed: function() {
318
- $embed.empty();
319
- }
589
+ error: {
590
+ noURL: 'No URL specified',
591
+ method: 'The method you called is not defined',
320
592
  },
321
593
 
322
- encode: {
323
- parameters: function(parameters) {
324
- var
325
- urlString = [],
326
- index
327
- ;
328
- for (index in parameters) {
329
- urlString.push( encodeURIComponent(index) + '=' + encodeURIComponent( parameters[index] ) );
330
- }
331
- return urlString.join('&amp;');
332
- }
594
+ className: {
595
+ active: 'active',
596
+ embed: 'embed',
333
597
  },
334
598
 
335
- generate: {
336
- embed: function(url) {
337
- module.debug('Generating embed html');
338
- var
339
- source = module.get.source(),
340
- html,
341
- parameters
342
- ;
343
- url = module.get.url(url);
344
- if(url) {
345
- parameters = module.generate.parameters(source);
346
- html = templates.iframe(url, parameters);
347
- }
348
- else {
349
- module.error(error.noURL, $module);
350
- }
351
- return html;
352
- },
353
- parameters: function(source, extraParameters) {
354
- var
355
- parameters = (sources[source] && sources[source].parameters !== undefined)
356
- ? sources[source].parameters(settings)
357
- : {}
358
- ;
359
- extraParameters = extraParameters || settings.parameters;
360
- if(extraParameters) {
361
- parameters = $.extend({}, parameters, extraParameters);
362
- }
363
- parameters = settings.onEmbed(parameters);
364
- return module.encode.parameters(parameters);
365
- }
599
+ selector: {
600
+ embed: '.embed',
601
+ placeholder: '.placeholder',
602
+ icon: '.icon',
366
603
  },
367
604
 
368
- has: {
369
- embed: function() {
370
- return ($embed.length > 0);
371
- },
372
- placeholder: function() {
373
- return settings.placeholder || $module.data(metadata.placeholder);
374
- }
605
+ sources: {
606
+ youtube: {
607
+ name: 'youtube',
608
+ type: 'video',
609
+ icon: 'video play',
610
+ domain: 'youtube.com',
611
+ url: '//www.youtube.com/embed/{id}',
612
+ parameters: function (settings) {
613
+ return {
614
+ autohide: !settings.brandedUI,
615
+ autoplay: settings.autoplay,
616
+ color: settings.color || undefined,
617
+ hq: settings.hd,
618
+ jsapi: settings.api,
619
+ modestbranding: !settings.brandedUI,
620
+ };
621
+ },
622
+ },
623
+ vimeo: {
624
+ name: 'vimeo',
625
+ type: 'video',
626
+ icon: 'video play',
627
+ domain: 'vimeo.com',
628
+ url: '//player.vimeo.com/video/{id}',
629
+ parameters: function (settings) {
630
+ return {
631
+ api: settings.api,
632
+ autoplay: settings.autoplay,
633
+ byline: settings.brandedUI,
634
+ color: settings.color || undefined,
635
+ portrait: settings.brandedUI,
636
+ title: settings.brandedUI,
637
+ };
638
+ },
639
+ },
375
640
  },
376
641
 
377
- should: {
378
- autoplay: function() {
379
- return (settings.autoplay === 'auto')
380
- ? (settings.placeholder || $module.data(metadata.placeholder) !== undefined)
381
- : settings.autoplay
382
- ;
383
- }
384
- },
642
+ templates: {
643
+ deQuote: function (string, encode) {
644
+ return String(string).replace(/"/g, encode ? '&quot;' : '');
645
+ },
646
+ iframe: function (url, parameters) {
647
+ var
648
+ src = url,
649
+ deQuote = $.fn.embed.settings.templates.deQuote
650
+ ;
651
+ if (parameters) {
652
+ src += '?' + parameters;
653
+ }
385
654
 
386
- is: {
387
- video: function() {
388
- return module.get.type() == 'video';
389
- }
390
- },
655
+ return ''
656
+ + '<iframe src="' + deQuote(src) + '"'
657
+ + ' width="100%" height="100%"'
658
+ + ' msallowFullScreen allowFullScreen></iframe>';
659
+ },
660
+ placeholder: function (image, icon) {
661
+ var
662
+ html = '',
663
+ deQuote = $.fn.embed.settings.templates.deQuote
664
+ ;
665
+ if (icon) {
666
+ html += '<i class="' + deQuote(icon) + ' icon"></i>';
667
+ }
668
+ if (image) {
669
+ html += '<img class="placeholder" src="' + deQuote(image) + '">';
670
+ }
391
671
 
392
- setting: function(name, value) {
393
- module.debug('Changing setting', name, value);
394
- if( $.isPlainObject(name) ) {
395
- $.extend(true, settings, name);
396
- }
397
- else if(value !== undefined) {
398
- if($.isPlainObject(settings[name])) {
399
- $.extend(true, settings[name], value);
400
- }
401
- else {
402
- settings[name] = value;
403
- }
404
- }
405
- else {
406
- return settings[name];
407
- }
408
- },
409
- internal: function(name, value) {
410
- if( $.isPlainObject(name) ) {
411
- $.extend(true, module, name);
412
- }
413
- else if(value !== undefined) {
414
- module[name] = value;
415
- }
416
- else {
417
- return module[name];
418
- }
419
- },
420
- debug: function() {
421
- if(!settings.silent && settings.debug) {
422
- if(settings.performance) {
423
- module.performance.log(arguments);
424
- }
425
- else {
426
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
427
- module.debug.apply(console, arguments);
428
- }
429
- }
430
- },
431
- verbose: function() {
432
- if(!settings.silent && settings.verbose && settings.debug) {
433
- if(settings.performance) {
434
- module.performance.log(arguments);
435
- }
436
- else {
437
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
438
- module.verbose.apply(console, arguments);
439
- }
440
- }
441
- },
442
- error: function() {
443
- if(!settings.silent) {
444
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
445
- module.error.apply(console, arguments);
446
- }
447
- },
448
- performance: {
449
- log: function(message) {
450
- var
451
- currentTime,
452
- executionTime,
453
- previousTime
454
- ;
455
- if(settings.performance) {
456
- currentTime = new Date().getTime();
457
- previousTime = time || currentTime;
458
- executionTime = currentTime - previousTime;
459
- time = currentTime;
460
- performance.push({
461
- 'Name' : message[0],
462
- 'Arguments' : [].slice.call(message, 1) || '',
463
- 'Element' : element,
464
- 'Execution Time' : executionTime
465
- });
466
- }
467
- clearTimeout(module.performance.timer);
468
- module.performance.timer = setTimeout(module.performance.display, 500);
469
- },
470
- display: function() {
471
- var
472
- title = settings.name + ':',
473
- totalTime = 0
474
- ;
475
- time = false;
476
- clearTimeout(module.performance.timer);
477
- $.each(performance, function(index, data) {
478
- totalTime += data['Execution Time'];
479
- });
480
- title += ' ' + totalTime + 'ms';
481
- if(moduleSelector) {
482
- title += ' \'' + moduleSelector + '\'';
483
- }
484
- if($allModules.length > 1) {
485
- title += ' ' + '(' + $allModules.length + ')';
486
- }
487
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
488
- console.groupCollapsed(title);
489
- if(console.table) {
490
- console.table(performance);
491
- }
492
- else {
493
- $.each(performance, function(index, data) {
494
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
495
- });
496
- }
497
- console.groupEnd();
498
- }
499
- performance = [];
500
- }
672
+ return html;
673
+ },
501
674
  },
502
- invoke: function(query, passedArguments, context) {
503
- var
504
- object = instance,
505
- maxDepth,
506
- found,
507
- response
508
- ;
509
- passedArguments = passedArguments || queryArguments;
510
- context = context || element;
511
- if(typeof query == 'string' && object !== undefined) {
512
- query = query.split(/[\. ]/);
513
- maxDepth = query.length - 1;
514
- $.each(query, function(depth, value) {
515
- var camelCaseValue = (depth != maxDepth)
516
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
517
- : query
518
- ;
519
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
520
- object = object[camelCaseValue];
521
- }
522
- else if( object[camelCaseValue] !== undefined ) {
523
- found = object[camelCaseValue];
524
- return false;
525
- }
526
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
527
- object = object[value];
528
- }
529
- else if( object[value] !== undefined ) {
530
- found = object[value];
531
- return false;
532
- }
533
- else {
534
- module.error(error.method, query);
535
- return false;
536
- }
537
- });
538
- }
539
- if ( $.isFunction( found ) ) {
540
- response = found.apply(context, passedArguments);
541
- }
542
- else if(found !== undefined) {
543
- response = found;
544
- }
545
- if(Array.isArray(returnedValue)) {
546
- returnedValue.push(response);
547
- }
548
- else if(returnedValue !== undefined) {
549
- returnedValue = [returnedValue, response];
550
- }
551
- else if(response !== undefined) {
552
- returnedValue = response;
553
- }
554
- return found;
555
- }
556
- };
557
-
558
- if(methodInvoked) {
559
- if(instance === undefined) {
560
- module.initialize();
561
- }
562
- module.invoke(query);
563
- }
564
- else {
565
- if(instance !== undefined) {
566
- instance.invoke('destroy');
567
- }
568
- module.initialize();
569
- }
570
- })
571
- ;
572
- return (returnedValue !== undefined)
573
- ? returnedValue
574
- : this
575
- ;
576
- };
577
-
578
- $.fn.embed.settings = {
579
-
580
- name : 'Embed',
581
- namespace : 'embed',
582
-
583
- silent : false,
584
- debug : false,
585
- verbose : false,
586
- performance : true,
587
-
588
- icon : false,
589
- source : false,
590
- url : false,
591
- id : false,
592
-
593
- // standard video settings
594
- autoplay : 'auto',
595
- color : '#444444',
596
- hd : true,
597
- brandedUI : false,
598
-
599
- // additional parameters to include with the embed
600
- parameters: false,
601
-
602
- onDisplay : function() {},
603
- onPlaceholderDisplay : function() {},
604
- onReset : function() {},
605
- onCreate : function(url) {},
606
- onEmbed : function(parameters) {
607
- return parameters;
608
- },
609
-
610
- metadata : {
611
- id : 'id',
612
- icon : 'icon',
613
- placeholder : 'placeholder',
614
- source : 'source',
615
- url : 'url'
616
- },
617
-
618
- error : {
619
- noURL : 'No URL specified',
620
- method : 'The method you called is not defined'
621
- },
622
-
623
- className : {
624
- active : 'active',
625
- embed : 'embed'
626
- },
627
-
628
- selector : {
629
- embed : '.embed',
630
- placeholder : '.placeholder',
631
- icon : '.icon'
632
- },
633
-
634
- sources: {
635
- youtube: {
636
- name : 'youtube',
637
- type : 'video',
638
- icon : 'video play',
639
- domain : 'youtube.com',
640
- url : '//www.youtube.com/embed/{id}',
641
- parameters: function(settings) {
642
- return {
643
- autohide : !settings.brandedUI,
644
- autoplay : settings.autoplay,
645
- color : settings.color || undefined,
646
- hq : settings.hd,
647
- jsapi : settings.api,
648
- modestbranding : !settings.brandedUI
649
- };
650
- }
651
- },
652
- vimeo: {
653
- name : 'vimeo',
654
- type : 'video',
655
- icon : 'video play',
656
- domain : 'vimeo.com',
657
- url : '//player.vimeo.com/video/{id}',
658
- parameters: function(settings) {
659
- return {
660
- api : settings.api,
661
- autoplay : settings.autoplay,
662
- byline : settings.brandedUI,
663
- color : settings.color || undefined,
664
- portrait : settings.brandedUI,
665
- title : settings.brandedUI
666
- };
667
- }
668
- }
669
- },
670
-
671
- templates: {
672
- deQuote: function(string, encode) {
673
- return String(string).replace(/"/g,encode ? "&quot;" : "");
674
- },
675
- iframe : function(url, parameters) {
676
- var src = url,
677
- deQuote = $.fn.embed.settings.templates.deQuote
678
- ;
679
- if (parameters) {
680
- src += '?' + parameters;
681
- }
682
- return ''
683
- + '<iframe src="' + deQuote(src) + '"'
684
- + ' width="100%" height="100%"'
685
- + ' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
686
- ;
687
- },
688
- placeholder : function(image, icon) {
689
- var
690
- html = '',
691
- deQuote = $.fn.embed.settings.templates.deQuote
692
- ;
693
- if(icon) {
694
- html += '<i class="' + deQuote(icon) + ' icon"></i>';
695
- }
696
- if(image) {
697
- html += '<img class="placeholder" src="' + deQuote(image) + '">';
698
- }
699
- return html;
700
- }
701
- },
702
-
703
- // NOT YET IMPLEMENTED
704
- api : false,
705
- onPause : function() {},
706
- onPlay : function() {},
707
- onStop : function() {}
708
-
709
- };
710
-
711
675
 
676
+ // NOT YET IMPLEMENTED
677
+ api: false,
678
+ onPause: function () {},
679
+ onPlay: function () {},
680
+ onStop: function () {},
712
681
 
713
- })( jQuery, window, document );
682
+ };
683
+ })(jQuery, window, document);