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
@@ -1,2 +0,0 @@
1
- var Xs=Object.defineProperty;var ds=Object.getOwnPropertySymbols;var Ys=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable;var Re=(a,b,m)=>b in a?Xs(a,b,{enumerable:!0,configurable:!0,writable:!0,value:m}):a[b]=m,qe=(a,b)=>{for(var m in b||(b={}))Ys.call(b,m)&&Re(a,m,b[m]);if(ds)for(var m of ds(b))Zs.call(b,m)&&Re(a,m,b[m]);return a};var l=(a,b,m)=>(Re(a,typeof b!="symbol"?b+"":b,m),m);(function(a,b){typeof exports=="object"&&typeof module!="undefined"?b(exports,require("stimulus"),require("lodash-es"),require("date-fns")):typeof define=="function"&&define.amd?define(["exports","stimulus","lodash-es","date-fns"],b):(a=typeof globalThis!="undefined"?globalThis:a||self,b(a["Stimulus-Library"]={},a.stimulus,a.lodashEs,a.dateFns))})(this,function(a,b,m,E){"use strict";function ms(t){switch(t){case"application":case"el":case"element":case"constructor":case"initialize":case"log":case"logEvent":case"dispatch":case"data":case"valueDescriptorMap":case"mutate":case"identifier":return!1}return!(/^_.*?$/.test(t)||/^.*?Target(s)?$/.test(t)||/^.*?Value$/.test(t)||/^.*?ValueChanged$/.test(t)||/^.*?Class$/.test(t)||/^.*?Classes$/.test(t)||/^.*?ClassesPresent$/.test(t))}function Pe(t,e,s={}){if(!t.application.debug)return;let i=console;i.groupCollapsed(...B(t.identifier,"#3B82F6"),`#${e}`),i.log(qe({element:t.element,controller:t},s)),i.groupEnd()}function $e(t,e,s={}){if(!t.application.debug)return;let i=console;i.groupCollapsed(...B(t.identifier,"#F39B1AFF"),`!! ${e} !!`),i.warn(qe({element:t.element,controller:t},s)),i.groupEnd()}function fs(t,e,s,i){if(!t.application.debug)return;let r=console;r.groupCollapsed(...ze([{text:t.identifier,color:"#3B82F6"},{text:e,color:"#0be000"}]),s.detail),r.log(...B("Dispatched on","#3b82f6"),i),r.log(...B("event","#3b82f6"),s),r.log(...B("event details","#3b82f6"),s.detail),r.groupEnd()}function B(t,e){return ze([{text:t,color:e}])}function ze(t){let e="",s=t.flatMap(i=>(e+=`%c${i.text}%c `,[`color: ${i.color}`,"color: unset"]));return[e,...s]}function re(t,e,s,i={}){let r=Object.assign({},{bubbles:!0,cancelable:!0,detail:{target:e}},i);r.detail.target||(r.detail.target=e);let n=new CustomEvent(s,r);fs(t,s,n,e),e.dispatchEvent(n)}class h extends b.Controller{constructor(e){super(e);return this.application.debug?new Proxy(this,{get:(s,i)=>{let r=Reflect.get(s,i),n=this;if("logFormattedMessage"in this.application)return r;if(ms(i.toString())){if(typeof r=="function")return new Proxy(r,{apply(o,c,u){return Pe(n,i.toString(),{args:u}),Reflect.apply(o,c,u)}});Pe(this,i.toString())}return r}}):this}get el(){return this.element}get isTurboPreview(){return document.documentElement.hasAttribute("data-turbo-preview")||document.documentElement.hasAttribute("data-turbolinks-preview")}get isTurbolinksPreview(){return this.isTurboPreview}get csrfToken(){return this.metaValue("csrf-token")}metaValue(e){const s=document.head.querySelector(`meta[name="${e}"]`);return(s==null?void 0:s.getAttribute("content"))||null}dispatchEvent(e,s,i={}){re(this,e,s,i)}}class U extends h{_cleanupSelf(){this.cleanup(this.el)}cleanup(e){var n,o,c;e.dataset.controller=((n=e.dataset.controller)==null?void 0:n.replaceAll(new RegExp(`(\\s|^)${this.identifier}(\\s|$)`,"g"),""))||"",e.dataset.controller==""&&delete e.dataset.controller;let s=new RegExp(`(\\s|^)${this.identifier}\\..+?(\\s|$)`,"g");e.dataset.target=((o=e.dataset.target)==null?void 0:o.replaceAll(s,""))||"",delete e.dataset[m.camelCase(`${this.identifier}-target`)],e.dataset.target==""&&delete e.dataset.target,e.dataset.action=((c=e.dataset.target)==null?void 0:c.replaceAll(s,""))||"",delete e.dataset[m.camelCase(`${this.identifier}-action`)],e.dataset.action==""&&delete e.dataset.action;let i=this.constructor.values;i&&Object.keys(i).forEach(u=>delete e.dataset[m.camelCase(`${this.identifier}-${u}-value`)]);let r=this.constructor.classes;r&&Object.keys(r).forEach(u=>delete e.dataset[m.camelCase(`${this.identifier}-${u}-class`)])}}const C="scrollBehavior"in document.documentElement.style;let Ue;async function A(t,{behavior:e="smooth",block:s="start",inline:i="nearest"}={}){e=="smooth"&&!C&&await S(),t.scrollIntoView({behavior:e,block:s,inline:i})}async function ae(t,{behavior:e="smooth"}={}){e=="smooth"&&!C&&await S(),t.scrollTo({top:0,left:0,behavior:e})}async function ne(t,{behavior:e="smooth"}={}){e=="smooth"&&!C&&await S(),t==window?t.scrollTo({top:document.body.scrollHeight,left:0,behavior:e}):t.scrollTo({top:t.scrollHeight,left:0,behavior:e})}async function le(t,{behavior:e="smooth"}={}){e=="smooth"&&!C&&await S(),t.scrollTo({left:0,behavior:e})}async function gs(t,{behavior:e="smooth"}={}){e=="smooth"&&!C&&await S(),t==window?t.scrollTo({left:document.body.scrollWidth,behavior:e}):t.scrollTo({left:t.scrollWidth,behavior:e})}async function je(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!C&&await S(),t.scrollBy({top:-e,left:0,behavior:s})}async function We(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!C&&await S(),t.scrollBy({top:e,left:0,behavior:s})}async function Ke(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!C&&await S(),t.scrollBy({top:0,left:-e,behavior:s})}async function Ge(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!C&&await S(),t.scrollBy({top:0,left:e,behavior:s})}async function S(){const{polyfill:t}=await import("smoothscroll-polyfill");Ue||(Ue=!0,t())}function j(t){if(!t)return null;if(t==document.body)return window;const e=getComputedStyle(t).overflowY;return e!=="visible"&&e!=="hidden"&&t.scrollHeight>=t.clientHeight?t:j(t.parentElement)||document.body}function oe(t){return t.nodeName=="TURBO-FRAME"}function ps(t){return{all:t=t||new Map,on:function(e,s){var i=t.get(e);i?i.push(s):t.set(e,[s])},off:function(e,s){var i=t.get(e);i&&(s?i.splice(i.indexOf(s)>>>0,1):t.set(e,[]))},emit:function(e,s){var i=t.get(e);i&&i.slice().map(function(r){r(s)}),(i=t.get("*"))&&i.slice().map(function(r){r(e,s)})}}}const V=ps();function _s(t){return t.nodeName=="LINK"}function ue(t){return t.nodeName=="A"}function he(t){return t.nodeName=="FORM"}function v(t){return t.nodeName=="INPUT"}function bs(t){return t.nodeName=="LABEL"}function W(t){return t.nodeName=="TEXTAREA"}function vs(t){return t.nodeName=="BUTTON"}function I(t){return t.nodeName=="SELECT"}function ws(t){return t.nodeName=="IMG"}function ys(t){return t.nodeName=="INPUT"&&t.type=="button"}function Je(t){return t.nodeName=="INPUT"&&t.type=="submit"}function Xe(t){return t.nodeName=="INPUT"&&t.type=="reset"}function Ye(t){return t.nodeName=="BUTTON"&&t.type=="button"}function Ze(t){return t.nodeName=="BUTTON"&&t.type=="submit"}function Qe(t){return t.nodeName=="BUTTON"&&t.type=="reset"}function et(t){return Qe(t)||Xe(t)}function tt(t){return Ze(t)||Je(t)}function K(t){return et(t)||tt(t)||Ye(t)}function k(t){return v(t)&&(t.type==="radio"||t.type==="checkbox")}function st(t){return v(t)||I(t)||W(t)}function it(t){let e=document.createElement("button");return e.type=t,e.style.display="none",e.dataset.sythentic="true",e}function rt(t,e){let s=document.createElement("input");return s.type="hidden",s.name=t,s.value=e,s}function ce(t,e,s){let i=t.insertAdjacentElement(e,s);if(!i)throw new Error(`Failed to insert element ${s.nodeName} into ${t.nodeName}`);return i}function Es(t,e,s,i){return ce(s,i,rt(t,e))}function de(t,e,s){return ce(e,s,it(t))}function me(t){let e=t.form||document;return Array.from(e.querySelectorAll(`input[type="radio"][name="${t.name}"]`))}function fe(t){return me(t).filter(e=>e!==t)}function at(t){const e=t.getBoundingClientRect(),s=window.innerHeight||document.documentElement.clientHeight,i=window.innerWidth||document.documentElement.clientWidth,r=e.top<=s&&e.top+e.height>=0,n=e.left<=i&&e.left+e.width>=0;return r&&n}function ge(t){if(t.requestSubmit)t.requestSubmit();else{let e=t.querySelector('button[type="submit"]');e||(e=de("submit",t,"beforeend")),e.click()}}function nt(t){let e=t.querySelector('button[type="reset"]');e||(e=de("reset",t,"beforeend")),e.click()}function lt(t){return Array.isArray(t)?t:[t]}function y(t,e,s){const i=t.disconnect.bind(t);return e(),Object.assign(t,{disconnect(){s(),i()}}),i}function d(t,e,s,i,r){(r==null?void 0:r.debounce)?(i=m.debounce(i.bind(t),r.debounce),delete r.debounce):i=i.bind(t);let n=lt(s),o=()=>n.forEach(u=>e.addEventListener(u,i,r)),c=()=>n.forEach(u=>e.removeEventListener(u,i));return y(t,o,c),{setup:o,teardown:c}}function ot(t,e,s,i,r){return d(t,e,s,i,r)}function D(t,e,s,i,r){let n=[];return e.forEach(o=>{let{setup:c,teardown:u}=d(t,o,s,i,r);n.push({setup:c,teardown:u})}),[()=>n.forEach(o=>o.setup()),()=>n.forEach(o=>o.teardown())]}function Ts(t,e,s,i,r){return D(t,e,s,i,r)}function ut(t,e){let s=e||document.documentElement,i=document.fullscreenElement!==null;const r=()=>i=document.fullscreenElement!==null,n=()=>i,o=async()=>i?await g():await p();let c=()=>document.addEventListener("fullscreenchange",r),u=()=>document.removeEventListener("fullscreenchange",r);const g=async()=>{document.exitFullscreen&&(i=!1,await document.exitFullscreen())},p=async()=>{i&&await g(),s.requestFullscreen&&(await s.requestFullscreen(),i=!0)};return y(t,c,u),{isFullscreen:n,enter:p,exit:g,toggle:o,teardown:u}}function G(t){if(t===null||typeof t!="object")return t;for(const e in t)Object.getOwnPropertyDescriptor(t,e)!=null&&(t[e]=G(t[e]));return new Proxy(t,{get(e,s){return e[s]},set(e,s,i){return e[s]=G(i),!0}})}function Cs(t,e={},s,i){s&&(s=s.bind(t)),i&&(i=i.bind(t));const{enableHighAccuracy:r=!0,maximumAge:n=3e4,timeout:o=27e3}=e,c=navigator&&"geolocation"in navigator,u=G({locatedAt:null,error:null,coords:{accuracy:0,latitude:1/0,longitude:1/0,altitude:null,altitudeAccuracy:null,heading:null,speed:null},teardown:()=>{p&&(navigator.geolocation.clearWatch(p),p=null)}});let g=()=>{c&&(p=navigator.geolocation.watchPosition(_=>{u.locatedAt=_.timestamp,u.coords=_.coords,u.error=null,s&&s(_)},_=>{u.error=_,i&&i(_)},{enableHighAccuracy:r,maximumAge:n,timeout:o}))},p=null;return y(t,g,u.teardown),u}function pe(t,e,s,i,r={}){let n=Array.from(i.childNodes),o=()=>{let u=e.parentElement;if(["beforebegin","afterend"].includes(s)&&u==null)throw new Error("Cannot insert beforebegin into a node with no parent");switch(s){case"beforeend":e.append(i);break;case"afterbegin":e.prepend(i);break;case"beforebegin":u.insertBefore(i,e);break;case"afterend":u.insertBefore(i,e);break}},c=r.cleanup?()=>n.forEach(u=>u.remove()):()=>{};return y(t,o,c),[n,c]}function Ss(t,e,s,i,r={}){const n=document.createRange().createContextualFragment(i);return pe(t,e,s,n,r)}function ht(t,e,s,i,r={}){const n=new DocumentFragment;n.append(i);let[o,c]=pe(t,e,s,n,r);return[o[0],c]}function F(t,e,s){e=e.bind(t);let i=null,r=()=>i=setInterval(e,s),n=()=>{i!==null&&clearInterval(i)};return y(t,r,n),n}const ct={boolean:{deserialize:t=>t==="true",serialize:t=>String(t),isEmpty:t=>t===""||t===null},object:{deserialize:t=>JSON.parse(t),serialize:t=>JSON.stringify(t),isEmpty:t=>{const e=Object.values(JSON.parse(t));return e.length===0||e.every(s=>s===""||s===null)}},number:{deserialize:t=>Number.parseFloat(t),serialize:t=>String(t),isEmpty:t=>t===""||t===null},any:{deserialize:t=>t,serialize:t=>String(t),isEmpty:t=>t===""||t===null},string:{deserialize:t=>t,serialize:t=>String(t),isEmpty:t=>t===""||t===null},map:{deserialize:t=>new Map(JSON.parse(t)),serialize:t=>JSON.stringify(Array.from(t.entries())),isEmpty:t=>{const e=Array.from(t.values());return e.length===0||e.every(s=>s===""||s===null)}},set:{deserialize:t=>new Set(JSON.parse(t)),serialize:t=>JSON.stringify(Array.from(t.entries())),isEmpty:t=>{const e=Array.from(t.values());return e.length===0||e.every(s=>s===""||s===null)}}};function dt(t,e,s,i={writeDefaults:!0}){let r,{writeDefaults:n}=i;s==null?r="any":s instanceof Set?r="set":s instanceof Map?r="map":typeof s=="boolean"?r="boolean":typeof s=="string"?r="string":typeof s=="object"||Array.isArray(s)?r="object":Number.isNaN(s)?r="any":r="number";let o=G({value:s}),c=localStorage;const u=ct[r],g=()=>{const w=c.getItem(e);return w==null?(o.value=s,n&&s!==null&&c.setItem(e,u.serialize(s))):o.value=u.deserialize(w),o.value},p=w=>{c.setItem(e,u.serialize(w)),o.value=w},_=()=>(c.removeItem(e),o.value=s,o.value),M=()=>{let w=c.getItem(e);return u.isEmpty(w)};return g(),{get value(){return g()},set value(w){p(w)},read:g,clear:_,write:p,isEmpty:M}}function L(t,e,s){let i,r=null;e=e.bind(t);let n=()=>{e(),r=null,Object.assign(t,{disconnect:i})},o=()=>r=setTimeout(n,s),c=()=>{r!==null&&(clearTimeout(r),r=null)};return i=y(t,o,c),c}function mt(t,e,s,i,r){const n=(_,M)=>{v(_)?_.value=M:_.textContent=M},o=_=>v(_)?_.value:_.innerHTML;let c=()=>{},u=o(e);const g=()=>{n(e,u),c(),r&&r.call(t)};return y(t,()=>{n(e,s),i!==void 0&&(c=L(t,g,i))},g),{teardown:g,update(_){n(e,_)}}}async function ft(t,e,s){try{return await fetch(e,s)}catch(i){if(t===1)throw i;return await ft(t-1,e,s)}}class N extends h{get _errorMessage(){return this.hasErrorMessageValue?this.errorMessageValue:"This content failed to load"}get _maxRetries(){return this.hasMaxRetriesValue?this.maxRetriesValue:1}connect(){}async loadContent(e=null){e==null||e.preventDefault();let s=this,i=this.hasReplaceTarget?this.replaceTarget:this.el,r=()=>{i.replaceWith(this._errorMessage),s.dispatchEvent(i,"ajax:error")};try{let n=await ft(this._maxRetries,this.endpointValue);n.ok||r();let o=await n.text(),c=document.createElement("div");if(c.innerHTML=o,this.hasSelectorValue){let u=c.querySelectorAll(this.selectorValue);i.replaceWith(...u)}else i.replaceWith(...c.children);s.dispatchEvent(i,"ajax:success")}catch{r()}finally{s.dispatchEvent(i,"ajax:complete")}}}l(N,"targets",["replace"]),l(N,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number});class _e extends N{get _errorMessage(){return this.hasErrorMessageValue?this.errorMessageValue:"This content failed to load"}async connect(){await this.loadContent()}}l(_e,"targets",["replace"]),l(_e,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number});function Vs(t,e,s){e=e.bind(t);let i=new IntersectionObserver(e,s);return{observer:i,teardown:()=>{i==null||i.disconnect(),i=null},observe:c=>i==null?void 0:i.observe(c),unobserve:c=>i==null?void 0:i.unobserve(c)}}function be(t,e,s,i,r){s&&(s=s.bind(t)),i&&(i=i.bind(t));let n=r!=null?r:{},o=M=>{M.forEach(w=>{w.isIntersecting?s&&s(w):i&&i(w)})},{observer:c,observe:u,unobserve:g,teardown:p}=Vs(t,o,n);return y(t,()=>u(e),p),{observer:c,observe:()=>u(e),unobserve:()=>g(e),teardown:p}}class ks extends N{async connect(){let e=this.el;if("IntersectionObserver"in window){let{observe:s,unobserve:i}=be(this,e,this.appear,null,{threshold:.3});this.observe=s,this.unobserve=i}else await this.loadContent()}async appear(e){e.target===this.el&&e.isIntersecting&&(await this.loadContent(),this.unobserve&&this.unobserve())}}class ve extends N{connect(){if(!this.hasSecondsValue)throw new Error("Required value `seconds` is missing");requestAnimationFrame(()=>{this._timeout(),F(this,this._timeout,this.secondsValue*1e3)})}async _timeout(){await this.loadContent()}}l(ve,"targets",["replace"]),l(ve,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number,seconds:Number});class gt extends h{get _eventModes(){if(this.hasEventModeValue){let e=this.eventModeValue.split(" ").map(s=>s.trim());if(e.length===1&&e[0]==="debounced")return["change","input"];if(!e.every(s=>["change","input"].includes(s)))throw new Error(`The modeValue provided '${this.eventModeValue}' is not one of the recognised configuration options`);return e}else return["change"]}get _debounceTimeout(){return this.hasDebounceIntervalValue?this.debounceIntervalValue:-1}get _mode(){if(this.hasSubmitModeValue){if(!["direct","request"].includes(this.submitModeValue))throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`);return this.submitModeValue}else return"request"}get _cssSelector(){let e=["input","textarea","select"],s=":not([data-no-autosubmit])";return e.map(i=>i.concat(s)).join(",")}get inputElements(){let e=Array.from(this.element.querySelectorAll(this._cssSelector));return e=e.filter(s=>!this._ancestorIsTrix(s)),e}connect(){this.inputElements.forEach(e=>d(this,e,this._eventModes,this.submit,{debounce:this._debounceTimeout&&this._debounceTimeout>0?this._debounceTimeout:void 0}))}_ancestorIsTrix(e){return e.closest("trix-toolbar")!==null&&e.closest("trix-editor")!==null}submit(){let e=this.el;this._mode=="request"?ge(e):e.submit()}}l(gt,"values",{submitMode:String,eventMode:String,debounceInterval:Number});class Ms extends h{connect(){let{teardown:e}=be(this,this.el,this.appear);if(this._unobserveIntersection=e,!W(this.el))throw new Error(`Expected controller to be attached to a textarea, but was a '${this.el.tagName}'`);requestAnimationFrame(()=>{this.el.style.resize="none",this.el.style.boxSizing="border-box",this._handler(),d(this,window,["resize"],this._handler),d(this,this.el,["input","change","focus"],this._handler,{debounce:100})})}appear(e){this.autosize(this.el),this._unobserveIntersection()}_handler(){this.autosize(this.el)}autosize(e){let s=e.offsetHeight-e.clientHeight;e.style.height="auto",e.style.height=e.scrollHeight+s+"px"}}function R(t,e){const s=t[e];return typeof s=="function"?s:s!=null?()=>s:()=>{}}function J(t){return m.upperFirst(m.camelCase(t))}function As(t,e){let s=t.element,i=()=>t[`has${J(e)}Class`]==!0,r=()=>t[`${e}Classes`],n=()=>R(t,`default${J(e)}Classes`).call(t)||[],o=()=>i()?r():n();t[`${e}Classes`]==null&&Object.defineProperty(t,`${e}Classes`,{get:()=>i()?t[`${e}Class`].split(" "):n()});let c={[`add${J(e)}Classes`]:(u=s)=>u.classList.add(...o()),[`remove${J(e)}Classes`]:(u=s)=>u.classList.remove(...o()),[`${e}ClassesPresent`]:(u=s)=>o().every(g=>u.classList.contains(g))};Object.assign(t,c)}function T(t){(t.constructor.classes||[]).forEach(s=>As(t,s))}class X extends h{connect(){T(this),requestAnimationFrame(()=>{d(this,this.inputTarget,"input",this._updateCharCount),this._updateCharCount()})}_updateCharCount(){let e=this.inputTarget.value.length;this.outputTarget.innerText=e.toString(),this._isValidCount(e)?this.removeErrorClasses(this.outputTarget):this.addErrorClasses(this.outputTarget)}_isValidCount(e){let s=0,i=99999;return this.hasMinValue&&(s=this.minValue),this.hasMaxValue&&(i=this.maxValue),e>=s&&e<=i}}l(X,"targets",["input","output"]),l(X,"values",{min:Number,max:Number}),l(X,"classes",["error"]);class we extends h{connect(){this.toggle()}toggle(){this.hasDisablerTarget&&this.disablerTarget.checked?this.disable():this.enable()}disable(){let e=this.hasClearValue&&this.clearValue;this.disableTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.disableTargets.forEach((e,s)=>{e.disabled=!1})}}l(we,"targets",["disabler","disable"]),l(we,"values",{clear:Boolean});class ye extends h{connect(){this.toggle()}toggle(){this.hasEnablerTarget&&this.enablerTarget.checked?this.enable():this.disable()}disable(){let e=this.hasClearValue&&this.clearValue;this.enableTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.enableTargets.forEach((e,s)=>{e.disabled=!1})}}l(ye,"targets",["enabler","enable"]),l(ye,"values",{clear:Boolean});class pt extends h{get _checked(){return this._enabled.filter(e=>e.checked)}get _enabled(){return this.checkboxTargets.filter(e=>!e.disabled&&!e.readOnly)}get _unchecked(){return this._enabled.filter(e=>!e.checked)}connect(){requestAnimationFrame(()=>{!this.hasSelectAllTarget||(d(this,this.selectAllTarget,"change",this._toggle),D(this,this.checkboxTargets,"change",this._refresh),this._refresh())})}_toggle(e){e.preventDefault();let s=e.target;this._enabled.forEach(i=>i.checked=i.disabled||i.readOnly?i.checked:s.checked)}_refresh(){const e=this._enabled.length,s=this._checked.length;this.selectAllTarget.checked=s>0,this.selectAllTarget.indeterminate=s>0&&s<e}}l(pt,"targets",["selectAll","checkbox"]);class _t extends h{connect(){D(this,this.checkboxTargets,"change",this._update)}_otherCheckboxes(e){return Array.from(this.checkboxTargets).filter(s=>s!==e)}_update(e){const s=e.target;if(!s)throw new Error("No target found on event");let i=this._otherCheckboxes(s);s.checked&&i.forEach(r=>{r.checked=!1,this.dispatchEvent(this.el,"change")})}}l(_t,"targets",["checkbox"]);class Ds extends h{get _cacheAttrName(){return"detect-dirty-load-value"}connect(){let e=this.el;this._cacheLoadValues(),this._checkDirty(),d(this,e,["input","change"],this._checkDirty,{debounce:10})}restore(e){e==null||e.preventDefault(),this._restoreElementFromLoadValue()}_getElementValue(){let e=this.el;return k(e)?e.checked:e.value}_getElementLoadValue(){let e=this.el,s=e.getAttribute(this._cacheAttrName);if(k(e))return s==null?e.defaultChecked:s=="true";if(I(e))Array.from(e.options).forEach(r=>{if(r.defaultSelected)return e.value=r.value,r.value});else if(s!==null)return s;return s}_elementHasCachedLoadValue(){return this.el.hasAttribute(this._cacheAttrName)}_checkDirty(){let e=this.el;v(e)&&e.type=="radio"&&fe(e).forEach(s=>s.removeAttribute("data-dirty")),this._isElementDirty()?e.setAttribute("data-dirty","true"):e.removeAttribute("data-dirty")}_isElementDirty(){return this._getElementValue()!==this._getElementLoadValue()}_restoreElementFromLoadValue(){let e=this.el,s=e.getAttribute(this._cacheAttrName);k(e)?(e.setAttribute(this._cacheAttrName,e.checked.toString()),e.checked=s==null?e.defaultChecked:s=="true"):I(e)?s==null?Array.from(e.options).forEach(r=>{if(r.defaultSelected){e.value=r.value;return}}):e.value=s:e.value=s==null?e.defaultValue:s}_cacheLoadValues(){let e=this.el;!this._elementHasCachedLoadValue()&&k(e)?e.setAttribute(this._cacheAttrName,e.checked.toString()):e.setAttribute(this._cacheAttrName,e.value.toString())}}function Ls(t){return t.hasAttribute("data-dirty")}class Is extends h{get _formElements(){return Array.from(this.el.querySelectorAll("input, select, textarea"))}get _cacheAttrName(){return"detect-dirty-load-value"}connect(){let e=this.el;this._cacheLoadValues(),this._checkDirty(),d(this,e,["input","change"],this._checkDirty,{debounce:10})}restore(e){e==null||e.preventDefault(),this._formElements.forEach(s=>this._restoreElementFromLoadValue(s))}_getElementValue(e){return k(e)?e.checked:e.value}_getElementLoadValue(e){let s=e.getAttribute(this._cacheAttrName);if(k(e))return s==null?e.defaultChecked:s=="true";if(I(e))Array.from(e.options).forEach(r=>{if(r.defaultSelected)return e.value=r.value,r.value});else if(s!==null)return s;return s}_elementHasCachedLoadValue(e){return e.hasAttribute(this._cacheAttrName)}_checkElementDirty(e){v(e)&&e.type=="radio"&&fe(e).forEach(s=>s.removeAttribute("data-dirty")),this._isElementDirty(e)?e.setAttribute("data-dirty","true"):e.removeAttribute("data-dirty")}_isElementDirty(e){return this._getElementValue(e)!==this._getElementLoadValue(e)}_cacheElementLoadValue(e){!this._elementHasCachedLoadValue(e)&&k(e)?e.setAttribute(this._cacheAttrName,e.checked.toString()):e.setAttribute(this._cacheAttrName,e.value.toString())}_restoreElementFromLoadValue(e){let s=e.getAttribute(this._cacheAttrName);k(e)?(e.setAttribute(this._cacheAttrName,e.checked.toString()),e.checked=s==null?e.defaultChecked:s=="true"):I(e)?s==null?Array.from(e.options).forEach(r=>{if(r.defaultSelected){e.value=r.value;return}}):e.value=s:e.value=s==null?e.defaultValue:s}_cacheLoadValues(){this._formElements.forEach(e=>this._cacheElementLoadValue(e))}_checkDirty(){this._formElements.forEach(e=>this._checkElementDirty(e)),this._formElements.some(e=>bt(e))?this.el.setAttribute("data-dirty","true"):this.el.removeAttribute("data-dirty")}}function bt(t){return t.hasAttribute("data-dirty")}class Ee extends h{connect(){}disable(){let e=this.hasClearValue&&this.clearValue;this.inputTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.inputTargets.forEach((e,s)=>e.disabled=!1)}}l(Ee,"targets",["input"]),l(Ee,"values",{clear:Boolean});class vt extends h{get _mode(){const e=["immediate","wait"];if(this.hasModeValue){if(e.includes(this.modeValue))return this.modeValue;throw new Error(`The given modeValue '${this.modeValue}' is not one of the supported modes: "${e.join('", "')}"`)}else return e[0]}connect(){this._mode=="immediate"&&this.steal()}steal(){this.el.focus()}}l(vt,"values",{mode:String});class Te extends h{get _mode(){if(this.hasSubmitModeValue){if(!["direct","request"].includes(this.submitModeValue))throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`);return this.submitModeValue}else return"request"}get form(){let e;if(this.hasFormSelectorValue){if(e=document.querySelector(this.formSelectorValue),!e)throw new Error(`Could not find a form on the page that matches selector '${this.formSelectorValue}'`)}else e=this.formTarget;return e}submit(e){e==null||e.preventDefault();let s=this.formTarget;this._mode=="request"?ge(s):s.submit()}reset(e){e==null||e.preventDefault(),nt(this.form)}}l(Te,"targets",["form"]),l(Te,"values",{formSelector:String,submitMode:String});class wt extends h{get _formID(){if(this.hasIdValue)return this.idValue;let e=this.el.id;if(e!=="")return e;throw new Error(`No ID value to uniquely identify this form. Please either specify data-${this.identifier}-id-value or give this form an 'id' attribute. `)}get _formIdentifier(){return`${location.href} ${this._formID}`}get _formElements(){return this.el.elements}get _formData(){let e={[this._formIdentifier]:{}};for(const s of this._formElements){let i=s;i.name.length>0&&(v(i)&&i.type=="checkbox"?e[this._formIdentifier][i.name]=i.checked:v(i)&&i.type=="radio"?i.checked&&(e[this._formIdentifier][i.name]=i.value):e[this._formIdentifier][i.name]=i.value)}return e}get _restoreOnLoad(){return this.hasRestoreOnLoadValue?this.restoreOnLoadValue:!0}get _clearOnSubmit(){return this.hasClearOnSubmitValue?this.clearOnSubmitValue:!0}connect(){requestAnimationFrame(()=>{let e=this.el;if(!he(e))throw new Error("Expected controller to be mounted on a form element.");this._restoreOnLoad&&this.restore(),this._clearOnSubmit&&d(this,this.el,"submit",this._clear)})}_clear(){localStorage.removeItem(this._formIdentifier),this.dispatchEvent(this.el,"form-save:cleared")}clear(e){e==null||e.preventDefault(),this._clear()}save(e){e.preventDefault();let s=this._formData;localStorage.setItem(this._formIdentifier,JSON.stringify(s[this._formIdentifier])),this.dispatchEvent(this.el,"form-save:save:success")}restore(e){if(e==null||e.preventDefault(),localStorage.getItem(this._formIdentifier)){const s=JSON.parse(localStorage.getItem(this._formIdentifier));for(const i of this._formElements){let r=i;r.name in s&&(v(r)&&r.type=="checkbox"?r.checked=s[r.name]:v(r)&&r.type=="radio"?r.value==s[r.name]&&(r.checked=!0):r.value=s[r.name])}this.dispatchEvent(this.el,"form-save:restore:success")}else this.dispatchEvent(this.el,"form-save:restore:empty")}}l(wt,"values",{id:String,restoreOnLoad:Boolean,clearOnSubmit:Boolean});class Ce extends h{connect(){D(this,this.inputTargets,"change",this._handleInputs)}_handleInputs(e){let s=this.inputTargets.reduce((r,n)=>n.checked?r+1:r,0),i=e.target;s>this.maxValue?(e.preventDefault(),i.checked=!1,this.dispatchEvent(i,"change"),this.dispatchEvent(i,"limited-selection:too-many"),this.hasErrorTarget&&this.hasMessageValue&&(this.errorTarget.innerHTML=this.messageValue)):(this.dispatchEvent(i,"limited-selection:selection"),this.hasErrorTarget&&(this.errorTarget.innerHTML=""))}}l(Ce,"targets",["input","error"]),l(Ce,"values",{max:Number,message:String});class Y extends h{constructor(){super(...arguments);l(this,"_errors",[]);l(this,"_firstClick",!1)}get defaultCurrentClasses(){return["currentError"]}get _errorCount(){return this._errors.length}get _previousIndex(){let e=this._index-1;return e<0?0:e}get _nextIndex(){let e=this._index+1;return e>this._errors.length-1?this._errors.length-1:e}get _index(){return m.clamp(this.hasIndexValue?this.indexValue:0,0,this._errors.length)}get _selector(){if(this.hasSelectorValue)return this.selectorValue;throw new Error("Expected `selectorValue` to be present")}get _currentError(){return this._errors[this._index]}get _otherErrors(){return this._errors.filter((e,s)=>s!==this._index)}connect(){T(this),requestAnimationFrame(()=>{this._firstClick=!0,this._toggleButtons(),this._toggleVisibility()})}async current(e){e==null||e.preventDefault(),this._firstClick&&(this._firstClick=!1,this._toggleButtons()),await A(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}async next(e){e==null||e.preventDefault(),this._firstClick?(this._firstClick=!1,this._toggleButtons()):this.indexValue=this._nextIndex,await A(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}async previous(e){e==null||e.preventDefault(),this._firstClick?(this._firstClick=!1,this._toggleButtons()):this.indexValue=this._previousIndex,await A(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}indexValueChanged(){this._toggleButtons()}selectorValueChanged(){this._errors=Array.from(document.querySelectorAll(this._selector)),this.indexValue=0,this._toggleButtons(),this._toggleVisibility()}_updateClasses(){this.addCurrentClasses(this._currentError),this._otherErrors.forEach(e=>this.removeCurrentClasses(e))}_toggleVisibility(){this._errorCount===0?this.el.style.display="none":this.el.style.display=""}_toggleButtons(){if(this.hasNextTarget)if(!this.hasCurrentTarget&&this._firstClick&&this.indexValue==this._errorCount-1){this.nextTarget.removeAttribute("disabled");return}else this.indexValue>=this._errorCount-1?this.nextTarget.setAttribute("disabled","true"):this.nextTarget.removeAttribute("disabled");this.hasPreviousTarget&&(this.indexValue<=0?this.previousTarget.setAttribute("disabled","true"):this.previousTarget.removeAttribute("disabled"))}}l(Y,"values",{selector:String,index:Number}),l(Y,"classes",["current"]),l(Y,"targets",["next","current","previous"]);class Se extends h{get _wrapperClass(){return this.hasWrapperSelectorValue?this.wrapperClassValue:"nested-fields"}get _insertMode(){return this.hasInsertModeValue?this.insertModeValue:"beforeend"}connect(){this._checkStructure()}add(e){e==null||e.preventDefault();const s=this.templateTarget.innerHTML.replace(/NEW_RECORD/g,this._generateID());this.targetTarget.insertAdjacentHTML(this._insertMode,s)}remove(e){e.preventDefault();const s=e.target.closest(`.${this._wrapperClass}`);if(s==null)throw new Error(`#remove was clicked from outside of a child record. Could not find an ancestor with class .${this._wrapperClass}`);if(s.dataset.newRecord==="true")s.remove();else{s.style.display="none";let i=s.querySelector("input[name*='_destroy']");if(i==null)throw new Error("Could not find a hidden input with name '_destroy'. NestedForm cannot remove an already persisted record without it.");i.value="1"}}_generateID(){return new Date().getTime().toString()+Math.random().toString().slice(2)}_checkStructure(){if(this.templateTarget.innerHTML.indexOf("NEW_RECORD"))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`")}}l(Se,"targets",["target","template"]),l(Se,"values",{insertMode:String,wrapperClass:String});class Ve extends h{connect(){T(this),D(this,this.passwordTargets,"change",this._checkPasswordsMatch)}_allPasswordsMatch(){let e=new Set(this.passwordTargets.map(s=>s.value));return e.has("")||e.size==1}_checkPasswordsMatch(){let e=this.el;this._allPasswordsMatch()?(this.dispatchEvent(e,"password-confirm:match"),this.passwordTargets.forEach(s=>this.removeErrorClasses(s))):(this.dispatchEvent(e,"password-confirm:no-match"),this.passwordTargets.forEach(s=>this.addErrorClasses(s)))}}l(Ve,"targets",["password"]),l(Ve,"classes",["error"]);class yt extends h{peak(e){e==null||e.preventDefault(),this.passwordTarget.type="text"}hide(e){e==null||e.preventDefault(),this.passwordTarget.type="password"}toggle(e){e==null||e.preventDefault(),this.passwordTarget.type==="password"?this.peak():this.hide()}}l(yt,"targets",["password"]);class ke extends h{get _selector(){return this.hasSelectorValue?this.selectorValue:`[data-controller~="${this.identifier}"]`}replace(e){const[s,i,r]=e.detail;if(s instanceof Node){let n=s.querySelector(this._selector);if(n==null)throw new Error(`expected new form DOM with [data-controller="${this.identifier}"] to be present in returned payload`);let o=this.el.parentNode;if(o==null)throw new Error("expected form to have a DOM parent, could not execute replaceChild");o.replaceChild(n,this.el),this.dispatchEvent(n,"remote-form:replace")}else console.log("Unknown",s)}}l(ke,"targets",[]),l(ke,"values",{selector:String});function q(t,e,s,i){let r=i;(r==null?void 0:r.debounce)?(s=m.debounce(s.bind(t),r.debounce),delete r.debounce):s=s.bind(t);let n=lt(e),o=()=>n.forEach(u=>V.on(u,s)),c=()=>n.forEach(u=>V.off(u,s));return y(t,o,c),{setup:o,teardown:c}}class Et extends h{get _eventName(){return`sync:${this._key}`}get _key(){if(this.hasKeyValue)return this.keyValue;throw new Error("Expected `keyValue` to be present")}get _value(){let e=this.el;return v(e)&&e.type==="checkbox"?e.checked:v(e)&&e.type==="radio"?e.checked?e.value:"":e.value}set _value(e){let s=this.el;v(s)&&s.type==="checkbox"?s.checked=e.toString()==="true":v(s)&&s.type==="radio"?s.checked=s.value===e:v(s)||W(s)||I(s)?s.value=e.toString():s.innerHTML=e.toString()}connect(){q(this,this._eventName,this._read),requestAnimationFrame(()=>{st(this.el)&&(this._emit(),d(this,this.el,"input",this._emit))})}_emit(){V.emit(this._eventName,{value:this._value,dispatcher:this.el})}_read(e){if(e===void 0)throw new Error("No payload received");let{dispatcher:s,value:i}=e;s!==this.el&&(this._value=i)}}l(Et,"values",{key:String});class Z extends h{get _maxMessage(){return this.hasMaxMessageValue?this.maxMessageValue:`Value must be less than ${this.maxValue}`}get _minMessage(){return this.hasMinMessageValue?this.minMessageValue:`Value must be greater than ${this.minValue}`}get defaultWarningHideClasses(){return["hide"]}connect(){T(this),this.addWarningHideClasses(this.warningTarget),d(this,this.inputTarget,"input",this._check),this._check()}_check(){this.hasMinValue&&Number.parseFloat(this.inputTarget.value)<this.minValue?(this.removeWarningHideClasses(this.warningTarget),this.addInputWarningClasses(this.inputTarget),this.warningTarget.innerText=this._minMessage):this.hasMaxValue&&Number.parseFloat(this.inputTarget.value)>this.maxValue?(this.removeWarningHideClasses(this.warningTarget),this.addInputWarningClasses(this.inputTarget),this.warningTarget.innerText=this._maxMessage):(this.addWarningHideClasses(this.warningTarget),this.removeInputWarningClasses(this.inputTarget),this.warningTarget.innerText="")}}l(Z,"classes",["inputWarning","warningHide"]),l(Z,"targets",["input","warning"]),l(Z,"values",{max:Number,min:Number,minMessage:String,maxMessage:String});class Q extends h{connect(){T(this),this._updateWordCount(),d(this,this.inputTarget,"input",this._updateWordCount)}_updateWordCount(){let e=0,i=this.inputTarget.value.match(/\S+/g);e=i&&i.length||0,this.outputTarget.innerText=e.toString(),this._isValidCount(e)?this.removeErrorClasses(this.outputTarget):this.addErrorClasses(this.outputTarget)}_isValidCount(e){let s=0,i=99999;return this.hasMinValue&&(s=this.minValue),this.hasMaxValue&&(i=this.maxValue),e>=s&&e<=i}}l(Q,"targets",["input","output"]),l(Q,"values",{min:Number,max:Number}),l(Q,"classes",["error"]);class Me extends h{initialize(){this._hasLoadedSuccessfully=this._hasLoadedSuccessfully.bind(this),this._success=this._success.bind(this),this._fail=this._fail.bind(this)}connect(){let e=this.el;e.onerror=this._fail,e.complete&&!this._hasLoadedSuccessfully()?this._fail():this._success()}disconnect(){this.removeSuccessClasses(),this.removeFailClasses()}_success(){this.addSuccessClasses()}_fail(){let e=this.el;this.addFailClasses(),this.hasPlaceholderValue&&e.src!==this.placeholderValue?(this.dispatchEvent(e,"fallback-image:placeholder"),e.src=this.placeholderValue,e.onerror=this._fail):(this.dispatchEvent(e,"fallback-image:fail"),e.style.display="none")}_hasLoadedSuccessfully(){let e=this.el;return e.naturalHeight>0&&e.naturalWidth>0}}l(Me,"values",{placeholder:String}),l(Me,"classes",["success","fail"]);var H=window.CustomEvent;(!H||typeof H=="object")&&(H=function(e,s){s=s||{};var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,!!s.bubbles,!!s.cancelable,s.detail||null),i},H.prototype=window.Event.prototype);function Tt(t,e){var s="on"+e.type.toLowerCase();return typeof t[s]=="function"&&t[s](e),t.dispatchEvent(e)}function Ns(t){for(;t&&t!==document.body;){var e=window.getComputedStyle(t),s=function(i,r){return!(e[i]===void 0||e[i]===r)};if(e.opacity<1||s("zIndex","auto")||s("transform","none")||s("mixBlendMode","normal")||s("filter","none")||s("perspective","none")||e.isolation==="isolate"||e.position==="fixed"||e.webkitOverflowScrolling==="touch")return!0;t=t.parentElement}return!1}function P(t){for(;t;){if(t.localName==="dialog")return t;t.parentElement?t=t.parentElement:t.parentNode?t=t.parentNode.host:t=null}return null}function Ct(t){for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;t&&t.blur&&t!==document.body&&t.blur()}function Hs(t,e){for(var s=0;s<t.length;++s)if(t[s]===e)return!0;return!1}function Ae(t){return!t||!t.hasAttribute("method")?!1:t.getAttribute("method").toLowerCase()==="dialog"}function St(t){var e=["button","input","keygen","select","textarea"],s=e.map(function(o){return o+":not([disabled])"});s.push('[tabindex]:not([disabled]):not([tabindex=""])');var i=t.querySelector(s.join(", "));if(!i&&"attachShadow"in Element.prototype)for(var r=t.querySelectorAll("*"),n=0;n<r.length&&!(r[n].tagName&&r[n].shadowRoot&&(i=St(r[n].shadowRoot),i));n++);return i}function Vt(t){return t.isConnected||document.body.contains(t)}function kt(t){if(t.submitter)return t.submitter;var e=t.target;if(!(e instanceof HTMLFormElement))return null;var s=f.formSubmitter;if(!s){var i=t.target,r="getRootNode"in i&&i.getRootNode()||document;s=r.activeElement}return!s||s.form!==e?null:s}function xs(t){if(!t.defaultPrevented){var e=t.target,s=f.imagemapUseValue,i=kt(t);s===null&&i&&(s=i.value);var r=P(e);if(!!r){var n=i&&i.getAttribute("formmethod")||e.getAttribute("method");n==="dialog"&&(t.preventDefault(),s!=null?r.close(s):r.close())}}}function Mt(t){if(this.dialog_=t,this.replacedStyleTop_=!1,this.openAsModal_=!1,t.hasAttribute("role")||t.setAttribute("role","dialog"),t.show=this.show.bind(this),t.showModal=this.showModal.bind(this),t.close=this.close.bind(this),t.addEventListener("submit",xs,!1),"returnValue"in t||(t.returnValue=""),"MutationObserver"in window){var e=new MutationObserver(this.maybeHideModal.bind(this));e.observe(t,{attributes:!0,attributeFilter:["open"]})}else{var s=!1,i=function(){s?this.downgradeModal():this.maybeHideModal(),s=!1}.bind(this),r,n=function(o){if(o.target===t){var c="DOMNodeRemoved";s|=o.type.substr(0,c.length)===c,window.clearTimeout(r),r=window.setTimeout(i,0)}};["DOMAttrModified","DOMNodeRemoved","DOMNodeRemovedFromDocument"].forEach(function(o){t.addEventListener(o,n)})}Object.defineProperty(t,"open",{set:this.setOpen.bind(this),get:t.hasAttribute.bind(t,"open")}),this.backdrop_=document.createElement("div"),this.backdrop_.className="backdrop",this.backdrop_.addEventListener("mouseup",this.backdropMouseEvent_.bind(this)),this.backdrop_.addEventListener("mousedown",this.backdropMouseEvent_.bind(this)),this.backdrop_.addEventListener("click",this.backdropMouseEvent_.bind(this))}Mt.prototype={get dialog(){return this.dialog_},maybeHideModal:function(){this.dialog_.hasAttribute("open")&&Vt(this.dialog_)||this.downgradeModal()},downgradeModal:function(){!this.openAsModal_||(this.openAsModal_=!1,this.dialog_.style.zIndex="",this.replacedStyleTop_&&(this.dialog_.style.top="",this.replacedStyleTop_=!1),this.backdrop_.parentNode&&this.backdrop_.parentNode.removeChild(this.backdrop_),f.dm.removeDialog(this))},setOpen:function(t){t?this.dialog_.hasAttribute("open")||this.dialog_.setAttribute("open",""):(this.dialog_.removeAttribute("open"),this.maybeHideModal())},backdropMouseEvent_:function(t){if(this.dialog_.hasAttribute("tabindex"))this.dialog_.focus();else{var e=document.createElement("div");this.dialog_.insertBefore(e,this.dialog_.firstChild),e.tabIndex=-1,e.focus(),this.dialog_.removeChild(e)}var s=document.createEvent("MouseEvents");s.initMouseEvent(t.type,t.bubbles,t.cancelable,window,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget),this.dialog_.dispatchEvent(s),t.stopPropagation()},focus_:function(){var t=this.dialog_.querySelector("[autofocus]:not([disabled])");!t&&this.dialog_.tabIndex>=0&&(t=this.dialog_),t||(t=St(this.dialog_)),Ct(document.activeElement),t&&t.focus()},updateZIndex:function(t,e){if(t<e)throw new Error("dialogZ should never be < backdropZ");this.dialog_.style.zIndex=t,this.backdrop_.style.zIndex=e},show:function(){this.dialog_.open||(this.setOpen(!0),this.focus_())},showModal:function(){if(this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally.");if(!Vt(this.dialog_))throw new Error("Failed to execute 'showModal' on dialog: The element is not in a Document.");if(!f.dm.pushDialog(this))throw new Error("Failed to execute 'showModal' on dialog: There are too many open modal dialogs.");Ns(this.dialog_.parentElement)&&console.warn("A dialog is being shown inside a stacking context. This may cause it to be unusable. For more information, see this link: https://github.com/GoogleChrome/dialog-polyfill/#stacking-context"),this.setOpen(!0),this.openAsModal_=!0,f.needsCentering(this.dialog_)?(f.reposition(this.dialog_),this.replacedStyleTop_=!0):this.replacedStyleTop_=!1,this.dialog_.parentNode.insertBefore(this.backdrop_,this.dialog_.nextSibling),this.focus_()},close:function(t){if(!this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed.");this.setOpen(!1),t!==void 0&&(this.dialog_.returnValue=t);var e=new H("close",{bubbles:!1,cancelable:!1});Tt(this.dialog_,e)}};var f={};if(f.reposition=function(t){var e=document.body.scrollTop||document.documentElement.scrollTop,s=e+(window.innerHeight-t.offsetHeight)/2;t.style.top=Math.max(e,s)+"px"},f.isInlinePositionSetByStylesheet=function(t){for(var e=0;e<document.styleSheets.length;++e){var s=document.styleSheets[e],i=null;try{i=s.cssRules}catch{}if(!!i)for(var r=0;r<i.length;++r){var n=i[r],o=null;try{o=document.querySelectorAll(n.selectorText)}catch{}if(!(!o||!Hs(o,t))){var c=n.style.getPropertyValue("top"),u=n.style.getPropertyValue("bottom");if(c&&c!=="auto"||u&&u!=="auto")return!0}}}return!1},f.needsCentering=function(t){var e=window.getComputedStyle(t);return e.position!=="absolute"||t.style.top!=="auto"&&t.style.top!==""||t.style.bottom!=="auto"&&t.style.bottom!==""?!1:!f.isInlinePositionSetByStylesheet(t)},f.forceRegisterDialog=function(t){if((window.HTMLDialogElement||t.showModal)&&console.warn("This browser already supports <dialog>, the polyfill may not work correctly",t),t.localName!=="dialog")throw new Error("Failed to register dialog: The element is not a dialog.");new Mt(t)},f.registerDialog=function(t){t.showModal||f.forceRegisterDialog(t)},f.DialogManager=function(){this.pendingDialogStack=[];var t=this.checkDOM_.bind(this);this.overlay=document.createElement("div"),this.overlay.className="_dialog_overlay",this.overlay.addEventListener("click",function(e){this.forwardTab_=void 0,e.stopPropagation(),t([])}.bind(this)),this.handleKey_=this.handleKey_.bind(this),this.handleFocus_=this.handleFocus_.bind(this),this.zIndexLow_=1e5,this.zIndexHigh_=1e5+150,this.forwardTab_=void 0,"MutationObserver"in window&&(this.mo_=new MutationObserver(function(e){var s=[];e.forEach(function(i){for(var r=0,n;n=i.removedNodes[r];++r){if(n instanceof Element)n.localName==="dialog"&&s.push(n);else continue;s=s.concat(n.querySelectorAll("dialog"))}}),s.length&&t(s)}))},f.DialogManager.prototype.blockDocument=function(){document.documentElement.addEventListener("focus",this.handleFocus_,!0),document.addEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.observe(document,{childList:!0,subtree:!0})},f.DialogManager.prototype.unblockDocument=function(){document.documentElement.removeEventListener("focus",this.handleFocus_,!0),document.removeEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.disconnect()},f.DialogManager.prototype.updateStacking=function(){for(var t=this.zIndexHigh_,e=0,s;s=this.pendingDialogStack[e];++e)s.updateZIndex(--t,--t),e===0&&(this.overlay.style.zIndex=--t);var i=this.pendingDialogStack[0];if(i){var r=i.dialog.parentNode||document.body;r.appendChild(this.overlay)}else this.overlay.parentNode&&this.overlay.parentNode.removeChild(this.overlay)},f.DialogManager.prototype.containedByTopDialog_=function(t){for(;t=P(t);){for(var e=0,s;s=this.pendingDialogStack[e];++e)if(s.dialog===t)return e===0;t=t.parentElement}return!1},f.DialogManager.prototype.handleFocus_=function(t){var e=t.composedPath?t.composedPath()[0]:t.target;if(!this.containedByTopDialog_(e)&&document.activeElement!==document.documentElement&&(t.preventDefault(),t.stopPropagation(),Ct(e),this.forwardTab_!==void 0)){var s=this.pendingDialogStack[0],i=s.dialog,r=i.compareDocumentPosition(e);return r&Node.DOCUMENT_POSITION_PRECEDING&&(this.forwardTab_?s.focus_():e!==document.documentElement&&document.documentElement.focus()),!1}},f.DialogManager.prototype.handleKey_=function(t){if(this.forwardTab_=void 0,t.keyCode===27){t.preventDefault(),t.stopPropagation();var e=new H("cancel",{bubbles:!1,cancelable:!0}),s=this.pendingDialogStack[0];s&&Tt(s.dialog,e)&&s.dialog.close()}else t.keyCode===9&&(this.forwardTab_=!t.shiftKey)},f.DialogManager.prototype.checkDOM_=function(t){var e=this.pendingDialogStack.slice();e.forEach(function(s){t.indexOf(s.dialog)!==-1?s.downgradeModal():s.maybeHideModal()})},f.DialogManager.prototype.pushDialog=function(t){var e=(this.zIndexHigh_-this.zIndexLow_)/2-1;return this.pendingDialogStack.length>=e?!1:(this.pendingDialogStack.unshift(t)===1&&this.blockDocument(),this.updateStacking(),!0)},f.DialogManager.prototype.removeDialog=function(t){var e=this.pendingDialogStack.indexOf(t);e!==-1&&(this.pendingDialogStack.splice(e,1),this.pendingDialogStack.length===0&&this.unblockDocument(),this.updateStacking())},f.dm=new f.DialogManager,f.formSubmitter=null,f.imagemapUseValue=null,window.HTMLDialogElement===void 0){var At=document.createElement("form");if(At.setAttribute("method","dialog"),At.method!=="dialog"){var x=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"method");if(x){var Os=x.get;x.get=function(){return Ae(this)?"dialog":Os.call(this)};var Bs=x.set;x.set=function(t){return typeof t=="string"&&t.toLowerCase()==="dialog"?this.setAttribute("method",t):Bs.call(this,t)},Object.defineProperty(HTMLFormElement.prototype,"method",x)}}document.addEventListener("click",function(t){if(f.formSubmitter=null,f.imagemapUseValue=null,!t.defaultPrevented){var e=t.target;if("composedPath"in t){var s=t.composedPath();e=s.shift()||e}if(!(!e||!Ae(e.form))){var i=e.type==="submit"&&["button","input"].indexOf(e.localName)>-1;if(!i){if(!(e.localName==="input"&&e.type==="image"))return;f.imagemapUseValue=t.offsetX+","+t.offsetY}var r=P(e);!r||(f.formSubmitter=e)}}},!1),document.addEventListener("submit",function(t){var e=t.target,s=P(e);if(!s){var i=kt(t),r=i&&i.getAttribute("formmethod")||e.getAttribute("method");r==="dialog"&&t.preventDefault()}});var Fs=HTMLFormElement.prototype.submit,Rs=function(){if(!Ae(this))return Fs.call(this);var t=P(this);t&&t.close()};HTMLFormElement.prototype.submit=Rs}class De extends h{constructor(){super(...arguments);l(this,"_dialog",null)}get _src(){return this.hasSrcValue?this.srcValue:this.el.src}get _srcSet(){return this.hasSrcSetValue?this.srcSetValue:this.el.srcset}get _sizes(){return this.hasSizesValue?this.sizesValue:this.el.sizes}get _modalClassName(){return this.hasModalClass?this.modalClass:"image-lightbox-dialog"}get _imageClassName(){return this.hasImageClass?this.imageClass:"image-lightbox-image"}initialize(){this.open=this.open.bind(this),this.close=this.close.bind(this)}connect(){}disconnect(){this.close()}open(){let e=this.el;if(this._dialog)return;this._dialog=document.createElement("dialog");let s=document.createElement("img");s.className=this._imageClassName,s.src=this._src,s.srcset=this._srcSet,s.sizes=this._sizes,this._dialog.appendChild(s),e.insertAdjacentElement("afterend",this._dialog),f.registerDialog(this._dialog),this._dialog.className=this._modalClassName,this._dialog.showModal(),A(this._dialog,{behavior:"smooth",block:"end"}).catch(()=>this._dialog.scrollIntoView(!1)),d(this,this._dialog,"click",this.close),d(this,this._dialog,"cancel",this.close),d(this,this._dialog,"close",this.close)}close(){this._dialog&&(this._dialog.close(),this._dialog.remove(),this._dialog=null,A(this.el,{behavior:"smooth",block:"end"}).catch(()=>this.el.scrollIntoView(!1)))}}l(De,"values",{src:String,srcSet:String,sizes:String}),l(De,"classes",["modal","image"]);class Dt extends h{async play(e){e==null||e.preventDefault(),await this.mediaTarget.play()}pause(e){e==null||e.preventDefault(),this.mediaTarget.pause()}restart(e){e==null||e.preventDefault(),this.mediaTarget.currentTime=0}seek(e){e==null||e.preventDefault(),this.mediaTarget.currentTime+=5}}l(Dt,"targets",["media"]);class Lt extends h{get _increment(){return this.hasIncrementValue?this.incrementValue:50}get _behaviour(){if(this.hasBehaviourValue){if(["auto","smooth"].includes(this.behaviourValue))return this.behaviourValue;throw new Error(`'${this.behaviourValue}' is not a recognised scroll behaviour`)}else return"auto"}async scrollTop(e){e==null||e.preventDefault(),await ae(this.el,{behavior:this._behaviour})}async scrollBottom(e){e==null||e.preventDefault(),await ne(this.el,{behavior:this._behaviour})}async scrollLeft(e){e==null||e.preventDefault(),await le(this.el,{behavior:this._behaviour})}async scrollRight(e){e==null||e.preventDefault(),await le(this.el,{behavior:this._behaviour})}async up(e){e==null||e.preventDefault(),await je(this.el,this._increment,{behavior:this._behaviour})}async down(e){e==null||e.preventDefault(),await We(this.el,this._increment,{behavior:this._behaviour})}async left(e){e==null||e.preventDefault(),await Ke(this.el,this._increment,{behavior:this._behaviour})}async right(e){e==null||e.preventDefault(),await Ge(this.el,this._increment,{behavior:this._behaviour})}}l(Lt,"values",{behaviour:String,increment:Number});class It extends U{connect(){requestAnimationFrame(()=>{A(this.el,{behavior:this.hasBehaviorValue?this.behaviorValue:"smooth",block:this.hasBlockValue?this.blockValue:"center",inline:this.hasInlineValue?this.inlineValue:"center"}).catch(()=>this.el.scrollIntoView()),this._cleanupSelf()})}}l(It,"values",{behavior:String,block:String,inline:String});class Nt extends h{get _mode(){return this.hasModeValue?this.modeValue:"document"}get _scrollTarget(){let e;return this._mode=="document"?e=window:e=j(this.el),e}async scroll(e){e==null||e.preventDefault(),this._scrollTarget&&await ne(this._scrollTarget)}}l(Nt,"values",{mode:String});class Ht extends h{scroll(){let e=document.querySelector(this.selectorValue);if(!e){console.warn(`Could not find target for '${this.selectorValue}'`);return}A(e,{behavior:this.hasBehaviorValue?this.behaviorValue:"smooth",block:this.hasBlockValue?this.blockValue:"center",inline:this.hasInlineValue?this.inlineValue:"center"}).catch(()=>e.scrollIntoView())}}l(Ht,"values",{selector:String,behavior:String,block:String,inline:String});class xt extends h{get _mode(){return this.hasModeValue?this.modeValue:"document"}get _scrollTarget(){let e;return this._mode=="document"?e=window:e=j(this.el),e}async scroll(e){e==null||e.preventDefault(),this._scrollTarget&&await ae(this._scrollTarget)}}l(xt,"values",{mode:String});function Ot(t){t=t.trim();let e=t.includes("&&"),s=t.includes("||"),i=t.includes("(")||t.includes(")");if(e&&s)throw new Error("Cannot have both && and || in the same expression.");if(i)throw new Error("Cannot have logical groupings `(>3 && <= 9) || (>1 && <2)` in the expression. Only supports simple expressions like `>1 && <3`");let r=t.split(e?"&&":"||");return e?r.map(n=>Le(n)):s?r.map(n=>Le(n)):[Le(t)]}function Le(t){let s=[">=","<=","==","!=",">","<"].find(o=>t.includes(o));if(!s)throw new Error(`Could not find operator in expression: ${t}`);let i=t.split(s)[1].trim(),r=/^-?\d*(\.\d+)?$/.test(i);if(r&&(i=parseFloat(i)),i==="")throw new Error(`Could not find a value in expression: ${t}`);let n=o=>o!=="";switch(s){case">":return o=>r&&n(o)&&o>i;case"<":return o=>r&&n(o)&&o<i;case">=":return o=>r&&n(o)&&o>=i;case"<=":return o=>r&&n(o)&&o<=i;case"==":return o=>n(o)&&o==i;case"!=":return o=>n(o)&&o!=i;default:throw new Error(`Unknown operator ${s}`)}}function O(t,e){return`signal:${e}:${t}`}function $(t){return O(t,"connect")}function z(t){return O(t,"value")}function Bt(t,e){return O(`${t}:${e}`,"visibility")}class Ft extends h{get _predicates(){return Ot(this.whenValue)}connect(){V.emit($(this.nameValue)),q(this,z(this.nameValue),this._onSignal)}_onSignal(e){let s=e.value;if(!this.hasWhenValue){this.dispatchEvent(this.el,O(this.nameValue,"match"));return}this._predicates.every(i=>i(s))?this.dispatchEvent(this.el,O(this.nameValue,"match"),{detail:{element:this.el,value:s}}):this.dispatchEvent(this.el,O(this.nameValue,"no-match"),{detail:{element:this.el,value:s}})}}l(Ft,"values",{name:String,when:String});function ee(t,e,s,i){s=s.bind(t);let r=new MutationObserver(s),n=()=>r.observe(e,i),o=()=>r.disconnect();return y(t,n,o),o}class Rt extends h{get _children(){return this.hasScopeSelectorValue?Array.from(this.el.querySelectorAll(this.scopeSelectorValue)):Array.from(this.el.children)}get _name(){if(this.hasNameValue)return this.nameValue;throw new Error("SignalEmptyDomController requires a nameValue to be provided")}connect(){q(this,$(this._name),this.emitChildCount),V.emit($(this._name)),ee(this,this.el,this.mutate,{childList:!0}),this.emitChildCount()}mutate(e){this.emitChildCount()}emitChildCount(){let e=this._children.length;V.emit(z(this._name),{element:this.el,value:e.toString()})}}l(Rt,"values",{name:String,scopeSelector:String});class qt extends h{get _debounceTimeout(){return this.hasDebounceIntervalValue?this.debounceIntervalValue:1}get _name(){return this.hasNameValue?this.nameValue:this.element.name}connect(){q(this,$(this._name),()=>this.emitValue()),ot(this,this.el,["input","change"],this.emitValue,{debounce:this._debounceTimeout||void 0}),requestAnimationFrame(()=>this.emitValue())}emitValue(){var s;let e=this.el.value;if(v(this.el)&&this.el.type==="checkbox")e=this.el.checked?"true":"false";else if(v(this.el)&&this.el.type==="radio"){let i=(s=me(this.el).find(r=>r.checked))==null?void 0:s.value;e=i||""}this.dispatchEvent(this.el,z(this._name),{detail:{value:e}}),V.emit(z(this._name),{element:this.el,value:e})}}l(qt,"values",{name:String,debounceInterval:Number});class Ie extends h{get _predicates(){return Ot(this.showValue)}get defaultHideClasses(){return["hide"]}connect(){T(this),V.emit($(this.nameValue)),q(this,z(this.nameValue),this._onSignal)}_onSignal(e){let s=e.value;if(this.showValue=="default"){s==""?this.removeHideClasses(this.el):this.addHideClasses(this.el);return}this._predicates.every(i=>i(s))?(this.dispatchEvent(this.el,Bt(this.nameValue,"show"),{detail:{predicate:this.showValue,value:s}}),this.removeHideClasses(this.el)):(this.dispatchEvent(this.el,Bt(this.nameValue,"hide"),{detail:{predicate:this.showValue,value:s}}),this.addHideClasses(this.el))}}l(Ie,"values",{name:String,show:String}),l(Ie,"classes",["hide"]);class Pt extends h{constructor(){super(...arguments);l(this,"_lastIndex",null);l(this,"_reverse",!1)}get _tableHead(){let e=this.el.tHead;if(e==null)throw new Error("Expected table to have a <thead> element.");return e}get _tableHeaders(){let e=this._tableHead.rows;if(e.length==0)throw new Error("Expected table to have a <thead> element with at least one row.");return Array.from(e[0].cells)}get _tableBody(){return this.el.tBodies[0]}get _tableRows(){return Array.from(this._tableBody.rows)}connect(){requestAnimationFrame(()=>{D(this,this._tableHeaders,"click",this.sort),this.hasStartSortValue&&this._sortByColumn(this.startSortValue)})}sort(e){e.preventDefault();let s=e.target,i=this._indexOfHeaderCell(s);s.dataset.sortable!="false"&&(s.dataset.sort=="asc"?(this._reverse=!0,this._otherHeaderCells(s).forEach(r=>delete r.dataset.sort),s.dataset.sort="desc",this._sortByColumn(i)):(this._reverse=!1,this._otherHeaderCells(s).forEach(r=>delete r.dataset.sort),s.dataset.sort="asc",this._sortByColumn(i)))}_indexOfHeaderCell(e){return this._tableHeaders.indexOf(e)}_otherHeaderCells(e){return Array.from(this._tableHeaders).filter(s=>s!=e)}_sortByColumn(e){let s=document.createDocumentFragment();this._tableRows.sort((n,o)=>{var M,w;let c=Array.from(n.cells),u=Array.from(o.cells),g=((M=c[e])==null?void 0:M.innerText)||"",p=((w=u[e])==null?void 0:w.innerText)||"",_=g.localeCompare(p,"en",{sensitivity:"base",numeric:!0,caseFirst:"upper"});return n.dataset.sortTop||o.dataset.sortBottom?n.dataset.sortTop&&o.dataset.sortTop?_:-1:n.dataset.sortBottom||o.dataset.sortTop?n.dataset.sortBottom&&o.dataset.sortBottom?_:1:this._reverse?_>0?-1:1:_}).forEach(n=>s.appendChild(n)),this._tableBody.innerHTML="",this._tableBody.appendChild(s),this._lastIndex=e}}l(Pt,"values",{startSort:Number});class Ne extends h{get _truncated(){return this.hasTruncatedValue?this.truncatedValue:!1}set _truncated(e){this.truncatedValue=e}get _tableBody(){return this.el.tBodies[0]}get _tableRows(){return Array.from(this._tableBody.rows)}get _limit(){return this.hasLimitValue?this.limitValue:20}connect(){ee(this,this._tableBody,this.mutate,{childList:!0}),requestAnimationFrame(()=>{this.truncate(),d(this,this.showMoreTarget,"click",this.expand)})}truncate(e){e==null||e.preventDefault(),this._truncated=!0,this._tableRows.length>=this._limit?(this._tableRows.slice(this._limit).forEach(s=>{s!==this.showMoreTarget&&this._hideElement(s)}),this._showElement(this.showMoreTarget)):this._hideElement(this.showMoreTarget)}expand(e){this._truncated=!1,e==null||e.preventDefault(),this._tableRows.slice(this._limit).forEach(s=>{s!==this.showMoreTarget&&this._showElement(s)}),this._hideElement(this.showMoreTarget)}mutate(e){this._truncated&&this._reTruncate()}_showElement(e){e.style.display=""}_hideElement(e){e.style.display="none"}_reTruncate(){this._tableRows.slice(0,this._limit).forEach(e=>{e!==this.showMoreTarget&&this._showElement(e)}),this._tableRows.slice(this._limit).forEach(e=>{e!==this.showMoreTarget&&this._hideElement(e)}),this._showElement(this.showMoreTarget)}}l(Ne,"targets",["showMore"]),l(Ne,"values",{limit:Number,truncated:Boolean});class $t extends h{alert(){alert(this.messageValue)}}l($t,"values",{message:String});class qs extends h{connect(){let{enter:e,exit:s,toggle:i}=ut(this);this.enter=e,this.exit=s,this.toggle=i}}class zt extends h{get _threshold(){return this.hasThresholdValue?this.thresholdValue.split(",").map(e=>Number.parseFloat(e.trim())).filter(e=>e>=0&&e<=1):[0,1]}connect(){be(this,this.el,this.appear,this.disappear,{threshold:this._threshold})}appear(e){re(this,this.el,"intersection:appear")}disappear(e){re(this,this.el,"intersection:disappear")}}l(zt,"values",{threshold:String});class Ut extends h{connect(){if(!this.hasSecondsValue)throw new Error("Expected `secondsValue` to be present");requestAnimationFrame(()=>{F(this,this._interval,this.secondsValue*1e3)})}_interval(){this.dispatchEvent(this.el,"interval:action")}}l(Ut,"values",{seconds:Number});class jt extends h{get name(){return this.hasNameValue?this.nameValue:""}get _addedEventName(){return[this.name,"presence","added"].filter(e=>!!e).join(":")}get _removedEventName(){return[this.name,"presence","removed"].filter(e=>!!e).join(":")}connect(){this.dispatchEvent(this.el,this._addedEventName)}disconnect(){this.dispatchEvent(this.el,this._removedEventName)}}l(jt,"values",{name:String});class Wt extends h{print(e){e==null||e.preventDefault(),window.print()}}class Kt extends h{connect(){requestAnimationFrame(()=>{L(this,this._timeout,this.secondsValue*1e3)})}_timeout(){this.dispatchEvent(this.el,"timeout")}}l(Kt,"values",{seconds:Number});class Ps extends h{connect(){d(this,window,["focus","blur"],this._handleVisibility),d(this,document,"visibilitychange",this._handleVisibility),requestAnimationFrame(()=>{this._handleVisibility()})}appear(){this.dispatchEvent(this.el,"user-focus:active")}away(){this.dispatchEvent(this.el,"user-focus:away")}_handleVisibility(){this._documentIsActive()?this.appear():this.away()}_documentIsActive(){return document.visibilityState=="visible"&&document.hasFocus()}}class Gt extends h{get _tickInterval(){return this.hasMillisecondsTarget?1:this.hasSecondsTarget?1e3:this.hasMinutesTarget?15e3:3e5}connect(){requestAnimationFrame(()=>{F(this,this._tick,this._tickInterval)})}_tick(){let e=new Date;this.hasHoursTarget&&(this.hoursTarget.innerHTML=e.getHours().toString().padStart(2,"0")),this.hasMinutesTarget&&(this.minutesTarget.innerHTML=e.getMinutes().toString().padStart(2,"0")),this.hasSecondsTarget&&(this.secondsTarget.innerHTML=e.getSeconds().toString().padStart(2,"0")),this.hasMillisecondsTarget&&(this.millisecondsTarget.innerHTML=e.getMilliseconds().toString().padStart(3,"0"))}}l(Gt,"targets",["hours","minutes","seconds","milliseconds"]);class te extends h{constructor(){super(...arguments);l(this,"_interval",null)}get _removeUnused(){return this.hasRemoveUnusedValue?this.removeUnusedValue:!1}get _deadlineDate(){return new Date(this.deadlineValue)}connect(){this._interval=setInterval(this._tick.bind(this),1e3),this.addCountingDownClasses()}disconnect(){this._clearTick(),this.removeCountingDownClasses(),this.removeEndedClasses()}deadlineValueChanged(){this._interval==null&&(this._interval=setInterval(this._tick.bind(this),1e3))}_tick(){try{const e=new Date;let s={};E.isPast(this._deadlineDate)?(s={years:0,months:0,days:0,hours:0,minutes:0,seconds:0},this._clearTick(),this.removeCountingDownClasses(),this.addEndedClasses(),this.dispatchEvent(this.el,"countdown:ended")):s=E.intervalToDuration({start:this._deadlineDate,end:e}),this.hasYearsTarget&&this._updateTarget(this.yearsTarget,this._years(s)),this.hasMonthsTarget&&this._updateTarget(this.monthsTarget,this._months(s)),this.hasDaysTarget&&this._updateTarget(this.daysTarget,this._days(s)),this.hasHoursTarget&&this._updateTarget(this.hoursTarget,this._hours(s)),this.hasMinutesTarget&&this._updateTarget(this.minutesTarget,this._minutes(s)),this.hasSecondsTarget&&this._updateTarget(this.secondsTarget,this._seconds(s))}catch(e){console.error(e),this._clearTick()}}_clearTick(){this._interval&&(clearInterval(this._interval),this._interval=null)}_updateTarget(e,s){this._removeTargetIfUnused(e,s),e.innerHTML=s.toString()}_removeTargetIfUnused(e,s){this._removeUnused&&(s===0&&e.dataset.unused?Number.parseInt(e.dataset.unused)>Date.now()+1500&&e.remove():s==0?e.dataset.unused=Date.now().toString():e.dataset.unused=void 0)}_years(e){return e.years||0}_months(e){return e.months||0}_days(e){return e.days||0}_hours(e){return e.hours||0}_minutes(e){return e.minutes||0}_seconds(e){return e.seconds||0}}l(te,"values",{deadline:String,removeUnused:Boolean}),l(te,"targets",["years","months","days","hours","minutes","seconds"]),l(te,"classes",["countingDown","ended"]);class Jt extends h{get _format(){return["years","months","weeks","days","hours",...this._minutes?["minutes"]:[],...this._seconds?["seconds"]:[]]}get _output(){let{years:e,months:s,weeks:i,days:r,hours:n,minutes:o,seconds:c}=this._duration;e||(e=0),s||(s=0),i||(i=0),r||(r=0),n||(n=0),o||(o=0),c||(c=0);let u=[e,s,i,r,n];return!this._minutes&&!this._seconds&&u.every(g=>g===0)?(o=o+c/60,`${(o/60).toFixed(1)} hours`):E.formatDuration(this._duration,{format:this._format,delimiter:", "})}get _seconds(){return this.hasSecondsValue?this.secondsValue:!0}get _minutes(){return this.hasMinutesValue?this.minutesValue:!0}get _timestamp(){if(this.hasTimestampValue)return E.toDate(this.timestampValue*1e3);throw new Error("Expected `timestampValue` to be present")}get _duration(){return E.intervalToDuration({start:new Date,end:this._timestamp})}get _tickInterval(){return this._seconds?1e3:this._minutes?15e3:12e4}connect(){this._clearInterval=F(this,this._update,this._tickInterval),this._update()}_update(){try{this.el.innerHTML=this._output}catch{this._clearInterval()}}}l(Jt,"values",{timestamp:Number,minutes:Boolean,seconds:Boolean});class se extends h{get defaultHideClasses(){return["hide"]}get defaultActiveClasses(){return["is-active"]}get _currentTab(){return this.hasCurrentTabValue?this.currentTabValue:0}get _equalize(){return this.hasEqualizeValue?this.equalizeValue:!1}connect(){D(this,this.linkTargets,"click",this.switchTabs),this._equalize&&this._setMinHeight(),this.currentTabValue=this._currentTab}switchTabs(e){e.preventDefault(),this.currentTabValue=this.linkTargets.indexOf(e.currentTarget)}currentTabValueChanged(){let e=this._currentTab;e=this._clampIndex(e),this._selectTab(e)}_selectTab(e){e=this._clampIndex(e);let s=this.linkTargets,i=this.contentTargets,r=i[e],n=s[e],o=[...i.slice(0,e),...i.slice(e+1)],c=[...s.slice(0,e),...s.slice(e+1)];this.addActiveClasses(n),n.setAttribute("aria-selected","true"),this.addActiveClasses(r),this.removeHideClasses(r),c.forEach(u=>{u.removeAttribute("aria-selected"),this.removeActiveClasses(u)}),o.forEach(u=>{this.removeActiveClasses(u),this.addHideClasses(u)})}_clampIndex(e){return m.clamp(e,0,this.contentTargets.length-1)}_setMinHeight(){let e=0;this.contentTargets.forEach(s=>{let i=s.hasAttribute("tab-hidden");i&&this.removeHideClasses(s);let r=s.offsetHeight;r>e&&(e=r),i&&this.addHideClasses(s)}),this.contentTargets.forEach(s=>s.style.minHeight=e+"px")}}l(se,"values",{currentTab:Number,equalize:Boolean}),l(se,"targets",["link","content"]),l(se,"classes",["active","hide"]);class Xt extends h{get _duration(){return E.isPast(this._timestamp)?E.intervalToDuration({start:this._timestamp,end:new Date}):E.intervalToDuration({start:new Date,end:this._timestamp})}get _nextUpdate(){let e=this._duration;return e.years&&e.years>0||e.months&&e.months>0||e.days&&e.days>0?null:e.hours&&e.hours>0?18e5:3e4}timestampValueChanged(){this._timestamp=E.toDate(this.timestampValue*1e3)}connect(){if(!this.hasTimestampValue)throw new Error("Expected `timestampValue` to be present");this._update()}_update(){this.el.innerHTML=E.formatDistanceToNow(this._timestamp,{addSuffix:!0,includeSeconds:!0}),this._nextUpdate&&L(this,this._update,this._nextUpdate)}}l(Xt,"values",{timestamp:Number});class Yt extends h{get defaultActiveClasses(){return["active"]}get defaultCollapsedClasses(){return["collapsed"]}initialize(){this._nodeClicked=this._nodeClicked.bind(this)}connect(){T(this),ee(this,this.el,this.mutate,{subtree:!0,childList:!0}),this._setup()}disconnect(){this._teardown()}_setup(){this._setupNode(this.el)}_setupNode(e){const s=i=>{let r=i.parentElement;r&&(this._nodeActive(r)||this._hideNode(r),r.removeEventListener("click",this._nodeClicked),r.addEventListener("click",this._nodeClicked))};(e.tagName==="UL"||e.tagName==="OL")&&s(e),e.querySelectorAll("ul, ol").forEach(i=>s(i))}_teardown(){this.el.querySelectorAll("ul, ol, li").forEach(e=>this._teardownNode(e))}_teardownNode(e){[e,...Array.from(e.querySelectorAll("ul, ol, li"))].forEach(s=>{s.removeEventListener("click",this._nodeClicked),this.removeActiveClasses(s),this.removeCollapsedClasses(s)})}_nodeClicked(e){e&&e.stopImmediatePropagation();let s=e.target;!s||!this._hasNested(s)||(this._nodeActive(s)?this._hideNode(s):this._showNode(s))}_nodeActive(e){return this.activeClassesPresent(e)}_showNode(e){this.removeCollapsedClasses(e),this.addActiveClasses(e)}_hideNode(e){this.removeActiveClasses(e),this.addCollapsedClasses(e)}_hasNested(e){return e.querySelectorAll("ul, ol").length>0}mutate(e){for(const s of e)s.type==="childList"&&(Array.from(s.addedNodes||[]).forEach(i=>this._setupNode(i)),Array.from(s.removedNodes||[]).forEach(i=>this._teardownNode(i)))}}l(Yt,"classes",["active","collapsed"]);class He extends h{get defaultActiveClasses(){return["active"]}get defaultInactiveClasses(){return["inactive"]}get _key(){return this.keyValue.replaceAll("#","")}get _anchor(){return window.location.hash.substr(1)}set _anchor(e){window.location.hash=e}connect(){T(this),requestAnimationFrame(()=>{this._checkAnchor(),d(this,window,"hashchange",this._checkAnchor)})}write(e){e==null||e.preventDefault(),this._anchor=this._key}_checkAnchor(){this._key===this._anchor?(this.dispatchEvent(this.el,"anchor-spy:active"),this.addActiveClasses(this.el),this.removeInactiveClasses(this.el)):(this.dispatchEvent(this.el,"anchor-spy:inactive"),this.addInactiveClasses(this.el),this.removeActiveClasses(this.el))}}l(He,"values",{key:String}),l(He,"classes",["active","inactive"]);class Zt extends h{get _pages(){return this.hasPagesValue?Math.abs(this.pagesValue):1}get _timeout(){return this.hasTimeoutValue?this.timeoutValue:1500}connect(){d(this,this.el,"click",this.goBack)}goBack(e){e==null||e.preventDefault(),history.go(-this._pages),this.el.href&&L(this,this.fallback,this._timeout)}fallback(){window.location.href=this.el.href}}l(Zt,"values",{timeout:Number,pages:Number});class xe extends h{constructor(){super(...arguments);l(this,"_supported",!1)}connect(){this._supported=document.queryCommandSupported("copy"),this.hasRemoveUnusedValue&&this.removeUnusedValue&&(this._supported&&this.hasFallbackTarget?this.fallbackTarget.remove():this.hasCopyTarget&&this.copyTarget.remove())}select(e){e&&e.preventDefault(),this.sourceTarget.select()}copy(e){e&&e.preventDefault(),this.sourceTarget.select(),this._supported&&document.execCommand("copy")}}l(xe,"targets",["source","button","copy","fallback"]),l(xe,"values",{removeUnused:Boolean});class Qt extends h{get _message(){return this.hasMessageValue?this.messageValue:"Are you sure?"}get _eventType(){if(he(this.el))return"submit";if(ue(this.el))return"click";throw new Error("Can't handle confirmation on attached element")}connect(){requestAnimationFrame(()=>{d(this,this.el,this._eventType,this.confirm)})}confirm(e){window.confirm(this._message)||(e.preventDefault(),this.dispatchEvent(this.el,"confirm:cancelled"))}}l(Qt,"values",{message:String});class es extends h{get _message(){return this.hasMessageValue?this.messageValue:"Do you want to leave this page? Changes you made may not be saved"}connect(){window.onbeforeunload=()=>this._message,d(this,window,"popstate",this.confirmNavigation),d(this,window,"submit",this.allowSubmit),d(this,window,["turbolinks:before-visit","turbo:before-visit"],this.confirmTurboNavigation)}disconnect(){window.onbeforeunload=null}allowSubmit(e){window.removeEventListener("popstate",this.confirmNavigation),window.onbeforeunload=null}confirmNavigation(e){return!1}confirmTurboNavigation(e){confirm(this._message)||e.preventDefault()}}l(es,"values",{message:String});class ts extends h{connect(){console.log("Debug Controller",this,this.testTargets)}}l(ts,"targets",["test"]);class ss extends h{get _message(){return this.hasMessageValue?this.messageValue:"Submitting..."}get _timeout(){return this.hasTimeoutValue?this.timeoutValue:1e3}connect(){requestAnimationFrame(()=>{d(this,this.el,["click"],this.disable),d(this,window,["turbo:load","turbolinks:load"],this._enable)})}disable(e){let s=this.el;this._isDisabled(s)?(e==null||e.preventDefault(),e==null||e.stopImmediatePropagation()):(this._disable(),mt(this,s,this._message,this._timeout,this._enable))}enable(e){e==null||e.preventDefault();let s=this.el;this._isDisabled(s)&&this._enable()}_isDisabled(e){return K(e)?e.disabled:e.dataset.disabled=="true"}_disable(){let e=this.el;K(e)?e.disabled=!0:e.dataset.disabled="true"}_enable(){let e=this.el;K(e)?e.disabled=!1:e.dataset.disabled=void 0}}l(ss,"values",{message:String,timeout:Number});class is extends h{dismiss(){this.el.remove()}}class $s extends is{}class Oe extends h{get _id(){if(this.hasIdValue)return this.idValue;let e=this.el.id;if(e!=="")return e;throw new Error(`No ID value to uniquely identify this element. Please either specify data-${this.identifier}-id-value or give this element an 'id' attribute. `)}get _uniqueIdentifier(){return`${location.href} ${this._id}`}get _restoreOnLoad(){return this.hasRestoreOnLoadValue?this.restoreOnLoadValue:!0}get _element(){return this.hasElementTarget?this.elementTarget:this.el}initialize(){this.save=m.debounce(this.save.bind(this),300)}connect(){this._store=dt(this,this._uniqueIdentifier,{}),requestAnimationFrame(()=>{this._restoreOnLoad&&this.restore()})}clear(e){e&&e.preventDefault(),this._store.clear(),this.dispatchEvent(this._element,"element-save:cleared")}save(e){e&&e.preventDefault();let s=this._element,i=this.attributesValue.split(" "),r={};i.forEach(n=>r[n]=m.get(s,n)),this._store.value=r,this.dispatchEvent(s,"element-save:save:success")}restore(e){e&&e.preventDefault();let s=this._element;if(this._store.isEmpty())this.dispatchEvent(s,"element-save:restore:empty");else{const i=this._store.value;Object.keys(i).forEach(r=>m.set(s,r,i[r])),this.dispatchEvent(s,"element-save:restore:success")}}}l(Oe,"targets",["element"]),l(Oe,"values",{id:String,attributes:String,restoreOnLoad:Boolean});class ie extends h{get _container(){return this.hasContainerTarget?this.containerTarget:this.el}get _children(){let e=this._container;return this.hasScopeSelectorValue?Array.from(e.querySelectorAll(this.scopeSelectorValue)):Array.from(e.children)}connect(){T(this),ee(this,this._container,this.mutate,{childList:!0}),this.checkEmpty()}mutate(e){this.checkEmpty()}checkEmpty(){let e=this._container,s=this._children;s.length===0?(this.removeNotEmptyClasses(),this.addEmptyClasses(),this.dispatchEvent(e,"dom:empty")):(this.addNotEmptyClasses(),this.removeEmptyClasses(),this.dispatchEvent(e,"dom:not-empty",{detail:{count:s.length}}))}}l(ie,"targets",["container"]),l(ie,"classes",["empty","notEmpty"]),l(ie,"values",{scopeSelector:String});class rs extends h{get _mode(){return this.hasModeValue?this.modeValue:"mouseover"}get _supportsPrefetch(){var s,i;const e=document.createElement("link");return((s=e.relList)==null?void 0:s.supports)&&((i=e.relList)==null?void 0:i.supports("prefetch"))}get _href(){return this.el.href}get _existingPrefetch(){return(document.head.querySelectorAll(`link[rel="prefetch"][href="${this._href}"]`)||[]).length>0}get _connectionSuitable(){const e=navigator.connection;if(!e)return!0;if(e){if(e.saveData)return $e(this,"Data Saving is enabled"),!1;if(/2g/.test(e.effectiveType))return $e(this,"Network is too slow"),!1}return!0}connect(){if(!!this._supportsPrefetch)switch(this._mode){case"intersect":this._setupObserver();break;case"mouseover":d(this,this.el,"mouseover",this.prefetch,{once:!0});break;default:throw new Error(`'${this._mode}' is not a supported prefetch mode`)}}_setupObserver(){new IntersectionObserver(([s],i)=>{s.isIntersecting&&(this.prefetch(),i.unobserve(s.target))}).observe(this.element)}prefetch(){if(this._existingPrefetch||!this._connectionSuitable)return;const e=document.createElement("link");Object.assign(e,{rel:"prefetch",href:this._href,as:"document"}),document.head.appendChild(e)}}l(rs,"values",{mode:String});class as extends Wt{get defaultUnsupportedClasses(){return["unsupported"]}connect(){T(this),"print"in window||this.addUnsupportedClasses(),d(this,this.el,"click",this.print)}}l(as,"classes",["unsupported"]);class zs extends h{connect(){d(this,window,"message",this.messageReceived)}messageReceived(e){let s=e.data;s.hasOwnProperty("name")&&s.name==="iframe-body"&&s.hasOwnProperty("height")&&this.resize(s.height)}resize(e){this.el.style.height=`${e}px`}}class Us extends h{connect(){window.self!==window.top&&(d(this,window,"resize",this.postUpdate,{debounce:200}),this.postUpdate())}postUpdate(){let e={name:"iframe-body",height:this.getHeight()};window.parent.postMessage(e,"*")}getHeight(){const e=document.body,s=document.documentElement;return Math.max(e.scrollHeight,e.offsetHeight,s.clientHeight,s.scrollHeight,s.offsetHeight)}}class ns extends h{connect(){requestAnimationFrame(()=>{L(this,()=>this.el.remove(),this.secondsValue*1e3)})}}l(ns,"values",{seconds:Number});class Be extends h{constructor(){super(...arguments);l(this,"_magicElement",null)}get defaultStuckClasses(){return["stuck"]}get _mode(){if(this.hasModeValue){if(!["top","bottom"].includes(this.modeValue))throw new Error(`The modeValue provided '${this.modeValue}' is not one of the recognised configuration options`);if(this.modeValue==="top")return"beforebegin"}return"afterend"}connect(){this._magicElement=document.createElement("div"),ht(this,this.el,this._mode,this._magicElement),new IntersectionObserver(s=>{s.forEach(i=>{i.target===this._magicElement&&(i.intersectionRatio===0?this.addStuckClasses():i.intersectionRatio===1&&this.removeStuckClasses())})},{threshold:[0,1]}).observe(this._magicElement)}}l(Be,"classes",["stuck"]),l(Be,"values",{mode:String});class ls extends U{connect(){if(!this.hasInsertValue)throw new Error("`insert` value was not specified");requestAnimationFrame(()=>{this.hasImmediateValue&&this.immediateValue&&this.execute()})}execute(e){e==null||e.preventDefault();let s=this.el,i=document.querySelector(this.targetValue);if(i==null){this.dispatchEvent(s,"teleport:error");return}let r=s.cloneNode(!0);switch(this.cleanup(r),this.insertValue){case"beforebegin":case"beforeend":case"afterend":case"afterbegin":i.insertAdjacentHTML(this.insertValue,r.outerHTML);break;case"replaceOuter":i.outerHTML=r.outerHTML;break;case"replaceInner":i.innerHTML=r.outerHTML;break;case"prepend":i.insertAdjacentHTML("afterbegin",r.outerHTML);break;case"append":i.insertAdjacentHTML("beforeend",r.outerHTML);break;default:throw new Error("`insert` value was not specified")}s.remove()}}l(ls,"values",{target:String,insert:String,immediate:Boolean});class os extends U{constructor(){super(...arguments);l(this,"_previousState",{})}get _value(){if(this.hasValueValue)return this.valueValue;throw new Error("Expected `valueValue` to be present")}get _attribute(){if(this.hasAttributeValue)return this.attributeValue;throw new Error("Expected `attributeValue` to be present")}get _seconds(){if(this.hasSecondsValue)return this.secondsValue*1e3;throw new Error("Expected `secondsValue` to be present")}connect(){this.setState(),L(this,this.removeState,this._seconds)}disconnect(){this.removeState()}setState(){this._previousState[this._attribute]=m.get(this.el,this._attribute),m.set(this.el,this._attribute,this.valueValue)}removeState(){m.set(this.el,this._attribute,this._previousState[this._attribute])}}l(os,"values",{attribute:String,seconds:Number,value:String});function us(t,e,s,i,r="temporary-state"){var n;(!t.dataset.controller||!((n=t.dataset.controller)==null?void 0:n.includes(r)))&&(t.dataset.controller=(t.dataset.controller||` ${r} `).trim().replaceAll(" "," ")),t[m.camelCase(`${r}-attribute-value`)]=e,t[m.camelCase(`${r}-seconds-value`)]=i.toString()}function js(t,e,s){us(t,"className",e,s)}function Ws(t,e,s){s=s.bind(t);const i=n=>{e.contains(n.target)||!at(e)||s(n)};let{teardown:r}=d(t,window,["click","touchend"],i);return y(t,()=>{},r),{teardown:r}}function Ks(t,e,s,i){let r=null,n=null;if(s){s=s.bind(t);let{teardown:u}=d(t,e,"mouseenter",s);r=u}if(i){i=i.bind(t);let{teardown:u}=d(t,e,"mouseleave",i);n=u}let o=()=>{},c=()=>{r&&r(),n&&n()};return y(t,o,c),{teardown:c}}class Fe extends h{connect(){if(!this.hasClassValue)throw new Error("data-toggle-class-class-value must not be empty");(this.hasMouseEnterValue||this.hasMouseLeaveValue)&&Ks(this,this.el,this.mouseEnter,this.mouseLeave),this.hasClickAwayValue&&this.clickAwayValue&&Ws(this,this.el,this.clickOutside),requestAnimationFrame(()=>{this.hasInitialValue&&(this.initialValue==="on"?this.toggleTargets.forEach(e=>this._elementOn(e)):this.toggleTargets.forEach(e=>this._elementOff(e)))})}clickOutside(){this.toggleTargets.forEach(e=>{this._elementWasToggled(e)&&(this._elementToggleStatus(e),this._elementToggle(e))})}mouseEnter(){if(this.hasMouseEnterValue)switch(this.mouseEnterValue){case"on":this.on();break;case"off":this.off();break;case"toggle":this.toggle();break}return{}}mouseLeave(){if(this.hasMouseLeaveValue)switch(this.mouseLeaveValue){case"on":this.on();break;case"off":this.off();break;case"toggle":this.toggle();break}return{}}on(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementOn(s)})}off(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementOff(s)})}toggle(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementToggle(s)})}_elementWasToggled(e){return e.dataset.toggled=="true"}_elementToggleStatus(e){this._elementWasToggled(e)?delete e.dataset.toggled:e.dataset.toggled="true"}_elementToggle(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i))}_elementOn(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i,!0))}_elementOff(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i,!1))}}l(Fe,"targets",["toggle"]),l(Fe,"values",{class:String,mouseEnter:String,mouseLeave:String,clickAway:Boolean,initial:String});function Gs(t){const e=t.disconnect.bind(t);let s=!1,i=(u,g)=>{u.forEach(p=>{p.type==="childList"&&Array.from(p.addedNodes).some(_=>_.tagName==="TRIX-TOOLBAR")&&(o(),g.disconnect())})},r=u=>R(t,"pasteEvent").call(t,u),n=new MutationObserver(i),o=()=>{if(t.element.tagName!=="TRIX-EDITOR")throw new Error("Expected controller to be mounted on an instance of <trix-editor>");let u=t.element,g=t.element.parentElement;if(g==null)throw new Error("Could not traverse DOM tree from <trix-editor>");u.addEventListener("trix-paste",r);let p=g.querySelector("trix-toolbar");if(!s&&!p){s=!0,n.observe(g,{childList:!0});return}else if(p)n.disconnect();else throw new Error("Could not find an instance of <trix-toolbar> that is a sibling of this <trix-editor>");R(t,"install").call(t,{toolbar:p,editor:u})},c=()=>{if(t.element.tagName!=="TRIX-EDITOR")throw new Error("Expected controller to be mounted on an instance of <trix-editor>");let u=t.element,g=t.element.parentElement;if(g==null)throw new Error("Could not traverse DOM tree from <trix-editor>");u.removeEventListener("trix-paste",r);let p=g.querySelector("trix-toolbar");if(!p)throw new Error("Could not find <trix-toolbar> that is a sibling of this <trix-editor> element");R(t,"uninstall").call(t,{toolbar:p,editor:u})};o(),Object.assign(t,{disconnect(){n.disconnect(),c(),R(t,"uninstall").call({toolbar,editor:t.element}),e()}})}class Js extends h{get enabledBehaviours(){let e=i=>i!==void 0&&i!=="false",s=(i,r)=>e(i)?[r]:[];return[...s(this.el.dataset.noBold,this.bold),...s(this.el.dataset.noBulletList,this.bulletList),...s(this.el.dataset.noCode,this.code),...s(this.el.dataset.noHeading,this.heading),...s(this.el.dataset.noItalic,this.italic),...s(this.el.dataset.noStrikethrough,this.strikethrough),...s(this.el.dataset.noLink,this.link),...s(this.el.dataset.noIndents,this.indents),...s(this.el.dataset.noNumberList,this.numberList),...s(this.el.dataset.noQuote,this.quote),...s(this.el.dataset.noFileUploads,this.fileUploads)]}get bold(){return this.formattingHandlers(".trix-button--icon-bold","bold")}get bulletList(){return this.formattingHandlers(".trix-button--icon-bullet-list","bullet-list")}get code(){return this.formattingHandlers(".trix-button--icon-code","code")}get heading(){return this.formattingHandlers(".trix-button--icon-heading-1","heading")}get italic(){return this.formattingHandlers(".trix-button--icon-italic","italic")}get strikethrough(){return this.formattingHandlers(".trix-button--icon-strike","strike")}get link(){return this.formattingHandlers(".trix-button--icon-link","href")}get indents(){return this.simpleHideShowHandlers([".trix-button--icon-decrease-nesting-level, .trix-button--icon-increase-nesting-level",".trix-button--icon-decrease-nesting-level, .trix-button--icon-increase-nesting-level"].join(", "))}get numberList(){return this.simpleHideShowHandlers(".trix-button--icon-number-list")}get quote(){return this.simpleHideShowHandlers(".trix-button--icon-quote")}get fileUploads(){let e=".trix-button-group.trix-button-group--file-tools",s=n=>n==null?void 0:n.preventDefault(),i=this,r=this.el;return{install(n){i.simpleHideShowHandlers(e).install(n),i.el.addEventListener("trix-file-accept",s)},pasteEvent(n){let{dataTransfer:o,html:c}=n.paste,{editor:u}=r;(o.files.length>0||c.includes("<img"))&&(alert("The content you pasted contains images and/or files. File uploads are not supported."),u.undo())},uninstall(n){i.simpleHideShowHandlers(e).uninstall(n),i.el.removeEventListener("trix-file-accept",s)}}}connect(){Gs(this)}install(e){this.enabledBehaviours.forEach(s=>s.install(e))}pasteEvent(e){this.enabledBehaviours.forEach(s=>s.pasteEvent&&s.pasteEvent(e))}uninstall(e){this.enabledBehaviours.forEach(s=>s.uninstall(e))}simpleHideShowHandlers(e){return{install:({toolbar:s})=>this.hideToolbarSelector(s,e),uninstall:({toolbar:s})=>this.showToolbarSelector(s,e)}}formattingHandlers(e,s){let i=this.el,{editor:r}=i;return{install:n=>{this.simpleHideShowHandlers(e).install(n)},pasteEvent(n){let{range:o}=n.paste,c=i.editor.getSelectedRange();r.setSelectedRange(o),r.deactivateAttribute(s),r.setSelectedRange(c)},uninstall:n=>{this.simpleHideShowHandlers(e).uninstall(n)}}}showToolbarSelector(e,s){e.querySelectorAll(s).forEach(i=>i.style.display="")}hideToolbarSelector(e,s){e.querySelectorAll(s).forEach(i=>i.style.display="none")}}class hs extends h{toggle(e){e==null||e.preventDefault();let i=this._getFrame().src;i==null||i!==this._getSrc()?this._setSrc():this._clear()}setSrc(e){e==null||e.preventDefault(),this._setSrc()}clear(e){e==null||e.preventDefault(),this._clear()}_setSrc(){let e=this._getFrame();this.hasLoadingMessageValue&&(e.innerHTML=this.loadingMessageValue),e.src=this._getSrc()}_clear(){let e=this._getFrame();e.src="",e.innerHTML=""}_getFrame(){let e=document.getElementById(`${this.frameIdValue}`);if(e==null)throw new Error(`Could not find frame with ID '${this.frameIdValue}'`);if(oe(e))return e;throw new Error(`Element targeted by ID '${this.frameIdValue}'`)}_getSrc(){let e=this.el;if(this.hasSrcValue)return this.srcValue;if(ue(e))return e.href;throw new Error("No link given to drive frame to")}}l(hs,"values",{frameId:String,src:String,loadingMessage:String});class cs extends h{get _poll(){return this.hasPollValue?this.pollValue:!1}connect(){let e=this.el;if(oe(e)){if(e.src)throw new Error("The provided <turbo-frame> element has no `src` attribute.")}else throw new Error("Expected controller to be mounted on a <turbo-frame> element.");this._poll&&requestAnimationFrame(()=>L(this,this.refresh,this.intervalValue))}refresh(e){e==null||e.preventDefault();let s=this.el;s.src=s.src}}l(cs,"values",{interval:Number,poll:Boolean}),a.AlertController=$t,a.AnchorSpyController=He,a.AsyncBlockController=_e,a.AutoSubmitFormController=gt,a.AutosizeController=Ms,a.BackLinkController=Zt,a.BaseController=h,a.CharCountController=X,a.CheckboxDisableInputsController=we,a.CheckboxEnableInputsController=ye,a.CheckboxSelectAllController=pt,a.CheckboxXORController=_t,a.ClipboardController=xe,a.ClockController=Gt,a.ConfirmController=Qt,a.ConfirmNavigationController=es,a.CountdownController=te,a.DebugController=ts,a.DetectDirtyController=Ds,a.DetectDirtyFormController=Is,a.DisableWithController=ss,a.DismissableController=is,a.DurationController=Jt,a.ElementSaveController=Oe,a.EmptyDomController=ie,a.EnableInputsController=Ee,a.EphemeralController=U,a.EventBus=V,a.FallbackImageController=Me,a.FocusStealController=vt,a.FormRcController=Te,a.FormSaveController=wt,a.FullscreenController=qs,a.IntersectionController=zt,a.IntervalController=Ut,a.LazyBlockController=ks,a.LightboxImageController=De,a.LimitedSelectionCheckboxesController=Ce,a.LoadBlockController=N,a.MediaPlayerController=Dt,a.NavigateFormErrorsController=Y,a.NestedFormController=Se,a.PasswordConfirmController=Ve,a.PasswordPeekController=yt,a.PollBlockController=ve,a.PrefetchController=rs,a.PresenceController=jt,a.PrintButtonController=as,a.PrintController=Wt,a.RemoteFormController=ke,a.RemoveController=$s,a.ResponsiveIframeBodyController=Us,a.ResponsiveIframeWrapperController=zs,a.ScrollContainerController=Lt,a.ScrollIntoFocusController=It,a.ScrollToBottomController=Nt,a.ScrollToController=Ht,a.ScrollToTopController=xt,a.SelfDestructController=ns,a.SignalActionController=Ft,a.SignalDomChildrenController=Rt,a.SignalInputController=qt,a.SignalVisibilityController=Ie,a.StickyController=Be,a.StorageSerializers=ct,a.SyncInputsController=Et,a.TableSortController=Pt,a.TableTruncateController=Ne,a.TabsController=se,a.TeleportController=ls,a.TemporaryStateController=os,a.TimeDistanceController=Xt,a.TimeoutController=Kt,a.ToggleClassController=Fe,a.TreeViewController=Yt,a.TrixModifierController=Js,a.TurboFrameRCController=hs,a.TurboFrameRefreshController=cs,a.UserFocusController=Ps,a.ValueWarnController=Z,a.WordCountController=Q,a.applyTemporaryClass=js,a.applyTemporaryState=us,a.createHiddenButton=it,a.createHiddenInput=rt,a.getAllRadiosInGroup=me,a.getOtherRadiosInGroup=fe,a.getScrollParent=j,a.insertElement=ce,a.insertHiddenButton=de,a.insertHiddenInput=Es,a.isDirty=Ls,a.isElementCheckable=k,a.isElementInViewport=at,a.isFormDirty=bt,a.isHTMLAnchorElement=ue,a.isHTMLButtonButtonElement=Ye,a.isHTMLButtonElement=vs,a.isHTMLButtonInputElement=ys,a.isHTMLFormElement=he,a.isHTMLImageElement=ws,a.isHTMLInputElement=v,a.isHTMLLabelElement=bs,a.isHTMLLinkElement=_s,a.isHTMLResetButtonElement=Qe,a.isHTMLResetInputElement=Xe,a.isHTMLSelectElement=I,a.isHTMLSubmitButtonElement=Ze,a.isHTMLSubmitInputElement=Je,a.isHTMLTextAreaElement=W,a.isTurboFrame=oe,a.isTypeOfButtonableElement=K,a.isTypeOfFormInputElement=st,a.isTypeOfResetButtonElement=et,a.isTypeOfSubmitButtonElement=tt,a.requestReset=nt,a.requestSubmit=ge,a.scrollAbsoluteBottom=ne,a.scrollAbsoluteLeft=le,a.scrollAbsoluteRight=gs,a.scrollAbsoluteTop=ae,a.scrollDown=We,a.scrollLeft=Ke,a.scrollRight=Ge,a.scrollToElement=A,a.scrollUp=je,a.useCollectionEventListener=D,a.useCollectionEventListeners=Ts,a.useEventListener=d,a.useEventListeners=ot,a.useFullscreen=ut,a.useGeolocation=Cs,a.useInjectedElement=ht,a.useInjectedFragment=pe,a.useInjectedHTML=Ss,a.useInterval=F,a.useLocalStorage=dt,a.useTemporaryContent=mt,a.useTimeout=L,Object.defineProperty(a,"__esModule",{value:!0}),a[Symbol.toStringTag]="Module"});
2
- //# sourceMappingURL=stimulus-library.umd.js.map