spree_admin 5.1.7 → 5.2.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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/spree/admin/application.scss +5 -2
- data/app/assets/stylesheets/spree/admin/components/_alerts.scss +26 -8
- data/app/assets/stylesheets/spree/admin/components/_badges.scss +4 -3
- data/app/assets/stylesheets/spree/admin/components/_bulk_panel.scss +11 -26
- data/app/assets/stylesheets/spree/admin/components/_buttons.scss +9 -18
- data/app/assets/stylesheets/spree/admin/components/_cards.scss +45 -24
- data/app/assets/stylesheets/spree/admin/components/_dialogs.scss +204 -0
- data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +39 -13
- data/app/assets/stylesheets/spree/admin/components/_filters.scss +28 -10
- data/app/assets/stylesheets/spree/admin/components/_main.scss +36 -17
- data/app/assets/stylesheets/spree/admin/components/_media_form.scss +11 -3
- data/app/assets/stylesheets/spree/admin/components/_modals.scss +1 -1
- data/app/assets/stylesheets/spree/admin/components/_navigation.scss +0 -1
- data/app/assets/stylesheets/spree/admin/components/_search_picker.scss +0 -8
- data/app/assets/stylesheets/spree/admin/components/_sortable_tree.scss +2 -1
- data/app/assets/stylesheets/spree/admin/components/_tables.scss +20 -26
- data/app/assets/stylesheets/spree/admin/components/_tooltips.scss +20 -0
- data/app/assets/stylesheets/spree/admin/components/_variants_form.scss +3 -3
- data/app/assets/stylesheets/spree/admin/components/_wizard.scss +27 -0
- data/app/assets/stylesheets/spree/admin/global/_variables.scss +61 -43
- data/app/assets/stylesheets/spree/admin/plugins/_trix_custom.scss +5 -0
- data/app/assets/stylesheets/spree/admin/plugins/tom-select.scss +1 -1
- data/app/assets/stylesheets/spree/admin/plugins/uppy_fixes.scss +52 -3
- data/app/assets/stylesheets/spree/admin/shared/_base.scss +18 -17
- data/app/assets/stylesheets/spree/admin/shared/_forms.scss +7 -4
- data/app/assets/stylesheets/spree/admin/views/_page_builder.scss +12 -12
- data/app/controllers/concerns/spree/admin/page_builder_concern.rb +4 -4
- data/app/controllers/concerns/spree/admin/settings_concern.rb +23 -0
- data/app/controllers/spree/admin/admin_users_controller.rb +21 -6
- data/app/controllers/spree/admin/assets_controller.rb +3 -5
- data/app/controllers/spree/admin/base_controller.rb +2 -1
- data/app/controllers/spree/admin/custom_domains_controller.rb +1 -1
- data/app/controllers/spree/admin/errors_controller.rb +17 -3
- data/app/controllers/spree/admin/exports_controller.rb +7 -1
- data/app/controllers/spree/admin/gift_cards_controller.rb +5 -11
- data/app/controllers/spree/admin/import_mappings_controller.rb +15 -0
- data/app/controllers/spree/admin/import_rows_controller.rb +7 -0
- data/app/controllers/spree/admin/imports_controller.rb +66 -0
- data/app/controllers/spree/admin/invitations_controller.rb +3 -4
- data/app/controllers/spree/admin/json_previews_controller.rb +24 -0
- data/app/controllers/spree/admin/metafield_definitions_controller.rb +27 -0
- data/app/controllers/spree/admin/metafields_controller.rb +39 -0
- data/app/controllers/spree/admin/newsletter_subscribers_controller.rb +8 -0
- data/app/controllers/spree/admin/oauth_applications_controller.rb +2 -2
- data/app/controllers/spree/admin/orders/user_controller.rb +16 -10
- data/app/controllers/spree/admin/orders_controller.rb +17 -3
- data/app/controllers/spree/admin/page_blocks_controller.rb +2 -1
- data/app/controllers/spree/admin/page_links_controller.rb +9 -1
- data/app/controllers/spree/admin/pages_controller.rb +1 -9
- data/app/controllers/spree/admin/payment_methods_controller.rb +1 -5
- data/app/controllers/spree/admin/policies_controller.rb +28 -0
- data/app/controllers/spree/admin/products_controller.rb +8 -5
- data/app/controllers/spree/admin/profile_controller.rb +2 -0
- data/app/controllers/spree/admin/refund_reasons_controller.rb +1 -1
- data/app/controllers/spree/admin/reimbursement_types_controller.rb +1 -1
- data/app/controllers/spree/admin/resource_controller.rb +60 -1
- data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +1 -1
- data/app/controllers/spree/admin/return_authorizations_controller.rb +3 -0
- data/app/controllers/spree/admin/roles_controller.rb +1 -2
- data/app/controllers/spree/admin/shipping_categories_controller.rb +1 -1
- data/app/controllers/spree/admin/shipping_methods_controller.rb +2 -2
- data/app/controllers/spree/admin/stock_locations_controller.rb +2 -2
- data/app/controllers/spree/admin/store_credits_controller.rb +6 -0
- data/app/controllers/spree/admin/storefront_controller.rb +1 -1
- data/app/controllers/spree/admin/stores_controller.rb +8 -2
- data/app/controllers/spree/admin/tax_categories_controller.rb +1 -1
- data/app/controllers/spree/admin/tax_rates_controller.rb +2 -2
- data/app/controllers/spree/admin/translations_controller.rb +30 -50
- data/app/controllers/spree/admin/users_controller.rb +4 -0
- data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +2 -3
- data/app/controllers/spree/admin/zones_controller.rb +1 -1
- data/app/helpers/spree/admin/assets_helper.rb +42 -0
- data/app/helpers/spree/admin/base_helper.rb +58 -11
- data/app/helpers/spree/admin/bulk_operations_helper.rb +14 -12
- data/app/helpers/spree/admin/dialog_helper.rb +21 -0
- data/app/helpers/spree/admin/drawer_helper.rb +21 -0
- data/app/helpers/spree/admin/dropdown_helper.rb +32 -0
- data/app/helpers/spree/admin/json_preview_helper.rb +75 -0
- data/app/helpers/spree/admin/metafields_helper.rb +29 -0
- data/app/helpers/spree/admin/navigation_helper.rb +55 -23
- data/app/helpers/spree/admin/orders_filters_helper.rb +26 -17
- data/app/helpers/spree/admin/orders_helper.rb +9 -1
- data/app/helpers/spree/admin/page_builder_helper.rb +3 -8
- data/app/helpers/spree/admin/payments_helper.rb +2 -0
- data/app/helpers/spree/admin/products_helper.rb +0 -12
- data/app/helpers/spree/admin/translations_helper.rb +11 -4
- data/app/helpers/spree/admin/turbo_helper.rb +17 -4
- data/app/javascript/spree/admin/application.js +23 -5
- data/app/javascript/spree/admin/controllers/active_storage_upload_controller.js +41 -7
- data/app/javascript/spree/admin/controllers/admin_controller.js +0 -9
- data/app/javascript/spree/admin/controllers/auto_scroll_controller.js +33 -0
- data/app/javascript/spree/admin/controllers/codemirror_controller.js +45 -0
- data/app/javascript/spree/admin/controllers/highlight_controller.js +17 -0
- data/app/javascript/spree/admin/controllers/import_form_controller.js +27 -0
- data/app/javascript/spree/admin/controllers/sortable_auto_submit_controller.js +10 -0
- data/app/javascript/spree/admin/controllers/stock_transfer_controller.js +6 -5
- data/app/javascript/spree/admin/controllers/tabs_controller.js +21 -0
- data/app/javascript/spree/admin/controllers/tooltip_controller.js +136 -0
- data/app/javascript/spree/admin/controllers/turbo_submit_button_controller.js +14 -0
- data/app/javascript/spree/admin/helpers/bootstrap.js +5 -3
- data/app/models/spree/admin/form_builder.rb +250 -0
- data/app/views/layouts/spree/admin.html.erb +6 -2
- data/app/views/layouts/spree/admin_settings.html.erb +36 -0
- data/app/views/layouts/spree/admin_wizard.html.erb +34 -0
- data/app/views/layouts/spree/minimal.html.erb +2 -1
- data/app/views/layouts/spree/page_builder.html.erb +3 -2
- data/app/views/spree/admin/admin_users/_admin_user.html.erb +2 -2
- data/app/views/spree/admin/admin_users/_form.html.erb +3 -12
- data/app/views/spree/admin/admin_users/edit.html.erb +4 -7
- data/app/views/spree/admin/admin_users/index.html.erb +3 -3
- data/app/views/spree/admin/admin_users/show.html.erb +4 -4
- data/app/views/spree/admin/assets/create.turbo_stream.erb +1 -1
- data/app/views/spree/admin/assets/destroy.turbo_stream.erb +1 -1
- data/app/views/spree/admin/assets/edit.html.erb +16 -21
- data/app/views/spree/admin/assets/update.turbo_stream.erb +2 -2
- data/app/views/spree/admin/classifications/_classification.html.erb +5 -4
- data/app/views/spree/admin/classifications/create.turbo_stream.erb +1 -1
- data/app/views/spree/admin/classifications/index.html.erb +2 -2
- data/app/views/spree/admin/coupon_codes/_filters.html.erb +41 -0
- data/app/views/spree/admin/coupon_codes/_table_header.html.erb +0 -0
- data/app/views/spree/admin/coupon_codes/_table_row.html.erb +8 -0
- data/app/views/spree/admin/coupon_codes/index.html.erb +1 -58
- data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +4 -4
- data/app/views/spree/admin/custom_domains/edit.html.erb +1 -14
- data/app/views/spree/admin/custom_domains/new.html.erb +1 -14
- data/app/views/spree/admin/customer_returns/_filters.html.erb +11 -0
- data/app/views/spree/admin/customer_returns/_table_header.html.erb +8 -0
- data/app/views/spree/admin/customer_returns/{_customer_return.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/customer_returns/index.html.erb +1 -36
- data/app/views/spree/admin/dashboard/_setup_progress.html.erb +1 -1
- data/app/views/spree/admin/dashboard/_setup_tasks.html.erb +8 -10
- data/app/views/spree/admin/dashboard/_store_preview.html.erb +5 -5
- data/app/views/spree/admin/dashboard/_top_products.html.erb +3 -3
- data/app/views/spree/admin/dashboard/_updater.html.erb +1 -1
- data/app/views/spree/admin/dashboard/analytics.html.erb +37 -39
- data/app/views/spree/admin/dashboard/getting_started.html.erb +1 -1
- data/app/views/spree/admin/dashboard/setup_tasks/_add_products.html.erb +2 -2
- data/app/views/spree/admin/dashboard/show.html.erb +1 -1
- data/app/views/spree/admin/digital_assets/_digital_asset.html.erb +9 -10
- data/app/views/spree/admin/digital_assets/_form.html.erb +3 -8
- data/app/views/spree/admin/digital_assets/_table.html.erb +12 -13
- data/app/views/spree/admin/digital_assets/create.turbo_stream.erb +1 -1
- data/app/views/spree/admin/digital_assets/edit.html.erb +8 -10
- data/app/views/spree/admin/digital_assets/index.html.erb +8 -9
- data/app/views/spree/admin/digital_assets/new.html.erb +8 -10
- data/app/views/spree/admin/digital_assets/update.turbo_stream.erb +1 -1
- data/app/views/spree/admin/errors/403.html.erb +14 -0
- data/app/views/spree/admin/errors/404.html.erb +14 -0
- data/app/views/spree/admin/errors/422.html.erb +14 -0
- data/app/views/spree/admin/errors/500.html.erb +14 -0
- data/app/views/spree/admin/errors/503.html.erb +14 -0
- data/app/views/spree/admin/exports/_export.html.erb +1 -1
- data/app/views/spree/admin/exports/create.turbo_stream.erb +4 -1
- data/app/views/spree/admin/exports/index.html.erb +5 -5
- data/app/views/spree/admin/exports/new.html.erb +33 -28
- data/app/views/spree/admin/gift_card_batches/_form.html.erb +5 -20
- data/app/views/spree/admin/gift_card_batches/new.html.erb +1 -15
- data/app/views/spree/admin/gift_cards/_filters.html.erb +3 -4
- data/app/views/spree/admin/gift_cards/_form.html.erb +16 -26
- data/app/views/spree/admin/gift_cards/_gift_card.html.erb +1 -1
- data/app/views/spree/admin/gift_cards/_list.html.erb +7 -7
- data/app/views/spree/admin/gift_cards/_table_filter_dropdown.html.erb +13 -13
- data/app/views/spree/admin/gift_cards/index.html.erb +14 -11
- data/app/views/spree/admin/gift_cards/new.html.erb +1 -30
- data/app/views/spree/admin/gift_cards/show.html.erb +6 -6
- data/app/views/spree/admin/import_mappings/update.turbo_stream.erb +15 -0
- data/app/views/spree/admin/import_rows/_variant.html.erb +1 -0
- data/app/views/spree/admin/import_rows/show.html.erb +32 -0
- data/app/views/spree/admin/imports/_footer.html.erb +15 -0
- data/app/views/spree/admin/imports/_loader.html.erb +14 -0
- data/app/views/spree/admin/imports/_mapping.html.erb +12 -0
- data/app/views/spree/admin/imports/_mapping_footer.html.erb +20 -0
- data/app/views/spree/admin/imports/_mapping_form.html.erb +11 -0
- data/app/views/spree/admin/imports/_mapping_icon.html.erb +6 -0
- data/app/views/spree/admin/imports/_row.html.erb +35 -0
- data/app/views/spree/admin/imports/new.html.erb +26 -0
- data/app/views/spree/admin/imports/show.html.erb +57 -0
- data/app/views/spree/admin/invitations/_invitation.html.erb +13 -13
- data/app/views/spree/admin/invitations/create.turbo_stream.erb +1 -1
- data/app/views/spree/admin/invitations/index.html.erb +15 -17
- data/app/views/spree/admin/invitations/new.html.erb +15 -26
- data/app/views/spree/admin/json_previews/show.html.erb +37 -0
- data/app/views/spree/admin/line_items/new.html.erb +6 -6
- data/app/views/spree/admin/metafield_definitions/_filters.html.erb +18 -0
- data/app/views/spree/admin/metafield_definitions/_form.html.erb +44 -0
- data/app/views/spree/admin/metafield_definitions/_table_header.html.erb +11 -0
- data/app/views/spree/admin/metafield_definitions/_table_row.html.erb +22 -0
- data/app/views/spree/admin/metafield_definitions/edit.html.erb +1 -0
- data/app/views/spree/admin/metafield_definitions/index.html.erb +9 -0
- data/app/views/spree/admin/metafield_definitions/new.html.erb +1 -0
- data/app/views/spree/admin/metafield_definitions/update.turbo_stream.erb +1 -0
- data/app/views/spree/admin/metafields/edit.html.erb +43 -0
- data/app/views/spree/admin/metafields/types/_boolean.html.erb +4 -0
- data/app/views/spree/admin/metafields/types/_json.html.erb +4 -0
- data/app/views/spree/admin/metafields/types/_long_text.html.erb +1 -0
- data/app/views/spree/admin/metafields/types/_number.html.erb +1 -0
- data/app/views/spree/admin/metafields/types/_rich_text.html.erb +3 -0
- data/app/views/spree/admin/metafields/types/_short_text.html.erb +1 -0
- data/app/views/spree/admin/metafields/update.turbo_stream.erb +1 -0
- data/app/views/spree/admin/newsletter_subscribers/_filters.html.erb +41 -0
- data/app/views/spree/admin/newsletter_subscribers/_table_header.html.erb +8 -0
- data/app/views/spree/admin/newsletter_subscribers/_table_row.html.erb +36 -0
- data/app/views/spree/admin/newsletter_subscribers/index.html.erb +9 -0
- data/app/views/spree/admin/oauth_applications/_form.html.erb +5 -10
- data/app/views/spree/admin/oauth_applications/_table_header.html.erb +7 -0
- data/app/views/spree/admin/oauth_applications/_table_row.html.erb +34 -0
- data/app/views/spree/admin/oauth_applications/create.turbo_stream.erb +20 -30
- data/app/views/spree/admin/oauth_applications/edit.html.erb +1 -18
- data/app/views/spree/admin/oauth_applications/index.html.erb +4 -60
- data/app/views/spree/admin/oauth_applications/new.html.erb +1 -24
- data/app/views/spree/admin/option_types/{_filter.html.erb → _filters.html.erb} +1 -1
- data/app/views/spree/admin/option_types/_form.html.erb +8 -30
- data/app/views/spree/admin/option_types/_table_header.html.erb +19 -0
- data/app/views/spree/admin/option_types/{_option_type.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/option_types/edit.html.erb +0 -3
- data/app/views/spree/admin/option_types/index.html.erb +3 -42
- data/app/views/spree/admin/orders/_customer.html.erb +17 -21
- data/app/views/spree/admin/orders/_customer_returns.html.erb +4 -4
- data/app/views/spree/admin/orders/_filters.html.erb +49 -48
- data/app/views/spree/admin/orders/_form.html.erb +12 -0
- data/app/views/spree/admin/orders/_header.html.erb +2 -7
- data/app/views/spree/admin/orders/_line_item.html.erb +6 -11
- data/app/views/spree/admin/orders/_line_items.html.erb +39 -47
- data/app/views/spree/admin/orders/_list.html.erb +7 -7
- data/app/views/spree/admin/orders/_order.html.erb +1 -1
- data/app/views/spree/admin/orders/_payments.html.erb +2 -2
- data/app/views/spree/admin/orders/_refunds.html.erb +7 -9
- data/app/views/spree/admin/orders/_return_authorizations.html.erb +5 -5
- data/app/views/spree/admin/orders/_risk_analysis.html.erb +1 -1
- data/app/views/spree/admin/orders/_shipment.html.erb +7 -6
- data/app/views/spree/admin/orders/_shipment_manifest_item.html.erb +1 -1
- data/app/views/spree/admin/orders/_shipments.html.erb +1 -1
- data/app/views/spree/admin/orders/_summary.html.erb +14 -7
- data/app/views/spree/admin/orders/_table_filter_dropdown.html.erb +6 -6
- data/app/views/spree/admin/orders/_tax_lines.html.erb +1 -1
- data/app/views/spree/admin/orders/billing_address/_form.html.erb +4 -2
- data/app/views/spree/admin/orders/billing_address/create.turbo_stream.erb +22 -24
- data/app/views/spree/admin/orders/billing_address/edit.html.erb +29 -31
- data/app/views/spree/admin/orders/billing_address/new.html.erb +22 -24
- data/app/views/spree/admin/orders/billing_address/update.turbo_stream.erb +22 -24
- data/app/views/spree/admin/orders/contact_information/edit.html.erb +10 -12
- data/app/views/spree/admin/orders/customer_returns/_customer_return.html.erb +7 -12
- data/app/views/spree/admin/orders/customer_returns/_reimbursements_table.html.erb +5 -5
- data/app/views/spree/admin/orders/customer_returns/_return_item_decision.html.erb +6 -6
- data/app/views/spree/admin/orders/customer_returns/_return_item_selection.html.erb +6 -6
- data/app/views/spree/admin/orders/customer_returns/new.html.erb +2 -6
- data/app/views/spree/admin/orders/index.html.erb +7 -3
- data/app/views/spree/admin/orders/new.html.erb +22 -0
- data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +14 -28
- data/app/views/spree/admin/orders/return_authorizations/_return_authorization.html.erb +1 -1
- data/app/views/spree/admin/orders/return_authorizations/show.html.erb +14 -14
- data/app/views/spree/admin/orders/shipping_address/_form.html.erb +4 -2
- data/app/views/spree/admin/orders/shipping_address/create.turbo_stream.erb +8 -10
- data/app/views/spree/admin/orders/shipping_address/edit.html.erb +8 -10
- data/app/views/spree/admin/orders/shipping_address/new.html.erb +8 -10
- data/app/views/spree/admin/orders/shipping_address/update.turbo_stream.erb +8 -10
- data/app/views/spree/admin/orders/user/edit.html.erb +1 -1
- data/app/views/spree/admin/orders/user/new.html.erb +1 -1
- data/app/views/spree/admin/page_blocks/edit.html.erb +6 -9
- data/app/views/spree/admin/page_blocks/forms/_image.html.erb +4 -1
- data/app/views/spree/admin/page_blocks/forms/_metafields.html.erb +35 -0
- data/app/views/spree/admin/page_blocks/forms/products/_description.html.erb +0 -0
- data/app/views/spree/admin/page_builder/_add_block.html.erb +8 -6
- data/app/views/spree/admin/page_builder/_header.html.erb +29 -22
- data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +6 -6
- data/app/views/spree/admin/page_builder/_sidebar.html.erb +5 -5
- data/app/views/spree/admin/page_builder/_sidebar_colors.html.erb +71 -69
- data/app/views/spree/admin/page_builder/_sidebar_fonts.html.erb +62 -61
- data/app/views/spree/admin/page_builder/_sidebar_section.html.erb +4 -6
- data/app/views/spree/admin/page_builder/_sidebar_sections.html.erb +12 -2
- data/app/views/spree/admin/page_builder/_sidebar_sections_toolbar.html.erb +59 -57
- data/app/views/spree/admin/page_links/_form.html.erb +3 -3
- data/app/views/spree/admin/page_links/_linkable_type_dropdown.html.erb +3 -3
- data/app/views/spree/admin/page_links/create.turbo_stream.erb +10 -4
- data/app/views/spree/admin/page_links/destroy.turbo_stream.erb +13 -9
- data/app/views/spree/admin/page_links/edit.html.erb +26 -13
- data/app/views/spree/admin/page_links/update.turbo_stream.erb +11 -5
- data/app/views/spree/admin/page_sections/edit.html.erb +5 -8
- data/app/views/spree/admin/page_sections/forms/_breadcrumbs.html.erb +0 -0
- data/app/views/spree/admin/page_sections/forms/_image_with_text.html.erb +2 -5
- data/app/views/spree/admin/pages/_form.html.erb +1 -4
- data/app/views/spree/admin/pages/_table_header.html.erb +6 -0
- data/app/views/spree/admin/pages/_table_row.html.erb +28 -0
- data/app/views/spree/admin/pages/edit.html.erb +9 -11
- data/app/views/spree/admin/pages/{_filters.html.erb → filters.html.erb} +1 -1
- data/app/views/spree/admin/pages/index.html.erb +1 -24
- data/app/views/spree/admin/pages/new.html.erb +1 -17
- data/app/views/spree/admin/payment_methods/_available_payment_method.html.erb +1 -1
- data/app/views/spree/admin/payment_methods/_form.html.erb +4 -24
- data/app/views/spree/admin/payment_methods/_payment_method.html.erb +5 -2
- data/app/views/spree/admin/payment_methods/index.html.erb +17 -19
- data/app/views/spree/admin/payments/_payment.html.erb +16 -16
- data/app/views/spree/admin/payments/source_views/_gateway.html.erb +3 -3
- data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +7 -7
- data/app/views/spree/admin/policies/_filters.html.erb +8 -0
- data/app/views/spree/admin/policies/_form.html.erb +7 -0
- data/app/views/spree/admin/policies/_table_header.html.erb +8 -0
- data/app/views/spree/admin/policies/_table_row.html.erb +20 -0
- data/app/views/spree/admin/policies/edit.html.erb +2 -0
- data/app/views/spree/admin/policies/index.html.erb +9 -0
- data/app/views/spree/admin/policies/new.html.erb +1 -0
- data/app/views/spree/admin/policies/update.turbo_stream.erb +1 -0
- data/app/views/spree/admin/post_categories/_form.html.erb +2 -11
- data/app/views/spree/admin/post_categories/_table_header.html.erb +5 -0
- data/app/views/spree/admin/post_categories/{_post_category.html.erb → _table_row.html.erb} +3 -3
- data/app/views/spree/admin/post_categories/edit.html.erb +1 -14
- data/app/views/spree/admin/post_categories/index.html.erb +1 -20
- data/app/views/spree/admin/post_categories/new.html.erb +1 -14
- data/app/views/spree/admin/posts/_form.html.erb +21 -43
- data/app/views/spree/admin/posts/_table_header.html.erb +7 -0
- data/app/views/spree/admin/posts/{_post.html.erb → _table_row.html.erb} +2 -2
- data/app/views/spree/admin/posts/filters.html.erb +29 -0
- data/app/views/spree/admin/posts/index.html.erb +1 -24
- data/app/views/spree/admin/products/_bulk_operations.html.erb +6 -16
- data/app/views/spree/admin/products/_filters.html.erb +31 -38
- data/app/views/spree/admin/products/_form.html.erb +3 -2
- data/app/views/spree/admin/products/_list.html.erb +1 -1
- data/app/views/spree/admin/products/_product.html.erb +1 -1
- data/app/views/spree/admin/products/_table_filter_dropdown.html.erb +6 -6
- data/app/views/spree/admin/products/bulk_modal.html.erb +13 -15
- data/app/views/spree/admin/products/edit.html.erb +0 -1
- data/app/views/spree/admin/products/form/_base.html.erb +1 -5
- data/app/views/spree/admin/products/form/_properties.html.erb +2 -2
- data/app/views/spree/admin/products/form/_shipping.html.erb +1 -5
- data/app/views/spree/admin/products/form/_tax.html.erb +1 -5
- data/app/views/spree/admin/products/form/_variants.html.erb +1 -1
- data/app/views/spree/admin/products/index.html.erb +7 -2
- data/app/views/spree/admin/promotion_actions/_promotion_action.html.erb +7 -7
- data/app/views/spree/admin/promotion_actions/forms/_create_line_items.html.erb +4 -4
- data/app/views/spree/admin/promotion_actions/new.html.erb +29 -35
- data/app/views/spree/admin/promotion_rules/_promotion_rule.html.erb +8 -8
- data/app/views/spree/admin/promotion_rules/forms/_currency.html.erb +1 -4
- data/app/views/spree/admin/promotion_rules/forms/_item_total.html.erb +1 -1
- data/app/views/spree/admin/promotion_rules/new.html.erb +30 -36
- data/app/views/spree/admin/promotions/_actions.html.erb +4 -8
- data/app/views/spree/admin/promotions/_filters.html.erb +5 -9
- data/app/views/spree/admin/promotions/_form.html.erb +36 -0
- data/app/views/spree/admin/promotions/_rules.html.erb +4 -8
- data/app/views/spree/admin/promotions/_sidebar.html.erb +4 -4
- data/app/views/spree/admin/promotions/_table_filter_dropdown.html.erb +7 -7
- data/app/views/spree/admin/promotions/_table_header.html.erb +7 -0
- data/app/views/spree/admin/promotions/{_promotion.html.erb → _table_row.html.erb} +2 -5
- data/app/views/spree/admin/promotions/edit.html.erb +1 -1
- data/app/views/spree/admin/promotions/form/_kind.html.erb +52 -48
- data/app/views/spree/admin/promotions/form/_settings.html.erb +2 -8
- data/app/views/spree/admin/promotions/index.html.erb +1 -26
- data/app/views/spree/admin/promotions/new.html.erb +1 -57
- data/app/views/spree/admin/properties/_filters.html.erb +5 -0
- data/app/views/spree/admin/properties/_form.html.erb +8 -22
- data/app/views/spree/admin/properties/_table_header.html.erb +9 -0
- data/app/views/spree/admin/properties/{_property.html.erb → _table_row.html.erb} +2 -2
- data/app/views/spree/admin/properties/edit.html.erb +1 -21
- data/app/views/spree/admin/properties/index.html.erb +3 -38
- data/app/views/spree/admin/properties/new.html.erb +1 -18
- data/app/views/spree/admin/refund_reasons/_form.html.erb +1 -0
- data/app/views/spree/admin/refund_reasons/_table_header.html.erb +6 -0
- data/app/views/spree/admin/refund_reasons/_table_row.html.erb +14 -0
- data/app/views/spree/admin/refund_reasons/edit.html.erb +1 -3
- data/app/views/spree/admin/refund_reasons/index.html.erb +1 -36
- data/app/views/spree/admin/refund_reasons/new.html.erb +1 -4
- data/app/views/spree/admin/refunds/_form.html.erb +1 -5
- data/app/views/spree/admin/refunds/edit.html.erb +9 -11
- data/app/views/spree/admin/reimbursement_types/_form.html.erb +10 -31
- data/app/views/spree/admin/reimbursement_types/_table_header.html.erb +7 -0
- data/app/views/spree/admin/reimbursement_types/_table_row.html.erb +17 -0
- data/app/views/spree/admin/reimbursement_types/edit.html.erb +1 -14
- data/app/views/spree/admin/reimbursement_types/index.html.erb +1 -40
- data/app/views/spree/admin/reimbursement_types/new.html.erb +1 -14
- data/app/views/spree/admin/reimbursements/edit.html.erb +9 -9
- data/app/views/spree/admin/reimbursements/show.html.erb +12 -12
- data/app/views/spree/admin/reports/_report.html.erb +1 -1
- data/app/views/spree/admin/reports/index.html.erb +2 -2
- data/app/views/spree/admin/reports/new.html.erb +2 -1
- data/app/views/spree/admin/return_authorization_reasons/_form.html.erb +1 -0
- data/app/views/spree/admin/return_authorization_reasons/_table_header.html.erb +5 -0
- data/app/views/spree/admin/return_authorization_reasons/_table_row.html.erb +18 -0
- data/app/views/spree/admin/return_authorization_reasons/edit.html.erb +1 -3
- data/app/views/spree/admin/return_authorization_reasons/index.html.erb +1 -39
- data/app/views/spree/admin/return_authorization_reasons/new.html.erb +1 -4
- data/app/views/spree/admin/return_authorizations/_list.html.erb +3 -3
- data/app/views/spree/admin/return_authorizations/_table_header.html.erb +6 -0
- data/app/views/spree/admin/return_authorizations/{_return_authorization.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/return_authorizations/{_filters.html.erb → filters.html.erb} +7 -12
- data/app/views/spree/admin/return_authorizations/index.html.erb +1 -10
- data/app/views/spree/admin/roles/_form.html.erb +4 -5
- data/app/views/spree/admin/roles/edit.html.erb +1 -15
- data/app/views/spree/admin/roles/index.html.erb +4 -4
- data/app/views/spree/admin/roles/new.html.erb +1 -18
- data/app/views/spree/admin/shared/_alerts.html.erb +3 -1
- data/app/views/spree/admin/shared/_back_to_dashboard.html.erb +1 -0
- data/app/views/spree/admin/shared/_breadcrumbs.html.erb +1 -1
- data/app/views/spree/admin/shared/_bulk_modal.html.erb +13 -19
- data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +6 -7
- data/app/views/spree/admin/shared/_close_bulk_modal.turbo_stream.erb +4 -1
- data/app/views/spree/admin/shared/_content_header.html.erb +20 -38
- data/app/views/spree/admin/shared/_dialog.html.erb +4 -0
- data/app/views/spree/admin/shared/_drawer.html.erb +4 -0
- data/app/views/spree/admin/shared/_edit_resource.html.erb +17 -0
- data/app/views/spree/admin/shared/_export_modal.html.erb +3 -0
- data/app/views/spree/admin/shared/_filters_button.html.erb +2 -2
- data/app/views/spree/admin/shared/_head.html.erb +7 -3
- data/app/views/spree/admin/shared/_header.html.erb +2 -5
- data/app/views/spree/admin/shared/_index_table.html.erb +34 -0
- data/app/views/spree/admin/shared/_index_table_options.html.erb +5 -7
- data/app/views/spree/admin/{variants/form → shared}/_media_asset.html.erb +3 -5
- data/app/views/spree/admin/{variants/form/_media.html.erb → shared/_media_form.html.erb} +2 -2
- data/app/views/spree/admin/shared/_multi_product_picker.html.erb +7 -7
- data/app/views/spree/admin/shared/_new_item_dropdown.html.erb +8 -10
- data/app/views/spree/admin/shared/_new_resource.html.erb +18 -0
- data/app/views/spree/admin/shared/_no_resource_found.html.erb +1 -1
- data/app/views/spree/admin/shared/_page_alerts.html.erb +5 -0
- data/app/views/spree/admin/shared/_page_section_image.html.erb +6 -0
- data/app/views/spree/admin/shared/_page_tabs.html.erb +9 -0
- data/app/views/spree/admin/shared/_refunds.html.erb +6 -8
- data/app/views/spree/admin/shared/_seo.html.erb +3 -8
- data/app/views/spree/admin/shared/_team_nav.html.erb +1 -3
- data/app/views/spree/admin/shared/_user.html.erb +2 -1
- data/app/views/spree/admin/shared/_user_dropdown.html.erb +7 -9
- data/app/views/spree/admin/shared/named_types/_edit.html.erb +1 -14
- data/app/views/spree/admin/shared/named_types/_form.html.erb +2 -11
- data/app/views/spree/admin/shared/named_types/_new.html.erb +1 -14
- data/app/views/spree/admin/shared/sidebar/_customers_nav.html.erb +8 -0
- data/app/views/spree/admin/shared/sidebar/_enterprise_edition_notice.html.erb +1 -1
- data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +1 -1
- data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +8 -9
- data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +16 -14
- data/app/views/spree/admin/shared/sidebar/_vendors_nav.html.erb +5 -2
- data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +7 -7
- data/app/views/spree/admin/shipping_categories/_form.html.erb +1 -5
- data/app/views/spree/admin/shipping_categories/_table_header.html.erb +4 -0
- data/app/views/spree/admin/shipping_categories/_table_row.html.erb +8 -0
- data/app/views/spree/admin/shipping_categories/edit.html.erb +1 -14
- data/app/views/spree/admin/shipping_categories/index.html.erb +3 -30
- data/app/views/spree/admin/shipping_categories/new.html.erb +1 -14
- data/app/views/spree/admin/shipping_methods/_table_header.html.erb +8 -0
- data/app/views/spree/admin/shipping_methods/{_shipping_method.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/shipping_methods/form/_display.html.erb +2 -2
- data/app/views/spree/admin/shipping_methods/form/_tax_category.html.erb +1 -4
- data/app/views/spree/admin/shipping_methods/form/_tracking_url.html.erb +1 -1
- data/app/views/spree/admin/shipping_methods/index.html.erb +3 -26
- data/app/views/spree/admin/stock_items/_filters.html.erb +12 -21
- data/app/views/spree/admin/stock_items/_table_header.html.erb +9 -0
- data/app/views/spree/admin/stock_items/{_stock_item.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/stock_items/index.html.erb +1 -27
- data/app/views/spree/admin/stock_locations/_form.html.erb +3 -15
- data/app/views/spree/admin/stock_locations/_table_header.html.erb +9 -0
- data/app/views/spree/admin/stock_locations/{_stock_location.html.erb → _table_row.html.erb} +7 -6
- data/app/views/spree/admin/stock_locations/edit.html.erb +1 -14
- data/app/views/spree/admin/stock_locations/index.html.erb +3 -26
- data/app/views/spree/admin/stock_locations/new.html.erb +1 -14
- data/app/views/spree/admin/stock_transfers/_filters.html.erb +25 -33
- data/app/views/spree/admin/stock_transfers/_new_variant_modal.html.erb +22 -26
- data/app/views/spree/admin/stock_transfers/_table_header.html.erb +9 -0
- data/app/views/spree/admin/stock_transfers/{_stock_transfer.html.erb → _table_row.html.erb} +2 -2
- data/app/views/spree/admin/stock_transfers/index.html.erb +1 -26
- data/app/views/spree/admin/stock_transfers/new.html.erb +5 -6
- data/app/views/spree/admin/stock_transfers/show.html.erb +3 -3
- data/app/views/spree/admin/store_credit_categories/_form.html.erb +1 -5
- data/app/views/spree/admin/store_credit_categories/index.html.erb +3 -3
- data/app/views/spree/admin/store_credit_events/_store_credit_event.html.erb +1 -1
- data/app/views/spree/admin/store_credits/_form.html.erb +3 -16
- data/app/views/spree/admin/store_credits/_list.html.erb +7 -7
- data/app/views/spree/admin/store_credits/_store_credit.html.erb +2 -2
- data/app/views/spree/admin/store_credits/show.html.erb +6 -6
- data/app/views/spree/admin/storefront/edit.html.erb +10 -53
- data/app/views/spree/admin/stores/edit.html.erb +10 -6
- data/app/views/spree/admin/stores/form/_basic.html.erb +65 -158
- data/app/views/spree/admin/stores/form/_checkout.html.erb +35 -51
- data/app/views/spree/admin/stores/form/_checkout_links.html.erb +28 -0
- data/app/views/spree/admin/stores/form/_emails.html.erb +33 -64
- data/app/views/spree/admin/stores/form/_policies.html.erb +55 -71
- data/app/views/spree/admin/stores/new.html.erb +119 -129
- data/app/views/spree/admin/tax_categories/_form.html.erb +4 -17
- data/app/views/spree/admin/tax_categories/_table_header.html.erb +7 -0
- data/app/views/spree/admin/tax_categories/{_tax_category.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/tax_categories/edit.html.erb +1 -14
- data/app/views/spree/admin/tax_categories/index.html.erb +3 -24
- data/app/views/spree/admin/tax_categories/new.html.erb +1 -14
- data/app/views/spree/admin/tax_rates/_form.html.erb +6 -26
- data/app/views/spree/admin/tax_rates/_table_header.html.erb +9 -0
- data/app/views/spree/admin/tax_rates/{_tax_rate.html.erb → _table_row.html.erb} +1 -1
- data/app/views/spree/admin/tax_rates/edit.html.erb +1 -14
- data/app/views/spree/admin/tax_rates/index.html.erb +3 -26
- data/app/views/spree/admin/tax_rates/new.html.erb +1 -14
- data/app/views/spree/admin/taxonomies/_form.html.erb +5 -0
- data/app/views/spree/admin/taxonomies/_table_header.html.erb +6 -0
- data/app/views/spree/admin/taxonomies/{_taxonomy.html.erb → _table_row.html.erb} +3 -3
- data/app/views/spree/admin/taxonomies/edit.html.erb +1 -25
- data/app/views/spree/admin/taxonomies/filters.html.erb +6 -0
- data/app/views/spree/admin/taxonomies/index.html.erb +3 -34
- data/app/views/spree/admin/taxonomies/new.html.erb +1 -23
- data/app/views/spree/admin/taxons/_form.html.erb +6 -30
- data/app/views/spree/admin/taxons/_rule_form.html.erb +2 -1
- data/app/views/spree/admin/taxons/_rules_form.html.erb +1 -1
- data/app/views/spree/admin/taxons/edit.html.erb +0 -1
- data/app/views/spree/admin/themes/_theme.html.erb +9 -8
- data/app/views/spree/admin/themes/index.html.erb +14 -16
- data/app/views/spree/admin/translations/edit.html.erb +34 -49
- data/app/views/spree/admin/translations/policies/_form.html.erb +12 -0
- data/app/views/spree/admin/translations/products/_form.html.erb +2 -0
- data/app/views/spree/admin/translations/translation_rows/_permalink_field_row.html.erb +11 -20
- data/app/views/spree/admin/translations/translation_rows/_rich_textarea_row.html.erb +1 -11
- data/app/views/spree/admin/translations/translation_rows/_text_field_row.html.erb +1 -5
- data/app/views/spree/admin/translations/translation_rows/_textarea_row.html.erb +2 -9
- data/app/views/spree/admin/translations/translation_rows/_tinymce_row.html.erb +4 -11
- data/app/views/spree/admin/translations/update.turbo_stream.erb +1 -0
- data/app/views/spree/admin/users/_filters.html.erb +50 -66
- data/app/views/spree/admin/users/_form.html.erb +3 -36
- data/app/views/spree/admin/users/_form_fields.html.erb +15 -0
- data/app/views/spree/admin/users/_last_order.html.erb +3 -2
- data/app/views/spree/admin/users/_lifetime_stats.html.erb +1 -1
- data/app/views/spree/admin/users/_tabs.html.erb +31 -31
- data/app/views/spree/admin/users/_user.html.erb +1 -1
- data/app/views/spree/admin/users/bulk_modal.html.erb +11 -13
- data/app/views/spree/admin/users/edit.html.erb +1 -1
- data/app/views/spree/admin/users/index.html.erb +53 -55
- data/app/views/spree/admin/users/new.html.erb +1 -18
- data/app/views/spree/admin/variants/_variant.html.erb +1 -1
- data/app/views/spree/admin/variants/edit.html.erb +1 -1
- data/app/views/spree/admin/variants/form/_basic.html.erb +4 -17
- data/app/views/spree/admin/variants/form/_dimensions.html.erb +4 -18
- data/app/views/spree/admin/variants/form/_inventory.html.erb +6 -12
- data/app/views/spree/admin/variants/form/_pricing.html.erb +3 -3
- data/app/views/spree/admin/webhook_events/_webhook_event.html.erb +1 -1
- data/app/views/spree/admin/webhooks_subscribers/_form.html.erb +57 -73
- data/app/views/spree/admin/webhooks_subscribers/_table_header.html.erb +7 -0
- data/app/views/spree/admin/webhooks_subscribers/{_webhooks_subscriber.html.erb → _table_row.html.erb} +3 -3
- data/app/views/spree/admin/webhooks_subscribers/edit.html.erb +1 -9
- data/app/views/spree/admin/webhooks_subscribers/index.html.erb +1 -23
- data/app/views/spree/admin/webhooks_subscribers/new.html.erb +1 -11
- data/app/views/spree/admin/webhooks_subscribers/show.html.erb +8 -8
- data/app/views/spree/admin/zones/_form.html.erb +8 -28
- data/app/views/spree/admin/zones/_table_header.html.erb +8 -0
- data/app/views/spree/admin/zones/_table_row.html.erb +8 -0
- data/app/views/spree/admin/zones/edit.html.erb +1 -14
- data/app/views/spree/admin/zones/index.html.erb +3 -35
- data/app/views/spree/admin/zones/new.html.erb +1 -14
- data/config/importmap.rb +32 -2
- data/config/initializers/assets.rb +3 -1
- data/config/locales/en.yml +32 -3
- data/config/routes.rb +27 -4
- data/lib/generators/spree/admin/scaffold/scaffold_generator.rb +51 -0
- data/lib/generators/spree/admin/scaffold/templates/controller.rb.tt +11 -0
- data/lib/generators/spree/admin/scaffold/templates/views/_filters.html.erb.tt +13 -0
- data/lib/generators/spree/admin/scaffold/templates/views/_form.html.erb.tt +5 -0
- data/lib/generators/spree/admin/scaffold/templates/views/_table_header.html.erb.tt +5 -0
- data/lib/generators/spree/admin/scaffold/templates/views/_table_row.html.erb.tt +9 -0
- data/lib/generators/spree/admin/scaffold/templates/views/edit.html.erb.tt +1 -0
- data/lib/generators/spree/admin/scaffold/templates/views/index.html.erb.tt +9 -0
- data/lib/generators/spree/admin/scaffold/templates/views/new.html.erb.tt +1 -0
- data/lib/spree/admin/engine.rb +13 -9
- data/lib/spree/admin/runtime_configuration.rb +5 -0
- data/lib/spree/admin/testing_support/capybara_utils.rb +19 -0
- data/lib/spree/admin.rb +1 -3
- data/vendor/javascript/@codemirror--autocomplete.js +4 -0
- data/vendor/javascript/@codemirror--commands.js +4 -0
- data/vendor/javascript/@codemirror--lang-json.js +4 -0
- data/vendor/javascript/@codemirror--language.js +4 -0
- data/vendor/javascript/@codemirror--lint.js +4 -0
- data/vendor/javascript/@codemirror--search.js +4 -0
- data/vendor/javascript/@codemirror--state.js +4 -0
- data/vendor/javascript/@codemirror--view.js +4 -0
- data/vendor/javascript/@floating-ui--core.js +4 -0
- data/vendor/javascript/@floating-ui--dom.js +12 -0
- data/vendor/javascript/@floating-ui--utils--dom.js +4 -0
- data/vendor/javascript/@floating-ui--utils.js +4 -0
- data/vendor/javascript/@highlightjs--cdn-assets--es--core.min.js.js +308 -0
- data/vendor/javascript/@highlightjs--cdn-assets--es--languages--json.min.js.js +10 -0
- data/vendor/javascript/@lezer--common.js +4 -0
- data/vendor/javascript/@lezer--highlight.js +4 -0
- data/vendor/javascript/@lezer--json.js +4 -0
- data/vendor/javascript/@lezer--lr.js +4 -0
- data/vendor/javascript/@marijn--find-cluster-break.js +4 -0
- data/vendor/javascript/@stimulus-components--dialog.js +4 -0
- data/vendor/javascript/@stimulus-components--dropdown.js +4 -0
- data/vendor/javascript/codemirror.js +4 -0
- data/vendor/javascript/crelt.js +4 -0
- data/vendor/javascript/stimulus-use.js +2 -2
- data/vendor/javascript/style-mod.js +4 -0
- data/vendor/javascript/trix@2.1.15.js +5 -0
- data/vendor/javascript/w3c-keyname.js +4 -0
- metadata +210 -71
- data/app/assets/stylesheets/spree/admin/plugins/flatfile.scss +0 -4
- data/app/helpers/spree/admin/session_assets_helper.rb +0 -24
- data/app/javascript/spree/admin/controllers/bootstrap_tabs_controller.js +0 -9
- data/app/javascript/spree/admin/controllers/enable_button_controller.js +0 -29
- data/app/views/spree/admin/coupon_codes/_coupon_code.html.erb +0 -8
- data/app/views/spree/admin/errors/forbidden.html.erb +0 -13
- data/app/views/spree/admin/gift_cards/index.csv.erb +0 -22
- data/app/views/spree/admin/orders/user/create.turbo_stream.erb +0 -12
- data/app/views/spree/admin/orders/user/update.turbo_stream.erb +0 -5
- data/app/views/spree/admin/pages/_page.html.erb +0 -26
- data/app/views/spree/admin/payment_methods/update.turbo_stream.erb +0 -1
- data/app/views/spree/admin/posts/_filters.html.erb +0 -36
- data/app/views/spree/admin/stores/create.turbo_stream.erb +0 -5
- data/app/views/spree/admin/translations/_translations_unavailable.html.erb +0 -8
- data/app/views/spree/admin/users/index.csv.erb +0 -43
- data/vendor/javascript/trix@2.1.12.js +0 -5
- /data/app/views/spree/admin/page_blocks/forms/{_buy_buttons.html.erb → products/_buy_buttons.html.erb} +0 -0
- /data/app/views/spree/admin/page_blocks/forms/{_quantity_selector.html.erb → products/_quantity_selector.html.erb} +0 -0
data/lib/spree/admin/engine.rb
CHANGED
|
@@ -138,10 +138,12 @@ module Spree
|
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
initializer 'spree.admin.dartsass_fix' do |app|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
141
|
+
if app.config.respond_to?(:assets) && defined?(Sprockets)
|
|
142
|
+
# we're not using any sass compressors, as we're using dartsass-rails
|
|
143
|
+
# some gems however like payment_icons still have sassc-rails as a dependency
|
|
144
|
+
# which sets the css_compressor to :sass and breaks the assets pipeline
|
|
145
|
+
app.config.assets.css_compressor = nil if app.config.assets.css_compressor == :sass
|
|
146
|
+
end
|
|
145
147
|
end
|
|
146
148
|
|
|
147
149
|
# Rails 7.1 introduced a new feature that raises an error if a callback action is missing.
|
|
@@ -151,11 +153,13 @@ module Spree
|
|
|
151
153
|
end
|
|
152
154
|
|
|
153
155
|
initializer 'spree.admin.assets' do |app|
|
|
154
|
-
app.config.assets
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
if app.config.respond_to?(:assets)
|
|
157
|
+
app.config.assets.paths << root.join('app/javascript')
|
|
158
|
+
app.config.assets.paths << root.join('vendor/javascript')
|
|
159
|
+
app.config.assets.precompile += %w[ spree_admin_manifest bootstrap.bundle.min.js jquery3.min.js ] if defined?(Sprockets)
|
|
160
|
+
# fix for TinyMCE-rails gem to work with both propshaft and sprockets
|
|
161
|
+
app.config.assets.excluded_paths ||= [] if defined?(Sprockets)
|
|
162
|
+
end
|
|
159
163
|
end
|
|
160
164
|
|
|
161
165
|
initializer 'spree.admin.importmap', after: 'importmap' do |app|
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
require 'spree/core/preferences/runtime_configuration'
|
|
2
|
+
require 'kaminari'
|
|
3
|
+
|
|
1
4
|
module Spree
|
|
2
5
|
module Admin
|
|
3
6
|
class RuntimeConfiguration < ::Spree::Preferences::RuntimeConfiguration
|
|
@@ -7,6 +10,8 @@ module Spree
|
|
|
7
10
|
preference :admin_records_per_page, :integer, default: Kaminari.config.default_per_page
|
|
8
11
|
preference :admin_products_per_page, :integer, default: Kaminari.config.default_per_page
|
|
9
12
|
preference :admin_orders_per_page, :integer, default: Kaminari.config.default_per_page
|
|
13
|
+
|
|
14
|
+
preference :include_application_importmap, :boolean, default: false
|
|
10
15
|
end
|
|
11
16
|
end
|
|
12
17
|
end
|
|
@@ -35,6 +35,25 @@ module Spree
|
|
|
35
35
|
rescue Selenium::WebDriver::Error::TimeoutError
|
|
36
36
|
default_options[:error].nil? ? false : raise(default_options[:error])
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
def wait_for_dialog(selector = '#main-dialog', timeout: 5)
|
|
40
|
+
# Wait for turbo to finish loading the dialog content
|
|
41
|
+
wait_for_turbo(timeout)
|
|
42
|
+
|
|
43
|
+
# Wait for the dialog element to be present and open
|
|
44
|
+
# Note: Using visible: :all because headless Chrome may not consider dialogs "visible"
|
|
45
|
+
# even when properly opened via showModal()
|
|
46
|
+
has_css?("#{selector}[open]", visible: :all, wait: timeout)
|
|
47
|
+
|
|
48
|
+
# Verify the dialog is actually open and rendered
|
|
49
|
+
unless page.evaluate_script("document.querySelector('#{selector}')?.open")
|
|
50
|
+
raise "Dialog #{selector} is not open"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Give Chrome time to fully render the dialog and make elements interactable
|
|
54
|
+
# The old headless mode is better but still needs a brief render pause
|
|
55
|
+
sleep 0.3
|
|
56
|
+
end
|
|
38
57
|
end
|
|
39
58
|
end
|
|
40
59
|
end
|
data/lib/spree/admin.rb
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
require 'spree_core'
|
|
2
2
|
require 'spree_api'
|
|
3
3
|
|
|
4
|
-
require 'sprockets/railtie'
|
|
5
|
-
|
|
6
4
|
require 'active_link_to'
|
|
7
5
|
require 'breadcrumbs_on_rails'
|
|
8
6
|
require 'chartkick'
|
|
@@ -14,8 +12,8 @@ require 'bootstrap'
|
|
|
14
12
|
require 'turbo-rails'
|
|
15
13
|
require 'stimulus-rails'
|
|
16
14
|
require 'local_time'
|
|
17
|
-
require 'payment_icons'
|
|
18
15
|
require 'dartsass-rails'
|
|
16
|
+
require 'inline_svg'
|
|
19
17
|
|
|
20
18
|
require 'spree/admin/action_callbacks'
|
|
21
19
|
require 'spree/admin/callbacks'
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @codemirror/autocomplete@6.19.0 downloaded from https://ga.jspm.io/npm:@codemirror/autocomplete@6.19.0/dist/index.js
|
|
2
|
+
|
|
3
|
+
import{Annotation as e,EditorSelection as t,StateEffect as n,codePointAt as i,codePointSize as o,fromCodePoint as s,Facet as l,combineConfig as r,StateField as a,Prec as c,MapMode as f,Transaction as u,Text as h,RangeValue as p,RangeSet as d,CharCategory as m}from"@codemirror/state";import{Direction as g,logException as v,showTooltip as b,EditorView as w,getTooltip as y,ViewPlugin as x,Decoration as C,WidgetType as S,keymap as A}from"@codemirror/view";import{syntaxTree as I,indentUnit as k}from"@codemirror/language";class CompletionContext{constructor(e,t,n,i){this.state=e;this.pos=t;this.explicit=n;this.view=i;this.abortListeners=[];this.abortOnDocChange=false}tokenBefore(e){let t=I(this.state).resolveInner(this.pos,-1);while(t&&e.indexOf(t.name)<0)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos);let n=Math.max(t.from,this.pos-250);let i=t.text.slice(n-t.from,this.pos-t.from);let o=i.search(M(e,false));return o<0?null:{from:n+o,to:this.pos,text:i.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){if(e=="abort"&&this.abortListeners){this.abortListeners.push(t);n&&n.onDocChange&&(this.abortOnDocChange=true)}}}function D(e){let t=Object.keys(e).join("");let n=/\w/.test(t);n&&(t=t.replace(/\w/g,""));return`[${n?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function O(e){let t=Object.create(null),n=Object.create(null);for(let{label:i}of e){t[i[0]]=true;for(let e=1;e<i.length;e++)n[i[e]]=true}let i=D(t)+D(n)+"*$";return[new RegExp("^"+i),new RegExp(i)]}function R(e){let t=e.map((e=>typeof e=="string"?{label:e}:e));let[n,i]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:O(t);return e=>{let o=e.matchBefore(i);return o||e.explicit?{from:o?o.from:e.pos,options:t,validFor:n}:null}}function T(e,t){return n=>{for(let i=I(n.state).resolveInner(n.pos,-1);i;i=i.parent){if(e.indexOf(i.name)>-1)return t(n);if(i.type.isTop)break}return null}}function E(e,t){return n=>{for(let t=I(n.state).resolveInner(n.pos,-1);t;t=t.parent){if(e.indexOf(t.name)>-1)return null;if(t.type.isTop)break}return t(n)}}class Option{constructor(e,t,n,i){this.completion=e;this.source=t;this.match=n;this.score=i}}function L(e){return e.selection.main.from}function M(e,t){var n;let{source:i}=e;let o=t&&i[0]!="^",s=i[i.length-1]!="$";return o||s?new RegExp(`${o?"^":""}(?:${i})${s?"$":""}`,(n=e.flags)!==null&&n!==void 0?n:e.ignoreCase?"i":""):e}const P=e.define();function F(e,n,i,o){let{main:s}=e.selection,l=i-s.from,r=o-s.from;return{...e.changeByRange((a=>{if(a!=s&&i!=o&&e.sliceDoc(a.from+l,a.from+r)!=e.sliceDoc(i,o))return{range:a};let c=e.toText(n);return{changes:{from:a.from+l,to:o==s.from?a.to:a.from+r,insert:c},range:t.cursor(a.from+l+c.length)}})),scrollIntoView:true,userEvent:"input.complete"}}const B=new WeakMap;function $(e){if(!Array.isArray(e))return e;let t=B.get(e);t||B.set(e,t=R(e));return t}const N=n.define();const U=n.define();class FuzzyMatcher{constructor(e){this.pattern=e;this.chars=[];this.folded=[];this.any=[];this.precise=[];this.byWord=[];this.score=0;this.matched=[];for(let t=0;t<e.length;){let n=i(e,t),s=o(n);this.chars.push(n);let l=e.slice(t,t+s),r=l.toUpperCase();this.folded.push(i(r==l?l.toLowerCase():r,0));t+=s}this.astral=e.length!=this.chars.length}ret(e,t){this.score=e;this.matched=t;return this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:l,precise:r,byWord:a}=this;if(t.length==1){let s=i(e,0),l=o(s);let r=l==e.length?0:-100;if(s==t[0]);else{if(s!=n[0])return null;r+=-200}return this.ret(r,[0,l])}let c=e.indexOf(this.pattern);if(c==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let f=t.length,u=0;if(c<0){for(let s=0,r=Math.min(e.length,200);s<r&&u<f;){let r=i(e,s);r!=t[u]&&r!=n[u]||(l[u++]=s);s+=o(r)}if(u<f)return null}let h=0;let p=0,d=false;let m=0,g=-1,v=-1;let b=/[a-z]/.test(e),w=true;for(let l=0,u=Math.min(e.length,200),y=0;l<u&&p<f;){let u=i(e,l);if(c<0){h<f&&u==t[h]&&(r[h++]=l);if(m<f)if(u==t[m]||u==n[m]){m==0&&(g=l);v=l+1;m++}else m=0}let x,C=u<255?u>=48&&u<=57||u>=97&&u<=122?2:u>=65&&u<=90?1:0:(x=s(u))!=x.toLowerCase()?1:x!=x.toUpperCase()?2:0;(!l||C==1&&b||y==0&&C!=0)&&(t[p]==u||n[p]==u&&(d=true)?a[p++]=l:a.length&&(w=false));y=C;l+=o(u)}return p==f&&a[0]==0&&w?this.result((d?-200:0)-100,a,e):m==f&&g==0?this.ret(-200-e.length+(v==e.length?0:-100),[0,v]):c>-1?this.ret(-700-e.length,[c,c+this.pattern.length]):m==f?this.ret(-900-e.length,[g,v]):p==f?this.result((d?-200:0)-100-700+(w?0:-1100),a,e):t.length==2?null:this.result((l[0]?-700:0)-200-1100,l,e)}result(e,t,n){let s=[],l=0;for(let e of t){let t=e+(this.astral?o(i(n,e)):1);if(l&&s[l-1]==e)s[l-1]=t;else{s[l++]=e;s[l++]=t}}return this.ret(e-n.length,s)}}class StrictMatcher{constructor(e){this.pattern=e;this.matched=[];this.score=0;this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length);let n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;if(n==null)return null;this.matched=[0,t.length];this.score=n+(e.length==this.pattern.length?0:-100);return this}}const W=l.define({combine(e){return r(e,{activateOnTyping:true,activateOnCompletion:()=>false,activateOnTypingDelay:100,selectOnOpen:true,override:null,closeOnBlur:true,maxRenderedOptions:100,defaultKeymap:true,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:false,icons:true,addToOptions:[],positionInfo:j,filterStrict:false,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>q(e(n),t(n)),optionClass:(e,t)=>n=>q(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function q(e,t){return e?t?e+" "+t:e:t}function j(e,t,n,i,o,s){let l=e.textDirection==g.RTL,r=l,a=false;let c,f,u="top";let h=t.left-o.left,p=o.right-t.right;let d=i.right-i.left,m=i.bottom-i.top;r&&h<Math.min(d,p)?r=false:!r&&p<Math.min(d,h)&&(r=true);if(d<=(r?h:p)){c=Math.max(o.top,Math.min(n.top,o.bottom-m))-t.top;f=Math.min(400,r?h:p)}else{a=true;f=Math.min(400,(l?t.right:o.right-t.left)-30);let e=o.bottom-t.bottom;if(e>=m||e>t.top)c=n.bottom-t.top;else{u="bottom";c=t.bottom-n.top}}let v=(t.bottom-t.top)/s.offsetHeight;let b=(t.right-t.left)/s.offsetWidth;return{style:`${u}: ${c/v}px; max-width: ${f/b}px`,class:"cm-completionInfo-"+(a?l?"left-narrow":"right-narrow":r?"left":"right")}}function z(e){let t=e.addToOptions.slice();e.icons&&t.push({render(e){let t=document.createElement("div");t.classList.add("cm-completionIcon");e.type&&t.classList.add(...e.type.split(/\s+/g).map((e=>"cm-completionIcon-"+e)));t.setAttribute("aria-hidden","true");return t},position:20});t.push({render(e,t,n,i){let o=document.createElement("span");o.className="cm-completionLabel";let s=e.displayLabel||e.label,l=0;for(let e=0;e<i.length;){let t=i[e++],n=i[e++];t>l&&o.appendChild(document.createTextNode(s.slice(l,t)));let r=o.appendChild(document.createElement("span"));r.appendChild(document.createTextNode(s.slice(t,n)));r.className="cm-completionMatchedText";l=n}l<s.length&&o.appendChild(document.createTextNode(s.slice(l)));return o},position:50},{render(e){if(!e.detail)return null;let t=document.createElement("span");t.className="cm-completionDetail";t.textContent=e.detail;return t},position:80});return t.sort(((e,t)=>e.position-t.position)).map((e=>e.render))}function H(e,t,n){if(e<=n)return{from:0,to:e};t<0&&(t=0);if(t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let i=Math.floor((e-t)/n);return{from:e-(i+1)*n,to:e-i*n}}class CompletionTooltip{constructor(e,t,n){this.view=e;this.stateField=t;this.applyCompletion=n;this.info=null;this.infoDestroy=null;this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this};this.space=null;this.currentClass="";let i=e.state.field(t);let{options:o,selected:s}=i.open;let l=e.state.facet(W);this.optionContent=z(l);this.optionClass=l.optionClass;this.tooltipClass=l.tooltipClass;this.range=H(o.length,s,l.maxRenderedOptions);this.dom=document.createElement("div");this.dom.className="cm-tooltip-autocomplete";this.updateTooltipClass(e.state);this.dom.addEventListener("mousedown",(n=>{let{options:i}=e.state.field(t).open;for(let t,o=n.target;o&&o!=this.dom;o=o.parentNode)if(o.nodeName=="LI"&&(t=/-(\d+)$/.exec(o.id))&&+t[1]<i.length){this.applyCompletion(e,i[+t[1]]);n.preventDefault();return}}));this.dom.addEventListener("focusout",(t=>{let n=e.state.field(this.stateField,false);n&&n.tooltip&&e.state.facet(W).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:U.of(null)})}));this.showOptions(o,i.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove();this.list=this.dom.appendChild(this.createListBox(e,t,this.range));this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(e){var t;let n=e.state.field(this.stateField);let i=e.startState.field(this.stateField);this.updateTooltipClass(e.state);if(n!=i){let{options:o,selected:s,disabled:l}=n.open;if(!i.open||i.open.options!=o){this.range=H(o.length,s,e.state.facet(W).maxRenderedOptions);this.showOptions(o,n.id)}this.updateSel();l!=((t=i.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e;this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if(t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to){this.range=H(t.options.length,t.selected,this.view.state.facet(W).maxRenderedOptions);this.showOptions(t.options,e.id)}if(this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:n}=t.options[t.selected];let{info:i}=n;if(!i)return;let o=typeof i==="string"?document.createTextNode(i):i(n);if(!o)return;"then"in o?o.then((t=>{t&&this.view.state.field(this.stateField,false)==e&&this.addInfoPane(t,n)})).catch((e=>v(this.view.state,e,"completion info"))):this.addInfoPane(o,n)}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");n.className="cm-tooltip cm-completionInfo";if(e.nodeType!=null){n.appendChild(e);this.infoDestroy=null}else{let{dom:t,destroy:i}=e;n.appendChild(t);this.infoDestroy=i||null}this.dom.appendChild(n);this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,i=this.range.from;n;n=n.nextSibling,i++)if(n.nodeName=="LI"&&n.id)if(i==e){if(!n.hasAttribute("aria-selected")){n.setAttribute("aria-selected","true");t=n}}else n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");else i--;t&&K(this.list,t);return t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect();let n=this.info.getBoundingClientRect();let i=e.getBoundingClientRect();let o=this.space;if(!o){let e=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:e.clientWidth,bottom:e.clientHeight}}return i.top>Math.min(o.bottom,t.bottom)-10||i.bottom<Math.max(o.top,t.top)+10?null:this.view.state.facet(W).positionInfo(this.view,t,i,n,o,this.dom)}placeInfo(e){if(this.info)if(e){e.style&&(this.info.style.cssText=e.style);this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")}else this.info.style.cssText="top: -1e6px"}createListBox(e,t,n){const i=document.createElement("ul");i.id=t;i.setAttribute("role","listbox");i.setAttribute("aria-expanded","true");i.setAttribute("aria-label",this.view.state.phrase("Completions"));i.addEventListener("mousedown",(e=>{e.target==i&&e.preventDefault()}));let o=null;for(let s=n.from;s<n.to;s++){let{completion:l,match:r}=e[s],{section:a}=l;if(a){let e=typeof a=="string"?a:a.name;if(e!=o&&(s>n.from||n.from==0)){o=e;if(typeof a!="string"&&a.header)i.appendChild(a.header(a));else{let t=i.appendChild(document.createElement("completion-section"));t.textContent=e}}}const c=i.appendChild(document.createElement("li"));c.id=t+"-"+s;c.setAttribute("role","option");let f=this.optionClass(l);f&&(c.className=f);for(let e of this.optionContent){let t=e(l,this.view.state,this.view,r);t&&c.appendChild(t)}}n.from&&i.classList.add("cm-completionListIncompleteTop");n.to<e.length&&i.classList.add("cm-completionListIncompleteBottom");return i}destroyInfo(){if(this.info){this.infoDestroy&&this.infoDestroy();this.info.remove();this.info=null}}destroy(){this.destroyInfo()}}function V(e,t){return n=>new CompletionTooltip(n,e,t)}function K(e,t){let n=e.getBoundingClientRect();let i=t.getBoundingClientRect();let o=n.height/e.offsetHeight;i.top<n.top?e.scrollTop-=(n.top-i.top)/o:i.bottom>n.bottom&&(e.scrollTop+=(i.bottom-n.bottom)/o)}function Q(e){return(e.boost||0)*100+(e.apply?10:0)+(e.info?5:0)+(e.type?1:0)}function X(e,t){let n=[];let i=null,o=null;let s=e=>{n.push(e);let{section:t}=e.completion;if(t){i||(i=[]);let e=typeof t=="string"?t:t.name;i.some((t=>t.name==e))||i.push(typeof t=="string"?{name:e}:t)}};let l=t.facet(W);for(let i of e)if(i.hasResult()){let e=i.result.getMatch;if(i.result.filter===false)for(let t of i.result.options)s(new Option(t,i.source,e?e(t):[],1e9-n.length));else{let n,r=t.sliceDoc(i.from,i.to);let a=l.filterStrict?new StrictMatcher(r):new FuzzyMatcher(r);for(let t of i.result.options)if(n=a.match(t.label)){let l=t.displayLabel?e?e(t,n.matched):[]:n.matched;let r=n.score+(t.boost||0);s(new Option(t,i.source,l,r));if(typeof t.section=="object"&&t.section.rank==="dynamic"){let{name:e}=t.section;o||(o=Object.create(null));o[e]=Math.max(r,o[e]||-1e9)}}}}if(i){let e=Object.create(null),t=0;let s=(e,t)=>(e.rank==="dynamic"&&t.rank==="dynamic"?o[t.name]-o[e.name]:0)||(typeof e.rank=="number"?e.rank:1e9)-(typeof t.rank=="number"?t.rank:1e9)||(e.name<t.name?-1:1);for(let n of i.sort(s)){t-=1e5;e[n.name]=t}for(let t of n){let{section:n}=t.completion;n&&(t.score+=e[typeof n=="string"?n:n.name])}}let r=[],a=null;let c=l.compareCompletions;for(let e of n.sort(((e,t)=>t.score-e.score||c(e.completion,t.completion)))){let t=e.completion;!a||a.label!=t.label||a.detail!=t.detail||a.type!=null&&t.type!=null&&a.type!=t.type||a.apply!=t.apply||a.boost!=t.boost?r.push(e):Q(e.completion)>Q(a)&&(r[r.length-1]=e);a=e.completion}return r}class CompletionDialog{constructor(e,t,n,i,o,s){this.options=e;this.attrs=t;this.tooltip=n;this.timestamp=i;this.selected=o;this.disabled=s}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,J(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,i,o,s){if(i&&!s&&e.some((e=>e.isPending)))return i.setDisabled();let l=X(e,t);if(!l.length)return i&&e.some((e=>e.isPending))?i.setDisabled():null;let r=t.facet(W).selectOnOpen?0:-1;if(i&&i.selected!=r&&i.selected!=-1){let e=i.options[i.selected].completion;for(let t=0;t<l.length;t++)if(l[t].completion==e){r=t;break}}return new CompletionDialog(l,J(n,r),{pos:e.reduce(((e,t)=>t.hasResult()?Math.min(e,t.from):e),1e8),create:le,above:o.aboveCursor},i?i.timestamp:Date.now(),r,false)}map(e){return new CompletionDialog(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new CompletionDialog(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,true)}}class CompletionState{constructor(e,t,n){this.active=e;this.id=t;this.open=n}static start(){return new CompletionState(Z,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(W);let i=n.override||t.languageDataAt("autocomplete",L(t)).map($);let o=i.map((t=>{let i=this.active.find((e=>e.source==t))||new ActiveSource(t,this.active.some((e=>e.state!=0))?1:0);return i.update(e,n)}));o.length==this.active.length&&o.every(((e,t)=>e==this.active[t]))&&(o=this.active);let s=this.open,l=e.effects.some((e=>e.is(ne)));s&&e.docChanged&&(s=s.map(e.changes));e.selection||o.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!_(o,this.active)||l?s=CompletionDialog.build(o,t,this.id,s,n,l):s&&s.disabled&&!o.some((e=>e.isPending))&&(s=null);!s&&o.every((e=>!e.isPending))&&o.some((e=>e.hasResult()))&&(o=o.map((e=>e.hasResult()?new ActiveSource(e.source,0):e)));for(let t of e.effects)t.is(ie)&&(s=s&&s.setSelected(t.value,this.id));return o==this.active&&s==this.open?this:new CompletionState(o,this.id,s)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?Y:G}}function _(e,t){if(e==t)return true;for(let n=0,i=0;;){while(n<e.length&&!e[n].hasResult())n++;while(i<t.length&&!t[i].hasResult())i++;let o=n==e.length,s=i==t.length;if(o||s)return o==s;if(e[n++].result!=t[i++].result)return false}}const Y={"aria-autocomplete":"list"};const G={};function J(e,t){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};t>-1&&(n["aria-activedescendant"]=e+"-"+t);return n}const Z=[];function ee(e,t){if(e.isUserEvent("input.complete")){let n=e.annotation(P);if(n&&t.activateOnCompletion(n))return 12}let n=e.isUserEvent("input.type");return n&&t.activateOnTyping?5:n?1:e.isUserEvent("delete.backward")?2:e.selection?8:e.docChanged?16:0}class ActiveSource{constructor(e,t,n=false){this.source=e;this.state=t;this.explicit=n}hasResult(){return false}get isPending(){return this.state==1}update(e,t){let n=ee(e,t),i=this;(n&8||n&16&&this.touches(e))&&(i=new ActiveSource(i.source,0));n&4&&i.state==0&&(i=new ActiveSource(this.source,1));i=i.updateFor(e,n);for(let t of e.effects)if(t.is(N))i=new ActiveSource(i.source,1,t.value);else if(t.is(U))i=new ActiveSource(i.source,0);else if(t.is(ne))for(let e of t.value)e.source==i.source&&(i=e);return i}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(L(e.state))}}class ActiveResult extends ActiveSource{constructor(e,t,n,i,o,s){super(e,3,t);this.limit=n;this.result=i;this.from=o;this.to=s}hasResult(){return true}updateFor(e,t){var n;if(!(t&3))return this.map(e.changes);let i=this.result;i.map&&!e.changes.empty&&(i=i.map(i,e.changes));let o=e.changes.mapPos(this.from),s=e.changes.mapPos(this.to,1);let l=L(e.state);if(l>s||!i||t&2&&(L(e.startState)==this.from||l<this.limit))return new ActiveSource(this.source,t&4?1:0);let r=e.changes.mapPos(this.limit);return te(i.validFor,e.state,o,s)?new ActiveResult(this.source,this.explicit,r,i,o,s):i.update&&(i=i.update(i,o,s,new CompletionContext(e.state,l,false)))?new ActiveResult(this.source,this.explicit,r,i,i.from,(n=i.to)!==null&&n!==void 0?n:L(e.state)):new ActiveSource(this.source,1,this.explicit)}map(e){if(e.empty)return this;let t=this.result.map?this.result.map(this.result,e):this.result;return t?new ActiveResult(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new ActiveSource(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function te(e,t,n,i){if(!e)return false;let o=t.sliceDoc(n,i);return typeof e=="function"?e(o,n,i,t):M(e,true).test(o)}const ne=n.define({map(e,t){return e.map((e=>e.map(t)))}});const ie=n.define();const oe=a.define({create(){return CompletionState.start()},update(e,t){return e.update(t)},provide:e=>[b.from(e,(e=>e.tooltip)),w.contentAttributes.from(e,(e=>e.attrs))]});function se(e,t){const n=t.completion.apply||t.completion.label;let i=e.state.field(oe).active.find((e=>e.source==t.source));if(!(i instanceof ActiveResult))return false;typeof n=="string"?e.dispatch({...F(e.state,n,i.from,i.to),annotations:P.of(t.completion)}):n(e,t.completion,i.from,i.to);return true}const le=V(oe,se);function re(e,t="option"){return n=>{let i=n.state.field(oe,false);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<n.state.facet(W).interactionDelay)return false;let o,s=1;t=="page"&&(o=y(n,i.open.tooltip))&&(s=Math.max(2,Math.floor(o.dom.offsetHeight/o.dom.querySelector("li").offsetHeight)-1));let{length:l}=i.open.options;let r=i.open.selected>-1?i.open.selected+s*(e?1:-1):e?0:l-1;r<0?r=t=="page"?0:l-1:r>=l&&(r=t=="page"?l-1:0);n.dispatch({effects:ie.of(r)});return true}}const ae=e=>{let t=e.state.field(oe,false);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestamp<e.state.facet(W).interactionDelay)&&se(e,t.open.options[t.open.selected])};const ce=e=>{let t=e.state.field(oe,false);if(!t)return false;e.dispatch({effects:N.of(true)});return true};const fe=e=>{let t=e.state.field(oe,false);if(!t||!t.active.some((e=>e.state!=0)))return false;e.dispatch({effects:U.of(null)});return true};class RunningQuery{constructor(e,t){this.active=e;this.context=t;this.time=Date.now();this.updates=[];this.done=void 0}}const ue=50,he=1e3;const pe=x.fromClass(class{constructor(e){this.view=e;this.debounceUpdate=-1;this.running=[];this.debounceAccept=-1;this.pendingStart=false;this.composing=0;for(let t of e.state.field(oe).active)t.isPending&&this.startQuery(t)}update(e){let t=e.state.field(oe);let n=e.state.facet(W);if(!e.selectionSet&&!e.docChanged&&e.startState.field(oe)==t)return;let i=e.transactions.some((e=>{let t=ee(e,n);return t&8||(e.selection||e.docChanged)&&!(t&3)}));for(let t=0;t<this.running.length;t++){let n=this.running[t];if(i||n.context.abortOnDocChange&&e.docChanged||n.updates.length+e.transactions.length>ue&&Date.now()-n.time>he){for(let e of n.context.abortListeners)try{e()}catch(e){v(this.view.state,e)}n.context.abortListeners=null;this.running.splice(t--,1)}else n.updates.push(...e.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate);e.transactions.some((e=>e.effects.some((e=>e.is(N)))))&&(this.pendingStart=true);let o=this.pendingStart?50:n.activateOnTypingDelay;this.debounceUpdate=t.active.some((e=>e.isPending&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),o):-1;if(this.composing!=0)for(let t of e.transactions)t.isUserEvent("input.type")?this.composing=2:this.composing==2&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;this.pendingStart=false;let{state:e}=this.view,t=e.field(oe);for(let e of t.active)e.isPending&&!this.running.some((t=>t.active.source==e.source))&&this.startQuery(e);this.running.length&&t.open&&t.open.disabled&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(W).updateSyncTime))}startQuery(e){let{state:t}=this.view,n=L(t);let i=new CompletionContext(t,n,e.explicit,this.view);let o=new RunningQuery(e,i);this.running.push(o);Promise.resolve(e.source(i)).then((e=>{if(!o.context.aborted){o.done=e||null;this.scheduleAccept()}}),(e=>{this.view.dispatch({effects:U.of(null)});v(this.view.state,e)}))}scheduleAccept(){this.running.every((e=>e.done!==void 0))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(W).updateSyncTime))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept);this.debounceAccept=-1;let t=[];let n=this.view.state.facet(W),i=this.view.state.field(oe);for(let o=0;o<this.running.length;o++){let s=this.running[o];if(s.done===void 0)continue;this.running.splice(o--,1);if(s.done){let i=L(s.updates.length?s.updates[0].startState:this.view.state);let o=Math.min(i,s.done.from+(s.active.explicit?0:1));let l=new ActiveResult(s.active.source,s.active.explicit,o,s.done,s.done.from,(e=s.done.to)!==null&&e!==void 0?e:i);for(let e of s.updates)l=l.update(e,n);if(l.hasResult()){t.push(l);continue}}let l=i.active.find((e=>e.source==s.active.source));if(l&&l.isPending)if(s.done==null){let e=new ActiveSource(s.active.source,0);for(let t of s.updates)e=e.update(t,n);e.isPending||t.push(e)}else this.startQuery(l)}(t.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:ne.of(t)})}},{eventHandlers:{blur(e){let t=this.view.state.field(oe,false);if(t&&t.tooltip&&this.view.state.facet(W).closeOnBlur){let n=t.open&&y(this.view,t.open.tooltip);n&&n.dom.contains(e.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:U.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout((()=>this.view.dispatch({effects:N.of(false)})),20);this.composing=0}}});const de=typeof navigator=="object"&&/Win/.test(navigator.platform);const me=c.highest(w.domEventHandlers({keydown(e,t){let n=t.state.field(oe,false);if(!n||!n.open||n.open.disabled||n.open.selected<0||e.key.length>1||e.ctrlKey&&!(de&&e.altKey)||e.metaKey)return false;let i=n.open.options[n.open.selected];let o=n.active.find((e=>e.source==i.source));let s=i.completion.commitCharacters||o.result.commitCharacters;s&&s.indexOf(e.key)>-1&&se(t,i);return false}}));const ge=w.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,t,n,i){this.field=e;this.line=t;this.from=n;this.to=i}}class FieldRange{constructor(e,t,n){this.field=e;this.from=t;this.to=n}map(e){let t=e.mapPos(this.from,-1,f.TrackDel);let n=e.mapPos(this.to,1,f.TrackDel);return t==null||n==null?null:new FieldRange(this.field,t,n)}}class Snippet{constructor(e,t){this.lines=e;this.fieldPositions=t}instantiate(e,t){let n=[],i=[t];let o=e.doc.lineAt(t),s=/^\s*/.exec(o.text)[0];for(let o of this.lines){if(n.length){let n=s,l=/^\t*/.exec(o)[0].length;for(let t=0;t<l;t++)n+=e.facet(k);i.push(t+n.length-l);o=n+o.slice(l)}n.push(o);t+=o.length+1}let l=this.fieldPositions.map((e=>new FieldRange(e.field,i[e.line]+e.from,i[e.line]+e.to)));return{text:n,ranges:l}}static parse(e){let t=[];let n,i=[],o=[];for(let s of e.split(/\r\n?|\n/)){while(n=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(s)){let e=n[1]?+n[1]:null,l=n[2]||n[3]||"",r=-1;let a=l.replace(/\\[{}]/g,(e=>e[1]));for(let n=0;n<t.length;n++)(e!=null?t[n].seq!=e:!a||t[n].name!=a)||(r=n);if(r<0){let n=0;while(n<t.length&&(e==null||t[n].seq!=null&&t[n].seq<e))n++;t.splice(n,0,{seq:e,name:a});r=n;for(let e of o)e.field>=r&&e.field++}for(let e of o)if(e.line==i.length&&e.from>n.index){let t=n[2]?3+(n[1]||"").length:2;e.from-=t;e.to-=t}o.push(new FieldPos(r,i.length,n.index,n.index+a.length));s=s.slice(0,n.index)+l+s.slice(n.index+n[0].length)}s=s.replace(/\\([{}])/g,((e,t,n)=>{for(let e of o)if(e.line==i.length&&e.from>n){e.from--;e.to--}return t}));i.push(s)}return new Snippet(i,o)}}let ve=C.widget({widget:new class extends S{toDOM(){let e=document.createElement("span");e.className="cm-snippetFieldPosition";return e}ignoreEvent(){return false}}});let be=C.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,t){this.ranges=e;this.active=t;this.deco=C.set(e.map((e=>(e.from==e.to?ve:be).range(e.from,e.to))),true)}map(e){let t=[];for(let n of this.ranges){let i=n.map(e);if(!i)return null;t.push(i)}return new ActiveSnippet(t,this.active)}selectionInsideField(e){return e.ranges.every((e=>this.ranges.some((t=>t.field==this.active&&t.from<=e.from&&t.to>=e.to))))}}const we=n.define({map(e,t){return e&&e.map(t)}});const ye=n.define();const xe=a.define({create(){return null},update(e,t){for(let n of t.effects){if(n.is(we))return n.value;if(n.is(ye)&&e)return new ActiveSnippet(e.ranges,n.value)}e&&t.docChanged&&(e=e.map(t.changes));e&&t.selection&&!e.selectionInsideField(t.selection)&&(e=null);return e},provide:e=>w.decorations.from(e,(e=>e?e.deco:C.none))});function Ce(e,n){return t.create(e.filter((e=>e.field==n)).map((e=>t.range(e.from,e.to))))}function Se(e){let t=Snippet.parse(e);return(e,i,o,s)=>{let{text:l,ranges:r}=t.instantiate(e.state,o);let{main:a}=e.state.selection;let c={changes:{from:o,to:s==a.from?a.to:s,insert:h.of(l)},scrollIntoView:true,annotations:i?[P.of(i),u.userEvent.of("input.complete")]:void 0};r.length&&(c.selection=Ce(r,0));if(r.some((e=>e.field>0))){let t=new ActiveSnippet(r,0);let i=c.effects=[we.of(t)];e.state.field(xe,false)===void 0&&i.push(n.appendConfig.of([xe,Le,Pe,ge]))}e.dispatch(e.state.update(c))}}function Ae(e){return({state:t,dispatch:n})=>{let i=t.field(xe,false);if(!i||e<0&&i.active==0)return false;let o=i.active+e,s=e>0&&!i.ranges.some((t=>t.field==o+e));n(t.update({selection:Ce(i.ranges,o),effects:we.of(s?null:new ActiveSnippet(i.ranges,o)),scrollIntoView:true}));return true}}const Ie=({state:e,dispatch:t})=>{let n=e.field(xe,false);if(!n)return false;t(e.update({effects:we.of(null)}));return true};const ke=Ae(1);const De=Ae(-1);function Oe(e){let t=e.field(xe,false);return!!(t&&t.ranges.some((e=>e.field==t.active+1)))}function Re(e){let t=e.field(xe,false);return!!(t&&t.active>0)}const Te=[{key:"Tab",run:ke,shift:De},{key:"Escape",run:Ie}];const Ee=l.define({combine(e){return e.length?e[0]:Te}});const Le=c.highest(A.compute([Ee],(e=>e.facet(Ee))));function Me(e,t){return{...t,apply:Se(e)}}const Pe=w.domEventHandlers({mousedown(e,t){let n,i=t.state.field(xe,false);if(!i||(n=t.posAtCoords({x:e.clientX,y:e.clientY}))==null)return false;let o=i.ranges.find((e=>e.from<=n&&e.to>=n));if(!o||o.field==i.active)return false;t.dispatch({selection:Ce(i.ranges,o.field),effects:we.of(i.ranges.some((e=>e.field>o.field))?new ActiveSnippet(i.ranges,o.field):null),scrollIntoView:true});return true}});function Fe(e){let t=e.replace(/[\]\-\\]/g,"\\$&");try{return new RegExp(`[\\p{Alphabetic}\\p{Number}_${t}]+`,"ug")}catch(e){return new RegExp(`[w${t}]`,"g")}}function Be(e,t){return new RegExp(t(e.source),e.unicode?"u":"")}const $e=Object.create(null);function Ne(e){return $e[e]||($e[e]=new WeakMap)}function Ue(e,t,n,i,o){for(let s=e.iterLines(),l=0;!s.next().done;){let e,{value:r}=s;t.lastIndex=0;while(e=t.exec(r))if(!i[e[0]]&&l+e.index!=o){n.push({type:"text",label:e[0]});i[e[0]]=true;if(n.length>=2e3)return}l+=r.length+1}}function We(e,t,n,i,o){let s=e.length>=1e3;let l=s&&t.get(e);if(l)return l;let r=[],a=Object.create(null);if(e.children){let s=0;for(let l of e.children){if(l.length>=1e3){for(let e of We(l,t,n,i-s,o-s))if(!a[e.label]){a[e.label]=true;r.push(e)}}else Ue(l,n,r,a,o-s);s+=l.length+1}}else Ue(e,n,r,a,o);s&&r.length<2e3&&t.set(e,r);return r}const qe=e=>{let t=e.state.languageDataAt("wordChars",e.pos).join("");let n=Fe(t);let i=e.matchBefore(Be(n,(e=>e+"$")));if(!i&&!e.explicit)return null;let o=i?i.from:e.pos;let s=We(e.state.doc,Ne(t),n,5e4,o);return{from:o,options:s,validFor:Be(n,(e=>"^"+e))}};const je={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]};const ze=n.define({map(e,t){let n=t.mapPos(e,-1,f.TrackAfter);return n==null?void 0:n}});const He=new class extends p{};He.startSide=1;He.endSide=-1;const Ve=a.define({create(){return d.empty},update(e,t){e=e.map(t.changes);if(t.selection){let n=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=n.from&&e<=n.to})}for(let n of t.effects)n.is(ze)&&(e=e.update({add:[He.range(n.value,n.value+1)]}));return e}});function Ke(){return[Ge,Ve]}const Qe="()[]{}<>«»»«[]{}";function Xe(e){for(let t=0;t<Qe.length;t+=2)if(Qe.charCodeAt(t)==e)return Qe.charAt(t+1);return s(e<128?e:e+1)}function _e(e,t){return e.languageDataAt("closeBrackets",t)[0]||je}const Ye=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);const Ge=w.inputHandler.of(((e,t,n,s)=>{if((Ye?e.composing:e.compositionStarted)||e.state.readOnly)return false;let l=e.state.selection.main;if(s.length>2||s.length==2&&o(i(s,0))==1||t!=l.from||n!=l.to)return false;let r=et(e.state,s);if(!r)return false;e.dispatch(r);return true}));const Je=({state:e,dispatch:n})=>{if(e.readOnly)return false;let o=_e(e,e.selection.main.head);let s=o.brackets||je.brackets;let l=null,r=e.changeByRange((n=>{if(n.empty){let o=it(e.doc,n.head);for(let l of s)if(l==o&&nt(e.doc,n.head)==Xe(i(l,0)))return{changes:{from:n.head-l.length,to:n.head+l.length},range:t.cursor(n.head-l.length)}}return{range:l=n}}));l||n(e.update(r,{scrollIntoView:true,userEvent:"delete.backward"}));return!l};const Ze=[{key:"Backspace",run:Je}];function et(e,t){let n=_e(e,e.selection.main.head);let o=n.brackets||je.brackets;for(let s of o){let l=Xe(i(s,0));if(t==s)return l==s?lt(e,s,o.indexOf(s+s+s)>-1,n):ot(e,s,l,n.before||je.before);if(t==l&&tt(e,e.selection.main.from))return st(e,s,l)}return null}function tt(e,t){let n=false;e.field(Ve).between(0,e.doc.length,(e=>{e==t&&(n=true)}));return n}function nt(e,t){let n=e.sliceString(t,t+2);return n.slice(0,o(i(n,0)))}function it(e,t){let n=e.sliceString(t-2,t);return o(i(n,0))==n.length?n:n.slice(1)}function ot(e,n,i,o){let s=null,l=e.changeByRange((l=>{if(!l.empty)return{changes:[{insert:n,from:l.from},{insert:i,from:l.to}],effects:ze.of(l.to+n.length),range:t.range(l.anchor+n.length,l.head+n.length)};let r=nt(e.doc,l.head);return!r||/\s/.test(r)||o.indexOf(r)>-1?{changes:{insert:n+i,from:l.head},effects:ze.of(l.head+n.length),range:t.cursor(l.head+n.length)}:{range:s=l}}));return s?null:e.update(l,{scrollIntoView:true,userEvent:"input.type"})}function st(e,n,i){let o=null,s=e.changeByRange((n=>n.empty&&nt(e.doc,n.head)==i?{changes:{from:n.head,to:n.head+i.length,insert:i},range:t.cursor(n.head+i.length)}:o={range:n}));return o?null:e.update(s,{scrollIntoView:true,userEvent:"input.type"})}function lt(e,n,i,o){let s=o.stringPrefixes||je.stringPrefixes;let l=null,r=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:n,from:o.from},{insert:n,from:o.to}],effects:ze.of(o.to+n.length),range:t.range(o.anchor+n.length,o.head+n.length)};let r,a=o.head,c=nt(e.doc,a);if(c==n){if(rt(e,a))return{changes:{insert:n+n,from:a},effects:ze.of(a+n.length),range:t.cursor(a+n.length)};if(tt(e,a)){let o=i&&e.sliceDoc(a,a+n.length*3)==n+n+n;let s=o?n+n+n:n;return{changes:{from:a,to:a+s.length,insert:s},range:t.cursor(a+s.length)}}}else{if(i&&e.sliceDoc(a-2*n.length,a)==n+n&&(r=ct(e,a-2*n.length,s))>-1&&rt(e,r))return{changes:{insert:n+n+n+n,from:a},effects:ze.of(a+n.length),range:t.cursor(a+n.length)};if(e.charCategorizer(a)(c)!=m.Word&&ct(e,a,s)>-1&&!at(e,a,n,s))return{changes:{insert:n+n,from:a},effects:ze.of(a+n.length),range:t.cursor(a+n.length)}}return{range:l=o}}));return l?null:e.update(r,{scrollIntoView:true,userEvent:"input.type"})}function rt(e,t){let n=I(e).resolveInner(t+1);return n.parent&&n.from==t}function at(e,t,n,i){let o=I(e).resolveInner(t,-1);let s=i.reduce(((e,t)=>Math.max(e,t.length)),0);for(let l=0;l<5;l++){let l=e.sliceDoc(o.from,Math.min(o.to,o.from+n.length+s));let r=l.indexOf(n);if(!r||r>-1&&i.indexOf(l.slice(0,r))>-1){let t=o.firstChild;while(t&&t.from==o.from&&t.to-t.from>n.length+r){if(e.sliceDoc(t.to-n.length,t.to)==n)return false;t=t.firstChild}return true}let a=o.to==t&&o.parent;if(!a)break;o=a}return false}function ct(e,t,n){let i=e.charCategorizer(t);if(i(e.sliceDoc(t-1,t))!=m.Word)return t;for(let o of n){let n=t-o.length;if(e.sliceDoc(n,t)==o&&i(e.sliceDoc(n-1,n))!=m.Word)return n}return-1}function ft(e={}){return[me,oe,W.of(e),pe,ht,ge]}const ut=[{key:"Ctrl-Space",run:ce},{mac:"Alt-`",run:ce},{mac:"Alt-i",run:ce},{key:"Escape",run:fe},{key:"ArrowDown",run:re(true)},{key:"ArrowUp",run:re(false)},{key:"PageDown",run:re(true,"page")},{key:"PageUp",run:re(false,"page")},{key:"Enter",run:ae}];const ht=c.highest(A.computeN([W],(e=>e.facet(W).defaultKeymap?[ut]:[])));function pt(e){let t=e.field(oe,false);return t&&t.active.some((e=>e.isPending))?"pending":t&&t.active.some((e=>e.state!=0))?"active":null}const dt=new WeakMap;function mt(e){var t;let n=(t=e.field(oe,false))===null||t===void 0?void 0:t.open;if(!n||n.disabled)return[];let i=dt.get(n.options);i||dt.set(n.options,i=n.options.map((e=>e.completion)));return i}function gt(e){var t;let n=(t=e.field(oe,false))===null||t===void 0?void 0:t.open;return n&&!n.disabled&&n.selected>=0?n.options[n.selected].completion:null}function vt(e){var t;let n=(t=e.field(oe,false))===null||t===void 0?void 0:t.open;return n&&!n.disabled&&n.selected>=0?n.selected:null}function bt(e){return ie.of(e)}export{CompletionContext,ae as acceptCompletion,ft as autocompletion,Ie as clearSnippet,Ke as closeBrackets,Ze as closeBracketsKeymap,fe as closeCompletion,qe as completeAnyWord,R as completeFromList,ut as completionKeymap,pt as completionStatus,mt as currentCompletions,Je as deleteBracketPair,Oe as hasNextSnippetField,Re as hasPrevSnippetField,T as ifIn,E as ifNotIn,et as insertBracket,F as insertCompletionText,re as moveCompletionSelection,ke as nextSnippetField,P as pickedCompletion,De as prevSnippetField,gt as selectedCompletion,vt as selectedCompletionIndex,bt as setSelectedCompletion,Se as snippet,Me as snippetCompletion,Ee as snippetKeymap,ce as startCompletion};
|
|
4
|
+
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @codemirror/commands@6.9.0 downloaded from https://ga.jspm.io/npm:@codemirror/commands@6.9.0/dist/index.js
|
|
2
|
+
|
|
3
|
+
import{Annotation as e,Facet as t,combineConfig as n,StateField as r,Transaction as o,ChangeSet as s,ChangeDesc as l,EditorSelection as a,StateEffect as i,findClusterBreak as c,CharCategory as u,countColumn as f,Text as h}from"@codemirror/state";import{EditorView as m,Direction as d}from"@codemirror/view";import{syntaxTree as p,matchBrackets as g,getIndentUnit as y,IndentContext as v,getIndentation as A,indentString as k,indentUnit as w}from"@codemirror/language";import{NodeProp as S}from"@lezer/common";const D=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=T(e.state,n.from);return r.line?M(e):!!r.block&&H(e)};function x(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return false;let o=e(t,n);if(!o)return false;r(n.update(o));return true}}const M=x(J,0);const E=x(J,1);const B=x(J,2);const C=x(L,0);const b=x(L,1);const O=x(L,2);const H=x(((e,t)=>L(e,t,R(t))),0);function T(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const I=50;function V(e,{open:t,close:n},r,o){let s=e.sliceDoc(r-I,r);let l=e.sliceDoc(o,o+I);let a=/\s*$/.exec(s)[0].length,i=/^\s*/.exec(l)[0].length;let c=s.length-a;if(s.slice(c-t.length,c)==t&&l.slice(i,i+n.length)==n)return{open:{pos:r-a,margin:a&&1},close:{pos:o+i,margin:i&&1}};let u,f;if(o-r<=2*I)u=f=e.sliceDoc(r,o);else{u=e.sliceDoc(r,r+I);f=e.sliceDoc(o-I,o)}let h=/^\s*/.exec(u)[0].length,m=/\s*$/.exec(f)[0].length;let d=f.length-m-n.length;return u.slice(h,h+t.length)==t&&f.slice(d,d+n.length)==n?{open:{pos:r+h+t.length,margin:/\s/.test(u.charAt(h+t.length))?1:0},close:{pos:o-m-n.length,margin:/\s/.test(f.charAt(d-1))?1:0}}:null}function R(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from);let o=n.to<=r.to?r:e.doc.lineAt(n.to);o.from>r.from&&o.from==n.to&&(o=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let s=t.length-1;s>=0&&t[s].to>r.from?t[s].to=o.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:o.to})}return t}function L(e,t,n=t.selection.ranges){let r=n.map((e=>T(t,e.from).block));if(!r.every((e=>e)))return null;let o=n.map(((e,n)=>V(t,r[n],e.from,e.to)));if(e!=2&&!o.every((e=>e)))return{changes:t.changes(n.map(((e,t)=>o[t]?[]:[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}])))};if(e!=1&&o.some((e=>e))){let e=[];for(let t,n=0;n<o.length;n++)if(t=o[n]){let o=r[n],{open:s,close:l}=t;e.push({from:s.pos-o.open.length,to:s.pos+s.margin},{from:l.pos-l.margin,to:l.pos+o.close.length})}return{changes:e}}return null}function J(e,t,n=t.selection.ranges){let r=[];let o=-1;for(let{from:e,to:s}of n){let n=r.length,l=1e9;let a=T(t,e).line;if(a){for(let n=e;n<=s;){let i=t.doc.lineAt(n);if(i.from>o&&(e==s||s>i.from)){o=i.from;let e=/^\s*/.exec(i.text)[0].length;let t=e==i.length;let n=i.text.slice(e,e+a.length)==a?e:-1;e<i.text.length&&e<l&&(l=e);r.push({line:i,comment:n,token:a,indent:e,empty:t,single:false})}n=i.to+1}if(l<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=l);r.length==n+1&&(r[n].single=true)}}if(e!=2&&r.some((e=>e.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:n,indent:o,empty:s,single:l}of r)!l&&s||e.push({from:t.from+o,insert:n+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(e!=1&&r.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:o}of r)if(n>=0){let r=t.from+n,s=r+o.length;t.text[s-t.from]==" "&&s++;e.push({from:r,to:s})}return{changes:e}}return null}const N=e.define();const U=e.define();const z=t.define();const G=t.define({combine(e){return n(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}});const P=r.define({create(){return HistoryState.empty},update(e,t){let n=t.state.facet(G);let r=t.annotation(N);if(r){let o=HistEvent.fromTransaction(t,r.selection),s=r.side;let l=s==0?e.undone:e.done;l=o?Z(l,l.length,n.minDepth,o):se(l,t.startState.selection);return new HistoryState(s==0?r.rest:l,s==0?l:r.rest)}let s=t.annotation(U);s!="full"&&s!="before"||(e=e.isolate());if(t.annotation(o.addToHistory)===false)return t.changes.empty?e:e.addMapping(t.changes.desc);let l=HistEvent.fromTransaction(t);let a=t.annotation(o.time),i=t.annotation(o.userEvent);l?e=e.addChanges(l,a,i,n,t):t.selection&&(e=e.addSelection(t.startState.selection,a,i,n.newGroupDelay));s!="full"&&s!="after"||(e=e.isolate());return e},toJSON(e){return{done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}},fromJSON(e){return new HistoryState(e.done.map(HistEvent.fromJSON),e.undone.map(HistEvent.fromJSON))}});function W(e={}){return[P,G.of(e),m.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?j:e.inputType=="historyRedo"?F:null;if(!n)return false;e.preventDefault();return n(t)}})]}const q=P;function $(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return false;let o=n.field(P,false);if(!o)return false;let s=o.pop(e,n,t);if(!s)return false;r(s);return true}}const j=$(0,false);const F=$(1,false);const _=$(0,true);const K=$(1,true);function Q(e){return function(t){let n=t.field(P,false);if(!n)return 0;let r=e==0?n.done:n.undone;return r.length-(r.length&&!r[0].changes?1:0)}}const X=Q(0);const Y=Q(1);class HistEvent{constructor(e,t,n,r,o){this.changes=e;this.effects=t;this.mapped=n;this.startSelection=r;this.selectionsAfter=o}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new HistEvent(e.changes&&s.fromJSON(e.changes),[],e.mapped&&l.fromJSON(e.mapped),e.startSelection&&a.fromJSON(e.startSelection),e.selectionsAfter.map(a.fromJSON))}static fromTransaction(e,t){let n=re;for(let t of e.startState.facet(z)){let r=t(e);r.length&&(n=n.concat(r))}return!n.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,re)}static selection(e){return new HistEvent(void 0,re,void 0,void 0,e)}}function Z(e,t,n,r){let o=t+1>n+20?t-n-1:0;let s=e.slice(o,t);s.push(r);return s}function ee(e,t){let n=[],r=false;e.iterChangedRanges(((e,t)=>n.push(e,t)));t.iterChangedRanges(((e,t,o,s)=>{for(let e=0;e<n.length;){let t=n[e++],l=n[e++];s>=t&&o<=l&&(r=true)}}));return r}function te(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter(((e,n)=>e.empty!=t.ranges[n].empty)).length===0}function ne(e,t){return e.length?t.length?e.concat(t):e:t}const re=[];const oe=200;function se(e,t){if(e.length){let n=e[e.length-1];let r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-oe));if(r.length&&r[r.length-1].eq(t))return e;r.push(t);return Z(e,e.length-1,1e9,n.setSelAfter(r))}return[HistEvent.selection([t])]}function le(e){let t=e[e.length-1];let n=e.slice();n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1));return n}function ae(e,t){if(!e.length)return e;let n=e.length,r=re;while(n){let o=ie(e[n-1],t,r);if(o.changes&&!o.changes.empty||o.effects.length){let t=e.slice(0,n);t[n-1]=o;return t}t=o.mapped;n--;r=o.selectionsAfter}return r.length?[HistEvent.selection(r)]:re}function ie(e,t,n){let r=ne(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):re,n);if(!e.changes)return HistEvent.selection(r);let o=e.changes.map(t),s=t.mapDesc(e.changes,true);let l=e.mapped?e.mapped.composeDesc(s):s;return new HistEvent(o,i.mapEffects(e.effects,t),l,e.startSelection.map(s),r)}const ce=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,t,n=0,r=void 0){this.done=e;this.undone=t;this.prevTime=n;this.prevUserEvent=r}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,t,n,r,o){let s=this.done,l=s[s.length-1];s=l&&l.changes&&!l.changes.empty&&e.changes&&(!n||ce.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(o,ee(l.changes,e.changes))||n=="input.type.compose")?Z(s,s.length-1,r.minDepth,new HistEvent(e.changes.compose(l.changes),ne(i.mapEffects(e.effects,l.changes),l.effects),l.mapped,l.startSelection,re)):Z(s,s.length,r.minDepth,e);return new HistoryState(s,re,t,n)}addSelection(e,t,n,r){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:re;return o.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&te(o[o.length-1],e)?this:new HistoryState(se(this.done,e),this.undone,t,n)}addMapping(e){return new HistoryState(ae(this.done,e),ae(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let o=r[r.length-1],s=o.selectionsAfter[0]||t.selection;if(n&&o.selectionsAfter.length)return t.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:N.of({side:e,rest:le(r),selection:s}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:true});if(o.changes){let n=r.length==1?re:r.slice(0,r.length-1);o.mapped&&(n=ae(n,o.mapped));return t.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:N.of({side:e,rest:n,selection:s}),filter:false,userEvent:e==0?"undo":"redo",scrollIntoView:true})}return null}}HistoryState.empty=new HistoryState(re,re);const ue=[{key:"Mod-z",run:j,preventDefault:true},{key:"Mod-y",mac:"Mod-Shift-z",run:F,preventDefault:true},{linux:"Ctrl-Shift-z",run:F,preventDefault:true},{key:"Mod-u",run:_,preventDefault:true},{key:"Alt-u",mac:"Mod-Shift-u",run:K,preventDefault:true}];function fe(e,t){return a.create(e.ranges.map(t),e.mainIndex)}function he(e,t){return e.update({selection:t,scrollIntoView:true,userEvent:"select"})}function me({state:e,dispatch:t},n){let r=fe(e.selection,n);if(r.eq(e.selection,true))return false;t(he(e,r));return true}function de(e,t){return a.cursor(t?e.to:e.from)}function pe(e,t){return me(e,(n=>n.empty?e.moveByChar(n,t):de(n,t)))}function ge(e){return e.textDirectionAt(e.state.selection.main.head)==d.LTR}const ye=e=>pe(e,!ge(e));const ve=e=>pe(e,ge(e));const Ae=e=>pe(e,true);const ke=e=>pe(e,false);function we(e,t,n){let r=t.head,o=e.doc.lineAt(r);r=r==(n?o.to:o.from)?n?Math.min(e.doc.length,o.to+1):Math.max(0,o.from-1):o.from+c(o.text,r-o.from,n);return a.cursor(r,n?-1:1)}function Se(e,t){return me(e,(n=>n.empty?we(e.state,n,t):de(n,t)))}const De=e=>Se(e,true);const xe=e=>Se(e,false);function Me(e,t){return me(e,(n=>n.empty?e.moveByGroup(n,t):de(n,t)))}const Ee=e=>Me(e,!ge(e));const Be=e=>Me(e,ge(e));const Ce=e=>Me(e,true);const be=e=>Me(e,false);function Oe(e,t,n){let r=e.state.charCategorizer(t);let o=r(n),s=o!=u.Space;return e=>{let t=r(e);if(t!=u.Space)return s&&t==o;s=false;return true}}const He=e=>me(e,(t=>t.empty?e.moveByChar(t,true,(n=>Oe(e,t.head,n))):de(t,true)));const Te=typeof Intl!="undefined"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function Ie(e,t,n){let r=e.state.charCategorizer(t.from);let o=u.Space,s=t.from,l=0;let i=false,c=false,f=false;let h=t=>{if(i)return false;s+=n?t.length:-t.length;let a,h=r(t);h==u.Word&&t.charCodeAt(0)<128&&/[\W_]/.test(t)&&(h=-1);o==u.Space&&(o=h);if(o!=h)return false;if(o==u.Word)if(t.toLowerCase()==t){if(!n&&c)return false;f=true}else if(f){if(n)return false;i=true}else{if(c&&n&&r(a=e.state.sliceDoc(s,s+1))==u.Word&&a.toLowerCase()==a)return false;c=true}l++;return true};let m=e.moveByChar(t,n,(e=>{h(e);return h}));if(Te&&o==u.Word&&m.from==t.from+l*(n?1:-1)){let r=Math.min(t.head,m.head),o=Math.max(t.head,m.head);let s=e.state.sliceDoc(r,o);if(s.length>1&&/[\u4E00-\uffff]/.test(s)){let e=Array.from(Te.segment(s));if(e.length>1)return n?a.cursor(t.head+e[1].index,-1):a.cursor(m.head+e[e.length-1].index,1)}}return m}function Ve(e,t){return me(e,(n=>n.empty?Ie(e,n,t):de(n,t)))}const Re=e=>Ve(e,true);const Le=e=>Ve(e,false);function Je(e,t,n){if(t.type.prop(n))return true;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Ne(e,t,n){let r=p(e).resolveInner(t.head);let o=n?S.closedBy:S.openedBy;for(let s=t.head;;){let t=n?r.childAfter(s):r.childBefore(s);if(!t)break;Je(e,t,o)?r=t:s=n?t.to:t.from}let s,l,i=r.type.prop(o);l=i&&(s=n?g(e,r.from,1):g(e,r.to,-1))&&s.matched?n?s.end.to:s.end.from:n?r.to:r.from;return a.cursor(l,n?-1:1)}const Ue=e=>me(e,(t=>Ne(e.state,t,!ge(e))));const ze=e=>me(e,(t=>Ne(e.state,t,ge(e))));function Ge(e,t){return me(e,(n=>{if(!n.empty)return de(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)}))}const Pe=e=>Ge(e,false);const We=e=>Ge(e,true);function qe(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2;let n,r=0,o=0;if(t){for(let t of e.state.facet(m.scrollMargins)){let n=t(e);(n===null||n===void 0?void 0:n.top)&&(r=Math.max(n===null||n===void 0?void 0:n.top,r));(n===null||n===void 0?void 0:n.bottom)&&(o=Math.max(n===null||n===void 0?void 0:n.bottom,o))}n=e.scrollDOM.clientHeight-r-o}else n=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:r,marginBottom:o,selfScroll:t,height:Math.max(e.defaultLineHeight,n-5)}}function $e(e,t){let n=qe(e);let{state:r}=e,o=fe(r.selection,(r=>r.empty?e.moveVertically(r,t,n.height):de(r,t)));if(o.eq(r.selection))return false;let s;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head);let l=e.scrollDOM.getBoundingClientRect();let a=l.top+n.marginTop,i=l.bottom-n.marginBottom;t&&t.top>a&&t.bottom<i&&(s=m.scrollIntoView(o.main.head,{y:"start",yMargin:t.top-a}))}e.dispatch(he(r,o),{effects:s});return true}const je=e=>$e(e,false);const Fe=e=>$e(e,true);function _e(e,t,n){let r=e.lineBlockAt(t.head),o=e.moveToLineBoundary(t,n);o.head==t.head&&o.head!=(n?r.to:r.from)&&(o=e.moveToLineBoundary(t,n,false));if(!n&&o.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(o=a.cursor(r.from+n))}return o}const Ke=e=>me(e,(t=>_e(e,t,true)));const Qe=e=>me(e,(t=>_e(e,t,false)));const Xe=e=>me(e,(t=>_e(e,t,!ge(e))));const Ye=e=>me(e,(t=>_e(e,t,ge(e))));const Ze=e=>me(e,(t=>a.cursor(e.lineBlockAt(t.head).from,1)));const et=e=>me(e,(t=>a.cursor(e.lineBlockAt(t.head).to,-1)));function tt(e,t,n){let r=false,o=fe(e.selection,(t=>{let o=g(e,t.head,-1)||g(e,t.head,1)||t.head>0&&g(e,t.head-1,1)||t.head<e.doc.length&&g(e,t.head+1,-1);if(!o||!o.end)return t;r=true;let s=o.start.from==t.head?o.end.to:o.end.from;return n?a.range(t.anchor,s):a.cursor(s)}));if(!r)return false;t(he(e,o));return true}const nt=({state:e,dispatch:t})=>tt(e,t,false);const rt=({state:e,dispatch:t})=>tt(e,t,true);function ot(e,t){let n=fe(e.state.selection,(e=>{let n=t(e);return a.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)}));if(n.eq(e.state.selection))return false;e.dispatch(he(e.state,n));return true}function st(e,t){return ot(e,(n=>e.moveByChar(n,t)))}const lt=e=>st(e,!ge(e));const at=e=>st(e,ge(e));const it=e=>st(e,true);const ct=e=>st(e,false);const ut=e=>ot(e,(t=>we(e.state,t,true)));const ft=e=>ot(e,(t=>we(e.state,t,false)));function ht(e,t){return ot(e,(n=>e.moveByGroup(n,t)))}const mt=e=>ht(e,!ge(e));const dt=e=>ht(e,ge(e));const pt=e=>ht(e,true);const gt=e=>ht(e,false);const yt=e=>ot(e,(t=>e.moveByChar(t,true,(n=>Oe(e,t.head,n)))));function vt(e,t){return ot(e,(n=>Ie(e,n,t)))}const At=e=>vt(e,true);const kt=e=>vt(e,false);const wt=e=>ot(e,(t=>Ne(e.state,t,!ge(e))));const St=e=>ot(e,(t=>Ne(e.state,t,ge(e))));function Dt(e,t){return ot(e,(n=>e.moveVertically(n,t)))}const xt=e=>Dt(e,false);const Mt=e=>Dt(e,true);function Et(e,t){return ot(e,(n=>e.moveVertically(n,t,qe(e).height)))}const Bt=e=>Et(e,false);const Ct=e=>Et(e,true);const bt=e=>ot(e,(t=>_e(e,t,true)));const Ot=e=>ot(e,(t=>_e(e,t,false)));const Ht=e=>ot(e,(t=>_e(e,t,!ge(e))));const Tt=e=>ot(e,(t=>_e(e,t,ge(e))));const It=e=>ot(e,(t=>a.cursor(e.lineBlockAt(t.head).from)));const Vt=e=>ot(e,(t=>a.cursor(e.lineBlockAt(t.head).to)));const Rt=({state:e,dispatch:t})=>{t(he(e,{anchor:0}));return true};const Lt=({state:e,dispatch:t})=>{t(he(e,{anchor:e.doc.length}));return true};const Jt=({state:e,dispatch:t})=>{t(he(e,{anchor:e.selection.main.anchor,head:0}));return true};const Nt=({state:e,dispatch:t})=>{t(he(e,{anchor:e.selection.main.anchor,head:e.doc.length}));return true};const Ut=({state:e,dispatch:t})=>{t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"}));return true};const zt=({state:e,dispatch:t})=>{let n=cn(e).map((({from:t,to:n})=>a.range(t,Math.min(n+1,e.doc.length))));t(e.update({selection:a.create(n),userEvent:"select"}));return true};const Gt=({state:e,dispatch:t})=>{let n=fe(e.selection,(t=>{let n=p(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return a.range(n.to,n.from)}return t}));if(n.eq(e.selection))return false;t(he(e,n));return true};function Pt(e,t){let{state:n}=e,r=n.selection,o=n.selection.ranges.slice();for(let r of n.selection.ranges){let s=n.doc.lineAt(r.head);if(t?s.to<e.state.doc.length:s.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<s.from||r.head>s.to){o.some((e=>e.head==r.head))||o.push(r);break}if(r.head==n.head)break;n=r}}if(o.length==r.ranges.length)return false;e.dispatch(he(n,a.create(o,o.length-1)));return true}const Wt=e=>Pt(e,false);const qt=e=>Pt(e,true);const $t=({state:e,dispatch:t})=>{let n=e.selection,r=null;n.ranges.length>1?r=a.create([n.main]):n.main.empty||(r=a.create([a.cursor(n.main.head)]));if(!r)return false;t(he(e,r));return true};function jt(e,t){if(e.state.readOnly)return false;let n="delete.selection",{state:r}=e;let o=r.changeByRange((r=>{let{from:o,to:s}=r;if(o==s){let l=t(r);if(l<o){n="delete.backward";l=Ft(e,l,false)}else if(l>o){n="delete.forward";l=Ft(e,l,true)}o=Math.min(o,l);s=Math.max(s,l)}else{o=Ft(e,o,false);s=Ft(e,s,true)}return o==s?{range:r}:{changes:{from:o,to:s},range:a.cursor(o,o<r.head?-1:1)}}));if(o.changes.empty)return false;e.dispatch(r.update(o,{scrollIntoView:true,userEvent:n,effects:n=="delete.selection"?m.announce.of(r.phrase("Selection deleted")):void 0}));return true}function Ft(e,t,n){if(e instanceof m)for(let r of e.state.facet(m.atomicRanges).map((t=>t(e))))r.between(t,t,((e,r)=>{e<t&&r>t&&(t=n?r:e)}));return t}const _t=(e,t,n)=>jt(e,(r=>{let o,s,l=r.from,{state:a}=e,i=a.doc.lineAt(l);if(n&&!t&&l>i.from&&l<i.from+200&&!/[^ \t]/.test(o=i.text.slice(0,l-i.from))){if(o[o.length-1]=="\t")return l-1;let e=f(o,a.tabSize),t=e%y(a)||y(a);for(let e=0;e<t&&o[o.length-1-e]==" ";e++)l--;s=l}else{s=c(i.text,l-i.from,t,t)+i.from;s==l&&i.number!=(t?a.doc.lines:1)?s+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(i.text.slice(s-i.from,l-i.from))&&(s=c(i.text,s-i.from,false,false)+i.from)}return s}));const Kt=e=>_t(e,false,true);const Qt=e=>_t(e,false,false);const Xt=e=>_t(e,true,false);const Yt=(e,t)=>jt(e,(n=>{let r=n.head,{state:o}=e,s=o.doc.lineAt(r);let l=o.charCategorizer(r);for(let e=null;;){if(r==(t?s.to:s.from)){r==n.head&&s.number!=(t?o.doc.lines:1)&&(r+=t?1:-1);break}let a=c(s.text,r-s.from,t)+s.from;let i=s.text.slice(Math.min(r,a)-s.from,Math.max(r,a)-s.from);let u=l(i);if(e!=null&&u!=e)break;i==" "&&r==n.head||(e=u);r=a}return r}));const Zt=e=>Yt(e,false);const en=e=>Yt(e,true);const tn=e=>jt(e,(t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}));const nn=e=>jt(e,(t=>{let n=e.lineBlockAt(t.head).from;return t.head>n?n:Math.max(0,t.head-1)}));const rn=e=>jt(e,(t=>{let n=e.moveToLineBoundary(t,false).head;return t.head>n?n:Math.max(0,t.head-1)}));const on=e=>jt(e,(t=>{let n=e.moveToLineBoundary(t,true).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}));const sn=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=[];for(let t=0,r="",o=e.doc.iter();;){o.next();if(o.lineBreak||o.done){let e=r.search(/\s+$/);e>-1&&n.push({from:t-(r.length-e),to:t});if(o.done)break;r=""}else r=o.value;t+=o.value.length}if(!n.length)return false;t(e.update({changes:n,userEvent:"delete"}));return true};const ln=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:h.of(["",""])},range:a.cursor(e.from)})));t(e.update(n,{scrollIntoView:true,userEvent:"input"}));return true};const an=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=e.changeByRange((t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,r=e.doc.lineAt(n);let o=n==r.from?n-1:c(r.text,n-r.from,false)+r.from;let s=n==r.to?n+1:c(r.text,n-r.from,true)+r.from;return{changes:{from:o,to:s,insert:e.doc.slice(n,s).append(e.doc.slice(o,n))},range:a.cursor(s)}}));if(n.changes.empty)return false;t(e.update(n,{scrollIntoView:true,userEvent:"move.character"}));return true};function cn(e){let t=[],n=-1;for(let r of e.selection.ranges){let o=e.doc.lineAt(r.from),s=e.doc.lineAt(r.to);r.empty||r.to!=s.from||(s=e.doc.lineAt(r.to-1));if(n>=o.number){let e=t[t.length-1];e.to=s.to;e.ranges.push(r)}else t.push({from:o.from,to:s.to,ranges:[r]});n=s.number+1}return t}function un(e,t,n){if(e.readOnly)return false;let r=[],o=[];for(let t of cn(e)){if(n?t.to==e.doc.length:t.from==0)continue;let s=e.doc.lineAt(n?t.to+1:t.from-1);let l=s.length+1;if(n){r.push({from:t.to,to:s.to},{from:t.from,insert:s.text+e.lineBreak});for(let n of t.ranges)o.push(a.range(Math.min(e.doc.length,n.anchor+l),Math.min(e.doc.length,n.head+l)))}else{r.push({from:s.from,to:t.from},{from:t.to,insert:e.lineBreak+s.text});for(let e of t.ranges)o.push(a.range(e.anchor-l,e.head-l))}}if(!r.length)return false;t(e.update({changes:r,scrollIntoView:true,selection:a.create(o,e.selection.mainIndex),userEvent:"move.line"}));return true}const fn=({state:e,dispatch:t})=>un(e,t,false);const hn=({state:e,dispatch:t})=>un(e,t,true);function mn(e,t,n){if(e.readOnly)return false;let r=[];for(let t of cn(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});t(e.update({changes:r,scrollIntoView:true,userEvent:"input.copyline"}));return true}const dn=({state:e,dispatch:t})=>mn(e,t,false);const pn=({state:e,dispatch:t})=>mn(e,t,true);const gn=e=>{if(e.state.readOnly)return false;let{state:t}=e,n=t.changes(cn(t).map((({from:e,to:n})=>{e>0?e--:n<t.doc.length&&n++;return{from:e,to:n}})));let r=fe(t.selection,(t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),o=e.coordsAtPos(t.head,t.assoc||1);o&&(n=r.bottom+e.documentTop-o.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,true,n)})).map(n);e.dispatch({changes:n,selection:r,scrollIntoView:true,userEvent:"delete.line"});return true};const yn=({state:e,dispatch:t})=>{t(e.update(e.replaceSelection(e.lineBreak),{scrollIntoView:true,userEvent:"input"}));return true};const vn=({state:e,dispatch:t})=>{t(e.update(e.changeByRange((t=>{let n=/^\s*/.exec(e.doc.lineAt(t.from).text)[0];return{changes:{from:t.from,to:t.to,insert:e.lineBreak+n},range:a.cursor(t.from+n.length+1)}})),{scrollIntoView:true,userEvent:"input"}));return true};function An(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=p(e).resolveInner(t);let r,o=n.childBefore(t),s=n.childAfter(t);return o&&s&&o.to<=t&&s.from>=t&&(r=o.type.prop(S.closedBy))&&r.indexOf(s.name)>-1&&e.doc.lineAt(o.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(o.to,s.from))?{from:o.to,to:s.from}:null}const kn=Sn(false);const wn=Sn(true);function Sn(e){return({state:t,dispatch:n})=>{if(t.readOnly)return false;let r=t.changeByRange((n=>{let{from:r,to:o}=n,s=t.doc.lineAt(r);let l=!e&&r==o&&An(t,r);e&&(r=o=(o<=s.to?s:t.doc.lineAt(o)).to);let i=new v(t,{simulateBreak:r,simulateDoubleBreak:!!l});let c=A(i,r);c==null&&(c=f(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize));while(o<s.to&&/\s/.test(s.text[o-s.from]))o++;l?({from:r,to:o}=l):r>s.from&&r<s.from+100&&!/\S/.test(s.text.slice(0,r))&&(r=s.from);let u=["",k(t,c)];l&&u.push(k(t,i.lineIndent(s.from,-1)));return{changes:{from:r,to:o,insert:h.of(u)},range:a.cursor(r+1+u[1].length)}}));n(t.update(r,{scrollIntoView:true,userEvent:"input"}));return true}}function Dn(e,t){let n=-1;return e.changeByRange((r=>{let o=[];for(let s=r.from;s<=r.to;){let l=e.doc.lineAt(s);if(l.number>n&&(r.empty||r.to>l.from)){t(l,o,r);n=l.number}s=l.to+1}let s=e.changes(o);return{changes:o,range:a.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}}))}const xn=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=Object.create(null);let r=new v(e,{overrideIndentation:e=>{let t=n[e];return t==null?-1:t}});let o=Dn(e,((t,o,s)=>{let l=A(r,t.from);if(l==null)return;/\S/.test(t.text)||(l=0);let a=/^\s*/.exec(t.text)[0];let i=k(e,l);if(a!=i||s.from<t.from+a.length){n[t.from]=l;o.push({from:t.from,to:t.from+a.length,insert:i})}}));o.changes.empty||t(e.update(o,{userEvent:"indent"}));return true};const Mn=({state:e,dispatch:t})=>{if(e.readOnly)return false;t(e.update(Dn(e,((t,n)=>{n.push({from:t.from,insert:e.facet(w)})})),{userEvent:"input.indent"}));return true};const En=({state:e,dispatch:t})=>{if(e.readOnly)return false;t(e.update(Dn(e,((t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let o=f(r,e.tabSize),s=0;let l=k(e,Math.max(0,o-y(e)));while(s<r.length&&s<l.length&&r.charCodeAt(s)==l.charCodeAt(s))s++;n.push({from:t.from+s,to:t.from+r.length,insert:l.slice(s)})})),{userEvent:"delete.dedent"}));return true};const Bn=e=>{e.setTabFocusMode();return true};const Cn=e=>{e.setTabFocusMode(2e3);return true};const bn=({state:e,dispatch:t})=>{if(e.selection.ranges.some((e=>!e.empty)))return Mn({state:e,dispatch:t});t(e.update(e.replaceSelection("\t"),{scrollIntoView:true,userEvent:"input"}));return true};const On=[{key:"Ctrl-b",run:ye,shift:lt,preventDefault:true},{key:"Ctrl-f",run:ve,shift:at},{key:"Ctrl-p",run:Pe,shift:xt},{key:"Ctrl-n",run:We,shift:Mt},{key:"Ctrl-a",run:Ze,shift:It},{key:"Ctrl-e",run:et,shift:Vt},{key:"Ctrl-d",run:Xt},{key:"Ctrl-h",run:Kt},{key:"Ctrl-k",run:tn},{key:"Ctrl-Alt-h",run:Zt},{key:"Ctrl-o",run:ln},{key:"Ctrl-t",run:an},{key:"Ctrl-v",run:Fe}];const Hn=[{key:"ArrowLeft",run:ye,shift:lt,preventDefault:true},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Ee,shift:mt,preventDefault:true},{mac:"Cmd-ArrowLeft",run:Xe,shift:Ht,preventDefault:true},{key:"ArrowRight",run:ve,shift:at,preventDefault:true},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Be,shift:dt,preventDefault:true},{mac:"Cmd-ArrowRight",run:Ye,shift:Tt,preventDefault:true},{key:"ArrowUp",run:Pe,shift:xt,preventDefault:true},{mac:"Cmd-ArrowUp",run:Rt,shift:Jt},{mac:"Ctrl-ArrowUp",run:je,shift:Bt},{key:"ArrowDown",run:We,shift:Mt,preventDefault:true},{mac:"Cmd-ArrowDown",run:Lt,shift:Nt},{mac:"Ctrl-ArrowDown",run:Fe,shift:Ct},{key:"PageUp",run:je,shift:Bt},{key:"PageDown",run:Fe,shift:Ct},{key:"Home",run:Qe,shift:Ot,preventDefault:true},{key:"Mod-Home",run:Rt,shift:Jt},{key:"End",run:Ke,shift:bt,preventDefault:true},{key:"Mod-End",run:Lt,shift:Nt},{key:"Enter",run:kn,shift:kn},{key:"Mod-a",run:Ut},{key:"Backspace",run:Kt,shift:Kt,preventDefault:true},{key:"Delete",run:Xt,preventDefault:true},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Zt,preventDefault:true},{key:"Mod-Delete",mac:"Alt-Delete",run:en,preventDefault:true},{mac:"Mod-Backspace",run:rn,preventDefault:true},{mac:"Mod-Delete",run:on,preventDefault:true}].concat(On.map((e=>({mac:e.key,run:e.run,shift:e.shift}))));const Tn=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Ue,shift:wt},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:ze,shift:St},{key:"Alt-ArrowUp",run:fn},{key:"Shift-Alt-ArrowUp",run:dn},{key:"Alt-ArrowDown",run:hn},{key:"Shift-Alt-ArrowDown",run:pn},{key:"Mod-Alt-ArrowUp",run:Wt},{key:"Mod-Alt-ArrowDown",run:qt},{key:"Escape",run:$t},{key:"Mod-Enter",run:wn},{key:"Alt-l",mac:"Ctrl-l",run:zt},{key:"Mod-i",run:Gt,preventDefault:true},{key:"Mod-[",run:En},{key:"Mod-]",run:Mn},{key:"Mod-Alt-\\",run:xn},{key:"Shift-Mod-k",run:gn},{key:"Shift-Mod-\\",run:nt},{key:"Mod-/",run:D},{key:"Alt-A",run:C},{key:"Ctrl-m",mac:"Shift-Alt-m",run:Bn}].concat(Hn);const In={key:"Tab",run:Mn,shift:En};export{Wt as addCursorAbove,qt as addCursorBelow,b as blockComment,O as blockUncomment,pn as copyLineDown,dn as copyLineUp,ke as cursorCharBackward,xe as cursorCharBackwardLogical,Ae as cursorCharForward,De as cursorCharForwardLogical,ye as cursorCharLeft,ve as cursorCharRight,Lt as cursorDocEnd,Rt as cursorDocStart,be as cursorGroupBackward,Ce as cursorGroupForward,He as cursorGroupForwardWin,Ee as cursorGroupLeft,Be as cursorGroupRight,Qe as cursorLineBoundaryBackward,Ke as cursorLineBoundaryForward,Xe as cursorLineBoundaryLeft,Ye as cursorLineBoundaryRight,We as cursorLineDown,et as cursorLineEnd,Ze as cursorLineStart,Pe as cursorLineUp,nt as cursorMatchingBracket,Fe as cursorPageDown,je as cursorPageUp,Le as cursorSubwordBackward,Re as cursorSubwordForward,Ue as cursorSyntaxLeft,ze as cursorSyntaxRight,Tn as defaultKeymap,Kt as deleteCharBackward,Qt as deleteCharBackwardStrict,Xt as deleteCharForward,Zt as deleteGroupBackward,en as deleteGroupForward,gn as deleteLine,rn as deleteLineBoundaryBackward,on as deleteLineBoundaryForward,tn as deleteToLineEnd,nn as deleteToLineStart,sn as deleteTrailingWhitespace,On as emacsStyleKeymap,W as history,q as historyField,ue as historyKeymap,En as indentLess,Mn as indentMore,xn as indentSelection,In as indentWithTab,wn as insertBlankLine,yn as insertNewline,kn as insertNewlineAndIndent,vn as insertNewlineKeepIndent,bn as insertTab,z as invertedEffects,U as isolateHistory,E as lineComment,B as lineUncomment,hn as moveLineDown,fn as moveLineUp,F as redo,Y as redoDepth,K as redoSelection,Ut as selectAll,ct as selectCharBackward,ft as selectCharBackwardLogical,it as selectCharForward,ut as selectCharForwardLogical,lt as selectCharLeft,at as selectCharRight,Nt as selectDocEnd,Jt as selectDocStart,gt as selectGroupBackward,pt as selectGroupForward,yt as selectGroupForwardWin,mt as selectGroupLeft,dt as selectGroupRight,zt as selectLine,Ot as selectLineBoundaryBackward,bt as selectLineBoundaryForward,Ht as selectLineBoundaryLeft,Tt as selectLineBoundaryRight,Mt as selectLineDown,Vt as selectLineEnd,It as selectLineStart,xt as selectLineUp,rt as selectMatchingBracket,Ct as selectPageDown,Bt as selectPageUp,Gt as selectParentSyntax,kt as selectSubwordBackward,At as selectSubwordForward,wt as selectSyntaxLeft,St as selectSyntaxRight,$t as simplifySelection,ln as splitLine,Hn as standardKeymap,Cn as temporarilySetTabFocusMode,C as toggleBlockComment,H as toggleBlockCommentByLine,D as toggleComment,M as toggleLineComment,Bn as toggleTabFocusMode,an as transposeChars,j as undo,X as undoDepth,_ as undoSelection};
|
|
4
|
+
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @codemirror/lang-json@6.0.2 downloaded from https://ga.jspm.io/npm:@codemirror/lang-json@6.0.2/dist/index.js
|
|
2
|
+
|
|
3
|
+
import{parser as e}from"@lezer/json";import{LRLanguage as t,indentNodeProp as r,foldNodeProp as n,continuedIndent as a,foldInside as o,LanguageSupport as s}from"@codemirror/language";const c=()=>e=>{try{JSON.parse(e.state.doc.toString())}catch(t){if(!(t instanceof SyntaxError))throw t;const r=i(t,e.state.doc);return[{from:r,message:t.message,severity:"error",to:r}]}return[]};function i(e,t){let r;return(r=e.message.match(/at position (\d+)/))?Math.min(+r[1],t.length):(r=e.message.match(/at line (\d+) column (\d+)/))?Math.min(t.line(+r[1]).from+ +r[2]-1,t.length):0}const m=t.define({name:"json",parser:e.configure({props:[r.add({Object:a({except:/^\s*\}/}),Array:a({except:/^\s*\]/})}),n.add({"Object Array":o})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function d(){return new s(m)}export{d as json,m as jsonLanguage,c as jsonParseLinter};
|
|
4
|
+
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @codemirror/language@6.11.3 downloaded from https://ga.jspm.io/npm:@codemirror/language@6.11.3/dist/index.js
|
|
2
|
+
|
|
3
|
+
import{NodeProp as t,Tree as e,IterMode as n,TreeFragment as r,Parser as s,NodeType as i,NodeSet as o}from"@lezer/common";import{Facet as a,EditorState as l,StateEffect as h,StateField as u,countColumn as f,RangeSet as c,combineConfig as d,RangeSetBuilder as p,Prec as g}from"@codemirror/state";import{ViewPlugin as m,logException as k,EditorView as v,Decoration as w,WidgetType as x,GutterMarker as b,gutter as y,Direction as S}from"@codemirror/view";import{tagHighlighter as C,highlightTree as P,tags as T,styleTags as A}from"@lezer/highlight";import{StyleModule as L}from"style-mod";var I;const D=new t;function O(t){return a.define({combine:t?e=>e.concat(t):void 0})}const B=new t;class Language{constructor(t,e,n=[],r=""){this.data=t;this.name=r;l.prototype.hasOwnProperty("tree")||Object.defineProperty(l.prototype,"tree",{get(){return N(this)}});this.parser=e;this.extension=[$.of(this),l.languageData.of(((t,e,n)=>{let r=M(t,e,n),s=r.type.prop(D);if(!s)return[];let i=t.facet(s),o=r.type.prop(B);if(o){let s=r.resolve(e-r.from,n);for(let e of o)if(e.test(s,t)){let n=t.facet(e.facet);return e.type=="replace"?n:n.concat(i)}}return i}))].concat(n)}isActiveAt(t,e,n=-1){return M(t,e,n).type.prop(D)==this.data}findRegions(n){let r=n.facet($);if((r===null||r===void 0?void 0:r.data)==this.data)return[{from:0,to:n.doc.length}];if(!r||!r.allowsNesting)return[];let s=[];let i=(n,r)=>{if(n.prop(D)==this.data){s.push({from:r,to:r+n.length});return}let o=n.prop(t.mounted);if(o){if(o.tree.prop(D)==this.data){if(o.overlay)for(let t of o.overlay)s.push({from:t.from+r,to:t.to+r});else s.push({from:r,to:r+n.length});return}if(o.overlay){let t=s.length;i(o.tree,o.overlay[0].from+r);if(s.length>t)return}}for(let t=0;t<n.children.length;t++){let s=n.children[t];s instanceof e&&i(s,n.positions[t]+r)}};i(N(n),0);return s}get allowsNesting(){return true}}Language.setState=h.define();function M(t,e,r){let s=t.facet($),i=N(t).topNode;if(!s||s.allowsNesting)for(let t=i;t;t=t.enter(e,r,n.ExcludeBuffers))t.type.isTop&&(i=t);return i}class LRLanguage extends Language{constructor(t,e,n){super(t,e,[],n);this.parser=e}static define(t){let e=O(t.languageData);return new LRLanguage(e,t.parser.configure({props:[D.add((t=>t.isTop?e:void 0))]}),t.name)}configure(t,e){return new LRLanguage(this.data,this.parser.configure(t),e||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function N(t){let n=t.field(Language.state,false);return n?n.tree:e.empty}function R(t,e,n=50){var r;let s=(r=t.field(Language.state,false))===null||r===void 0?void 0:r.context;if(!s)return null;let i=s.viewport;s.updateViewport({from:0,to:e});let o=s.isDone(e)||s.work(n,e)?s.tree:null;s.updateViewport(i);return o}function E(t,e=t.doc.length){var n;return((n=t.field(Language.state,false))===null||n===void 0?void 0:n.context.isDone(e))||false}function F(t,e=t.viewport.to,n=100){let r=R(t.state,e,n);r!=N(t.state)&&t.dispatch({});return!!r}function W(t){var e;return((e=t.plugin(V))===null||e===void 0?void 0:e.isWorking())||false}class DocInput{constructor(t){this.doc=t;this.cursorPos=0;this.string="";this.cursor=t.iter()}get length(){return this.doc.length}syncTo(t){this.string=this.cursor.next(t-this.cursorPos).value;this.cursorPos=t+this.string.length;return this.cursorPos-this.string.length}chunk(t){this.syncTo(t);return this.string}get lineChunks(){return true}read(t,e){let n=this.cursorPos-this.string.length;return t<n||e>=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-n,e-n)}}let U=null;class ParseContext{constructor(t,e,n=[],r,s,i,o,a){this.parser=t;this.state=e;this.fragments=n;this.tree=r;this.treeLen=s;this.viewport=i;this.skipped=o;this.scheduleOn=a;this.parse=null;this.tempSkipped=[]}static create(t,n,r){return new ParseContext(t,n,[],e.empty,0,r,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(t,n){n!=null&&n>=this.state.doc.length&&(n=void 0);if(this.tree!=e.empty&&this.isDone(n!==null&&n!==void 0?n:this.state.doc.length)){this.takeTree();return true}return this.withContext((()=>{var e;if(typeof t=="number"){let e=Date.now()+t;t=()=>Date.now()>e}this.parse||(this.parse=this.startParse());n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n<this.state.doc.length&&this.parse.stopAt(n);for(;;){let s=this.parse.advance();if(s){this.fragments=this.withoutTempSkipped(r.addTree(s,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(e=this.parse.stoppedAt)!==null&&e!==void 0?e:this.state.doc.length;this.tree=s;this.parse=null;if(!(this.treeLen<(n!==null&&n!==void 0?n:this.state.doc.length)))return true;this.parse=this.startParse()}if(t())return false}}))}takeTree(){let t,e;if(this.parse&&(t=this.parse.parsedPos)>=this.treeLen){(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&this.parse.stopAt(t);this.withContext((()=>{while(!(e=this.parse.advance()));}));this.treeLen=t;this.tree=e;this.fragments=this.withoutTempSkipped(r.addTree(this.tree,this.fragments,true));this.parse=null}}withContext(t){let e=U;U=this;try{return t()}finally{U=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=j(t,e.from,e.to);return t}changes(t,n){let{fragments:s,tree:i,treeLen:o,viewport:a,skipped:l}=this;this.takeTree();if(!t.empty){let n=[];t.iterChangedRanges(((t,e,r,s)=>n.push({fromA:t,toA:e,fromB:r,toB:s})));s=r.applyChanges(s,n);i=e.empty;o=0;a={from:t.mapPos(a.from,-1),to:t.mapPos(a.to,1)};if(this.skipped.length){l=[];for(let e of this.skipped){let n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);n<r&&l.push({from:n,to:r})}}}return new ParseContext(this.parser,n,s,i,o,a,l,this.scheduleOn)}updateViewport(t){if(this.viewport.from==t.from&&this.viewport.to==t.to)return false;this.viewport=t;let e=this.skipped.length;for(let e=0;e<this.skipped.length;e++){let{from:n,to:r}=this.skipped[e];if(n<t.to&&r>t.from){this.fragments=j(this.fragments,n,r);this.skipped.splice(e--,1)}}if(this.skipped.length>=e)return false;this.reset();return true}reset(){if(this.parse){this.takeTree();this.parse=null}}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends s{createParse(n,r,s){let o=s[0].from,a=s[s.length-1].to;let l={parsedPos:o,advance(){let n=U;if(n){for(let t of s)n.tempSkipped.push(t);t&&(n.scheduleOn=n.scheduleOn?Promise.all([n.scheduleOn,t]):t)}this.parsedPos=a;return new e(i.none,[],[],a-o)},stoppedAt:null,stopAt(){}};return l}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&e[0].from==0&&e[0].to>=t}static get(){return U}}function j(t,e,n){return r.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class LanguageState{constructor(t){this.context=t;this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state);let n=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);e.work(20,n)||e.takeTree();return new LanguageState(e)}static init(t){let e=Math.min(3e3,t.doc.length);let n=ParseContext.create(t.facet($).parser,t,{from:0,to:e});n.work(20,e)||n.takeTree();return new LanguageState(n)}}Language.state=u.define({create:LanguageState.init,update(t,e){for(let t of e.effects)if(t.is(Language.setState))return t.value;return e.startState.facet($)!=e.state.facet($)?LanguageState.init(e.state):t.apply(e)}});let z=t=>{let e=setTimeout((()=>t()),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(z=t=>{let e=-1,n=setTimeout((()=>{e=requestIdleCallback(t,{timeout:400})}),100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const H=typeof navigator!="undefined"&&((I=navigator.scheduling)===null||I===void 0?void 0:I.isInputPending)?()=>navigator.scheduling.isInputPending():null;const V=m.fromClass(class ParseWorker{constructor(t){this.view=t;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork()}update(t){let e=this.view.state.field(Language.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork();if(t.docChanged||t.selectionSet){this.view.hasFocus&&(this.chunkBudget+=50);this.scheduleWork()}this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(Language.state);e.tree==e.context.tree&&e.context.isDone(t.doc.length)||(this.working=z(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEnd<e&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=e+3e4;this.chunkBudget=3e3}if(this.chunkBudget<=0)return;let{state:n,viewport:{to:r}}=this.view,s=n.field(Language.state);if(s.tree==s.context.tree&&s.context.isDone(r+1e5))return;let i=Date.now()+Math.min(this.chunkBudget,100,t&&!H?Math.max(25,t.timeRemaining()-5):1e9);let o=s.context.treeLen<r&&n.doc.length>r+1e3;let a=s.context.work((()=>H&&H()||Date.now()>i),r+(o?0:1e5));this.chunkBudget-=Date.now()-e;if(a||this.chunkBudget<=0){s.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(s.context))})}this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork();this.checkAsyncSchedule(s.context)}checkAsyncSchedule(t){if(t.scheduleOn){this.workScheduled++;t.scheduleOn.then((()=>this.scheduleWork())).catch((t=>k(this.view.state,t))).then((()=>this.workScheduled--));t.scheduleOn=null}}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}});const $=a.define({combine(t){return t.length?t[0]:null},enables:t=>[Language.state,V,v.contentAttributes.compute([t],(e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}}))]});class LanguageSupport{constructor(t,e=[]){this.language=t;this.support=e;this.extension=[t,e]}}class LanguageDescription{constructor(t,e,n,r,s,i=void 0){this.name=t;this.alias=e;this.extensions=n;this.filename=r;this.loadFunc=s;this.support=i;this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then((t=>this.support=t),(t=>{this.loading=null;throw t})))}static of(t){let{load:e,support:n}=t;if(!e){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");e=()=>Promise.resolve(n)}return new LanguageDescription(t.name,(t.alias||[]).concat(t.name).map((t=>t.toLowerCase())),t.extensions||[],t.filename,e,n)}static matchFilename(t,e){for(let n of t)if(n.filename&&n.filename.test(e))return n;let n=/\.([^.]+)$/.exec(e);if(n)for(let e of t)if(e.extensions.indexOf(n[1])>-1)return e;return null}static matchLanguageName(t,e,n=true){e=e.toLowerCase();for(let n of t)if(n.alias.some((t=>t==e)))return n;if(n)for(let n of t)for(let t of n.alias){let r=e.indexOf(t);if(r>-1&&(t.length>2||!/\w/.test(e[r-1])&&!/\w/.test(e[r+t.length])))return n}return null}}const q=a.define();const G=a.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some((t=>t!=e[0])))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function J(t){let e=t.facet(G);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function _(t,e){let n="",r=t.tabSize,s=t.facet(G)[0];if(s=="\t"){while(e>=r){n+="\t";e-=r}s=" "}for(let t=0;t<e;t++)n+=s;return n}function K(t,e){t instanceof l&&(t=new IndentContext(t));for(let n of t.state.facet(q)){let r=n(t,e);if(r!==void 0)return r}let n=N(t.state);return n.length>=e?Y(t,n,e):null}function Q(t,e,n){let r=Object.create(null);let s=new IndentContext(t,{overrideIndentation:t=>{var e;return(e=r[t])!==null&&e!==void 0?e:-1}});let i=[];for(let o=e;o<=n;){let e=t.doc.lineAt(o);o=e.to+1;let n=K(s,e.from);if(n==null)continue;/\S/.test(e.text)||(n=0);let a=/^\s*/.exec(e.text)[0];let l=_(t,n);if(a!=l){r[e.from]=n;i.push({from:e.from,to:e.from+a.length,insert:l})}}return t.changes(i)}class IndentContext{constructor(t,e={}){this.state=t;this.options=e;this.unit=J(t)}lineAt(t,e=1){let n=this.state.doc.lineAt(t);let{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==t?{text:"",from:t}:(e<0?r<t:r<=t)?{text:n.text.slice(r-n.from),from:r}:{text:n.text.slice(0,r-n.from),from:n.from}:n}textAfterPos(t,e=1){if(this.options.simulateDoubleBreak&&t==this.options.simulateBreak)return"";let{text:n,from:r}=this.lineAt(t,e);return n.slice(t-r,Math.min(n.length,t+100-r))}column(t,e=1){let{text:n,from:r}=this.lineAt(t,e);let s=this.countColumn(n,t-r);let i=this.options.overrideIndentation?this.options.overrideIndentation(r):-1;i>-1&&(s+=i-this.countColumn(n,n.search(/\S|$/)));return s}countColumn(t,e=t.length){return f(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:n,from:r}=this.lineAt(t,e);let s=this.options.overrideIndentation;if(s){let t=s(r);if(t>-1)return t}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const X=new t;function Y(t,e,n){let r=e.resolveStack(n);let s=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(s!=r.node){let t=[];for(let e=s;e&&!(e.from<r.node.from||e.to>r.node.to||e.from==r.node.from&&e.type==r.node.type);e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)r={node:t[e],next:r}}return Z(r,t,n)}function Z(t,e,n){for(let r=t;r;r=r.next){let t=et(r.node);if(t)return t(TreeIndentContext.create(e,n,r))}return 0}function tt(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function et(e){let n=e.type.prop(X);if(n)return n;let r,s=e.firstChild;if(s&&(r=s.type.prop(t.closedBy))){let t=e.lastChild,n=t&&r.indexOf(t.name)>-1;return e=>ot(e,true,1,void 0,n&&!tt(e)?t.from:void 0)}return e.parent==null?nt:null}function nt(){return 0}class TreeIndentContext extends IndentContext{constructor(t,e,n){super(t.state,t.options);this.base=t;this.pos=e;this.context=n}get node(){return this.context.node}static create(t,e,n){return new TreeIndentContext(t,e,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(t){let e=this.state.doc.lineAt(t.from);for(;;){let n=t.resolve(e.from);while(n.parent&&n.parent.from==n.from)n=n.parent;if(rt(n,t))break;e=this.state.doc.lineAt(n.from)}return this.lineIndent(e.from)}continue(){return Z(this.context.next,this.base,this.pos)}}function rt(t,e){for(let n=e;n;n=n.parent)if(t==n)return true;return false}function st(t){let e=t.node;let n=e.childAfter(e.from),r=e.lastChild;if(!n)return null;let s=t.options.simulateBreak;let i=t.state.doc.lineAt(n.from);let o=s==null||s<=i.from?i.to:Math.min(i.to,s);for(let t=n.to;;){let s=e.childAfter(t);if(!s||s==r)return null;if(!s.type.isSkipped){if(s.from>=o)return null;let t=/^ */.exec(i.text.slice(n.to-i.from))[0].length;return{from:n.from,to:n.to+t}}t=s.to}}function it({closing:t,align:e=true,units:n=1}){return r=>ot(r,e,n,t)}function ot(t,e,n,r,s){let i=t.textAfter,o=i.match(/^\s*/)[0].length;let a=r&&i.slice(o,o+r.length)==r||s==t.pos+o;let l=e?st(t):null;return l?a?t.column(l.from):t.column(l.to):t.baseIndent+(a?0:t.unit*n)}const at=t=>t.baseIndent;function lt({except:t,units:e=1}={}){return n=>{let r=t&&t.test(n.textAfter);return n.baseIndent+(r?0:e*n.unit)}}const ht=200;function ut(){return l.transactionFilter.of((t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:r}=t.newSelection.main,s=n.lineAt(r);if(r>s.from+ht)return t;let i=n.sliceString(s.from,r);if(!e.some((t=>t.test(i))))return t;let{state:o}=t,a=-1,l=[];for(let{head:t}of o.selection.ranges){let e=o.doc.lineAt(t);if(e.from==a)continue;a=e.from;let n=K(o,e.from);if(n==null)continue;let r=/^\s*/.exec(e.text)[0];let s=_(o,n);r!=s&&l.push({from:e.from,to:e.from+r.length,insert:s})}return l.length?[t,{changes:l,sequential:true}]:t}))}const ft=a.define();const ct=new t;function dt(t){let e=t.firstChild,n=t.lastChild;return e&&e.to<n.from?{from:e.to,to:n.type.isError?t.to:n.from}:null}function pt(t,e,n){let r=N(t);if(r.length<n)return null;let s=r.resolveStack(n,1);let i=null;for(let o=s;o;o=o.next){let s=o.node;if(s.to<=n||s.from>n)continue;if(i&&s.from<e)break;let a=s.type.prop(ct);if(a&&(s.to<r.length-50||r.length==t.doc.length||!gt(s))){let r=a(s,t);r&&r.from<=n&&r.from>=e&&r.to>n&&(i=r)}}return i}function gt(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function mt(t,e,n){for(let r of t.facet(ft)){let s=r(t,e,n);if(s)return s}return pt(t,e,n)}function kt(t,e){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);return n>=r?void 0:{from:n,to:r}}const vt=h.define({map:kt});const wt=h.define({map:kt});function xt(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some((t=>t.from<=n&&t.to>=n))||e.push(t.lineBlockAt(n));return e}const bt=u.define({create(){return w.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges(((e,n)=>t=yt(t,e,n)));t=t.map(e.changes);for(let n of e.effects)if(n.is(vt)&&!Pt(t,n.value.from,n.value.to)){let{preparePlaceholder:r}=e.state.facet(Et);let s=r?w.replace({widget:new PreparedFoldWidget(r(e.state,n.value))}):Ut;t=t.update({add:[s.range(n.value.from,n.value.to)]})}else n.is(wt)&&(t=t.update({filter:(t,e)=>n.value.from!=t||n.value.to!=e,filterFrom:n.value.from,filterTo:n.value.to}));e.selection&&(t=yt(t,e.selection.main.head));return t},provide:t=>v.decorations.from(t),toJSON(t,e){let n=[];t.between(0,e.doc.length,((t,e)=>{n.push(t,e)}));return n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n<t.length;){let r=t[n++],s=t[n++];if(typeof r!="number"||typeof s!="number")throw new RangeError("Invalid JSON for fold state");e.push(Ut.range(r,s))}return w.set(e,true)}});function yt(t,e,n=e){let r=false;t.between(e,n,((t,s)=>{t<n&&s>e&&(r=true)}));return r?t.update({filterFrom:e,filterTo:n,filter:(t,r)=>t>=n||r<=e}):t}function St(t){return t.field(bt,false)||c.empty}function Ct(t,e,n){var r;let s=null;(r=t.field(bt,false))===null||r===void 0?void 0:r.between(e,n,((t,e)=>{(!s||s.from>t)&&(s={from:t,to:e})}));return s}function Pt(t,e,n){let r=false;t.between(e,e,((t,s)=>{t==e&&s==n&&(r=true)}));return r}function Tt(t,e){return t.field(bt,false)?e:e.concat(h.appendConfig.of(Ft()))}const At=t=>{for(let e of xt(t)){let n=mt(t.state,e.from,e.to);if(n){t.dispatch({effects:Tt(t.state,[vt.of(n),It(t,n)])});return true}}return false};const Lt=t=>{if(!t.state.field(bt,false))return false;let e=[];for(let n of xt(t)){let r=Ct(t.state,n.from,n.to);r&&e.push(wt.of(r),It(t,r,false))}e.length&&t.dispatch({effects:e});return e.length>0};function It(t,e,n=true){let r=t.state.doc.lineAt(e.from).number,s=t.state.doc.lineAt(e.to).number;return v.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${r} ${t.state.phrase("to")} ${s}.`)}const Dt=t=>{let{state:e}=t,n=[];for(let r=0;r<e.doc.length;){let s=t.lineBlockAt(r),i=mt(e,s.from,s.to);i&&n.push(vt.of(i));r=(i?t.lineBlockAt(i.to):s).to+1}n.length&&t.dispatch({effects:Tt(t.state,n)});return!!n.length};const Ot=t=>{let e=t.state.field(bt,false);if(!e||!e.size)return false;let n=[];e.between(0,t.state.doc.length,((t,e)=>{n.push(wt.of({from:t,to:e}))}));t.dispatch({effects:n});return true};function Bt(t,e){for(let n=e;;){let r=mt(t.state,n.from,n.to);if(r&&r.to>e.from)return r;if(!n.from)return null;n=t.lineBlockAt(n.from-1)}}const Mt=t=>{let e=[];for(let n of xt(t)){let r=Ct(t.state,n.from,n.to);if(r)e.push(wt.of(r),It(t,r,false));else{let r=Bt(t,n);r&&e.push(vt.of(r),It(t,r))}}e.length>0&&t.dispatch({effects:Tt(t.state,e)});return!!e.length};const Nt=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:At},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:Lt},{key:"Ctrl-Alt-[",run:Dt},{key:"Ctrl-Alt-]",run:Ot}];const Rt={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"};const Et=a.define({combine(t){return d(t,Rt)}});function Ft(t){let e=[bt,Ht];t&&e.push(Et.of(t));return e}function Wt(t,e){let{state:n}=t,r=n.facet(Et);let s=e=>{let n=t.lineBlockAt(t.posAtDOM(e.target));let r=Ct(t.state,n.from,n.to);r&&t.dispatch({effects:wt.of(r)});e.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(t,s,e);let i=document.createElement("span");i.textContent=r.placeholderText;i.setAttribute("aria-label",n.phrase("folded code"));i.title=n.phrase("unfold");i.className="cm-foldPlaceholder";i.onclick=s;return i}const Ut=w.replace({widget:new class extends x{toDOM(t){return Wt(t,null)}}});class PreparedFoldWidget extends x{constructor(t){super();this.value=t}eq(t){return this.value==t.value}toDOM(t){return Wt(t,this.value)}}const jt={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>false};class FoldMarker extends b{constructor(t,e){super();this.config=t;this.open=e}eq(t){return this.config==t.config&&this.open==t.open}toDOM(t){if(this.config.markerDOM)return this.config.markerDOM(this.open);let e=document.createElement("span");e.textContent=this.open?this.config.openText:this.config.closedText;e.title=t.state.phrase(this.open?"Fold line":"Unfold line");return e}}function zt(t={}){let e={...jt,...t};let n=new FoldMarker(e,true),r=new FoldMarker(e,false);let s=m.fromClass(class{constructor(t){this.from=t.viewport.from;this.markers=this.buildMarkers(t)}update(t){(t.docChanged||t.viewportChanged||t.startState.facet($)!=t.state.facet($)||t.startState.field(bt,false)!=t.state.field(bt,false)||N(t.startState)!=N(t.state)||e.foldingChanged(t))&&(this.markers=this.buildMarkers(t.view))}buildMarkers(t){let e=new p;for(let s of t.viewportLineBlocks){let i=Ct(t.state,s.from,s.to)?r:mt(t.state,s.from,s.to)?n:null;i&&e.add(s.from,s.from,i)}return e.finish()}});let{domEventHandlers:i}=e;return[s,y({class:"cm-foldGutter",markers(t){var e;return((e=t.plugin(s))===null||e===void 0?void 0:e.markers)||c.empty},initialSpacer(){return new FoldMarker(e,false)},domEventHandlers:{...i,click:(t,e,n)=>{if(i.click&&i.click(t,e,n))return true;let r=Ct(t.state,e.from,e.to);if(r){t.dispatch({effects:wt.of(r)});return true}let s=mt(t.state,e.from,e.to);if(s){t.dispatch({effects:vt.of(s)});return true}return false}}}),Ft()]}const Ht=v.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class HighlightStyle{constructor(t,e){this.specs=t;let n;function r(t){let e=L.newName();(n||(n=Object.create(null)))["."+e]=t;return e}const s=typeof e.all=="string"?e.all:e.all?r(e.all):void 0;const i=e.scope;this.scope=i instanceof Language?t=>t.prop(D)==i.data:i?t=>t==i:void 0;this.style=C(t.map((t=>({tag:t.tag,class:t.class||r(Object.assign({},t,{tag:null}))}))),{all:s}).style;this.module=n?new L(n):null;this.themeType=e.themeType}static define(t,e){return new HighlightStyle(t,e||{})}}const Vt=a.define();const $t=a.define({combine(t){return t.length?[t[0]]:null}});function qt(t){let e=t.facet(Vt);return e.length?e:t.facet($t)}function Gt(t,e){let n,r=[_t];if(t instanceof HighlightStyle){t.module&&r.push(v.styleModule.of(t.module));n=t.themeType}(e===null||e===void 0?void 0:e.fallback)?r.push($t.of(t)):n?r.push(Vt.computeN([v.darkTheme],(e=>e.facet(v.darkTheme)==(n=="dark")?[t]:[]))):r.push(Vt.of(t));return r}function Jt(t,e,n){let r=qt(t);let s=null;if(r)for(let t of r)if(!t.scope||n&&t.scope(n)){let n=t.style(e);n&&(s=s?s+" "+n:n)}return s}class TreeHighlighter{constructor(t){this.markCache=Object.create(null);this.tree=N(t.state);this.decorations=this.buildDeco(t,qt(t.state));this.decoratedTo=t.viewport.to}update(t){let e=N(t.state),n=qt(t.state);let r=n!=qt(t.startState);let{viewport:s}=t.view,i=t.changes.mapPos(this.decoratedTo,1);if(e.length<s.to&&!r&&e.type==this.tree.type&&i>=s.to){this.decorations=this.decorations.map(t.changes);this.decoratedTo=i}else if(e!=this.tree||t.viewportChanged||r){this.tree=e;this.decorations=this.buildDeco(t.view,n);this.decoratedTo=s.to}}buildDeco(t,e){if(!e||!this.tree.length)return w.none;let n=new p;for(let{from:r,to:s}of t.visibleRanges)P(this.tree,e,((t,e,r)=>{n.add(t,e,this.markCache[r]||(this.markCache[r]=w.mark({class:r})))}),r,s);return n.finish()}}const _t=g.high(m.fromClass(TreeHighlighter,{decorations:t=>t.decorations}));const Kt=HighlightStyle.define([{tag:T.meta,color:"#404740"},{tag:T.link,textDecoration:"underline"},{tag:T.heading,textDecoration:"underline",fontWeight:"bold"},{tag:T.emphasis,fontStyle:"italic"},{tag:T.strong,fontWeight:"bold"},{tag:T.strikethrough,textDecoration:"line-through"},{tag:T.keyword,color:"#708"},{tag:[T.atom,T.bool,T.url,T.contentSeparator,T.labelName],color:"#219"},{tag:[T.literal,T.inserted],color:"#164"},{tag:[T.string,T.deleted],color:"#a11"},{tag:[T.regexp,T.escape,T.special(T.string)],color:"#e40"},{tag:T.definition(T.variableName),color:"#00f"},{tag:T.local(T.variableName),color:"#30a"},{tag:[T.typeName,T.namespace],color:"#085"},{tag:T.className,color:"#167"},{tag:[T.special(T.variableName),T.macroName],color:"#256"},{tag:T.definition(T.propertyName),color:"#00c"},{tag:T.comment,color:"#940"},{tag:T.invalid,color:"#f00"}]);const Qt=v.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}});const Xt=1e4,Yt="()[]{}";const Zt=a.define({combine(t){return d(t,{afterCursor:true,brackets:Yt,maxScanDistance:Xt,renderMatch:ne})}});const te=w.mark({class:"cm-matchingBracket"}),ee=w.mark({class:"cm-nonmatchingBracket"});function ne(t){let e=[];let n=t.matched?te:ee;e.push(n.range(t.start.from,t.start.to));t.end&&e.push(n.range(t.end.from,t.end.to));return e}const re=u.define({create(){return w.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let n=[];let r=e.state.facet(Zt);for(let t of e.state.selection.ranges){if(!t.empty)continue;let s=he(e.state,t.head,-1,r)||t.head>0&&he(e.state,t.head-1,1,r)||r.afterCursor&&(he(e.state,t.head,1,r)||t.head<e.state.doc.length&&he(e.state,t.head+1,-1,r));s&&(n=n.concat(r.renderMatch(s,e.state)))}return w.set(n,true)},provide:t=>v.decorations.from(t)});const se=[re,Qt];function ie(t={}){return[Zt.of(t),se]}const oe=new t;function ae(e,n,r){let s=e.prop(n<0?t.openedBy:t.closedBy);if(s)return s;if(e.name.length==1){let t=r.indexOf(e.name);if(t>-1&&t%2==(n<0?1:0))return[r[t+n]]}return null}function le(t){let e=t.type.prop(oe);return e?e(t.node):t}function he(t,e,n,r={}){let s=r.maxScanDistance||Xt,i=r.brackets||Yt;let o=N(t),a=o.resolveInner(e,n);for(let r=a;r;r=r.parent){let s=ae(r.type,n,i);if(s&&r.from<r.to){let o=le(r);if(o&&(n>0?e>=o.from&&e<o.to:e>o.from&&e<=o.to))return ue(t,e,n,r,o,s,i)}}return fe(t,e,n,o,a.type,s,i)}function ue(t,e,n,r,s,i,o){let a=r.parent,l={from:s.from,to:s.to};let h=0,u=a===null||a===void 0?void 0:a.cursor();if(u&&(n<0?u.childBefore(r.from):u.childAfter(r.to)))do{if(n<0?u.to<=r.from:u.from>=r.to){if(h==0&&i.indexOf(u.type.name)>-1&&u.from<u.to){let t=le(u);return{start:l,end:t?{from:t.from,to:t.to}:void 0,matched:true}}if(ae(u.type,n,o))h++;else if(ae(u.type,-n,o)){if(h==0){let t=le(u);return{start:l,end:t&&t.from<t.to?{from:t.from,to:t.to}:void 0,matched:false}}h--}}}while(n<0?u.prevSibling():u.nextSibling());return{start:l,matched:false}}function fe(t,e,n,r,s,i,o){let a=n<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1);let l=o.indexOf(a);if(l<0||l%2==0!=n>0)return null;let h={from:n<0?e-1:e,to:n>0?e+1:e};let u=t.doc.iterRange(e,n>0?t.doc.length:0),f=0;for(let t=0;!u.next().done&&t<=i;){let i=u.value;n<0&&(t+=i.length);let a=e+t*n;for(let t=n>0?0:i.length-1,e=n>0?i.length:-1;t!=e;t+=n){let e=o.indexOf(i[t]);if(!(e<0||r.resolveInner(a+t,1).type!=s))if(e%2==0==n>0)f++;else{if(f==1)return{start:h,end:{from:a+t,to:a+t+1},matched:e>>1==l>>1};f--}}n>0&&(t+=i.length)}return u.done?{start:h,matched:false}:null}function ce(t,e,n,r=0,s=0){if(e==null){e=t.search(/[^\s\u00a0]/);e==-1&&(e=t.length)}let i=s;for(let s=r;s<e;s++)t.charCodeAt(s)==9?i+=n-i%n:i++;return i}class StringStream{constructor(t,e,n,r){this.string=t;this.tabSize=e;this.indentUnit=n;this.overrideIndent=r;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(t){let e=this.string.charAt(this.pos);let n;n=typeof t=="string"?e==t:e&&(t instanceof RegExp?t.test(e):t(e));if(n){++this.pos;return e}}eatWhile(t){let e=this.pos;while(this.eat(t));return this.pos>e}eatSpace(){let t=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>t}skipToEnd(){this.pos=this.string.length}skipTo(t){let e=this.string.indexOf(t,this.pos);if(e>-1){this.pos=e;return true}}backUp(t){this.pos-=t}column(){if(this.lastColumnPos<this.start){this.lastColumnValue=ce(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start}return this.lastColumnValue}indentation(){var t;return(t=this.overrideIndent)!==null&&t!==void 0?t:ce(this.string,null,this.tabSize)}match(t,e,n){if(typeof t=="string"){let r=t=>n?t.toLowerCase():t;let s=this.string.substr(this.pos,t.length);if(r(s)==r(t)){e!==false&&(this.pos+=t.length);return true}return null}{let n=this.string.slice(this.pos).match(t);if(n&&n.index>0)return null;n&&e!==false&&(this.pos+=n[0].length);return n}}current(){return this.string.slice(this.start,this.pos)}}function de(t){return{name:t.name||"",token:t.token,blankLine:t.blankLine||(()=>{}),startState:t.startState||(()=>true),copyState:t.copyState||pe,indent:t.indent||(()=>null),languageData:t.languageData||{},tokenTable:t.tokenTable||xe,mergeTokens:t.mergeTokens!==false}}function pe(t){if(typeof t!="object")return t;let e={};for(let n in t){let r=t[n];e[n]=r instanceof Array?r.slice():r}return e}const ge=new WeakMap;class StreamLanguage extends Language{constructor(e){let n=O(e.languageData);let r,i=de(e);let o=new class extends s{createParse(t,e,n){return new Parse(r,t,e,n)}};super(n,o,[],e.name);this.topNode=Ie(n,this);r=this;this.streamParser=i;this.stateAfter=new t({perNode:true});this.tokenTable=e.tokenTable?new TokenTable(i.tokenTable):Te}static define(t){return new StreamLanguage(t)}getIndent(t){let e;let{overrideIndentation:n}=t.options;if(n){e=ge.get(t.state);e!=null&&e<t.pos-1e4&&(e=void 0)}let r,s,i=me(this,t.node.tree,t.node.from,t.node.from,e!==null&&e!==void 0?e:t.pos);if(i){s=i.state;r=i.pos+1}else{s=this.streamParser.startState(t.unit);r=t.node.from}if(t.pos-r>1e4)return null;while(r<t.pos){let e=t.state.doc.lineAt(r),i=Math.min(t.pos,e.to);if(e.length){let r=n?n(e.from):-1;let o=new StringStream(e.text,t.state.tabSize,t.unit,r<0?void 0:r);while(o.pos<i-e.from)we(this.streamParser.token,o,s)}else this.streamParser.blankLine(s,t.unit);if(i==t.pos)break;r=e.to+1}let o=t.lineAt(t.pos);n&&e==null&&ge.set(t.state,o.from);return this.streamParser.indent(s,/^\s*(.*)/.exec(o.text)[1],t)}get allowsNesting(){return false}}function me(t,n,r,s,i){let o=r>=s&&r+n.length<=i&&n.prop(t.stateAfter);if(o)return{state:t.streamParser.copyState(o),pos:r+n.length};for(let o=n.children.length-1;o>=0;o--){let a=n.children[o],l=r+n.positions[o];let h=a instanceof e&&l<i&&me(t,a,l,s,i);if(h)return h}return null}function ke(t,n,r,s,i){if(i&&r<=0&&s>=n.length)return n;i||r!=0||n.type!=t.topNode||(i=true);for(let o=n.children.length-1;o>=0;o--){let a,l=n.positions[o],h=n.children[o];if(l<s&&h instanceof e){if(!(a=ke(t,h,r-l,s-l,i)))break;return i?new e(n.type,n.children.slice(0,o).concat(a),n.positions.slice(0,o+1),l+a.length):a}}return null}function ve(t,n,r,s,i){for(let e of n){let n=e.from+(e.openStart?25:0),i=e.to-(e.openEnd?25:0);let o,a=n<=r&&i>r&&me(t,e.tree,0-e.offset,r,i);if(a&&a.pos<=s&&(o=ke(t,e.tree,r+e.offset,a.pos+e.offset,false)))return{state:a.state,tree:o}}return{state:t.streamParser.startState(i?J(i):4),tree:e.empty}}class Parse{constructor(t,e,n,r){this.lang=t;this.input=e;this.fragments=n;this.ranges=r;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=void 0;this.rangeIndex=0;this.to=r[r.length-1].to;let s=ParseContext.get(),i=r[0].from;let{state:o,tree:a}=ve(t,n,i,this.to,s===null||s===void 0?void 0:s.state);this.state=o;this.parsedPos=this.chunkStart=i+a.length;for(let t=0;t<a.children.length;t++){this.chunks.push(a.children[t]);this.chunkPos.push(a.positions[t])}if(s&&this.parsedPos<s.viewport.from-1e5&&r.some((t=>t.from<=s.viewport.from&&t.to>=s.viewport.from))){this.state=this.lang.streamParser.startState(J(s.state));s.skipUntilInView(this.parsedPos,s.viewport.from);this.parsedPos=s.viewport.from}this.moveRangeIndex()}advance(){let t=ParseContext.get();let e=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let n=Math.min(e,this.chunkStart+512);t&&(n=Math.min(n,t.viewport.to));while(this.parsedPos<n)this.parseLine(t);this.chunkStart<this.parsedPos&&this.finishChunk();if(this.parsedPos>=e)return this.finish();if(t&&this.parsedPos>=t.viewport.to){t.skipUntilInView(this.parsedPos,e);return this.finish()}return null}stopAt(t){this.stoppedAt=t}lineAfter(t){let e=this.input.chunk(t);if(this.input.lineChunks)e=="\n"&&(e="");else{let t=e.indexOf("\n");t>-1&&(e=e.slice(0,t))}return t+e.length<=this.to?e:e.slice(0,this.to-t)}nextLine(){let t=this.parsedPos,e=this.lineAfter(t),n=t+e.length;for(let t=this.rangeIndex;;){let r=this.ranges[t].to;if(r>=n)break;e=e.slice(0,r-(n-e.length));t++;if(t==this.ranges.length)break;let s=this.ranges[t].from;let i=this.lineAfter(s);e+=i;n=s+i.length}return{line:e,end:n}}skipGapsTo(t,e,n){for(;;){let r=this.ranges[this.rangeIndex].to,s=t+e;if(n>0?r>s:r>=s)break;let i=this.ranges[++this.rangeIndex].from;e+=i-r}return e}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++}emitToken(t,e,n,r){let s=4;if(this.ranges.length>1){r=this.skipGapsTo(e,r,1);e+=r;let t=this.chunk.length;r=this.skipGapsTo(n,r,-1);n+=r;s+=this.chunk.length-t}let i=this.chunk.length-4;this.lang.streamParser.mergeTokens&&s==4&&i>=0&&this.chunk[i]==t&&this.chunk[i+2]==e?this.chunk[i+2]=n:this.chunk.push(t,e,n,s);return r}parseLine(t){let{line:e,end:n}=this.nextLine(),r=0,{streamParser:s}=this.lang;let i=new StringStream(e,t?t.state.tabSize:4,t?J(t.state):2);if(i.eol())s.blankLine(this.state,i.indentUnit);else while(!i.eol()){let t=we(s.token,i,this.state);t&&(r=this.emitToken(this.lang.tokenTable.resolve(t),this.parsedPos+i.start,this.parsedPos+i.pos,r));if(i.start>1e4)break}this.parsedPos=n;this.moveRangeIndex();this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let t=e.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:ye,topID:0,maxBufferLength:512,reused:this.chunkReused});t=new e(t.type,t.children,t.positions,t.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]);this.chunks.push(t);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=void 0;this.chunkStart=this.parsedPos}finish(){return new e(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function we(t,e,n){e.start=e.pos;for(let r=0;r<10;r++){let r=t(e,n);if(e.pos>e.start)return r}throw new Error("Stream parser failed to advance stream.")}const xe=Object.create(null);const be=[i.none];const ye=new o(be);const Se=[];const Ce=Object.create(null);const Pe=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Pe[t]=Le(xe,e);class TokenTable{constructor(t){this.extra=t;this.table=Object.assign(Object.create(null),Pe)}resolve(t){return t?this.table[t]||(this.table[t]=Le(this.extra,t)):0}}const Te=new TokenTable(xe);function Ae(t,e){if(!(Se.indexOf(t)>-1)){Se.push(t);console.warn(e)}}function Le(t,e){let n=[];for(let r of e.split(" ")){let e=[];for(let n of r.split(".")){let r=t[n]||T[n];r?typeof r=="function"?e.length?e=e.map(r):Ae(n,`Modifier ${n} used at start of tag`):e.length?Ae(n,`Tag ${n} used as modifier`):e=Array.isArray(r)?r:[r]:Ae(n,`Unknown highlighting tag ${n}`)}for(let t of e)n.push(t)}if(!n.length)return 0;let r=e.replace(/ /g,"_"),s=r+" "+n.map((t=>t.id));let o=Ce[s];if(o)return o.id;let a=Ce[s]=i.define({id:be.length,name:r,props:[A({[r]:n})]});be.push(a);return a.id}function Ie(t,e){let n=i.define({id:be.length,name:"Document",props:[D.add((()=>t)),X.add((()=>t=>e.getIndent(t)))],top:true});be.push(n);return n}function De(t){return t.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(t)}function Oe(t){for(let e=t.iter();!e.next().done;)if(De(e.value))return true;return false}function Be(t){let e=false;t.iterChanges(((t,n,r,s,i)=>{!e&&Oe(i)&&(e=true)}));return e}const Me=a.define({combine:t=>t.some((t=>t))});function Ne(t={}){let e=[Re];t.alwaysIsolate&&e.push(Me.of(true));return e}const Re=m.fromClass(class{constructor(t){this.always=t.state.facet(Me)||t.textDirection!=S.LTR||t.state.facet(v.perLineTextDirection);this.hasRTL=!this.always&&Oe(t.state.doc);this.tree=N(t.state);this.decorations=this.always||this.hasRTL?Ee(t,this.tree,this.always):w.none}update(t){let e=t.state.facet(Me)||t.view.textDirection!=S.LTR||t.state.facet(v.perLineTextDirection);e||this.hasRTL||!Be(t.changes)||(this.hasRTL=true);if(!e&&!this.hasRTL)return;let n=N(t.state);if(e!=this.always||n!=this.tree||t.docChanged||t.viewportChanged){this.tree=n;this.always=e;this.decorations=Ee(t.view,n,e)}}},{provide:t=>{function e(e){var n,r;return(r=(n=e.plugin(t))===null||n===void 0?void 0:n.decorations)!==null&&r!==void 0?r:w.none}return[v.outerDecorations.of(e),g.lowest(v.bidiIsolatedRanges.of(e))]}});function Ee(e,n,r){let s=new p;let i=e.visibleRanges;r||(i=Fe(i,e.state.doc));for(let{from:e,to:r}of i)n.iterate({enter:e=>{let n=e.type.prop(t.isolate);n&&s.add(e.from,e.to,We[n])},from:e,to:r});return s.finish()}function Fe(t,e){let n=e.iter(),r=0,s=[],i=null;for(let{from:e,to:o}of t){if(i&&i.to>e){e=i.to;if(e>=o)continue}if(r+n.value.length<e){n.next(e-(r+n.value.length));r=e}for(;;){let t=r,e=r+n.value.length;!n.lineBreak&&De(n.value)&&(i&&i.to>t-10?i.to=Math.min(o,e):s.push(i={from:t,to:Math.min(o,e)}));if(e>=o)break;r=e;n.next()}}return s}const We={rtl:w.mark({class:"cm-iso",inclusive:true,attributes:{dir:"rtl"},bidiIsolate:S.RTL}),ltr:w.mark({class:"cm-iso",inclusive:true,attributes:{dir:"ltr"},bidiIsolate:S.LTR}),auto:w.mark({class:"cm-iso",inclusive:true,attributes:{dir:"auto"},bidiIsolate:null})};export{DocInput,HighlightStyle,IndentContext,LRLanguage,Language,LanguageDescription,LanguageSupport,ParseContext,StreamLanguage,StringStream,TreeIndentContext,Ne as bidiIsolates,ie as bracketMatching,oe as bracketMatchingHandle,Ft as codeFolding,lt as continuedIndent,Kt as defaultHighlightStyle,O as defineLanguageFacet,it as delimitedIndent,R as ensureSyntaxTree,at as flatIndent,Dt as foldAll,At as foldCode,vt as foldEffect,zt as foldGutter,dt as foldInside,Nt as foldKeymap,ct as foldNodeProp,ft as foldService,bt as foldState,mt as foldable,St as foldedRanges,F as forceParsing,J as getIndentUnit,K as getIndentation,Jt as highlightingFor,X as indentNodeProp,ut as indentOnInput,Q as indentRange,q as indentService,_ as indentString,G as indentUnit,$ as language,D as languageDataProp,he as matchBrackets,B as sublanguageProp,Gt as syntaxHighlighting,W as syntaxParserRunning,N as syntaxTree,E as syntaxTreeAvailable,Mt as toggleFold,Ot as unfoldAll,Lt as unfoldCode,wt as unfoldEffect};
|
|
4
|
+
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @codemirror/lint@6.9.0 downloaded from https://ga.jspm.io/npm:@codemirror/lint@6.9.0/dist/index.js
|
|
2
|
+
|
|
3
|
+
import{Decoration as e,EditorView as t,hoverTooltip as i,showPanel as n,getPanel as o,ViewPlugin as s,logException as l,WidgetType as r,GutterMarker as a,gutter as c,showTooltip as d}from"@codemirror/view";import{Facet as f,RangeSetBuilder as u,StateEffect as m,StateField as h,combineConfig as g,RangeSet as p}from"@codemirror/state";import v from"crelt";class SelectedDiagnostic{constructor(e,t,i){this.from=e;this.to=t;this.diagnostic=i}}class LintState{constructor(e,t,i){this.diagnostics=e;this.panel=t;this.selected=i}static init(t,i,n){let o=n.facet($).markerFilter;o&&(t=o(t,n));let s=t.slice().sort(((e,t)=>e.from-t.from||e.to-t.to));let l=new u,r=[],a=0;for(let t=0;;){let i=t==s.length?null:s[t];if(!i&&!r.length)break;let o,c;if(r.length){o=a;c=r.reduce(((e,t)=>Math.min(e,t.to)),i&&i.from>o?i.from:1e8)}else{o=i.from;c=i.to;r.push(i);t++}while(t<s.length){let e=s[t];if(e.from!=o||!(e.to>e.from||e.to==o)){c=Math.min(e.from,c);break}r.push(e);t++;c=Math.min(e.to,c)}let d=_(r);if(r.some((e=>e.from==e.to||e.from==e.to-1&&n.doc.lineAt(e.from).to==e.from)))l.add(o,o,e.widget({widget:new DiagnosticWidget(d),diagnostics:r.slice()}));else{let t=r.reduce(((e,t)=>t.markClass?e+" "+t.markClass:e),"");l.add(o,c,e.mark({class:"cm-lintRange cm-lintRange-"+d+t,diagnostics:r.slice(),inclusiveEnd:r.some((e=>e.to>c))}))}a=c;for(let e=0;e<r.length;e++)r[e].to<=a&&r.splice(e--,1)}let c=l.finish();return new LintState(c,i,w(c))}}function w(e,t=null,i=0){let n=null;e.between(i,1e9,((e,i,{spec:o})=>{if(!(t&&o.diagnostics.indexOf(t)<0))if(n){if(o.diagnostics.indexOf(n.diagnostic)<0)return false;n=new SelectedDiagnostic(n.from,i,n.diagnostic)}else n=new SelectedDiagnostic(e,i,t||o.diagnostics[0])}));return n}function b(e,t){let i=t.pos,n=t.end||i;let o=e.state.facet($).hideOn(e,i,n);if(o!=null)return o;let s=e.startState.doc.lineAt(t.pos);return!!(e.effects.some((e=>e.is(y)))||e.changes.touchesRange(s.from,Math.max(s.to,n)))}function k(e,t){return e.field(S,false)?t:t.concat(m.appendConfig.of(ie))}function x(e,t){return{effects:k(e,[y.of(t)])}}const y=m.define();const C=m.define();const L=m.define();const S=h.define({create(){return new LintState(e.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let i=e.diagnostics.map(t.changes),n=null,o=e.panel;if(e.selected){let o=t.changes.mapPos(e.selected.from,1);n=w(i,e.selected.diagnostic,o)||w(i,null,o)}!i.size&&o&&t.state.facet($).autoPanel&&(o=null);e=new LintState(i,o,n)}for(let i of t.effects)if(i.is(y)){let n=t.state.facet($).autoPanel?i.value.length?LintPanel.open:null:e.panel;e=LintState.init(i.value,n,t.state)}else i.is(C)?e=new LintState(e.diagnostics,i.value?LintPanel.open:null,e.selected):i.is(L)&&(e=new LintState(e.diagnostics,e.panel,i.value));return e},provide:e=>[n.from(e,(e=>e.panel)),t.decorations.from(e,(e=>e.diagnostics))]});function T(e){let t=e.field(S,false);return t?t.diagnostics.size:0}const R=e.mark({class:"cm-lintRange cm-lintRange-active"});function P(e,t,i){let{diagnostics:n}=e.state.field(S);let o,s=-1,l=-1;n.between(t-(i<0?1:0),t+(i>0?1:0),((e,n,{spec:r})=>{if(t>=e&&t<=n&&(e==n||(t>e||i>0)&&(t<n||i<0))){o=r.diagnostics;s=e;l=n;return false}}));let r=e.state.facet($).tooltipFilter;o&&r&&(o=r(o,e.state));return o?{pos:s,end:l,above:e.state.doc.lineAt(s).to<l,create(){return{dom:I(e,o)}}}:null}function I(e,t){return v("ul",{class:"cm-tooltip-lint"},t.map((t=>q(e,t,false))))}const M=e=>{let t=e.state.field(S,false);t&&t.panel||e.dispatch({effects:k(e.state,[C.of(true)])});let i=o(e,LintPanel.open);i&&i.dom.querySelector(".cm-panel-lint ul").focus();return true};const A=e=>{let t=e.state.field(S,false);if(!t||!t.panel)return false;e.dispatch({effects:C.of(false)});return true};const D=e=>{let t=e.state.field(S,false);if(!t)return false;let i=e.state.selection.main,n=t.diagnostics.iter(i.to+1);if(!n.value){n=t.diagnostics.iter(0);if(!n.value||n.from==i.from&&n.to==i.to)return false}e.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:true});return true};const B=e=>{let{state:t}=e,i=t.field(S,false);if(!i)return false;let n=t.selection.main;let o,s,l,r;i.diagnostics.between(0,t.doc.length,((e,t)=>{if(t<n.to&&(o==null||o<e)){o=e;s=t}if(l==null||e>l){l=e;r=t}}));if(l==null||o==null&&l==n.from)return false;e.dispatch({selection:{anchor:o!==null&&o!==void 0?o:l,head:s!==null&&s!==void 0?s:r},scrollIntoView:true});return true};const O=[{key:"Mod-Shift-m",run:M,preventDefault:true},{key:"F8",run:D}];const F=s.fromClass(class{constructor(e){this.view=e;this.timeout=-1;this.set=true;let{delay:t}=e.state.facet($);this.lintTime=Date.now()+t;this.run=this.run.bind(this);this.timeout=setTimeout(this.run,t)}run(){clearTimeout(this.timeout);let e=Date.now();if(e<this.lintTime-10)this.timeout=setTimeout(this.run,this.lintTime-e);else{this.set=false;let{state:e}=this.view,{sources:t}=e.facet($);t.length&&z(t.map((e=>Promise.resolve(e(this.view)))),(t=>{this.view.state.doc==e.doc&&this.view.dispatch(x(this.view.state,t.reduce(((e,t)=>e.concat(t)))))}),(e=>{l(this.view.state,e)}))}}update(e){let t=e.state.facet($);if(e.docChanged||t!=e.startState.facet($)||t.needsRefresh&&t.needsRefresh(e)){this.lintTime=Date.now()+t.delay;if(!this.set){this.set=true;this.timeout=setTimeout(this.run,t.delay)}}}force(){if(this.set){this.lintTime=Date.now();this.run()}}destroy(){clearTimeout(this.timeout)}});function z(e,t,i){let n=[],o=-1;for(let s of e)s.then((i=>{n.push(i);clearTimeout(o);n.length==e.length?t(n):o=setTimeout((()=>t(n)),200)}),i)}const $=f.define({combine(e){return{sources:e.map((e=>e.source)).filter((e=>e!=null)),...g(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:E,tooltipFilter:E,needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t,hideOn:(e,t)=>e?t?(i,n,o)=>e(i,n,o)||t(i,n,o):e:t,autoPanel:(e,t)=>e||t})}}});function E(e,t){return e?t?(i,n)=>t(e(i,n),n):e:t}function H(e,t={}){return[$.of({source:e,config:t}),F,ie]}function N(e){let t=e.plugin(F);t&&t.force()}function j(e){let t=[];if(e)e:for(let{name:i}of e){for(let e=0;e<i.length;e++){let n=i[e];if(/[a-zA-Z]/.test(n)&&!t.some((e=>e.toLowerCase()==n.toLowerCase()))){t.push(n);continue e}}t.push("")}return t}function q(e,t,i){var n;let o=i?j(t.actions):[];return v("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},v("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),(n=t.actions)===null||n===void 0?void 0:n.map(((i,n)=>{let s=false,l=n=>{n.preventDefault();if(s)return;s=true;let o=w(e.state.field(S).diagnostics,t);o&&i.apply(e,o.from,o.to)};let{name:r}=i,a=o[n]?r.indexOf(o[n]):-1;let c=a<0?r:[r.slice(0,a),v("u",r.slice(a,a+1)),r.slice(a+1)];let d=i.markClass?" "+i.markClass:"";return v("button",{type:"button",class:"cm-diagnosticAction"+d,onclick:l,onmousedown:l,"aria-label":` Action: ${r}${a<0?"":` (access key "${o[n]})"`}.`},c)})),t.source&&v("div",{class:"cm-diagnosticSource"},t.source))}class DiagnosticWidget extends r{constructor(e){super();this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return v("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class PanelItem{constructor(e,t){this.diagnostic=t;this.id="item_"+Math.floor(Math.random()*4294967295).toString(16);this.dom=q(e,t,true);this.dom.id=this.id;this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e;this.items=[];let t=t=>{if(t.keyCode==27){A(this.view);this.view.focus()}else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:i}=this.items[this.selectedIndex],n=j(i.actions);for(let o=0;o<n.length;o++)if(n[o].toUpperCase().charCodeAt(0)==t.keyCode){let t=w(this.view.state.field(S).diagnostics,i);t&&i.actions[o].apply(e,t.from,t.to)}}}t.preventDefault()};let i=e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)};this.list=v("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:i});this.dom=v("div",{class:"cm-panel-lint"},this.list,v("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>A(this.view)},"×"));this.update()}get selectedIndex(){let e=this.view.state.field(S).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(S);let i=0,n=false,o=null;let s=new Set;e.between(0,this.view.state.doc.length,((e,l,{spec:r})=>{for(let e of r.diagnostics){if(s.has(e))continue;s.add(e);let l,r=-1;for(let t=i;t<this.items.length;t++)if(this.items[t].diagnostic==e){r=t;break}if(r<0){l=new PanelItem(this.view,e);this.items.splice(i,0,l);n=true}else{l=this.items[r];if(r>i){this.items.splice(i,r-i);n=true}}if(t&&l.diagnostic==t.diagnostic){if(!l.dom.hasAttribute("aria-selected")){l.dom.setAttribute("aria-selected","true");o=l}}else l.dom.hasAttribute("aria-selected")&&l.dom.removeAttribute("aria-selected");i++}}));while(i<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0)){n=true;this.items.pop()}if(this.items.length==0){this.items.push(new PanelItem(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")}));n=true}if(o){this.list.setAttribute("aria-activedescendant",o.id);this.view.requestMeasure({key:this,read:()=>({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let i=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/i:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/i)}})}else this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant");n&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling;t.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){while(e!=i.dom)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);while(e)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(S);let i=w(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:true,effects:L.of(i)})}static open(e){return new LintPanel(e)}}function G(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function V(e){return G(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Y=t.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:V("#d11")},".cm-lintRange-warning":{backgroundImage:V("orange")},".cm-lintRange-info":{backgroundImage:V("#999")},".cm-lintRange-hint":{backgroundImage:V("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function Z(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function _(e){let t="hint",i=1;for(let n of e){let e=Z(n.severity);if(e>i){i=e;t=n.severity}}return t}class LintGutterMarker extends a{constructor(e){super();this.diagnostics=e;this.severity=_(e)}toDOM(e){let t=document.createElement("div");t.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics;let n=e.state.facet(ne).tooltipFilter;n&&(i=n(i,e.state));i.length&&(t.onmouseover=()=>W(e,t,i));return t}}function U(e,t){let i=n=>{let o=t.getBoundingClientRect();if(!(n.clientX>o.left-10&&n.clientX<o.right+10&&n.clientY>o.top-10&&n.clientY<o.bottom+10)){for(let e=n.target;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip-lint"))return;window.removeEventListener("mousemove",i);e.state.field(ee)&&e.dispatch({effects:Q.of(null)})}};window.addEventListener("mousemove",i)}function W(e,t,i){function n(){let n=e.elementAtHeight(t.getBoundingClientRect().top+5-e.documentTop);const o=e.coordsAtPos(n.from);o&&e.dispatch({effects:Q.of({pos:n.from,above:false,clip:false,create(){return{dom:I(e,i),getCoords:()=>t.getBoundingClientRect()}}})});t.onmouseout=t.onmousemove=null;U(e,t)}let{hoverTime:o}=e.state.facet(ne);let s=setTimeout(n,o);t.onmouseout=()=>{clearTimeout(s);t.onmouseout=t.onmousemove=null};t.onmousemove=()=>{clearTimeout(s);s=setTimeout(n,o)}}function X(e,t){let i=Object.create(null);for(let n of t){let t=e.lineAt(n.from);(i[t.from]||(i[t.from]=[])).push(n)}let n=[];for(let e in i)n.push(new LintGutterMarker(i[e]).range(+e));return p.of(n,true)}const J=c({class:"cm-gutter-lint",markers:e=>e.state.field(K),widgetMarker:(e,t,i)=>{let n=[];e.state.field(K).between(i.from,i.to,((e,t,o)=>{e>i.from&&e<i.to&&n.push(...o.diagnostics)}));return n.length?new LintGutterMarker(n):null}});const K=h.define({create(){return p.empty},update(e,t){e=e.map(t.changes);let i=t.state.facet(ne).markerFilter;for(let n of t.effects)if(n.is(y)){let o=n.value;i&&(o=i(o||[],t.state));e=X(t.state.doc,o.slice(0))}return e}});const Q=m.define();const ee=h.define({create(){return null},update(e,t){e&&t.docChanged&&(e=b(t,e)?null:{...e,pos:t.changes.mapPos(e.pos)});return t.effects.reduce(((e,t)=>t.is(Q)?t.value:e),e)},provide:e=>d.from(e)});const te=t.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:G('<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>')},".cm-lint-marker-warning":{content:G('<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>')},".cm-lint-marker-error":{content:G('<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>')}});const ie=[S,t.decorations.compute([S],(t=>{let{selected:i,panel:n}=t.field(S);return i&&n&&i.from!=i.to?e.set([R.range(i.from,i.to)]):e.none})),i(P,{hideOn:b}),Y];const ne=f.define({combine(e){return g(e,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function oe(e={}){return[ne.of(e),K,J,te,ee]}function se(e,t){let i=e.field(S,false);if(i&&i.diagnostics.size){let e=[],n=[],o=-1;for(let s=p.iter([i.diagnostics]);;s.next()){for(let i=0;i<e.length;i++)if(!s.value||s.value.spec.diagnostics.indexOf(e[i])<0){t(e[i],n[i],o);e.splice(i,1);n.splice(i--,1)}if(!s.value)break;for(let t of s.value.spec.diagnostics)if(e.indexOf(t)<0){e.push(t);n.push(s.from)}o=s.to}}}export{A as closeLintPanel,T as diagnosticCount,se as forEachDiagnostic,N as forceLinting,oe as lintGutter,O as lintKeymap,H as linter,D as nextDiagnostic,M as openLintPanel,B as previousDiagnostic,x as setDiagnostics,y as setDiagnosticsEffect};
|
|
4
|
+
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @codemirror/search@6.5.11 downloaded from https://ga.jspm.io/npm:@codemirror/search@6.5.11/dist/index.js
|
|
2
|
+
|
|
3
|
+
import{EditorView as e,showPanel as t,getPanel as r,ViewPlugin as i,Decoration as n,runScopeHandlers as s}from"@codemirror/view";import{codePointAt as o,fromCodePoint as l,codePointSize as a,StateEffect as c,EditorSelection as h,StateField as u,Facet as f,combineConfig as d,CharCategory as m,Prec as p,EditorState as g,findClusterBreak as v,RangeSetBuilder as x}from"@codemirror/state";import y from"crelt";const b=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class SearchCursor{constructor(e,t,r=0,i=e.length,n,s){this.test=s;this.value={from:0,to:0};this.done=false;this.matches=[];this.buffer="";this.bufferPos=0;this.iter=e.iterRange(r,i);this.bufferStart=r;this.normalize=n?e=>n(b(e)):b;this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){this.bufferStart+=this.buffer.length;this.iter.next();if(this.iter.done)return-1;this.bufferPos=0;this.buffer=this.iter.value}return o(this.buffer,this.bufferPos)}next(){while(this.matches.length)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0){this.done=true;return this}let t=l(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=a(e);let i=this.normalize(t);if(i.length)for(let e=0,n=r;;e++){let s=i.charCodeAt(e);let o=this.match(s,n,this.bufferPos+this.bufferStart);if(e==i.length-1){if(o){this.value=o;return this}break}n==r&&e<t.length&&t.charCodeAt(e)==s&&n++}}}match(e,t,r){let i=null;for(let t=0;t<this.matches.length;t+=2){let n=this.matches[t],s=false;if(this.query.charCodeAt(n)==e)if(n==this.query.length-1)i={from:this.matches[t+1],to:r};else{this.matches[t]++;s=true}if(!s){this.matches.splice(t,2);t-=2}}this.query.charCodeAt(0)==e&&(this.query.length==1?i={from:t,to:r}:this.matches.push(1,t));i&&this.test&&!this.test(i.from,i.to,this.buffer,this.bufferStart)&&(i=null);return i}}typeof Symbol!="undefined"&&(SearchCursor.prototype[Symbol.iterator]=function(){return this});const w={from:-1,to:-1,match:/.*/.exec("")};const S="gm"+(/x/.unicode==null?"":"u");class RegExpCursor{constructor(e,t,r,i=0,n=e.length){this.text=e;this.to=n;this.curLine="";this.done=false;this.value=w;if(/\\[sWDnr]|\n|\r|\[\^/.test(t))return new MultilineRegExpCursor(e,t,r,i,n);this.re=new RegExp(t,S+((r===null||r===void 0?void 0:r.ignoreCase)?"i":""));this.test=r===null||r===void 0?void 0:r.test;this.iter=e.iter();let s=e.lineAt(i);this.curLineStart=s.from;this.matchPos=C(e,i);this.getLine(this.curLineStart)}getLine(e){this.iter.next(e);if(this.iter.lineBreak)this.curLine="";else{this.curLine=this.iter.value;this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart));this.iter.next()}}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1;this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let r=this.curLineStart+t.index,i=r+t[0].length;this.matchPos=C(this.text,i+(r==i?1:0));r==this.curLineStart+this.curLine.length&&this.nextLine();if((r<i||r>this.value.to)&&(!this.test||this.test(r,i,t))){this.value={from:r,to:i,match:t};return this}e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to)){this.done=true;return this}this.nextLine();e=0}}}}const M=new WeakMap;class FlattenedDoc{constructor(e,t){this.from=e;this.text=t}get to(){return this.from+this.text.length}static get(e,t,r){let i=M.get(e);if(!i||i.from>=r||i.to<=t){let i=new FlattenedDoc(t,e.sliceString(t,r));M.set(e,i);return i}if(i.from==t&&i.to==r)return i;let{text:n,from:s}=i;if(s>t){n=e.sliceString(t,s)+n;s=t}i.to<r&&(n+=e.sliceString(i.to,r));M.set(e,new FlattenedDoc(s,n));return new FlattenedDoc(t,n.slice(t-s,r-s))}}class MultilineRegExpCursor{constructor(e,t,r,i,n){this.text=e;this.to=n;this.done=false;this.value=w;this.matchPos=C(e,i);this.re=new RegExp(t,S+((r===null||r===void 0?void 0:r.ignoreCase)?"i":""));this.test=r===null||r===void 0?void 0:r.test;this.flat=FlattenedDoc.get(e,i,this.chunkEnd(i+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from;let t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e){this.re.lastIndex=e+1;t=this.re.exec(this.flat.text)}if(t){let e=this.flat.from+t.index,r=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,r,t))){this.value={from:e,to:r,match:t};this.matchPos=C(this.text,r+(e==r?1:0));return this}}if(this.flat.to==this.to){this.done=true;return this}this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol!="undefined"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function k(e){try{new RegExp(e,S);return true}catch(e){return false}}function C(e,t){if(t>=e.length)return t;let r,i=e.lineAt(t);while(t<i.to&&(r=i.text.charCodeAt(t-i.from))>=56320&&r<57344)t++;return t}function q(t){let r=String(t.state.doc.lineAt(t.state.selection.main.head).number);let i=y("input",{class:"cm-textfield",name:"line",value:r});let n=y("form",{class:"cm-gotoLine",onkeydown:e=>{if(e.keyCode==27){e.preventDefault();t.dispatch({effects:L.of(false)});t.focus()}else if(e.keyCode==13){e.preventDefault();s()}},onsubmit:e=>{e.preventDefault();s()}},y("label",t.state.phrase("Go to line"),": ",i)," ",y("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),y("button",{name:"close",onclick:()=>{t.dispatch({effects:L.of(false)});t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["×"]));function s(){let r=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.value);if(!r)return;let{state:n}=t,s=n.doc.lineAt(n.selection.main.head);let[,o,l,a,c]=r;let u=a?+a.slice(1):0;let f=l?+l:s.number;if(l&&c){let e=f/100;o&&(e=e*(o=="-"?-1:1)+s.number/n.doc.lines);f=Math.round(n.doc.lines*e)}else l&&o&&(f=f*(o=="-"?-1:1)+s.number);let d=n.doc.line(Math.max(1,Math.min(n.doc.lines,f)));let m=h.cursor(d.from+Math.max(0,Math.min(u,d.length)));t.dispatch({effects:[L.of(false),e.scrollIntoView(m.from,{y:"center"})],selection:m});t.focus()}return{dom:n}}const L=c.define();const F=u.define({create(){return true},update(e,t){for(let r of t.effects)r.is(L)&&(e=r.value);return e},provide:e=>t.from(e,(e=>e?q:null))});const D=e=>{let t=r(e,q);if(!t){let i=[L.of(true)];e.state.field(F,false)==null&&i.push(c.appendConfig.of([F,W]));e.dispatch({effects:i});t=r(e,q)}t&&t.dom.querySelector("input").select();return true};const W=e.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}});const R={highlightWordAroundCursor:false,minSelectionLength:1,maxMatches:100,wholeWords:false};const A=f.define({combine(e){return d(e,R,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function E(e){let t=[$,T];e&&t.push(A.of(e));return t}const P=n.mark({class:"cm-selectionMatch"});const I=n.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Q(e,t,r,i){return(r==0||e(t.sliceDoc(r-1,r))!=m.Word)&&(i==t.doc.length||e(t.sliceDoc(i,i+1))!=m.Word)}function z(e,t,r,i){return e(t.sliceDoc(r,r+1))==m.Word&&e(t.sliceDoc(i-1,i))==m.Word}const T=i.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(A);let{state:r}=e,i=r.selection;if(i.ranges.length>1)return n.none;let s,o=i.main,l=null;if(o.empty){if(!t.highlightWordAroundCursor)return n.none;let e=r.wordAt(o.head);if(!e)return n.none;l=r.charCategorizer(o.head);s=r.sliceDoc(e.from,e.to)}else{let e=o.to-o.from;if(e<t.minSelectionLength||e>200)return n.none;if(t.wholeWords){s=r.sliceDoc(o.from,o.to);l=r.charCategorizer(o.head);if(!(Q(l,r,o.from,o.to)&&z(l,r,o.from,o.to)))return n.none}else{s=r.sliceDoc(o.from,o.to);if(!s)return n.none}}let a=[];for(let i of e.visibleRanges){let e=new SearchCursor(r.doc,s,i.from,i.to);while(!e.next().done){let{from:i,to:s}=e.value;if(!l||Q(l,r,i,s)){o.empty&&i<=o.from&&s>=o.to?a.push(I.range(i,s)):(i>=o.to||s<=o.from)&&a.push(P.range(i,s));if(a.length>t.maxMatches)return n.none}}}return n.set(a)}},{decorations:e=>e.decorations});const $=e.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const O=({state:e,dispatch:t})=>{let{selection:r}=e;let i=h.create(r.ranges.map((t=>e.wordAt(t.head)||h.cursor(t.head))),r.mainIndex);if(i.eq(r))return false;t(e.update({selection:i}));return true};function V(e,t){let{main:r,ranges:i}=e.selection;let n=e.wordAt(r.head),s=n&&n.from==r.from&&n.to==r.to;for(let r=false,n=new SearchCursor(e.doc,t,i[i.length-1].to);;){n.next();if(!n.done){if(r&&i.some((e=>e.from==n.value.from)))continue;if(s){let t=e.wordAt(n.value.from);if(!t||t.from!=n.value.from||t.to!=n.value.to)continue}return n.value}if(r)return null;n=new SearchCursor(e.doc,t,0,Math.max(0,i[i.length-1].from-1));r=true}}const K=({state:t,dispatch:r})=>{let{ranges:i}=t.selection;if(i.some((e=>e.from===e.to)))return O({state:t,dispatch:r});let n=t.sliceDoc(i[0].from,i[0].to);if(t.selection.ranges.some((e=>t.sliceDoc(e.from,e.to)!=n)))return false;let s=V(t,n);if(!s)return false;r(t.update({selection:t.selection.addRange(h.range(s.from,s.to),false),effects:e.scrollIntoView(s.to)}));return true};const B=f.define({combine(t){return d(t,{top:false,caseSensitive:false,literal:false,regexp:false,wholeWord:false,createPanel:e=>new SearchPanel(e),scrollToMatch:t=>e.scrollIntoView(t)})}});function G(e){return e?[B.of(e),ke]:ke}class SearchQuery{constructor(e){this.search=e.search;this.caseSensitive=!!e.caseSensitive;this.literal=!!e.literal;this.regexp=!!e.regexp;this.replace=e.replace||"";this.valid=!!this.search&&(!this.regexp||k(this.search));this.unquoted=this.unquote(this.search);this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>t=="n"?"\n":t=="r"?"\r":t=="t"?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,t=0,r){let i=e.doc?e:g.create({doc:e});r==null&&(r=i.doc.length);return this.regexp?H(this,i,t,r):N(this,i,t,r)}}class QueryType{constructor(e){this.spec=e}}function N(e,t,r,i){return new SearchCursor(t.doc,e.unquoted,r,i,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?j(t.doc,t.charCategorizer(t.selection.main.head)):void 0)}function j(e,t){return(r,i,n,s)=>{if(s>r||s+n.length<i){s=Math.max(0,r-2);n=e.sliceString(s,Math.min(e.length,i+2))}return(t(J(n,r-s))!=m.Word||t(U(n,r-s))!=m.Word)&&(t(U(n,i-s))!=m.Word||t(J(n,i-s))!=m.Word)}}class StringQuery extends QueryType{constructor(e){super(e)}nextMatch(e,t,r){let i=N(this.spec,e,r,e.doc.length).nextOverlapping();if(i.done){let r=Math.min(e.doc.length,t+this.spec.unquoted.length);i=N(this.spec,e,0,r).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==r?null:i.value}prevMatchInRange(e,t,r){for(let i=r;;){let r=Math.max(t,i-1e4-this.spec.unquoted.length);let n=N(this.spec,e,r,i),s=null;while(!n.nextOverlapping().done)s=n.value;if(s)return s;if(r==t)return null;i-=1e4}}prevMatch(e,t,r){let i=this.prevMatchInRange(e,0,t);i||(i=this.prevMatchInRange(e,Math.max(0,r-this.spec.unquoted.length),e.doc.length));return!i||i.from==t&&i.to==r?null:i}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let r=N(this.spec,e,0,e.doc.length),i=[];while(!r.next().done){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let n=N(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));while(!n.next().done)i(n.value.from,n.value.to)}}function H(e,t,r,i){return new RegExpCursor(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?X(t.charCategorizer(t.selection.main.head)):void 0},r,i)}function J(e,t){return e.slice(v(e,t,false),t)}function U(e,t){return e.slice(t,v(e,t))}function X(e){return(t,r,i)=>!i[0].length||(e(J(i.input,i.index))!=m.Word||e(U(i.input,i.index))!=m.Word)&&(e(U(i.input,i.index+i[0].length))!=m.Word||e(J(i.input,i.index+i[0].length))!=m.Word)}class RegExpQuery extends QueryType{nextMatch(e,t,r){let i=H(this.spec,e,r,e.doc.length).next();i.done&&(i=H(this.spec,e,0,t).next());return i.done?null:i.value}prevMatchInRange(e,t,r){for(let i=1;;i++){let n=Math.max(t,r-i*1e4);let s=H(this.spec,e,n,r),o=null;while(!s.next().done)o=s.value;if(o&&(n==t||o.from>n+10))return o;if(n==t)return null}}prevMatch(e,t,r){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,((t,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let t=r.length;t>0;t--){let i=+r.slice(0,t);if(i>0&&i<e.match.length)return e.match[i]+r.slice(t)}return t}))}matchAll(e,t){let r=H(this.spec,e,0,e.doc.length),i=[];while(!r.next().done){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let n=H(this.spec,e,Math.max(0,t-250),Math.min(r+250,e.doc.length));while(!n.next().done)i(n.value.from,n.value.to)}}const Y=c.define();const Z=c.define();const _=u.define({create(e){return new SearchState(de(e).create(),null)},update(e,t){for(let r of t.effects)r.is(Y)?e=new SearchState(r.value.create(),e.panel):r.is(Z)&&(e=new SearchState(e.query,r.value?fe:null));return e},provide:e=>t.from(e,(e=>e.panel))});function ee(e){let t=e.field(_,false);return t?t.query.spec:de(e)}function te(e){var t;return((t=e.field(_,false))===null||t===void 0?void 0:t.panel)!=null}class SearchState{constructor(e,t){this.query=e;this.panel=t}}const re=n.mark({class:"cm-searchMatch"}),ie=n.mark({class:"cm-searchMatch cm-searchMatch-selected"});const ne=i.fromClass(class{constructor(e){this.view=e;this.decorations=this.highlight(e.state.field(_))}update(e){let t=e.state.field(_);(t!=e.startState.field(_)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return n.none;let{view:r}=this;let i=new x;for(let t=0,n=r.visibleRanges,s=n.length;t<s;t++){let{from:o,to:l}=n[t];while(t<s-1&&l>n[t+1].from-500)l=n[++t].to;e.highlight(r.state,o,l,((e,t)=>{let n=r.state.selection.ranges.some((r=>r.from==e&&r.to==t));i.add(e,t,n?ie:re)}))}return i.finish()}},{decorations:e=>e.decorations});function se(e){return t=>{let r=t.state.field(_,false);return r&&r.query.spec.valid?e(t,r):ge(t)}}const oe=se(((e,{query:t})=>{let{to:r}=e.state.selection.main;let i=t.nextMatch(e.state,r,r);if(!i)return false;let n=h.single(i.from,i.to);let s=e.state.facet(B);e.dispatch({selection:n,effects:[Se(e,i),s.scrollToMatch(n.main,e)],userEvent:"select.search"});pe(e);return true}));const le=se(((e,{query:t})=>{let{state:r}=e,{from:i}=r.selection.main;let n=t.prevMatch(r,i,i);if(!n)return false;let s=h.single(n.from,n.to);let o=e.state.facet(B);e.dispatch({selection:s,effects:[Se(e,n),o.scrollToMatch(s.main,e)],userEvent:"select.search"});pe(e);return true}));const ae=se(((e,{query:t})=>{let r=t.matchAll(e.state,1e3);if(!r||!r.length)return false;e.dispatch({selection:h.create(r.map((e=>h.range(e.from,e.to)))),userEvent:"select.search.matches"});return true}));const ce=({state:e,dispatch:t})=>{let r=e.selection;if(r.ranges.length>1||r.main.empty)return false;let{from:i,to:n}=r.main;let s=[],o=0;for(let t=new SearchCursor(e.doc,e.sliceDoc(i,n));!t.next().done;){if(s.length>1e3)return false;t.value.from==i&&(o=s.length);s.push(h.range(t.value.from,t.value.to))}t(e.update({selection:h.create(s,o),userEvent:"select.search.matches"}));return true};const he=se(((t,{query:r})=>{let{state:i}=t,{from:n,to:s}=i.selection.main;if(i.readOnly)return false;let o=r.nextMatch(i,n,n);if(!o)return false;let l=o;let a,c,u=[];let f=[];if(l.from==n&&l.to==s){c=i.toText(r.getReplacement(l));u.push({from:l.from,to:l.to,insert:c});l=r.nextMatch(i,l.from,l.to);f.push(e.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))}let d=t.state.changes(u);if(l){a=h.single(l.from,l.to).map(d);f.push(Se(t,l));f.push(i.facet(B).scrollToMatch(a.main,t))}t.dispatch({changes:d,selection:a,effects:f,userEvent:"input.replace"});return true}));const ue=se(((t,{query:r})=>{if(t.state.readOnly)return false;let i=r.matchAll(t.state,1e9).map((e=>{let{from:t,to:i}=e;return{from:t,to:i,insert:r.getReplacement(e)}}));if(!i.length)return false;let n=t.state.phrase("replaced $ matches",i.length)+".";t.dispatch({changes:i,effects:e.announce.of(n),userEvent:"input.replace.all"});return true}));function fe(e){return e.state.facet(B).createPanel(e)}function de(e,t){var r,i,n,s,o;let l=e.selection.main;let a=l.empty||l.to>l.from+100?"":e.sliceDoc(l.from,l.to);if(t&&!a)return t;let c=e.facet(B);return new SearchQuery({search:((r=t===null||t===void 0?void 0:t.literal)!==null&&r!==void 0?r:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=t===null||t===void 0?void 0:t.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=t===null||t===void 0?void 0:t.literal)!==null&&n!==void 0?n:c.literal,regexp:(s=t===null||t===void 0?void 0:t.regexp)!==null&&s!==void 0?s:c.regexp,wholeWord:(o=t===null||t===void 0?void 0:t.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function me(e){let t=r(e,fe);return t&&t.dom.querySelector("[main-field]")}function pe(e){let t=me(e);t&&t==e.root.activeElement&&t.select()}const ge=e=>{let t=e.state.field(_,false);if(t&&t.panel){let r=me(e);if(r&&r!=e.root.activeElement){let i=de(e.state,t.query.spec);i.valid&&e.dispatch({effects:Y.of(i)});r.focus();r.select()}}else e.dispatch({effects:[Z.of(true),t?Y.of(de(e.state,t.query.spec)):c.appendConfig.of(ke)]});return true};const ve=e=>{let t=e.state.field(_,false);if(!t||!t.panel)return false;let i=r(e,fe);i&&i.dom.contains(e.root.activeElement)&&e.focus();e.dispatch({effects:Z.of(false)});return true};const xe=[{key:"Mod-f",run:ge,scope:"editor search-panel"},{key:"F3",run:oe,shift:le,scope:"editor search-panel",preventDefault:true},{key:"Mod-g",run:oe,shift:le,scope:"editor search-panel",preventDefault:true},{key:"Escape",run:ve,scope:"editor search-panel"},{key:"Mod-Shift-l",run:ce},{key:"Mod-Alt-g",run:D},{key:"Mod-d",run:K,preventDefault:true}];class SearchPanel{constructor(e){this.view=e;let t=this.query=e.state.field(_).query.spec;this.commit=this.commit.bind(this);this.searchField=y("input",{value:t.search,placeholder:ye(e,"Find"),"aria-label":ye(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit});this.replaceField=y("input",{value:t.replace,placeholder:ye(e,"Replace"),"aria-label":ye(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit});this.caseField=y("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit});this.reField=y("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit});this.wordField=y("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function r(e,t,r){return y("button",{class:"cm-button",name:e,onclick:t,type:"button"},r)}this.dom=y("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,r("next",(()=>oe(e)),[ye(e,"next")]),r("prev",(()=>le(e)),[ye(e,"previous")]),r("select",(()=>ae(e)),[ye(e,"all")]),y("label",null,[this.caseField,ye(e,"match case")]),y("label",null,[this.reField,ye(e,"regexp")]),y("label",null,[this.wordField,ye(e,"by word")]),...e.state.readOnly?[]:[y("br"),this.replaceField,r("replace",(()=>he(e)),[ye(e,"replace")]),r("replaceAll",(()=>ue(e)),[ye(e,"replace all")])],y("button",{name:"close",onclick:()=>ve(e),"aria-label":ye(e,"close"),type:"button"},["×"])])}commit(){let e=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});if(!e.eq(this.query)){this.query=e;this.view.dispatch({effects:Y.of(e)})}}keydown(e){if(s(this.view,e,"search-panel"))e.preventDefault();else if(e.keyCode==13&&e.target==this.searchField){e.preventDefault();(e.shiftKey?le:oe)(this.view)}else if(e.keyCode==13&&e.target==this.replaceField){e.preventDefault();he(this.view)}}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(Y)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e;this.searchField.value=e.search;this.replaceField.value=e.replace;this.caseField.checked=e.caseSensitive;this.reField.checked=e.regexp;this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(B).top}}function ye(e,t){return e.state.phrase(t)}const be=30;const we=/[\s\.,:;?!]/;function Se(t,{from:r,to:i}){let n=t.state.doc.lineAt(r),s=t.state.doc.lineAt(i).to;let o=Math.max(n.from,r-be),l=Math.min(s,i+be);let a=t.state.sliceDoc(o,l);if(o!=n.from)for(let e=0;e<be;e++)if(!we.test(a[e+1])&&we.test(a[e])){a=a.slice(e);break}if(l!=s)for(let e=a.length-1;e>a.length-be;e--)if(!we.test(a[e-1])&&we.test(a[e])){a=a.slice(0,e);break}return e.announce.of(`${t.state.phrase("current match")}. ${a} ${t.state.phrase("on line")} ${n.number}.`)}const Me=e.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}});const ke=[_,p.low(ne),Me];export{RegExpCursor,SearchCursor,SearchQuery,ve as closeSearchPanel,oe as findNext,le as findPrevious,ee as getSearchQuery,D as gotoLine,E as highlightSelectionMatches,ge as openSearchPanel,ue as replaceAll,he as replaceNext,G as search,xe as searchKeymap,te as searchPanelOpen,ae as selectMatches,K as selectNextOccurrence,ce as selectSelectionMatches,Y as setSearchQuery};
|
|
4
|
+
|