fomantic-ui 2.9.1-beta.2 → 2.9.1-beta.20

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 (339) hide show
  1. package/.eslintrc.js +110 -0
  2. package/.github/workflows/ci.yml +14 -4
  3. package/.stylelintrc.js +46 -0
  4. package/dist/components/accordion.css +19 -26
  5. package/dist/components/accordion.js +568 -595
  6. package/dist/components/accordion.min.css +1 -1
  7. package/dist/components/accordion.min.js +2 -2
  8. package/dist/components/ad.css +31 -41
  9. package/dist/components/ad.min.css +1 -1
  10. package/dist/components/api.js +1161 -1179
  11. package/dist/components/api.min.js +2 -2
  12. package/dist/components/breadcrumb.css +1 -1
  13. package/dist/components/breadcrumb.min.css +1 -1
  14. package/dist/components/button.css +71 -106
  15. package/dist/components/button.min.css +1 -1
  16. package/dist/components/calendar.css +18 -16
  17. package/dist/components/calendar.js +1895 -1809
  18. package/dist/components/calendar.min.css +2 -2
  19. package/dist/components/calendar.min.js +2 -2
  20. package/dist/components/card.css +83 -115
  21. package/dist/components/card.min.css +1 -1
  22. package/dist/components/checkbox.css +47 -64
  23. package/dist/components/checkbox.js +842 -841
  24. package/dist/components/checkbox.min.css +1 -1
  25. package/dist/components/checkbox.min.js +2 -2
  26. package/dist/components/comment.css +37 -51
  27. package/dist/components/comment.min.css +1 -1
  28. package/dist/components/container.css +6 -5
  29. package/dist/components/container.min.css +2 -2
  30. package/dist/components/dimmer.css +31 -41
  31. package/dist/components/dimmer.js +708 -737
  32. package/dist/components/dimmer.min.css +1 -1
  33. package/dist/components/dimmer.min.js +2 -2
  34. package/dist/components/divider.css +32 -44
  35. package/dist/components/divider.min.css +1 -1
  36. package/dist/components/dropdown.css +129 -166
  37. package/dist/components/dropdown.js +4161 -4234
  38. package/dist/components/dropdown.min.css +2 -2
  39. package/dist/components/dropdown.min.js +2 -2
  40. package/dist/components/embed.css +13 -19
  41. package/dist/components/embed.js +651 -675
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +2 -2
  44. package/dist/components/emoji.css +7 -6
  45. package/dist/components/feed.css +24 -32
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +5 -3
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +44 -58
  50. package/dist/components/flyout.js +1464 -1465
  51. package/dist/components/flyout.min.css +2 -2
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +85 -111
  54. package/dist/components/form.js +1979 -2004
  55. package/dist/components/form.min.css +1 -1
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +70 -96
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +47 -65
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +45 -66
  62. package/dist/components/icon.min.css +2 -2
  63. package/dist/components/image.css +32 -42
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +182 -65
  66. package/dist/components/input.min.css +2 -2
  67. package/dist/components/item.css +55 -77
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +68 -91
  70. package/dist/components/label.min.css +2 -2
  71. package/dist/components/list.css +44 -59
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +16 -22
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +126 -186
  76. package/dist/components/message.css +25 -35
  77. package/dist/components/message.min.css +1 -1
  78. package/dist/components/modal.css +39 -40
  79. package/dist/components/modal.js +1491 -1485
  80. package/dist/components/modal.min.css +2 -2
  81. package/dist/components/modal.min.js +2 -2
  82. package/dist/components/nag.css +21 -28
  83. package/dist/components/nag.js +518 -526
  84. package/dist/components/nag.min.css +2 -2
  85. package/dist/components/nag.min.js +2 -2
  86. package/dist/components/placeholder.css +10 -12
  87. package/dist/components/placeholder.min.css +1 -1
  88. package/dist/components/popup.css +352 -59
  89. package/dist/components/popup.js +1437 -1456
  90. package/dist/components/popup.min.css +2 -2
  91. package/dist/components/popup.min.js +2 -2
  92. package/dist/components/progress.css +29 -39
  93. package/dist/components/progress.js +969 -997
  94. package/dist/components/progress.min.css +1 -1
  95. package/dist/components/progress.min.js +2 -2
  96. package/dist/components/rail.css +15 -20
  97. package/dist/components/rail.min.css +1 -1
  98. package/dist/components/rating.css +9 -13
  99. package/dist/components/rating.js +505 -523
  100. package/dist/components/rating.min.css +1 -1
  101. package/dist/components/rating.min.js +2 -2
  102. package/dist/components/reset.css +1 -1
  103. package/dist/components/reset.min.css +1 -1
  104. package/dist/components/reveal.css +19 -26
  105. package/dist/components/reveal.min.css +1 -1
  106. package/dist/components/search.css +43 -58
  107. package/dist/components/search.js +1498 -1534
  108. package/dist/components/search.min.css +2 -2
  109. package/dist/components/search.min.js +2 -2
  110. package/dist/components/segment.css +64 -83
  111. package/dist/components/segment.min.css +2 -2
  112. package/dist/components/shape.css +10 -14
  113. package/dist/components/shape.js +792 -809
  114. package/dist/components/shape.min.css +1 -1
  115. package/dist/components/shape.min.js +2 -2
  116. package/dist/components/sidebar.css +43 -58
  117. package/dist/components/sidebar.js +1071 -1098
  118. package/dist/components/sidebar.min.css +2 -2
  119. package/dist/components/sidebar.min.js +2 -2
  120. package/dist/components/site.css +5 -5
  121. package/dist/components/site.js +462 -476
  122. package/dist/components/site.min.css +1 -1
  123. package/dist/components/site.min.js +2 -2
  124. package/dist/components/slider.css +27 -37
  125. package/dist/components/slider.js +1287 -1306
  126. package/dist/components/slider.min.js +2 -2
  127. package/dist/components/state.js +639 -657
  128. package/dist/components/state.min.js +2 -2
  129. package/dist/components/statistic.css +32 -41
  130. package/dist/components/statistic.min.css +2 -2
  131. package/dist/components/step.css +26 -35
  132. package/dist/components/step.min.css +1 -1
  133. package/dist/components/sticky.css +1 -1
  134. package/dist/components/sticky.js +857 -902
  135. package/dist/components/sticky.min.css +1 -1
  136. package/dist/components/sticky.min.js +2 -2
  137. package/dist/components/tab.css +6 -8
  138. package/dist/components/tab.js +922 -963
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +2 -2
  141. package/dist/components/table.css +93 -119
  142. package/dist/components/table.min.css +2 -2
  143. package/dist/components/text.css +1 -1
  144. package/dist/components/text.min.css +1 -1
  145. package/dist/components/toast.css +4 -6
  146. package/dist/components/toast.js +886 -887
  147. package/dist/components/toast.min.css +1 -1
  148. package/dist/components/toast.min.js +2 -2
  149. package/dist/components/transition.css +150 -3
  150. package/dist/components/transition.js +1041 -1077
  151. package/dist/components/transition.min.css +2 -2
  152. package/dist/components/transition.min.js +2 -2
  153. package/dist/components/visibility.js +1220 -1244
  154. package/dist/components/visibility.min.js +2 -2
  155. package/dist/semantic.css +2529 -1778
  156. package/dist/semantic.js +28928 -29383
  157. package/dist/semantic.min.css +2 -2
  158. package/dist/semantic.min.js +2 -2
  159. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  160. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  161. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  162. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  163. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  164. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  165. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  166. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  167. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  168. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  170. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  172. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  174. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  175. package/examples/assets/show-examples.js +13 -13
  176. package/gulpfile.js +9 -10
  177. package/package.json +13 -8
  178. package/scripts/nightly-version.js +81 -75
  179. package/src/definitions/behaviors/api.js +1162 -1180
  180. package/src/definitions/behaviors/form.js +1978 -2003
  181. package/src/definitions/behaviors/state.js +645 -663
  182. package/src/definitions/behaviors/visibility.js +1219 -1243
  183. package/src/definitions/collections/breadcrumb.less +41 -44
  184. package/src/definitions/collections/form.less +869 -879
  185. package/src/definitions/collections/grid.less +1690 -1695
  186. package/src/definitions/collections/menu.less +1493 -1503
  187. package/src/definitions/collections/message.less +292 -295
  188. package/src/definitions/collections/table.less +1616 -1620
  189. package/src/definitions/elements/button.less +1721 -1743
  190. package/src/definitions/elements/container.less +209 -209
  191. package/src/definitions/elements/divider.less +205 -206
  192. package/src/definitions/elements/emoji.less +38 -44
  193. package/src/definitions/elements/flag.less +44 -46
  194. package/src/definitions/elements/header.less +337 -345
  195. package/src/definitions/elements/icon.less +516 -443
  196. package/src/definitions/elements/image.less +221 -225
  197. package/src/definitions/elements/input.less +663 -659
  198. package/src/definitions/elements/label.less +803 -793
  199. package/src/definitions/elements/list.less +809 -809
  200. package/src/definitions/elements/loader.less +272 -266
  201. package/src/definitions/elements/placeholder.less +171 -168
  202. package/src/definitions/elements/rail.less +91 -91
  203. package/src/definitions/elements/reveal.less +192 -196
  204. package/src/definitions/elements/segment.less +743 -746
  205. package/src/definitions/elements/step.less +425 -433
  206. package/src/definitions/elements/text.less +32 -34
  207. package/src/definitions/globals/reset.less +9 -6
  208. package/src/definitions/globals/site.js +461 -475
  209. package/src/definitions/globals/site.less +106 -108
  210. package/src/definitions/modules/accordion.js +567 -594
  211. package/src/definitions/modules/accordion.less +242 -246
  212. package/src/definitions/modules/calendar.js +1894 -1808
  213. package/src/definitions/modules/calendar.less +98 -95
  214. package/src/definitions/modules/checkbox.js +841 -840
  215. package/src/definitions/modules/checkbox.less +536 -542
  216. package/src/definitions/modules/dimmer.js +707 -736
  217. package/src/definitions/modules/dimmer.less +300 -297
  218. package/src/definitions/modules/dropdown.js +4160 -4233
  219. package/src/definitions/modules/dropdown.less +1577 -1589
  220. package/src/definitions/modules/embed.js +650 -674
  221. package/src/definitions/modules/embed.less +81 -82
  222. package/src/definitions/modules/flyout.js +1463 -1464
  223. package/src/definitions/modules/flyout.less +445 -451
  224. package/src/definitions/modules/modal.js +1490 -1484
  225. package/src/definitions/modules/modal.less +459 -459
  226. package/src/definitions/modules/nag.js +517 -525
  227. package/src/definitions/modules/nag.less +134 -138
  228. package/src/definitions/modules/popup.js +1436 -1455
  229. package/src/definitions/modules/popup.less +742 -687
  230. package/src/definitions/modules/progress.js +968 -996
  231. package/src/definitions/modules/progress.less +521 -494
  232. package/src/definitions/modules/rating.js +504 -522
  233. package/src/definitions/modules/rating.less +94 -101
  234. package/src/definitions/modules/search.js +1497 -1533
  235. package/src/definitions/modules/search.less +375 -382
  236. package/src/definitions/modules/shape.js +791 -808
  237. package/src/definitions/modules/shape.less +71 -76
  238. package/src/definitions/modules/sidebar.js +1070 -1097
  239. package/src/definitions/modules/sidebar.less +463 -472
  240. package/src/definitions/modules/slider.js +1286 -1305
  241. package/src/definitions/modules/slider.less +307 -308
  242. package/src/definitions/modules/sticky.js +873 -918
  243. package/src/definitions/modules/sticky.less +21 -23
  244. package/src/definitions/modules/tab.js +921 -962
  245. package/src/definitions/modules/tab.less +51 -52
  246. package/src/definitions/modules/toast.js +885 -886
  247. package/src/definitions/modules/toast.less +584 -586
  248. package/src/definitions/modules/transition.js +1040 -1076
  249. package/src/definitions/modules/transition.less +62 -28
  250. package/src/definitions/views/ad.less +206 -206
  251. package/src/definitions/views/card.less +968 -970
  252. package/src/definitions/views/comment.less +190 -198
  253. package/src/definitions/views/feed.less +220 -224
  254. package/src/definitions/views/item.less +436 -446
  255. package/src/definitions/views/statistic.less +271 -277
  256. package/src/theme.less +29 -32
  257. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  258. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  259. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  260. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  261. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  262. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  263. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  264. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  265. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  266. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  267. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  268. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  269. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  270. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  271. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  272. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  273. package/src/themes/default/elements/container.variables +0 -7
  274. package/src/themes/default/elements/icon.variables +18 -0
  275. package/src/themes/default/elements/segment.variables +0 -7
  276. package/src/themes/default/globals/colors.less +589 -589
  277. package/src/themes/default/globals/site.variables +8 -0
  278. package/src/themes/default/globals/variation.variables +13 -1
  279. package/src/themes/default/modules/calendar.variables +2 -0
  280. package/src/themes/default/modules/nag.variables +1 -1
  281. package/src/themes/default/modules/popup.variables +2 -0
  282. package/src/themes/default/modules/transition.variables +8 -1
  283. package/tasks/admin/components/create.js +274 -276
  284. package/tasks/admin/components/init.js +123 -130
  285. package/tasks/admin/components/update.js +149 -157
  286. package/tasks/admin/distributions/create.js +184 -187
  287. package/tasks/admin/distributions/init.js +123 -130
  288. package/tasks/admin/distributions/update.js +145 -152
  289. package/tasks/admin/publish.js +5 -7
  290. package/tasks/admin/register.js +36 -38
  291. package/tasks/admin/release.js +8 -10
  292. package/tasks/build/assets.js +42 -39
  293. package/tasks/build/css.js +225 -216
  294. package/tasks/build/javascript.js +118 -113
  295. package/tasks/build.js +10 -10
  296. package/tasks/check-install.js +14 -16
  297. package/tasks/clean.js +5 -5
  298. package/tasks/collections/admin.js +34 -36
  299. package/tasks/collections/build.js +18 -20
  300. package/tasks/collections/docs.js +9 -11
  301. package/tasks/collections/install.js +9 -11
  302. package/tasks/collections/rtl.js +9 -11
  303. package/tasks/collections/various.js +8 -10
  304. package/tasks/config/admin/github.js +17 -17
  305. package/tasks/config/admin/oauth.example.js +4 -4
  306. package/tasks/config/admin/release.js +98 -98
  307. package/tasks/config/admin/templates/component-package.js +9 -10
  308. package/tasks/config/admin/templates/css-package.js +18 -20
  309. package/tasks/config/admin/templates/less-package.js +11 -13
  310. package/tasks/config/defaults.js +116 -114
  311. package/tasks/config/docs.js +23 -23
  312. package/tasks/config/npm/gulpfile.js +8 -9
  313. package/tasks/config/project/config.js +127 -134
  314. package/tasks/config/project/install.js +715 -713
  315. package/tasks/config/project/release.js +32 -38
  316. package/tasks/config/tasks.js +165 -156
  317. package/tasks/config/user.js +23 -26
  318. package/tasks/docs/build.js +97 -95
  319. package/tasks/docs/metadata.js +90 -96
  320. package/tasks/docs/serve.js +80 -81
  321. package/tasks/install.js +370 -378
  322. package/tasks/rtl/build.js +2 -2
  323. package/tasks/rtl/watch.js +2 -2
  324. package/tasks/version.js +4 -4
  325. package/tasks/watch.js +28 -30
  326. package/test/meteor/assets.js +10 -13
  327. package/test/meteor/fonts.js +12 -13
  328. package/test/modules/accordion.spec.js +6 -8
  329. package/test/modules/checkbox.spec.js +5 -7
  330. package/test/modules/dropdown.spec.js +5 -7
  331. package/test/modules/modal.spec.js +6 -8
  332. package/test/modules/module.spec.js +158 -178
  333. package/test/modules/popup.spec.js +5 -7
  334. package/test/modules/search.spec.js +5 -7
  335. package/test/modules/shape.spec.js +5 -7
  336. package/test/modules/sidebar.spec.js +5 -7
  337. package/test/modules/tab.spec.js +6 -8
  338. package/test/modules/transition.spec.js +5 -7
  339. package/test/modules/video.spec.js +5 -7
