spree_admin 5.0.0.rc1

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 (795) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +13 -0
  3. data/README.md +4 -0
  4. data/Rakefile +15 -0
  5. data/app/assets/config/spree_admin_manifest.js +10 -0
  6. data/app/assets/images/favicon_256x256.png +0 -0
  7. data/app/assets/stylesheets/spree/admin/actiontext.css +36 -0
  8. data/app/assets/stylesheets/spree/admin/application.scss +43 -0
  9. data/app/assets/stylesheets/spree/admin/components/_alerts.scss +48 -0
  10. data/app/assets/stylesheets/spree/admin/components/_badges.scss +117 -0
  11. data/app/assets/stylesheets/spree/admin/components/_bulk_panel.scss +31 -0
  12. data/app/assets/stylesheets/spree/admin/components/_buttons.scss +198 -0
  13. data/app/assets/stylesheets/spree/admin/components/_cards.scss +126 -0
  14. data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +148 -0
  15. data/app/assets/stylesheets/spree/admin/components/_filters.scss +41 -0
  16. data/app/assets/stylesheets/spree/admin/components/_line_items_form.scss +32 -0
  17. data/app/assets/stylesheets/spree/admin/components/_main.scss +148 -0
  18. data/app/assets/stylesheets/spree/admin/components/_media_form.scss +91 -0
  19. data/app/assets/stylesheets/spree/admin/components/_modals.scss +42 -0
  20. data/app/assets/stylesheets/spree/admin/components/_navbar.scss +10 -0
  21. data/app/assets/stylesheets/spree/admin/components/_navigation.scss +53 -0
  22. data/app/assets/stylesheets/spree/admin/components/_offcanvas.scss +26 -0
  23. data/app/assets/stylesheets/spree/admin/components/_search_picker.scss +55 -0
  24. data/app/assets/stylesheets/spree/admin/components/_seo_form.scss +16 -0
  25. data/app/assets/stylesheets/spree/admin/components/_sortable_tree.scss +58 -0
  26. data/app/assets/stylesheets/spree/admin/components/_tables.scss +187 -0
  27. data/app/assets/stylesheets/spree/admin/components/_variants_form.scss +203 -0
  28. data/app/assets/stylesheets/spree/admin/global/_variables.scss +190 -0
  29. data/app/assets/stylesheets/spree/admin/plugins/_dropdown.scss +102 -0
  30. data/app/assets/stylesheets/spree/admin/plugins/_items.scss +115 -0
  31. data/app/assets/stylesheets/spree/admin/plugins/_tinymce_custom.scss +74 -0
  32. data/app/assets/stylesheets/spree/admin/plugins/_trix_custom.scss +110 -0
  33. data/app/assets/stylesheets/spree/admin/plugins/flatfile.scss +4 -0
  34. data/app/assets/stylesheets/spree/admin/plugins/plugins/checkbox_options.scss +5 -0
  35. data/app/assets/stylesheets/spree/admin/plugins/plugins/clear_button.scss +30 -0
  36. data/app/assets/stylesheets/spree/admin/plugins/plugins/drag_drop.scss +16 -0
  37. data/app/assets/stylesheets/spree/admin/plugins/plugins/dropdown_header.scss +23 -0
  38. data/app/assets/stylesheets/spree/admin/plugins/plugins/dropdown_input.scss +47 -0
  39. data/app/assets/stylesheets/spree/admin/plugins/plugins/input_autogrow.scss +18 -0
  40. data/app/assets/stylesheets/spree/admin/plugins/plugins/optgroup_columns.scss +23 -0
  41. data/app/assets/stylesheets/spree/admin/plugins/plugins/remove_button.scss +44 -0
  42. data/app/assets/stylesheets/spree/admin/plugins/tom-select.bootstrap4.scss +219 -0
  43. data/app/assets/stylesheets/spree/admin/plugins/tom-select.bootstrap5.scss +274 -0
  44. data/app/assets/stylesheets/spree/admin/plugins/tom-select.default.scss +87 -0
  45. data/app/assets/stylesheets/spree/admin/plugins/tom-select.scss +175 -0
  46. data/app/assets/stylesheets/spree/admin/plugins/uppy_fixes.scss +25 -0
  47. data/app/assets/stylesheets/spree/admin/shared/_base.scss +674 -0
  48. data/app/assets/stylesheets/spree/admin/shared/_forms.scss +184 -0
  49. data/app/assets/stylesheets/spree/admin/views/_dashboard.scss +34 -0
  50. data/app/assets/stylesheets/spree/admin/views/_page_builder.scss +237 -0
  51. data/app/controllers/concerns/spree/admin/analytics_concern.rb +51 -0
  52. data/app/controllers/concerns/spree/admin/bulk_operations_concern.rb +38 -0
  53. data/app/controllers/concerns/spree/admin/order_concern.rb +24 -0
  54. data/app/controllers/concerns/spree/admin/page_builder_concern.rb +44 -0
  55. data/app/controllers/spree/admin/action_text/video_embeds_controller.rb +44 -0
  56. data/app/controllers/spree/admin/addresses_controller.rb +86 -0
  57. data/app/controllers/spree/admin/assets_controller.rb +70 -0
  58. data/app/controllers/spree/admin/base_controller.rb +131 -0
  59. data/app/controllers/spree/admin/checkouts_controller.rb +23 -0
  60. data/app/controllers/spree/admin/classifications_controller.rb +74 -0
  61. data/app/controllers/spree/admin/coupon_codes_controller.rb +21 -0
  62. data/app/controllers/spree/admin/custom_domains_controller.rb +19 -0
  63. data/app/controllers/spree/admin/customer_returns_controller.rb +20 -0
  64. data/app/controllers/spree/admin/dashboard_controller.rb +145 -0
  65. data/app/controllers/spree/admin/digital_assets_controller.rb +45 -0
  66. data/app/controllers/spree/admin/errors_controller.rb +11 -0
  67. data/app/controllers/spree/admin/exports_controller.rb +48 -0
  68. data/app/controllers/spree/admin/line_items_controller.rb +121 -0
  69. data/app/controllers/spree/admin/oauth_applications_controller.rb +27 -0
  70. data/app/controllers/spree/admin/option_types_controller.rb +23 -0
  71. data/app/controllers/spree/admin/option_values_controller.rb +21 -0
  72. data/app/controllers/spree/admin/orders/billing_address_controller.rb +103 -0
  73. data/app/controllers/spree/admin/orders/contact_information_controller.rb +45 -0
  74. data/app/controllers/spree/admin/orders/customer_returns_controller.rb +81 -0
  75. data/app/controllers/spree/admin/orders/payment_links_controller.rb +33 -0
  76. data/app/controllers/spree/admin/orders/return_authorizations_controller.rb +90 -0
  77. data/app/controllers/spree/admin/orders/shipping_address_controller.rb +85 -0
  78. data/app/controllers/spree/admin/orders/user_controller.rb +94 -0
  79. data/app/controllers/spree/admin/orders_controller.rb +87 -0
  80. data/app/controllers/spree/admin/page_blocks_controller.rb +40 -0
  81. data/app/controllers/spree/admin/page_links_controller.rb +43 -0
  82. data/app/controllers/spree/admin/page_sections_controller.rb +57 -0
  83. data/app/controllers/spree/admin/pages_controller.rb +40 -0
  84. data/app/controllers/spree/admin/payment_methods_controller.rb +45 -0
  85. data/app/controllers/spree/admin/payments_controller.rb +122 -0
  86. data/app/controllers/spree/admin/post_categories_controller.rb +6 -0
  87. data/app/controllers/spree/admin/posts_controller.rb +23 -0
  88. data/app/controllers/spree/admin/products_controller.rb +366 -0
  89. data/app/controllers/spree/admin/profile_controller.rb +31 -0
  90. data/app/controllers/spree/admin/promotion_actions_controller.rb +47 -0
  91. data/app/controllers/spree/admin/promotion_rules_controller.rb +39 -0
  92. data/app/controllers/spree/admin/promotions_controller.rb +61 -0
  93. data/app/controllers/spree/admin/properties_controller.rb +23 -0
  94. data/app/controllers/spree/admin/refund_reasons_controller.rb +6 -0
  95. data/app/controllers/spree/admin/refunds_controller.rb +43 -0
  96. data/app/controllers/spree/admin/reimbursement_types_controller.rb +6 -0
  97. data/app/controllers/spree/admin/reimbursements_controller.rb +47 -0
  98. data/app/controllers/spree/admin/reports_controller.rb +52 -0
  99. data/app/controllers/spree/admin/resource_controller.rb +325 -0
  100. data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +6 -0
  101. data/app/controllers/spree/admin/return_authorizations_controller.rb +29 -0
  102. data/app/controllers/spree/admin/return_items_controller.rb +9 -0
  103. data/app/controllers/spree/admin/roles_controller.rb +6 -0
  104. data/app/controllers/spree/admin/shipments_controller.rb +102 -0
  105. data/app/controllers/spree/admin/shipping_categories_controller.rb +6 -0
  106. data/app/controllers/spree/admin/shipping_methods_controller.rb +29 -0
  107. data/app/controllers/spree/admin/stock_items_controller.rb +25 -0
  108. data/app/controllers/spree/admin/stock_locations_controller.rb +24 -0
  109. data/app/controllers/spree/admin/stock_transfers_controller.rb +48 -0
  110. data/app/controllers/spree/admin/store_credit_categories_controller.rb +6 -0
  111. data/app/controllers/spree/admin/store_credits_controller.rb +93 -0
  112. data/app/controllers/spree/admin/storefront_controller.rb +38 -0
  113. data/app/controllers/spree/admin/stores_controller.rb +87 -0
  114. data/app/controllers/spree/admin/tax_categories_controller.rb +6 -0
  115. data/app/controllers/spree/admin/tax_rates_controller.rb +20 -0
  116. data/app/controllers/spree/admin/taxonomies_controller.rb +21 -0
  117. data/app/controllers/spree/admin/taxons_controller.rb +98 -0
  118. data/app/controllers/spree/admin/themes_controller.rb +75 -0
  119. data/app/controllers/spree/admin/translations_controller.rb +74 -0
  120. data/app/controllers/spree/admin/users_controller.rb +91 -0
  121. data/app/controllers/spree/admin/variants_controller.rb +90 -0
  122. data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +48 -0
  123. data/app/controllers/spree/admin/zones_controller.rb +37 -0
  124. data/app/helpers/spree/admin/base_helper.rb +246 -0
  125. data/app/helpers/spree/admin/custom_domains_helper.rb +9 -0
  126. data/app/helpers/spree/admin/customer_returns_helper.rb +18 -0
  127. data/app/helpers/spree/admin/flash_helper.rb +15 -0
  128. data/app/helpers/spree/admin/navigation_helper.rb +195 -0
  129. data/app/helpers/spree/admin/onboarding_helper.rb +18 -0
  130. data/app/helpers/spree/admin/orders_filters_helper.rb +68 -0
  131. data/app/helpers/spree/admin/orders_helper.rb +179 -0
  132. data/app/helpers/spree/admin/page_builder_helper.rb +130 -0
  133. data/app/helpers/spree/admin/payments_helper.rb +24 -0
  134. data/app/helpers/spree/admin/posts_helper.rb +9 -0
  135. data/app/helpers/spree/admin/products_helper.rb +127 -0
  136. data/app/helpers/spree/admin/promotion_actions_helper.rb +10 -0
  137. data/app/helpers/spree/admin/promotion_rules_helper.rb +17 -0
  138. data/app/helpers/spree/admin/promotions_helper.rb +25 -0
  139. data/app/helpers/spree/admin/reimbursement_type_helper.rb +9 -0
  140. data/app/helpers/spree/admin/session_assets_helper.rb +24 -0
  141. data/app/helpers/spree/admin/shipment_helper.rb +27 -0
  142. data/app/helpers/spree/admin/sortable_tree_helper.rb +31 -0
  143. data/app/helpers/spree/admin/stock_locations_helper.rb +22 -0
  144. data/app/helpers/spree/admin/store_helper.rb +46 -0
  145. data/app/helpers/spree/admin/stores_helper.rb +86 -0
  146. data/app/helpers/spree/admin/tags_helper.rb +35 -0
  147. data/app/helpers/spree/admin/taxons_helper.rb +27 -0
  148. data/app/helpers/spree/admin/themes_helper.rb +9 -0
  149. data/app/helpers/spree/admin/translations_helper.rb +14 -0
  150. data/app/helpers/spree/admin/turbo_helper.rb +41 -0
  151. data/app/helpers/spree/admin/users_helper.rb +37 -0
  152. data/app/helpers/spree/admin/webhooks_subscribers_helper.rb +31 -0
  153. data/app/helpers/tom_select_helper.rb +42 -0
  154. data/app/javascript/spree/admin/application.js +157 -0
  155. data/app/javascript/spree/admin/controllers/active_storage_upload_controller.js +168 -0
  156. data/app/javascript/spree/admin/controllers/address_form_controller.js +98 -0
  157. data/app/javascript/spree/admin/controllers/asset_uploader_controller.js +58 -0
  158. data/app/javascript/spree/admin/controllers/autocomplete_select_controller.js +36 -0
  159. data/app/javascript/spree/admin/controllers/better_slider_controller.js +23 -0
  160. data/app/javascript/spree/admin/controllers/block_form_controller.js +11 -0
  161. data/app/javascript/spree/admin/controllers/bootstrap_tabs_controller.js +9 -0
  162. data/app/javascript/spree/admin/controllers/bulk_operation_controller.js +78 -0
  163. data/app/javascript/spree/admin/controllers/calculator_fields_controller.js +24 -0
  164. data/app/javascript/spree/admin/controllers/calendar_range_controller.js +52 -0
  165. data/app/javascript/spree/admin/controllers/clipboard_controller.js +17 -0
  166. data/app/javascript/spree/admin/controllers/color_palette_controller.js +22 -0
  167. data/app/javascript/spree/admin/controllers/color_picker_controller.js +52 -0
  168. data/app/javascript/spree/admin/controllers/enable_button_controller.js +29 -0
  169. data/app/javascript/spree/admin/controllers/filters_controller.js +66 -0
  170. data/app/javascript/spree/admin/controllers/font_picker_controller.js +55 -0
  171. data/app/javascript/spree/admin/controllers/media_form_controller.js +38 -0
  172. data/app/javascript/spree/admin/controllers/multi_input_controller.js +75 -0
  173. data/app/javascript/spree/admin/controllers/multi_tom_select_controller.js +80 -0
  174. data/app/javascript/spree/admin/controllers/order_billing_address_controller.js +39 -0
  175. data/app/javascript/spree/admin/controllers/page_builder_controller.js +316 -0
  176. data/app/javascript/spree/admin/controllers/password_toggle_controller.js +14 -0
  177. data/app/javascript/spree/admin/controllers/product_form_controller.js +70 -0
  178. data/app/javascript/spree/admin/controllers/range_input_controller.js +9 -0
  179. data/app/javascript/spree/admin/controllers/replace_controller.js +15 -0
  180. data/app/javascript/spree/admin/controllers/return_items_controller.js +47 -0
  181. data/app/javascript/spree/admin/controllers/row_link_controller.js +18 -0
  182. data/app/javascript/spree/admin/controllers/rule_form_controller.js +17 -0
  183. data/app/javascript/spree/admin/controllers/search_picker_controller.js +38 -0
  184. data/app/javascript/spree/admin/controllers/section_form_controller.js +14 -0
  185. data/app/javascript/spree/admin/controllers/select_controller.js +117 -0
  186. data/app/javascript/spree/admin/controllers/seo_form_controller.js +116 -0
  187. data/app/javascript/spree/admin/controllers/slug_form_controller.js +17 -0
  188. data/app/javascript/spree/admin/controllers/sortable_tree_controller.js +55 -0
  189. data/app/javascript/spree/admin/controllers/stock_transfer_controller.js +87 -0
  190. data/app/javascript/spree/admin/controllers/store_form_controller.js +17 -0
  191. data/app/javascript/spree/admin/controllers/unit_system_controller.js +27 -0
  192. data/app/javascript/spree/admin/controllers/variants_form_controller.js +1048 -0
  193. data/app/javascript/spree/admin/controllers/webhook_subscriber_events_controller.js +19 -0
  194. data/app/javascript/spree/admin/helpers/bootstrap.js +49 -0
  195. data/app/javascript/spree/admin/helpers/canvas.js +29 -0
  196. data/app/javascript/spree/admin/helpers/index.js +0 -0
  197. data/app/javascript/spree/admin/helpers/tinymce.js +65 -0
  198. data/app/javascript/spree/admin/helpers/trix/video_embed.js +182 -0
  199. data/app/javascript/spree/admin/helpers/uppy_active_storage.js +210 -0
  200. data/app/models/spree/admin/resource.rb +36 -0
  201. data/app/models/spree/admin/updater.rb +42 -0
  202. data/app/views/active_storage/_upload_form.html.erb +65 -0
  203. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +13 -0
  204. data/app/views/kaminari/admin-twitter-bootstrap-4/_gap.html.erb +12 -0
  205. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +13 -0
  206. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +13 -0
  207. data/app/views/kaminari/admin-twitter-bootstrap-4/_page.html.erb +18 -0
  208. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +17 -0
  209. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +13 -0
  210. data/app/views/layouts/spree/admin.html.erb +21 -0
  211. data/app/views/layouts/spree/page_builder.html.erb +45 -0
  212. data/app/views/spree/admin/addresses/edit.html.erb +12 -0
  213. data/app/views/spree/admin/addresses/new.html.erb +16 -0
  214. data/app/views/spree/admin/assets/bulk_destroy.turbo_stream.erb +3 -0
  215. data/app/views/spree/admin/assets/create.turbo_stream.erb +5 -0
  216. data/app/views/spree/admin/assets/destroy.turbo_stream.erb +4 -0
  217. data/app/views/spree/admin/assets/edit.html.erb +27 -0
  218. data/app/views/spree/admin/assets/update.turbo_stream.erb +7 -0
  219. data/app/views/spree/admin/classifications/_classification.html.erb +38 -0
  220. data/app/views/spree/admin/classifications/create.turbo_stream.erb +7 -0
  221. data/app/views/spree/admin/classifications/destroy.turbo_stream.erb +2 -0
  222. data/app/views/spree/admin/classifications/index.html.erb +20 -0
  223. data/app/views/spree/admin/classifications/new.html.erb +1 -0
  224. data/app/views/spree/admin/coupon_codes/_coupon_code.html.erb +12 -0
  225. data/app/views/spree/admin/coupon_codes/index.csv.erb +14 -0
  226. data/app/views/spree/admin/coupon_codes/index.html.erb +70 -0
  227. data/app/views/spree/admin/custom_domains/_custom_domain.html.erb +13 -0
  228. data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +24 -0
  229. data/app/views/spree/admin/custom_domains/_form.html.erb +19 -0
  230. data/app/views/spree/admin/custom_domains/create.turbo_stream.erb +3 -0
  231. data/app/views/spree/admin/custom_domains/edit.html.erb +15 -0
  232. data/app/views/spree/admin/custom_domains/index.html.erb +50 -0
  233. data/app/views/spree/admin/custom_domains/new.html.erb +15 -0
  234. data/app/views/spree/admin/customer_returns/_customer_return.html.erb +31 -0
  235. data/app/views/spree/admin/customer_returns/index.html.erb +57 -0
  236. data/app/views/spree/admin/dashboard/_analytics.html.erb +3 -0
  237. data/app/views/spree/admin/dashboard/_setup_progress.html.erb +17 -0
  238. data/app/views/spree/admin/dashboard/_setup_tasks.html.erb +24 -0
  239. data/app/views/spree/admin/dashboard/_store_preview.html.erb +45 -0
  240. data/app/views/spree/admin/dashboard/_top_products.html.erb +71 -0
  241. data/app/views/spree/admin/dashboard/_updater.html.erb +9 -0
  242. data/app/views/spree/admin/dashboard/_visits.html.erb +112 -0
  243. data/app/views/spree/admin/dashboard/analytics.html.erb +118 -0
  244. data/app/views/spree/admin/dashboard/getting_started.html.erb +22 -0
  245. data/app/views/spree/admin/dashboard/setup_tasks/_add_products.html.erb +22 -0
  246. data/app/views/spree/admin/dashboard/setup_tasks/_set_customer_support_email.html.erb +23 -0
  247. data/app/views/spree/admin/dashboard/setup_tasks/_setup_payment_method.html.erb +6 -0
  248. data/app/views/spree/admin/dashboard/setup_tasks/_setup_taxes_collection.html.erb +6 -0
  249. data/app/views/spree/admin/dashboard/show.html.erb +33 -0
  250. data/app/views/spree/admin/digital_assets/_digital_asset.html.erb +30 -0
  251. data/app/views/spree/admin/digital_assets/_form.html.erb +18 -0
  252. data/app/views/spree/admin/digital_assets/_table.html.erb +40 -0
  253. data/app/views/spree/admin/digital_assets/create.turbo_stream.erb +2 -0
  254. data/app/views/spree/admin/digital_assets/edit.html.erb +22 -0
  255. data/app/views/spree/admin/digital_assets/index.html.erb +27 -0
  256. data/app/views/spree/admin/digital_assets/new.html.erb +22 -0
  257. data/app/views/spree/admin/digital_assets/update.turbo_stream.erb +2 -0
  258. data/app/views/spree/admin/exports/_export.html.erb +42 -0
  259. data/app/views/spree/admin/exports/create.turbo_stream.erb +2 -0
  260. data/app/views/spree/admin/exports/index.html.erb +30 -0
  261. data/app/views/spree/admin/exports/new.html.erb +42 -0
  262. data/app/views/spree/admin/line_items/edit.html.erb +20 -0
  263. data/app/views/spree/admin/line_items/new.html.erb +32 -0
  264. data/app/views/spree/admin/oauth_applications/_form.html.erb +11 -0
  265. data/app/views/spree/admin/oauth_applications/create.turbo_stream.erb +41 -0
  266. data/app/views/spree/admin/oauth_applications/edit.html.erb +19 -0
  267. data/app/views/spree/admin/oauth_applications/index.html.erb +75 -0
  268. data/app/views/spree/admin/oauth_applications/new.html.erb +25 -0
  269. data/app/views/spree/admin/option_types/_filter.html.erb +7 -0
  270. data/app/views/spree/admin/option_types/_form.html.erb +87 -0
  271. data/app/views/spree/admin/option_types/_option_type.html.erb +19 -0
  272. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +29 -0
  273. data/app/views/spree/admin/option_types/edit.html.erb +11 -0
  274. data/app/views/spree/admin/option_types/index.html.erb +63 -0
  275. data/app/views/spree/admin/option_types/new.html.erb +11 -0
  276. data/app/views/spree/admin/option_types/update.turbo_stream.erb +1 -0
  277. data/app/views/spree/admin/option_values/destroy.turbo_stream.erb +1 -0
  278. data/app/views/spree/admin/orders/_body_custom.html.erb +0 -0
  279. data/app/views/spree/admin/orders/_customer.html.erb +79 -0
  280. data/app/views/spree/admin/orders/_customer_returns.html.erb +26 -0
  281. data/app/views/spree/admin/orders/_customer_summary.html.erb +22 -0
  282. data/app/views/spree/admin/orders/_extra_filters.html.erb +0 -0
  283. data/app/views/spree/admin/orders/_filters.html.erb +106 -0
  284. data/app/views/spree/admin/orders/_header.html.erb +76 -0
  285. data/app/views/spree/admin/orders/_header_custom.html.erb +0 -0
  286. data/app/views/spree/admin/orders/_line_item.html.erb +61 -0
  287. data/app/views/spree/admin/orders/_line_items.html.erb +68 -0
  288. data/app/views/spree/admin/orders/_list.html.erb +30 -0
  289. data/app/views/spree/admin/orders/_order.html.erb +28 -0
  290. data/app/views/spree/admin/orders/_payments.html.erb +35 -0
  291. data/app/views/spree/admin/orders/_refunds.html.erb +49 -0
  292. data/app/views/spree/admin/orders/_return_authorizations.html.erb +26 -0
  293. data/app/views/spree/admin/orders/_risk_analysis.html.erb +26 -0
  294. data/app/views/spree/admin/orders/_shipment.html.erb +104 -0
  295. data/app/views/spree/admin/orders/_shipment_manifest_item.html.erb +17 -0
  296. data/app/views/spree/admin/orders/_shipments.html.erb +22 -0
  297. data/app/views/spree/admin/orders/_summary.html.erb +100 -0
  298. data/app/views/spree/admin/orders/_summary_custom.html.erb +0 -0
  299. data/app/views/spree/admin/orders/_table_filter_dropdown.html.erb +34 -0
  300. data/app/views/spree/admin/orders/_tax_lines.html.erb +11 -0
  301. data/app/views/spree/admin/orders/_user_overview.html.erb +13 -0
  302. data/app/views/spree/admin/orders/billing_address/_form.html.erb +14 -0
  303. data/app/views/spree/admin/orders/billing_address/create.turbo_stream.erb +35 -0
  304. data/app/views/spree/admin/orders/billing_address/edit.html.erb +42 -0
  305. data/app/views/spree/admin/orders/billing_address/new.html.erb +35 -0
  306. data/app/views/spree/admin/orders/billing_address/update.turbo_stream.erb +35 -0
  307. data/app/views/spree/admin/orders/contact_information/edit.html.erb +20 -0
  308. data/app/views/spree/admin/orders/customer_returns/_customer_return.html.erb +70 -0
  309. data/app/views/spree/admin/orders/customer_returns/_reimbursements_table.html.erb +40 -0
  310. data/app/views/spree/admin/orders/customer_returns/_return_item_decision.html.erb +54 -0
  311. data/app/views/spree/admin/orders/customer_returns/_return_item_selection.html.erb +72 -0
  312. data/app/views/spree/admin/orders/customer_returns/edit.html.erb +144 -0
  313. data/app/views/spree/admin/orders/customer_returns/new.html.erb +67 -0
  314. data/app/views/spree/admin/orders/edit.html.erb +23 -0
  315. data/app/views/spree/admin/orders/index.html.erb +23 -0
  316. data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +176 -0
  317. data/app/views/spree/admin/orders/return_authorizations/_return_authorization.html.erb +36 -0
  318. data/app/views/spree/admin/orders/return_authorizations/edit.html.erb +44 -0
  319. data/app/views/spree/admin/orders/return_authorizations/new.html.erb +13 -0
  320. data/app/views/spree/admin/orders/return_authorizations/show.html.erb +128 -0
  321. data/app/views/spree/admin/orders/shipping_address/_form.html.erb +13 -0
  322. data/app/views/spree/admin/orders/shipping_address/create.turbo_stream.erb +17 -0
  323. data/app/views/spree/admin/orders/shipping_address/edit.html.erb +17 -0
  324. data/app/views/spree/admin/orders/shipping_address/new.html.erb +17 -0
  325. data/app/views/spree/admin/orders/shipping_address/update.turbo_stream.erb +17 -0
  326. data/app/views/spree/admin/orders/user/create.turbo_stream.erb +12 -0
  327. data/app/views/spree/admin/orders/user/edit.html.erb +3 -0
  328. data/app/views/spree/admin/orders/user/new.html.erb +30 -0
  329. data/app/views/spree/admin/orders/user/update.turbo_stream.erb +5 -0
  330. data/app/views/spree/admin/page_blocks/_form_tab_buttons.html.erb +7 -0
  331. data/app/views/spree/admin/page_blocks/create.turbo_stream.erb +4 -0
  332. data/app/views/spree/admin/page_blocks/destroy.turbo_stream.erb +9 -0
  333. data/app/views/spree/admin/page_blocks/edit.html.erb +48 -0
  334. data/app/views/spree/admin/page_blocks/forms/_brand.html.erb +15 -0
  335. data/app/views/spree/admin/page_blocks/forms/_brand_logo.html.erb +4 -0
  336. data/app/views/spree/admin/page_blocks/forms/_buttons.html.erb +13 -0
  337. data/app/views/spree/admin/page_blocks/forms/_buy_buttons.html.erb +10 -0
  338. data/app/views/spree/admin/page_blocks/forms/_heading.html.erb +28 -0
  339. data/app/views/spree/admin/page_blocks/forms/_image.html.erb +1 -0
  340. data/app/views/spree/admin/page_blocks/forms/_link.html.erb +19 -0
  341. data/app/views/spree/admin/page_blocks/forms/_mega_nav.html.erb +14 -0
  342. data/app/views/spree/admin/page_blocks/forms/_mega_nav_with_subcategories.html.erb +9 -0
  343. data/app/views/spree/admin/page_blocks/forms/_nav.html.erb +6 -0
  344. data/app/views/spree/admin/page_blocks/forms/_newsletter_form.html.erb +20 -0
  345. data/app/views/spree/admin/page_blocks/forms/_price.html.erb +15 -0
  346. data/app/views/spree/admin/page_blocks/forms/_quantity_selector.html.erb +10 -0
  347. data/app/views/spree/admin/page_blocks/forms/_share.html.erb +5 -0
  348. data/app/views/spree/admin/page_blocks/forms/_subheading.html.erb +26 -0
  349. data/app/views/spree/admin/page_blocks/forms/_text.html.erb +21 -0
  350. data/app/views/spree/admin/page_blocks/forms/_title.html.erb +20 -0
  351. data/app/views/spree/admin/page_blocks/forms/_variant_picker.html.erb +10 -0
  352. data/app/views/spree/admin/page_blocks/move_higher.turbo_stream.erb +4 -0
  353. data/app/views/spree/admin/page_blocks/move_lower.turbo_stream.erb +4 -0
  354. data/app/views/spree/admin/page_blocks/show.html.erb +1 -0
  355. data/app/views/spree/admin/page_blocks/update.turbo_stream.erb +6 -0
  356. data/app/views/spree/admin/page_builder/_add_block.html.erb +20 -0
  357. data/app/views/spree/admin/page_builder/_color_palette.html.erb +17 -0
  358. data/app/views/spree/admin/page_builder/_color_picker.html.erb +26 -0
  359. data/app/views/spree/admin/page_builder/_header.html.erb +99 -0
  360. data/app/views/spree/admin/page_builder/_labeled_range_input.html.erb +10 -0
  361. data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +23 -0
  362. data/app/views/spree/admin/page_builder/_range_input.html.erb +12 -0
  363. data/app/views/spree/admin/page_builder/_sidebar.html.erb +14 -0
  364. data/app/views/spree/admin/page_builder/_sidebar_block.html.erb +29 -0
  365. data/app/views/spree/admin/page_builder/_sidebar_colors.html.erb +84 -0
  366. data/app/views/spree/admin/page_builder/_sidebar_fonts.html.erb +85 -0
  367. data/app/views/spree/admin/page_builder/_sidebar_section.html.erb +46 -0
  368. data/app/views/spree/admin/page_builder/_sidebar_sections.html.erb +33 -0
  369. data/app/views/spree/admin/page_builder/_sidebar_sections_toolbar.html.erb +65 -0
  370. data/app/views/spree/admin/page_links/_form.html.erb +19 -0
  371. data/app/views/spree/admin/page_links/_linkable_type_dropdown.html.erb +15 -0
  372. data/app/views/spree/admin/page_links/_list.html.erb +36 -0
  373. data/app/views/spree/admin/page_links/_refresh_theme_preview.turbo_stream.erb +5 -0
  374. data/app/views/spree/admin/page_links/create.turbo_stream.erb +4 -0
  375. data/app/views/spree/admin/page_links/destroy.turbo_stream.erb +11 -0
  376. data/app/views/spree/admin/page_links/edit.html.erb +18 -0
  377. data/app/views/spree/admin/page_links/update.turbo_stream.erb +6 -0
  378. data/app/views/spree/admin/page_sections/_form_tab_buttons.html.erb +12 -0
  379. data/app/views/spree/admin/page_sections/create.turbo_stream.erb +11 -0
  380. data/app/views/spree/admin/page_sections/destroy.turbo_stream.erb +16 -0
  381. data/app/views/spree/admin/page_sections/edit.html.erb +42 -0
  382. data/app/views/spree/admin/page_sections/fields/_background_color.html.erb +6 -0
  383. data/app/views/spree/admin/page_sections/fields/_border_bottom_width.html.erb +5 -0
  384. data/app/views/spree/admin/page_sections/fields/_border_color.html.erb +7 -0
  385. data/app/views/spree/admin/page_sections/fields/_border_top_width.html.erb +6 -0
  386. data/app/views/spree/admin/page_sections/fields/_bottom_padding.html.erb +5 -0
  387. data/app/views/spree/admin/page_sections/fields/_button.html.erb +15 -0
  388. data/app/views/spree/admin/page_sections/fields/_header_layout.html.erb +26 -0
  389. data/app/views/spree/admin/page_sections/fields/_height.html.erb +6 -0
  390. data/app/views/spree/admin/page_sections/fields/_text_color.html.erb +7 -0
  391. data/app/views/spree/admin/page_sections/fields/_top_padding.html.erb +6 -0
  392. data/app/views/spree/admin/page_sections/forms/_announcement_bar.html.erb +5 -0
  393. data/app/views/spree/admin/page_sections/forms/_brand_story.html.erb +0 -0
  394. data/app/views/spree/admin/page_sections/forms/_collection_banner.html.erb +0 -0
  395. data/app/views/spree/admin/page_sections/forms/_custom_code.html.erb +4 -0
  396. data/app/views/spree/admin/page_sections/forms/_featured_posts.html.erb +38 -0
  397. data/app/views/spree/admin/page_sections/forms/_featured_product.html.erb +4 -0
  398. data/app/views/spree/admin/page_sections/forms/_featured_taxon.html.erb +59 -0
  399. data/app/views/spree/admin/page_sections/forms/_featured_taxons.html.erb +13 -0
  400. data/app/views/spree/admin/page_sections/forms/_footer.html.erb +20 -0
  401. data/app/views/spree/admin/page_sections/forms/_header.html.erb +14 -0
  402. data/app/views/spree/admin/page_sections/forms/_image_banner.html.erb +13 -0
  403. data/app/views/spree/admin/page_sections/forms/_image_with_text.html.erb +31 -0
  404. data/app/views/spree/admin/page_sections/forms/_main_password_footer.html.erb +9 -0
  405. data/app/views/spree/admin/page_sections/forms/_main_password_header.erb +13 -0
  406. data/app/views/spree/admin/page_sections/forms/_newsletter.html.erb +15 -0
  407. data/app/views/spree/admin/page_sections/forms/_page_title.html.erb +4 -0
  408. data/app/views/spree/admin/page_sections/forms/_post_details.html.erb +0 -0
  409. data/app/views/spree/admin/page_sections/forms/_post_grid.html.erb +0 -0
  410. data/app/views/spree/admin/page_sections/forms/_product_details.html.erb +1 -0
  411. data/app/views/spree/admin/page_sections/forms/_product_grid.html.erb +1 -0
  412. data/app/views/spree/admin/page_sections/forms/_related_products.html.erb +32 -0
  413. data/app/views/spree/admin/page_sections/forms/_rich_text.html.erb +0 -0
  414. data/app/views/spree/admin/page_sections/forms/_taxon_banner.html.erb +0 -0
  415. data/app/views/spree/admin/page_sections/forms/_taxon_grid.html.erb +5 -0
  416. data/app/views/spree/admin/page_sections/forms/_video.html.erb +15 -0
  417. data/app/views/spree/admin/page_sections/move_higher.turbo_stream.erb +7 -0
  418. data/app/views/spree/admin/page_sections/move_lower.turbo_stream.erb +7 -0
  419. data/app/views/spree/admin/page_sections/new.html.erb +28 -0
  420. data/app/views/spree/admin/page_sections/remove_attachment.turbo_stream.erb +4 -0
  421. data/app/views/spree/admin/page_sections/restore_design_settings_to_defaults.turbo_stream.erb +4 -0
  422. data/app/views/spree/admin/page_sections/show.html.erb +1 -0
  423. data/app/views/spree/admin/page_sections/update.turbo_stream.erb +10 -0
  424. data/app/views/spree/admin/pages/_filters.html.erb +7 -0
  425. data/app/views/spree/admin/pages/_form.html.erb +29 -0
  426. data/app/views/spree/admin/pages/_page.erb +8 -0
  427. data/app/views/spree/admin/pages/edit.html.erb +18 -0
  428. data/app/views/spree/admin/pages/index.html.erb +28 -0
  429. data/app/views/spree/admin/pages/new.html.erb +11 -0
  430. data/app/views/spree/admin/payment_methods/_available_payment_method.html.erb +21 -0
  431. data/app/views/spree/admin/payment_methods/_check.html.erb +0 -0
  432. data/app/views/spree/admin/payment_methods/_form.html.erb +71 -0
  433. data/app/views/spree/admin/payment_methods/_payment_method.html.erb +38 -0
  434. data/app/views/spree/admin/payment_methods/descriptions/_check.html.erb +0 -0
  435. data/app/views/spree/admin/payment_methods/descriptions/_gateway.html.erb +1 -0
  436. data/app/views/spree/admin/payment_methods/descriptions/_store_credit.html.erb +1 -0
  437. data/app/views/spree/admin/payment_methods/edit.html.erb +10 -0
  438. data/app/views/spree/admin/payment_methods/index.html.erb +38 -0
  439. data/app/views/spree/admin/payment_methods/new.html.erb +12 -0
  440. data/app/views/spree/admin/payment_methods/update.turbo_stream.erb +1 -0
  441. data/app/views/spree/admin/payments/_payment.html.erb +89 -0
  442. data/app/views/spree/admin/payments/new.html.erb +64 -0
  443. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +54 -0
  444. data/app/views/spree/admin/payments/source_forms/_previous_cards.html.erb +21 -0
  445. data/app/views/spree/admin/payments/source_forms/_spree_stripe.html.erb +7 -0
  446. data/app/views/spree/admin/payments/source_forms/_store_credit.html.erb +22 -0
  447. data/app/views/spree/admin/payments/source_views/_check.html.erb +0 -0
  448. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +22 -0
  449. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +31 -0
  450. data/app/views/spree/admin/post_categories/_form.html.erb +15 -0
  451. data/app/views/spree/admin/post_categories/_post_category.html.erb +6 -0
  452. data/app/views/spree/admin/post_categories/edit.html.erb +15 -0
  453. data/app/views/spree/admin/post_categories/index.html.erb +27 -0
  454. data/app/views/spree/admin/post_categories/new.html.erb +15 -0
  455. data/app/views/spree/admin/posts/_extra_actions.html.erb +0 -0
  456. data/app/views/spree/admin/posts/_filters.html.erb +40 -0
  457. data/app/views/spree/admin/posts/_form.html.erb +81 -0
  458. data/app/views/spree/admin/posts/_post.html.erb +32 -0
  459. data/app/views/spree/admin/posts/edit.html.erb +15 -0
  460. data/app/views/spree/admin/posts/index.html.erb +36 -0
  461. data/app/views/spree/admin/posts/new.html.erb +11 -0
  462. data/app/views/spree/admin/preferences/_password_field.html.erb +26 -0
  463. data/app/views/spree/admin/products/_bulk_operations.html.erb +122 -0
  464. data/app/views/spree/admin/products/_edit_page_title.html.erb +3 -0
  465. data/app/views/spree/admin/products/_empty_list.html.erb +1 -0
  466. data/app/views/spree/admin/products/_filters.html.erb +60 -0
  467. data/app/views/spree/admin/products/_form.html.erb +29 -0
  468. data/app/views/spree/admin/products/_import_button.html.erb +0 -0
  469. data/app/views/spree/admin/products/_index_header.html.erb +7 -0
  470. data/app/views/spree/admin/products/_list.html.erb +50 -0
  471. data/app/views/spree/admin/products/_product.html.erb +30 -0
  472. data/app/views/spree/admin/products/_product_status.html.erb +3 -0
  473. data/app/views/spree/admin/products/_search_result.html.erb +9 -0
  474. data/app/views/spree/admin/products/_search_results.html.erb +9 -0
  475. data/app/views/spree/admin/products/_table_filter_dropdown.html.erb +42 -0
  476. data/app/views/spree/admin/products/bulk_modal.html.erb +23 -0
  477. data/app/views/spree/admin/products/bulk_status_update.turbo_stream.erb +7 -0
  478. data/app/views/spree/admin/products/edit.html.erb +38 -0
  479. data/app/views/spree/admin/products/form/_base.html.erb +16 -0
  480. data/app/views/spree/admin/products/form/_categorization.html.erb +35 -0
  481. data/app/views/spree/admin/products/form/_extra_filters.html.erb +0 -0
  482. data/app/views/spree/admin/products/form/_extra_form.html.erb +0 -0
  483. data/app/views/spree/admin/products/form/_extra_form_sidebar.erb +0 -0
  484. data/app/views/spree/admin/products/form/_inventory.html.erb +63 -0
  485. data/app/views/spree/admin/products/form/_properties.html.erb +46 -0
  486. data/app/views/spree/admin/products/form/_shipping.html.erb +16 -0
  487. data/app/views/spree/admin/products/form/_status.html.erb +52 -0
  488. data/app/views/spree/admin/products/form/_stores.html.erb +27 -0
  489. data/app/views/spree/admin/products/form/_variants.html.erb +171 -0
  490. data/app/views/spree/admin/products/form/variants/_option_template.html.erb +59 -0
  491. data/app/views/spree/admin/products/form/variants/_variant_template.html.erb +44 -0
  492. data/app/views/spree/admin/products/index.html.erb +18 -0
  493. data/app/views/spree/admin/products/new.html.erb +9 -0
  494. data/app/views/spree/admin/profile/edit.html.erb +79 -0
  495. data/app/views/spree/admin/promotion_actions/_promotion_action.html.erb +45 -0
  496. data/app/views/spree/admin/promotion_actions/edit.html.erb +17 -0
  497. data/app/views/spree/admin/promotion_actions/forms/_create_adjustment.html.erb +1 -0
  498. data/app/views/spree/admin/promotion_actions/forms/_create_item_adjustments.html.erb +1 -0
  499. data/app/views/spree/admin/promotion_actions/forms/_create_line_items.html.erb +35 -0
  500. data/app/views/spree/admin/promotion_actions/forms/_create_line_items_row.html.erb +28 -0
  501. data/app/views/spree/admin/promotion_actions/forms/_free_shipping.html.erb +0 -0
  502. data/app/views/spree/admin/promotion_actions/new.html.erb +48 -0
  503. data/app/views/spree/admin/promotion_rules/_promotion_rule.html.erb +53 -0
  504. data/app/views/spree/admin/promotion_rules/edit.html.erb +17 -0
  505. data/app/views/spree/admin/promotion_rules/forms/_country.html.erb +7 -0
  506. data/app/views/spree/admin/promotion_rules/forms/_currency.html.erb +10 -0
  507. data/app/views/spree/admin/promotion_rules/forms/_first_order.html.erb +0 -0
  508. data/app/views/spree/admin/promotion_rules/forms/_item_total.html.erb +26 -0
  509. data/app/views/spree/admin/promotion_rules/forms/_one_use_per_user.html.erb +0 -0
  510. data/app/views/spree/admin/promotion_rules/forms/_option_value.html.erb +9 -0
  511. data/app/views/spree/admin/promotion_rules/forms/_product.html.erb +9 -0
  512. data/app/views/spree/admin/promotion_rules/forms/_taxon.html.erb +9 -0
  513. data/app/views/spree/admin/promotion_rules/forms/_user.html.erb +7 -0
  514. data/app/views/spree/admin/promotion_rules/forms/_user_logged_in.html.erb +0 -0
  515. data/app/views/spree/admin/promotion_rules/new.html.erb +48 -0
  516. data/app/views/spree/admin/promotions/_actions.html.erb +30 -0
  517. data/app/views/spree/admin/promotions/_form.html.erb +47 -0
  518. data/app/views/spree/admin/promotions/_header.html.erb +16 -0
  519. data/app/views/spree/admin/promotions/_promotion.html.erb +34 -0
  520. data/app/views/spree/admin/promotions/_rules.html.erb +44 -0
  521. data/app/views/spree/admin/promotions/_sidebar.html.erb +117 -0
  522. data/app/views/spree/admin/promotions/_status.html.erb +16 -0
  523. data/app/views/spree/admin/promotions/_table_filter_dropdown.html.erb +17 -0
  524. data/app/views/spree/admin/promotions/_usage_limit.html.erb +13 -0
  525. data/app/views/spree/admin/promotions/edit.html.erb +59 -0
  526. data/app/views/spree/admin/promotions/form/_kind.html.erb +57 -0
  527. data/app/views/spree/admin/promotions/form/_settings.html.erb +24 -0
  528. data/app/views/spree/admin/promotions/index.html.erb +62 -0
  529. data/app/views/spree/admin/promotions/new.html.erb +11 -0
  530. data/app/views/spree/admin/promotions/show.html.erb +12 -0
  531. data/app/views/spree/admin/properties/_form.html.erb +22 -0
  532. data/app/views/spree/admin/properties/_property.html.erb +25 -0
  533. data/app/views/spree/admin/properties/edit.html.erb +15 -0
  534. data/app/views/spree/admin/properties/index.html.erb +53 -0
  535. data/app/views/spree/admin/properties/new.html.erb +14 -0
  536. data/app/views/spree/admin/properties/update.turbo_stream.erb +1 -0
  537. data/app/views/spree/admin/refund_reasons/edit.html.erb +3 -0
  538. data/app/views/spree/admin/refund_reasons/index.html.erb +40 -0
  539. data/app/views/spree/admin/refund_reasons/new.html.erb +4 -0
  540. data/app/views/spree/admin/refunds/_form.html.erb +17 -0
  541. data/app/views/spree/admin/refunds/edit.html.erb +20 -0
  542. data/app/views/spree/admin/refunds/new.html.erb +29 -0
  543. data/app/views/spree/admin/reimbursement_types/_form.html.erb +30 -0
  544. data/app/views/spree/admin/reimbursement_types/edit.html.erb +15 -0
  545. data/app/views/spree/admin/reimbursement_types/index.html.erb +44 -0
  546. data/app/views/spree/admin/reimbursement_types/new.html.erb +16 -0
  547. data/app/views/spree/admin/reimbursements/edit.html.erb +130 -0
  548. data/app/views/spree/admin/reimbursements/show.html.erb +113 -0
  549. data/app/views/spree/admin/reports/_report.html.erb +22 -0
  550. data/app/views/spree/admin/reports/create.turbo_stream.erb +1 -0
  551. data/app/views/spree/admin/reports/index.html.erb +28 -0
  552. data/app/views/spree/admin/reports/new.html.erb +39 -0
  553. data/app/views/spree/admin/return_authorization_reasons/edit.html.erb +3 -0
  554. data/app/views/spree/admin/return_authorization_reasons/index.html.erb +45 -0
  555. data/app/views/spree/admin/return_authorization_reasons/new.html.erb +4 -0
  556. data/app/views/spree/admin/return_authorizations/_filters.html.erb +39 -0
  557. data/app/views/spree/admin/return_authorizations/_list.html.erb +30 -0
  558. data/app/views/spree/admin/return_authorizations/_return_authorization.html.erb +40 -0
  559. data/app/views/spree/admin/return_authorizations/index.html.erb +14 -0
  560. data/app/views/spree/admin/roles/_form.html.erb +6 -0
  561. data/app/views/spree/admin/roles/edit.html.erb +13 -0
  562. data/app/views/spree/admin/roles/index.html.erb +32 -0
  563. data/app/views/spree/admin/roles/new.html.erb +15 -0
  564. data/app/views/spree/admin/shared/_address.html.erb +42 -0
  565. data/app/views/spree/admin/shared/_alerts.html.erb +22 -0
  566. data/app/views/spree/admin/shared/_analytics_loader_skeleton.html.erb +76 -0
  567. data/app/views/spree/admin/shared/_audit_nav.html.erb +3 -0
  568. data/app/views/spree/admin/shared/_bulk_modal.html.erb +21 -0
  569. data/app/views/spree/admin/shared/_calculator_fields.html.erb +34 -0
  570. data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +28 -0
  571. data/app/views/spree/admin/shared/_close_bulk_modal.turbo_stream.erb +2 -0
  572. data/app/views/spree/admin/shared/_content_header.html.erb +81 -0
  573. data/app/views/spree/admin/shared/_custom_head.html.erb +0 -0
  574. data/app/views/spree/admin/shared/_developers_nav.html.erb +7 -0
  575. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +6 -0
  576. data/app/views/spree/admin/shared/_error_messages.html.erb +22 -0
  577. data/app/views/spree/admin/shared/_filter_badge_template.erb +3 -0
  578. data/app/views/spree/admin/shared/_filters_button.html.erb +8 -0
  579. data/app/views/spree/admin/shared/_filters_search_bar.html.erb +15 -0
  580. data/app/views/spree/admin/shared/_footer.html.erb +2 -0
  581. data/app/views/spree/admin/shared/_growth_rate_badge.html.erb +17 -0
  582. data/app/views/spree/admin/shared/_head.html.erb +52 -0
  583. data/app/views/spree/admin/shared/_header.html.erb +28 -0
  584. data/app/views/spree/admin/shared/_index_table_options.html.erb +22 -0
  585. data/app/views/spree/admin/shared/_map.html.erb +9 -0
  586. data/app/views/spree/admin/shared/_modal.html.erb +37 -0
  587. data/app/views/spree/admin/shared/_multi_product_picker.html.erb +26 -0
  588. data/app/views/spree/admin/shared/_new_resource_links.html.erb +3 -0
  589. data/app/views/spree/admin/shared/_no_image.html.erb +6 -0
  590. data/app/views/spree/admin/shared/_no_resource_found.html.erb +6 -0
  591. data/app/views/spree/admin/shared/_offcanvas_nav.html.erb +25 -0
  592. data/app/views/spree/admin/shared/_page_section_image.html.erb +1 -0
  593. data/app/views/spree/admin/shared/_page_section_logo.html.erb +1 -0
  594. data/app/views/spree/admin/shared/_posts_tabs.html.erb +8 -0
  595. data/app/views/spree/admin/shared/_preferences.html.erb +9 -0
  596. data/app/views/spree/admin/shared/_product_image.html.erb +21 -0
  597. data/app/views/spree/admin/shared/_refunds.html.erb +30 -0
  598. data/app/views/spree/admin/shared/_returns_and_refunds_nav.html.erb +9 -0
  599. data/app/views/spree/admin/shared/_seo.html.erb +39 -0
  600. data/app/views/spree/admin/shared/_shipping_nav.html.erb +4 -0
  601. data/app/views/spree/admin/shared/_sidebar.html.erb +15 -0
  602. data/app/views/spree/admin/shared/_spinner.html.erb +7 -0
  603. data/app/views/spree/admin/shared/_stock_nav.html.erb +4 -0
  604. data/app/views/spree/admin/shared/_tax_nav.html.erb +4 -0
  605. data/app/views/spree/admin/shared/_user.html.erb +24 -0
  606. data/app/views/spree/admin/shared/_user_dropdown.html.erb +41 -0
  607. data/app/views/spree/admin/shared/named_types/_edit.html.erb +15 -0
  608. data/app/views/spree/admin/shared/named_types/_form.html.erb +15 -0
  609. data/app/views/spree/admin/shared/named_types/_new.html.erb +15 -0
  610. data/app/views/spree/admin/shared/sidebar/_custom_nav.html.erb +0 -0
  611. data/app/views/spree/admin/shared/sidebar/_enterprise_edition_notice.html.erb +10 -0
  612. data/app/views/spree/admin/shared/sidebar/_integrations_nav.html.erb +7 -0
  613. data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +35 -0
  614. data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +41 -0
  615. data/app/views/spree/admin/shared/sidebar/_returns_nav.html.erb +20 -0
  616. data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +67 -0
  617. data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +176 -0
  618. data/app/views/spree/admin/shared/sidebar/_storefront_nav.html.erb +29 -0
  619. data/app/views/spree/admin/shared/sidebar/_vendors_nav.html.erb +8 -0
  620. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +66 -0
  621. data/app/views/spree/admin/shipments/edit.html.erb +28 -0
  622. data/app/views/spree/admin/shipments/split.html.erb +16 -0
  623. data/app/views/spree/admin/shipping_categories/_form.html.erb +9 -0
  624. data/app/views/spree/admin/shipping_categories/edit.html.erb +11 -0
  625. data/app/views/spree/admin/shipping_categories/index.html.erb +36 -0
  626. data/app/views/spree/admin/shipping_categories/new.html.erb +13 -0
  627. data/app/views/spree/admin/shipping_methods/_actions.html.erb +5 -0
  628. data/app/views/spree/admin/shipping_methods/_form.html.erb +141 -0
  629. data/app/views/spree/admin/shipping_methods/_shipping_method.html.erb +33 -0
  630. data/app/views/spree/admin/shipping_methods/edit.html.erb +12 -0
  631. data/app/views/spree/admin/shipping_methods/index.html.erb +34 -0
  632. data/app/views/spree/admin/shipping_methods/new.html.erb +13 -0
  633. data/app/views/spree/admin/shipping_methods/update.turbo_stream.erb +1 -0
  634. data/app/views/spree/admin/stock_items/_filters.html.erb +39 -0
  635. data/app/views/spree/admin/stock_items/_stock_item.html.erb +43 -0
  636. data/app/views/spree/admin/stock_items/index.html.erb +38 -0
  637. data/app/views/spree/admin/stock_items/update.turbo_stream.erb +1 -0
  638. data/app/views/spree/admin/stock_locations/_form.html.erb +56 -0
  639. data/app/views/spree/admin/stock_locations/_stock_location.html.erb +30 -0
  640. data/app/views/spree/admin/stock_locations/edit.html.erb +9 -0
  641. data/app/views/spree/admin/stock_locations/index.html.erb +26 -0
  642. data/app/views/spree/admin/stock_locations/new.html.erb +11 -0
  643. data/app/views/spree/admin/stock_transfers/_destination_movement_form.html.erb +36 -0
  644. data/app/views/spree/admin/stock_transfers/_filters.html.erb +46 -0
  645. data/app/views/spree/admin/stock_transfers/_new_variant_modal.html.erb +30 -0
  646. data/app/views/spree/admin/stock_transfers/_new_variant_template.html.erb +8 -0
  647. data/app/views/spree/admin/stock_transfers/_source_movement_form.html.erb +8 -0
  648. data/app/views/spree/admin/stock_transfers/_stock_movement.html.erb +5 -0
  649. data/app/views/spree/admin/stock_transfers/_stock_transfer.html.erb +11 -0
  650. data/app/views/spree/admin/stock_transfers/index.html.erb +38 -0
  651. data/app/views/spree/admin/stock_transfers/new.html.erb +85 -0
  652. data/app/views/spree/admin/stock_transfers/show.html.erb +58 -0
  653. data/app/views/spree/admin/store_credit_categories/_form.html.erb +5 -0
  654. data/app/views/spree/admin/store_credit_categories/edit.html.erb +13 -0
  655. data/app/views/spree/admin/store_credit_categories/index.html.erb +32 -0
  656. data/app/views/spree/admin/store_credit_categories/new.html.erb +15 -0
  657. data/app/views/spree/admin/store_credits/_form.html.erb +24 -0
  658. data/app/views/spree/admin/store_credits/_list.html.erb +41 -0
  659. data/app/views/spree/admin/store_credits/edit.html.erb +36 -0
  660. data/app/views/spree/admin/store_credits/index.html.erb +20 -0
  661. data/app/views/spree/admin/store_credits/new.html.erb +26 -0
  662. data/app/views/spree/admin/storefront/edit.html.erb +146 -0
  663. data/app/views/spree/admin/stores/create.turbo_stream.erb +5 -0
  664. data/app/views/spree/admin/stores/edit.html.erb +13 -0
  665. data/app/views/spree/admin/stores/edit_emails.html.erb +11 -0
  666. data/app/views/spree/admin/stores/form/_basic.html.erb +160 -0
  667. data/app/views/spree/admin/stores/form/_buttons.html.erb +3 -0
  668. data/app/views/spree/admin/stores/form/_checkout.html.erb +50 -0
  669. data/app/views/spree/admin/stores/form/_custom.html.erb +0 -0
  670. data/app/views/spree/admin/stores/form/_emails.html.erb +59 -0
  671. data/app/views/spree/admin/stores/form/_policies.html.erb +85 -0
  672. data/app/views/spree/admin/stores/new.html.erb +135 -0
  673. data/app/views/spree/admin/stores/new.turbo_stream.erb +1 -0
  674. data/app/views/spree/admin/stores/update.turbo_stream.erb +11 -0
  675. data/app/views/spree/admin/tax_categories/_form.html.erb +25 -0
  676. data/app/views/spree/admin/tax_categories/_tax_category.html.erb +13 -0
  677. data/app/views/spree/admin/tax_categories/edit.html.erb +11 -0
  678. data/app/views/spree/admin/tax_categories/index.html.erb +30 -0
  679. data/app/views/spree/admin/tax_categories/new.html.erb +11 -0
  680. data/app/views/spree/admin/tax_rates/_form.html.erb +48 -0
  681. data/app/views/spree/admin/tax_rates/_tax_rate.html.erb +15 -0
  682. data/app/views/spree/admin/tax_rates/edit.html.erb +11 -0
  683. data/app/views/spree/admin/tax_rates/index.html.erb +32 -0
  684. data/app/views/spree/admin/tax_rates/new.html.erb +14 -0
  685. data/app/views/spree/admin/taxonomies/_taxonomy.html.erb +16 -0
  686. data/app/views/spree/admin/taxonomies/edit.html.erb +28 -0
  687. data/app/views/spree/admin/taxonomies/index.html.erb +40 -0
  688. data/app/views/spree/admin/taxonomies/new.html.erb +23 -0
  689. data/app/views/spree/admin/taxonomies/show.html.erb +28 -0
  690. data/app/views/spree/admin/taxons/_form.html.erb +148 -0
  691. data/app/views/spree/admin/taxons/_rule_form.html.erb +24 -0
  692. data/app/views/spree/admin/taxons/_rules_form.html.erb +34 -0
  693. data/app/views/spree/admin/taxons/destroy.turbo_stream.erb +1 -0
  694. data/app/views/spree/admin/taxons/edit.html.erb +19 -0
  695. data/app/views/spree/admin/taxons/new.html.erb +12 -0
  696. data/app/views/spree/admin/taxons/rule_forms/_available_on.html.erb +4 -0
  697. data/app/views/spree/admin/taxons/rule_forms/_sale.html.erb +4 -0
  698. data/app/views/spree/admin/taxons/rule_forms/_tag.html.erb +1 -0
  699. data/app/views/spree/admin/themes/_theme.html.erb +53 -0
  700. data/app/views/spree/admin/themes/_theme_preview_image.html.erb +24 -0
  701. data/app/views/spree/admin/themes/edit.html.erb +14 -0
  702. data/app/views/spree/admin/themes/index.html.erb +79 -0
  703. data/app/views/spree/admin/themes/update.turbo_stream.erb +1 -0
  704. data/app/views/spree/admin/translations/_translations_unavailable.html.erb +10 -0
  705. data/app/views/spree/admin/translations/edit.html.erb +47 -0
  706. data/app/views/spree/admin/translations/products/_form.html.erb +23 -0
  707. data/app/views/spree/admin/translations/stores/_form.html.erb +23 -0
  708. data/app/views/spree/admin/translations/taxonomies/_form.html.erb +20 -0
  709. data/app/views/spree/admin/translations/taxons/_form.html.erb +37 -0
  710. data/app/views/spree/admin/users/_billing.html.erb +78 -0
  711. data/app/views/spree/admin/users/_details.html.erb +52 -0
  712. data/app/views/spree/admin/users/_extra_actions.html.erb +0 -0
  713. data/app/views/spree/admin/users/_filters.html.erb +85 -0
  714. data/app/views/spree/admin/users/_form.html.erb +36 -0
  715. data/app/views/spree/admin/users/_last_order.html.erb +33 -0
  716. data/app/views/spree/admin/users/_last_order_line_item.html.erb +19 -0
  717. data/app/views/spree/admin/users/_lifetime_stats.html.erb +65 -0
  718. data/app/views/spree/admin/users/_shipping.html.erb +33 -0
  719. data/app/views/spree/admin/users/_tabs.html.erb +74 -0
  720. data/app/views/spree/admin/users/_user.html.erb +20 -0
  721. data/app/views/spree/admin/users/bulk_modal.html.erb +21 -0
  722. data/app/views/spree/admin/users/edit.html.erb +17 -0
  723. data/app/views/spree/admin/users/index.csv.erb +43 -0
  724. data/app/views/spree/admin/users/index.html.erb +102 -0
  725. data/app/views/spree/admin/users/new.html.erb +14 -0
  726. data/app/views/spree/admin/users/show.html.erb +38 -0
  727. data/app/views/spree/admin/variants/_search_result.html.erb +28 -0
  728. data/app/views/spree/admin/variants/_search_results.html.erb +9 -0
  729. data/app/views/spree/admin/variants/_variant.html.erb +13 -0
  730. data/app/views/spree/admin/variants/edit.html.erb +20 -0
  731. data/app/views/spree/admin/variants/form/_basic.html.erb +31 -0
  732. data/app/views/spree/admin/variants/form/_dimensions.html.erb +33 -0
  733. data/app/views/spree/admin/variants/form/_inventory.html.erb +45 -0
  734. data/app/views/spree/admin/variants/form/_media.html.erb +32 -0
  735. data/app/views/spree/admin/variants/form/_media_asset.html.erb +21 -0
  736. data/app/views/spree/admin/variants/form/_pricing.html.erb +48 -0
  737. data/app/views/spree/admin/webhook_events/_webhook_event.html.erb +17 -0
  738. data/app/views/spree/admin/webhooks_subscribers/_form.html.erb +66 -0
  739. data/app/views/spree/admin/webhooks_subscribers/_webhooks_subscriber.html.erb +16 -0
  740. data/app/views/spree/admin/webhooks_subscribers/edit.html.erb +9 -0
  741. data/app/views/spree/admin/webhooks_subscribers/index.html.erb +26 -0
  742. data/app/views/spree/admin/webhooks_subscribers/new.html.erb +11 -0
  743. data/app/views/spree/admin/webhooks_subscribers/show.html.erb +54 -0
  744. data/app/views/spree/admin/zones/_country_members.html.erb +16 -0
  745. data/app/views/spree/admin/zones/_form.html.erb +52 -0
  746. data/app/views/spree/admin/zones/_state_members.html.erb +21 -0
  747. data/app/views/spree/admin/zones/edit.html.erb +12 -0
  748. data/app/views/spree/admin/zones/index.html.erb +45 -0
  749. data/app/views/spree/admin/zones/new.html.erb +11 -0
  750. data/config/i18n-tasks.yml +190 -0
  751. data/config/importmap.rb +149 -0
  752. data/config/initializers/action_text.rb +8 -0
  753. data/config/initializers/assets.rb +1 -0
  754. data/config/initializers/chartkick.rb +5 -0
  755. data/config/initializers/dartsass.rb +3 -0
  756. data/config/initializers/form_builder.rb +10 -0
  757. data/config/initializers/ransack.rb +19 -0
  758. data/config/locales/en.yml +304 -0
  759. data/config/routes.rb +240 -0
  760. data/lib/generators/spree/admin/install/install_generator.rb +42 -0
  761. data/lib/generators/spree/admin/install/templates/dev +16 -0
  762. data/lib/spree/admin/action_callbacks.rb +27 -0
  763. data/lib/spree/admin/callbacks.rb +51 -0
  764. data/lib/spree/admin/engine.rb +51 -0
  765. data/lib/spree/admin/runtime_configuration.rb +12 -0
  766. data/lib/spree/admin/testing_support/capybara_utils.rb +45 -0
  767. data/lib/spree/admin.rb +23 -0
  768. data/lib/spree_admin.rb +18 -0
  769. data/vendor/javascript/@easepick--base-plugin.js +4 -0
  770. data/vendor/javascript/@easepick--core.js +4 -0
  771. data/vendor/javascript/@easepick--datetime.js +4 -0
  772. data/vendor/javascript/@easepick--preset-plugin.js +4 -0
  773. data/vendor/javascript/@easepick--range-plugin.js +4 -0
  774. data/vendor/javascript/@orchidjs--sifter.js +17 -0
  775. data/vendor/javascript/@orchidjs--unicode-variants.js +11 -0
  776. data/vendor/javascript/@rails--actiontext@7.2.201.js +4 -0
  777. data/vendor/javascript/@simonwep--pickr.js +4 -0
  778. data/vendor/javascript/@stimulus-components--rails-nested-form.js +4 -0
  779. data/vendor/javascript/bootstrap--dist--js--bootstrap.bundle.min.js.js +8 -0
  780. data/vendor/javascript/dompurify.js +139 -0
  781. data/vendor/javascript/hotkeys-js.js +4 -0
  782. data/vendor/javascript/jquery.min.js +2 -0
  783. data/vendor/javascript/local-time.js +4 -0
  784. data/vendor/javascript/sortablejs.js +136 -0
  785. data/vendor/javascript/stimulus-checkbox-select-all.js +4 -0
  786. data/vendor/javascript/stimulus-clipboard.js +4 -0
  787. data/vendor/javascript/stimulus-notification.js +4 -0
  788. data/vendor/javascript/stimulus-password-visibility.js +4 -0
  789. data/vendor/javascript/stimulus-reveal-controller.js +4 -0
  790. data/vendor/javascript/stimulus-sortable.js +4 -0
  791. data/vendor/javascript/stimulus-textarea-autogrow.js +4 -0
  792. data/vendor/javascript/stimulus-use.js +4 -0
  793. data/vendor/javascript/tom-select--dist--esm--tom-select.complete.js.js +32 -0
  794. data/vendor/javascript/trix@2.1.12.js +5 -0
  795. metadata +1084 -0
