stimulus-library 0.7.5 → 0.9.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 (358) hide show
  1. package/dist/controllers/ajax/async_block_controller.js +30 -0
  2. package/dist/controllers/ajax/{index.d.ts → index.js} +0 -1
  3. package/dist/controllers/ajax/lazy_block_controller.js +37 -0
  4. package/dist/controllers/ajax/load_block_controller.js +63 -0
  5. package/dist/controllers/ajax/poll_block_controller.js +35 -0
  6. package/dist/controllers/anchor_spy_controller.js +47 -0
  7. package/dist/controllers/back_link_controller.js +25 -0
  8. package/dist/controllers/clipboard_controller.js +35 -0
  9. package/dist/controllers/confirm_controller.js +33 -0
  10. package/dist/controllers/confirm_navigation_controller.js +29 -0
  11. package/dist/controllers/debug_controller.js +7 -0
  12. package/dist/controllers/disable_with_controller.js +66 -0
  13. package/dist/controllers/dismissable_controller.js +8 -0
  14. package/dist/controllers/element_save_controller.js +80 -0
  15. package/dist/controllers/empty_dom_controller.js +42 -0
  16. package/dist/controllers/equalize_controller.js +39 -0
  17. package/dist/controllers/forms/auto_submit_form_controller.js +62 -0
  18. package/dist/controllers/forms/autosize_controller.js +32 -0
  19. package/dist/controllers/forms/char_count_controller.js +37 -0
  20. package/dist/controllers/forms/checkbox_disable_inputs_controller.js +32 -0
  21. package/dist/controllers/forms/checkbox_enable_inputs_controller.js +32 -0
  22. package/dist/controllers/forms/checkbox_select_all_controller.js +35 -0
  23. package/dist/controllers/forms/checkbox_xor_controller.js +24 -0
  24. package/dist/controllers/forms/detect_dirty_controller.js +98 -0
  25. package/dist/controllers/forms/detect_dirty_form_controller.js +107 -0
  26. package/dist/controllers/forms/enable_inputs_controller.js +21 -0
  27. package/dist/controllers/forms/focus_steal_controller.js +28 -0
  28. package/dist/controllers/forms/form_rc_controller.js +47 -0
  29. package/dist/controllers/forms/form_save_controller.js +109 -0
  30. package/dist/controllers/forms/{index.d.ts → index.js} +0 -1
  31. package/dist/controllers/forms/limited_selection_checkboxes_controller.js +28 -0
  32. package/dist/controllers/forms/navigate_form_errors_controller.js +154 -0
  33. package/dist/controllers/forms/nested_form_controller.js +49 -0
  34. package/dist/controllers/forms/password_confirm_controller.js +26 -0
  35. package/dist/controllers/forms/password_peek_controller.js +21 -0
  36. package/dist/controllers/forms/remote_form_controller.js +26 -0
  37. package/dist/controllers/forms/sync_inputs_controller.js +67 -0
  38. package/dist/controllers/forms/value_warn_controller.js +45 -0
  39. package/dist/controllers/forms/word_count_controller.js +37 -0
  40. package/dist/controllers/{index.d.ts → index.js} +3 -1
  41. package/dist/controllers/media/fallback_image_controller.js +44 -0
  42. package/dist/controllers/media/{index.d.ts → index.js} +0 -1
  43. package/dist/controllers/media/lightbox_image_controller.js +71 -0
  44. package/dist/controllers/media/media_player_controller.js +31 -0
  45. package/dist/controllers/persisted_dismissable_controller.js +19 -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 +17 -24
  124. package/CHANGELOG.md +0 -513
  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/equalize_controller.d.ts +0 -16
  155. package/dist/controllers/equalize_controller.d.ts.map +0 -1
  156. package/dist/controllers/forms/auto_submit_form_controller.d.ts +0 -23
  157. package/dist/controllers/forms/auto_submit_form_controller.d.ts.map +0 -1
  158. package/dist/controllers/forms/autosize_controller.d.ts +0 -9
  159. package/dist/controllers/forms/autosize_controller.d.ts.map +0 -1
  160. package/dist/controllers/forms/char_count_controller.d.ts +0 -21
  161. package/dist/controllers/forms/char_count_controller.d.ts.map +0 -1
  162. package/dist/controllers/forms/checkbox_disable_inputs_controller.d.ts +0 -17
  163. package/dist/controllers/forms/checkbox_disable_inputs_controller.d.ts.map +0 -1
  164. package/dist/controllers/forms/checkbox_enable_inputs_controller.d.ts +0 -17
  165. package/dist/controllers/forms/checkbox_enable_inputs_controller.d.ts.map +0 -1
  166. package/dist/controllers/forms/checkbox_select_all_controller.d.ts +0 -14
  167. package/dist/controllers/forms/checkbox_select_all_controller.d.ts.map +0 -1
  168. package/dist/controllers/forms/checkbox_xor_controller.d.ts +0 -9
  169. package/dist/controllers/forms/checkbox_xor_controller.d.ts.map +0 -1
  170. package/dist/controllers/forms/detect_dirty_controller.d.ts +0 -15
  171. package/dist/controllers/forms/detect_dirty_controller.d.ts.map +0 -1
  172. package/dist/controllers/forms/detect_dirty_form_controller.d.ts +0 -18
  173. package/dist/controllers/forms/detect_dirty_form_controller.d.ts.map +0 -1
  174. package/dist/controllers/forms/enable_inputs_controller.d.ts +0 -14
  175. package/dist/controllers/forms/enable_inputs_controller.d.ts.map +0 -1
  176. package/dist/controllers/forms/focus_steal_controller.d.ts +0 -12
  177. package/dist/controllers/forms/focus_steal_controller.d.ts.map +0 -1
  178. package/dist/controllers/forms/form_rc_controller.d.ts +0 -18
  179. package/dist/controllers/forms/form_rc_controller.d.ts.map +0 -1
  180. package/dist/controllers/forms/form_save_controller.d.ts +0 -32
  181. package/dist/controllers/forms/form_save_controller.d.ts.map +0 -1
  182. package/dist/controllers/forms/index.d.ts.map +0 -1
  183. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts +0 -17
  184. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts.map +0 -1
  185. package/dist/controllers/forms/navigate_form_errors_controller.d.ts +0 -41
  186. package/dist/controllers/forms/navigate_form_errors_controller.d.ts.map +0 -1
  187. package/dist/controllers/forms/nested_form_controller.d.ts +0 -22
  188. package/dist/controllers/forms/nested_form_controller.d.ts.map +0 -1
  189. package/dist/controllers/forms/password_confirm_controller.d.ts +0 -12
  190. package/dist/controllers/forms/password_confirm_controller.d.ts.map +0 -1
  191. package/dist/controllers/forms/password_peek_controller.d.ts +0 -9
  192. package/dist/controllers/forms/password_peek_controller.d.ts.map +0 -1
  193. package/dist/controllers/forms/remote_form_controller.d.ts +0 -14
  194. package/dist/controllers/forms/remote_form_controller.d.ts.map +0 -1
  195. package/dist/controllers/forms/sync_inputs_controller.d.ts +0 -20
  196. package/dist/controllers/forms/sync_inputs_controller.d.ts.map +0 -1
  197. package/dist/controllers/forms/value_warn_controller.d.ts +0 -31
  198. package/dist/controllers/forms/value_warn_controller.d.ts.map +0 -1
  199. package/dist/controllers/forms/word_count_controller.d.ts +0 -21
  200. package/dist/controllers/forms/word_count_controller.d.ts.map +0 -1
  201. package/dist/controllers/index.d.ts.map +0 -1
  202. package/dist/controllers/media/fallback_image_controller.d.ts +0 -20
  203. package/dist/controllers/media/fallback_image_controller.d.ts.map +0 -1
  204. package/dist/controllers/media/index.d.ts.map +0 -1
  205. package/dist/controllers/media/lightbox_image_controller.d.ts +0 -31
  206. package/dist/controllers/media/lightbox_image_controller.d.ts.map +0 -1
  207. package/dist/controllers/media/media_player_controller.d.ts +0 -10
  208. package/dist/controllers/media/media_player_controller.d.ts.map +0 -1
  209. package/dist/controllers/prefetch_controller.d.ts +0 -17
  210. package/dist/controllers/prefetch_controller.d.ts.map +0 -1
  211. package/dist/controllers/print_button_controller.d.ts +0 -8
  212. package/dist/controllers/print_button_controller.d.ts.map +0 -1
  213. package/dist/controllers/responsive_iframe_controller.d.ts +0 -17
  214. package/dist/controllers/responsive_iframe_controller.d.ts.map +0 -1
  215. package/dist/controllers/scroll/index.d.ts.map +0 -1
  216. package/dist/controllers/scroll/scroll_container_controller.d.ts +0 -22
  217. package/dist/controllers/scroll/scroll_container_controller.d.ts.map +0 -1
  218. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts +0 -16
  219. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts.map +0 -1
  220. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts +0 -12
  221. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts.map +0 -1
  222. package/dist/controllers/scroll/scroll_to_controller.d.ts +0 -18
  223. package/dist/controllers/scroll/scroll_to_controller.d.ts.map +0 -1
  224. package/dist/controllers/scroll/scroll_to_top_controller.d.ts +0 -12
  225. package/dist/controllers/scroll/scroll_to_top_controller.d.ts.map +0 -1
  226. package/dist/controllers/self_destruct_controller.d.ts +0 -9
  227. package/dist/controllers/self_destruct_controller.d.ts.map +0 -1
  228. package/dist/controllers/signal/events.d.ts +0 -5
  229. package/dist/controllers/signal/events.d.ts.map +0 -1
  230. package/dist/controllers/signal/expressions.d.ts +0 -2
  231. package/dist/controllers/signal/expressions.d.ts.map +0 -1
  232. package/dist/controllers/signal/index.d.ts.map +0 -1
  233. package/dist/controllers/signal/signal_action_controller.d.ts +0 -15
  234. package/dist/controllers/signal/signal_action_controller.d.ts.map +0 -1
  235. package/dist/controllers/signal/signal_dom_children_controller.d.ts +0 -17
  236. package/dist/controllers/signal/signal_dom_children_controller.d.ts.map +0 -1
  237. package/dist/controllers/signal/signal_input_controller.d.ts +0 -20
  238. package/dist/controllers/signal/signal_input_controller.d.ts.map +0 -1
  239. package/dist/controllers/signal/signal_visibility_controller.d.ts +0 -18
  240. package/dist/controllers/signal/signal_visibility_controller.d.ts.map +0 -1
  241. package/dist/controllers/sticky_controller.d.ts +0 -16
  242. package/dist/controllers/sticky_controller.d.ts.map +0 -1
  243. package/dist/controllers/tables/index.d.ts.map +0 -1
  244. package/dist/controllers/tables/table_sort_controller.d.ts +0 -20
  245. package/dist/controllers/tables/table_sort_controller.d.ts.map +0 -1
  246. package/dist/controllers/tables/table_truncate_controller.d.ts +0 -26
  247. package/dist/controllers/tables/table_truncate_controller.d.ts.map +0 -1
  248. package/dist/controllers/teleport_controller.d.ts +0 -16
  249. package/dist/controllers/teleport_controller.d.ts.map +0 -1
  250. package/dist/controllers/temporary_state_controller.d.ts +0 -27
  251. package/dist/controllers/temporary_state_controller.d.ts.map +0 -1
  252. package/dist/controllers/toggle_class_controller.d.ts +0 -36
  253. package/dist/controllers/toggle_class_controller.d.ts.map +0 -1
  254. package/dist/controllers/trix_modifier_controller.d.ts +0 -88
  255. package/dist/controllers/trix_modifier_controller.d.ts.map +0 -1
  256. package/dist/controllers/turbo_frame_rc_controller.d.ts +0 -21
  257. package/dist/controllers/turbo_frame_rc_controller.d.ts.map +0 -1
  258. package/dist/controllers/turbo_frame_refresh_controller.d.ts +0 -14
  259. package/dist/controllers/turbo_frame_refresh_controller.d.ts.map +0 -1
  260. package/dist/controllers/utility/alert_controller.d.ts +0 -9
  261. package/dist/controllers/utility/alert_controller.d.ts.map +0 -1
  262. package/dist/controllers/utility/fullscreen_controller.d.ts +0 -8
  263. package/dist/controllers/utility/fullscreen_controller.d.ts.map +0 -1
  264. package/dist/controllers/utility/index.d.ts.map +0 -1
  265. package/dist/controllers/utility/intersection_controller.d.ts +0 -14
  266. package/dist/controllers/utility/intersection_controller.d.ts.map +0 -1
  267. package/dist/controllers/utility/interval_controller.d.ts +0 -11
  268. package/dist/controllers/utility/interval_controller.d.ts.map +0 -1
  269. package/dist/controllers/utility/presence_controller.d.ts +0 -14
  270. package/dist/controllers/utility/presence_controller.d.ts.map +0 -1
  271. package/dist/controllers/utility/print_controller.d.ts +0 -5
  272. package/dist/controllers/utility/print_controller.d.ts.map +0 -1
  273. package/dist/controllers/utility/timeout_controller.d.ts +0 -10
  274. package/dist/controllers/utility/timeout_controller.d.ts.map +0 -1
  275. package/dist/controllers/utility/user_focus_controller.d.ts +0 -9
  276. package/dist/controllers/utility/user_focus_controller.d.ts.map +0 -1
  277. package/dist/controllers/visual/clock_controller.d.ts +0 -16
  278. package/dist/controllers/visual/clock_controller.d.ts.map +0 -1
  279. package/dist/controllers/visual/countdown_controller.d.ts +0 -46
  280. package/dist/controllers/visual/countdown_controller.d.ts.map +0 -1
  281. package/dist/controllers/visual/duration_controller.d.ts +0 -26
  282. package/dist/controllers/visual/duration_controller.d.ts.map +0 -1
  283. package/dist/controllers/visual/index.d.ts.map +0 -1
  284. package/dist/controllers/visual/tabs_controller.d.ts +0 -30
  285. package/dist/controllers/visual/tabs_controller.d.ts.map +0 -1
  286. package/dist/controllers/visual/time_distance_controller.d.ts +0 -16
  287. package/dist/controllers/visual/time_distance_controller.d.ts.map +0 -1
  288. package/dist/controllers/visual/tree_view_controller.d.ts +0 -26
  289. package/dist/controllers/visual/tree_view_controller.d.ts.map +0 -1
  290. package/dist/index.d.ts.map +0 -1
  291. package/dist/mixins/create_mixin.d.ts +0 -3
  292. package/dist/mixins/create_mixin.d.ts.map +0 -1
  293. package/dist/mixins/index.d.ts.map +0 -1
  294. package/dist/mixins/install_class_methods.d.ts +0 -6
  295. package/dist/mixins/install_class_methods.d.ts.map +0 -1
  296. package/dist/mixins/use_click_outside.d.ts +0 -5
  297. package/dist/mixins/use_click_outside.d.ts.map +0 -1
  298. package/dist/mixins/use_event_bus.d.ts +0 -8
  299. package/dist/mixins/use_event_bus.d.ts.map +0 -1
  300. package/dist/mixins/use_event_listener.d.ts +0 -20
  301. package/dist/mixins/use_event_listener.d.ts.map +0 -1
  302. package/dist/mixins/use_fullscreen.d.ts +0 -9
  303. package/dist/mixins/use_fullscreen.d.ts.map +0 -1
  304. package/dist/mixins/use_geolocation.d.ts +0 -19
  305. package/dist/mixins/use_geolocation.d.ts.map +0 -1
  306. package/dist/mixins/use_hover.d.ts +0 -5
  307. package/dist/mixins/use_hover.d.ts.map +0 -1
  308. package/dist/mixins/use_injected_html.d.ts +0 -11
  309. package/dist/mixins/use_injected_html.d.ts.map +0 -1
  310. package/dist/mixins/use_intersection.d.ts +0 -14
  311. package/dist/mixins/use_intersection.d.ts.map +0 -1
  312. package/dist/mixins/use_interval.d.ts +0 -3
  313. package/dist/mixins/use_interval.d.ts.map +0 -1
  314. package/dist/mixins/use_localstorage.d.ts +0 -21
  315. package/dist/mixins/use_localstorage.d.ts.map +0 -1
  316. package/dist/mixins/use_mutation_observer.d.ts +0 -3
  317. package/dist/mixins/use_mutation_observer.d.ts.map +0 -1
  318. package/dist/mixins/use_temporary_content.d.ts +0 -6
  319. package/dist/mixins/use_temporary_content.d.ts.map +0 -1
  320. package/dist/mixins/use_timeout.d.ts +0 -3
  321. package/dist/mixins/use_timeout.d.ts.map +0 -1
  322. package/dist/mixins/use_trix_modifiers.d.ts +0 -11
  323. package/dist/mixins/use_trix_modifiers.d.ts.map +0 -1
  324. package/dist/stimulus-library.cjs.js +0 -2
  325. package/dist/stimulus-library.cjs.js.map +0 -1
  326. package/dist/stimulus-library.es.js +0 -5094
  327. package/dist/stimulus-library.es.js.map +0 -1
  328. package/dist/stimulus-library.umd.js +0 -2
  329. package/dist/stimulus-library.umd.js.map +0 -1
  330. package/dist/utilities/arrays.d.ts +0 -2
  331. package/dist/utilities/arrays.d.ts.map +0 -1
  332. package/dist/utilities/base_controller.d.ts +0 -11
  333. package/dist/utilities/base_controller.d.ts.map +0 -1
  334. package/dist/utilities/elements.d.ts +0 -49
  335. package/dist/utilities/elements.d.ts.map +0 -1
  336. package/dist/utilities/ephemeral_controller.d.ts +0 -6
  337. package/dist/utilities/ephemeral_controller.d.ts.map +0 -1
  338. package/dist/utilities/event_bus.d.ts +0 -4
  339. package/dist/utilities/event_bus.d.ts.map +0 -1
  340. package/dist/utilities/events.d.ts +0 -3
  341. package/dist/utilities/events.d.ts.map +0 -1
  342. package/dist/utilities/fetchRetry.d.ts +0 -2
  343. package/dist/utilities/fetchRetry.d.ts.map +0 -1
  344. package/dist/utilities/index.d.ts.map +0 -1
  345. package/dist/utilities/logging.d.ts +0 -6
  346. package/dist/utilities/logging.d.ts.map +0 -1
  347. package/dist/utilities/reactive.d.ts +0 -2
  348. package/dist/utilities/reactive.d.ts.map +0 -1
  349. package/dist/utilities/request_submit.d.ts +0 -3
  350. package/dist/utilities/request_submit.d.ts.map +0 -1
  351. package/dist/utilities/scroll.d.ts +0 -11
  352. package/dist/utilities/scroll.d.ts.map +0 -1
  353. package/dist/utilities/stimulus.d.ts +0 -3
  354. package/dist/utilities/stimulus.d.ts.map +0 -1
  355. package/dist/utilities/strings.d.ts +0 -2
  356. package/dist/utilities/strings.d.ts.map +0 -1
  357. package/dist/utilities/turbo.d.ts +0 -2
  358. package/dist/utilities/turbo.d.ts.map +0 -1