@@ -8,486 +8,472 @@
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
12
-
13
- $.isFunction = $.isFunction || function(obj) {
14
- return typeof obj === "function" && typeof obj.nodeType !== "number";
15
- };
16
-
17
- $.site = $.fn.site = function(parameters) {
18
- var
19
- time = new Date().getTime(),
20
- performance = [],
21
-
22
- query = arguments[0],
23
- methodInvoked = (typeof query == 'string'),
24
- queryArguments = [].slice.call(arguments, 1),
25
-
26
- settings = ( $.isPlainObject(parameters) )
27
- ? $.extend(true, {}, $.site.settings, parameters)
28
- : $.extend({}, $.site.settings),
29
-
30
- namespace = settings.namespace,
31
- error = settings.error,
32
-
33
- moduleNamespace = 'module-' + namespace,
34
-
35
- $document = $(document),
36
- $module = $document,
37
- element = this,
38
- instance = $module.data(moduleNamespace),
39
-
40
- module,
41
- returnedValue
42
- ;
43
- module = {
44
-
45
- initialize: function() {
46
- module.instantiate();
47
- },
48
-
49
- instantiate: function() {
50
- module.verbose('Storing instance of site', module);
51
- instance = module;
52
- $module
53
- .data(moduleNamespace, module)
54
- ;
55
- },
56
-
57
- normalize: function() {
58
- module.fix.console();
59
- module.fix.requestAnimationFrame();
60
- },
61
-
62
- fix: {
63
- console: function() {
64
- module.debug('Normalizing window.console');
65
- if (console === undefined || console.log === undefined) {
66
- module.verbose('Console not available, normalizing events');
67
- module.disable.console();
68
- }
69
- if (typeof console.group == 'undefined' || typeof console.groupEnd == 'undefined' || typeof console.groupCollapsed == 'undefined') {
70
- module.verbose('Console group not available, normalizing events');
71
- window.console.group = function() {};
72
- window.console.groupEnd = function() {};
73
- window.console.groupCollapsed = function() {};
74
- }
75
- if (typeof console.markTimeline == 'undefined') {
76
- module.verbose('Mark timeline not available, normalizing events');
77
- window.console.markTimeline = function() {};
78
- }
79
- },
80
- consoleClear: function() {
81
- module.debug('Disabling programmatic console clearing');
82
- window.console.clear = function() {};
83
- },
84
- requestAnimationFrame: function() {
85
- module.debug('Normalizing requestAnimationFrame');
86
- if(window.requestAnimationFrame === undefined) {
87
- module.debug('RequestAnimationFrame not available, normalizing event');
88
- window.requestAnimationFrame = window.requestAnimationFrame
89
- || window.mozRequestAnimationFrame
90
- || window.webkitRequestAnimationFrame
91
- || window.msRequestAnimationFrame
92
- || function(callback) { setTimeout(callback, 0); }
93
- ;
94
- }
95
- }
96
- },
11
+ (function ($, window, document, undefined) {
12
+ 'use strict';
13
+
14
+ function isFunction(obj) {
15
+ return typeof obj === 'function' && typeof obj.nodeType !== 'number';
16
+ }
97
17
 
98
- moduleExists: function(name) {
99
- return ($.fn[name] !== undefined && $.fn[name].settings !== undefined);
100
- },
18
+ window = (window !== undefined && window.Math == Math)
19
+ ? window
20
+ : globalThis;
101
21
 
102
- enabled: {
103
- modules: function(modules) {
104
- var
105
- enabledModules = []
106
- ;
107
- modules = modules || settings.modules;
108
- $.each(modules, function(index, name) {
109
- if(module.moduleExists(name)) {
110
- enabledModules.push(name);
111
- }
112
- });
113
- return enabledModules;
114
- }
115
- },
116
-
117
- disabled: {
118
- modules: function(modules) {
22
+ $.site = $.fn.site = function (parameters) {
119
23
  var
120
- disabledModules = []
121
- ;
122
- modules = modules || settings.modules;
123
- $.each(modules, function(index, name) {
124
- if(!module.moduleExists(name)) {
125
- disabledModules.push(name);
126
- }
127
- });
128
- return disabledModules;
129
- }
130
- },
131
-
132
- change: {
133
- setting: function(setting, value, modules, modifyExisting) {
134
- modules = (typeof modules === 'string')
135
- ? (modules === 'all')
136
- ? settings.modules
137
- : [modules]
138
- : modules || settings.modules
139
- ;
140
- modifyExisting = (modifyExisting !== undefined)
141
- ? modifyExisting
142
- : true
24
+ time = new Date().getTime(),
25
+ performance = [],
26
+
27
+ query = arguments[0],
28
+ methodInvoked = (typeof query == 'string'),
29
+ queryArguments = [].slice.call(arguments, 1),
30
+
31
+ settings = ($.isPlainObject(parameters))
32
+ ? $.extend(true, {}, $.site.settings, parameters)
33
+ : $.extend({}, $.site.settings),
34
+
35
+ namespace = settings.namespace,
36
+ error = settings.error,
37
+
38
+ moduleNamespace = 'module-' + namespace,
39
+
40
+ $document = $(document),
41
+ $module = $document,
42
+ element = this,
43
+ instance = $module.data(moduleNamespace),
44
+
45
+ module,
46
+ returnedValue
143
47
  ;
144
- $.each(modules, function(index, name) {
145
- var
146
- namespace = (module.moduleExists(name))
147
- ? $.fn[name].settings.namespace || false
148
- : true,
149
- $existingModules
150
- ;
151
- if(module.moduleExists(name)) {
152
- module.verbose('Changing default setting', setting, value, name);
153
- $.fn[name].settings[setting] = value;
154
- if(modifyExisting && namespace) {
155
- $existingModules = $(':data(module-' + namespace + ')');
156
- if($existingModules.length > 0) {
157
- module.verbose('Modifying existing settings', $existingModules);
158
- $existingModules[name]('setting', setting, value);
159
- }
48
+ module = {
49
+
50
+ initialize: function () {
51
+ module.instantiate();
52
+ },
53
+
54
+ instantiate: function () {
55
+ module.verbose('Storing instance of site', module);
56
+ instance = module;
57
+ $module
58
+ .data(moduleNamespace, module)
59
+ ;
60
+ },
61
+
62
+ normalize: function () {
63
+ module.fix.console();
64
+ module.fix.requestAnimationFrame();
65
+ },
66
+
67
+ fix: {
68
+ console: function () {
69
+ module.debug('Normalizing window.console');
70
+ if (console === undefined || console.log === undefined) {
71
+ module.verbose('Console not available, normalizing events');
72
+ module.disable.console();
73
+ }
74
+ if (typeof console.group == 'undefined' || typeof console.groupEnd == 'undefined' || typeof console.groupCollapsed == 'undefined') {
75
+ module.verbose('Console group not available, normalizing events');
76
+ window.console.group = function () {};
77
+ window.console.groupEnd = function () {};
78
+ window.console.groupCollapsed = function () {};
79
+ }
80
+ if (typeof console.markTimeline == 'undefined') {
81
+ module.verbose('Mark timeline not available, normalizing events');
82
+ window.console.markTimeline = function () {};
83
+ }
84
+ },
85
+ consoleClear: function () {
86
+ module.debug('Disabling programmatic console clearing');
87
+ window.console.clear = function () {};
88
+ },
89
+ requestAnimationFrame: function () {
90
+ module.debug('Normalizing requestAnimationFrame');
91
+ if (window.requestAnimationFrame === undefined) {
92
+ module.debug('RequestAnimationFrame not available, normalizing event');
93
+ window.requestAnimationFrame = window.requestAnimationFrame
94
+ || window.mozRequestAnimationFrame
95
+ || window.webkitRequestAnimationFrame
96
+ || window.msRequestAnimationFrame
97
+ || function (callback) {
98
+ setTimeout(callback, 0);
99
+ };
100
+ }
101
+ },
102
+ },
103
+
104
+ moduleExists: function (name) {
105
+ return ($.fn[name] !== undefined && $.fn[name].settings !== undefined);
106
+ },
107
+
108
+ enabled: {
109
+ modules: function (modules) {
110
+ var
111
+ enabledModules = []
112
+ ;
113
+ modules = modules || settings.modules;
114
+ $.each(modules, function (index, name) {
115
+ if (module.moduleExists(name)) {
116
+ enabledModules.push(name);
117
+ }
118
+ });
119
+
120
+ return enabledModules;
121
+ },
122
+ },
123
+
124
+ disabled: {
125
+ modules: function (modules) {
126
+ var
127
+ disabledModules = []
128
+ ;
129
+ modules = modules || settings.modules;
130
+ $.each(modules, function (index, name) {
131
+ if (!module.moduleExists(name)) {
132
+ disabledModules.push(name);
133
+ }
134
+ });
135
+
136
+ return disabledModules;
137
+ },
138
+ },
139
+
140
+ change: {
141
+ setting: function (setting, value, modules, modifyExisting) {
142
+ modules = (typeof modules === 'string')
143
+ ? (modules === 'all')
144
+ ? settings.modules
145
+ : [modules]
146
+ : modules || settings.modules;
147
+ modifyExisting = (modifyExisting !== undefined)
148
+ ? modifyExisting
149
+ : true;
150
+ $.each(modules, function (index, name) {
151
+ var
152
+ namespace = (module.moduleExists(name))
153
+ ? $.fn[name].settings.namespace || false
154
+ : true,
155
+ $existingModules
156
+ ;
157
+ if (module.moduleExists(name)) {
158
+ module.verbose('Changing default setting', setting, value, name);
159
+ $.fn[name].settings[setting] = value;
160
+ if (modifyExisting && namespace) {
161
+ $existingModules = $(':data(module-' + namespace + ')');
162
+ if ($existingModules.length > 0) {
163
+ module.verbose('Modifying existing settings', $existingModules);
164
+ $existingModules[name]('setting', setting, value);
165
+ }
166
+ }
167
+ }
168
+ });
169
+ },
170
+ settings: function (newSettings, modules, modifyExisting) {
171
+ modules = (typeof modules === 'string')
172
+ ? [modules]
173
+ : modules || settings.modules;
174
+ modifyExisting = (modifyExisting !== undefined)
175
+ ? modifyExisting
176
+ : true;
177
+ $.each(modules, function (index, name) {
178
+ var
179
+ $existingModules
180
+ ;
181
+ if (module.moduleExists(name)) {
182
+ module.verbose('Changing default setting', newSettings, name);
183
+ $.extend(true, $.fn[name].settings, newSettings);
184
+ if (modifyExisting && namespace) {
185
+ $existingModules = $(':data(module-' + namespace + ')');
186
+ if ($existingModules.length > 0) {
187
+ module.verbose('Modifying existing settings', $existingModules);
188
+ $existingModules[name]('setting', newSettings);
189
+ }
190
+ }
191
+ }
192
+ });
193
+ },
194
+ },
195
+
196
+ enable: {
197
+ console: function () {
198
+ module.console(true);
199
+ },
200
+ debug: function (modules, modifyExisting) {
201
+ modules = modules || settings.modules;
202
+ module.debug('Enabling debug for modules', modules);
203
+ module.change.setting('debug', true, modules, modifyExisting);
204
+ },
205
+ verbose: function (modules, modifyExisting) {
206
+ modules = modules || settings.modules;
207
+ module.debug('Enabling verbose debug for modules', modules);
208
+ module.change.setting('verbose', true, modules, modifyExisting);
209
+ },
210
+ },
211
+ disable: {
212
+ console: function () {
213
+ module.console(false);
214
+ },
215
+ debug: function (modules, modifyExisting) {
216
+ modules = modules || settings.modules;
217
+ module.debug('Disabling debug for modules', modules);
218
+ module.change.setting('debug', false, modules, modifyExisting);
219
+ },
220
+ verbose: function (modules, modifyExisting) {
221
+ modules = modules || settings.modules;
222
+ module.debug('Disabling verbose debug for modules', modules);
223
+ module.change.setting('verbose', false, modules, modifyExisting);
224
+ },
225
+ },
226
+
227
+ console: function (enable) {
228
+ if (enable) {
229
+ if (instance.cache.console === undefined) {
230
+ module.error(error.console);
231
+
232
+ return;
233
+ }
234
+ module.debug('Restoring console function');
235
+ window.console = instance.cache.console;
236
+ } else {
237
+ module.debug('Disabling console function');
238
+ instance.cache.console = window.console;
239
+ window.console = {
240
+ clear: function () {},
241
+ error: function () {},
242
+ group: function () {},
243
+ groupCollapsed: function () {},
244
+ groupEnd: function () {},
245
+ info: function () {},
246
+ log: function () {},
247
+ markTimeline: function () {},
248
+ warn: function () {},
249
+ };
250
+ }
251
+ },
252
+
253
+ destroy: function () {
254
+ module.verbose('Destroying previous site for', $module);
255
+ $module
256
+ .removeData(moduleNamespace)
257
+ ;
258
+ },
259
+
260
+ cache: {},
261
+
262
+ setting: function (name, value) {
263
+ if ($.isPlainObject(name)) {
264
+ $.extend(true, settings, name);
265
+ } else if (value !== undefined) {
266
+ settings[name] = value;
267
+ } else {
268
+ return settings[name];
269
+ }
270
+ },
271
+ internal: function (name, value) {
272
+ if ($.isPlainObject(name)) {
273
+ $.extend(true, module, name);
274
+ } else if (value !== undefined) {
275
+ module[name] = value;
276
+ } else {
277
+ return module[name];
278
+ }
279
+ },
280
+ debug: function () {
281
+ if (settings.debug) {
282
+ if (settings.performance) {
283
+ module.performance.log(arguments);
284
+ } else {
285
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
286
+ module.debug.apply(console, arguments);
287
+ }
288
+ }
289
+ },
290
+ verbose: function () {
291
+ if (settings.verbose && settings.debug) {
292
+ if (settings.performance) {
293
+ module.performance.log(arguments);
294
+ } else {
295
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
296
+ module.verbose.apply(console, arguments);
297
+ }
298
+ }
299
+ },
300
+ error: function () {
301
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
302
+ module.error.apply(console, arguments);
303
+ },
304
+ performance: {
305
+ log: function (message) {
306
+ var
307
+ currentTime,
308
+ executionTime,
309
+ previousTime
310
+ ;
311
+ if (settings.performance) {
312
+ currentTime = new Date().getTime();
313
+ previousTime = time || currentTime;
314
+ executionTime = currentTime - previousTime;
315
+ time = currentTime;
316
+ performance.push({
317
+ Element: element,
318
+ Name: message[0],
319
+ Arguments: [].slice.call(message, 1) || '',
320
+ 'Execution Time': executionTime,
321
+ });
322
+ }
323
+ clearTimeout(module.performance.timer);
324
+ module.performance.timer = setTimeout(module.performance.display, 500);
325
+ },
326
+ display: function () {
327
+ var
328
+ title = settings.name + ':',
329
+ totalTime = 0
330
+ ;
331
+ time = false;
332
+ clearTimeout(module.performance.timer);
333
+ $.each(performance, function (index, data) {
334
+ totalTime += data['Execution Time'];
335
+ });
336
+ title += ' ' + totalTime + 'ms';
337
+ if ((console.group !== undefined || console.table !== undefined) && performance.length > 0) {
338
+ console.groupCollapsed(title);
339
+ if (console.table) {
340
+ console.table(performance);
341
+ } else {
342
+ $.each(performance, function (index, data) {
343
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
344
+ });
345
+ }
346
+ console.groupEnd();
347
+ }
348
+ performance = [];
349
+ },
350
+ },
351
+ invoke: function (query, passedArguments, context) {
352
+ var
353
+ object = instance,
354
+ maxDepth,
355
+ found,
356
+ response
357
+ ;
358
+ passedArguments = passedArguments || queryArguments;
359
+ context = context || element;
360
+ if (typeof query == 'string' && object !== undefined) {
361
+ query = query.split(/[\. ]/);
362
+ maxDepth = query.length - 1;
363
+ $.each(query, function (depth, value) {
364
+ var camelCaseValue = (depth != maxDepth)
365
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
366
+ : query
367
+ ;
368
+ if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
369
+ object = object[camelCaseValue];
370
+ } else if (object[camelCaseValue] !== undefined) {
371
+ found = object[camelCaseValue];
372
+
373
+ return false;
374
+ } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
375
+ object = object[value];
376
+ } else if (object[value] !== undefined) {
377
+ found = object[value];
378
+
379
+ return false;
380
+ } else {
381
+ module.error(error.method, query);
382
+
383
+ return false;
384
+ }
385
+ });
386
+ }
387
+ if (isFunction(found)) {
388
+ response = found.apply(context, passedArguments);
389
+ } else if (found !== undefined) {
390
+ response = found;
391
+ }
392
+ if (Array.isArray(returnedValue)) {
393
+ returnedValue.push(response);
394
+ } else if (returnedValue !== undefined) {
395
+ returnedValue = [returnedValue, response];
396
+ } else if (response !== undefined) {
397
+ returnedValue = response;
398
+ }
399
+
400
+ return found;
401
+ },
402
+ };
403
+
404
+ if (methodInvoked) {
405
+ if (instance === undefined) {
406
+ module.initialize();
160
407
  }
161
- }
162
- });
163
- },
164
- settings: function(newSettings, modules, modifyExisting) {
165
- modules = (typeof modules === 'string')
166
- ? [modules]
167
- : modules || settings.modules
168
- ;
169
- modifyExisting = (modifyExisting !== undefined)
170
- ? modifyExisting
171
- : true
172
- ;
173
- $.each(modules, function(index, name) {
174
- var
175
- $existingModules
176
- ;
177
- if(module.moduleExists(name)) {
178
- module.verbose('Changing default setting', newSettings, name);
179
- $.extend(true, $.fn[name].settings, newSettings);
180
- if(modifyExisting && namespace) {
181
- $existingModules = $(':data(module-' + namespace + ')');
182
- if($existingModules.length > 0) {
183
- module.verbose('Modifying existing settings', $existingModules);
184
- $existingModules[name]('setting', newSettings);
185
- }
408
+ module.invoke(query);
409
+ } else {
410
+ if (instance !== undefined) {
411
+ module.destroy();
186
412
  }
187
- }
188
- });
189
- }
190
- },
191
-
192
- enable: {
193
- console: function() {
194
- module.console(true);
195
- },
196
- debug: function(modules, modifyExisting) {
197
- modules = modules || settings.modules;
198
- module.debug('Enabling debug for modules', modules);
199
- module.change.setting('debug', true, modules, modifyExisting);
200
- },
201
- verbose: function(modules, modifyExisting) {
202
- modules = modules || settings.modules;
203
- module.debug('Enabling verbose debug for modules', modules);
204
- module.change.setting('verbose', true, modules, modifyExisting);
205
- }
206
- },
207
- disable: {
208
- console: function() {
209
- module.console(false);
210
- },
211
- debug: function(modules, modifyExisting) {
212
- modules = modules || settings.modules;
213
- module.debug('Disabling debug for modules', modules);
214
- module.change.setting('debug', false, modules, modifyExisting);
215
- },
216
- verbose: function(modules, modifyExisting) {
217
- modules = modules || settings.modules;
218
- module.debug('Disabling verbose debug for modules', modules);
219
- module.change.setting('verbose', false, modules, modifyExisting);
220
- }
221
- },
222
-
223
- console: function(enable) {
224
- if(enable) {
225
- if(instance.cache.console === undefined) {
226
- module.error(error.console);
227
- return;
228
- }
229
- module.debug('Restoring console function');
230
- window.console = instance.cache.console;
231
- }
232
- else {
233
- module.debug('Disabling console function');
234
- instance.cache.console = window.console;
235
- window.console = {
236
- clear : function(){},
237
- error : function(){},
238
- group : function(){},
239
- groupCollapsed : function(){},
240
- groupEnd : function(){},
241
- info : function(){},
242
- log : function(){},
243
- markTimeline : function(){},
244
- warn : function(){}
245
- };
246
- }
247
- },
248
-
249
- destroy: function() {
250
- module.verbose('Destroying previous site for', $module);
251
- $module
252
- .removeData(moduleNamespace)
253
- ;
254
- },
255
-
256
- cache: {},
257
-
258
- setting: function(name, value) {
259
- if( $.isPlainObject(name) ) {
260
- $.extend(true, settings, name);
261
- }
262
- else if(value !== undefined) {
263
- settings[name] = value;
264
- }
265
- else {
266
- return settings[name];
267
- }
268
- },
269
- internal: function(name, value) {
270
- if( $.isPlainObject(name) ) {
271
- $.extend(true, module, name);
272
- }
273
- else if(value !== undefined) {
274
- module[name] = value;
275
- }
276
- else {
277
- return module[name];
278
- }
279
- },
280
- debug: function() {
281
- if(settings.debug) {
282
- if(settings.performance) {
283
- module.performance.log(arguments);
284
- }
285
- else {
286
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
287
- module.debug.apply(console, arguments);
288
- }
289
- }
290
- },
291
- verbose: function() {
292
- if(settings.verbose && settings.debug) {
293
- if(settings.performance) {
294
- module.performance.log(arguments);
413
+ module.initialize();
295
414
  }
296
- else {
297
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
298
- module.verbose.apply(console, arguments);
299
- }
300
- }
301
- },
302
- error: function() {
303
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
304
- module.error.apply(console, arguments);
305
- },
306
- performance: {
307
- log: function(message) {
308
- var
309
- currentTime,
310
- executionTime,
311
- previousTime
312
- ;
313
- if(settings.performance) {
314
- currentTime = new Date().getTime();
315
- previousTime = time || currentTime;
316
- executionTime = currentTime - previousTime;
317
- time = currentTime;
318
- performance.push({
319
- 'Element' : element,
320
- 'Name' : message[0],
321
- 'Arguments' : [].slice.call(message, 1) || '',
322
- 'Execution Time' : executionTime
323
- });
324
- }
325
- clearTimeout(module.performance.timer);
326
- module.performance.timer = setTimeout(module.performance.display, 500);
327
- },
328
- display: function() {
329
- var
330
- title = settings.name + ':',
331
- totalTime = 0
332
- ;
333
- time = false;
334
- clearTimeout(module.performance.timer);
335
- $.each(performance, function(index, data) {
336
- totalTime += data['Execution Time'];
337
- });
338
- title += ' ' + totalTime + 'ms';
339
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
340
- console.groupCollapsed(title);
341
- if(console.table) {
342
- console.table(performance);
343
- }
344
- else {
345
- $.each(performance, function(index, data) {
346
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
347
- });
348
- }
349
- console.groupEnd();
350
- }
351
- performance = [];
352
- }
353
- },
354
- invoke: function(query, passedArguments, context) {
355
- var
356
- object = instance,
357
- maxDepth,
358
- found,
359
- response
360
- ;
361
- passedArguments = passedArguments || queryArguments;
362
- context = context || element;
363
- if(typeof query == 'string' && object !== undefined) {
364
- query = query.split(/[\. ]/);
365
- maxDepth = query.length - 1;
366
- $.each(query, function(depth, value) {
367
- var camelCaseValue = (depth != maxDepth)
368
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
369
- : query
370
- ;
371
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
372
- object = object[camelCaseValue];
373
- }
374
- else if( object[camelCaseValue] !== undefined ) {
375
- found = object[camelCaseValue];
376
- return false;
377
- }
378
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
379
- object = object[value];
380
- }
381
- else if( object[value] !== undefined ) {
382
- found = object[value];
383
- return false;
384
- }
385
- else {
386
- module.error(error.method, query);
387
- return false;
388
- }
389
- });
390
- }
391
- if ( $.isFunction( found ) ) {
392
- response = found.apply(context, passedArguments);
393
- }
394
- else if(found !== undefined) {
395
- response = found;
396
- }
397
- if(Array.isArray(returnedValue)) {
398
- returnedValue.push(response);
399
- }
400
- else if(returnedValue !== undefined) {
401
- returnedValue = [returnedValue, response];
402
- }
403
- else if(response !== undefined) {
404
- returnedValue = response;
405
- }
406
- return found;
407
- }
408
- };
409
-
410
- if(methodInvoked) {
411
- if(instance === undefined) {
412
- module.initialize();
413
- }
414
- module.invoke(query);
415
- }
416
- else {
417
- if(instance !== undefined) {
418
- module.destroy();
419
- }
420
- module.initialize();
421
- }
422
- return (returnedValue !== undefined)
423
- ? returnedValue
424
- : this
425
- ;
426
- };
427
-
428
- $.site.settings = {
429
-
430
- name : 'Site',
431
- namespace : 'site',
432
-
433
- error : {
434
- console : 'Console cannot be restored, most likely it was overwritten outside of module',
435
- method : 'The method you called is not defined.'
436
- },
437
-
438
- debug : false,
439
- verbose : false,
440
- performance : true,
441
-
442
- modules: [
443
- 'accordion',
444
- 'api',
445
- 'calendar',
446
- 'checkbox',
447
- 'dimmer',
448
- 'dropdown',
449
- 'embed',
450
- 'form',
451
- 'modal',
452
- 'nag',
453
- 'popup',
454
- 'slider',
455
- 'rating',
456
- 'shape',
457
- 'sidebar',
458
- 'state',
459
- 'sticky',
460
- 'tab',
461
- 'toast',
462
- 'transition',
463
- 'visibility',
464
- 'visit'
465
- ],
466
-
467
- siteNamespace : 'site',
468
- namespaceStub : {
469
- cache : {},
470
- config : {},
471
- sections : {},
472
- section : {},
473
- utilities : {}
474
- }
475
-
476
- };
477
-
478
- // allows for selection of elements with data attributes
479
- $.extend($.expr[ ":" ], {
480
- data: ($.expr.createPseudo)
481
- ? $.expr.createPseudo(function(dataName) {
482
- return function(elem) {
483
- return !!$.data(elem, dataName);
484
- };
485
- })
486
- : function(elem, i, match) {
487
- // support: jQuery < 1.8
488
- return !!$.data(elem, match[ 3 ]);
489
- }
490
- });
491
-
492
415
 
493
- })( jQuery, window, document );
416
+ return (returnedValue !== undefined)
417
+ ? returnedValue
418
+ : this;
419
+ };
420
+
421
+ $.site.settings = {
422
+
423
+ name: 'Site',
424
+ namespace: 'site',
425
+
426
+ error: {
427
+ console: 'Console cannot be restored, most likely it was overwritten outside of module',
428
+ method: 'The method you called is not defined.',
429
+ },
430
+
431
+ debug: false,
432
+ verbose: false,
433
+ performance: true,
434
+
435
+ modules: [
436
+ 'accordion',
437
+ 'api',
438
+ 'calendar',
439
+ 'checkbox',
440
+ 'dimmer',
441
+ 'dropdown',
442
+ 'embed',
443
+ 'form',
444
+ 'modal',
445
+ 'nag',
446
+ 'popup',
447
+ 'slider',
448
+ 'rating',
449
+ 'shape',
450
+ 'sidebar',
451
+ 'state',
452
+ 'sticky',
453
+ 'tab',
454
+ 'toast',
455
+ 'transition',
456
+ 'visibility',
457
+ 'visit',
458
+ ],
459
+
460
+ siteNamespace: 'site',
461
+ namespaceStub: {
462
+ cache: {},
463
+ config: {},
464
+ sections: {},
465
+ section: {},
466
+ utilities: {},
467
+ },
468
+
469
+ };
470
+
471
+ // allows for selection of elements with data attributes
472
+ $.extend($.expr.pseudos, {
473
+ data: $.expr.createPseudo(function (dataName) {
474
+ return function (elem) {
475
+ return !!$.data(elem, dataName);
476
+ };
477
+ }),
478
+ });
479
+ })(jQuery, window, document);