fomantic-ui 2.9.1-beta.17 → 2.9.1-beta.18

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 (252) hide show
  1. package/.eslintrc.js +109 -0
  2. package/.github/workflows/ci.yml +13 -3
  3. package/dist/components/accordion.css +1 -1
  4. package/dist/components/accordion.js +571 -598
  5. package/dist/components/accordion.min.css +1 -1
  6. package/dist/components/accordion.min.js +1 -1
  7. package/dist/components/ad.css +1 -1
  8. package/dist/components/ad.min.css +1 -1
  9. package/dist/components/api.js +1164 -1186
  10. package/dist/components/api.min.js +1 -1
  11. package/dist/components/breadcrumb.css +1 -1
  12. package/dist/components/breadcrumb.min.css +1 -1
  13. package/dist/components/button.css +1 -1
  14. package/dist/components/button.min.css +1 -1
  15. package/dist/components/calendar.css +1 -1
  16. package/dist/components/calendar.js +1897 -1818
  17. package/dist/components/calendar.min.css +1 -1
  18. package/dist/components/calendar.min.js +1 -1
  19. package/dist/components/card.css +1 -1
  20. package/dist/components/card.min.css +1 -1
  21. package/dist/components/checkbox.css +1 -1
  22. package/dist/components/checkbox.js +844 -841
  23. package/dist/components/checkbox.min.css +1 -1
  24. package/dist/components/checkbox.min.js +1 -1
  25. package/dist/components/comment.css +1 -1
  26. package/dist/components/comment.min.css +1 -1
  27. package/dist/components/container.css +3 -1
  28. package/dist/components/container.min.css +2 -2
  29. package/dist/components/dimmer.css +1 -1
  30. package/dist/components/dimmer.js +710 -737
  31. package/dist/components/dimmer.min.css +1 -1
  32. package/dist/components/dimmer.min.js +1 -1
  33. package/dist/components/divider.css +1 -1
  34. package/dist/components/divider.min.css +1 -1
  35. package/dist/components/dropdown.css +11 -8
  36. package/dist/components/dropdown.js +4163 -4238
  37. package/dist/components/dropdown.min.css +2 -2
  38. package/dist/components/dropdown.min.js +1 -1
  39. package/dist/components/embed.css +1 -1
  40. package/dist/components/embed.js +653 -675
  41. package/dist/components/embed.min.css +1 -1
  42. package/dist/components/embed.min.js +1 -1
  43. package/dist/components/feed.css +1 -1
  44. package/dist/components/feed.min.css +1 -1
  45. package/dist/components/flag.css +1 -1
  46. package/dist/components/flag.min.css +1 -1
  47. package/dist/components/flyout.css +6 -3
  48. package/dist/components/flyout.js +1466 -1467
  49. package/dist/components/flyout.min.css +2 -2
  50. package/dist/components/flyout.min.js +1 -1
  51. package/dist/components/form.css +1 -1
  52. package/dist/components/form.js +1981 -2004
  53. package/dist/components/form.min.css +1 -1
  54. package/dist/components/form.min.js +1 -1
  55. package/dist/components/grid.css +1 -1
  56. package/dist/components/grid.min.css +1 -1
  57. package/dist/components/header.css +1 -1
  58. package/dist/components/header.min.css +1 -1
  59. package/dist/components/icon.css +1 -1
  60. package/dist/components/icon.min.css +1 -1
  61. package/dist/components/image.css +1 -1
  62. package/dist/components/image.min.css +1 -1
  63. package/dist/components/input.css +1 -1
  64. package/dist/components/input.min.css +1 -1
  65. package/dist/components/item.css +1 -1
  66. package/dist/components/item.min.css +1 -1
  67. package/dist/components/label.css +1 -1
  68. package/dist/components/label.min.css +1 -1
  69. package/dist/components/list.css +1 -1
  70. package/dist/components/list.min.css +1 -1
  71. package/dist/components/loader.css +1 -1
  72. package/dist/components/loader.min.css +1 -1
  73. package/dist/components/message.css +1 -1
  74. package/dist/components/message.min.css +1 -1
  75. package/dist/components/modal.css +7 -1
  76. package/dist/components/modal.js +1493 -1487
  77. package/dist/components/modal.min.css +2 -2
  78. package/dist/components/modal.min.js +1 -1
  79. package/dist/components/nag.css +1 -1
  80. package/dist/components/nag.js +520 -529
  81. package/dist/components/nag.min.css +1 -1
  82. package/dist/components/nag.min.js +1 -1
  83. package/dist/components/placeholder.css +1 -1
  84. package/dist/components/placeholder.min.css +1 -1
  85. package/dist/components/popup.css +1 -1
  86. package/dist/components/popup.js +1439 -1456
  87. package/dist/components/popup.min.css +1 -1
  88. package/dist/components/popup.min.js +1 -1
  89. package/dist/components/progress.css +1 -1
  90. package/dist/components/progress.js +971 -997
  91. package/dist/components/progress.min.css +1 -1
  92. package/dist/components/progress.min.js +1 -1
  93. package/dist/components/rail.css +1 -1
  94. package/dist/components/rail.min.css +1 -1
  95. package/dist/components/rating.css +1 -1
  96. package/dist/components/rating.js +508 -524
  97. package/dist/components/rating.min.css +1 -1
  98. package/dist/components/rating.min.js +1 -1
  99. package/dist/components/reset.css +1 -1
  100. package/dist/components/reset.min.css +1 -1
  101. package/dist/components/reveal.css +1 -1
  102. package/dist/components/reveal.min.css +1 -1
  103. package/dist/components/search.css +3 -1
  104. package/dist/components/search.js +1500 -1534
  105. package/dist/components/search.min.css +2 -2
  106. package/dist/components/search.min.js +1 -1
  107. package/dist/components/segment.css +3 -1
  108. package/dist/components/segment.min.css +2 -2
  109. package/dist/components/shape.css +1 -1
  110. package/dist/components/shape.js +794 -809
  111. package/dist/components/shape.min.css +1 -1
  112. package/dist/components/shape.min.js +1 -1
  113. package/dist/components/sidebar.css +3 -1
  114. package/dist/components/sidebar.js +1079 -1104
  115. package/dist/components/sidebar.min.css +2 -2
  116. package/dist/components/sidebar.min.js +1 -1
  117. package/dist/components/site.css +1 -1
  118. package/dist/components/site.js +457 -472
  119. package/dist/components/site.min.css +1 -1
  120. package/dist/components/site.min.js +1 -1
  121. package/dist/components/slider.js +1289 -1311
  122. package/dist/components/slider.min.js +1 -1
  123. package/dist/components/state.js +641 -657
  124. package/dist/components/state.min.js +1 -1
  125. package/dist/components/statistic.css +1 -1
  126. package/dist/components/statistic.min.css +1 -1
  127. package/dist/components/step.css +1 -1
  128. package/dist/components/step.min.css +1 -1
  129. package/dist/components/sticky.css +1 -1
  130. package/dist/components/sticky.js +859 -903
  131. package/dist/components/sticky.min.css +1 -1
  132. package/dist/components/sticky.min.js +1 -1
  133. package/dist/components/tab.css +1 -1
  134. package/dist/components/tab.js +923 -963
  135. package/dist/components/tab.min.css +1 -1
  136. package/dist/components/tab.min.js +1 -1
  137. package/dist/components/table.css +5 -1
  138. package/dist/components/table.min.css +2 -2
  139. package/dist/components/text.css +1 -1
  140. package/dist/components/text.min.css +1 -1
  141. package/dist/components/toast.css +1 -1
  142. package/dist/components/toast.js +889 -891
  143. package/dist/components/toast.min.css +1 -1
  144. package/dist/components/toast.min.js +1 -1
  145. package/dist/components/transition.css +1 -1
  146. package/dist/components/transition.js +1043 -1077
  147. package/dist/components/transition.min.css +1 -1
  148. package/dist/components/transition.min.js +1 -1
  149. package/dist/components/visibility.js +1222 -1244
  150. package/dist/components/visibility.min.js +1 -1
  151. package/dist/semantic.css +84 -60
  152. package/dist/semantic.js +29033 -29479
  153. package/dist/semantic.min.css +2 -2
  154. package/dist/semantic.min.js +1 -1
  155. package/examples/assets/show-examples.js +13 -13
  156. package/gulpfile.js +9 -10
  157. package/package.json +5 -2
  158. package/scripts/nightly-version.js +81 -75
  159. package/src/definitions/behaviors/api.js +1163 -1185
  160. package/src/definitions/behaviors/form.js +1980 -2003
  161. package/src/definitions/behaviors/state.js +647 -663
  162. package/src/definitions/behaviors/visibility.js +1221 -1243
  163. package/src/definitions/collections/table.less +2 -0
  164. package/src/definitions/elements/container.less +1 -0
  165. package/src/definitions/elements/segment.less +1 -0
  166. package/src/definitions/globals/site.js +456 -471
  167. package/src/definitions/modules/accordion.js +570 -597
  168. package/src/definitions/modules/calendar.js +1896 -1817
  169. package/src/definitions/modules/checkbox.js +849 -846
  170. package/src/definitions/modules/dimmer.js +709 -736
  171. package/src/definitions/modules/dropdown.js +4162 -4237
  172. package/src/definitions/modules/dropdown.less +5 -8
  173. package/src/definitions/modules/embed.js +652 -674
  174. package/src/definitions/modules/flyout.js +1465 -1466
  175. package/src/definitions/modules/flyout.less +15 -12
  176. package/src/definitions/modules/modal.js +1492 -1486
  177. package/src/definitions/modules/modal.less +3 -0
  178. package/src/definitions/modules/nag.js +519 -528
  179. package/src/definitions/modules/popup.js +1438 -1455
  180. package/src/definitions/modules/progress.js +970 -996
  181. package/src/definitions/modules/rating.js +507 -523
  182. package/src/definitions/modules/search.js +1499 -1533
  183. package/src/definitions/modules/search.less +1 -0
  184. package/src/definitions/modules/shape.js +801 -816
  185. package/src/definitions/modules/sidebar.js +1078 -1103
  186. package/src/definitions/modules/sidebar.less +1 -0
  187. package/src/definitions/modules/slider.js +1288 -1310
  188. package/src/definitions/modules/sticky.js +875 -919
  189. package/src/definitions/modules/tab.js +922 -962
  190. package/src/definitions/modules/toast.js +888 -890
  191. package/src/definitions/modules/transition.js +1048 -1082
  192. package/src/themes/default/elements/container.variables +0 -7
  193. package/src/themes/default/elements/segment.variables +0 -7
  194. package/src/themes/default/globals/site.variables +7 -0
  195. package/src/themes/default/globals/variation.variables +1 -0
  196. package/tasks/admin/components/create.js +274 -276
  197. package/tasks/admin/components/init.js +123 -130
  198. package/tasks/admin/components/update.js +149 -157
  199. package/tasks/admin/distributions/create.js +184 -187
  200. package/tasks/admin/distributions/init.js +123 -130
  201. package/tasks/admin/distributions/update.js +145 -152
  202. package/tasks/admin/publish.js +5 -7
  203. package/tasks/admin/register.js +36 -38
  204. package/tasks/admin/release.js +8 -10
  205. package/tasks/build/assets.js +42 -39
  206. package/tasks/build/css.js +225 -216
  207. package/tasks/build/javascript.js +118 -113
  208. package/tasks/build.js +10 -10
  209. package/tasks/check-install.js +14 -16
  210. package/tasks/clean.js +5 -5
  211. package/tasks/collections/admin.js +34 -36
  212. package/tasks/collections/build.js +18 -20
  213. package/tasks/collections/docs.js +9 -11
  214. package/tasks/collections/install.js +9 -11
  215. package/tasks/collections/rtl.js +9 -11
  216. package/tasks/collections/various.js +8 -10
  217. package/tasks/config/admin/github.js +17 -17
  218. package/tasks/config/admin/oauth.example.js +4 -4
  219. package/tasks/config/admin/release.js +98 -98
  220. package/tasks/config/admin/templates/component-package.js +9 -10
  221. package/tasks/config/admin/templates/css-package.js +18 -20
  222. package/tasks/config/admin/templates/less-package.js +11 -13
  223. package/tasks/config/defaults.js +116 -116
  224. package/tasks/config/docs.js +23 -23
  225. package/tasks/config/npm/gulpfile.js +8 -9
  226. package/tasks/config/project/config.js +127 -134
  227. package/tasks/config/project/install.js +715 -713
  228. package/tasks/config/project/release.js +32 -38
  229. package/tasks/config/tasks.js +163 -164
  230. package/tasks/config/user.js +23 -29
  231. package/tasks/docs/build.js +97 -95
  232. package/tasks/docs/metadata.js +90 -96
  233. package/tasks/docs/serve.js +80 -81
  234. package/tasks/install.js +370 -378
  235. package/tasks/rtl/build.js +2 -2
  236. package/tasks/rtl/watch.js +2 -2
  237. package/tasks/version.js +4 -4
  238. package/tasks/watch.js +28 -30
  239. package/test/meteor/assets.js +10 -13
  240. package/test/meteor/fonts.js +12 -13
  241. package/test/modules/accordion.spec.js +6 -8
  242. package/test/modules/checkbox.spec.js +5 -7
  243. package/test/modules/dropdown.spec.js +5 -7
  244. package/test/modules/modal.spec.js +6 -8
  245. package/test/modules/module.spec.js +158 -178
  246. package/test/modules/popup.spec.js +5 -7
  247. package/test/modules/search.spec.js +5 -7
  248. package/test/modules/shape.spec.js +5 -7
  249. package/test/modules/sidebar.spec.js +5 -7
  250. package/test/modules/tab.spec.js +6 -8
  251. package/test/modules/transition.spec.js +5 -7
  252. package/test/modules/video.spec.js +5 -7
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.17+3767ba8 - Embed
2
+ * # Fomantic-UI 2.9.1-beta.18+935e235 - Embed
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -8,706 +8,684 @@
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
11
+ (function ($, window, document, undefined) {
12
+ 'use strict';
12
13
 
13
- "use strict";
14
-
15
- function isFunction(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 = (typeof window != 'undefined' && window.Math == Math)
19
+ ? window
20
+ : (typeof self != 'undefined' && self.Math == Math)
21
+ ? self
22
+ : Function('return this')();
181
23
 
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
- },
24
+ $.fn.embed = function (parameters) {
25
+ var
26
+ $allModules = $(this),
191
27
 
192
- // shows current embed
193
- show: function() {
194
- module.debug('Showing embed');
195
- module.set.active();
196
- settings.onDisplay.call(element);
197
- },
28
+ moduleSelector = $allModules.selector || '',
198
29
 
199
- hide: function() {
200
- module.debug('Hiding embed');
201
- module.showPlaceholder();
202
- },
30
+ time = new Date().getTime(),
31
+ performance = [],
203
32
 
204
- showPlaceholder: function() {
205
- module.debug('Showing placeholder image');
206
- module.remove.active();
207
- settings.onPlaceholderDisplay.call(element);
208
- },
33
+ query = arguments[0],
34
+ methodInvoked = (typeof query == 'string'),
35
+ queryArguments = [].slice.call(arguments, 1),
209
36
 
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
- },
37
+ returnedValue
38
+ ;
249
39
 
250
- determine: {
251
- autoplay: function() {
252
- if(module.should.autoplay()) {
253
- settings.autoplay = true;
254
- }
255
- },
256
- source: function(url) {
40
+ $allModules.each(function () {
257
41
  var
258
- matchedSource = false
42
+ settings = ($.isPlainObject(parameters))
43
+ ? $.extend(true, {}, $.fn.embed.settings, parameters)
44
+ : $.extend({}, $.fn.embed.settings),
45
+
46
+ selector = settings.selector,
47
+ className = settings.className,
48
+ sources = settings.sources,
49
+ error = settings.error,
50
+ metadata = settings.metadata,
51
+ namespace = settings.namespace,
52
+ templates = settings.templates,
53
+
54
+ eventNamespace = '.' + namespace,
55
+ moduleNamespace = 'module-' + namespace,
56
+
57
+ $module = $(this),
58
+ $placeholder = $module.find(selector.placeholder),
59
+ $icon = $module.find(selector.icon),
60
+ $embed = $module.find(selector.embed),
61
+
62
+ element = this,
63
+ instance = $module.data(moduleNamespace),
64
+ module
259
65
  ;
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;
66
+
67
+ module = {
68
+
69
+ initialize: function () {
70
+ module.debug('Initializing embed');
71
+ module.determine.autoplay();
72
+ module.create();
73
+ module.bind.events();
74
+ module.instantiate();
75
+ },
76
+
77
+ instantiate: function () {
78
+ module.verbose('Storing instance of module', module);
79
+ instance = module;
80
+ $module
81
+ .data(moduleNamespace, module)
82
+ ;
83
+ },
84
+
85
+ destroy: function () {
86
+ module.verbose('Destroying previous instance of embed');
87
+ module.reset();
88
+ $module
89
+ .removeData(moduleNamespace)
90
+ .off(eventNamespace)
91
+ ;
92
+ },
93
+
94
+ refresh: function () {
95
+ module.verbose('Refreshing selector cache');
96
+ $placeholder = $module.find(selector.placeholder);
97
+ $icon = $module.find(selector.icon);
98
+ $embed = $module.find(selector.embed);
99
+ },
100
+
101
+ bind: {
102
+ events: function () {
103
+ if (module.has.placeholder()) {
104
+ module.debug('Adding placeholder events');
105
+ $module
106
+ .on('click' + eventNamespace, selector.placeholder, module.createAndShow)
107
+ .on('click' + eventNamespace, selector.icon, module.createAndShow)
108
+ ;
109
+ }
110
+ },
111
+ },
112
+
113
+ create: function () {
114
+ var
115
+ placeholder = module.get.placeholder()
116
+ ;
117
+ if (placeholder) {
118
+ module.createPlaceholder();
119
+ } else {
120
+ module.createAndShow();
121
+ }
122
+ },
123
+
124
+ createPlaceholder: function (placeholder) {
125
+ var
126
+ icon = module.get.icon()
127
+ ;
128
+ placeholder = placeholder || module.get.placeholder();
129
+ $module.html(templates.placeholder(placeholder, icon));
130
+ module.debug('Creating placeholder for embed', placeholder, icon);
131
+ },
132
+
133
+ createEmbed: function (url) {
134
+ module.refresh();
135
+ url = url || module.get.url();
136
+ $embed = $('<div/>')
137
+ .addClass(className.embed)
138
+ .html(module.generate.embed(url))
139
+ .appendTo($module)
140
+ ;
141
+ settings.onCreate.call(element, url);
142
+ module.debug('Creating embed object', $embed);
143
+ },
144
+
145
+ changeEmbed: function (url) {
146
+ $embed
147
+ .html(module.generate.embed(url))
148
+ ;
149
+ },
150
+
151
+ createAndShow: function () {
152
+ module.createEmbed();
153
+ module.show();
154
+ },
155
+
156
+ // sets new embed
157
+ change: function (source, id, url) {
158
+ module.debug('Changing video to ', source, id, url);
159
+ $module
160
+ .data(metadata.source, source)
161
+ .data(metadata.id, id)
162
+ ;
163
+ if (url) {
164
+ $module.data(metadata.url, url);
165
+ } else {
166
+ $module.removeData(metadata.url);
167
+ }
168
+ if (module.has.embed()) {
169
+ module.changeEmbed();
170
+ } else {
171
+ module.create();
172
+ }
173
+ },
174
+
175
+ // clears embed
176
+ reset: function () {
177
+ module.debug('Clearing embed and showing placeholder');
178
+ module.remove.data();
179
+ module.remove.active();
180
+ module.remove.embed();
181
+ module.showPlaceholder();
182
+ settings.onReset.call(element);
183
+ },
184
+
185
+ // shows current embed
186
+ show: function () {
187
+ module.debug('Showing embed');
188
+ module.set.active();
189
+ settings.onDisplay.call(element);
190
+ },
191
+
192
+ hide: function () {
193
+ module.debug('Hiding embed');
194
+ module.showPlaceholder();
195
+ },
196
+
197
+ showPlaceholder: function () {
198
+ module.debug('Showing placeholder image');
199
+ module.remove.active();
200
+ settings.onPlaceholderDisplay.call(element);
201
+ },
202
+
203
+ get: {
204
+ id: function () {
205
+ return settings.id || $module.data(metadata.id);
206
+ },
207
+ placeholder: function () {
208
+ return settings.placeholder || $module.data(metadata.placeholder);
209
+ },
210
+ icon: function () {
211
+ return (settings.icon)
212
+ ? settings.icon
213
+ : ($module.data(metadata.icon) !== undefined)
214
+ ? $module.data(metadata.icon)
215
+ : module.determine.icon();
216
+ },
217
+ source: function (url) {
218
+ return (settings.source)
219
+ ? settings.source
220
+ : ($module.data(metadata.source) !== undefined)
221
+ ? $module.data(metadata.source)
222
+ : module.determine.source();
223
+ },
224
+ type: function () {
225
+ var source = module.get.source();
226
+
227
+ return (sources[source] !== undefined)
228
+ ? sources[source].type
229
+ : false;
230
+ },
231
+ url: function () {
232
+ return (settings.url)
233
+ ? settings.url
234
+ : ($module.data(metadata.url) !== undefined)
235
+ ? $module.data(metadata.url)
236
+ : module.determine.url();
237
+ },
238
+ },
239
+
240
+ determine: {
241
+ autoplay: function () {
242
+ if (module.should.autoplay()) {
243
+ settings.autoplay = true;
244
+ }
245
+ },
246
+ source: function (url) {
247
+ var
248
+ matchedSource = false
249
+ ;
250
+ url = url || module.get.url();
251
+ if (url) {
252
+ $.each(sources, function (name, source) {
253
+ if (url.search(source.domain) !== -1) {
254
+ matchedSource = name;
255
+
256
+ return false;
257
+ }
258
+ });
259
+ }
260
+
261
+ return matchedSource;
262
+ },
263
+ icon: function () {
264
+ var
265
+ source = module.get.source()
266
+ ;
267
+
268
+ return (sources[source] !== undefined)
269
+ ? sources[source].icon
270
+ : false;
271
+ },
272
+ url: function () {
273
+ var
274
+ id = settings.id || $module.data(metadata.id),
275
+ source = settings.source || $module.data(metadata.source),
276
+ url
277
+ ;
278
+ url = (sources[source] !== undefined)
279
+ ? sources[source].url.replace('{id}', id)
280
+ : false;
281
+ if (url) {
282
+ $module.data(metadata.url, url);
283
+ }
284
+
285
+ return url;
286
+ },
287
+ },
288
+
289
+ set: {
290
+ active: function () {
291
+ $module.addClass(className.active);
292
+ },
293
+ },
294
+
295
+ remove: {
296
+ data: function () {
297
+ $module
298
+ .removeData(metadata.id)
299
+ .removeData(metadata.icon)
300
+ .removeData(metadata.placeholder)
301
+ .removeData(metadata.source)
302
+ .removeData(metadata.url)
303
+ ;
304
+ },
305
+ active: function () {
306
+ $module.removeClass(className.active);
307
+ },
308
+ embed: function () {
309
+ $embed.empty();
310
+ },
311
+ },
312
+
313
+ encode: {
314
+ parameters: function (parameters) {
315
+ var
316
+ urlString = [],
317
+ index
318
+ ;
319
+ for (index in parameters) {
320
+ urlString.push(encodeURIComponent(index) + '=' + encodeURIComponent(parameters[index]));
321
+ }
322
+
323
+ return urlString.join('&amp;');
324
+ },
325
+ },
326
+
327
+ generate: {
328
+ embed: function (url) {
329
+ module.debug('Generating embed html');
330
+ var
331
+ source = module.get.source(),
332
+ html,
333
+ parameters
334
+ ;
335
+ url = module.get.url(url);
336
+ if (url) {
337
+ parameters = module.generate.parameters(source);
338
+ html = templates.iframe(url, parameters);
339
+ } else {
340
+ module.error(error.noURL, $module);
341
+ }
342
+
343
+ return html;
344
+ },
345
+ parameters: function (source, extraParameters) {
346
+ var
347
+ parameters = (sources[source] && sources[source].parameters !== undefined)
348
+ ? sources[source].parameters(settings)
349
+ : {}
350
+ ;
351
+ extraParameters = extraParameters || settings.parameters;
352
+ if (extraParameters) {
353
+ parameters = $.extend({}, parameters, extraParameters);
354
+ }
355
+ parameters = settings.onEmbed(parameters);
356
+
357
+ return module.encode.parameters(parameters);
358
+ },
359
+ },
360
+
361
+ has: {
362
+ embed: function () {
363
+ return ($embed.length > 0);
364
+ },
365
+ placeholder: function () {
366
+ return settings.placeholder || $module.data(metadata.placeholder);
367
+ },
368
+ },
369
+
370
+ should: {
371
+ autoplay: function () {
372
+ return (settings.autoplay === 'auto')
373
+ ? (settings.placeholder || $module.data(metadata.placeholder) !== undefined)
374
+ : settings.autoplay;
375
+ },
376
+ },
377
+
378
+ is: {
379
+ video: function () {
380
+ return module.get.type() == 'video';
381
+ },
382
+ },
383
+
384
+ setting: function (name, value) {
385
+ module.debug('Changing setting', name, value);
386
+ if ($.isPlainObject(name)) {
387
+ $.extend(true, settings, name);
388
+ } else if (value !== undefined) {
389
+ if ($.isPlainObject(settings[name])) {
390
+ $.extend(true, settings[name], value);
391
+ } else {
392
+ settings[name] = value;
393
+ }
394
+ } else {
395
+ return settings[name];
396
+ }
397
+ },
398
+ internal: function (name, value) {
399
+ if ($.isPlainObject(name)) {
400
+ $.extend(true, module, name);
401
+ } else if (value !== undefined) {
402
+ module[name] = value;
403
+ } else {
404
+ return module[name];
405
+ }
406
+ },
407
+ debug: function () {
408
+ if (!settings.silent && settings.debug) {
409
+ if (settings.performance) {
410
+ module.performance.log(arguments);
411
+ } else {
412
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
413
+ module.debug.apply(console, arguments);
414
+ }
415
+ }
416
+ },
417
+ verbose: function () {
418
+ if (!settings.silent && settings.verbose && settings.debug) {
419
+ if (settings.performance) {
420
+ module.performance.log(arguments);
421
+ } else {
422
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
423
+ module.verbose.apply(console, arguments);
424
+ }
425
+ }
426
+ },
427
+ error: function () {
428
+ if (!settings.silent) {
429
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
430
+ module.error.apply(console, arguments);
431
+ }
432
+ },
433
+ performance: {
434
+ log: function (message) {
435
+ var
436
+ currentTime,
437
+ executionTime,
438
+ previousTime
439
+ ;
440
+ if (settings.performance) {
441
+ currentTime = new Date().getTime();
442
+ previousTime = time || currentTime;
443
+ executionTime = currentTime - previousTime;
444
+ time = currentTime;
445
+ performance.push({
446
+ Name: message[0],
447
+ Arguments: [].slice.call(message, 1) || '',
448
+ Element: element,
449
+ 'Execution Time': executionTime,
450
+ });
451
+ }
452
+ clearTimeout(module.performance.timer);
453
+ module.performance.timer = setTimeout(module.performance.display, 500);
454
+ },
455
+ display: function () {
456
+ var
457
+ title = settings.name + ':',
458
+ totalTime = 0
459
+ ;
460
+ time = false;
461
+ clearTimeout(module.performance.timer);
462
+ $.each(performance, function (index, data) {
463
+ totalTime += data['Execution Time'];
464
+ });
465
+ title += ' ' + totalTime + 'ms';
466
+ if (moduleSelector) {
467
+ title += ' \'' + moduleSelector + '\'';
468
+ }
469
+ if ($allModules.length > 1) {
470
+ title += ' ' + '(' + $allModules.length + ')';
471
+ }
472
+ if ((console.group !== undefined || console.table !== undefined) && performance.length > 0) {
473
+ console.groupCollapsed(title);
474
+ if (console.table) {
475
+ console.table(performance);
476
+ } else {
477
+ $.each(performance, function (index, data) {
478
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
479
+ });
480
+ }
481
+ console.groupEnd();
482
+ }
483
+ performance = [];
484
+ },
485
+ },
486
+ invoke: function (query, passedArguments, context) {
487
+ var
488
+ object = instance,
489
+ maxDepth,
490
+ found,
491
+ response
492
+ ;
493
+ passedArguments = passedArguments || queryArguments;
494
+ context = context || element;
495
+ if (typeof query == 'string' && object !== undefined) {
496
+ query = query.split(/[\. ]/);
497
+ maxDepth = query.length - 1;
498
+ $.each(query, function (depth, value) {
499
+ var camelCaseValue = (depth != maxDepth)
500
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
501
+ : query
502
+ ;
503
+ if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
504
+ object = object[camelCaseValue];
505
+ } else if (object[camelCaseValue] !== undefined) {
506
+ found = object[camelCaseValue];
507
+
508
+ return false;
509
+ } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
510
+ object = object[value];
511
+ } else if (object[value] !== undefined) {
512
+ found = object[value];
513
+
514
+ return false;
515
+ } else {
516
+ module.error(error.method, query);
517
+
518
+ return false;
519
+ }
520
+ });
521
+ }
522
+ if (isFunction(found)) {
523
+ response = found.apply(context, passedArguments);
524
+ } else if (found !== undefined) {
525
+ response = found;
526
+ }
527
+ if (Array.isArray(returnedValue)) {
528
+ returnedValue.push(response);
529
+ } else if (returnedValue !== undefined) {
530
+ returnedValue = [returnedValue, response];
531
+ } else if (response !== undefined) {
532
+ returnedValue = response;
533
+ }
534
+
535
+ return found;
536
+ },
537
+ };
538
+
539
+ if (methodInvoked) {
540
+ if (instance === undefined) {
541
+ module.initialize();
266
542
  }
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);
543
+ module.invoke(query);
544
+ } else {
545
+ if (instance !== undefined) {
546
+ instance.invoke('destroy');
547
+ }
548
+ module.initialize();
292
549
  }
293
- return url;
294
- }
550
+ });
551
+
552
+ return (returnedValue !== undefined)
553
+ ? returnedValue
554
+ : this;
555
+ };
556
+
557
+ $.fn.embed.settings = {
558
+
559
+ name: 'Embed',
560
+ namespace: 'embed',
561
+
562
+ silent: false,
563
+ debug: false,
564
+ verbose: false,
565
+ performance: true,
566
+
567
+ icon: false,
568
+ source: false,
569
+ url: false,
570
+ id: false,
571
+
572
+ // standard video settings
573
+ autoplay: 'auto',
574
+ color: '#444444',
575
+ hd: true,
576
+ brandedUI: false,
577
+
578
+ // additional parameters to include with the embed
579
+ parameters: false,
580
+
581
+ onDisplay: function () {},
582
+ onPlaceholderDisplay: function () {},
583
+ onReset: function () {},
584
+ onCreate: function (url) {},
585
+ onEmbed: function (parameters) {
586
+ return parameters;
295
587
  },
296
588
 
297
-
298
- set: {
299
- active: function() {
300
- $module.addClass(className.active);
301
- }
589
+ metadata: {
590
+ id: 'id',
591
+ icon: 'icon',
592
+ placeholder: 'placeholder',
593
+ source: 'source',
594
+ url: 'url',
302
595
  },
303
596
 
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
- }
597
+ error: {
598
+ noURL: 'No URL specified',
599
+ method: 'The method you called is not defined',
320
600
  },
321
601
 
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
- }
602
+ className: {
603
+ active: 'active',
604
+ embed: 'embed',
333
605
  },
