fomantic-ui 2.9.0-beta.30 → 2.9.0-beta.300

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 (408) hide show
  1. package/.all-contributorsrc +242 -3
  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 +81 -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 +6 -3
  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 +89 -30
  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 +85 -68
  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 +17 -11
  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 +29 -14
  38. package/dist/components/dimmer.js +11 -5
  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 +90 -50
  44. package/dist/components/dropdown.js +150 -115
  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 +1 -1
  49. package/dist/components/embed.min.css +2 -2
  50. package/dist/components/embed.min.js +3 -3
  51. package/dist/components/emoji.css +10847 -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 +1011 -902
  56. package/dist/components/flag.min.css +2 -2
  57. package/dist/components/form.css +160 -83
  58. package/dist/components/form.js +39 -30
  59. package/dist/components/form.min.css +2 -2
  60. package/dist/components/form.min.js +3 -3
  61. package/dist/components/grid.css +25 -21
  62. package/dist/components/grid.min.css +2 -2
  63. package/dist/components/header.css +6 -4
  64. package/dist/components/header.min.css +2 -2
  65. package/dist/components/icon.css +2063 -1984
  66. package/dist/components/icon.min.css +2 -2
  67. package/dist/components/image.css +1 -1
  68. package/dist/components/image.min.css +1 -1
  69. package/dist/components/input.css +759 -22
  70. package/dist/components/input.min.css +2 -2
  71. package/dist/components/item.css +17 -17
  72. package/dist/components/item.min.css +2 -2
  73. package/dist/components/label.css +72 -68
  74. package/dist/components/label.min.css +2 -2
  75. package/dist/components/list.css +31 -31
  76. package/dist/components/list.min.css +2 -2
  77. package/dist/components/loader.css +352 -352
  78. package/dist/components/loader.min.css +2 -2
  79. package/dist/components/menu.css +108 -76
  80. package/dist/components/menu.min.css +1 -1
  81. package/dist/components/message.css +43 -43
  82. package/dist/components/message.min.css +2 -2
  83. package/dist/components/modal.css +29 -4
  84. package/dist/components/modal.js +128 -50
  85. package/dist/components/modal.min.css +2 -2
  86. package/dist/components/modal.min.js +3 -3
  87. package/dist/components/nag.css +1 -1
  88. package/dist/components/nag.js +2 -2
  89. package/dist/components/nag.min.css +1 -1
  90. package/dist/components/nag.min.js +3 -3
  91. package/dist/components/placeholder.css +33 -33
  92. package/dist/components/placeholder.min.css +2 -2
  93. package/dist/components/popup.css +100 -104
  94. package/dist/components/popup.js +11 -11
  95. package/dist/components/popup.min.css +2 -2
  96. package/dist/components/popup.min.js +3 -3
  97. package/dist/components/progress.css +1 -1
  98. package/dist/components/progress.js +4 -1
  99. package/dist/components/progress.min.css +1 -1
  100. package/dist/components/progress.min.js +3 -3
  101. package/dist/components/rail.css +1 -1
  102. package/dist/components/rail.min.css +1 -1
  103. package/dist/components/rating.css +1 -1
  104. package/dist/components/rating.js +1 -1
  105. package/dist/components/rating.min.css +1 -1
  106. package/dist/components/rating.min.js +3 -3
  107. package/dist/components/reset.css +5 -4
  108. package/dist/components/reset.min.css +2 -2
  109. package/dist/components/reveal.css +1 -1
  110. package/dist/components/reveal.min.css +1 -1
  111. package/dist/components/search.css +6 -6
  112. package/dist/components/search.js +23 -7
  113. package/dist/components/search.min.css +2 -2
  114. package/dist/components/search.min.js +3 -3
  115. package/dist/components/segment.css +118 -34
  116. package/dist/components/segment.min.css +2 -2
  117. package/dist/components/shape.css +1 -1
  118. package/dist/components/shape.js +3 -3
  119. package/dist/components/shape.min.css +1 -1
  120. package/dist/components/shape.min.js +3 -3
  121. package/dist/components/sidebar.css +7 -5
  122. package/dist/components/sidebar.js +14 -12
  123. package/dist/components/sidebar.min.css +2 -2
  124. package/dist/components/sidebar.min.js +3 -3
  125. package/dist/components/site.css +139 -42
  126. package/dist/components/site.js +1 -1
  127. package/dist/components/site.min.css +2 -2
  128. package/dist/components/site.min.js +3 -3
  129. package/dist/components/slider.css +17 -17
  130. package/dist/components/slider.js +68 -51
  131. package/dist/components/slider.min.css +1 -1
  132. package/dist/components/slider.min.js +3 -3
  133. package/dist/components/state.js +2 -2
  134. package/dist/components/state.min.js +3 -3
  135. package/dist/components/statistic.css +4 -4
  136. package/dist/components/statistic.min.css +2 -2
  137. package/dist/components/step.css +31 -31
  138. package/dist/components/step.min.css +2 -2
  139. package/dist/components/sticky.css +1 -1
  140. package/dist/components/sticky.js +4 -4
  141. package/dist/components/sticky.min.css +1 -1
  142. package/dist/components/sticky.min.js +3 -3
  143. package/dist/components/tab.css +5 -5
  144. package/dist/components/tab.js +24 -6
  145. package/dist/components/tab.min.css +2 -2
  146. package/dist/components/tab.min.js +3 -3
  147. package/dist/components/table.css +1684 -272
  148. package/dist/components/table.min.css +2 -2
  149. package/dist/components/text.css +1 -1
  150. package/dist/components/text.min.css +1 -1
  151. package/dist/components/toast.css +42 -1
  152. package/dist/components/toast.js +63 -31
  153. package/dist/components/toast.min.css +2 -2
  154. package/dist/components/toast.min.js +3 -3
  155. package/dist/components/transition.css +1 -1
  156. package/dist/components/transition.js +21 -16
  157. package/dist/components/transition.min.css +1 -1
  158. package/dist/components/transition.min.js +3 -3
  159. package/dist/components/visibility.js +2 -2
  160. package/dist/components/visibility.min.js +3 -3
  161. package/dist/semantic.css +20183 -13376
  162. package/dist/semantic.js +771 -465
  163. package/dist/semantic.min.css +3 -3
  164. package/dist/semantic.min.js +3 -3
  165. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  166. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  167. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  168. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  170. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  172. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  174. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  175. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  176. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  177. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  178. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  179. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  180. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  181. package/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
  182. package/dist/themes/default/assets/fonts/brand-icons.svg +801 -654
  183. package/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
  184. package/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
  185. package/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  186. package/dist/themes/default/assets/fonts/icons.eot +0 -0
  187. package/dist/themes/default/assets/fonts/icons.svg +1175 -1079
  188. package/dist/themes/default/assets/fonts/icons.ttf +0 -0
  189. package/dist/themes/default/assets/fonts/icons.woff +0 -0
  190. package/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  191. package/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
  192. package/dist/themes/default/assets/fonts/outline-icons.svg +93 -95
  193. package/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
  194. package/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
  195. package/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  196. package/dist/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  197. package/examples/assets/library/iframe-content.js +8 -8
  198. package/examples/assets/library/iframe.js +3 -3
  199. package/examples/components/button.html +1 -1
  200. package/examples/components/card.html +1 -1
  201. package/examples/components/input.html +1 -1
  202. package/examples/components/menu.html +1 -1
  203. package/examples/components/site.html +1 -1
  204. package/examples/components/table.html +1 -1
  205. package/package.json +18 -16
  206. package/scripts/nightly-version.js +47 -38
  207. package/src/definitions/behaviors/api.js +88 -29
  208. package/src/definitions/behaviors/form.js +38 -29
  209. package/src/definitions/behaviors/state.js +1 -1
  210. package/src/definitions/behaviors/visibility.js +1 -1
  211. package/src/definitions/collections/form.less +229 -165
  212. package/src/definitions/collections/grid.less +723 -687
  213. package/src/definitions/collections/menu.less +232 -170
  214. package/src/definitions/collections/message.less +49 -47
  215. package/src/definitions/collections/table.less +882 -272
  216. package/src/definitions/elements/button.less +611 -469
  217. package/src/definitions/elements/container.less +145 -8
  218. package/src/definitions/elements/divider.less +24 -24
  219. package/src/definitions/elements/emoji.less +39 -10
  220. package/src/definitions/elements/flag.less +53 -18
  221. package/src/definitions/elements/header.less +46 -37
  222. package/src/definitions/elements/icon.less +39 -32
  223. package/src/definitions/elements/input.less +281 -33
  224. package/src/definitions/elements/label.less +132 -128
  225. package/src/definitions/elements/list.less +84 -75
  226. package/src/definitions/elements/loader.less +99 -98
  227. package/src/definitions/elements/placeholder.less +32 -32
  228. package/src/definitions/elements/segment.less +177 -56
  229. package/src/definitions/elements/step.less +76 -72
  230. package/src/definitions/elements/text.less +17 -15
  231. package/src/definitions/globals/reset.less +2 -2
  232. package/src/definitions/globals/site.less +25 -2
  233. package/src/definitions/modules/accordion.js +5 -2
  234. package/src/definitions/modules/accordion.less +371 -219
  235. package/src/definitions/modules/calendar.js +84 -67
  236. package/src/definitions/modules/calendar.less +20 -0
  237. package/src/definitions/modules/checkbox.js +16 -10
  238. package/src/definitions/modules/checkbox.less +83 -227
  239. package/src/definitions/modules/dimmer.js +10 -4
  240. package/src/definitions/modules/dimmer.less +22 -8
  241. package/src/definitions/modules/dropdown.js +149 -114
  242. package/src/definitions/modules/dropdown.less +191 -136
  243. package/src/definitions/modules/embed.less +4 -4
  244. package/src/definitions/modules/modal.js +127 -49
  245. package/src/definitions/modules/modal.less +66 -33
  246. package/src/definitions/modules/nag.js +1 -1
  247. package/src/definitions/modules/nag.less +20 -19
  248. package/src/definitions/modules/popup.js +10 -10
  249. package/src/definitions/modules/popup.less +86 -90
  250. package/src/definitions/modules/progress.js +3 -0
  251. package/src/definitions/modules/progress.less +19 -18
  252. package/src/definitions/modules/rating.less +35 -34
  253. package/src/definitions/modules/search.js +22 -6
  254. package/src/definitions/modules/search.less +35 -19
  255. package/src/definitions/modules/shape.js +2 -2
  256. package/src/definitions/modules/sidebar.js +13 -11
  257. package/src/definitions/modules/sidebar.less +36 -22
  258. package/src/definitions/modules/slider.js +67 -50
  259. package/src/definitions/modules/slider.less +48 -47
  260. package/src/definitions/modules/sticky.js +3 -3
  261. package/src/definitions/modules/sticky.less +3 -1
  262. package/src/definitions/modules/tab.js +23 -5
  263. package/src/definitions/modules/tab.less +4 -4
  264. package/src/definitions/modules/toast.js +62 -30
  265. package/src/definitions/modules/toast.less +51 -16
  266. package/src/definitions/modules/transition.js +20 -15
  267. package/src/definitions/views/ad.less +3 -3
  268. package/src/definitions/views/card.less +522 -375
  269. package/src/definitions/views/comment.less +93 -82
  270. package/src/definitions/views/feed.less +164 -144
  271. package/src/definitions/views/item.less +251 -198
  272. package/src/definitions/views/statistic.less +91 -89
  273. package/src/theme.less +13 -2
  274. package/src/themes/amazon/globals/site.variables +1 -0
  275. package/src/themes/basic/elements/icon.overrides +149 -149
  276. package/src/themes/basic/elements/step.overrides +2 -2
  277. package/src/themes/bookish/elements/header.overrides +1 -1
  278. package/src/themes/chubby/elements/button.overrides +1 -1
  279. package/src/themes/chubby/elements/header.overrides +1 -1
  280. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  281. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  282. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  283. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  284. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  285. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  286. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  287. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  288. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  289. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  290. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  291. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  292. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  293. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  294. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  295. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  296. package/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  297. package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
  298. package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  299. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  300. package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  301. package/src/themes/default/assets/fonts/icons.eot +0 -0
  302. package/src/themes/default/assets/fonts/icons.svg +1175 -1079
  303. package/src/themes/default/assets/fonts/icons.ttf +0 -0
  304. package/src/themes/default/assets/fonts/icons.woff +0 -0
  305. package/src/themes/default/assets/fonts/icons.woff2 +0 -0
  306. package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  307. package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
  308. package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  309. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  310. package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  311. package/src/themes/default/collections/form.variables +4 -0
  312. package/src/themes/default/collections/menu.variables +6 -0
  313. package/src/themes/default/collections/table.variables +52 -0
  314. package/src/themes/default/elements/button.variables +7 -1
  315. package/src/themes/default/elements/container.variables +12 -0
  316. package/src/themes/default/elements/divider.overrides +7 -7
  317. package/src/themes/default/elements/emoji.overrides +0 -3090
  318. package/src/themes/default/elements/emoji.variables +3575 -1
  319. package/src/themes/default/elements/flag.overrides +0 -991
  320. package/src/themes/default/elements/flag.variables +1609 -5
  321. package/src/themes/default/elements/icon.overrides +1975 -1949
  322. package/src/themes/default/elements/icon.variables +1 -0
  323. package/src/themes/default/elements/input.variables +15 -0
  324. package/src/themes/default/elements/segment.variables +8 -0
  325. package/src/themes/default/elements/step.overrides +3 -3
  326. package/src/themes/default/globals/site.variables +109 -8
  327. package/src/themes/default/globals/variation.variables +143 -6
  328. package/src/themes/default/modules/accordion.overrides +6 -5
  329. package/src/themes/default/modules/accordion.variables +49 -2
  330. package/src/themes/default/modules/calendar.variables +3 -0
  331. package/src/themes/default/modules/checkbox.overrides +9 -9
  332. package/src/themes/default/modules/checkbox.variables +5 -5
  333. package/src/themes/default/modules/dimmer.variables +1 -1
  334. package/src/themes/default/modules/dropdown.overrides +5 -5
  335. package/src/themes/default/modules/dropdown.variables +4 -10
  336. package/src/themes/default/modules/modal.variables +14 -0
  337. package/src/themes/default/modules/popup.variables +0 -2
  338. package/src/themes/default/modules/toast.variables +3 -0
  339. package/src/themes/default/views/card.variables +8 -0
  340. package/src/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  341. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  342. package/src/themes/famfamfam/elements/flag.variables +20 -0
  343. package/src/themes/github/elements/icon.overrides +206 -206
  344. package/src/themes/github/elements/step.overrides +5 -5
  345. package/src/themes/github/globals/site.variables +1 -0
  346. package/src/themes/github/modules/dropdown.overrides +6 -6
  347. package/src/themes/instagram/views/card.overrides +1 -1
  348. package/src/themes/joypixels/elements/emoji.overrides +0 -3089
  349. package/src/themes/joypixels/elements/emoji.variables +3574 -5
  350. package/src/themes/material/collections/menu.overrides +1 -1
  351. package/src/themes/material/elements/button.overrides +1 -1
  352. package/src/themes/material/elements/header.overrides +1 -1
  353. package/src/themes/material/elements/icon.overrides +932 -932
  354. package/src/themes/material/globals/site.variables +0 -1
  355. package/src/themes/material/modules/dropdown.overrides +1 -1
  356. package/src/themes/material/modules/modal.overrides +1 -1
  357. package/src/themes/pulsar/elements/loader.overrides +2 -2
  358. package/src/themes/resetcss/globals/reset.overrides +3 -3
  359. package/src/themes/rtl/globals/site.overrides +1 -1
  360. package/src/themes/striped/modules/progress.overrides +1 -1
  361. package/src/themes/systemfont/globals/reset.overrides +8 -0
  362. package/src/themes/systemfont/globals/site.variables +10 -0
  363. package/src/themes/twitter/elements/emoji.overrides +0 -3091
  364. package/src/themes/twitter/elements/emoji.variables +3570 -6
  365. package/tasks/admin/distributions/create.js +1 -1
  366. package/tasks/admin/publish.js +1 -1
  367. package/tasks/admin/release.js +1 -1
  368. package/tasks/build/assets.js +1 -1
  369. package/tasks/build/css.js +9 -4
  370. package/tasks/build/javascript.js +3 -3
  371. package/tasks/check-install.js +1 -1
  372. package/tasks/clean.js +1 -1
  373. package/tasks/collections/README.md +1 -1
  374. package/tasks/collections/admin.js +1 -1
  375. package/tasks/config/admin/oauth.example.js +1 -1
  376. package/tasks/config/admin/templates/composer.json +1 -1
  377. package/tasks/config/project/install.js +15 -13
  378. package/tasks/install.js +1 -0
  379. package/tasks/rtl/watch.js +1 -1
  380. package/tasks/version.js +1 -1
  381. package/test/fixtures/accordion.html +1 -1
  382. package/test/fixtures/checkbox.html +1 -1
  383. package/test/fixtures/dropdown.html +1 -1
  384. package/test/fixtures/modal.html +1 -1
  385. package/test/fixtures/popup.html +1 -1
  386. package/test/fixtures/rating.html +1 -1
  387. package/test/fixtures/shape.html +1 -1
  388. package/test/fixtures/sidebar.html +1 -1
  389. package/test/fixtures/tab.html +1 -1
  390. package/test/fixtures/transition.html +1 -1
  391. package/test/fixtures/video.html +1 -1
  392. package/test/helpers/jasmine-jquery.js +2 -2
  393. package/test/helpers/jasmine-sinon.js +1 -1
  394. package/test/helpers/jquery-events.js +1 -1
  395. package/test/helpers/sinon.js +3 -3
  396. package/test/meteor/fonts.js +1 -1
  397. package/test/modules/accordion.spec.js +1 -1
  398. package/test/modules/checkbox.spec.js +1 -1
  399. package/test/modules/dropdown.spec.js +1 -1
  400. package/test/modules/modal.spec.js +1 -1
  401. package/test/modules/module.spec.js +1 -1
  402. package/test/modules/popup.spec.js +1 -1
  403. package/test/modules/search.spec.js +1 -1
  404. package/test/modules/shape.spec.js +1 -1
  405. package/test/modules/sidebar.spec.js +1 -1
  406. package/test/modules/tab.spec.js +1 -1
  407. package/test/modules/transition.spec.js +1 -1
  408. package/test/modules/video.spec.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.30 - API
