@capillarytech/creatives-library 0.1.32 → 1.0.0

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 (1067) hide show
  1. package/index.js +8 -9
  2. package/package.json +7 -62
  3. package/app.js +0 -92
  4. package/assets/loading_img.gif +0 -0
  5. package/components/BreadCrumbs/index.js +0 -64
  6. package/components/BreadCrumbs/messages.js +0 -13
  7. package/components/BreadCrumbs/tests/index.test.js +0 -10
  8. package/components/CapTagList/index.js +0 -233
  9. package/components/CapTagList/messages.js +0 -25
  10. package/components/CapTagList/tests/index.test.js +0 -10
  11. package/components/Card/_customCard.scss +0 -35
  12. package/components/Card/index.js +0 -76
  13. package/components/Card/tests/index.test.js +0 -10
  14. package/components/CardGrid/index.js +0 -69
  15. package/components/CardGrid/tests/index.test.js +0 -10
  16. package/components/Ckeditor/index.js +0 -204
  17. package/components/Ckeditor/messages.js +0 -13
  18. package/components/Ckeditor/tests/index.test.js +0 -10
  19. package/components/Component/index.js +0 -27
  20. package/components/Component/tests/index.test.js +0 -10
  21. package/components/CustomPopOver/index.js +0 -80
  22. package/components/CustomPopOver/messages.js +0 -13
  23. package/components/CustomPopOver/tests/index.test.js +0 -10
  24. package/components/DateFilter/index.js +0 -347
  25. package/components/DateFilter/messages.js +0 -17
  26. package/components/DateFilter/tests/index.test.js +0 -15
  27. package/components/DateRange/index.js +0 -111
  28. package/components/DateRange/messages.js +0 -13
  29. package/components/DateRange/tests/index.test.js +0 -10
  30. package/components/Edmeditor/index.js +0 -63
  31. package/components/Edmeditor/messages.js +0 -13
  32. package/components/Edmeditor/tests/index.test.js +0 -10
  33. package/components/EmailPreview/_emailPreview.scss +0 -119
  34. package/components/EmailPreview/assets/images/iPad.svg +0 -10
  35. package/components/EmailPreview/assets/images/mobile.png +0 -0
  36. package/components/EmailPreview/index.js +0 -103
  37. package/components/EmailPreview/messages.js +0 -17
  38. package/components/EmailPreview/tests/index.test.js +0 -10
  39. package/components/Footer/index.js +0 -27
  40. package/components/Footer/messages.js +0 -13
  41. package/components/Footer/tests/index.test.js +0 -10
  42. package/components/FormBuilder/_formBuilder.scss +0 -85
  43. package/components/FormBuilder/index.js +0 -3296
  44. package/components/FormBuilder/messages.js +0 -13
  45. package/components/FormBuilder/tests/index.test.js +0 -10
  46. package/components/ImagePreview/_imagePreview.scss +0 -63
  47. package/components/ImagePreview/index.js +0 -50
  48. package/components/ImagePreview/messages.js +0 -13
  49. package/components/ImagePreview/tests/index.test.js +0 -10
  50. package/components/PageHeader/_pageHeader.scss +0 -22
  51. package/components/PageHeader/index.js +0 -36
  52. package/components/PageHeader/messages.js +0 -13
  53. package/components/PageHeader/tests/index.test.js +0 -10
  54. package/components/Pagination/_pagination.scss +0 -5
  55. package/components/Pagination/index.js +0 -47
  56. package/components/Pagination/tests/index.test.js +0 -10
  57. package/components/PreviewSideBar/_previewsidebar.scss +0 -28
  58. package/components/PreviewSideBar/index.js +0 -146
  59. package/components/PreviewSideBar/messages.js +0 -33
  60. package/components/PreviewSideBar/tests/index.test.js +0 -10
  61. package/components/Sidebar/_sidebar.scss +0 -115
  62. package/components/Sidebar/index.js +0 -234
  63. package/components/Sidebar/messages.js +0 -21
  64. package/components/Sidebar/tests/index.test.js +0 -10
  65. package/components/SlideBox/_slideBox.scss +0 -63
  66. package/components/SlideBox/index.js +0 -47
  67. package/components/SlideBox/tests/index.test.js +0 -103
  68. package/components/SmsEditor/index.js +0 -53
  69. package/components/SmsEditor/tests/index.test.js +0 -10
  70. package/components/SmsTest/index.js +0 -115
  71. package/components/SmsTest/messages.js +0 -13
  72. package/components/SmsTest/tests/index.test.js +0 -10
  73. package/components/TemplatePreview/_templatePreview.scss +0 -352
  74. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  75. package/components/TemplatePreview/assets/images/androidPushMessage.svg +0 -45
  76. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +0 -135
  77. package/components/TemplatePreview/assets/images/mobile.svg +0 -24
  78. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  79. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  80. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  81. package/components/TemplatePreview/assets/images/user-icon.svg +0 -19
  82. package/components/TemplatePreview/assets/images/wechat-mobile.svg +0 -78
  83. package/components/TemplatePreview/index.js +0 -174
  84. package/components/TemplatePreview/messages.js +0 -29
  85. package/components/TemplatePreview/tests/index.test.js +0 -10
  86. package/components/Toastr/index.js +0 -59
  87. package/components/Toastr/messages.js +0 -13
  88. package/components/Toastr/tests/index.test.js +0 -10
  89. package/components/ToastrMessage/index.js +0 -108
  90. package/components/ToastrMessage/messages.js +0 -13
  91. package/components/ToastrMessage/tests/index.test.js +0 -10
  92. package/components/TopBar/_topbar.scss +0 -46
  93. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  94. package/components/TopBar/index.js +0 -112
  95. package/components/TopBar/messages.js +0 -29
  96. package/components/TopBar/tests/index.test.js +0 -10
  97. package/config/app.js +0 -24
  98. package/config/path.js +0 -3
  99. package/config/request.js +0 -135
  100. package/config/toastr.js +0 -44
  101. package/containers/App/actions.js +0 -7
  102. package/containers/App/constants.js +0 -3
  103. package/containers/App/reducer.js +0 -19
  104. package/containers/App/sagas.js +0 -26
  105. package/containers/App/selectors.js +0 -25
  106. package/containers/App/tests/actions.test.js +0 -18
  107. package/containers/App/tests/reducer.test.js +0 -9
  108. package/containers/App/tests/sagas.test.js +0 -15
  109. package/containers/App/tests/selectors.test.js +0 -10
  110. package/containers/Assets/Gallery/_gallery.scss +0 -126
  111. package/containers/Assets/Gallery/actions.js +0 -37
  112. package/containers/Assets/Gallery/constants.js +0 -23
  113. package/containers/Assets/Gallery/index.js +0 -463
  114. package/containers/Assets/Gallery/messages.js +0 -89
  115. package/containers/Assets/Gallery/reducer.js +0 -81
  116. package/containers/Assets/Gallery/sagas.js +0 -84
  117. package/containers/Assets/Gallery/selectors.js +0 -25
  118. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -7
  119. package/containers/Assets/Gallery/tests/actions.test.js +0 -26
  120. package/containers/Assets/Gallery/tests/index.test.js +0 -10
  121. package/containers/Assets/Gallery/tests/reducer.test.js +0 -95
  122. package/containers/Assets/Gallery/tests/sagas.test.js +0 -15
  123. package/containers/Assets/Gallery/tests/selectors.test.js +0 -10
  124. package/containers/Cap/actions.js +0 -52
  125. package/containers/Cap/constants.js +0 -22
  126. package/containers/Cap/index.js +0 -369
  127. package/containers/Cap/messsages.js +0 -63
  128. package/containers/Cap/reducer.js +0 -108
  129. package/containers/Cap/sagas.js +0 -143
  130. package/containers/Cap/selectors.js +0 -54
  131. package/containers/Cap/tests/index.test.js +0 -16
  132. package/containers/Cap/tests/selectors.test.js +0 -28
  133. package/containers/Dashboard/actions.js +0 -15
  134. package/containers/Dashboard/constants.js +0 -7
  135. package/containers/Dashboard/index.js +0 -53
  136. package/containers/Dashboard/messages.js +0 -13
  137. package/containers/Dashboard/reducer.js +0 -21
  138. package/containers/Dashboard/sagas.js +0 -11
  139. package/containers/Dashboard/selectors.js +0 -25
  140. package/containers/Dashboard/tests/actions.test.js +0 -18
  141. package/containers/Dashboard/tests/index.test.js +0 -10
  142. package/containers/Dashboard/tests/reducer.test.js +0 -9
  143. package/containers/Dashboard/tests/sagas.test.js +0 -15
  144. package/containers/Dashboard/tests/selectors.test.js +0 -10
  145. package/containers/Ebill/_ebill.scss +0 -5
  146. package/containers/Ebill/actions.js +0 -43
  147. package/containers/Ebill/constants.js +0 -20
  148. package/containers/Ebill/index.js +0 -1273
  149. package/containers/Ebill/messages.js +0 -73
  150. package/containers/Ebill/reducer.js +0 -72
  151. package/containers/Ebill/sagas.js +0 -65
  152. package/containers/Ebill/selectors.js +0 -25
  153. package/containers/Ebill/tests/actions.test.js +0 -18
  154. package/containers/Ebill/tests/index.test.js +0 -10
  155. package/containers/Ebill/tests/reducer.test.js +0 -9
  156. package/containers/Ebill/tests/sagas.test.js +0 -15
  157. package/containers/Ebill/tests/selectors.test.js +0 -10
  158. package/containers/Email/_email.scss +0 -141
  159. package/containers/Email/actions.js +0 -81
  160. package/containers/Email/constants.js +0 -36
  161. package/containers/Email/index.js +0 -3282
  162. package/containers/Email/messages.js +0 -233
  163. package/containers/Email/reducer.js +0 -142
  164. package/containers/Email/sagas.js +0 -136
  165. package/containers/Email/selectors.js +0 -31
  166. package/containers/Email/tests/actions.test.js +0 -18
  167. package/containers/Email/tests/index.test.js +0 -10
  168. package/containers/Email/tests/reducer.test.js +0 -9
  169. package/containers/Email/tests/sagas.test.js +0 -15
  170. package/containers/Email/tests/selectors.test.js +0 -10
  171. package/containers/LanguageProvider/actions.js +0 -17
  172. package/containers/LanguageProvider/constants.js +0 -8
  173. package/containers/LanguageProvider/index.js +0 -44
  174. package/containers/LanguageProvider/reducer.js +0 -30
  175. package/containers/LanguageProvider/selectors.js +0 -20
  176. package/containers/LanguageProvider/tests/actions.test.js +0 -19
  177. package/containers/LanguageProvider/tests/index.test.js +0 -49
  178. package/containers/LanguageProvider/tests/reducer.test.js +0 -20
  179. package/containers/LanguageProvider/tests/selectors.test.js +0 -15
  180. package/containers/Line/Create/_lineCreate.scss +0 -43
  181. package/containers/Line/Create/actions.js +0 -90
  182. package/containers/Line/Create/constants.js +0 -39
  183. package/containers/Line/Create/index.js +0 -815
  184. package/containers/Line/Create/messages.js +0 -173
  185. package/containers/Line/Create/reducer.js +0 -99
  186. package/containers/Line/Create/sagas.js +0 -107
  187. package/containers/Line/Create/selectors.js +0 -36
  188. package/containers/Line/Edit/_lineEdit.scss +0 -25
  189. package/containers/Line/Edit/actions.js +0 -72
  190. package/containers/Line/Edit/constants.js +0 -27
  191. package/containers/Line/Edit/index.js +0 -1043
  192. package/containers/Line/Edit/messages.js +0 -157
  193. package/containers/Line/Edit/reducer.js +0 -83
  194. package/containers/Line/Edit/sagas.js +0 -81
  195. package/containers/Line/Edit/selectors.js +0 -29
  196. package/containers/Line/Edit/tests/actions.test.js +0 -18
  197. package/containers/Line/Edit/tests/index.test.js +0 -10
  198. package/containers/Line/Edit/tests/reducer.test.js +0 -9
  199. package/containers/Line/Edit/tests/sagas.test.js +0 -15
  200. package/containers/Line/Edit/tests/selectors.test.js +0 -10
  201. package/containers/Login/assets/images/capillary_logo.png +0 -0
  202. package/containers/Login/components/LoginForm/index.js +0 -58
  203. package/containers/Login/components/LoginForm/messages.js +0 -21
  204. package/containers/Login/components/LoginForm/tests/index.test.js +0 -10
  205. package/containers/Login/index.js +0 -105
  206. package/containers/Login/messages.js +0 -21
  207. package/containers/Login/selectors.js +0 -25
  208. package/containers/Login/tests/index.test.js +0 -10
  209. package/containers/Login/tests/sagas.test.js +0 -15
  210. package/containers/Login/tests/selectors.test.js +0 -10
  211. package/containers/MobilePush/Create/_mobilePushCreate.scss +0 -25
  212. package/containers/MobilePush/Create/actions.js +0 -46
  213. package/containers/MobilePush/Create/constants.js +0 -23
  214. package/containers/MobilePush/Create/index.js +0 -2248
  215. package/containers/MobilePush/Create/messages.js +0 -233
  216. package/containers/MobilePush/Create/reducer.js +0 -70
  217. package/containers/MobilePush/Create/sagas.js +0 -60
  218. package/containers/MobilePush/Create/selectors.js +0 -28
  219. package/containers/MobilePush/Create/tests/actions.test.js +0 -18
  220. package/containers/MobilePush/Create/tests/index.test.js +0 -10
  221. package/containers/MobilePush/Create/tests/reducer.test.js +0 -9
  222. package/containers/MobilePush/Create/tests/sagas.test.js +0 -15
  223. package/containers/MobilePush/Create/tests/selectors.test.js +0 -10
  224. package/containers/MobilePush/Edit/_mobilePushCreate.scss +0 -25
  225. package/containers/MobilePush/Edit/actions.js +0 -84
  226. package/containers/MobilePush/Edit/constants.js +0 -35
  227. package/containers/MobilePush/Edit/index.js +0 -2536
  228. package/containers/MobilePush/Edit/messages.js +0 -249
  229. package/containers/MobilePush/Edit/reducer.js +0 -112
  230. package/containers/MobilePush/Edit/sagas.js +0 -118
  231. package/containers/MobilePush/Edit/selectors.js +0 -29
  232. package/containers/MobilePush/Edit/tests/actions.test.js +0 -18
  233. package/containers/MobilePush/Edit/tests/index.test.js +0 -10
  234. package/containers/MobilePush/Edit/tests/reducer.test.js +0 -9
  235. package/containers/MobilePush/Edit/tests/sagas.test.js +0 -15
  236. package/containers/MobilePush/Edit/tests/selectors.test.js +0 -10
  237. package/containers/NotFoundPage/index.js +0 -25
  238. package/containers/NotFoundPage/messages.js +0 -13
  239. package/containers/NotFoundPage/tests/index.test.js +0 -17
  240. package/containers/Sms/Create/_smsCreate.scss +0 -45
  241. package/containers/Sms/Create/actions.js +0 -27
  242. package/containers/Sms/Create/constants.js +0 -16
  243. package/containers/Sms/Create/index.js +0 -1486
  244. package/containers/Sms/Create/messages.js +0 -85
  245. package/containers/Sms/Create/reducer.js +0 -41
  246. package/containers/Sms/Create/sagas.js +0 -36
  247. package/containers/Sms/Create/selectors.js +0 -28
  248. package/containers/Sms/Create/tests/actions.test.js +0 -18
  249. package/containers/Sms/Create/tests/index.test.js +0 -10
  250. package/containers/Sms/Create/tests/reducer.test.js +0 -9
  251. package/containers/Sms/Create/tests/sagas.test.js +0 -15
  252. package/containers/Sms/Create/tests/selectors.test.js +0 -10
  253. package/containers/Sms/Edit/actions.js +0 -40
  254. package/containers/Sms/Edit/constants.js +0 -17
  255. package/containers/Sms/Edit/index.js +0 -1470
  256. package/containers/Sms/Edit/messages.js +0 -89
  257. package/containers/Sms/Edit/reducer.js +0 -50
  258. package/containers/Sms/Edit/sagas.js +0 -52
  259. package/containers/Sms/Edit/selectors.js +0 -32
  260. package/containers/Sms/Edit/tests/actions.test.js +0 -18
  261. package/containers/Sms/Edit/tests/index.test.js +0 -10
  262. package/containers/Sms/Edit/tests/reducer.test.js +0 -9
  263. package/containers/Sms/Edit/tests/sagas.test.js +0 -15
  264. package/containers/Sms/Edit/tests/selectors.test.js +0 -10
  265. package/containers/TagList/_tagList.scss +0 -8
  266. package/containers/TagList/actions.js +0 -15
  267. package/containers/TagList/constants.js +0 -7
  268. package/containers/TagList/index.js +0 -234
  269. package/containers/TagList/messages.js +0 -13
  270. package/containers/TagList/reducer.js +0 -23
  271. package/containers/TagList/sagas.js +0 -11
  272. package/containers/TagList/selectors.js +0 -25
  273. package/containers/TagList/tests/actions.test.js +0 -18
  274. package/containers/TagList/tests/index.test.js +0 -10
  275. package/containers/TagList/tests/reducer.test.js +0 -9
  276. package/containers/TagList/tests/sagas.test.js +0 -15
  277. package/containers/TagList/tests/selectors.test.js +0 -10
  278. package/containers/Templates/_templates.scss +0 -333
  279. package/containers/Templates/actions.js +0 -108
  280. package/containers/Templates/constants.js +0 -45
  281. package/containers/Templates/index.js +0 -1582
  282. package/containers/Templates/messages.js +0 -233
  283. package/containers/Templates/reducer.js +0 -141
  284. package/containers/Templates/sagas.js +0 -168
  285. package/containers/Templates/selectors.js +0 -28
  286. package/containers/Templates/tests/actions.test.js +0 -18
  287. package/containers/Templates/tests/index.test.js +0 -10
  288. package/containers/Templates/tests/reducer.test.js +0 -9
  289. package/containers/Templates/tests/sagas.test.js +0 -15
  290. package/containers/Templates/tests/selectors.test.js +0 -10
  291. package/containers/TestPage/constants.js +0 -7
  292. package/containers/TestPage/index.js +0 -31
  293. package/containers/TestPage/messages.js +0 -13
  294. package/containers/TestPage/reducer.js +0 -21
  295. package/containers/TestPage/sagas.js +0 -11
  296. package/containers/Testv2/actions.js +0 -15
  297. package/containers/Testv2/constants.js +0 -7
  298. package/containers/Testv2/index.js +0 -45
  299. package/containers/Testv2/messages.js +0 -13
  300. package/containers/Testv2/reducer.js +0 -23
  301. package/containers/Testv2/sagas.js +0 -11
  302. package/containers/Testv2/selectors.js +0 -25
  303. package/containers/Testv2/tests/actions.test.js +0 -18
  304. package/containers/Testv2/tests/index.test.js +0 -10
  305. package/containers/Testv2/tests/reducer.test.js +0 -9
  306. package/containers/Testv2/tests/sagas.test.js +0 -15
  307. package/containers/Testv2/tests/selectors.test.js +0 -10
  308. package/containers/WeChat/_wechat.scss +0 -8
  309. package/containers/WeChat/actions.js +0 -46
  310. package/containers/WeChat/constants.js +0 -28
  311. package/containers/WeChat/index.js +0 -1618
  312. package/containers/WeChat/messages.js +0 -73
  313. package/containers/WeChat/reducer.js +0 -74
  314. package/containers/WeChat/sagas.js +0 -86
  315. package/containers/WeChat/selectors.js +0 -25
  316. package/containers/WeChat/tests/actions.test.js +0 -18
  317. package/containers/WeChat/tests/index.test.js +0 -10
  318. package/containers/WeChat/tests/reducer.test.js +0 -9
  319. package/containers/WeChat/tests/sagas.test.js +0 -15
  320. package/containers/WeChat/tests/selectors.test.js +0 -10
  321. package/favicon.ico +0 -0
  322. package/global-styles.js +0 -15
  323. package/gtm/eventDefinitions.js +0 -17
  324. package/gtm/eventDefinitionsMap.js +0 -12
  325. package/gtm/tests/events.test.js +0 -3
  326. package/i18n.js +0 -39
  327. package/index.html +0 -42
  328. package/initialState.js +0 -38
  329. package/reducers.js +0 -65
  330. package/routes.js +0 -562
  331. package/schemas/user.js +0 -8
  332. package/services/api.js +0 -306
  333. package/services/localStorageApi.js +0 -33
  334. package/store.js +0 -61
  335. package/styles/_variables.scss +0 -53
  336. package/styles/abstracts/_functions.scss +0 -1
  337. package/styles/abstracts/_mixins.scss +0 -0
  338. package/styles/abstracts/_module.scss +0 -6
  339. package/styles/abstracts/_placeholders.scss +0 -0
  340. package/styles/abstracts/_variables.scss +0 -34
  341. package/styles/base/_animations.scss +0 -0
  342. package/styles/base/_base.scss +0 -64
  343. package/styles/base/_module.scss +0 -5
  344. package/styles/base/_reset.scss +0 -0
  345. package/styles/base/_typography.scss +0 -0
  346. package/styles/components/_module.scss +0 -11
  347. package/styles/components/autocompletebox/_module.scss +0 -60
  348. package/styles/components/breadcrumbs/_breadcrumbs.scss +0 -14
  349. package/styles/components/common/_accordianDropdown.scss +0 -35
  350. package/styles/components/common/_message.scss +0 -3
  351. package/styles/components/dimension/_dimension.scss +0 -77
  352. package/styles/components/filters/_dateFilter.scss +0 -68
  353. package/styles/components/filters/_dimensionFilter.scss +0 -66
  354. package/styles/components/footer/_footer.scss +0 -13
  355. package/styles/components/login/_loginForm.scss +0 -0
  356. package/styles/components/navigation/_leftnav.scss +0 -213
  357. package/styles/components/navigation/_topnav.scss +0 -52
  358. package/styles/containers/_module.scss +0 -3
  359. package/styles/containers/layout/_layoutPage.scss +0 -169
  360. package/styles/containers/login/_loginPage.scss +0 -60
  361. package/styles/containers/reports/_reportPage.scss +0 -128
  362. package/styles/layout/_footer.scss +0 -0
  363. package/styles/layout/_forms.scss +0 -3
  364. package/styles/layout/_grid.scss +0 -3
  365. package/styles/layout/_header.scss +0 -25
  366. package/styles/layout/_module.scss +0 -1
  367. package/styles/layout/_navigation.scss +0 -0
  368. package/styles/layout/_sidebar.scss +0 -0
  369. package/styles/main.scss +0 -6
  370. package/styles/vendor/_module.scss +0 -0
  371. package/styles/vendor/semantic/dist/components/accordion.css +0 -311
  372. package/styles/vendor/semantic/dist/components/accordion.js +0 -610
  373. package/styles/vendor/semantic/dist/components/accordion.min.css +0 -9
  374. package/styles/vendor/semantic/dist/components/accordion.min.js +0 -10
  375. package/styles/vendor/semantic/dist/components/accordion.rtl.css +0 -252
  376. package/styles/vendor/semantic/dist/components/accordion.rtl.min.css +0 -9
  377. package/styles/vendor/semantic/dist/components/ad.css +0 -275
  378. package/styles/vendor/semantic/dist/components/ad.min.css +0 -10
  379. package/styles/vendor/semantic/dist/components/ad.rtl.css +0 -275
  380. package/styles/vendor/semantic/dist/components/ad.rtl.min.css +0 -10
  381. package/styles/vendor/semantic/dist/components/api.js +0 -1167
  382. package/styles/vendor/semantic/dist/components/api.min.js +0 -10
  383. package/styles/vendor/semantic/dist/components/breadcrumb.css +0 -124
  384. package/styles/vendor/semantic/dist/components/breadcrumb.min.css +0 -9
  385. package/styles/vendor/semantic/dist/components/breadcrumb.rtl.css +0 -124
  386. package/styles/vendor/semantic/dist/components/breadcrumb.rtl.min.css +0 -9
  387. package/styles/vendor/semantic/dist/components/button.css +0 -3557
  388. package/styles/vendor/semantic/dist/components/button.min.css +0 -9
  389. package/styles/vendor/semantic/dist/components/button.rtl.css +0 -3450
  390. package/styles/vendor/semantic/dist/components/button.rtl.min.css +0 -9
  391. package/styles/vendor/semantic/dist/components/card.css +0 -964
  392. package/styles/vendor/semantic/dist/components/card.min.css +0 -9
  393. package/styles/vendor/semantic/dist/components/card.rtl.css +0 -964
  394. package/styles/vendor/semantic/dist/components/card.rtl.min.css +0 -9
  395. package/styles/vendor/semantic/dist/components/checkbox.css +0 -625
  396. package/styles/vendor/semantic/dist/components/checkbox.js +0 -831
  397. package/styles/vendor/semantic/dist/components/checkbox.min.css +0 -9
  398. package/styles/vendor/semantic/dist/components/checkbox.min.js +0 -10
  399. package/styles/vendor/semantic/dist/components/checkbox.rtl.css +0 -625
  400. package/styles/vendor/semantic/dist/components/checkbox.rtl.min.css +0 -9
  401. package/styles/vendor/semantic/dist/components/comment.css +0 -270
  402. package/styles/vendor/semantic/dist/components/comment.min.css +0 -9
  403. package/styles/vendor/semantic/dist/components/comment.rtl.css +0 -270
  404. package/styles/vendor/semantic/dist/components/comment.rtl.min.css +0 -9
  405. package/styles/vendor/semantic/dist/components/container.css +0 -147
  406. package/styles/vendor/semantic/dist/components/container.min.css +0 -9
  407. package/styles/vendor/semantic/dist/components/container.rtl.css +0 -147
  408. package/styles/vendor/semantic/dist/components/container.rtl.min.css +0 -9
  409. package/styles/vendor/semantic/dist/components/dimmer.css +0 -200
  410. package/styles/vendor/semantic/dist/components/dimmer.js +0 -708
  411. package/styles/vendor/semantic/dist/components/dimmer.min.css +0 -9
  412. package/styles/vendor/semantic/dist/components/dimmer.min.js +0 -10
  413. package/styles/vendor/semantic/dist/components/dimmer.rtl.css +0 -200
  414. package/styles/vendor/semantic/dist/components/dimmer.rtl.min.css +0 -9
  415. package/styles/vendor/semantic/dist/components/divider.css +0 -260
  416. package/styles/vendor/semantic/dist/components/divider.min.css +0 -9
  417. package/styles/vendor/semantic/dist/components/divider.rtl.css +0 -260
  418. package/styles/vendor/semantic/dist/components/divider.rtl.min.css +0 -9
  419. package/styles/vendor/semantic/dist/components/dropdown.css +0 -1487
  420. package/styles/vendor/semantic/dist/components/dropdown.js +0 -3741
  421. package/styles/vendor/semantic/dist/components/dropdown.min.css +0 -9
  422. package/styles/vendor/semantic/dist/components/dropdown.min.js +0 -11
  423. package/styles/vendor/semantic/dist/components/dropdown.rtl.css +0 -1417
  424. package/styles/vendor/semantic/dist/components/dropdown.rtl.min.css +0 -9
  425. package/styles/vendor/semantic/dist/components/embed.css +0 -166
  426. package/styles/vendor/semantic/dist/components/embed.js +0 -696
  427. package/styles/vendor/semantic/dist/components/embed.min.css +0 -9
  428. package/styles/vendor/semantic/dist/components/embed.min.js +0 -10
  429. package/styles/vendor/semantic/dist/components/embed.rtl.css +0 -166
  430. package/styles/vendor/semantic/dist/components/embed.rtl.min.css +0 -9
  431. package/styles/vendor/semantic/dist/components/feed.css +0 -296
  432. package/styles/vendor/semantic/dist/components/feed.min.css +0 -9
  433. package/styles/vendor/semantic/dist/components/feed.rtl.css +0 -296
  434. package/styles/vendor/semantic/dist/components/feed.rtl.min.css +0 -9
  435. package/styles/vendor/semantic/dist/components/flag.css +0 -1031
  436. package/styles/vendor/semantic/dist/components/flag.min.css +0 -9
  437. package/styles/vendor/semantic/dist/components/flag.rtl.css +0 -1031
  438. package/styles/vendor/semantic/dist/components/flag.rtl.min.css +0 -9
  439. package/styles/vendor/semantic/dist/components/form.css +0 -1067
  440. package/styles/vendor/semantic/dist/components/form.js +0 -1558
  441. package/styles/vendor/semantic/dist/components/form.min.css +0 -9
  442. package/styles/vendor/semantic/dist/components/form.min.js +0 -10
  443. package/styles/vendor/semantic/dist/components/form.rtl.css +0 -1067
  444. package/styles/vendor/semantic/dist/components/form.rtl.min.css +0 -9
  445. package/styles/vendor/semantic/dist/components/grid.css +0 -2002
  446. package/styles/vendor/semantic/dist/components/grid.min.css +0 -9
  447. package/styles/vendor/semantic/dist/components/grid.rtl.css +0 -2002
  448. package/styles/vendor/semantic/dist/components/grid.rtl.min.css +0 -9
  449. package/styles/vendor/semantic/dist/components/header.css +0 -721
  450. package/styles/vendor/semantic/dist/components/header.min.css +0 -9
  451. package/styles/vendor/semantic/dist/components/header.rtl.css +0 -721
  452. package/styles/vendor/semantic/dist/components/header.rtl.min.css +0 -9
  453. package/styles/vendor/semantic/dist/components/icon.css +0 -3142
  454. package/styles/vendor/semantic/dist/components/icon.min.css +0 -9
  455. package/styles/vendor/semantic/dist/components/icon.rtl.css +0 -3142
  456. package/styles/vendor/semantic/dist/components/icon.rtl.min.css +0 -9
  457. package/styles/vendor/semantic/dist/components/image.css +0 -306
  458. package/styles/vendor/semantic/dist/components/image.min.css +0 -9
  459. package/styles/vendor/semantic/dist/components/image.rtl.css +0 -306
  460. package/styles/vendor/semantic/dist/components/image.rtl.min.css +0 -9
  461. package/styles/vendor/semantic/dist/components/input.css +0 -536
  462. package/styles/vendor/semantic/dist/components/input.min.css +0 -9
  463. package/styles/vendor/semantic/dist/components/input.rtl.css +0 -510
  464. package/styles/vendor/semantic/dist/components/input.rtl.min.css +0 -9
  465. package/styles/vendor/semantic/dist/components/item.css +0 -475
  466. package/styles/vendor/semantic/dist/components/item.min.css +0 -9
  467. package/styles/vendor/semantic/dist/components/item.rtl.css +0 -475
  468. package/styles/vendor/semantic/dist/components/item.rtl.min.css +0 -9
  469. package/styles/vendor/semantic/dist/components/label.css +0 -1320
  470. package/styles/vendor/semantic/dist/components/label.min.css +0 -9
  471. package/styles/vendor/semantic/dist/components/label.rtl.css +0 -1307
  472. package/styles/vendor/semantic/dist/components/label.rtl.min.css +0 -9
  473. package/styles/vendor/semantic/dist/components/list.css +0 -951
  474. package/styles/vendor/semantic/dist/components/list.min.css +0 -9
  475. package/styles/vendor/semantic/dist/components/list.rtl.css +0 -951
  476. package/styles/vendor/semantic/dist/components/list.rtl.min.css +0 -9
  477. package/styles/vendor/semantic/dist/components/loader.css +0 -347
  478. package/styles/vendor/semantic/dist/components/loader.min.css +0 -9
  479. package/styles/vendor/semantic/dist/components/loader.rtl.css +0 -347
  480. package/styles/vendor/semantic/dist/components/loader.rtl.min.css +0 -9
  481. package/styles/vendor/semantic/dist/components/menu.css +0 -2020
  482. package/styles/vendor/semantic/dist/components/menu.min.css +0 -1
  483. package/styles/vendor/semantic/dist/components/menu.rtl.css +0 -2002
  484. package/styles/vendor/semantic/dist/components/menu.rtl.min.css +0 -1
  485. package/styles/vendor/semantic/dist/components/message.css +0 -477
  486. package/styles/vendor/semantic/dist/components/message.min.css +0 -9
  487. package/styles/vendor/semantic/dist/components/message.rtl.css +0 -477
  488. package/styles/vendor/semantic/dist/components/message.rtl.min.css +0 -9
  489. package/styles/vendor/semantic/dist/components/modal.css +0 -512
  490. package/styles/vendor/semantic/dist/components/modal.js +0 -913
  491. package/styles/vendor/semantic/dist/components/modal.min.css +0 -9
  492. package/styles/vendor/semantic/dist/components/modal.min.js +0 -10
  493. package/styles/vendor/semantic/dist/components/modal.rtl.css +0 -499
  494. package/styles/vendor/semantic/dist/components/modal.rtl.min.css +0 -9
  495. package/styles/vendor/semantic/dist/components/nag.css +0 -147
  496. package/styles/vendor/semantic/dist/components/nag.js +0 -507
  497. package/styles/vendor/semantic/dist/components/nag.min.css +0 -9
  498. package/styles/vendor/semantic/dist/components/nag.min.js +0 -10
  499. package/styles/vendor/semantic/dist/components/nag.rtl.css +0 -147
  500. package/styles/vendor/semantic/dist/components/nag.rtl.min.css +0 -9
  501. package/styles/vendor/semantic/dist/components/popup.css +0 -733
  502. package/styles/vendor/semantic/dist/components/popup.js +0 -1475
  503. package/styles/vendor/semantic/dist/components/popup.min.css +0 -9
  504. package/styles/vendor/semantic/dist/components/popup.min.js +0 -10
  505. package/styles/vendor/semantic/dist/components/popup.rtl.css +0 -727
  506. package/styles/vendor/semantic/dist/components/popup.rtl.min.css +0 -9
  507. package/styles/vendor/semantic/dist/components/progress.css +0 -516
  508. package/styles/vendor/semantic/dist/components/progress.js +0 -931
  509. package/styles/vendor/semantic/dist/components/progress.min.css +0 -9
  510. package/styles/vendor/semantic/dist/components/progress.min.js +0 -10
  511. package/styles/vendor/semantic/dist/components/progress.rtl.css +0 -516
  512. package/styles/vendor/semantic/dist/components/progress.rtl.min.css +0 -9
  513. package/styles/vendor/semantic/dist/components/rail.css +0 -152
  514. package/styles/vendor/semantic/dist/components/rail.min.css +0 -9
  515. package/styles/vendor/semantic/dist/components/rail.rtl.css +0 -152
  516. package/styles/vendor/semantic/dist/components/rail.rtl.min.css +0 -9
  517. package/styles/vendor/semantic/dist/components/rating.css +0 -263
  518. package/styles/vendor/semantic/dist/components/rating.js +0 -508
  519. package/styles/vendor/semantic/dist/components/rating.min.css +0 -9
  520. package/styles/vendor/semantic/dist/components/rating.min.js +0 -10
  521. package/styles/vendor/semantic/dist/components/rating.rtl.css +0 -263
  522. package/styles/vendor/semantic/dist/components/rating.rtl.min.css +0 -9
  523. package/styles/vendor/semantic/dist/components/reset.css +0 -424
  524. package/styles/vendor/semantic/dist/components/reset.min.css +0 -9
  525. package/styles/vendor/semantic/dist/components/reset.rtl.css +0 -424
  526. package/styles/vendor/semantic/dist/components/reset.rtl.min.css +0 -9
  527. package/styles/vendor/semantic/dist/components/reveal.css +0 -284
  528. package/styles/vendor/semantic/dist/components/reveal.min.css +0 -9
  529. package/styles/vendor/semantic/dist/components/reveal.rtl.css +0 -284
  530. package/styles/vendor/semantic/dist/components/reveal.rtl.min.css +0 -9
  531. package/styles/vendor/semantic/dist/components/search.css +0 -408
  532. package/styles/vendor/semantic/dist/components/search.js +0 -1407
  533. package/styles/vendor/semantic/dist/components/search.min.css +0 -9
  534. package/styles/vendor/semantic/dist/components/search.min.js +0 -10
  535. package/styles/vendor/semantic/dist/components/search.rtl.css +0 -408
  536. package/styles/vendor/semantic/dist/components/search.rtl.min.css +0 -9
  537. package/styles/vendor/semantic/dist/components/segment.css +0 -791
  538. package/styles/vendor/semantic/dist/components/segment.min.css +0 -9
  539. package/styles/vendor/semantic/dist/components/segment.rtl.css +0 -791
  540. package/styles/vendor/semantic/dist/components/segment.rtl.min.css +0 -9
  541. package/styles/vendor/semantic/dist/components/shape.css +0 -157
  542. package/styles/vendor/semantic/dist/components/shape.js +0 -921
  543. package/styles/vendor/semantic/dist/components/shape.min.css +0 -9
  544. package/styles/vendor/semantic/dist/components/shape.min.js +0 -10
  545. package/styles/vendor/semantic/dist/components/shape.rtl.css +0 -157
  546. package/styles/vendor/semantic/dist/components/shape.rtl.min.css +0 -9
  547. package/styles/vendor/semantic/dist/components/sidebar.css +0 -638
  548. package/styles/vendor/semantic/dist/components/sidebar.js +0 -1036
  549. package/styles/vendor/semantic/dist/components/sidebar.min.css +0 -9
  550. package/styles/vendor/semantic/dist/components/sidebar.min.js +0 -10
  551. package/styles/vendor/semantic/dist/components/sidebar.rtl.css +0 -638
  552. package/styles/vendor/semantic/dist/components/sidebar.rtl.min.css +0 -9
  553. package/styles/vendor/semantic/dist/components/site.css +0 -154
  554. package/styles/vendor/semantic/dist/components/site.js +0 -487
  555. package/styles/vendor/semantic/dist/components/site.min.css +0 -9
  556. package/styles/vendor/semantic/dist/components/site.min.js +0 -10
  557. package/styles/vendor/semantic/dist/components/site.rtl.css +0 -154
  558. package/styles/vendor/semantic/dist/components/site.rtl.min.css +0 -9
  559. package/styles/vendor/semantic/dist/components/state.js +0 -708
  560. package/styles/vendor/semantic/dist/components/state.min.js +0 -10
  561. package/styles/vendor/semantic/dist/components/statistic.css +0 -569
  562. package/styles/vendor/semantic/dist/components/statistic.min.css +0 -9
  563. package/styles/vendor/semantic/dist/components/statistic.rtl.css +0 -569
  564. package/styles/vendor/semantic/dist/components/statistic.rtl.min.css +0 -9
  565. package/styles/vendor/semantic/dist/components/step.css +0 -623
  566. package/styles/vendor/semantic/dist/components/step.min.css +0 -9
  567. package/styles/vendor/semantic/dist/components/step.rtl.css +0 -623
  568. package/styles/vendor/semantic/dist/components/step.rtl.min.css +0 -9
  569. package/styles/vendor/semantic/dist/components/sticky.css +0 -78
  570. package/styles/vendor/semantic/dist/components/sticky.js +0 -942
  571. package/styles/vendor/semantic/dist/components/sticky.min.css +0 -9
  572. package/styles/vendor/semantic/dist/components/sticky.min.js +0 -10
  573. package/styles/vendor/semantic/dist/components/sticky.rtl.css +0 -78
  574. package/styles/vendor/semantic/dist/components/sticky.rtl.min.css +0 -9
  575. package/styles/vendor/semantic/dist/components/tab.css +0 -91
  576. package/styles/vendor/semantic/dist/components/tab.js +0 -946
  577. package/styles/vendor/semantic/dist/components/tab.min.css +0 -9
  578. package/styles/vendor/semantic/dist/components/tab.min.js +0 -10
  579. package/styles/vendor/semantic/dist/components/tab.rtl.css +0 -91
  580. package/styles/vendor/semantic/dist/components/tab.rtl.min.css +0 -9
  581. package/styles/vendor/semantic/dist/components/table.css +0 -1108
  582. package/styles/vendor/semantic/dist/components/table.min.css +0 -9
  583. package/styles/vendor/semantic/dist/components/table.rtl.css +0 -1108
  584. package/styles/vendor/semantic/dist/components/table.rtl.min.css +0 -9
  585. package/styles/vendor/semantic/dist/components/transition.css +0 -1964
  586. package/styles/vendor/semantic/dist/components/transition.js +0 -1095
  587. package/styles/vendor/semantic/dist/components/transition.min.css +0 -9
  588. package/styles/vendor/semantic/dist/components/transition.min.js +0 -10
  589. package/styles/vendor/semantic/dist/components/transition.rtl.css +0 -1964
  590. package/styles/vendor/semantic/dist/components/transition.rtl.min.css +0 -9
  591. package/styles/vendor/semantic/dist/components/visibility.js +0 -1283
  592. package/styles/vendor/semantic/dist/components/visibility.min.js +0 -10
  593. package/styles/vendor/semantic/dist/semantic.css +0 -36950
  594. package/styles/vendor/semantic/dist/semantic.js +0 -22500
  595. package/styles/vendor/semantic/dist/semantic.min.css +0 -364
  596. package/styles/vendor/semantic/dist/semantic.min.js +0 -19
  597. package/styles/vendor/semantic/dist/semantic.rtl.css +0 -36579
  598. package/styles/vendor/semantic/dist/semantic.rtl.min.css +0 -11
  599. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.eot +0 -0
  600. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.svg +0 -450
  601. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.ttf +0 -0
  602. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.woff +0 -0
  603. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.eot +0 -0
  604. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.svg +0 -685
  605. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.ttf +0 -0
  606. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.woff +0 -0
  607. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  608. package/styles/vendor/semantic/dist/themes/default/assets/images/flags.png +0 -0
  609. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons-local.ttf +0 -0
  610. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons.svg +0 -200
  611. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons.ttf +0 -0
  612. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons.woff +0 -0
  613. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.eot +0 -0
  614. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.svg +0 -2373
  615. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.ttf +0 -0
  616. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.woff +0 -0
  617. package/styles/vendor/semantic/gulpfile.js +0 -72
  618. package/styles/vendor/semantic/src/definitions/behaviors/api.js +0 -1167
  619. package/styles/vendor/semantic/src/definitions/behaviors/colorize.js +0 -280
  620. package/styles/vendor/semantic/src/definitions/behaviors/form.js +0 -1558
  621. package/styles/vendor/semantic/src/definitions/behaviors/state.js +0 -708
  622. package/styles/vendor/semantic/src/definitions/behaviors/visibility.js +0 -1283
  623. package/styles/vendor/semantic/src/definitions/behaviors/visit.js +0 -525
  624. package/styles/vendor/semantic/src/definitions/collections/breadcrumb.less +0 -122
  625. package/styles/vendor/semantic/src/definitions/collections/form.less +0 -1053
  626. package/styles/vendor/semantic/src/definitions/collections/grid.less +0 -1920
  627. package/styles/vendor/semantic/src/definitions/collections/menu.less +0 -1965
  628. package/styles/vendor/semantic/src/definitions/collections/message.less +0 -478
  629. package/styles/vendor/semantic/src/definitions/collections/table.less +0 -1114
  630. package/styles/vendor/semantic/src/definitions/elements/button.less +0 -3427
  631. package/styles/vendor/semantic/src/definitions/elements/container.less +0 -143
  632. package/styles/vendor/semantic/src/definitions/elements/divider.less +0 -255
  633. package/styles/vendor/semantic/src/definitions/elements/flag.less +0 -52
  634. package/styles/vendor/semantic/src/definitions/elements/header.less +0 -708
  635. package/styles/vendor/semantic/src/definitions/elements/icon.less +0 -477
  636. package/styles/vendor/semantic/src/definitions/elements/image.less +0 -324
  637. package/styles/vendor/semantic/src/definitions/elements/input.less +0 -507
  638. package/styles/vendor/semantic/src/definitions/elements/label.less +0 -1257
  639. package/styles/vendor/semantic/src/definitions/elements/list.less +0 -951
  640. package/styles/vendor/semantic/src/definitions/elements/loader.less +0 -332
  641. package/styles/vendor/semantic/src/definitions/elements/rail.less +0 -154
  642. package/styles/vendor/semantic/src/definitions/elements/reveal.less +0 -265
  643. package/styles/vendor/semantic/src/definitions/elements/segment.less +0 -768
  644. package/styles/vendor/semantic/src/definitions/elements/step.less +0 -562
  645. package/styles/vendor/semantic/src/definitions/globals/reset.less +0 -40
  646. package/styles/vendor/semantic/src/definitions/globals/site.js +0 -487
  647. package/styles/vendor/semantic/src/definitions/globals/site.less +0 -166
  648. package/styles/vendor/semantic/src/definitions/modules/accordion.js +0 -610
  649. package/styles/vendor/semantic/src/definitions/modules/accordion.less +0 -219
  650. package/styles/vendor/semantic/src/definitions/modules/checkbox.js +0 -831
  651. package/styles/vendor/semantic/src/definitions/modules/checkbox.less +0 -598
  652. package/styles/vendor/semantic/src/definitions/modules/dimmer.js +0 -708
  653. package/styles/vendor/semantic/src/definitions/modules/dimmer.less +0 -189
  654. package/styles/vendor/semantic/src/definitions/modules/dropdown.js +0 -3741
  655. package/styles/vendor/semantic/src/definitions/modules/dropdown.less +0 -1352
  656. package/styles/vendor/semantic/src/definitions/modules/embed.js +0 -696
  657. package/styles/vendor/semantic/src/definitions/modules/embed.less +0 -163
  658. package/styles/vendor/semantic/src/definitions/modules/modal.js +0 -913
  659. package/styles/vendor/semantic/src/definitions/modules/modal.less +0 -484
  660. package/styles/vendor/semantic/src/definitions/modules/nag.js +0 -507
  661. package/styles/vendor/semantic/src/definitions/modules/nag.less +0 -158
  662. package/styles/vendor/semantic/src/definitions/modules/popup.js +0 -1475
  663. package/styles/vendor/semantic/src/definitions/modules/popup.less +0 -712
  664. package/styles/vendor/semantic/src/definitions/modules/progress.js +0 -931
  665. package/styles/vendor/semantic/src/definitions/modules/progress.less +0 -503
  666. package/styles/vendor/semantic/src/definitions/modules/rating.js +0 -508
  667. package/styles/vendor/semantic/src/definitions/modules/rating.less +0 -191
  668. package/styles/vendor/semantic/src/definitions/modules/search.js +0 -1407
  669. package/styles/vendor/semantic/src/definitions/modules/search.less +0 -417
  670. package/styles/vendor/semantic/src/definitions/modules/shape.js +0 -921
  671. package/styles/vendor/semantic/src/definitions/modules/shape.less +0 -150
  672. package/styles/vendor/semantic/src/definitions/modules/sidebar.js +0 -1036
  673. package/styles/vendor/semantic/src/definitions/modules/sidebar.less +0 -552
  674. package/styles/vendor/semantic/src/definitions/modules/sticky.js +0 -942
  675. package/styles/vendor/semantic/src/definitions/modules/sticky.less +0 -74
  676. package/styles/vendor/semantic/src/definitions/modules/tab.js +0 -946
  677. package/styles/vendor/semantic/src/definitions/modules/tab.less +0 -94
  678. package/styles/vendor/semantic/src/definitions/modules/transition.js +0 -1095
  679. package/styles/vendor/semantic/src/definitions/modules/transition.less +0 -78
  680. package/styles/vendor/semantic/src/definitions/views/ad.less +0 -268
  681. package/styles/vendor/semantic/src/definitions/views/card.less +0 -1059
  682. package/styles/vendor/semantic/src/definitions/views/comment.less +0 -269
  683. package/styles/vendor/semantic/src/definitions/views/feed.less +0 -278
  684. package/styles/vendor/semantic/src/definitions/views/item.less +0 -464
  685. package/styles/vendor/semantic/src/definitions/views/statistic.less +0 -557
  686. package/styles/vendor/semantic/src/semantic.less +0 -66
  687. package/styles/vendor/semantic/src/site/collections/breadcrumb.overrides +0 -3
  688. package/styles/vendor/semantic/src/site/collections/breadcrumb.variables +0 -3
  689. package/styles/vendor/semantic/src/site/collections/form.overrides +0 -3
  690. package/styles/vendor/semantic/src/site/collections/form.variables +0 -3
  691. package/styles/vendor/semantic/src/site/collections/grid.overrides +0 -3
  692. package/styles/vendor/semantic/src/site/collections/grid.variables +0 -3
  693. package/styles/vendor/semantic/src/site/collections/menu.overrides +0 -24
  694. package/styles/vendor/semantic/src/site/collections/menu.variables +0 -6
  695. package/styles/vendor/semantic/src/site/collections/message.overrides +0 -3
  696. package/styles/vendor/semantic/src/site/collections/message.variables +0 -3
  697. package/styles/vendor/semantic/src/site/collections/table.overrides +0 -3
  698. package/styles/vendor/semantic/src/site/collections/table.variables +0 -3
  699. package/styles/vendor/semantic/src/site/elements/button.overrides +0 -110
  700. package/styles/vendor/semantic/src/site/elements/button.variables +0 -3
  701. package/styles/vendor/semantic/src/site/elements/container.overrides +0 -3
  702. package/styles/vendor/semantic/src/site/elements/container.variables +0 -3
  703. package/styles/vendor/semantic/src/site/elements/divider.overrides +0 -3
  704. package/styles/vendor/semantic/src/site/elements/divider.variables +0 -3
  705. package/styles/vendor/semantic/src/site/elements/flag.overrides +0 -3
  706. package/styles/vendor/semantic/src/site/elements/flag.variables +0 -3
  707. package/styles/vendor/semantic/src/site/elements/header.overrides +0 -3
  708. package/styles/vendor/semantic/src/site/elements/header.variables +0 -3
  709. package/styles/vendor/semantic/src/site/elements/icon.overrides +0 -3
  710. package/styles/vendor/semantic/src/site/elements/icon.variables +0 -3
  711. package/styles/vendor/semantic/src/site/elements/image.overrides +0 -3
  712. package/styles/vendor/semantic/src/site/elements/image.variables +0 -3
  713. package/styles/vendor/semantic/src/site/elements/input.overrides +0 -25
  714. package/styles/vendor/semantic/src/site/elements/input.variables +0 -3
  715. package/styles/vendor/semantic/src/site/elements/label.overrides +0 -18
  716. package/styles/vendor/semantic/src/site/elements/label.variables +0 -3
  717. package/styles/vendor/semantic/src/site/elements/list.overrides +0 -3
  718. package/styles/vendor/semantic/src/site/elements/list.variables +0 -3
  719. package/styles/vendor/semantic/src/site/elements/loader.overrides +0 -3
  720. package/styles/vendor/semantic/src/site/elements/loader.variables +0 -3
  721. package/styles/vendor/semantic/src/site/elements/rail.overrides +0 -3
  722. package/styles/vendor/semantic/src/site/elements/rail.variables +0 -3
  723. package/styles/vendor/semantic/src/site/elements/reveal.overrides +0 -3
  724. package/styles/vendor/semantic/src/site/elements/reveal.variables +0 -3
  725. package/styles/vendor/semantic/src/site/elements/segment.overrides +0 -3
  726. package/styles/vendor/semantic/src/site/elements/segment.variables +0 -3
  727. package/styles/vendor/semantic/src/site/elements/step.overrides +0 -3
  728. package/styles/vendor/semantic/src/site/elements/step.variables +0 -3
  729. package/styles/vendor/semantic/src/site/globals/reset.overrides +0 -3
  730. package/styles/vendor/semantic/src/site/globals/reset.variables +0 -3
  731. package/styles/vendor/semantic/src/site/globals/site.overrides +0 -3
  732. package/styles/vendor/semantic/src/site/globals/site.variables +0 -52
  733. package/styles/vendor/semantic/src/site/modules/accordion.overrides +0 -67
  734. package/styles/vendor/semantic/src/site/modules/accordion.variables +0 -3
  735. package/styles/vendor/semantic/src/site/modules/chatroom.overrides +0 -3
  736. package/styles/vendor/semantic/src/site/modules/chatroom.variables +0 -3
  737. package/styles/vendor/semantic/src/site/modules/checkbox.overrides +0 -3
  738. package/styles/vendor/semantic/src/site/modules/checkbox.variables +0 -3
  739. package/styles/vendor/semantic/src/site/modules/dimmer.overrides +0 -3
  740. package/styles/vendor/semantic/src/site/modules/dimmer.variables +0 -3
  741. package/styles/vendor/semantic/src/site/modules/dropdown.overrides +0 -80
  742. package/styles/vendor/semantic/src/site/modules/dropdown.variables +0 -3
  743. package/styles/vendor/semantic/src/site/modules/embed.overrides +0 -3
  744. package/styles/vendor/semantic/src/site/modules/embed.variables +0 -0
  745. package/styles/vendor/semantic/src/site/modules/modal.overrides +0 -13
  746. package/styles/vendor/semantic/src/site/modules/modal.variables +0 -3
  747. package/styles/vendor/semantic/src/site/modules/nag.overrides +0 -3
  748. package/styles/vendor/semantic/src/site/modules/nag.variables +0 -3
  749. package/styles/vendor/semantic/src/site/modules/popup.overrides +0 -3
  750. package/styles/vendor/semantic/src/site/modules/popup.variables +0 -3
  751. package/styles/vendor/semantic/src/site/modules/progress.overrides +0 -3
  752. package/styles/vendor/semantic/src/site/modules/progress.variables +0 -3
  753. package/styles/vendor/semantic/src/site/modules/rating.overrides +0 -3
  754. package/styles/vendor/semantic/src/site/modules/rating.variables +0 -3
  755. package/styles/vendor/semantic/src/site/modules/search.overrides +0 -3
  756. package/styles/vendor/semantic/src/site/modules/search.variables +0 -3
  757. package/styles/vendor/semantic/src/site/modules/shape.overrides +0 -3
  758. package/styles/vendor/semantic/src/site/modules/shape.variables +0 -3
  759. package/styles/vendor/semantic/src/site/modules/sidebar.overrides +0 -3
  760. package/styles/vendor/semantic/src/site/modules/sidebar.variables +0 -3
  761. package/styles/vendor/semantic/src/site/modules/sticky.overrides +0 -3
  762. package/styles/vendor/semantic/src/site/modules/sticky.variables +0 -3
  763. package/styles/vendor/semantic/src/site/modules/tab.overrides +0 -3
  764. package/styles/vendor/semantic/src/site/modules/tab.variables +0 -3
  765. package/styles/vendor/semantic/src/site/modules/transition.overrides +0 -3
  766. package/styles/vendor/semantic/src/site/modules/transition.variables +0 -3
  767. package/styles/vendor/semantic/src/site/views/ad.overrides +0 -3
  768. package/styles/vendor/semantic/src/site/views/ad.variables +0 -3
  769. package/styles/vendor/semantic/src/site/views/card.overrides +0 -3
  770. package/styles/vendor/semantic/src/site/views/card.variables +0 -3
  771. package/styles/vendor/semantic/src/site/views/comment.overrides +0 -3
  772. package/styles/vendor/semantic/src/site/views/comment.variables +0 -3
  773. package/styles/vendor/semantic/src/site/views/feed.overrides +0 -3
  774. package/styles/vendor/semantic/src/site/views/feed.variables +0 -3
  775. package/styles/vendor/semantic/src/site/views/item.overrides +0 -3
  776. package/styles/vendor/semantic/src/site/views/item.variables +0 -3
  777. package/styles/vendor/semantic/src/site/views/statistic.overrides +0 -3
  778. package/styles/vendor/semantic/src/site/views/statistic.variables +0 -3
  779. package/styles/vendor/semantic/src/theme.config +0 -92
  780. package/styles/vendor/semantic/src/theme.less +0 -61
  781. package/styles/vendor/semantic/src/themes/amazon/elements/button.overrides +0 -46
  782. package/styles/vendor/semantic/src/themes/amazon/elements/button.variables +0 -58
  783. package/styles/vendor/semantic/src/themes/amazon/globals/site.variables +0 -43
  784. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.eot +0 -0
  785. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.svg +0 -450
  786. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.ttf +0 -0
  787. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.woff +0 -0
  788. package/styles/vendor/semantic/src/themes/basic/collections/table.overrides +0 -4
  789. package/styles/vendor/semantic/src/themes/basic/collections/table.variables +0 -11
  790. package/styles/vendor/semantic/src/themes/basic/elements/button.overrides +0 -4
  791. package/styles/vendor/semantic/src/themes/basic/elements/button.variables +0 -44
  792. package/styles/vendor/semantic/src/themes/basic/elements/icon.overrides +0 -189
  793. package/styles/vendor/semantic/src/themes/basic/elements/icon.variables +0 -12
  794. package/styles/vendor/semantic/src/themes/basic/elements/step.overrides +0 -10
  795. package/styles/vendor/semantic/src/themes/basic/elements/step.variables +0 -18
  796. package/styles/vendor/semantic/src/themes/basic/globals/reset.overrides +0 -5
  797. package/styles/vendor/semantic/src/themes/basic/globals/reset.variables +0 -3
  798. package/styles/vendor/semantic/src/themes/basic/modules/progress.overrides +0 -3
  799. package/styles/vendor/semantic/src/themes/basic/modules/progress.variables +0 -15
  800. package/styles/vendor/semantic/src/themes/basic/views/card.overrides +0 -4
  801. package/styles/vendor/semantic/src/themes/basic/views/card.variables +0 -35
  802. package/styles/vendor/semantic/src/themes/bookish/elements/header.overrides +0 -15
  803. package/styles/vendor/semantic/src/themes/bookish/elements/header.variables +0 -37
  804. package/styles/vendor/semantic/src/themes/bootstrap3/elements/button.overrides +0 -0
  805. package/styles/vendor/semantic/src/themes/bootstrap3/elements/button.variables +0 -63
  806. package/styles/vendor/semantic/src/themes/chubby/collections/form.overrides +0 -16
  807. package/styles/vendor/semantic/src/themes/chubby/collections/form.variables +0 -9
  808. package/styles/vendor/semantic/src/themes/chubby/collections/menu.overrides +0 -0
  809. package/styles/vendor/semantic/src/themes/chubby/collections/menu.variables +0 -40
  810. package/styles/vendor/semantic/src/themes/chubby/elements/button.overrides +0 -21
  811. package/styles/vendor/semantic/src/themes/chubby/elements/button.variables +0 -57
  812. package/styles/vendor/semantic/src/themes/chubby/elements/header.overrides +0 -5
  813. package/styles/vendor/semantic/src/themes/chubby/elements/header.variables +0 -21
  814. package/styles/vendor/semantic/src/themes/chubby/modules/accordion.overrides +0 -7
  815. package/styles/vendor/semantic/src/themes/chubby/modules/accordion.variables +0 -15
  816. package/styles/vendor/semantic/src/themes/chubby/views/comment.overrides +0 -12
  817. package/styles/vendor/semantic/src/themes/chubby/views/comment.variables +0 -46
  818. package/styles/vendor/semantic/src/themes/classic/collections/table.overrides +0 -3
  819. package/styles/vendor/semantic/src/themes/classic/collections/table.variables +0 -14
  820. package/styles/vendor/semantic/src/themes/classic/elements/button.overrides +0 -3
  821. package/styles/vendor/semantic/src/themes/classic/elements/button.variables +0 -96
  822. package/styles/vendor/semantic/src/themes/classic/elements/header.overrides +0 -3
  823. package/styles/vendor/semantic/src/themes/classic/elements/header.variables +0 -12
  824. package/styles/vendor/semantic/src/themes/classic/modules/progress.overrides +0 -3
  825. package/styles/vendor/semantic/src/themes/classic/modules/progress.variables +0 -9
  826. package/styles/vendor/semantic/src/themes/classic/views/card.overrides +0 -98
  827. package/styles/vendor/semantic/src/themes/classic/views/card.variables +0 -22
  828. package/styles/vendor/semantic/src/themes/colored/modules/checkbox.overrides +0 -0
  829. package/styles/vendor/semantic/src/themes/colored/modules/checkbox.variables +0 -29
  830. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.eot +0 -0
  831. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.svg +0 -685
  832. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.ttf +0 -0
  833. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.woff +0 -0
  834. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.woff2 +0 -0
  835. package/styles/vendor/semantic/src/themes/default/assets/images/flags.png +0 -0
  836. package/styles/vendor/semantic/src/themes/default/collections/breadcrumb.overrides +0 -3
  837. package/styles/vendor/semantic/src/themes/default/collections/breadcrumb.variables +0 -33
  838. package/styles/vendor/semantic/src/themes/default/collections/form.overrides +0 -3
  839. package/styles/vendor/semantic/src/themes/default/collections/form.variables +0 -195
  840. package/styles/vendor/semantic/src/themes/default/collections/grid.overrides +0 -4
  841. package/styles/vendor/semantic/src/themes/default/collections/grid.variables +0 -103
  842. package/styles/vendor/semantic/src/themes/default/collections/menu.overrides +0 -3
  843. package/styles/vendor/semantic/src/themes/default/collections/menu.variables +0 -458
  844. package/styles/vendor/semantic/src/themes/default/collections/message.overrides +0 -3
  845. package/styles/vendor/semantic/src/themes/default/collections/message.variables +0 -158
  846. package/styles/vendor/semantic/src/themes/default/collections/table.overrides +0 -0
  847. package/styles/vendor/semantic/src/themes/default/collections/table.variables +0 -246
  848. package/styles/vendor/semantic/src/themes/default/elements/button.overrides +0 -3
  849. package/styles/vendor/semantic/src/themes/default/elements/button.variables +0 -358
  850. package/styles/vendor/semantic/src/themes/default/elements/container.overrides +0 -3
  851. package/styles/vendor/semantic/src/themes/default/elements/container.variables +0 -58
  852. package/styles/vendor/semantic/src/themes/default/elements/divider.overrides +0 -18
  853. package/styles/vendor/semantic/src/themes/default/elements/divider.variables +0 -53
  854. package/styles/vendor/semantic/src/themes/default/elements/flag.overrides +0 -986
  855. package/styles/vendor/semantic/src/themes/default/elements/flag.variables +0 -13
  856. package/styles/vendor/semantic/src/themes/default/elements/header.overrides +0 -4
  857. package/styles/vendor/semantic/src/themes/default/elements/header.variables +0 -151
  858. package/styles/vendor/semantic/src/themes/default/elements/icon.overrides +0 -941
  859. package/styles/vendor/semantic/src/themes/default/elements/icon.variables +0 -62
  860. package/styles/vendor/semantic/src/themes/default/elements/image.overrides +0 -3
  861. package/styles/vendor/semantic/src/themes/default/elements/image.variables +0 -44
  862. package/styles/vendor/semantic/src/themes/default/elements/input.overrides +0 -3
  863. package/styles/vendor/semantic/src/themes/default/elements/input.variables +0 -101
  864. package/styles/vendor/semantic/src/themes/default/elements/label.overrides +0 -3
  865. package/styles/vendor/semantic/src/themes/default/elements/label.variables +0 -254
  866. package/styles/vendor/semantic/src/themes/default/elements/list.overrides +0 -3
  867. package/styles/vendor/semantic/src/themes/default/elements/list.variables +0 -224
  868. package/styles/vendor/semantic/src/themes/default/elements/loader.overrides +0 -3
  869. package/styles/vendor/semantic/src/themes/default/elements/loader.variables +0 -72
  870. package/styles/vendor/semantic/src/themes/default/elements/rail.overrides +0 -3
  871. package/styles/vendor/semantic/src/themes/default/elements/rail.variables +0 -34
  872. package/styles/vendor/semantic/src/themes/default/elements/reveal.overrides +0 -3
  873. package/styles/vendor/semantic/src/themes/default/elements/reveal.variables +0 -17
  874. package/styles/vendor/semantic/src/themes/default/elements/segment.overrides +0 -3
  875. package/styles/vendor/semantic/src/themes/default/elements/segment.variables +0 -139
  876. package/styles/vendor/semantic/src/themes/default/elements/step.overrides +0 -16
  877. package/styles/vendor/semantic/src/themes/default/elements/step.variables +0 -130
  878. package/styles/vendor/semantic/src/themes/default/globals/reset.overrides +0 -429
  879. package/styles/vendor/semantic/src/themes/default/globals/reset.variables +0 -3
  880. package/styles/vendor/semantic/src/themes/default/globals/site.overrides +0 -3
  881. package/styles/vendor/semantic/src/themes/default/globals/site.variables +0 -936
  882. package/styles/vendor/semantic/src/themes/default/modules/accordion.overrides +0 -28
  883. package/styles/vendor/semantic/src/themes/default/modules/accordion.variables +0 -100
  884. package/styles/vendor/semantic/src/themes/default/modules/chatroom.overrides +0 -3
  885. package/styles/vendor/semantic/src/themes/default/modules/chatroom.variables +0 -3
  886. package/styles/vendor/semantic/src/themes/default/modules/checkbox.overrides +0 -36
  887. package/styles/vendor/semantic/src/themes/default/modules/checkbox.variables +0 -193
  888. package/styles/vendor/semantic/src/themes/default/modules/dimmer.overrides +0 -3
  889. package/styles/vendor/semantic/src/themes/default/modules/dimmer.variables +0 -61
  890. package/styles/vendor/semantic/src/themes/default/modules/dropdown.overrides +0 -62
  891. package/styles/vendor/semantic/src/themes/default/modules/dropdown.variables +0 -373
  892. package/styles/vendor/semantic/src/themes/default/modules/embed.overrides +0 -3
  893. package/styles/vendor/semantic/src/themes/default/modules/embed.variables +0 -53
  894. package/styles/vendor/semantic/src/themes/default/modules/modal.overrides +0 -3
  895. package/styles/vendor/semantic/src/themes/default/modules/modal.variables +0 -151
  896. package/styles/vendor/semantic/src/themes/default/modules/nag.overrides +0 -3
  897. package/styles/vendor/semantic/src/themes/default/modules/nag.variables +0 -74
  898. package/styles/vendor/semantic/src/themes/default/modules/popup.overrides +0 -3
  899. package/styles/vendor/semantic/src/themes/default/modules/popup.variables +0 -137
  900. package/styles/vendor/semantic/src/themes/default/modules/progress.overrides +0 -3
  901. package/styles/vendor/semantic/src/themes/default/modules/progress.variables +0 -113
  902. package/styles/vendor/semantic/src/themes/default/modules/rating.overrides +0 -68
  903. package/styles/vendor/semantic/src/themes/default/modules/rating.variables +0 -103
  904. package/styles/vendor/semantic/src/themes/default/modules/search.overrides +0 -3
  905. package/styles/vendor/semantic/src/themes/default/modules/search.variables +0 -158
  906. package/styles/vendor/semantic/src/themes/default/modules/shape.overrides +0 -3
  907. package/styles/vendor/semantic/src/themes/default/modules/shape.variables +0 -40
  908. package/styles/vendor/semantic/src/themes/default/modules/sidebar.overrides +0 -3
  909. package/styles/vendor/semantic/src/themes/default/modules/sidebar.variables +0 -45
  910. package/styles/vendor/semantic/src/themes/default/modules/sticky.overrides +0 -3
  911. package/styles/vendor/semantic/src/themes/default/modules/sticky.variables +0 -7
  912. package/styles/vendor/semantic/src/themes/default/modules/tab.overrides +0 -3
  913. package/styles/vendor/semantic/src/themes/default/modules/tab.variables +0 -11
  914. package/styles/vendor/semantic/src/themes/default/modules/transition.overrides +0 -910
  915. package/styles/vendor/semantic/src/themes/default/modules/transition.variables +0 -10
  916. package/styles/vendor/semantic/src/themes/default/views/ad.overrides +0 -3
  917. package/styles/vendor/semantic/src/themes/default/views/ad.variables +0 -13
  918. package/styles/vendor/semantic/src/themes/default/views/card.overrides +0 -3
  919. package/styles/vendor/semantic/src/themes/default/views/card.variables +0 -220
  920. package/styles/vendor/semantic/src/themes/default/views/comment.overrides +0 -3
  921. package/styles/vendor/semantic/src/themes/default/views/comment.variables +0 -104
  922. package/styles/vendor/semantic/src/themes/default/views/feed.overrides +0 -3
  923. package/styles/vendor/semantic/src/themes/default/views/feed.variables +0 -141
  924. package/styles/vendor/semantic/src/themes/default/views/item.overrides +0 -3
  925. package/styles/vendor/semantic/src/themes/default/views/item.variables +0 -154
  926. package/styles/vendor/semantic/src/themes/default/views/statistic.overrides +0 -3
  927. package/styles/vendor/semantic/src/themes/default/views/statistic.variables +0 -98
  928. package/styles/vendor/semantic/src/themes/duo/elements/loader.overrides +0 -3
  929. package/styles/vendor/semantic/src/themes/duo/elements/loader.variables +0 -6
  930. package/styles/vendor/semantic/src/themes/fixed-width/collections/grid.overrides +0 -3
  931. package/styles/vendor/semantic/src/themes/fixed-width/collections/grid.variables +0 -23
  932. package/styles/vendor/semantic/src/themes/fixed-width/modules/modal.overrides +0 -3
  933. package/styles/vendor/semantic/src/themes/fixed-width/modules/modal.variables +0 -37
  934. package/styles/vendor/semantic/src/themes/flat/collections/form.overrides +0 -28
  935. package/styles/vendor/semantic/src/themes/flat/collections/form.variables +0 -74
  936. package/styles/vendor/semantic/src/themes/flat/globals/site.overrides +0 -3
  937. package/styles/vendor/semantic/src/themes/flat/globals/site.variables +0 -107
  938. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons-local.ttf +0 -0
  939. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons.svg +0 -200
  940. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons.ttf +0 -0
  941. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons.woff +0 -0
  942. package/styles/vendor/semantic/src/themes/github/collections/breadcrumb.variables +0 -11
  943. package/styles/vendor/semantic/src/themes/github/collections/form.overrides +0 -16
  944. package/styles/vendor/semantic/src/themes/github/collections/form.variables +0 -40
  945. package/styles/vendor/semantic/src/themes/github/collections/grid.variables +0 -2
  946. package/styles/vendor/semantic/src/themes/github/collections/menu.overrides +0 -7
  947. package/styles/vendor/semantic/src/themes/github/collections/menu.variables +0 -61
  948. package/styles/vendor/semantic/src/themes/github/collections/message.overrides +0 -11
  949. package/styles/vendor/semantic/src/themes/github/collections/message.variables +0 -29
  950. package/styles/vendor/semantic/src/themes/github/collections/table.variables +0 -8
  951. package/styles/vendor/semantic/src/themes/github/elements/button.overrides +0 -4
  952. package/styles/vendor/semantic/src/themes/github/elements/button.variables +0 -77
  953. package/styles/vendor/semantic/src/themes/github/elements/header.variables +0 -9
  954. package/styles/vendor/semantic/src/themes/github/elements/icon.overrides +0 -208
  955. package/styles/vendor/semantic/src/themes/github/elements/icon.variables +0 -13
  956. package/styles/vendor/semantic/src/themes/github/elements/image.variables +0 -5
  957. package/styles/vendor/semantic/src/themes/github/elements/input.overrides +0 -32
  958. package/styles/vendor/semantic/src/themes/github/elements/input.variables +0 -16
  959. package/styles/vendor/semantic/src/themes/github/elements/label.overrides +0 -9
  960. package/styles/vendor/semantic/src/themes/github/elements/label.variables +0 -4
  961. package/styles/vendor/semantic/src/themes/github/elements/segment.overrides +0 -3
  962. package/styles/vendor/semantic/src/themes/github/elements/segment.variables +0 -40
  963. package/styles/vendor/semantic/src/themes/github/elements/step.overrides +0 -26
  964. package/styles/vendor/semantic/src/themes/github/elements/step.variables +0 -26
  965. package/styles/vendor/semantic/src/themes/github/globals/site.variables +0 -47
  966. package/styles/vendor/semantic/src/themes/github/modules/dropdown.overrides +0 -53
  967. package/styles/vendor/semantic/src/themes/github/modules/dropdown.variables +0 -35
  968. package/styles/vendor/semantic/src/themes/github/modules/popup.variables +0 -12
  969. package/styles/vendor/semantic/src/themes/gmail/collections/message.overrides +0 -0
  970. package/styles/vendor/semantic/src/themes/gmail/collections/message.variables +0 -15
  971. package/styles/vendor/semantic/src/themes/instagram/views/card.overrides +0 -12
  972. package/styles/vendor/semantic/src/themes/instagram/views/card.variables +0 -23
  973. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.eot +0 -0
  974. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.svg +0 -2373
  975. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.ttf +0 -0
  976. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.woff +0 -0
  977. package/styles/vendor/semantic/src/themes/material/collections/menu.overrides +0 -1
  978. package/styles/vendor/semantic/src/themes/material/collections/menu.variables +0 -10
  979. package/styles/vendor/semantic/src/themes/material/elements/button.overrides +0 -15
  980. package/styles/vendor/semantic/src/themes/material/elements/button.variables +0 -97
  981. package/styles/vendor/semantic/src/themes/material/elements/header.overrides +0 -15
  982. package/styles/vendor/semantic/src/themes/material/elements/header.variables +0 -21
  983. package/styles/vendor/semantic/src/themes/material/elements/icon.overrides +0 -934
  984. package/styles/vendor/semantic/src/themes/material/elements/icon.variables +0 -11
  985. package/styles/vendor/semantic/src/themes/material/globals/site.overrides +0 -0
  986. package/styles/vendor/semantic/src/themes/material/globals/site.variables +0 -128
  987. package/styles/vendor/semantic/src/themes/material/modules/dropdown.overrides +0 -5
  988. package/styles/vendor/semantic/src/themes/material/modules/dropdown.variables +0 -20
  989. package/styles/vendor/semantic/src/themes/material/modules/modal.overrides +0 -6
  990. package/styles/vendor/semantic/src/themes/material/modules/modal.variables +0 -15
  991. package/styles/vendor/semantic/src/themes/pulsar/elements/loader.overrides +0 -70
  992. package/styles/vendor/semantic/src/themes/pulsar/elements/loader.variables +0 -7
  993. package/styles/vendor/semantic/src/themes/raised/elements/button.overrides +0 -3
  994. package/styles/vendor/semantic/src/themes/raised/elements/button.variables +0 -27
  995. package/styles/vendor/semantic/src/themes/resetcss/globals/reset.overrides +0 -52
  996. package/styles/vendor/semantic/src/themes/resetcss/globals/reset.variables +0 -3
  997. package/styles/vendor/semantic/src/themes/round/elements/button.overrides +0 -0
  998. package/styles/vendor/semantic/src/themes/round/elements/button.variables +0 -138
  999. package/styles/vendor/semantic/src/themes/rtl/globals/site.overrides +0 -6
  1000. package/styles/vendor/semantic/src/themes/rtl/globals/site.variables +0 -14
  1001. package/styles/vendor/semantic/src/themes/striped/modules/progress.overrides +0 -29
  1002. package/styles/vendor/semantic/src/themes/striped/modules/progress.variables +0 -3
  1003. package/styles/vendor/semantic/src/themes/timeline/views/feed.overrides +0 -27
  1004. package/styles/vendor/semantic/src/themes/timeline/views/feed.variables +0 -36
  1005. package/styles/vendor/semantic/src/themes/twitter/elements/button.overrides +0 -13
  1006. package/styles/vendor/semantic/src/themes/twitter/elements/button.variables +0 -44
  1007. package/styles/vendor/semantic/tasks/README.md +0 -17
  1008. package/styles/vendor/semantic/tasks/admin/components/create.js +0 -332
  1009. package/styles/vendor/semantic/tasks/admin/components/init.js +0 -170
  1010. package/styles/vendor/semantic/tasks/admin/components/update.js +0 -184
  1011. package/styles/vendor/semantic/tasks/admin/distributions/create.js +0 -219
  1012. package/styles/vendor/semantic/tasks/admin/distributions/init.js +0 -169
  1013. package/styles/vendor/semantic/tasks/admin/distributions/update.js +0 -179
  1014. package/styles/vendor/semantic/tasks/admin/publish.js +0 -25
  1015. package/styles/vendor/semantic/tasks/admin/register.js +0 -55
  1016. package/styles/vendor/semantic/tasks/admin/release.js +0 -29
  1017. package/styles/vendor/semantic/tasks/build/assets.js +0 -35
  1018. package/styles/vendor/semantic/tasks/build/css.js +0 -113
  1019. package/styles/vendor/semantic/tasks/build/javascript.js +0 -77
  1020. package/styles/vendor/semantic/tasks/build.js +0 -50
  1021. package/styles/vendor/semantic/tasks/check-install.js +0 -28
  1022. package/styles/vendor/semantic/tasks/clean.js +0 -14
  1023. package/styles/vendor/semantic/tasks/collections/README.md +0 -16
  1024. package/styles/vendor/semantic/tasks/collections/admin.js +0 -49
  1025. package/styles/vendor/semantic/tasks/collections/build.js +0 -19
  1026. package/styles/vendor/semantic/tasks/collections/internal.js +0 -227
  1027. package/styles/vendor/semantic/tasks/collections/rtl.js +0 -16
  1028. package/styles/vendor/semantic/tasks/config/admin/github.js +0 -37
  1029. package/styles/vendor/semantic/tasks/config/admin/oauth.example.js +0 -11
  1030. package/styles/vendor/semantic/tasks/config/admin/release.js +0 -111
  1031. package/styles/vendor/semantic/tasks/config/admin/templates/README.md +0 -32
  1032. package/styles/vendor/semantic/tasks/config/admin/templates/bower.json +0 -29
  1033. package/styles/vendor/semantic/tasks/config/admin/templates/component-package.js +0 -14
  1034. package/styles/vendor/semantic/tasks/config/admin/templates/composer.json +0 -20
  1035. package/styles/vendor/semantic/tasks/config/admin/templates/css-package.js +0 -34
  1036. package/styles/vendor/semantic/tasks/config/admin/templates/less-package.js +0 -21
  1037. package/styles/vendor/semantic/tasks/config/admin/templates/package.json +0 -17
  1038. package/styles/vendor/semantic/tasks/config/defaults.js +0 -117
  1039. package/styles/vendor/semantic/tasks/config/docs.js +0 -32
  1040. package/styles/vendor/semantic/tasks/config/npm/gulpfile.js +0 -72
  1041. package/styles/vendor/semantic/tasks/config/project/config.js +0 -141
  1042. package/styles/vendor/semantic/tasks/config/project/install.js +0 -763
  1043. package/styles/vendor/semantic/tasks/config/project/release.js +0 -65
  1044. package/styles/vendor/semantic/tasks/config/tasks.js +0 -166
  1045. package/styles/vendor/semantic/tasks/config/user.js +0 -58
  1046. package/styles/vendor/semantic/tasks/docs/build.js +0 -189
  1047. package/styles/vendor/semantic/tasks/docs/metadata.js +0 -138
  1048. package/styles/vendor/semantic/tasks/docs/serve.js +0 -255
  1049. package/styles/vendor/semantic/tasks/install.js +0 -459
  1050. package/styles/vendor/semantic/tasks/rtl/build.js +0 -132
  1051. package/styles/vendor/semantic/tasks/rtl/watch.js +0 -221
  1052. package/styles/vendor/semantic/tasks/version.js +0 -11
  1053. package/styles/vendor/semantic/tasks/watch.js +0 -231
  1054. package/tests/i18n.test.js +0 -32
  1055. package/tests/store.test.js +0 -26
  1056. package/translations/en.json +0 -383
  1057. package/translations/zh.json +0 -383
  1058. package/utils/ApiCaller.js +0 -101
  1059. package/utils/Formatter.js +0 -77
  1060. package/utils/asyncInjectors.js +0 -78
  1061. package/utils/authWrapper.js +0 -38
  1062. package/utils/common.js +0 -23
  1063. package/utils/jed.js +0 -1497
  1064. package/utils/messageUtils.js +0 -11
  1065. package/utils/smsCharCount.js +0 -351
  1066. package/utils/smsCharCountV2.js +0 -143
  1067. package/utils/tests/asyncInjectors.test.js +0 -173
