fomantic-ui 2.9.1-beta.8 → 2.9.1

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 (521) 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/auto_assign.yml +0 -1
  7. package/.github/workflows/ci.yml +37 -4
  8. package/.github/workflows/nightly.yml +1 -1
  9. package/.github/workflows/release.yml +1 -1
  10. package/.prettierrc.js +12 -0
  11. package/.stylelintrc.js +48 -0
  12. package/CHANGELOG.md +112 -0
  13. package/README.md +1 -1
  14. package/dist/components/accordion.css +35 -53
  15. package/dist/components/accordion.js +568 -595
  16. package/dist/components/accordion.min.css +2 -2
  17. package/dist/components/accordion.min.js +3 -3
  18. package/dist/components/ad.css +34 -45
  19. package/dist/components/ad.min.css +2 -2
  20. package/dist/components/api.js +1157 -1179
  21. package/dist/components/api.min.js +3 -3
  22. package/dist/components/breadcrumb.css +5 -5
  23. package/dist/components/breadcrumb.min.css +2 -2
  24. package/dist/components/button.css +709 -1111
  25. package/dist/components/button.min.css +2 -2
  26. package/dist/components/calendar.css +24 -27
  27. package/dist/components/calendar.js +1934 -1809
  28. package/dist/components/calendar.min.css +2 -2
  29. package/dist/components/calendar.min.js +3 -3
  30. package/dist/components/card.css +219 -365
  31. package/dist/components/card.min.css +2 -2
  32. package/dist/components/checkbox.css +120 -191
  33. package/dist/components/checkbox.js +842 -841
  34. package/dist/components/checkbox.min.css +2 -2
  35. package/dist/components/checkbox.min.js +3 -3
  36. package/dist/components/comment.css +41 -59
  37. package/dist/components/comment.min.css +2 -2
  38. package/dist/components/container.css +7 -6
  39. package/dist/components/container.min.css +2 -2
  40. package/dist/components/dimmer.css +53 -172
  41. package/dist/components/dimmer.js +706 -737
  42. package/dist/components/dimmer.min.css +2 -2
  43. package/dist/components/dimmer.min.js +3 -3
  44. package/dist/components/divider.css +43 -61
  45. package/dist/components/divider.min.css +2 -2
  46. package/dist/components/dropdown.css +252 -386
  47. package/dist/components/dropdown.js +4195 -4236
  48. package/dist/components/dropdown.min.css +2 -2
  49. package/dist/components/dropdown.min.js +3 -3
  50. package/dist/components/embed.css +18 -29
  51. package/dist/components/embed.js +645 -675
  52. package/dist/components/embed.min.css +2 -2
  53. package/dist/components/embed.min.js +3 -3
  54. package/dist/components/emoji.css +3556 -3556
  55. package/dist/components/emoji.min.css +1 -1
  56. package/dist/components/feed.css +35 -57
  57. package/dist/components/feed.min.css +2 -2
  58. package/dist/components/flag.css +270 -268
  59. package/dist/components/flag.min.css +2 -2
  60. package/dist/components/flyout.css +95 -141
  61. package/dist/components/flyout.js +1514 -1465
  62. package/dist/components/flyout.min.css +2 -2
  63. package/dist/components/flyout.min.js +3 -3
  64. package/dist/components/form.css +244 -339
  65. package/dist/components/form.js +2022 -2004
  66. package/dist/components/form.min.css +2 -2
  67. package/dist/components/form.min.js +3 -3
  68. package/dist/components/grid.css +183 -329
  69. package/dist/components/grid.min.css +2 -2
  70. package/dist/components/header.css +118 -142
  71. package/dist/components/header.min.css +2 -2
  72. package/dist/components/icon.css +662 -745
  73. package/dist/components/icon.min.css +2 -2
  74. package/dist/components/image.css +39 -63
  75. package/dist/components/image.min.css +2 -2
  76. package/dist/components/input.css +356 -274
  77. package/dist/components/input.min.css +2 -2
  78. package/dist/components/item.css +84 -131
  79. package/dist/components/item.min.css +2 -2
  80. package/dist/components/label.css +359 -410
  81. package/dist/components/label.min.css +2 -2
  82. package/dist/components/list.css +49 -70
  83. package/dist/components/list.min.css +2 -2
  84. package/dist/components/loader.css +67 -155
  85. package/dist/components/loader.min.css +2 -2
  86. package/dist/components/menu.css +270 -431
  87. package/dist/components/menu.min.css +1 -1
  88. package/dist/components/message.css +125 -197
  89. package/dist/components/message.min.css +2 -2
  90. package/dist/components/modal.css +120 -154
  91. package/dist/components/modal.js +1544 -1486
  92. package/dist/components/modal.min.css +2 -2
  93. package/dist/components/modal.min.js +3 -3
  94. package/dist/components/nag.css +53 -63
  95. package/dist/components/nag.js +520 -526
  96. package/dist/components/nag.min.css +2 -2
  97. package/dist/components/nag.min.js +3 -3
  98. package/dist/components/placeholder.css +22 -42
  99. package/dist/components/placeholder.min.css +2 -2
  100. package/dist/components/popup.css +424 -202
  101. package/dist/components/popup.js +1456 -1456
  102. package/dist/components/popup.min.css +2 -2
  103. package/dist/components/popup.min.js +3 -3
  104. package/dist/components/progress.css +106 -211
  105. package/dist/components/progress.js +969 -997
  106. package/dist/components/progress.min.css +2 -2
  107. package/dist/components/progress.min.js +3 -3
  108. package/dist/components/rail.css +15 -20
  109. package/dist/components/rail.min.css +1 -1
  110. package/dist/components/rating.css +80 -121
  111. package/dist/components/rating.js +507 -523
  112. package/dist/components/rating.min.css +2 -2
  113. package/dist/components/rating.min.js +3 -3
  114. package/dist/components/reset.css +8 -13
  115. package/dist/components/reset.min.css +2 -2
  116. package/dist/components/reveal.css +44 -83
  117. package/dist/components/reveal.min.css +2 -2
  118. package/dist/components/search.css +69 -98
  119. package/dist/components/search.js +1520 -1534
  120. package/dist/components/search.min.css +2 -2
  121. package/dist/components/search.min.js +3 -3
  122. package/dist/components/segment.css +148 -224
  123. package/dist/components/segment.min.css +2 -2
  124. package/dist/components/shape.css +14 -30
  125. package/dist/components/shape.js +783 -810
  126. package/dist/components/shape.min.css +2 -2
  127. package/dist/components/shape.min.js +3 -3
  128. package/dist/components/sidebar.css +103 -206
  129. package/dist/components/sidebar.js +1061 -1099
  130. package/dist/components/sidebar.min.css +2 -2
  131. package/dist/components/sidebar.min.js +3 -3
  132. package/dist/components/site.css +28 -41
  133. package/dist/components/site.js +436 -476
  134. package/dist/components/site.min.css +2 -2
  135. package/dist/components/site.min.js +3 -3
  136. package/dist/components/slider.css +93 -121
  137. package/dist/components/slider.js +1310 -1311
  138. package/dist/components/slider.min.css +1 -1
  139. package/dist/components/slider.min.js +3 -3
  140. package/dist/components/state.js +638 -657
  141. package/dist/components/state.min.js +3 -3
  142. package/dist/components/statistic.css +75 -116
  143. package/dist/components/statistic.min.css +2 -2
  144. package/dist/components/step.css +77 -150
  145. package/dist/components/step.min.css +2 -2
  146. package/dist/components/sticky.css +1 -5
  147. package/dist/components/sticky.js +847 -901
  148. package/dist/components/sticky.min.css +2 -2
  149. package/dist/components/sticky.min.js +3 -3
  150. package/dist/components/tab.css +10 -14
  151. package/dist/components/tab.js +902 -966
  152. package/dist/components/tab.min.css +2 -2
  153. package/dist/components/tab.min.js +3 -3
  154. package/dist/components/table.css +547 -774
  155. package/dist/components/table.min.css +2 -2
  156. package/dist/components/text.css +32 -32
  157. package/dist/components/text.min.css +1 -1
  158. package/dist/components/toast.css +69 -147
  159. package/dist/components/toast.js +910 -884
  160. package/dist/components/toast.min.css +2 -2
  161. package/dist/components/toast.min.js +3 -3
  162. package/dist/components/transition.css +299 -1356
  163. package/dist/components/transition.js +1048 -1077
  164. package/dist/components/transition.min.css +2 -2
  165. package/dist/components/transition.min.js +3 -3
  166. package/dist/components/visibility.js +1213 -1245
  167. package/dist/components/visibility.min.js +3 -3
  168. package/dist/semantic.css +9344 -12298
  169. package/dist/semantic.js +29181 -29423
  170. package/dist/semantic.min.css +3 -3
  171. package/dist/semantic.min.js +3 -3
  172. package/dist/themes/basic/assets/fonts/icons.woff2 +0 -0
  173. package/dist/themes/github/assets/fonts/octicons.woff2 +0 -0
  174. package/examples/.eslintrc.js +6 -0
  175. package/examples/assets/library/jquery.min.js +2 -4
  176. package/examples/assets/show-examples.js +13 -13
  177. package/examples/attached.html +1 -1
  178. package/examples/bootstrap.html +1 -1
  179. package/examples/components/button.html +1 -1
  180. package/examples/components/card.html +6 -6
  181. package/examples/components/input.html +1 -1
  182. package/examples/components/menu.html +1 -1
  183. package/examples/components/site.html +1 -1
  184. package/examples/components/sticky-context.html +2 -2
  185. package/examples/components/table.html +1 -1
  186. package/examples/fixed.html +3 -3
  187. package/examples/grid.html +5 -5
  188. package/examples/homepage.html +1 -1
  189. package/examples/login.html +2 -2
  190. package/examples/responsive.html +2 -2
  191. package/examples/sticky.html +4 -4
  192. package/examples/theming.html +1 -1
  193. package/gulpfile.js +13 -11
  194. package/package.json +17 -8
  195. package/scripts/nightly-version.js +83 -75
  196. package/src/_site/collections/menu.overrides +1 -1
  197. package/src/_site/elements/flag.variables +2 -2
  198. package/src/_site/globals/site.variables +1 -1
  199. package/src/_site/modules/embed.variables +3 -0
  200. package/src/definitions/behaviors/api.js +1158 -1180
  201. package/src/definitions/behaviors/form.js +2021 -2003
  202. package/src/definitions/behaviors/state.js +644 -663
  203. package/src/definitions/behaviors/visibility.js +1212 -1244
  204. package/src/definitions/collections/breadcrumb.less +43 -47
  205. package/src/definitions/collections/form.less +866 -884
  206. package/src/definitions/collections/grid.less +1681 -1699
  207. package/src/definitions/collections/menu.less +1522 -1544
  208. package/src/definitions/collections/message.less +294 -298
  209. package/src/definitions/collections/table.less +1657 -1661
  210. package/src/definitions/elements/button.less +1716 -1750
  211. package/src/definitions/elements/container.less +211 -211
  212. package/src/definitions/elements/divider.less +198 -211
  213. package/src/definitions/elements/emoji.less +41 -48
  214. package/src/definitions/elements/flag.less +46 -48
  215. package/src/definitions/elements/header.less +351 -359
  216. package/src/definitions/elements/icon.less +541 -484
  217. package/src/definitions/elements/image.less +216 -227
  218. package/src/definitions/elements/input.less +692 -699
  219. package/src/definitions/elements/label.less +784 -806
  220. package/src/definitions/elements/list.less +810 -814
  221. package/src/definitions/elements/loader.less +273 -268
  222. package/src/definitions/elements/placeholder.less +173 -170
  223. package/src/definitions/elements/rail.less +93 -93
  224. package/src/definitions/elements/reveal.less +192 -198
  225. package/src/definitions/elements/segment.less +742 -749
  226. package/src/definitions/elements/step.less +423 -437
  227. package/src/definitions/elements/text.less +34 -36
  228. package/src/definitions/globals/reset.less +11 -8
  229. package/src/definitions/globals/site.js +435 -475
  230. package/src/definitions/globals/site.less +108 -110
  231. package/src/definitions/modules/accordion.js +567 -594
  232. package/src/definitions/modules/accordion.less +244 -248
  233. package/src/definitions/modules/calendar.js +1933 -1808
  234. package/src/definitions/modules/calendar.less +100 -97
  235. package/src/definitions/modules/checkbox.js +841 -840
  236. package/src/definitions/modules/checkbox.less +531 -552
  237. package/src/definitions/modules/dimmer.js +705 -736
  238. package/src/definitions/modules/dimmer.less +294 -305
  239. package/src/definitions/modules/dropdown.js +4194 -4235
  240. package/src/definitions/modules/dropdown.less +1568 -1598
  241. package/src/definitions/modules/embed.js +644 -674
  242. package/src/definitions/modules/embed.less +82 -84
  243. package/src/definitions/modules/flyout.js +1513 -1464
  244. package/src/definitions/modules/flyout.less +453 -455
  245. package/src/definitions/modules/modal.js +1543 -1485
  246. package/src/definitions/modules/modal.less +459 -467
  247. package/src/definitions/modules/nag.js +519 -525
  248. package/src/definitions/modules/nag.less +136 -149
  249. package/src/definitions/modules/popup.js +1455 -1455
  250. package/src/definitions/modules/popup.less +738 -693
  251. package/src/definitions/modules/progress.js +968 -996
  252. package/src/definitions/modules/progress.less +523 -499
  253. package/src/definitions/modules/rating.js +506 -522
  254. package/src/definitions/modules/rating.less +98 -103
  255. package/src/definitions/modules/search.js +1519 -1533
  256. package/src/definitions/modules/search.less +374 -394
  257. package/src/definitions/modules/shape.js +782 -809
  258. package/src/definitions/modules/shape.less +70 -79
  259. package/src/definitions/modules/sidebar.js +1060 -1098
  260. package/src/definitions/modules/sidebar.less +463 -476
  261. package/src/definitions/modules/slider.js +1309 -1310
  262. package/src/definitions/modules/slider.less +309 -310
  263. package/src/definitions/modules/sticky.js +863 -917
  264. package/src/definitions/modules/sticky.less +17 -25
  265. package/src/definitions/modules/tab.js +901 -965
  266. package/src/definitions/modules/tab.less +48 -54
  267. package/src/definitions/modules/toast.js +909 -883
  268. package/src/definitions/modules/toast.less +589 -589
  269. package/src/definitions/modules/transition.js +1047 -1076
  270. package/src/definitions/modules/transition.less +58 -59
  271. package/src/definitions/views/ad.less +207 -208
  272. package/src/definitions/views/card.less +955 -973
  273. package/src/definitions/views/comment.less +192 -200
  274. package/src/definitions/views/feed.less +222 -226
  275. package/src/definitions/views/item.less +437 -448
  276. package/src/definitions/views/statistic.less +273 -279
  277. package/src/semantic.less +8 -6
  278. package/src/theme.config.example +53 -53
  279. package/src/theme.less +44 -35
  280. package/src/themes/amazon/elements/button.overrides +23 -24
  281. package/src/themes/amazon/elements/button.variables +18 -23
  282. package/src/themes/amazon/globals/site.variables +16 -17
  283. package/src/themes/basic/assets/fonts/icons.woff2 +0 -0
  284. package/src/themes/basic/collections/table.overrides +0 -1
  285. package/src/themes/basic/collections/table.variables +3 -3
  286. package/src/themes/basic/elements/button.overrides +0 -1
  287. package/src/themes/basic/elements/button.variables +9 -9
  288. package/src/themes/basic/elements/icon.overrides +9 -169
  289. package/src/themes/basic/elements/icon.variables +161 -18
  290. package/src/themes/basic/elements/step.overrides +2 -2
  291. package/src/themes/basic/elements/step.variables +2 -2
  292. package/src/themes/basic/globals/reset.overrides +1 -1
  293. package/src/themes/basic/globals/reset.variables +1 -1
  294. package/src/themes/basic/modules/progress.variables +2 -2
  295. package/src/themes/basic/views/card.overrides +0 -1
  296. package/src/themes/basic/views/card.variables +6 -6
  297. package/src/themes/bookish/elements/header.overrides +4 -4
  298. package/src/themes/bookish/elements/header.variables +5 -5
  299. package/src/themes/bootstrap3/elements/button.overrides +3 -0
  300. package/src/themes/bootstrap3/elements/button.variables +20 -25
  301. package/src/themes/chubby/collections/form.overrides +9 -9
  302. package/src/themes/chubby/collections/form.variables +3 -3
  303. package/src/themes/chubby/collections/menu.overrides +3 -0
  304. package/src/themes/chubby/collections/menu.variables +3 -3
  305. package/src/themes/chubby/elements/button.overrides +8 -10
  306. package/src/themes/chubby/elements/button.variables +10 -10
  307. package/src/themes/chubby/elements/header.overrides +1 -1
  308. package/src/themes/chubby/elements/header.variables +4 -4
  309. package/src/themes/chubby/modules/accordion.overrides +2 -2
  310. package/src/themes/chubby/modules/accordion.variables +4 -4
  311. package/src/themes/chubby/views/comment.overrides +5 -5
  312. package/src/themes/chubby/views/comment.variables +11 -11
  313. package/src/themes/classic/collections/table.variables +3 -3
  314. package/src/themes/classic/elements/button.variables +36 -43
  315. package/src/themes/classic/elements/header.variables +4 -4
  316. package/src/themes/classic/modules/progress.variables +3 -3
  317. package/src/themes/classic/views/card.overrides +25 -27
  318. package/src/themes/classic/views/card.variables +7 -7
  319. package/src/themes/colored/modules/checkbox.overrides +3 -0
  320. package/src/themes/colored/modules/checkbox.variables +1 -3
  321. package/src/themes/default/collections/breadcrumb.variables +4 -4
  322. package/src/themes/default/collections/form.variables +15 -16
  323. package/src/themes/default/collections/grid.overrides +0 -1
  324. package/src/themes/default/collections/grid.variables +15 -16
  325. package/src/themes/default/collections/menu.variables +31 -45
  326. package/src/themes/default/collections/message.variables +84 -123
  327. package/src/themes/default/collections/table.overrides +3 -0
  328. package/src/themes/default/collections/table.variables +30 -34
  329. package/src/themes/default/elements/button.variables +44 -53
  330. package/src/themes/default/elements/container.variables +8 -16
  331. package/src/themes/default/elements/divider.overrides +8 -9
  332. package/src/themes/default/elements/divider.variables +5 -6
  333. package/src/themes/default/elements/emoji.overrides +0 -1
  334. package/src/themes/default/elements/emoji.variables +3556 -3556
  335. package/src/themes/default/elements/flag.variables +1595 -1595
  336. package/src/themes/default/elements/header.overrides +0 -1
  337. package/src/themes/default/elements/header.variables +21 -21
  338. package/src/themes/default/elements/icon.variables +2016 -2012
  339. package/src/themes/default/elements/image.variables +6 -7
  340. package/src/themes/default/elements/input.variables +11 -12
  341. package/src/themes/default/elements/label.variables +25 -26
  342. package/src/themes/default/elements/list.variables +17 -21
  343. package/src/themes/default/elements/loader.variables +16 -17
  344. package/src/themes/default/elements/placeholder.variables +12 -9
  345. package/src/themes/default/elements/rail.variables +4 -5
  346. package/src/themes/default/elements/reveal.variables +1 -1
  347. package/src/themes/default/elements/segment.variables +24 -36
  348. package/src/themes/default/elements/step.overrides +4 -4
  349. package/src/themes/default/elements/step.variables +19 -22
  350. package/src/themes/default/elements/text.variables +2 -3
  351. package/src/themes/default/globals/colors.less +588 -588
  352. package/src/themes/default/globals/reset.overrides +63 -59
  353. package/src/themes/default/globals/reset.variables +1 -1
  354. package/src/themes/default/globals/site.variables +1074 -1123
  355. package/src/themes/default/globals/variation.variables +6 -4
  356. package/src/themes/default/modules/accordion.overrides +11 -11
  357. package/src/themes/default/modules/accordion.variables +15 -20
  358. package/src/themes/default/modules/calendar.variables +2 -0
  359. package/src/themes/default/modules/chatroom.variables +1 -1
  360. package/src/themes/default/modules/checkbox.overrides +9 -13
  361. package/src/themes/default/modules/checkbox.variables +24 -33
  362. package/src/themes/default/modules/dimmer.variables +14 -17
  363. package/src/themes/default/modules/dropdown.overrides +17 -17
  364. package/src/themes/default/modules/dropdown.variables +29 -31
  365. package/src/themes/default/modules/embed.variables +9 -13
  366. package/src/themes/default/modules/flyout.variables +10 -8
  367. package/src/themes/default/modules/modal.variables +64 -67
  368. package/src/themes/default/modules/nag.variables +11 -14
  369. package/src/themes/default/modules/popup.variables +14 -13
  370. package/src/themes/default/modules/progress.variables +17 -19
  371. package/src/themes/default/modules/rating.variables +10 -12
  372. package/src/themes/default/modules/search.variables +12 -17
  373. package/src/themes/default/modules/shape.variables +7 -8
  374. package/src/themes/default/modules/sidebar.variables +4 -4
  375. package/src/themes/default/modules/slider.variables +55 -54
  376. package/src/themes/default/modules/sticky.variables +1 -1
  377. package/src/themes/default/modules/toast.variables +8 -8
  378. package/src/themes/default/modules/transition.overrides +936 -915
  379. package/src/themes/default/modules/transition.variables +1 -1
  380. package/src/themes/default/views/ad.variables +1 -1
  381. package/src/themes/default/views/card.variables +33 -45
  382. package/src/themes/default/views/comment.variables +7 -9
  383. package/src/themes/default/views/feed.variables +10 -10
  384. package/src/themes/default/views/item.variables +20 -23
  385. package/src/themes/default/views/statistic.variables +8 -8
  386. package/src/themes/duo/elements/loader.variables +1 -1
  387. package/src/themes/famfamfam/elements/flag.overrides +263 -268
  388. package/src/themes/famfamfam/elements/flag.variables +4 -4
  389. package/src/themes/fixed-width/collections/grid.variables +4 -4
  390. package/src/themes/fixed-width/modules/modal.variables +11 -13
  391. package/src/themes/flat/collections/form.overrides +9 -9
  392. package/src/themes/flat/collections/form.variables +16 -17
  393. package/src/themes/flat/globals/site.variables +69 -74
  394. package/src/themes/github/assets/fonts/octicons.woff2 +0 -0
  395. package/src/themes/github/collections/breadcrumb.variables +0 -1
  396. package/src/themes/github/collections/form.overrides +7 -8
  397. package/src/themes/github/collections/form.variables +16 -18
  398. package/src/themes/github/collections/grid.variables +1 -2
  399. package/src/themes/github/collections/menu.overrides +2 -2
  400. package/src/themes/github/collections/menu.variables +24 -26
  401. package/src/themes/github/collections/message.overrides +3 -3
  402. package/src/themes/github/collections/message.variables +12 -14
  403. package/src/themes/github/collections/table.variables +2 -2
  404. package/src/themes/github/elements/button.overrides +0 -1
  405. package/src/themes/github/elements/button.variables +26 -30
  406. package/src/themes/github/elements/header.variables +2 -2
  407. package/src/themes/github/elements/icon.overrides +3 -208
  408. package/src/themes/github/elements/icon.variables +234 -19
  409. package/src/themes/github/elements/image.variables +1 -1
  410. package/src/themes/github/elements/input.overrides +16 -16
  411. package/src/themes/github/elements/input.variables +4 -5
  412. package/src/themes/github/elements/label.overrides +3 -3
  413. package/src/themes/github/elements/label.variables +0 -1
  414. package/src/themes/github/elements/segment.variables +9 -10
  415. package/src/themes/github/elements/step.overrides +13 -13
  416. package/src/themes/github/elements/step.variables +6 -6
  417. package/src/themes/github/globals/site.variables +16 -16
  418. package/src/themes/github/modules/dropdown.overrides +18 -19
  419. package/src/themes/github/modules/dropdown.variables +8 -10
  420. package/src/themes/github/modules/popup.variables +0 -2
  421. package/src/themes/gmail/collections/message.overrides +3 -0
  422. package/src/themes/gmail/collections/message.variables +4 -4
  423. package/src/themes/instagram/views/card.overrides +4 -5
  424. package/src/themes/instagram/views/card.variables +7 -8
  425. package/src/themes/joypixels/elements/emoji.overrides +0 -2
  426. package/src/themes/joypixels/elements/emoji.variables +3554 -3554
  427. package/src/themes/material/collections/menu.overrides +1 -1
  428. package/src/themes/material/collections/menu.variables +4 -4
  429. package/src/themes/material/elements/button.overrides +7 -9
  430. package/src/themes/material/elements/button.variables +44 -46
  431. package/src/themes/material/elements/header.overrides +3 -3
  432. package/src/themes/material/elements/header.variables +8 -10
  433. package/src/themes/material/elements/icon.overrides +3 -934
  434. package/src/themes/material/elements/icon.variables +958 -18
  435. package/src/themes/material/globals/site.overrides +3 -0
  436. package/src/themes/material/globals/site.variables +83 -84
  437. package/src/themes/material/modules/dropdown.overrides +2 -2
  438. package/src/themes/material/modules/dropdown.variables +5 -5
  439. package/src/themes/material/modules/modal.overrides +3 -3
  440. package/src/themes/material/modules/modal.variables +4 -5
  441. package/src/themes/pulsar/elements/loader.overrides +23 -61
  442. package/src/themes/raised/elements/button.variables +8 -9
  443. package/src/themes/resetcss/globals/reset.overrides +115 -33
  444. package/src/themes/resetcss/globals/reset.variables +1 -1
  445. package/src/themes/round/elements/button.overrides +3 -0
  446. package/src/themes/round/elements/button.variables +33 -38
  447. package/src/themes/rtl/globals/site.overrides +1 -1
  448. package/src/themes/rtl/globals/site.variables +5 -6
  449. package/src/themes/striped/modules/progress.overrides +20 -16
  450. package/src/themes/systemfont/globals/reset.overrides +1 -1
  451. package/src/themes/systemfont/globals/site.variables +6 -6
  452. package/src/themes/timeline/views/feed.overrides +12 -12
  453. package/src/themes/timeline/views/feed.variables +8 -8
  454. package/src/themes/twitter/elements/button.overrides +4 -5
  455. package/src/themes/twitter/elements/button.variables +17 -18
  456. package/src/themes/twitter/elements/emoji.variables +3556 -3556
  457. package/tasks/.eslintrc.js +9 -0
  458. package/tasks/README.md +2 -4
  459. package/tasks/admin/components/create.js +268 -277
  460. package/tasks/admin/components/init.js +123 -129
  461. package/tasks/admin/components/update.js +151 -158
  462. package/tasks/admin/distributions/create.js +183 -189
  463. package/tasks/admin/distributions/init.js +125 -131
  464. package/tasks/admin/distributions/update.js +147 -153
  465. package/tasks/admin/publish.js +5 -9
  466. package/tasks/admin/register.js +37 -39
  467. package/tasks/admin/release.js +8 -12
  468. package/tasks/build/assets.js +43 -40
  469. package/tasks/build/css.js +230 -217
  470. package/tasks/build/javascript.js +120 -114
  471. package/tasks/build.js +11 -11
  472. package/tasks/check-install.js +15 -17
  473. package/tasks/clean.js +6 -6
  474. package/tasks/collections/README.md +3 -5
  475. package/tasks/collections/admin.js +34 -36
  476. package/tasks/collections/build.js +19 -21
  477. package/tasks/collections/docs.js +11 -13
  478. package/tasks/collections/install.js +11 -13
  479. package/tasks/collections/rtl.js +9 -12
  480. package/tasks/collections/various.js +10 -12
  481. package/tasks/config/admin/github.js +17 -19
  482. package/tasks/config/admin/oauth.example.js +4 -4
  483. package/tasks/config/admin/release.js +98 -98
  484. package/tasks/config/admin/templates/README.md +8 -8
  485. package/tasks/config/admin/templates/bower.json +3 -2
  486. package/tasks/config/admin/templates/component-package.js +9 -10
  487. package/tasks/config/admin/templates/css-package.js +19 -21
  488. package/tasks/config/admin/templates/less-package.js +12 -14
  489. package/tasks/config/admin/templates/package.json +6 -6
  490. package/tasks/config/defaults.js +116 -116
  491. package/tasks/config/docs.js +23 -23
  492. package/tasks/config/npm/gulpfile.js +15 -14
  493. package/tasks/config/project/config.js +124 -136
  494. package/tasks/config/project/install.js +722 -719
  495. package/tasks/config/project/release.js +34 -41
  496. package/tasks/config/tasks.js +168 -167
  497. package/tasks/config/user.js +28 -32
  498. package/tasks/docs/build.js +100 -96
  499. package/tasks/docs/metadata.js +91 -98
  500. package/tasks/docs/serve.js +84 -82
  501. package/tasks/install.js +373 -382
  502. package/tasks/rtl/build.js +4 -3
  503. package/tasks/rtl/watch.js +4 -3
  504. package/tasks/version.js +4 -6
  505. package/tasks/watch.js +29 -31
  506. package/test/.eslintrc.js +23 -0
  507. package/test/meteor/assets.js +11 -14
  508. package/test/meteor/fonts.js +12 -13
  509. package/test/modules/accordion.spec.js +6 -8
  510. package/test/modules/checkbox.spec.js +5 -7
  511. package/test/modules/dropdown.spec.js +5 -7
  512. package/test/modules/modal.spec.js +6 -8
  513. package/test/modules/module.spec.js +158 -178
  514. package/test/modules/popup.spec.js +5 -7
  515. package/test/modules/search.spec.js +5 -7
  516. package/test/modules/shape.spec.js +5 -7
  517. package/test/modules/sidebar.spec.js +5 -7
  518. package/test/modules/tab.spec.js +6 -8
  519. package/test/modules/transition.spec.js +5 -7
  520. package/test/modules/video.spec.js +5 -7
  521. package/.github/workflows/codeql.yml +0 -68
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.8+edc5e7e - Checkbox
2
+ * # Fomantic-UI 2.9.1 - 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);