2
+ * # Fomantic-UI 2.9.0-beta.300+9bf5e5c - API
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -65,7 +65,7 @@ $.api = $.fn.api = function(parameters) {
65
65
 
66
66
  // context used for state
67
67
  $context = (settings.stateContext)
68
- ? $(settings.stateContext)
68
+ ? ([window,document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
69
69
  : $module,
70
70
 
71
71
  // request details
@@ -74,6 +74,7 @@ $.api = $.fn.api = function(parameters) {
74
74
  url,
75
75
  data,
76
76
  requestStartTime,
77
+ originalData,
77
78
 
78
79
  // standard module
79
80
  element = this,
@@ -86,6 +87,7 @@ $.api = $.fn.api = function(parameters) {
86
87
 
87
88
  initialize: function() {
88
89
  if(!methodInvoked) {
90
+ originalData = settings.data;
89
91
  module.bind.events();
90
92
  }
91
93
  module.instantiate();
@@ -148,8 +150,8 @@ $.api = $.fn.api = function(parameters) {
148
150
  module.error(error.noStorage);
149
151
  return;
150
152
  }
151
- response = sessionStorage.getItem(url);
152
- module.debug('Using cached response', url, response);
153
+ response = sessionStorage.getItem(url + module.get.normalizedData());
154
+ module.debug('Using cached response', url, settings.data, response);
153
155
  response = module.decode.json(response);
154
156
  return response;
155
157
  }
@@ -167,8 +169,8 @@ $.api = $.fn.api = function(parameters) {
167
169
  if( $.isPlainObject(response) ) {
168
170
  response = JSON.stringify(response);
169
171
  }
170
- sessionStorage.setItem(url, response);
171
- module.verbose('Storing cached response for url', url, response);
172
+ sessionStorage.setItem(url + module.get.normalizedData(), response);
173
+ module.verbose('Storing cached response for url', url, settings.data, response);
172
174
  }
173
175
  },
174
176
 
@@ -197,7 +199,7 @@ $.api = $.fn.api = function(parameters) {
197
199
 
198
200
  // Add form content
199
201
  if(settings.serializeForm) {
200
- settings.data = module.add.formData(settings.data);
202
+ settings.data = module.add.formData(originalData || settings.data);
201
203
  }
202
204
 
203
205
  // call beforesend and get any settings changes
@@ -334,10 +336,6 @@ $.api = $.fn.api = function(parameters) {
334
336
  cancelled: function() {
335
337
  return (module.cancelled || false);
336
338
  },
337
- succesful: function() {
338
- module.verbose('This behavior will be deleted due to typo. Use "was successful" instead.');
339
- return module.was.successful();
340
- },
341
339
  successful: function() {
342
340
  return (module.request && module.request.state() == 'resolved');
343
341
  },
@@ -365,8 +363,8 @@ $.api = $.fn.api = function(parameters) {
365
363
  var
366
364
  // allow legacy {$var} style
367
365
  variable = (templatedString.indexOf('$') !== -1)
368
- ? templatedString.substr(2, templatedString.length - 3)
369
- : templatedString.substr(1, templatedString.length - 2),
366
+ ? templatedString.slice(2, -1)
367
+ : templatedString.slice(1, -1),
370
368
  value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
371
369
  ? urlData[variable]
372
370
  : ($module.data(variable) !== undefined)
@@ -397,8 +395,8 @@ $.api = $.fn.api = function(parameters) {
397
395
  var
398
396
  // allow legacy {/$var} style
399
397
  variable = (templatedString.indexOf('$') !== -1)
400
- ? templatedString.substr(3, templatedString.length - 4)
401
- : templatedString.substr(2, templatedString.length - 3),
398
+ ? templatedString.slice(3, -1)
399
+ : templatedString.slice(2, -1),
402
400
  value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
403
401
  ? urlData[variable]
404
402
  : ($module.data(variable) !== undefined)
@@ -429,24 +427,76 @@ $.api = $.fn.api = function(parameters) {
429
427
  },
430
428
  formData: function(data) {
431
429
  var
432
- canSerialize = ($.fn.serializeObject !== undefined),
433
- formData = (canSerialize)
434
- ? $form.serializeObject()
435
- : $form.serialize(),
436
- hasOtherData
430
+ formData = {},
431
+ hasOtherData,
432
+ useFormDataApi = settings.serializeForm === 'formdata'
437
433
  ;
438
- data = data || settings.data;
434
+ data = data || originalData || settings.data;
439
435
  hasOtherData = $.isPlainObject(data);
440
436
 
437
+ if (useFormDataApi) {
438
+ formData = new FormData($form[0]);
439
+ settings.processData = typeof settings.processData !== 'undefined' ? settings.processData : false;
440
+ settings.contentType = typeof settings.contentType !== 'undefined' ? settings.contentType : false;
441
+ } else {
442
+ var formArray = $form.serializeArray(),
443
+ pushes = {},
444
+ pushValues= {},
445
+ build = function(base, key, value) {
446
+ base[key] = value;
447
+ return base;
448
+ }
449
+ ;
450
+ // add files
451
+ $.each($('input[type="file"]',$form), function(i, tag) {
452
+ $.each($(tag)[0].files, function(j, file) {
453
+ formArray.push({name:tag.name, value: file});
454
+ });
455
+ });
456
+ $.each(formArray, function(i, el) {
457
+ if (!settings.regExp.validate.test(el.name)) return;
458
+ var isCheckbox = $('[name="' + el.name + '"]', $form).attr('type') === 'checkbox',
459
+ floatValue = parseFloat(el.value),
460
+ value = (isCheckbox && el.value === 'on') || el.value === 'true' || (String(floatValue) === el.value ? floatValue : (el.value === 'false' ? false : el.value)),
461
+ nameKeys = el.name.match(settings.regExp.key) || [], k, pushKey= el.name.replace(/\[\]$/,'')
462
+ ;
463
+ if(!(pushKey in pushes)) {
464
+ pushes[pushKey] = 0;
465
+ pushValues[pushKey] = value;
466
+ } else if (Array.isArray(pushValues[pushKey])) {
467
+ pushValues[pushKey].push(value);
468
+ } else {
469
+ pushValues[pushKey] = [pushValues[pushKey] , value];
470
+ }
471
+ value = pushValues[pushKey];
472
+
473
+ while ((k = nameKeys.pop()) !== undefined) {
474
+ // foo[]
475
+ if (k == '' && !Array.isArray(value)){
476
+ value = build([], pushes[pushKey]++, value);
477
+ }
478
+ // foo[n]
479
+ else if (settings.regExp.fixed.test(k)) {
480
+ value = build([], k, value);
481
+ }
482
+ // foo; foo[bar]
483
+ else if (settings.regExp.named.test(k)) {
484
+ value = build({}, k, value);
485
+ }
486
+ }
487
+ formData = $.extend(true, formData, value);
488
+ });
489
+ }
490
+
441
491
  if(hasOtherData) {
442
- if(canSerialize) {
443
- module.debug('Extending existing data with form data', data, formData);
444
- data = $.extend(true, {}, data, formData);
445
- }
446
- else {
447
- module.error(error.missingSerialize);
448
- module.debug('Cant extend data. Replacing data with form data', data, formData);
492
+ module.debug('Extending existing data with form data', data, formData);
493
+ if(useFormDataApi) {
494
+ $.each(Object.keys(data),function(i, el){
495
+ formData.append(el, data[el]);
496
+ });
449
497
  data = formData;
498
+ } else {
499
+ data = $.extend(true, {}, data, formData);
450
500
  }
451
501
  }
452
502
  else {
@@ -698,6 +748,9 @@ $.api = $.fn.api = function(parameters) {
698
748
  },
699
749
 
700
750
  get: {
751
+ normalizedData: function(){
752
+ return typeof settings.data === "string" ? settings.data : JSON.stringify(settings.data, Object.keys(settings.data).sort());
753
+ },
701
754
  responseFromXHR: function(xhr) {
702
755
  return $.isPlainObject(xhr)
703
756
  ? (module.is.expectingJSON())
@@ -1083,6 +1136,8 @@ $.api.settings = {
1083
1136
  defaultData : true,
1084
1137
 
1085
1138
  // whether to serialize closest form
1139
+ // use true to convert complex named keys like a[b][1][c][] into a nested object
1140
+ // use 'formdata' for formdata web api
1086
1141
  serializeForm : false,
1087
1142
 
1088
1143
  // how long to wait before request should occur
@@ -1105,7 +1160,7 @@ $.api.settings = {
1105
1160
  responseAsync : false,
1106
1161
 
1107
1162
  // whether onResponse should work with response value without force converting into an object
1108
- rawResponse : false,
1163
+ rawResponse : true,
1109
1164
 
1110
1165
  // callbacks before request
1111
1166
  beforeSend : function(settings) { return settings; },
@@ -1141,7 +1196,6 @@ $.api.settings = {
1141
1196
  legacyParameters : 'You are using legacy API success callback names',
1142
1197
  method : 'The method you called is not defined',
1143
1198
  missingAction : 'API action used but no url was defined',
1144
- missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object',
1145
1199
  missingURL : 'No URL specified for api event',
1146
1200
  noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
1147
1201
  noStorage : 'Caching responses locally requires session storage',
@@ -1154,6 +1208,11 @@ $.api.settings = {
1154
1208
  regExp : {
1155
1209
  required : /\{\$*[A-z0-9]+\}/g,
1156
1210
  optional : /\{\/\$*[A-z0-9]+\}/g,
1211
+ validate: /^[a-z_][a-z0-9_-]*(?:\[[a-z0-9_-]*\])*$/i,
1212
+ key: /[a-z0-9_-]+|(?=\[\])/gi,
1213
+ push: /^$/,
1214
+ fixed: /^\d+$/,
1215
+ named: /^[a-z0-9_-]+$/i
1157
1216
  },
1158
1217
 
1159
1218
  className: {
@@ -1,11 +1,11 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.0-beta.30
2
+ * # Fomantic UI - 2.9.0-beta.300+9bf5e5c
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(P,j,e,O){"use strict";P.isWindow=P.isWindow||function(e){return null!=e&&e===e.window},j=void 0!==j&&j.Math==Math?j:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),P.api=P.fn.api=function(R){var q,e=P.isFunction(this)?P(j):P(this),x=e.selector||"",S=(new Date).getTime(),A=[],w=R,T="string"==typeof w,k=[].slice.call(arguments,1);return e.each(function(){var s,i,r,e,a,u,c=P.isPlainObject(R)?P.extend(!0,{},P.fn.api.settings,R):P.extend({},P.fn.api.settings),t=c.namespace,n=c.metadata,o=c.selector,d=c.error,l=c.className,f="."+t,g="module-"+t,p=P(this),m=p.closest(o.form),b=c.stateContext?P(c.stateContext):p,v=this,h=b[0],y=p.data(g);u={initialize:function(){T||u.bind.events(),u.instantiate()},instantiate:function(){u.verbose("Storing instance of module",u),y=u,p.data(g,y)},destroy:function(){u.verbose("Destroying previous module for",v),p.removeData(g).off(f)},bind:{events:function(){var e=u.get.event();e?(u.verbose("Attaching API events to element",e),p.on(e+f,u.event.trigger)):"now"==c.on&&(u.debug("Querying API endpoint immediately"),u.query())}},decode:{json:function(e){if(e!==O&&"string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}},read:{cachedResponse:function(e){var t;if(j.Storage!==O)return t=sessionStorage.getItem(e),u.debug("Using cached response",e,t),t=u.decode.json(t);u.error(d.noStorage)}},write:{cachedResponse:function(e,t){t&&""===t?u.debug("Response empty, not caching",t):j.Storage!==O?(P.isPlainObject(t)&&(t=JSON.stringify(t)),sessionStorage.setItem(e,t),u.verbose("Storing cached response for url",e,t)):u.error(d.noStorage)}},query:function(){if(u.is.disabled())u.debug("Element is disabled API request aborted");else{if(u.is.loading()){if(!c.interruptRequests)return void u.debug("Cancelling request, previous request is still pending");u.debug("Interrupting previous request"),u.abort()}if(c.defaultData&&P.extend(!0,c.urlData,u.get.defaultData()),c.serializeForm&&(c.data=u.add.formData(c.data)),!1===(i=u.get.settings()))return u.cancelled=!0,void u.error(d.beforeSend);if(u.cancelled=!1,(r=u.get.templatedURL())||u.is.mocked()){if((r=u.add.urlData(r))||u.is.mocked()){if(i.url=c.base+r,s=P.extend(!0,{},c,{type:c.method||c.type,data:e,url:c.base+r,beforeSend:c.beforeXHR,success:function(){},failure:function(){},complete:function(){}}),u.debug("Querying URL",s.url),u.verbose("Using AJAX settings",s),"local"===c.cache&&u.read.cachedResponse(r))return u.debug("Response returned from local cache"),u.request=u.create.request(),void u.request.resolveWith(h,[u.read.cachedResponse(r)]);c.throttle?c.throttleFirstRequest||u.timer?(u.debug("Throttling request",c.throttle),clearTimeout(u.timer),u.timer=setTimeout(function(){u.timer&&delete u.timer,u.debug("Sending throttled request",e,s.method),u.send.request()},c.throttle)):(u.debug("Sending request",e,s.method),u.send.request(),u.timer=setTimeout(function(){},c.throttle)):(u.debug("Sending request",e,s.method),u.send.request())}}else u.error(d.missingURL)}},should:{removeError:function(){return!0===c.hideError||"auto"===c.hideError&&!u.is.form()}},is:{disabled:function(){return 0<p.filter(o.disabled).length},expectingJSON:function(){return"json"===c.dataType||"jsonp"===c.dataType},form:function(){return p.is("form")||b.is("form")},mocked:function(){return c.mockResponse||c.mockResponseAsync||c.response||c.responseAsync},input:function(){return p.is("input")},loading:function(){return!!u.request&&"pending"==u.request.state()},abortedRequest:function(e){return e&&e.readyState!==O&&0===e.readyState?(u.verbose("XHR request determined to be aborted"),!0):(u.verbose("XHR request was not aborted"),!1)},validResponse:function(e){return u.is.expectingJSON()&&P.isFunction(c.successTest)?(u.debug("Checking JSON returned success",c.successTest,e),c.successTest(e)?(u.debug("Response passed success test",e),!0):(u.debug("Response failed success test",e),!1)):(u.verbose("Response is not JSON, skipping validation",c.successTest,e),!0)}},was:{cancelled:function(){return u.cancelled||!1},succesful:function(){return u.verbose('This behavior will be deleted due to typo. Use "was successful" instead.'),u.was.successful()},successful:function(){return u.request&&"resolved"==u.request.state()},failure:function(){return u.request&&"rejected"==u.request.state()},complete:function(){return u.request&&("resolved"==u.request.state()||"rejected"==u.request.state())}},add:{urlData:function(o,s){var e,t;return o&&(e=o.match(c.regExp.required),t=o.match(c.regExp.optional),s=s||c.urlData,e&&(u.debug("Looking for required URL variables",e),P.each(e,function(e,t){var r=-1!==t.indexOf("$")?t.substr(2,t.length-3):t.substr(1,t.length-2),n=P.isPlainObject(s)&&s[r]!==O?s[r]:p.data(r)!==O?p.data(r):b.data(r)!==O?b.data(r):s[r];if(n===O)return u.error(d.requiredParameter,r,o),o=!1;u.verbose("Found required variable",r,n),n=c.encodeParameters?u.get.urlEncodedValue(n):n,o=o.replace(t,n)})),t&&(u.debug("Looking for optional URL variables",e),P.each(t,function(e,t){var r=-1!==t.indexOf("$")?t.substr(3,t.length-4):t.substr(2,t.length-3),n=P.isPlainObject(s)&&s[r]!==O?s[r]:p.data(r)!==O?p.data(r):b.data(r)!==O?b.data(r):s[r];o=n!==O?(u.verbose("Optional variable Found",r,n),o.replace(t,n)):(u.verbose("Optional variable not found",r),-1!==o.indexOf("/"+t)?o.replace("/"+t,""):o.replace(t,""))}))),o},formData:function(e){var t=P.fn.serializeObject!==O,r=t?m.serializeObject():m.serialize();return e=e||c.data,e=P.isPlainObject(e)?t?(u.debug("Extending existing data with form data",e,r),P.extend(!0,{},e,r)):(u.error(d.missingSerialize),u.debug("Cant extend data. Replacing data with form data",e,r),r):(u.debug("Adding form data",r),r)}},send:{request:function(){u.set.loading(),u.request=u.create.request(),u.is.mocked()?u.mockedXHR=u.create.mockedXHR():u.xhr=u.create.xhr(),c.onRequest.call(h,u.request,u.xhr)}},event:{trigger:function(e){u.query(),"submit"!=e.type&&"click"!=e.type||e.preventDefault()},xhr:{always:function(){},done:function(e,t,r){var n=this,o=(new Date).getTime()-a,s=c.loadingDuration-o,i=!!P.isFunction(c.onResponse)&&(u.is.expectingJSON()&&!c.rawResponse?c.onResponse.call(n,P.extend(!0,{},e)):c.onResponse.call(n,e));s=0<s?s:0,i&&(u.debug("Modified API response in onResponse callback",c.onResponse,i,e),e=i),0<s&&u.debug("Response completed early delaying state change by",s),setTimeout(function(){u.is.validResponse(e)?u.request.resolveWith(n,[e,r]):u.request.rejectWith(n,[r,"invalid"])},s)},fail:function(e,t,r){var n=this,o=(new Date).getTime()-a,s=c.loadingDuration-o;0<(s=0<s?s:0)&&u.debug("Response completed early delaying state change by",s),setTimeout(function(){u.is.abortedRequest(e)?u.request.rejectWith(n,[e,"aborted",r]):u.request.rejectWith(n,[e,"error",t,r])},s)}},request:{done:function(e,t){u.debug("Successful API Response",e),"local"===c.cache&&r&&(u.write.cachedResponse(r,e),u.debug("Saving server response locally",u.cache)),c.onSuccess.call(h,e,p,t)},complete:function(e,t){var r,n;u.was.successful()?(n=e,r=t):(r=e,n=u.get.responseFromXHR(r)),u.remove.loading(),c.onComplete.call(h,n,p,r)},fail:function(e,t,r){var n=u.get.responseFromXHR(e),o=u.get.errorFromRequest(n,t,r);if("aborted"==t)return u.debug("XHR Aborted (Most likely caused by page navigation or CORS Policy)",t,r),c.onAbort.call(h,t,p,e),!0;"invalid"==t?u.debug("JSON did not pass success test. A server-side error has most likely occurred",n):"error"==t&&e!==O&&(u.debug("XHR produced a server error",t,r),(e.status<200||300<=e.status)&&r!==O&&""!==r&&u.error(d.statusMessage+r,s.url),c.onError.call(h,o,p,e)),c.errorDuration&&"aborted"!==t&&(u.debug("Adding error state"),u.set.error(),u.should.removeError()&&setTimeout(u.remove.error,c.errorDuration)),u.debug("API Request failed",o,e),c.onFailure.call(h,n,p,e)}}},create:{request:function(){return P.Deferred().always(u.event.request.complete).done(u.event.request.done).fail(u.event.request.fail)},mockedXHR:function(){var e,t,r,n=c.mockResponse||c.response,o=c.mockResponseAsync||c.responseAsync;return r=P.Deferred().always(u.event.xhr.complete).done(u.event.xhr.done).fail(u.event.xhr.fail),n?(t=P.isFunction(n)?(u.debug("Using specified synchronous callback",n),n.call(h,i)):(u.debug("Using settings specified response",n),n),r.resolveWith(h,[t,!1,{responseText:t}])):P.isFunction(o)&&(e=function(e){u.debug("Async callback returned response",e),e?r.resolveWith(h,[e,!1,{responseText:e}]):r.rejectWith(h,[{responseText:e},!1,!1])},u.debug("Using specified async response callback",o),o.call(h,i,e)),r},xhr:function(){var e;return e=P.ajax(s).always(u.event.xhr.always).done(u.event.xhr.done).fail(u.event.xhr.fail),u.verbose("Created server request",e,s),e}},set:{error:function(){u.verbose("Adding error state to element",b),b.addClass(l.error)},loading:function(){u.verbose("Adding loading state to element",b),b.addClass(l.loading),a=(new Date).getTime()}},remove:{error:function(){u.verbose("Removing error state from element",b),b.removeClass(l.error)},loading:function(){u.verbose("Removing loading state from element",b),b.removeClass(l.loading)}},get:{responseFromXHR:function(e){return!!P.isPlainObject(e)&&(u.is.expectingJSON()?u.decode.json(e.responseText):e.responseText)},errorFromRequest:function(e,t,r){return P.isPlainObject(e)&&e.error!==O?e.error:c.error[t]!==O?c.error[t]:r},request:function(){return u.request||!1},xhr:function(){return u.xhr||!1},settings:function(){var e;return(e=c.beforeSend.call(p,c))&&(e.success!==O&&(u.debug("Legacy success callback detected",e),u.error(d.legacyParameters,e.success),e.onSuccess=e.success),e.failure!==O&&(u.debug("Legacy failure callback detected",e),u.error(d.legacyParameters,e.failure),e.onFailure=e.failure),e.complete!==O&&(u.debug("Legacy complete callback detected",e),u.error(d.legacyParameters,e.complete),e.onComplete=e.complete)),e===O&&u.error(d.noReturnedValue),!1===e?e:e!==O?P.extend(!0,{},e):P.extend(!0,{},c)},urlEncodedValue:function(e){var t=j.decodeURIComponent(e),r=j.encodeURIComponent(e);return t!==e?(u.debug("URL value is already encoded, avoiding double encoding",e),e):(u.verbose("Encoding value using encodeURIComponent",e,r),r)},defaultData:function(){var e={};return P.isWindow(v)||(u.is.input()?e.value=p.val():u.is.form()||(e.text=p.text())),e},event:function(){return P.isWindow(v)||"now"==c.on?(u.debug("API called without element, no events attached"),!1):"auto"==c.on?p.is("input")?v.oninput!==O?"input":v.onpropertychange!==O?"propertychange":"keyup":p.is("form")?"submit":"click":c.on},templatedURL:function(e){if(e=e||p.data(n.action)||c.action||!1,r=p.data(n.url)||c.url||!1)return u.debug("Using specified url",r),r;if(e){if(u.debug("Looking up url for action",e,c.api),c.api[e]===O&&!u.is.mocked())return void u.error(d.missingAction,c.action,c.api);r=c.api[e]}else u.is.form()&&(r=p.attr("action")||b.attr("action")||!1,u.debug("No url or action specified, defaulting to form action",r));return r}},abort:function(){var e=u.get.xhr();e&&"resolved"!==e.state()&&(u.debug("Cancelling API request"),e.abort())},reset:function(){u.remove.error(),u.remove.loading()},setting:function(e,t){if(u.debug("Changing setting",e,t),P.isPlainObject(e))P.extend(!0,c,e);else{if(t===O)return c[e];P.isPlainObject(c[e])?P.extend(!0,c[e],t):c[e]=t}},internal:function(e,t){if(P.isPlainObject(e))P.extend(!0,u,e);else{if(t===O)return u[e];u[e]=t}},debug:function(){!c.silent&&c.debug&&(c.performance?u.performance.log(arguments):(u.debug=Function.prototype.bind.call(console.info,console,c.name+":"),u.debug.apply(console,arguments)))},verbose:function(){!c.silent&&c.verbose&&c.debug&&(c.performance?u.performance.log(arguments):(u.verbose=Function.prototype.bind.call(console.info,console,c.name+":"),u.verbose.apply(console,arguments)))},error:function(){c.silent||(u.error=Function.prototype.bind.call(console.error,console,c.name+":"),u.error.apply(console,arguments))},performance:{log:function(e){var t,r;c.performance&&(r=(t=(new Date).getTime())-(S||t),S=t,A.push({Name:e[0],Arguments:[].slice.call(e,1)||"","Execution Time":r})),clearTimeout(u.performance.timer),u.performance.timer=setTimeout(u.performance.display,500)},display:function(){var e=c.name+":",r=0;S=!1,clearTimeout(u.performance.timer),P.each(A,function(e,t){r+=t["Execution Time"]}),e+=" "+r+"ms",x&&(e+=" '"+x+"'"),(console.group!==O||console.table!==O)&&0<A.length&&(console.groupCollapsed(e),console.table?console.table(A):P.each(A,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),A=[]}},invoke:function(n,e,t){var o,s,r,i=y;return e=e||k,t=v||t,"string"==typeof n&&i!==O&&(n=n.split(/[\. ]/),o=n.length-1,P.each(n,function(e,t){var r=e!=o?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(P.isPlainObject(i[r])&&e!=o)i=i[r];else{if(i[r]!==O)return s=i[r],!1;if(!P.isPlainObject(i[t])||e==o)return i[t]!==O?s=i[t]:u.error(d.method,n),!1;i=i[t]}})),P.isFunction(s)?r=s.apply(t,e):s!==O&&(r=s),Array.isArray(q)?q.push(r):q!==O?q=[q,r]:r!==O&&(q=r),s}},T?(y===O&&u.initialize(),u.invoke(w)):(y!==O&&y.invoke("destroy"),u.initialize())}),q!==O?q:this},P.api.settings={name:"API",namespace:"api",debug:!1,verbose:!1,performance:!0,api:{},cache:!0,interruptRequests:!0,on:"auto",stateContext:!1,loadingDuration:0,hideError:"auto",errorDuration:2e3,encodeParameters:!0,action:!1,url:!1,base:"",urlData:{},defaultData:!0,serializeForm:!1,throttle:0,throttleFirstRequest:!0,method:"get",data:{},dataType:"json",mockResponse:!1,mockResponseAsync:!1,response:!1,responseAsync:!1,rawResponse:!1,beforeSend:function(e){return e},beforeXHR:function(e){},onRequest:function(e,t){},onResponse:!1,onSuccess:function(e,t){},onComplete:function(e,t){},onFailure:function(e,t){},onError:function(e,t){},onAbort:function(e,t){},successTest:!1,error:{beforeSend:"The before send function has aborted the request",error:"There was an error with your request",exitConditions:"API Request Aborted. Exit conditions met",JSONParse:"JSON could not be parsed during error handling",legacyParameters:"You are using legacy API success callback names",method:"The method you called is not defined",missingAction:"API action used but no url was defined",missingSerialize:"jquery-serialize-object is required to add form data to an existing data object",missingURL:"No URL specified for api event",noReturnedValue:"The beforeSend callback must return a settings object, beforeSend ignored.",noStorage:"Caching responses locally requires session storage",parseError:"There was an error parsing your request",requiredParameter:"Missing a required URL parameter: ",statusMessage:"Server gave an error: ",timeout:"Your request timed out"},regExp:{required:/\{\$*[A-z0-9]+\}/g,optional:/\{\/\$*[A-z0-9]+\}/g},className:{loading:"loading",error:"error"},selector:{disabled:".disabled",form:"form"},metadata:{action:"action",url:"url"}}}(jQuery,window,document);
11
+ !function(P,O,j,F){"use strict";P.isWindow=P.isWindow||function(e){return null!=e&&e===e.window},O=void 0!==O&&O.Math==Math?O:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),P.api=P.fn.api=function(q){var x,e=P.isFunction(this)?P(O):P(this),A=e.selector||"",k=(new Date).getTime(),S=[],T=q,w="string"==typeof T,D=[].slice.call(arguments,1);return e.each(function(){var s,n,r,e,a,o,f=P.isPlainObject(q)?P.extend(!0,{},P.fn.api.settings,q):P.extend({},P.fn.api.settings),t=f.namespace,i=f.metadata,u=f.selector,c=f.error,d=f.className,l="."+t,g="module-"+t,p=P(this),m=p.closest(u.form),b=f.stateContext?[O,j].indexOf(f.stateContext)<0?P(j).find(f.stateContext):P(f.stateContext):p,v=this,h=b[0],y=p.data(g),R={initialize:function(){w||(o=f.data,R.bind.events()),R.instantiate()},instantiate:function(){R.verbose("Storing instance of module",R),y=R,p.data(g,y)},destroy:function(){R.verbose("Destroying previous module for",v),p.removeData(g).off(l)},bind:{events:function(){var e=R.get.event();e?(R.verbose("Attaching API events to element",e),p.on(e+l,R.event.trigger)):"now"==f.on&&(R.debug("Querying API endpoint immediately"),R.query())}},decode:{json:function(e){if(e!==F&&"string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}},read:{cachedResponse:function(e){var t;if(O.Storage!==F)return t=sessionStorage.getItem(e+R.get.normalizedData()),R.debug("Using cached response",e,f.data,t),R.decode.json(t);R.error(c.noStorage)}},write:{cachedResponse:function(e,t){t&&""===t?R.debug("Response empty, not caching",t):O.Storage===F?R.error(c.noStorage):(P.isPlainObject(t)&&(t=JSON.stringify(t)),sessionStorage.setItem(e+R.get.normalizedData(),t),R.verbose("Storing cached response for url",e,f.data,t))}},query:function(){if(R.is.disabled())R.debug("Element is disabled API request aborted");else{if(R.is.loading()){if(!f.interruptRequests)return void R.debug("Cancelling request, previous request is still pending");R.debug("Interrupting previous request"),R.abort()}if(f.defaultData&&P.extend(!0,f.urlData,R.get.defaultData()),f.serializeForm&&(f.data=R.add.formData(o||f.data)),!1===(n=R.get.settings()))return R.cancelled=!0,void R.error(c.beforeSend);if(R.cancelled=!1,(r=R.get.templatedURL())||R.is.mocked()){if((r=R.add.urlData(r))||R.is.mocked()){if(n.url=f.base+r,s=P.extend(!0,{},f,{type:f.method||f.type,data:e,url:f.base+r,beforeSend:f.beforeXHR,success:function(){},failure:function(){},complete:function(){}}),R.debug("Querying URL",s.url),R.verbose("Using AJAX settings",s),"local"===f.cache&&R.read.cachedResponse(r))return R.debug("Response returned from local cache"),R.request=R.create.request(),void R.request.resolveWith(h,[R.read.cachedResponse(r)]);f.throttle?f.throttleFirstRequest||R.timer?(R.debug("Throttling request",f.throttle),clearTimeout(R.timer),R.timer=setTimeout(function(){R.timer&&delete R.timer,R.debug("Sending throttled request",e,s.method),R.send.request()},f.throttle)):(R.debug("Sending request",e,s.method),R.send.request(),R.timer=setTimeout(function(){},f.throttle)):(R.debug("Sending request",e,s.method),R.send.request())}}else R.error(c.missingURL)}},should:{removeError:function(){return!0===f.hideError||"auto"===f.hideError&&!R.is.form()}},is:{disabled:function(){return 0<p.filter(u.disabled).length},expectingJSON:function(){return"json"===f.dataType||"jsonp"===f.dataType},form:function(){return p.is("form")||b.is("form")},mocked:function(){return f.mockResponse||f.mockResponseAsync||f.response||f.responseAsync},input:function(){return p.is("input")},loading:function(){return!!R.request&&"pending"==R.request.state()},abortedRequest:function(e){return e&&e.readyState!==F&&0===e.readyState?(R.verbose("XHR request determined to be aborted"),!0):(R.verbose("XHR request was not aborted"),!1)},validResponse:function(e){return R.is.expectingJSON()&&P.isFunction(f.successTest)?(R.debug("Checking JSON returned success",f.successTest,e),f.successTest(e)?(R.debug("Response passed success test",e),!0):(R.debug("Response failed success test",e),!1)):(R.verbose("Response is not JSON, skipping validation",f.successTest,e),!0)}},was:{cancelled:function(){return R.cancelled||!1},successful:function(){return R.request&&"resolved"==R.request.state()},failure:function(){return R.request&&"rejected"==R.request.state()},complete:function(){return R.request&&("resolved"==R.request.state()||"rejected"==R.request.state())}},add:{urlData:function(o,s){var e,t;return o&&(e=o.match(f.regExp.required),t=o.match(f.regExp.optional),s=s||f.urlData,e&&(R.debug("Looking for required URL variables",e),P.each(e,function(e,t){var r=-1!==t.indexOf("$")?t.slice(2,-1):t.slice(1,-1),n=P.isPlainObject(s)&&s[r]!==F?s[r]:p.data(r)!==F?p.data(r):b.data(r)!==F?b.data(r):s[r];if(n===F)return R.error(c.requiredParameter,r,o),o=!1;R.verbose("Found required variable",r,n),n=f.encodeParameters?R.get.urlEncodedValue(n):n,o=o.replace(t,n)})),t&&(R.debug("Looking for optional URL variables",e),P.each(t,function(e,t){var r=-1!==t.indexOf("$")?t.slice(3,-1):t.slice(2,-1),n=P.isPlainObject(s)&&s[r]!==F?s[r]:p.data(r)!==F?p.data(r):b.data(r)!==F?b.data(r):s[r];o=n!==F?(R.verbose("Optional variable Found",r,n),o.replace(t,n)):(R.verbose("Optional variable not found",r),-1!==o.indexOf("/"+t)?o.replace("/"+t,""):o.replace(t,""))}))),o},formData:function(r){var e,n,u,c,d,l={},t="formdata"===f.serializeForm;return r=r||o||f.data,e=P.isPlainObject(r),t?(l=new FormData(m[0]),f.processData=void 0!==f.processData&&f.processData,f.contentType=void 0!==f.contentType&&f.contentType):(n=m.serializeArray(),u={},c={},d=function(e,t,r){return e[t]=r,e},P.each(P('input[type="file"]',m),function(e,r){P.each(P(r)[0].files,function(e,t){n.push({name:r.name,value:t})})}),P.each(n,function(e,t){if(f.regExp.validate.test(t.name)){var r,n="checkbox"===P('[name="'+t.name+'"]',m).attr("type"),o=parseFloat(t.value),s=n&&"on"===t.value||"true"===t.value||(String(o)===t.value?o:"false"!==t.value&&t.value),a=t.name.match(f.regExp.key)||[],i=t.name.replace(/\[\]$/,"");i in u?Array.isArray(c[i])?c[i].push(s):c[i]=[c[i],s]:(u[i]=0,c[i]=s),s=c[i];for(;(r=a.pop())!==F;)""!=r||Array.isArray(s)?f.regExp.fixed.test(r)?s=d([],r,s):f.regExp.named.test(r)&&(s=d({},r,s)):s=d([],u[i]++,s);l=P.extend(!0,l,s)}})),r=e?(R.debug("Extending existing data with form data",r,l),t?(P.each(Object.keys(r),function(e,t){l.append(t,r[t])}),l):P.extend(!0,{},r,l)):(R.debug("Adding form data",l),l)}},send:{request:function(){R.set.loading(),R.request=R.create.request(),R.is.mocked()?R.mockedXHR=R.create.mockedXHR():R.xhr=R.create.xhr(),f.onRequest.call(h,R.request,R.xhr)}},event:{trigger:function(e){R.query(),"submit"!=e.type&&"click"!=e.type||e.preventDefault()},xhr:{always:function(){},done:function(e,t,r){var n=this,o=(new Date).getTime()-a,o=f.loadingDuration-o,s=!!P.isFunction(f.onResponse)&&(R.is.expectingJSON()&&!f.rawResponse?f.onResponse.call(n,P.extend(!0,{},e)):f.onResponse.call(n,e)),o=0<o?o:0;s&&(R.debug("Modified API response in onResponse callback",f.onResponse,s,e),e=s),0<o&&R.debug("Response completed early delaying state change by",o),setTimeout(function(){R.is.validResponse(e)?R.request.resolveWith(n,[e,r]):R.request.rejectWith(n,[r,"invalid"])},o)},fail:function(e,t,r){var n=this,o=(new Date).getTime()-a,o=f.loadingDuration-o;0<(o=0<o?o:0)&&R.debug("Response completed early delaying state change by",o),setTimeout(function(){R.is.abortedRequest(e)?R.request.rejectWith(n,[e,"aborted",r]):R.request.rejectWith(n,[e,"error",t,r])},o)}},request:{done:function(e,t){R.debug("Successful API Response",e),"local"===f.cache&&r&&(R.write.cachedResponse(r,e),R.debug("Saving server response locally",R.cache)),f.onSuccess.call(h,e,p,t)},complete:function(e,t){var r,n;R.was.successful()?(n=e,r=t):n=R.get.responseFromXHR(r=e),R.remove.loading(),f.onComplete.call(h,n,p,r)},fail:function(e,t,r){var n=R.get.responseFromXHR(e),o=R.get.errorFromRequest(n,t,r);if("aborted"==t)return R.debug("XHR Aborted (Most likely caused by page navigation or CORS Policy)",t,r),f.onAbort.call(h,t,p,e),!0;"invalid"==t?R.debug("JSON did not pass success test. A server-side error has most likely occurred",n):"error"==t&&e!==F&&(R.debug("XHR produced a server error",t,r),(e.status<200||300<=e.status)&&r!==F&&""!==r&&R.error(c.statusMessage+r,s.url),f.onError.call(h,o,p,e)),f.errorDuration&&"aborted"!==t&&(R.debug("Adding error state"),R.set.error(),R.should.removeError()&&setTimeout(R.remove.error,f.errorDuration)),R.debug("API Request failed",o,e),f.onFailure.call(h,n,p,e)}}},create:{request:function(){return P.Deferred().always(R.event.request.complete).done(R.event.request.done).fail(R.event.request.fail)},mockedXHR:function(){var e=f.mockResponse||f.response,t=f.mockResponseAsync||f.responseAsync,r=P.Deferred().always(R.event.xhr.complete).done(R.event.xhr.done).fail(R.event.xhr.fail);return e?(e=P.isFunction(e)?(R.debug("Using specified synchronous callback",e),e.call(h,n)):(R.debug("Using settings specified response",e),e),r.resolveWith(h,[e,!1,{responseText:e}])):P.isFunction(t)&&(e=function(e){R.debug("Async callback returned response",e),e?r.resolveWith(h,[e,!1,{responseText:e}]):r.rejectWith(h,[{responseText:e},!1,!1])},R.debug("Using specified async response callback",t),t.call(h,n,e)),r},xhr:function(){var e=P.ajax(s).always(R.event.xhr.always).done(R.event.xhr.done).fail(R.event.xhr.fail);return R.verbose("Created server request",e,s),e}},set:{error:function(){R.verbose("Adding error state to element",b),b.addClass(d.error)},loading:function(){R.verbose("Adding loading state to element",b),b.addClass(d.loading),a=(new Date).getTime()}},remove:{error:function(){R.verbose("Removing error state from element",b),b.removeClass(d.error)},loading:function(){R.verbose("Removing loading state from element",b),b.removeClass(d.loading)}},get:{normalizedData:function(){return"string"==typeof f.data?f.data:JSON.stringify(f.data,Object.keys(f.data).sort())},responseFromXHR:function(e){return!!P.isPlainObject(e)&&(R.is.expectingJSON()?R.decode.json(e.responseText):e.responseText)},errorFromRequest:function(e,t,r){return P.isPlainObject(e)&&e.error!==F?e.error:f.error[t]!==F?f.error[t]:r},request:function(){return R.request||!1},xhr:function(){return R.xhr||!1},settings:function(){var e=f.beforeSend.call(p,f);return e&&(e.success!==F&&(R.debug("Legacy success callback detected",e),R.error(c.legacyParameters,e.success),e.onSuccess=e.success),e.failure!==F&&(R.debug("Legacy failure callback detected",e),R.error(c.legacyParameters,e.failure),e.onFailure=e.failure),e.complete!==F&&(R.debug("Legacy complete callback detected",e),R.error(c.legacyParameters,e.complete),e.onComplete=e.complete)),e===F&&R.error(c.noReturnedValue),!1===e?e:e!==F?P.extend(!0,{},e):P.extend(!0,{},f)},urlEncodedValue:function(e){var t=O.decodeURIComponent(e),r=O.encodeURIComponent(e);return t!==e?(R.debug("URL value is already encoded, avoiding double encoding",e),e):(R.verbose("Encoding value using encodeURIComponent",e,r),r)},defaultData:function(){var e={};return P.isWindow(v)||(R.is.input()?e.value=p.val():R.is.form()||(e.text=p.text())),e},event:function(){return P.isWindow(v)||"now"==f.on?(R.debug("API called without element, no events attached"),!1):"auto"==f.on?p.is("input")?v.oninput!==F?"input":v.onpropertychange!==F?"propertychange":"keyup":p.is("form")?"submit":"click":f.on},templatedURL:function(e){if(e=e||p.data(i.action)||f.action||!1,r=p.data(i.url)||f.url||!1)return R.debug("Using specified url",r),r;if(e){if(R.debug("Looking up url for action",e,f.api),f.api[e]===F&&!R.is.mocked())return void R.error(c.missingAction,f.action,f.api);r=f.api[e]}else R.is.form()&&(r=p.attr("action")||b.attr("action")||!1,R.debug("No url or action specified, defaulting to form action",r));return r}},abort:function(){var e=R.get.xhr();e&&"resolved"!==e.state()&&(R.debug("Cancelling API request"),e.abort())},reset:function(){R.remove.error(),R.remove.loading()},setting:function(e,t){if(R.debug("Changing setting",e,t),P.isPlainObject(e))P.extend(!0,f,e);else{if(t===F)return f[e];P.isPlainObject(f[e])?P.extend(!0,f[e],t):f[e]=t}},internal:function(e,t){if(P.isPlainObject(e))P.extend(!0,R,e);else{if(t===F)return R[e];R[e]=t}},debug:function(){!f.silent&&f.debug&&(f.performance?R.performance.log(arguments):(R.debug=Function.prototype.bind.call(console.info,console,f.name+":"),R.debug.apply(console,arguments)))},verbose:function(){!f.silent&&f.verbose&&f.debug&&(f.performance?R.performance.log(arguments):(R.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),R.verbose.apply(console,arguments)))},error:function(){f.silent||(R.error=Function.prototype.bind.call(console.error,console,f.name+":"),R.error.apply(console,arguments))},performance:{log:function(e){var t,r;f.performance&&(r=(t=(new Date).getTime())-(k||t),k=t,S.push({Name:e[0],Arguments:[].slice.call(e,1)||"","Execution Time":r})),clearTimeout(R.performance.timer),R.performance.timer=setTimeout(R.performance.display,500)},display:function(){var e=f.name+":",r=0;k=!1,clearTimeout(R.performance.timer),P.each(S,function(e,t){r+=t["Execution Time"]}),e+=" "+r+"ms",A&&(e+=" '"+A+"'"),(console.group!==F||console.table!==F)&&0<S.length&&(console.groupCollapsed(e),console.table?console.table(S):P.each(S,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),S=[]}},invoke:function(n,e,t){var o,s,r,a=y;return e=e||D,t=v||t,"string"==typeof n&&a!==F&&(n=n.split(/[\. ]/),o=n.length-1,P.each(n,function(e,t){var r=e!=o?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(P.isPlainObject(a[r])&&e!=o)a=a[r];else{if(a[r]!==F)return s=a[r],!1;{if(!P.isPlainObject(a[t])||e==o)return a[t]!==F?s=a[t]:R.error(c.method,n),!1;a=a[t]}}})),P.isFunction(s)?r=s.apply(t,e):s!==F&&(r=s),Array.isArray(x)?x.push(r):x!==F?x=[x,r]:r!==F&&(x=r),s}};w?(y===F&&R.initialize(),R.invoke(T)):(y!==F&&y.invoke("destroy"),R.initialize())}),x!==F?x:this},P.api.settings={name:"API",namespace:"api",debug:!1,verbose:!1,performance:!0,api:{},cache:!0,interruptRequests:!0,on:"auto",stateContext:!1,loadingDuration:0,hideError:"auto",errorDuration:2e3,encodeParameters:!0,action:!1,url:!1,base:"",urlData:{},defaultData:!0,serializeForm:!1,throttle:0,throttleFirstRequest:!0,method:"get",data:{},dataType:"json",mockResponse:!1,mockResponseAsync:!1,response:!1,responseAsync:!1,rawResponse:!0,beforeSend:function(e){return e},beforeXHR:function(e){},onRequest:function(e,t){},onResponse:!1,onSuccess:function(e,t){},onComplete:function(e,t){},onFailure:function(e,t){},onError:function(e,t){},onAbort:function(e,t){},successTest:!1,error:{beforeSend:"The before send function has aborted the request",error:"There was an error with your request",exitConditions:"API Request Aborted. Exit conditions met",JSONParse:"JSON could not be parsed during error handling",legacyParameters:"You are using legacy API success callback names",method:"The method you called is not defined",missingAction:"API action used but no url was defined",missingURL:"No URL specified for api event",noReturnedValue:"The beforeSend callback must return a settings object, beforeSend ignored.",noStorage:"Caching responses locally requires session storage",parseError:"There was an error parsing your request",requiredParameter:"Missing a required URL parameter: ",statusMessage:"Server gave an error: ",timeout:"Your request timed out"},regExp:{required:/\{\$*[A-z0-9]+\}/g,optional:/\{\/\$*[A-z0-9]+\}/g,validate:/^[a-z_][a-z0-9_-]*(?:\[[a-z0-9_-]*\])*$/i,key:/[a-z0-9_-]+|(?=\[\])/gi,push:/^$/,fixed:/^\d+$/,named:/^[a-z0-9_-]+$/i},className:{loading:"loading",error:"error"},selector:{disabled:".disabled",form:"form"},metadata:{action:"action",url:"url"}}}(jQuery,window,document);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.30 - Breadcrumb
2
+ * # Fomantic-UI 2.9.0-beta.300+9bf5e5c - Breadcrumb
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.30 - Breadcrumb
2
+ * # Fomantic-UI 2.9.0-beta.300+9bf5e5c - Breadcrumb
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *