fomantic-ui 2.9.0-beta.32 → 2.9.0-beta.320

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 (424) hide show
  1. package/.all-contributorsrc +274 -4
  2. package/.github/codeql/codeql-config.yml +4 -0
  3. package/.github/dependabot.yml +10 -0
  4. package/.github/workflows/ci.yml +10 -6
  5. package/.github/workflows/codeql.yml +68 -0
  6. package/.github/workflows/nightly.yml +16 -8
  7. package/.github/workflows/release.yml +34 -0
  8. package/CONTRIBUTORS.md +86 -37
  9. package/FAQ.md +38 -38
  10. package/README.md +8 -8
  11. package/dist/components/accordion.css +176 -36
  12. package/dist/components/accordion.js +10 -4
  13. package/dist/components/accordion.min.css +2 -2
  14. package/dist/components/accordion.min.js +3 -3
  15. package/dist/components/ad.css +4 -4
  16. package/dist/components/ad.min.css +2 -2
  17. package/dist/components/api.js +92 -33
  18. package/dist/components/api.min.js +3 -3
  19. package/dist/components/breadcrumb.css +1 -1
  20. package/dist/components/breadcrumb.min.css +1 -1
  21. package/dist/components/button.css +204 -157
  22. package/dist/components/button.min.css +2 -2
  23. package/dist/components/calendar.css +18 -1
  24. package/dist/components/calendar.js +93 -74
  25. package/dist/components/calendar.min.css +2 -2
  26. package/dist/components/calendar.min.js +3 -3
  27. package/dist/components/card.css +754 -117
  28. package/dist/components/card.min.css +2 -2
  29. package/dist/components/checkbox.css +92 -91
  30. package/dist/components/checkbox.js +21 -14
  31. package/dist/components/checkbox.min.css +2 -2
  32. package/dist/components/checkbox.min.js +3 -3
  33. package/dist/components/comment.css +12 -12
  34. package/dist/components/comment.min.css +2 -2
  35. package/dist/components/container.css +98 -4
  36. package/dist/components/container.min.css +2 -2
  37. package/dist/components/dimmer.css +33 -18
  38. package/dist/components/dimmer.js +19 -10
  39. package/dist/components/dimmer.min.css +2 -2
  40. package/dist/components/dimmer.min.js +3 -3
  41. package/dist/components/divider.css +31 -31
  42. package/dist/components/divider.min.css +2 -2
  43. package/dist/components/dropdown.css +100 -50
  44. package/dist/components/dropdown.js +212 -187
  45. package/dist/components/dropdown.min.css +2 -2
  46. package/dist/components/dropdown.min.js +3 -3
  47. package/dist/components/embed.css +5 -5
  48. package/dist/components/embed.js +14 -10
  49. package/dist/components/embed.min.css +2 -2
  50. package/dist/components/embed.min.js +3 -3
  51. package/dist/components/emoji.css +10799 -8841
  52. package/dist/components/emoji.min.css +1 -1
  53. package/dist/components/feed.css +29 -29
  54. package/dist/components/feed.min.css +2 -2
  55. package/dist/components/flag.css +1021 -915
  56. package/dist/components/flag.min.css +2 -2
  57. package/dist/components/flyout.css +592 -0
  58. package/dist/components/flyout.js +1529 -0
  59. package/dist/components/flyout.min.css +9 -0
  60. package/dist/components/flyout.min.js +11 -0
  61. package/dist/components/form.css +160 -83
  62. package/dist/components/form.js +46 -42
  63. package/dist/components/form.min.css +2 -2
  64. package/dist/components/form.min.js +3 -3
  65. package/dist/components/grid.css +25 -21
  66. package/dist/components/grid.min.css +2 -2
  67. package/dist/components/header.css +6 -4
  68. package/dist/components/header.min.css +2 -2
  69. package/dist/components/icon.css +2063 -1984
  70. package/dist/components/icon.min.css +2 -2
  71. package/dist/components/image.css +1 -1
  72. package/dist/components/image.min.css +1 -1
  73. package/dist/components/input.css +759 -22
  74. package/dist/components/input.min.css +2 -2
  75. package/dist/components/item.css +17 -17
  76. package/dist/components/item.min.css +2 -2
  77. package/dist/components/label.css +72 -68
  78. package/dist/components/label.min.css +2 -2
  79. package/dist/components/list.css +31 -31
  80. package/dist/components/list.min.css +2 -2
  81. package/dist/components/loader.css +352 -352
  82. package/dist/components/loader.min.css +2 -2
  83. package/dist/components/menu.css +108 -76
  84. package/dist/components/menu.min.css +1 -1
  85. package/dist/components/message.css +43 -43
  86. package/dist/components/message.min.css +2 -2
  87. package/dist/components/modal.css +37 -6
  88. package/dist/components/modal.js +187 -84
  89. package/dist/components/modal.min.css +2 -2
  90. package/dist/components/modal.min.js +3 -3
  91. package/dist/components/nag.css +1 -1
  92. package/dist/components/nag.js +3 -3
  93. package/dist/components/nag.min.css +1 -1
  94. package/dist/components/nag.min.js +3 -3
  95. package/dist/components/placeholder.css +33 -33
  96. package/dist/components/placeholder.min.css +2 -2
  97. package/dist/components/popup.css +100 -104
  98. package/dist/components/popup.js +17 -23
  99. package/dist/components/popup.min.css +2 -2
  100. package/dist/components/popup.min.js +3 -3
  101. package/dist/components/progress.css +1 -1
  102. package/dist/components/progress.js +6 -3
  103. package/dist/components/progress.min.css +1 -1
  104. package/dist/components/progress.min.js +3 -3
  105. package/dist/components/rail.css +1 -1
  106. package/dist/components/rail.min.css +1 -1
  107. package/dist/components/rating.css +1 -1
  108. package/dist/components/rating.js +8 -4
  109. package/dist/components/rating.min.css +1 -1
  110. package/dist/components/rating.min.js +3 -3
  111. package/dist/components/reset.css +5 -4
  112. package/dist/components/reset.min.css +2 -2
  113. package/dist/components/reveal.css +1 -1
  114. package/dist/components/reveal.min.css +1 -1
  115. package/dist/components/search.css +6 -6
  116. package/dist/components/search.js +48 -21
  117. package/dist/components/search.min.css +2 -2
  118. package/dist/components/search.min.js +3 -3
  119. package/dist/components/segment.css +118 -34
  120. package/dist/components/segment.min.css +2 -2
  121. package/dist/components/shape.css +1 -1
  122. package/dist/components/shape.js +4 -4
  123. package/dist/components/shape.min.css +1 -1
  124. package/dist/components/shape.min.js +3 -3
  125. package/dist/components/sidebar.css +23 -9
  126. package/dist/components/sidebar.js +141 -44
  127. package/dist/components/sidebar.min.css +2 -2
  128. package/dist/components/sidebar.min.js +3 -3
  129. package/dist/components/site.css +139 -42
  130. package/dist/components/site.js +2 -2
  131. package/dist/components/site.min.css +2 -2
  132. package/dist/components/site.min.js +3 -3
  133. package/dist/components/slider.css +17 -17
  134. package/dist/components/slider.js +79 -64
  135. package/dist/components/slider.min.css +1 -1
  136. package/dist/components/slider.min.js +3 -3
  137. package/dist/components/state.js +3 -3
  138. package/dist/components/state.min.js +3 -3
  139. package/dist/components/statistic.css +4 -4
  140. package/dist/components/statistic.min.css +2 -2
  141. package/dist/components/step.css +31 -31
  142. package/dist/components/step.min.css +2 -2
  143. package/dist/components/sticky.css +1 -1
  144. package/dist/components/sticky.js +11 -18
  145. package/dist/components/sticky.min.css +1 -1
  146. package/dist/components/sticky.min.js +3 -3
  147. package/dist/components/tab.css +5 -5
  148. package/dist/components/tab.js +25 -7
  149. package/dist/components/tab.min.css +2 -2
  150. package/dist/components/tab.min.js +3 -3
  151. package/dist/components/table.css +1684 -272
  152. package/dist/components/table.min.css +2 -2
  153. package/dist/components/text.css +1 -1
  154. package/dist/components/text.min.css +1 -1
  155. package/dist/components/toast.css +43 -1
  156. package/dist/components/toast.js +68 -34
  157. package/dist/components/toast.min.css +2 -2
  158. package/dist/components/toast.min.js +3 -3
  159. package/dist/components/transition.css +1 -1
  160. package/dist/components/transition.js +27 -22
  161. package/dist/components/transition.min.css +1 -1
  162. package/dist/components/transition.min.js +3 -3
  163. package/dist/components/visibility.js +5 -5
  164. package/dist/components/visibility.min.js +3 -3
  165. package/dist/semantic.css +42008 -34578
  166. package/dist/semantic.js +2719 -763
  167. package/dist/semantic.min.css +3 -3
  168. package/dist/semantic.min.js +3 -3
  169. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  170. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  172. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  174. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  175. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  176. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  177. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  178. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  179. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  180. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  181. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  182. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  183. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  184. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  185. package/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
  186. package/dist/themes/default/assets/fonts/brand-icons.svg +801 -654
  187. package/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
  188. package/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
  189. package/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  190. package/dist/themes/default/assets/fonts/icons.eot +0 -0
  191. package/dist/themes/default/assets/fonts/icons.svg +1175 -1079
  192. package/dist/themes/default/assets/fonts/icons.ttf +0 -0
  193. package/dist/themes/default/assets/fonts/icons.woff +0 -0
  194. package/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  195. package/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
  196. package/dist/themes/default/assets/fonts/outline-icons.svg +93 -95
  197. package/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
  198. package/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
  199. package/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  200. package/dist/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  201. package/examples/assets/library/iframe-content.js +8 -8
  202. package/examples/assets/library/iframe.js +3 -3
  203. package/examples/components/button.html +1 -1
  204. package/examples/components/card.html +1 -1
  205. package/examples/components/input.html +1 -1
  206. package/examples/components/menu.html +1 -1
  207. package/examples/components/site.html +1 -1
  208. package/examples/components/table.html +1 -1
  209. package/package.json +18 -16
  210. package/scripts/nightly-version.js +47 -38
  211. package/src/definitions/behaviors/api.js +91 -32
  212. package/src/definitions/behaviors/form.js +45 -41
  213. package/src/definitions/behaviors/state.js +2 -2
  214. package/src/definitions/behaviors/visibility.js +4 -4
  215. package/src/definitions/collections/form.less +229 -166
  216. package/src/definitions/collections/grid.less +723 -687
  217. package/src/definitions/collections/menu.less +232 -170
  218. package/src/definitions/collections/message.less +49 -47
  219. package/src/definitions/collections/table.less +882 -272
  220. package/src/definitions/elements/button.less +611 -469
  221. package/src/definitions/elements/container.less +145 -8
  222. package/src/definitions/elements/divider.less +24 -24
  223. package/src/definitions/elements/emoji.less +39 -10
  224. package/src/definitions/elements/flag.less +54 -18
  225. package/src/definitions/elements/header.less +46 -37
  226. package/src/definitions/elements/icon.less +39 -32
  227. package/src/definitions/elements/input.less +281 -33
  228. package/src/definitions/elements/label.less +132 -128
  229. package/src/definitions/elements/list.less +84 -75
  230. package/src/definitions/elements/loader.less +99 -98
  231. package/src/definitions/elements/placeholder.less +32 -32
  232. package/src/definitions/elements/segment.less +177 -56
  233. package/src/definitions/elements/step.less +76 -72
  234. package/src/definitions/elements/text.less +17 -15
  235. package/src/definitions/globals/reset.less +2 -2
  236. package/src/definitions/globals/site.js +1 -1
  237. package/src/definitions/globals/site.less +25 -2
  238. package/src/definitions/modules/accordion.js +9 -3
  239. package/src/definitions/modules/accordion.less +371 -219
  240. package/src/definitions/modules/calendar.js +92 -73
  241. package/src/definitions/modules/calendar.less +20 -0
  242. package/src/definitions/modules/checkbox.js +20 -13
  243. package/src/definitions/modules/checkbox.less +83 -227
  244. package/src/definitions/modules/dimmer.js +18 -9
  245. package/src/definitions/modules/dimmer.less +26 -12
  246. package/src/definitions/modules/dropdown.js +211 -186
  247. package/src/definitions/modules/dropdown.less +201 -136
  248. package/src/definitions/modules/embed.js +13 -9
  249. package/src/definitions/modules/embed.less +4 -4
  250. package/src/definitions/modules/flyout.js +1529 -0
  251. package/src/definitions/modules/flyout.less +650 -0
  252. package/src/definitions/modules/modal.js +186 -83
  253. package/src/definitions/modules/modal.less +70 -33
  254. package/src/definitions/modules/nag.js +2 -2
  255. package/src/definitions/modules/nag.less +20 -19
  256. package/src/definitions/modules/popup.js +16 -22
  257. package/src/definitions/modules/popup.less +86 -90
  258. package/src/definitions/modules/progress.js +5 -2
  259. package/src/definitions/modules/progress.less +19 -18
  260. package/src/definitions/modules/rating.js +7 -3
  261. package/src/definitions/modules/rating.less +35 -34
  262. package/src/definitions/modules/search.js +47 -20
  263. package/src/definitions/modules/search.less +35 -19
  264. package/src/definitions/modules/shape.js +3 -3
  265. package/src/definitions/modules/sidebar.js +140 -43
  266. package/src/definitions/modules/sidebar.less +53 -24
  267. package/src/definitions/modules/slider.js +78 -63
  268. package/src/definitions/modules/slider.less +48 -47
  269. package/src/definitions/modules/sticky.js +10 -17
  270. package/src/definitions/modules/sticky.less +3 -1
  271. package/src/definitions/modules/tab.js +24 -6
  272. package/src/definitions/modules/tab.less +4 -4
  273. package/src/definitions/modules/toast.js +67 -33
  274. package/src/definitions/modules/toast.less +52 -16
  275. package/src/definitions/modules/transition.js +26 -21
  276. package/src/definitions/views/ad.less +3 -3
  277. package/src/definitions/views/card.less +522 -375
  278. package/src/definitions/views/comment.less +93 -82
  279. package/src/definitions/views/feed.less +164 -144
  280. package/src/definitions/views/item.less +251 -198
  281. package/src/definitions/views/statistic.less +91 -89
  282. package/src/semantic.less +1 -0
  283. package/src/theme.config.example +1 -0
  284. package/src/theme.less +13 -2
  285. package/src/themes/amazon/globals/site.variables +1 -0
  286. package/src/themes/basic/elements/icon.overrides +149 -149
  287. package/src/themes/basic/elements/step.overrides +2 -2
  288. package/src/themes/bookish/elements/header.overrides +1 -1
  289. package/src/themes/chubby/elements/button.overrides +1 -1
  290. package/src/themes/chubby/elements/header.overrides +1 -1
  291. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  292. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  293. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  294. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  295. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  296. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  297. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  298. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  299. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  300. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  301. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  302. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  303. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  304. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  305. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  306. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  307. package/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  308. package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
  309. package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  310. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  311. package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  312. package/src/themes/default/assets/fonts/icons.eot +0 -0
  313. package/src/themes/default/assets/fonts/icons.svg +1175 -1079
  314. package/src/themes/default/assets/fonts/icons.ttf +0 -0
  315. package/src/themes/default/assets/fonts/icons.woff +0 -0
  316. package/src/themes/default/assets/fonts/icons.woff2 +0 -0
  317. package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  318. package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
  319. package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  320. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  321. package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  322. package/src/themes/default/collections/form.variables +4 -0
  323. package/src/themes/default/collections/menu.variables +6 -0
  324. package/src/themes/default/collections/table.variables +52 -0
  325. package/src/themes/default/elements/button.variables +7 -1
  326. package/src/themes/default/elements/container.variables +12 -0
  327. package/src/themes/default/elements/divider.overrides +7 -7
  328. package/src/themes/default/elements/emoji.overrides +0 -3090
  329. package/src/themes/default/elements/emoji.variables +3563 -1
  330. package/src/themes/default/elements/flag.overrides +0 -991
  331. package/src/themes/default/elements/flag.variables +1603 -5
  332. package/src/themes/default/elements/icon.overrides +1975 -1949
  333. package/src/themes/default/elements/icon.variables +1 -0
  334. package/src/themes/default/elements/input.variables +15 -0
  335. package/src/themes/default/elements/segment.variables +8 -0
  336. package/src/themes/default/elements/step.overrides +3 -3
  337. package/src/themes/default/globals/site.variables +109 -8
  338. package/src/themes/default/globals/variation.variables +161 -6
  339. package/src/themes/default/modules/accordion.overrides +6 -5
  340. package/src/themes/default/modules/accordion.variables +49 -2
  341. package/src/themes/default/modules/calendar.variables +3 -0
  342. package/src/themes/default/modules/checkbox.overrides +9 -9
  343. package/src/themes/default/modules/checkbox.variables +5 -5
  344. package/src/themes/default/modules/dimmer.variables +1 -1
  345. package/src/themes/default/modules/dropdown.overrides +5 -5
  346. package/src/themes/default/modules/dropdown.variables +7 -10
  347. package/src/themes/default/modules/flyout.overrides +3 -0
  348. package/src/themes/default/modules/flyout.variables +100 -0
  349. package/src/themes/default/modules/modal.variables +16 -2
  350. package/src/themes/default/modules/popup.variables +0 -2
  351. package/src/themes/default/modules/sidebar.variables +4 -1
  352. package/src/themes/default/modules/toast.variables +3 -0
  353. package/src/themes/default/views/card.variables +8 -0
  354. package/src/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  355. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  356. package/src/themes/famfamfam/elements/flag.variables +20 -0
  357. package/src/themes/github/elements/icon.overrides +206 -206
  358. package/src/themes/github/elements/step.overrides +5 -5
  359. package/src/themes/github/globals/site.variables +1 -0
  360. package/src/themes/github/modules/dropdown.overrides +6 -6
  361. package/src/themes/instagram/views/card.overrides +1 -1
  362. package/src/themes/joypixels/elements/emoji.overrides +0 -3089
  363. package/src/themes/joypixels/elements/emoji.variables +3562 -5
  364. package/src/themes/material/collections/menu.overrides +1 -1
  365. package/src/themes/material/elements/button.overrides +1 -1
  366. package/src/themes/material/elements/header.overrides +1 -1
  367. package/src/themes/material/elements/icon.overrides +932 -932
  368. package/src/themes/material/globals/site.variables +0 -1
  369. package/src/themes/material/modules/dropdown.overrides +1 -1
  370. package/src/themes/material/modules/modal.overrides +1 -1
  371. package/src/themes/pulsar/elements/loader.overrides +2 -2
  372. package/src/themes/resetcss/globals/reset.overrides +3 -3
  373. package/src/themes/rtl/globals/site.overrides +1 -1
  374. package/src/themes/striped/modules/progress.overrides +1 -1
  375. package/src/themes/systemfont/globals/reset.overrides +8 -0
  376. package/src/themes/systemfont/globals/site.variables +10 -0
  377. package/src/themes/twitter/elements/emoji.overrides +0 -3091
  378. package/src/themes/twitter/elements/emoji.variables +3558 -6
  379. package/tasks/admin/distributions/create.js +1 -1
  380. package/tasks/admin/publish.js +1 -1
  381. package/tasks/admin/release.js +1 -1
  382. package/tasks/build/assets.js +1 -1
  383. package/tasks/build/css.js +9 -4
  384. package/tasks/build/javascript.js +3 -3
  385. package/tasks/check-install.js +1 -1
  386. package/tasks/clean.js +1 -1
  387. package/tasks/collections/README.md +1 -1
  388. package/tasks/collections/admin.js +1 -1
  389. package/tasks/config/admin/oauth.example.js +1 -1
  390. package/tasks/config/admin/release.js +1 -0
  391. package/tasks/config/admin/templates/composer.json +1 -1
  392. package/tasks/config/defaults.js +1 -0
  393. package/tasks/config/project/install.js +16 -13
  394. package/tasks/install.js +1 -0
  395. package/tasks/rtl/watch.js +1 -1
  396. package/tasks/version.js +1 -1
  397. package/test/fixtures/accordion.html +1 -1
  398. package/test/fixtures/checkbox.html +1 -1
  399. package/test/fixtures/dropdown.html +1 -1
  400. package/test/fixtures/modal.html +1 -1
  401. package/test/fixtures/popup.html +1 -1
  402. package/test/fixtures/rating.html +1 -1
  403. package/test/fixtures/shape.html +1 -1
  404. package/test/fixtures/sidebar.html +1 -1
  405. package/test/fixtures/tab.html +1 -1
  406. package/test/fixtures/transition.html +1 -1
  407. package/test/fixtures/video.html +1 -1
  408. package/test/helpers/jasmine-jquery.js +2 -2
  409. package/test/helpers/jasmine-sinon.js +1 -1
  410. package/test/helpers/jquery-events.js +1 -1
  411. package/test/helpers/sinon.js +3 -3
  412. package/test/meteor/fonts.js +1 -1
  413. package/test/modules/accordion.spec.js +1 -1
  414. package/test/modules/checkbox.spec.js +1 -1
  415. package/test/modules/dropdown.spec.js +1 -1
  416. package/test/modules/modal.spec.js +1 -1
  417. package/test/modules/module.spec.js +1 -1
  418. package/test/modules/popup.spec.js +1 -1
  419. package/test/modules/search.spec.js +1 -1
  420. package/test/modules/shape.spec.js +1 -1
  421. package/test/modules/sidebar.spec.js +1 -1
  422. package/test/modules/tab.spec.js +1 -1
  423. package/test/modules/transition.spec.js +1 -1
  424. package/test/modules/video.spec.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.32 - Tab
