fomantic-ui 2.9.1-beta.4 → 2.9.1-beta.40

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