tom-select-rails 2.2.2 → 2.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tom-select-rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/tom-select-rails/cjs/constants.d.ts +12 -0
  4. data/vendor/assets/javascripts/tom-select-rails/cjs/constants.js +16 -0
  5. data/vendor/assets/javascripts/tom-select-rails/cjs/constants.js.map +1 -0
  6. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/highlight.d.ts +13 -0
  7. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/highlight.js +69 -0
  8. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/highlight.js.map +1 -0
  9. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/microevent.d.ts +20 -0
  10. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/microevent.js +64 -0
  11. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/microevent.js.map +1 -0
  12. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/microplugin.d.ts +71 -0
  13. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/microplugin.js +112 -0
  14. data/vendor/assets/javascripts/tom-select-rails/cjs/contrib/microplugin.js.map +1 -0
  15. data/vendor/assets/javascripts/tom-select-rails/cjs/defaults.d.ts +52 -0
  16. data/vendor/assets/javascripts/tom-select-rails/cjs/defaults.js +84 -0
  17. data/vendor/assets/javascripts/tom-select-rails/cjs/defaults.js.map +1 -0
  18. data/vendor/assets/javascripts/tom-select-rails/cjs/getSettings.d.ts +3 -0
  19. data/vendor/assets/javascripts/tom-select-rails/cjs/getSettings.js +146 -0
  20. data/vendor/assets/javascripts/tom-select-rails/cjs/getSettings.js.map +1 -0
  21. data/vendor/assets/javascripts/tom-select-rails/cjs/package.json +1 -0
  22. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/caret_position/plugin.d.ts +16 -0
  23. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/caret_position/plugin.js +66 -0
  24. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/caret_position/plugin.js.map +1 -0
  25. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/change_listener/plugin.d.ts +16 -0
  26. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/change_listener/plugin.js +25 -0
  27. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/change_listener/plugin.js.map +1 -0
  28. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/checkbox_options/plugin.d.ts +17 -0
  29. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/checkbox_options/plugin.js +108 -0
  30. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/checkbox_options/plugin.js.map +1 -0
  31. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/checkbox_options/types.d.ts +14 -0
  32. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/checkbox_options/types.js +3 -0
  33. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/checkbox_options/types.js.map +1 -0
  34. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/plugin.d.ts +17 -0
  35. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/plugin.js +44 -0
  36. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/plugin.js.map +1 -0
  37. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/types.d.ts +5 -0
  38. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/types.js +3 -0
  39. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/types.js.map +1 -0
  40. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/drag_drop/plugin.d.ts +16 -0
  41. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/drag_drop/plugin.js +117 -0
  42. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/drag_drop/plugin.js.map +1 -0
  43. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_header/plugin.d.ts +17 -0
  44. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_header/plugin.js +50 -0
  45. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_header/plugin.js.map +1 -0
  46. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_header/types.d.ts +8 -0
  47. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_header/types.js +3 -0
  48. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_header/types.js.map +1 -0
  49. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_input/plugin.d.ts +16 -0
  50. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_input/plugin.js +77 -0
  51. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_input/plugin.js.map +1 -0
  52. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/input_autogrow/plugin.d.ts +15 -0
  53. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/input_autogrow/plugin.js +47 -0
  54. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/input_autogrow/plugin.js.map +1 -0
  55. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/no_active_items/plugin.d.ts +15 -0
  56. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/no_active_items/plugin.js +22 -0
  57. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/no_active_items/plugin.js.map +1 -0
  58. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/no_backspace_delete/plugin.d.ts +15 -0
  59. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/no_backspace_delete/plugin.js +28 -0
  60. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/no_backspace_delete/plugin.js.map +1 -0
  61. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/optgroup_columns/plugin.d.ts +16 -0
  62. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/optgroup_columns/plugin.js +51 -0
  63. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/optgroup_columns/plugin.js.map +1 -0
  64. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/remove_button/plugin.d.ts +17 -0
  65. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/remove_button/plugin.js +61 -0
  66. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/remove_button/plugin.js.map +1 -0
  67. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/remove_button/types.d.ts +6 -0
  68. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/remove_button/types.js +3 -0
  69. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/remove_button/types.js.map +1 -0
  70. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/restore_on_backspace/plugin.d.ts +21 -0
  71. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/restore_on_backspace/plugin.js +24 -0
  72. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/restore_on_backspace/plugin.js.map +1 -0
  73. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/virtual_scroll/plugin.d.ts +16 -0
  74. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/virtual_scroll/plugin.js +170 -0
  75. data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/virtual_scroll/plugin.js.map +1 -0
  76. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.complete.d.ts +2 -0
  77. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.complete.js +33 -5497
  78. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.complete.js.map +1 -1
  79. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.d.ts +594 -0
  80. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.js +2147 -4555
  81. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.js.map +1 -1
  82. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.popular.d.ts +2 -0
  83. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.popular.js +15 -4934
  84. data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.popular.js.map +1 -1
  85. data/vendor/assets/javascripts/tom-select-rails/cjs/types/core.d.ts +49 -0
  86. data/vendor/assets/javascripts/tom-select-rails/cjs/types/core.js +3 -0
  87. data/vendor/assets/javascripts/tom-select-rails/cjs/types/core.js.map +1 -0
  88. data/vendor/assets/javascripts/tom-select-rails/cjs/types/index.d.ts +2 -0
  89. data/vendor/assets/javascripts/tom-select-rails/cjs/types/index.js +19 -0
  90. data/vendor/assets/javascripts/tom-select-rails/cjs/types/index.js.map +1 -0
  91. data/vendor/assets/javascripts/tom-select-rails/cjs/types/settings.d.ts +79 -0
  92. data/vendor/assets/javascripts/tom-select-rails/cjs/types/settings.js +3 -0
  93. data/vendor/assets/javascripts/tom-select-rails/cjs/types/settings.js.map +1 -0
  94. data/vendor/assets/javascripts/tom-select-rails/cjs/utils.d.ts +95 -0
  95. data/vendor/assets/javascripts/tom-select-rails/cjs/utils.js +130 -114
  96. data/vendor/assets/javascripts/tom-select-rails/cjs/utils.js.map +1 -1
  97. data/vendor/assets/javascripts/tom-select-rails/cjs/vanilla.d.ts +76 -0
  98. data/vendor/assets/javascripts/tom-select-rails/cjs/vanilla.js +190 -0
  99. data/vendor/assets/javascripts/tom-select-rails/cjs/vanilla.js.map +1 -0
  100. data/vendor/assets/javascripts/tom-select-rails/esm/constants.d.ts +12 -0
  101. data/vendor/assets/javascripts/tom-select-rails/esm/constants.js +13 -0
  102. data/vendor/assets/javascripts/tom-select-rails/esm/constants.js.map +1 -0
  103. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/highlight.d.ts +13 -0
  104. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/highlight.js +64 -0
  105. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/highlight.js.map +1 -0
  106. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/microevent.d.ts +20 -0
  107. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/microevent.js +61 -0
  108. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/microevent.js.map +1 -0
  109. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/microplugin.d.ts +71 -0
  110. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/microplugin.js +109 -0
  111. data/vendor/assets/javascripts/tom-select-rails/esm/contrib/microplugin.js.map +1 -0
  112. data/vendor/assets/javascripts/tom-select-rails/esm/defaults.d.ts +52 -0
  113. data/vendor/assets/javascripts/tom-select-rails/esm/defaults.js +82 -0
  114. data/vendor/assets/javascripts/tom-select-rails/esm/defaults.js.map +1 -0
  115. data/vendor/assets/javascripts/tom-select-rails/esm/getSettings.d.ts +3 -0
  116. data/vendor/assets/javascripts/tom-select-rails/esm/getSettings.js +143 -0
  117. data/vendor/assets/javascripts/tom-select-rails/esm/getSettings.js.map +1 -0
  118. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.d.ts +16 -0
  119. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.js +26 -78
  120. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.js.map +1 -1
  121. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.d.ts +16 -0
  122. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.js +3 -2
  123. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.js.map +1 -1
  124. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.d.ts +17 -0
  125. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.js +47 -96
  126. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.js.map +1 -1
  127. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/types.d.ts +14 -0
  128. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/types.js +2 -0
  129. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/types.js.map +1 -0
  130. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.d.ts +17 -0
  131. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.js +3 -75
  132. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.js.map +1 -1
  133. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/types.d.ts +5 -0
  134. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/types.js +2 -0
  135. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/types.js.map +1 -0
  136. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.d.ts +16 -0
  137. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.js +187 -29
  138. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.js.map +1 -1
  139. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.d.ts +17 -0
  140. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.js +27 -97
  141. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.js.map +1 -1
  142. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/types.d.ts +8 -0
  143. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/types.js +2 -0
  144. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/types.js.map +1 -0
  145. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.d.ts +16 -0
  146. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.js +46 -117
  147. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.js.map +1 -1
  148. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.d.ts +15 -0
  149. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.js +4 -6
  150. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.js.map +1 -1
  151. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.d.ts +15 -0
  152. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.js +2 -1
  153. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.js.map +1 -1
  154. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.d.ts +15 -0
  155. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.js +2 -2
  156. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.js.map +1 -1
  157. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.d.ts +16 -0
  158. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.js +3 -80
  159. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.js.map +1 -1
  160. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.d.ts +17 -0
  161. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.js +38 -104
  162. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.js.map +1 -1
  163. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/types.d.ts +6 -0
  164. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/types.js +2 -0
  165. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/types.js.map +1 -0
  166. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.d.ts +21 -0
  167. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.js +2 -3
  168. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.js.map +1 -1
  169. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.d.ts +16 -0
  170. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.js +56 -112
  171. data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.js.map +1 -1
  172. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.complete.d.ts +2 -0
  173. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.complete.js +17 -5481
  174. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.complete.js.map +1 -1
  175. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.d.ts +594 -0
  176. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.js +2127 -4536
  177. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.js.map +1 -1
  178. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.popular.d.ts +2 -0
  179. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.popular.js +8 -4927
  180. data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.popular.js.map +1 -1
  181. data/vendor/assets/javascripts/tom-select-rails/esm/types/core.d.ts +49 -0
  182. data/vendor/assets/javascripts/tom-select-rails/esm/types/core.js +2 -0
  183. data/vendor/assets/javascripts/tom-select-rails/esm/types/core.js.map +1 -0
  184. data/vendor/assets/javascripts/tom-select-rails/esm/types/index.d.ts +2 -0
  185. data/vendor/assets/javascripts/tom-select-rails/esm/types/index.js +3 -0
  186. data/vendor/assets/javascripts/tom-select-rails/esm/types/index.js.map +1 -0
  187. data/vendor/assets/javascripts/tom-select-rails/esm/types/settings.d.ts +79 -0
  188. data/vendor/assets/javascripts/tom-select-rails/esm/types/settings.js +2 -0
  189. data/vendor/assets/javascripts/tom-select-rails/esm/types/settings.js.map +1 -0
  190. data/vendor/assets/javascripts/tom-select-rails/esm/utils.d.ts +95 -0
  191. data/vendor/assets/javascripts/tom-select-rails/esm/utils.js +121 -107
  192. data/vendor/assets/javascripts/tom-select-rails/esm/utils.js.map +1 -1
  193. data/vendor/assets/javascripts/tom-select-rails/esm/vanilla.d.ts +76 -0
  194. data/vendor/assets/javascripts/tom-select-rails/esm/vanilla.js +172 -0
  195. data/vendor/assets/javascripts/tom-select-rails/esm/vanilla.js.map +1 -0
  196. data/vendor/assets/javascripts/tom-select-rails/js/package.json +1 -0
  197. data/vendor/assets/javascripts/tom-select-rails/js/plugins/caret_position.js +161 -213
  198. data/vendor/assets/javascripts/tom-select-rails/js/plugins/caret_position.js.map +1 -1
  199. data/vendor/assets/javascripts/tom-select-rails/js/plugins/change_listener.js +3 -2
  200. data/vendor/assets/javascripts/tom-select-rails/js/plugins/change_listener.js.map +1 -1
  201. data/vendor/assets/javascripts/tom-select-rails/js/plugins/checkbox_options.js +47 -96
  202. data/vendor/assets/javascripts/tom-select-rails/js/plugins/checkbox_options.js.map +1 -1
  203. data/vendor/assets/javascripts/tom-select-rails/js/plugins/clear_button.js +71 -143
  204. data/vendor/assets/javascripts/tom-select-rails/js/plugins/clear_button.js.map +1 -1
  205. data/vendor/assets/javascripts/tom-select-rails/js/plugins/drag_drop.js +187 -29
  206. data/vendor/assets/javascripts/tom-select-rails/js/plugins/drag_drop.js.map +1 -1
  207. data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_header.js +100 -170
  208. data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_header.js.map +1 -1
  209. data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_input.js +212 -283
  210. data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_input.js.map +1 -1
  211. data/vendor/assets/javascripts/tom-select-rails/js/plugins/input_autogrow.js +4 -6
  212. data/vendor/assets/javascripts/tom-select-rails/js/plugins/input_autogrow.js.map +1 -1
  213. data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_active_items.js +2 -1
  214. data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_active_items.js.map +1 -1
  215. data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_backspace_delete.js +2 -2
  216. data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_backspace_delete.js.map +1 -1
  217. data/vendor/assets/javascripts/tom-select-rails/js/plugins/optgroup_columns.js +84 -161
  218. data/vendor/assets/javascripts/tom-select-rails/js/plugins/optgroup_columns.js.map +1 -1
  219. data/vendor/assets/javascripts/tom-select-rails/js/plugins/remove_button.js +132 -198
  220. data/vendor/assets/javascripts/tom-select-rails/js/plugins/remove_button.js.map +1 -1
  221. data/vendor/assets/javascripts/tom-select-rails/js/plugins/restore_on_backspace.js +2 -3
  222. data/vendor/assets/javascripts/tom-select-rails/js/plugins/restore_on_backspace.js.map +1 -1
  223. data/vendor/assets/javascripts/tom-select-rails/js/plugins/virtual_scroll.js +270 -326
  224. data/vendor/assets/javascripts/tom-select-rails/js/plugins/virtual_scroll.js.map +1 -1
  225. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.js +1367 -1918
  226. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.js.map +1 -1
  227. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.min.js +186 -173
  228. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.min.js.map +1 -1
  229. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.js +1400 -1883
  230. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.js.map +1 -1
  231. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.min.js +366 -343
  232. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.min.js.map +1 -1
  233. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.js +1369 -1915
  234. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.js.map +1 -1
  235. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.min.js +339 -326
  236. data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.min.js.map +1 -1
  237. data/vendor/assets/javascripts/tom-select-rails/types/contrib/microevent.d.ts +1 -1
  238. data/vendor/assets/javascripts/tom-select-rails/types/contrib/microplugin.d.ts +4 -4
  239. data/vendor/assets/javascripts/tom-select-rails/types/defaults.d.ts +1 -0
  240. data/vendor/assets/javascripts/tom-select-rails/types/getSettings.d.ts +2 -2
  241. data/vendor/assets/javascripts/tom-select-rails/types/plugins/caret_position/plugin.d.ts +1 -1
  242. data/vendor/assets/javascripts/tom-select-rails/types/plugins/change_listener/plugin.d.ts +1 -1
  243. data/vendor/assets/javascripts/tom-select-rails/types/plugins/checkbox_options/plugin.d.ts +4 -3
  244. data/vendor/assets/javascripts/tom-select-rails/types/plugins/checkbox_options/types.d.ts +14 -0
  245. data/vendor/assets/javascripts/tom-select-rails/types/plugins/clear_button/plugin.d.ts +2 -2
  246. data/vendor/assets/javascripts/tom-select-rails/types/plugins/clear_button/types.d.ts +1 -1
  247. data/vendor/assets/javascripts/tom-select-rails/types/plugins/drag_drop/plugin.d.ts +1 -1
  248. data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_header/plugin.d.ts +2 -2
  249. data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_header/types.d.ts +1 -1
  250. data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_input/plugin.d.ts +1 -1
  251. data/vendor/assets/javascripts/tom-select-rails/types/plugins/input_autogrow/plugin.d.ts +1 -1
  252. data/vendor/assets/javascripts/tom-select-rails/types/plugins/no_active_items/plugin.d.ts +1 -1
  253. data/vendor/assets/javascripts/tom-select-rails/types/plugins/no_backspace_delete/plugin.d.ts +1 -1
  254. data/vendor/assets/javascripts/tom-select-rails/types/plugins/optgroup_columns/plugin.d.ts +1 -1
  255. data/vendor/assets/javascripts/tom-select-rails/types/plugins/remove_button/plugin.d.ts +2 -2
  256. data/vendor/assets/javascripts/tom-select-rails/types/plugins/remove_button/types.d.ts +1 -1
  257. data/vendor/assets/javascripts/tom-select-rails/types/plugins/restore_on_backspace/plugin.d.ts +3 -3
  258. data/vendor/assets/javascripts/tom-select-rails/types/plugins/virtual_scroll/plugin.d.ts +1 -1
  259. data/vendor/assets/javascripts/tom-select-rails/types/tom-select.complete.d.ts +1 -1
  260. data/vendor/assets/javascripts/tom-select-rails/types/tom-select.d.ts +12 -14
  261. data/vendor/assets/javascripts/tom-select-rails/types/tom-select.popular.d.ts +1 -1
  262. data/vendor/assets/javascripts/tom-select-rails/types/types/core.d.ts +17 -16
  263. data/vendor/assets/javascripts/tom-select-rails/types/types/index.d.ts +2 -2
  264. data/vendor/assets/javascripts/tom-select-rails/types/types/settings.d.ts +6 -5
  265. data/vendor/assets/javascripts/tom-select-rails/types/utils.d.ts +21 -2
  266. data/vendor/assets/javascripts/tom-select-rails/types/vanilla.d.ts +1 -1
  267. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.css +227 -219
  268. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.css.map +1 -1
  269. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.min.css +1 -1
  270. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.min.css.map +1 -1
  271. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.css +247 -254
  272. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.css.map +1 -1
  273. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.min.css +1 -1
  274. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.min.css.map +1 -1
  275. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.css +213 -210
  276. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.css.map +1 -1
  277. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.css +223 -215
  278. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.css.map +1 -1
  279. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.min.css +1 -1
  280. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.min.css.map +1 -1
  281. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.min.css +1 -1
  282. data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.min.css.map +1 -1
  283. data/vendor/assets/stylesheets/tom-select-rails/scss/_dropdown.scss +7 -10
  284. data/vendor/assets/stylesheets/tom-select-rails/scss/_items.scss +7 -9
  285. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/checkbox_options.scss +8 -2
  286. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/clear_button.scss +16 -14
  287. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/drag_drop.scss +6 -12
  288. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/dropdown_header.scss +3 -2
  289. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/dropdown_input.scss +7 -11
  290. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/input_autogrow.scss +0 -3
  291. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/optgroup_columns.scss +7 -5
  292. data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/remove_button.scss +20 -20
  293. data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.bootstrap4.scss +33 -39
  294. data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.bootstrap5.scss +54 -80
  295. data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.default.scss +16 -14
  296. data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.scss +52 -57
  297. metadata +154 -7