2
+ * # Fomantic-UI 2.9.0-beta.320+c4b3a74 - Tab
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -100,10 +100,18 @@ $.fn.tab = function(parameters) {
100
100
  initializedHistory = true;
101
101
  }
102
102
 
103
- if(settings.autoTabActivation && instance === undefined && module.determine.activeTab() == null) {
104
- module.debug('No active tab detected, setting first tab active', module.get.initialPath());
105
- module.changeTab(settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation);
106
- };
103
+ var activeTab = module.determine.activeTab();
104
+ if(settings.autoTabActivation && instance === undefined && activeTab == null) {
105
+ activeTab = settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation;
106
+ module.debug('No active tab detected, setting tab active', activeTab);
107
+ module.changeTab(activeTab);
108
+ }
109
+ if(activeTab != null && settings.history) {
110
+ var autoUpdate = $.address.autoUpdate();
111
+ $.address.autoUpdate(false);
112
+ $.address.value(activeTab);
113
+ $.address.autoUpdate(autoUpdate);
114
+ }
107
115
 
108
116
  module.instantiate();
109
117
  },
@@ -154,7 +162,7 @@ $.fn.tab = function(parameters) {
154
162
  module.verbose('Determined parent element for creating context', $context);
155
163
  }
156
164
  else if(settings.context) {
157
- $context = $(settings.context);
165
+ $context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
158
166
  module.verbose('Using selector for tab context', settings.context, $context);
159
167
  }