334
606
 
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
- }
607
+ selector: {
608
+ embed: '.embed',
609
+ placeholder: '.placeholder',
610
+ icon: '.icon',
366
611
  },
367
612
 
368
- has: {
369
- embed: function() {
370
- return ($embed.length > 0);
371
- },
372
- placeholder: function() {
373
- return settings.placeholder || $module.data(metadata.placeholder);
374
- }
613
+ sources: {
614
+ youtube: {
615
+ name: 'youtube',
616
+ type: 'video',
617
+ icon: 'video play',
618
+ domain: 'youtube.com',
619
+ url: '//www.youtube.com/embed/{id}',
620
+ parameters: function (settings) {
621
+ return {
622
+ autohide: !settings.brandedUI,
623
+ autoplay: settings.autoplay,
624
+ color: settings.color || undefined,
625
+ hq: settings.hd,
626
+ jsapi: settings.api,
627
+ modestbranding: !settings.brandedUI,
628
+ };
629
+ },
630
+ },
631
+ vimeo: {
632
+ name: 'vimeo',
633
+ type: 'video',
634
+ icon: 'video play',
635
+ domain: 'vimeo.com',
636
+ url: '//player.vimeo.com/video/{id}',
637
+ parameters: function (settings) {
638
+ return {
639
+ api: settings.api,
640
+ autoplay: settings.autoplay,
641
+ byline: settings.brandedUI,
642
+ color: settings.color || undefined,
643
+ portrait: settings.brandedUI,
644
+ title: settings.brandedUI,
645
+ };
646
+ },
647
+ },
375
648
  },
376
649
 
377
- should: {
378
- autoplay: function() {
379
- return (settings.autoplay === 'auto')
380
- ? (settings.placeholder || $module.data(metadata.placeholder) !== undefined)
381
- : settings.autoplay
382
- ;
383
- }
384
- },
650
+ templates: {
651
+ deQuote: function (string, encode) {
652
+ return String(string).replace(/"/g, encode ? '&quot;' : '');
653
+ },
654
+ iframe: function (url, parameters) {
655
+ var
656
+ src = url,
657
+ deQuote = $.fn.embed.settings.templates.deQuote
658
+ ;
659
+ if (parameters) {
660
+ src += '?' + parameters;
661
+ }
385
662
 
386
- is: {
387
- video: function() {
388
- return module.get.type() == 'video';
389
- }
390
- },
663
+ return ''
664
+ + '<iframe src="' + deQuote(src) + '"'
665
+ + ' width="100%" height="100%"'
666
+ + ' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
667
+ },
668
+ placeholder: function (image, icon) {
669
+ var
670
+ html = '',
671
+ deQuote = $.fn.embed.settings.templates.deQuote
672
+ ;
673
+ if (icon) {
674
+ html += '<i class="' + deQuote(icon) + ' icon"></i>';
675
+ }
676
+ if (image) {
677
+ html += '<img class="placeholder" src="' + deQuote(image) + '">';
678
+ }
391
679
 
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
- }
680
+ return html;
681
+ },
501
682
  },
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
683
 
684
+ // NOT YET IMPLEMENTED
685
+ api: false,
686
+ onPause: function () {},
687
+ onPlay: function () {},
688
+ onStop: function () {},
712
689
 
713
- })( jQuery, window, document );
690
+ };
691
+ })(jQuery, window, document);