@@ -1,3741 +0,0 @@
1
- /*!
2
- * # Semantic UI - Dropdown
3
- * http://github.com/semantic-org/semantic-ui/
4
- *
5
- *
6
- * Released under the MIT license
7
- * http://opensource.org/licenses/MIT
8
- *
9
- */
10
-
11
- ;(function ($, window, document, undefined) {
12
-
13
- "use strict";
14
-
15
- window = (typeof window != 'undefined' && window.Math == Math)
16
- ? window
17
- : (typeof self != 'undefined' && self.Math == Math)
18
- ? self
19
- : Function('return this')()
20
- ;
21
-
22
- $.fn.dropdown = function(parameters) {
23
- var
24
- $allModules = $(this),
25
- $document = $(document),
26
-
27
- moduleSelector = $allModules.selector || '',
28
-
29
- hasTouch = ('ontouchstart' in document.documentElement),
30
- time = new Date().getTime(),
31
- performance = [],
32
-
33
- query = arguments[0],
34
- methodInvoked = (typeof query == 'string'),
35
- queryArguments = [].slice.call(arguments, 1),
36
- returnedValue
37
- ;
38
-
39
- $allModules
40
- .each(function(elementIndex) {
41
- var
42
- settings = ( $.isPlainObject(parameters) )
43
- ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
44
- : $.extend({}, $.fn.dropdown.settings),
45
-
46
- className = settings.className,
47
- message = settings.message,
48
- fields = settings.fields,
49
- keys = settings.keys,
50
- metadata = settings.metadata,
51
- namespace = settings.namespace,
52
- regExp = settings.regExp,
53
- selector = settings.selector,
54
- error = settings.error,
55
- templates = settings.templates,
56
-
57
- eventNamespace = '.' + namespace,
58
- moduleNamespace = 'module-' + namespace,
59
-
60
- $module = $(this),
61
- $context = $(settings.context),
62
- $text = $module.find(selector.text),
63
- $search = $module.find(selector.search),
64
- $sizer = $module.find(selector.sizer),
65
- $input = $module.find(selector.input),
66
- $icon = $module.find(selector.icon),
67
-
68
- $combo = ($module.prev().find(selector.text).length > 0)
69
- ? $module.prev().find(selector.text)
70
- : $module.prev(),
71
-
72
- $menu = $module.children(selector.menu),
73
- $item = $menu.find(selector.item),
74
-
75
- activated = false,
76
- itemActivated = false,
77
- internalChange = false,
78
- element = this,
79
- instance = $module.data(moduleNamespace),
80
-
81
- initialLoad,
82
- pageLostFocus,
83
- willRefocus,
84
- elementNamespace,
85
- id,
86
- selectObserver,
87
- menuObserver,
88
- module
89
- ;
90
-
91
- module = {
92
-
93
- initialize: function() {
94
- module.debug('Initializing dropdown', settings);
95
-
96
- if( module.is.alreadySetup() ) {
97
- module.setup.reference();
98
- }
99
- else {
100
- module.setup.layout();
101
- module.refreshData();
102
-
103
- module.save.defaults();
104
- module.restore.selected();
105
-
106
- module.create.id();
107
- module.bind.events();
108
-
109
- module.observeChanges();
110
- module.instantiate();
111
- }
112
-
113
- },
114
-
115
- instantiate: function() {
116
- module.verbose('Storing instance of dropdown', module);
117
- instance = module;
118
- $module
119
- .data(moduleNamespace, module)
120
- ;
121
- },
122
-
123
- destroy: function() {
124
- module.verbose('Destroying previous dropdown', $module);
125
- module.remove.tabbable();
126
- $module
127
- .off(eventNamespace)
128
- .removeData(moduleNamespace)
129
- ;
130
- $menu
131
- .off(eventNamespace)
132
- ;
133
- $document
134
- .off(elementNamespace)
135
- ;
136
- module.disconnect.menuObserver();
137
- module.disconnect.selectObserver();
138
- },
139
-
140
- observeChanges: function() {
141
- if('MutationObserver' in window) {
142
- selectObserver = new MutationObserver(module.event.select.mutation);
143
- menuObserver = new MutationObserver(module.event.menu.mutation);
144
- module.debug('Setting up mutation observer', selectObserver, menuObserver);
145
- module.observe.select();
146
- module.observe.menu();
147
- }
148
- },
149
-
150
- disconnect: {
151
- menuObserver: function() {
152
- if(menuObserver) {
153
- menuObserver.disconnect();
154
- }
155
- },
156
- selectObserver: function() {
157
- if(selectObserver) {
158
- selectObserver.disconnect();
159
- }
160
- }
161
- },
162
- observe: {
163
- select: function() {
164
- if(module.has.input()) {
165
- selectObserver.observe($input[0], {
166
- childList : true,
167
- subtree : true
168
- });
169
- }
170
- },
171
- menu: function() {
172
- if(module.has.menu()) {
173
- menuObserver.observe($menu[0], {
174
- childList : true,
175
- subtree : true
176
- });
177
- }
178
- }
179
- },
180
-
181
- create: {
182
- id: function() {
183
- id = (Math.random().toString(16) + '000000000').substr(2, 8);
184
- elementNamespace = '.' + id;
185
- module.verbose('Creating unique id for element', id);
186
- },
187
- userChoice: function(values) {
188
- var
189
- $userChoices,
190
- $userChoice,
191
- isUserValue,
192
- html
193
- ;
194
- values = values || module.get.userValues();
195
- if(!values) {
196
- return false;
197
- }
198
- values = $.isArray(values)
199
- ? values
200
- : [values]
201
- ;
202
- $.each(values, function(index, value) {
203
- if(module.get.item(value) === false) {
204
- html = settings.templates.addition( module.add.variables(message.addResult, value) );
205
- $userChoice = $('<div />')
206
- .html(html)
207
- .attr('data-' + metadata.value, value)
208
- .attr('data-' + metadata.text, value)
209
- .addClass(className.addition)
210
- .addClass(className.item)
211
- ;
212
- if(settings.hideAdditions) {
213
- $userChoice.addClass(className.hidden);
214
- }
215
- $userChoices = ($userChoices === undefined)
216
- ? $userChoice
217
- : $userChoices.add($userChoice)
218
- ;
219
- module.verbose('Creating user choices for value', value, $userChoice);
220
- }
221
- });
222
- return $userChoices;
223
- },
224
- userLabels: function(value) {
225
- var
226
- userValues = module.get.userValues()
227
- ;
228
- if(userValues) {
229
- module.debug('Adding user labels', userValues);
230
- $.each(userValues, function(index, value) {
231
- module.verbose('Adding custom user value');
232
- module.add.label(value, value);
233
- });
234
- }
235
- },
236
- menu: function() {
237
- $menu = $('<div />')
238
- .addClass(className.menu)
239
- .appendTo($module)
240
- ;
241
- },
242
- sizer: function() {
243
- $sizer = $('<span />')
244
- .addClass(className.sizer)
245
- .insertAfter($search)
246
- ;
247
- }
248
- },
249
-
250
- search: function(query) {
251
- query = (query !== undefined)
252
- ? query
253
- : module.get.query()
254
- ;
255
- module.verbose('Searching for query', query);
256
- if(module.has.minCharacters(query)) {
257
- module.filter(query);
258
- }
259
- else {
260
- module.hide();
261
- }
262
- },
263
-
264
- select: {
265
- firstUnfiltered: function() {
266
- module.verbose('Selecting first non-filtered element');
267
- module.remove.selectedItem();
268
- $item
269
- .not(selector.unselectable)
270
- .not(selector.addition + selector.hidden)
271
- .eq(0)
272
- .addClass(className.selected)
273
- ;
274
- },
275
- nextAvailable: function($selected) {
276
- $selected = $selected.eq(0);
277
- var
278
- $nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0),
279
- $prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0),
280
- hasNext = ($nextAvailable.length > 0)
281
- ;
282
- if(hasNext) {
283
- module.verbose('Moving selection to', $nextAvailable);
284
- $nextAvailable.addClass(className.selected);
285
- }
286
- else {
287
- module.verbose('Moving selection to', $prevAvailable);
288
- $prevAvailable.addClass(className.selected);
289
- }
290
- }
291
- },
292
-
293
- setup: {
294
- api: function() {
295
- var
296
- apiSettings = {
297
- debug : settings.debug,
298
- urlData : {
299
- value : module.get.value(),
300
- query : module.get.query()
301
- },
302
- on : false
303
- }
304
- ;
305
- module.verbose('First request, initializing API');
306
- $module
307
- .api(apiSettings)
308
- ;
309
- },
310
- layout: function() {
311
- if( $module.is('select') ) {
312
- module.setup.select();
313
- module.setup.returnedObject();
314
- }
315
- if( !module.has.menu() ) {
316
- module.create.menu();
317
- }
318
- if( module.is.search() && !module.has.search() ) {
319
- module.verbose('Adding search input');
320
- $search = $('<input />')
321
- .addClass(className.search)
322
- .prop('autocomplete', 'off')
323
- .insertBefore($text)
324
- ;
325
- }
326
- if( module.is.multiple() && module.is.searchSelection() && !module.has.sizer()) {
327
- module.create.sizer();
328
- }
329
- if(settings.allowTab) {
330
- module.set.tabbable();
331
- }
332
- },
333
- select: function() {
334
- var
335
- selectValues = module.get.selectValues()
336
- ;
337
- module.debug('Dropdown initialized on a select', selectValues);
338
- if( $module.is('select') ) {
339
- $input = $module;
340
- }
341
- // see if select is placed correctly already
342
- if($input.parent(selector.dropdown).length > 0) {
343
- module.debug('UI dropdown already exists. Creating dropdown menu only');
344
- $module = $input.closest(selector.dropdown);
345
- if( !module.has.menu() ) {
346
- module.create.menu();
347
- }
348
- $menu = $module.children(selector.menu);
349
- module.setup.menu(selectValues);
350
- }
351
- else {
352
- module.debug('Creating entire dropdown from select');
353
- $module = $('<div />')
354
- .attr('class', $input.attr('class') )
355
- .addClass(className.selection)
356
- .addClass(className.dropdown)
357
- .html( templates.dropdown(selectValues) )
358
- .insertBefore($input)
359
- ;
360
- if($input.hasClass(className.multiple) && $input.prop('multiple') === false) {
361
- module.error(error.missingMultiple);
362
- $input.prop('multiple', true);
363
- }
364
- if($input.is('[multiple]')) {
365
- module.set.multiple();
366
- }
367
- if ($input.prop('disabled')) {
368
- module.debug('Disabling dropdown');
369
- $module.addClass(className.disabled);
370
- }
371
- $input
372
- .removeAttr('class')
373
- .detach()
374
- .prependTo($module)
375
- ;
376
- }
377
- module.refresh();
378
- },
379
- menu: function(values) {
380
- $menu.html( templates.menu(values, fields));
381
- $item = $menu.find(selector.item);
382
- },
383
- reference: function() {
384
- module.debug('Dropdown behavior was called on select, replacing with closest dropdown');
385
- // replace module reference
386
- $module = $module.parent(selector.dropdown);
387
- module.refresh();
388
- module.setup.returnedObject();
389
- // invoke method in context of current instance
390
- if(methodInvoked) {
391
- instance = module;
392
- module.invoke(query);
393
- }
394
- },
395
- returnedObject: function() {
396
- var
397
- $firstModules = $allModules.slice(0, elementIndex),
398
- $lastModules = $allModules.slice(elementIndex + 1)
399
- ;
400
- // adjust all modules to use correct reference
401
- $allModules = $firstModules.add($module).add($lastModules);
402
- }
403
- },
404
-
405
- refresh: function() {
406
- module.refreshSelectors();
407
- module.refreshData();
408
- },
409
-
410
- refreshItems: function() {
411
- $item = $menu.find(selector.item);
412
- },
413
-
414
- refreshSelectors: function() {
415
- module.verbose('Refreshing selector cache');
416
- $text = $module.find(selector.text);
417
- $search = $module.find(selector.search);
418
- $input = $module.find(selector.input);
419
- $icon = $module.find(selector.icon);
420
- $combo = ($module.prev().find(selector.text).length > 0)
421
- ? $module.prev().find(selector.text)
422
- : $module.prev()
423
- ;
424
- $menu = $module.children(selector.menu);
425
- $item = $menu.find(selector.item);
426
- },
427
-
428
- refreshData: function() {
429
- module.verbose('Refreshing cached metadata');
430
- $item
431
- .removeData(metadata.text)
432
- .removeData(metadata.value)
433
- ;
434
- },
435
-
436
- clearData: function() {
437
- module.verbose('Clearing metadata');
438
- $item
439
- .removeData(metadata.text)
440
- .removeData(metadata.value)
441
- ;
442
- $module
443
- .removeData(metadata.defaultText)
444
- .removeData(metadata.defaultValue)
445
- .removeData(metadata.placeholderText)
446
- ;
447
- },
448
-
449
- toggle: function() {
450
- module.verbose('Toggling menu visibility');
451
- if( !module.is.active() ) {
452
- module.show();
453
- }
454
- else {
455
- module.hide();
456
- }
457
- },
458
-
459
- show: function(callback) {
460
- callback = $.isFunction(callback)
461
- ? callback
462
- : function(){}
463
- ;
464
- if( module.can.show() && !module.is.active() ) {
465
- module.debug('Showing dropdown');
466
- if(module.has.message() && !(module.has.maxSelections() || module.has.allResultsFiltered()) ) {
467
- module.remove.message();
468
- }
469
- if(module.is.allFiltered()) {
470
- return true;
471
- }
472
- if(settings.onShow.call(element) !== false) {
473
- module.animate.show(function() {
474
- if( module.can.click() ) {
475
- module.bind.intent();
476
- }
477
- if(module.has.menuSearch()) {
478
- module.focusSearch();
479
- }
480
- module.set.visible();
481
- callback.call(element);
482
- });
483
- }
484
- }
485
- },
486
-
487
- hide: function(callback) {
488
- callback = $.isFunction(callback)
489
- ? callback
490
- : function(){}
491
- ;
492
- if( module.is.active() ) {
493
- module.debug('Hiding dropdown');
494
- if(settings.onHide.call(element) !== false) {
495
- module.animate.hide(function() {
496
- module.remove.visible();
497
- callback.call(element);
498
- });
499
- }
500
- }
501
- },
502
-
503
- hideOthers: function() {
504
- module.verbose('Finding other dropdowns to hide');
505
- $allModules
506
- .not($module)
507
- .has(selector.menu + '.' + className.visible)
508
- .dropdown('hide')
509
- ;
510
- },
511
-
512
- hideMenu: function() {
513
- module.verbose('Hiding menu instantaneously');
514
- module.remove.active();
515
- module.remove.visible();
516
- $menu.transition('hide');
517
- },
518
-
519
- hideSubMenus: function() {
520
- var
521
- $subMenus = $menu.children(selector.item).find(selector.menu)
522
- ;
523
- module.verbose('Hiding sub menus', $subMenus);
524
- $subMenus.transition('hide');
525
- },
526
-
527
- bind: {
528
- events: function() {
529
- if(hasTouch) {
530
- module.bind.touchEvents();
531
- }
532
- module.bind.keyboardEvents();
533
- module.bind.inputEvents();
534
- module.bind.mouseEvents();
535
- },
536
- touchEvents: function() {
537
- module.debug('Touch device detected binding additional touch events');
538
- if( module.is.searchSelection() ) {
539
- // do nothing special yet
540
- }
541
- else if( module.is.single() ) {
542
- $module
543
- .on('touchstart' + eventNamespace, module.event.test.toggle)
544
- ;
545
- }
546
- $menu
547
- .on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)
548
- ;
549
- },
550
- keyboardEvents: function() {
551
- module.verbose('Binding keyboard events');
552
- $module
553
- .on('keydown' + eventNamespace, module.event.keydown)
554
- ;
555
- if( module.has.search() ) {
556
- $module
557
- .on(module.get.inputEvent() + eventNamespace, selector.search, module.event.input)
558
- ;
559
- }
560
- if( module.is.multiple() ) {
561
- $document
562
- .on('keydown' + elementNamespace, module.event.document.keydown)
563
- ;
564
- }
565
- },
566
- inputEvents: function() {
567
- module.verbose('Binding input change events');
568
- $module
569
- .on('change' + eventNamespace, selector.input, module.event.change)
570
- ;
571
- },
572
- mouseEvents: function() {
573
- module.verbose('Binding mouse events');
574
- if(module.is.multiple()) {
575
- $module
576
- .on('click' + eventNamespace, selector.label, module.event.label.click)
577
- .on('click' + eventNamespace, selector.remove, module.event.remove.click)
578
- ;
579
- }
580
- if( module.is.searchSelection() ) {
581
- $module
582
- .on('mousedown' + eventNamespace, module.event.mousedown)
583
- .on('mouseup' + eventNamespace, module.event.mouseup)
584
- .on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown)
585
- .on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup)
586
- .on('click' + eventNamespace, selector.icon, module.event.icon.click)
587
- .on('focus' + eventNamespace, selector.search, module.event.search.focus)
588
- .on('click' + eventNamespace, selector.search, module.event.search.focus)
589
- .on('blur' + eventNamespace, selector.search, module.event.search.blur)
590
- .on('click' + eventNamespace, selector.text, module.event.text.focus)
591
- ;
592
- if(module.is.multiple()) {
593
- $module
594
- .on('click' + eventNamespace, module.event.click)
595
- ;
596
- }
597
- }
598
- else {
599
- if(settings.on == 'click') {
600
- $module
601
- .on('click' + eventNamespace, selector.icon, module.event.icon.click)
602
- .on('click' + eventNamespace, module.event.test.toggle)
603
- ;
604
- }
605
- else if(settings.on == 'hover') {
606
- $module
607
- .on('mouseenter' + eventNamespace, module.delay.show)
608
- .on('mouseleave' + eventNamespace, module.delay.hide)
609
- ;
610
- }
611
- else {
612
- $module
613
- .on(settings.on + eventNamespace, module.toggle)
614
- ;
615
- }
616
- $module
617
- .on('mousedown' + eventNamespace, module.event.mousedown)
618
- .on('mouseup' + eventNamespace, module.event.mouseup)
619
- .on('focus' + eventNamespace, module.event.focus)
620
- .on('blur' + eventNamespace, module.event.blur)
621
- ;
622
- }
623
- $menu
624
- .on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)
625
- .on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)
626
- .on('click' + eventNamespace, selector.item, module.event.item.click)
627
- ;
628
- },
629
- intent: function() {
630
- module.verbose('Binding hide intent event to document');
631
- if(hasTouch) {
632
- $document
633
- .on('touchstart' + elementNamespace, module.event.test.touch)
634
- .on('touchmove' + elementNamespace, module.event.test.touch)
635
- ;
636
- }
637
- $document
638
- .on('click' + elementNamespace, module.event.test.hide)
639
- ;
640
- }
641
- },
642
-
643
- unbind: {
644
- intent: function() {
645
- module.verbose('Removing hide intent event from document');
646
- if(hasTouch) {
647
- $document
648
- .off('touchstart' + elementNamespace)
649
- .off('touchmove' + elementNamespace)
650
- ;
651
- }
652
- $document
653
- .off('click' + elementNamespace)
654
- ;
655
- }
656
- },
657
-
658
- filter: function(query) {
659
- var
660
- searchTerm = (query !== undefined)
661
- ? query
662
- : module.get.query(),
663
- afterFiltered = function() {
664
- if(module.is.multiple()) {
665
- module.filterActive();
666
- }
667
- module.select.firstUnfiltered();
668
- if( module.has.allResultsFiltered() ) {
669
- if( settings.onNoResults.call(element, searchTerm) ) {
670
- if(settings.allowAdditions) {
671
- if(settings.hideAdditions) {
672
- module.verbose('User addition with no menu, setting empty style');
673
- module.set.empty();
674
- module.hideMenu();
675
- }
676
- }
677
- else {
678
- module.verbose('All items filtered, showing message', searchTerm);
679
- module.add.message(message.noResults);
680
- }
681
- }
682
- else {
683
- module.verbose('All items filtered, hiding dropdown', searchTerm);
684
- module.hideMenu();
685
- }
686
- }
687
- else {
688
- module.remove.empty();
689
- module.remove.message();
690
- }
691
- if(settings.allowAdditions) {
692
- module.add.userSuggestion(query);
693
- }
694
- if(module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() ) {
695
- module.show();
696
- }
697
- }
698
- ;
699
- if(settings.useLabels && module.has.maxSelections()) {
700
- return;
701
- }
702
- if(settings.apiSettings) {
703
- if( module.can.useAPI() ) {
704
- module.queryRemote(searchTerm, function() {
705
- afterFiltered();
706
- });
707
- }
708
- else {
709
- module.error(error.noAPI);
710
- }
711
- }
712
- else {
713
- module.filterItems(searchTerm);
714
- afterFiltered();
715
- }
716
- },
717
-
718
- queryRemote: function(query, callback) {
719
- var
720
- apiSettings = {
721
- errorDuration : false,
722
- cache : 'local',
723
- throttle : settings.throttle,
724
- urlData : {
725
- query: query
726
- },
727
- onError: function() {
728
- module.add.message(message.serverError);
729
- callback();
730
- },
731
- onFailure: function() {
732
- module.add.message(message.serverError);
733
- callback();
734
- },
735
- onSuccess : function(response) {
736
- module.remove.message();
737
- module.setup.menu({
738
- values: response[fields.remoteValues]
739
- });
740
- callback();
741
- }
742
- }
743
- ;
744
- if( !$module.api('get request') ) {
745
- module.setup.api();
746
- }
747
- apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings);
748
- $module
749
- .api('setting', apiSettings)
750
- .api('query')
751
- ;
752
- },
753
-
754
- filterItems: function(query) {
755
- var
756
- searchTerm = (query !== undefined)
757
- ? query
758
- : module.get.query(),
759
- results = null,
760
- escapedTerm = module.escape.regExp(searchTerm),
761
- beginsWithRegExp = new RegExp('^' + escapedTerm, 'igm')
762
- ;
763
- // avoid loop if we're matching nothing
764
- if( module.has.query() ) {
765
- results = [];
766
-
767
- module.verbose('Searching for matching values', searchTerm);
768
- $item
769
- .each(function(){
770
- var
771
- $choice = $(this),
772
- text,
773
- value
774
- ;
775
- if(settings.match == 'both' || settings.match == 'text') {
776
- text = String(module.get.choiceText($choice, false));
777
- if(text.search(beginsWithRegExp) !== -1) {
778
- results.push(this);
779
- return true;
780
- }
781
- else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, text)) {
782
- results.push(this);
783
- return true;
784
- }
785
- else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, text)) {
786
- results.push(this);
787
- return true;
788
- }
789
- }
790
- if(settings.match == 'both' || settings.match == 'value') {
791
- value = String(module.get.choiceValue($choice, text));
792
-
793
- if(value.search(beginsWithRegExp) !== -1) {
794
- results.push(this);
795
- return true;
796
- }
797
- else if(settings.fullTextSearch && module.fuzzySearch(searchTerm, value)) {
798
- results.push(this);
799
- return true;
800
- }
801
- }
802
- })
803
- ;
804
- }
805
- module.debug('Showing only matched items', searchTerm);
806
- module.remove.filteredItem();
807
- if(results) {
808
- $item
809
- .not(results)
810
- .addClass(className.filtered)
811
- ;
812
- }
813
- },
814
-
815
- fuzzySearch: function(query, term) {
816
- var
817
- termLength = term.length,
818
- queryLength = query.length
819
- ;
820
- query = query.toLowerCase();
821
- term = term.toLowerCase();
822
- if(queryLength > termLength) {
823
- return false;
824
- }
825
- if(queryLength === termLength) {
826
- return (query === term);
827
- }
828
- search: for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {
829
- var
830
- queryCharacter = query.charCodeAt(characterIndex)
831
- ;
832
- while(nextCharacterIndex < termLength) {
833
- if(term.charCodeAt(nextCharacterIndex++) === queryCharacter) {
834
- continue search;
835
- }
836
- }
837
- return false;
838
- }
839
- return true;
840
- },
841
- exactSearch: function (query, term) {
842
- query = query.toLowerCase();
843
- term = term.toLowerCase();
844
- if(term.indexOf(query) > -1) {
845
- return true;
846
- }
847
- return false;
848
- },
849
- filterActive: function() {
850
- if(settings.useLabels) {
851
- $item.filter('.' + className.active)
852
- .addClass(className.filtered)
853
- ;
854
- }
855
- },
856
-
857
- focusSearch: function(skipHandler) {
858
- if( module.has.search() && !module.is.focusedOnSearch() ) {
859
- if(skipHandler) {
860
- $module.off('focus' + eventNamespace, selector.search);
861
- $search.focus();
862
- $module.on('focus' + eventNamespace, selector.search, module.event.search.focus);
863
- }
864
- else {
865
- $search.focus();
866
- }
867
- }
868
- },
869
-
870
- forceSelection: function() {
871
- var
872
- $currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0),
873
- $activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0),
874
- $selectedItem = ($currentlySelected.length > 0)
875
- ? $currentlySelected
876
- : $activeItem,
877
- hasSelected = ($selectedItem.length > 0)
878
- ;
879
- if(hasSelected) {
880
- module.debug('Forcing partial selection to selected item', $selectedItem);
881
- module.event.item.click.call($selectedItem, {}, true);
882
- return;
883
- }
884
- else {
885
- if(settings.allowAdditions) {
886
- module.set.selected(module.get.query());
887
- module.remove.searchTerm();
888
- }
889
- else {
890
- module.remove.searchTerm();
891
- }
892
- }
893
- },
894
-
895
- event: {
896
- change: function() {
897
- if(!internalChange) {
898
- module.debug('Input changed, updating selection');
899
- module.set.selected();
900
- }
901
- },
902
- focus: function() {
903
- if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) {
904
- module.show();
905
- }
906
- },
907
- blur: function(event) {
908
- pageLostFocus = (document.activeElement === this);
909
- if(!activated && !pageLostFocus) {
910
- module.remove.activeLabel();
911
- module.hide();
912
- }
913
- },
914
- mousedown: function() {
915
- if(module.is.searchSelection()) {
916
- // prevent menu hiding on immediate re-focus
917
- willRefocus = true;
918
- }
919
- else {
920
- // prevents focus callback from occurring on mousedown
921
- activated = true;
922
- }
923
- },
924
- mouseup: function() {
925
- if(module.is.searchSelection()) {
926
- // prevent menu hiding on immediate re-focus
927
- willRefocus = false;
928
- }
929
- else {
930
- activated = false;
931
- }
932
- },
933
- click: function(event) {
934
- var
935
- $target = $(event.target)
936
- ;
937
- // focus search
938
- if($target.is($module)) {
939
- if(!module.is.focusedOnSearch()) {
940
- module.focusSearch();
941
- }
942
- else {
943
- module.show();
944
- }
945
- }
946
- },
947
- search: {
948
- focus: function() {
949
- activated = true;
950
- if(module.is.multiple()) {
951
- module.remove.activeLabel();
952
- }
953
- if(settings.showOnFocus) {
954
- module.search();
955
- }
956
- },
957
- blur: function(event) {
958
- pageLostFocus = (document.activeElement === this);
959
- if(!willRefocus) {
960
- if(!itemActivated && !pageLostFocus) {
961
- if(settings.forceSelection) {
962
- module.forceSelection();
963
- }
964
- module.hide();
965
- }
966
- }
967
- willRefocus = false;
968
- }
969
- },
970
- icon: {
971
- click: function(event) {
972
- module.toggle();
973
- }
974
- },
975
- text: {
976
- focus: function(event) {
977
- activated = true;
978
- module.focusSearch();
979
- }
980
- },
981
- input: function(event) {
982
- if(module.is.multiple() || module.is.searchSelection()) {
983
- module.set.filtered();
984
- }
985
- clearTimeout(module.timer);
986
- module.timer = setTimeout(module.search, settings.delay.search);
987
- },
988
- label: {
989
- click: function(event) {
990
- var
991
- $label = $(this),
992
- $labels = $module.find(selector.label),
993
- $activeLabels = $labels.filter('.' + className.active),
994
- $nextActive = $label.nextAll('.' + className.active),
995
- $prevActive = $label.prevAll('.' + className.active),
996
- $range = ($nextActive.length > 0)
997
- ? $label.nextUntil($nextActive).add($activeLabels).add($label)
998
- : $label.prevUntil($prevActive).add($activeLabels).add($label)
999
- ;
1000
- if(event.shiftKey) {
1001
- $activeLabels.removeClass(className.active);
1002
- $range.addClass(className.active);
1003
- }
1004
- else if(event.ctrlKey) {
1005
- $label.toggleClass(className.active);
1006
- }
1007
- else {
1008
- $activeLabels.removeClass(className.active);
1009
- $label.addClass(className.active);
1010
- }
1011
- settings.onLabelSelect.apply(this, $labels.filter('.' + className.active));
1012
- }
1013
- },
1014
- remove: {
1015
- click: function() {
1016
- var
1017
- $label = $(this).parent()
1018
- ;
1019
- if( $label.hasClass(className.active) ) {
1020
- // remove all selected labels
1021
- module.remove.activeLabels();
1022
- }
1023
- else {
1024
- // remove this label only
1025
- module.remove.activeLabels( $label );
1026
- }
1027
- }
1028
- },
1029
- test: {
1030
- toggle: function(event) {
1031
- var
1032
- toggleBehavior = (module.is.multiple())
1033
- ? module.show
1034
- : module.toggle
1035
- ;
1036
- if(module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) {
1037
- return;
1038
- }
1039
- if( module.determine.eventOnElement(event, toggleBehavior) ) {
1040
- event.preventDefault();
1041
- }
1042
- },
1043
- touch: function(event) {
1044
- module.determine.eventOnElement(event, function() {
1045
- if(event.type == 'touchstart') {
1046
- module.timer = setTimeout(function() {
1047
- module.hide();
1048
- }, settings.delay.touch);
1049
- }
1050
- else if(event.type == 'touchmove') {
1051
- clearTimeout(module.timer);
1052
- }
1053
- });
1054
- event.stopPropagation();
1055
- },
1056
- hide: function(event) {
1057
- module.determine.eventInModule(event, module.hide);
1058
- }
1059
- },
1060
- select: {
1061
- mutation: function(mutations) {
1062
- module.debug('<select> modified, recreating menu');
1063
- module.setup.select();
1064
- }
1065
- },
1066
- menu: {
1067
- mutation: function(mutations) {
1068
- var
1069
- mutation = mutations[0],
1070
- $addedNode = mutation.addedNodes
1071
- ? $(mutation.addedNodes[0])
1072
- : $(false),
1073
- $removedNode = mutation.removedNodes
1074
- ? $(mutation.removedNodes[0])
1075
- : $(false),
1076
- $changedNodes = $addedNode.add($removedNode),
1077
- isUserAddition = $changedNodes.is(selector.addition) || $changedNodes.closest(selector.addition).length > 0,
1078
- isMessage = $changedNodes.is(selector.message) || $changedNodes.closest(selector.message).length > 0
1079
- ;
1080
- if(isUserAddition || isMessage) {
1081
- module.debug('Updating item selector cache');
1082
- module.refreshItems();
1083
- }
1084
- else {
1085
- module.debug('Menu modified, updating selector cache');
1086
- module.refresh();
1087
- }
1088
- },
1089
- mousedown: function() {
1090
- itemActivated = true;
1091
- },
1092
- mouseup: function() {
1093
- itemActivated = false;
1094
- }
1095
- },
1096
- item: {
1097
- mouseenter: function(event) {
1098
- var
1099
- $target = $(event.target),
1100
- $item = $(this),
1101
- $subMenu = $item.children(selector.menu),
1102
- $otherMenus = $item.siblings(selector.item).children(selector.menu),
1103
- hasSubMenu = ($subMenu.length > 0),
1104
- isBubbledEvent = ($subMenu.find($target).length > 0)
1105
- ;
1106
- if( !isBubbledEvent && hasSubMenu ) {
1107
- clearTimeout(module.itemTimer);
1108
- module.itemTimer = setTimeout(function() {
1109
- module.verbose('Showing sub-menu', $subMenu);
1110
- $.each($otherMenus, function() {
1111
- module.animate.hide(false, $(this));
1112
- });
1113
- module.animate.show(false, $subMenu);
1114
- }, settings.delay.show);
1115
- event.preventDefault();
1116
- }
1117
- },
1118
- mouseleave: function(event) {
1119
- var
1120
- $subMenu = $(this).children(selector.menu)
1121
- ;
1122
- if($subMenu.length > 0) {
1123
- clearTimeout(module.itemTimer);
1124
- module.itemTimer = setTimeout(function() {
1125
- module.verbose('Hiding sub-menu', $subMenu);
1126
- module.animate.hide(false, $subMenu);
1127
- }, settings.delay.hide);
1128
- }
1129
- },
1130
- click: function (event, skipRefocus) {
1131
- var
1132
- $choice = $(this),
1133
- $target = (event)
1134
- ? $(event.target)
1135
- : $(''),
1136
- $subMenu = $choice.find(selector.menu),
1137
- text = module.get.choiceText($choice),
1138
- value = module.get.choiceValue($choice, text),
1139
- hasSubMenu = ($subMenu.length > 0),
1140
- isBubbledEvent = ($subMenu.find($target).length > 0)
1141
- ;
1142
- if(!isBubbledEvent && (!hasSubMenu || settings.allowCategorySelection)) {
1143
- if(module.is.searchSelection()) {
1144
- if(settings.allowAdditions) {
1145
- module.remove.userAddition();
1146
- }
1147
- module.remove.searchTerm();
1148
- if(!module.is.focusedOnSearch() && !(skipRefocus == true)) {
1149
- module.focusSearch(true);
1150
- }
1151
- }
1152
- if(!settings.useLabels) {
1153
- module.remove.filteredItem();
1154
- module.set.scrollPosition($choice);
1155
- }
1156
- module.determine.selectAction.call(this, text, value);
1157
- }
1158
- }
1159
- },
1160
-
1161
- document: {
1162
- // label selection should occur even when element has no focus
1163
- keydown: function(event) {
1164
- var
1165
- pressedKey = event.which,
1166
- isShortcutKey = module.is.inObject(pressedKey, keys)
1167
- ;
1168
- if(isShortcutKey) {
1169
- var
1170
- $label = $module.find(selector.label),
1171
- $activeLabel = $label.filter('.' + className.active),
1172
- activeValue = $activeLabel.data(metadata.value),
1173
- labelIndex = $label.index($activeLabel),
1174
- labelCount = $label.length,
1175
- hasActiveLabel = ($activeLabel.length > 0),
1176
- hasMultipleActive = ($activeLabel.length > 1),
1177
- isFirstLabel = (labelIndex === 0),
1178
- isLastLabel = (labelIndex + 1 == labelCount),
1179
- isSearch = module.is.searchSelection(),
1180
- isFocusedOnSearch = module.is.focusedOnSearch(),
1181
- isFocused = module.is.focused(),
1182
- caretAtStart = (isFocusedOnSearch && module.get.caretPosition() === 0),
1183
- $nextLabel
1184
- ;
1185
- if(isSearch && !hasActiveLabel && !isFocusedOnSearch) {
1186
- return;
1187
- }
1188
-
1189
- if(pressedKey == keys.leftArrow) {
1190
- // activate previous label
1191
- if((isFocused || caretAtStart) && !hasActiveLabel) {
1192
- module.verbose('Selecting previous label');
1193
- $label.last().addClass(className.active);
1194
- }
1195
- else if(hasActiveLabel) {
1196
- if(!event.shiftKey) {
1197
- module.verbose('Selecting previous label');
1198
- $label.removeClass(className.active);
1199
- }
1200
- else {
1201
- module.verbose('Adding previous label to selection');
1202
- }
1203
- if(isFirstLabel && !hasMultipleActive) {
1204
- $activeLabel.addClass(className.active);
1205
- }
1206
- else {
1207
- $activeLabel.prev(selector.siblingLabel)
1208
- .addClass(className.active)
1209
- .end()
1210
- ;
1211
- }
1212
- event.preventDefault();
1213
- }
1214
- }
1215
- else if(pressedKey == keys.rightArrow) {
1216
- // activate first label
1217
- if(isFocused && !hasActiveLabel) {
1218
- $label.first().addClass(className.active);
1219
- }
1220
- // activate next label
1221
- if(hasActiveLabel) {
1222
- if(!event.shiftKey) {
1223
- module.verbose('Selecting next label');
1224
- $label.removeClass(className.active);
1225
- }
1226
- else {
1227
- module.verbose('Adding next label to selection');
1228
- }
1229
- if(isLastLabel) {
1230
- if(isSearch) {
1231
- if(!isFocusedOnSearch) {
1232
- module.focusSearch();
1233
- }
1234
- else {
1235
- $label.removeClass(className.active);
1236
- }
1237
- }
1238
- else if(hasMultipleActive) {
1239
- $activeLabel.next(selector.siblingLabel).addClass(className.active);
1240
- }
1241
- else {
1242
- $activeLabel.addClass(className.active);
1243
- }
1244
- }
1245
- else {
1246
- $activeLabel.next(selector.siblingLabel).addClass(className.active);
1247
- }
1248
- event.preventDefault();
1249
- }
1250
- }
1251
- else if(pressedKey == keys.deleteKey || pressedKey == keys.backspace) {
1252
- if(hasActiveLabel) {
1253
- module.verbose('Removing active labels');
1254
- if(isLastLabel) {
1255
- if(isSearch && !isFocusedOnSearch) {
1256
- module.focusSearch();
1257
- }
1258
- }
1259
- $activeLabel.last().next(selector.siblingLabel).addClass(className.active);
1260
- module.remove.activeLabels($activeLabel);
1261
- event.preventDefault();
1262
- }
1263
- else if(caretAtStart && !hasActiveLabel && pressedKey == keys.backspace) {
1264
- module.verbose('Removing last label on input backspace');
1265
- $activeLabel = $label.last().addClass(className.active);
1266
- module.remove.activeLabels($activeLabel);
1267
- }
1268
- }
1269
- else {
1270
- $activeLabel.removeClass(className.active);
1271
- }
1272
- }
1273
- }
1274
- },
1275
-
1276
- keydown: function(event) {
1277
- var
1278
- pressedKey = event.which,
1279
- isShortcutKey = module.is.inObject(pressedKey, keys)
1280
- ;
1281
- if(isShortcutKey) {
1282
- var
1283
- $currentlySelected = $item.not(selector.unselectable).filter('.' + className.selected).eq(0),
1284
- $activeItem = $menu.children('.' + className.active).eq(0),
1285
- $selectedItem = ($currentlySelected.length > 0)
1286
- ? $currentlySelected
1287
- : $activeItem,
1288
- $visibleItems = ($selectedItem.length > 0)
1289
- ? $selectedItem.siblings(':not(.' + className.filtered +')').addBack()
1290
- : $menu.children(':not(.' + className.filtered +')'),
1291
- $subMenu = $selectedItem.children(selector.menu),
1292
- $parentMenu = $selectedItem.closest(selector.menu),
1293
- inVisibleMenu = ($parentMenu.hasClass(className.visible) || $parentMenu.hasClass(className.animating) || $parentMenu.parent(selector.menu).length > 0),
1294
- hasSubMenu = ($subMenu.length> 0),
1295
- hasSelectedItem = ($selectedItem.length > 0),
1296
- selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),
1297
- delimiterPressed = (pressedKey == keys.delimiter && settings.allowAdditions && module.is.multiple()),
1298
- isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),
1299
- $nextItem,
1300
- isSubMenuItem,
1301
- newIndex
1302
- ;
1303
- // allow selection with menu closed
1304
- if(isAdditionWithoutMenu) {
1305
- module.verbose('Selecting item from keyboard shortcut', $selectedItem);
1306
- module.event.item.click.call($selectedItem, event);
1307
- if(module.is.searchSelection()) {
1308
- module.remove.searchTerm();
1309
- }
1310
- }
1311
-
1312
- // visible menu keyboard shortcuts
1313
- if( module.is.visible() ) {
1314
-
1315
- // enter (select or open sub-menu)
1316
- if(pressedKey == keys.enter || delimiterPressed) {
1317
- if(pressedKey == keys.enter && hasSelectedItem && hasSubMenu && !settings.allowCategorySelection) {
1318
- module.verbose('Pressed enter on unselectable category, opening sub menu');
1319
- pressedKey = keys.rightArrow;
1320
- }
1321
- else if(selectedIsSelectable) {
1322
- module.verbose('Selecting item from keyboard shortcut', $selectedItem);
1323
- module.event.item.click.call($selectedItem, event);
1324
- if(module.is.searchSelection()) {
1325
- module.remove.searchTerm();
1326
- }
1327
- }
1328
- event.preventDefault();
1329
- }
1330
-
1331
- // sub-menu actions
1332
- if(hasSelectedItem) {
1333
-
1334
- if(pressedKey == keys.leftArrow) {
1335
-
1336
- isSubMenuItem = ($parentMenu[0] !== $menu[0]);
1337
-
1338
- if(isSubMenuItem) {
1339
- module.verbose('Left key pressed, closing sub-menu');
1340
- module.animate.hide(false, $parentMenu);
1341
- $selectedItem
1342
- .removeClass(className.selected)
1343
- ;
1344
- $parentMenu
1345
- .closest(selector.item)
1346
- .addClass(className.selected)
1347
- ;
1348
- event.preventDefault();
1349
- }
1350
- }
1351
-
1352
- // right arrow (show sub-menu)
1353
- if(pressedKey == keys.rightArrow) {
1354
- if(hasSubMenu) {
1355
- module.verbose('Right key pressed, opening sub-menu');
1356
- module.animate.show(false, $subMenu);
1357
- $selectedItem
1358
- .removeClass(className.selected)
1359
- ;
1360
- $subMenu
1361
- .find(selector.item).eq(0)
1362
- .addClass(className.selected)
1363
- ;
1364
- event.preventDefault();
1365
- }
1366
- }
1367
- }
1368
-
1369
- // up arrow (traverse menu up)
1370
- if(pressedKey == keys.upArrow) {
1371
- $nextItem = (hasSelectedItem && inVisibleMenu)
1372
- ? $selectedItem.prevAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)
1373
- : $item.eq(0)
1374
- ;
1375
- if($visibleItems.index( $nextItem ) < 0) {
1376
- module.verbose('Up key pressed but reached top of current menu');
1377
- event.preventDefault();
1378
- return;
1379
- }
1380
- else {
1381
- module.verbose('Up key pressed, changing active item');
1382
- $selectedItem
1383
- .removeClass(className.selected)
1384
- ;
1385
- $nextItem
1386
- .addClass(className.selected)
1387
- ;
1388
- module.set.scrollPosition($nextItem);
1389
- if(settings.selectOnKeydown && module.is.single()) {
1390
- module.set.selectedItem($nextItem);
1391
- }
1392
- }
1393
- event.preventDefault();
1394
- }
1395
-
1396
- // down arrow (traverse menu down)
1397
- if(pressedKey == keys.downArrow) {
1398
- $nextItem = (hasSelectedItem && inVisibleMenu)
1399
- ? $nextItem = $selectedItem.nextAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)
1400
- : $item.eq(0)
1401
- ;
1402
- if($nextItem.length === 0) {
1403
- module.verbose('Down key pressed but reached bottom of current menu');
1404
- event.preventDefault();
1405
- return;
1406
- }
1407
- else {
1408
- module.verbose('Down key pressed, changing active item');
1409
- $item
1410
- .removeClass(className.selected)
1411
- ;
1412
- $nextItem
1413
- .addClass(className.selected)
1414
- ;
1415
- module.set.scrollPosition($nextItem);
1416
- if(settings.selectOnKeydown && module.is.single()) {
1417
- module.set.selectedItem($nextItem);
1418
- }
1419
- }
1420
- event.preventDefault();
1421
- }
1422
-
1423
- // page down (show next page)
1424
- if(pressedKey == keys.pageUp) {
1425
- module.scrollPage('up');
1426
- event.preventDefault();
1427
- }
1428
- if(pressedKey == keys.pageDown) {
1429
- module.scrollPage('down');
1430
- event.preventDefault();
1431
- }
1432
-
1433
- // escape (close menu)
1434
- if(pressedKey == keys.escape) {
1435
- module.verbose('Escape key pressed, closing dropdown');
1436
- module.hide();
1437
- }
1438
-
1439
- }
1440
- else {
1441
- // delimiter key
1442
- if(delimiterPressed) {
1443
- event.preventDefault();
1444
- }
1445
- // down arrow (open menu)
1446
- if(pressedKey == keys.downArrow && !module.is.visible()) {
1447
- module.verbose('Down key pressed, showing dropdown');
1448
- module.select.firstUnfiltered();
1449
- module.show();
1450
- event.preventDefault();
1451
- }
1452
- }
1453
- }
1454
- else {
1455
- if( !module.has.search() ) {
1456
- module.set.selectedLetter( String.fromCharCode(pressedKey) );
1457
- }
1458
- }
1459
- }
1460
- },
1461
-
1462
- trigger: {
1463
- change: function() {
1464
- var
1465
- events = document.createEvent('HTMLEvents'),
1466
- inputElement = $input[0]
1467
- ;
1468
- if(inputElement) {
1469
- module.verbose('Triggering native change event');
1470
- events.initEvent('change', true, false);
1471
- inputElement.dispatchEvent(events);
1472
- }
1473
- }
1474
- },
1475
-
1476
- determine: {
1477
- selectAction: function(text, value) {
1478
- module.verbose('Determining action', settings.action);
1479
- if( $.isFunction( module.action[settings.action] ) ) {
1480
- module.verbose('Triggering preset action', settings.action, text, value);
1481
- module.action[ settings.action ].call(element, text, value, this);
1482
- }
1483
- else if( $.isFunction(settings.action) ) {
1484
- module.verbose('Triggering user action', settings.action, text, value);
1485
- settings.action.call(element, text, value, this);
1486
- }
1487
- else {
1488
- module.error(error.action, settings.action);
1489
- }
1490
- },
1491
- eventInModule: function(event, callback) {
1492
- var
1493
- $target = $(event.target),
1494
- inDocument = ($target.closest(document.documentElement).length > 0),
1495
- inModule = ($target.closest($module).length > 0)
1496
- ;
1497
- callback = $.isFunction(callback)
1498
- ? callback
1499
- : function(){}
1500
- ;
1501
- if(inDocument && !inModule) {
1502
- module.verbose('Triggering event', callback);
1503
- callback();
1504
- return true;
1505
- }
1506
- else {
1507
- module.verbose('Event occurred in dropdown, canceling callback');
1508
- return false;
1509
- }
1510
- },
1511
- eventOnElement: function(event, callback) {
1512
- var
1513
- $target = $(event.target),
1514
- $label = $target.closest(selector.siblingLabel),
1515
- inVisibleDOM = document.body.contains(event.target),
1516
- notOnLabel = ($module.find($label).length === 0),
1517
- notInMenu = ($target.closest($menu).length === 0)
1518
- ;
1519
- callback = $.isFunction(callback)
1520
- ? callback
1521
- : function(){}
1522
- ;
1523
- if(inVisibleDOM && notOnLabel && notInMenu) {
1524
- module.verbose('Triggering event', callback);
1525
- callback();
1526
- return true;
1527
- }
1528
- else {
1529
- module.verbose('Event occurred in dropdown menu, canceling callback');
1530
- return false;
1531
- }
1532
- }
1533
- },
1534
-
1535
- action: {
1536
-
1537
- nothing: function() {},
1538
-
1539
- activate: function(text, value, element) {
1540
- value = (value !== undefined)
1541
- ? value
1542
- : text
1543
- ;
1544
- if( module.can.activate( $(element) ) ) {
1545
- module.set.selected(value, $(element));
1546
- if(module.is.multiple() && !module.is.allFiltered()) {
1547
- return;
1548
- }
1549
- else {
1550
- module.hideAndClear();
1551
- }
1552
- }
1553
- },
1554
-
1555
- select: function(text, value, element) {
1556
- value = (value !== undefined)
1557
- ? value
1558
- : text
1559
- ;
1560
- if( module.can.activate( $(element) ) ) {
1561
- module.set.value(value, $(element));
1562
- if(module.is.multiple() && !module.is.allFiltered()) {
1563
- return;
1564
- }
1565
- else {
1566
- module.hideAndClear();
1567
- }
1568
- }
1569
- },
1570
-
1571
- combo: function(text, value, element) {
1572
- value = (value !== undefined)
1573
- ? value
1574
- : text
1575
- ;
1576
- module.set.selected(value, $(element));
1577
- module.hideAndClear();
1578
- },
1579
-
1580
- hide: function(text, value, element) {
1581
- module.set.value(value, text);
1582
- module.hideAndClear();
1583
- }
1584
-
1585
- },
1586
-
1587
- get: {
1588
- id: function() {
1589
- return id;
1590
- },
1591
- defaultText: function() {
1592
- return $module.data(metadata.defaultText);
1593
- },
1594
- defaultValue: function() {
1595
- return $module.data(metadata.defaultValue);
1596
- },
1597
- placeholderText: function() {
1598
- return $module.data(metadata.placeholderText) || '';
1599
- },
1600
- text: function() {
1601
- return $text.text();
1602
- },
1603
- query: function() {
1604
- return $.trim($search.val());
1605
- },
1606
- searchWidth: function(value) {
1607
- value = (value !== undefined)
1608
- ? value
1609
- : $search.val()
1610
- ;
1611
- $sizer.text(value);
1612
- // prevent rounding issues
1613
- return Math.ceil( $sizer.width() + 1);
1614
- },
1615
- selectionCount: function() {
1616
- var
1617
- values = module.get.values(),
1618
- count
1619
- ;
1620
- count = ( module.is.multiple() )
1621
- ? $.isArray(values)
1622
- ? values.length
1623
- : 0
1624
- : (module.get.value() !== '')
1625
- ? 1
1626
- : 0
1627
- ;
1628
- return count;
1629
- },
1630
- transition: function($subMenu) {
1631
- return (settings.transition == 'auto')
1632
- ? module.is.upward($subMenu)
1633
- ? 'slide up'
1634
- : 'slide down'
1635
- : settings.transition
1636
- ;
1637
- },
1638
- userValues: function() {
1639
- var
1640
- values = module.get.values()
1641
- ;
1642
- if(!values) {
1643
- return false;
1644
- }
1645
- values = $.isArray(values)
1646
- ? values
1647
- : [values]
1648
- ;
1649
- return $.grep(values, function(value) {
1650
- return (module.get.item(value) === false);
1651
- });
1652
- },
1653
- uniqueArray: function(array) {
1654
- return $.grep(array, function (value, index) {
1655
- return $.inArray(value, array) === index;
1656
- });
1657
- },
1658
- caretPosition: function() {
1659
- var
1660
- input = $search.get(0),
1661
- range,
1662
- rangeLength
1663
- ;
1664
- if('selectionStart' in input) {
1665
- return input.selectionStart;
1666
- }
1667
- else if (document.selection) {
1668
- input.focus();
1669
- range = document.selection.createRange();
1670
- rangeLength = range.text.length;
1671
- range.moveStart('character', -input.value.length);
1672
- return range.text.length - rangeLength;
1673
- }
1674
- },
1675
- value: function() {
1676
- var
1677
- value = ($input.length > 0)
1678
- ? $input.val()
1679
- : $module.data(metadata.value),
1680
- isEmptyMultiselect = ($.isArray(value) && value.length === 1 && value[0] === '')
1681
- ;
1682
- // prevents placeholder element from being selected when multiple
1683
- return (value === undefined || isEmptyMultiselect)
1684
- ? ''
1685
- : value
1686
- ;
1687
- },
1688
- values: function() {
1689
- var
1690
- value = module.get.value()
1691
- ;
1692
- if(value === '') {
1693
- return '';
1694
- }
1695
- return ( !module.has.selectInput() && module.is.multiple() )
1696
- ? (typeof value == 'string') // delimited string
1697
- ? value.split(settings.delimiter)
1698
- : ''
1699
- : value
1700
- ;
1701
- },
1702
- remoteValues: function() {
1703
- var
1704
- values = module.get.values(),
1705
- remoteValues = false
1706
- ;
1707
- if(values) {
1708
- if(typeof values == 'string') {
1709
- values = [values];
1710
- }
1711
- $.each(values, function(index, value) {
1712
- var
1713
- name = module.read.remoteData(value)
1714
- ;
1715
- module.verbose('Restoring value from session data', name, value);
1716
- if(name) {
1717
- if(!remoteValues) {
1718
- remoteValues = {};
1719
- }
1720
- remoteValues[value] = name;
1721
- }
1722
- });
1723
- }
1724
- return remoteValues;
1725
- },
1726
- choiceText: function($choice, preserveHTML) {
1727
- preserveHTML = (preserveHTML !== undefined)
1728
- ? preserveHTML
1729
- : settings.preserveHTML
1730
- ;
1731
- if($choice) {
1732
- if($choice.find(selector.menu).length > 0) {
1733
- module.verbose('Retrieving text of element with sub-menu');
1734
- $choice = $choice.clone();
1735
- $choice.find(selector.menu).remove();
1736
- $choice.find(selector.menuIcon).remove();
1737
- }
1738
- return ($choice.data(metadata.text) !== undefined)
1739
- ? $choice.data(metadata.text)
1740
- : (preserveHTML)
1741
- ? $.trim($choice.html())
1742
- : $.trim($choice.text())
1743
- ;
1744
- }
1745
- },
1746
- choiceValue: function($choice, choiceText) {
1747
- choiceText = choiceText || module.get.choiceText($choice);
1748
- if(!$choice) {
1749
- return false;
1750
- }
1751
- return ($choice.data(metadata.value) !== undefined)
1752
- ? String( $choice.data(metadata.value) )
1753
- : (typeof choiceText === 'string')
1754
- ? $.trim(choiceText.toLowerCase())
1755
- : String(choiceText)
1756
- ;
1757
- },
1758
- inputEvent: function() {
1759
- var
1760
- input = $search[0]
1761
- ;
1762
- if(input) {
1763
- return (input.oninput !== undefined)
1764
- ? 'input'
1765
- : (input.onpropertychange !== undefined)
1766
- ? 'propertychange'
1767
- : 'keyup'
1768
- ;
1769
- }
1770
- return false;
1771
- },
1772
- selectValues: function() {
1773
- var
1774
- select = {}
1775
- ;
1776
- select.values = [];
1777
- $module
1778
- .find('option')
1779
- .each(function() {
1780
- var
1781
- $option = $(this),
1782
- name = $option.html(),
1783
- disabled = $option.attr('disabled'),
1784
- value = ( $option.attr('value') !== undefined )
1785
- ? $option.attr('value')
1786
- : name
1787
- ;
1788
- if(settings.placeholder === 'auto' && value === '') {
1789
- select.placeholder = name;
1790
- }
1791
- else {
1792
- select.values.push({
1793
- name : name,
1794
- value : value,
1795
- disabled : disabled
1796
- });
1797
- }
1798
- })
1799
- ;
1800
- if(settings.placeholder && settings.placeholder !== 'auto') {
1801
- module.debug('Setting placeholder value to', settings.placeholder);
1802
- select.placeholder = settings.placeholder;
1803
- }
1804
- if(settings.sortSelect) {
1805
- select.values.sort(function(a, b) {
1806
- return (a.name > b.name)
1807
- ? 1
1808
- : -1
1809
- ;
1810
- });
1811
- module.debug('Retrieved and sorted values from select', select);
1812
- }
1813
- else {
1814
- module.debug('Retrieved values from select', select);
1815
- }
1816
- return select;
1817
- },
1818
- activeItem: function() {
1819
- return $item.filter('.' + className.active);
1820
- },
1821
- selectedItem: function() {
1822
- var
1823
- $selectedItem = $item.not(selector.unselectable).filter('.' + className.selected)
1824
- ;
1825
- return ($selectedItem.length > 0)
1826
- ? $selectedItem
1827
- : $item.eq(0)
1828
- ;
1829
- },
1830
- itemWithAdditions: function(value) {
1831
- var
1832
- $items = module.get.item(value),
1833
- $userItems = module.create.userChoice(value),
1834
- hasUserItems = ($userItems && $userItems.length > 0)
1835
- ;
1836
- if(hasUserItems) {
1837
- $items = ($items.length > 0)
1838
- ? $items.add($userItems)
1839
- : $userItems
1840
- ;
1841
- }
1842
- return $items;
1843
- },
1844
- item: function(value, strict) {
1845
- var
1846
- $selectedItem = false,
1847
- shouldSearch,
1848
- isMultiple
1849
- ;
1850
- value = (value !== undefined)
1851
- ? value
1852
- : ( module.get.values() !== undefined)
1853
- ? module.get.values()
1854
- : module.get.text()
1855
- ;
1856
- shouldSearch = (isMultiple)
1857
- ? (value.length > 0)
1858
- : (value !== undefined && value !== null)
1859
- ;
1860
- isMultiple = (module.is.multiple() && $.isArray(value));
1861
- strict = (value === '' || value === 0)
1862
- ? true
1863
- : strict || false
1864
- ;
1865
- if(shouldSearch) {
1866
- $item
1867
- .each(function() {
1868
- var
1869
- $choice = $(this),
1870
- optionText = module.get.choiceText($choice),
1871
- optionValue = module.get.choiceValue($choice, optionText)
1872
- ;
1873
- // safe early exit
1874
- if(optionValue === null || optionValue === undefined) {
1875
- return;
1876
- }
1877
- if(isMultiple) {
1878
- if($.inArray( String(optionValue), value) !== -1 || $.inArray(optionText, value) !== -1) {
1879
- $selectedItem = ($selectedItem)
1880
- ? $selectedItem.add($choice)
1881
- : $choice
1882
- ;
1883
- }
1884
- }
1885
- else if(strict) {
1886
- module.verbose('Ambiguous dropdown value using strict type check', $choice, value);
1887
- if( optionValue === value || optionText === value) {
1888
- $selectedItem = $choice;
1889
- return true;
1890
- }
1891
- }
1892
- else {
1893
- if( String(optionValue) == String(value) || optionText == value) {
1894
- module.verbose('Found select item by value', optionValue, value);
1895
- $selectedItem = $choice;
1896
- return true;
1897
- }
1898
- }
1899
- })
1900
- ;
1901
- }
1902
- return $selectedItem;
1903
- }
1904
- },
1905
-
1906
- check: {
1907
- maxSelections: function(selectionCount) {
1908
- if(settings.maxSelections) {
1909
- selectionCount = (selectionCount !== undefined)
1910
- ? selectionCount
1911
- : module.get.selectionCount()
1912
- ;
1913
- if(selectionCount >= settings.maxSelections) {
1914
- module.debug('Maximum selection count reached');
1915
- if(settings.useLabels) {
1916
- $item.addClass(className.filtered);
1917
- module.add.message(message.maxSelections);
1918
- }
1919
- return true;
1920
- }
1921
- else {
1922
- module.verbose('No longer at maximum selection count');
1923
- module.remove.message();
1924
- module.remove.filteredItem();
1925
- if(module.is.searchSelection()) {
1926
- module.filterItems();
1927
- }
1928
- return false;
1929
- }
1930
- }
1931
- return true;
1932
- }
1933
- },
1934
-
1935
- restore: {
1936
- defaults: function() {
1937
- module.clear();
1938
- module.restore.defaultText();
1939
- module.restore.defaultValue();
1940
- },
1941
- defaultText: function() {
1942
- var
1943
- defaultText = module.get.defaultText(),
1944
- placeholderText = module.get.placeholderText
1945
- ;
1946
- if(defaultText === placeholderText) {
1947
- module.debug('Restoring default placeholder text', defaultText);
1948
- module.set.placeholderText(defaultText);
1949
- }
1950
- else {
1951
- module.debug('Restoring default text', defaultText);
1952
- module.set.text(defaultText);
1953
- }
1954
- },
1955
- placeholderText: function() {
1956
- module.set.placeholderText();
1957
- },
1958
- defaultValue: function() {
1959
- var
1960
- defaultValue = module.get.defaultValue()
1961
- ;
1962
- if(defaultValue !== undefined) {
1963
- module.debug('Restoring default value', defaultValue);
1964
- if(defaultValue !== '') {
1965
- module.set.value(defaultValue);
1966
- module.set.selected();
1967
- }
1968
- else {
1969
- module.remove.activeItem();
1970
- module.remove.selectedItem();
1971
- }
1972
- }
1973
- },
1974
- labels: function() {
1975
- if(settings.allowAdditions) {
1976
- if(!settings.useLabels) {
1977
- module.error(error.labels);
1978
- settings.useLabels = true;
1979
- }
1980
- module.debug('Restoring selected values');
1981
- module.create.userLabels();
1982
- }
1983
- module.check.maxSelections();
1984
- },
1985
- selected: function() {
1986
- module.restore.values();
1987
- if(module.is.multiple()) {
1988
- module.debug('Restoring previously selected values and labels');
1989
- module.restore.labels();
1990
- }
1991
- else {
1992
- module.debug('Restoring previously selected values');
1993
- }
1994
- },
1995
- values: function() {
1996
- // prevents callbacks from occurring on initial load
1997
- module.set.initialLoad();
1998
- if(settings.apiSettings && settings.saveRemoteData && module.get.remoteValues()) {
1999
- module.restore.remoteValues();
2000
- }
2001
- else {
2002
- module.set.selected();
2003
- }
2004
- module.remove.initialLoad();
2005
- },
2006
- remoteValues: function() {
2007
- var
2008
- values = module.get.remoteValues()
2009
- ;
2010
- module.debug('Recreating selected from session data', values);
2011
- if(values) {
2012
- if( module.is.single() ) {
2013
- $.each(values, function(value, name) {
2014
- module.set.text(name);
2015
- });
2016
- }
2017
- else {
2018
- $.each(values, function(value, name) {
2019
- module.add.label(value, name);
2020
- });
2021
- }
2022
- }
2023
- }
2024
- },
2025
-
2026
- read: {
2027
- remoteData: function(value) {
2028
- var
2029
- name
2030
- ;
2031
- if(window.Storage === undefined) {
2032
- module.error(error.noStorage);
2033
- return;
2034
- }
2035
- name = sessionStorage.getItem(value);
2036
- return (name !== undefined)
2037
- ? name
2038
- : false
2039
- ;
2040
- }
2041
- },
2042
-
2043
- save: {
2044
- defaults: function() {
2045
- module.save.defaultText();
2046
- module.save.placeholderText();
2047
- module.save.defaultValue();
2048
- },
2049
- defaultValue: function() {
2050
- var
2051
- value = module.get.value()
2052
- ;
2053
- module.verbose('Saving default value as', value);
2054
- $module.data(metadata.defaultValue, value);
2055
- },
2056
- defaultText: function() {
2057
- var
2058
- text = module.get.text()
2059
- ;
2060
- module.verbose('Saving default text as', text);
2061
- $module.data(metadata.defaultText, text);
2062
- },
2063
- placeholderText: function() {
2064
- var
2065
- text
2066
- ;
2067
- if(settings.placeholder !== false && $text.hasClass(className.placeholder)) {
2068
- text = module.get.text();
2069
- module.verbose('Saving placeholder text as', text);
2070
- $module.data(metadata.placeholderText, text);
2071
- }
2072
- },
2073
- remoteData: function(name, value) {
2074
- if(window.Storage === undefined) {
2075
- module.error(error.noStorage);
2076
- return;
2077
- }
2078
- module.verbose('Saving remote data to session storage', value, name);
2079
- sessionStorage.setItem(value, name);
2080
- }
2081
- },
2082
-
2083
- clear: function() {
2084
- if(module.is.multiple() && settings.useLabels) {
2085
- module.remove.labels();
2086
- }
2087
- else {
2088
- module.remove.activeItem();
2089
- module.remove.selectedItem();
2090
- }
2091
- module.set.placeholderText();
2092
- module.clearValue();
2093
- },
2094
-
2095
- clearValue: function() {
2096
- module.set.value('');
2097
- },
2098
-
2099
- scrollPage: function(direction, $selectedItem) {
2100
- var
2101
- $currentItem = $selectedItem || module.get.selectedItem(),
2102
- $menu = $currentItem.closest(selector.menu),
2103
- menuHeight = $menu.outerHeight(),
2104
- currentScroll = $menu.scrollTop(),
2105
- itemHeight = $item.eq(0).outerHeight(),
2106
- itemsPerPage = Math.floor(menuHeight / itemHeight),
2107
- maxScroll = $menu.prop('scrollHeight'),
2108
- newScroll = (direction == 'up')
2109
- ? currentScroll - (itemHeight * itemsPerPage)
2110
- : currentScroll + (itemHeight * itemsPerPage),
2111
- $selectableItem = $item.not(selector.unselectable),
2112
- isWithinRange,
2113
- $nextSelectedItem,
2114
- elementIndex
2115
- ;
2116
- elementIndex = (direction == 'up')
2117
- ? $selectableItem.index($currentItem) - itemsPerPage
2118
- : $selectableItem.index($currentItem) + itemsPerPage
2119
- ;
2120
- isWithinRange = (direction == 'up')
2121
- ? (elementIndex >= 0)
2122
- : (elementIndex < $selectableItem.length)
2123
- ;
2124
- $nextSelectedItem = (isWithinRange)
2125
- ? $selectableItem.eq(elementIndex)
2126
- : (direction == 'up')
2127
- ? $selectableItem.first()
2128
- : $selectableItem.last()
2129
- ;
2130
- if($nextSelectedItem.length > 0) {
2131
- module.debug('Scrolling page', direction, $nextSelectedItem);
2132
- $currentItem
2133
- .removeClass(className.selected)
2134
- ;
2135
- $nextSelectedItem
2136
- .addClass(className.selected)
2137
- ;
2138
- if(settings.selectOnKeydown && module.is.single()) {
2139
- module.set.selectedItem($nextSelectedItem);
2140
- }
2141
- $menu
2142
- .scrollTop(newScroll)
2143
- ;
2144
- }
2145
- },
2146
-
2147
- set: {
2148
- filtered: function() {
2149
- var
2150
- isMultiple = module.is.multiple(),
2151
- isSearch = module.is.searchSelection(),
2152
- isSearchMultiple = (isMultiple && isSearch),
2153
- searchValue = (isSearch)
2154
- ? module.get.query()
2155
- : '',
2156
- hasSearchValue = (typeof searchValue === 'string' && searchValue.length > 0),
2157
- searchWidth = module.get.searchWidth(),
2158
- valueIsSet = searchValue !== ''
2159
- ;
2160
- if(isMultiple && hasSearchValue) {
2161
- module.verbose('Adjusting input width', searchWidth, settings.glyphWidth);
2162
- $search.css('width', searchWidth);
2163
- }
2164
- if(hasSearchValue || (isSearchMultiple && valueIsSet)) {
2165
- module.verbose('Hiding placeholder text');
2166
- $text.addClass(className.filtered);
2167
- }
2168
- else if(!isMultiple || (isSearchMultiple && !valueIsSet)) {
2169
- module.verbose('Showing placeholder text');
2170
- $text.removeClass(className.filtered);
2171
- }
2172
- },
2173
- empty: function() {
2174
- $module.addClass(className.empty);
2175
- },
2176
- loading: function() {
2177
- $module.addClass(className.loading);
2178
- },
2179
- placeholderText: function(text) {
2180
- text = text || module.get.placeholderText();
2181
- module.debug('Setting placeholder text', text);
2182
- module.set.text(text);
2183
- $text.addClass(className.placeholder);
2184
- },
2185
- tabbable: function() {
2186
- if( module.has.search() ) {
2187
- module.debug('Added tabindex to searchable dropdown');
2188
- $search
2189
- .val('')
2190
- .attr('tabindex', 0)
2191
- ;
2192
- $menu
2193
- .attr('tabindex', -1)
2194
- ;
2195
- }
2196
- else {
2197
- module.debug('Added tabindex to dropdown');
2198
- if( $module.attr('tabindex') === undefined) {
2199
- $module
2200
- .attr('tabindex', 0)
2201
- ;
2202
- $menu
2203
- .attr('tabindex', -1)
2204
- ;
2205
- }
2206
- }
2207
- },
2208
- initialLoad: function() {
2209
- module.verbose('Setting initial load');
2210
- initialLoad = true;
2211
- },
2212
- activeItem: function($item) {
2213
- if( settings.allowAdditions && $item.filter(selector.addition).length > 0 ) {
2214
- $item.addClass(className.filtered);
2215
- }
2216
- else {
2217
- $item.addClass(className.active);
2218
- }
2219
- },
2220
- partialSearch: function(text) {
2221
- var
2222
- length = module.get.query().length
2223
- ;
2224
- $search.val( text.substr(0 , length));
2225
- },
2226
- scrollPosition: function($item, forceScroll) {
2227
- var
2228
- edgeTolerance = 5,
2229
- $menu,
2230
- hasActive,
2231
- offset,
2232
- itemHeight,
2233
- itemOffset,
2234
- menuOffset,
2235
- menuScroll,
2236
- menuHeight,
2237
- abovePage,
2238
- belowPage
2239
- ;
2240
-
2241
- $item = $item || module.get.selectedItem();
2242
- $menu = $item.closest(selector.menu);
2243
- hasActive = ($item && $item.length > 0);
2244
- forceScroll = (forceScroll !== undefined)
2245
- ? forceScroll
2246
- : false
2247
- ;
2248
- if($item && $menu.length > 0 && hasActive) {
2249
- itemOffset = $item.position().top;
2250
-
2251
- $menu.addClass(className.loading);
2252
- menuScroll = $menu.scrollTop();
2253
- menuOffset = $menu.offset().top;
2254
- itemOffset = $item.offset().top;
2255
- offset = menuScroll - menuOffset + itemOffset;
2256
- if(!forceScroll) {
2257
- menuHeight = $menu.height();
2258
- belowPage = menuScroll + menuHeight < (offset + edgeTolerance);
2259
- abovePage = ((offset - edgeTolerance) < menuScroll);
2260
- }
2261
- module.debug('Scrolling to active item', offset);
2262
- if(forceScroll || abovePage || belowPage) {
2263
- $menu.scrollTop(offset);
2264
- }
2265
- $menu.removeClass(className.loading);
2266
- }
2267
- },
2268
- text: function(text) {
2269
- if(settings.action !== 'select') {
2270
- if(settings.action == 'combo') {
2271
- module.debug('Changing combo button text', text, $combo);
2272
- if(settings.preserveHTML) {
2273
- $combo.html(text);
2274
- }
2275
- else {
2276
- $combo.text(text);
2277
- }
2278
- }
2279
- else {
2280
- if(text !== module.get.placeholderText()) {
2281
- $text.removeClass(className.placeholder);
2282
- }
2283
- module.debug('Changing text', text, $text);
2284
- $text
2285
- .removeClass(className.filtered)
2286
- ;
2287
- if(settings.preserveHTML) {
2288
- $text.html(text);
2289
- }
2290
- else {
2291
- $text.text(text);
2292
- }
2293
- }
2294
- }
2295
- },
2296
- selectedItem: function($item) {
2297
- var
2298
- value = module.get.choiceValue($item),
2299
- text = module.get.choiceText($item, false)
2300
- ;
2301
- module.debug('Setting user selection to item', $item);
2302
- module.remove.activeItem();
2303
- module.set.partialSearch(text);
2304
- module.set.activeItem($item);
2305
- module.set.selected(value, $item);
2306
- module.set.text(text);
2307
- },
2308
- selectedLetter: function(letter) {
2309
- var
2310
- $selectedItem = $item.filter('.' + className.selected),
2311
- alreadySelectedLetter = $selectedItem.length > 0 && module.has.firstLetter($selectedItem, letter),
2312
- $nextValue = false,
2313
- $nextItem
2314
- ;
2315
- // check next of same letter
2316
- if(alreadySelectedLetter) {
2317
- $nextItem = $selectedItem.nextAll($item).eq(0);
2318
- if( module.has.firstLetter($nextItem, letter) ) {
2319
- $nextValue = $nextItem;
2320
- }
2321
- }
2322
- // check all values
2323
- if(!$nextValue) {
2324
- $item
2325
- .each(function(){
2326
- if(module.has.firstLetter($(this), letter)) {
2327
- $nextValue = $(this);
2328
- return false;
2329
- }
2330
- })
2331
- ;
2332
- }
2333
- // set next value
2334
- if($nextValue) {
2335
- module.verbose('Scrolling to next value with letter', letter);
2336
- module.set.scrollPosition($nextValue);
2337
- $selectedItem.removeClass(className.selected);
2338
- $nextValue.addClass(className.selected);
2339
- if(settings.selectOnKeydown && module.is.single()) {
2340
- module.set.selectedItem($nextValue);
2341
- }
2342
- }
2343
- },
2344
- direction: function($menu) {
2345
- if(settings.direction == 'auto') {
2346
- if(module.is.onScreen($menu)) {
2347
- module.remove.upward($menu);
2348
- }
2349
- else {
2350
- module.set.upward($menu);
2351
- }
2352
- }
2353
- else if(settings.direction == 'upward') {
2354
- module.set.upward($menu);
2355
- }
2356
- },
2357
- upward: function($menu) {
2358
- var $element = $menu || $module;
2359
- $element.addClass(className.upward);
2360
- },
2361
- value: function(value, text, $selected) {
2362
- var
2363
- escapedValue = module.escape.value(value),
2364
- hasInput = ($input.length > 0),
2365
- isAddition = !module.has.value(value),
2366
- currentValue = module.get.values(),
2367
- stringValue = (value !== undefined)
2368
- ? String(value)
2369
- : value,
2370
- newValue
2371
- ;
2372
- if(hasInput) {
2373
- if(!settings.allowReselection && stringValue == currentValue) {
2374
- module.verbose('Skipping value update already same value', value, currentValue);
2375
- if(!module.is.initialLoad()) {
2376
- return;
2377
- }
2378
- }
2379
-
2380
- if( module.is.single() && module.has.selectInput() && module.can.extendSelect() ) {
2381
- module.debug('Adding user option', value);
2382
- module.add.optionValue(value);
2383
- }
2384
- module.debug('Updating input value', escapedValue, currentValue);
2385
- internalChange = true;
2386
- $input
2387
- .val(escapedValue)
2388
- ;
2389
- if(settings.fireOnInit === false && module.is.initialLoad()) {
2390
- module.debug('Input native change event ignored on initial load');
2391
- }
2392
- else {
2393
- module.trigger.change();
2394
- }
2395
- internalChange = false;
2396
- }
2397
- else {
2398
- module.verbose('Storing value in metadata', escapedValue, $input);
2399
- if(escapedValue !== currentValue) {
2400
- $module.data(metadata.value, stringValue);
2401
- }
2402
- }
2403
- if(settings.fireOnInit === false && module.is.initialLoad()) {
2404
- module.verbose('No callback on initial load', settings.onChange);
2405
- }
2406
- else {
2407
- settings.onChange.call(element, value, text, $selected);
2408
- }
2409
- },
2410
- active: function() {
2411
- $module
2412
- .addClass(className.active)
2413
- ;
2414
- },
2415
- multiple: function() {
2416
- $module.addClass(className.multiple);
2417
- },
2418
- visible: function() {
2419
- $module.addClass(className.visible);
2420
- },
2421
- exactly: function(value, $selectedItem) {
2422
- module.debug('Setting selected to exact values');
2423
- module.clear();
2424
- module.set.selected(value, $selectedItem);
2425
- },
2426
- selected: function(value, $selectedItem) {
2427
- var
2428
- isMultiple = module.is.multiple(),
2429
- $userSelectedItem
2430
- ;
2431
- $selectedItem = (settings.allowAdditions)
2432
- ? $selectedItem || module.get.itemWithAdditions(value)
2433
- : $selectedItem || module.get.item(value)
2434
- ;
2435
- if(!$selectedItem) {
2436
- return;
2437
- }
2438
- module.debug('Setting selected menu item to', $selectedItem);
2439
- if(module.is.multiple()) {
2440
- module.remove.searchWidth();
2441
- }
2442
- if(module.is.single()) {
2443
- module.remove.activeItem();
2444
- module.remove.selectedItem();
2445
- }
2446
- else if(settings.useLabels) {
2447
- module.remove.selectedItem();
2448
- }
2449
- // select each item
2450
- $selectedItem
2451
- .each(function() {
2452
- var
2453
- $selected = $(this),
2454
- selectedText = module.get.choiceText($selected),
2455
- selectedValue = module.get.choiceValue($selected, selectedText),
2456
-
2457
- isFiltered = $selected.hasClass(className.filtered),
2458
- isActive = $selected.hasClass(className.active),
2459
- isUserValue = $selected.hasClass(className.addition),
2460
- shouldAnimate = (isMultiple && $selectedItem.length == 1)
2461
- ;
2462
- if(isMultiple) {
2463
- if(!isActive || isUserValue) {
2464
- if(settings.apiSettings && settings.saveRemoteData) {
2465
- module.save.remoteData(selectedText, selectedValue);
2466
- }
2467
- if(settings.useLabels) {
2468
- module.add.value(selectedValue, selectedText, $selected);
2469
- module.add.label(selectedValue, selectedText, shouldAnimate);
2470
- module.set.activeItem($selected);
2471
- module.filterActive();
2472
- module.select.nextAvailable($selectedItem);
2473
- }
2474
- else {
2475
- module.add.value(selectedValue, selectedText, $selected);
2476
- module.set.text(module.add.variables(message.count));
2477
- module.set.activeItem($selected);
2478
- }
2479
- }
2480
- else if(!isFiltered) {
2481
- module.debug('Selected active value, removing label');
2482
- module.remove.selected(selectedValue);
2483
- }
2484
- }
2485
- else {
2486
- if(settings.apiSettings && settings.saveRemoteData) {
2487
- module.save.remoteData(selectedText, selectedValue);
2488
- }
2489
- module.set.text(selectedText);
2490
- module.set.value(selectedValue, selectedText, $selected);
2491
- $selected
2492
- .addClass(className.active)
2493
- .addClass(className.selected)
2494
- ;
2495
- }
2496
- })
2497
- ;
2498
- }
2499
- },
2500
-
2501
- add: {
2502
- label: function(value, text, shouldAnimate) {
2503
- var
2504
- $next = module.is.searchSelection()
2505
- ? $search
2506
- : $text,
2507
- escapedValue = module.escape.value(value),
2508
- $label
2509
- ;
2510
- $label = $('<a />')
2511
- .addClass(className.label)
2512
- .attr('data-value', escapedValue)
2513
- .html(templates.label(escapedValue, text))
2514
- ;
2515
- $label = settings.onLabelCreate.call($label, escapedValue, text);
2516
-
2517
- if(module.has.label(value)) {
2518
- module.debug('Label already exists, skipping', escapedValue);
2519
- return;
2520
- }
2521
- if(settings.label.variation) {
2522
- $label.addClass(settings.label.variation);
2523
- }
2524
- if(shouldAnimate === true) {
2525
- module.debug('Animating in label', $label);
2526
- $label
2527
- .addClass(className.hidden)
2528
- .insertBefore($next)
2529
- .transition(settings.label.transition, settings.label.duration)
2530
- ;
2531
- }
2532
- else {
2533
- module.debug('Adding selection label', $label);
2534
- $label
2535
- .insertBefore($next)
2536
- ;
2537
- }
2538
- },
2539
- message: function(message) {
2540
- var
2541
- $message = $menu.children(selector.message),
2542
- html = settings.templates.message(module.add.variables(message))
2543
- ;
2544
- if($message.length > 0) {
2545
- $message
2546
- .html(html)
2547
- ;
2548
- }
2549
- else {
2550
- $message = $('<div/>')
2551
- .html(html)
2552
- .addClass(className.message)
2553
- .appendTo($menu)
2554
- ;
2555
- }
2556
- },
2557
- optionValue: function(value) {
2558
- var
2559
- escapedValue = module.escape.value(value),
2560
- $option = $input.find('option[value="' + escapedValue + '"]'),
2561
- hasOption = ($option.length > 0)
2562
- ;
2563
- if(hasOption) {
2564
- return;
2565
- }
2566
- // temporarily disconnect observer
2567
- module.disconnect.selectObserver();
2568
- if( module.is.single() ) {
2569
- module.verbose('Removing previous user addition');
2570
- $input.find('option.' + className.addition).remove();
2571
- }
2572
- $('<option/>')
2573
- .prop('value', escapedValue)
2574
- .addClass(className.addition)
2575
- .html(value)
2576
- .appendTo($input)
2577
- ;
2578
- module.verbose('Adding user addition as an <option>', value);
2579
- module.observe.select();
2580
- },
2581
- userSuggestion: function(value) {
2582
- var
2583
- $addition = $menu.children(selector.addition),
2584
- $existingItem = module.get.item(value),
2585
- alreadyHasValue = $existingItem && $existingItem.not(selector.addition).length,
2586
- hasUserSuggestion = $addition.length > 0,
2587
- html
2588
- ;
2589
- if(settings.useLabels && module.has.maxSelections()) {
2590
- return;
2591
- }
2592
- if(value === '' || alreadyHasValue) {
2593
- $addition.remove();
2594
- return;
2595
- }
2596
- if(hasUserSuggestion) {
2597
- $addition
2598
- .data(metadata.value, value)
2599
- .data(metadata.text, value)
2600
- .attr('data-' + metadata.value, value)
2601
- .attr('data-' + metadata.text, value)
2602
- .removeClass(className.filtered)
2603
- ;
2604
- if(!settings.hideAdditions) {
2605
- html = settings.templates.addition( module.add.variables(message.addResult, value) );
2606
- $addition
2607
- .html(html)
2608
- ;
2609
- }
2610
- module.verbose('Replacing user suggestion with new value', $addition);
2611
- }
2612
- else {
2613
- $addition = module.create.userChoice(value);
2614
- $addition
2615
- .prependTo($menu)
2616
- ;
2617
- module.verbose('Adding item choice to menu corresponding with user choice addition', $addition);
2618
- }
2619
- if(!settings.hideAdditions || module.is.allFiltered()) {
2620
- $addition
2621
- .addClass(className.selected)
2622
- .siblings()
2623
- .removeClass(className.selected)
2624
- ;
2625
- }
2626
- module.refreshItems();
2627
- },
2628
- variables: function(message, term) {
2629
- var
2630
- hasCount = (message.search('{count}') !== -1),
2631
- hasMaxCount = (message.search('{maxCount}') !== -1),
2632
- hasTerm = (message.search('{term}') !== -1),
2633
- values,
2634
- count,
2635
- query
2636
- ;
2637
- module.verbose('Adding templated variables to message', message);
2638
- if(hasCount) {
2639
- count = module.get.selectionCount();
2640
- message = message.replace('{count}', count);
2641
- }
2642
- if(hasMaxCount) {
2643
- count = module.get.selectionCount();
2644
- message = message.replace('{maxCount}', settings.maxSelections);
2645
- }
2646
- if(hasTerm) {
2647
- query = term || module.get.query();
2648
- message = message.replace('{term}', query);
2649
- }
2650
- return message;
2651
- },
2652
- value: function(addedValue, addedText, $selectedItem) {
2653
- var
2654
- currentValue = module.get.values(),
2655
- newValue
2656
- ;
2657
- if(addedValue === '') {
2658
- module.debug('Cannot select blank values from multiselect');
2659
- return;
2660
- }
2661
- // extend current array
2662
- if($.isArray(currentValue)) {
2663
- newValue = currentValue.concat([addedValue]);
2664
- newValue = module.get.uniqueArray(newValue);
2665
- }
2666
- else {
2667
- newValue = [addedValue];
2668
- }
2669
- // add values
2670
- if( module.has.selectInput() ) {
2671
- if(module.can.extendSelect()) {
2672
- module.debug('Adding value to select', addedValue, newValue, $input);
2673
- module.add.optionValue(addedValue);
2674
- }
2675
- }
2676
- else {
2677
- newValue = newValue.join(settings.delimiter);
2678
- module.debug('Setting hidden input to delimited value', newValue, $input);
2679
- }
2680
-
2681
- if(settings.fireOnInit === false && module.is.initialLoad()) {
2682
- module.verbose('Skipping onadd callback on initial load', settings.onAdd);
2683
- }
2684
- else {
2685
- settings.onAdd.call(element, addedValue, addedText, $selectedItem);
2686
- }
2687
- module.set.value(newValue, addedValue, addedText, $selectedItem);
2688
- module.check.maxSelections();
2689
- }
2690
- },
2691
-
2692
- remove: {
2693
- active: function() {
2694
- $module.removeClass(className.active);
2695
- },
2696
- activeLabel: function() {
2697
- $module.find(selector.label).removeClass(className.active);
2698
- },
2699
- empty: function() {
2700
- $module.removeClass(className.empty);
2701
- },
2702
- loading: function() {
2703
- $module.removeClass(className.loading);
2704
- },
2705
- initialLoad: function() {
2706
- initialLoad = false;
2707
- },
2708
- upward: function($menu) {
2709
- var $element = $menu || $module;
2710
- $element.removeClass(className.upward);
2711
- },
2712
- visible: function() {
2713
- $module.removeClass(className.visible);
2714
- },
2715
- activeItem: function() {
2716
- $item.removeClass(className.active);
2717
- },
2718
- filteredItem: function() {
2719
- if(settings.useLabels && module.has.maxSelections() ) {
2720
- return;
2721
- }
2722
- if(settings.useLabels && module.is.multiple()) {
2723
- $item.not('.' + className.active).removeClass(className.filtered);
2724
- }
2725
- else {
2726
- $item.removeClass(className.filtered);
2727
- }
2728
- module.remove.empty();
2729
- },
2730
- optionValue: function(value) {
2731
- var
2732
- escapedValue = module.escape.value(value),
2733
- $option = $input.find('option[value="' + escapedValue + '"]'),
2734
- hasOption = ($option.length > 0)
2735
- ;
2736
- if(!hasOption || !$option.hasClass(className.addition)) {
2737
- return;
2738
- }
2739
- // temporarily disconnect observer
2740
- if(selectObserver) {
2741
- selectObserver.disconnect();
2742
- module.verbose('Temporarily disconnecting mutation observer');
2743
- }
2744
- $option.remove();
2745
- module.verbose('Removing user addition as an <option>', escapedValue);
2746
- if(selectObserver) {
2747
- selectObserver.observe($input[0], {
2748
- childList : true,
2749
- subtree : true
2750
- });
2751
- }
2752
- },
2753
- message: function() {
2754
- $menu.children(selector.message).remove();
2755
- },
2756
- searchWidth: function() {
2757
- $search.css('width', '');
2758
- },
2759
- searchTerm: function() {
2760
- module.verbose('Cleared search term');
2761
- $search.val('');
2762
- module.set.filtered();
2763
- },
2764
- userAddition: function() {
2765
- $item.filter(selector.addition).remove();
2766
- },
2767
- selected: function(value, $selectedItem) {
2768
- $selectedItem = (settings.allowAdditions)
2769
- ? $selectedItem || module.get.itemWithAdditions(value)
2770
- : $selectedItem || module.get.item(value)
2771
- ;
2772
-
2773
- if(!$selectedItem) {
2774
- return false;
2775
- }
2776
-
2777
- $selectedItem
2778
- .each(function() {
2779
- var
2780
- $selected = $(this),
2781
- selectedText = module.get.choiceText($selected),
2782
- selectedValue = module.get.choiceValue($selected, selectedText)
2783
- ;
2784
- if(module.is.multiple()) {
2785
- if(settings.useLabels) {
2786
- module.remove.value(selectedValue, selectedText, $selected);
2787
- module.remove.label(selectedValue);
2788
- }
2789
- else {
2790
- module.remove.value(selectedValue, selectedText, $selected);
2791
- if(module.get.selectionCount() === 0) {
2792
- module.set.placeholderText();
2793
- }
2794
- else {
2795
- module.set.text(module.add.variables(message.count));
2796
- }
2797
- }
2798
- }
2799
- else {
2800
- module.remove.value(selectedValue, selectedText, $selected);
2801
- }
2802
- $selected
2803
- .removeClass(className.filtered)
2804
- .removeClass(className.active)
2805
- ;
2806
- if(settings.useLabels) {
2807
- $selected.removeClass(className.selected);
2808
- }
2809
- })
2810
- ;
2811
- },
2812
- selectedItem: function() {
2813
- $item.removeClass(className.selected);
2814
- },
2815
- value: function(removedValue, removedText, $removedItem) {
2816
- var
2817
- values = module.get.values(),
2818
- newValue
2819
- ;
2820
- if( module.has.selectInput() ) {
2821
- module.verbose('Input is <select> removing selected option', removedValue);
2822
- newValue = module.remove.arrayValue(removedValue, values);
2823
- module.remove.optionValue(removedValue);
2824
- }
2825
- else {
2826
- module.verbose('Removing from delimited values', removedValue);
2827
- newValue = module.remove.arrayValue(removedValue, values);
2828
- newValue = newValue.join(settings.delimiter);
2829
- }
2830
- if(settings.fireOnInit === false && module.is.initialLoad()) {
2831
- module.verbose('No callback on initial load', settings.onRemove);
2832
- }
2833
- else {
2834
- settings.onRemove.call(element, removedValue, removedText, $removedItem);
2835
- }
2836
- module.set.value(newValue, removedText, $removedItem);
2837
- module.check.maxSelections();
2838
- },
2839
- arrayValue: function(removedValue, values) {
2840
- if( !$.isArray(values) ) {
2841
- values = [values];
2842
- }
2843
- values = $.grep(values, function(value){
2844
- return (removedValue != value);
2845
- });
2846
- module.verbose('Removed value from delimited string', removedValue, values);
2847
- return values;
2848
- },
2849
- label: function(value, shouldAnimate) {
2850
- var
2851
- $labels = $module.find(selector.label),
2852
- $removedLabel = $labels.filter('[data-value="' + value +'"]')
2853
- ;
2854
- module.verbose('Removing label', $removedLabel);
2855
- $removedLabel.remove();
2856
- },
2857
- activeLabels: function($activeLabels) {
2858
- $activeLabels = $activeLabels || $module.find(selector.label).filter('.' + className.active);
2859
- module.verbose('Removing active label selections', $activeLabels);
2860
- module.remove.labels($activeLabels);
2861
- },
2862
- labels: function($labels) {
2863
- $labels = $labels || $module.find(selector.label);
2864
- module.verbose('Removing labels', $labels);
2865
- $labels
2866
- .each(function(){
2867
- var
2868
- $label = $(this),
2869
- value = $label.data(metadata.value),
2870
- stringValue = (value !== undefined)
2871
- ? String(value)
2872
- : value,
2873
- isUserValue = module.is.userValue(stringValue)
2874
- ;
2875
- if(settings.onLabelRemove.call($label, value) === false) {
2876
- module.debug('Label remove callback cancelled removal');
2877
- return;
2878
- }
2879
- module.remove.message();
2880
- if(isUserValue) {
2881
- module.remove.value(stringValue);
2882
- module.remove.label(stringValue);
2883
- }
2884
- else {
2885
- // selected will also remove label
2886
- module.remove.selected(stringValue);
2887
- }
2888
- })
2889
- ;
2890
- },
2891
- tabbable: function() {
2892
- if( module.has.search() ) {
2893
- module.debug('Searchable dropdown initialized');
2894
- $search
2895
- .removeAttr('tabindex')
2896
- ;
2897
- $menu
2898
- .removeAttr('tabindex')
2899
- ;
2900
- }
2901
- else {
2902
- module.debug('Simple selection dropdown initialized');
2903
- $module
2904
- .removeAttr('tabindex')
2905
- ;
2906
- $menu
2907
- .removeAttr('tabindex')
2908
- ;
2909
- }
2910
- }
2911
- },
2912
-
2913
- has: {
2914
- menuSearch: function() {
2915
- return (module.has.search() && $search.closest($menu).length > 0);
2916
- },
2917
- search: function() {
2918
- return ($search.length > 0);
2919
- },
2920
- sizer: function() {
2921
- return ($sizer.length > 0);
2922
- },
2923
- selectInput: function() {
2924
- return ( $input.is('select') );
2925
- },
2926
- minCharacters: function(searchTerm) {
2927
- if(settings.minCharacters) {
2928
- searchTerm = (searchTerm !== undefined)
2929
- ? String(searchTerm)
2930
- : String(module.get.query())
2931
- ;
2932
- return (searchTerm.length >= settings.minCharacters);
2933
- }
2934
- return true;
2935
- },
2936
- firstLetter: function($item, letter) {
2937
- var
2938
- text,
2939
- firstLetter
2940
- ;
2941
- if(!$item || $item.length === 0 || typeof letter !== 'string') {
2942
- return false;
2943
- }
2944
- text = module.get.choiceText($item, false);
2945
- letter = letter.toLowerCase();
2946
- firstLetter = String(text).charAt(0).toLowerCase();
2947
- return (letter == firstLetter);
2948
- },
2949
- input: function() {
2950
- return ($input.length > 0);
2951
- },
2952
- items: function() {
2953
- return ($item.length > 0);
2954
- },
2955
- menu: function() {
2956
- return ($menu.length > 0);
2957
- },
2958
- message: function() {
2959
- return ($menu.children(selector.message).length !== 0);
2960
- },
2961
- label: function(value) {
2962
- var
2963
- escapedValue = module.escape.value(value),
2964
- $labels = $module.find(selector.label)
2965
- ;
2966
- return ($labels.filter('[data-value="' + escapedValue +'"]').length > 0);
2967
- },
2968
- maxSelections: function() {
2969
- return (settings.maxSelections && module.get.selectionCount() >= settings.maxSelections);
2970
- },
2971
- allResultsFiltered: function() {
2972
- var
2973
- $normalResults = $item.not(selector.addition)
2974
- ;
2975
- return ($normalResults.filter(selector.unselectable).length === $normalResults.length);
2976
- },
2977
- userSuggestion: function() {
2978
- return ($menu.children(selector.addition).length > 0);
2979
- },
2980
- query: function() {
2981
- return (module.get.query() !== '');
2982
- },
2983
- value: function(value) {
2984
- var
2985
- values = module.get.values(),
2986
- hasValue = $.isArray(values)
2987
- ? values && ($.inArray(value, values) !== -1)
2988
- : (values == value)
2989
- ;
2990
- return (hasValue)
2991
- ? true
2992
- : false
2993
- ;
2994
- }
2995
- },
2996
-
2997
- is: {
2998
- active: function() {
2999
- return $module.hasClass(className.active);
3000
- },
3001
- bubbledLabelClick: function(event) {
3002
- return $(event.target).is('select, input') && $module.closest('label').length > 0;
3003
- },
3004
- bubbledIconClick: function(event) {
3005
- return $(event.target).closest($icon).length > 0;
3006
- },
3007
- alreadySetup: function() {
3008
- return ($module.is('select') && $module.parent(selector.dropdown).length > 0 && $module.prev().length === 0);
3009
- },
3010
- animating: function($subMenu) {
3011
- return ($subMenu)
3012
- ? $subMenu.transition && $subMenu.transition('is animating')
3013
- : $menu.transition && $menu.transition('is animating')
3014
- ;
3015
- },
3016
- disabled: function() {
3017
- return $module.hasClass(className.disabled);
3018
- },
3019
- focused: function() {
3020
- return (document.activeElement === $module[0]);
3021
- },
3022
- focusedOnSearch: function() {
3023
- return (document.activeElement === $search[0]);
3024
- },
3025
- allFiltered: function() {
3026
- return( (module.is.multiple() || module.has.search()) && !(settings.hideAdditions == false && module.has.userSuggestion()) && !module.has.message() && module.has.allResultsFiltered() );
3027
- },
3028
- hidden: function($subMenu) {
3029
- return !module.is.visible($subMenu);
3030
- },
3031
- initialLoad: function() {
3032
- return initialLoad;
3033
- },
3034
- onScreen: function($subMenu) {
3035
- var
3036
- $currentMenu = $subMenu || $menu,
3037
- canOpenDownward = true,
3038
- onScreen = {},
3039
- calculations
3040
- ;
3041
- $currentMenu.addClass(className.loading);
3042
- calculations = {
3043
- context: {
3044
- scrollTop : $context.scrollTop(),
3045
- height : $context.outerHeight()
3046
- },
3047
- menu : {
3048
- offset: $currentMenu.offset(),
3049
- height: $currentMenu.outerHeight()
3050
- }
3051
- };
3052
- onScreen = {
3053
- above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.menu.height,
3054
- below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top + calculations.menu.height
3055
- };
3056
- if(onScreen.below) {
3057
- module.verbose('Dropdown can fit in context downward', onScreen);
3058
- canOpenDownward = true;
3059
- }
3060
- else if(!onScreen.below && !onScreen.above) {
3061
- module.verbose('Dropdown cannot fit in either direction, favoring downward', onScreen);
3062
- canOpenDownward = true;
3063
- }
3064
- else {
3065
- module.verbose('Dropdown cannot fit below, opening upward', onScreen);
3066
- canOpenDownward = false;
3067
- }
3068
- $currentMenu.removeClass(className.loading);
3069
- return canOpenDownward;
3070
- },
3071
- inObject: function(needle, object) {
3072
- var
3073
- found = false
3074
- ;
3075
- $.each(object, function(index, property) {
3076
- if(property == needle) {
3077
- found = true;
3078
- return true;
3079
- }
3080
- });
3081
- return found;
3082
- },
3083
- multiple: function() {
3084
- return $module.hasClass(className.multiple);
3085
- },
3086
- single: function() {
3087
- return !module.is.multiple();
3088
- },
3089
- selectMutation: function(mutations) {
3090
- var
3091
- selectChanged = false
3092
- ;
3093
- $.each(mutations, function(index, mutation) {
3094
- if(mutation.target && $(mutation.target).is('select')) {
3095
- selectChanged = true;
3096
- return true;
3097
- }
3098
- });
3099
- return selectChanged;
3100
- },
3101
- search: function() {
3102
- return $module.hasClass(className.search);
3103
- },
3104
- searchSelection: function() {
3105
- return ( module.has.search() && $search.parent(selector.dropdown).length === 1 );
3106
- },
3107
- selection: function() {
3108
- return $module.hasClass(className.selection);
3109
- },
3110
- userValue: function(value) {
3111
- return ($.inArray(value, module.get.userValues()) !== -1);
3112
- },
3113
- upward: function($menu) {
3114
- var $element = $menu || $module;
3115
- return $element.hasClass(className.upward);
3116
- },
3117
- visible: function($subMenu) {
3118
- return ($subMenu)
3119
- ? $subMenu.hasClass(className.visible)
3120
- : $menu.hasClass(className.visible)
3121
- ;
3122
- }
3123
- },
3124
-
3125
- can: {
3126
- activate: function($item) {
3127
- if(settings.useLabels) {
3128
- return true;
3129
- }
3130
- if(!module.has.maxSelections()) {
3131
- return true;
3132
- }
3133
- if(module.has.maxSelections() && $item.hasClass(className.active)) {
3134
- return true;
3135
- }
3136
- return false;
3137
- },
3138
- click: function() {
3139
- return (hasTouch || settings.on == 'click');
3140
- },
3141
- extendSelect: function() {
3142
- return settings.allowAdditions || settings.apiSettings;
3143
- },
3144
- show: function() {
3145
- return !module.is.disabled() && (module.has.items() || module.has.message());
3146
- },
3147
- useAPI: function() {
3148
- return $.fn.api !== undefined;
3149
- }
3150
- },
3151
-
3152
- animate: {
3153
- show: function(callback, $subMenu) {
3154
- var
3155
- $currentMenu = $subMenu || $menu,
3156
- start = ($subMenu)
3157
- ? function() {}
3158
- : function() {
3159
- module.hideSubMenus();
3160
- module.hideOthers();
3161
- module.set.active();
3162
- },
3163
- transition
3164
- ;
3165
- callback = $.isFunction(callback)
3166
- ? callback
3167
- : function(){}
3168
- ;
3169
- module.verbose('Doing menu show animation', $currentMenu);
3170
- module.set.direction($subMenu);
3171
- transition = module.get.transition($subMenu);
3172
- if( module.is.selection() ) {
3173
- module.set.scrollPosition(module.get.selectedItem(), true);
3174
- }
3175
- if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
3176
- if(transition == 'none') {
3177
- start();
3178
- $currentMenu.transition('show');
3179
- callback.call(element);
3180
- }
3181
- else if($.fn.transition !== undefined && $module.transition('is supported')) {
3182
- $currentMenu
3183
- .transition({
3184
- animation : transition + ' in',
3185
- debug : settings.debug,
3186
- verbose : settings.verbose,
3187
- duration : settings.duration,
3188
- queue : true,
3189
- onStart : start,
3190
- onComplete : function() {
3191
- callback.call(element);
3192
- }
3193
- })
3194
- ;
3195
- }
3196
- else {
3197
- module.error(error.noTransition, transition);
3198
- }
3199
- }
3200
- },
3201
- hide: function(callback, $subMenu) {
3202
- var
3203
- $currentMenu = $subMenu || $menu,
3204
- duration = ($subMenu)
3205
- ? (settings.duration * 0.9)
3206
- : settings.duration,
3207
- start = ($subMenu)
3208
- ? function() {}
3209
- : function() {
3210
- if( module.can.click() ) {
3211
- module.unbind.intent();
3212
- }
3213
- module.remove.active();
3214
- },
3215
- transition = module.get.transition($subMenu)
3216
- ;
3217
- callback = $.isFunction(callback)
3218
- ? callback
3219
- : function(){}
3220
- ;
3221
- if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {
3222
- module.verbose('Doing menu hide animation', $currentMenu);
3223
-
3224
- if(transition == 'none') {
3225
- start();
3226
- $currentMenu.transition('hide');
3227
- callback.call(element);
3228
- }
3229
- else if($.fn.transition !== undefined && $module.transition('is supported')) {
3230
- $currentMenu
3231
- .transition({
3232
- animation : transition + ' out',
3233
- duration : settings.duration,
3234
- debug : settings.debug,
3235
- verbose : settings.verbose,
3236
- queue : true,
3237
- onStart : start,
3238
- onComplete : function() {
3239
- if(settings.direction == 'auto') {
3240
- module.remove.upward($subMenu);
3241
- }
3242
- callback.call(element);
3243
- }
3244
- })
3245
- ;
3246
- }
3247
- else {
3248
- module.error(error.transition);
3249
- }
3250
- }
3251
- }
3252
- },
3253
-
3254
- hideAndClear: function() {
3255
- module.remove.searchTerm();
3256
- if( module.has.maxSelections() ) {
3257
- return;
3258
- }
3259
- if(module.has.search()) {
3260
- module.hide(function() {
3261
- module.remove.filteredItem();
3262
- });
3263
- }
3264
- else {
3265
- module.hide();
3266
- }
3267
- },
3268
-
3269
- delay: {
3270
- show: function() {
3271
- module.verbose('Delaying show event to ensure user intent');
3272
- clearTimeout(module.timer);
3273
- module.timer = setTimeout(module.show, settings.delay.show);
3274
- },
3275
- hide: function() {
3276
- module.verbose('Delaying hide event to ensure user intent');
3277
- clearTimeout(module.timer);
3278
- module.timer = setTimeout(module.hide, settings.delay.hide);
3279
- }
3280
- },
3281
-
3282
- escape: {
3283
- value: function(value) {
3284
- var
3285
- multipleValues = $.isArray(value),
3286
- stringValue = (typeof value === 'string'),
3287
- isUnparsable = (!stringValue && !multipleValues),
3288
- hasQuotes = (stringValue && value.search(regExp.quote) !== -1),
3289
- values = []
3290
- ;
3291
- if(!module.has.selectInput() || isUnparsable || !hasQuotes) {
3292
- return value;
3293
- }
3294
- module.debug('Encoding quote values for use in select', value);
3295
- if(multipleValues) {
3296
- $.each(value, function(index, value){
3297
- values.push(value.replace(regExp.quote, '&quot;'));
3298
- });
3299
- return values;
3300
- }
3301
- return value.replace(regExp.quote, '&quot;');
3302
- },
3303
- regExp: function(text) {
3304
- text = String(text);
3305
- return text.replace(regExp.escape, '\\$&');
3306
- }
3307
- },
3308
-
3309
- setting: function(name, value) {
3310
- module.debug('Changing setting', name, value);
3311
- if( $.isPlainObject(name) ) {
3312
- $.extend(true, settings, name);
3313
- }
3314
- else if(value !== undefined) {
3315
- if($.isPlainObject(settings[name])) {
3316
- $.extend(true, settings[name], value);
3317
- }
3318
- else {
3319
- settings[name] = value;
3320
- }
3321
- }
3322
- else {
3323
- return settings[name];
3324
- }
3325
- },
3326
- internal: function(name, value) {
3327
- if( $.isPlainObject(name) ) {
3328
- $.extend(true, module, name);
3329
- }
3330
- else if(value !== undefined) {
3331
- module[name] = value;
3332
- }
3333
- else {
3334
- return module[name];
3335
- }
3336
- },
3337
- debug: function() {
3338
- if(!settings.silent && settings.debug) {
3339
- if(settings.performance) {
3340
- module.performance.log(arguments);
3341
- }
3342
- else {
3343
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
3344
- module.debug.apply(console, arguments);
3345
- }
3346
- }
3347
- },
3348
- verbose: function() {
3349
- if(!settings.silent && settings.verbose && settings.debug) {
3350
- if(settings.performance) {
3351
- module.performance.log(arguments);
3352
- }
3353
- else {
3354
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
3355
- module.verbose.apply(console, arguments);
3356
- }
3357
- }
3358
- },
3359
- error: function() {
3360
- if(!settings.silent) {
3361
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
3362
- module.error.apply(console, arguments);
3363
- }
3364
- },
3365
- performance: {
3366
- log: function(message) {
3367
- var
3368
- currentTime,
3369
- executionTime,
3370
- previousTime
3371
- ;
3372
- if(settings.performance) {
3373
- currentTime = new Date().getTime();
3374
- previousTime = time || currentTime;
3375
- executionTime = currentTime - previousTime;
3376
- time = currentTime;
3377
- performance.push({
3378
- 'Name' : message[0],
3379
- 'Arguments' : [].slice.call(message, 1) || '',
3380
- 'Element' : element,
3381
- 'Execution Time' : executionTime
3382
- });
3383
- }
3384
- clearTimeout(module.performance.timer);
3385
- module.performance.timer = setTimeout(module.performance.display, 500);
3386
- },
3387
- display: function() {
3388
- var
3389
- title = settings.name + ':',
3390
- totalTime = 0
3391
- ;
3392
- time = false;
3393
- clearTimeout(module.performance.timer);
3394
- $.each(performance, function(index, data) {
3395
- totalTime += data['Execution Time'];
3396
- });
3397
- title += ' ' + totalTime + 'ms';
3398
- if(moduleSelector) {
3399
- title += ' \'' + moduleSelector + '\'';
3400
- }
3401
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
3402
- console.groupCollapsed(title);
3403
- if(console.table) {
3404
- console.table(performance);
3405
- }
3406
- else {
3407
- $.each(performance, function(index, data) {
3408
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
3409
- });
3410
- }
3411
- console.groupEnd();
3412
- }
3413
- performance = [];
3414
- }
3415
- },
3416
- invoke: function(query, passedArguments, context) {
3417
- var
3418
- object = instance,
3419
- maxDepth,
3420
- found,
3421
- response
3422
- ;
3423
- passedArguments = passedArguments || queryArguments;
3424
- context = element || context;
3425
- if(typeof query == 'string' && object !== undefined) {
3426
- query = query.split(/[\. ]/);
3427
- maxDepth = query.length - 1;
3428
- $.each(query, function(depth, value) {
3429
- var camelCaseValue = (depth != maxDepth)
3430
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
3431
- : query
3432
- ;
3433
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
3434
- object = object[camelCaseValue];
3435
- }
3436
- else if( object[camelCaseValue] !== undefined ) {
3437
- found = object[camelCaseValue];
3438
- return false;
3439
- }
3440
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
3441
- object = object[value];
3442
- }
3443
- else if( object[value] !== undefined ) {
3444
- found = object[value];
3445
- return false;
3446
- }
3447
- else {
3448
- module.error(error.method, query);
3449
- return false;
3450
- }
3451
- });
3452
- }
3453
- if ( $.isFunction( found ) ) {
3454
- response = found.apply(context, passedArguments);
3455
- }
3456
- else if(found !== undefined) {
3457
- response = found;
3458
- }
3459
- if($.isArray(returnedValue)) {
3460
- returnedValue.push(response);
3461
- }
3462
- else if(returnedValue !== undefined) {
3463
- returnedValue = [returnedValue, response];
3464
- }
3465
- else if(response !== undefined) {
3466
- returnedValue = response;
3467
- }
3468
- return found;
3469
- }
3470
- };
3471
-
3472
- if(methodInvoked) {
3473
- if(instance === undefined) {
3474
- module.initialize();
3475
- }
3476
- module.invoke(query);
3477
- }
3478
- else {
3479
- if(instance !== undefined) {
3480
- instance.invoke('destroy');
3481
- }
3482
- module.initialize();
3483
- }
3484
- })
3485
- ;
3486
- return (returnedValue !== undefined)
3487
- ? returnedValue
3488
- : $allModules
3489
- ;
3490
- };
3491
-
3492
- $.fn.dropdown.settings = {
3493
-
3494
- silent : false,
3495
- debug : false,
3496
- verbose : false,
3497
- performance : true,
3498
-
3499
- on : 'click', // what event should show menu action on item selection
3500
- action : 'activate', // action on item selection (nothing, activate, select, combo, hide, function(){})
3501
-
3502
-
3503
- apiSettings : false,
3504
- selectOnKeydown : true, // Whether selection should occur automatically when keyboard shortcuts used
3505
- minCharacters : 0, // Minimum characters required to trigger API call
3506
- saveRemoteData : true, // Whether remote name/value pairs should be stored in sessionStorage to allow remote data to be restored on page refresh
3507
- throttle : 200, // How long to wait after last user input to search remotely
3508
-
3509
- context : window, // Context to use when determining if on screen
3510
- direction : 'auto', // Whether dropdown should always open in one direction
3511
- keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
3512
-
3513
- match : 'both', // what to match against with search selection (both, text, or label)
3514
- fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches)
3515
-
3516
- placeholder : 'auto', // whether to convert blank <select> values to placeholder text
3517
- preserveHTML : true, // preserve html when selecting value
3518
- sortSelect : false, // sort selection on init
3519
-
3520
- forceSelection : true, // force a choice on blur with search selection
3521
-
3522
- allowAdditions : false, // whether multiple select should allow user added values
3523
- hideAdditions : true, // whether or not to hide special message prompting a user they can enter a value
3524
-
3525
- maxSelections : false, // When set to a number limits the number of selections to this count
3526
- useLabels : true, // whether multiple select should filter currently active selections from choices
3527
- delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
3528
-
3529
- showOnFocus : true, // show menu on focus
3530
- allowReselection : false, // whether current value should trigger callbacks when reselected
3531
- allowTab : true, // add tabindex to element
3532
- allowCategorySelection : false, // allow elements with sub-menus to be selected
3533
-
3534
- fireOnInit : false, // Whether callbacks should fire when initializing dropdown values
3535
-
3536
- transition : 'auto', // auto transition will slide down or up based on direction
3537
- duration : 200, // duration of transition
3538
-
3539
- glyphWidth : 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
3540
-
3541
- // label settings on multi-select
3542
- label: {
3543
- transition : 'scale',
3544
- duration : 200,
3545
- variation : false
3546
- },
3547
-
3548
- // delay before event
3549
- delay : {
3550
- hide : 300,
3551
- show : 200,
3552
- search : 20,
3553
- touch : 50
3554
- },
3555
-
3556
- /* Callbacks */
3557
- onChange : function(value, text, $selected){},
3558
- onAdd : function(value, text, $selected){},
3559
- onRemove : function(value, text, $selected){},
3560
-
3561
- onLabelSelect : function($selectedLabels){},
3562
- onLabelCreate : function(value, text) { return $(this); },
3563
- onLabelRemove : function(value) { return true; },
3564
- onNoResults : function(searchTerm) { return true; },
3565
- onShow : function(){},
3566
- onHide : function(){},
3567
-
3568
- /* Component */
3569
- name : 'Dropdown',
3570
- namespace : 'dropdown',
3571
-
3572
- message: {
3573
- addResult : 'Add <b>{term}</b>',
3574
- count : '{count} selected',
3575
- maxSelections : 'Max {maxCount} selections',
3576
- noResults : 'No results found.',
3577
- serverError : 'There was an error contacting the server'
3578
- },
3579
-
3580
- error : {
3581
- action : 'You called a dropdown action that was not defined',
3582
- alreadySetup : 'Once a select has been initialized behaviors must be called on the created ui dropdown',
3583
- labels : 'Allowing user additions currently requires the use of labels.',
3584
- missingMultiple : '<select> requires multiple property to be set to correctly preserve multiple values',
3585
- method : 'The method you called is not defined.',
3586
- noAPI : 'The API module is required to load resources remotely',
3587
- noStorage : 'Saving remote data requires session storage',
3588
- noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>'
3589
- },
3590
-
3591
- regExp : {
3592
- escape : /[-[\]{}()*+?.,\\^$|#\s]/g,
3593
- quote : /"/g
3594
- },
3595
-
3596
- metadata : {
3597
- defaultText : 'defaultText',
3598
- defaultValue : 'defaultValue',
3599
- placeholderText : 'placeholder',
3600
- text : 'text',
3601
- value : 'value'
3602
- },
3603
-
3604
- // property names for remote query
3605
- fields: {
3606
- remoteValues : 'results', // grouping for api results
3607
- values : 'values', // grouping for all dropdown values
3608
- disabled : 'disabled', // whether value should be disabled
3609
- name : 'name', // displayed dropdown text
3610
- value : 'value', // actual dropdown value
3611
- text : 'text' // displayed text when selected
3612
- },
3613
-
3614
- keys : {
3615
- backspace : 8,
3616
- delimiter : 188, // comma
3617
- deleteKey : 46,
3618
- enter : 13,
3619
- escape : 27,
3620
- pageUp : 33,
3621
- pageDown : 34,
3622
- leftArrow : 37,
3623
- upArrow : 38,
3624
- rightArrow : 39,
3625
- downArrow : 40
3626
- },
3627
-
3628
- selector : {
3629
- addition : '.addition',
3630
- dropdown : '.ui.dropdown',
3631
- hidden : '.hidden',
3632
- icon : '> .dropdown.icon',
3633
- input : '> input[type="hidden"], > select',
3634
- item : '.item',
3635
- label : '> .label',
3636
- remove : '> .label > .delete.icon',
3637
- siblingLabel : '.label',
3638
- menu : '.menu',
3639
- message : '.message',
3640
- menuIcon : '.dropdown.icon',
3641
- search : 'input.search, .menu > .search > input, .menu input.search',
3642
- sizer : '> input.sizer',
3643
- text : '> .text:not(.icon)',
3644
- unselectable : '.disabled, .filtered'
3645
- },
3646
-
3647
- className : {
3648
- active : 'active',
3649
- addition : 'addition',
3650
- animating : 'animating',
3651
- disabled : 'disabled',
3652
- empty : 'empty',
3653
- dropdown : 'ui dropdown',
3654
- filtered : 'filtered',
3655
- hidden : 'hidden transition',
3656
- item : 'item',
3657
- label : 'ui label',
3658
- loading : 'loading',
3659
- menu : 'menu',
3660
- message : 'message',
3661
- multiple : 'multiple',
3662
- placeholder : 'default',
3663
- sizer : 'sizer',
3664
- search : 'search',
3665
- selected : 'selected',
3666
- selection : 'selection',
3667
- upward : 'upward',
3668
- visible : 'visible'
3669
- }
3670
-
3671
- };
3672
-
3673
- /* Templates */
3674
- $.fn.dropdown.settings.templates = {
3675
-
3676
- // generates dropdown from select values
3677
- dropdown: function(select) {
3678
- var
3679
- placeholder = select.placeholder || false,
3680
- values = select.values || {},
3681
- html = ''
3682
- ;
3683
- html += '<i class="dropdown icon"></i>';
3684
- if(select.placeholder) {
3685
- html += '<div class="default text">' + placeholder + '</div>';
3686
- }
3687
- else {
3688
- html += '<div class="text"></div>';
3689
- }
3690
- html += '<div class="menu">';
3691
- $.each(select.values, function(index, option) {
3692
- html += (option.disabled)
3693
- ? '<div class="disabled item" data-value="' + option.value + '">' + option.name + '</div>'
3694
- : '<div class="item" data-value="' + option.value + '">' + option.name + '</div>'
3695
- ;
3696
- });
3697
- html += '</div>';
3698
- return html;
3699
- },
3700
-
3701
- // generates just menu from select
3702
- menu: function(response, fields) {
3703
- var
3704
- values = response[fields.values] || {},
3705
- html = ''
3706
- ;
3707
- $.each(values, function(index, option) {
3708
- var
3709
- maybeText = (option[fields.text])
3710
- ? 'data-text="' + option[fields.text] + '"'
3711
- : '',
3712
- maybeDisabled = (option[fields.disabled])
3713
- ? 'disabled '
3714
- : ''
3715
- ;
3716
- html += '<div class="'+ maybeDisabled +'item" data-value="' + option[fields.value] + '"' + maybeText + '>'
3717
- html += option[fields.name];
3718
- html += '</div>';
3719
- });
3720
- return html;
3721
- },
3722
-
3723
- // generates label for multiselect
3724
- label: function(value, text) {
3725
- return text + '<i class="delete icon"></i>';
3726
- },
3727
-
3728
-
3729
- // generates messages like "No results"
3730
- message: function(message) {
3731
- return message;
3732
- },
3733
-
3734
- // generates user addition to selection menu
3735
- addition: function(choice) {
3736
- return choice;
3737
- }
3738
-
3739
- };
3740
-
3741
- })( jQuery, window, document );