fomantic-ui 2.9.1-beta.16 → 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 -4234
  37. package/dist/components/dropdown.min.css +2 -2
  38. package/dist/components/dropdown.min.js +2 -2
  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 -29475
  153. package/dist/semantic.min.css +2 -2
  154. package/dist/semantic.min.js +2 -2
  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 -4233
  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.16+7071e59 - Dimmer
2
+ * # Fomantic-UI 2.9.1-beta.18+935e235 - Dimmer
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -8,758 +8,731 @@
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
12
-
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.dimmer = function(parameters) {
27
- var
28
- $allModules = $(this),
29
-
30
- time = new Date().getTime(),
31
- performance = [],
32
-
33
- query = arguments[0],
34
- methodInvoked = (typeof query == 'string'),
35
- queryArguments = [].slice.call(arguments, 1),
36
-
37
- returnedValue
38
- ;
39
-
40
- $allModules
41
- .each(function() {
42
- var
43
- settings = ( $.isPlainObject(parameters) )
44
- ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
45
- : $.extend({}, $.fn.dimmer.settings),
46
-
47
- selector = settings.selector,
48
- namespace = settings.namespace,
49
- className = settings.className,
50
- error = settings.error,
51
-
52
- eventNamespace = '.' + namespace,
53
- moduleNamespace = 'module-' + namespace,
54
- moduleSelector = $allModules.selector || '',
55
-
56
- clickEvent = ('ontouchstart' in document.documentElement)
57
- ? 'touchstart'
58
- : 'click',
59
-
60
- $module = $(this),
61
- $dimmer,
62
- $dimmable,
63
-
64
- element = this,
65
- instance = $module.data(moduleNamespace),
66
- module
67
- ;
68
-
69
- module = {
70
-
71
- preinitialize: function() {
72
- if( module.is.dimmer() ) {
73
-
74
- $dimmable = $module.parent();
75
- $dimmer = $module;
76
- }
77
- else {
78
- $dimmable = $module;
79
- if( module.has.dimmer() ) {
80
- if(settings.dimmerName) {
81
- $dimmer = $dimmable.find(selector.dimmer).filter('.' + settings.dimmerName);
82
- }
83
- else {
84
- $dimmer = $dimmable.find(selector.dimmer);
85
- }
86
- }
87
- else {
88
- $dimmer = module.create();
89
- }
90
- }
91
- },
11
+ (function ($, window, document, undefined) {
12
+ 'use strict';
92
13
 
93
- initialize: function() {
94
- module.debug('Initializing dimmer', settings);
14
+ function isFunction(obj) {
15
+ return typeof obj === 'function' && typeof obj.nodeType !== 'number';
16
+ }
95
17
 
96
- module.bind.events();
97
- module.set.dimmable();
98
- module.instantiate();
99
- },
18
+ window = (typeof window != 'undefined' && window.Math == Math)
19
+ ? window
20
+ : (typeof self != 'undefined' && self.Math == Math)
21
+ ? self
22
+ : Function('return this')();
100
23
 
101
- instantiate: function() {
102
- module.verbose('Storing instance of module', module);
103
- instance = module;
104
- $module
105
- .data(moduleNamespace, instance)
106
- ;
107
- },
24
+ $.fn.dimmer = function (parameters) {
25
+ var
26
+ $allModules = $(this),
108
27
 
109
- destroy: function() {
110
- module.verbose('Destroying previous module', $dimmer);
111
- module.unbind.events();
112
- module.remove.variation();
113
- $dimmable
114
- .off(eventNamespace)
115
- ;
116
- },
28
+ time = new Date().getTime(),
29
+ performance = [],
117
30
 
118
- bind: {
119
- events: function() {
120
- if(settings.on == 'hover') {
121
- $dimmable
122
- .on('mouseenter' + eventNamespace, module.show)
123
- .on('mouseleave' + eventNamespace, module.hide)
124
- ;
125
- }
126
- else if(settings.on == 'click') {
127
- $dimmable
128
- .on(clickEvent + eventNamespace, module.toggle)
129
- ;
130
- }
131
- if( module.is.page() ) {
132
- module.debug('Setting as a page dimmer', $dimmable);
133
- module.set.pageDimmer();
134
- }
31
+ query = arguments[0],
32
+ methodInvoked = (typeof query == 'string'),
33
+ queryArguments = [].slice.call(arguments, 1),
135
34
 
136
- if( module.is.closable() ) {
137
- module.verbose('Adding dimmer close event', $dimmer);
138
- $dimmable
139
- .on(clickEvent + eventNamespace, selector.dimmer, module.event.click)
140
- ;
141
- }
142
- }
143
- },
35
+ returnedValue
36
+ ;
144
37
 
145
- unbind: {
146
- events: function() {
147
- $module
148
- .removeData(moduleNamespace)
149
- ;
150
- $dimmable
151
- .off(eventNamespace)
38
+ $allModules.each(function () {
39
+ var
40
+ settings = ($.isPlainObject(parameters))
41
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
42
+ : $.extend({}, $.fn.dimmer.settings),
43
+
44
+ selector = settings.selector,
45
+ namespace = settings.namespace,
46
+ className = settings.className,
47
+ error = settings.error,
48
+
49
+ eventNamespace = '.' + namespace,
50
+ moduleNamespace = 'module-' + namespace,
51
+ moduleSelector = $allModules.selector || '',
52
+
53
+ clickEvent = ('ontouchstart' in document.documentElement)
54
+ ? 'touchstart'
55
+ : 'click',
56
+
57
+ $module = $(this),
58
+ $dimmer,
59
+ $dimmable,
60
+
61
+ element = this,
62
+ instance = $module.data(moduleNamespace),
63
+ module
152
64
  ;
153
- }
154
- },
155
-
156
- event: {
157
- click: function(event) {
158
- module.verbose('Determining if event occurred on dimmer', event);
159
- if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
160
- module.hide();
161
- event.stopImmediatePropagation();
162
- }
163
- }
164
- },
165
-
166
- addContent: function(element) {
167
- var
168
- $content = $(element)
169
- ;
170
- module.debug('Add content to dimmer', $content);
171
- if($content.parent()[0] !== $dimmer[0]) {
172
- $content.detach().appendTo($dimmer);
173
- }
174
- },
175
65
 
176
- create: function() {
177
- var
178
- $element = $( settings.template.dimmer(settings) )
179
- ;
180
- if(settings.dimmerName) {
181
- module.debug('Creating named dimmer', settings.dimmerName);
182
- $element.addClass(settings.dimmerName);
183
- }
184
- $element
185
- .appendTo($dimmable)
186
- ;
187
- return $element;
188
- },
189
-
190
- show: function(callback) {
191
- callback = isFunction(callback)
192
- ? callback
193
- : function(){}
194
- ;
195
- if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
196
- if(settings.onShow.call(element) === false) {
197
- module.verbose('Show callback returned false cancelling dimmer show');
198
- return;
199
- }
200
- module.debug('Showing dimmer', $dimmer, settings);
201
- module.set.variation();
202
- module.animate.show(callback);
203
- settings.onChange.call(element);
204
- }
205
- else {
206
- module.debug('Dimmer is already shown or disabled');
207
- }
208
- },
209
-
210
- hide: function(callback) {
211
- callback = isFunction(callback)
212
- ? callback
213
- : function(){}
214
- ;
215
- if( module.is.dimmed() || module.is.animating() ) {
216
- if(settings.onHide.call(element) === false) {
217
- module.verbose('Hide callback returned false cancelling dimmer hide');
218
- return;
219
- }
220
- module.debug('Hiding dimmer', $dimmer);
221
- module.animate.hide(callback);
222
- settings.onChange.call(element);
223
- }
224
- else {
225
- module.debug('Dimmer is not visible');
226
- }
227
- },
228
-
229
- toggle: function() {
230
- module.verbose('Toggling dimmer visibility', $dimmer);
231
- if( !module.is.dimmed() ) {
232
- module.show();
233
- }
234
- else {
235
- if ( module.is.closable() ) {
236
- module.hide();
237
- }
238
- }
239
- },
240
-
241
- animate: {
242
- show: function(callback) {
243
- callback = isFunction(callback)
244
- ? callback
245
- : function(){}
246
- ;
247
- if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
248
- if(settings.useFlex) {
249
- module.debug('Using flex dimmer');
250
- module.remove.legacy();
251
- }
252
- else {
253
- module.debug('Using legacy non-flex dimmer');
254
- module.set.legacy();
255
- }
256
- if(settings.opacity !== 'auto') {
257
- module.set.opacity();
258
- }
259
- $dimmer
260
- .transition({
261
- debug : settings.debug,
262
- verbose : settings.verbose,
263
- silent : settings.silent,
264
- displayType : settings.useFlex
265
- ? 'flex'
266
- : 'block',
267
- animation : (settings.transition.showMethod || settings.transition) + ' in',
268
- queue : false,
269
- duration : module.get.duration(),
270
- useFailSafe : true,
271
- onStart : function() {
272
- module.set.dimmed();
273
- },
274
- onComplete : function() {
275
- module.set.active();
276
- settings.onVisible.call($dimmer);
277
- callback();
278
- }
279
- })
280
- ;
281
- }
282
- else {
283
- module.verbose('Showing dimmer animation with javascript');
284
- module.set.dimmed();
285
- if(settings.opacity == 'auto') {
286
- settings.opacity = 0.8;
287
- }
288
- $dimmer
289
- .stop()
290
- .css({
291
- opacity : 0,
292
- width : '100%',
293
- height : '100%'
294
- })
295
- .fadeTo(module.get.duration(), settings.opacity, function() {
296
- $dimmer.removeAttr('style');
297
- module.set.active();
298
- settings.onVisible.call($dimmer);
299
- callback();
300
- })
301
- ;
302
- }
303
- },
304
- hide: function(callback) {
305
- callback = isFunction(callback)
306
- ? callback
307
- : function(){}
308
- ;
309
- if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
310
- module.verbose('Hiding dimmer with css');
311
- $dimmer
312
- .transition({
313
- debug : settings.debug,
314
- verbose : settings.verbose,
315
- silent : settings.silent,
316
- displayType : settings.useFlex
317
- ? 'flex'
318
- : 'block',
319
- animation : (settings.transition.hideMethod || settings.transition) + ' out',
320
- queue : false,
321
- duration : module.get.duration(),
322
- useFailSafe : true,
323
- onComplete : function() {
324
- module.remove.dimmed();
66
+ module = {
67
+
68
+ preinitialize: function () {
69
+ if (module.is.dimmer()) {
70
+ $dimmable = $module.parent();
71
+ $dimmer = $module;
72
+ } else {
73
+ $dimmable = $module;
74
+ if (module.has.dimmer()) {
75
+ if (settings.dimmerName) {
76
+ $dimmer = $dimmable.find(selector.dimmer).filter('.' + settings.dimmerName);
77
+ } else {
78
+ $dimmer = $dimmable.find(selector.dimmer);
79
+ }
80
+ } else {
81
+ $dimmer = module.create();
82
+ }
83
+ }
84
+ },
85
+
86
+ initialize: function () {
87
+ module.debug('Initializing dimmer', settings);
88
+
89
+ module.bind.events();
90
+ module.set.dimmable();
91
+ module.instantiate();
92
+ },
93
+
94
+ instantiate: function () {
95
+ module.verbose('Storing instance of module', module);
96
+ instance = module;
97
+ $module
98
+ .data(moduleNamespace, instance)
99
+ ;
100
+ },
101
+
102
+ destroy: function () {
103
+ module.verbose('Destroying previous module', $dimmer);
104
+ module.unbind.events();
325
105
  module.remove.variation();
326
- module.remove.active();
327
- settings.onHidden.call($dimmer);
328
- callback();
329
- }
330
- })
331
- ;
332
- }
333
- else {
334
- module.verbose('Hiding dimmer with javascript');
335
- $dimmer
336
- .stop()
337
- .fadeOut(module.get.duration(), function() {
338
- module.remove.dimmed();
339
- module.remove.active();
340
- $dimmer.removeAttr('style');
341
- settings.onHidden.call($dimmer);
342
- callback();
343
- })
344
- ;
345
- }
346
- }
106
+ $dimmable
107
+ .off(eventNamespace)
108
+ ;
109
+ },
110
+
111
+ bind: {
112
+ events: function () {
113
+ if (settings.on == 'hover') {
114
+ $dimmable
115
+ .on('mouseenter' + eventNamespace, module.show)
116
+ .on('mouseleave' + eventNamespace, module.hide)
117
+ ;
118
+ } else if (settings.on == 'click') {
119
+ $dimmable
120
+ .on(clickEvent + eventNamespace, module.toggle)
121
+ ;
122
+ }
123
+ if (module.is.page()) {
124
+ module.debug('Setting as a page dimmer', $dimmable);
125
+ module.set.pageDimmer();
126
+ }
127
+
128
+ if (module.is.closable()) {
129
+ module.verbose('Adding dimmer close event', $dimmer);
130
+ $dimmable
131
+ .on(clickEvent + eventNamespace, selector.dimmer, module.event.click)
132
+ ;
133
+ }
134
+ },
135
+ },
136
+
137
+ unbind: {
138
+ events: function () {
139
+ $module
140
+ .removeData(moduleNamespace)
141
+ ;
142
+ $dimmable
143
+ .off(eventNamespace)
144
+ ;
145
+ },
146
+ },
147
+
148
+ event: {
149
+ click: function (event) {
150
+ module.verbose('Determining if event occurred on dimmer', event);
151
+ if ($dimmer.find(event.target).length === 0 || $(event.target).is(selector.content)) {
152
+ module.hide();
153
+ event.stopImmediatePropagation();
154
+ }
155
+ },
156
+ },
157
+
158
+ addContent: function (element) {
159
+ var
160
+ $content = $(element)
161
+ ;
162
+ module.debug('Add content to dimmer', $content);
163
+ if ($content.parent()[0] !== $dimmer[0]) {
164
+ $content.detach().appendTo($dimmer);
165
+ }
166
+ },
167
+
168
+ create: function () {
169
+ var
170
+ $element = $(settings.template.dimmer(settings))
171
+ ;
172
+ if (settings.dimmerName) {
173
+ module.debug('Creating named dimmer', settings.dimmerName);
174
+ $element.addClass(settings.dimmerName);
175
+ }
176
+ $element
177
+ .appendTo($dimmable)
178
+ ;
179
+
180
+ return $element;
181
+ },
182
+
183
+ show: function (callback) {
184
+ callback = isFunction(callback)
185
+ ? callback
186
+ : function () {};
187
+ if ((!module.is.dimmed() || module.is.animating()) && module.is.enabled()) {
188
+ if (settings.onShow.call(element) === false) {
189
+ module.verbose('Show callback returned false cancelling dimmer show');
190
+
191
+ return;
192
+ }
193
+ module.debug('Showing dimmer', $dimmer, settings);
194
+ module.set.variation();
195
+ module.animate.show(callback);
196
+ settings.onChange.call(element);
197
+ } else {
198
+ module.debug('Dimmer is already shown or disabled');
199
+ }
200
+ },
201
+
202
+ hide: function (callback) {
203
+ callback = isFunction(callback)
204
+ ? callback
205
+ : function () {};
206
+ if (module.is.dimmed() || module.is.animating()) {
207
+ if (settings.onHide.call(element) === false) {
208
+ module.verbose('Hide callback returned false cancelling dimmer hide');
209
+
210
+ return;
211
+ }
212
+ module.debug('Hiding dimmer', $dimmer);
213
+ module.animate.hide(callback);
214
+ settings.onChange.call(element);
215
+ } else {
216
+ module.debug('Dimmer is not visible');
217
+ }
218
+ },
219
+
220
+ toggle: function () {
221
+ module.verbose('Toggling dimmer visibility', $dimmer);
222
+ if (!module.is.dimmed()) {
223
+ module.show();
224
+ } else {
225
+ if (module.is.closable()) {
226
+ module.hide();
227
+ }
228
+ }
229
+ },
230
+
231
+ animate: {
232
+ show: function (callback) {
233
+ callback = isFunction(callback)
234
+ ? callback
235
+ : function () {};
236
+ if (settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
237
+ if (settings.useFlex) {
238
+ module.debug('Using flex dimmer');
239
+ module.remove.legacy();
240
+ } else {
241
+ module.debug('Using legacy non-flex dimmer');
242
+ module.set.legacy();
243
+ }
244
+ if (settings.opacity !== 'auto') {
245
+ module.set.opacity();
246
+ }
247
+ $dimmer
248
+ .transition({
249
+ debug: settings.debug,
250
+ verbose: settings.verbose,
251
+ silent: settings.silent,
252
+ displayType: settings.useFlex
253
+ ? 'flex'
254
+ : 'block',
255
+ animation: (settings.transition.showMethod || settings.transition) + ' in',
256
+ queue: false,
257
+ duration: module.get.duration(),
258
+ useFailSafe: true,
259
+ onStart: function () {
260
+ module.set.dimmed();
261
+ },
262
+ onComplete: function () {
263
+ module.set.active();
264
+ settings.onVisible.call($dimmer);
265
+ callback();
266
+ },
267
+ })
268
+ ;
269
+ } else {
270
+ module.verbose('Showing dimmer animation with javascript');
271
+ module.set.dimmed();
272
+ if (settings.opacity == 'auto') {
273
+ settings.opacity = 0.8;
274
+ }
275
+ $dimmer
276
+ .stop()
277
+ .css({
278
+ opacity: 0,
279
+ width: '100%',
280
+ height: '100%',
281
+ })
282
+ .fadeTo(module.get.duration(), settings.opacity, function () {
283
+ $dimmer.removeAttr('style');
284
+ module.set.active();
285
+ settings.onVisible.call($dimmer);
286
+ callback();
287
+ })
288
+ ;
289
+ }
290
+ },
291
+ hide: function (callback) {
292
+ callback = isFunction(callback)
293
+ ? callback
294
+ : function () {};
295
+ if (settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
296
+ module.verbose('Hiding dimmer with css');
297
+ $dimmer
298
+ .transition({
299
+ debug: settings.debug,
300
+ verbose: settings.verbose,
301
+ silent: settings.silent,
302
+ displayType: settings.useFlex
303
+ ? 'flex'
304
+ : 'block',
305
+ animation: (settings.transition.hideMethod || settings.transition) + ' out',
306
+ queue: false,
307
+ duration: module.get.duration(),
308
+ useFailSafe: true,
309
+ onComplete: function () {
310
+ module.remove.dimmed();
311
+ module.remove.variation();
312
+ module.remove.active();
313
+ settings.onHidden.call($dimmer);
314
+ callback();
315
+ },
316
+ })
317
+ ;
318
+ } else {
319
+ module.verbose('Hiding dimmer with javascript');
320
+ $dimmer
321
+ .stop()
322
+ .fadeOut(module.get.duration(), function () {
323
+ module.remove.dimmed();
324
+ module.remove.active();
325
+ $dimmer.removeAttr('style');
326
+ settings.onHidden.call($dimmer);
327
+ callback();
328
+ })
329
+ ;
330
+ }
331
+ },
332
+ },
333
+
334
+ get: {
335
+ dimmer: function () {
336
+ return $dimmer;
337
+ },
338
+ duration: function () {
339
+ if (module.is.active()) {
340
+ return settings.transition.hideDuration || settings.duration.hide || settings.duration;
341
+ } else {
342
+ return settings.transition.showDuration || settings.duration.show || settings.duration;
343
+ }
344
+ },
345
+ },
346
+
347
+ has: {
348
+ dimmer: function () {
349
+ if (settings.dimmerName) {
350
+ return ($module.find(selector.dimmer).filter('.' + settings.dimmerName).length > 0);
351
+ } else {
352
+ return ($module.find(selector.dimmer).length > 0);
353
+ }
354
+ },
355
+ },
356
+
357
+ is: {
358
+ active: function () {
359
+ return $dimmer.hasClass(className.active);
360
+ },
361
+ animating: function () {
362
+ return ($dimmer.is(':animated') || $dimmer.hasClass(className.animating));
363
+ },
364
+ closable: function () {
365
+ if (settings.closable == 'auto') {
366
+ return settings.on != 'hover';
367
+ }
368
+
369
+ return settings.closable;
370
+ },
371
+ dimmer: function () {
372
+ return $module.hasClass(className.dimmer);
373
+ },
374
+ dimmable: function () {
375
+ return $module.hasClass(className.dimmable);
376
+ },
377
+ dimmed: function () {
378
+ return $dimmable.hasClass(className.dimmed);
379
+ },
380
+ disabled: function () {
381
+ return $dimmable.hasClass(className.disabled);
382
+ },
383
+ enabled: function () {
384
+ return !module.is.disabled();
385
+ },
386
+ page: function () {
387
+ return $dimmable.is('body');
388
+ },
389
+ pageDimmer: function () {
390
+ return $dimmer.hasClass(className.pageDimmer);
391
+ },
392
+ },
393
+
394
+ can: {
395
+ show: function () {
396
+ return !$dimmer.hasClass(className.disabled);
397
+ },
398
+ },
399
+
400
+ set: {
401
+ opacity: function (opacity) {
402
+ var
403
+ color = $dimmer.css('background-color'),
404
+ colorArray = color.split(','),
405
+ isRGB = (colorArray && colorArray.length >= 3)
406
+ ;
407
+ opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
408
+ if (isRGB) {
409
+ colorArray[2] = colorArray[2].replace(')', '');
410
+ colorArray[3] = opacity + ')';
411
+ color = colorArray.join(',');
412
+ } else {
413
+ color = 'rgba(0, 0, 0, ' + opacity + ')';
414
+ }
415
+ module.debug('Setting opacity to', opacity);
416
+ $dimmer.css('background-color', color);
417
+ },
418
+ legacy: function () {
419
+ $dimmer.addClass(className.legacy);
420
+ },
421
+ active: function () {
422
+ $dimmer.addClass(className.active);
423
+ },
424
+ dimmable: function () {
425
+ $dimmable.addClass(className.dimmable);
426
+ },
427
+ dimmed: function () {
428
+ $dimmable.addClass(className.dimmed);
429
+ },
430
+ pageDimmer: function () {
431
+ $dimmer.addClass(className.pageDimmer);
432
+ },
433
+ disabled: function () {
434
+ $dimmer.addClass(className.disabled);
435
+ },
436
+ variation: function (variation) {
437
+ variation = variation || settings.variation;
438
+ if (variation) {
439
+ $dimmer.addClass(variation);
440
+ }
441
+ },
442
+ },
443
+
444
+ remove: {
445
+ active: function () {
446
+ $dimmer
447
+ .removeClass(className.active)
448
+ ;
449
+ },
450
+ legacy: function () {
451
+ $dimmer.removeClass(className.legacy);
452
+ },
453
+ dimmed: function () {
454
+ $dimmable.removeClass(className.dimmed);
455
+ },
456
+ disabled: function () {
457
+ $dimmer.removeClass(className.disabled);
458
+ },
459
+ variation: function (variation) {
460
+ variation = variation || settings.variation;
461
+ if (variation) {
462
+ $dimmer.removeClass(variation);
463
+ }
464
+ },
465
+ },
466
+
467
+ setting: function (name, value) {
468
+ module.debug('Changing setting', name, value);
469
+ if ($.isPlainObject(name)) {
470
+ $.extend(true, settings, name);
471
+ } else if (value !== undefined) {
472
+ if ($.isPlainObject(settings[name])) {
473
+ $.extend(true, settings[name], value);
474
+ } else {
475
+ settings[name] = value;
476
+ }
477
+ } else {
478
+ return settings[name];
479
+ }
480
+ },
481
+ internal: function (name, value) {
482
+ if ($.isPlainObject(name)) {
483
+ $.extend(true, module, name);
484
+ } else if (value !== undefined) {
485
+ module[name] = value;
486
+ } else {
487
+ return module[name];
488
+ }
489
+ },
490
+ debug: function () {
491
+ if (!settings.silent && settings.debug) {
492
+ if (settings.performance) {
493
+ module.performance.log(arguments);
494
+ } else {
495
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
496
+ module.debug.apply(console, arguments);
497
+ }
498
+ }
499
+ },
500
+ verbose: function () {
501
+ if (!settings.silent && settings.verbose && settings.debug) {
502
+ if (settings.performance) {
503
+ module.performance.log(arguments);
504
+ } else {
505
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
506
+ module.verbose.apply(console, arguments);
507
+ }
508
+ }
509
+ },
510
+ error: function () {
511
+ if (!settings.silent) {
512
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
513
+ module.error.apply(console, arguments);
514
+ }
515
+ },
516
+ performance: {
517
+ log: function (message) {
518
+ var
519
+ currentTime,
520
+ executionTime,
521
+ previousTime
522
+ ;
523
+ if (settings.performance) {
524
+ currentTime = new Date().getTime();
525
+ previousTime = time || currentTime;
526
+ executionTime = currentTime - previousTime;
527
+ time = currentTime;
528
+ performance.push({
529
+ Name: message[0],
530
+ Arguments: [].slice.call(message, 1) || '',
531
+ Element: element,
532
+ 'Execution Time': executionTime,
533
+ });
534
+ }
535
+ clearTimeout(module.performance.timer);
536
+ module.performance.timer = setTimeout(module.performance.display, 500);
537
+ },
538
+ display: function () {
539
+ var
540
+ title = settings.name + ':',
541
+ totalTime = 0
542
+ ;
543
+ time = false;
544
+ clearTimeout(module.performance.timer);
545
+ $.each(performance, function (index, data) {
546
+ totalTime += data['Execution Time'];
547
+ });
548
+ title += ' ' + totalTime + 'ms';
549
+ if (moduleSelector) {
550
+ title += ' \'' + moduleSelector + '\'';
551
+ }
552
+ if ($allModules.length > 1) {
553
+ title += ' ' + '(' + $allModules.length + ')';
554
+ }
555
+ if ((console.group !== undefined || console.table !== undefined) && performance.length > 0) {
556
+ console.groupCollapsed(title);
557
+ if (console.table) {
558
+ console.table(performance);
559
+ } else {
560
+ $.each(performance, function (index, data) {
561
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
562
+ });
563
+ }
564
+ console.groupEnd();
565
+ }
566
+ performance = [];
567
+ },
568
+ },
569
+ invoke: function (query, passedArguments, context) {
570
+ var
571
+ object = instance,
572
+ maxDepth,
573
+ found,
574
+ response
575
+ ;
576
+ passedArguments = passedArguments || queryArguments;
577
+ context = context || element;
578
+ if (typeof query == 'string' && object !== undefined) {
579
+ query = query.split(/[\. ]/);
580
+ maxDepth = query.length - 1;
581
+ $.each(query, function (depth, value) {
582
+ var camelCaseValue = (depth != maxDepth)
583
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
584
+ : query
585
+ ;
586
+ if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
587
+ object = object[camelCaseValue];
588
+ } else if (object[camelCaseValue] !== undefined) {
589
+ found = object[camelCaseValue];
590
+
591
+ return false;
592
+ } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
593
+ object = object[value];
594
+ } else if (object[value] !== undefined) {
595
+ found = object[value];
596
+
597
+ return false;
598
+ } else {
599
+ module.error(error.method, query);
600
+
601
+ return false;
602
+ }
603
+ });
604
+ }
605
+ if (isFunction(found)) {
606
+ response = found.apply(context, passedArguments);
607
+ } else if (found !== undefined) {
608
+ response = found;
609
+ }
610
+ if (Array.isArray(returnedValue)) {
611
+ returnedValue.push(response);
612
+ } else if (returnedValue !== undefined) {
613
+ returnedValue = [returnedValue, response];
614
+ } else if (response !== undefined) {
615
+ returnedValue = response;
616
+ }
617
+
618
+ return found;
619
+ },
620
+ };
621
+
622
+ module.preinitialize();
623
+
624
+ if (methodInvoked) {
625
+ if (instance === undefined) {
626
+ module.initialize();
627
+ }
628
+ module.invoke(query);
629
+ } else {
630
+ if (instance !== undefined) {
631
+ instance.invoke('destroy');
632
+ }
633
+ module.initialize();
634
+ }
635
+ });
636
+
637
+ return (returnedValue !== undefined)
638
+ ? returnedValue
639
+ : this;
640
+ };
641
+
642
+ $.fn.dimmer.settings = {
643
+
644
+ name: 'Dimmer',
645
+ namespace: 'dimmer',
646
+
647
+ silent: false,
648
+ debug: false,
649
+ verbose: false,
650
+ performance: true,
651
+
652
+ // whether should use flex layout
653
+ useFlex: true,
654
+
655
+ // name to distinguish between multiple dimmers in context
656
+ dimmerName: false,
657
+
658
+ // whether to add a variation type
659
+ variation: false,
660
+
661
+ // whether to bind close events
662
+ closable: 'auto',
663
+
664
+ // whether to use css animations
665
+ useCSS: true,
666
+
667
+ // css animation to use
668
+ transition: 'fade',
669
+
670
+ // event to bind to
671
+ on: false,
672
+
673
+ // overriding opacity value
674
+ opacity: 'auto',
675
+
676
+ // transition durations
677
+ duration: {
678
+ show: 500,
679
+ hide: 500,
347
680
  },
348
-
349
- get: {
350
- dimmer: function() {
351
- return $dimmer;
352
- },
353
- duration: function() {
354
- if( module.is.active() ) {
355
- return settings.transition.hideDuration || settings.duration.hide || settings.duration;
356
- }
357
- else {
358
- return settings.transition.showDuration || settings.duration.show || settings.duration;
359
- }
360
- }
361
- },
362
-
363
- has: {
364
- dimmer: function() {
365
- if(settings.dimmerName) {
366
- return ($module.find(selector.dimmer).filter('.' + settings.dimmerName).length > 0);
367
- }
368
- else {
369
- return ( $module.find(selector.dimmer).length > 0 );
370
- }
371
- }
681
+ // whether the dynamically created dimmer should have a loader
682
+ displayLoader: false,
683
+ loaderText: false,
684
+ loaderVariation: '',
685
+
686
+ onChange: function () {},
687
+ onShow: function () {},
688
+ onHide: function () {},
689
+ onVisible: function () {},
690
+ onHidden: function () {},
691
+
692
+ error: {
693
+ method: 'The method you called is not defined.',
372
694
  },
373
695
 
374
- is: {
375
- active: function() {
376
- return $dimmer.hasClass(className.active);
377
- },
378
- animating: function() {
379
- return ( $dimmer.is(':animated') || $dimmer.hasClass(className.animating) );
380
- },
381
- closable: function() {
382
- if(settings.closable == 'auto') {
383
- return settings.on != 'hover';
384
- }
385
- return settings.closable;
386
- },
387
- dimmer: function() {
388
- return $module.hasClass(className.dimmer);
389
- },
390
- dimmable: function() {
391
- return $module.hasClass(className.dimmable);
392
- },
393
- dimmed: function() {
394
- return $dimmable.hasClass(className.dimmed);
395
- },
396
- disabled: function() {
397
- return $dimmable.hasClass(className.disabled);
398
- },
399
- enabled: function() {
400
- return !module.is.disabled();
401
- },
402
- page: function () {
403
- return $dimmable.is('body');
404
- },
405
- pageDimmer: function() {
406
- return $dimmer.hasClass(className.pageDimmer);
407
- }
696
+ className: {
697
+ active: 'active',
698
+ animating: 'animating',
699
+ dimmable: 'dimmable',
700
+ dimmed: 'dimmed',
701
+ dimmer: 'dimmer',
702
+ disabled: 'disabled',
703
+ hide: 'hide',
704
+ legacy: 'legacy',
705
+ pageDimmer: 'page',
706
+ show: 'show',
707
+ loader: 'ui loader',
408
708
  },
409
709
 
410
- can: {
411
- show: function() {
412
- return !$dimmer.hasClass(className.disabled);
413
- }
710
+ selector: {
711
+ dimmer: '> .ui.dimmer',
712
+ content: '.ui.dimmer > .content, .ui.dimmer > .content > .center',
414
713
  },
415
714
 
416
- set: {
417
- opacity: function(opacity) {
418
- var
419
- color = $dimmer.css('background-color'),
420
- colorArray = color.split(','),
421
- isRGB = (colorArray && colorArray.length >= 3)
422
- ;
423
- opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
424
- if(isRGB) {
425
- colorArray[2] = colorArray[2].replace(')','');
426
- colorArray[3] = opacity + ')';
427
- color = colorArray.join(',');
428
- }
429
- else {
430
- color = 'rgba(0, 0, 0, ' + opacity + ')';
431
- }
432
- module.debug('Setting opacity to', opacity);
433
- $dimmer.css('background-color', color);
434
- },
435
- legacy: function() {
436
- $dimmer.addClass(className.legacy);
437
- },
438
- active: function() {
439
- $dimmer.addClass(className.active);
440
- },
441
- dimmable: function() {
442
- $dimmable.addClass(className.dimmable);
443
- },
444
- dimmed: function() {
445
- $dimmable.addClass(className.dimmed);
446
- },
447
- pageDimmer: function() {
448
- $dimmer.addClass(className.pageDimmer);
449
- },
450
- disabled: function() {
451
- $dimmer.addClass(className.disabled);
452
- },
453
- variation: function(variation) {
454
- variation = variation || settings.variation;
455
- if(variation) {
456
- $dimmer.addClass(variation);
457
- }
458
- }
459
- },
460
-
461
- remove: {
462
- active: function() {
463
- $dimmer
464
- .removeClass(className.active)
465
- ;
466
- },
467
- legacy: function() {
468
- $dimmer.removeClass(className.legacy);
469
- },
470
- dimmed: function() {
471
- $dimmable.removeClass(className.dimmed);
472
- },
473
- disabled: function() {
474
- $dimmer.removeClass(className.disabled);
475
- },
476
- variation: function(variation) {
477
- variation = variation || settings.variation;
478
- if(variation) {
479
- $dimmer.removeClass(variation);
480
- }
481
- }
482
- },
483
-
484
- setting: function(name, value) {
485
- module.debug('Changing setting', name, value);
486
- if( $.isPlainObject(name) ) {
487
- $.extend(true, settings, name);
488
- }
489
- else if(value !== undefined) {
490
- if($.isPlainObject(settings[name])) {
491
- $.extend(true, settings[name], value);
492
- }
493
- else {
494
- settings[name] = value;
495
- }
496
- }
497
- else {
498
- return settings[name];
499
- }
715
+ template: {
716
+ dimmer: function (settings) {
717
+ var
718
+ d = $('<div/>').addClass('ui dimmer'),
719
+ l
720
+ ;
721
+ if (settings.displayLoader) {
722
+ l = $('<div/>')
723
+ .addClass(settings.className.loader)
724
+ .addClass(settings.loaderVariation)
725
+ ;
726
+ if (!!settings.loaderText) {
727
+ l.text(settings.loaderText);
728
+ l.addClass('text');
729
+ }
730
+ d.append(l);
731
+ }
732
+
733
+ return d;
734
+ },
500
735
  },
501
- internal: function(name, value) {
502
- if( $.isPlainObject(name) ) {
503
- $.extend(true, module, name);
504
- }
505
- else if(value !== undefined) {
506
- module[name] = value;
507
- }
508
- else {
509
- return module[name];
510
- }
511
- },
512
- debug: function() {
513
- if(!settings.silent && settings.debug) {
514
- if(settings.performance) {
515
- module.performance.log(arguments);
516
- }
517
- else {
518
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
519
- module.debug.apply(console, arguments);
520
- }
521
- }
522
- },
523
- verbose: function() {
524
- if(!settings.silent && settings.verbose && settings.debug) {
525
- if(settings.performance) {
526
- module.performance.log(arguments);
527
- }
528
- else {
529
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
530
- module.verbose.apply(console, arguments);
531
- }
532
- }
533
- },
534
- error: function() {
535
- if(!settings.silent) {
536
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
537
- module.error.apply(console, arguments);
538
- }
539
- },
540
- performance: {
541
- log: function(message) {
542
- var
543
- currentTime,
544
- executionTime,
545
- previousTime
546
- ;
547
- if(settings.performance) {
548
- currentTime = new Date().getTime();
549
- previousTime = time || currentTime;
550
- executionTime = currentTime - previousTime;
551
- time = currentTime;
552
- performance.push({
553
- 'Name' : message[0],
554
- 'Arguments' : [].slice.call(message, 1) || '',
555
- 'Element' : element,
556
- 'Execution Time' : executionTime
557
- });
558
- }
559
- clearTimeout(module.performance.timer);
560
- module.performance.timer = setTimeout(module.performance.display, 500);
561
- },
562
- display: function() {
563
- var
564
- title = settings.name + ':',
565
- totalTime = 0
566
- ;
567
- time = false;
568
- clearTimeout(module.performance.timer);
569
- $.each(performance, function(index, data) {
570
- totalTime += data['Execution Time'];
571
- });
572
- title += ' ' + totalTime + 'ms';
573
- if(moduleSelector) {
574
- title += ' \'' + moduleSelector + '\'';
575
- }
576
- if($allModules.length > 1) {
577
- title += ' ' + '(' + $allModules.length + ')';
578
- }
579
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
580
- console.groupCollapsed(title);
581
- if(console.table) {
582
- console.table(performance);
583
- }
584
- else {
585
- $.each(performance, function(index, data) {
586
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
587
- });
588
- }
589
- console.groupEnd();
590
- }
591
- performance = [];
592
- }
593
- },
594
- invoke: function(query, passedArguments, context) {
595
- var
596
- object = instance,
597
- maxDepth,
598
- found,
599
- response
600
- ;
601
- passedArguments = passedArguments || queryArguments;
602
- context = context || element;
603
- if(typeof query == 'string' && object !== undefined) {
604
- query = query.split(/[\. ]/);
605
- maxDepth = query.length - 1;
606
- $.each(query, function(depth, value) {
607
- var camelCaseValue = (depth != maxDepth)
608
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
609
- : query
610
- ;
611
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
612
- object = object[camelCaseValue];
613
- }
614
- else if( object[camelCaseValue] !== undefined ) {
615
- found = object[camelCaseValue];
616
- return false;
617
- }
618
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
619
- object = object[value];
620
- }
621
- else if( object[value] !== undefined ) {
622
- found = object[value];
623
- return false;
624
- }
625
- else {
626
- module.error(error.method, query);
627
- return false;
628
- }
629
- });
630
- }
631
- if ( isFunction( found ) ) {
632
- response = found.apply(context, passedArguments);
633
- }
634
- else if(found !== undefined) {
635
- response = found;
636
- }
637
- if(Array.isArray(returnedValue)) {
638
- returnedValue.push(response);
639
- }
640
- else if(returnedValue !== undefined) {
641
- returnedValue = [returnedValue, response];
642
- }
643
- else if(response !== undefined) {
644
- returnedValue = response;
645
- }
646
- return found;
647
- }
648
- };
649
-
650
- module.preinitialize();
651
-
652
- if(methodInvoked) {
653
- if(instance === undefined) {
654
- module.initialize();
655
- }
656
- module.invoke(query);
657
- }
658
- else {
659
- if(instance !== undefined) {
660
- instance.invoke('destroy');
661
- }
662
- module.initialize();
663
- }
664
- })
665
- ;
666
-
667
- return (returnedValue !== undefined)
668
- ? returnedValue
669
- : this
670
- ;
671
- };
672
-
673
- $.fn.dimmer.settings = {
674
-
675
- name : 'Dimmer',
676
- namespace : 'dimmer',
677
-
678
- silent : false,
679
- debug : false,
680
- verbose : false,
681
- performance : true,
682
-
683
- // whether should use flex layout
684
- useFlex : true,
685
-
686
- // name to distinguish between multiple dimmers in context
687
- dimmerName : false,
688
-
689
- // whether to add a variation type
690
- variation : false,
691
-
692
- // whether to bind close events
693
- closable : 'auto',
694
-
695
- // whether to use css animations
696
- useCSS : true,
697
-
698
- // css animation to use
699
- transition : 'fade',
700
-
701
- // event to bind to
702
- on : false,
703
-
704
- // overriding opacity value
705
- opacity : 'auto',
706
-
707
- // transition durations
708
- duration : {
709
- show : 500,
710
- hide : 500
711
- },
712
- // whether the dynamically created dimmer should have a loader
713
- displayLoader: false,
714
- loaderText : false,
715
- loaderVariation : '',
716
-
717
- onChange : function(){},
718
- onShow : function(){},
719
- onHide : function(){},
720
- onVisible : function(){},
721
- onHidden : function(){},
722
-
723
- error : {
724
- method : 'The method you called is not defined.'
725
- },
726
-
727
- className : {
728
- active : 'active',
729
- animating : 'animating',
730
- dimmable : 'dimmable',
731
- dimmed : 'dimmed',
732
- dimmer : 'dimmer',
733
- disabled : 'disabled',
734
- hide : 'hide',
735
- legacy : 'legacy',
736
- pageDimmer : 'page',
737
- show : 'show',
738
- loader : 'ui loader'
739
- },
740
-
741
- selector: {
742
- dimmer : '> .ui.dimmer',
743
- content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
744
- },
745
-
746
- template: {
747
- dimmer: function(settings) {
748
- var d = $('<div/>').addClass('ui dimmer'),l;
749
- if(settings.displayLoader) {
750
- l = $('<div/>')
751
- .addClass(settings.className.loader)
752
- .addClass(settings.loaderVariation);
753
- if(!!settings.loaderText){
754
- l.text(settings.loaderText);
755
- l.addClass('text');
756
- }
757
- d.append(l);
758
- }
759
- return d;
760
- }
761
- }
762
-
763
- };
764
736
 
765
- })( jQuery, window, document );
737
+ };
738
+ })(jQuery, window, document);