@@ -0,0 +1,34 @@
1
+ import debounce from "lodash-es/debounce";
2
+ import { wrapArray } from "../utilities/arrays";
3
+ import { useMixin } from "./create_mixin";
4
+ export function useEventListener(controller, element, eventNameOrNames, handler, opts) {
5
+ if (opts === null || opts === void 0 ? void 0 : opts.debounce) {
6
+ handler = debounce(handler.bind(controller), opts.debounce);
7
+ delete opts.debounce;
8
+ }
9
+ else {
10
+ handler = handler.bind(controller);
11
+ }
12
+ let eventNames = wrapArray(eventNameOrNames);
13
+ let setup = () => eventNames.forEach(eventName => element.addEventListener(eventName, handler, opts));
14
+ let teardown = () => eventNames.forEach(eventName => element.removeEventListener(eventName, handler));
15
+ useMixin(controller, setup, teardown);
16
+ return { setup, teardown };
17
+ }
18
+ export function useEventListeners(controller, element, eventNameOrNames, handler, opts) {
19
+ return useEventListener(controller, element, eventNameOrNames, handler, opts);
20
+ }
21
+ export function useCollectionEventListener(controller, elements, eventNameOrNames, handler, opts) {
22
+ let handlers = [];
23
+ elements.forEach(el => {
24
+ let { setup, teardown } = useEventListener(controller, el, eventNameOrNames, handler, opts);
25
+ handlers.push({ setup, teardown });
26
+ });
27
+ return [
28
+ () => handlers.forEach(h => h.setup()),
29
+ () => handlers.forEach(h => h.teardown()),
30
+ ];
31
+ }
32
+ export function useCollectionEventListeners(controller, elements, eventNameOrNames, handler, opts) {
33
+ return useCollectionEventListener(controller, elements, eventNameOrNames, handler, opts);
34
+ }
@@ -0,0 +1,42 @@
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 { useMixin } from "./create_mixin";
11
+ export function useFullscreen(controller, el) {
12
+ let element = el || document.documentElement;
13
+ let fullscreenOpen = document.fullscreenElement !== null;
14
+ const updateFullscreenState = () => fullscreenOpen = document.fullscreenElement !== null;
15
+ const isFullscreen = () => fullscreenOpen;
16
+ const toggle = () => __awaiter(this, void 0, void 0, function* () { return fullscreenOpen ? yield exit() : yield enter(); });
17
+ let setup = () => document.addEventListener('fullscreenchange', updateFullscreenState);
18
+ let teardown = () => document.removeEventListener('fullscreenchange', updateFullscreenState);
19
+ const exit = () => __awaiter(this, void 0, void 0, function* () {
20
+ if (document.exitFullscreen) {
21
+ fullscreenOpen = false;
22
+ yield document.exitFullscreen();
23
+ }
24
+ });
25
+ const enter = () => __awaiter(this, void 0, void 0, function* () {
26
+ if (fullscreenOpen) {
27
+ yield exit();
28
+ }
29
+ if (element.requestFullscreen) {
30
+ yield element.requestFullscreen();
31
+ fullscreenOpen = true;
32
+ }
33
+ });
34
+ useMixin(controller, setup, teardown);
35
+ return {
36
+ isFullscreen,
37
+ enter,
38
+ exit,
39
+ toggle,
40
+ teardown,
41
+ };
42
+ }
@@ -0,0 +1,62 @@
1
+ import { reactive } from "../utilities/reactive";
2
+ import { useMixin } from "./create_mixin";
3
+ export function useGeolocation(controller, options = {}, update, error) {
4
+ // Ensure passed functions are bound to the correct controller scope
5
+ if (update) {
6
+ update = update.bind(controller);
7
+ }
8
+ if (error) {
9
+ error = error.bind(controller);
10
+ }
11
+ // Default options to pass to the navigator.geolocation.watchPosition() method
12
+ const { enableHighAccuracy = true, maximumAge = 30000, timeout = 27000, } = options;
13
+ const isSupported = navigator && 'geolocation' in navigator;
14
+ // Create a reactive object to store the geolocation data
15
+ const values = reactive({
16
+ locatedAt: null,
17
+ error: null,
18
+ coords: {
19
+ accuracy: 0,
20
+ latitude: Infinity,
21
+ longitude: Infinity,
22
+ altitude: null,
23
+ altitudeAccuracy: null,
24
+ heading: null,
25
+ speed: null,
26
+ },
27
+ teardown: () => {
28
+ if (watcher) {
29
+ navigator.geolocation.clearWatch(watcher);
30
+ watcher = null;
31
+ }
32
+ },
33
+ });
34
+ let setup = () => {
35
+ if (isSupported) {
36
+ watcher = navigator.geolocation.watchPosition((position) => {
37
+ // Update reactive values
38
+ values.locatedAt = position.timestamp;
39
+ values.coords = position.coords;
40
+ values.error = null;
41
+ // Fire user callback if provided
42
+ if (update) {
43
+ update(position);
44
+ }
45
+ }, (err) => {
46
+ // Update reactive values
47
+ values.error = err;
48
+ // Fire user callback if provided
49
+ if (error) {
50
+ error(err);
51
+ }
52
+ }, {
53
+ enableHighAccuracy,
54
+ maximumAge,
55
+ timeout,
56
+ });
57
+ }
58
+ };
59
+ let watcher = null;
60
+ useMixin(controller, setup, values.teardown);
61
+ return values;
62
+ }
@@ -0,0 +1,29 @@
1
+ import { useEventListener } from "../mixins/use_event_listener";
2
+ import { useMixin } from "./create_mixin";
3
+ export function useHover(controller, element, enter, leave) {
4
+ let teardownEnter = null;
5
+ let teardownLeave = null;
6
+ if (enter) {
7
+ enter = enter.bind(controller);
8
+ let { teardown: _teardownEnter } = useEventListener(controller, element, "mouseenter", enter);
9
+ teardownEnter = _teardownEnter;
10
+ }
11
+ if (leave) {
12
+ leave = leave.bind(controller);
13
+ let { teardown: _teardownLeave } = useEventListener(controller, element, "mouseleave", leave);
14
+ teardownLeave = _teardownLeave;
15
+ }
16
+ let setup = () => void 0;
17
+ let teardown = () => {
18
+ if (teardownEnter) {
19
+ teardownEnter();
20
+ }
21
+ if (teardownLeave) {
22
+ teardownLeave();
23
+ }
24
+ };
25
+ useMixin(controller, setup, teardown);
26
+ return {
27
+ teardown,
28
+ };
29
+ }
@@ -0,0 +1,37 @@
1
+ import { useMixin } from "./create_mixin";
2
+ export function useInjectedFragment(controller, targetElement, insertPosition, fragment, options = {}) {
3
+ let nodes = Array.from(fragment.childNodes);
4
+ let setup = () => {
5
+ let parent = targetElement.parentElement;
6
+ if (["beforebegin", "afterend"].includes(insertPosition) && parent == null) {
7
+ throw new Error("Cannot insert beforebegin into a node with no parent");
8
+ }
9
+ switch (insertPosition) {
10
+ case 'beforeend':
11
+ targetElement.append(fragment);
12
+ break;
13
+ case "afterbegin":
14
+ targetElement.prepend(fragment);
15
+ break;
16
+ case "beforebegin":
17
+ parent.insertBefore(fragment, targetElement);
18
+ break;
19
+ case "afterend":
20
+ parent.insertBefore(fragment, targetElement);
21
+ break;
22
+ }
23
+ };
24
+ let teardown = options.cleanup ? () => nodes.forEach(node => node.remove()) : () => void 0;
25
+ useMixin(controller, setup, teardown);
26
+ return [nodes, teardown];
27
+ }
28
+ export function useInjectedHTML(controller, targetElement, insertPosition, html, options = {}) {
29
+ const fragment = document.createRange().createContextualFragment(html);
30
+ return useInjectedFragment(controller, targetElement, insertPosition, fragment, options);
31
+ }
32
+ export function useInjectedElement(controller, targetElement, insertPosition, element, options = {}) {
33
+ const fragment = new DocumentFragment();
34
+ fragment.append(element);
35
+ let [nodes, teardown] = useInjectedFragment(controller, targetElement, insertPosition, fragment, options);
36
+ return [nodes[0], teardown];
37
+ }
@@ -0,0 +1,45 @@
1
+ import { useMixin } from "./create_mixin";
2
+ export function useIntersectionObserver(controller, handler, options) {
3
+ handler = handler.bind(controller);
4
+ let observer = new IntersectionObserver(handler, options);
5
+ let teardown = () => {
6
+ observer === null || observer === void 0 ? void 0 : observer.disconnect();
7
+ observer = null;
8
+ };
9
+ let observe = (element) => observer === null || observer === void 0 ? void 0 : observer.observe(element);
10
+ let unobserve = (element) => observer === null || observer === void 0 ? void 0 : observer.unobserve(element);
11
+ return {
12
+ observer,
13
+ teardown,
14
+ observe,
15
+ unobserve,
16
+ };
17
+ }
18
+ export function useIntersection(controller, element, appear, disappear, options) {
19
+ if (appear) {
20
+ appear = appear.bind(controller);
21
+ }
22
+ if (disappear) {
23
+ disappear = disappear.bind(controller);
24
+ }
25
+ let opts = options !== null && options !== void 0 ? options : {};
26
+ let processEntries = (entries) => {
27
+ entries.forEach((entry) => {
28
+ if (entry.isIntersecting) {
29
+ appear && appear(entry);
30
+ }
31
+ else {
32
+ disappear && disappear(entry);
33
+ }
34
+ });
35
+ };
36
+ let { observer, observe, unobserve, teardown } = useIntersectionObserver(controller, processEntries, opts);
37
+ let setup = () => observe(element);
38
+ useMixin(controller, setup, teardown);
39
+ return {
40
+ observer,
41
+ observe: () => observe(element),
42
+ unobserve: () => unobserve(element),
43
+ teardown,
44
+ };
45
+ }
@@ -0,0 +1,13 @@
1
+ import { useMixin } from "./create_mixin";
2
+ export function useInterval(controller, handler, interval) {
3
+ handler = handler.bind(controller);
4
+ let intervalHandle = null;
5
+ let setup = () => intervalHandle = setInterval(handler, interval);
6
+ let teardown = () => {
7
+ if (intervalHandle !== null) {
8
+ clearInterval(intervalHandle);
9
+ }
10
+ };
11
+ useMixin(controller, setup, teardown);
12
+ return teardown;
13
+ }
@@ -0,0 +1,122 @@
1
+ import { reactive } from "../utilities/reactive";
2
+ export const StorageSerializers = {
3
+ boolean: {
4
+ deserialize: (v) => v === 'true',
5
+ serialize: (v) => String(v),
6
+ isEmpty: (v) => v === '' || v === null,
7
+ },
8
+ object: {
9
+ deserialize: (v) => JSON.parse(v),
10
+ serialize: (v) => JSON.stringify(v),
11
+ isEmpty: (v) => {
12
+ const values = Object.values(JSON.parse(v));
13
+ return values.length === 0 || values.every(v => v === '' || v === null);
14
+ },
15
+ },
16
+ number: {
17
+ deserialize: (v) => Number.parseFloat(v),
18
+ serialize: (v) => String(v),
19
+ isEmpty: (v) => v === '' || v === null,
20
+ },
21
+ any: {
22
+ deserialize: (v) => v,
23
+ serialize: (v) => String(v),
24
+ isEmpty: (v) => v === '' || v === null,
25
+ },
26
+ string: {
27
+ deserialize: (v) => v,
28
+ serialize: (v) => String(v),
29
+ isEmpty: (v) => v === '' || v === null,
30
+ },
31
+ map: {
32
+ deserialize: (v) => new Map(JSON.parse(v)),
33
+ serialize: (v) => JSON.stringify(Array.from(v.entries())),
34
+ isEmpty: (v) => {
35
+ const values = Array.from(v.values());
36
+ return values.length === 0 || values.every(v => v === '' || v === null);
37
+ },
38
+ },
39
+ set: {
40
+ deserialize: (v) => new Set(JSON.parse(v)),
41
+ serialize: (v) => JSON.stringify(Array.from(v.entries())),
42
+ isEmpty: (v) => {
43
+ const values = Array.from(v.values());
44
+ return values.length === 0 || values.every(v => v === '' || v === null);
45
+ },
46
+ },
47
+ };
48
+ export function useLocalStorage(controller, key, defaultValue, opts = { writeDefaults: true }) {
49
+ let type;
50
+ let { writeDefaults } = opts;
51
+ if (defaultValue == null) {
52
+ type = 'any';
53
+ }
54
+ else if (defaultValue instanceof Set) {
55
+ type = 'set';
56
+ }
57
+ else if (defaultValue instanceof Map) {
58
+ type = 'map';
59
+ }
60
+ else if (typeof defaultValue === 'boolean') {
61
+ type = 'boolean';
62
+ }
63
+ else if (typeof defaultValue === 'string') {
64
+ type = 'string';
65
+ }
66
+ else if (typeof defaultValue === 'object') {
67
+ type = 'object';
68
+ }
69
+ else if (Array.isArray(defaultValue)) {
70
+ type = 'object';
71
+ }
72
+ else if (!Number.isNaN(defaultValue)) {
73
+ type = 'number';
74
+ }
75
+ else {
76
+ type = 'any';
77
+ }
78
+ let data = reactive({
79
+ value: defaultValue,
80
+ });
81
+ let storage = localStorage;
82
+ const serializer = StorageSerializers[type];
83
+ const read = () => {
84
+ const rawValue = storage.getItem(key);
85
+ if (rawValue == null) {
86
+ data.value = defaultValue;
87
+ if (writeDefaults && defaultValue !== null) {
88
+ storage.setItem(key, serializer.serialize(defaultValue));
89
+ }
90
+ }
91
+ else {
92
+ data.value = serializer.deserialize(rawValue);
93
+ }
94
+ return data.value;
95
+ };
96
+ const write = (value) => {
97
+ storage.setItem(key, serializer.serialize(value));
98
+ data.value = value;
99
+ };
100
+ const clear = () => {
101
+ storage.removeItem(key);
102
+ data.value = defaultValue;
103
+ return data.value;
104
+ };
105
+ const isEmpty = () => {
106
+ let rawValue = storage.getItem(key);
107
+ return serializer.isEmpty(rawValue);
108
+ };
109
+ read();
110
+ return {
111
+ get value() {
112
+ return read();
113
+ },
114
+ set value(value) {
115
+ write(value);
116
+ },
117
+ read,
118
+ clear,
119
+ write,
120
+ isEmpty,
121
+ };
122
+ }
@@ -0,0 +1,9 @@
1
+ import { useMixin } from "./create_mixin";
2
+ export function useMutationObserver(controller, element, handler, options) {
3
+ handler = handler.bind(controller);
4
+ let observer = new MutationObserver(handler);
5
+ let setup = () => observer.observe(element, options);
6
+ let teardown = () => observer.disconnect();
7
+ useMixin(controller, setup, teardown);
8
+ return teardown;
9
+ }
@@ -0,0 +1,38 @@
1
+ import { useMixin } from "./create_mixin";
2
+ import { useTimeout } from "./use_timeout";
3
+ import { isHTMLInputElement } from "../utilities/elements";
4
+ export function useTemporaryContent(controller, target, content, timeout, teardownCallback) {
5
+ const setContent = (element, text) => {
6
+ if (isHTMLInputElement(element)) {
7
+ element.value = text;
8
+ }
9
+ else {
10
+ element.textContent = text;
11
+ }
12
+ };
13
+ const getContent = (element) => {
14
+ return isHTMLInputElement(element) ? element.value : element.innerHTML;
15
+ };
16
+ let cleanupTimeout = () => void 0;
17
+ let originalText = getContent(target);
18
+ const teardown = () => {
19
+ setContent(target, originalText);
20
+ cleanupTimeout();
21
+ if (teardownCallback) {
22
+ teardownCallback.call(controller);
23
+ }
24
+ };
25
+ const setup = () => {
26
+ setContent(target, content);
27
+ if (timeout !== undefined) {
28
+ cleanupTimeout = useTimeout(controller, teardown, timeout);
29
+ }
30
+ };
31
+ useMixin(controller, setup, teardown);
32
+ return {
33
+ teardown,
34
+ update(newContent) {
35
+ setContent(target, newContent);
36
+ },
37
+ };
38
+ }
@@ -0,0 +1,20 @@
1
+ import { useMixin } from "./create_mixin";
2
+ export function useTimeout(controller, handler, timeout) {
3
+ let controllerDisconnect;
4
+ let timeoutHandle = null;
5
+ handler = handler.bind(controller);
6
+ let newHandler = () => {
7
+ handler();
8
+ timeoutHandle = null;
9
+ Object.assign(controller, { disconnect: controllerDisconnect });
10
+ };
11
+ let setup = () => timeoutHandle = setTimeout(newHandler, timeout);
12
+ let teardown = () => {
13
+ if (timeoutHandle !== null) {
14
+ clearTimeout(timeoutHandle);
15
+ timeoutHandle = null;
16
+ }
17
+ };
18
+ controllerDisconnect = useMixin(controller, setup, teardown);
19
+ return teardown;
20
+ }
@@ -0,0 +1,71 @@
1
+ import { controllerMethod } from "../utilities/stimulus";
2
+ import { Controller } from "@hotwired/stimulus";
3
+ export class TrixComposableController extends Controller {
4
+ }
5
+ export function useTrixModifiers(controller) {
6
+ // keep a copy of the lifecycle function of the controller
7
+ const controllerDisconnect = controller.disconnect.bind(controller);
8
+ let observing = false;
9
+ let observerCallback = (entries, observer) => {
10
+ entries.forEach(mutation => {
11
+ if (mutation.type === 'childList' && Array.from(mutation.addedNodes).some((el) => el.tagName === 'TRIX-TOOLBAR')) {
12
+ attemptSetup();
13
+ observer.disconnect();
14
+ }
15
+ });
16
+ };
17
+ let pasteHandler = (event) => controllerMethod(controller, 'pasteEvent').call(controller, event);
18
+ let observer = new MutationObserver(observerCallback);
19
+ let attemptSetup = () => {
20
+ if (controller.element.tagName !== 'TRIX-EDITOR') {
21
+ throw new Error('Expected controller to be mounted on an instance of <trix-editor>');
22
+ }
23
+ let editor = controller.element;
24
+ let editorParent = controller.element.parentElement;
25
+ if (editorParent == null) {
26
+ throw new Error('Could not traverse DOM tree from <trix-editor>');
27
+ }
28
+ editor.addEventListener('trix-paste', pasteHandler);
29
+ let toolbar = editorParent.querySelector('trix-toolbar');
30
+ if (!observing && !toolbar) {
31
+ // toolbar is not in the DOM yet, wait for it to arrive before running setup
32
+ observing = true;
33
+ observer.observe(editorParent, { childList: true });
34
+ return;
35
+ }
36
+ else if (!toolbar) {
37
+ // Fallback, in case this runs twice, or mutation observer logic fails
38
+ throw new Error('Could not find an instance of <trix-toolbar> that is a sibling of this <trix-editor>');
39
+ }
40
+ else {
41
+ // Do not need MutationObserver, all elements are present and correct
42
+ observer.disconnect();
43
+ }
44
+ controllerMethod(controller, 'install').call(controller, { toolbar, editor });
45
+ };
46
+ let teardown = () => {
47
+ if (controller.element.tagName !== 'TRIX-EDITOR') {
48
+ throw new Error('Expected controller to be mounted on an instance of <trix-editor>');
49
+ }
50
+ let editor = controller.element;
51
+ let editorParent = controller.element.parentElement;
52
+ if (editorParent == null) {
53
+ throw new Error('Could not traverse DOM tree from <trix-editor>');
54
+ }
55
+ editor.removeEventListener('trix-paste', pasteHandler);
56
+ let toolbar = editorParent.querySelector('trix-toolbar');
57
+ if (!toolbar) {
58
+ throw new Error('Could not find <trix-toolbar> that is a sibling of this <trix-editor> element');
59
+ }
60
+ controllerMethod(controller, 'uninstall').call(controller, { toolbar, editor });
61
+ };
62
+ attemptSetup();
63
+ Object.assign(controller, {
64
+ disconnect() {
65
+ observer.disconnect();
66
+ teardown();
67
+ controllerMethod(controller, 'uninstall').call({ toolbar, editor: controller.element });
68
+ controllerDisconnect();
69
+ },
70
+ });
71
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // @ts-ignore
3
+ if (!String.prototype.replaceAll) {
4
+ // @ts-ignore
5
+ String.prototype.replaceAll = function (str, newStr) {
6
+ // If a regex pattern
7
+ if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
8
+ return this.replace(str, newStr);
9
+ }
10
+ // If a string
11
+ return this.replace(new RegExp(str, 'g'), newStr);
12
+ };
13
+ }
@@ -0,0 +1,3 @@
1
+ export function wrapArray(x) {
2
+ return Array.isArray(x) ? x : [x];
3
+ }
@@ -0,0 +1,56 @@
1
+ import { Controller } from "@hotwired/stimulus";
2
+ import { log, logProperty } from "./logging";
3
+ import { dispatchEvent } from "./events";
4
+ export class BaseController extends Controller {
5
+ constructor(context) {
6
+ super(context);
7
+ // @ts-ignore
8
+ if (!this.application.debug) {
9
+ return this;
10
+ }
11
+ return new Proxy(this, {
12
+ get: (obj, prop) => {
13
+ let returnVal = Reflect.get(obj, prop);
14
+ let self = this;
15
+ if ("logFormattedMessage" in this.application) {
16
+ return returnVal;
17
+ }
18
+ if (logProperty(prop.toString())) {
19
+ if (typeof returnVal == "function") {
20
+ return new Proxy(returnVal, {
21
+ apply(target, thisArg, argArray) {
22
+ log(self, prop.toString(), {
23
+ args: argArray,
24
+ });
25
+ return Reflect.apply(target, thisArg, argArray);
26
+ },
27
+ });
28
+ }
29
+ else {
30
+ log(this, prop.toString());
31
+ }
32
+ }
33
+ return returnVal;
34
+ },
35
+ });
36
+ }
37
+ get el() {
38
+ return this.element;
39
+ }
40
+ get isTurboPreview() {
41
+ return document.documentElement.hasAttribute('data-turbo-preview') || document.documentElement.hasAttribute('data-turbolinks-preview');
42
+ }
43
+ get isTurbolinksPreview() {
44
+ return this.isTurboPreview;
45
+ }
46
+ get csrfToken() {
47
+ return this.metaValue('csrf-token');
48
+ }
49
+ metaValue(name) {
50
+ const element = document.head.querySelector(`meta[name="${name}"]`);
51
+ return (element === null || element === void 0 ? void 0 : element.getAttribute('content')) || null;
52
+ }
53
+ dispatchEvent(element, eventName, options = {}) {
54
+ dispatchEvent(this, element, eventName, options);
55
+ }
56
+ }