@@ -0,0 +1,51 @@
1
+ require_relative 'runtime_configuration'
2
+
3
+ module Spree
4
+ module Admin
5
+ class Engine < ::Rails::Engine
6
+
7
+ initializer 'spree.admin.configuration', before: :load_config_initializers do |_app|
8
+ Spree::Admin::RuntimeConfig = Spree::Admin::RuntimeConfiguration.new
9
+ end
10
+
11
+ initializer 'spree.admin.dartsass_fix' do |app|
12
+ # we're not using any sass compressors, as we're using dartsass-rails
13
+ # some gems however like payment_icons still have sassc-rails as a dependency
14
+ # which sets the css_compressor to :sass and breaks the assets pipeline
15
+ app.config.assets.css_compressor = nil if app.config.assets.css_compressor == :sass
16
+ end
17
+
18
+ # Rails 7.1 introduced a new feature that raises an error if a callback action is missing.
19
+ # We need to disable it as we use a lot of concerns that add callback actions.
20
+ initializer 'spree.admin.disable_raise_on_missing_callback_actions' do |app|
21
+ app.config.action_controller.raise_on_missing_callback_actions = false
22
+ end
23
+
24
+ initializer 'spree.admin.assets' do |app|
25
+ app.config.assets.paths << root.join('app/javascript')
26
+ app.config.assets.paths << root.join('vendor/javascript')
27
+ app.config.assets.precompile += %w[ spree_admin_manifest bootstrap.bundle.min.js jquery3.min.js ]
28
+ end
29
+
30
+ initializer 'spree.admin.importmap', after: 'importmap' do |app|
31
+ app.config.spree_admin = ActiveSupport::OrderedOptions.new
32
+ app.config.spree_admin.cache_sweepers = []
33
+
34
+ app.config.spree_admin.importmap = Importmap::Map.new
35
+ app.config.spree_admin.importmap.draw(root.join('config/importmap.rb'))
36
+ end
37
+
38
+ initializer 'spree.admin.importmap.cache_sweeper', after: 'spree.admin.importmap' do |app|
39
+ if app.config.importmap.sweep_cache && app.config.reloading_enabled?
40
+ app.config.spree_admin.cache_sweepers << root.join('app/javascript')
41
+
42
+ app.config.spree_admin.importmap.cache_sweeper(watches: app.config.spree_admin.cache_sweepers)
43
+
44
+ ActiveSupport.on_load(:action_controller_base) do
45
+ before_action { app.config.spree_admin.importmap.cache_sweeper.execute_if_updated }
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,12 @@
1
+ module Spree
2
+ module Admin
3
+ class RuntimeConfiguration < ::Spree::Preferences::RuntimeConfiguration
4
+ preference :admin_path, :string, default: '/admin'
5
+ preference :admin_updater_enabled, :boolean, default: true
6
+
7
+ preference :admin_records_per_page, :integer, default: Kaminari.config.default_per_page
8
+ preference :admin_products_per_page, :integer, default: Kaminari.config.default_per_page
9
+ preference :admin_orders_per_page, :integer, default: Kaminari.config.default_per_page
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,45 @@
1
+ module Spree
2
+ module Admin
3
+ module TestingSupport
4
+ module CapybaraUtils
5
+ def click_icon(type)
6
+ first(".ti-#{type}").click
7
+ end
8
+
9
+ def within_row(num, &block)
10
+ if RSpec.current_example.metadata[:js]
11
+ within("table.table tbody tr:nth-child(#{num})", match: :first, &block)
12
+ else
13
+ within(all('table.table tbody tr')[num - 1], &block)
14
+ end
15
+ end
16
+
17
+ # delay in seconds
18
+ def wait_for_ajax(delay = Capybara.default_max_wait_time)
19
+ Timeout.timeout(delay) do
20
+ active = page.evaluate_script('typeof jQuery !== "undefined" && jQuery.active')
21
+ active = page.evaluate_script('typeof jQuery !== "undefined" && jQuery.active') until active.nil? || active.zero?
22
+ end
23
+ end
24
+
25
+ def wait_for_turbo(timeout = nil)
26
+ if has_css?('.turbo-progress-bar', visible: true, wait: 1.seconds)
27
+ has_no_css?('.turbo-progress-bar', wait: timeout.presence || 5.seconds)
28
+ end
29
+ end
30
+
31
+ def wait_for(options = {}, &block)
32
+ default_options = { error: nil, seconds: 5 }.merge(options)
33
+
34
+ Selenium::WebDriver::Wait.new(timeout: default_options[:seconds]).until(&block)
35
+ rescue Selenium::WebDriver::Error::TimeoutError
36
+ default_options[:error].nil? ? false : raise(default_options[:error])
37
+ end
38
+
39
+ def fill_in_trix_editor(id, with:)
40
+ page.find(id, visible: :all).click.set(with)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,23 @@
1
+ require 'spree_core'
2
+ require 'spree_api'
3
+
4
+ require 'sprockets/railtie'
5
+
6
+ require 'active_link_to'
7
+ require 'chartkick'
8
+ require 'currency_select'
9
+ require 'groupdate'
10
+ require 'hightop'
11
+ require 'importmap-rails'
12
+ require 'mapkick-rb'
13
+ require 'bootstrap'
14
+ require 'turbo-rails'
15
+ require 'stimulus-rails'
16
+ require 'local_time'
17
+ require 'payment_icons'
18
+ require 'dartsass-rails'
19
+ require 'tinymce-rails'
20
+
21
+ require 'spree/admin/action_callbacks'
22
+ require 'spree/admin/callbacks'
23
+ require 'spree/admin/engine'
@@ -0,0 +1,18 @@
1
+ require 'spree/admin'
2
+
3
+ module Spree
4
+ def self.admin_path
5
+ Spree::Admin::RuntimeConfig[:admin_path]
6
+ end
7
+
8
+ # Used to configure admin_path for Spree
9
+ #
10
+ # Example:
11
+ #
12
+ # write the following line in `config/initializers/spree.rb`
13
+ # Spree.admin_path = '/custom-path'
14
+
15
+ def self.admin_path=(path)
16
+ Spree::Admin::RuntimeConfig[:admin_path] = path
17
+ end
18
+ end
@@ -0,0 +1,4 @@
1
+ // @easepick/base-plugin@1.2.1 downloaded from https://ga.jspm.io/npm:@easepick/base-plugin@1.2.1/dist/index.esm.js
2
+
3
+ class e{picker;options;priority=0;dependencies=[];attach(t){const s=this.getName(),i={...this.options};this.options={...this.options,...t.options[s]||{}};for(const n of Object.keys(i))if(null!==i[n]&&"object"==typeof i[n]&&Object.keys(i[n]).length&&s in t.options&&n in t.options[s]){const o={...t.options[s][n]};null!==o&&"object"==typeof o&&Object.keys(o).length&&Object.keys(o).every((t=>Object.keys(i[n]).includes(t)))&&(this.options[n]={...i[n],...o})}if(this.picker=t,this.dependenciesNotFound()){const t=this.dependencies.filter((t=>!this.pluginsAsStringArray().includes(t)));return void console.warn(`${this.getName()}: required dependencies (${t.join(", ")}).`)}const n=this.camelCaseToKebab(this.getName());this.picker.ui.container.classList.add(n),this.onAttach()}detach(){const t=this.camelCaseToKebab(this.getName());this.picker.ui.container.classList.remove(t),"function"==typeof this.onDetach&&this.onDetach()}dependenciesNotFound(){return this.dependencies.length&&!this.dependencies.every((t=>this.pluginsAsStringArray().includes(t)))}pluginsAsStringArray(){return this.picker.options.plugins.map((t=>"function"==typeof t?(new t).getName():t))}camelCaseToKebab(t){return t.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}}export{e as BasePlugin};
4
+
@@ -0,0 +1,4 @@
1
+ // @easepick/core@1.2.1 downloaded from https://ga.jspm.io/npm:@easepick/core@1.2.1/dist/index.esm.js
2
+
3
+ import{DateTime as e}from"@easepick/datetime";class t{picker;constructor(e){this.picker=e}render(s,a){s||(s=new e),s.setDate(1),s.setHours(0,0,0,0),"function"==typeof this[`get${a}View`]&&this[`get${a}View`](s)}getContainerView(e){this.picker.ui.container.innerHTML="",this.picker.options.header&&this.picker.trigger("render",{date:e.clone(),view:"Header"}),this.picker.trigger("render",{date:e.clone(),view:"Main"}),this.picker.options.autoApply||this.picker.trigger("render",{date:e.clone(),view:"Footer"})}getHeaderView(e){const s=document.createElement("header");this.picker.options.header instanceof HTMLElement&&s.appendChild(this.picker.options.header),"string"==typeof this.picker.options.header&&(s.innerHTML=this.picker.options.header),this.picker.ui.container.appendChild(s),this.picker.trigger("view",{target:s,date:e.clone(),view:"Header"})}getMainView(e){const s=document.createElement("main");this.picker.ui.container.appendChild(s);const a=document.createElement("div");a.className=`calendars grid-${this.picker.options.grid}`;for(let s=0;s<this.picker.options.calendars;s++){const o=document.createElement("div");o.className="calendar",a.appendChild(o);const r=this.getCalendarHeaderView(e.clone());o.appendChild(r),this.picker.trigger("view",{date:e.clone(),view:"CalendarHeader",index:s,target:r});const c=this.getCalendarDayNamesView();o.appendChild(c),this.picker.trigger("view",{date:e.clone(),view:"CalendarDayNames",index:s,target:c});const l=this.getCalendarDaysView(e.clone());o.appendChild(l),this.picker.trigger("view",{date:e.clone(),view:"CalendarDays",index:s,target:l});const d=this.getCalendarFooterView(this.picker.options.lang,e.clone());o.appendChild(d),this.picker.trigger("view",{date:e.clone(),view:"CalendarFooter",index:s,target:d}),this.picker.trigger("view",{date:e.clone(),view:"CalendarItem",index:s,target:o}),e.add(1,"month")}s.appendChild(a),this.picker.trigger("view",{date:e.clone(),view:"Calendars",target:a}),this.picker.trigger("view",{date:e.clone(),view:"Main",target:s})}getFooterView(e){const s=document.createElement("footer"),a=document.createElement("div");a.className="footer-buttons";const o=document.createElement("button");o.className="cancel-button unit",o.innerHTML=this.picker.options.locale.cancel,a.appendChild(o);const r=document.createElement("button");r.className="apply-button unit",r.innerHTML=this.picker.options.locale.apply,r.disabled=!0,a.appendChild(r),s.appendChild(a),this.picker.ui.container.appendChild(s),this.picker.trigger("view",{date:e,target:s,view:"Footer"})}getCalendarHeaderView(e){const s=document.createElement("div");s.className="header";const a=document.createElement("div");a.className="month-name",a.innerHTML=`<span>${e.toLocaleString(this.picker.options.lang,{month:"long"})}</span> ${e.format("YYYY")}`,s.appendChild(a);const o=document.createElement("button");o.className="previous-button unit",o.innerHTML=this.picker.options.locale.previousMonth,s.appendChild(o);const r=document.createElement("button");return r.className="next-button unit",r.innerHTML=this.picker.options.locale.nextMonth,s.appendChild(r),s}getCalendarDayNamesView(){const e=document.createElement("div");e.className="daynames-row";for(let s=1;s<=7;s++){const a=3+this.picker.options.firstDay+s,o=document.createElement("div");o.className="dayname",o.innerHTML=new Date(1970,0,a,12,0,0,0).toLocaleString(this.picker.options.lang,{weekday:"short"}),o.title=new Date(1970,0,a,12,0,0,0).toLocaleString(this.picker.options.lang,{weekday:"long"}),e.appendChild(o),this.picker.trigger("view",{dayIdx:a,view:"CalendarDayName",target:o})}return e}getCalendarDaysView(e){const s=document.createElement("div");s.className="days-grid";const a=this.calcOffsetDays(e,this.picker.options.firstDay),o=32-new Date(e.getFullYear(),e.getMonth(),32).getDate();for(let e=0;e<a;e++){const e=document.createElement("div");e.className="offset",s.appendChild(e)}for(let a=1;a<=o;a++){e.setDate(a);const o=this.getCalendarDayView(e);s.appendChild(o),this.picker.trigger("view",{date:e,view:"CalendarDay",target:o})}return s}getCalendarDayView(s){const a=this.picker.options.date?new e(this.picker.options.date):null,o=new e,r=document.createElement("div");return r.className="day unit",r.innerHTML=s.format("D"),r.dataset.time=String(s.getTime()),s.isSame(o,"day")&&r.classList.add("today"),[0,6].includes(s.getDay())&&r.classList.add("weekend"),this.picker.datePicked.length?this.picker.datePicked[0].isSame(s,"day")&&r.classList.add("selected"):a&&s.isSame(a,"day")&&r.classList.add("selected"),this.picker.trigger("view",{date:s,view:"CalendarDay",target:r}),r}getCalendarFooterView(e,s){const a=document.createElement("div");return a.className="footer",a}calcOffsetDays(e,s){let a=e.getDay()-s;return a<0&&(a+=7),a}}class i{picker;instances={};constructor(e){this.picker=e}initialize(){const e=[];this.picker.options.plugins.forEach((s=>{"function"==typeof s?e.push(new s):"string"==typeof s&&"undefined"!=typeof easepick&&Object.prototype.hasOwnProperty.call(easepick,s)?e.push(new easepick[s]):console.warn(`easepick: ${s} not found.`)})),e.sort(((e,s)=>e.priority>s.priority?-1:e.priority<s.priority||e.dependencies.length>s.dependencies.length?1:e.dependencies.length<s.dependencies.length?-1:0)),e.forEach((e=>{e.attach(this.picker),this.instances[e.getName()]=e}))}getInstance(e){return this.instances[e]}addInstance(e){if(Object.prototype.hasOwnProperty.call(this.instances,e))console.warn(`easepick: ${e} already added.`);else{if("undefined"!=typeof easepick&&Object.prototype.hasOwnProperty.call(easepick,e)){const s=new easepick[e];return s.attach(this.picker),this.instances[s.getName()]=s,s}if("undefined"!==this.getPluginFn(e)){const s=new(this.getPluginFn(e));return s.attach(this.picker),this.instances[s.getName()]=s,s}console.warn(`easepick: ${e} not found.`)}return null}removeInstance(e){return e in this.instances&&this.instances[e].detach(),delete this.instances[e]}reloadInstance(e){return this.removeInstance(e),this.addInstance(e)}getPluginFn(e){return[...this.picker.options.plugins].filter((s=>"function"==typeof s&&(new s).getName()===e)).shift()}}class n{Calendar=new t(this);PluginManager=new i(this);calendars=[];datePicked=[];cssLoaded=0;binds={hidePicker:this.hidePicker.bind(this),show:this.show.bind(this)};options={doc:document,css:[],element:null,firstDay:1,grid:1,calendars:1,lang:"en-US",date:null,format:"YYYY-MM-DD",readonly:!0,autoApply:!0,header:!1,inline:!1,scrollToDate:!0,locale:{nextMonth:'<svg width="11" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.748 16L0 13.333 5.333 8 0 2.667 2.748 0l7.919 8z" fill-rule="nonzero"/></svg>',previousMonth:'<svg width="11" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.919 0l2.748 2.667L5.333 8l5.334 5.333L7.919 16 0 8z" fill-rule="nonzero"/></svg>',cancel:"Cancel",apply:"Apply"},documentClick:this.binds.hidePicker,plugins:[]};ui={container:null,shadowRoot:null,wrapper:null};version="1.2.1";constructor(e){const s={...this.options.locale,...e.locale};this.options={...this.options,...e},this.options.locale=s,this.handleOptions(),this.ui.wrapper=document.createElement("span"),this.ui.wrapper.style.display="none",this.ui.wrapper.style.position="absolute",this.ui.wrapper.style.pointerEvents="none",this.ui.wrapper.className="easepick-wrapper",this.ui.wrapper.attachShadow({mode:"open"}),this.ui.shadowRoot=this.ui.wrapper.shadowRoot,this.ui.container=document.createElement("div"),this.ui.container.className="container",this.options.zIndex&&(this.ui.container.style.zIndex=String(this.options.zIndex)),this.options.inline&&(this.ui.wrapper.style.position="relative",this.ui.container.classList.add("inline")),this.ui.shadowRoot.appendChild(this.ui.container),this.options.element.after(this.ui.wrapper),this.handleCSS(),this.options.element.addEventListener("click",this.binds.show),this.on("view",this.onView.bind(this)),this.on("render",this.onRender.bind(this)),this.PluginManager.initialize(),this.parseValues(),"function"==typeof this.options.setup&&this.options.setup(this),this.on("click",this.onClick.bind(this));const a=this.options.scrollToDate?this.getDate():null;this.renderAll(a)}on(e,s,a={}){this.ui.container.addEventListener(e,s,a)}off(e,s,a={}){this.ui.container.removeEventListener(e,s,a)}trigger(e,s={}){return this.ui.container.dispatchEvent(new CustomEvent(e,{detail:s}))}destroy(){this.options.element.removeEventListener("click",this.binds.show),"function"==typeof this.options.documentClick&&document.removeEventListener("click",this.options.documentClick,!0),Object.keys(this.PluginManager.instances).forEach((e=>{this.PluginManager.removeInstance(e)})),this.ui.wrapper.remove()}onRender(e){const{view:s,date:a}=e.detail;this.Calendar.render(a,s)}onView(e){const{view:s,target:a}=e.detail;"Footer"===s&&this.datePicked.length&&(a.querySelector(".apply-button").disabled=!1)}onClickHeaderButton(e){this.isCalendarHeaderButton(e)&&(e.classList.contains("next-button")?this.calendars[0].add(1,"month"):this.calendars[0].subtract(1,"month"),this.renderAll(this.calendars[0]))}onClickCalendarDay(s){if(this.isCalendarDay(s)){const a=new e(s.dataset.time);this.options.autoApply?(this.setDate(a),this.trigger("select",{date:this.getDate()}),this.hide()):(this.datePicked[0]=a,this.trigger("preselect",{date:this.getDate()}),this.renderAll())}}onClickApplyButton(e){if(this.isApplyButton(e)){if(this.datePicked[0]instanceof Date){const e=this.datePicked[0].clone();this.setDate(e)}this.hide(),this.trigger("select",{date:this.getDate()})}}onClickCancelButton(e){this.isCancelButton(e)&&this.hide()}onClick(e){const s=e.target;if(s instanceof HTMLElement){const e=s.closest(".unit");if(!(e instanceof HTMLElement))return;this.onClickHeaderButton(e),this.onClickCalendarDay(e),this.onClickApplyButton(e),this.onClickCancelButton(e)}}isShown(){return this.ui.container.classList.contains("inline")||this.ui.container.classList.contains("show")}show(e){if(this.isShown())return;const s=e&&"target"in e?e.target:this.options.element,{top:a,left:o}=this.adjustPosition(s);this.ui.container.style.top=`${a}px`,this.ui.container.style.left=`${o}px`,this.ui.container.classList.add("show"),this.trigger("show",{target:s})}hide(){this.ui.container.classList.remove("show"),this.datePicked.length=0,this.renderAll(),this.trigger("hide")}setDate(s){const a=new e(s,this.options.format);this.options.date=a.clone(),this.updateValues(),this.calendars.length&&this.renderAll()}getDate(){return this.options.date instanceof e?this.options.date.clone():null}parseValues(){this.options.date?this.setDate(this.options.date):this.options.element instanceof HTMLInputElement&&this.options.element.value.length&&this.setDate(this.options.element.value),this.options.date instanceof Date||(this.options.date=null)}updateValues(){const e=this.getDate(),s=e instanceof Date?e.format(this.options.format,this.options.lang):"",a=this.options.element;a instanceof HTMLInputElement?a.value=s:a instanceof HTMLElement&&(a.innerText=s)}hidePicker(e){let s=e.target,a=null;s.shadowRoot&&(s=e.composedPath()[0],a=s.getRootNode().host),this.isShown()&&a!==this.ui.wrapper&&s!==this.options.element&&this.hide()}renderAll(e){this.trigger("render",{view:"Container",date:(e||this.calendars[0]).clone()})}isCalendarHeaderButton(e){return["previous-button","next-button"].some((s=>e.classList.contains(s)))}isCalendarDay(e){return e.classList.contains("day")}isApplyButton(e){return e.classList.contains("apply-button")}isCancelButton(e){return e.classList.contains("cancel-button")}gotoDate(s){const a=new e(s,this.options.format);a.setDate(1),this.calendars[0]=a.clone(),this.renderAll()}clear(){this.options.date=null,this.datePicked.length=0,this.updateValues(),this.renderAll(),this.trigger("clear")}handleOptions(){this.options.element instanceof HTMLElement||(this.options.element=this.options.doc.querySelector(this.options.element)),"function"==typeof this.options.documentClick&&document.addEventListener("click",this.options.documentClick,!0),this.options.element instanceof HTMLInputElement&&(this.options.element.readOnly=this.options.readonly),this.options.date?this.calendars[0]=new e(this.options.date,this.options.format):this.calendars[0]=new e}handleCSS(){if(Array.isArray(this.options.css))this.options.css.forEach((e=>{const s=document.createElement("link");s.href=e,s.rel="stylesheet";const i=()=>{this.cssLoaded++,this.cssLoaded===this.options.css.length&&(this.ui.wrapper.style.display="")};s.addEventListener("load",i),s.addEventListener("error",i),this.ui.shadowRoot.append(s)}));else if("string"==typeof this.options.css){const e=document.createElement("style"),s=document.createTextNode(this.options.css);e.appendChild(s),this.ui.shadowRoot.append(e),this.ui.wrapper.style.display=""}else"function"==typeof this.options.css&&(this.options.css.call(this,this),this.ui.wrapper.style.display="")}adjustPosition(e){const s=e.getBoundingClientRect(),a=this.ui.wrapper.getBoundingClientRect();this.ui.container.classList.add("calc");const o=this.ui.container.getBoundingClientRect();this.ui.container.classList.remove("calc");let r=s.bottom-a.bottom,c=s.left-a.left;return"undefined"!=typeof window&&(window.innerHeight<r+o.height&&r-o.height>=0&&(r=s.top-a.top-o.height),window.innerWidth<c+o.width&&s.right-o.width>=0&&(c=s.right-a.right-o.width)),{left:c,top:r}}}var s=Object.freeze({__proto__:null,Core:n,create:n});export{n as Core,n as create,s as easepick};
4
+
@@ -0,0 +1,4 @@
1
+ // @easepick/datetime@1.2.1 downloaded from https://ga.jspm.io/npm:@easepick/datetime@1.2.1/dist/index.esm.js
2
+
3
+ class t extends Date{static parseDateTime(e,s="YYYY-MM-DD",n="en-US"){if(!e)return new Date((new Date).setHours(0,0,0,0));if(e instanceof t)return e.toJSDate();if(e instanceof Date)return e;if(/^-?\d{10,}$/.test(String(e)))return new Date(Number(e));if("string"==typeof e){const r=[];let a=null;for(;null!=(a=t.regex.exec(s));)"\\"!==a[1]&&r.push(a);if(r.length){const s={year:null,month:null,shortMonth:null,longMonth:null,day:null,hour:0,minute:0,second:0,ampm:null,value:""};r[0].index>0&&(s.value+=".*?");for(const[e,a]of Object.entries(r)){const r=Number(e),{group:i,pattern:h}=t.formatPatterns(a[0],n);s[i]=r+1,s.value+=h,s.value+=".*?"}const a=new RegExp(`^${s.value}$`);if(a.test(e)){const r=a.exec(e),i=Number(r[s.year]);let h=null;s.month?h=Number(r[s.month])-1:s.shortMonth?h=t.shortMonths(n).indexOf(r[s.shortMonth]):s.longMonth&&(h=t.longMonths(n).indexOf(r[s.longMonth]));const g=Number(r[s.day])||1,o=Number(r[s.hour]);let u=Number.isNaN(o)?0:o;const c=Number(r[s.minute]),l=Number.isNaN(c)?0:c,m=Number(r[s.second]),d=Number.isNaN(m)?0:m,M=r[s.ampm];return M&&"PM"===M&&(u+=12,24===u&&(u=0)),new Date(i,h,g,u,l,d,0)}}}return new Date((new Date).setHours(0,0,0,0))}static regex=/(\\)?(Y{2,4}|M{1,4}|D{1,2}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|A|a)/g;static MONTH_JS=[0,1,2,3,4,5,6,7,8,9,10,11];static shortMonths(e){return t.MONTH_JS.map((s=>new Date(2019,s).toLocaleString(e,{month:"short"})))}static longMonths(e){return t.MONTH_JS.map((s=>new Date(2019,s).toLocaleString(e,{month:"long"})))}static formatPatterns(e,s){switch(e){case"YY":case"YYYY":return{group:"year",pattern:`(\\d{${e.length}})`};case"M":return{group:"month",pattern:"(\\d{1,2})"};case"MM":return{group:"month",pattern:"(\\d{2})"};case"MMM":return{group:"shortMonth",pattern:`(${t.shortMonths(s).join("|")})`};case"MMMM":return{group:"longMonth",pattern:`(${t.longMonths(s).join("|")})`};case"D":return{group:"day",pattern:"(\\d{1,2})"};case"DD":return{group:"day",pattern:"(\\d{2})"};case"h":case"H":return{group:"hour",pattern:"(\\d{1,2})"};case"hh":case"HH":return{group:"hour",pattern:"(\\d{2})"};case"m":return{group:"minute",pattern:"(\\d{1,2})"};case"mm":return{group:"minute",pattern:"(\\d{2})"};case"s":return{group:"second",pattern:"(\\d{1,2})"};case"ss":return{group:"second",pattern:"(\\d{2})"};case"a":case"A":return{group:"ampm",pattern:"(AM|PM|am|pm)"}}}lang;constructor(e=null,s="YYYY-MM-DD",n="en-US"){super(t.parseDateTime(e,s,n)),this.lang=n}getWeek(e){const s=new Date(this.midnight_ts(this)),n=(this.getDay()+(7-e))%7;s.setDate(s.getDate()-n);const r=s.getTime();return s.setMonth(0,1),s.getDay()!==e&&s.setMonth(0,1+(4-s.getDay()+7)%7),1+Math.ceil((r-s.getTime())/6048e5)}clone(){return new t(this)}toJSDate(){return new Date(this)}inArray(e,s="[]"){return e.some((e=>e instanceof Array?this.isBetween(e[0],e[1],s):this.isSame(e,"day")))}isBetween(e,s,n="()"){switch(n){default:case"()":return this.midnight_ts(this)>this.midnight_ts(e)&&this.midnight_ts(this)<this.midnight_ts(s);case"[)":return this.midnight_ts(this)>=this.midnight_ts(e)&&this.midnight_ts(this)<this.midnight_ts(s);case"(]":return this.midnight_ts(this)>this.midnight_ts(e)&&this.midnight_ts(this)<=this.midnight_ts(s);case"[]":return this.midnight_ts()>=this.midnight_ts(e)&&this.midnight_ts()<=this.midnight_ts(s)}}isBefore(e,s="days"){switch(s){case"day":case"days":return new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()>new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case"month":case"months":return new Date(e.getFullYear(),e.getMonth(),1).getTime()>new Date(this.getFullYear(),this.getMonth(),1).getTime();case"year":case"years":return e.getFullYear()>this.getFullYear()}throw new Error("isBefore: Invalid unit!")}isSameOrBefore(e,s="days"){switch(s){case"day":case"days":return new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()>=new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case"month":case"months":return new Date(e.getFullYear(),e.getMonth(),1).getTime()>=new Date(this.getFullYear(),this.getMonth(),1).getTime()}throw new Error("isSameOrBefore: Invalid unit!")}isAfter(e,s="days"){switch(s){case"day":case"days":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();case"month":case"months":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>new Date(e.getFullYear(),e.getMonth(),1).getTime();case"year":case"years":return this.getFullYear()>e.getFullYear()}throw new Error("isAfter: Invalid unit!")}isSameOrAfter(e,s="days"){switch(s){case"day":case"days":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();case"month":case"months":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>=new Date(e.getFullYear(),e.getMonth(),1).getTime()}throw new Error("isSameOrAfter: Invalid unit!")}isSame(e,s="days"){switch(s){case"day":case"days":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()===new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();case"month":case"months":return new Date(this.getFullYear(),this.getMonth(),1).getTime()===new Date(e.getFullYear(),e.getMonth(),1).getTime()}throw new Error("isSame: Invalid unit!")}add(e,s="days"){switch(s){case"day":case"days":this.setDate(this.getDate()+e);break;case"month":case"months":this.setMonth(this.getMonth()+e)}return this}subtract(e,s="days"){switch(s){case"day":case"days":this.setDate(this.getDate()-e);break;case"month":case"months":this.setMonth(this.getMonth()-e)}return this}diff(e,s="days"){switch(s){default:case"day":case"days":return Math.round((this.midnight_ts()-this.midnight_ts(e))/864e5);case"month":case"months":let s=12*(e.getFullYear()-this.getFullYear());return s-=e.getMonth(),s+=this.getMonth(),s}}format(e,s="en-US"){let n="";const r=[];let a=null;for(;null!=(a=t.regex.exec(e));)"\\"!==a[1]&&r.push(a);if(r.length){r[0].index>0&&(n+=e.substring(0,r[0].index));for(const[a,i]of Object.entries(r)){const h=Number(a);n+=this.formatTokens(i[0],s),r[h+1]&&(n+=e.substring(i.index+i[0].length,r[h+1].index)),h===r.length-1&&(n+=e.substring(i.index+i[0].length))}}return n.replace(/\\/g,"")}midnight_ts(e){return e?new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0).getTime():new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0,0).getTime()}formatTokens(e,s){switch(e){case"YY":return String(this.getFullYear()).slice(-2);case"YYYY":return String(this.getFullYear());case"M":return String(this.getMonth()+1);case"MM":return`0${this.getMonth()+1}`.slice(-2);case"MMM":return t.shortMonths(s)[this.getMonth()];case"MMMM":return t.longMonths(s)[this.getMonth()];case"D":return String(this.getDate());case"DD":return`0${this.getDate()}`.slice(-2);case"H":return String(this.getHours());case"HH":return`0${this.getHours()}`.slice(-2);case"h":return String(this.getHours()%12||12);case"hh":return`0${this.getHours()%12||12}`.slice(-2);case"m":return String(this.getMinutes());case"mm":return`0${this.getMinutes()}`.slice(-2);case"s":return String(this.getSeconds());case"ss":return`0${this.getSeconds()}`.slice(-2);case"a":return this.getHours()<12||24===this.getHours()?"am":"pm";case"A":return this.getHours()<12||24===this.getHours()?"AM":"PM";default:return""}}}export{t as DateTime};
4
+
@@ -0,0 +1,4 @@
1
+ // @easepick/preset-plugin@1.2.1 downloaded from https://ga.jspm.io/npm:@easepick/preset-plugin@1.2.1/dist/index.esm.js
2
+
3
+ import{DateTime as t}from"@easepick/datetime";import{BasePlugin as e}from"@easepick/base-plugin";class s extends e{dependencies=["RangePlugin"];binds={onView:this.onView.bind(this),onClick:this.onClick.bind(this)};options={customLabels:["Today","Yesterday","Last 7 Days","Last 30 Days","This Month","Last Month"],customPreset:{},position:"left"};getName(){return"PresetPlugin"}onAttach(){if(!Object.keys(this.options.customPreset).length){const e=new t,s=()=>{const n=e.clone();n.setDate(1);const o=new Date(e.getFullYear(),e.getMonth()+1,0);return[new t(n),new t(o)]},i=()=>{const n=e.clone();n.setMonth(n.getMonth()-1),n.setDate(1);const o=new Date(e.getFullYear(),e.getMonth(),0);return[new t(n),new t(o)]},n=[[e.clone(),e.clone()],[e.clone().subtract(1,"day"),e.clone().subtract(1,"day")],[e.clone().subtract(6,"day"),e.clone()],[e.clone().subtract(29,"day"),e.clone()],s(),i()];Object.values(this.options.customLabels).forEach(((t,e)=>{this.options.customPreset[t]=n[e]}))}this.picker.on("view",this.binds.onView),this.picker.on("click",this.binds.onClick)}onDetach(){this.picker.off("view",this.binds.onView),this.picker.off("click",this.binds.onClick)}onView(t){const{view:e,target:n}=t.detail;if("Main"===e){const t=document.createElement("div");t.className="preset-plugin-container",Object.keys(this.options.customPreset).forEach((e=>{if(Object.prototype.hasOwnProperty.call(this.options.customPreset,e)){const n=this.options.customPreset[e],o=document.createElement("button");o.className="preset-button unit",o.innerHTML=e,o.dataset.start=n[0].getTime(),o.dataset.end=n[1].getTime(),t.appendChild(o),this.picker.trigger("view",{view:"PresetPluginButton",target:o})}})),n.appendChild(t),n.classList.add(`preset-${this.options.position}`),this.picker.trigger("view",{view:"PresetPluginContainer",target:t})}}onClick(e){const n=e.target;if(n instanceof HTMLElement){const e=n.closest(".unit");if(!(e instanceof HTMLElement))return;if(this.isPresetButton(e)){const n=new t(Number(e.dataset.start)),o=new t(Number(e.dataset.end));this.picker.options.autoApply?(this.picker.setDateRange(n,o),this.picker.trigger("select",{start:this.picker.getStartDate(),end:this.picker.getEndDate()}),this.picker.hide()):(this.picker.datePicked=[n,o],this.picker.renderAll())}}}isPresetButton(t){return t.classList.contains("preset-button")}}export{s as PresetPlugin};
4
+
@@ -0,0 +1,4 @@
1
+ // @easepick/range-plugin@1.2.1 downloaded from https://ga.jspm.io/npm:@easepick/range-plugin@1.2.1/dist/index.esm.js
2
+
3
+ import{DateTime as t}from"@easepick/datetime";import{BasePlugin as e}from"@easepick/base-plugin";class i extends e{tooltipElement;triggerElement;binds={setStartDate:this.setStartDate.bind(this),setEndDate:this.setEndDate.bind(this),setDateRange:this.setDateRange.bind(this),getStartDate:this.getStartDate.bind(this),getEndDate:this.getEndDate.bind(this),onView:this.onView.bind(this),onShow:this.onShow.bind(this),onMouseEnter:this.onMouseEnter.bind(this),onMouseLeave:this.onMouseLeave.bind(this),onClickCalendarDay:this.onClickCalendarDay.bind(this),onClickApplyButton:this.onClickApplyButton.bind(this),parseValues:this.parseValues.bind(this),updateValues:this.updateValues.bind(this),clear:this.clear.bind(this)};options={elementEnd:null,startDate:null,endDate:null,repick:!1,strict:!0,delimiter:" - ",tooltip:!0,tooltipNumber:t=>t,locale:{zero:"",one:"day",two:"",few:"",many:"",other:"days"},documentClick:this.hidePicker.bind(this)};getName(){return"RangePlugin"}onAttach(){this.binds._setStartDate=this.picker.setStartDate,this.binds._setEndDate=this.picker.setEndDate,this.binds._setDateRange=this.picker.setDateRange,this.binds._getStartDate=this.picker.getStartDate,this.binds._getEndDate=this.picker.getEndDate,this.binds._parseValues=this.picker.parseValues,this.binds._updateValues=this.picker.updateValues,this.binds._clear=this.picker.clear,this.binds._onClickCalendarDay=this.picker.onClickCalendarDay,this.binds._onClickApplyButton=this.picker.onClickApplyButton,Object.defineProperties(this.picker,{setStartDate:{configurable:!0,value:this.binds.setStartDate},setEndDate:{configurable:!0,value:this.binds.setEndDate},setDateRange:{configurable:!0,value:this.binds.setDateRange},getStartDate:{configurable:!0,value:this.binds.getStartDate},getEndDate:{configurable:!0,value:this.binds.getEndDate},parseValues:{configurable:!0,value:this.binds.parseValues},updateValues:{configurable:!0,value:this.binds.updateValues},clear:{configurable:!0,value:this.binds.clear},onClickCalendarDay:{configurable:!0,value:this.binds.onClickCalendarDay},onClickApplyButton:{configurable:!0,value:this.binds.onClickApplyButton}}),this.options.elementEnd&&(this.options.elementEnd instanceof HTMLElement||(this.options.elementEnd=this.picker.options.doc.querySelector(this.options.elementEnd)),this.options.elementEnd instanceof HTMLInputElement&&(this.options.elementEnd.readOnly=this.picker.options.readonly),"function"==typeof this.picker.options.documentClick&&(document.removeEventListener("click",this.picker.options.documentClick,!0),"function"==typeof this.options.documentClick&&document.addEventListener("click",this.options.documentClick,!0)),this.options.elementEnd.addEventListener("click",this.picker.show.bind(this.picker))),this.options.repick=this.options.repick&&this.options.elementEnd instanceof HTMLElement,this.picker.options.date=null,this.picker.on("view",this.binds.onView),this.picker.on("show",this.binds.onShow),this.picker.on("mouseenter",this.binds.onMouseEnter,!0),this.picker.on("mouseleave",this.binds.onMouseLeave,!0),this.checkIntlPluralLocales()}onDetach(){Object.defineProperties(this.picker,{setStartDate:{configurable:!0,value:this.binds._setStartDate},setEndDate:{configurable:!0,value:this.binds._setEndDate},setDateRange:{configurable:!0,value:this.binds._setDateRange},getStartDate:{configurable:!0,value:this.binds._getStartDate},getEndDate:{configurable:!0,value:this.binds._getEndDate},parseValues:{configurable:!0,value:this.binds._parseValues},updateValues:{configurable:!0,value:this.binds._updateValues},clear:{configurable:!0,value:this.binds._clear},onClickCalendarDay:{configurable:!0,value:this.binds._onClickCalendarDay},onClickApplyButton:{configurable:!0,value:this.binds._onClickApplyButton}}),this.picker.off("view",this.binds.onView),this.picker.off("show",this.binds.onShow),this.picker.off("mouseenter",this.binds.onMouseEnter,!0),this.picker.off("mouseleave",this.binds.onMouseLeave,!0)}parseValues(){if(this.options.startDate||this.options.endDate)this.options.strict?this.options.startDate&&this.options.endDate?this.setDateRange(this.options.startDate,this.options.endDate):(this.options.startDate=null,this.options.endDate=null):(this.options.startDate&&this.setStartDate(this.options.startDate),this.options.endDate&&this.setEndDate(this.options.endDate));else if(this.options.elementEnd)this.options.strict?this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length&&this.options.elementEnd instanceof HTMLInputElement&&this.options.elementEnd.value.length&&this.setDateRange(this.picker.options.element.value,this.options.elementEnd.value):(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length&&this.setStartDate(this.picker.options.element.value),this.options.elementEnd instanceof HTMLInputElement&&this.options.elementEnd.value.length&&this.setEndDate(this.options.elementEnd.value));else if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const[t,e]=this.picker.options.element.value.split(this.options.delimiter);this.options.strict?t&&e&&this.setDateRange(t,e):(t&&this.setStartDate(t),e&&this.setEndDate(e))}}updateValues(){const t=this.picker.options.element,e=this.options.elementEnd,s=this.picker.getStartDate(),n=this.picker.getEndDate(),a=s instanceof Date?s.format(this.picker.options.format,this.picker.options.lang):"",o=n instanceof Date?n.format(this.picker.options.format,this.picker.options.lang):"";if(e)t instanceof HTMLInputElement?t.value=a:t instanceof HTMLElement&&(t.innerText=a),e instanceof HTMLInputElement?e.value=o:e instanceof HTMLElement&&(e.innerText=o);else{const e=`${a}${a||o?this.options.delimiter:""}${o}`;t instanceof HTMLInputElement?t.value=e:t instanceof HTMLElement&&(t.innerText=e)}}clear(){this.options.startDate=null,this.options.endDate=null,this.picker.datePicked.length=0,this.updateValues(),this.picker.renderAll(),this.picker.trigger("clear")}onShow(t){const{target:e}=t.detail;this.triggerElement=e,this.picker.options.scrollToDate&&this.getStartDate()instanceof Date&&this.picker.gotoDate(this.getStartDate()),this.initializeRepick()}onView(e){const{view:s,target:n}=e.detail;if("Main"===s&&(this.tooltipElement=document.createElement("span"),this.tooltipElement.className="range-plugin-tooltip",n.appendChild(this.tooltipElement)),"CalendarDay"===s){const e=new t(n.dataset.time),s=this.picker.datePicked,a=s.length?this.picker.datePicked[0]:this.getStartDate(),o=s.length?this.picker.datePicked[1]:this.getEndDate();a&&a.isSame(e,"day")&&n.classList.add("start"),a&&o&&(o.isSame(e,"day")&&n.classList.add("end"),e.isBetween(a,o)&&n.classList.add("in-range"))}if("Footer"===s){const t=1===this.picker.datePicked.length&&!this.options.strict||2===this.picker.datePicked.length;n.querySelector(".apply-button").disabled=!t}}hidePicker(t){let e=t.target,s=null;e.shadowRoot&&(e=t.composedPath()[0],s=e.getRootNode().host),this.picker.isShown()&&s!==this.picker.ui.wrapper&&e!==this.picker.options.element&&e!==this.options.elementEnd&&this.picker.hide()}setStartDate(e){const s=new t(e,this.picker.options.format);this.options.startDate=s?s.clone():null,this.updateValues(),this.picker.renderAll()}setEndDate(e){const s=new t(e,this.picker.options.format);this.options.endDate=s?s.clone():null,this.updateValues(),this.picker.renderAll()}setDateRange(e,s){const n=new t(e,this.picker.options.format),a=new t(s,this.picker.options.format);this.options.startDate=n?n.clone():null,this.options.endDate=a?a.clone():null,this.updateValues(),this.picker.renderAll()}getStartDate(){return this.options.startDate instanceof Date?this.options.startDate.clone():null}getEndDate(){return this.options.endDate instanceof Date?this.options.endDate.clone():null}onMouseEnter(e){const s=e.target;if(s instanceof HTMLElement){this.isContainer(s)&&this.initializeRepick();const e=s.closest(".unit");if(!(e instanceof HTMLElement))return;if(this.picker.isCalendarDay(e)){if(1!==this.picker.datePicked.length)return;let s=this.picker.datePicked[0].clone(),n=new t(e.dataset.time),a=!1;if(s.isAfter(n,"day")){const t=s.clone();s=n.clone(),n=t.clone(),a=!0}if([...this.picker.ui.container.querySelectorAll(".day")].forEach((o=>{const l=new t(o.dataset.time),r=this.picker.Calendar.getCalendarDayView(l);l.isBetween(s,n)&&r.classList.add("in-range"),l.isSame(this.picker.datePicked[0],"day")&&(r.classList.add("start"),r.classList.toggle("flipped",a)),o===e&&(r.classList.add("end"),r.classList.toggle("flipped",a)),o.className=r.className})),this.options.tooltip){const t=this.options.tooltipNumber(n.diff(s,"day")+1);if(t>0){const s=new Intl.PluralRules(this.picker.options.lang).select(t),n=`${t} ${this.options.locale[s]}`;this.showTooltip(e,n)}else this.hideTooltip()}}}}onMouseLeave(t){if(this.isContainer(t.target)&&this.options.repick){const t=this.getStartDate(),e=this.getEndDate();t&&e&&(this.picker.datePicked.length=0,this.picker.renderAll())}}onClickCalendarDay(e){if(this.picker.isCalendarDay(e)){2===this.picker.datePicked.length&&(this.picker.datePicked.length=0);const s=new t(e.dataset.time);if(this.picker.datePicked[this.picker.datePicked.length]=s,2===this.picker.datePicked.length&&this.picker.datePicked[0].isAfter(this.picker.datePicked[1])){const t=this.picker.datePicked[1].clone();this.picker.datePicked[1]=this.picker.datePicked[0].clone(),this.picker.datePicked[0]=t.clone()}1!==this.picker.datePicked.length&&this.picker.options.autoApply||this.picker.trigger("preselect",{start:this.picker.datePicked[0]instanceof Date?this.picker.datePicked[0].clone():null,end:this.picker.datePicked[1]instanceof Date?this.picker.datePicked[1].clone():null}),1===this.picker.datePicked.length&&(!this.options.strict&&this.picker.options.autoApply&&(this.picker.options.element===this.triggerElement&&this.setStartDate(this.picker.datePicked[0]),this.options.elementEnd===this.triggerElement&&this.setEndDate(this.picker.datePicked[0]),this.picker.trigger("select",{start:this.picker.getStartDate(),end:this.picker.getEndDate()})),this.picker.renderAll()),2===this.picker.datePicked.length&&(this.picker.options.autoApply?(this.setDateRange(this.picker.datePicked[0],this.picker.datePicked[1]),this.picker.trigger("select",{start:this.picker.getStartDate(),end:this.picker.getEndDate()}),this.picker.hide()):(this.hideTooltip(),this.picker.renderAll()))}}onClickApplyButton(t){this.picker.isApplyButton(t)&&(1!==this.picker.datePicked.length||this.options.strict||(this.picker.options.element===this.triggerElement&&(this.options.endDate=null,this.setStartDate(this.picker.datePicked[0])),this.options.elementEnd===this.triggerElement&&(this.options.startDate=null,this.setEndDate(this.picker.datePicked[0]))),2===this.picker.datePicked.length&&this.setDateRange(this.picker.datePicked[0],this.picker.datePicked[1]),this.picker.trigger("select",{start:this.picker.getStartDate(),end:this.picker.getEndDate()}),this.picker.hide())}showTooltip(t,e){this.tooltipElement.style.visibility="visible",this.tooltipElement.innerHTML=e;const s=this.picker.ui.container.getBoundingClientRect(),n=this.tooltipElement.getBoundingClientRect(),a=t.getBoundingClientRect();let o=a.top,l=a.left;o-=s.top,l-=s.left,o-=n.height,l-=n.width/2,l+=a.width/2,this.tooltipElement.style.top=`${o}px`,this.tooltipElement.style.left=`${l}px`}hideTooltip(){this.tooltipElement.style.visibility="hidden"}checkIntlPluralLocales(){if(!this.options.tooltip)return;const t=[...new Set([new Intl.PluralRules(this.picker.options.lang).select(0),new Intl.PluralRules(this.picker.options.lang).select(1),new Intl.PluralRules(this.picker.options.lang).select(2),new Intl.PluralRules(this.picker.options.lang).select(6),new Intl.PluralRules(this.picker.options.lang).select(18)])],e=Object.keys(this.options.locale);t.every((t=>e.includes(t)))||console.warn(`${this.getName()}: provide locales (${t.join(", ")}) for correct tooltip text.`)}initializeRepick(){if(!this.options.repick)return;const t=this.getStartDate(),e=this.getEndDate();e&&this.triggerElement===this.picker.options.element&&(this.picker.datePicked[0]=e),t&&this.triggerElement===this.options.elementEnd&&(this.picker.datePicked[0]=t)}isContainer(t){return t===this.picker.ui.container}}export{i as RangePlugin};
4
+
@@ -0,0 +1,17 @@
1
+ // @orchidjs/sifter@1.1.0 downloaded from https://ga.jspm.io/npm:@orchidjs/sifter@1.1.0/dist/esm/sifter.js
2
+
3
+ import{scoreValue as t,iterate as e,cmp as r,propToArray as i,getAttrNesting as n,getAttr as s}from"./utils.js";import{escape_regex as o,getPattern as c}from"@orchidjs/unicode-variants";export{getPattern}from"@orchidjs/unicode-variants";import"./types.js";class Sifter{items;settings;constructor(t,e){this.items=t;this.settings=e||{diacritics:true}}tokenize(t,e,r){if(!t||!t.length)return[];const i=[];const n=t.split(/\s+/);var s;r&&(s=new RegExp("^("+Object.keys(r).map(o).join("|")+"):(.*)$"));n.forEach((t=>{let r;let n=null;let u=null;if(s&&(r=t.match(s))){n=r[1];t=r[2]}if(t.length>0){u=this.settings.diacritics?c(t)||null:o(t);u&&e&&(u="\\b"+u)}i.push({string:t,regex:u?new RegExp(u,"iu"):null,field:n})}));return i}
4
+ /**
5
+ * Returns a function to be used to score individual results.
6
+ *
7
+ * Good matches will have a higher score than poor matches.
8
+ * If an item is not a match, 0 will be returned by the function.
9
+ *
10
+ * @returns {T.ScoreFn}
11
+ */
12
+ getScoreFunction(t,e){var r=this.prepareSearch(t,e);return this._getScoreFunction(r)}
13
+ /**
14
+ * @returns {T.ScoreFn}
15
+ *
16
+ */_getScoreFunction(r){const i=r.tokens,n=i.length;if(!n)return function(){return 0};const s=r.options.fields,o=r.weights,c=s.length,u=r.getAttrFn;if(!c)return function(){return 1};const f=function(){return c===1?function(e,r){const i=s[0].field;return t(u(r,i),e,o[i]||1)}:function(r,i){var n=0;if(r.field){const e=u(i,r.field);!r.regex&&e?n+=1/c:n+=t(e,r,1)}else e(o,((e,s)=>{n+=t(u(i,s),r,e)}));return n/c}}();return n===1?function(t){return f(i[0],t)}:r.options.conjunction==="and"?function(t){var e,r=0;for(let n of i){e=f(n,t);if(e<=0)return 0;r+=e}return r/n}:function(t){var r=0;e(i,(e=>{r+=f(e,t)}));return r/n}}getSortFunction(t,e){var r=this.prepareSearch(t,e);return this._getSortFunction(r)}_getSortFunction(t){var e,i=[];const n=this,s=t.options,o=!t.query&&s.sort_empty?s.sort_empty:s.sort;if(typeof o=="function")return o.bind(this);const get_field=function(e,r){return e==="$score"?r.score:t.getAttrFn(n.items[r.id],e)};if(o)for(let e of o)(t.query||e.field!=="$score")&&i.push(e);if(t.query){e=true;for(let t of i)if(t.field==="$score"){e=false;break}e&&i.unshift({field:"$score",direction:"desc"})}else i=i.filter((t=>t.field!=="$score"));const c=i.length;return c?function(t,e){var n,s;for(let o of i){s=o.field;let i=o.direction==="desc"?-1:1;n=i*r(get_field(s,t),get_field(s,e));if(n)return n}return 0}:null}prepareSearch(t,e){const r={};var o=Object.assign({},e);i(o,"sort");i(o,"sort_empty");if(o.fields){i(o,"fields");const t=[];o.fields.forEach((e=>{typeof e=="string"&&(e={field:e,weight:1});t.push(e);r[e.field]="weight"in e?e.weight:1}));o.fields=t}return{options:o,query:t.toLowerCase().trim(),tokens:this.tokenize(t,o.respect_word_boundaries,r),total:0,items:[],weights:r,getAttrFn:o.nesting?n:s}}search(t,r){var i,n,s=this;n=this.prepareSearch(t,r);r=n.options;t=n.query;const o=r.score||s._getScoreFunction(n);t.length?e(s.items,((t,e)=>{i=o(t);(r.filter===false||i>0)&&n.items.push({score:i,id:e})})):e(s.items,((t,e)=>{n.items.push({score:1,id:e})}));const c=s._getSortFunction(n);c&&n.items.sort(c);n.total=n.items.length;typeof r.limit==="number"&&(n.items=n.items.slice(0,r.limit));return n}}export{Sifter,r as cmp,s as getAttr,n as getAttrNesting,e as iterate,i as propToArray,t as scoreValue};
17
+
@@ -0,0 +1,11 @@
1
+ // @orchidjs/unicode-variants@1.1.2 downloaded from https://ga.jspm.io/npm:@orchidjs/unicode-variants@1.1.2/dist/esm/index.js
2
+
3
+ import{setToPattern as t,escape_regex as e,arrayToPattern as s,sequencePattern as n}from"./regex.js";import{allSubstrings as r}from"./strings.js";const o=[[0,65535]];const l="[̀-ͯ·ʾʼ]";let a;let u;const h=3;const c={};const i={"/":"⁄∕",0:"߀",a:"ⱥɐɑ",aa:"ꜳ",ae:"æǽǣ",ao:"ꜵ",au:"ꜷ",av:"ꜹꜻ",ay:"ꜽ",b:"ƀɓƃ",c:"ꜿƈȼↄ",d:"đɗɖᴅƌꮷԁɦ",e:"ɛǝᴇɇ",f:"ꝼƒ",g:"ǥɠꞡᵹꝿɢ",h:"ħⱨⱶɥ",i:"ɨı",j:"ɉȷ",k:"ƙⱪꝁꝃꝅꞣ",l:"łƚɫⱡꝉꝇꞁɭ",m:"ɱɯϻ",n:"ꞥƞɲꞑᴎлԉ",o:"øǿɔɵꝋꝍᴑ",oe:"œ",oi:"ƣ",oo:"ꝏ",ou:"ȣ",p:"ƥᵽꝑꝓꝕρ",q:"ꝗꝙɋ",r:"ɍɽꝛꞧꞃ",s:"ßȿꞩꞅʂ",t:"ŧƭʈⱦꞇ",th:"þ",tz:"ꜩ",u:"ʉ",v:"ʋꝟʌ",vy:"ꝡ",w:"ⱳ",y:"ƴɏỿ",z:"ƶȥɀⱬꝣ",hv:"ƕ"};for(let t in i){let e=i[t]||"";for(let s=0;s<e.length;s++){let n=e.substring(s,s+1);c[n]=t}}const d=new RegExp(Object.keys(c).join("|")+"|"+l,"gu");const initialize=t=>{a===void 0&&(a=generateMap(t||o))};const normalize=(t,e="NFKD")=>t.normalize(e);const asciifold=t=>Array.from(t).reduce((
4
+ /**
5
+ * @param {string} result
6
+ * @param {string} char
7
+ */
8
+ (t,e)=>t+_asciifold(e)),"");const _asciifold=t=>{t=normalize(t).toLowerCase().replace(d,(/** @type {string} */t=>c[t]||""));return normalize(t,"NFC")};function*generator(t){for(const[e,s]of t)for(let t=e;t<=s;t++){let e=String.fromCharCode(t);let s=asciifold(e);s!=e.toLowerCase()&&(s.length>h||s.length!=0&&(yield{folded:s,composed:e,code_point:t}))}}const generateSets=s=>{const n={};const addMatching=(s,r)=>{
9
+ /** @type {Set<string>} */
10
+ const o=n[s]||new Set;const l=new RegExp("^"+t(o)+"$","iu");if(!r.match(l)){o.add(e(r));n[s]=o}};for(let t of generator(s)){addMatching(t.folded,t.folded);addMatching(t.folded,t.composed)}return n};const generateMap=n=>{const r=generateSets(n);const o={};let l=[];for(let s in r){let n=r[s];n&&(o[s]=t(n));s.length>1&&l.push(e(s))}l.sort(((t,e)=>e.length-t.length));const a=s(l);u=new RegExp("^"+a,"u");return o};const mapSequence=(t,e=1)=>{let s=0;t=t.map((t=>{a[t]&&(s+=t.length);return a[t]||t}));return s>=e?n(t):""};const substringsToPattern=(t,e=1)=>{e=Math.max(e,t.length-1);return s(r(t).map((t=>mapSequence(t,e))))};const sequencesToPattern=(t,e=true)=>{let r=t.length>1?1:0;return s(t.map((t=>{let s=[];const o=e?t.length():t.length()-1;for(let e=0;e<o;e++)s.push(substringsToPattern(t.substrs[e]||"",r));return n(s)})))};const inSequences=(t,e)=>{for(const s of e){if(s.start!=t.start||s.end!=t.end)continue;if(s.substrs.join("")!==t.substrs.join(""))continue;let e=t.parts;const filter=t=>{for(const s of e){if(s.start===t.start&&s.substr===t.substr)return false;if(t.length!=1&&s.length!=1){if(t.start<s.start&&t.end>s.start)return true;if(s.start<t.start&&s.end>t.start)return true}}return false};let n=s.parts.filter(filter);if(!(n.length>0))return true}return false};class Sequence{parts;substrs;start;end;constructor(){this.parts=[];this.substrs=[];this.start=0;this.end=0}add(t){if(t){this.parts.push(t);this.substrs.push(t.substr);this.start=Math.min(t.start,this.start);this.end=Math.max(t.end,this.end)}}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(t,e){let s=new Sequence;let n=JSON.parse(JSON.stringify(this.parts));let r=n.pop();for(const t of n)s.add(t);let o=e.substr.substring(0,t-r.start);let l=o.length;s.add({start:r.start,end:r.start+l,length:l,substr:o});return s}}const getPattern=t=>{initialize();t=asciifold(t);let e="";let s=[new Sequence];for(let n=0;n<t.length;n++){let r=t.substring(n);let o=r.match(u);const l=t.substring(n,n+1);const a=o?o[0]:null;let h=[];let c=new Set;for(const t of s){const e=t.last();if(!e||e.length==1||e.end<=n)if(a){const e=a.length;t.add({start:n,end:n+e,length:e,substr:a});c.add("1")}else{t.add({start:n,end:n+1,length:1,substr:l});c.add("2")}else if(a){let s=t.clone(n,e);const r=a.length;s.add({start:n,end:n+r,length:r,substr:a});h.push(s)}else c.add("3")}if(h.length>0){h=h.sort(((t,e)=>t.length()-e.length()));for(let t of h)inSequences(t,s)||s.push(t)}else if(n>0&&c.size==1&&!c.has("3")){e+=sequencesToPattern(s,false);let t=new Sequence;const n=s[0];n&&t.add(n.last());s=[t]}}e+=sequencesToPattern(s,true);return e};export{_asciifold,asciifold,o as code_points,e as escape_regex,generateMap,generateSets,generator,getPattern,initialize,mapSequence,normalize,substringsToPattern,a as unicode_map};
11
+
@@ -0,0 +1,4 @@
1
+ // @rails/actiontext@7.2.201 downloaded from https://ga.jspm.io/npm:@rails/actiontext@7.2.201/app/assets/javascripts/actiontext.esm.js
2
+
3
+ var t=typeof globalThis!=="undefined"?globalThis:typeof self!=="undefined"?self:global;var e={exports:{}};(function(e,r){(function(t){e.exports=t()})((function(e){var r=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function md5cycle(t,e){var r=t[0],i=t[1],s=t[2],n=t[3];r+=(i&s|~i&n)+e[0]-680876936|0;r=(r<<7|r>>>25)+i|0;n+=(r&i|~r&s)+e[1]-389564586|0;n=(n<<12|n>>>20)+r|0;s+=(n&r|~n&i)+e[2]+606105819|0;s=(s<<17|s>>>15)+n|0;i+=(s&n|~s&r)+e[3]-1044525330|0;i=(i<<22|i>>>10)+s|0;r+=(i&s|~i&n)+e[4]-176418897|0;r=(r<<7|r>>>25)+i|0;n+=(r&i|~r&s)+e[5]+1200080426|0;n=(n<<12|n>>>20)+r|0;s+=(n&r|~n&i)+e[6]-1473231341|0;s=(s<<17|s>>>15)+n|0;i+=(s&n|~s&r)+e[7]-45705983|0;i=(i<<22|i>>>10)+s|0;r+=(i&s|~i&n)+e[8]+1770035416|0;r=(r<<7|r>>>25)+i|0;n+=(r&i|~r&s)+e[9]-1958414417|0;n=(n<<12|n>>>20)+r|0;s+=(n&r|~n&i)+e[10]-42063|0;s=(s<<17|s>>>15)+n|0;i+=(s&n|~s&r)+e[11]-1990404162|0;i=(i<<22|i>>>10)+s|0;r+=(i&s|~i&n)+e[12]+1804603682|0;r=(r<<7|r>>>25)+i|0;n+=(r&i|~r&s)+e[13]-40341101|0;n=(n<<12|n>>>20)+r|0;s+=(n&r|~n&i)+e[14]-1502002290|0;s=(s<<17|s>>>15)+n|0;i+=(s&n|~s&r)+e[15]+1236535329|0;i=(i<<22|i>>>10)+s|0;r+=(i&n|s&~n)+e[1]-165796510|0;r=(r<<5|r>>>27)+i|0;n+=(r&s|i&~s)+e[6]-1069501632|0;n=(n<<9|n>>>23)+r|0;s+=(n&i|r&~i)+e[11]+643717713|0;s=(s<<14|s>>>18)+n|0;i+=(s&r|n&~r)+e[0]-373897302|0;i=(i<<20|i>>>12)+s|0;r+=(i&n|s&~n)+e[5]-701558691|0;r=(r<<5|r>>>27)+i|0;n+=(r&s|i&~s)+e[10]+38016083|0;n=(n<<9|n>>>23)+r|0;s+=(n&i|r&~i)+e[15]-660478335|0;s=(s<<14|s>>>18)+n|0;i+=(s&r|n&~r)+e[4]-405537848|0;i=(i<<20|i>>>12)+s|0;r+=(i&n|s&~n)+e[9]+568446438|0;r=(r<<5|r>>>27)+i|0;n+=(r&s|i&~s)+e[14]-1019803690|0;n=(n<<9|n>>>23)+r|0;s+=(n&i|r&~i)+e[3]-187363961|0;s=(s<<14|s>>>18)+n|0;i+=(s&r|n&~r)+e[8]+1163531501|0;i=(i<<20|i>>>12)+s|0;r+=(i&n|s&~n)+e[13]-1444681467|0;r=(r<<5|r>>>27)+i|0;n+=(r&s|i&~s)+e[2]-51403784|0;n=(n<<9|n>>>23)+r|0;s+=(n&i|r&~i)+e[7]+1735328473|0;s=(s<<14|s>>>18)+n|0;i+=(s&r|n&~r)+e[12]-1926607734|0;i=(i<<20|i>>>12)+s|0;r+=(i^s^n)+e[5]-378558|0;r=(r<<4|r>>>28)+i|0;n+=(r^i^s)+e[8]-2022574463|0;n=(n<<11|n>>>21)+r|0;s+=(n^r^i)+e[11]+1839030562|0;s=(s<<16|s>>>16)+n|0;i+=(s^n^r)+e[14]-35309556|0;i=(i<<23|i>>>9)+s|0;r+=(i^s^n)+e[1]-1530992060|0;r=(r<<4|r>>>28)+i|0;n+=(r^i^s)+e[4]+1272893353|0;n=(n<<11|n>>>21)+r|0;s+=(n^r^i)+e[7]-155497632|0;s=(s<<16|s>>>16)+n|0;i+=(s^n^r)+e[10]-1094730640|0;i=(i<<23|i>>>9)+s|0;r+=(i^s^n)+e[13]+681279174|0;r=(r<<4|r>>>28)+i|0;n+=(r^i^s)+e[0]-358537222|0;n=(n<<11|n>>>21)+r|0;s+=(n^r^i)+e[3]-722521979|0;s=(s<<16|s>>>16)+n|0;i+=(s^n^r)+e[6]+76029189|0;i=(i<<23|i>>>9)+s|0;r+=(i^s^n)+e[9]-640364487|0;r=(r<<4|r>>>28)+i|0;n+=(r^i^s)+e[12]-421815835|0;n=(n<<11|n>>>21)+r|0;s+=(n^r^i)+e[15]+530742520|0;s=(s<<16|s>>>16)+n|0;i+=(s^n^r)+e[2]-995338651|0;i=(i<<23|i>>>9)+s|0;r+=(s^(i|~n))+e[0]-198630844|0;r=(r<<6|r>>>26)+i|0;n+=(i^(r|~s))+e[7]+1126891415|0;n=(n<<10|n>>>22)+r|0;s+=(r^(n|~i))+e[14]-1416354905|0;s=(s<<15|s>>>17)+n|0;i+=(n^(s|~r))+e[5]-57434055|0;i=(i<<21|i>>>11)+s|0;r+=(s^(i|~n))+e[12]+1700485571|0;r=(r<<6|r>>>26)+i|0;n+=(i^(r|~s))+e[3]-1894986606|0;n=(n<<10|n>>>22)+r|0;s+=(r^(n|~i))+e[10]-1051523|0;s=(s<<15|s>>>17)+n|0;i+=(n^(s|~r))+e[1]-2054922799|0;i=(i<<21|i>>>11)+s|0;r+=(s^(i|~n))+e[8]+1873313359|0;r=(r<<6|r>>>26)+i|0;n+=(i^(r|~s))+e[15]-30611744|0;n=(n<<10|n>>>22)+r|0;s+=(r^(n|~i))+e[6]-1560198380|0;s=(s<<15|s>>>17)+n|0;i+=(n^(s|~r))+e[13]+1309151649|0;i=(i<<21|i>>>11)+s|0;r+=(s^(i|~n))+e[4]-145523070|0;r=(r<<6|r>>>26)+i|0;n+=(i^(r|~s))+e[11]-1120210379|0;n=(n<<10|n>>>22)+r|0;s+=(r^(n|~i))+e[2]+718787259|0;s=(s<<15|s>>>17)+n|0;i+=(n^(s|~r))+e[9]-343485551|0;i=(i<<21|i>>>11)+s|0;t[0]=r+t[0]|0;t[1]=i+t[1]|0;t[2]=s+t[2]|0;t[3]=n+t[3]|0}function md5blk(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}function md5blk_array(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t[e]+(t[e+1]<<8)+(t[e+2]<<16)+(t[e+3]<<24);return r}function md51(t){var e,r,i,s,n,a,o=t.length,h=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=o;e+=64)md5cycle(h,md5blk(t.substring(e-64,e)));t=t.substring(e-64);r=t.length;i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<r;e+=1)i[e>>2]|=t.charCodeAt(e)<<(e%4<<3);i[e>>2]|=128<<(e%4<<3);if(e>55){md5cycle(h,i);for(e=0;e<16;e+=1)i[e]=0}s=o*8;s=s.toString(16).match(/(.*?)(.{0,8})$/);n=parseInt(s[2],16);a=parseInt(s[1],16)||0;i[14]=n;i[15]=a;md5cycle(h,i);return h}function md51_array(t){var e,r,i,s,n,a,o=t.length,h=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=o;e+=64)md5cycle(h,md5blk_array(t.subarray(e-64,e)));t=e-64<o?t.subarray(e-64):new Uint8Array(0);r=t.length;i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<r;e+=1)i[e>>2]|=t[e]<<(e%4<<3);i[e>>2]|=128<<(e%4<<3);if(e>55){md5cycle(h,i);for(e=0;e<16;e+=1)i[e]=0}s=o*8;s=s.toString(16).match(/(.*?)(.{0,8})$/);n=parseInt(s[2],16);a=parseInt(s[1],16)||0;i[14]=n;i[15]=a;md5cycle(h,i);return h}function rhex(t){var e,i="";for(e=0;e<4;e+=1)i+=r[t>>e*8+4&15]+r[t>>e*8&15];return i}function hex(t){var e;for(e=0;e<t.length;e+=1)t[e]=rhex(t[e]);return t.join("")}hex(md51("hello"))!=="5d41402abc4b2a76b9719d911017c592";typeof ArrayBuffer==="undefined"||ArrayBuffer.prototype.slice||function(){function clamp(t,e){t=t|0||0;return t<0?Math.max(t+e,0):Math.min(t,e)}ArrayBuffer.prototype.slice=function(r,i){var s,n,a,o,h=(this||t).byteLength,l=clamp(r,h),c=h;i!==e&&(c=clamp(i,h));if(l>c)return new ArrayBuffer(0);s=c-l;n=new ArrayBuffer(s);a=new Uint8Array(n);o=new Uint8Array(this||t,l,s);a.set(o);return n}}();function toUtf8(t){/[\u0080-\uFFFF]/.test(t)&&(t=unescape(encodeURIComponent(t)));return t}function utf8Str2ArrayBuffer(t,e){var r,i=t.length,s=new ArrayBuffer(i),n=new Uint8Array(s);for(r=0;r<i;r+=1)n[r]=t.charCodeAt(r);return e?n:s}function arrayBuffer2Utf8Str(t){return String.fromCharCode.apply(null,new Uint8Array(t))}function concatenateArrayBuffers(t,e,r){var i=new Uint8Array(t.byteLength+e.byteLength);i.set(new Uint8Array(t));i.set(new Uint8Array(e),t.byteLength);return r?i:i.buffer}function hexToBinaryString(t){var e,r=[],i=t.length;for(e=0;e<i-1;e+=2)r.push(parseInt(t.substr(e,2),16));return String.fromCharCode.apply(String,r)}function SparkMD5(){this.reset()}SparkMD5.prototype.append=function(e){this.appendBinary(toUtf8(e));return this||t};SparkMD5.prototype.appendBinary=function(e){(this||t)._buff+=e;(this||t)._length+=e.length;var r,i=(this||t)._buff.length;for(r=64;r<=i;r+=64)md5cycle((this||t)._hash,md5blk((this||t)._buff.substring(r-64,r)));(this||t)._buff=(this||t)._buff.substring(r-64);return this||t};SparkMD5.prototype.end=function(e){var r,i,s=(this||t)._buff,n=s.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<n;r+=1)a[r>>2]|=s.charCodeAt(r)<<(r%4<<3);this._finish(a,n);i=hex((this||t)._hash);e&&(i=hexToBinaryString(i));this.reset();return i};SparkMD5.prototype.reset=function(){(this||t)._buff="";(this||t)._length=0;(this||t)._hash=[1732584193,-271733879,-1732584194,271733878];return this||t};SparkMD5.prototype.getState=function(){return{buff:(this||t)._buff,length:(this||t)._length,hash:(this||t)._hash.slice()}};SparkMD5.prototype.setState=function(e){(this||t)._buff=e.buff;(this||t)._length=e.length;(this||t)._hash=e.hash;return this||t};SparkMD5.prototype.destroy=function(){delete(this||t)._hash;delete(this||t)._buff;delete(this||t)._length};SparkMD5.prototype._finish=function(e,r){var i,s,n,a=r;e[a>>2]|=128<<(a%4<<3);if(a>55){md5cycle((this||t)._hash,e);for(a=0;a<16;a+=1)e[a]=0}i=(this||t)._length*8;i=i.toString(16).match(/(.*?)(.{0,8})$/);s=parseInt(i[2],16);n=parseInt(i[1],16)||0;e[14]=s;e[15]=n;md5cycle((this||t)._hash,e)};SparkMD5.hash=function(t,e){return SparkMD5.hashBinary(toUtf8(t),e)};SparkMD5.hashBinary=function(t,e){var r=md51(t),i=hex(r);return e?hexToBinaryString(i):i};SparkMD5.ArrayBuffer=function(){this.reset()};SparkMD5.ArrayBuffer.prototype.append=function(e){var r,i=concatenateArrayBuffers((this||t)._buff.buffer,e,true),s=i.length;(this||t)._length+=e.byteLength;for(r=64;r<=s;r+=64)md5cycle((this||t)._hash,md5blk_array(i.subarray(r-64,r)));(this||t)._buff=r-64<s?new Uint8Array(i.buffer.slice(r-64)):new Uint8Array(0);return this||t};SparkMD5.ArrayBuffer.prototype.end=function(e){var r,i,s=(this||t)._buff,n=s.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<n;r+=1)a[r>>2]|=s[r]<<(r%4<<3);this._finish(a,n);i=hex((this||t)._hash);e&&(i=hexToBinaryString(i));this.reset();return i};SparkMD5.ArrayBuffer.prototype.reset=function(){(this||t)._buff=new Uint8Array(0);(this||t)._length=0;(this||t)._hash=[1732584193,-271733879,-1732584194,271733878];return this||t};SparkMD5.ArrayBuffer.prototype.getState=function(){var e=SparkMD5.prototype.getState.call(this||t);e.buff=arrayBuffer2Utf8Str(e.buff);return e};SparkMD5.ArrayBuffer.prototype.setState=function(e){e.buff=utf8Str2ArrayBuffer(e.buff,true);return SparkMD5.prototype.setState.call(this||t,e)};SparkMD5.ArrayBuffer.prototype.destroy=SparkMD5.prototype.destroy;SparkMD5.ArrayBuffer.prototype._finish=SparkMD5.prototype._finish;SparkMD5.ArrayBuffer.hash=function(t,e){var r=md51_array(new Uint8Array(t)),i=hex(r);return e?hexToBinaryString(i):i};return SparkMD5}))})(e);var r=e.exports;const i=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice;class FileChecksum{static create(t,e){const r=new FileChecksum(t);r.create(e)}constructor(t){this.file=t;this.chunkSize=2097152;this.chunkCount=Math.ceil(this.file.size/this.chunkSize);this.chunkIndex=0}create(t){this.callback=t;this.md5Buffer=new r.ArrayBuffer;this.fileReader=new FileReader;this.fileReader.addEventListener("load",(t=>this.fileReaderDidLoad(t)));this.fileReader.addEventListener("error",(t=>this.fileReaderDidError(t)));this.readNextChunk()}fileReaderDidLoad(t){this.md5Buffer.append(t.target.result);if(!this.readNextChunk()){const t=this.md5Buffer.end(true);const e=btoa(t);this.callback(null,e)}}fileReaderDidError(t){this.callback(`Error reading ${this.file.name}`)}readNextChunk(){if(this.chunkIndex<this.chunkCount||this.chunkIndex==0&&this.chunkCount==0){const t=this.chunkIndex*this.chunkSize;const e=Math.min(t+this.chunkSize,this.file.size);const r=i.call(this.file,t,e);this.fileReader.readAsArrayBuffer(r);this.chunkIndex++;return true}return false}}function getMetaValue(t){const e=findElement(document.head,`meta[name="${t}"]`);if(e)return e.getAttribute("content")}function findElements(t,e){if(typeof t=="string"){e=t;t=document}const r=t.querySelectorAll(e);return toArray(r)}function findElement(t,e){if(typeof t=="string"){e=t;t=document}return t.querySelector(e)}function dispatchEvent(t,e,r={}){const{disabled:i}=t;const{bubbles:s,cancelable:n,detail:a}=r;const o=document.createEvent("Event");o.initEvent(e,s||true,n||true);o.detail=a||{};try{t.disabled=false;t.dispatchEvent(o)}finally{t.disabled=i}return o}function toArray(t){return Array.isArray(t)?t:Array.from?Array.from(t):[].slice.call(t)}class BlobRecord{constructor(t,e,r,i={}){this.file=t;this.attributes={filename:t.name,content_type:t.type||"application/octet-stream",byte_size:t.size,checksum:e};this.xhr=new XMLHttpRequest;this.xhr.open("POST",r,true);this.xhr.responseType="json";this.xhr.setRequestHeader("Content-Type","application/json");this.xhr.setRequestHeader("Accept","application/json");this.xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");Object.keys(i).forEach((t=>{this.xhr.setRequestHeader(t,i[t])}));const s=getMetaValue("csrf-token");s!=void 0&&this.xhr.setRequestHeader("X-CSRF-Token",s);this.xhr.addEventListener("load",(t=>this.requestDidLoad(t)));this.xhr.addEventListener("error",(t=>this.requestDidError(t)))}get status(){return this.xhr.status}get response(){const{responseType:t,response:e}=this.xhr;return t=="json"?e:JSON.parse(e)}create(t){this.callback=t;this.xhr.send(JSON.stringify({blob:this.attributes}))}requestDidLoad(t){if(this.status>=200&&this.status<300){const{response:t}=this;const{direct_upload:e}=t;delete t.direct_upload;this.attributes=t;this.directUploadData=e;this.callback(null,this.toJSON())}else this.requestDidError(t)}requestDidError(t){this.callback(`Error creating Blob for "${this.file.name}". Status: ${this.status}`)}toJSON(){const t={};for(const e in this.attributes)t[e]=this.attributes[e];return t}}class BlobUpload{constructor(t){this.blob=t;this.file=t.file;const{url:e,headers:r}=t.directUploadData;this.xhr=new XMLHttpRequest;this.xhr.open("PUT",e,true);this.xhr.responseType="text";for(const t in r)this.xhr.setRequestHeader(t,r[t]);this.xhr.addEventListener("load",(t=>this.requestDidLoad(t)));this.xhr.addEventListener("error",(t=>this.requestDidError(t)))}create(t){this.callback=t;this.xhr.send(this.file.slice())}requestDidLoad(t){const{status:e,response:r}=this.xhr;e>=200&&e<300?this.callback(null,r):this.requestDidError(t)}requestDidError(t){this.callback(`Error storing "${this.file.name}". Status: ${this.xhr.status}`)}}let s=0;class DirectUpload{constructor(t,e,r,i={}){this.id=++s;this.file=t;this.url=e;this.delegate=r;this.customHeaders=i}create(t){FileChecksum.create(this.file,((e,r)=>{if(e){t(e);return}const i=new BlobRecord(this.file,r,this.url,this.customHeaders);notify(this.delegate,"directUploadWillCreateBlobWithXHR",i.xhr);i.create((e=>{if(e)t(e);else{const e=new BlobUpload(i);notify(this.delegate,"directUploadWillStoreFileWithXHR",e.xhr);e.create((e=>{e?t(e):t(null,i.toJSON())}))}}))}))}}function notify(t,e,...r){if(t&&typeof t[e]=="function")return t[e](...r)}class DirectUploadController{constructor(t,e){this.input=t;this.file=e;this.directUpload=new DirectUpload(this.file,this.url,this);this.dispatch("initialize")}start(t){const e=document.createElement("input");e.type="hidden";e.name=this.input.name;this.input.insertAdjacentElement("beforebegin",e);this.dispatch("start");this.directUpload.create(((r,i)=>{if(r){e.parentNode.removeChild(e);this.dispatchError(r)}else e.value=i.signed_id;this.dispatch("end");t(r)}))}uploadRequestDidProgress(t){const e=t.loaded/t.total*100;e&&this.dispatch("progress",{progress:e})}get url(){return this.input.getAttribute("data-direct-upload-url")}dispatch(t,e={}){e.file=this.file;e.id=this.directUpload.id;return dispatchEvent(this.input,`direct-upload:${t}`,{detail:e})}dispatchError(t){const e=this.dispatch("error",{error:t});e.defaultPrevented||alert(t)}directUploadWillCreateBlobWithXHR(t){this.dispatch("before-blob-request",{xhr:t})}directUploadWillStoreFileWithXHR(t){this.dispatch("before-storage-request",{xhr:t});t.upload.addEventListener("progress",(t=>this.uploadRequestDidProgress(t)))}}const n="input[type=file][data-direct-upload-url]:not([disabled])";class DirectUploadsController{constructor(t){this.form=t;this.inputs=findElements(t,n).filter((t=>t.files.length))}start(t){const e=this.createDirectUploadControllers();const startNextController=()=>{const r=e.shift();if(r)r.start((e=>{if(e){t(e);this.dispatch("end")}else startNextController()}));else{t();this.dispatch("end")}};this.dispatch("start");startNextController()}createDirectUploadControllers(){const t=[];this.inputs.forEach((e=>{toArray(e.files).forEach((r=>{const i=new DirectUploadController(e,r);t.push(i)}))}));return t}dispatch(t,e={}){return dispatchEvent(this.form,`direct-uploads:${t}`,{detail:e})}}const a="data-direct-uploads-processing";const o=new WeakMap;let h=false;function start(){if(!h){h=true;document.addEventListener("click",didClick,true);document.addEventListener("submit",didSubmitForm,true);document.addEventListener("ajax:before",didSubmitRemoteElement)}}function didClick(t){const e=t.target.closest("button, input");e&&e.type==="submit"&&e.form&&o.set(e.form,e)}function didSubmitForm(t){handleFormSubmissionEvent(t)}function didSubmitRemoteElement(t){t.target.tagName=="FORM"&&handleFormSubmissionEvent(t)}function handleFormSubmissionEvent(t){const e=t.target;if(e.hasAttribute(a)){t.preventDefault();return}const r=new DirectUploadsController(e);const{inputs:i}=r;if(i.length){t.preventDefault();e.setAttribute(a,"");i.forEach(disable);r.start((t=>{e.removeAttribute(a);t?i.forEach(enable):submitForm(e)}))}}function submitForm(t){let e=o.get(t)||findElement(t,"input[type=submit], button[type=submit]");if(e){const{disabled:t}=e;e.disabled=false;e.focus();e.click();e.disabled=t}else{e=document.createElement("input");e.type="submit";e.style.display="none";t.appendChild(e);e.click();t.removeChild(e)}o.delete(t)}function disable(t){t.disabled=true}function enable(t){t.disabled=false}function autostart(){window.ActiveStorage&&start()}setTimeout(autostart,1);class AttachmentUpload{constructor(t,e){this.attachment=t;this.element=e;this.directUpload=new DirectUpload(t.file,this.directUploadUrl,this)}start(){this.directUpload.create(this.directUploadDidComplete.bind(this))}directUploadWillStoreFileWithXHR(t){t.upload.addEventListener("progress",(t=>{const e=t.loaded/t.total*100;this.attachment.setUploadProgress(e)}))}directUploadDidComplete(t,e){if(t)throw new Error(`Direct upload failed: ${t}`);this.attachment.setAttributes({sgid:e.attachable_sgid,url:this.createBlobUrl(e.signed_id,e.filename)})}createBlobUrl(t,e){return this.blobUrlTemplate.replace(":signed_id",t).replace(":filename",encodeURIComponent(e))}get directUploadUrl(){return this.element.dataset.directUploadUrl}get blobUrlTemplate(){return this.element.dataset.blobUrlTemplate}}addEventListener("trix-attachment-add",(t=>{const{attachment:e,target:r}=t;if(e.file){const t=new AttachmentUpload(e,r);t.start()}}));var l={};export{l as default};
4
+
@@ -0,0 +1,4 @@
1
+ // @simonwep/pickr@1.9.1 downloaded from https://ga.jspm.io/npm:@simonwep/pickr@1.9.1/dist/pickr.min.js
2
+
3
+ var t={};!function(u,h){t=h()}(self,(()=>(()=>{var t={d:(u,h)=>{for(var d in h)t.o(h,d)&&!t.o(u,d)&&Object.defineProperty(u,d,{enumerable:!0,get:h[d]})},o:(t,u)=>Object.prototype.hasOwnProperty.call(t,u),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},u={};t.d(u,{default:()=>E});var h={};function n(t,u,h,d,m={}){u instanceof HTMLCollection||u instanceof NodeList?u=Array.from(u):Array.isArray(u)||(u=[u]),Array.isArray(h)||(h=[h]);for(const S of u)for(const u of h)S[t](u,d,{capture:!1,...m});return Array.prototype.slice.call(arguments,1)}t.r(h),t.d(h,{adjustableInputNumbers:()=>p,createElementFromString:()=>r,createFromTemplate:()=>a,eventPath:()=>l,off:()=>m,on:()=>d,resolveElement:()=>c});const d=n.bind(null,"addEventListener"),m=n.bind(null,"removeEventListener");function r(t){const u=document.createElement("div");return u.innerHTML=t.trim(),u.firstElementChild}function a(t){const e=(t,u)=>{const h=t.getAttribute(u);return t.removeAttribute(u),h},o=(t,u={})=>{const h=e(t,":obj"),d=e(t,":ref"),m=h?u[h]={}:u;d&&(u[d]=t);for(const u of Array.from(t.children)){const t=e(u,":arr"),h=o(u,t?{}:m);t&&(m[t]||(m[t]=[])).push(Object.keys(h).length?h:u)}return u};return o(r(t))}function l(t){let u=t.path||t.composedPath&&t.composedPath();if(u)return u;let h=t.target.parentElement;for(u=[t.target,h];h=h.parentElement;)u.push(h);return u.push(document,window),u}function c(t){return t instanceof Element?t:"string"==typeof t?t.split(/>>/g).reduce(((t,u,h,d)=>(t=t.querySelector(u),h<d.length-1?t.shadowRoot:t)),document):null}function p(t,u=(t=>t)){function o(h){const d=[.001,.01,.1][Number(h.shiftKey||2*h.ctrlKey)]*(h.deltaY<0?1:-1);let m=0,S=t.selectionStart;t.value=t.value.replace(/[\d.]+/g,((t,h)=>h<=S&&h+t.length>=S?(S=h,u(Number(t),d,m)):(m++,t))),t.focus(),t.setSelectionRange(S,S),h.preventDefault(),t.dispatchEvent(new Event("input"))}d(t,"focus",(()=>d(window,"wheel",o,{passive:!1}))),d(t,"blur",(()=>m(window,"wheel",o)))}const{min:S,max:L,floor:B,round:P}=Math;function f(t,u,h){u/=100,h/=100;const d=B(t=t/360*6),m=t-d,S=h*(1-u),L=h*(1-m*u),P=h*(1-(1-m)*u),x=d%6;return[255*[h,L,S,S,P,h][x],255*[P,h,h,L,S,S][x],255*[S,S,P,h,h,L][x]]}function v(t,u,h){const d=(2-(u/=100))*(h/=100)/2;return 0!==d&&(u=1===d?0:d<.5?u*h/(2*d):u*h/(2-2*d)),[t,100*u,100*d]}function b(t,u,h){const d=S(t/=255,u/=255,h/=255),m=L(t,u,h),B=m-d;let P,x;if(0===B)P=x=0;else{x=B/m;const d=((m-t)/6+B/2)/B,S=((m-u)/6+B/2)/B,L=((m-h)/6+B/2)/B;t===m?P=L-S:u===m?P=1/3+d-L:h===m&&(P=2/3+S-d),P<0?P+=1:P>1&&(P-=1)}return[360*P,100*x,100*m]}function y(t,u,h,d){u/=100,h/=100;return[...b(255*(1-S(1,(t/=100)*(1-(d/=100))+d)),255*(1-S(1,u*(1-d)+d)),255*(1-S(1,h*(1-d)+d)))]}function g(t,u,h){u/=100;const d=2*(u*=(h/=100)<.5?h:1-h)/(h+u)*100,m=100*(h+u);return[t,isNaN(d)?0:d,m]}function _(t){return b(...t.match(/.{2}/g).map((t=>parseInt(t,16))))}function w(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if("black"===t.toLowerCase())return"#000";const u=document.createElement("canvas").getContext("2d");return u.fillStyle=t,"#000"===u.fillStyle?null:u.fillStyle}(t):t;const u={cmyk:/^cmyk\D+([\d.]+)\D+([\d.]+)\D+([\d.]+)\D+([\d.]+)/i,rgba:/^rgba?\D+([\d.]+)(%?)\D+([\d.]+)(%?)\D+([\d.]+)(%?)\D*?(([\d.]+)(%?)|$)/i,hsla:/^hsla?\D+([\d.]+)\D+([\d.]+)\D+([\d.]+)\D*?(([\d.]+)(%?)|$)/i,hsva:/^hsva?\D+([\d.]+)\D+([\d.]+)\D+([\d.]+)\D*?(([\d.]+)(%?)|$)/i,hexa:/^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i},o=t=>t.map((t=>/^(|\d+)\.\d+|\d+$/.test(t)?Number(t):void 0));let h;t:for(const d in u)if(h=u[d].exec(t))switch(d){case"cmyk":{const[,t,u,m,S]=o(h);if(t>100||u>100||m>100||S>100)break t;return{values:y(t,u,m,S),type:d}}case"rgba":{let[,t,,u,,m,,,S]=o(h);if(t="%"===h[2]?t/100*255:t,u="%"===h[4]?u/100*255:u,m="%"===h[6]?m/100*255:m,S="%"===h[9]?S/100:S,t>255||u>255||m>255||S<0||S>1)break t;return{values:[...b(t,u,m),S],a:S,type:d}}case"hexa":{let[,t]=h;4!==t.length&&3!==t.length||(t=t.split("").map((t=>t+t)).join(""));const u=t.substring(0,6);let m=t.substring(6);return m=m?parseInt(m,16)/255:void 0,{values:[..._(u),m],a:m,type:d}}case"hsla":{let[,t,u,m,,S]=o(h);if(S="%"===h[6]?S/100:S,t>360||u>100||m>100||S<0||S>1)break t;return{values:[...g(t,u,m),S],a:S,type:d}}case"hsva":{let[,t,u,m,,S]=o(h);if(S="%"===h[6]?S/100:S,t>360||u>100||m>100||S<0||S>1)break t;return{values:[t,u,m,S],a:S,type:d}}}return{values:null,type:null}}function A(t=0,u=0,h=0,d=1){const i=(t,u)=>(h=-1)=>u(~h?t.map((t=>Number(t.toFixed(h)))):t),m={h:t,s:u,v:h,a:d,toHSVA(){const t=[m.h,m.s,m.v,m.a];return t.toString=i(t,(t=>`hsva(${t[0]}, ${t[1]}%, ${t[2]}%, ${m.a})`)),t},toHSLA(){const t=[...v(m.h,m.s,m.v),m.a];return t.toString=i(t,(t=>`hsla(${t[0]}, ${t[1]}%, ${t[2]}%, ${m.a})`)),t},toRGBA(){const t=[...f(m.h,m.s,m.v),m.a];return t.toString=i(t,(t=>`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${m.a})`)),t},toCMYK(){const t=function(t,u,h){const d=f(t,u,h),m=d[0]/255,L=d[1]/255,B=d[2]/255,P=S(1-m,1-L,1-B);return[100*(1===P?0:(1-m-P)/(1-P)),100*(1===P?0:(1-L-P)/(1-P)),100*(1===P?0:(1-B-P)/(1-P)),100*P]}(m.h,m.s,m.v);return t.toString=i(t,(t=>`cmyk(${t[0]}%, ${t[1]}%, ${t[2]}%, ${t[3]}%)`)),t},toHEXA(){const t=function(t,u,h){return f(t,u,h).map((t=>P(t).toString(16).padStart(2,"0")))}(m.h,m.s,m.v),u=m.a>=1?"":Number((255*m.a).toFixed(0)).toString(16).toUpperCase().padStart(2,"0");return u&&t.push(u),t.toString=()=>`#${t.join("").toUpperCase()}`,t},clone:()=>A(m.h,m.s,m.v,m.a)};return m}const $=t=>Math.max(Math.min(t,1),0);function C(t){const u={options:Object.assign({lock:null,onchange:()=>0,onstop:()=>0},t),_keyboard(t){const{options:h}=u,{type:d,key:m}=t;if(document.activeElement===h.wrapper){const{lock:h}=u.options,S="ArrowUp"===m,L="ArrowRight"===m,B="ArrowDown"===m,P="ArrowLeft"===m;if("keydown"===d&&(S||L||B||P)){let d=0,m=0;"v"===h?d=S||L?1:-1:"h"===h?d=S||L?-1:1:(m=S?-1:B?1:0,d=P?-1:L?1:0),u.update($(u.cache.x+.01*d),$(u.cache.y+.01*m)),t.preventDefault()}else m.startsWith("Arrow")&&(u.options.onstop(),t.preventDefault())}},_tapstart(t){d(document,["mouseup","touchend","touchcancel"],u._tapstop),d(document,["mousemove","touchmove"],u._tapmove),t.cancelable&&t.preventDefault(),u._tapmove(t)},_tapmove(t){const{options:h,cache:d}=u,{lock:m,element:S,wrapper:L}=h,B=L.getBoundingClientRect();let P=0,x=0;if(t){const u=t&&t.touches&&t.touches[0];P=t?(u||t).clientX:0,x=t?(u||t).clientY:0,P<B.left?P=B.left:P>B.left+B.width&&(P=B.left+B.width),x<B.top?x=B.top:x>B.top+B.height&&(x=B.top+B.height),P-=B.left,x-=B.top}else d&&(P=d.x*B.width,x=d.y*B.height);"h"!==m&&(S.style.left=`calc(${P/B.width*100}% - ${S.offsetWidth/2}px)`),"v"!==m&&(S.style.top=`calc(${x/B.height*100}% - ${S.offsetHeight/2}px)`),u.cache={x:P/B.width,y:x/B.height};const R=$(P/B.width),D=$(x/B.height);switch(m){case"v":return h.onchange(R);case"h":return h.onchange(D);default:return h.onchange(R,D)}},_tapstop(){u.options.onstop(),m(document,["mouseup","touchend","touchcancel"],u._tapstop),m(document,["mousemove","touchmove"],u._tapmove)},trigger(){u._tapmove()},update(t=0,h=0){const{left:d,top:m,width:S,height:L}=u.options.wrapper.getBoundingClientRect();"h"===u.options.lock&&(h=t),u._tapmove({clientX:d+S*t,clientY:m+L*h})},destroy(){const{options:t,_tapstart:h,_keyboard:d}=u;m(document,["keydown","keyup"],d),m([t.wrapper,t.element],"mousedown",h),m([t.wrapper,t.element],"touchstart",h,{passive:!1})}},{options:h,_tapstart:S,_keyboard:L}=u;return d([h.wrapper,h.element],"mousedown",S),d([h.wrapper,h.element],"touchstart",S,{passive:!1}),d(document,["keydown","keyup"],L),u}function k(t={}){t=Object.assign({onchange:()=>0,className:"",elements:[]},t);const u=d(t.elements,"click",(u=>{t.elements.forEach((h=>h.classList[u.target===h?"add":"remove"](t.className))),t.onchange(u),u.stopPropagation()}));return{destroy:()=>m(...u)}}const x={variantFlipOrder:{start:"sme",middle:"mse",end:"ems"},positionFlipOrder:{top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},position:"bottom",margin:8,padding:0},O=(t,u,h)=>{const d="object"!=typeof t||t instanceof HTMLElement?{reference:t,popper:u,...h}:t;return{update(t=d){const{reference:u,popper:h}=Object.assign(d,t);if(!h||!u)throw new Error("Popper- or reference-element missing.");return((t,u,h)=>{const{container:d,arrow:m,margin:S,padding:L,position:B,variantFlipOrder:P,positionFlipOrder:R}={container:document.documentElement.getBoundingClientRect(),...x,...h},{left:D,top:H}=u.style;u.style.left="0",u.style.top="0";const j=t.getBoundingClientRect(),F=u.getBoundingClientRect(),N={t:j.top-F.height-S,b:j.bottom+S,r:j.right+S,l:j.left-F.width-S},T={vs:j.left,vm:j.left+j.width/2-F.width/2,ve:j.left+j.width-F.width,hs:j.top,hm:j.bottom-j.height/2-F.height/2,he:j.bottom-F.height},[M,U="middle"]=B.split("-"),V=R[M],z=P[U],{top:I,left:X,bottom:G,right:K}=d;for(const t of V){const h="t"===t||"b"===t;let d=N[t];const[S,B]=h?["top","left"]:["left","top"],[P,x]=h?[F.height,F.width]:[F.width,F.height],[R,D]=h?[G,K]:[K,G],[H,M]=h?[I,X]:[X,I];if(!(d<H||d+P+L>R))for(const R of z){let H=T[(h?"v":"h")+R];if(!(H<M||H+x+L>D)){if(H-=F[B],d-=F[S],u.style[B]=`${H}px`,u.style[S]=`${d}px`,m){const u=h?j.width/2:j.height/2,L=x/2,D=u>L,F=H+{s:D?L:u,m:L,e:D?L:x-u}[R],N=d+{t:P,b:0,r:0,l:P}[t];m.style[B]=`${F}px`,m.style[S]=`${N}px`}return t+R}}}return u.style.left=D,u.style.top=H,null})(u,h,d)}}};class E{static utils=h;static version="1.9.1";static I18N_DEFAULTS={"ui:dialog":"color picker dialog","btn:toggle":"toggle color picker dialog","btn:swatch":"color swatch","btn:last-color":"use previous color","btn:save":"Save","btn:cancel":"Cancel","btn:clear":"Clear","aria:btn:save":"save and close","aria:btn:cancel":"cancel and close","aria:btn:clear":"clear and close","aria:input":"color input field","aria:palette":"color selection area","aria:hue":"hue selection slider","aria:opacity":"selection slider"};static DEFAULT_OPTIONS={appClass:null,theme:"classic",useAsButton:!1,padding:8,disabled:!1,comparison:!0,closeOnScroll:!1,outputPrecision:0,lockOpacity:!1,autoReposition:!0,container:"body",components:{interaction:{}},i18n:{},swatches:null,inline:!1,sliders:null,default:"#42445a",defaultRepresentation:null,position:"bottom-middle",adjustableNumbers:!0,showAlways:!1,closeWithKey:"Escape"};_initializingActive=!0;_recalc=!0;_nanopop=null;_root=null;_color=A();_lastColor=A();_swatchColors=[];_setupAnimationFrame=null;_eventListener={init:[],save:[],hide:[],show:[],clear:[],change:[],changestop:[],cancel:[],swatchselect:[]};constructor(t){this.options=t=Object.assign({...E.DEFAULT_OPTIONS},t);const{swatches:u,components:h,theme:d,sliders:m,lockOpacity:S,padding:L}=t;["nano","monolith"].includes(d)&&!m&&(t.sliders="h"),h.interaction||(h.interaction={});const{preview:B,opacity:P,hue:x,palette:R}=h;h.opacity=!S&&P,h.palette=R||B||P||x,this._preBuild(),this._buildComponents(),this._bindEvents(),this._finalBuild(),u&&u.length&&u.forEach((t=>this.addSwatch(t)));const{button:D,app:H}=this._root;this._nanopop=O(D,H,{margin:L}),D.setAttribute("role","button"),D.setAttribute("aria-label",this._t("btn:toggle"));const j=this;this._setupAnimationFrame=requestAnimationFrame((function e(){if(!H.offsetWidth)return requestAnimationFrame(e);j.setColor(t.default),j._rePositioningPicker(),t.defaultRepresentation&&(j._representation=t.defaultRepresentation,j.setColorRepresentation(j._representation)),t.showAlways&&j.show(),j._initializingActive=!1,j._emit("init")}))}static create=t=>new E(t);_preBuild(){const{options:t}=this;for(const u of["el","container"])t[u]=c(t[u]);this._root=(t=>{const{components:u,useAsButton:h,inline:d,appClass:m,theme:S,lockOpacity:L}=t.options,l=t=>t?"":'style="display:none" hidden',c=u=>t._t(u),B=a(`\n <div :ref="root" class="pickr">\n\n ${h?"":'<button type="button" :ref="button" class="pcr-button"></button>'}\n\n <div :ref="app" class="pcr-app ${m||""}" data-theme="${S}" ${d?'style="position: unset"':""} aria-label="${c("ui:dialog")}" role="window">\n <div class="pcr-selection" ${l(u.palette)}>\n <div :obj="preview" class="pcr-color-preview" ${l(u.preview)}>\n <button type="button" :ref="lastColor" class="pcr-last-color" aria-label="${c("btn:last-color")}"></button>\n <div :ref="currentColor" class="pcr-current-color"></div>\n </div>\n\n <div :obj="palette" class="pcr-color-palette">\n <div :ref="picker" class="pcr-picker"></div>\n <div :ref="palette" class="pcr-palette" tabindex="0" aria-label="${c("aria:palette")}" role="listbox"></div>\n </div>\n\n <div :obj="hue" class="pcr-color-chooser" ${l(u.hue)}>\n <div :ref="picker" class="pcr-picker"></div>\n <div :ref="slider" class="pcr-hue pcr-slider" tabindex="0" aria-label="${c("aria:hue")}" role="slider"></div>\n </div>\n\n <div :obj="opacity" class="pcr-color-opacity" ${l(u.opacity)}>\n <div :ref="picker" class="pcr-picker"></div>\n <div :ref="slider" class="pcr-opacity pcr-slider" tabindex="0" aria-label="${c("aria:opacity")}" role="slider"></div>\n </div>\n </div>\n\n <div class="pcr-swatches ${u.palette?"":"pcr-last"}" :ref="swatches"></div>\n\n <div :obj="interaction" class="pcr-interaction" ${l(Object.keys(u.interaction).length)}>\n <input :ref="result" class="pcr-result" type="text" spellcheck="false" ${l(u.interaction.input)} aria-label="${c("aria:input")}">\n\n <input :arr="options" class="pcr-type" data-type="HEXA" value="${L?"HEX":"HEXA"}" type="button" ${l(u.interaction.hex)}>\n <input :arr="options" class="pcr-type" data-type="RGBA" value="${L?"RGB":"RGBA"}" type="button" ${l(u.interaction.rgba)}>\n <input :arr="options" class="pcr-type" data-type="HSLA" value="${L?"HSL":"HSLA"}" type="button" ${l(u.interaction.hsla)}>\n <input :arr="options" class="pcr-type" data-type="HSVA" value="${L?"HSV":"HSVA"}" type="button" ${l(u.interaction.hsva)}>\n <input :arr="options" class="pcr-type" data-type="CMYK" value="CMYK" type="button" ${l(u.interaction.cmyk)}>\n\n <input :ref="save" class="pcr-save" value="${c("btn:save")}" type="button" ${l(u.interaction.save)} aria-label="${c("aria:btn:save")}">\n <input :ref="cancel" class="pcr-cancel" value="${c("btn:cancel")}" type="button" ${l(u.interaction.cancel)} aria-label="${c("aria:btn:cancel")}">\n <input :ref="clear" class="pcr-clear" value="${c("btn:clear")}" type="button" ${l(u.interaction.clear)} aria-label="${c("aria:btn:clear")}">\n </div>\n </div>\n </div>\n `),P=B.interaction;return P.options.find((t=>!t.hidden&&!t.classList.add("active"))),P.type=()=>P.options.find((t=>t.classList.contains("active"))),B})(this),t.useAsButton&&(this._root.button=t.el),t.container.appendChild(this._root.root)}_finalBuild(){const t=this.options,u=this._root;if(t.container.removeChild(u.root),t.inline){const h=t.el.parentElement;t.el.nextSibling?h.insertBefore(u.app,t.el.nextSibling):h.appendChild(u.app)}else t.container.appendChild(u.app);t.useAsButton?t.inline&&t.el.remove():t.el.parentNode.replaceChild(u.root,t.el),t.disabled&&this.disable(),t.comparison||(u.button.style.transition="none",t.useAsButton||(u.preview.lastColor.style.transition="none")),this.hide()}_buildComponents(){const t=this,u=this.options.components,h=(t.options.sliders||"v").repeat(2),[d,m]=h.match(/^[vh]+$/g)?h:[],s=()=>this._color||(this._color=this._lastColor.clone()),S={palette:C({element:t._root.palette.picker,wrapper:t._root.palette.palette,onstop:()=>t._emit("changestop","slider",t),onchange(h,d){if(!u.palette)return;const m=s(),{_root:S,options:L}=t,{lastColor:B,currentColor:P}=S.preview;t._recalc&&(m.s=100*h,m.v=100-100*d,m.v<0&&(m.v=0),t._updateOutput("slider"));const x=m.toRGBA().toString(0);this.element.style.background=x,this.wrapper.style.background=`\n linear-gradient(to top, rgba(0, 0, 0, ${m.a}), transparent),\n linear-gradient(to left, hsla(${m.h}, 100%, 50%, ${m.a}), rgba(255, 255, 255, ${m.a}))\n `,L.comparison?L.useAsButton||t._lastColor||B.style.setProperty("--pcr-color",x):(S.button.style.setProperty("--pcr-color",x),S.button.classList.remove("clear"));const R=m.toHEXA().toString();for(const{el:u,color:h}of t._swatchColors)u.classList[R===h.toHEXA().toString()?"add":"remove"]("pcr-active");P.style.setProperty("--pcr-color",x)}}),hue:C({lock:"v"===m?"h":"v",element:t._root.hue.picker,wrapper:t._root.hue.slider,onstop:()=>t._emit("changestop","slider",t),onchange(h){if(!u.hue||!u.palette)return;const d=s();t._recalc&&(d.h=360*h),this.element.style.backgroundColor=`hsl(${d.h}, 100%, 50%)`,S.palette.trigger()}}),opacity:C({lock:"v"===d?"h":"v",element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onstop:()=>t._emit("changestop","slider",t),onchange(h){if(!u.opacity||!u.palette)return;const d=s();t._recalc&&(d.a=Math.round(100*h)/100),this.element.style.background=`rgba(0, 0, 0, ${d.a})`,S.palette.trigger()}}),selectable:k({elements:t._root.interaction.options,className:"active",onchange(u){t._representation=u.target.getAttribute("data-type").toUpperCase(),t._recalc&&t._updateOutput("swatch")}})};this._components=S}_bindEvents(){const{_root:t,options:u}=this,h=[d(t.interaction.clear,"click",(()=>this._clearColor())),d([t.interaction.cancel,t.preview.lastColor],"click",(()=>{this.setHSVA(...(this._lastColor||this._color).toHSVA(),!0),this._emit("cancel")})),d(t.interaction.save,"click",(()=>{!this.applyColor()&&!u.showAlways&&this.hide()})),d(t.interaction.result,["keyup","input"],(t=>{this.setColor(t.target.value,!0)&&!this._initializingActive&&(this._emit("change",this._color,"input",this),this._emit("changestop","input",this)),t.stopImmediatePropagation()})),d(t.interaction.result,["focus","blur"],(t=>{this._recalc="blur"===t.type,this._recalc&&this._updateOutput(null)})),d([t.palette.palette,t.palette.picker,t.hue.slider,t.hue.picker,t.opacity.slider,t.opacity.picker],["mousedown","touchstart"],(()=>this._recalc=!0),{passive:!0})];if(!u.showAlways){const m=u.closeWithKey;h.push(d(t.button,"click",(()=>this.isOpen()?this.hide():this.show())),d(document,"keyup",(t=>this.isOpen()&&(t.key===m||t.code===m)&&this.hide())),d(document,["touchstart","mousedown"],(u=>{this.isOpen()&&!l(u).some((u=>u===t.app||u===t.button))&&this.hide()}),{capture:!0}))}if(u.adjustableNumbers){const u={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};p(t.interaction.result,((t,h,d)=>{const m=u[this.getColorRepresentation().toLowerCase()];if(m){const u=m[d],S=t+(u>=100?1e3*h:h);return S<=0?0:Number((S<u?S:u).toPrecision(3))}return t}))}if(u.autoReposition&&!u.inline){let t=null;const m=this;h.push(d(window,["scroll","resize"],(()=>{m.isOpen()&&(u.closeOnScroll&&m.hide(),null===t?(t=setTimeout((()=>t=null),100),requestAnimationFrame((function e(){m._rePositioningPicker(),null!==t&&requestAnimationFrame(e)}))):(clearTimeout(t),t=setTimeout((()=>t=null),100)))}),{capture:!0}))}this._eventBindings=h}_rePositioningPicker(){const{options:t}=this;if(!t.inline&&!this._nanopop.update({container:document.body.getBoundingClientRect(),position:t.position})){const t=this._root.app,u=t.getBoundingClientRect();t.style.top=(window.innerHeight-u.height)/2+"px",t.style.left=(window.innerWidth-u.width)/2+"px"}}_updateOutput(t){const{_root:u,_color:h,options:d}=this;if(u.interaction.type()){const t=`to${u.interaction.type().getAttribute("data-type")}`;u.interaction.result.value="function"==typeof h[t]?h[t]().toString(d.outputPrecision):""}!this._initializingActive&&this._recalc&&this._emit("change",h,t,this)}_clearColor(t=!1){const{_root:u,options:h}=this;h.useAsButton||u.button.style.setProperty("--pcr-color","rgba(0, 0, 0, 0.15)"),u.button.classList.add("clear"),h.showAlways||this.hide(),this._lastColor=null,this._initializingActive||t||(this._emit("save",null),this._emit("clear"))}_parseLocalColor(t){const{values:u,type:h,a:d}=w(t),{lockOpacity:m}=this.options,S=void 0!==d&&1!==d;return u&&3===u.length&&(u[3]=void 0),{values:!u||m&&S?null:u,type:h}}_t(t){return this.options.i18n[t]||E.I18N_DEFAULTS[t]}_emit(t,...u){this._eventListener[t].forEach((t=>t(...u,this)))}on(t,u){return this._eventListener[t].push(u),this}off(t,u){const h=this._eventListener[t]||[],d=h.indexOf(u);return~d&&h.splice(d,1),this}addSwatch(t){const{values:u}=this._parseLocalColor(t);if(u){const{_swatchColors:t,_root:h}=this,m=A(...u),S=r(`<button type="button" style="--pcr-color: ${m.toRGBA().toString(0)}" aria-label="${this._t("btn:swatch")}"/>`);return h.swatches.appendChild(S),t.push({el:S,color:m}),this._eventBindings.push(d(S,"click",(()=>{this.setHSVA(...m.toHSVA(),!0),this._emit("swatchselect",m),this._emit("change",m,"swatch",this)}))),!0}return!1}removeSwatch(t){const u=this._swatchColors[t];if(u){const{el:h}=u;return this._root.swatches.removeChild(h),this._swatchColors.splice(t,1),!0}return!1}applyColor(t=!1){const{preview:u,button:h}=this._root,d=this._color.toRGBA().toString(0);return u.lastColor.style.setProperty("--pcr-color",d),this.options.useAsButton||h.style.setProperty("--pcr-color",d),h.classList.remove("clear"),this._lastColor=this._color.clone(),this._initializingActive||t||this._emit("save",this._color),this}destroy(){cancelAnimationFrame(this._setupAnimationFrame),this._eventBindings.forEach((t=>m(...t))),Object.keys(this._components).forEach((t=>this._components[t].destroy()))}destroyAndRemove(){this.destroy();const{root:t,app:u}=this._root;t.parentElement&&t.parentElement.removeChild(t),u.parentElement.removeChild(u),Object.keys(this).forEach((t=>this[t]=null))}hide(){return!!this.isOpen()&&(this._root.app.classList.remove("visible"),this._emit("hide"),!0)}show(){return!this.options.disabled&&!this.isOpen()&&(this._root.app.classList.add("visible"),this._rePositioningPicker(),this._emit("show",this._color),this)}isOpen(){return this._root.app.classList.contains("visible")}setHSVA(t=360,u=0,h=0,d=1,m=!1){const S=this._recalc;if(this._recalc=!1,t<0||t>360||u<0||u>100||h<0||h>100||d<0||d>1)return!1;this._color=A(t,u,h,d);const{hue:L,opacity:B,palette:P}=this._components;return L.update(t/360),B.update(d),P.update(u/100,1-h/100),m||this.applyColor(),S&&this._updateOutput(),this._recalc=S,!0}setColor(t,u=!1){if(null===t)return this._clearColor(u),!0;const{values:h,type:d}=this._parseLocalColor(t);if(h){const t=d.toUpperCase(),{options:m}=this._root.interaction,S=m.find((u=>u.getAttribute("data-type")===t));if(S&&!S.hidden)for(const t of m)t.classList[t===S?"add":"remove"]("active");return!!this.setHSVA(...h,u)&&this.setColorRepresentation(t)}return!1}setColorRepresentation(t){return t=t.toUpperCase(),!!this._root.interaction.options.find((u=>u.getAttribute("data-type").startsWith(t)&&!u.click()))}getColorRepresentation(){return this._representation}getColor(){return this._color}getSelectedColor(){return this._lastColor}getRoot(){return this._root}disable(){return this.hide(),this.options.disabled=!0,this._root.button.classList.add("disabled"),this}enable(){return this.options.disabled=!1,this._root.button.classList.remove("disabled"),this}}return u.default})()));var u=t;const h=t.Pickr;export{h as Pickr,u as default};
4
+
@@ -0,0 +1,4 @@
1
+ // @stimulus-components/rails-nested-form@5.0.0 downloaded from https://ga.jspm.io/npm:@stimulus-components/rails-nested-form@5.0.0/dist/stimulus-rails-nested-form.mjs
2
+
3
+ import{Controller as e}from"@hotwired/stimulus";const t=class _RailsNestedForm extends e{add(e){e.preventDefault();const t=this.templateTarget.innerHTML.replace(/NEW_RECORD/g,(new Date).getTime().toString());this.targetTarget.insertAdjacentHTML("beforebegin",t);const r=new CustomEvent("rails-nested-form:add",{bubbles:!0});this.element.dispatchEvent(r)}remove(e){e.preventDefault();const t=e.target.closest(this.wrapperSelectorValue);if(t.dataset.newRecord==="true")t.remove();else{t.style.display="none";const e=t.querySelector("input[name*='_destroy']");e.value="1"}const r=new CustomEvent("rails-nested-form:remove",{bubbles:!0});this.element.dispatchEvent(r)}};t.targets=["target","template"],t.values={wrapperSelector:{type:String,default:".nested-form-wrapper"}};let r=t;export{r as default};
4
+