fomantic-ui 2.9.1-beta.3 → 2.9.1-beta.31

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 (540) hide show
  1. package/.eslint/eqeqeq-rule.js +18 -0
  2. package/.eslint/index.js +29 -0
  3. package/.eslint/no-extra-parens-rule.js +17 -0
  4. package/.eslint/package.json +11 -0
  5. package/.eslintrc.js +123 -0
  6. package/.github/workflows/ci.yml +37 -4
  7. package/.github/workflows/nightly.yml +1 -1
  8. package/.github/workflows/release.yml +1 -1
  9. package/.prettierrc.js +12 -0
  10. package/.stylelintrc.js +48 -0
  11. package/README.md +1 -1
  12. package/dist/components/accordion.css +35 -53
  13. package/dist/components/accordion.js +568 -595
  14. package/dist/components/accordion.min.css +2 -2
  15. package/dist/components/accordion.min.js +2 -2
  16. package/dist/components/ad.css +34 -45
  17. package/dist/components/ad.min.css +2 -2
  18. package/dist/components/api.js +1157 -1179
  19. package/dist/components/api.min.js +2 -2
  20. package/dist/components/breadcrumb.css +5 -5
  21. package/dist/components/breadcrumb.min.css +2 -2
  22. package/dist/components/button.css +709 -1121
  23. package/dist/components/button.min.css +2 -2
  24. package/dist/components/calendar.css +24 -27
  25. package/dist/components/calendar.js +1934 -1809
  26. package/dist/components/calendar.min.css +2 -2
  27. package/dist/components/calendar.min.js +2 -2
  28. package/dist/components/card.css +219 -365
  29. package/dist/components/card.min.css +2 -2
  30. package/dist/components/checkbox.css +119 -187
  31. package/dist/components/checkbox.js +842 -841
  32. package/dist/components/checkbox.min.css +2 -2
  33. package/dist/components/checkbox.min.js +2 -2
  34. package/dist/components/comment.css +41 -59
  35. package/dist/components/comment.min.css +2 -2
  36. package/dist/components/container.css +7 -6
  37. package/dist/components/container.min.css +2 -2
  38. package/dist/components/dimmer.css +53 -172
  39. package/dist/components/dimmer.js +706 -737
  40. package/dist/components/dimmer.min.css +2 -2
  41. package/dist/components/dimmer.min.js +2 -2
  42. package/dist/components/divider.css +43 -61
  43. package/dist/components/divider.min.css +2 -2
  44. package/dist/components/dropdown.css +252 -386
  45. package/dist/components/dropdown.js +4179 -4236
  46. package/dist/components/dropdown.min.css +2 -2
  47. package/dist/components/dropdown.min.js +2 -2
  48. package/dist/components/embed.css +18 -29
  49. package/dist/components/embed.js +645 -675
  50. package/dist/components/embed.min.css +2 -2
  51. package/dist/components/embed.min.js +2 -2
  52. package/dist/components/emoji.css +9 -9
  53. package/dist/components/emoji.min.css +1 -1
  54. package/dist/components/feed.css +35 -57
  55. package/dist/components/feed.min.css +2 -2
  56. package/dist/components/flag.css +6 -4
  57. package/dist/components/flag.min.css +2 -2
  58. package/dist/components/flyout.css +86 -141
  59. package/dist/components/flyout.js +1457 -1465
  60. package/dist/components/flyout.min.css +2 -2
  61. package/dist/components/flyout.min.js +2 -2
  62. package/dist/components/form.css +244 -339
  63. package/dist/components/form.js +2020 -2004
  64. package/dist/components/form.min.css +2 -2
  65. package/dist/components/form.min.js +2 -2
  66. package/dist/components/grid.css +172 -319
  67. package/dist/components/grid.min.css +2 -2
  68. package/dist/components/header.css +118 -142
  69. package/dist/components/header.min.css +2 -2
  70. package/dist/components/icon.css +660 -718
  71. package/dist/components/icon.min.css +2 -2
  72. package/dist/components/image.css +39 -63
  73. package/dist/components/image.min.css +2 -2
  74. package/dist/components/input.css +356 -274
  75. package/dist/components/input.min.css +2 -2
  76. package/dist/components/item.css +84 -131
  77. package/dist/components/item.min.css +2 -2
  78. package/dist/components/label.css +359 -410
  79. package/dist/components/label.min.css +2 -2
  80. package/dist/components/list.css +49 -70
  81. package/dist/components/list.min.css +2 -2
  82. package/dist/components/loader.css +67 -155
  83. package/dist/components/loader.min.css +2 -2
  84. package/dist/components/menu.css +269 -431
  85. package/dist/components/menu.min.css +1 -1
  86. package/dist/components/message.css +125 -197
  87. package/dist/components/message.min.css +2 -2
  88. package/dist/components/modal.css +119 -154
  89. package/dist/components/modal.js +1488 -1486
  90. package/dist/components/modal.min.css +2 -2
  91. package/dist/components/modal.min.js +2 -2
  92. package/dist/components/nag.css +53 -63
  93. package/dist/components/nag.js +520 -526
  94. package/dist/components/nag.min.css +2 -2
  95. package/dist/components/nag.min.js +2 -2
  96. package/dist/components/placeholder.css +22 -42
  97. package/dist/components/placeholder.min.css +2 -2
  98. package/dist/components/popup.css +423 -201
  99. package/dist/components/popup.js +1454 -1456
  100. package/dist/components/popup.min.css +2 -2
  101. package/dist/components/popup.min.js +2 -2
  102. package/dist/components/progress.css +106 -211
  103. package/dist/components/progress.js +969 -997
  104. package/dist/components/progress.min.css +2 -2
  105. package/dist/components/progress.min.js +2 -2
  106. package/dist/components/rail.css +15 -20
  107. package/dist/components/rail.min.css +1 -1
  108. package/dist/components/rating.css +80 -121
  109. package/dist/components/rating.js +505 -523
  110. package/dist/components/rating.min.css +2 -2
  111. package/dist/components/rating.min.js +2 -2
  112. package/dist/components/reset.css +8 -13
  113. package/dist/components/reset.min.css +2 -2
  114. package/dist/components/reveal.css +44 -83
  115. package/dist/components/reveal.min.css +2 -2
  116. package/dist/components/search.css +69 -98
  117. package/dist/components/search.js +1493 -1534
  118. package/dist/components/search.min.css +2 -2
  119. package/dist/components/search.min.js +2 -2
  120. package/dist/components/segment.css +148 -224
  121. package/dist/components/segment.min.css +2 -2
  122. package/dist/components/shape.css +14 -30
  123. package/dist/components/shape.js +781 -810
  124. package/dist/components/shape.min.css +2 -2
  125. package/dist/components/shape.min.js +2 -2
  126. package/dist/components/sidebar.css +103 -206
  127. package/dist/components/sidebar.js +1061 -1099
  128. package/dist/components/sidebar.min.css +2 -2
  129. package/dist/components/sidebar.min.js +2 -2
  130. package/dist/components/site.css +28 -41
  131. package/dist/components/site.js +436 -476
  132. package/dist/components/site.min.css +2 -2
  133. package/dist/components/site.min.js +2 -2
  134. package/dist/components/slider.css +93 -121
  135. package/dist/components/slider.js +1310 -1311
  136. package/dist/components/slider.min.css +1 -1
  137. package/dist/components/slider.min.js +2 -2
  138. package/dist/components/state.js +639 -657
  139. package/dist/components/state.min.js +2 -2
  140. package/dist/components/statistic.css +75 -116
  141. package/dist/components/statistic.min.css +2 -2
  142. package/dist/components/step.css +77 -150
  143. package/dist/components/step.min.css +2 -2
  144. package/dist/components/sticky.css +1 -5
  145. package/dist/components/sticky.js +848 -901
  146. package/dist/components/sticky.min.css +2 -2
  147. package/dist/components/sticky.min.js +2 -2
  148. package/dist/components/tab.css +10 -14
  149. package/dist/components/tab.js +922 -965
  150. package/dist/components/tab.min.css +2 -2
  151. package/dist/components/tab.min.js +2 -2
  152. package/dist/components/table.css +547 -774
  153. package/dist/components/table.min.css +2 -2
  154. package/dist/components/text.css +32 -32
  155. package/dist/components/text.min.css +1 -1
  156. package/dist/components/toast.css +69 -147
  157. package/dist/components/toast.js +910 -884
  158. package/dist/components/toast.min.css +2 -2
  159. package/dist/components/toast.min.js +2 -2
  160. package/dist/components/transition.css +369 -1280
  161. package/dist/components/transition.js +1047 -1077
  162. package/dist/components/transition.min.css +2 -2
  163. package/dist/components/transition.min.js +2 -2
  164. package/dist/components/visibility.js +1213 -1245
  165. package/dist/components/visibility.min.js +2 -2
  166. package/dist/semantic.css +5637 -8398
  167. package/dist/semantic.js +29021 -29405
  168. package/dist/semantic.min.css +2 -2
  169. package/dist/semantic.min.js +2 -2
  170. package/dist/themes/basic/assets/fonts/icons.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  172. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  174. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  175. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  176. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  177. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  178. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  179. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  180. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  181. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  182. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  183. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  184. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  185. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  186. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  187. package/dist/themes/github/assets/fonts/octicons.woff2 +0 -0
  188. package/examples/.eslintrc.js +6 -0
  189. package/examples/assets/show-examples.js +13 -13
  190. package/examples/components/sticky-context.html +1 -1
  191. package/examples/fixed.html +2 -2
  192. package/examples/grid.html +4 -4
  193. package/examples/login.html +1 -1
  194. package/examples/responsive.html +1 -1
  195. package/examples/sticky.html +3 -3
  196. package/gulpfile.js +13 -11
  197. package/package.json +18 -11
  198. package/scripts/nightly-version.js +83 -75
  199. package/src/_site/collections/menu.overrides +1 -1
  200. package/src/_site/elements/flag.variables +2 -2
  201. package/src/_site/globals/site.variables +1 -1
  202. package/src/_site/modules/embed.variables +3 -0
  203. package/src/definitions/behaviors/api.js +1158 -1180
  204. package/src/definitions/behaviors/form.js +2019 -2003
  205. package/src/definitions/behaviors/state.js +645 -663
  206. package/src/definitions/behaviors/visibility.js +1212 -1244
  207. package/src/definitions/collections/breadcrumb.less +43 -47
  208. package/src/definitions/collections/form.less +866 -884
  209. package/src/definitions/collections/grid.less +1680 -1699
  210. package/src/definitions/collections/menu.less +1521 -1544
  211. package/src/definitions/collections/message.less +294 -298
  212. package/src/definitions/collections/table.less +1657 -1661
  213. package/src/definitions/elements/button.less +1714 -1756
  214. package/src/definitions/elements/container.less +211 -211
  215. package/src/definitions/elements/divider.less +198 -211
  216. package/src/definitions/elements/emoji.less +41 -48
  217. package/src/definitions/elements/flag.less +46 -48
  218. package/src/definitions/elements/header.less +351 -359
  219. package/src/definitions/elements/icon.less +541 -484
  220. package/src/definitions/elements/image.less +216 -227
  221. package/src/definitions/elements/input.less +692 -698
  222. package/src/definitions/elements/label.less +784 -806
  223. package/src/definitions/elements/list.less +810 -814
  224. package/src/definitions/elements/loader.less +273 -268
  225. package/src/definitions/elements/placeholder.less +173 -170
  226. package/src/definitions/elements/rail.less +93 -93
  227. package/src/definitions/elements/reveal.less +192 -198
  228. package/src/definitions/elements/segment.less +742 -749
  229. package/src/definitions/elements/step.less +423 -437
  230. package/src/definitions/elements/text.less +34 -36
  231. package/src/definitions/globals/reset.less +11 -8
  232. package/src/definitions/globals/site.js +435 -475
  233. package/src/definitions/globals/site.less +108 -110
  234. package/src/definitions/modules/accordion.js +567 -594
  235. package/src/definitions/modules/accordion.less +244 -248
  236. package/src/definitions/modules/calendar.js +1933 -1808
  237. package/src/definitions/modules/calendar.less +100 -97
  238. package/src/definitions/modules/checkbox.js +841 -840
  239. package/src/definitions/modules/checkbox.less +531 -552
  240. package/src/definitions/modules/dimmer.js +705 -736
  241. package/src/definitions/modules/dimmer.less +294 -305
  242. package/src/definitions/modules/dropdown.js +4178 -4235
  243. package/src/definitions/modules/dropdown.less +1568 -1598
  244. package/src/definitions/modules/embed.js +644 -674
  245. package/src/definitions/modules/embed.less +82 -84
  246. package/src/definitions/modules/flyout.js +1456 -1464
  247. package/src/definitions/modules/flyout.less +445 -456
  248. package/src/definitions/modules/modal.js +1487 -1485
  249. package/src/definitions/modules/modal.less +458 -467
  250. package/src/definitions/modules/nag.js +519 -525
  251. package/src/definitions/modules/nag.less +136 -149
  252. package/src/definitions/modules/popup.js +1453 -1455
  253. package/src/definitions/modules/popup.less +737 -692
  254. package/src/definitions/modules/progress.js +968 -996
  255. package/src/definitions/modules/progress.less +523 -499
  256. package/src/definitions/modules/rating.js +504 -522
  257. package/src/definitions/modules/rating.less +98 -103
  258. package/src/definitions/modules/search.js +1492 -1533
  259. package/src/definitions/modules/search.less +374 -394
  260. package/src/definitions/modules/shape.js +780 -809
  261. package/src/definitions/modules/shape.less +70 -79
  262. package/src/definitions/modules/sidebar.js +1060 -1098
  263. package/src/definitions/modules/sidebar.less +463 -476
  264. package/src/definitions/modules/slider.js +1309 -1310
  265. package/src/definitions/modules/slider.less +309 -310
  266. package/src/definitions/modules/sticky.js +864 -917
  267. package/src/definitions/modules/sticky.less +17 -25
  268. package/src/definitions/modules/tab.js +921 -964
  269. package/src/definitions/modules/tab.less +48 -54
  270. package/src/definitions/modules/toast.js +909 -883
  271. package/src/definitions/modules/toast.less +589 -589
  272. package/src/definitions/modules/transition.js +1046 -1076
  273. package/src/definitions/modules/transition.less +65 -31
  274. package/src/definitions/views/ad.less +207 -208
  275. package/src/definitions/views/card.less +955 -973
  276. package/src/definitions/views/comment.less +192 -200
  277. package/src/definitions/views/feed.less +222 -226
  278. package/src/definitions/views/item.less +437 -448
  279. package/src/definitions/views/statistic.less +273 -279
  280. package/src/semantic.less +8 -6
  281. package/src/theme.config.example +53 -53
  282. package/src/theme.less +44 -35
  283. package/src/themes/amazon/elements/button.overrides +23 -24
  284. package/src/themes/amazon/elements/button.variables +18 -23
  285. package/src/themes/amazon/globals/site.variables +16 -17
  286. package/src/themes/basic/assets/fonts/icons.woff2 +0 -0
  287. package/src/themes/basic/collections/table.overrides +0 -1
  288. package/src/themes/basic/collections/table.variables +3 -3
  289. package/src/themes/basic/elements/button.overrides +0 -1
  290. package/src/themes/basic/elements/button.variables +9 -9
  291. package/src/themes/basic/elements/icon.overrides +9 -169
  292. package/src/themes/basic/elements/icon.variables +161 -18
  293. package/src/themes/basic/elements/step.overrides +2 -2
  294. package/src/themes/basic/elements/step.variables +2 -2
  295. package/src/themes/basic/globals/reset.overrides +1 -1
  296. package/src/themes/basic/globals/reset.variables +1 -1
  297. package/src/themes/basic/modules/progress.variables +2 -2
  298. package/src/themes/basic/views/card.overrides +0 -1
  299. package/src/themes/basic/views/card.variables +6 -6
  300. package/src/themes/bookish/elements/header.overrides +4 -4
  301. package/src/themes/bookish/elements/header.variables +5 -5
  302. package/src/themes/bootstrap3/elements/button.overrides +3 -0
  303. package/src/themes/bootstrap3/elements/button.variables +20 -25
  304. package/src/themes/chubby/collections/form.overrides +9 -9
  305. package/src/themes/chubby/collections/form.variables +3 -3
  306. package/src/themes/chubby/collections/menu.overrides +3 -0
  307. package/src/themes/chubby/collections/menu.variables +3 -3
  308. package/src/themes/chubby/elements/button.overrides +8 -10
  309. package/src/themes/chubby/elements/button.variables +10 -10
  310. package/src/themes/chubby/elements/header.overrides +1 -1
  311. package/src/themes/chubby/elements/header.variables +4 -4
  312. package/src/themes/chubby/modules/accordion.overrides +2 -2
  313. package/src/themes/chubby/modules/accordion.variables +4 -4
  314. package/src/themes/chubby/views/comment.overrides +5 -5
  315. package/src/themes/chubby/views/comment.variables +11 -11
  316. package/src/themes/classic/collections/table.variables +3 -3
  317. package/src/themes/classic/elements/button.variables +36 -43
  318. package/src/themes/classic/elements/header.variables +4 -4
  319. package/src/themes/classic/modules/progress.variables +3 -3
  320. package/src/themes/classic/views/card.overrides +25 -27
  321. package/src/themes/classic/views/card.variables +7 -7
  322. package/src/themes/colored/modules/checkbox.overrides +3 -0
  323. package/src/themes/colored/modules/checkbox.variables +1 -3
  324. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  325. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  326. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  327. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  328. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  329. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  330. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  331. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  332. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  333. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  334. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  335. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  336. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  337. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  338. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  339. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  340. package/src/themes/default/collections/breadcrumb.variables +4 -4
  341. package/src/themes/default/collections/form.variables +15 -16
  342. package/src/themes/default/collections/grid.overrides +0 -1
  343. package/src/themes/default/collections/grid.variables +14 -16
  344. package/src/themes/default/collections/menu.variables +31 -45
  345. package/src/themes/default/collections/message.variables +84 -123
  346. package/src/themes/default/collections/table.overrides +3 -0
  347. package/src/themes/default/collections/table.variables +30 -34
  348. package/src/themes/default/elements/button.variables +45 -52
  349. package/src/themes/default/elements/container.variables +8 -16
  350. package/src/themes/default/elements/divider.overrides +8 -9
  351. package/src/themes/default/elements/divider.variables +5 -6
  352. package/src/themes/default/elements/emoji.overrides +0 -1
  353. package/src/themes/default/elements/emoji.variables +3555 -3555
  354. package/src/themes/default/elements/flag.variables +1594 -1594
  355. package/src/themes/default/elements/header.overrides +0 -1
  356. package/src/themes/default/elements/header.variables +21 -21
  357. package/src/themes/default/elements/icon.variables +2023 -2009
  358. package/src/themes/default/elements/image.variables +6 -7
  359. package/src/themes/default/elements/input.variables +11 -12
  360. package/src/themes/default/elements/label.variables +25 -26
  361. package/src/themes/default/elements/list.variables +17 -21
  362. package/src/themes/default/elements/loader.variables +16 -17
  363. package/src/themes/default/elements/placeholder.variables +12 -9
  364. package/src/themes/default/elements/rail.variables +4 -5
  365. package/src/themes/default/elements/reveal.variables +1 -1
  366. package/src/themes/default/elements/segment.variables +24 -36
  367. package/src/themes/default/elements/step.overrides +4 -4
  368. package/src/themes/default/elements/step.variables +19 -22
  369. package/src/themes/default/elements/text.variables +2 -3
  370. package/src/themes/default/globals/colors.less +588 -588
  371. package/src/themes/default/globals/reset.overrides +63 -59
  372. package/src/themes/default/globals/reset.variables +1 -1
  373. package/src/themes/default/globals/site.variables +1075 -1123
  374. package/src/themes/default/globals/variation.variables +13 -4
  375. package/src/themes/default/modules/accordion.overrides +11 -11
  376. package/src/themes/default/modules/accordion.variables +15 -20
  377. package/src/themes/default/modules/calendar.variables +2 -0
  378. package/src/themes/default/modules/chatroom.variables +1 -1
  379. package/src/themes/default/modules/checkbox.overrides +8 -9
  380. package/src/themes/default/modules/checkbox.variables +24 -33
  381. package/src/themes/default/modules/dimmer.variables +14 -17
  382. package/src/themes/default/modules/dropdown.overrides +17 -17
  383. package/src/themes/default/modules/dropdown.variables +29 -31
  384. package/src/themes/default/modules/embed.variables +9 -13
  385. package/src/themes/default/modules/flyout.variables +8 -8
  386. package/src/themes/default/modules/modal.variables +64 -67
  387. package/src/themes/default/modules/nag.variables +11 -14
  388. package/src/themes/default/modules/popup.variables +14 -13
  389. package/src/themes/default/modules/progress.variables +17 -19
  390. package/src/themes/default/modules/rating.variables +10 -12
  391. package/src/themes/default/modules/search.variables +12 -17
  392. package/src/themes/default/modules/shape.variables +7 -8
  393. package/src/themes/default/modules/sidebar.variables +4 -4
  394. package/src/themes/default/modules/slider.variables +55 -54
  395. package/src/themes/default/modules/sticky.variables +1 -1
  396. package/src/themes/default/modules/toast.variables +8 -8
  397. package/src/themes/default/modules/transition.overrides +936 -915
  398. package/src/themes/default/modules/transition.variables +8 -1
  399. package/src/themes/default/views/ad.variables +1 -1
  400. package/src/themes/default/views/card.variables +33 -45
  401. package/src/themes/default/views/comment.variables +7 -9
  402. package/src/themes/default/views/feed.variables +10 -10
  403. package/src/themes/default/views/item.variables +20 -23
  404. package/src/themes/default/views/statistic.variables +8 -8
  405. package/src/themes/duo/elements/loader.variables +1 -1
  406. package/src/themes/famfamfam/elements/flag.overrides +263 -268
  407. package/src/themes/famfamfam/elements/flag.variables +4 -4
  408. package/src/themes/fixed-width/collections/grid.variables +4 -4
  409. package/src/themes/fixed-width/modules/modal.variables +11 -13
  410. package/src/themes/flat/collections/form.overrides +9 -9
  411. package/src/themes/flat/collections/form.variables +16 -17
  412. package/src/themes/flat/globals/site.variables +69 -74
  413. package/src/themes/github/assets/fonts/octicons.woff2 +0 -0
  414. package/src/themes/github/collections/breadcrumb.variables +0 -1
  415. package/src/themes/github/collections/form.overrides +7 -8
  416. package/src/themes/github/collections/form.variables +16 -18
  417. package/src/themes/github/collections/grid.variables +1 -2
  418. package/src/themes/github/collections/menu.overrides +2 -2
  419. package/src/themes/github/collections/menu.variables +24 -26
  420. package/src/themes/github/collections/message.overrides +3 -3
  421. package/src/themes/github/collections/message.variables +12 -14
  422. package/src/themes/github/collections/table.variables +2 -2
  423. package/src/themes/github/elements/button.overrides +0 -1
  424. package/src/themes/github/elements/button.variables +26 -30
  425. package/src/themes/github/elements/header.variables +2 -2
  426. package/src/themes/github/elements/icon.overrides +3 -208
  427. package/src/themes/github/elements/icon.variables +234 -19
  428. package/src/themes/github/elements/image.variables +1 -1
  429. package/src/themes/github/elements/input.overrides +16 -16
  430. package/src/themes/github/elements/input.variables +4 -5
  431. package/src/themes/github/elements/label.overrides +3 -3
  432. package/src/themes/github/elements/label.variables +0 -1
  433. package/src/themes/github/elements/segment.variables +9 -10
  434. package/src/themes/github/elements/step.overrides +13 -13
  435. package/src/themes/github/elements/step.variables +6 -6
  436. package/src/themes/github/globals/site.variables +16 -16
  437. package/src/themes/github/modules/dropdown.overrides +18 -19
  438. package/src/themes/github/modules/dropdown.variables +8 -10
  439. package/src/themes/github/modules/popup.variables +0 -2
  440. package/src/themes/gmail/collections/message.overrides +3 -0
  441. package/src/themes/gmail/collections/message.variables +4 -4
  442. package/src/themes/instagram/views/card.overrides +4 -5
  443. package/src/themes/instagram/views/card.variables +7 -8
  444. package/src/themes/joypixels/elements/emoji.overrides +0 -2
  445. package/src/themes/joypixels/elements/emoji.variables +3554 -3554
  446. package/src/themes/material/collections/menu.overrides +1 -1
  447. package/src/themes/material/collections/menu.variables +4 -4
  448. package/src/themes/material/elements/button.overrides +7 -9
  449. package/src/themes/material/elements/button.variables +44 -46
  450. package/src/themes/material/elements/header.overrides +3 -3
  451. package/src/themes/material/elements/header.variables +8 -10
  452. package/src/themes/material/elements/icon.overrides +3 -934
  453. package/src/themes/material/elements/icon.variables +958 -18
  454. package/src/themes/material/globals/site.overrides +3 -0
  455. package/src/themes/material/globals/site.variables +83 -84
  456. package/src/themes/material/modules/dropdown.overrides +2 -2
  457. package/src/themes/material/modules/dropdown.variables +5 -5
  458. package/src/themes/material/modules/modal.overrides +3 -3
  459. package/src/themes/material/modules/modal.variables +4 -5
  460. package/src/themes/pulsar/elements/loader.overrides +23 -61
  461. package/src/themes/raised/elements/button.variables +8 -9
  462. package/src/themes/resetcss/globals/reset.overrides +115 -33
  463. package/src/themes/resetcss/globals/reset.variables +1 -1
  464. package/src/themes/round/elements/button.overrides +3 -0
  465. package/src/themes/round/elements/button.variables +33 -38
  466. package/src/themes/rtl/globals/site.overrides +1 -1
  467. package/src/themes/rtl/globals/site.variables +5 -6
  468. package/src/themes/striped/modules/progress.overrides +20 -16
  469. package/src/themes/systemfont/globals/reset.overrides +1 -1
  470. package/src/themes/systemfont/globals/site.variables +6 -6
  471. package/src/themes/timeline/views/feed.overrides +12 -12
  472. package/src/themes/timeline/views/feed.variables +8 -8
  473. package/src/themes/twitter/elements/button.overrides +4 -5
  474. package/src/themes/twitter/elements/button.variables +17 -18
  475. package/src/themes/twitter/elements/emoji.variables +3555 -3555
  476. package/tasks/.eslintrc.js +9 -0
  477. package/tasks/README.md +2 -4
  478. package/tasks/admin/components/create.js +268 -277
  479. package/tasks/admin/components/init.js +123 -129
  480. package/tasks/admin/components/update.js +151 -158
  481. package/tasks/admin/distributions/create.js +183 -189
  482. package/tasks/admin/distributions/init.js +125 -131
  483. package/tasks/admin/distributions/update.js +147 -153
  484. package/tasks/admin/publish.js +5 -9
  485. package/tasks/admin/register.js +37 -39
  486. package/tasks/admin/release.js +8 -12
  487. package/tasks/build/assets.js +43 -40
  488. package/tasks/build/css.js +230 -217
  489. package/tasks/build/javascript.js +120 -114
  490. package/tasks/build.js +11 -11
  491. package/tasks/check-install.js +15 -17
  492. package/tasks/clean.js +6 -6
  493. package/tasks/collections/README.md +3 -5
  494. package/tasks/collections/admin.js +34 -36
  495. package/tasks/collections/build.js +18 -21
  496. package/tasks/collections/docs.js +10 -13
  497. package/tasks/collections/install.js +10 -13
  498. package/tasks/collections/rtl.js +8 -12
  499. package/tasks/collections/various.js +9 -12
  500. package/tasks/config/admin/github.js +17 -19
  501. package/tasks/config/admin/oauth.example.js +4 -4
  502. package/tasks/config/admin/release.js +98 -98
  503. package/tasks/config/admin/templates/README.md +8 -8
  504. package/tasks/config/admin/templates/bower.json +3 -2
  505. package/tasks/config/admin/templates/component-package.js +9 -10
  506. package/tasks/config/admin/templates/css-package.js +19 -21
  507. package/tasks/config/admin/templates/less-package.js +12 -14
  508. package/tasks/config/admin/templates/package.json +5 -5
  509. package/tasks/config/defaults.js +116 -116
  510. package/tasks/config/docs.js +23 -23
  511. package/tasks/config/npm/gulpfile.js +15 -14
  512. package/tasks/config/project/config.js +124 -136
  513. package/tasks/config/project/install.js +722 -719
  514. package/tasks/config/project/release.js +34 -41
  515. package/tasks/config/tasks.js +168 -167
  516. package/tasks/config/user.js +28 -29
  517. package/tasks/docs/build.js +100 -96
  518. package/tasks/docs/metadata.js +91 -98
  519. package/tasks/docs/serve.js +84 -82
  520. package/tasks/install.js +373 -382
  521. package/tasks/rtl/build.js +3 -3
  522. package/tasks/rtl/watch.js +4 -3
  523. package/tasks/version.js +4 -6
  524. package/tasks/watch.js +29 -31
  525. package/test/.eslintrc.js +23 -0
  526. package/test/meteor/assets.js +11 -14
  527. package/test/meteor/fonts.js +12 -13
  528. package/test/modules/accordion.spec.js +6 -8
  529. package/test/modules/checkbox.spec.js +5 -7
  530. package/test/modules/dropdown.spec.js +5 -7
  531. package/test/modules/modal.spec.js +6 -8
  532. package/test/modules/module.spec.js +158 -178
  533. package/test/modules/popup.spec.js +5 -7
  534. package/test/modules/search.spec.js +5 -7
  535. package/test/modules/shape.spec.js +5 -7
  536. package/test/modules/sidebar.spec.js +5 -7
  537. package/test/modules/tab.spec.js +6 -8
  538. package/test/modules/transition.spec.js +5 -7
  539. package/test/modules/video.spec.js +5 -7
  540. package/.github/workflows/codeql.yml +0 -68
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.3+4b673d8 - Checkbox
2
+ * # Fomantic-UI 2.9.1-beta.31+0b65a82 - Checkbox
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -8,876 +8,877 @@
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
11
+ (function ($, window, document) {
12
+ 'use strict';
12
13
 
13
- 'use strict';
14
+ function isFunction(obj) {
15
+ return typeof obj === 'function' && typeof obj.nodeType !== 'number';
16
+ }
14
17
 
15
- $.isFunction = $.isFunction || function(obj) {
16
- return typeof obj === "function" && typeof obj.nodeType !== "number";
17
- };
18
+ window = window !== undefined && window.Math === Math
19
+ ? window
20
+ : globalThis;
18
21
 
19
- window = (typeof window != 'undefined' && window.Math == Math)
20
- ? window
21
- : (typeof self != 'undefined' && self.Math == Math)
22
- ? self
23
- : Function('return this')()
24
- ;
22
+ $.fn.checkbox = function (parameters) {
23
+ var
24
+ $allModules = $(this),
25
+ moduleSelector = $allModules.selector || '',
25
26
 
26
- $.fn.checkbox = function(parameters) {
27
- var
28
- $allModules = $(this),
29
- moduleSelector = $allModules.selector || '',
27
+ time = Date.now(),
28
+ performance = [],
30
29
 
31
- time = new Date().getTime(),
32
- performance = [],
30
+ query = arguments[0],
31
+ methodInvoked = typeof query === 'string',
32
+ queryArguments = [].slice.call(arguments, 1),
33
+ returnedValue
34
+ ;
33
35
 
34
- query = arguments[0],
35
- methodInvoked = (typeof query == 'string'),
36
- queryArguments = [].slice.call(arguments, 1),
37
- returnedValue
38
- ;
39
-
40
- $allModules
41
- .each(function() {
42
- var
43
- settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
44
-
45
- className = settings.className,
46
- namespace = settings.namespace,
47
- selector = settings.selector,
48
- error = settings.error,
49
-
50
- eventNamespace = '.' + namespace,
51
- moduleNamespace = 'module-' + namespace,
52
-
53
- $module = $(this),
54
- $label = $(this).children(selector.label),
55
- $input = $(this).children(selector.input),
56
- input = $input[0],
57
-
58
- initialLoad = false,
59
- shortcutPressed = false,
60
- instance = $module.data(moduleNamespace),
61
-
62
- observer,
63
- element = this,
64
- module
65
- ;
66
-
67
- module = {
68
-
69
- initialize: function() {
70
- module.verbose('Initializing checkbox', settings);
71
-
72
- module.create.label();
73
- module.bind.events();
74
-
75
- module.set.tabbable();
76
- module.hide.input();
77
-
78
- module.observeChanges();
79
- module.instantiate();
80
- module.setup();
81
- },
82
-
83
- instantiate: function() {
84
- module.verbose('Storing instance of module', module);
85
- instance = module;
86
- $module
87
- .data(moduleNamespace, module)
88
- ;
89
- },
90
-
91
- destroy: function() {
92
- module.verbose('Destroying module');
93
- module.unbind.events();
94
- module.show.input();
95
- $module.removeData(moduleNamespace);
96
- },
36
+ $allModules.each(function () {
37
+ var
38
+ settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
97
39
 
98
- fix: {
99
- reference: function() {
100
- if( $module.is(selector.input) ) {
101
- module.debug('Behavior called on <input> adjusting invoked element');
102
- $module = $module.closest(selector.checkbox);
103
- module.refresh();
104
- }
105
- }
106
- },
40
+ className = settings.className,
41
+ namespace = settings.namespace,
42
+ selector = settings.selector,
43
+ error = settings.error,
107
44
 
108
- setup: function() {
109
- module.set.initialLoad();
110
- if( module.is.indeterminate() ) {
111
- module.debug('Initial value is indeterminate');
112
- module.indeterminate();
113
- }
114
- else if( module.is.checked() ) {
115
- module.debug('Initial value is checked');
116
- module.check();
117
- }
118
- else {
119
- module.debug('Initial value is unchecked');
120
- module.uncheck();
121
- }
122
- module.remove.initialLoad();
123
- },
45
+ eventNamespace = '.' + namespace,
46
+ moduleNamespace = 'module-' + namespace,
124
47
 
125
- refresh: function() {
126
- $label = $module.children(selector.label);
127
- $input = $module.children(selector.input);
128
- input = $input[0];
129
- },
48
+ $module = $(this),
49
+ $label = $(this).children(selector.label),
50
+ $input = $(this).children(selector.input),
51
+ input = $input[0],
130
52
 
131
- hide: {
132
- input: function() {
133
- module.verbose('Modifying <input> z-index to be unselectable');
134
- $input.addClass(className.hidden);
135
- }
136
- },
137
- show: {
138
- input: function() {
139
- module.verbose('Modifying <input> z-index to be selectable');
140
- $input.removeClass(className.hidden);
141
- }
142
- },
53
+ initialLoad = false,
54
+ shortcutPressed = false,
55
+ instance = $module.data(moduleNamespace),
143
56
 
144
- observeChanges: function() {
145
- if('MutationObserver' in window) {
146
- observer = new MutationObserver(function(mutations) {
147
- module.debug('DOM tree modified, updating selector cache');
148
- module.refresh();
149
- });
150
- observer.observe(element, {
151
- childList : true,
152
- subtree : true
153
- });
154
- module.debug('Setting up mutation observer', observer);
155
- }
156
- },
157
-
158
- attachEvents: function(selector, event) {
159
- var
160
- $element = $(selector)
161
- ;
162
- event = $.isFunction(module[event])
163
- ? module[event]
164
- : module.toggle
165
- ;
166
- if($element.length > 0) {
167
- module.debug('Attaching checkbox events to element', selector, event);
168
- $element
169
- .on('click' + eventNamespace, event)
170
- ;
171
- }
172
- else {
173
- module.error(error.notFound);
174
- }
175
- },
176
-
177
- preventDefaultOnInputTarget: function() {
178
- if(typeof event !== 'undefined' && event !== null && $(event.target).is(selector.input)) {
179
- module.verbose('Preventing default check action after manual check action');
180
- event.preventDefault();
181
- }
182
- },
183
-
184
- event: {
185
- change: function(event) {
186
- if( !module.should.ignoreCallbacks() ) {
187
- settings.onChange.call(input);
188
- }
189
- },
190
- click: function(event) {
191
- var
192
- $target = $(event.target)
193
- ;
194
- if( $target.is(selector.input) ) {
195
- module.verbose('Using default check action on initialized checkbox');
196
- return;
197
- }
198
- if( $target.is(selector.link) ) {
199
- module.debug('Clicking link inside checkbox, skipping toggle');
200
- return;
201
- }
202
- module.toggle();
203
- $input.focus();
204
- event.preventDefault();
205
- },
206
- keydown: function(event) {
207
- var
208
- key = event.which,
209
- keyCode = {
210
- enter : 13,
211
- space : 32,
212
- escape : 27,
213
- left : 37,
214
- up : 38,
215
- right : 39,
216
- down : 40
217
- }
57
+ observer,
58
+ element = this,
59
+ module
218
60
  ;
219
61
 
220
- var r = module.get.radios(),
221
- rIndex = r.index($module),
222
- rLen = r.length,
223
- checkIndex = false;
224
-
225
- if(key == keyCode.left || key == keyCode.up) {
226
- checkIndex = (rIndex === 0 ? rLen : rIndex) - 1;
227
- } else if(key == keyCode.right || key == keyCode.down) {
228
- checkIndex = rIndex === rLen-1 ? 0 : rIndex+1;
229
- }
230
-
231
- if (!module.should.ignoreCallbacks() && checkIndex !== false) {
232
- if(settings.beforeUnchecked.apply(input)===false) {
233
- module.verbose('Option not allowed to be unchecked, cancelling key navigation');
234
- return false;
235
- }
236
- if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0])===false) {
237
- module.verbose('Next option should not allow check, cancelling key navigation');
238
- return false;
239
- }
240
- }
241
-
242
- shortcutPressed = false;
243
- if(key == keyCode.escape) {
244
- module.verbose('Escape key pressed blurring field');
245
- $input.blur();
246
- shortcutPressed = true;
247
- event.stopPropagation();
248
- }
249
- else if(!event.ctrlKey && module.can.change()) {
250
- if( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey) ) {
251
- module.verbose('Enter/space key pressed, toggling checkbox');
252
- module.toggle();
253
- shortcutPressed = true;
254
- } else if($module.is('.toggle, .slider') && !module.is.radio()) {
255
- if(key == keyCode.left && module.is.checked()) {
256
- module.uncheck();
257
- shortcutPressed = true;
258
- } else if(key == keyCode.right && module.is.unchecked()) {
259
- module.check();
260
- shortcutPressed = true;
261
- }
62
+ module = {
63
+
64
+ initialize: function () {
65
+ module.verbose('Initializing checkbox', settings);
66
+
67
+ module.create.label();
68
+ module.bind.events();
69
+
70
+ module.set.tabbable();
71
+ module.hide.input();
72
+
73
+ module.observeChanges();
74
+ module.instantiate();
75
+ module.setup();
76
+ },
77
+
78
+ instantiate: function () {
79
+ module.verbose('Storing instance of module', module);
80
+ instance = module;
81
+ $module
82
+ .data(moduleNamespace, module)
83
+ ;
84
+ },
85
+
86
+ destroy: function () {
87
+ module.verbose('Destroying module');
88
+ module.unbind.events();
89
+ module.show.input();
90
+ $module.removeData(moduleNamespace);
91
+ },
92
+
93
+ fix: {
94
+ reference: function () {
95
+ if ($module.is(selector.input)) {
96
+ module.debug('Behavior called on <input> adjusting invoked element');
97
+ $module = $module.closest(selector.checkbox);
98
+ module.refresh();
99
+ }
100
+ },
101
+ },
102
+
103
+ setup: function () {
104
+ module.set.initialLoad();
105
+ if (module.is.indeterminate()) {
106
+ module.debug('Initial value is indeterminate');
107
+ module.indeterminate();
108
+ } else if (module.is.checked()) {
109
+ module.debug('Initial value is checked');
110
+ module.check();
111
+ } else {
112
+ module.debug('Initial value is unchecked');
113
+ module.uncheck();
114
+ }
115
+ module.remove.initialLoad();
116
+ },
117
+
118
+ refresh: function () {
119
+ $label = $module.children(selector.label);
120
+ $input = $module.children(selector.input);
121
+ input = $input[0];
122
+ },
123
+
124
+ hide: {
125
+ input: function () {
126
+ module.verbose('Modifying <input> z-index to be unselectable');
127
+ $input.addClass(className.hidden);
128
+ },
129
+ },
130
+ show: {
131
+ input: function () {
132
+ module.verbose('Modifying <input> z-index to be selectable');
133
+ $input.removeClass(className.hidden);
134
+ },
135
+ },
136
+
137
+ observeChanges: function () {
138
+ if ('MutationObserver' in window) {
139
+ observer = new MutationObserver(function (mutations) {
140
+ module.debug('DOM tree modified, updating selector cache');
141
+ module.refresh();
142
+ });
143
+ observer.observe(element, {
144
+ childList: true,
145
+ subtree: true,
146
+ });
147
+ module.debug('Setting up mutation observer', observer);
148
+ }
149
+ },
150
+
151
+ attachEvents: function (selector, event) {
152
+ var
153
+ $element = $(selector)
154
+ ;
155
+ event = isFunction(module[event])
156
+ ? module[event]
157
+ : module.toggle;
158
+ if ($element.length > 0) {
159
+ module.debug('Attaching checkbox events to element', selector, event);
160
+ $element
161
+ .on('click' + eventNamespace, event)
162
+ ;
163
+ } else {
164
+ module.error(error.notFound);
165
+ }
166
+ },
167
+
168
+ preventDefaultOnInputTarget: function () {
169
+ if (event !== undefined && event !== null && $(event.target).is(selector.input)) {
170
+ module.verbose('Preventing default check action after manual check action');
171
+ event.preventDefault();
172
+ }
173
+ },
174
+
175
+ event: {
176
+ change: function (event) {
177
+ if (!module.should.ignoreCallbacks()) {
178
+ settings.onChange.call(input);
179
+ }
180
+ },
181
+ click: function (event) {
182
+ var
183
+ $target = $(event.target)
184
+ ;
185
+ if ($target.is(selector.input)) {
186
+ module.verbose('Using default check action on initialized checkbox');
187
+
188
+ return;
189
+ }
190
+ if ($target.is(selector.link)) {
191
+ module.debug('Clicking link inside checkbox, skipping toggle');
192
+
193
+ return;
194
+ }
195
+ module.toggle();
196
+ $input.trigger('focus');
197
+ event.preventDefault();
198
+ },
199
+ keydown: function (event) {
200
+ var
201
+ key = event.which,
202
+ keyCode = {
203
+ enter: 13,
204
+ space: 32,
205
+ escape: 27,
206
+ left: 37,
207
+ up: 38,
208
+ right: 39,
209
+ down: 40,
210
+ }
211
+ ;
212
+
213
+ var
214
+ r = module.get.radios(),
215
+ rIndex = r.index($module),
216
+ rLen = r.length,
217
+ checkIndex = false
218
+ ;
219
+
220
+ if (key === keyCode.left || key === keyCode.up) {
221
+ checkIndex = (rIndex === 0 ? rLen : rIndex) - 1;
222
+ } else if (key === keyCode.right || key === keyCode.down) {
223
+ checkIndex = rIndex === rLen - 1 ? 0 : rIndex + 1;
224
+ }
225
+
226
+ if (!module.should.ignoreCallbacks() && checkIndex !== false) {
227
+ if (settings.beforeUnchecked.apply(input) === false) {
228
+ module.verbose('Option not allowed to be unchecked, cancelling key navigation');
229
+
230
+ return false;
231
+ }
232
+ if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0]) === false) {
233
+ module.verbose('Next option should not allow check, cancelling key navigation');
234
+
235
+ return false;
236
+ }
237
+ }
238
+
239
+ shortcutPressed = false;
240
+ if (key === keyCode.escape) {
241
+ module.verbose('Escape key pressed blurring field');
242
+ $input.trigger('blur');
243
+ shortcutPressed = true;
244
+ event.stopPropagation();
245
+ } else if (!event.ctrlKey && module.can.change()) {
246
+ if (key === keyCode.space || (key === keyCode.enter && settings.enableEnterKey)) {
247
+ module.verbose('Enter/space key pressed, toggling checkbox');
248
+ module.toggle();
249
+ shortcutPressed = true;
250
+ } else if ($module.is('.toggle, .slider') && !module.is.radio()) {
251
+ if (key === keyCode.left && module.is.checked()) {
252
+ module.uncheck();
253
+ shortcutPressed = true;
254
+ } else if (key === keyCode.right && module.is.unchecked()) {
255
+ module.check();
256
+ shortcutPressed = true;
257
+ }
258
+ }
259
+ }
260
+ },
261
+ keyup: function (event) {
262
+ if (shortcutPressed) {
263
+ event.preventDefault();
264
+ }
265
+ },
266
+ },
267
+
268
+ check: function () {
269
+ if (!module.should.allowCheck()) {
270
+ return;
271
+ }
272
+ module.debug('Checking checkbox', $input);
273
+ module.set.checked();
274
+ if (!module.should.ignoreCallbacks()) {
275
+ settings.onChecked.call(input);
276
+ module.trigger.change();
277
+ }
278
+ module.preventDefaultOnInputTarget();
279
+ },
280
+
281
+ uncheck: function () {
282
+ if (!module.should.allowUncheck()) {
283
+ return;
284
+ }
285
+ module.debug('Unchecking checkbox');
286
+ module.set.unchecked();
287
+ if (!module.should.ignoreCallbacks()) {
288
+ settings.onUnchecked.call(input);
289
+ module.trigger.change();
290
+ }
291
+ module.preventDefaultOnInputTarget();
292
+ },
293
+
294
+ indeterminate: function () {
295
+ if (module.should.allowIndeterminate()) {
296
+ module.debug('Checkbox is already indeterminate');
297
+
298
+ return;
299
+ }
300
+ module.debug('Making checkbox indeterminate');
301
+ module.set.indeterminate();
302
+ if (!module.should.ignoreCallbacks()) {
303
+ settings.onIndeterminate.call(input);
304
+ module.trigger.change();
305
+ }
306
+ },
307
+
308
+ determinate: function () {
309
+ if (module.should.allowDeterminate()) {
310
+ module.debug('Checkbox is already determinate');
311
+
312
+ return;
313
+ }
314
+ module.debug('Making checkbox determinate');
315
+ module.set.determinate();
316
+ if (!module.should.ignoreCallbacks()) {
317
+ settings.onDeterminate.call(input);
318
+ module.trigger.change();
319
+ }
320
+ },
321
+
322
+ enable: function () {
323
+ if (module.is.enabled()) {
324
+ module.debug('Checkbox is already enabled');
325
+
326
+ return;
327
+ }
328
+ module.debug('Enabling checkbox');
329
+ module.set.enabled();
330
+ if (!module.should.ignoreCallbacks()) {
331
+ settings.onEnable.call(input);
332
+ // preserve legacy callbacks
333
+ settings.onEnabled.call(input);
334
+ }
335
+ },
336
+
337
+ disable: function () {
338
+ if (module.is.disabled()) {
339
+ module.debug('Checkbox is already disabled');
340
+
341
+ return;
342
+ }
343
+ module.debug('Disabling checkbox');
344
+ module.set.disabled();
345
+ if (!module.should.ignoreCallbacks()) {
346
+ settings.onDisable.call(input);
347
+ // preserve legacy callbacks
348
+ settings.onDisabled.call(input);
349
+ }
350
+ },
351
+
352
+ get: {
353
+ radios: function () {
354
+ var
355
+ name = module.get.name()
356
+ ;
357
+
358
+ return $('input[name="' + name + '"]').closest(selector.checkbox);
359
+ },
360
+ otherRadios: function () {
361
+ return module.get.radios().not($module);
362
+ },
363
+ name: function () {
364
+ return $input.attr('name');
365
+ },
366
+ },
367
+
368
+ is: {
369
+ initialLoad: function () {
370
+ return initialLoad;
371
+ },
372
+ radio: function () {
373
+ return $input.hasClass(className.radio) || $input.attr('type') === 'radio';
374
+ },
375
+ indeterminate: function () {
376
+ return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate');
377
+ },
378
+ checked: function () {
379
+ return $input.prop('checked') !== undefined && $input.prop('checked');
380
+ },
381
+ disabled: function () {
382
+ return $input.prop('disabled') !== undefined && $input.prop('disabled');
383
+ },
384
+ enabled: function () {
385
+ return !module.is.disabled();
386
+ },
387
+ determinate: function () {
388
+ return !module.is.indeterminate();
389
+ },
390
+ unchecked: function () {
391
+ return !module.is.checked();
392
+ },
393
+ },
394
+
395
+ should: {
396
+ allowCheck: function () {
397
+ if (module.is.determinate() && module.is.checked() && !module.is.initialLoad()) {
398
+ module.debug('Should not allow check, checkbox is already checked');
399
+
400
+ return false;
401
+ }
402
+ if (!module.should.ignoreCallbacks() && settings.beforeChecked.apply(input) === false) {
403
+ module.debug('Should not allow check, beforeChecked cancelled');
404
+
405
+ return false;
406
+ }
407
+
408
+ return true;
409
+ },
410
+ allowUncheck: function () {
411
+ if (module.is.determinate() && module.is.unchecked() && !module.is.initialLoad()) {
412
+ module.debug('Should not allow uncheck, checkbox is already unchecked');
413
+
414
+ return false;
415
+ }
416
+ if (!module.should.ignoreCallbacks() && settings.beforeUnchecked.apply(input) === false) {
417
+ module.debug('Should not allow uncheck, beforeUnchecked cancelled');
418
+
419
+ return false;
420
+ }
421
+
422
+ return true;
423
+ },
424
+ allowIndeterminate: function () {
425
+ if (module.is.indeterminate() && !module.is.initialLoad()) {
426
+ module.debug('Should not allow indeterminate, checkbox is already indeterminate');
427
+
428
+ return false;
429
+ }
430
+ if (!module.should.ignoreCallbacks() && settings.beforeIndeterminate.apply(input) === false) {
431
+ module.debug('Should not allow indeterminate, beforeIndeterminate cancelled');
432
+
433
+ return false;
434
+ }
435
+
436
+ return true;
437
+ },
438
+ allowDeterminate: function () {
439
+ if (module.is.determinate() && !module.is.initialLoad()) {
440
+ module.debug('Should not allow determinate, checkbox is already determinate');
441
+
442
+ return false;
443
+ }
444
+ if (!module.should.ignoreCallbacks() && settings.beforeDeterminate.apply(input) === false) {
445
+ module.debug('Should not allow determinate, beforeDeterminate cancelled');
446
+
447
+ return false;
448
+ }
449
+
450
+ return true;
451
+ },
452
+ ignoreCallbacks: function () {
453
+ return initialLoad && !settings.fireOnInit;
454
+ },
455
+ },
456
+
457
+ can: {
458
+ change: function () {
459
+ return !($module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly'));
460
+ },
461
+ uncheck: function () {
462
+ return typeof settings.uncheckable === 'boolean'
463
+ ? settings.uncheckable
464
+ : !module.is.radio();
465
+ },
466
+ },
467
+
468
+ set: {
469
+ initialLoad: function () {
470
+ initialLoad = true;
471
+ },
472
+ checked: function () {
473
+ module.verbose('Setting class to checked');
474
+ $module
475
+ .removeClass(className.indeterminate)
476
+ .addClass(className.checked)
477
+ ;
478
+ if (module.is.radio()) {
479
+ module.uncheckOthers();
480
+ }
481
+ if (!module.is.indeterminate() && module.is.checked()) {
482
+ module.debug('Input is already checked, skipping input property change');
483
+
484
+ return;
485
+ }
486
+ module.verbose('Setting state to checked', input);
487
+ $input
488
+ .prop('indeterminate', false)
489
+ .prop('checked', true)
490
+ ;
491
+ },
492
+ unchecked: function () {
493
+ module.verbose('Removing checked class');
494
+ $module
495
+ .removeClass(className.indeterminate)
496
+ .removeClass(className.checked)
497
+ ;
498
+ if (!module.is.indeterminate() && module.is.unchecked()) {
499
+ module.debug('Input is already unchecked');
500
+
501
+ return;
502
+ }
503
+ module.debug('Setting state to unchecked');
504
+ $input
505
+ .prop('indeterminate', false)
506
+ .prop('checked', false)
507
+ ;
508
+ },
509
+ indeterminate: function () {
510
+ module.verbose('Setting class to indeterminate');
511
+ $module
512
+ .addClass(className.indeterminate)
513
+ ;
514
+ if (module.is.indeterminate()) {
515
+ module.debug('Input is already indeterminate, skipping input property change');
516
+
517
+ return;
518
+ }
519
+ module.debug('Setting state to indeterminate');
520
+ $input
521
+ .prop('indeterminate', true)
522
+ ;
523
+ },
524
+ determinate: function () {
525
+ module.verbose('Removing indeterminate class');
526
+ $module
527
+ .removeClass(className.indeterminate)
528
+ ;
529
+ if (module.is.determinate()) {
530
+ module.debug('Input is already determinate, skipping input property change');
531
+
532
+ return;
533
+ }
534
+ module.debug('Setting state to determinate');
535
+ $input
536
+ .prop('indeterminate', false)
537
+ ;
538
+ },
539
+ disabled: function () {
540
+ module.verbose('Setting class to disabled');
541
+ $module
542
+ .addClass(className.disabled)
543
+ ;
544
+ if (module.is.disabled()) {
545
+ module.debug('Input is already disabled, skipping input property change');
546
+
547
+ return;
548
+ }
549
+ module.debug('Setting state to disabled');
550
+ $input
551
+ .prop('disabled', 'disabled')
552
+ ;
553
+ },
554
+ enabled: function () {
555
+ module.verbose('Removing disabled class');
556
+ $module.removeClass(className.disabled);
557
+ if (module.is.enabled()) {
558
+ module.debug('Input is already enabled, skipping input property change');
559
+
560
+ return;
561
+ }
562
+ module.debug('Setting state to enabled');
563
+ $input
564
+ .prop('disabled', false)
565
+ ;
566
+ },
567
+ tabbable: function () {
568
+ module.verbose('Adding tabindex to checkbox');
569
+ if ($input.attr('tabindex') === undefined) {
570
+ $input.attr('tabindex', 0);
571
+ }
572
+ },
573
+ },
574
+
575
+ remove: {
576
+ initialLoad: function () {
577
+ initialLoad = false;
578
+ },
579
+ },
580
+
581
+ trigger: {
582
+ change: function () {
583
+ var
584
+ inputElement = $input[0]
585
+ ;
586
+ if (inputElement) {
587
+ var events = document.createEvent('HTMLEvents');
588
+ module.verbose('Triggering native change event');
589
+ events.initEvent('change', true, false);
590
+ inputElement.dispatchEvent(events);
591
+ }
592
+ },
593
+ },
594
+
595
+ create: {
596
+ label: function () {
597
+ if ($input.prevAll(selector.label).length > 0) {
598
+ $input.prev(selector.label).detach().insertAfter($input);
599
+ module.debug('Moving existing label', $label);
600
+ } else if (!module.has.label()) {
601
+ $label = $('<label>').insertAfter($input);
602
+ module.debug('Creating label', $label);
603
+ }
604
+ },
605
+ },
606
+
607
+ has: {
608
+ label: function () {
609
+ return $label.length > 0;
610
+ },
611
+ },
612
+
613
+ bind: {
614
+ events: function () {
615
+ module.verbose('Attaching checkbox events');
616
+ $module
617
+ .on('click' + eventNamespace, module.event.click)
618
+ .on('change' + eventNamespace, module.event.change)
619
+ .on('keydown' + eventNamespace, selector.input, module.event.keydown)
620
+ .on('keyup' + eventNamespace, selector.input, module.event.keyup)
621
+ ;
622
+ },
623
+ },
624
+
625
+ unbind: {
626
+ events: function () {
627
+ module.debug('Removing events');
628
+ $module
629
+ .off(eventNamespace)
630
+ ;
631
+ },
632
+ },
633
+
634
+ uncheckOthers: function () {
635
+ var
636
+ $radios = module.get.otherRadios()
637
+ ;
638
+ module.debug('Unchecking other radios', $radios);
639
+ $radios.removeClass(className.checked);
640
+ },
641
+
642
+ toggle: function () {
643
+ if (!module.can.change()) {
644
+ if (!module.is.radio()) {
645
+ module.debug('Checkbox is read-only or disabled, ignoring toggle');
646
+ }
647
+
648
+ return;
649
+ }
650
+ if (module.is.indeterminate() || module.is.unchecked()) {
651
+ module.debug('Currently unchecked');
652
+ module.check();
653
+ } else if (module.is.checked() && module.can.uncheck()) {
654
+ module.debug('Currently checked');
655
+ module.uncheck();
656
+ }
657
+ },
658
+ setting: function (name, value) {
659
+ module.debug('Changing setting', name, value);
660
+ if ($.isPlainObject(name)) {
661
+ $.extend(true, settings, name);
662
+ } else if (value !== undefined) {
663
+ if ($.isPlainObject(settings[name])) {
664
+ $.extend(true, settings[name], value);
665
+ } else {
666
+ settings[name] = value;
667
+ }
668
+ } else {
669
+ return settings[name];
670
+ }
671
+ },
672
+ internal: function (name, value) {
673
+ if ($.isPlainObject(name)) {
674
+ $.extend(true, module, name);
675
+ } else if (value !== undefined) {
676
+ module[name] = value;
677
+ } else {
678
+ return module[name];
679
+ }
680
+ },
681
+ debug: function () {
682
+ if (!settings.silent && settings.debug) {
683
+ if (settings.performance) {
684
+ module.performance.log(arguments);
685
+ } else {
686
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
687
+ module.debug.apply(console, arguments);
688
+ }
689
+ }
690
+ },
691
+ verbose: function () {
692
+ if (!settings.silent && settings.verbose && settings.debug) {
693
+ if (settings.performance) {
694
+ module.performance.log(arguments);
695
+ } else {
696
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
697
+ module.verbose.apply(console, arguments);
698
+ }
699
+ }
700
+ },
701
+ error: function () {
702
+ if (!settings.silent) {
703
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
704
+ module.error.apply(console, arguments);
705
+ }
706
+ },
707
+ performance: {
708
+ log: function (message) {
709
+ var
710
+ currentTime,
711
+ executionTime,
712
+ previousTime
713
+ ;
714
+ if (settings.performance) {
715
+ currentTime = Date.now();
716
+ previousTime = time || currentTime;
717
+ executionTime = currentTime - previousTime;
718
+ time = currentTime;
719
+ performance.push({
720
+ Name: message[0],
721
+ Arguments: [].slice.call(message, 1) || '',
722
+ Element: element,
723
+ 'Execution Time': executionTime,
724
+ });
725
+ }
726
+ clearTimeout(module.performance.timer);
727
+ module.performance.timer = setTimeout(module.performance.display, 500);
728
+ },
729
+ display: function () {
730
+ var
731
+ title = settings.name + ':',
732
+ totalTime = 0
733
+ ;
734
+ time = false;
735
+ clearTimeout(module.performance.timer);
736
+ $.each(performance, function (index, data) {
737
+ totalTime += data['Execution Time'];
738
+ });
739
+ title += ' ' + totalTime + 'ms';
740
+ if (moduleSelector) {
741
+ title += ' \'' + moduleSelector + '\'';
742
+ }
743
+ if (performance.length > 0) {
744
+ console.groupCollapsed(title);
745
+ if (console.table) {
746
+ console.table(performance);
747
+ } else {
748
+ $.each(performance, function (index, data) {
749
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
750
+ });
751
+ }
752
+ console.groupEnd();
753
+ }
754
+ performance = [];
755
+ },
756
+ },
757
+ invoke: function (query, passedArguments, context) {
758
+ var
759
+ object = instance,
760
+ maxDepth,
761
+ found,
762
+ response
763
+ ;
764
+ passedArguments = passedArguments || queryArguments;
765
+ context = context || element;
766
+ if (typeof query === 'string' && object !== undefined) {
767
+ query = query.split(/[ .]/);
768
+ maxDepth = query.length - 1;
769
+ $.each(query, function (depth, value) {
770
+ var camelCaseValue = depth !== maxDepth
771
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
772
+ : query
773
+ ;
774
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
775
+ object = object[camelCaseValue];
776
+ } else if (object[camelCaseValue] !== undefined) {
777
+ found = object[camelCaseValue];
778
+
779
+ return false;
780
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
781
+ object = object[value];
782
+ } else if (object[value] !== undefined) {
783
+ found = object[value];
784
+
785
+ return false;
786
+ } else {
787
+ module.error(error.method, query);
788
+
789
+ return false;
790
+ }
791
+ });
792
+ }
793
+ if (isFunction(found)) {
794
+ response = found.apply(context, passedArguments);
795
+ } else if (found !== undefined) {
796
+ response = found;
797
+ }
798
+ if (Array.isArray(returnedValue)) {
799
+ returnedValue.push(response);
800
+ } else if (returnedValue !== undefined) {
801
+ returnedValue = [returnedValue, response];
802
+ } else if (response !== undefined) {
803
+ returnedValue = response;
804
+ }
805
+
806
+ return found;
807
+ },
808
+ };
809
+
810
+ if (methodInvoked) {
811
+ if (instance === undefined) {
812
+ module.initialize();
262
813
  }
814
+ module.invoke(query);
815
+ } else {
816
+ if (instance !== undefined) {
817
+ instance.invoke('destroy');
818
+ }
819
+ module.initialize();
263
820
  }
264
- },
265
- keyup: function(event) {
266
- if(shortcutPressed) {
267
- event.preventDefault();
268
- }
269
- }
270
- },
821
+ });
271
822
 
272
- check: function() {
273
- if( !module.should.allowCheck() ) {
274
- return;
275
- }
276
- module.debug('Checking checkbox', $input);
277
- module.set.checked();
278
- if( !module.should.ignoreCallbacks() ) {
279
- settings.onChecked.call(input);
280
- module.trigger.change();
281
- }
282
- module.preventDefaultOnInputTarget();
283
- },
823
+ return returnedValue !== undefined
824
+ ? returnedValue
825
+ : this;
826
+ };
284
827
 
285
- uncheck: function() {
286
- if( !module.should.allowUncheck() ) {
287
- return;
288
- }
289
- module.debug('Unchecking checkbox');
290
- module.set.unchecked();
291
- if( !module.should.ignoreCallbacks() ) {
292
- settings.onUnchecked.call(input);
293
- module.trigger.change();
294
- }
295
- module.preventDefaultOnInputTarget();
296
- },
828
+ $.fn.checkbox.settings = {
297
829
 
298
- indeterminate: function() {
299
- if( module.should.allowIndeterminate() ) {
300
- module.debug('Checkbox is already indeterminate');
301
- return;
302
- }
303
- module.debug('Making checkbox indeterminate');
304
- module.set.indeterminate();
305
- if( !module.should.ignoreCallbacks() ) {
306
- settings.onIndeterminate.call(input);
307
- module.trigger.change();
308
- }
309
- },
830
+ name: 'Checkbox',
831
+ namespace: 'checkbox',
310
832
 
311
- determinate: function() {
312
- if( module.should.allowDeterminate() ) {
313
- module.debug('Checkbox is already determinate');
314
- return;
315
- }
316
- module.debug('Making checkbox determinate');
317
- module.set.determinate();
318
- if( !module.should.ignoreCallbacks() ) {
319
- settings.onDeterminate.call(input);
320
- module.trigger.change();
321
- }
322
- },
833
+ silent: false,
834
+ debug: false,
835
+ verbose: false,
836
+ performance: true,
323
837
 
324
- enable: function() {
325
- if( module.is.enabled() ) {
326
- module.debug('Checkbox is already enabled');
327
- return;
328
- }
329
- module.debug('Enabling checkbox');
330
- module.set.enabled();
331
- if( !module.should.ignoreCallbacks() ) {
332
- settings.onEnable.call(input);
333
- // preserve legacy callbacks
334
- settings.onEnabled.call(input);
335
- }
336
- },
838
+ // delegated event context
839
+ uncheckable: 'auto',
840
+ fireOnInit: false,
841
+ enableEnterKey: true,
337
842
 
338
- disable: function() {
339
- if( module.is.disabled() ) {
340
- module.debug('Checkbox is already disabled');
341
- return;
342
- }
343
- module.debug('Disabling checkbox');
344
- module.set.disabled();
345
- if( !module.should.ignoreCallbacks() ) {
346
- settings.onDisable.call(input);
347
- // preserve legacy callbacks
348
- settings.onDisabled.call(input);
349
- }
350
- },
843
+ onChange: function () {},
351
844
 
352
- get: {
353
- radios: function() {
354
- var
355
- name = module.get.name()
356
- ;
357
- return $('input[name="' + name + '"]').closest(selector.checkbox);
358
- },
359
- otherRadios: function() {
360
- return module.get.radios().not($module);
361
- },
362
- name: function() {
363
- return $input.attr('name');
364
- }
365
- },
845
+ beforeChecked: function () {},
846
+ beforeUnchecked: function () {},
847
+ beforeDeterminate: function () {},
848
+ beforeIndeterminate: function () {},
366
849
 
367
- is: {
368
- initialLoad: function() {
369
- return initialLoad;
370
- },
371
- radio: function() {
372
- return ($input.hasClass(className.radio) || $input.attr('type') == 'radio');
373
- },
374
- indeterminate: function() {
375
- return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate');
376
- },
377
- checked: function() {
378
- return $input.prop('checked') !== undefined && $input.prop('checked');
379
- },
380
- disabled: function() {
381
- return $input.prop('disabled') !== undefined && $input.prop('disabled');
382
- },
383
- enabled: function() {
384
- return !module.is.disabled();
385
- },
386
- determinate: function() {
387
- return !module.is.indeterminate();
388
- },
389
- unchecked: function() {
390
- return !module.is.checked();
391
- }
392
- },
850
+ onChecked: function () {},
851
+ onUnchecked: function () {},
393
852
 
394
- should: {
395
- allowCheck: function() {
396
- if(module.is.determinate() && module.is.checked() && !module.is.initialLoad() ) {
397
- module.debug('Should not allow check, checkbox is already checked');
398
- return false;
399
- }
400
- if(!module.should.ignoreCallbacks() && settings.beforeChecked.apply(input) === false) {
401
- module.debug('Should not allow check, beforeChecked cancelled');
402
- return false;
403
- }
404
- return true;
405
- },
406
- allowUncheck: function() {
407
- if(module.is.determinate() && module.is.unchecked() && !module.is.initialLoad() ) {
408
- module.debug('Should not allow uncheck, checkbox is already unchecked');
409
- return false;
410
- }
411
- if(!module.should.ignoreCallbacks() && settings.beforeUnchecked.apply(input) === false) {
412
- module.debug('Should not allow uncheck, beforeUnchecked cancelled');
413
- return false;
414
- }
415
- return true;
416
- },
417
- allowIndeterminate: function() {
418
- if(module.is.indeterminate() && !module.is.initialLoad() ) {
419
- module.debug('Should not allow indeterminate, checkbox is already indeterminate');
420
- return false;
421
- }
422
- if(!module.should.ignoreCallbacks() && settings.beforeIndeterminate.apply(input) === false) {
423
- module.debug('Should not allow indeterminate, beforeIndeterminate cancelled');
424
- return false;
425
- }
426
- return true;
427
- },
428
- allowDeterminate: function() {
429
- if(module.is.determinate() && !module.is.initialLoad() ) {
430
- module.debug('Should not allow determinate, checkbox is already determinate');
431
- return false;
432
- }
433
- if(!module.should.ignoreCallbacks() && settings.beforeDeterminate.apply(input) === false) {
434
- module.debug('Should not allow determinate, beforeDeterminate cancelled');
435
- return false;
436
- }
437
- return true;
438
- },
439
- ignoreCallbacks: function() {
440
- return (initialLoad && !settings.fireOnInit);
441
- }
442
- },
853
+ onDeterminate: function () {},
854
+ onIndeterminate: function () {},
443
855
 
444
- can: {
445
- change: function() {
446
- return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') );
447
- },
448
- uncheck: function() {
449
- return (typeof settings.uncheckable === 'boolean')
450
- ? settings.uncheckable
451
- : !module.is.radio()
452
- ;
453
- }
454
- },
856
+ onEnable: function () {},
857
+ onDisable: function () {},
455
858
 
456
- set: {
457
- initialLoad: function() {
458
- initialLoad = true;
459
- },
460
- checked: function() {
461
- module.verbose('Setting class to checked');
462
- $module
463
- .removeClass(className.indeterminate)
464
- .addClass(className.checked)
465
- ;
466
- if( module.is.radio() ) {
467
- module.uncheckOthers();
468
- }
469
- if(!module.is.indeterminate() && module.is.checked()) {
470
- module.debug('Input is already checked, skipping input property change');
471
- return;
472
- }
473
- module.verbose('Setting state to checked', input);
474
- $input
475
- .prop('indeterminate', false)
476
- .prop('checked', true)
477
- ;
478
- },
479
- unchecked: function() {
480
- module.verbose('Removing checked class');
481
- $module
482
- .removeClass(className.indeterminate)
483
- .removeClass(className.checked)
484
- ;
485
- if(!module.is.indeterminate() && module.is.unchecked() ) {
486
- module.debug('Input is already unchecked');
487
- return;
488
- }
489
- module.debug('Setting state to unchecked');
490
- $input
491
- .prop('indeterminate', false)
492
- .prop('checked', false)
493
- ;
494
- },
495
- indeterminate: function() {
496
- module.verbose('Setting class to indeterminate');
497
- $module
498
- .addClass(className.indeterminate)
499
- ;
500
- if( module.is.indeterminate() ) {
501
- module.debug('Input is already indeterminate, skipping input property change');
502
- return;
503
- }
504
- module.debug('Setting state to indeterminate');
505
- $input
506
- .prop('indeterminate', true)
507
- ;
508
- },
509
- determinate: function() {
510
- module.verbose('Removing indeterminate class');
511
- $module
512
- .removeClass(className.indeterminate)
513
- ;
514
- if( module.is.determinate() ) {
515
- module.debug('Input is already determinate, skipping input property change');
516
- return;
517
- }
518
- module.debug('Setting state to determinate');
519
- $input
520
- .prop('indeterminate', false)
521
- ;
522
- },
523
- disabled: function() {
524
- module.verbose('Setting class to disabled');
525
- $module
526
- .addClass(className.disabled)
527
- ;
528
- if( module.is.disabled() ) {
529
- module.debug('Input is already disabled, skipping input property change');
530
- return;
531
- }
532
- module.debug('Setting state to disabled');
533
- $input
534
- .prop('disabled', 'disabled')
535
- ;
536
- },
537
- enabled: function() {
538
- module.verbose('Removing disabled class');
539
- $module.removeClass(className.disabled);
540
- if( module.is.enabled() ) {
541
- module.debug('Input is already enabled, skipping input property change');
542
- return;
543
- }
544
- module.debug('Setting state to enabled');
545
- $input
546
- .prop('disabled', false)
547
- ;
548
- },
549
- tabbable: function() {
550
- module.verbose('Adding tabindex to checkbox');
551
- if( $input.attr('tabindex') === undefined) {
552
- $input.attr('tabindex', 0);
553
- }
554
- }
555
- },
859
+ // preserve misspelled callbacks (will be removed in 3.0)
860
+ onEnabled: function () {},
861
+ onDisabled: function () {},
556
862
 
557
- remove: {
558
- initialLoad: function() {
559
- initialLoad = false;
560
- }
863
+ className: {
864
+ checked: 'checked',
865
+ indeterminate: 'indeterminate',
866
+ disabled: 'disabled',
867
+ hidden: 'hidden',
868
+ radio: 'radio',
869
+ readOnly: 'read-only',
561
870
  },
562
871
 
563
- trigger: {
564
- change: function() {
565
- var
566
- inputElement = $input[0]
567
- ;
568
- if(inputElement) {
569
- var events = document.createEvent('HTMLEvents');
570
- module.verbose('Triggering native change event');
571
- events.initEvent('change', true, false);
572
- inputElement.dispatchEvent(events);
573
- }
574
- }
872
+ error: {
873
+ method: 'The method you called is not defined',
575
874
  },
576
875
 
577
-
578
- create: {
579
- label: function() {
580
- if($input.prevAll(selector.label).length > 0) {
581
- $input.prev(selector.label).detach().insertAfter($input);
582
- module.debug('Moving existing label', $label);
583
- }
584
- else if( !module.has.label() ) {
585
- $label = $('<label>').insertAfter($input);
586
- module.debug('Creating label', $label);
587
- }
588
- }
876
+ selector: {
877
+ checkbox: '.ui.checkbox',
878
+ label: 'label',
879
+ input: 'input[type="checkbox"], input[type="radio"]',
880
+ link: 'a[href]',
589
881
  },
590
882
 
591
- has: {
592
- label: function() {
593
- return ($label.length > 0);
594
- }
595
- },
596
-
597
- bind: {
598
- events: function() {
599
- module.verbose('Attaching checkbox events');
600
- $module
601
- .on('click' + eventNamespace, module.event.click)
602
- .on('change' + eventNamespace, module.event.change)
603
- .on('keydown' + eventNamespace, selector.input, module.event.keydown)
604
- .on('keyup' + eventNamespace, selector.input, module.event.keyup)
605
- ;
606
- }
607
- },
608
-
609
- unbind: {
610
- events: function() {
611
- module.debug('Removing events');
612
- $module
613
- .off(eventNamespace)
614
- ;
615
- }
616
- },
617
-
618
- uncheckOthers: function() {
619
- var
620
- $radios = module.get.otherRadios()
621
- ;
622
- module.debug('Unchecking other radios', $radios);
623
- $radios.removeClass(className.checked);
624
- },
625
-
626
- toggle: function() {
627
- if( !module.can.change() ) {
628
- if(!module.is.radio()) {
629
- module.debug('Checkbox is read-only or disabled, ignoring toggle');
630
- }
631
- return;
632
- }
633
- if( module.is.indeterminate() || module.is.unchecked() ) {
634
- module.debug('Currently unchecked');
635
- module.check();
636
- }
637
- else if( module.is.checked() && module.can.uncheck() ) {
638
- module.debug('Currently checked');
639
- module.uncheck();
640
- }
641
- },
642
- setting: function(name, value) {
643
- module.debug('Changing setting', name, value);
644
- if( $.isPlainObject(name) ) {
645
- $.extend(true, settings, name);
646
- }
647
- else if(value !== undefined) {
648
- if($.isPlainObject(settings[name])) {
649
- $.extend(true, settings[name], value);
650
- }
651
- else {
652
- settings[name] = value;
653
- }
654
- }
655
- else {
656
- return settings[name];
657
- }
658
- },
659
- internal: function(name, value) {
660
- if( $.isPlainObject(name) ) {
661
- $.extend(true, module, name);
662
- }
663
- else if(value !== undefined) {
664
- module[name] = value;
665
- }
666
- else {
667
- return module[name];
668
- }
669
- },
670
- debug: function() {
671
- if(!settings.silent && settings.debug) {
672
- if(settings.performance) {
673
- module.performance.log(arguments);
674
- }
675
- else {
676
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
677
- module.debug.apply(console, arguments);
678
- }
679
- }
680
- },
681
- verbose: function() {
682
- if(!settings.silent && settings.verbose && settings.debug) {
683
- if(settings.performance) {
684
- module.performance.log(arguments);
685
- }
686
- else {
687
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
688
- module.verbose.apply(console, arguments);
689
- }
690
- }
691
- },
692
- error: function() {
693
- if(!settings.silent) {
694
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
695
- module.error.apply(console, arguments);
696
- }
697
- },
698
- performance: {
699
- log: function(message) {
700
- var
701
- currentTime,
702
- executionTime,
703
- previousTime
704
- ;
705
- if(settings.performance) {
706
- currentTime = new Date().getTime();
707
- previousTime = time || currentTime;
708
- executionTime = currentTime - previousTime;
709
- time = currentTime;
710
- performance.push({
711
- 'Name' : message[0],
712
- 'Arguments' : [].slice.call(message, 1) || '',
713
- 'Element' : element,
714
- 'Execution Time' : executionTime
715
- });
716
- }
717
- clearTimeout(module.performance.timer);
718
- module.performance.timer = setTimeout(module.performance.display, 500);
719
- },
720
- display: function() {
721
- var
722
- title = settings.name + ':',
723
- totalTime = 0
724
- ;
725
- time = false;
726
- clearTimeout(module.performance.timer);
727
- $.each(performance, function(index, data) {
728
- totalTime += data['Execution Time'];
729
- });
730
- title += ' ' + totalTime + 'ms';
731
- if(moduleSelector) {
732
- title += ' \'' + moduleSelector + '\'';
733
- }
734
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
735
- console.groupCollapsed(title);
736
- if(console.table) {
737
- console.table(performance);
738
- }
739
- else {
740
- $.each(performance, function(index, data) {
741
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
742
- });
743
- }
744
- console.groupEnd();
745
- }
746
- performance = [];
747
- }
748
- },
749
- invoke: function(query, passedArguments, context) {
750
- var
751
- object = instance,
752
- maxDepth,
753
- found,
754
- response
755
- ;
756
- passedArguments = passedArguments || queryArguments;
757
- context = context || element;
758
- if(typeof query == 'string' && object !== undefined) {
759
- query = query.split(/[\. ]/);
760
- maxDepth = query.length - 1;
761
- $.each(query, function(depth, value) {
762
- var camelCaseValue = (depth != maxDepth)
763
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
764
- : query
765
- ;
766
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
767
- object = object[camelCaseValue];
768
- }
769
- else if( object[camelCaseValue] !== undefined ) {
770
- found = object[camelCaseValue];
771
- return false;
772
- }
773
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
774
- object = object[value];
775
- }
776
- else if( object[value] !== undefined ) {
777
- found = object[value];
778
- return false;
779
- }
780
- else {
781
- module.error(error.method, query);
782
- return false;
783
- }
784
- });
785
- }
786
- if ( $.isFunction( found ) ) {
787
- response = found.apply(context, passedArguments);
788
- }
789
- else if(found !== undefined) {
790
- response = found;
791
- }
792
- if(Array.isArray(returnedValue)) {
793
- returnedValue.push(response);
794
- }
795
- else if(returnedValue !== undefined) {
796
- returnedValue = [returnedValue, response];
797
- }
798
- else if(response !== undefined) {
799
- returnedValue = response;
800
- }
801
- return found;
802
- }
803
- };
804
-
805
- if(methodInvoked) {
806
- if(instance === undefined) {
807
- module.initialize();
808
- }
809
- module.invoke(query);
810
- }
811
- else {
812
- if(instance !== undefined) {
813
- instance.invoke('destroy');
814
- }
815
- module.initialize();
816
- }
817
- })
818
- ;
819
-
820
- return (returnedValue !== undefined)
821
- ? returnedValue
822
- : this
823
- ;
824
- };
825
-
826
- $.fn.checkbox.settings = {
827
-
828
- name : 'Checkbox',
829
- namespace : 'checkbox',
830
-
831
- silent : false,
832
- debug : false,
833
- verbose : false,
834
- performance : true,
835
-
836
- // delegated event context
837
- uncheckable : 'auto',
838
- fireOnInit : false,
839
- enableEnterKey : true,
840
-
841
- onChange : function(){},
842
-
843
- beforeChecked : function(){},
844
- beforeUnchecked : function(){},
845
- beforeDeterminate : function(){},
846
- beforeIndeterminate : function(){},
847
-
848
- onChecked : function(){},
849
- onUnchecked : function(){},
850
-
851
- onDeterminate : function() {},
852
- onIndeterminate : function() {},
853
-
854
- onEnable : function(){},
855
- onDisable : function(){},
856
-
857
- // preserve misspelled callbacks (will be removed in 3.0)
858
- onEnabled : function(){},
859
- onDisabled : function(){},
860
-
861
- className : {
862
- checked : 'checked',
863
- indeterminate : 'indeterminate',
864
- disabled : 'disabled',
865
- hidden : 'hidden',
866
- radio : 'radio',
867
- readOnly : 'read-only'
868
- },
869
-
870
- error : {
871
- method : 'The method you called is not defined'
872
- },
873
-
874
- selector : {
875
- checkbox : '.ui.checkbox',
876
- label : 'label',
877
- input : 'input[type="checkbox"], input[type="radio"]',
878
- link : 'a[href]'
879
- }
880
-
881
- };
882
-
883
- })( jQuery, window, document );
883
+ };
884
+ })(jQuery, window, document);