stimulus-library 0.7.3 → 0.8.0-beta

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 (356) hide show
  1. package/README.md +1 -1
  2. package/dist/controllers/ajax/async_block_controller.js +30 -0
  3. package/dist/controllers/ajax/{index.d.ts → index.js} +0 -1
  4. package/dist/controllers/ajax/lazy_block_controller.js +37 -0
  5. package/dist/controllers/ajax/load_block_controller.js +63 -0
  6. package/dist/controllers/ajax/poll_block_controller.js +35 -0
  7. package/dist/controllers/anchor_spy_controller.js +47 -0
  8. package/dist/controllers/back_link_controller.js +25 -0
  9. package/dist/controllers/clipboard_controller.js +35 -0
  10. package/dist/controllers/confirm_controller.js +33 -0
  11. package/dist/controllers/confirm_navigation_controller.js +29 -0
  12. package/dist/controllers/debug_controller.js +7 -0
  13. package/dist/controllers/disable_with_controller.js +66 -0
  14. package/dist/controllers/dismissable_controller.js +8 -0
  15. package/dist/controllers/element_save_controller.js +80 -0
  16. package/dist/controllers/empty_dom_controller.js +42 -0
  17. package/dist/controllers/equalize_controller.js +39 -0
  18. package/dist/controllers/forms/auto_submit_form_controller.js +62 -0
  19. package/dist/controllers/forms/autosize_controller.js +32 -0
  20. package/dist/controllers/forms/char_count_controller.js +37 -0
  21. package/dist/controllers/forms/checkbox_disable_inputs_controller.js +32 -0
  22. package/dist/controllers/forms/checkbox_enable_inputs_controller.js +32 -0
  23. package/dist/controllers/forms/checkbox_select_all_controller.js +35 -0
  24. package/dist/controllers/forms/checkbox_xor_controller.js +24 -0
  25. package/dist/controllers/forms/detect_dirty_controller.js +98 -0
  26. package/dist/controllers/forms/detect_dirty_form_controller.js +107 -0
  27. package/dist/controllers/forms/enable_inputs_controller.js +21 -0
  28. package/dist/controllers/forms/focus_steal_controller.js +28 -0
  29. package/dist/controllers/forms/form_rc_controller.js +47 -0
  30. package/dist/controllers/forms/form_save_controller.js +109 -0
  31. package/dist/controllers/forms/{index.d.ts → index.js} +0 -1
  32. package/dist/controllers/forms/limited_selection_checkboxes_controller.js +28 -0
  33. package/dist/controllers/forms/navigate_form_errors_controller.js +154 -0
  34. package/dist/controllers/forms/nested_form_controller.js +49 -0
  35. package/dist/controllers/forms/password_confirm_controller.js +26 -0
  36. package/dist/controllers/forms/password_peek_controller.js +21 -0
  37. package/dist/controllers/forms/remote_form_controller.js +26 -0
  38. package/dist/controllers/forms/sync_inputs_controller.js +67 -0
  39. package/dist/controllers/forms/value_warn_controller.js +45 -0
  40. package/dist/controllers/forms/word_count_controller.js +37 -0
  41. package/dist/controllers/{index.d.ts → index.js} +3 -1
  42. package/dist/controllers/media/fallback_image_controller.js +44 -0
  43. package/dist/controllers/media/{index.d.ts → index.js} +0 -1
  44. package/dist/controllers/media/lightbox_image_controller.js +71 -0
  45. package/dist/controllers/media/media_player_controller.js +31 -0
  46. package/dist/controllers/prefetch_controller.js +74 -0
  47. package/dist/controllers/print_button_controller.js +18 -0
  48. package/dist/controllers/responsive_iframe_controller.js +35 -0
  49. package/dist/controllers/scroll/{index.d.ts → index.js} +0 -1
  50. package/dist/controllers/scroll/scroll_container_controller.js +81 -0
  51. package/dist/controllers/scroll/scroll_into_focus_controller.js +20 -0
  52. package/dist/controllers/scroll/scroll_to_bottom_controller.js +37 -0
  53. package/dist/controllers/scroll/scroll_to_controller.js +22 -0
  54. package/dist/controllers/scroll/scroll_to_top_controller.js +37 -0
  55. package/dist/controllers/self_destruct_controller.js +11 -0
  56. package/dist/controllers/signal/events.js +12 -0
  57. package/dist/controllers/signal/expressions.js +54 -0
  58. package/dist/controllers/signal/{index.d.ts → index.js} +0 -1
  59. package/dist/controllers/signal/signal_action_controller.js +31 -0
  60. package/dist/controllers/signal/signal_dom_children_controller.js +40 -0
  61. package/dist/controllers/signal/signal_input_controller.js +36 -0
  62. package/dist/controllers/signal/signal_visibility_controller.js +44 -0
  63. package/dist/controllers/sticky_controller.js +44 -0
  64. package/dist/controllers/tables/{index.d.ts → index.js} +0 -1
  65. package/dist/controllers/tables/table_sort_controller.js +97 -0
  66. package/dist/controllers/tables/table_truncate_controller.js +81 -0
  67. package/dist/controllers/teleport_controller.js +48 -0
  68. package/dist/controllers/temporary_state_controller.js +65 -0
  69. package/dist/controllers/toggle_class_controller.js +115 -0
  70. package/dist/controllers/trix_modifier_controller.js +121 -0
  71. package/dist/controllers/turbo_frame_rc_controller.js +65 -0
  72. package/dist/controllers/turbo_frame_refresh_controller.js +32 -0
  73. package/dist/controllers/utility/alert_controller.js +7 -0
  74. package/dist/controllers/utility/fullscreen_controller.js +10 -0
  75. package/dist/controllers/utility/{index.d.ts → index.js} +0 -1
  76. package/dist/controllers/utility/intersection_controller.js +25 -0
  77. package/dist/controllers/utility/interval_controller.js +16 -0
  78. package/dist/controllers/utility/presence_controller.js +19 -0
  79. package/dist/controllers/utility/print_controller.js +7 -0
  80. package/dist/controllers/utility/timeout_controller.js +13 -0
  81. package/dist/controllers/utility/user_focus_controller.js +23 -0
  82. package/dist/controllers/visual/clock_controller.js +51 -0
  83. package/dist/controllers/visual/countdown_controller.js +116 -0
  84. package/dist/controllers/visual/duration_controller.js +79 -0
  85. package/dist/controllers/visual/{index.d.ts → index.js} +0 -1
  86. package/dist/controllers/visual/tabs_controller.js +79 -0
  87. package/dist/controllers/visual/time_distance_controller.js +50 -0
  88. package/dist/controllers/visual/tree_view_controller.js +92 -0
  89. package/dist/{index.d.ts → index.js} +3 -1
  90. package/dist/mixins/create_mixin.js +11 -0
  91. package/dist/mixins/{index.d.ts → index.js} +0 -1
  92. package/dist/mixins/install_class_methods.js +28 -0
  93. package/dist/mixins/use_click_outside.js +17 -0
  94. package/dist/mixins/use_event_bus.js +19 -0
  95. package/dist/mixins/use_event_listener.js +34 -0
  96. package/dist/mixins/use_fullscreen.js +42 -0
  97. package/dist/mixins/use_geolocation.js +62 -0
  98. package/dist/mixins/use_hover.js +29 -0
  99. package/dist/mixins/use_injected_html.js +37 -0
  100. package/dist/mixins/use_intersection.js +45 -0
  101. package/dist/mixins/use_interval.js +13 -0
  102. package/dist/mixins/use_localstorage.js +122 -0
  103. package/dist/mixins/use_mutation_observer.js +9 -0
  104. package/dist/mixins/use_temporary_content.js +38 -0
  105. package/dist/mixins/use_timeout.js +20 -0
  106. package/dist/mixins/use_trix_modifiers.js +71 -0
  107. package/dist/polyfills/string.replaceAll.js +13 -0
  108. package/dist/utilities/arrays.js +3 -0
  109. package/dist/utilities/base_controller.js +56 -0
  110. package/dist/utilities/elements.js +102 -0
  111. package/dist/utilities/ephemeral_controller.js +42 -0
  112. package/dist/utilities/event_bus.js +2 -0
  113. package/dist/utilities/events.js +10 -0
  114. package/dist/utilities/fetchRetry.js +22 -0
  115. package/dist/utilities/{index.d.ts → index.js} +0 -1
  116. package/dist/utilities/logging.js +82 -0
  117. package/dist/utilities/reactive.js +23 -0
  118. package/dist/utilities/request_submit.js +20 -0
  119. package/dist/utilities/scroll.js +89 -0
  120. package/dist/utilities/stimulus.js +13 -0
  121. package/dist/utilities/strings.js +5 -0
  122. package/dist/utilities/turbo.js +3 -0
  123. package/package.json +8 -18
  124. package/CHANGELOG.md +0 -499
  125. package/dist/controllers/ajax/async_block_controller.d.ts +0 -18
  126. package/dist/controllers/ajax/async_block_controller.d.ts.map +0 -1
  127. package/dist/controllers/ajax/index.d.ts.map +0 -1
  128. package/dist/controllers/ajax/lazy_block_controller.d.ts +0 -10
  129. package/dist/controllers/ajax/lazy_block_controller.d.ts.map +0 -1
  130. package/dist/controllers/ajax/load_block_controller.d.ts +0 -24
  131. package/dist/controllers/ajax/load_block_controller.d.ts.map +0 -1
  132. package/dist/controllers/ajax/poll_block_controller.d.ts +0 -16
  133. package/dist/controllers/ajax/poll_block_controller.d.ts.map +0 -1
  134. package/dist/controllers/anchor_spy_controller.d.ts +0 -21
  135. package/dist/controllers/anchor_spy_controller.d.ts.map +0 -1
  136. package/dist/controllers/back_link_controller.d.ts +0 -17
  137. package/dist/controllers/back_link_controller.d.ts.map +0 -1
  138. package/dist/controllers/clipboard_controller.d.ts +0 -19
  139. package/dist/controllers/clipboard_controller.d.ts.map +0 -1
  140. package/dist/controllers/confirm_controller.d.ts +0 -13
  141. package/dist/controllers/confirm_controller.d.ts.map +0 -1
  142. package/dist/controllers/confirm_navigation_controller.d.ts +0 -15
  143. package/dist/controllers/confirm_navigation_controller.d.ts.map +0 -1
  144. package/dist/controllers/debug_controller.d.ts +0 -7
  145. package/dist/controllers/debug_controller.d.ts.map +0 -1
  146. package/dist/controllers/disable_with_controller.d.ts +0 -20
  147. package/dist/controllers/disable_with_controller.d.ts.map +0 -1
  148. package/dist/controllers/dismissable_controller.d.ts +0 -7
  149. package/dist/controllers/dismissable_controller.d.ts.map +0 -1
  150. package/dist/controllers/element_save_controller.d.ts +0 -31
  151. package/dist/controllers/element_save_controller.d.ts.map +0 -1
  152. package/dist/controllers/empty_dom_controller.d.ts +0 -22
  153. package/dist/controllers/empty_dom_controller.d.ts.map +0 -1
  154. package/dist/controllers/forms/auto_submit_form_controller.d.ts +0 -23
  155. package/dist/controllers/forms/auto_submit_form_controller.d.ts.map +0 -1
  156. package/dist/controllers/forms/autosize_controller.d.ts +0 -9
  157. package/dist/controllers/forms/autosize_controller.d.ts.map +0 -1
  158. package/dist/controllers/forms/char_count_controller.d.ts +0 -21
  159. package/dist/controllers/forms/char_count_controller.d.ts.map +0 -1
  160. package/dist/controllers/forms/checkbox_disable_inputs_controller.d.ts +0 -17
  161. package/dist/controllers/forms/checkbox_disable_inputs_controller.d.ts.map +0 -1
  162. package/dist/controllers/forms/checkbox_enable_inputs_controller.d.ts +0 -17
  163. package/dist/controllers/forms/checkbox_enable_inputs_controller.d.ts.map +0 -1
  164. package/dist/controllers/forms/checkbox_select_all_controller.d.ts +0 -14
  165. package/dist/controllers/forms/checkbox_select_all_controller.d.ts.map +0 -1
  166. package/dist/controllers/forms/checkbox_xor_controller.d.ts +0 -9
  167. package/dist/controllers/forms/checkbox_xor_controller.d.ts.map +0 -1
  168. package/dist/controllers/forms/detect_dirty_controller.d.ts +0 -15
  169. package/dist/controllers/forms/detect_dirty_controller.d.ts.map +0 -1
  170. package/dist/controllers/forms/detect_dirty_form_controller.d.ts +0 -18
  171. package/dist/controllers/forms/detect_dirty_form_controller.d.ts.map +0 -1
  172. package/dist/controllers/forms/enable_inputs_controller.d.ts +0 -14
  173. package/dist/controllers/forms/enable_inputs_controller.d.ts.map +0 -1
  174. package/dist/controllers/forms/focus_steal_controller.d.ts +0 -12
  175. package/dist/controllers/forms/focus_steal_controller.d.ts.map +0 -1
  176. package/dist/controllers/forms/form_rc_controller.d.ts +0 -18
  177. package/dist/controllers/forms/form_rc_controller.d.ts.map +0 -1
  178. package/dist/controllers/forms/form_save_controller.d.ts +0 -32
  179. package/dist/controllers/forms/form_save_controller.d.ts.map +0 -1
  180. package/dist/controllers/forms/index.d.ts.map +0 -1
  181. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts +0 -17
  182. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts.map +0 -1
  183. package/dist/controllers/forms/navigate_form_errors_controller.d.ts +0 -41
  184. package/dist/controllers/forms/navigate_form_errors_controller.d.ts.map +0 -1
  185. package/dist/controllers/forms/nested_form_controller.d.ts +0 -22
  186. package/dist/controllers/forms/nested_form_controller.d.ts.map +0 -1
  187. package/dist/controllers/forms/password_confirm_controller.d.ts +0 -12
  188. package/dist/controllers/forms/password_confirm_controller.d.ts.map +0 -1
  189. package/dist/controllers/forms/password_peek_controller.d.ts +0 -9
  190. package/dist/controllers/forms/password_peek_controller.d.ts.map +0 -1
  191. package/dist/controllers/forms/remote_form_controller.d.ts +0 -14
  192. package/dist/controllers/forms/remote_form_controller.d.ts.map +0 -1
  193. package/dist/controllers/forms/sync_inputs_controller.d.ts +0 -20
  194. package/dist/controllers/forms/sync_inputs_controller.d.ts.map +0 -1
  195. package/dist/controllers/forms/value_warn_controller.d.ts +0 -31
  196. package/dist/controllers/forms/value_warn_controller.d.ts.map +0 -1
  197. package/dist/controllers/forms/word_count_controller.d.ts +0 -21
  198. package/dist/controllers/forms/word_count_controller.d.ts.map +0 -1
  199. package/dist/controllers/index.d.ts.map +0 -1
  200. package/dist/controllers/media/fallback_image_controller.d.ts +0 -20
  201. package/dist/controllers/media/fallback_image_controller.d.ts.map +0 -1
  202. package/dist/controllers/media/index.d.ts.map +0 -1
  203. package/dist/controllers/media/lightbox_image_controller.d.ts +0 -31
  204. package/dist/controllers/media/lightbox_image_controller.d.ts.map +0 -1
  205. package/dist/controllers/media/media_player_controller.d.ts +0 -10
  206. package/dist/controllers/media/media_player_controller.d.ts.map +0 -1
  207. package/dist/controllers/prefetch_controller.d.ts +0 -17
  208. package/dist/controllers/prefetch_controller.d.ts.map +0 -1
  209. package/dist/controllers/print_button_controller.d.ts +0 -8
  210. package/dist/controllers/print_button_controller.d.ts.map +0 -1
  211. package/dist/controllers/responsive_iframe_controller.d.ts +0 -17
  212. package/dist/controllers/responsive_iframe_controller.d.ts.map +0 -1
  213. package/dist/controllers/scroll/index.d.ts.map +0 -1
  214. package/dist/controllers/scroll/scroll_container_controller.d.ts +0 -22
  215. package/dist/controllers/scroll/scroll_container_controller.d.ts.map +0 -1
  216. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts +0 -16
  217. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts.map +0 -1
  218. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts +0 -12
  219. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts.map +0 -1
  220. package/dist/controllers/scroll/scroll_to_controller.d.ts +0 -18
  221. package/dist/controllers/scroll/scroll_to_controller.d.ts.map +0 -1
  222. package/dist/controllers/scroll/scroll_to_top_controller.d.ts +0 -12
  223. package/dist/controllers/scroll/scroll_to_top_controller.d.ts.map +0 -1
  224. package/dist/controllers/self_destruct_controller.d.ts +0 -9
  225. package/dist/controllers/self_destruct_controller.d.ts.map +0 -1
  226. package/dist/controllers/signal/events.d.ts +0 -5
  227. package/dist/controllers/signal/events.d.ts.map +0 -1
  228. package/dist/controllers/signal/expressions.d.ts +0 -2
  229. package/dist/controllers/signal/expressions.d.ts.map +0 -1
  230. package/dist/controllers/signal/index.d.ts.map +0 -1
  231. package/dist/controllers/signal/signal_action_controller.d.ts +0 -15
  232. package/dist/controllers/signal/signal_action_controller.d.ts.map +0 -1
  233. package/dist/controllers/signal/signal_dom_children_controller.d.ts +0 -17
  234. package/dist/controllers/signal/signal_dom_children_controller.d.ts.map +0 -1
  235. package/dist/controllers/signal/signal_input_controller.d.ts +0 -20
  236. package/dist/controllers/signal/signal_input_controller.d.ts.map +0 -1
  237. package/dist/controllers/signal/signal_visibility_controller.d.ts +0 -18
  238. package/dist/controllers/signal/signal_visibility_controller.d.ts.map +0 -1
  239. package/dist/controllers/sticky_controller.d.ts +0 -16
  240. package/dist/controllers/sticky_controller.d.ts.map +0 -1
  241. package/dist/controllers/tables/index.d.ts.map +0 -1
  242. package/dist/controllers/tables/table_sort_controller.d.ts +0 -20
  243. package/dist/controllers/tables/table_sort_controller.d.ts.map +0 -1
  244. package/dist/controllers/tables/table_truncate_controller.d.ts +0 -26
  245. package/dist/controllers/tables/table_truncate_controller.d.ts.map +0 -1
  246. package/dist/controllers/teleport_controller.d.ts +0 -16
  247. package/dist/controllers/teleport_controller.d.ts.map +0 -1
  248. package/dist/controllers/temporary_state_controller.d.ts +0 -27
  249. package/dist/controllers/temporary_state_controller.d.ts.map +0 -1
  250. package/dist/controllers/toggle_class_controller.d.ts +0 -36
  251. package/dist/controllers/toggle_class_controller.d.ts.map +0 -1
  252. package/dist/controllers/trix_modifier_controller.d.ts +0 -88
  253. package/dist/controllers/trix_modifier_controller.d.ts.map +0 -1
  254. package/dist/controllers/turbo_frame_rc_controller.d.ts +0 -21
  255. package/dist/controllers/turbo_frame_rc_controller.d.ts.map +0 -1
  256. package/dist/controllers/turbo_frame_refresh_controller.d.ts +0 -14
  257. package/dist/controllers/turbo_frame_refresh_controller.d.ts.map +0 -1
  258. package/dist/controllers/utility/alert_controller.d.ts +0 -9
  259. package/dist/controllers/utility/alert_controller.d.ts.map +0 -1
  260. package/dist/controllers/utility/fullscreen_controller.d.ts +0 -8
  261. package/dist/controllers/utility/fullscreen_controller.d.ts.map +0 -1
  262. package/dist/controllers/utility/index.d.ts.map +0 -1
  263. package/dist/controllers/utility/intersection_controller.d.ts +0 -14
  264. package/dist/controllers/utility/intersection_controller.d.ts.map +0 -1
  265. package/dist/controllers/utility/interval_controller.d.ts +0 -11
  266. package/dist/controllers/utility/interval_controller.d.ts.map +0 -1
  267. package/dist/controllers/utility/presence_controller.d.ts +0 -14
  268. package/dist/controllers/utility/presence_controller.d.ts.map +0 -1
  269. package/dist/controllers/utility/print_controller.d.ts +0 -5
  270. package/dist/controllers/utility/print_controller.d.ts.map +0 -1
  271. package/dist/controllers/utility/timeout_controller.d.ts +0 -10
  272. package/dist/controllers/utility/timeout_controller.d.ts.map +0 -1
  273. package/dist/controllers/utility/user_focus_controller.d.ts +0 -9
  274. package/dist/controllers/utility/user_focus_controller.d.ts.map +0 -1
  275. package/dist/controllers/visual/clock_controller.d.ts +0 -16
  276. package/dist/controllers/visual/clock_controller.d.ts.map +0 -1
  277. package/dist/controllers/visual/countdown_controller.d.ts +0 -46
  278. package/dist/controllers/visual/countdown_controller.d.ts.map +0 -1
  279. package/dist/controllers/visual/duration_controller.d.ts +0 -26
  280. package/dist/controllers/visual/duration_controller.d.ts.map +0 -1
  281. package/dist/controllers/visual/index.d.ts.map +0 -1
  282. package/dist/controllers/visual/tabs_controller.d.ts +0 -30
  283. package/dist/controllers/visual/tabs_controller.d.ts.map +0 -1
  284. package/dist/controllers/visual/time_distance_controller.d.ts +0 -16
  285. package/dist/controllers/visual/time_distance_controller.d.ts.map +0 -1
  286. package/dist/controllers/visual/tree_view_controller.d.ts +0 -26
  287. package/dist/controllers/visual/tree_view_controller.d.ts.map +0 -1
  288. package/dist/index.d.ts.map +0 -1
  289. package/dist/mixins/create_mixin.d.ts +0 -3
  290. package/dist/mixins/create_mixin.d.ts.map +0 -1
  291. package/dist/mixins/index.d.ts.map +0 -1
  292. package/dist/mixins/install_class_methods.d.ts +0 -6
  293. package/dist/mixins/install_class_methods.d.ts.map +0 -1
  294. package/dist/mixins/use_click_outside.d.ts +0 -5
  295. package/dist/mixins/use_click_outside.d.ts.map +0 -1
  296. package/dist/mixins/use_event_bus.d.ts +0 -8
  297. package/dist/mixins/use_event_bus.d.ts.map +0 -1
  298. package/dist/mixins/use_event_listener.d.ts +0 -20
  299. package/dist/mixins/use_event_listener.d.ts.map +0 -1
  300. package/dist/mixins/use_fullscreen.d.ts +0 -9
  301. package/dist/mixins/use_fullscreen.d.ts.map +0 -1
  302. package/dist/mixins/use_geolocation.d.ts +0 -19
  303. package/dist/mixins/use_geolocation.d.ts.map +0 -1
  304. package/dist/mixins/use_hover.d.ts +0 -5
  305. package/dist/mixins/use_hover.d.ts.map +0 -1
  306. package/dist/mixins/use_injected_html.d.ts +0 -11
  307. package/dist/mixins/use_injected_html.d.ts.map +0 -1
  308. package/dist/mixins/use_intersection.d.ts +0 -14
  309. package/dist/mixins/use_intersection.d.ts.map +0 -1
  310. package/dist/mixins/use_interval.d.ts +0 -3
  311. package/dist/mixins/use_interval.d.ts.map +0 -1
  312. package/dist/mixins/use_localstorage.d.ts +0 -21
  313. package/dist/mixins/use_localstorage.d.ts.map +0 -1
  314. package/dist/mixins/use_mutation_observer.d.ts +0 -3
  315. package/dist/mixins/use_mutation_observer.d.ts.map +0 -1
  316. package/dist/mixins/use_temporary_content.d.ts +0 -6
  317. package/dist/mixins/use_temporary_content.d.ts.map +0 -1
  318. package/dist/mixins/use_timeout.d.ts +0 -3
  319. package/dist/mixins/use_timeout.d.ts.map +0 -1
  320. package/dist/mixins/use_trix_modifiers.d.ts +0 -11
  321. package/dist/mixins/use_trix_modifiers.d.ts.map +0 -1
  322. package/dist/stimulus-library.cjs.js +0 -2
  323. package/dist/stimulus-library.cjs.js.map +0 -1
  324. package/dist/stimulus-library.es.js +0 -4719
  325. package/dist/stimulus-library.es.js.map +0 -1
  326. package/dist/stimulus-library.umd.js +0 -2
  327. package/dist/stimulus-library.umd.js.map +0 -1
  328. package/dist/utilities/arrays.d.ts +0 -2
  329. package/dist/utilities/arrays.d.ts.map +0 -1
  330. package/dist/utilities/base_controller.d.ts +0 -11
  331. package/dist/utilities/base_controller.d.ts.map +0 -1
  332. package/dist/utilities/elements.d.ts +0 -49
  333. package/dist/utilities/elements.d.ts.map +0 -1
  334. package/dist/utilities/ephemeral_controller.d.ts +0 -6
  335. package/dist/utilities/ephemeral_controller.d.ts.map +0 -1
  336. package/dist/utilities/event_bus.d.ts +0 -4
  337. package/dist/utilities/event_bus.d.ts.map +0 -1
  338. package/dist/utilities/events.d.ts +0 -3
  339. package/dist/utilities/events.d.ts.map +0 -1
  340. package/dist/utilities/fetchRetry.d.ts +0 -2
  341. package/dist/utilities/fetchRetry.d.ts.map +0 -1
  342. package/dist/utilities/index.d.ts.map +0 -1
  343. package/dist/utilities/logging.d.ts +0 -6
  344. package/dist/utilities/logging.d.ts.map +0 -1
  345. package/dist/utilities/reactive.d.ts +0 -2
  346. package/dist/utilities/reactive.d.ts.map +0 -1
  347. package/dist/utilities/request_submit.d.ts +0 -3
  348. package/dist/utilities/request_submit.d.ts.map +0 -1
  349. package/dist/utilities/scroll.d.ts +0 -11
  350. package/dist/utilities/scroll.d.ts.map +0 -1
  351. package/dist/utilities/stimulus.d.ts +0 -3
  352. package/dist/utilities/stimulus.d.ts.map +0 -1
  353. package/dist/utilities/strings.d.ts +0 -2
  354. package/dist/utilities/strings.d.ts.map +0 -1
  355. package/dist/utilities/turbo.d.ts +0 -2
  356. package/dist/utilities/turbo.d.ts.map +0 -1