160
168
  else {
@@ -203,6 +211,7 @@ $.fn.tab = function(parameters) {
203
211
  .history(true)
204
212
  .state(settings.path)
205
213
  ;
214
+ $(window).trigger('popstate');
206
215
  }
207
216
  else {
208
217
  module.error(error.path);
@@ -370,6 +379,10 @@ $.fn.tab = function(parameters) {
370
379
  module.verbose('Tab parameters found', nextPathArray);
371
380
  }
372
381
  }
382
+ if (settings.onBeforeChange.call(element, currentPath) === false) {
383
+ module.debug('onBeforeChange returned false, cancelling tab change', $tab);
384
+ return false;
385
+ }
373
386
  if(isLastTab && remoteContent) {
374
387
  if(!shouldIgnoreLoad) {
375
388
  module.activate.navigation(currentPath);
@@ -406,6 +419,10 @@ $.fn.tab = function(parameters) {
406
419
  // if anchor exists use parent tab
407
420
  if($anchor && $anchor.length > 0 && currentPath) {
408
421
  module.debug('Anchor link used, opening parent tab', $tab, $anchor);
422
+ if (settings.onBeforeChange.call(element, currentPath) === false) {
423
+ module.debug('onBeforeChange returned false, cancelling tab change', $tab);
424
+ return false;
425
+ }
409
426
  if( !$tab.hasClass(className.active) ) {
410
427
  setTimeout(function() {
411
428
  module.scrollTo($anchor);
@@ -851,7 +868,7 @@ $.fn.tab = function(parameters) {
851
868
  response
852
869
  ;
853
870
  passedArguments = passedArguments || queryArguments;
854
- context = element || context;
871
+ context = context || element;
855
872
  if(typeof query == 'string' && object !== undefined) {
856
873
  query = query.split(/[\. ]/);
857
874
  maxDepth = query.length - 1;
@@ -959,6 +976,7 @@ $.fn.tab.settings = {
959
976
  onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load
960
977
  onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
961
978
  onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content
979
+ onBeforeChange: function(tabPath) {}, // called before a tab is about to be changed. Returning false will cancel the tab change
962
980
 
963
981
  templates : {
964
982
  determineTitle: function(tabArray) {} // returns page title for path
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.32 - Tab
2
+ * # Fomantic-UI 2.9.0-beta.320+c4b3a74 - Tab
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
6
6
  * Released under the MIT license
7
7
  * http://opensource.org/licenses/MIT
8
8
  *
9
- */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:50%;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:50%;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:loader .6s infinite linear;animation:loader .6s infinite linear;border:.2em solid #767676;border-radius:500rem;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}
9
+ */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment::before,.ui.tab.loading::before{position:absolute;content:'';top:50%;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment::after,.ui.tab.loading::after{position:absolute;content:'';top:50%;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:loader .6s infinite linear;animation:loader .6s infinite linear;border:.2em solid #767676;border-radius:500rem;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}
@@ -1,11 +1,11 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.0-beta.32
2
+ * # Fomantic UI - 2.9.0-beta.320+c4b3a74
3
3
  * https://github.com/fomantic/Fomantic-UI
4
4
  * http://fomantic-ui.com/
5
5
  *
6
- * Copyright 2021 Contributors
6
+ * Copyright 2022 Contributors
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
10
10
  */
11
- !function(j,O,k,I){"use strict";j.isWindow=j.isWindow||function(e){return null!=e&&e===e.window},j.isFunction=j.isFunction||function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},O=void 0!==O&&O.Math==Math?O:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),j.fn.tab=function(l){var d,u=j.isFunction(this)?j(O):j(this),b=u.selector||"",g=(new Date).getTime(),f=[],F=l,w="string"==typeof F,S=[].slice.call(arguments,1),E=!1;return u.each(function(){var h,o,p,v,m,y,T=j.isPlainObject(l)?j.extend(!0,{},j.fn.tab.settings,l):j.extend({},j.fn.tab.settings),L=T.className,A=T.metadata,t=T.selector,x=T.error,a=T.regExp,e="."+T.namespace,n="module-"+T.namespace,P=j(this),i={},C=!0,r=0,s=this,c=P.data(n);m={initialize:function(){m.debug("Initializing tab menu item",P),m.fix.callbacks(),m.determineTabs(),m.debug("Determining tabs",T.context,o),T.auto&&m.set.auto(),m.bind.events(),T.history&&!E&&(m.initializeHistory(),E=!0),T.autoTabActivation&&c===I&&null==m.determine.activeTab()&&(m.debug("No active tab detected, setting first tab active",m.get.initialPath()),m.changeTab(!0===T.autoTabActivation?m.get.initialPath():T.autoTabActivation)),m.instantiate()},instantiate:function(){m.verbose("Storing instance of module",m),c=m,P.data(n,m)},destroy:function(){m.debug("Destroying tabs",P),P.removeData(n).off(e)},bind:{events:function(){j.isWindow(s)||(m.debug("Attaching tab activation events to element",P),P.on("click"+e,m.event.click))}},determineTabs:function(){var e;"parent"===T.context?(0<P.closest(t.ui).length?(e=P.closest(t.ui),m.verbose("Using closest UI element as parent",e)):e=P,h=e.parent(),m.verbose("Determined parent element for creating context",h)):T.context?(h=j(T.context),m.verbose("Using selector for tab context",T.context,h)):h=j("body"),T.childrenOnly?(o=h.children(t.tabs),m.debug("Searching tab context children for tabs",h,o)):(o=h.find(t.tabs),m.debug("Searching tab context for tabs",h,o))},fix:{callbacks:function(){j.isPlainObject(l)&&(l.onTabLoad||l.onTabInit)&&(l.onTabLoad&&(l.onLoad=l.onTabLoad,delete l.onTabLoad,m.error(x.legacyLoad,l.onLoad)),l.onTabInit&&(l.onFirstLoad=l.onTabInit,delete l.onTabInit,m.error(x.legacyInit,l.onFirstLoad)),T=j.extend(!0,{},j.fn.tab.settings,l))}},initializeHistory:function(){if(m.debug("Initializing page state"),j.address===I)return m.error(x.state),!1;if("state"==T.historyType){if(m.debug("Using HTML5 to manage state"),!1===T.path)return m.error(x.path),!1;j.address.history(!0).state(T.path)}j.address.bind("change",m.event.history.change)},event:{click:function(e){var t=j(this).data(A.tab);t!==I?(T.history?(m.verbose("Updating page state",e),j.address.value(t)):(m.verbose("Changing tab",e),m.changeTab(t)),e.preventDefault()):m.debug("No tab specified")},history:{change:function(e){var t=e.pathNames.join("/")||m.get.initialPath(),a=T.templates.determineTitle(t)||!1;m.performance.display(),m.debug("History change event",t,e),y=e,t!==I&&m.changeTab(t),a&&j.address.title(a)}}},refresh:function(){p&&(m.debug("Refreshing tab",p),m.changeTab(p))},cache:{read:function(e){return e!==I&&i[e]},add:function(e,t){e=e||p,m.debug("Adding cached content for",e),i[e]=t},remove:function(e){e=e||p,m.debug("Removing cached content for",e),delete i[e]}},escape:{string:function(e){return(e=String(e)).replace(a.escape,"\\$&")}},set:{auto:function(){var e="string"==typeof T.path?T.path.replace(/\/$/,"")+"/{$tab}":"/{$tab}";m.verbose("Setting up automatic tab retrieval from server",e),j.isPlainObject(T.apiSettings)?T.apiSettings.url=e:T.apiSettings={url:e}},loading:function(e){var t=m.get.tabElement(e);t.hasClass(L.loading)||(m.verbose("Setting loading state for",t),t.addClass(L.loading).siblings(o).removeClass(L.active+" "+L.loading),0<t.length&&T.onRequest.call(t[0],e))},state:function(e){j.address.value(e)}},changeTab:function(u){var b=O.history&&O.history.pushState&&T.ignoreFirstLoad&&C,g=T.auto||j.isPlainObject(T.apiSettings),f=g&&!b?m.utilities.pathToArray(u):m.get.defaultPathArray(u);u=m.utilities.arrayToPath(f),j.each(f,function(e,t){var a,n,i,o,r=f.slice(0,e+1),s=m.utilities.arrayToPath(r),c=m.is.tab(s),l=e+1==f.length,d=m.get.tabElement(s);if(m.verbose("Looking for tab",t),c){if(m.verbose("Tab was found",t),p=s,v=m.utilities.filterArray(f,r),l?o=!0:(n=f.slice(0,e+2),i=m.utilities.arrayToPath(n),(o=!m.is.tab(i))&&m.verbose("Tab parameters found",n)),o&&g)return b?(m.debug("Ignoring remote content on first tab load",s),C=!1,m.cache.add(u,d.html()),m.activate.all(s),T.onFirstLoad.call(d[0],s,v,y),T.onLoad.call(d[0],s,v,y)):(m.activate.navigation(s),m.fetch.content(s,u)),!1;m.debug("Opened local tab",s),m.activate.all(s),m.cache.read(s)||(m.cache.add(s,!0),m.debug("First time tab loaded calling tab init"),T.onFirstLoad.call(d[0],s,v,y)),T.onLoad.call(d[0],s,v,y)}else{if(-1!=u.search("/")||""===u)return m.error(x.missingTab,P,h,s),!1;if(u=m.escape.string(u),s=(a=j("#"+u+', a[name="'+u+'"]')).closest("[data-tab]").data(A.tab),d=m.get.tabElement(s),a&&0<a.length&&s)return m.debug("Anchor link used, opening parent tab",d,a),d.hasClass(L.active)||setTimeout(function(){m.scrollTo(a)},0),m.activate.all(s),m.cache.read(s)||(m.cache.add(s,!0),m.debug("First time tab loaded calling tab init"),T.onFirstLoad.call(d[0],s,v,y)),T.onLoad.call(d[0],s,v,y),!1}})},scrollTo:function(e){var t=!!(e&&0<e.length)&&e.offset().top;!1!==t&&(m.debug("Forcing scroll to an in-page link in a hidden tab",t,e),j(k).scrollTop(t))},update:{content:function(e,t,a){var n=m.get.tabElement(e),i=n[0];a=a!==I?a:T.evaluateScripts,"string"==typeof T.cacheType&&"dom"==T.cacheType.toLowerCase()&&"string"!=typeof t?n.empty().append(j(t).clone(!0)):a?(m.debug("Updating HTML and evaluating inline scripts",e,t),n.html(t)):(m.debug("Updating HTML",e,t),i.innerHTML=t)}},fetch:{content:function(t,a){var e,n,i=m.get.tabElement(t),o={dataType:"html",encodeParameters:!1,on:"now",cache:T.alwaysRefresh,headers:{"X-Remote":!0},onSuccess:function(e){"response"==T.cacheType&&m.cache.add(a,e),m.update.content(t,e),t==p?(m.debug("Content loaded",t),m.activate.tab(t)):m.debug("Content loaded in background",t),T.onFirstLoad.call(i[0],t,v,y),T.onLoad.call(i[0],t,v,y),T.loadOnce?m.cache.add(a,!0):"string"==typeof T.cacheType&&"dom"==T.cacheType.toLowerCase()&&0<i.children().length?setTimeout(function(){var e=i.children().clone(!0);e=e.not("script"),m.cache.add(a,e)},0):m.cache.add(a,i.html())},urlData:{tab:a}},r=i.api("get request")||!1,s=r&&"pending"===r.state();a=a||t,n=m.cache.read(a),T.cache&&n?(m.activate.tab(t),m.debug("Adding cached content",a),T.loadOnce||("once"==T.evaluateScripts?m.update.content(t,n,!1):m.update.content(t,n)),T.onLoad.call(i[0],t,v,y)):s?(m.set.loading(t),m.debug("Content is already loading",a)):j.api!==I?(e=j.extend(!0,{},T.apiSettings,o),m.debug("Retrieving remote content",a,e),m.set.loading(t),i.api(e)):m.error(x.api)}},activate:{all:function(e){m.activate.tab(e),m.activate.navigation(e)},tab:function(e){var t=m.get.tabElement(e),a="siblings"==T.deactivate?t.siblings(o):o.not(t),n=t.hasClass(L.active);m.verbose("Showing tab content for",t),n||(t.addClass(L.active),a.removeClass(L.active+" "+L.loading),0<t.length&&T.onVisible.call(t[0],e))},navigation:function(e){var t=m.get.navElement(e),a="siblings"==T.deactivate?t.siblings(u):u.not(t),n=t.hasClass(L.active);m.verbose("Activating tab navigation for",t,e),n||(t.addClass(L.active),a.removeClass(L.active+" "+L.loading))}},deactivate:{all:function(){m.deactivate.navigation(),m.deactivate.tabs()},navigation:function(){u.removeClass(L.active)},tabs:function(){o.removeClass(L.active+" "+L.loading)}},is:{tab:function(e){return e!==I&&0<m.get.tabElement(e).length}},get:{initialPath:function(){return u.eq(0).data(A.tab)||o.eq(0).data(A.tab)},path:function(){return j.address.value()},defaultPathArray:function(e){return m.utilities.pathToArray(m.get.defaultPath(e))},defaultPath:function(e){var t=u.filter("[data-"+A.tab+'^="'+m.escape.string(e)+'/"]').eq(0).data(A.tab)||!1;if(t){if(m.debug("Found default tab",t),r<T.maxDepth)return r++,m.get.defaultPath(t);m.error(x.recursion)}else m.debug("No default tabs found for",e,o);return r=0,e},navElement:function(e){return e=e||p,u.filter("[data-"+A.tab+'="'+m.escape.string(e)+'"]')},tabElement:function(e){var t,a,n,i;return e=e||p,n=m.utilities.pathToArray(e),i=m.utilities.last(n),t=o.filter("[data-"+A.tab+'="'+m.escape.string(e)+'"]'),a=o.filter("[data-"+A.tab+'="'+m.escape.string(i)+'"]'),0<t.length?t:a},tab:function(){return p}},determine:{activeTab:function(){var n=null;return o.each(function(e,t){if(j(t).hasClass(L.active)){var a=j(this).data(A.tab);u.filter("[data-"+A.tab+'="'+m.escape.string(a)+'"]').hasClass(L.active)&&(n=a)}}),n}},utilities:{filterArray:function(e,t){return j.grep(e,function(e){return-1==j.inArray(e,t)})},last:function(e){return!!Array.isArray(e)&&e[e.length-1]},pathToArray:function(e){return e===I&&(e=p),"string"==typeof e?e.split("/"):[e]},arrayToPath:function(e){return!!Array.isArray(e)&&e.join("/")}},setting:function(e,t){if(m.debug("Changing setting",e,t),j.isPlainObject(e))j.extend(!0,T,e);else{if(t===I)return T[e];j.isPlainObject(T[e])?j.extend(!0,T[e],t):T[e]=t}},internal:function(e,t){if(j.isPlainObject(e))j.extend(!0,m,e);else{if(t===I)return m[e];m[e]=t}},debug:function(){!T.silent&&T.debug&&(T.performance?m.performance.log(arguments):(m.debug=Function.prototype.bind.call(console.info,console,T.name+":"),m.debug.apply(console,arguments)))},verbose:function(){!T.silent&&T.verbose&&T.debug&&(T.performance?m.performance.log(arguments):(m.verbose=Function.prototype.bind.call(console.info,console,T.name+":"),m.verbose.apply(console,arguments)))},error:function(){T.silent||(m.error=Function.prototype.bind.call(console.error,console,T.name+":"),m.error.apply(console,arguments))},performance:{log:function(e){var t,a;T.performance&&(a=(t=(new Date).getTime())-(g||t),g=t,f.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:s,"Execution Time":a})),clearTimeout(m.performance.timer),m.performance.timer=setTimeout(m.performance.display,500)},display:function(){var e=T.name+":",a=0;g=!1,clearTimeout(m.performance.timer),j.each(f,function(e,t){a+=t["Execution Time"]}),e+=" "+a+"ms",b&&(e+=" '"+b+"'"),(console.group!==I||console.table!==I)&&0<f.length&&(console.groupCollapsed(e),console.table?console.table(f):j.each(f,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),f=[]}},invoke:function(n,e,t){var i,o,a,r=c;return e=e||S,t=s||t,"string"==typeof n&&r!==I&&(n=n.split(/[\. ]/),i=n.length-1,j.each(n,function(e,t){var a=e!=i?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(j.isPlainObject(r[a])&&e!=i)r=r[a];else{if(r[a]!==I)return o=r[a],!1;if(!j.isPlainObject(r[t])||e==i)return r[t]!==I?o=r[t]:m.error(x.method,n),!1;r=r[t]}})),j.isFunction(o)?a=o.apply(t,e):o!==I&&(a=o),Array.isArray(d)?d.push(a):d!==I?d=[d,a]:a!==I&&(d=a),o}},w?(c===I&&m.initialize(),m.invoke(F)):(c!==I&&c.invoke("destroy"),m.initialize())}),d!==I?d:this},j.tab=function(){j(O).tab.apply(this,arguments)},j.fn.tab.settings={name:"Tab",namespace:"tab",silent:!1,debug:!1,verbose:!1,performance:!0,auto:!1,history:!1,historyType:"hash",path:!1,context:!1,childrenOnly:!1,maxDepth:25,deactivate:"siblings",alwaysRefresh:!1,cache:!0,loadOnce:!1,cacheType:"response",ignoreFirstLoad:!1,apiSettings:!1,evaluateScripts:"once",autoTabActivation:!0,onFirstLoad:function(e,t,a){},onLoad:function(e,t,a){},onVisible:function(e,t,a){},onRequest:function(e,t,a){},templates:{determineTitle:function(e){}},error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Activated tab cannot be found. Tabs are case-sensitive.",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",legacyInit:"onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.",legacyLoad:"onTabLoad has been renamed to onLoad in 2.0. Please adjust your code",state:"History requires Asual's Address library <https://github.com/asual/jquery-address>"},regExp:{escape:/[-[\]{}()*+?.,\\^$|#\s:=@]/g},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab",ui:".ui"}}}(jQuery,window,document);
11
+ !function(O,j,k,I){"use strict";O.isWindow=O.isWindow||function(e){return null!=e&&e===e.window},O.isFunction=O.isFunction||function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},j=void 0!==j&&j.Math==Math?j:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),O.fn.tab=function(c){var l,d=O.isFunction(this)?O(j):O(this),u=d.selector||"",g=(new Date).getTime(),P=[],F=c,w="string"==typeof F,S=[].slice.call(arguments,1),E=!1;return d.each(function(){var b,i,f,h,p,v=O.isPlainObject(c)?O.extend(!0,{},O.fn.tab.settings,c):O.extend({},O.fn.tab.settings),m=v.className,y=v.metadata,t=v.selector,T=v.error,a=v.regExp,e="."+v.namespace,n="module-"+v.namespace,L=O(this),o={},x=!0,r=0,A=this,s=L.data(n),C={initialize:function(){C.debug("Initializing tab menu item",L),C.fix.callbacks(),C.determineTabs(),C.debug("Determining tabs",v.context,i),v.auto&&C.set.auto(),C.bind.events(),v.history&&!E&&(C.initializeHistory(),E=!0);var e,t=C.determine.activeTab();v.autoTabActivation&&s===I&&null==t&&(t=!0===v.autoTabActivation?C.get.initialPath():v.autoTabActivation,C.debug("No active tab detected, setting tab active",t),C.changeTab(t)),null!=t&&v.history&&(e=O.address.autoUpdate(),O.address.autoUpdate(!1),O.address.value(t),O.address.autoUpdate(e)),C.instantiate()},instantiate:function(){C.verbose("Storing instance of module",C),s=C,L.data(n,C)},destroy:function(){C.debug("Destroying tabs",L),L.removeData(n).off(e)},bind:{events:function(){O.isWindow(A)||(C.debug("Attaching tab activation events to element",L),L.on("click"+e,C.event.click))}},determineTabs:function(){var e;"parent"===v.context?(0<L.closest(t.ui).length?(e=L.closest(t.ui),C.verbose("Using closest UI element as parent",e)):e=L,b=e.parent(),C.verbose("Determined parent element for creating context",b)):v.context?(b=[j,k].indexOf(v.context)<0?O(k).find(v.context):O(v.context),C.verbose("Using selector for tab context",v.context,b)):b=O("body"),v.childrenOnly?(i=b.children(t.tabs),C.debug("Searching tab context children for tabs",b,i)):(i=b.find(t.tabs),C.debug("Searching tab context for tabs",b,i))},fix:{callbacks:function(){O.isPlainObject(c)&&(c.onTabLoad||c.onTabInit)&&(c.onTabLoad&&(c.onLoad=c.onTabLoad,delete c.onTabLoad,C.error(T.legacyLoad,c.onLoad)),c.onTabInit&&(c.onFirstLoad=c.onTabInit,delete c.onTabInit,C.error(T.legacyInit,c.onFirstLoad)),v=O.extend(!0,{},O.fn.tab.settings,c))}},initializeHistory:function(){if(C.debug("Initializing page state"),O.address===I)return C.error(T.state),!1;if("state"==v.historyType){if(C.debug("Using HTML5 to manage state"),!1===v.path)return C.error(T.path),!1;O.address.history(!0).state(v.path),O(j).trigger("popstate")}O.address.bind("change",C.event.history.change)},event:{click:function(e){var t=O(this).data(y.tab);t!==I?(v.history?(C.verbose("Updating page state",e),O.address.value(t)):(C.verbose("Changing tab",e),C.changeTab(t)),e.preventDefault()):C.debug("No tab specified")},history:{change:function(e){var t=e.pathNames.join("/")||C.get.initialPath(),a=v.templates.determineTitle(t)||!1;C.performance.display(),C.debug("History change event",t,e),p=e,t!==I&&C.changeTab(t),a&&O.address.title(a)}}},refresh:function(){f&&(C.debug("Refreshing tab",f),C.changeTab(f))},cache:{read:function(e){return e!==I&&o[e]},add:function(e,t){e=e||f,C.debug("Adding cached content for",e),o[e]=t},remove:function(e){e=e||f,C.debug("Removing cached content for",e),delete o[e]}},escape:{string:function(e){return(e=String(e)).replace(a.escape,"\\$&")}},set:{auto:function(){var e="string"==typeof v.path?v.path.replace(/\/$/,"")+"/{$tab}":"/{$tab}";C.verbose("Setting up automatic tab retrieval from server",e),O.isPlainObject(v.apiSettings)?v.apiSettings.url=e:v.apiSettings={url:e}},loading:function(e){var t=C.get.tabElement(e);t.hasClass(m.loading)||(C.verbose("Setting loading state for",t),t.addClass(m.loading).siblings(i).removeClass(m.active+" "+m.loading),0<t.length&&v.onRequest.call(t[0],e))},state:function(e){O.address.value(e)}},changeTab:function(l){var d=j.history&&j.history.pushState&&v.ignoreFirstLoad&&x,u=v.auto||O.isPlainObject(v.apiSettings),g=u&&!d?C.utilities.pathToArray(l):C.get.defaultPathArray(l);l=C.utilities.arrayToPath(g),O.each(g,function(e,t){var a,n,i=g.slice(0,e+1),o=C.utilities.arrayToPath(i),r=C.is.tab(o),s=e+1==g.length,c=C.get.tabElement(o);return C.verbose("Looking for tab",t),r?(C.verbose("Tab was found",t),f=o,h=C.utilities.filterArray(g,i),s?n=!0:(r=g.slice(0,e+2),t=C.utilities.arrayToPath(r),(n=!C.is.tab(t))&&C.verbose("Tab parameters found",r)),!1===v.onBeforeChange.call(A,o)?(C.debug("onBeforeChange returned false, cancelling tab change",c),!1):n&&u?(d?(C.debug("Ignoring remote content on first tab load",o),x=!1,C.cache.add(l,c.html()),C.activate.all(o),v.onFirstLoad.call(c[0],o,h,p),v.onLoad.call(c[0],o,h,p)):(C.activate.navigation(o),C.fetch.content(o,l)),!1):(C.debug("Opened local tab",o),C.activate.all(o),C.cache.read(o)||(C.cache.add(o,!0),C.debug("First time tab loaded calling tab init"),v.onFirstLoad.call(c[0],o,h,p)),void v.onLoad.call(c[0],o,h,p))):-1!=l.search("/")||""===l?(C.error(T.missingTab,L,b,o),!1):(l=C.escape.string(l),o=(a=O("#"+l+', a[name="'+l+'"]')).closest("[data-tab]").data(y.tab),c=C.get.tabElement(o),a&&0<a.length&&o?(C.debug("Anchor link used, opening parent tab",c,a),!1===v.onBeforeChange.call(A,o)?C.debug("onBeforeChange returned false, cancelling tab change",c):(c.hasClass(m.active)||setTimeout(function(){C.scrollTo(a)},0),C.activate.all(o),C.cache.read(o)||(C.cache.add(o,!0),C.debug("First time tab loaded calling tab init"),v.onFirstLoad.call(c[0],o,h,p)),v.onLoad.call(c[0],o,h,p)),!1):void 0)})},scrollTo:function(e){var t=!!(e&&0<e.length)&&e.offset().top;!1!==t&&(C.debug("Forcing scroll to an in-page link in a hidden tab",t,e),O(k).scrollTop(t))},update:{content:function(e,t,a){var n=C.get.tabElement(e),i=n[0];a=a!==I?a:v.evaluateScripts,"string"==typeof v.cacheType&&"dom"==v.cacheType.toLowerCase()&&"string"!=typeof t?n.empty().append(O(t).clone(!0)):a?(C.debug("Updating HTML and evaluating inline scripts",e,t),n.html(t)):(C.debug("Updating HTML",e,t),i.innerHTML=t)}},fetch:{content:function(t,a){var e,n=C.get.tabElement(t),i={dataType:"html",encodeParameters:!1,on:"now",cache:v.alwaysRefresh,headers:{"X-Remote":!0},onSuccess:function(e){"response"==v.cacheType&&C.cache.add(a,e),C.update.content(t,e),t==f?(C.debug("Content loaded",t),C.activate.tab(t)):C.debug("Content loaded in background",t),v.onFirstLoad.call(n[0],t,h,p),v.onLoad.call(n[0],t,h,p),v.loadOnce?C.cache.add(a,!0):"string"==typeof v.cacheType&&"dom"==v.cacheType.toLowerCase()&&0<n.children().length?setTimeout(function(){var e=(e=n.children().clone(!0)).not("script");C.cache.add(a,e)},0):C.cache.add(a,n.html())},urlData:{tab:a}},o=n.api("get request")||!1,o=o&&"pending"===o.state();a=a||t,e=C.cache.read(a),v.cache&&e?(C.activate.tab(t),C.debug("Adding cached content",a),v.loadOnce||("once"==v.evaluateScripts?C.update.content(t,e,!1):C.update.content(t,e)),v.onLoad.call(n[0],t,h,p)):o?(C.set.loading(t),C.debug("Content is already loading",a)):O.api!==I?(e=O.extend(!0,{},v.apiSettings,i),C.debug("Retrieving remote content",a,e),C.set.loading(t),n.api(e)):C.error(T.api)}},activate:{all:function(e){C.activate.tab(e),C.activate.navigation(e)},tab:function(e){var t=C.get.tabElement(e),a="siblings"==v.deactivate?t.siblings(i):i.not(t),n=t.hasClass(m.active);C.verbose("Showing tab content for",t),n||(t.addClass(m.active),a.removeClass(m.active+" "+m.loading),0<t.length&&v.onVisible.call(t[0],e))},navigation:function(e){var t=C.get.navElement(e),a="siblings"==v.deactivate?t.siblings(d):d.not(t),n=t.hasClass(m.active);C.verbose("Activating tab navigation for",t,e),n||(t.addClass(m.active),a.removeClass(m.active+" "+m.loading))}},deactivate:{all:function(){C.deactivate.navigation(),C.deactivate.tabs()},navigation:function(){d.removeClass(m.active)},tabs:function(){i.removeClass(m.active+" "+m.loading)}},is:{tab:function(e){return e!==I&&0<C.get.tabElement(e).length}},get:{initialPath:function(){return d.eq(0).data(y.tab)||i.eq(0).data(y.tab)},path:function(){return O.address.value()},defaultPathArray:function(e){return C.utilities.pathToArray(C.get.defaultPath(e))},defaultPath:function(e){var t=d.filter("[data-"+y.tab+'^="'+C.escape.string(e)+'/"]').eq(0).data(y.tab)||!1;if(t){if(C.debug("Found default tab",t),r<v.maxDepth)return r++,C.get.defaultPath(t);C.error(T.recursion)}else C.debug("No default tabs found for",e,i);return r=0,e},navElement:function(e){return e=e||f,d.filter("[data-"+y.tab+'="'+C.escape.string(e)+'"]')},tabElement:function(e){var t;return e=e||f,t=C.utilities.pathToArray(e),t=C.utilities.last(t),e=i.filter("[data-"+y.tab+'="'+C.escape.string(e)+'"]'),t=i.filter("[data-"+y.tab+'="'+C.escape.string(t)+'"]'),0<e.length?e:t},tab:function(){return f}},determine:{activeTab:function(){var a=null;return i.each(function(e,t){O(t).hasClass(m.active)&&(t=O(this).data(y.tab),d.filter("[data-"+y.tab+'="'+C.escape.string(t)+'"]').hasClass(m.active)&&(a=t))}),a}},utilities:{filterArray:function(e,t){return O.grep(e,function(e){return-1==O.inArray(e,t)})},last:function(e){return!!Array.isArray(e)&&e[e.length-1]},pathToArray:function(e){return"string"==typeof(e=e===I?f:e)?e.split("/"):[e]},arrayToPath:function(e){return!!Array.isArray(e)&&e.join("/")}},setting:function(e,t){if(C.debug("Changing setting",e,t),O.isPlainObject(e))O.extend(!0,v,e);else{if(t===I)return v[e];O.isPlainObject(v[e])?O.extend(!0,v[e],t):v[e]=t}},internal:function(e,t){if(O.isPlainObject(e))O.extend(!0,C,e);else{if(t===I)return C[e];C[e]=t}},debug:function(){!v.silent&&v.debug&&(v.performance?C.performance.log(arguments):(C.debug=Function.prototype.bind.call(console.info,console,v.name+":"),C.debug.apply(console,arguments)))},verbose:function(){!v.silent&&v.verbose&&v.debug&&(v.performance?C.performance.log(arguments):(C.verbose=Function.prototype.bind.call(console.info,console,v.name+":"),C.verbose.apply(console,arguments)))},error:function(){v.silent||(C.error=Function.prototype.bind.call(console.error,console,v.name+":"),C.error.apply(console,arguments))},performance:{log:function(e){var t,a;v.performance&&(a=(t=(new Date).getTime())-(g||t),g=t,P.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:A,"Execution Time":a})),clearTimeout(C.performance.timer),C.performance.timer=setTimeout(C.performance.display,500)},display:function(){var e=v.name+":",a=0;g=!1,clearTimeout(C.performance.timer),O.each(P,function(e,t){a+=t["Execution Time"]}),e+=" "+a+"ms",u&&(e+=" '"+u+"'"),(console.group!==I||console.table!==I)&&0<P.length&&(console.groupCollapsed(e),console.table?console.table(P):O.each(P,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),P=[]}},invoke:function(n,e,t){var i,o,a,r=s;return e=e||S,t=t||A,"string"==typeof n&&r!==I&&(n=n.split(/[\. ]/),i=n.length-1,O.each(n,function(e,t){var a=e!=i?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(O.isPlainObject(r[a])&&e!=i)r=r[a];else{if(r[a]!==I)return o=r[a],!1;{if(!O.isPlainObject(r[t])||e==i)return r[t]!==I?o=r[t]:C.error(T.method,n),!1;r=r[t]}}})),O.isFunction(o)?a=o.apply(t,e):o!==I&&(a=o),Array.isArray(l)?l.push(a):l!==I?l=[l,a]:a!==I&&(l=a),o}};w?(s===I&&C.initialize(),C.invoke(F)):(s!==I&&s.invoke("destroy"),C.initialize())}),l!==I?l:this},O.tab=function(){O(j).tab.apply(this,arguments)},O.fn.tab.settings={name:"Tab",namespace:"tab",silent:!1,debug:!1,verbose:!1,performance:!0,auto:!1,history:!1,historyType:"hash",path:!1,context:!1,childrenOnly:!1,maxDepth:25,deactivate:"siblings",alwaysRefresh:!1,cache:!0,loadOnce:!1,cacheType:"response",ignoreFirstLoad:!1,apiSettings:!1,evaluateScripts:"once",autoTabActivation:!0,onFirstLoad:function(e,t,a){},onLoad:function(e,t,a){},onVisible:function(e,t,a){},onRequest:function(e,t,a){},onBeforeChange:function(e){},templates:{determineTitle:function(e){}},error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Activated tab cannot be found. Tabs are case-sensitive.",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",legacyInit:"onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.",legacyLoad:"onTabLoad has been renamed to onLoad in 2.0. Please adjust your code",state:"History requires Asual's Address library <https://github.com/asual/jquery-address>"},regExp:{escape:/[-[\]{}()*+?.,\\^$|#\s:=@]/g},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab",ui:".ui"}}}(jQuery,window,document);