@@ -1,336 +1,280 @@
1
1
  /**
2
- * Tom Select v2.2.2
2
+ * Tom Select v2.4.3
3
3
  * Licensed under the Apache License, Version 2.0 (the "License");
4
4
  */
5
5
 
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
- typeof define === 'function' && define.amd ? define(factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.virtual_scroll = factory());
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.virtual_scroll = factory());
10
10
  })(this, (function () { 'use strict';
11
11
 
12
- /*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */
13
- const accent_pat = '[\u0300-\u036F\u{b7}\u{2be}\u{2bc}]';
14
- /** @type {TUnicodeMap} */
15
-
16
- const latin_convert = {};
17
- /** @type {TUnicodeMap} */
18
-
19
- const latin_condensed = {
20
- '/': '⁄∕',
21
- '0': '߀',
22
- "a": "ⱥɐɑ",
23
- "aa": "ꜳ",
24
- "ae": "æǽǣ",
25
- "ao": "ꜵ",
26
- "au": "ꜷ",
27
- "av": "ꜹꜻ",
28
- "ay": "ꜽ",
29
- "b": "ƀɓƃ",
30
- "c": "ꜿƈȼↄ",
31
- "d": "đɗɖᴅƌꮷԁɦ",
32
- "e": "ɛǝᴇɇ",
33
- "f": "ꝼƒ",
34
- "g": "ǥɠꞡᵹꝿɢ",
35
- "h": "ħⱨⱶɥ",
36
- "i": "ɨı",
37
- "j": "ɉȷ",
38
- "k": "ƙⱪꝁꝃꝅꞣ",
39
- "l": "łƚɫⱡꝉꝇꞁɭ",
40
- "m": "ɱɯϻ",
41
- "n": "ꞥƞɲꞑᴎлԉ",
42
- "o": "øǿɔɵꝋꝍᴑ",
43
- "oe": "œ",
44
- "oi": "ƣ",
45
- "oo": "ꝏ",
46
- "ou": "ȣ",
47
- "p": "ƥᵽꝑꝓꝕρ",
48
- "q": "ꝗꝙɋ",
49
- "r": "ɍɽꝛꞧꞃ",
50
- "s": "ßȿꞩꞅʂ",
51
- "t": "ŧƭʈⱦꞇ",
52
- "th": "þ",
53
- "tz": "ꜩ",
54
- "u": "ʉ",
55
- "v": "ʋꝟʌ",
56
- "vy": "ꝡ",
57
- "w": "ⱳ",
58
- "y": "ƴɏỿ",
59
- "z": "ƶȥɀⱬꝣ",
60
- "hv": "ƕ"
61
- };
62
-
63
- for (let latin in latin_condensed) {
64
- let unicode = latin_condensed[latin] || '';
65
-
66
- for (let i = 0; i < unicode.length; i++) {
67
- let char = unicode.substring(i, i + 1);
68
- latin_convert[char] = latin;
69
- }
70
- }
71
-
72
- new RegExp(Object.keys(latin_convert).join('|') + '|' + accent_pat, 'gu');
73
-
74
- /**
75
- * Iterates over arrays and hashes.
76
- *
77
- * ```
78
- * iterate(this.items, function(item, id) {
79
- * // invoked for each item
80
- * });
81
- * ```
82
- *
83
- */
84
-
85
- const iterate = (object, callback) => {
86
- if (Array.isArray(object)) {
87
- object.forEach(callback);
88
- } else {
89
- for (var key in object) {
90
- if (object.hasOwnProperty(key)) {
91
- callback(object[key], key);
92
- }
93
- }
94
- }
95
- };
96
-
97
- /**
98
- * Add css classes
99
- *
100
- */
101
-
102
- const addClasses = (elmts, ...classes) => {
103
- var norm_classes = classesArray(classes);
104
- elmts = castAsArray(elmts);
105
- elmts.map(el => {
106
- norm_classes.map(cls => {
107
- el.classList.add(cls);
108
- });
109
- });
110
- };
111
- /**
112
- * Return arguments
113
- *
114
- */
115
-
116
- const classesArray = args => {
117
- var classes = [];
118
- iterate(args, _classes => {
119
- if (typeof _classes === 'string') {
120
- _classes = _classes.trim().split(/[\11\12\14\15\40]/);
121
- }
122
-
123
- if (Array.isArray(_classes)) {
124
- classes = classes.concat(_classes);
125
- }
126
- });
127
- return classes.filter(Boolean);
128
- };
129
- /**
130
- * Create an array from arg if it's not already an array
131
- *
132
- */
133
-
134
- const castAsArray = arg => {
135
- if (!Array.isArray(arg)) {
136
- arg = [arg];
137
- }
138
-
139
- return arg;
140
- };
141
-
142
- /**
143
- * Plugin: "restore_on_backspace" (Tom Select)
144
- * Copyright (c) contributors
145
- *
146
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
147
- * file except in compliance with the License. You may obtain a copy of the License at:
148
- * http://www.apache.org/licenses/LICENSE-2.0
149
- *
150
- * Unless required by applicable law or agreed to in writing, software distributed under
151
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
152
- * ANY KIND, either express or implied. See the License for the specific language
153
- * governing permissions and limitations under the License.
154
- *
155
- */
156
- function plugin () {
157
- const self = this;
158
- const orig_canLoad = self.canLoad;
159
- const orig_clearActiveOption = self.clearActiveOption;
160
- const orig_loadCallback = self.loadCallback;
161
- var pagination = {};
162
- var dropdown_content;
163
- var loading_more = false;
164
- var load_more_opt;
165
- var default_values = [];
166
-
167
- if (!self.settings.shouldLoadMore) {
168
- // return true if additional results should be loaded
169
- self.settings.shouldLoadMore = () => {
170
- const scroll_percent = dropdown_content.clientHeight / (dropdown_content.scrollHeight - dropdown_content.scrollTop);
171
-
172
- if (scroll_percent > 0.9) {
173
- return true;
174
- }
175
-
176
- if (self.activeOption) {
177
- var selectable = self.selectable();
178
- var index = Array.from(selectable).indexOf(self.activeOption);
179
-
180
- if (index >= selectable.length - 2) {
181
- return true;
182
- }
183
- }
184
-
185
- return false;
186
- };
187
- }
188
-
189
- if (!self.settings.firstUrl) {
190
- throw 'virtual_scroll plugin requires a firstUrl() method';
191
- } // in order for virtual scrolling to work,
192
- // options need to be ordered the same way they're returned from the remote data source
193
-
194
-
195
- self.settings.sortField = [{
196
- field: '$order'
197
- }, {
198
- field: '$score'
199
- }]; // can we load more results for given query?
200
-
201
- const canLoadMore = query => {
202
- if (typeof self.settings.maxOptions === 'number' && dropdown_content.children.length >= self.settings.maxOptions) {
203
- return false;
204
- }
205
-
206
- if (query in pagination && pagination[query]) {
207
- return true;
208
- }
209
-
210
- return false;
211
- };
212
-
213
- const clearFilter = (option, value) => {
214
- if (self.items.indexOf(value) >= 0 || default_values.indexOf(value) >= 0) {
215
- return true;
216
- }
217
-
218
- return false;
219
- }; // set the next url that will be
220
-
221
-
222
- self.setNextUrl = (value, next_url) => {
223
- pagination[value] = next_url;
224
- }; // getUrl() to be used in settings.load()
225
-
226
-
227
- self.getUrl = query => {
228
- if (query in pagination) {
229
- const next_url = pagination[query];
230
- pagination[query] = false;
231
- return next_url;
232
- } // if the user goes back to a previous query
233
- // we need to load the first page again
234
-
235
-
236
- pagination = {};
237
- return self.settings.firstUrl.call(self, query);
238
- }; // don't clear the active option (and cause unwanted dropdown scroll)
239
- // while loading more results
240
-
241
-
242
- self.hook('instead', 'clearActiveOption', () => {
243
- if (loading_more) {
244
- return;
245
- }
246
-
247
- return orig_clearActiveOption.call(self);
248
- }); // override the canLoad method
249
-
250
- self.hook('instead', 'canLoad', query => {
251
- // first time the query has been seen
252
- if (!(query in pagination)) {
253
- return orig_canLoad.call(self, query);
254
- }
255
-
256
- return canLoadMore(query);
257
- }); // wrap the load
258
-
259
- self.hook('instead', 'loadCallback', (options, optgroups) => {
260
- if (!loading_more) {
261
- self.clearOptions(clearFilter);
262
- } else if (load_more_opt) {
263
- const first_option = options[0];
264
-
265
- if (first_option !== undefined) {
266
- load_more_opt.dataset.value = first_option[self.settings.valueField];
267
- }
268
- }
269
-
270
- orig_loadCallback.call(self, options, optgroups);
271
- loading_more = false;
272
- }); // add templates to dropdown
273
- // loading_more if we have another url in the queue
274
- // no_more_results if we don't have another url in the queue
275
-
276
- self.hook('after', 'refreshOptions', () => {
277
- const query = self.lastValue;
278
- var option;
279
-
280
- if (canLoadMore(query)) {
281
- option = self.render('loading_more', {
282
- query: query
283
- });
284
-
285
- if (option) {
286
- option.setAttribute('data-selectable', ''); // so that navigating dropdown with [down] keypresses can navigate to this node
287
-
288
- load_more_opt = option;
289
- }
290
- } else if (query in pagination && !dropdown_content.querySelector('.no-results')) {
291
- option = self.render('no_more_results', {
292
- query: query
293
- });
294
- }
295
-
296
- if (option) {
297
- addClasses(option, self.settings.optionClass);
298
- dropdown_content.append(option);
299
- }
300
- }); // add scroll listener and default templates
301
-
302
- self.on('initialize', () => {
303
- default_values = Object.keys(self.options);
304
- dropdown_content = self.dropdown_content; // default templates
305
-
306
- self.settings.render = Object.assign({}, {
307
- loading_more: () => {
308
- return `<div class="loading-more-results">Loading more results ... </div>`;
309
- },
310
- no_more_results: () => {
311
- return `<div class="no-more-results">No more results</div>`;
312
- }
313
- }, self.settings.render); // watch dropdown content scroll position
314
-
315
- dropdown_content.addEventListener('scroll', () => {
316
- if (!self.settings.shouldLoadMore.call(self)) {
317
- return;
318
- } // !important: this will get checked again in load() but we still need to check here otherwise loading_more will be set to true
319
-
320
-
321
- if (!canLoadMore(self.lastValue)) {
322
- return;
323
- } // don't call load() too much
324
-
325
-
326
- if (loading_more) return;
327
- loading_more = true;
328
- self.load.call(self, self.lastValue);
329
- });
330
- });
331
- }
332
-
333
- return plugin;
12
+ /**
13
+ * Converts a scalar to its best string representation
14
+ * for hash keys and HTML attribute values.
15
+ *
16
+ * Transformations:
17
+ * 'str' -> 'str'
18
+ * null -> ''
19
+ * undefined -> ''
20
+ * true -> '1'
21
+ * false -> '0'
22
+ * 0 -> '0'
23
+ * 1 -> '1'
24
+ *
25
+ */
26
+
27
+ /**
28
+ * Iterates over arrays and hashes.
29
+ *
30
+ * ```
31
+ * iterate(this.items, function(item, id) {
32
+ * // invoked for each item
33
+ * });
34
+ * ```
35
+ *
36
+ */
37
+ const iterate = (object, callback) => {
38
+ if (Array.isArray(object)) {
39
+ object.forEach(callback);
40
+ } else {
41
+ for (var key in object) {
42
+ if (object.hasOwnProperty(key)) {
43
+ callback(object[key], key);
44
+ }
45
+ }
46
+ }
47
+ };
48
+
49
+ /**
50
+ * Add css classes
51
+ *
52
+ */
53
+ const addClasses = (elmts, ...classes) => {
54
+ var norm_classes = classesArray(classes);
55
+ elmts = castAsArray(elmts);
56
+ elmts.map(el => {
57
+ norm_classes.map(cls => {
58
+ el.classList.add(cls);
59
+ });
60
+ });
61
+ };
62
+
63
+ /**
64
+ * Return arguments
65
+ *
66
+ */
67
+ const classesArray = args => {
68
+ var classes = [];
69
+ iterate(args, _classes => {
70
+ if (typeof _classes === 'string') {
71
+ _classes = _classes.trim().split(/[\t\n\f\r\s]/);
72
+ }
73
+ if (Array.isArray(_classes)) {
74
+ classes = classes.concat(_classes);
75
+ }
76
+ });
77
+ return classes.filter(Boolean);
78
+ };
79
+
80
+ /**
81
+ * Create an array from arg if it's not already an array
82
+ *
83
+ */
84
+ const castAsArray = arg => {
85
+ if (!Array.isArray(arg)) {
86
+ arg = [arg];
87
+ }
88
+ return arg;
89
+ };
90
+
91
+ /**
92
+ * Plugin: "restore_on_backspace" (Tom Select)
93
+ * Copyright (c) contributors
94
+ *
95
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
96
+ * file except in compliance with the License. You may obtain a copy of the License at:
97
+ * http://www.apache.org/licenses/LICENSE-2.0
98
+ *
99
+ * Unless required by applicable law or agreed to in writing, software distributed under
100
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
101
+ * ANY KIND, either express or implied. See the License for the specific language
102
+ * governing permissions and limitations under the License.
103
+ *
104
+ */
105
+
106
+ function plugin () {
107
+ const self = this;
108
+ const orig_canLoad = self.canLoad;
109
+ const orig_clearActiveOption = self.clearActiveOption;
110
+ const orig_loadCallback = self.loadCallback;
111
+ var pagination = {};
112
+ var dropdown_content;
113
+ var loading_more = false;
114
+ var load_more_opt;
115
+ var default_values = [];
116
+ if (!self.settings.shouldLoadMore) {
117
+ // return true if additional results should be loaded
118
+ self.settings.shouldLoadMore = () => {
119
+ const scroll_percent = dropdown_content.clientHeight / (dropdown_content.scrollHeight - dropdown_content.scrollTop);
120
+ if (scroll_percent > 0.9) {
121
+ return true;
122
+ }
123
+ if (self.activeOption) {
124
+ var selectable = self.selectable();
125
+ var index = Array.from(selectable).indexOf(self.activeOption);
126
+ if (index >= selectable.length - 2) {
127
+ return true;
128
+ }
129
+ }
130
+ return false;
131
+ };
132
+ }
133
+ if (!self.settings.firstUrl) {
134
+ throw 'virtual_scroll plugin requires a firstUrl() method';
135
+ }
136
+
137
+ // in order for virtual scrolling to work,
138
+ // options need to be ordered the same way they're returned from the remote data source
139
+ self.settings.sortField = [{
140
+ field: '$order'
141
+ }, {
142
+ field: '$score'
143
+ }];
144
+
145
+ // can we load more results for given query?
146
+ const canLoadMore = query => {
147
+ if (typeof self.settings.maxOptions === 'number' && dropdown_content.children.length >= self.settings.maxOptions) {
148
+ return false;
149
+ }
150
+ if (query in pagination && pagination[query]) {
151
+ return true;
152
+ }
153
+ return false;
154
+ };
155
+ const clearFilter = (option, value) => {
156
+ if (self.items.indexOf(value) >= 0 || default_values.indexOf(value) >= 0) {
157
+ return true;
158
+ }
159
+ return false;
160
+ };
161
+
162
+ // set the next url that will be
163
+ self.setNextUrl = (value, next_url) => {
164
+ pagination[value] = next_url;
165
+ };
166
+
167
+ // getUrl() to be used in settings.load()
168
+ self.getUrl = query => {
169
+ if (query in pagination) {
170
+ const next_url = pagination[query];
171
+ pagination[query] = false;
172
+ return next_url;
173
+ }
174
+
175
+ // if the user goes back to a previous query
176
+ // we need to load the first page again
177
+ self.clearPagination();
178
+ return self.settings.firstUrl.call(self, query);
179
+ };
180
+
181
+ // clear pagination
182
+ self.clearPagination = () => {
183
+ pagination = {};
184
+ };
185
+
186
+ // don't clear the active option (and cause unwanted dropdown scroll)
187
+ // while loading more results
188
+ self.hook('instead', 'clearActiveOption', () => {
189
+ if (loading_more) {
190
+ return;
191
+ }
192
+ return orig_clearActiveOption.call(self);
193
+ });
194
+
195
+ // override the canLoad method
196
+ self.hook('instead', 'canLoad', query => {
197
+ // first time the query has been seen
198
+ if (!(query in pagination)) {
199
+ return orig_canLoad.call(self, query);
200
+ }
201
+ return canLoadMore(query);
202
+ });
203
+
204
+ // wrap the load
205
+ self.hook('instead', 'loadCallback', (options, optgroups) => {
206
+ if (!loading_more) {
207
+ self.clearOptions(clearFilter);
208
+ } else if (load_more_opt) {
209
+ const first_option = options[0];
210
+ if (first_option !== undefined) {
211
+ load_more_opt.dataset.value = first_option[self.settings.valueField];
212
+ }
213
+ }
214
+ orig_loadCallback.call(self, options, optgroups);
215
+ loading_more = false;
216
+ });
217
+
218
+ // add templates to dropdown
219
+ // loading_more if we have another url in the queue
220
+ // no_more_results if we don't have another url in the queue
221
+ self.hook('after', 'refreshOptions', () => {
222
+ const query = self.lastValue;
223
+ var option;
224
+ if (canLoadMore(query)) {
225
+ option = self.render('loading_more', {
226
+ query: query
227
+ });
228
+ if (option) {
229
+ option.setAttribute('data-selectable', ''); // so that navigating dropdown with [down] keypresses can navigate to this node
230
+ load_more_opt = option;
231
+ }
232
+ } else if (query in pagination && !dropdown_content.querySelector('.no-results')) {
233
+ option = self.render('no_more_results', {
234
+ query: query
235
+ });
236
+ }
237
+ if (option) {
238
+ addClasses(option, self.settings.optionClass);
239
+ dropdown_content.append(option);
240
+ }
241
+ });
242
+
243
+ // add scroll listener and default templates
244
+ self.on('initialize', () => {
245
+ default_values = Object.keys(self.options);
246
+ dropdown_content = self.dropdown_content;
247
+
248
+ // default templates
249
+ self.settings.render = Object.assign({}, {
250
+ loading_more: () => {
251
+ return `<div class="loading-more-results">Loading more results ... </div>`;
252
+ },
253
+ no_more_results: () => {
254
+ return `<div class="no-more-results">No more results</div>`;
255
+ }
256
+ }, self.settings.render);
257
+
258
+ // watch dropdown content scroll position
259
+ dropdown_content.addEventListener('scroll', () => {
260
+ if (!self.settings.shouldLoadMore.call(self)) {
261
+ return;
262
+ }
263
+
264
+ // !important: this will get checked again in load() but we still need to check here otherwise loading_more will be set to true
265
+ if (!canLoadMore(self.lastValue)) {
266
+ return;
267
+ }
268
+
269
+ // don't call load() too much
270
+ if (loading_more) return;
271
+ loading_more = true;
272
+ self.load.call(self, self.lastValue);
273
+ });
274
+ });
275
+ }
276
+
277
+ return plugin;
334
278
 
335
279
  }));
336
280
  //# sourceMappingURL=virtual_scroll.js.map