@@ -0,0 +1,154 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BaseController } from "../../utilities/base_controller";
11
+ import { scrollToElement } from "../../utilities/scroll";
12
+ import clamp from "lodash-es/clamp";
13
+ import { installClassMethods } from "../../mixins/install_class_methods";
14
+ export class NavigateFormErrorsController extends BaseController {
15
+ constructor() {
16
+ super(...arguments);
17
+ this._errors = [];
18
+ this._firstClick = false;
19
+ }
20
+ get defaultCurrentClasses() {
21
+ return ["currentError"];
22
+ }
23
+ get _errorCount() {
24
+ return this._errors.length;
25
+ }
26
+ get _previousIndex() {
27
+ let index = this._index - 1;
28
+ if (index < 0) {
29
+ return 0;
30
+ }
31
+ return index;
32
+ }
33
+ get _nextIndex() {
34
+ let index = this._index + 1;
35
+ if (index > this._errors.length - 1) {
36
+ return this._errors.length - 1;
37
+ }
38
+ return index;
39
+ }
40
+ get _index() {
41
+ return clamp(this.hasIndexValue ? this.indexValue : 0, 0, this._errors.length);
42
+ }
43
+ get _selector() {
44
+ if (this.hasSelectorValue) {
45
+ return this.selectorValue;
46
+ }
47
+ else {
48
+ throw new Error("Expected `selectorValue` to be present");
49
+ }
50
+ }
51
+ get _currentError() {
52
+ return this._errors[this._index];
53
+ }
54
+ get _otherErrors() {
55
+ return this._errors.filter((error, index) => index !== this._index);
56
+ }
57
+ connect() {
58
+ installClassMethods(this);
59
+ requestAnimationFrame(() => {
60
+ this._firstClick = true;
61
+ this._toggleButtons();
62
+ this._toggleVisibility();
63
+ });
64
+ }
65
+ current(event) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ event === null || event === void 0 ? void 0 : event.preventDefault();
68
+ if (this._firstClick) {
69
+ this._firstClick = false;
70
+ this._toggleButtons();
71
+ }
72
+ yield scrollToElement(this._currentError, { behavior: "smooth", block: "center", inline: "center" });
73
+ this._updateClasses();
74
+ });
75
+ }
76
+ next(event) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ event === null || event === void 0 ? void 0 : event.preventDefault();
79
+ if (this._firstClick) {
80
+ this._firstClick = false;
81
+ this._toggleButtons();
82
+ }
83
+ else {
84
+ this.indexValue = this._nextIndex;
85
+ }
86
+ yield scrollToElement(this._currentError, { behavior: "smooth", block: "center", inline: "center" });
87
+ this._updateClasses();
88
+ });
89
+ }
90
+ previous(event) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ event === null || event === void 0 ? void 0 : event.preventDefault();
93
+ if (this._firstClick) {
94
+ this._firstClick = false;
95
+ this._toggleButtons();
96
+ }
97
+ else {
98
+ this.indexValue = this._previousIndex;
99
+ }
100
+ yield scrollToElement(this._currentError, { behavior: "smooth", block: "center", inline: "center" });
101
+ this._updateClasses();
102
+ });
103
+ }
104
+ indexValueChanged() {
105
+ this._toggleButtons();
106
+ }
107
+ selectorValueChanged() {
108
+ this._errors = Array.from(document.querySelectorAll(this._selector));
109
+ this.indexValue = 0;
110
+ this._toggleButtons();
111
+ this._toggleVisibility();
112
+ }
113
+ _updateClasses() {
114
+ this.addCurrentClasses(this._currentError);
115
+ this._otherErrors.forEach((error) => this.removeCurrentClasses(error));
116
+ }
117
+ _toggleVisibility() {
118
+ if (this._errorCount === 0) {
119
+ this.el.style.display = "none";
120
+ }
121
+ else {
122
+ this.el.style.display = "";
123
+ }
124
+ }
125
+ _toggleButtons() {
126
+ if (this.hasNextTarget) {
127
+ // If there is no "Current Error" button, then enable the next error button when there is only 1 error.
128
+ if (!this.hasCurrentTarget && this._firstClick && this.indexValue == this._errorCount - 1) {
129
+ this.nextTarget.removeAttribute("disabled");
130
+ return;
131
+ }
132
+ else if (this.indexValue >= this._errorCount - 1) {
133
+ this.nextTarget.setAttribute("disabled", "true");
134
+ }
135
+ else {
136
+ this.nextTarget.removeAttribute("disabled");
137
+ }
138
+ }
139
+ if (this.hasPreviousTarget) {
140
+ if (this.indexValue <= 0) {
141
+ this.previousTarget.setAttribute("disabled", "true");
142
+ }
143
+ else {
144
+ this.previousTarget.removeAttribute("disabled");
145
+ }
146
+ }
147
+ }
148
+ }
149
+ NavigateFormErrorsController.values = {
150
+ selector: String,
151
+ index: Number,
152
+ };
153
+ NavigateFormErrorsController.classes = ["current"];
154
+ NavigateFormErrorsController.targets = ["next", "current", "previous"];
@@ -0,0 +1,49 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ export class NestedFormController extends BaseController {
3
+ get _wrapperClass() {
4
+ return this.hasWrapperSelectorValue ? this.wrapperClassValue : 'nested-fields';
5
+ }
6
+ get _insertMode() {
7
+ return this.hasInsertModeValue ? this.insertModeValue : 'beforeend';
8
+ }
9
+ connect() {
10
+ this._checkStructure();
11
+ }
12
+ add(event) {
13
+ event === null || event === void 0 ? void 0 : event.preventDefault();
14
+ const content = this.templateTarget.innerHTML.replace(/NEW_RECORD/g, this._generateID());
15
+ this.targetTarget.insertAdjacentHTML(this._insertMode, content);
16
+ }
17
+ remove(event) {
18
+ event.preventDefault();
19
+ const wrapper = event.target.closest(`.${this._wrapperClass}`);
20
+ if (wrapper == null) {
21
+ throw new Error(`#remove was clicked from outside of a child record. Could not find an ancestor with class .${this._wrapperClass}`);
22
+ }
23
+ if (wrapper.dataset.newRecord === 'true') {
24
+ wrapper.remove();
25
+ }
26
+ else {
27
+ wrapper.style.display = 'none';
28
+ let destroyInput = wrapper.querySelector("input[name*='_destroy']");
29
+ if (destroyInput == null) {
30
+ throw new Error(`Could not find a hidden input with name '_destroy'. NestedForm cannot remove an already persisted record without it.`);
31
+ }
32
+ destroyInput.value = "1";
33
+ }
34
+ }
35
+ _generateID() {
36
+ return new Date().getTime().toString() + Math.random().toString().slice(2);
37
+ }
38
+ _checkStructure() {
39
+ let template = this.templateTarget.innerHTML;
40
+ if (template.indexOf('NEW_RECORD')) {
41
+ throw new Error("Could not find 'NEW_RECORD' in the provided template. Please make sure you've passed `child_index: 'NEW_RECORD'` to `fields_for`");
42
+ }
43
+ }
44
+ }
45
+ NestedFormController.targets = ['target', 'template'];
46
+ NestedFormController.values = {
47
+ insertMode: String,
48
+ wrapperClass: String,
49
+ };
@@ -0,0 +1,26 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ import { useCollectionEventListener } from "../../mixins/use_event_listener";
3
+ import { installClassMethods } from "../../mixins/install_class_methods";
4
+ export class PasswordConfirmController extends BaseController {
5
+ connect() {
6
+ installClassMethods(this);
7
+ useCollectionEventListener(this, this.passwordTargets, "change", this._checkPasswordsMatch);
8
+ }
9
+ _allPasswordsMatch() {
10
+ let values = new Set(this.passwordTargets.map(el => el.value)); // Create a unique set of the password values
11
+ return values.has("") || values.size == 1; // If any of the passwords are still blank, or there is only one distinct password value (i.e. they all are the same)
12
+ }
13
+ _checkPasswordsMatch() {
14
+ let element = this.el;
15
+ if (this._allPasswordsMatch()) {
16
+ this.dispatchEvent(element, "password-confirm:match");
17
+ this.passwordTargets.forEach(el => this.removeErrorClasses(el));
18
+ }
19
+ else {
20
+ this.dispatchEvent(element, "password-confirm:no-match");
21
+ this.passwordTargets.forEach(el => this.addErrorClasses(el));
22
+ }
23
+ }
24
+ }
25
+ PasswordConfirmController.targets = ["password"];
26
+ PasswordConfirmController.classes = ["error"];
@@ -0,0 +1,21 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ export class PasswordPeekController extends BaseController {
3
+ peak(event) {
4
+ event === null || event === void 0 ? void 0 : event.preventDefault();
5
+ this.passwordTarget.type = "text";
6
+ }
7
+ hide(event) {
8
+ event === null || event === void 0 ? void 0 : event.preventDefault();
9
+ this.passwordTarget.type = "password";
10
+ }
11
+ toggle(event) {
12
+ event === null || event === void 0 ? void 0 : event.preventDefault();
13
+ if (this.passwordTarget.type === "password") {
14
+ this.peak();
15
+ }
16
+ else {
17
+ this.hide();
18
+ }
19
+ }
20
+ }
21
+ PasswordPeekController.targets = ["password"];
@@ -0,0 +1,26 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ export class RemoteFormController extends BaseController {
3
+ get _selector() {
4
+ return this.hasSelectorValue ? this.selectorValue : `[data-controller~="${this.identifier}"]`;
5
+ }
6
+ replace(event) {
7
+ const [data, status, xhr] = event.detail;
8
+ if (data instanceof Node) {
9
+ let newElement = data.querySelector(this._selector);
10
+ if (newElement == null) {
11
+ throw new Error(`expected new form DOM with [data-controller="${this.identifier}"] to be present in returned payload`);
12
+ }
13
+ let parentNode = this.el.parentNode;
14
+ if (parentNode == null) {
15
+ throw new Error('expected form to have a DOM parent, could not execute replaceChild');
16
+ }
17
+ parentNode.replaceChild(newElement, this.el);
18
+ this.dispatchEvent(newElement, 'remote-form:replace');
19
+ }
20
+ else {
21
+ console.log('Unknown', data);
22
+ }
23
+ }
24
+ }
25
+ RemoteFormController.targets = [];
26
+ RemoteFormController.values = { selector: String };
@@ -0,0 +1,67 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ import { isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, isTypeOfFormInputElement } from "../../utilities/elements";
3
+ import { EventBus } from "../../utilities/event_bus";
4
+ import { useEventListener } from "../../mixins/use_event_listener";
5
+ import { useEventBus } from "../../mixins/use_event_bus";
6
+ export class SyncInputsController extends BaseController {
7
+ get _eventName() {
8
+ return `sync:${this._key}`;
9
+ }
10
+ get _key() {
11
+ if (this.hasKeyValue) {
12
+ return this.keyValue;
13
+ }
14
+ throw new Error("Expected `keyValue` to be present");
15
+ }
16
+ get _value() {
17
+ let el = this.el;
18
+ if (isHTMLInputElement(el) && el.type === "checkbox") {
19
+ return el.checked;
20
+ }
21
+ else if (isHTMLInputElement(el) && el.type === "radio") {
22
+ return el.checked ? el.value : "";
23
+ }
24
+ else {
25
+ return el.value;
26
+ }
27
+ }
28
+ set _value(val) {
29
+ let el = this.el;
30
+ if (isHTMLInputElement(el) && el.type === "checkbox") {
31
+ el.checked = val.toString() === "true";
32
+ }
33
+ else if (isHTMLInputElement(el) && el.type === "radio") {
34
+ el.checked = el.value === val;
35
+ }
36
+ else if (isHTMLInputElement(el) || isHTMLTextAreaElement(el) || isHTMLSelectElement(el)) {
37
+ el.value = val.toString();
38
+ }
39
+ else {
40
+ el.innerHTML = val.toString();
41
+ }
42
+ }
43
+ connect() {
44
+ useEventBus(this, this._eventName, this._read);
45
+ requestAnimationFrame(() => {
46
+ if (isTypeOfFormInputElement(this.el)) {
47
+ this._emit();
48
+ useEventListener(this, this.el, "input", this._emit);
49
+ }
50
+ });
51
+ }
52
+ _emit() {
53
+ EventBus.emit(this._eventName, { value: this._value, dispatcher: this.el });
54
+ }
55
+ _read(payload) {
56
+ if (payload === undefined) {
57
+ throw new Error("No payload received");
58
+ }
59
+ let { dispatcher, value } = payload;
60
+ if (dispatcher !== this.el) {
61
+ this._value = value;
62
+ }
63
+ }
64
+ }
65
+ SyncInputsController.values = {
66
+ key: String,
67
+ };
@@ -0,0 +1,45 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ import { useEventListener } from "../../mixins/use_event_listener";
3
+ import { installClassMethods } from "../../mixins/install_class_methods";
4
+ export class ValueWarnController extends BaseController {
5
+ get _maxMessage() {
6
+ return this.hasMaxMessageValue ? this.maxMessageValue : `Value must be less than ${this.maxValue}`;
7
+ }
8
+ get _minMessage() {
9
+ return this.hasMinMessageValue ? this.minMessageValue : `Value must be greater than ${this.minValue}`;
10
+ }
11
+ get defaultWarningHideClasses() {
12
+ return ["hide"];
13
+ }
14
+ connect() {
15
+ installClassMethods(this);
16
+ this.addWarningHideClasses(this.warningTarget);
17
+ useEventListener(this, this.inputTarget, "input", this._check);
18
+ this._check();
19
+ }
20
+ _check() {
21
+ if (this.hasMinValue && Number.parseFloat(this.inputTarget.value) < this.minValue) {
22
+ this.removeWarningHideClasses(this.warningTarget);
23
+ this.addInputWarningClasses(this.inputTarget);
24
+ this.warningTarget.innerText = this._minMessage;
25
+ }
26
+ else if (this.hasMaxValue && Number.parseFloat(this.inputTarget.value) > this.maxValue) {
27
+ this.removeWarningHideClasses(this.warningTarget);
28
+ this.addInputWarningClasses(this.inputTarget);
29
+ this.warningTarget.innerText = this._maxMessage;
30
+ }
31
+ else {
32
+ this.addWarningHideClasses(this.warningTarget);
33
+ this.removeInputWarningClasses(this.inputTarget);
34
+ this.warningTarget.innerText = "";
35
+ }
36
+ }
37
+ }
38
+ ValueWarnController.classes = ["inputWarning", "warningHide"];
39
+ ValueWarnController.targets = ["input", "warning"];
40
+ ValueWarnController.values = {
41
+ max: Number,
42
+ min: Number,
43
+ minMessage: String,
44
+ maxMessage: String,
45
+ };
@@ -0,0 +1,37 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ import { useEventListener } from "../../mixins/use_event_listener";
3
+ import { installClassMethods } from "../../mixins/install_class_methods";
4
+ export class WordCountController extends BaseController {
5
+ connect() {
6
+ installClassMethods(this);
7
+ this._updateWordCount();
8
+ useEventListener(this, this.inputTarget, "input", this._updateWordCount);
9
+ }
10
+ _updateWordCount() {
11
+ let wordCount = 0;
12
+ let textAreaValue = this.inputTarget.value;
13
+ let matches = textAreaValue.match(/\S+/g);
14
+ wordCount = (matches && matches.length) || 0;
15
+ this.outputTarget.innerText = wordCount.toString();
16
+ if (this._isValidCount(wordCount)) {
17
+ this.removeErrorClasses(this.outputTarget);
18
+ }
19
+ else {
20
+ this.addErrorClasses(this.outputTarget);
21
+ }
22
+ }
23
+ _isValidCount(count) {
24
+ let min = 0;
25
+ let max = 99999;
26
+ if (this.hasMinValue) {
27
+ min = this.minValue;
28
+ }
29
+ if (this.hasMaxValue) {
30
+ max = this.maxValue;
31
+ }
32
+ return count >= min && count <= max;
33
+ }
34
+ }
35
+ WordCountController.targets = ["input", "output"];
36
+ WordCountController.values = { min: Number, max: Number };
37
+ WordCountController.classes = ["error"];
@@ -1,3 +1,4 @@
1
+ // Directories
1
2
  export * from './ajax';
2
3
  export * from './forms';
3
4
  export * from './media';
@@ -6,6 +7,7 @@ export * from './signal';
6
7
  export * from './tables';
7
8
  export * from './utility';
8
9
  export * from './visual';
10
+ // Controllers
9
11
  export * from './anchor_spy_controller';
10
12
  export * from './back_link_controller';
11
13
  export * from './clipboard_controller';
@@ -15,6 +17,7 @@ export * from './debug_controller';
15
17
  export * from './disable_with_controller';
16
18
  export * from './dismissable_controller';
17
19
  export * from './element_save_controller';
20
+ export * from './equalize_controller';
18
21
  export * from './empty_dom_controller';
19
22
  export * from './prefetch_controller';
20
23
  export * from './print_button_controller';
@@ -27,4 +30,3 @@ export * from './toggle_class_controller';
27
30
  export * from './trix_modifier_controller';
28
31
  export * from './turbo_frame_rc_controller';
29
32
  export * from './turbo_frame_refresh_controller';
30
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,44 @@
1
+ import { BaseController } from "../../utilities/base_controller";
2
+ export class FallbackImageController extends BaseController {
3
+ initialize() {
4
+ this._hasLoadedSuccessfully = this._hasLoadedSuccessfully.bind(this);
5
+ this._success = this._success.bind(this);
6
+ this._fail = this._fail.bind(this);
7
+ }
8
+ connect() {
9
+ let element = this.el;
10
+ element.onerror = this._fail;
11
+ if (element.complete && !this._hasLoadedSuccessfully()) {
12
+ this._fail();
13
+ }
14
+ else {
15
+ this._success();
16
+ }
17
+ }
18
+ disconnect() {
19
+ this.removeSuccessClasses();
20
+ this.removeFailClasses();
21
+ }
22
+ _success() {
23
+ this.addSuccessClasses();
24
+ }
25
+ _fail() {
26
+ let element = this.el;
27
+ this.addFailClasses();
28
+ if (this.hasPlaceholderValue && element.src !== this.placeholderValue) {
29
+ this.dispatchEvent(element, "fallback-image:placeholder");
30
+ element.src = this.placeholderValue;
31
+ element.onerror = this._fail;
32
+ }
33
+ else {
34
+ this.dispatchEvent(element, "fallback-image:fail");
35
+ element.style.display = "none";
36
+ }
37
+ }
38
+ _hasLoadedSuccessfully() {
39
+ let element = this.el;
40
+ return element.naturalHeight > 0 && element.naturalWidth > 0;
41
+ }
42
+ }
43
+ FallbackImageController.values = { placeholder: String };
44
+ FallbackImageController.classes = ["success", "fail"];
@@ -1,4 +1,3 @@
1
1
  export * from './fallback_image_controller';
2
2
  export * from './lightbox_image_controller';
3
3
  export * from './media_player_controller';
4
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,71 @@
1
+ import dialogPolyfill from "dialog-polyfill";
2
+ import { BaseController } from "../../utilities/base_controller";
3
+ import { scrollToElement } from "../../utilities/scroll";
4
+ import { useEventListener } from "../../mixins/use_event_listener";
5
+ export class LightboxImageController extends BaseController {
6
+ constructor() {
7
+ super(...arguments);
8
+ this._dialog = null;
9
+ }
10
+ get _src() {
11
+ return this.hasSrcValue ? this.srcValue : this.el.src;
12
+ }
13
+ get _srcSet() {
14
+ return this.hasSrcSetValue ? this.srcSetValue : this.el.srcset;
15
+ }
16
+ get _sizes() {
17
+ return this.hasSizesValue ? this.sizesValue : this.el.sizes;
18
+ }
19
+ get _modalClassName() {
20
+ return this.hasModalClass ? this.modalClass : "image-lightbox-dialog";
21
+ }
22
+ get _imageClassName() {
23
+ return this.hasImageClass ? this.imageClass : "image-lightbox-image";
24
+ }
25
+ initialize() {
26
+ this.open = this.open.bind(this);
27
+ this.close = this.close.bind(this);
28
+ }
29
+ connect() {
30
+ }
31
+ disconnect() {
32
+ this.close();
33
+ }
34
+ open() {
35
+ let element = this.el;
36
+ if (this._dialog) {
37
+ return;
38
+ }
39
+ this._dialog = document.createElement("dialog");
40
+ let image = document.createElement("img");
41
+ image.className = this._imageClassName;
42
+ image.src = this._src;
43
+ image.srcset = this._srcSet;
44
+ image.sizes = this._sizes;
45
+ this._dialog.appendChild(image);
46
+ element.insertAdjacentElement("afterend", this._dialog);
47
+ dialogPolyfill.registerDialog(this._dialog);
48
+ this._dialog.className = this._modalClassName;
49
+ // @ts-ignore Experimental API
50
+ this._dialog.showModal();
51
+ scrollToElement(this._dialog, { behavior: "smooth", block: "end" }).catch(() => this._dialog.scrollIntoView(false));
52
+ useEventListener(this, this._dialog, "click", this.close);
53
+ useEventListener(this, this._dialog, "cancel", this.close);
54
+ useEventListener(this, this._dialog, "close", this.close);
55
+ }
56
+ close() {
57
+ if (this._dialog) {
58
+ // @ts-ignore Experimental API
59
+ this._dialog.close();
60
+ this._dialog.remove();
61
+ this._dialog = null;
62
+ scrollToElement(this.el, { behavior: "smooth", block: "end" }).catch(() => this.el.scrollIntoView(false));
63
+ }
64
+ }
65
+ }
66
+ LightboxImageController.values = {
67
+ src: String,
68
+ srcSet: String,
69
+ sizes: String,
70
+ };
71
+ LightboxImageController.classes = ["modal", "image"];
@@ -0,0 +1,31 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BaseController } from "../../utilities/base_controller";
11
+ export class MediaPlayerController extends BaseController {
12
+ play(event) {
13
+ return __awaiter(this, void 0, void 0, function* () {
14
+ event === null || event === void 0 ? void 0 : event.preventDefault();
15
+ yield this.mediaTarget.play();
16
+ });
17
+ }
18
+ pause(event) {
19
+ event === null || event === void 0 ? void 0 : event.preventDefault();
20
+ this.mediaTarget.pause();
21
+ }
22
+ restart(event) {
23
+ event === null || event === void 0 ? void 0 : event.preventDefault();
24
+ this.mediaTarget.currentTime = 0;
25
+ }
26
+ seek(event) {
27
+ event === null || event === void 0 ? void 0 : event.preventDefault();
28
+ this.mediaTarget.currentTime += 5;
29
+ }
30
+ }
31
+ MediaPlayerController.targets = ["media"];