Version 5.0.0 beta 4

This commit is contained in:
Neo committed 2025-12-19 16:57:00 -08:00
1 parent e86153356a
commit 2f24f9de48
276 files changed
+8614 -6044

No files matched your search

+3 -3
View File
@@ -265,11 +265,11 @@
}
},
"moderation": {
"reportedContent": {
"report": {
"tab": "members",
"controller": "reportedContent",
"controller": "report",
"do": "",
"restriction": "reportedContent_manage"
"restriction": "reportedContentTypes_manage"
},
"spam": {
"tab": "members",
+1 -1
View File
@@ -1476,7 +1476,7 @@
]
},
"app=core&module=moderation&controller=reportedContentTypes": {
"lang_key": "menu__core_moderation_reportedContentTypes",
"lang_key": "r__reportedContentTypes",
"restriction": null,
"keywords": [
"report",
+6 -1
View File
@@ -362,6 +362,10 @@
<setting key="reg_rules"><![CDATA[{"key":"reg_rules","default":"<p>Please take a moment to review these rules.<\/p><p>Please remember that we are not responsible for any messages posted. We do not vouch for or warrant the accuracy, completeness or usefulness of any message, and are not responsible for the contents of any message.<\/p><p>The messages express the views of the author of the message, not necessarily the views of this website. Any user who feels that a posted message is objectionable is encouraged to contact us immediately by email. We have the ability to remove objectionable messages and we will make every effort to do so, within a reasonable time frame, if we determine that removal is necessary.<\/p><p>You agree, through your use of this service, that you will not use this website to post any material which is knowingly false and\/or defamatory, inaccurate, abusive, vulgar, hateful, harassing, obscene, profane, sexually oriented, threatening, invasive of a person's privacy, or otherwise violative of any law.<\/p><p>You agree not to post any copyrighted material unless the copyright is owned by you or by this website.<\/p><p>Our software uses cookies to distinguish you from other users of our website. This helps us to provide you with a personalized experience when you browse this site.<\/p>","report":"bool"}]]></setting>
<setting key="relative_dates_enable"><![CDATA[{"key":"relative_dates_enable","default":"1","report":"full"}]]></setting>
<setting key="remote_image_cache"><![CDATA[{"key":"remote_image_cache","default":"7","report":"full"}]]></setting>
<setting key="report_capture_guest_details"><![CDATA[{"key":"report_capture_guest_details","default":"0","report":"full"}]]></setting>
<setting key="report_content_mandatory"><![CDATA[{"key":"report_content_mandatory","default":"0","report":"none"}]]></setting>
<setting key="report_guest_details_name_mandatory"><![CDATA[{"key":"report_guest_details_name_mandatory","default":"0","report":"full"}]]></setting>
<setting key="report_guest_details_store_days"><![CDATA[{"key":"report_guest_details_store_days","default":"365","report":"none"}]]></setting>
<setting key="reputation_can_self_vote"><![CDATA[{"key":"reputation_can_self_vote","default":"","report":"full"}]]></setting>
<setting key="reputation_enabled"><![CDATA[{"key":"reputation_enabled","default":"1","report":"full"}]]></setting>
<setting key="reputation_highlight"><![CDATA[{"key":"reputation_highlight","default":"50","report":"full"}]]></setting>
@@ -406,6 +410,7 @@
<setting key="sendgrid_ip_pool"><![CDATA[{"key":"sendgrid_ip_pool","default":"","report":"bool"}]]></setting>
<setting key="sendgrid_use_for"><![CDATA[{"key":"sendgrid_use_for","default":"","report":"full"}]]></setting>
<setting key="seo_r_on"><![CDATA[{"key":"seo_r_on","default":"1","report":"full"}]]></setting>
<setting key="seo_reduce_links"><![CDATA[{"key":"seo_reduce_links","default":"1","report":"full"}]]></setting>
<setting key="setup_in_progress"><![CDATA[{"key":"setup_in_progress","default":"","report":"none"}]]></setting>
<setting key="signatures_enabled"><![CDATA[{"key":"signatures_enabled","default":"","report":"full"}]]></setting>
<setting key="signatures_guests"><![CDATA[{"key":"signatures_guests","default":"","report":"full"}]]></setting>
@@ -677,7 +682,7 @@
<acpsearch key="app=core&amp;module=membersettings&amp;controller=reputation&amp;tab=leaderboard&amp;searchResult=reputation_timezone"><![CDATA[{"lang_key":"reputation_timezone","restriction":"reps_manage","keywords":["leaderboard","timezone"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=messengerstats&amp;controller=pmstats"><![CDATA[{"lang_key":"menu__core_members_pmstats","restriction":null,"keywords":["message statistics","Messenger Statistics","private messages"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=moderation&amp;controller=reportedContent"><![CDATA[{"lang_key":"menu__core_moderation_reportedContent","restriction":"reportedContent_manage","keywords":["moderation","report","report types"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=moderation&amp;controller=reportedContentTypes"><![CDATA[{"lang_key":"menu__core_moderation_reportedContentTypes","restriction":null,"keywords":["report","report types"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=moderation&amp;controller=reportedContentTypes"><![CDATA[{"lang_key":"r__reportedContentTypes","restriction":null,"keywords":["report","report types"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=moderation&amp;controller=spam"><![CDATA[{"lang_key":"menu__core_moderation_spam","restriction":"spam_manage","keywords":["spam","spammers"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=moderation&amp;controller=spam&amp;do=serviceLogs"><![CDATA[{"lang_key":"spamlogs","restriction":"spam_service_log","keywords":["spam logs"]}]]></acpsearch>
<acpsearch key="app=core&amp;module=moderation&amp;controller=spam&amp;searchResult=bot_antispam_type"><![CDATA[{"lang_key":"bot_antispam_type","restriction":"spam_manage","keywords":["bot prevention","CAPTCHA","hCaptcha","security question"]}]]></acpsearch>
+1 -1
View File
@@ -45,7 +45,7 @@
"isDynamicEntry": true
},
"src/main.jsx": {
"file": "assets/main-mf6AQnai.js",
"file": "assets/main-CoHJ0uDc.js",
"name": "main",
"src": "src/main.jsx",
"isEntry": true,
+30 -3
View File
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<emails><template><template_app>core</template_app><template_name>notification_new_private_message</template_name><template_content_html><![CDATA[{$email->language->addToStack("messenger_notify_title", FALSE, array( 'sprintf' => array( $message->author()->name ) ) )}
<emails><template><template_app>core</template_app><template_name>notification_report_outcome</template_name><template_content_html><![CDATA[{{if ! empty( $userReport['guest_name'] )}}
<strong>{$userReport['guest_name']}</strong>
<br><br>
{{endif}}
{{$date = \IPS\DateTime::ts( $userReport['date_reported'] )->localeDate();}}
{$email->language->addToStack("report_outcome_email_blurb", FALSE, array( 'sprintf' => array( $date, $reportIndex->mapped('title'), $reportType->_title ) ) )}
<br><br>
{$email->language->addToStack("report_outcome_email_prelude")}
<br><br>
{$reportIndex->getReportOutcomeBlurb( $userReport['id'] )}
<br /><br />
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>
]]></template_content_html><template_data>$reportIndex, $reportType, $userReport, $email</template_data><template_content_plaintext><![CDATA[{{$date = \IPS\DateTime::ts( $userReport['date_reported'] )->localeDate();}}
{$email->language->addToStack("report_outcome_email_blurb", FALSE, array( 'sprintf' => array( $date, $reportIndex->mapped('title'), $reportType->_title ) ) )}
{$email->language->addToStack("report_outcome_email_prelude")}
{$reportIndex->getReportOutcomeBlurb( $userReport['id'] )}
]]></template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>core</template_app><template_name>notification_new_private_message</template_name><template_content_html><![CDATA[{$email->language->addToStack("messenger_notify_title", FALSE, array( 'sprintf' => array( $message->author()->name ) ) )}
<br /><br />
<a href='{$message->url()}' style="color: #ffffff; font-family: 'Helvetica Neue', helvetica, sans-serif; text-decoration: none; font-size: 12px; background: {setting="email_color"}; line-height: 32px; padding: 0 10px; display: inline-block; border-radius: 3px;">{$email->language->addToStack("messenger_inline_button", FALSE)}</a>
@@ -609,7 +631,12 @@
{$email->language->addToStack("email_go_to_x_profile", FALSE, array( 'htmlsprintf' => array( $member->name ) ) )}: {$member->url()}
=====
-- {setting="board_name"}]]></template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>core</template_app><template_name>notification_automatic_moderation</template_name><template_content_html><![CDATA[{{$item = $reportedContent instanceof \IPS\Content\Item ? $reportedContent : $reportedContent->item();}}
-- {setting="board_name"}]]></template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>core</template_app><template_name>notification_report_content_author</template_name><template_content_html><![CDATA[{{$text=nl2br($templateContent);}}
{$text|raw}
<br /><br />
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>
]]></template_content_html><template_data>$reportIndex, $content, $templateContent, $email</template_data><template_content_plaintext>{$templateContent}
</template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>core</template_app><template_name>notification_automatic_moderation</template_name><template_content_html><![CDATA[{{$item = $reportedContent instanceof \IPS\Content\Item ? $reportedContent : $reportedContent->item();}}
{$email->language->addToStack("email_content_automatic_moderation", FALSE, array( 'sprintf' => array( $reportedContent->indefiniteArticle( $email->language ), $reportedContent->url(), $item->mapped('title') ) ) )}
<br />
@@ -990,7 +1017,7 @@
{{endif}}
<tr>
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 1.5; font-size: 14px;">
<strong>{$content->mapped('title')}</strong>
<strong>{expression="(string) $content->mapped('title')"}</strong>
</td>
</tr>
{{$emailContent = $email->parseTextForEmail( $content->content(), $email->language, ( \IPS\Settings::i()->email_truncate ? 150 : NULL ) );}}
+8 -4
View File
@@ -240,10 +240,6 @@
"friendly": "modcp\/reports\/{#id}",
"real": "app=core&module=modcp&controller=modcp&tab=reports&action=view"
},
"modcp": {
"friendly": "modcp",
"real": "app=core&module=modcp&controller=modcp"
},
"modcp_members": {
"friendly": "modcp\/members",
"real": "app=core&module=modcp&controller=modcp&tab=members"
@@ -284,6 +280,14 @@
"friendly": "modcp\/assignments",
"real": "app=core&module=modcp&controller=modcp&tab=assignments"
},
"modcp_tab": {
"friendly": "modcp\/{@tab}",
"real": "app=core&module=modcp&controller=modcp"
},
"modcp": {
"friendly": "modcp",
"real": "app=core&module=modcp&controller=modcp"
},
"ignore": {
"friendly": "ignore",
"real": "app=core&module=system&controller=ignore"
File diff suppressed because it is too large. Load diff
+63 -8
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="core" version="5000029">
<app key="core" version="5000030">
<word key="__app_core" js="0">System</word>
<word key="__indefart_personal_conversation" js="0">a personal conversation</word>
<word key="__indefart_personal_conversation_message" js="0">a message in a personal conversation</word>
@@ -3916,12 +3916,12 @@
<word key="ads_txt_enabled_desc" js="0"><![CDATA[<a href='{external.ads-dot-text}' target='_blank' rel='noopener'>ads.txt</a> is a simple, flexible, and secure method for publishers and distributors to declare who is authorized to sell their inventory.]]></word>
<word key="menu__core_moderation" js="0">Content Moderation</word>
<word key="menu__core_moderation_reportedContent" js="0">Automatic Moderation</word>
<word key="menu__core_moderation_reportedContentTypes" js="0">Report Types</word>
<word key="menu__core_moderation_report" js="0">Reporting Content</word>
<word key="menu__core_moderation_spam" js="0">Spam Prevention</word>
<word key="menu__core_moderation_warnings" js="0">Warnings</word>
<word key="r__reportedContent" js="0">Automatic Moderation</word>
<word key="r__reportedContent" js="0">Automatic Moderation Rules</word>
<word key="r__reportedContent_manage" js="0">Can manage automatic moderation rules</word>
<word key="r__reportedContentTypes" js="0">Report Types</word>
<word key="r__reportedContentTypes" js="0">Reporting Content</word>
<word key="r__reportedContentTypes_manage" js="0">Can manage report types</word>
<word key="automaticmoderation" js="0">Automatic Content Moderation</word>
<word key="automaticmoderation_generic_details" js="0">Details</word>
@@ -3952,11 +3952,40 @@
<word key="automoderation_deleted" js="0">Report deleted</word>
<word key="automoderation_cannot_find_report" js="0">Cannot find that report</word>
<word key="automoderation_report_points_flag" js="0">{# [1:automatic moderation point][?:automatic moderation points]}</word>
<word key="manage_automatic_rules" js="0">Manage Automatic Content Moderation Rules</word>
<word key="reportedContent_types" js="0">Manage Report Types</word>
<word key="automaticmod_types_title" js="0">Type Title</word>
<word key="automaticmod_types" js="0">Report Types</word>
<word key="automoderation_report_type_filter" js="0">Report Type</word>
<word key="moderation_reporttypes_desc" js="0"><![CDATA[Report Types are the subject or context of the reportable item, for example Offensive / Abusive or Spam. Create these types to use for your <a href='{internal.app=core&module=moderation&controller=reportedContent}'>Automatic Content Moderation</a> rules]]></word>
<word key="moderation_reporttypes_desc" js="0"><![CDATA[Report Types are the selectable reason for creating a report. Create these types to use for your <a href='{internal.app=core&module=moderation&controller=reportedContent}'>Automatic Content Moderation</a> rules and for when members report content. You can select which groups can report content in the <a href='{internal.app=core&module=members&controller=groups&searchResult=g_can_report}'>group settings</a>.]]></word>
<word key="reporting_content_blurb" js="0"><![CDATA[Allow your members to report content to surface issues to your moderation team. You can configure the reasons for reporting and who can report content in the <a href='{internal.app=core&module=moderation&controller=reportedContentTypes}'>Report Types</a> and <a href='{internal.app=core&module=members&controller=groups&searchResult=g_can_report}'>Group Settings</a>. Configuring <a href='{internal.app=core&module=moderation&controller=reportedContent}'>Automatic Content Moderation</a> will allow you to automatically hide content that receives a certain number of reports.]]></word>
<word key="report_capture_guest_details" js="0">Capture guest details</word>
<word key="report_capture_guest_details_desc" js="0">When a guest reports content, request their name and email address which is stored with the report.</word>
<word key="report_guest_details_name_mandatory" js="0">Guest name must be completed</word>
<word key="report_guest_details_name_mandatory_desc" js="0">Guests can choose to provide their name when reporting content.</word>
<word key="report_content_mandatory" js="0">Report message mandatory</word>
<word key="report_content_mandatory_desc" js="0">Require members to provide a message when reporting content.</word>
<word key="mailsub__core_notification_report_outcome" js="0">Outcome of your reported content</word>
<word key="report_outcome_email_blurb" js="0"><![CDATA[On %s, you reported <strong>%s</strong> as <em>%s</em>]]></word>
<word key="report_outcome_email_prelude" js="0">Our community team has investigated that report, and this is the outcome:</word>
<word key="notification__report_outcome" js="0">Your report for %s, marked as %s has been processed as: %s</word>
<word key="report_guest_details_store_days" js="0">Remove guest details after</word>
<word key="report_guest_details_store_unlimited" js="0">never remove</word>
<word key="report_capture_guest_details__warning" js="0"><![CDATA[The ability for guests to report content is currently disabled. To enable this feature, you must enable the 'Can Report Content' setting for Guests in <a href='{internal.app=core&module=members&controller=groups&searchResult=g_can_report}'>group management</a>.]]></word>
<word key="reporting_content_notifications_blurb" js="0">Create email notifications that you can choose to send to the author of the content that was reported when marking a report as rejected or complete.</word>
<word key="report_author_notification_title" js="0">Notifications</word>
<word key="acplog__report_author_notification_edited" js="0">Report notification %s edited</word>
<word key="acplog__report_author_notification_created" js="0">Report notification %s created</word>
<word key="acplog__report_author_notification_deleted" js="0">Report notfication %s deleted</word>
<word key="report_notifications_title" js="0">Title</word>
<word key="report_notifications_text" js="0">Content</word>
<word key="report_notifications_title_desc" js="0">This is for reference only, it is not sent with any notification</word>
<word key="report_notifications_text_desc" js="0"><![CDATA[The email notification that can be sent to the author of the content.<br>You can use the following special tags:<br>{name}: the name of the content author.<br>{content}: the reported content text.<br>{link}: the link to the content.<br>{reason}: the reason for the report (i.e. abusive, spam, etc).]]></word>
<word key="modal_author__notification" js="0">Send notification to %s</word>
<word key="modal_author_notification_desc" js="0">Optionally send an email to the author of the reported content.</word>
<word key="modal_author_notification_none" js="0">Do not send a notification</word>
<word key="modal_author_notification_form_submit" js="0">Change status</word>
<word key="mailsub__core_notification_report_content_author" js="0"><![CDATA[Information about your {$content->definiteArticle()}]]></word>
<word key="settings_blurb" js="0">Manage your account settings, and set up social network integration.</word>
<word key="change_email_address" js="0">Change email address</word>
<word key="change_email_explain_1" js="0">You will have to re-activate your account after changing your email address.</word>
@@ -5555,6 +5584,7 @@
<word key="report_message" js="0"></word>
<word key="report_message_fallback" js="0">Your Report</word>
<word key="report_message_placeholder" js="0">Optionally enter a message with your report.</word>
<word key="report_message_placeholder_mandatory" js="0">Please enter a message with your report.</word>
<word key="report_submit" js="0">Submit Report</word>
<word key="report_submit_success" js="0">Thanks for your report.</word>
<word key="report_err_own_content" js="0">You cannot report something you posted.</word>
@@ -5565,12 +5595,15 @@
<word key="filter_report_status_1_app" js="0">New Reports from %s</word>
<word key="filter_report_status_2" js="0">All Under Review</word>
<word key="filter_report_status_3" js="0">All Complete</word>
<word key="filter_report_status_4" js="0">All Rejected</word>
<word key="report_status_1" js="0">New Report</word>
<word key="report_status_2" js="0">Under Review</word>
<word key="report_status_3" js="0">Complete</word>
<word key="report_status_3" js="0">Complete (Valid report)</word>
<word key="report_status_4" js="0">Rejected</word>
<word key="menu_report_status_1" js="0">New Report</word>
<word key="menu_report_status_2" js="0">Under Review</word>
<word key="menu_report_status_3" js="0">Complete</word>
<word key="menu_report_status_3" js="0">Complete (Valid report)</word>
<word key="menu_report_status_4" js="0">Rejected</word>
<word key="report_from" js="0">From %s %s</word>
<word key="report__comment_placeholder" js="0">Comment on this report...</word>
<word key="report_submit_comment" js="0">Submit Comment</word>
@@ -5586,12 +5619,25 @@
<word key="notification__report_center" js="0">%s has reported %s: %s</word>
<word key="notification__report_center_grouped" js="0">{count} new content {!#[1:report has][?:reports have]} been received</word>
<word key="notification__report_center_title" js="0">⚠️ Reported content</word>
<word key="report_guest_name" js="0">Your Name</word>
<word key="report_guest_email" js="0">Your Email Address</word>
<word key="report_modcp_change_submission_reason" js="0">Change submission reason</word>
<word key="update_report_status_content" js="0"><![CDATA[<strong>Updated the status</strong> of the report to <strong>%s</strong>]]></word>
<word key="modlog__action_update_report_status" js="0"><![CDATA[Updated the status of a <a href='%s'>report</a>]]></word>
<word key="notification__automatic_moderation" js="0">The automatic moderation threshold has been reached for %s: %s</word>
<word key="notification__automatic_moderation_title" js="0">⚠️ Automatic moderation</word>
<word key="report_type_change_log" js="0">Add a comment recording this change?</word>
<word key="report_type_changed" js="0"><![CDATA[I have changed the report type to <strong>%s</strong> from %s for <a href='%s'>report ID %s</a>]]></word>
<word key="notifications__core_Moderation_automatic_moderation" js="0">Automatic moderation</word>
<word key="notifications__core_Moderation_automatic_moderation_desc" js="0">These notifications will be sent when something has been reported enough times that it is automatically hidden.</word>
<word key="automaticmod_types_notify_complete" js="0">Reported Completed Notification</word>
<word key="automaticmod_types_notify_complete_desc" js="0">This notification will be sent when a report with this type has been completed. Leave blank to not send any notification</word>
<word key="automaticmod_types_notify_reject" js="0">Reported Rejected Notification</word>
<word key="automaticmod_types_notify_reject_desc" js="0">This notification will be sent when a report with this type has been rejected. Leave blank to not send any notification</word>
<word key="notifications__core_Moderation_reports" js="0">Report Outcomes</word>
<word key="notifications__core_Moderation_reports_desc" js="0">These notifications will be sent when your report has been processed.</word>
<word key="report_toggle_status_confirm_title" js="0">Are you sure?</word>
<word key="report_status_changed" js="0">The status of this report has been updated</word>
<word key="warn_reason" js="0">Reason</word>
<word key="core_warn_reason_other" js="0">Other</word>
<word key="core_warn_reason_0" js="0">Warning</word>
@@ -8105,6 +8151,8 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="use_robotstxt_warning_existing_off" js="0">You have an existing robots.txt file. You will need to edit or remove %s/robots.txt to remove the community rules.</word>
<word key="use_robotstxt_warning_existing_download" js="0"><![CDATA[You have an existing robots.txt file. You must <a href='{internal.app=core&module=promotion&controller=seo&do=downloadRobotstxt}'><strong>download this file</strong></a> and manually add to your %s/robots.txt to use these rules.]]></word>
<word key="acplog__robotstxt_edited" js="0">Robots.txt edited</word>
<word key="seo_reduce_links" js="0">Reduce Links</word>
<word key="seo_reduce_links_desc" js="0">Reduce the number of links, such as shareable links and share menus on the page to improve crawl efficiency. This setting will impact bots and guest visitors only. Members will continue to see all shareable links, etc.</word>
<word key="editor_stored_replies_none_created_button" js="0">You have added the stock replies button to the editor but the button will not show on the editor until you create one or more stock replies.</word>
<word key="menu__core_activitystats_deletedcontent" js="0">Deleted Content</word>
<word key="stats_deletedcontent_title" js="0">Deleted Content</word>
@@ -8488,6 +8536,7 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="theme_light_mode" js="0">Light Mode</word>
<word key="theme_dark_mode" js="0">Dark Mode</word>
<word key="theme_system" js="0">System Preference</word>
<word key="cookie_theme_editor_vars_description" js="0">This cookie stores theme changes while a theme edit is in progress.</word>
<word key="login_handlers" js="0">Methods</word>
<word key="login_handler" js="0">Handler</word>
<word key="login_details" js="0">Details</word>
@@ -11113,6 +11162,7 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="acplog__emoticon_deleted" js="0">Deleted a custom emoji</word>
<word key="emoticon_invalid" js="0">URL %s is invalid. Reupload.</word>
<word key="acplog__emoticon_set_deleted" js="0">Emoji set deleted</word>
<word key="standard_emoji" js="0">Standard Emoji</word>
<word key="menu__core_stats_warnings" js="0">Warnings</word>
<word key="stats_warnings_title" js="0">Warnings over time</word>
<word key="r__warnings_manage" js="0">Can view warning statistics?</word>
@@ -11600,7 +11650,6 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="ignore_prefs_updated" js="1">Your ignore preferences have been updated.</word>
<word key="ignore_prefs_error" js="1">There was a problem changing your preferences.</word>
<word key="errorLoadingContent" js="1">There was a problem loading this content.</word>
<word key="reportStatusChanged" js="1">The status of this report has been updated</word>
<word key="loadingComments" js="1">Loading comments...</word>
<word key="statusLocked" js="1">Unlock</word>
<word key="statusUnlocked" js="1">Lock</word>
@@ -11935,6 +11984,7 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="messageFlashSingle" js="1">You have a new personal message</word>
<word key="messageFlashMultiple" js="1">You have {# [1:new personal message][?:new personal messages]}</word>
<word key="approvalQueueNoPerm" js="1">You do not have permission to perform this action for this content.</word>
<word key="report_status_change_confirm" js="1">Change to {{newstatus}}</word>
<word key="apiEndpoints_all" js="1">All endpoints accessible</word>
<word key="apiEndpoints_some" js="1">{{checked}} of {# [1:endpoint][?:endpoints]} accessible</word>
<word key="apiEndpoints_none" js="1">No endpoints accessible</word>
@@ -11963,6 +12013,7 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="ipsFa__far" js="1">regular</word>
<word key="ipsFa__fas" js="1">solid</word>
<word key="iconpicker_icon_cannot_add" js="1">You have added the maximum allowed icons</word>
<word key="iconpicker_prompt" js="1">Search for an icon</word>
<word key="ips_icon_picker__tab_fa" js="1">Icons</word>
<word key="ips_icon_picker__tab_emoji" js="1">Emojis</word>
<word key="mediaNoneSelected" js="1">No items selected</word>
@@ -12064,6 +12115,10 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="editor_code--ipsphtml" js="1">Invision HTML Template</word>
<word key="editor_code--ipscss" js="1">Invision CSS Template</word>
<word key="edit_show_more" js="1">Expand to Edit</word>
<word key="editor_insert_line_before" js="1">Insert line before</word>
<word key="editor_insert_line_after" js="1">Insert line after</word>
<word key="editor_add_box_title" js="1">Add a box title...</word>
<word key="editor_giphy_prompt" js="1">Search for GIFs...</word>
<word key="moderator_alert_reply_ready" js="1">Your reply has been sent</word>
<word key="moderator_alert_reply_view" js="1">View Reply</word>
</app>
+1 -1
View File
@@ -1 +1 @@
{"build":1730168838633}
{"build":1730845557681}
+78 -2
View File
@@ -9815,6 +9815,57 @@
"comment": "",
"reporting": "count"
},
"core_rc_author_notification_text": {
"name": "core_rc_author_notification_text",
"columns": {
"id": {
"name": "id",
"type": "BIGINT",
"length": "20",
"unsigned": true,
"allow_null": false,
"default": null,
"auto_increment": true,
"comment": "ID Number"
},
"title": {
"name": "title",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": false,
"default": "",
"comment": "",
"unsigned": false,
"auto_increment": false
},
"text": {
"name": "text",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
},
"indexes": {
"PRIMARY": {
"type": "primary",
"name": "PRIMARY",
"columns": [
"id"
],
"length": [
null
]
}
}
},
"core_rc_reports": {
"name": "core_rc_reports",
"columns": {
@@ -9915,6 +9966,30 @@
"zerofill": false,
"auto_increment": false,
"binary": false
},
"guest_name": {
"name": "guest_name",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
},
"guest_email": {
"name": "guest_email",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
},
"indexes": {
@@ -10025,7 +10100,7 @@
"allow_null": false,
"auto_increment": false,
"binary": false,
"comment": "1 = New report. 2 = Under Review. 3 = Complete.",
"comment": "1 = New report. 2 = Under Review. 3 = Complete. 4 = Closed.",
"decimals": null,
"default": "1",
"length": 0,
@@ -10035,7 +10110,8 @@
"values": [
"1",
"2",
"3"
"3",
"4"
],
"zerofill": false
},
+25
View File
@@ -1444,6 +1444,26 @@
"default": "7",
"report": "full"
},
{
"key": "report_capture_guest_details",
"default": "0",
"report": "full"
},
{
"key": "report_content_mandatory",
"default": "0",
"report": "none"
},
{
"key": "report_guest_details_name_mandatory",
"default": "0",
"report": "full"
},
{
"key": "report_guest_details_store_days",
"default": "365",
"report": "none"
},
{
"key": "reputation_can_self_vote",
"default": "",
@@ -1664,6 +1684,11 @@
"default": "1",
"report": "full"
},
{
"key": "seo_reduce_links",
"default": "1",
"report": "full"
},
{
"key": "setup_in_progress",
"default": "",
File diff suppressed because it is too large. Load diff
+2 -1
View File
@@ -278,5 +278,6 @@
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
"5000029": "5.0.0 Beta 3",
"5000030": "5.0.0 Beta 4"
}
@@ -12,19 +12,26 @@ namespace IPS\core\extensions\core\ModCp;
/* To prevent PHP errors (extending class does not exist) revealing path */
use ErrorException;
use IPS\Api\Exception;
use IPS\Application;
use IPS\Content\Controller;
use IPS\core\DeletionLog;
use IPS\core\Reports\Comment;
use IPS\core\Reports\Report;
use IPS\core\Reports\Types;
use IPS\DateTime;
use IPS\Db;
use IPS\Helpers\Form;
use IPS\Helpers\Form\Select;
use IPS\Helpers\Form\YesNo;
use IPS\Helpers\Table\Content;
use IPS\Http\Url;
use IPS\Member;
use IPS\Output;
use IPS\Request;
use IPS\Session;
use IPS\Settings;
use IPS\Theme;
use OutOfRangeException;
use UnderflowException;
@@ -150,6 +157,7 @@ class Reports extends Controller
$table->filters['filter_report_status_2'] = [ 'status=2' ];
$table->filters['filter_report_status_3'] = [ 'status=3' ];
$table->filters['filter_report_status_4'] = [ 'status=4' ];
$table->title = Member::loggedIn()->language()->addToStack( 'report_center_header' );
if ( Request::i()->isAjax() and isset( Request::i()->overview ) )
@@ -206,24 +214,12 @@ class Reports extends Controller
}
/* Setting status? */
if( isset( Request::i()->setStatus ) and in_array( Request::i()->setStatus, range( 1, 3 ) ) )
if( isset( Request::i()->setStatus ) and in_array( Request::i()->setStatus, range( 1, 4 ) ) )
{
Session::i()->csrfCheck();
$report->changeStatus( (int) Request::i()->setStatus );
$report->status = (int) Request::i()->setStatus;
$report->save();
/* Post a comment on the report */
$content = Member::loggedIn()->language()->addToStack( 'update_report_status_content', FALSE, array( 'sprintf' => array( Member::loggedIn()->language()->addToStack( 'report_status_' . $report->status ) ) ) );
Member::loggedIn()->language()->parseOutputForDisplay( $content );
$comment = Comment::create( $report, $content, true, null, null, Member::loggedIn(), new DateTime );
$comment->save();
/* And add to the moderator log */
Session::i()->modLog( 'modlog__action_update_report_status', array( $report->url()->__toString() => FALSE ) );
Output::i()->redirect( $report->url() );
\IPS\Output::i()->redirect( $report->url()->setQueryString( 'changed', '1' ) );
}
/* Deleting? */
@@ -341,6 +337,12 @@ class Reports extends Controller
}
else
{
if ( isset( Request::i()->changed ) )
{
/* Show a flash message */
Output::i()->inlineMessage = Member::loggedIn()->language()->addToStack( 'report_status_changed');
}
$sprintf = $item ? htmlspecialchars( $item->mapped('title'), ENT_DISALLOWED | ENT_QUOTES, 'UTF-8', FALSE ) : Member::loggedIn()->language()->addToStack('content_deleted');
Output::i()->title = Member::loggedIn()->language()->addToStack( 'modcp_reports_view', FALSE, array( 'sprintf' => array( $sprintf ) ) );
Output::i()->breadcrumb[] = array( Url::internal( 'app=core&module=modcp&controller=modcp&tab=reports', 'front', 'modcp_reports' ), Member::loggedIn()->language()->addToStack( 'modcp_reports' ) );
@@ -348,11 +350,138 @@ class Reports extends Controller
Output::i()->output = Theme::i()->getTemplate( 'modcp' )->report( $report, $comment, $item, $ref, $prevReport, $prevItem, $nextReport, $nextItem, $delLog );
}
}
/**
* Show the report center modal
*
* @return void
*/
public function reportCenterConfirmModal(): void
{
$id = intval( Request::i()->id );
try
{
$report = Report::load( $id );
}
catch( \OutOfRangeException $e )
{
Output::i()->error( 'node_error', '2S319/1', 404 );
}
$form = new Form( 'form', 'modal_author_notification_form_submit' );
$form->class .= 'ipsForm_vertical';
$form->addButton( 'cancel', 'link', $report->url() );
/* Get the optional notifications */
$notifications = [ 0 => 'modal_author_notification_none' ];
foreach( Report::getAuthorNotifications() as $notification )
{
$notifications[ $notification['id'] ] = $notification['title'];
}
$form->add( new Select( 'modal_author_notification', null, null, [ 'options' => $notifications ] ) );
/* Fix the language string */
Member::loggedIn()->language()->words['modal_author_notification'] = Member::loggedIn()->language()->addToStack('modal_author__notification', null, [ 'sprintf' => [ $report->author()->name ] ] );
if ( $values = $form->values() )
{
Session::i()->csrfCheck();
$report->changeStatus( (int) Request::i()->status, $values['modal_author_notification'] );
Output::i()->redirect( $report->url()->setQueryString( 'changed', '1' ) );
}
Output::i()->sendOutput( \IPS\Theme::i()->getTemplate( 'global', 'core', 'front' )->genericBlock( (string) $form, null, 'ipsPadding' ) );
}
/**
* Change Report Reason (report_type)
*
* @return void
* @throws ErrorException
* @throws Exception
*/
public function changeType(): void
{
/* Load the report and the main object */
try
{
$report = Db::i()->select( '*', 'core_rc_reports', [ 'id=?', Request::i()->id ] )->first();
$item = Report::loadAndCheckPerms( $report['rid'] );
}
catch ( \Exception $e )
{
Output::i()->error( 'node_error', '2C139/6', 404, '' );
}
/* Build form */
$form = new Form;
$options = array( Report::TYPE_MESSAGE => Member::loggedIn()->language()->addToStack('report_message_comment') );
foreach( Types::roots() as $type )
{
$options[ $type->id ] = $type->_title;
}
if ( count( $options ) > 1 )
{
$form->add( new Select( 'report_type', $report['report_type'], null, [ 'options' => $options ] ) );
$form->add( new YesNo( 'report_type_change_log', true, null ) );
}
$form->class .= 'ipsForm_vertical';
/* Handle submissions */
if ( $values = $form->values() )
{
/* Update the new reason */
Db::i()->update( 'core_rc_reports', array( 'report_type' => $values['report_type'] ), [ 'id=?', $report['id'] ] );
if ( ! empty( $values['report_type_change_log'] ) )
{
$old = Member::loggedIn()->language()->get('none');
$new = Member::loggedIn()->language()->get('none');
if ( $values['report_type'] )
{
$new = Types::load( $values['report_type'] )->_title;
}
if ( $report['report_type'] )
{
try
{
$old = Types::load( $report['report_type'] )->_title;
}
catch ( \OutOfRangeException $e )
{
Output::i()->error( 'node_error', '2C139/7', 403, '' );
}
}
if ( $report['report_type'] != $values['report_type'] )
{
$url = $item->url()->setQueryString( 'tab', 'reports' )->setFragment( 'report' . $report['id'] );
$content = Member::loggedIn()->language()->addToStack('report_type_changed', FALSE, array( 'sprintf' => array( $new, $old, $url, $report['id'] ) ) );
Member::loggedIn()->language()->parseOutputForDisplay( $content );
$content = str_replace( rtrim( Settings::i()->base_url, '/' ), '<___base_url___>', $content );
$comment = Comment::create( $item, $content, TRUE, NULL, NULL, Member::loggedIn(), new DateTime );
$comment->save();
}
}
Output::i()->redirect( $item->url() );
}
/* Display form */
Output::i()->output = $form->customTemplate( array( Theme::i()->getTemplate( 'forms', 'core' ), 'popupTemplate' ) );
}
/**
* Redirect to the original content for a report
*
* @return void
* @return void
* @throws Exception
*/
public function find() : void
{
@@ -362,7 +491,7 @@ class Reports extends Controller
}
catch ( OutOfRangeException $e )
{
Output::i()->error( 'node_error', '2C139/4', 404, '' );
Output::i()->error( 'node_error', '2C139/2', 404, '' );
}
$reportClass = $report->class;
@@ -401,8 +530,7 @@ class Reports extends Controller
{
$url = $url->setPage( 'page', $page );
}
Output::i()->redirect( $url->setFragment( 'comment-' . $comment->$commentIdColumn ) );
}
}
@@ -17,6 +17,7 @@ use IPS\Content;
use IPS\Content\Comment;
use IPS\Content\Item;
use IPS\core\Reports\Report;
use IPS\core\Reports\Types;
use IPS\core\Warnings\Warning;
use IPS\DateTime;
use IPS\Db;
@@ -137,7 +138,21 @@ class Moderation extends NotificationsAbstract
'disabled' => array(),
);
}
/* Do we have any report types, and can we report things? ? */
if ( Db::i()->select( 'COUNT(*)', 'core_automatic_moderation_types' )->first() and ( ! $member or $member->group['g_can_report'] ) )
{
$return['reports'] = [
'type' => 'standard',
'notificationTypes' => ['report_outcome'],
'title' => 'notifications__core_Moderation_reports',
'showTitle' => true,
'description' => 'notifications__core_Moderation_reports_desc',
'default' => ['email'],
'disabled' => [ 'push', 'inline' ],
];
}
return $return;
}
@@ -200,7 +215,53 @@ class Moderation extends NotificationsAbstract
return $return;
}
/**
* Parse notification: Report outcomes
*
* @param \IPS\Notification\Inline $notification The notification
* @param bool $htmlEscape TRUE to escape HTML in title
* @return array
* @code
return array(
'title' => "Mark has replied to A Topic", // The notification title
'url' => \IPS\Http\Url::internal( ... ), // The URL the notification should link to
'content' => "Lorem ipsum dolar sit", // [Optional] Any appropriate content. Do not format this like an email where the text
// explains what the notification is about - just include any appropriate content.
// For example, if the notification is about a post, set this as the body of the post.
'author' => \IPS\Member::load( 1 ), // [Optional] The user whose photo should be displayed for this notification
);
* @endcode
*/
public function parse_report_outcome( $notification, $htmlEscape=TRUE )
{
if ( ! $notification->item_sub or ! count( $notification->extra ) )
{
throw new \OutOfRangeException;
}
$reported = $notification->item_sub;
$item = ( $reported instanceof Item ) ? $reported : $reported->item();
try
{
$reportType = Types::load( $notification->extra['reportType'] );
$class = $item->class;
$url = $class::load( $item->content_id )->url();
}
catch( \UnderflowException )
{
throw new \OutOfRangeException;
}
return array(
'title' => Member::loggedIn()->language()->addToStack( 'notification__report_outcome', FALSE, array(
( $htmlEscape ? 'sprintf' : 'htmlsprintf' ) => array( $item->mapped('title'), $reportType->_title, Member::loggedIn()->language()->addToStack( 'report_status_' . $item->status ) ) )
),
'url' => $url,
'author' => Member::loggedIn(),
);
}
/**
* Parse notification: unapproved_content_bulk
*
@@ -58,6 +58,12 @@ class ConvertOpenTags extends QueueAbstract
$tags = array_slice( $data['tags'], $offset, REBUILD_SLOW );
foreach( $tags as $text )
{
/* Fail-safe */
if( empty( $text ) )
{
continue;
}
try
{
$tag = Tag::load( $text, 'tag_text' );
@@ -57,6 +57,11 @@ class UpdateTaggedItems extends QueueAbstract
*/
public function run( array &$data, int $offset ): int
{
if( empty( $data['tag'] ) )
{
throw new QueueOutOfRangeException;
}
$rows = iterator_to_array(
Db::i()->select( '*', 'core_tags', [ 'tag_text=?', $data['tag'] ], 'tag_added', [ $offset, REBUILD_SLOW ] )
);
+1 -1
View File
@@ -7,7 +7,7 @@ use IPS\Theme;
define('REPORT_EXCEPTIONS', TRUE);
require_once '../../../../init.php';
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
if ( \IPS\IN_DEV !== true )
{
+1 -1
View File
@@ -17,7 +17,7 @@ use IPS\Request;
define('REPORT_EXCEPTIONS', TRUE);
require_once '../../../../init.php';
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
$langId = intval( Request::i()->langId );
$_lang = array();
@@ -0,0 +1,78 @@
var v2=Object.defineProperty;var w2=(e,t,r)=>t in e?v2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Qh=(e,t,r)=>(w2(e,typeof t!="symbol"?t+"":t,r),r);const y2="modulepreload",_2=function(e){return"/"+e},qh={},S2=function(t,r,l){if(!r||r.length===0)return t();const o=document.getElementsByTagName("link");return Promise.all(r.map(s=>{if(s=_2(s),s in qh)return;qh[s]=!0;const c=s.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(!!l)for(let y=o.length-1;y>=0;y--){const w=o[y];if(w.href===s&&(!c||w.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${f}`))return;const m=document.createElement("link");if(m.rel=c?"stylesheet":y2,c||(m.as="script",m.crossOrigin=""),m.href=s,document.head.appendChild(m),c)return new Promise((y,w)=>{m.addEventListener("load",y),m.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=s,window.dispatchEvent(c),!c.defaultPrevented)throw s})};var fl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function x2(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var o0={exports:{}},ss={},u0={exports:{}},ge={};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var no=Symbol.for("react.element"),C2=Symbol.for("react.portal"),E2=Symbol.for("react.fragment"),k2=Symbol.for("react.strict_mode"),L2=Symbol.for("react.profiler"),I2=Symbol.for("react.provider"),R2=Symbol.for("react.context"),T2=Symbol.for("react.forward_ref"),A2=Symbol.for("react.suspense"),O2=Symbol.for("react.memo"),P2=Symbol.for("react.lazy"),Kh=Symbol.iterator;function N2(e){return e===null||typeof e!="object"?null:(e=Kh&&e[Kh]||e["@@iterator"],typeof e=="function"?e:null)}var s0={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},a0=Object.assign,c0={};function $i(e,t,r){this.props=e,this.context=t,this.refs=c0,this.updater=r||s0}$i.prototype.isReactComponent={};$i.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};$i.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function f0(){}f0.prototype=$i.prototype;function mf(e,t,r){this.props=e,this.context=t,this.refs=c0,this.updater=r||s0}var vf=mf.prototype=new f0;vf.constructor=mf;a0(vf,$i.prototype);vf.isPureReactComponent=!0;var Yh=Array.isArray,d0=Object.prototype.hasOwnProperty,wf={current:null},p0={key:!0,ref:!0,__self:!0,__source:!0};function h0(e,t,r){var l,o={},s=null,c=null;if(t!=null)for(l in t.ref!==void 0&&(c=t.ref),t.key!==void 0&&(s=""+t.key),t)d0.call(t,l)&&!p0.hasOwnProperty(l)&&(o[l]=t[l]);var f=arguments.length-2;if(f===1)o.children=r;else if(1<f){for(var d=Array(f),m=0;m<f;m++)d[m]=arguments[m+2];o.children=d}if(e&&e.defaultProps)for(l in f=e.defaultProps,f)o[l]===void 0&&(o[l]=f[l]);return{$$typeof:no,type:e,key:s,ref:c,props:o,_owner:wf.current}}function M2(e,t){return{$$typeof:no,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function yf(e){return typeof e=="object"&&e!==null&&e.$$typeof===no}function B2(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Zh=/\/+/g;function Ga(e,t){return typeof e=="object"&&e!==null&&e.key!=null?B2(""+e.key):t.toString(36)}function Su(e,t,r,l,o){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case no:case C2:c=!0}}if(c)return c=e,o=o(c),e=l===""?"."+Ga(c,0):l,Yh(o)?(r="",e!=null&&(r=e.replace(Zh,"$&/")+"/"),Su(o,t,r,"",function(m){return m})):o!=null&&(yf(o)&&(o=M2(o,r+(!o.key||c&&c.key===o.key?"":(""+o.key).replace(Zh,"$&/")+"/")+e)),t.push(o)),1;if(c=0,l=l===""?".":l+":",Yh(e))for(var f=0;f<e.length;f++){s=e[f];var d=l+Ga(s,f);c+=Su(s,t,r,d,o)}else if(d=N2(e),typeof d=="function")for(e=d.call(e),f=0;!(s=e.next()).done;)s=s.value,d=l+Ga(s,f++),c+=Su(s,t,r,d,o);else if(s==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function nu(e,t,r){if(e==null)return e;var l=[],o=0;return Su(e,l,"","",function(s){return t.call(r,s,o++)}),l}function W2(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var wt={current:null},xu={transition:null},z2={ReactCurrentDispatcher:wt,ReactCurrentBatchConfig:xu,ReactCurrentOwner:wf};ge.Children={map:nu,forEach:function(e,t,r){nu(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return nu(e,function(){t++}),t},toArray:function(e){return nu(e,function(t){return t})||[]},only:function(e){if(!yf(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ge.Component=$i;ge.Fragment=E2;ge.Profiler=L2;ge.PureComponent=mf;ge.StrictMode=k2;ge.Suspense=A2;ge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=z2;ge.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var l=a0({},e.props),o=e.key,s=e.ref,c=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,c=wf.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var f=e.type.defaultProps;for(d in t)d0.call(t,d)&&!p0.hasOwnProperty(d)&&(l[d]=t[d]===void 0&&f!==void 0?f[d]:t[d])}var d=arguments.length-2;if(d===1)l.children=r;else if(1<d){f=Array(d);for(var m=0;m<d;m++)f[m]=arguments[m+2];l.children=f}return{$$typeof:no,type:e.type,key:o,ref:s,props:l,_owner:c}};ge.createContext=function(e){return e={$$typeof:R2,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:I2,_conLine truncated
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var $2=X,F2=Symbol.for("react.element"),U2=Symbol.for("react.fragment"),j2=Object.prototype.hasOwnProperty,H2=$2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,V2={key:!0,ref:!0,__self:!0,__source:!0};function g0(e,t,r){var l,o={},s=null,c=null;r!==void 0&&(s=""+r),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(c=t.ref);for(l in t)j2.call(t,l)&&!V2.hasOwnProperty(l)&&(o[l]=t[l]);if(e&&e.defaultProps)for(l in t=e.defaultProps,t)o[l]===void 0&&(o[l]=t[l]);return{$$typeof:F2,type:e,key:s,ref:c,props:o,_owner:H2.current}}ss.Fragment=U2;ss.jsx=g0;ss.jsxs=g0;o0.exports=ss;var T=o0.exports,yc={},m0={exports:{}},Ft={},v0={exports:{}},w0={};/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/(function(e){function t($,Q){var G=$.length;$.push(Q);e:for(;0<G;){var Z=G-1>>>1,we=$[Z];if(0<o(we,Q))$[Z]=Q,$[G]=we,G=Z;else break e}}function r($){return $.length===0?null:$[0]}function l($){if($.length===0)return null;var Q=$[0],G=$.pop();if(G!==Q){$[0]=G;e:for(var Z=0,we=$.length,He=we>>>1;Z<He;){var Ee=2*(Z+1)-1,ft=$[Ee],dt=Ee+1,Tt=$[dt];if(0>o(ft,G))dt<we&&0>o(Tt,ft)?($[Z]=Tt,$[dt]=G,Z=dt):($[Z]=ft,$[Ee]=G,Z=Ee);else if(dt<we&&0>o(Tt,G))$[Z]=Tt,$[dt]=G,Z=dt;else break e}}return Q}function o($,Q){var G=$.sortIndex-Q.sortIndex;return G!==0?G:$.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var c=Date,f=c.now();e.unstable_now=function(){return c.now()-f}}var d=[],m=[],y=1,w=null,x=3,k=!1,O=!1,I=!1,P=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C($){for(var Q=r(m);Q!==null;){if(Q.callback===null)l(m);else if(Q.startTime<=$)l(m),Q.sortIndex=Q.expirationTime,t(d,Q);else break;Q=r(m)}}function M($){if(I=!1,C($),!O)if(r(d)!==null)O=!0,$e(z);else{var Q=r(m);Q!==null&&le(M,Q.startTime-$)}}function z($,Q){O=!1,I&&(I=!1,v(B),B=-1),k=!0;var G=x;try{for(C(Q),w=r(d);w!==null&&(!(w.expirationTime>Q)||$&&!ee());){var Z=w.callback;if(typeof Z=="function"){w.callback=null,x=w.priorityLevel;var we=Z(w.expirationTime<=Q);Q=e.unstable_now(),typeof we=="function"?w.callback=we:w===r(d)&&l(d),C(Q)}else l(d);w=r(d)}if(w!==null)var He=!0;else{var Ee=r(m);Ee!==null&&le(M,Ee.startTime-Q),He=!1}return He}finally{w=null,x=G,k=!1}}var U=!1,A=null,B=-1,b=5,H=-1;function ee(){return!(e.unstable_now()-H<b)}function ve(){if(A!==null){var $=e.unstable_now();H=$;var Q=!0;try{Q=A(!0,$)}finally{Q?ie():(U=!1,A=null)}}else U=!1}var ie;if(typeof _=="function")ie=function(){_(ve)};else if(typeof MessageChannel<"u"){var ce=new MessageChannel,se=ce.port2;ce.port1.onmessage=ve,ie=function(){se.postMessage(null)}}else ie=function(){P(ve,0)};function $e($){A=$,U||(U=!0,ie())}function le($,Q){B=P(function(){$(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_continueExecution=function(){O||k||(O=!0,$e(z))},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return x},e.unstable_getFirstCallbackNode=function(){return r(d)},e.unstable_next=function($){switch(x){case 1:case 2:case 3:var Q=3;break;default:Q=x}var G=x;x=Q;try{return $()}finally{x=G}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function($,Q){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var G=x;x=$;try{return Q()}finally{x=G}},e.unstable_scheduleCallback=function($,Q,G){var Z=e.unstable_now();switch(typeof G=="object"&&G!==null?(G=G.delay,G=typeof G=="number"&&0<G?Z+G:Z):G=Z,$){case 1:var we=-1;break;case 2:we=250;break;case 5:we=1073741823;break;case 4:we=1e4;break;default:we=5e3}return we=G+we,$={id:y++,callback:Q,priorityLevel:$,startTime:G,expirationTime:we,sortIndex:-1},G>Z?($.sortIndex=G,t(m,$),r(d)===null&&$===r(m)&&(I?(v(B),B=-1):I=!0,le(M,G-Z))):($.sortIndex=we,t(d,$),O||k||(O=!0,$e(z))),$},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function($){var Q=x;return function(){var G=x;x=Q;try{return $.apply(this,arguments)}finally{x=G}}}})(w0);v0.exports=w0;var G2=v0.exports;/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var y0=X,$t=G2;function V(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var _0=new Set,zl={};function qr(e,t){Pi(e,t),Pi(e+"Capture",t)}function Pi(e,t){for(zl[e]=t,e=0;e<t.length;e++)_0.add(t[e])}var Un=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_c=Object.prototype.hasOwnProperty,Q2=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Xh={},Jh={};function q2(e){return _c.call(Jh,e)?!0:_c.call(Xh,e)?!1:Q2.test(e)?Jh[e]=!0:(Xh[e]=!0,!1)}function K2(e,t,r,l){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return l?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Y2(e,t,r,l){if(t===null||typeof t>"u"||K2(e,t,r,l))return!0;if(l)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function yt(e,t,r,l,o,s,c){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=l,this.attributeNamespace=o,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=c}var it={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){it[e]=new yt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];it[t]=new yt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){it[e]=new yt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){it[e]=new yt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){it[e]=new yt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){it[e]=new yt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){it[e]=new yt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){it[e]=new yt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){it[e]=new yt(e,5,!1,e.toLowerCase(),null,!1,!1)});var _f=/[\-:]([a-z])/g;function Sf(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(_f,Sf);it[t]=new yt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(_f,Sf);it[t]=new yt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(_f,Sf);it[t]=new yt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){it[e]=new yt(e,1,!1,e.toLowerCase(),null,!1,!1)});it.xlinkHref=new yt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){it[e]=new yt(e,1,!1,e.toLowerCase(),null,!0,!0)});function xf(e,t,r,l){var o=it.hasOwnProperty(t)?it[t]:null;(o!==null?o.type!==0:l||!(2<t.length)||t[0]!=="o"&&t[0]!==" Line truncated
`+Qa+e}var qa=!1;function Ka(e,t){if(!e||qa)return"";qa=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(m){var l=m}Reflect.construct(e,[],t)}else{try{t.call()}catch(m){l=m}e.call(t.prototype)}else{try{throw Error()}catch(m){l=m}e()}}catch(m){if(m&&l&&typeof m.stack=="string"){for(var o=m.stack.split(`
`),s=l.stack.split(`
`),c=o.length-1,f=s.length-1;1<=c&&0<=f&&o[c]!==s[f];)f--;for(;1<=c&&0<=f;c--,f--)if(o[c]!==s[f]){if(c!==1||f!==1)do if(c--,f--,0>f||o[c]!==s[f]){var d=`
`+o[c].replace(" at new "," at ");return e.displayName&&d.includes("<anonymous>")&&(d=d.replace("<anonymous>",e.displayName)),d}while(1<=c&&0<=f);break}}}finally{qa=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Cl(e):""}function Z2(e){switch(e.tag){case 5:return Cl(e.type);case 16:return Cl("Lazy");case 13:return Cl("Suspense");case 19:return Cl("SuspenseList");case 0:case 2:case 15:return e=Ka(e.type,!1),e;case 11:return e=Ka(e.type.render,!1),e;case 1:return e=Ka(e.type,!0),e;default:return""}}function Ec(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case gi:return"Fragment";case hi:return"Portal";case Sc:return"Profiler";case Cf:return"StrictMode";case xc:return"Suspense";case Cc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case x0:return(e.displayName||"Context")+".Consumer";case S0:return(e._context.displayName||"Context")+".Provider";case Ef:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case kf:return t=e.displayName||null,t!==null?t:Ec(e.type)||"Memo";case rr:t=e._payload,e=e._init;try{return Ec(e(t))}catch{}}return null}function X2(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ec(t);case 8:return t===Cf?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function _r(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function E0(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function J2(e){var t=E0(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),l=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var o=r.get,s=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(c){l=""+c,s.call(this,c)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return l},setValue:function(c){l=""+c},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function iu(e){e._valueTracker||(e._valueTracker=J2(e))}function k0(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),l="";return e&&(l=E0(e)?e.checked?"true":"false":e.value),e=l,e!==r?(t.setValue(e),!0):!1}function Nu(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function kc(e,t){var r=t.checked;return We({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function eg(e,t){var r=t.defaultValue==null?"":t.defaultValue,l=t.checked!=null?t.checked:t.defaultChecked;r=_r(t.value!=null?t.value:r),e._wrapperState={initialChecked:l,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function L0(e,t){t=t.checked,t!=null&&xf(e,"checked",t,!1)}function Lc(e,t){L0(e,t);var r=_r(t.value),l=t.type;if(r!=null)l==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(l==="submit"||l==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ic(e,t.type,r):t.hasOwnProperty("defaultValue")&&Ic(e,t.type,_r(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function tg(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var l=t.type;if(!(l!=="submit"&&l!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Ic(e,t,r){(t!=="number"||Nu(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var El=Array.isArray;function Li(e,t,r,l){if(e=e.options,t){t={};for(var o=0;o<r.length;o++)t["$"+r[o]]=!0;for(r=0;r<e.length;r++)o=t.hasOwnProperty("$"+e[r].value),e[r].selected!==o&&(e[r].selected=o),o&&l&&(e[r].defaultSelected=!0)}else{for(r=""+_r(r),t=null,o=0;o<e.length;o++){if(e[o].value===r){e[o].selected=!0,l&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function Rc(e,t){if(t.dan Line truncated
`).replace(sk,"")}function du(e,t,r){if(t=Eg(t),Eg(e)!==t&&r)throw Error(V(425))}function Uu(){}var Uc=null,jc=null;function Hc(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Vc=typeof setTimeout=="function"?setTimeout:void 0,ak=typeof clearTimeout=="function"?clearTimeout:void 0,kg=typeof Promise=="function"?Promise:void 0,ck=typeof queueMicrotask=="function"?queueMicrotask:typeof kg<"u"?function(e){return kg.resolve(null).then(e).catch(fk)}:Vc;function fk(e){setTimeout(function(){throw e})}function uc(e,t){var r=t,l=0;do{var o=r.nextSibling;if(e.removeChild(r),o&&o.nodeType===8)if(r=o.data,r==="/$"){if(l===0){e.removeChild(o),jl(t);return}l--}else r!=="$"&&r!=="$?"&&r!=="$!"||l++;r=o}while(r);jl(t)}function pr(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Lg(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="$"||r==="$!"||r==="$?"){if(t===0)return e;t--}else r==="/$"&&t++}e=e.previousSibling}return null}var Ui=Math.random().toString(36).slice(2),xn="__reactFiber$"+Ui,ql="__reactProps$"+Ui,jn="__reactContainer$"+Ui,Gc="__reactEvents$"+Ui,dk="__reactListeners$"+Ui,pk="__reactHandles$"+Ui;function zr(e){var t=e[xn];if(t)return t;for(var r=e.parentNode;r;){if(t=r[jn]||r[xn]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=Lg(e);e!==null;){if(r=e[xn])return r;e=Lg(e)}return t}e=r,r=e.parentNode}return null}function lo(e){return e=e[xn]||e[jn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function yi(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(V(33))}function ps(e){return e[ql]||null}var Qc=[],_i=-1;function Er(e){return{current:e}}function Ae(e){0>_i||(e.current=Qc[_i],Qc[_i]=null,_i--)}function Ie(e,t){_i++,Qc[_i]=e.current,e.current=t}var Sr={},ct=Er(Sr),Lt=Er(!1),jr=Sr;function Ni(e,t){var r=e.type.contextTypes;if(!r)return Sr;var l=e.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===t)return l.__reactInternalMemoizedMaskedChildContext;var o={},s;for(s in r)o[s]=t[s];return l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function It(e){return e=e.childContextTypes,e!=null}function ju(){Ae(Lt),Ae(ct)}function Ig(e,t,r){if(ct.current!==Sr)throw Error(V(168));Ie(ct,t),Ie(Lt,r)}function hm(e,t,r){var l=e.stateNode;if(t=t.childContextTypes,typeof l.getChildContext!="function")return r;l=l.getChildContext();for(var o in l)if(!(o in t))throw Error(V(108,X2(e)||"Unknown",o));return We({},r,l)}function Hu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Sr,jr=ct.current,Ie(ct,e),Ie(Lt,Lt.current),!0}function Rg(e,t,r){var l=e.stateNode;if(!l)throw Error(V(169));r?(e=hm(e,t,jr),l.__reactInternalMemoizedMergedChildContext=e,Ae(Lt),Ae(ct),Ie(ct,e)):Ae(Lt),Ie(Lt,r)}var zn=null,hs=!1,sc=!1;function gm(e){zn===null?zn=[e]:zn.push(e)}function hk(e){hs=!0,gm(e)}function kr(){if(!sc&&zn!==null){sc=!0;var e=0,t=Ce;try{var r=zn;for(Ce=1;e<r.length;e++){var l=r[e];do l=l(!0);while(l!==null)}zn=null,hs=!1}catch(o){throw zn!==null&&(zn=zn.slice(e+1)),F0(If,kr),o}finally{Ce=t,sc=!1}}return null}var Si=[],xi=0,Vu=null,Gu=0,Zt=[],Xt=0,Hr=null,Dn=1,$n="";function Br(e,t){Si[xi++]=Gu,Si[xi++]=Vu,Vu=e,Gu=t}function mm(e,t,r){Zt[Xt++]=Dn,Zt[Xt++]=$n,Zt[Xt++]=Hr,Hr=e;var l=Dn;e=$n;var o=32-hn(l)-1;l&=~(1<<o),r+=1;var s=32-hn(t)+o;if(30<s){var c=o-o%5;s=(l&(1<<c)-1).toString(32),l>>=c,o-=c,Dn=1<<32-hn(t)+o|r<<o|l,$n=s+e}else Dn=1<<s|r<<o|l,$n=e}function Wf(e){e.return!==null&&(Br(e,1),mm(e,1,0))}function zf(e){for(;e===Vu;)Vu=Si[--xi],Si[xi]=null,Gu=Si[--xi],Si[xi]=null;for(;e===Hr;)Hr=Zt[--Xt],Zt[Xt]=null,$n=Zt[--Xt],Zt[Xt]=null,Dn=Zt[--Xt],Zt[Xt]=null}var Dt=null,zt=null,Pe=!1,pn=null;function vm(e,t){var r=Jt(5,null,null,0);r.elementType="DELETED",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function Tg(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Dt=e,zt=pr(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Dt=e,zt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=Hr!==null?{id:Dn,overflow:$n}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=Jt(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,Dt=e,zt=null,!0):!1;default:return!1}}function qc(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Kc(e){if(Pe){var t=zt;if(t){var r=t;if(!Tg(e,t)){if(qc(e))throw Error(V(418));t=pr(r.nextSibling);var l=Dt;t&&Tg(e,t)?vm(l,r):(e.flags=e.flags&-4097|2,Pe=!1,Dt=e)}}else{if(qc(e))throw Error(V(418));e.flags=e.flags&-4097|2,Pe=!1,Dt=e}}}function Ag(e){for(e=e Line truncated
Error generating stack: `+s.message+`
`+s.stack}return{value:e,source:t,stack:o,digest:null}}function pc(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function Jc(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Ck=typeof WeakMap=="function"?WeakMap:Map;function Gm(e,t,r){r=Fn(-1,r),r.tag=3,r.payload={element:null};var l=t.value;return r.callback=function(){bu||(bu=!0,af=l),Jc(e,t)},r}function Qm(e,t,r){r=Fn(-1,r),r.tag=3;var l=e.type.getDerivedStateFromError;if(typeof l=="function"){var o=t.value;r.payload=function(){return l(o)},r.callback=function(){Jc(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(r.callback=function(){Jc(e,t),typeof l!="function"&&(gr===null?gr=new Set([this]):gr.add(this));var c=t.stack;this.componentDidCatch(t.value,{componentStack:c!==null?c:""})}),r}function Dg(e,t,r){var l=e.pingCache;if(l===null){l=e.pingCache=new Ck;var o=new Set;l.set(t,o)}else o=l.get(t),o===void 0&&(o=new Set,l.set(t,o));o.has(r)||(o.add(r),e=zk.bind(null,e,t,r),t.then(e,e))}function $g(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Fg(e,t,r,l,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Fn(-1,1),t.tag=2,hr(r,t,1))),r.lanes|=1),e)}var Ek=Gn.ReactCurrentOwner,kt=!1;function mt(e,t,r,l){t.child=e===null?Em(t,null,r,l):Bi(t,e.child,r,l)}function Ug(e,t,r,l,o){r=r.render;var s=t.ref;return Ai(t,o),l=Kf(e,t,r,l,s,o),r=Yf(),e!==null&&!kt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vn(e,t,o)):(Pe&&r&&Wf(t),t.flags|=1,mt(e,t,l,o),t.child)}function jg(e,t,r,l,o){if(e===null){var s=r.type;return typeof s=="function"&&!ld(s)&&s.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=s,qm(e,t,s,l,o)):(e=Pu(r.type,null,l,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&o)){var c=s.memoizedProps;if(r=r.compare,r=r!==null?r:Vl,r(c,l)&&e.ref===t.ref)return Vn(e,t,o)}return t.flags|=1,e=vr(s,l),e.ref=t.ref,e.return=t,t.child=e}function qm(e,t,r,l,o){if(e!==null){var s=e.memoizedProps;if(Vl(s,l)&&e.ref===t.ref)if(kt=!1,t.pendingProps=l=s,(e.lanes&o)!==0)e.flags&131072&&(kt=!0);else return t.lanes=e.lanes,Vn(e,t,o)}return bc(e,t,r,l,o)}function Km(e,t,r){var l=t.pendingProps,o=l.children,s=e!==null?e.memoizedState:null;if(l.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ie(ki,Wt),Wt|=r;else{if(!(r&1073741824))return e=s!==null?s.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ie(ki,Wt),Wt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},l=s!==null?s.baseLanes:r,Ie(ki,Wt),Wt|=l}else s!==null?(l=s.baseLanes|r,t.memoizedState=null):l=r,Ie(ki,Wt),Wt|=l;return mt(e,t,o,r),t.child}function Ym(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function bc(e,t,r,l,o){var s=It(r)?jr:ct.current;return s=Ni(t,s),Ai(t,o),r=Kf(e,t,r,l,s,o),l=Yf(),e!==null&&!kt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vn(e,t,o)):(Pe&&l&&Wf(t),t.flags|=1,mt(e,t,r,o),t.child)}function Hg(e,t,r,l,o){if(It(r)){var s=!0;Hu(t)}else s=!1;if(Ai(t,o),t.stateNode===null)Tu(e,t),xm(t,r,l),Xc(t,r,l,o),l=!0;else if(e===null){var c=t.stateNode,f=t.memoizedProps;c.props=f;var d=c.context,m=r.contextType;typeof m=="object"&&m!==null?m=en(m):(m=It(r)?jr:ct.current,m=Ni(t,m));var y=r.getDerivedStateFromProps,w=typeof y=="function"||typeof c.getSnapshotBeforeUpdate=="function";w||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(f!==l||d!==m)&&Mg(t,c,l,m),ir=!1;var x=t.memoizedState;c.state=x,Ku(t,l,c,o),d=t.memoizedState,f!==l||x!==d||Lt.current||ir?(typeof y=="function"&&(Zc(t,r,y,l),d=t.memoizedState),(f=ir||Ng(t,r,f,l,x,d,m))?(w||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(t.flags|=4194308)):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=l,t.memoizedState=d),c.props=l,c.state=d,c.context=m,l=f):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),l=!1)}else{c=t.stateNode,_m(e,t),f=t.memoizedProps,m=t.type===t.elementType?f:fn(t.type,f),c.props=m,w=t.pendingProps,x=c.context,d=r.contextType,typeof d=="object"&&d!==null?d=en(d):(d=It(r)?jr:ct.current,d=Ni(t,d));var k=r.getDerivedStateFromProps;(y=typeof k=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(f!==w||x!==d)&&Mg(t,c,l,d),ir=!1,x=t.memoizedState,c.state=x,Ku(t,l,c,o);var O=t.memoizedS Line truncated
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/rs.exports;(function(e,t){(function(){var r,l="4.17.21",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",f="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",m=500,y="__lodash_placeholder__",w=1,x=2,k=4,O=1,I=2,P=1,v=2,_=4,C=8,M=16,z=32,U=64,A=128,B=256,b=512,H=30,ee="...",ve=800,ie=16,ce=1,se=2,$e=3,le=1/0,$=9007199254740991,Q=17976931348623157e292,G=0/0,Z=4294967295,we=Z-1,He=Z>>>1,Ee=[["ary",A],["bind",P],["bindKey",v],["curry",C],["curryRight",M],["flip",b],["partial",z],["partialRight",U],["rearg",B]],ft="[object Arguments]",dt="[object Array]",Tt="[object AsyncFunction]",Hi="[object Boolean]",Vi="[object Date]",Nv="[object DOMException]",co="[object Error]",fo="[object Function]",gd="[object GeneratorFunction]",nn="[object Map]",Gi="[object Number]",Mv="[object Null]",Ln="[object Object]",md="[object Promise]",Bv="[object Proxy]",Qi="[object RegExp]",rn="[object Set]",qi="[object String]",po="[object Symbol]",Wv="[object Undefined]",Ki="[object WeakMap]",zv="[object WeakSet]",Yi="[object ArrayBuffer]",Zr="[object DataView]",Es="[object Float32Array]",ks="[object Float64Array]",Ls="[object Int8Array]",Is="[object Int16Array]",Rs="[object Int32Array]",Ts="[object Uint8Array]",As="[object Uint8ClampedArray]",Os="[object Uint16Array]",Ps="[object Uint32Array]",Dv=/\b__p \+= '';/g,$v=/\b(__p \+=) '' \+/g,Fv=/(__e\(.*?\)|\b__t\)) \+\n'';/g,vd=/&(?:amp|lt|gt|quot|#39);/g,wd=/[&<>"']/g,Uv=RegExp(vd.source),jv=RegExp(wd.source),Hv=/<%-([\s\S]+?)%>/g,Vv=/<%([\s\S]+?)%>/g,yd=/<%=([\s\S]+?)%>/g,Gv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Qv=/^\w*$/,qv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ns=/[\\^$.*+?()[\]{}|]/g,Kv=RegExp(Ns.source),Ms=/^\s+/,Yv=/\s/,Zv=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xv=/\{\n\/\* \[wrapped with (.+)\] \*/,Jv=/,? & /,bv=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,e1=/[()=,{}\[\]\/\s]/,t1=/\\(\\)?/g,n1=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_d=/\w*$/,r1=/^[-+]0x[0-9a-f]+$/i,i1=/^0b[01]+$/i,l1=/^\[object .+?Constructor\]$/,o1=/^0o[0-7]+$/i,u1=/^(?:0|[1-9]\d*)$/,s1=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ho=/($^)/,a1=/['\n\r\u2028\u2029\\]/g,go="\\ud800-\\udfff",c1="\\u0300-\\u036f",f1="\\ufe20-\\ufe2f",d1="\\u20d0-\\u20ff",Sd=c1+f1+d1,xd="\\u2700-\\u27bf",Cd="a-z\\xdf-\\xf6\\xf8-\\xff",p1="\\xac\\xb1\\xd7\\xf7",h1="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",g1="\\u2000-\\u206f",m1=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ed="A-Z\\xc0-\\xd6\\xd8-\\xde",kd="\\ufe0e\\ufe0f",Ld=p1+h1+g1+m1,Bs="['’]",v1="["+go+"]",Id="["+Ld+"]",mo="["+Sd+"]",Rd="\\d+",w1="["+xd+"]",Td="["+Cd+"]",Ad="[^"+go+Ld+Rd+xd+Cd+Ed+"]",Ws="\\ud83c[\\udffb-\\udfff]",y1="(?:"+mo+"|"+Ws+")",Od="[^"+go+"]",zs="(?:\\ud83c[\\udde6-\\uddff]){2}",Ds="[\\ud800-\\udbff][\\udc00-\\udfff]",Xr="["+Ed+"]",Pd="\\u200d",Nd="(?:"+Td+"|"+Ad+")",_1="(?:"+Xr+"|"+Ad+")",Md="(?:"+Bs+"(?:d|ll|m|re|s|t|ve))?",Bd="(?:"+Bs+"(?:D|LL|M|RE|S|T|VE))?",Wd=y1+"?",zd="["+kd+"]?",S1="(?:"+Pd+"(?:"+[Od,zs,Ds].join("|")+")"+zd+Wd+")*",x1="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",C1="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Dd=zd+Wd+S1,E1="(?:"+[w1,zs,Ds].join("|")+")"+Dd,k1="(?:"+[Od+mo+"?",mo,zs,Ds,v1].join("|")+")",L1=RegExp(Bs,"g"),I1=RegExp(mo,"g"),$s=RegExp(Ws+"(?="+Ws+")|"+k1+Dd,"g"),R1=RegExp([Xr+"?"+Td+"+"+Md+"(?="+[Id,Xr,"$"].join("|")+")",_1+"+"+Bd+"(?="+[Id,Xr+Nd,"$"].join("|")+")",Xr+"?"+Nd+"+"+Md,Xr+"+"+Bd,C1,x1,Rd,E1].join("|"),"g"),T1=RegExp("["+Pd+go+Sd+kd+"]"),A1=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,O1=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],P1=-1,Re={};Re[Es]=Re[ks]=Re[Ls]=Re[Is]=Re[Rs]=Re[Ts]=Re[As]=Re[Os]=Re[Ps]=!0,Re[ft]=Re[dt]=Re[Yi]=Re[Hi]=Re[Zr]=Re[Vi]=Re[co]=Re[fo]=Re[nn]=Re[Gi]=Re[Ln]=Re[Qi]=Re[rn]=Re[qi]=Re[Ki]=!1;var Le={};Le[ft]=Le[dt]=Le[Yi]=Le[Zr]=Le[Hi]=Le[Vi]=Le[Es]=Le[ks]=Le[Ls]=Le[Is]=Le[Rs]=Le[nn]=Le[Gi]=Le[Ln]=Le[Qi]=Le[rn]=Le[qi]=Le[po]=Le[Ts]=Le[As]=Le[Os]=Le[Ps]=!0,Le[co]=Le[fo]=Le[Ki]=!1;var N1={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",Line truncated
/* [wrapped with `+i+`] */
`)}function Yy(n){return ue(n)||Mr(n)||!!(up&&n&&n[up])}function Pn(n,i){var u=typeof n;return i=i??$,!!i&&(u=="number"||u!="symbol"&&u1.test(n))&&n>-1&&n%1==0&&n<i}function ht(n,i,u){if(!Ne(u))return!1;var a=typeof i;return(a=="number"?St(u)&&Pn(i,u.length):a=="string"&&i in u)?un(u[i],n):!1}function La(n,i){if(ue(n))return!1;var u=typeof n;return u=="number"||u=="symbol"||u=="boolean"||n==null||Nt(n)?!0:Qv.test(n)||!Gv.test(n)||i!=null&&n in ke(i)}function Zy(n){var i=typeof n;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?n!=="__proto__":n===null}function Ia(n){var i=Go(n),u=h[i];if(typeof u!="function"||!(i in he.prototype))return!1;if(n===u)return!0;var a=Ca(u);return!!a&&n===a[0]}function Xy(n){return!!rp&&rp in n}var Jy=So?Nn:Va;function sl(n){var i=n&&n.constructor,u=typeof i=="function"&&i.prototype||ni;return n===u}function rh(n){return n===n&&!Ne(n)}function ih(n,i){return function(u){return u==null?!1:u[n]===i&&(i!==r||n in ke(u))}}function by(n){var i=Xo(n,function(a){return u.size===m&&u.clear(),a}),u=i.cache;return i}function e_(n,i){var u=n[1],a=i[1],p=u|a,g=p<(P|v|A),S=a==A&&u==C||a==A&&u==B&&n[7].length<=i[8]||a==(A|B)&&i[7].length<=i[8]&&u==C;if(!(g||S))return n;a&P&&(n[2]=i[2],p|=u&P?0:_);var E=i[3];if(E){var R=n[3];n[3]=R?Fp(R,E,i[4]):E,n[4]=R?Yn(n[3],y):i[4]}return E=i[5],E&&(R=n[5],n[5]=R?Up(R,E,i[6]):E,n[6]=R?Yn(n[5],y):i[6]),E=i[7],E&&(n[7]=E),a&A&&(n[8]=n[8]==null?i[8]:lt(n[8],i[8])),n[9]==null&&(n[9]=i[9]),n[0]=i[0],n[1]=p,n}function t_(n){var i=[];if(n!=null)for(var u in ke(n))i.push(u);return i}function n_(n){return Co.call(n)}function lh(n,i,u){return i=Qe(i===r?n.length-1:i,0),function(){for(var a=arguments,p=-1,g=Qe(a.length-i,0),S=N(g);++p<g;)S[p]=a[i+p];p=-1;for(var E=N(i+1);++p<i;)E[p]=a[p];return E[i]=u(S),At(n,this,E)}}function oh(n,i){return i.length<2?n:Or(n,qt(i,0,-1))}function r_(n,i){for(var u=n.length,a=lt(i.length,u),p=_t(n);a--;){var g=i[a];n[a]=Pn(g,u)?p[g]:r}return n}function Ra(n,i){if(!(i==="constructor"&&typeof n[i]=="function")&&i!="__proto__")return n[i]}var uh=ah(Ap),al=ww||function(n,i){return be.setTimeout(n,i)},Ta=ah(Ly);function sh(n,i,u){var a=i+"";return Ta(n,Ky(a,i_(Gy(a),u)))}function ah(n){var i=0,u=0;return function(){var a=xw(),p=ie-(a-u);if(u=a,p>0){if(++i>=ve)return arguments[0]}else i=0;return n.apply(r,arguments)}}function qo(n,i){var u=-1,a=n.length,p=a-1;for(i=i===r?a:i;++u<i;){var g=fa(u,p),S=n[g];n[g]=n[u],n[u]=S}return n.length=i,n}var ch=by(function(n){var i=[];return n.charCodeAt(0)===46&&i.push(""),n.replace(qv,function(u,a,p,g){i.push(p?g.replace(t1,"$1"):a||u)}),i});function yn(n){if(typeof n=="string"||Nt(n))return n;var i=n+"";return i=="0"&&1/n==-le?"-0":i}function Nr(n){if(n!=null){try{return xo.call(n)}catch{}try{return n+""}catch{}}return""}function i_(n,i){return Ht(Ee,function(u){var a="_."+u[0];i&u[1]&&!vo(n,a)&&n.push(a)}),n.sort()}function fh(n){if(n instanceof he)return n.clone();var i=new Gt(n.__wrapped__,n.__chain__);return i.__actions__=_t(n.__actions__),i.__index__=n.__index__,i.__values__=n.__values__,i}function l_(n,i,u){(u?ht(n,i,u):i===r)?i=1:i=Qe(ae(i),0);var a=n==null?0:n.length;if(!a||i<1)return[];for(var p=0,g=0,S=N(To(a/i));p<a;)S[g++]=qt(n,p,p+=i);return S}function o_(n){for(var i=-1,u=n==null?0:n.length,a=0,p=[];++i<u;){var g=n[i];g&&(p[a++]=g)}return p}function u_(){var n=arguments.length;if(!n)return[];for(var i=N(n-1),u=arguments[0],a=n;a--;)i[a-1]=arguments[a];return Kn(ue(u)?_t(u):[u],et(i,1))}var s_=de(function(n,i){return Fe(n)?rl(n,et(i,1,Fe,!0)):[]}),a_=de(function(n,i){var u=Kt(i);return Fe(u)&&(u=r),Fe(n)?rl(n,et(i,1,Fe,!0),te(u,2)):[]}),c_=de(function(n,i){var u=Kt(i);return Fe(u)&&(u=r),Fe(n)?rl(n,et(i,1,Fe,!0),r,u):[]});function f_(n,i,u){var a=n==null?0:n.length;return a?(i=u||i===r?1:ae(i),qt(n,i<0?0:i,a)):[]}function d_(n,i,u){var a=n==null?0:n.length;return a?(i=u||i===r?1:ae(i),i=a-i,qt(n,0,i<0?0:i)):[]}function p_(n,i){return n&&n.length?$o(n,te(i,3),!0,!0):[]}function h_(n,i){return n&&n.length?$o(n,te(i,3),!0):[]}function g_(n,i,u,a){var p=n==null?0:n.length;return p?(u&&typeof u!="number"&&ht(n,i,u)&&(u=0,a=p),uy(n,i,u,a)):[]}function dh(n,i,u){var a=n==null?0:n.length;if(!a)return-1;var p=u==null?0:ae(u);return p<0&&(p=Qe(a+p,0)),wo(n,te(i,3),p)}function ph(n,i,u){var a=n==null?0:n.length;if(!a)return-1;var p=a-1;return u!==r&&(p=ae(u),p=u<0?Qe(a+p,0):lt(p,a-1)),wo(n,te(i,3),p,!0)}function hh(n){var i=n==null?0:n.length;return i?et(n,1):[]}function m_(n){var i=n==null?0:n.length;return i?et(n,le):[]}function v_(n,i){var u=n==null?0:n.length;return u?(i=i===r?1:ae(i),et(n,i)):[]}function w_(n){for(var i=-1,u=n==null?0:n.length,a={};++i<u;){var p=n[i];a[p[0]]=p[1]}return a}function gh(n){return n&&n.length?n[0]:r}function y_(n,i,u){var a=n==null?0:n.length;if(!a)return-1;var p=u==null?0:ae(u);return p<0&&(p=Qe(a+p,0)),Jr(n,i,p)}function __(n){var i=n==null?0:n.length;return i?qt(n,0,-1):[]}var S_=de(function(n){var i=Oe(n,ma);return i.length&&i[0]===n[0]?oa(i):[]}),x_=d Line truncated
`;n.replace(q,function(re,pe,me,Mt,gt,Bt){return me||(me=Mt),j+=n.slice(D,Bt).replace(a1,J1),pe&&(E=!0,j+=`' +
__e(`+pe+`) +
'`),gt&&(R=!0,j+=`';
`+gt+`;
__p += '`),me&&(j+=`' +
((__t = (`+me+`)) == null ? '' : __t) +
'`),D=Bt+re.length,re}),j+=`';
`;var ne=xe.call(i,"variable")&&i.variable;if(!ne)j=`with (obj) {
`+j+`
}
`;else if(e1.test(ne))throw new oe(f);j=(R?j.replace(Dv,""):j).replace($v,"$1").replace(Fv,"$1;"),j="function("+(ne||"obj")+`) {
`+(ne?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(E?", __e = _.escape":"")+(R?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+j+`return __p
}`;var fe=Hh(function(){return _e(g,J+"return "+j).apply(r,S)});if(fe.source=j,Ma(fe))throw fe;return fe}function EC(n){return Se(n).toLowerCase()}function kC(n){return Se(n).toUpperCase()}function LC(n,i,u){if(n=Se(n),n&&(u||i===r))return Jd(n);if(!n||!(i=Pt(i)))return n;var a=ln(n),p=ln(i),g=bd(a,p),S=ep(a,p)+1;return er(a,g,S).join("")}function IC(n,i,u){if(n=Se(n),n&&(u||i===r))return n.slice(0,np(n)+1);if(!n||!(i=Pt(i)))return n;var a=ln(n),p=ep(a,ln(i))+1;return er(a,0,p).join("")}function RC(n,i,u){if(n=Se(n),n&&(u||i===r))return n.replace(Ms,"");if(!n||!(i=Pt(i)))return n;var a=ln(n),p=bd(a,ln(i));return er(a,p).join("")}function TC(n,i){var u=H,a=ee;if(Ne(i)){var p="separator"in i?i.separator:p;u="length"in i?ae(i.length):u,a="omission"in i?Pt(i.omission):a}n=Se(n);var g=n.length;if(br(n)){var S=ln(n);g=S.length}if(u>=g)return n;var E=u-ei(a);if(E<1)return a;var R=S?er(S,0,E).join(""):n.slice(0,E);if(p===r)return R+a;if(S&&(E+=R.length-E),Ba(p)){if(n.slice(E).search(p)){var D,F=R;for(p.global||(p=Xs(p.source,Se(_d.exec(p))+"g")),p.lastIndex=0;D=p.exec(F);)var j=D.index;R=R.slice(0,j===r?E:j)}}else if(n.indexOf(Pt(p),E)!=E){var q=R.lastIndexOf(p);q>-1&&(R=R.slice(0,q))}return R+a}function AC(n){return n=Se(n),n&&Uv.test(n)?n.replace(vd,lw):n}var OC=ui(function(n,i,u){return n+(u?" ":"")+i.toUpperCase()}),Da=Vp("toUpperCase");function jh(n,i,u){return n=Se(n),i=u?r:i,i===r?ew(n)?sw(n):G1(n):n.match(i)||[]}var Hh=de(function(n,i){try{return At(n,r,i)}catch(u){return Ma(u)?u:new oe(u)}}),PC=On(function(n,i){return Ht(i,function(u){u=yn(u),Tn(n,u,Pa(n[u],n))}),n});function NC(n){var i=n==null?0:n.length,u=te();return n=i?Oe(n,function(a){if(typeof a[1]!="function")throw new Vt(c);return[u(a[0]),a[1]]}):[],de(function(a){for(var p=-1;++p<i;){var g=n[p];if(At(g[0],this,a))return At(g[1],this,a)}})}function MC(n){return ly(Qt(n,w))}function $a(n){return function(){return n}}function BC(n,i){return n==null||n!==n?i:n}var WC=Qp(),zC=Qp(!0);function Ct(n){return n}function Fa(n){return xp(typeof n=="function"?n:Qt(n,w))}function DC(n){return Ep(Qt(n,w))}function $C(n,i){return kp(n,Qt(i,w))}var FC=de(function(n,i){return function(u){return il(u,n,i)}}),UC=de(function(n,i){return function(u){return il(n,u,i)}});function Ua(n,i,u){var a=Ye(i),p=Wo(i,a);u==null&&!(Ne(i)&&(p.length||!a.length))&&(u=i,i=n,n=this,p=Wo(i,Ye(i)));var g=!(Ne(u)&&"chain"in u)||!!u.chain,S=Nn(n);return Ht(p,function(E){var R=i[E];n[E]=R,S&&(n.prototype[E]=function(){var D=this.__chain__;if(g||D){var F=n(this.__wrapped__),j=F.__actions__=_t(this.__actions__);return j.push({func:R,args:arguments,thisArg:n}),F.__chain__=D,F}return R.apply(n,Kn([this.value()],arguments))})}),n}function jC(){return be._===this&&(be._=hw),this}function ja(){}function HC(n){return n=ae(n),de(function(i){return Lp(i,n)})}var VC=ya(Oe),GC=ya(qd),QC=ya(Vs);function Vh(n){return La(n)?Gs(yn(n)):xy(n)}function qC(n){return function(i){return n==null?r:Or(n,i)}}var KC=Kp(),YC=Kp(!0);function Ha(){return[]}function Va(){return!1}function ZC(){return{}}function XC(){return""}function JC(){return!0}function bC(n,i){if(n=ae(n),n<1||n>$)return[];var u=Z,a=lt(n,Z);i=te(i),n-=Z;for(var p=Ks(a,i);++u<n;)i(u);return p}function e2(n){return ue(n)?Oe(n,yn):Nt(n)?[n]:_t(ch(Se(n)))}function t2(n){var i=++dw;return Se(n)+i}var n2=jo(function(n,i){return n+i},0),r2=_a("ceil"),i2=jo(function(n,i){return n/i},1),l2=_a("floor");function o2(n){return n&&n.length?Bo(n,Ct,la):r}function u2(n,i){return n&&n.length?Bo(n,te(i,2),la):r}function s2(n){return Zd(n,Ct)}function a2(n,i){return Zd(n,te(i,2))}function c2(n){return n&&n.length?Bo(n,Ct,aa):r}function f2(n,i){return n&&n.length?Bo(n,te(i,2),aa):r}var d2=jo(function(n,i){return n*i},1),p2=_a("round"),h2=jo(function(n,i){return n-i},0);function g2(n){return n&&n.length?qs(n,Ct):0}function m2(n,i){return n&&n.length?qs(n,te(i,2)):0}return h.after=DS,h.ary=Sh,h.assign=kx,h.assignIn=Bh,h.assignInWith=tu,h.assignWith=Lx,h.at=Ix,h.before=xh,h.bind=Pa,h.bindAll=PC,h.bindKey=Ch,h.castArray=ZS,h.chain=wh,h.chunk=l_,h.compact=o_,h.concat=u_,h.cond=NC,h.conforms=MC,h.constant=$a,h.countBy=gS,h.create=Rx,h.curry=Eh,h.curryRight=kh,h.debounce=Lh,h.defaults=Tx,h.defaultsDeep=Ax,h.defer=$S,h.delay=FS,h.difference=s_,h.differenceBy=a_,h.differenceWith=c_,h.drop=f_,h.dropRight=d_,h.dropRightWhile=p_,h.dropWhile=h_,h.fill=g_,h.filter=vS,h.flatMap=_S,h.flatMapDeep=SS,h.flatMapDepth=xS,h.flatten=hh,h.flattenDeep=m_,h.flattenDepth=v_,h.flip=US,h.flow=WC,h.flowRight=zC,h.fromPairs=w_,h.functions=zx,h.functionsIn=Dx,h.groupBy=CS,h.initial=__,h.intersection=S_,h.intersectionBy=x_,h.intersectionWith=C_,h.invert=Fx,h.invertBy=Ux,h.invokeMap=kS,h.iteratee=Fa,h.keyBy=LS,h.keys=Ye,h.keysIn=xt,h.map=Yo,h.mapKeys=Hx,h.mapValues=Vx,h.matches=DC,h.matchesProperty=$C,h.memoize=Xo,h.merge=Gx,h.mergeWith=Wh,h.method=FC,h.methodOf=UC,h.mixin=Ua,h.negate=Jo,h.nthArg=HC,h.omit=Qx,h.omitBy=qx,h.once=jS,h.orderBy=IS,h.over=VC,h.overArgs=HS,h.overEvery=GC,h.overSome=QC,h.pa Line truncated
`;function ur({blocks:e=[],arrows:t=[],arrowId:r,rotate:l=!1,rotateNegative:o=!1,flip:s=!1,lines:c=[],children:f=[],includeInlineStyle:d=!1,effect:m,...y}){X.useEffect(()=>m==null?void 0:m()),r=r||Math.floor(Math.random()*Math.pow(2,4*8)).toString(16),f?Symbol.iterator in f||(f=[f]):f=[],y.className||(y.className=""),y.className+=" cBuilderSvg";const w=()=>d?T.jsx("style",{children:Kk}):T.jsx(T.Fragment,{});return T.jsxs("svg",{viewBox:"0 0 100 100",...y,children:[T.jsx(w,{}),T.jsxs("defs",{children:[T.jsx("marker",{id:`arrow_${r}`,viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"2.5",markerHeight:"2.5",orient:"auto-start-reverse",fill:"currentColor",className:"cBuilderSvg__marker",markerUnits:"strokeWidth",children:T.jsx("path",{d:"M 0 0 L 10 5 L 0 10 Z"})}),T.jsx("clipPath",{id:`main_clip_${r}`,clipPathUnits:"userSpaceOnUse",children:T.jsx("rect",{x:5,y:5,width:90,height:90,rx:11.75})}),T.jsx("clipPath",{id:`clip1_${r}`,clipPathUnits:"userSpaceOnUse",children:T.jsx("path",{d:"M 0 0 L 25 0 L 25 100 L 0 100 Z"})}),T.jsx("clipPath",{id:`clip2_${r}`,clipPathUnits:"userSpaceOnUse",children:T.jsx("path",{d:"M72.5 0 L 97.5 0 L 97.5 100 L 72.5 100 Z"})}),T.jsx("clipPath",{id:`clip3_${r}`,clipPathUnits:"userSpaceOnUse",children:T.jsx("path",{d:"M75 25 L 80 25 A 5 5 0 0 0 85 30 L 85 80 A 5 5 0 0 0 80 85 L 30 85 A 5 5 0 0 0 25 80 L 25 75 L 70 75 A 5 5 0 0 0 75 70 Z"})}),T.jsx("clipPath",{id:`clip4_${r}`,clipPathUnits:"userSpaceOnUse",children:T.jsx("rect",{x:20,y:70,width:60,height:15,rx:5})})]}),T.jsx("g",{transform:l?void 0:`rotate(${o?"-":""}90)`,x:0,y:0,width:100,height:100,children:T.jsxs("g",{transform:l?void 0:`scale(${s?"1,-1":"1,1"})`,x:0,y:0,width:100,height:100,children:[T.jsx("rect",{width:95,height:95,x:2.5,y:2.5,rx:15,fill:"none",stroke:"none",strokeWidth:5,"data-role":"background"}),T.jsxs("g",{id:"mainarea",clipPath:`url(#main_clip_${r})`,children:[e.map((x,k)=>T.jsx("rect",{fill:"currentColor",rx:5,...x},k)),t.map(x=>T.jsx("path",{d:"M "+(x instanceof Array?x:x.points).map(({x:k,y:O})=>`${k} ${O}`).join(" L "),rx:20,fill:"none",strokeWidth:6,stroke:"currentColor",strokeLinejoin:"round",markerStart:["both","start"].includes(x.marker)?`url(#arrow_${r})`:void 0,markerEnd:["both","end",void 0].includes(x.marker)?`url(#arrow_${r})`:void 0,className:"cBuilderSvg__arrow"},JSON.stringify(x))),c.map(x=>T.jsx("path",{d:"M "+(x instanceof Array?x:x.points).map(({x:k,y:O})=>`${k} ${O}`).join(" L "),rx:20,fill:"none",strokeWidth:6,stroke:"currentColor",strokeLinejoin:"round",className:x.className||void 0},JSON.stringify(x))),f]}),T.jsx("rect",{width:95,height:95,x:2.5,y:2.5,rx:15,fill:"none",stroke:"currentColor",strokeWidth:5,"data-role":"outerborder"})]})})]})}function Yk({pattern:e="start",horizontal:t=!0,...r}){const o=[{width:60},{width:80},{width:40}].map((s,c)=>({...s,height:23.4,className:"cBuilderSvg__box--outlined",y:5+90*c/3+1.3+2,x:(()=>e==="end"?97.5-s.width:e==="center"?50-s.width/2:2.5)()}));return T.jsx(ur,{blocks:o,rotate:t,...r})}function cn({...e}){return e.className=[e.className||"","cBuilderSvg__image-icon"].join(" ").trim().replace(/\s+/," "),T.jsxs("svg",{...e,viewBox:"0 0 90 90",children:[T.jsx("rect",{x:0,y:0,className:"cBuilderSvg__box--secondaryColoring",width:90,height:90,rx:10,fill:"currentColor"}),T.jsx("path",{d:"M4 86 L 25 28 L 55 68 L 69 50 L 84 86Z",stroke:"currentColor",strokeWidth:"6",fill:"currentColor",strokeLinejoin:"round"}),T.jsx("circle",{r:"10",cx:"70",cy:"20",fill:"currentColor",stroke:"currentColor"})]})}const _l=[[{x:35,y:84},{x:16,y:84}],[{x:65,y:84},{x:84,y:84}]];function Zk({behavior:e="wrap",horizontal:t=!1,...r}){r.className=r.className||"",r.className+=" cBuilderSvg--wrap-icon";const l=[],o=[],s=[];let c=4,f=c,d=[57,31],m,y,w,x,k,O;switch(e){case"carousel":l.push({width:15,height:40,x:0,y:20,className:"cBuilderSvg__box--outlined"}),l.push({width:66,height:60,x:17,y:10,className:"cBuilderSvg__box--outlined"}),l.push({width:15,height:40,x:85,y:20,className:"cBuilderSvg__box--outlined"}),l.push({height:3,width:40,y:25,x:22,rx:0}),l.push({height:3,width:30,y:32,x:22,rx:0}),l.push({height:3,width:52,y:39,x:22,rx:0}),l.push({height:3,width:22,y:46,x:22,rx:0}),o.push([{x:35,y:84},{x:16,y:84}]),o.push([{x:65,y:84},{x:84,y:84}]);break;case"table":case"table-carousel":c=1.3,w=e==="table-carousel"?78:70,x=e==="table-carousel"?11:15,m=e==="table-carousel"?20:0,y=e==="table-carousel"?1:3;for(let I=0;I<y;I++)l.push({height:85/3-4-2*c,width:w,y:7.5+85*I/3+c+2+m,x,className:"cBuilderSvg__box--outlined"});e==="table-carousel"&&o.splice(0,0,..._l.map(I=>I.map(P=>({x:P.x,y:P.y-15}))));break;case"mini-grid":case"grid-carousel":case"mini-grid-carousel":case"grid":k=e.startsWith("mini")?3:2,y=e.startsWith("mini")?3:2,O=88,m=e==="grid-carousel"?7:0,e.startsWith("mini")&&(f=10,c=5),e==="grid-carousel"&&(y=1,k=3),e.endsWith("carousel")&&(O=e.startsWith("mini")?68:54,o.splice(o.length,0,..._l.map(I=>I.map(P=>({x:P.x,y:P.y-5}))))),e==="mini-grid"&&(m=10,O=68),e==="mini-grid-carousel"& Line truncated
<div
class="ipsLoading"
style="width:${ie.width}px; height:${ie.height}px; position:static !important;"
>
<div class="ipsRichText ipsWidget__content ipsWidget__padding">
${ve}
</div>
</div>`)}else c.current.style.height=`${ie.height}px`,c.current.style.width=`${ie.width}px`;setTimeout(async()=>{let se;try{se=await window.ips.fetch(U.action,{data:b,method:"post",bypassRedirect:!0})}catch($e){window.Debug.error($e)}_.hide(),z.remove(),t("default"),d({}),s(se)},100)})),_.addContentProcessor(U=>{var b,H;const A=(b=z.parentElement)==null?void 0:b.getBoundingClientRect();if(A){const ee=z.parentElement;ee.style.width=A.width+"px",ee.style.height=A.height+"px";const ve=(H=U.closest(".ipsDialog"))==null?void 0:H.getAttribute("id");if(ve){const ie=(ce,{dialogID:se})=>{ve===se&&(ee.style.width="",ee.style.height="",ee.appendChild(z),P(z),window.$(document).off("hideDialog",ie))};window.$(document).on("hideDialog",ie)}}let B=z;for(;B;){if(B.parentElement===U)return;B=B.parentElement}U.innerHTML="",U.appendChild(z),P(z,!0)}),d({element:z,configId:M,dialogRef:_})}t("editing")}}}}function eo(e){return(e instanceof Element?e:document).querySelector("[data-ipsconfigform]")}function _3(e){return!1}function S3({blockID:e,title:t,config:r,update:l,defaultConfiguration:o,blank:s,getArea:c,contentRaw:f,selectArea:d},m){const[y,w]=X.useState("default"),x=X.useRef(null),k=H=>{y==="default"&&H==="editing"&&e.startsWith("app_cms_Wysiwyg")&&(_==null||_()),w(H)};let O=!1;const{area:I}=X.useContext(Yr),{setEditing:P,editForm:v,captureHeight:_,blockUsesInlineEditing:C,toolList:M,tiptapRef:z,toolListWrap:U}=y3({blockID:e,setState:k,state:y,blockArea:I,title:t,reloadContent:B,contentRaw:f},m);X.useEffect(()=>{if(y==="default"){const H=e.split("_");(!H[3]||s)&&(O=!H[3],O&&(e+=`_${Math.random().toString(36).slice(2,9)}`),B(),k("loading"))}}),X.useEffect(()=>{var H;r&&x.current&&((H=x.current)==null?void 0:H.dataset.menuListenerSet)!=="true"&&(x.current.dataset.menuListenerSet="true",window.$(document).trigger("contentChange",[window.$(x.current.parentElement)]),x.current.addEventListener("ipsMenuOpened",async ee=>{if(await new Promise(ie=>setTimeout(ie,1)),C){await d(),b(),await P();return}let ve=`${window.ips.getSetting("baseURL")}index.php?${Object.entries(so()).map(([ie,ce])=>`${encodeURIComponent(ie)}=${encodeURIComponent(ce)}`).join("&")}&do=getConfiguration&block=${encodeURIComponent(e)}&pageApp=${encodeURIComponent(document.body.dataset.pageapp)}&pageModule=${encodeURIComponent(document.body.dataset.pagemodule)}&pageController=${encodeURIComponent(document.body.dataset.pagecontroller)}&pageArea=${encodeURIComponent(I)}&area=${encodeURIComponent(I)}`;try{if(A()==="modal"){b();const ie=window.ips.ui.dialog.create({title:t,url:ve,forceReload:!0,destructOnClose:!0,remoteSubmit:!0});ie.show(),document.querySelectorAll(`[id="${e}_edit_menu"]`).ipsHide();const ce=Qn.throttle(se=>{se.dialogID===ie.dialogID&&(se.stopImmediatePropagation(),se.preventDefault(),B(se.response))},200);document.addEventListener("dialogSubmission",ce,{once:!0})}else ee.menu.html(window.$("<div/>").addClass("ipsLoading").css({height:"100px"})),setTimeout(async()=>{const ie=await window.ips.fetch(ve),ce=ee.menu.get(0);if(ce.id)for(const se of document.querySelectorAll(`[id="${ce.id}"]`))se!==ce&&se.remove();ee.menu.html(ie).find("form").on("submit",async se=>{var $e;se.preventDefault();try{const le=await window.ips.fetch(window.$(se.currentTarget).attr("action"),{data:window.$(se.currentTarget).serialize(),type:"post"});typeof le=="object"||(($e=le==null?void 0:le.toLowerCase)==null?void 0:$e.call(le))==="ok"?(await B(le),ee.menu.trigger("closeMenu")):typeof le=="string"&&ee.menu.html(le)}catch(le){window.Debug.warn(le),window.ips.ui.alert.show({type:"alert",icon:"warn",message:window.ips.getString("sidebarConfigError"),callbacks:{}})}}),ee.menu.trigger("contentChange",[ee.menu])},10);document.body.dispatchEvent(new is(null))}catch(ie){window.Debug.warn(ie),window.ips.ui.alert("Something went wrong when loading the configuration settings")}await d()}))});function A(){var H;return((H=xr(e))==null?void 0:H.dataset.menustyle)||"none"}async function B(H){const ee={blockID:e,title:t,config:r,blank:!1,contentRaw:"Error"};(H==null?void 0:H.areaClasses)instanceof Array&&(ee.areaClasses=Array.from(new Set(H.areaClasses)));try{const ve=await Tv(e,o,I,O,c().wrapBehavior);ee.contentRaw=ve,ee.defaultConfiguration=void 0,l==null||l(ee),k("default")}catch(ve){l==null||l(ee),k("contentLoadError"),window.Debug.log("something went wrong when loading a block's content."),window.Debug.error(ve)}}function b(){document.querySelectorAll(`[id="${e}_edit_menu"]`).ipsHide()}return{reloadContent:B,state:y,setState:k,editForm:v,blockUsesInlineEditing:C,manageBlockRef:x,toolList:M,tiptapRef:z,toolListWrap:U}}function ao(e){return e.split("_").slice(0,3).join("_")}function xr(e){if(typeof e!="string")return window.Debug.warn("Could not get a block base because the id is not a string"),null;const t=ao(e);return t?document.querySelector(`[data-role="availableBlocks"] :is([data-blockID="${t}"],[data-blockID*="${t}_"])`):(window.Debug.warn(`The block id ${JSON.stringify(e)} does Line truncated
`)),await window.ips.ui.editorv5.whenLoaded();const se=document.createElement("div");se.setAttribute("hidden",""),document.body.appendChild(se);const[$e,le]=await window.ips.utils.tiptap.editorInstance(se,{...window.ips.ui.editorv5.buildConfig({}),content:ce});if(await new Promise($=>setTimeout($)),ce=$e.getHTML(),$e.destroy(),le.unmount(),se.remove(),ce){A={orientation:e==="horizontal"?"vertical":"horizontal",children:[],wrapBehavior:"table",otherOptions:{},widgets:[{title:"WYSIWYG Editor",blockID:"app_cms_Wysiwyg",config:!0,blank:!1,contentRaw:ce,defaultConfiguration:{content:ce}}]};break}throw new Error(`The data from the drop event did not include ${ie}, so the block could not be inserted in the widget area tree`)}const b=(B==null?void 0:B.blockID)||((O=A==null?void 0:A.widgets)==null?void 0:O[0].blockID),H=b?xr(b):null;if(new Set(((P=(I=H==null?void 0:H.dataset)==null?void 0:I.widgetDisallowedAreas)==null?void 0:P.split(",").map(ie=>ie.trim()))||[]).has(w)){document.querySelectorAll("section.cWidgetContainer:not([data-controller])").forEach(ie=>{ie.removeAttribute("hidden"),ie.querySelectorAll(":scope > .cWidgetContainer__menu_region").forEach(ce=>ce.style.display="")});return}const ve=y.current;if(ve){if(B.blockID.startsWith("app_cms_Blocks:")){const $=xr(B.blockID),Q=$==null?void 0:$.dataset.customblockid;if(!Q)throw new Error("The dropped block is a custom block but the block id is invalid");const G=await window.ips.fetch(window.ips.getSetting("baseURL"),{method:"get",data:{app:"cms",module:"pages",controller:"builder",do:"getCustomBlockContent",id:Q}});if(typeof G.content!="string"||typeof G.block_key!="string"||typeof((v=G.configuration)==null?void 0:v.blocktitle)!="string")throw new TypeError("Could not add a custom block because the server didn't return a string for it's content, blocktitle data attribute, or block key (as in the key of the custom block)");B.contentRaw=G.content,B.defaultConfiguration={cms_widget_custom_block:G.block_key},B.blockID=`app_cms_Blocks_${Math.round(Math.random()*Math.pow(16,8)).toString(16)}`,B.blockTitle=G.configuration.blocktitle}const ie=Lv(ve,k.clientX,k.clientY),ce=B.areaDetails,se={title:B.blockTitle,blockID:B.blockID,config:B.config,blank:B.blank,contentRaw:B.contentRaw||"<div class='ipsLoading'></div>"};B.defaultConfiguration&&(se.defaultConfiguration=se.configuration=B.defaultConfiguration),A=A||{orientation:e==="horizontal"?"vertical":"horizontal",children:[],wrapBehavior:(ce==null?void 0:ce.wrapBehavior)||B.ipsWrapBehavior||((M=(C=(_=hd(B.blockID))==null?void 0:_.values())==null?void 0:C.next())==null?void 0:M.value)||"table",otherOptions:{...ce==null?void 0:ce.otherOptions},widgets:[se]};const $e=await Av(),le=[];if(Number.isInteger(B==null?void 0:B.areaId)&&B.area===w&&B.pageHash===$e&&le.push(B.areaId),le.includes(f))return;if(ao(A.widgets[0].blockID)===A.widgets[0].blockID){A.widgets[0].blockID+="_";for(let $=0;$<6;$++)A.widgets[0].blockID+=Math.round(Math.random()*16).toString(16);A.widgets[0].contentRaw=await Tv(A.widgets[0].blockID,A.widgets[0].defaultConfiguration,w,!0,A.wrapBehavior),A.widgets[0].blank=!1}if((z=y==null?void 0:y.current)!=null&&z.closest(".cWidgetContainer--carousel")&&A.wrapBehavior in Xe&&(A.wrapBehavior=Xe[A.wrapBehavior],A.widgets.length&&(A.widgets[0].blank=!0,A.widgets[0].contentRaw=`<div class="ipsLoading">${A.widgets[0].contentRaw||""}</div>`)),["before","after"].includes(ie))A.orientation=e,c==null||c(A,ie==="before",le);else if(!t.length&&s.length){const $={orientation:e==="horizontal"?"vertical":"horizontal",children:[],wrapBehavior:r,otherOptions:o,widgets:s,areaId:f};l({newState:{children:ie===0?[A,$]:[$,A],wrapBehavior:"wrap",widgets:[],otherOptions:{}},toRemove:le})}else t.splice(ie,0,A),l({newState:{children:t},toRemove:le});(U=y.current)==null||U.dispatchEvent(new to({widget:A.widgets[0],area:w}))}}catch(A){window.Debug.warn(A),window.Debug.log("Could not insert the content dropped inside a widget area"),window.ips.ui.alert.show({message:"This content cannot be dropped in the page"})}document.querySelectorAll("section.cWidgetContainer:not([data-controller])").forEach(A=>{A.removeAttribute("hidden"),A.querySelectorAll(":scope > .cWidgetContainer__menu_region").forEach(B=>B.style.display="")})},onDragOver:k=>{k.preventDefault(),k.stopPropagation(),A3({e:k,ref:y,orientation:e,wrapBehavior:r,getParent:d,children:t,clientX:k.clientX,clientY:k.clientY,blockArea:w})}}}function R3(e,t){if(e!=null&&e.classList.contains("cWidgetContainer--dragInside")){const r=e.getBoundingClientRect();let l;if(e.scrollWidth<=r.width)return!1;if(t<r.left+Math.min(r.width/10,70))l="prev";else if(t>r.right-Math.max(r.width/10,70))l="next";else return!1;if(l&&!window.ips.ui.carousel.containerAtEnd(e,l))return T3(e,l),!0}return!1}const T3=Qn.throttle((e,t)=>{e.dispatchEvent(new CustomEvent("scrollPanels",{detail:{direction:t,loop:!1}}))},1e3),A3=Qn.throttle(function({ref:e,orientation:t,wrapBehavior:r,getParent:l,children:o,clientX:s,clientY:c,Line truncated
`+k.message,window.Debug.warn(k)}}},200);function pi(e,t,r=400){var l;tt.has(e)||tt.set(e,new Map);for(const o of t.split(/\s+/).filter(s=>!!s)){tt.get(e).has(o)&&(clearTimeout(tt.get(e).get(o)),tt.get(e).delete(o)),e.classList.add(o),document.querySelectorAll(`.${o}`).forEach(c=>{var f;if(c!==e){c.classList.remove(o);const d=(f=tt.get(c))==null?void 0:f.get(o);d&&(clearTimeout(d),tt.get(c).delete(o))}});const s=setTimeout(()=>{var f;e.classList.remove(o);const c=(f=tt.get(e))==null?void 0:f.get(o);c&&(clearTimeout(c),tt.get(e).delete(o),tt.get(e).size||tt.delete(e))},r);tt.get(e).set(o,s)}(l=tt.get(e))!=null&&l.size||tt.delete(e)}setInterval(()=>{for(const e of tt.keys())if(e.closest("body")!==document.body){for(const t of tt.get(e).values())clearTimeout(t);tt.delete(e)}},5e3);const tt=new Map;function O3({wrapBehavior:e,widgets:t,scrollRef:r}){const l=X.useRef(null),o=e==="carousel"&&!t.length;X.useEffect(()=>{if(o&&(d(),r.current)){const y=r.current;os.set(y,d);const w=k=>{var M;const[O,I,P]=c(),v=((M=k==null?void 0:k.detail)==null?void 0:M.direction)||"next",_=v!=="prev"&&(O>=I-1||P[I-1].getBoundingClientRect().right<=y.getBoundingClientRect().right);if(v==="prev"&&O===0||v!=="prev"&&_)return;const C=y.querySelector(`[data-carousel-arrow="${v}"]`);C instanceof HTMLElement&&m({target:C})};y.addEventListener("scrollPanels",w);const x=new ResizeObserver(Qn.debounce(d,100));return x.observe(r.current),()=>{os.delete(y),y.removeEventListener("scrollPanels",w),x.disconnect()}}});function s(){var y;return(y=r.current)!=null&&y.classList.contains("cWidgetContainer--carousel")?r.current:null}function c(){var I;const y=s(),w=y==null?void 0:y.querySelectorAll(":scope > .cWidgetContainer");if(!w)throw new ReferenceError;const x=w.length;if(gf.has(y))return[parseInt(((I=l.current)==null?void 0:I.dataset.actualOffset)||"0"),x,w];const k=y.getBoundingClientRect();let O;for(O=0;O<x;O++)if(w[O].getBoundingClientRect().left>=k.left-1)return[O,x,w];return[x-1,x,w]}function f(){var k,O;const y=(k=r.current)==null?void 0:k.getBoundingClientRect(),w=(O=r.current)==null?void 0:O.querySelectorAll(":scope > .cWidgetContainer");if(!y||!(w!=null&&w.length)||w.length===1)return 1;const x=Math.abs(w[w.length-1].getBoundingClientRect().right-w[0].getBoundingClientRect().left);if(x){let I=Math.ceil(x/y.width);return w.length>2&&w[w.length-1].getBoundingClientRect().right-w[w.length-2].getBoundingClientRect().left>y.width&&I++,I}return 1}function d(){if(!l.current)return;let[y,w]=c();const x=f();y=Math.min(y,x),w=Math.min(w,x),l.current.innerText=`${y+1}/${w}`,l.current.closest(".cWidgetContainer__carousel-buttons").querySelectorAll("button").forEach(k=>w<=1?k.setAttribute("disabled",""):k.removeAttribute("disabled"))}function m(y){const w=s();if(!w)return;const x=y.target instanceof HTMLElement&&y.target.dataset.carouselArrow||"next",[k,O,I]=c();if(I.length<=1)return;const P=w.getBoundingClientRect(),v=x!=="prev"&&(k+1>=O||I[O-1].getBoundingClientRect().right<=P.right),_=(x==="prev"&&k===0?O-1:v?0:k+(x==="prev"?-1:1))%O;let C=(_===O-1?I[_].getBoundingClientRect().right:I[_].getBoundingClientRect().left)-P.left;l.current.dataset.actualOffset=`${_}`,gf.add(w),w.scrollTo({left:r.current.scrollLeft+C,behavior:"smooth"}),d()}return{indicatorRef:l,scroll:m}}const gf=new WeakSet,os=new WeakMap;function Ov(e,t=!1){var r,l;if((r=e.classList)!=null&&r.contains("cWidgetContainer--carousel")&&e.querySelector(".ipsWidget__content--wrap--editing")){const o=e.querySelector(".ipsWidget__content--wrap--editing"),s=(l=window.ips.ui.editorv5.getObj(window.$(o.querySelector("[data-ipseditorv5]"))))==null?void 0:l.getInstance();t?o==null||o.dispatchEvent(new CustomEvent("ips:editorHidePanes",{detail:{instance:s},bubbles:!0,cancelable:!0})):o.dispatchEvent(new CustomEvent("ips:editorShowPanes",{detail:{instance:s},bubbles:!0,cancelable:!0}))}}function l0(e){let t=e.target;for(;t instanceof HTMLElement;){if(Ov(t),os.has(t)){let r=!1;const l=e.stopPropagation;if(e.stopPropagation=(function(){r=!0,l.call(this)}).bind(e),os.get(t)(e),gf.delete(t),r)break;e.stopPropagation=l.bind(e)}t=t.parentElement}}"onscrollend"in HTMLElement.prototype?window.addEventListener("scrollend",l0,{capture:!0}):window.addEventListener("scroll",Qn.debounce(l0,200),{capture:!0});window.addEventListener("scroll",e=>{var r;let t=e.target;(r=t==null?void 0:t.classList)!=null&&r.contains("cWidgetContainer--carousel")&&Ov(t,!0)},{capture:!0});function P3({widgets:e,scrollRef:t,wrapBehavior:r}){const{indicatorRef:l,scroll:o}=O3({widgets:e,scrollRef:t,wrapBehavior:r});return T.jsxs("div",{className:"cWidgetContainer__carousel-buttons","data-controller":"core.front.widgets.carouselControls",children:[T.jsx("div",{className:"cWidgetContainer__carousel-indicator",ref:l}),[["prev","left"],["next","right"]].map(([s,c])=>T.jsx("button",{onClick:o,"data-carousel-arrow":s,children:T.jsx("i",{className:`fa-solid fa-chevron-${c}`})},s))]})}function Pv({...e}){var A,B,b,H,ee,ve,ie,ce,se,$e,le;const{ Line truncated
@@ -11,7 +11,7 @@
"css": [
"assets/main-51be5621.css"
],
"file": "assets/main-6937ae1a.js",
"file": "assets/main-30bc7f27.js",
"isEntry": true,
"src": "src/main.jsx"
}
@@ -0,0 +1,207 @@
var Wl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function om(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var yO={exports:{}},am={},CO={exports:{}},Ge={};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Eu=Symbol.for("react.element"),UU=Symbol.for("react.portal"),FU=Symbol.for("react.fragment"),BU=Symbol.for("react.strict_mode"),GU=Symbol.for("react.profiler"),YU=Symbol.for("react.provider"),HU=Symbol.for("react.context"),$U=Symbol.for("react.forward_ref"),VU=Symbol.for("react.suspense"),zU=Symbol.for("react.memo"),WU=Symbol.for("react.lazy"),$C=Symbol.iterator;function qU(e){return e===null||typeof e!="object"?null:(e=$C&&e[$C]||e["@@iterator"],typeof e=="function"?e:null)}var RO={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},NO=Object.assign,vO={};function ul(e,t,n){this.props=e,this.context=t,this.refs=vO,this.updater=n||RO}ul.prototype.isReactComponent={};ul.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ul.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function OO(){}OO.prototype=ul.prototype;function cS(e,t,n){this.props=e,this.context=t,this.refs=vO,this.updater=n||RO}var uS=cS.prototype=new OO;uS.constructor=cS;NO(uS,ul.prototype);uS.isPureReactComponent=!0;var VC=Array.isArray,AO=Object.prototype.hasOwnProperty,dS={current:null},IO={key:!0,ref:!0,__self:!0,__source:!0};function DO(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)AO.call(t,r)&&!IO.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1<s){for(var c=Array(s),d=0;d<s;d++)c[d]=arguments[d+2];i.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)i[r]===void 0&&(i[r]=s[r]);return{$$typeof:Eu,type:e,key:o,ref:a,props:i,_owner:dS.current}}function KU(e,t){return{$$typeof:Eu,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function pS(e){return typeof e=="object"&&e!==null&&e.$$typeof===Eu}function QU(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var zC=/\/+/g;function dg(e,t){return typeof e=="object"&&e!==null&&e.key!=null?QU(""+e.key):t.toString(36)}function Ep(e,t,n,r,i){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(o){case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case Eu:case UU:a=!0}}if(a)return a=e,i=i(a),e=r===""?"."+dg(a,0):r,VC(i)?(n="",e!=null&&(n=e.replace(zC,"$&/")+"/"),Ep(i,t,n,"",function(d){return d})):i!=null&&(pS(i)&&(i=KU(i,n+(!i.key||a&&a.key===i.key?"":(""+i.key).replace(zC,"$&/")+"/")+e)),t.push(i)),1;if(a=0,r=r===""?".":r+":",VC(e))for(var s=0;s<e.length;s++){o=e[s];var c=r+dg(o,s);a+=Ep(o,t,n,c,i)}else if(c=qU(e),typeof c=="function")for(e=c.call(e),s=0;!(o=e.next()).done;)o=o.value,c=r+dg(o,s++),a+=Ep(o,t,n,c,i);else if(o==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return a}function Ad(e,t,n){if(e==null)return e;var r=[],i=0;return Ep(e,r,"","",function(o){return t.call(n,o,i++)}),r}function XU(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var In={current:null},hp={transition:null},jU={ReactCurrentDispatcher:In,ReactCurrentBatchConfig:hp,ReactCurrentOwner:dS};function wO(){throw Error("act(...) is not supported in production builds of React.")}Ge.Children={map:Ad,forEach:function(e,t,n){Ad(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Ad(e,function(){t++}),t},toArray:function(e){return Ad(e,function(t){return t})||[]},only:function(e){if(!pS(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};Ge.Component=ul;Ge.Fragment=FU;Ge.Profiler=GU;Ge.PureComponent=cS;Ge.StrictMode=BU;Ge.Suspense=VU;Ge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=jU;Ge.act=wO;Ge.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=NO({},e.props),i=e.key,o=e.ref,a=e._owner;if(t!=null){if(t.ref!==void 0&&(o=t.ref,a=dS.current),t.key!==void 0&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)AO.call(t,c)&&!IO.hasOwnProperty(c)&&(r[c]=t[c]===void 0&&s!==void 0?s[c]:t[c])}var c=arguments.length-2;if(c===1)r.children=n;else if(1<c){s=Array(c);for(var d=0;d<c;d++)s[d]=arguments[d+2];r.children=s}return{$$typeof:Eu,type:e.type,key:i,ref:o,props:r,_owner:a}};Ge.createContext=function(e){return e={$$typeof:HU,_currentValue:e,_currentValue2:e,_threadCountLine truncated
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var ZU=B,JU=Symbol.for("react.element"),eF=Symbol.for("react.fragment"),tF=Object.prototype.hasOwnProperty,nF=ZU.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,rF={key:!0,ref:!0,__self:!0,__source:!0};function xO(e,t,n){var r,i={},o=null,a=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(a=t.ref);for(r in t)tF.call(t,r)&&!rF.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:JU,type:e,key:o,ref:a,props:i,_owner:nF.current}}am.Fragment=eF;am.jsx=xO;am.jsxs=xO;yO.exports=am;var N=yO.exports,AE={},MO={exports:{}},ur={},LO={exports:{}},kO={};/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/(function(e){function t(D,Y){var V=D.length;D.push(Y);e:for(;0<V;){var Z=V-1>>>1,oe=D[Z];if(0<i(oe,Y))D[Z]=Y,D[V]=oe,V=Z;else break e}}function n(D){return D.length===0?null:D[0]}function r(D){if(D.length===0)return null;var Y=D[0],V=D.pop();if(V!==Y){D[0]=V;e:for(var Z=0,oe=D.length,Oe=oe>>>1;Z<Oe;){var ze=2*(Z+1)-1,be=D[ze],Ce=ze+1,yt=D[Ce];if(0>i(be,V))Ce<oe&&0>i(yt,be)?(D[Z]=yt,D[Ce]=V,Z=Ce):(D[Z]=be,D[ze]=V,Z=ze);else if(Ce<oe&&0>i(yt,V))D[Z]=yt,D[Ce]=V,Z=Ce;else break e}}return Y}function i(D,Y){var V=D.sortIndex-Y.sortIndex;return V!==0?V:D.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var c=[],d=[],p=1,_=null,f=3,g=!1,E=!1,S=!1,b=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function R(D){for(var Y=n(d);Y!==null;){if(Y.callback===null)r(d);else if(Y.startTime<=D)r(d),Y.sortIndex=Y.expirationTime,t(c,Y);else break;Y=n(d)}}function O(D){if(S=!1,R(D),!E)if(n(c)!==null)E=!0,se(I);else{var Y=n(d);Y!==null&&M(O,Y.startTime-D)}}function I(D,Y){E=!1,S&&(S=!1,T($),$=-1),g=!0;var V=f;try{for(R(Y),_=n(c);_!==null&&(!(_.expirationTime>Y)||D&&!ae());){var Z=_.callback;if(typeof Z=="function"){_.callback=null,f=_.priorityLevel;var oe=Z(_.expirationTime<=Y);Y=e.unstable_now(),typeof oe=="function"?_.callback=oe:_===n(c)&&r(c),R(Y)}else r(c);_=n(c)}if(_!==null)var Oe=!0;else{var ze=n(d);ze!==null&&M(O,ze.startTime-Y),Oe=!1}return Oe}finally{_=null,f=V,g=!1}}var x=!1,k=null,$=-1,z=5,H=-1;function ae(){return!(e.unstable_now()-H<z)}function _e(){if(k!==null){var D=e.unstable_now();H=D;var Y=!0;try{Y=k(!0,D)}finally{Y?ue():(x=!1,k=null)}}else x=!1}var ue;if(typeof y=="function")ue=function(){y(_e)};else if(typeof MessageChannel<"u"){var me=new MessageChannel,he=me.port2;me.port1.onmessage=_e,ue=function(){he.postMessage(null)}}else ue=function(){b(_e,0)};function se(D){k=D,x||(x=!0,ue())}function M(D,Y){$=b(function(){D(e.unstable_now())},Y)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(D){D.callback=null},e.unstable_continueExecution=function(){E||g||(E=!0,se(I))},e.unstable_forceFrameRate=function(D){0>D||125<D?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):z=0<D?Math.floor(1e3/D):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(D){switch(f){case 1:case 2:case 3:var Y=3;break;default:Y=f}var V=f;f=Y;try{return D()}finally{f=V}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(D,Y){switch(D){case 1:case 2:case 3:case 4:case 5:break;default:D=3}var V=f;f=D;try{return Y()}finally{f=V}},e.unstable_scheduleCallback=function(D,Y,V){var Z=e.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?Z+V:Z):V=Z,D){case 1:var oe=-1;break;case 2:oe=250;break;case 5:oe=1073741823;break;case 4:oe=1e4;break;default:oe=5e3}return oe=V+oe,D={id:p++,callback:Y,priorityLevel:D,startTime:V,expirationTime:oe,sortIndex:-1},V>Z?(D.sortIndex=V,t(d,D),n(c)===null&&D===n(d)&&(S?(T($),$=-1):S=!0,M(O,V-Z))):(D.sortIndex=oe,t(c,D),E||g||(E=!0,se(I))),D},e.unstable_shouldYield=ae,e.unstable_wrapCallback=function(D){var Y=f;return function(){var V=f;f=Y;try{return D.apply(this,arguments)}finally{f=V}}}})(kO);LO.exports=kO;var iF=LO.exports;/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var oF=B,cr=iF;function ee(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var PO=new Set,Mc={};function Ha(e,t){Ks(e,t),Ks(e+"Capture",t)}function Ks(e,t){for(Mc[e]=t,e=0;e<t.length;e++)PO.add(t[e])}var Fi=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),IE=Object.prototype.hasOwnProperty,aF=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,WC={},qC={};function sF(e){return IE.call(qC,e)?!0:IE.call(WC,e)?!1:aF.test(e)?qC[e]=!0:(WC[e]=!0,!1)}function lF(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function cF(e,t,n,r){if(t===null||typeof t>"u"||lF(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Dn(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var rn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){rn[e]=new Dn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];rn[t]=new Dn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){rn[e]=new Dn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){rn[e]=new Dn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){rn[e]=new Dn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){rn[e]=new Dn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){rn[e]=new Dn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){rn[e]=new Dn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){rn[e]=new Dn(e,5,!1,e.toLowerCase(),null,!1,!1)});var _S=/[\-:]([a-z])/g;function mS(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(_S,mS);rn[t]=new Dn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(_S,mS);rn[t]=new Dn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(_S,mS);rn[t]=new Dn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){rn[e]=new Dn(e,1,!1,e.toLowerCase(),null,!1,!1)});rn.xlinkHref=new Dn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){rn[e]=new Dn(e,1,!1,e.toLowerCase(),null,!0,!0)});function fS(e,t,n,r){var i=rn.hasOwnProperty(t)?rn[t]:null;(i!==null?i.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!== Line truncated
`+pg+e}var _g=!1;function mg(e,t){if(!e||_g)return"";_g=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var r=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){r=d}e.call(t.prototype)}else{try{throw Error()}catch(d){r=d}e()}}catch(d){if(d&&r&&typeof d.stack=="string"){for(var i=d.stack.split(`
`),o=r.stack.split(`
`),a=i.length-1,s=o.length-1;1<=a&&0<=s&&i[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(i[a]!==o[s]){if(a!==1||s!==1)do if(a--,s--,0>s||i[a]!==o[s]){var c=`
`+i[a].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=a&&0<=s);break}}}finally{_g=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?sc(e):""}function uF(e){switch(e.tag){case 5:return sc(e.type);case 16:return sc("Lazy");case 13:return sc("Suspense");case 19:return sc("SuspenseList");case 0:case 2:case 15:return e=mg(e.type,!1),e;case 11:return e=mg(e.type.render,!1),e;case 1:return e=mg(e.type,!0),e;default:return""}}function ME(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ys:return"Fragment";case bs:return"Portal";case DE:return"Profiler";case gS:return"StrictMode";case wE:return"Suspense";case xE:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case FO:return(e.displayName||"Context")+".Consumer";case UO:return(e._context.displayName||"Context")+".Provider";case ES:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case hS:return t=e.displayName||null,t!==null?t:ME(e.type)||"Memo";case so:t=e._payload,e=e._init;try{return ME(e(t))}catch{}}return null}function dF(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ME(t);case 8:return t===gS?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Uo(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function GO(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function pF(e){var t=GO(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Dd(e){e._valueTracker||(e._valueTracker=pF(e))}function YO(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=GO(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Fp(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function LE(e,t){var n=t.checked;return bt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function QC(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Uo(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function HO(e,t){t=t.checked,t!=null&&fS(e,"checked",t,!1)}function kE(e,t){HO(e,t);var n=Uo(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?PE(e,t.type,n):t.hasOwnProperty("defaultValue")&&PE(e,t.type,Uo(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function XC(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function PE(e,t,n){(t!=="number"||Fp(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var lc=Array.isArray;function ks(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t["$"+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty("$"+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Uo(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function UE(e,t){if(t.dan Line truncated
`).replace(yB,"")}function Fd(e,t,n){if(t=SR(t),SR(e)!==t&&n)throw Error(ee(425))}function Wp(){}var XE=null,jE=null;function ZE(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var JE=typeof setTimeout=="function"?setTimeout:void 0,CB=typeof clearTimeout=="function"?clearTimeout:void 0,TR=typeof Promise=="function"?Promise:void 0,RB=typeof queueMicrotask=="function"?queueMicrotask:typeof TR<"u"?function(e){return TR.resolve(null).then(e).catch(NB)}:JE;function NB(e){setTimeout(function(){throw e})}function Og(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n==="/$"){if(r===0){e.removeChild(i),Fc(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=i}while(n);Fc(t)}function Io(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function bR(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var pl=Math.random().toString(36).slice(2),ci="__reactFiber$"+pl,$c="__reactProps$"+pl,Bi="__reactContainer$"+pl,eh="__reactEvents$"+pl,vB="__reactListeners$"+pl,OB="__reactHandles$"+pl;function fa(e){var t=e[ci];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Bi]||n[ci]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=bR(e);e!==null;){if(n=e[ci])return n;e=bR(e)}return t}e=n,n=e.parentNode}return null}function Tu(e){return e=e[ci]||e[Bi],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function vs(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(ee(33))}function dm(e){return e[$c]||null}var th=[],Os=-1;function Vo(e){return{current:e}}function ut(e){0>Os||(e.current=th[Os],th[Os]=null,Os--)}function it(e,t){Os++,th[Os]=e.current,e.current=t}var Fo={},dn=Vo(Fo),Vn=Vo(!1),xa=Fo;function Qs(e,t){var n=e.type.contextTypes;if(!n)return Fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function zn(e){return e=e.childContextTypes,e!=null}function qp(){ut(Vn),ut(dn)}function yR(e,t,n){if(dn.current!==Fo)throw Error(ee(168));it(dn,t),it(Vn,n)}function DA(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(ee(108,dF(e)||"Unknown",i));return bt({},n,r)}function Kp(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Fo,xa=dn.current,it(dn,e),it(Vn,Vn.current),!0}function CR(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=DA(e,t,xa),r.__reactInternalMemoizedMergedChildContext=e,ut(Vn),ut(dn),it(dn,e)):ut(Vn),it(Vn,n)}var wi=null,pm=!1,Ag=!1;function wA(e){wi===null?wi=[e]:wi.push(e)}function AB(e){pm=!0,wA(e)}function zo(){if(!Ag&&wi!==null){Ag=!0;var e=0,t=Xe;try{var n=wi;for(Xe=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}wi=null,pm=!1}catch(i){throw wi!==null&&(wi=wi.slice(e+1)),nA(TS,zo),i}finally{Xe=t,Ag=!1}}return null}var As=[],Is=0,Qp=null,Xp=0,Nr=[],vr=0,Ma=null,Mi=1,Li="";function ca(e,t){As[Is++]=Xp,As[Is++]=Qp,Qp=e,Xp=t}function xA(e,t,n){Nr[vr++]=Mi,Nr[vr++]=Li,Nr[vr++]=Ma,Ma=e;var r=Mi;e=Li;var i=32-Wr(r)-1;r&=~(1<<i),n+=1;var o=32-Wr(t)+i;if(30<o){var a=i-i%5;o=(r&(1<<a)-1).toString(32),r>>=a,i-=a,Mi=1<<32-Wr(t)+i|n<<i|r,Li=o+e}else Mi=1<<o|n<<i|r,Li=e}function IS(e){e.return!==null&&(ca(e,1),xA(e,1,0))}function DS(e){for(;e===Qp;)Qp=As[--Is],As[Is]=null,Xp=As[--Is],As[Is]=null;for(;e===Ma;)Ma=Nr[--vr],Nr[vr]=null,Li=Nr[--vr],Nr[vr]=null,Mi=Nr[--vr],Nr[vr]=null}var sr=null,ir=null,gt=!1,Hr=null;function MA(e,t){var n=Or(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function RR(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,sr=e,ir=Io(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,sr=e,ir=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Ma!==null?{id:Mi,overflow:Li}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Or(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,sr=e,ir=null,!0):!1;default:return!1}}function nh(e){return(e.mode&1)!==0&&(e.flags&128)===0}function rh(e){if(gt){var t=ir;if(t){var n=t;if(!RR(e,t)){if(nh(e))throw Error(ee(418));t=Io(n.nextSibling);var r=sr;t&&RR(e,t)?MA(r,n):(e.flags=e.flags&-4097|2,gt=!1,sr=e)}}else{if(nh(e))throw Error(ee(418));e.flags=e.flags&-4097|2,gt=!1,sr=e}}}function NR(e){ Line truncated
Error generating stack: `+o.message+`
`+o.stack}return{value:e,source:t,stack:i,digest:null}}function Mg(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function sh(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var UB=typeof WeakMap=="function"?WeakMap:Map;function aI(e,t,n){n=Pi(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){i_||(i_=!0,Eh=r),sh(e,t)},n}function sI(e,t,n){n=Pi(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){sh(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){sh(e,t),typeof r!="function"&&(wo===null?wo=new Set([this]):wo.add(this));var a=t.stack;this.componentDidCatch(t.value,{componentStack:a!==null?a:""})}),n}function MR(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new UB;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=jB.bind(null,e,t,n),t.then(e,e))}function LR(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function kR(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Pi(-1,1),t.tag=2,Do(n,t,1))),n.lanes|=1),e)}var FB=$i.ReactCurrentOwner,$n=!1;function yn(e,t,n,r){t.child=e===null?PA(t,null,n,r):js(t,e.child,n,r)}function PR(e,t,n,r,i){n=n.render;var o=t.ref;return Bs(t,i),r=YS(e,t,n,r,o,i),n=HS(),e!==null&&!$n?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Yi(e,t,i)):(gt&&n&&IS(t),t.flags|=1,yn(e,t,r,i),t.child)}function UR(e,t,n,r,i){if(e===null){var o=n.type;return typeof o=="function"&&!ZS(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,lI(e,t,o,r,i)):(e=Ap(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!(e.lanes&i)){var a=o.memoizedProps;if(n=n.compare,n=n!==null?n:Gc,n(a,r)&&e.ref===t.ref)return Yi(e,t,i)}return t.flags|=1,e=Mo(o,r),e.ref=t.ref,e.return=t,t.child=e}function lI(e,t,n,r,i){if(e!==null){var o=e.memoizedProps;if(Gc(o,r)&&e.ref===t.ref)if($n=!1,t.pendingProps=r=o,(e.lanes&i)!==0)e.flags&131072&&($n=!0);else return t.lanes=e.lanes,Yi(e,t,i)}return lh(e,t,n,r,i)}function cI(e,t,n){var r=t.pendingProps,i=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},it(xs,nr),nr|=n;else{if(!(n&1073741824))return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,it(xs,nr),nr|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,it(xs,nr),nr|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,it(xs,nr),nr|=r;return yn(e,t,i,n),t.child}function uI(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function lh(e,t,n,r,i){var o=zn(n)?xa:dn.current;return o=Qs(t,o),Bs(t,i),n=YS(e,t,n,r,o,i),r=HS(),e!==null&&!$n?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Yi(e,t,i)):(gt&&r&&IS(t),t.flags|=1,yn(e,t,n,i),t.child)}function FR(e,t,n,r,i){if(zn(n)){var o=!0;Kp(t)}else o=!1;if(Bs(t,i),t.stateNode===null)Np(e,t),oI(t,n,r),ah(t,n,r,i),r=!0;else if(e===null){var a=t.stateNode,s=t.memoizedProps;a.props=s;var c=a.context,d=n.contextType;typeof d=="object"&&d!==null?d=wr(d):(d=zn(n)?xa:dn.current,d=Qs(t,d));var p=n.getDerivedStateFromProps,_=typeof p=="function"||typeof a.getSnapshotBeforeUpdate=="function";_||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==r||c!==d)&&xR(t,a,r,d),lo=!1;var f=t.memoizedState;a.state=f,Jp(t,r,a,i),c=t.memoizedState,s!==r||f!==c||Vn.current||lo?(typeof p=="function"&&(oh(t,n,p,r),c=t.memoizedState),(s=lo||wR(t,n,s,r,f,c,d))?(_||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(t.flags|=4194308)):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),a.props=r,a.state=c,a.context=d,r=s):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,FA(e,t),s=t.memoizedProps,d=t.type===t.elementType?s:Gr(t.type,s),a.props=d,_=t.pendingProps,f=a.context,c=n.contextType,typeof c=="object"&&c!==null?c=wr(c):(c=zn(n)?xa:dn.current,c=Qs(t,c));var g=n.getDerivedStateFromProps;(p=typeof g=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==_||f!==c)&&xR(t,a,r,c),lo=!1,f=t.memoizedState,a.state=f,Jp(t,r,a,i);var E=t.memoizedS Line truncated
`)}}Ua.empty=new Ua(!0);class mG{constructor(t,n){this.string=t,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=t.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(t){return this.next==t&&(this.pos++||!0)}err(t){throw new SyntaxError(t+" (in content expression '"+this.string+"')")}}function HI(e){let t=[];do t.push(fG(e));while(e.eat("|"));return t.length==1?t[0]:{type:"choice",exprs:t}}function fG(e){let t=[];do t.push(gG(e));while(e.next&&e.next!=")"&&e.next!="|");return t.length==1?t[0]:{type:"seq",exprs:t}}function gG(e){let t=SG(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else if(e.eat("{"))t=EG(e,t);else break;return t}function JR(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function EG(e,t){let n=JR(e),r=n;return e.eat(",")&&(e.next!="}"?r=JR(e):r=-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:t}}function hG(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let o in n){let a=n[o];a.groups.indexOf(t)>-1&&i.push(a)}return i.length==0&&e.err("No node type or group '"+t+"' found"),i}function SG(e){if(e.eat("(")){let t=HI(e);return e.eat(")")||e.err("Missing closing paren"),t}else if(/\W/.test(e.next))e.err("Unexpected token '"+e.next+"'");else{let t=hG(e,e.next).map(n=>(e.inline==null?e.inline=n.isInline:e.inline!=n.isInline&&e.err("Mixing inline and block content"),{type:"name",value:n}));return e.pos++,t.length==1?t[0]:{type:"choice",exprs:t}}}function TG(e){let t=[[]];return i(o(e,0),n()),t;function n(){return t.push([])-1}function r(a,s,c){let d={term:c,to:s};return t[a].push(d),d}function i(a,s){a.forEach(c=>c.to=s)}function o(a,s){if(a.type=="choice")return a.exprs.reduce((c,d)=>c.concat(o(d,s)),[]);if(a.type=="seq")for(let c=0;;c++){let d=o(a.exprs[c],s);if(c==a.exprs.length-1)return d;i(d,s=n())}else if(a.type=="star"){let c=n();return r(s,c),i(o(a.expr,c),c),[r(c)]}else if(a.type=="plus"){let c=n();return i(o(a.expr,s),c),i(o(a.expr,c),c),[r(c)]}else{if(a.type=="opt")return[r(s)].concat(o(a.expr,s));if(a.type=="range"){let c=s;for(let d=0;d<a.min;d++){let p=n();i(o(a.expr,c),p),c=p}if(a.max==-1)i(o(a.expr,c),c);else for(let d=a.min;d<a.max;d++){let p=n();r(c,p),i(o(a.expr,c),p),c=p}return[r(c)]}else{if(a.type=="name")return[r(s,void 0,a.value)];throw new Error("Unknown expr type")}}}}function $I(e,t){return t-e}function eN(e,t){let n=[];return r(t),n.sort($I);function r(i){let o=e[i];if(o.length==1&&!o[0].term)return r(o[0].to);n.push(i);for(let a=0;a<o.length;a++){let{term:s,to:c}=o[a];!s&&n.indexOf(c)==-1&&r(c)}}}function bG(e){let t=Object.create(null);return n(eN(e,0));function n(r){let i=[];r.forEach(a=>{e[a].forEach(({term:s,to:c})=>{if(!s)return;let d;for(let p=0;p<i.length;p++)i[p][0]==s&&(d=i[p][1]);eN(e,c).forEach(p=>{d||i.push([s,d=[]]),d.indexOf(p)==-1&&d.push(p)})})});let o=t[r.join(",")]=new Ua(r.indexOf(e.length-1)>-1);for(let a=0;a<i.length;a++){let s=i[a][1].sort($I);o.next.push({type:i[a][0],next:t[s.join(",")]||n(s)})}return o}}function yG(e,t){for(let n=0,r=[e];n<r.length;n++){let i=r[n],o=!i.validEnd,a=[];for(let s=0;s<i.next.length;s++){let{type:c,next:d}=i.next[s];a.push(c.name),o&&!(c.isText||c.hasRequiredAttrs())&&(o=!1),r.indexOf(d)==-1&&r.push(d)}o&&t.err("Only non-generatable nodes ("+a.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function VI(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function zI(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let o=e[r];if(o.hasDefault)i=o.default;else throw new RangeError("No value supplied for attribute "+r)}n[r]=i}return n}function WI(e,t,n,r){for(let i in t)if(!(i in e))throw new RangeError(`Unsupported attribute ${i} for ${n} of type ${i}`);for(let i in e){let o=e[i];o.validate&&o.validate(t[i])}}function qI(e){let t=Object.create(null);if(e)for(let n in e)t[n]=new RG(e[n]);return t}let tN=class KI{constructor(t,n,r){this.name=t,this.schema=n,this.spec=r,this.markSet=null,this.groups=r.group?r.group.split(" "):[],this.attrs=qI(r.attrs),this.defaultAttrs=VI(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(r.inline||t=="text"),this.isText=t=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==Ua.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let t in this.attrs)if(this.attrs[t].isRequired)return!0;return!1}compatibleContent(t){return this==t||this.contentMatch.compatible(t.contentMatch)}computeAttrs(t){return!t&&this.defaultAttrs?this.defaultAttrs:zI(this.attrs,t)}create Line truncated
`):n=n.replace(/\r?\n|\r/g," ");else if(n=n.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let i=r.content[r.content.length-1],o=t.previousSibling;(!i||o&&o.nodeName=="BR"||i.isText&&/[ \t\r\n\u000c]$/.test(i.text))&&(n=n.slice(1))}n&&this.insertNode(this.parser.schema.text(n)),this.findInText(t)}else this.findInside(t)}addElement(t,n){let r=t.nodeName.toLowerCase(),i;jI.hasOwnProperty(r)&&this.parser.normalizeLists&&AG(t);let o=this.options.ruleFromNode&&this.options.ruleFromNode(t)||(i=this.parser.matchTag(t,this,n));if(o?o.ignore:OG.hasOwnProperty(r))this.findInside(t),this.ignoreFallback(t);else if(!o||o.skip||o.closeParent){o&&o.closeParent?this.open=Math.max(0,this.open-1):o&&o.skip.nodeType&&(t=o.skip);let a,s=this.top,c=this.needsBlock;if(XI.hasOwnProperty(r))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),a=!0,s.type||(this.needsBlock=!0);else if(!t.firstChild){this.leafFallback(t);return}o&&o.skip?this.addAll(t):this.withStyleRules(t,()=>this.addAll(t)),a&&this.sync(s),this.needsBlock=c}else this.withStyleRules(t,()=>{this.addElementByRule(t,o,o.consuming===!1?i:void 0)})}leafFallback(t){t.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(t.ownerDocument.createTextNode(`
`))}ignoreFallback(t){t.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"))}readStyles(t){let n=je.none,r=je.none;if(t.length)for(let i=0;i<this.parser.matchedStyles.length;i++){let o=this.parser.matchedStyles[i],a=t.getPropertyValue(o);if(a)for(let s=void 0;;){let c=this.parser.matchStyle(o,a,this,s);if(!c)break;if(c.ignore)return null;if(c.clearMark?this.top.pendingMarks.concat(this.top.activeMarks).forEach(d=>{c.clearMark(d)&&(r=d.addToSet(r))}):n=this.parser.schema.marks[c.mark].create(c.attrs).addToSet(n),c.consuming===!1)s=c;else break}}return[n,r]}addElementByRule(t,n,r){let i,o,a;n.node?(o=this.parser.schema.nodes[n.node],o.isLeaf?this.insertNode(o.create(n.attrs))||this.leafFallback(t):i=this.enter(o,n.attrs||null,n.preserveWhitespace)):(a=this.parser.schema.marks[n.mark].create(n.attrs),this.addPendingMark(a));let s=this.top;if(o&&o.isLeaf)this.findInside(t);else if(r)this.addElement(t,r);else if(n.getContent)this.findInside(t),n.getContent(t,this.parser.schema).forEach(c=>this.insertNode(c));else{let c=t;typeof n.contentElement=="string"?c=t.querySelector(n.contentElement):typeof n.contentElement=="function"?c=n.contentElement(t):n.contentElement&&(c=n.contentElement),this.findAround(t,c,!0),this.addAll(c)}i&&this.sync(s)&&this.open--,a&&this.removePendingMark(a,s)}addAll(t,n,r){let i=n||0;for(let o=n?t.childNodes[n]:t.firstChild,a=r==null?null:t.childNodes[r];o!=a;o=o.nextSibling,++i)this.findAtPoint(t,i),this.addDOM(o);this.findAtPoint(t,i)}findPlace(t){let n,r;for(let i=this.open;i>=0;i--){let o=this.nodes[i],a=o.findWrapping(t);if(a&&(!n||n.length>a.length)&&(n=a,r=o,!a.length)||o.solid)break}if(!n)return!1;this.sync(r);for(let i=0;i<n.length;i++)this.enterInner(n[i],null,!1);return!0}insertNode(t){if(t.isInline&&this.needsBlock&&!this.top.type){let n=this.textblockFromContext();n&&this.enterInner(n)}if(this.findPlace(t)){this.closeExtra();let n=this.top;n.applyPending(t.type),n.match&&(n.match=n.match.matchType(t.type));let r=n.activeMarks;for(let i=0;i<t.marks.length;i++)(!n.type||n.type.allowsMarkType(t.marks[i].type))&&(r=t.marks[i].addToSet(r));return n.content.push(t.mark(r)),!0}return!1}enter(t,n,r){let i=this.findPlace(t.create(n));return i&&this.enterInner(t,n,!0,r),i}enterInner(t,n=null,r=!1,i){this.closeExtra();let o=this.top;o.applyPending(t),o.match=o.match&&o.match.matchType(t);let a=rN(t,i,o.options);o.options&Nc&&o.content.length==0&&(a|=Nc),this.nodes.push(new Wd(t,n,o.activeMarks,o.pendingMarks,r,null,a)),this.open++}closeExtra(t=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(t));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(this.isOpen||this.options.topOpen)}sync(t){for(let n=this.open;n>=0;n--)if(this.nodes[n]==t)return this.open=n,!0;return!1}get currentPos(){this.closeExtra();let t=0;for(let n=this.open;n>=0;n--){let r=this.nodes[n].content;for(let i=r.length-1;i>=0;i--)t+=r[i].nodeSize;n&&t++}return t}findAtPoint(t,n){if(this.find)for(let r=0;r<this.find.length;r++)this.find[r].node==t&&this.find[r].offset==n&&(this.find[r].pos=this.currentPos)}findInside(t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].pos==null&&t.nodeType==1&&t.contains(this.find[n].node)&&(this.find[n].pos=this.currentPos)}findAround(t,n,r){if(t!=n&&this.find)for(let i=0;i<this.find.length;i++)this.find[i].pos==null&&t.nodeType==1&&t.contains(this.find[i].node)&&n.compareDocumentPosition(this.find[i].node)&(r?2:4)&&(this.find[i].pos=this.currentPos)}findInText(t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==t&&(this.find[n].pos=this.currentPos-(t.nodeValue.length-this.find[n].offset))}matchesContext(t){if(t.indexOf("|")>-1)return t.split(/\s*\|\s*/).some(this.matchesContext,this);let n=t.split("/"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),o=-(r?r.depth+1:0)+(i?0:1),a=(s,c)=>{for(;s>=0;s--){let d=n[s];if(d==""){if(s==n.length-1||s==0)continue;for(;c>=o;c--)if(a(s-1,c))return!0;return!1}else{let p=c>0||c==0&&i?this.nodes[c].type:r&&c>=o?r.node(c-o).type:null;if(!p||p.name!=d&&p.groups.indexOf(d)==-1)return!1;c--}}return!0};return a(n.length-1,this.open)}textblockFromContext(){let t=this.options.context;if(t)for(let n=t.depth;n>=0;n--){let r=t.node(n).contentMatchAt(t.indexAfter(n)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let n in this.parser.schema.nodes){let r=this.parser.schema.nodes[n];if(r.isTextblock&&r.defaultAttrs)return r}}addPendingMark(t){let n=wG(t,this.top.pendingMarks);n&&this.top.stashMarks.push(n),this.top.pendingMarks=t.addToSet(this.top.pendingMarks)}removePendingMark(t,n){for(let r=this.open;r>=0;r--){let i=this.nodes[r];if(i.pendingMarks.lastIndexOf(t)>-1)i.pendingMarks=t.removeFromSet(i.pendingMarks);else{i.activeMarks=t.removeFromSet(i.activeMarks);let a=i.popFromStashMark(t);a&&i.type&&i.type.allow Line truncated
`))}})}function WG(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function qG(e,t,n,r,i){let o=e.doc.nodeAt(t);if(!o)throw new RangeError("No node at given position");n||(n=o.type);let a=n.create(r,null,i||o.marks);if(o.isLeaf)return e.replaceWith(t,t+o.nodeSize,a);if(!n.validContent(o.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new Wt(t,t+o.nodeSize,t+1,t+o.nodeSize-1,new le(J.from(a),0,0),1,!0))}function Hs(e,t,n=1,r){let i=e.resolve(t),o=i.depth-n,a=r&&r[r.length-1]||i.parent;if(o<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!a.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let d=i.depth-1,p=n-2;d>o;d--,p--){let _=i.node(d),f=i.index(d);if(_.type.spec.isolating)return!1;let g=_.content.cutByIndex(f,_.childCount),E=r&&r[p+1];E&&(g=g.replaceChild(0,E.type.create(E.attrs)));let S=r&&r[p]||_;if(!_.canReplace(f+1,_.childCount)||!S.type.validContent(g))return!1}let s=i.indexAfter(o),c=r&&r[0];return i.node(o).canReplaceWith(s,s,c?c.type:i.node(o+1).type)}function KG(e,t,n=1,r){let i=e.doc.resolve(t),o=J.empty,a=J.empty;for(let s=i.depth,c=i.depth-n,d=n-1;s>c;s--,d--){o=J.from(i.node(s).copy(o));let p=r&&r[d];a=J.from(p?p.type.create(p.attrs,a):i.node(s).copy(a))}e.step(new $t(t,t,new le(o.append(a),n,n),!0))}function Wo(e,t){let n=e.resolve(t),r=n.index();return iD(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function iD(e,t){return!!(e&&t&&!e.isLeaf&&e.canAppend(t))}function Cm(e,t,n=-1){let r=e.resolve(t);for(let i=r.depth;;i--){let o,a,s=r.index(i);if(i==r.depth?(o=r.nodeBefore,a=r.nodeAfter):n>0?(o=r.node(i+1),s++,a=r.node(i).maybeChild(s)):(o=r.node(i).maybeChild(s-1),a=r.node(i+1)),o&&!o.isTextblock&&iD(o,a)&&r.node(i).canReplace(s,s+1))return t;if(i==0)break;t=n<0?r.before(i):r.after(i)}}function QG(e,t,n){let r=new $t(t-n,t+n,le.empty,!0);e.step(r)}function XG(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(r.parentOffset==0)for(let i=r.depth-1;i>=0;i--){let o=r.index(i);if(r.node(i).canReplaceWith(o,o,n))return r.before(i+1);if(o>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let o=r.indexAfter(i);if(r.node(i).canReplaceWith(o,o,n))return r.after(i+1);if(o<r.node(i).childCount)return null}return null}function jG(e,t,n){let r=e.resolve(t);if(!n.content.size)return t;let i=n.content;for(let o=0;o<n.openStart;o++)i=i.firstChild.content;for(let o=1;o<=(n.openStart==0&&n.size?2:1);o++)for(let a=r.depth;a>=0;a--){let s=a==r.depth?0:r.pos<=(r.start(a+1)+r.end(a+1))/2?-1:1,c=r.index(a)+(s>0?1:0),d=r.node(a),p=!1;if(o==1)p=d.canReplace(c,c,i);else{let _=d.contentMatchAt(c).findWrapping(i.firstChild.type);p=_&&d.canReplaceWith(c,c,_[0])}if(p)return s==0?r.pos:s<0?r.before(a+1):r.after(a+1)}return null}function Rm(e,t,n=t,r=le.empty){if(t==n&&!r.size)return null;let i=e.resolve(t),o=e.resolve(n);return oD(i,o,r)?new $t(t,n,r):new ZG(i,o,r).fit()}function oD(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}class ZG{constructor(t,n,r){this.$from=t,this.$to=n,this.unplaced=r,this.frontier=[],this.placed=J.empty;for(let i=0;i<=t.depth;i++){let o=t.node(i);this.frontier.push({type:o.type,match:o.contentMatchAt(t.indexAfter(i))})}for(let i=t.depth;i>0;i--)this.placed=J.from(t.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let d=this.findFittable();d?this.placeNodes(d):this.openMore()||this.dropNode()}let t=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,r=this.$from,i=this.close(t<0?this.$to:r.doc.resolve(t));if(!i)return null;let o=this.placed,a=r.depth,s=i.depth;for(;a&&s&&o.childCount==1;)o=o.firstChild.content,a--,s--;let c=new le(o,a,s);return t>-1?new Wt(r.pos,t,this.$to.pos,this.$to.end(),c,n):c.size||r.pos!=this.$to.pos?new $t(r.pos,i.pos,c):null}findFittable(){let t=this.unplaced.openStart;for(let n=this.unplaced.content,r=0,i=this.unplaced.openEnd;r<t;r++){let o=n.firstChild;if(n.childCount>1&&(i=0),o.type.spec.isolating&&i<=r){t=r;break}n=o.content}for(let n=1;n<=2;n++)for(let r=n==1?t:this.unplaced.openStart;r>=0;r--){let i,o=null;r?(o=Gg(this.unplaced.content,r-1).firstChild,i=o.content):i=this.unplaced.content;let a=i.firstChild;for(let s=this.depth;s>=0;s--){let{type:c,match:d}=this.frontier[s],p,_=null;if(n==1&&(a?d.matchType(a.type)||(_=d.fillBefore(J.from(a),!1)):o&&c.compatibleContent(o.type)))return{sliceDepth:r,frontierDepth:s,parent:o,inject:_};if(n==2&&a&&(p=d.findWrapping(a.type)))return{sliceDepth:r,frontierDepth:s,parent:o,wrap:p};if(o&&d.matchType(o.type))break}}}openMore(){let{content:t,openStart:n,openEnd:r}=this.unplaced,i=Gg(t,n);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new le(t,n+1,Math.max(r,i.size+n>=t.size-r?n+1:0)),!0)}dropNode(){let{content:t,openStart:n,openEnd:r}=this.unplaced,i=Gg(t,n);if(i.c Line truncated
`),p&&g==f.nodeValue.length)for(let E=f,S;E;E=E.parentNode){if(S=E.nextSibling){S.nodeName=="BR"&&(s=c={node:S.parentNode,offset:Jt(S)+1});break}let b=E.pmViewDesc;if(b&&b.node&&b.node.isBlock)break}}else{let E=f.childNodes[g-1];p=E&&(E.nodeName=="BR"||E.contentEditable=="false")}}if(jr&&d.focusNode&&d.focusNode!=c.node&&d.focusNode.nodeType==1){let f=d.focusNode.childNodes[d.focusOffset];f&&f.contentEditable=="false"&&(i=!0)}if(!(i||p&&vn)&&Fa(s.node,s.offset,d.anchorNode,d.anchorOffset)&&Fa(c.node,c.offset,d.focusNode,d.focusOffset))return;let _=!1;if((d.extend||t==n)&&!p){d.collapse(s.node,s.offset);try{t!=n&&d.extend(c.node,c.offset),_=!0}catch{}}if(!_){if(t>n){let g=s;s=c,c=g}let f=document.createRange();f.setEnd(c.node,c.offset),f.setStart(s.node,s.offset),d.removeAllRanges(),d.addRange(f)}}ignoreMutation(t){return!this.contentDOM&&t.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(t,n){for(let r=0,i=0;i<this.children.length;i++){let o=this.children[i],a=r+o.size;if(r==a?t<=a&&n>=r:t<a&&n>r){let s=r+o.border,c=a-o.border;if(t>=s&&n<=c){this.dirty=t==r||n==a?ha:CN,t==s&&n==c&&(o.contentLost||o.dom.parentNode!=this.contentDOM)?o.dirty=gi:o.markDirty(t-s,n-s);return}else o.dirty=o.dom==o.contentDOM&&o.dom.parentNode==this.contentDOM&&!o.children.length?ha:gi}r=a}this.dirty=ha}markParentsDirty(){let t=1;for(let n=this.parent;n;n=n.parent,t++){let r=t==1?ha:CN;n.dirty<r&&(n.dirty=r)}}get domAtom(){return!1}get ignoreForCoords(){return!1}isText(t){return!1}}class SD extends Nu{constructor(t,n,r,i){let o,a=n.type.toDOM;if(typeof a=="function"&&(a=a(r,()=>{if(!o)return i;if(o.parent)return o.parent.posBeforeChild(o)})),!n.type.spec.raw){if(a.nodeType!=1){let s=document.createElement("span");s.appendChild(a),a=s}a.contentEditable="false",a.classList.add("ProseMirror-widget")}super(t,[],a,null),this.widget=n,this.widget=n,o=this}matchesWidget(t){return this.dirty==Dr&&t.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(t){let n=this.widget.spec.stopEvent;return n?n(t):!1}ignoreMutation(t){return t.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get side(){return this.widget.type.side}}class MY extends Nu{constructor(t,n,r,i){super(t,[],n,null),this.textDOM=r,this.text=i}get size(){return this.text.length}localPosFromDOM(t,n){return t!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(t){return{node:this.textDOM,offset:t}}ignoreMutation(t){return t.type==="characterData"&&t.target.nodeValue==t.oldValue}}class Ba extends Nu{constructor(t,n,r,i){super(t,[],r,i),this.mark=n}static create(t,n,r,i){let o=i.nodeViews[n.type.name],a=o&&o(n,i,r);return(!a||!a.dom)&&(a=Va.renderSpec(document,n.type.spec.toDOM(n,r))),new Ba(t,n,a.dom,a.contentDOM||a.dom)}parseRule(){return this.dirty&gi||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(t){return this.dirty!=gi&&this.mark.eq(t)}markDirty(t,n){if(super.markDirty(t,n),this.dirty!=Dr){let r=this.parent;for(;!r.node;)r=r.parent;r.dirty<this.dirty&&(r.dirty=this.dirty),this.dirty=Dr}}slice(t,n,r){let i=Ba.create(this.parent,this.mark,!0,r),o=this.children,a=this.size;n<a&&(o=Mh(o,n,a,r)),t>0&&(o=Mh(o,0,t,r));for(let s=0;s<o.length;s++)o[s].parent=i;return i.children=o,i}}class ko extends Nu{constructor(t,n,r,i,o,a,s,c,d){super(t,[],o,a),this.node=n,this.outerDeco=r,this.innerDeco=i,this.nodeDOM=s}static create(t,n,r,i,o,a){let s=o.nodeViews[n.type.name],c,d=s&&s(n,o,()=>{if(!c)return a;if(c.parent)return c.parent.posBeforeChild(c)},r,i),p=d&&d.dom,_=d&&d.contentDOM;if(n.isText){if(!p)p=document.createTextNode(n.text);else if(p.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else p||({dom:p,contentDOM:_}=Va.renderSpec(document,n.type.spec.toDOM(n)));!_&&!n.isText&&p.nodeName!="BR"&&(p.hasAttribute("contenteditable")||(p.contentEditable="false"),n.type.spec.draggable&&(p.draggable=!0));let f=p;return p=CD(p,r,n),d?c=new LY(t,n,r,i,p,_||null,f,d,o,a+1):n.isText?new Om(t,n,r,i,p,f,o):new ko(t,n,r,i,p,_||null,f,o,a+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let t={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(t.preserveWhitespace="full"),!this.contentDOM)t.getContent=()=>this.node.content;else if(!this.contentLost)t.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let r=this.children[n];if(this.dom.contains(r.dom.parentNode)){t.contentElement=r.dom.parentNode;break}}t.contentElement||(t.getContent=()=>J.empty)}return t}matchesNode(t,n,r){return this.dirty==Dr&&t.eq(this.node)&&xh(n,this.outerDeco)&&r.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(t,n){let r=this.node.inlineContent,i=n,o=t.composing?this.localCom Line truncated
`);return{dom:c,text:f,slice:t}}function ID(e,t,n,r,i){let o=i.parent.type.spec.code,a,s;if(!n&&!t)return null;let c=t&&(r||o||!n);if(c){if(e.someProp("transformPastedText",f=>{t=f(t,o||r,e)}),o)return t?new le(J.from(e.state.schema.text(t.replace(/\r\n?/g,`
`))),0,0):le.empty;let _=e.someProp("clipboardTextParser",f=>f(t,i,r,e));if(_)s=_;else{let f=i.marks(),{schema:g}=e.state,E=Va.fromSchema(g);a=document.createElement("div"),t.split(/(?:\r\n?|\n)+/).forEach(S=>{let b=a.appendChild(document.createElement("p"));S&&b.appendChild(E.serializeNode(g.text(S,f)))})}}else e.someProp("transformPastedHTML",_=>{n=_(n,e)}),a=eH(n),Ru&&tH(a);let d=a&&a.querySelector("[data-pm-slice]"),p=d&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(d.getAttribute("data-pm-slice")||"");if(p&&p[3])for(let _=+p[3];_>0;_--){let f=a.firstChild;for(;f&&f.nodeType!=1;)f=f.nextSibling;if(!f)break;a=f}if(s||(s=(e.someProp("clipboardParser")||e.someProp("domParser")||rT.fromSchema(e.state.schema)).parseSlice(a,{preserveWhitespace:!!(c||p),context:i,ruleFromNode(f){return f.nodeName=="BR"&&!f.nextSibling&&f.parentNode&&!ZY.test(f.parentNode.nodeName)?{ignore:!0}:null}})),p)s=nH(PN(s,+p[1],+p[2]),p[4]);else if(s=le.maxOpen(JY(s.content,i),!0),s.openStart||s.openEnd){let _=0,f=0;for(let g=s.content.firstChild;_<s.openStart&&!g.type.spec.isolating;_++,g=g.firstChild);for(let g=s.content.lastChild;f<s.openEnd&&!g.type.spec.isolating;f++,g=g.lastChild);s=PN(s,_,f)}return e.someProp("transformPasted",_=>{s=_(s,e)}),s}const ZY=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function JY(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let i=t.node(n).contentMatchAt(t.index(n)),o,a=[];if(e.forEach(s=>{if(!a)return;let c=i.findWrapping(s.type),d;if(!c)return a=null;if(d=a.length&&o.length&&wD(c,o,s,a[a.length-1],0))a[a.length-1]=d;else{a.length&&(a[a.length-1]=xD(a[a.length-1],o.length));let p=DD(s,c);a.push(p),i=i.matchType(p.type),o=c}}),a)return J.from(a)}return e}function DD(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,J.from(e));return e}function wD(e,t,n,r,i){if(i<e.length&&i<t.length&&e[i]==t[i]){let o=wD(e,t,n,r.lastChild,i+1);if(o)return r.copy(r.content.replaceChild(r.childCount-1,o));if(r.contentMatchAt(r.childCount).matchType(i==e.length-1?n.type:e[i+1]))return r.copy(r.content.append(J.from(DD(n,e,i+1))))}}function xD(e,t){if(t==0)return e;let n=e.content.replaceChild(e.childCount-1,xD(e.lastChild,t-1)),r=e.contentMatchAt(e.childCount).fillBefore(J.empty,!0);return e.copy(n.append(r))}function Ph(e,t,n,r,i,o){let a=t<0?e.firstChild:e.lastChild,s=a.content;return e.childCount>1&&(o=0),i<r-1&&(s=Ph(s,t,n,r,i+1,o)),i>=n&&(s=t<0?a.contentMatchAt(0).fillBefore(s,o<=i).append(s):s.append(a.contentMatchAt(a.childCount).fillBefore(J.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,a.copy(s))}function PN(e,t,n){return t<e.openStart&&(e=new le(Ph(e.content,-1,t,e.openStart,0,e.openEnd),t,e.openEnd)),n<e.openEnd&&(e=new le(Ph(e.content,1,n,e.openEnd,0,0),e.openStart,n)),e}const MD={thead:["table"],tbody:["table"],tfoot:["table"],caption:["table"],colgroup:["table"],col:["table","colgroup"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","tbody","tr"]};let UN=null;function LD(){return UN||(UN=document.implementation.createHTMLDocument("title"))}function eH(e){let t=/^(\s*<meta [^>]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n=LD().createElement("div"),r=/<([a-z][^>\s]+)/i.exec(e),i;if((i=r&&MD[r[1].toLowerCase()])&&(e=i.map(o=>"<"+o+">").join("")+e+i.map(o=>"</"+o+">").reverse().join("")),n.innerHTML=e,i)for(let o=0;o<i.length;o++)n=n.querySelector(i[o])||n;return n}function tH(e){let t=e.querySelectorAll(Rn?"span:not([class]):not([style])":"span.Apple-converted-space");for(let n=0;n<t.length;n++){let r=t[n];r.childNodes.length==1&&r.textContent==" "&&r.parentNode&&r.parentNode.replaceChild(e.ownerDocument.createTextNode(" "),r)}}function nH(e,t){if(!e.size)return e;let n=e.content.firstChild.type.schema,r;try{r=JSON.parse(t)}catch{return e}let{content:i,openStart:o,openEnd:a}=e;for(let s=r.length-2;s>=0;s-=2){let c=n.nodes[r[s]];if(!c||c.hasRequiredAttrs())break;i=J.from(c.create(r[s+1],i)),o++,a++}return new le(i,o,a)}const On={},An={},rH={touchstart:!0,touchmove:!0};class iH{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:""},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastAndroidDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function oH(e){for(let t in On){let n=On[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=r=>{sH(e,r)&&!uT(e,r)&&(e.editable||!(r.type in An))&&n(e,r)},rH[t]?{passive:!0}:void 0)}vn&&e.dom.addEventListener("input",()=>null),Uh(e)}function To(e,t){e.input.lastSelectionOrigin=t,e.input.lastSelectionTime=Date.now()}function aH(e){e.domObserver.stop();for(let t in e.input.event Line truncated
`).scrollIntoView()),!0)};function KD(e){for(let t=0;t<e.edgeCount;t++){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}const s2=(e,t)=>{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),o=n.indexAfter(-1),a=KD(i.contentMatchAt(o));if(!a||!i.canReplaceWith(o,o,a))return!1;if(t){let s=n.after(),c=e.tr.replaceWith(s,s,a.createAndFill());c.setSelection(He.near(c.doc.resolve(s),1)),t(c.scrollIntoView())}return!0},l2=(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof Kr||r.parent.inlineContent||i.parent.inlineContent)return!1;let o=KD(i.parent.contentMatchAt(i.indexAfter()));if(!o||!o.isTextblock)return!1;if(t){let a=(!r.parentOffset&&i.index()<i.parent.childCount?r:i).pos,s=e.tr.insert(a,o.createAndFill());s.setSelection(Ie.create(s.doc,a+1)),t(s.scrollIntoView())}return!0},c2=(e,t)=>{let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let o=n.before();if(Hs(e.doc,o))return t&&t(e.tr.split(o).scrollIntoView()),!0}let r=n.blockRange(),i=r&&_l(r);return i==null?!1:(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)},u2=(e,t)=>{let{$from:n,to:r}=e.selection,i,o=n.sharedDepth(r);return o==0?!1:(i=n.before(o),t&&t(e.tr.setSelection(Te.create(e.doc,i))),!0)};function d2(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o=t.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&t.parent.canReplace(o-1,o)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(o,o+1)||!(i.isTextblock||Wo(e.doc,t.pos))?!1:(n&&n(e.tr.clearIncompatible(t.pos,r.type,r.contentMatchAt(r.childCount)).join(t.pos).scrollIntoView()),!0)}function QD(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o,a;if(r.type.spec.isolating||i.type.spec.isolating)return!1;if(d2(e,t,n))return!0;let s=t.parent.canReplace(t.index(),t.index()+1);if(s&&(o=(a=r.contentMatchAt(r.childCount)).findWrapping(i.type))&&a.matchType(o[0]||i.type).validEnd){if(n){let _=t.pos+i.nodeSize,f=J.empty;for(let S=o.length-1;S>=0;S--)f=J.from(o[S].create(null,f));f=J.from(r.copy(f));let g=e.tr.step(new Wt(t.pos-1,_,t.pos,_,new le(f,1,0),o.length,!0)),E=_+2*o.length;Wo(g.doc,E)&&g.join(E),n(g.scrollIntoView())}return!0}let c=He.findFrom(t,1),d=c&&c.$from.blockRange(c.$to),p=d&&_l(d);if(p!=null&&p>=t.depth)return n&&n(e.tr.lift(d,p).scrollIntoView()),!0;if(s&&il(i,"start",!0)&&il(r,"end")){let _=r,f=[];for(;f.push(_),!_.isTextblock;)_=_.lastChild;let g=i,E=1;for(;!g.isTextblock;g=g.firstChild)E++;if(_.canReplace(_.childCount,_.childCount,g.content)){if(n){let S=J.empty;for(let T=f.length-1;T>=0;T--)S=J.from(f[T].copy(S));let b=e.tr.step(new Wt(t.pos-f.length,t.pos+i.nodeSize,t.pos+E,t.pos+i.nodeSize-E,new le(S,f.length,0),0,!0));n(b.scrollIntoView())}return!0}}return!1}function XD(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,o=i.depth;for(;i.node(o).isInline;){if(!o)return!1;o--}return i.node(o).isTextblock?(n&&n(t.tr.setSelection(Ie.create(t.doc,e<0?i.start(o):i.end(o)))),!0):!1}}const p2=XD(-1),_2=XD(1);function m2(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,a=i.blockRange(o),s=a&&oT(a,e,t);return s?(r&&r(n.tr.wrap(a,s).scrollIntoView()),!0):!1}}function QN(e,t=null){return function(n,r){let i=!1;for(let o=0;o<n.selection.ranges.length&&!i;o++){let{$from:{pos:a},$to:{pos:s}}=n.selection.ranges[o];n.doc.nodesBetween(a,s,(c,d)=>{if(i)return!1;if(!(!c.isTextblock||c.hasMarkup(e,t)))if(c.type==e)i=!0;else{let p=n.doc.resolve(d),_=p.index();i=p.parent.canReplaceWith(_,_+1,e)}})}if(!i)return!1;if(r){let o=n.tr;for(let a=0;a<n.selection.ranges.length;a++){let{$from:{pos:s},$to:{pos:c}}=n.selection.ranges[a];o.setBlockType(s,c,e,t)}r(o.scrollIntoView())}return!0}}typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<"u"&&os.platform&&os.platform()=="darwin";function f2(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,a=i.blockRange(o),s=!1,c=a;if(!a)return!1;if(a.depth>=2&&i.node(a.depth-1).type.compatibleContent(e)&&a.startIndex==0){if(i.index(a.depth-1)==0)return!1;let p=n.doc.resolve(a.start-2);c=new d_(p,p,a.depth),a.endIndex<a.parent.childCount&&(a=new d_(i,n.doc.resolve(o.end(a.depth)),a.depth)),s=!0}let d=oT(c,e,t,a);return d?(r&&r(g2(n.tr,a,d,s,e).scrollIntoView()),!0):!1}}function g2(e,t,n,r,i){let o=J.empty;for(let p=n.length-1;p>=0;p--)o=J.from(n[p].type.create(n[p].attrs,o));e.step(new Wt(t.start-(r?2:0),t.end,t.start,t.end,new le(o,0,0),n.length,!0));let a=0;for(let p=0;p<n.length;p++)n[p].type==i&&(a=p+1);let s=n.length-a,c=t.start+n.length-(r?2:0),d=t.parent;for(let p=t.startIndex,_=t.endIndex,f=!0;p<_;p++,f=!1)!f&&Hs(e.doc,c,s)&&(e.split(c,s),c+=2*s),c+=d.child(p).nodeSize;return e}function E2(e){return function(t,n){let{$from:r,$to:i}=t.selection,o=r.blockRange(i,a=>a.childCount>0&&a.firstChild.type==e);return o?n?r.node(o.depth-1).type==e?h2(t,n,e,o):S2(t,n,o):!0:!1}}function h2(e,t,n,r){let i=e.tr,o=r.end,a=r.$to.end(r.depth);o<a&&(i. Line truncated
`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function A2(e){return typeof e=="number"}class I2{constructor(t){this.find=t.find,this.handler=t.handler}}const D2=(e,t,n)=>{if(ET(t))return[...e.matchAll(t)];const r=t(e,n);return r?r.map(i=>{const o=[i.text];return o.index=i.index,o.input=e,o.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),o.push(i.replaceWith)),o}):[]};function w2(e){const{editor:t,state:n,from:r,to:i,rule:o,pasteEvent:a,dropEvent:s}=e,{commands:c,chain:d,can:p}=new Dm({editor:t,state:n}),_=[];return n.doc.nodesBetween(r,i,(g,E)=>{if(!g.isTextblock||g.type.spec.code)return;const S=Math.max(r,E),b=Math.min(i,E+g.content.size),T=g.textBetween(S-E,b-E,void 0,"");D2(T,o.find,a).forEach(R=>{if(R.index===void 0)return;const O=S+R.index+1,I=O+R[0].length,x={from:n.tr.mapping.map(O),to:n.tr.mapping.map(I)},k=o.handler({state:n,range:x,match:R,commands:c,chain:d,can:p,pasteEvent:a,dropEvent:s});_.push(k)})}),_.every(g=>g!==null)}const x2=e=>{var t;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)===null||t===void 0||t.setData("text/html",e),n};function M2(e){const{editor:t,rules:n}=e;let r=null,i=!1,o=!1,a=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,s=typeof DragEvent<"u"?new DragEvent("drop"):null;const c=({state:p,from:_,to:f,rule:g,pasteEvt:E})=>{const S=p.tr,b=Im({state:p,transaction:S});if(!(!w2({editor:t,state:b,from:Math.max(_-1,0),to:f.b-1,rule:g,pasteEvent:E,dropEvent:s})||!S.steps.length))return s=typeof DragEvent<"u"?new DragEvent("drop"):null,a=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,S};return n.map(p=>new pt({view(_){const f=g=>{var E;r=!((E=_.dom.parentElement)===null||E===void 0)&&E.contains(g.target)?_.dom.parentElement:null};return window.addEventListener("dragstart",f),{destroy(){window.removeEventListener("dragstart",f)}}},props:{handleDOMEvents:{drop:(_,f)=>(o=r===_.dom.parentElement,s=f,!1),paste:(_,f)=>{var g;const E=(g=f.clipboardData)===null||g===void 0?void 0:g.getData("text/html");return a=f,i=!!(E!=null&&E.includes("data-pm-slice")),!1}}},appendTransaction:(_,f,g)=>{const E=_[0],S=E.getMeta("uiEvent")==="paste"&&!i,b=E.getMeta("uiEvent")==="drop"&&!o,T=E.getMeta("applyPasteRules"),y=!!T;if(!S&&!b&&!y)return;if(y){const{from:I,text:x}=T,k=I+x.length,$=x2(x);return c({rule:p,state:g,from:I,to:{b:k},pasteEvt:$})}const R=f.doc.content.findDiffStart(g.doc.content),O=f.doc.content.findDiffEnd(g.doc.content);if(!(!A2(R)||!O||R===O.b))return c({rule:p,state:g,from:R,to:O,pasteEvt:a})}}))}function L2(e){const t=e.filter((n,r)=>e.indexOf(n)!==r);return[...new Set(t)]}class Ls{constructor(t,n){this.splittableMarks=[],this.editor=n,this.extensions=Ls.resolve(t),this.schema=R2(this.extensions,n),this.setupExtensions()}static resolve(t){const n=Ls.sort(Ls.flatten(t)),r=L2(n.map(i=>i.name));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),n}static flatten(t){return t.map(n=>{const r={name:n.name,options:n.options,storage:n.storage},i=fe(n,"addExtensions",r);return i?[n,...this.flatten(i())]:n}).flat(10)}static sort(t){return t.sort((r,i)=>{const o=fe(r,"priority")||100,a=fe(i,"priority")||100;return o>a?-1:o<a?1:0})}get commands(){return this.extensions.reduce((t,n)=>{const r={name:n.name,options:n.options,storage:n.storage,editor:this.editor,type:jg(n.name,this.schema)},i=fe(n,"addCommands",r);return i?{...t,...i()}:t},{})}get plugins(){const{editor:t}=this,n=Ls.sort([...this.extensions].reverse()),r=[],i=[],o=n.map(a=>{const s={name:a.name,options:a.options,storage:a.storage,editor:t,type:jg(a.name,this.schema)},c=[],d=fe(a,"addKeyboardShortcuts",s);let p={};if(a.type==="mark"&&fe(a,"exitable",s)&&(p.ArrowRight=()=>Ft.handleExit({editor:t,mark:a})),d){const S=Object.fromEntries(Object.entries(d()).map(([b,T])=>[b,()=>T({editor:t})]));p={...p,...S}}const _=KH(p);c.push(_);const f=fe(a,"addInputRules",s);ZN(a,t.options.enableInputRules)&&f&&r.push(...f());const g=fe(a,"addPasteRules",s);ZN(a,t.options.enablePasteRules)&&g&&i.push(...g());const E=fe(a,"addProseMirrorPlugins",s);if(E){const S=E();c.push(...S)}return c}).flat();return[O2({editor:t,rules:r}),...M2({editor:t,rules:i}),...o]}get attributes(){return jD(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:n}=wm(this.extensions);return Object.fromEntries(n.filter(r=>!!fe(r,"addNodeView")).map(r=>{const i=this.attributes.filter(c=>c.type===r.name),o={name:r.name,options:r.options,storage:r.storage,editor:t,type:Kt(r.name,this.schema)},a=fe(r,"addNodeView",o);if(!a)return[];const s=(c,d,p,_)=>{const f=Fh(c,i);return a()({editor:t,node:c,getPos:p,decorations:_,HTMLAttributes:f,extension:r})};return[r.name,s]}))}setupExtensions(){this.extensions.forEach(t=>{var n;this.editor.extensionStorage[t.name]=t.storage;const r={name:t.name, Line truncated
`,textSerializers:a={}}=n||{};let s="";return e.nodesBetween(r,i,(c,d,p,_)=>{var f;c.isBlock&&d>r&&(s+=o);const g=a==null?void 0:a[c.type.name];if(g)return p&&(s+=g({node:c,pos:d,parent:p,index:_,range:t})),!1;c.isText&&(s+=(f=c==null?void 0:c.text)===null||f===void 0?void 0:f.slice(Math.max(r,d)-d,i-d))}),s}function ew(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}const P2=vt.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new pt({key:new at("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:i}=t,{ranges:o}=i,a=Math.min(...o.map(p=>p.$from.pos)),s=Math.max(...o.map(p=>p.$to.pos)),c=ew(n);return JD(r,{from:a,to:s},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:c})}}})]}}),U2=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window==null?void 0:window.getSelection())===null||n===void 0||n.removeAllRanges())}),!0),F2=(e=!1)=>({commands:t})=>t.setContent("",e),B2=()=>({state:e,tr:t,dispatch:n})=>{const{selection:r}=t,{ranges:i}=r;return n&&i.forEach(({$from:o,$to:a})=>{e.doc.nodesBetween(o.pos,a.pos,(s,c)=>{if(s.type.isText)return;const{doc:d,mapping:p}=t,_=d.resolve(p.map(c)),f=d.resolve(p.map(c+s.nodeSize)),g=_.blockRange(f);if(!g)return;const E=_l(g);if(s.type.isTextblock){const{defaultType:S}=_.parent.contentMatchAt(_.index());t.setNodeMarkup(g.start,S)}(E||E===0)&&t.lift(g,E)})}),!0},G2=e=>t=>e(t),Y2=()=>({state:e,dispatch:t})=>l2(e,t),H2=(e,t)=>({editor:n,tr:r})=>{const{state:i}=n,o=i.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);const a=r.mapping.map(t);return r.insert(a,o.content),r.setSelection(new Ie(r.doc.resolve(a-1))),!0},$2=()=>({tr:e,dispatch:t})=>{const{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;const i=e.selection.$anchor;for(let o=i.depth;o>0;o-=1)if(i.node(o).type===r.type){if(t){const s=i.before(o),c=i.after(o);e.delete(s,c).scrollIntoView()}return!0}return!1},V2=e=>({tr:t,state:n,dispatch:r})=>{const i=Kt(e,n.schema),o=t.selection.$anchor;for(let a=o.depth;a>0;a-=1)if(o.node(a).type===i){if(r){const c=o.before(a),d=o.after(a);t.delete(c,d).scrollIntoView()}return!0}return!1},z2=e=>({tr:t,dispatch:n})=>{const{from:r,to:i}=e;return n&&t.delete(r,i),!0},W2=()=>({state:e,dispatch:t})=>XH(e,t),q2=()=>({commands:e})=>e.keyboardShortcut("Enter"),K2=()=>({state:e,dispatch:t})=>s2(e,t);function T_(e,t,n={strict:!0}){const r=Object.keys(t);return r.length?r.every(i=>n.strict?t[i]===e[i]:ET(t[i])?t[i].test(e[i]):t[i]===e[i]):!0}function Bh(e,t,n={}){return e.find(r=>r.type===t&&T_(r.attrs,n))}function Q2(e,t,n={}){return!!Bh(e,t,n)}function hT(e,t,n={}){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if(e.parentOffset===r.offset&&r.offset!==0&&(r=e.parent.childBefore(e.parentOffset)),!r.node)return;const i=Bh([...r.node.marks],t,n);if(!i)return;let o=r.index,a=e.start()+r.offset,s=o+1,c=a+r.node.nodeSize;for(Bh([...r.node.marks],t,n);o>0&&i.isInSet(e.parent.child(o-1).marks);)o-=1,a-=e.parent.child(o).nodeSize;for(;s<e.parent.childCount&&Q2([...e.parent.child(s).marks],t,n);)c+=e.parent.child(s).nodeSize,s+=1;return{from:a,to:c}}function Ko(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}const X2=(e,t={})=>({tr:n,state:r,dispatch:i})=>{const o=Ko(e,r.schema),{doc:a,selection:s}=n,{$from:c,from:d,to:p}=s;if(i){const _=hT(c,o,t);if(_&&_.from<=d&&_.to>=p){const f=Ie.create(a,_.from,_.to);n.setSelection(f)}}return!0},j2=e=>t=>{const n=typeof e=="function"?e(t):e;for(let r=0;r<n.length;r+=1)if(n[r](t))return!0;return!1};function tw(e){return e instanceof Ie}function bo(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function nw(e,t=null){if(!t)return null;const n=He.atStart(e),r=He.atEnd(e);if(t==="start"||t===!0)return n;if(t==="end")return r;const i=n.from,o=r.to;return t==="all"?Ie.create(e,bo(0,i,o),bo(e.content.size,i,o)):Ie.create(e,bo(t,i,o),bo(t,i,o))}function Mm(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}const Z2=(e=null,t={})=>({editor:n,view:r,tr:i,dispatch:o})=>{t={scrollIntoView:!0,...t};const a=()=>{Mm()&&r.dom.focus(),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t!=null&&t.scrollIntoView&&n.commands.scrollIntoView())})};if(r.hasFocus()&&e===null||e===!1)return!0;if(o&&e===null&&!tw(n.state.selection))return a(),!0;const s=nw(i.doc,e)||n.state.selection,c=n.state.selection.eq(s);return o&&(c||i.setSelection(s),c&&i.storedMarks&&i.setStoredMarks(i.storedMarks),a()),!0},J2=(e,t)=>n=>e.every((r,i)=>t(r,{...n,index:i})),e$=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t Line truncated
position: relative;
}
.ProseMirror {
word-wrap: break-word;
white-space: pre-wrap;
white-space: break-spaces;
-webkit-font-variant-ligatures: none;
font-variant-ligatures: none;
font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
}
.ProseMirror [contenteditable="false"] {
white-space: normal;
}
.ProseMirror [contenteditable="false"] [contenteditable="true"] {
white-space: pre-wrap;
}
.ProseMirror pre {
white-space: pre-wrap;
}
img.ProseMirror-separator {
display: inline !important;
border: none !important;
margin: 0 !important;
width: 1px !important;
height: 1px !important;
}
.ProseMirror-gapcursor {
display: none;
pointer-events: none;
position: absolute;
margin: 0;
}
.ProseMirror-gapcursor:after {
content: "";
display: block;
position: absolute;
top: -2px;
width: 20px;
border-top: 1px solid black;
animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}
@keyframes ProseMirror-cursor-blink {
to {
visibility: hidden;
}
}
.ProseMirror-hideselection *::selection {
background: transparent;
}
.ProseMirror-hideselection *::-moz-selection {
background: transparent;
}
.ProseMirror-hideselection * {
caret-color: transparent;
}
.ProseMirror-focused .ProseMirror-gapcursor {
display: block;
}
.tippy-box[data-animation=fade][data-state=hidden] {
opacity: 0
}`;function dV(e,t,n){const r=document.querySelector("style[data-tiptap-style]");if(r!==null)return r;const i=document.createElement("style");return t&&i.setAttribute("nonce",t),i.setAttribute("data-tiptap-style",""),i.innerHTML=e,document.getElementsByTagName("head")[0].appendChild(i),i}let pV=class extends b2{constructor(t={}){super(),this.isFocused=!1,this.extensionStorage={},this.options={element:document.createElement("div"),content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,onBeforeCreate:()=>null,onCreate:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:n})=>{throw n}},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("contentError",this.options.onContentError),this.createView(),this.injectCSS(),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),window.setTimeout(()=>{this.isDestroyed||(this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}))},0)}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&document&&(this.css=dV(uV,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.view||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,n=!0){this.setOptions({editable:t}),n&&this.emit("update",{editor:this,transaction:this.state.tr})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get state(){return this.view.state}registerPlugin(t,n){const r=ZD(n)?n(t,[...this.state.plugins]):[...this.state.plugins,t],i=this.state.reconfigure({plugins:r});this.view.updateState(i)}unregisterPlugin(t){if(this.isDestroyed)return;const n=typeof t=="string"?`${t}$`:t.key,r=this.state.reconfigure({plugins:this.state.plugins.filter(i=>!i.key.startsWith(n))});this.view.updateState(r)}createExtensionManager(){var t,n;const i=[...this.options.enableCoreExtensions?[aV,P2.configure({blockSeparator:(n=(t=this.options.coreExtensionOptions)===null||t===void 0?void 0:t.clipboardTextSerializer)===null||n===void 0?void 0:n.blockSeparator}),oV,sV,lV,cV]:[],...this.options.extensions].filter(o=>["extension","node","mark"].includes(o==null?void 0:o.type));this.extensionManager=new Ls(i,this)}createCommandManager(){this.commandManager=new Dm({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createView(){let t;try{t=Gh(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(o){if(!(o instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(o.message))throw o;this.emit("contentError",{editor:this,error:o,disableCollaboration:()=>{this.options.extensions=this.options.extensions.filter(a=>a.name!=="collaboration"),this.createExtensionManager()}}),t=Gh(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}const n=nw(t,this.options.autofocus);this.view=new BH(this.options.element,{...this.options.editorProps,dispatchTransaction:this.dispatchTransaction.bind(this),state:Ms.create({doc:t,selection:n||void 0})});const r=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(r),this.createNodeViews(),this.prependClass();const i=this.view.dom;i.editor=this}createNodeViews(){this.view.setProps({nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`tiptap ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const n=this.capturedTransaction;return this.capturedTransaction=null,n}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(a=>{var s;return(s=this.capturedTransaction)===null||s===void 0?void 0:s.step(a)});return}const n=this.state.apply(t),r=!this.state.selection.eq(n.selection);this.view.updateState(n),this.emit("transaction",{editor:this,transaction:t}),r&&this.emit("selectionUpdate",{editor:this,transaction:t});const i=t.getMeta("focus"),o=t.getMeta("blur");i&&this.emit("focus",{ed Line truncated
`,textSerializers:r={}}=t||{};return w$(this.state.doc,{blockSeparator:n,textSerializers:{...ew(this.schema),...r}})}get isEmpty(){return U$(this.state.doc)}getCharacterCount(){return console.warn('[tiptap warn]: "editor.getCharacterCount()" is deprecated. Please use "editor.storage.characterCount.characters()" instead.'),this.state.doc.content.size-2}destroy(){this.emit("destroy"),this.view&&this.view.destroy(),this.removeAllListeners()}get isDestroyed(){var t;return!(!((t=this.view)===null||t===void 0)&&t.docView)}$node(t,n){var r;return((r=this.$doc)===null||r===void 0?void 0:r.querySelector(t,n))||null}$nodes(t,n){var r;return((r=this.$doc)===null||r===void 0?void 0:r.querySelectorAll(t,n))||null}$pos(t){const n=this.state.doc.resolve(t);return new _a(n,this)}get $doc(){return this.$pos(0)}};function Ga(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{const i=Be(e.getAttributes,void 0,r);if(i===!1||i===null)return null;const{tr:o}=t,a=r[r.length-1],s=r[0];if(a){const c=s.search(/\S/),d=n.from+s.indexOf(a),p=d+a.length;if(yT(n.from,n.to,t.doc).filter(g=>g.mark.type.excluded.find(S=>S===e.type&&S!==g.mark.type)).filter(g=>g.to>d).length)return null;p<n.to&&o.delete(p,n.to),d>n.from&&o.delete(n.from+c,d);const f=n.from+c+a.length;o.addMark(n.from+c,f,e.type.create(i||{})),o.removeStoredMark(e.type)}}})}function ow(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{const i=Be(e.getAttributes,void 0,r)||{},{tr:o}=t,a=n.from;let s=n.to;const c=e.type.create(i);if(r[1]){const d=r[0].lastIndexOf(r[1]);let p=a+d;p>s?p=s:s=p+r[1].length;const _=r[0][r[0].length-1];o.insertText(_,a+r[0].length-1),o.replaceWith(p,s,c)}else if(r[0]){const d=e.type.isInline?a:a-1;o.insert(d,e.type.create(i)).delete(o.mapping.map(a),o.mapping.map(s))}o.scrollIntoView()}})}function $h(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{const i=t.doc.resolve(n.from),o=Be(e.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,o)}})}function Ot(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{let i=e.replace,o=n.from;const a=n.to;if(r[1]){const s=r[0].lastIndexOf(r[1]);i+=r[0].slice(s+r[1].length),o+=s;const c=o-a;c>0&&(i=r[0].slice(s-c,s)+i,o=a)}t.tr.insertText(i,o,a)}})}function ru(e){return new vu({find:e.find,handler:({state:t,range:n,match:r,chain:i})=>{const o=Be(e.getAttributes,void 0,r)||{},a=t.tr.delete(n.from,n.to),c=a.doc.resolve(n.from).blockRange(),d=c&&oT(c,e.type,o);if(!d)return null;if(a.wrap(c,d),e.keepMarks&&e.editor){const{selection:_,storedMarks:f}=t,{splittableMarks:g}=e.editor.extensionManager,E=f||_.$to.parentOffset&&_.$from.marks();if(E){const S=E.filter(b=>g.includes(b.type.name));a.ensureMarks(S)}}if(e.keepAttributes){const _=e.type.name==="bulletList"||e.type.name==="orderedList"?"listItem":"taskList";i().updateAttributes(_,o).run()}const p=a.doc.resolve(n.from-1).nodeBefore;p&&p.type===e.type&&Wo(a.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,p))&&a.join(n.from-1)}})}class Ft{constructor(t={}){this.type="mark",this.name="mark",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=Be(fe(this,"addOptions",{name:this.name}))),this.storage=Be(fe(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(t={}){return new Ft(t)}configure(t={}){const n=this.extend({...this.config,addOptions(){var r;return xm(((r=this.parent)===null||r===void 0?void 0:r.call(this))||{},t)}});return n.name=this.name,n.parent=this.parent,n}extend(t={}){const n=new Ft(t);return n.parent=this,this.child=n,n.name=t.name?t.name:n.parent.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=Be(fe(n,"addOptions",{name:n.name})),n.storage=Be(fe(n,"addStorage",{name:n.name,options:n.options})),n}static handleExit({editor:t,mark:n}){const{tr:r}=t.state,i=t.state.selection.$from;if(i.pos===i.end()){const a=i.marks();if(!!!a.find(d=>(d==null?void 0:d.type.name)===n.name))return!1;const c=a.find(d=>(d==null?void 0:d.type.name)===n.name);return c&&r.removeStoredMark(c),r.insertText(" ",i.pos),t.view.dispatch(r),!0}return!1}}class dt{constructor(t={}){this.type="node",this.name="node",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHLine truncated
* @license React
* use-sync-external-store-shim.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var rv;function bV(){if(rv)return rE;rv=1;var e=ct;function t(_,f){return _===f&&(_!==0||1/_===1/f)||_!==_&&f!==f}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,i=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function s(_,f){var g=f(),E=r({inst:{value:g,getSnapshot:f}}),S=E[0].inst,b=E[1];return o(function(){S.value=g,S.getSnapshot=f,c(S)&&b({inst:S})},[_,g,f]),i(function(){return c(S)&&b({inst:S}),_(function(){c(S)&&b({inst:S})})},[_]),a(g),g}function c(_){var f=_.getSnapshot;_=_.value;try{var g=f();return!n(_,g)}catch{return!0}}function d(_,f){return f()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?d:s;return rE.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,rE}var iv;function yV(){return iv||(iv=1,nE.exports=bV()),nE.exports}/**
* @license React
* use-sync-external-store-shim/with-selector.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var ov;function CV(){if(ov)return tE;ov=1;var e=ct,t=yV();function n(d,p){return d===p&&(d!==0||1/d===1/p)||d!==d&&p!==p}var r=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,s=e.useMemo,c=e.useDebugValue;return tE.useSyncExternalStoreWithSelector=function(d,p,_,f,g){var E=o(null);if(E.current===null){var S={hasValue:!1,value:null};E.current=S}else S=E.current;E=s(function(){function T(x){if(!y){if(y=!0,R=x,x=f(x),g!==void 0&&S.hasValue){var k=S.value;if(g(k,x))return O=k}return O=x}if(k=O,r(R,x))return k;var $=f(x);return g!==void 0&&g(k,$)?k:(R=x,O=$)}var y=!1,R,O,I=_===void 0?null:_;return[function(){return T(p())},I===null?void 0:function(){return T(I())}]},[p,_,f,g]);var b=i(d,E[0],E[1]);return a(function(){S.hasValue=!0,S.value=b},[b]),c(b),b},tE}aw.exports=CV();var RV=aw.exports;function NV(e){let t=0,n=0,r={editor:e,transactionNumber:0},i=e;const o=new Set;return{getSnapshot(){return t===n||(n=t,r={editor:i,transactionNumber:t}),r},getServerSnapshot(){return{editor:null,transactionNumber:0}},subscribe(s){return o.add(s),()=>{o.delete(s)}},watch(s){if(i=s,i){const c=()=>{t+=1,o.forEach(p=>p())},d=i;return d.on("transaction",c),()=>{d.off("transaction",c)}}}}}function vV(e){const[t]=B.useState(()=>NV(e.editor)),n=RV.useSyncExternalStoreWithSelector(t.subscribe,t.getSnapshot,t.getServerSnapshot,e.selector,e.equalityFn);return B.useEffect(()=>t.watch(e.editor),[e.editor]),B.useDebugValue(n),n}const OV=!1,Vh=typeof window>"u",AV=Vh||!!(typeof window<"u"&&window.next);function IV(e={},t=[]){const n=B.useRef(!1),[r,i]=B.useState(()=>{if(e.immediatelyRender===void 0)return Vh||AV?null:new eE(e);if(e.immediatelyRender&&Vh&&OV)throw new Error("Tiptap Error: SSR has been detected, and `immediatelyRender` has been set to `true` this is an unsupported configuration that may result in errors, explicitly set `immediatelyRender` to `false` to avoid hydration mismatches.");return e.immediatelyRender?new eE(e):null});B.useDebugValue(r),B.useEffect(()=>{let k=r;k?k.setOptions(e):(k=new eE(e),i(k))},t);const{onBeforeCreate:o,onBlur:a,onCreate:s,onDestroy:c,onFocus:d,onSelectionUpdate:p,onTransaction:_,onUpdate:f,onContentError:g}=e,E=B.useRef(o),S=B.useRef(a),b=B.useRef(s),T=B.useRef(c),y=B.useRef(d),R=B.useRef(p),O=B.useRef(_),I=B.useRef(f),x=B.useRef(g);return B.useEffect(()=>{r&&(o&&(r.off("beforeCreate",E.current),r.on("beforeCreate",o),E.current=o),a&&(r.off("blur",S.current),r.on("blur",a),S.current=a),s&&(r.off("create",b.current),r.on("create",s),b.current=s),c&&(r.off("destroy",T.current),r.on("destroy",c),T.current=c),d&&(r.off("focus",y.current),r.on("focus",d),y.current=d),p&&(r.off("selectionUpdate",R.current),r.on("selectionUpdate",p),R.current=p),_&&(r.off("transaction",O.current),r.on("transaction",_),O.current=_),f&&(r.off("update",I.current),r.on("update",f),I.current=f),g&&(r.off("contentError",x.current),r.on("contentError",g),x.current=g))},[o,a,s,c,d,p,_,f,g,r]),B.useEffect(()=>(n.current=!0,()=>{n.current=!1,r&&setTimeout(()=>{!n.current&&!r.isDestroyed&&r.destroy()})}),[]),vV({editor:r,selector:({transactionNumber:k})=>e.shouldRerenderOnTransaction===!1?null:e.immediatelyRender&&k===0?0:k+1}),r}const Ue=B.createContext({editor:null}),DV=Ue.Consumer;function wV({children:e,slotAfter:t,slotBefore:n,...r}){const i=IV(r);return i?ct.createElement(Ue.Provider,{value:{editor:i}},n,ct.createElement(DV,null,({editor:o})=>ct.createElement(TV,{editor:o})),e,t):null}const sw=B.createContext({onDragStart:void 0}),lw=()=>B.useContext(sw),CT=e=>{const t=e.as||"div",{nodeViewContentRef:n}=lw();return ct.createElement(t,{...e,ref:n,"data-node-view-content":"",style:{whiteSpace:"pre-wrap",...e.style}})},ml=ct.forwardRef((e,t)=>{const{onDragStart:n}=lw(),r=e.as||"div";return ct.createElement(r,{...e,ref:t,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...e.style}})});function xV(e){return!!(typeof e=="function"&&e.prototype&&e.prototype.isReactComponent)}function MV(e){var t;return typeof e=="object"&&((t=e.$$typeof)===null||t===void 0?void 0:t.toString())==="Symbol(react.forward_ref)"}class cw{constructor(t,{editor:n,props:r={},as:i="div",className:o="",attrs:a}){this.ref=null,this.id=Math.floor(Math.random()*4294967295).toString(),this.component=t,this.editor=n,this.props=r,this.element=document.createElement(i),this.element.classList.add("react-renderer"),o&&this.element.classList.add(...o.split(" ")),a&&Object.keys(a).forEach(s=>{this.element.setAttribute(s,a[s])}),this.render()}render(){var t,n;const r=this.component,i=this.props;(xV(r)||MV(r))&&(i.ref=o=>{this.ref=o}),this.reactElement=ct.createElement(r,{...i}),(n=(t=this.editor)===null||t===void 0?void 0:t.contentComponent)===null||n===void 0||n.setRenderer(this.id,this)}updateProps(t={}){this.props={...this.props,...t},this.render()}destroy(){var t,n;(n=(t=this.editor)===null||t===void 0?void 0:t.contentComponent)===null||n===void 0||n.removeRenderer(this.id)}}class LV extends mV{mount(Line truncated
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/y_.exports;(function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",c="__lodash_hash_undefined__",d=500,p="__lodash_placeholder__",_=1,f=2,g=4,E=1,S=2,b=1,T=2,y=4,R=8,O=16,I=32,x=64,k=128,$=256,z=512,H=30,ae="...",_e=800,ue=16,me=1,he=2,se=3,M=1/0,D=9007199254740991,Y=17976931348623157e292,V=NaN,Z=4294967295,oe=Z-1,Oe=Z>>>1,ze=[["ary",k],["bind",b],["bindKey",T],["curry",R],["curryRight",O],["flip",z],["partial",I],["partialRight",x],["rearg",$]],be="[object Arguments]",Ce="[object Array]",yt="[object AsyncFunction]",ge="[object Boolean]",we="[object Date]",xn="[object DOMException]",mn="[object Error]",Mn="[object Function]",et="[object GeneratorFunction]",Ze="[object Map]",fn="[object Number]",_t="[object Null]",Ln="[object Object]",Mr="[object Promise]",te="[object Proxy]",pr="[object RegExp]",ve="[object Set]",Se="[object String]",gn="[object Symbol]",Bt="[object Undefined]",kn="[object WeakMap]",Zr="[object WeakSet]",G="[object ArrayBuffer]",K="[object DataView]",ne="[object Float32Array]",pe="[object Float64Array]",Pe="[object Int8Array]",mt="[object Int16Array]",Vi="[object Int32Array]",zi="[object Uint8Array]",Du="[object Uint8ClampedArray]",wu="[object Uint16Array]",xu="[object Uint32Array]",JT=/\b__p \+= '';/g,eb=/\b(__p \+=) '' \+/g,tb=/(__e\(.*?\)|\b__t\)) \+\n'';/g,$m=/&(?:amp|lt|gt|quot|#39);/g,Vm=/[&<>"']/g,nb=RegExp($m.source),rb=RegExp(Vm.source),ib=/<%-([\s\S]+?)%>/g,ob=/<%([\s\S]+?)%>/g,zm=/<%=([\s\S]+?)%>/g,ab=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,sb=/^\w*$/,lb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mu=/[\\^$.*+?()[\]{}|]/g,cb=RegExp(Mu.source),Lu=/^\s+/,ub=/\s/,db=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pb=/\{\n\/\* \[wrapped with (.+)\] \*/,_b=/,? & /,mb=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,fb=/[()=,{}\[\]\/\s]/,gb=/\\(\\)?/g,Eb=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wm=/\w*$/,hb=/^[-+]0x[0-9a-f]+$/i,Sb=/^0b[01]+$/i,Tb=/^\[object .+?Constructor\]$/,bb=/^0o[0-7]+$/i,yb=/^(?:0|[1-9]\d*)$/,Cb=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Tl=/($^)/,Rb=/['\n\r\u2028\u2029\\]/g,bl="\\ud800-\\udfff",Nb="\\u0300-\\u036f",vb="\\ufe20-\\ufe2f",Ob="\\u20d0-\\u20ff",qm=Nb+vb+Ob,Km="\\u2700-\\u27bf",Qm="a-z\\xdf-\\xf6\\xf8-\\xff",Ab="\\xac\\xb1\\xd7\\xf7",Ib="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Db="\\u2000-\\u206f",wb=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xm="A-Z\\xc0-\\xd6\\xd8-\\xde",jm="\\ufe0e\\ufe0f",Zm=Ab+Ib+Db+wb,ku="['’]",xb="["+bl+"]",Jm="["+Zm+"]",yl="["+qm+"]",ef="\\d+",Mb="["+Km+"]",tf="["+Qm+"]",nf="[^"+bl+Zm+ef+Km+Qm+Xm+"]",Cl="\\ud83c[\\udffb-\\udfff]",rf="(?:"+yl+"|"+Cl+")",Pu="[^"+bl+"]",Rl="(?:\\ud83c[\\udde6-\\uddff]){2}",Nl="[\\ud800-\\udbff][\\udc00-\\udfff]",Wi="["+Xm+"]",Uu="\\u200d",vl="(?:"+tf+"|"+nf+")",Fu="(?:"+Wi+"|"+nf+")",Ol="(?:"+ku+"(?:d|ll|m|re|s|t|ve))?",Bu="(?:"+ku+"(?:D|LL|M|RE|S|T|VE))?",Gu=rf+"?",Al="["+jm+"]?",Qa="(?:"+Uu+"(?:"+[Pu,Rl,Nl].join("|")+")"+Al+Gu+")*",Il="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Yu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Dl=Al+Gu+Qa,Hu="(?:"+[Mb,Rl,Nl].join("|")+")"+Dl,Lb="(?:"+[Pu+yl+"?",yl,Rl,Nl,xb].join("|")+")",kb=RegExp(ku,"g"),qx=RegExp(yl,"g"),of=RegExp(Cl+"(?="+Cl+")|"+Lb+Dl,"g"),Kx=RegExp([Wi+"?"+tf+"+"+Ol+"(?="+[Jm,Wi,"$"].join("|")+")",Fu+"+"+Bu+"(?="+[Jm,Wi+vl,"$"].join("|")+")",Wi+"?"+vl+"+"+Ol,Wi+"+"+Bu,Yu,Il,ef,Hu].join("|"),"g"),Qx=RegExp("["+Uu+bl+qm+jm+"]"),Xx=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,jx=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Zx=-1,st={};st[ne]=st[pe]=st[Pe]=st[mt]=st[Vi]=st[zi]=st[Du]=st[wu]=st[xu]=!0,st[be]=st[Ce]=st[G]=st[ge]=st[K]=st[we]=st[mn]=st[Mn]=st[Ze]=st[fn]=st[Ln]=st[pr]=st[ve]=st[Se]=st[kn]=!1;var tt={};tt[be]=tt[Ce]=tt[G]=tt[K]=tt[ge]=tt[we]=tt[ne]=tt[pe]=tt[Pe]=tt[mt]=tt[Vi]=tt[Ze]=tt[fn]=tt[Ln]=tt[pr]=tt[ve]=tt[Se]=tt[gn]=tt[zi]=tt[Du]=tt[wu]=tt[xu]=!0,tt[mn]=tt[Mn]=tt[kn]=!1;var Jx={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",Line truncated
/* [wrapped with `+u+`] */
`)}function fk(l){return De(l)||ra(l)||!!(iy&&l&&l[iy])}function yi(l,u){var m=typeof l;return u=u??D,!!u&&(m=="number"||m!="symbol"&&yb.test(l))&&l>-1&&l%1==0&&l<u}function hn(l,u,m){if(!Et(m))return!1;var h=typeof u;return(h=="number"?Un(m)&&yi(u,m.length):h=="string"&&u in m)?Pr(m[u],l):!1}function Wf(l,u){if(De(l))return!1;var m=typeof l;return m=="number"||m=="symbol"||m=="boolean"||l==null||Jn(l)?!0:sb.test(l)||!ab.test(l)||u!=null&&l in Je(u)}function gk(l){var u=typeof l;return u=="string"||u=="number"||u=="symbol"||u=="boolean"?l!=="__proto__":l===null}function qf(l){var u=Ed(l),m=v[u];if(typeof m!="function"||!(u in Ye.prototype))return!1;if(l===m)return!0;var h=$f(m);return!!h&&l===h[0]}function Ek(l){return!!ey&&ey in l}var hk=qu?Ci:ug;function $l(l){var u=l&&l.constructor,m=typeof u=="function"&&u.prototype||es;return l===m}function eC(l){return l===l&&!Et(l)}function tC(l,u){return function(m){return m==null?!1:m[l]===u&&(u!==n||l in Je(m))}}function Sk(l){var u=Cd(l,function(h){return m.size===d&&m.clear(),h}),m=u.cache;return u}function Tk(l,u){var m=l[1],h=u[1],C=m|h,A=C<(b|T|k),w=h==k&&m==R||h==k&&m==$&&l[7].length<=u[8]||h==(k|$)&&u[7].length<=u[8]&&m==R;if(!(A||w))return l;h&b&&(l[2]=u[2],C|=m&b?0:y);var L=u[3];if(L){var F=l[3];l[3]=F?Uy(F,L,u[4]):L,l[4]=F?Qi(l[3],p):u[4]}return L=u[5],L&&(F=l[5],l[5]=F?Fy(F,L,u[6]):L,l[6]=F?Qi(l[5],p):u[6]),L=u[7],L&&(l[7]=L),h&k&&(l[8]=l[8]==null?u[8]:on(l[8],u[8])),l[9]==null&&(l[9]=u[9]),l[0]=u[0],l[1]=C,l}function bk(l){var u=[];if(l!=null)for(var m in Je(l))u.push(m);return u}function yk(l){return Qu.call(l)}function nC(l,u,m){return u=kt(u===n?l.length-1:u,0),function(){for(var h=arguments,C=-1,A=kt(h.length-u,0),w=W(A);++C<A;)w[C]=h[u+C];C=-1;for(var L=W(u+1);++C<u;)L[C]=h[C];return L[u]=m(w),Xn(l,this,L)}}function rC(l,u){return u.length<2?l:ea(l,hr(u,0,-1))}function Ck(l,u){for(var m=l.length,h=on(u.length,m),C=Pn(l);h--;){var A=u[h];l[h]=yi(A,m)?C[A]:n}return l}function Kf(l,u){if(!(u==="constructor"&&typeof l[u]=="function")&&u!="__proto__")return l[u]}var iC=aC(Oy),Vl=FM||function(l,u){return Qt.setTimeout(l,u)},Qf=aC(WL);function oC(l,u,m){var h=u+"";return Qf(l,mk(h,Rk(dk(h),m)))}function aC(l){var u=0,m=0;return function(){var h=HM(),C=ue-(h-m);if(m=h,C>0){if(++u>=_e)return arguments[0]}else u=0;return l.apply(n,arguments)}}function Sd(l,u){var m=-1,h=l.length,C=h-1;for(u=u===n?h:u;++m<u;){var A=wf(m,C),w=l[A];l[A]=l[m],l[m]=w}return l.length=u,l}var sC=Sk(function(l){var u=[];return l.charCodeAt(0)===46&&u.push(""),l.replace(lb,function(m,h,C,A){u.push(C?A.replace(gb,"$1"):h||m)}),u});function ti(l){if(typeof l=="string"||Jn(l))return l;var u=l+"";return u=="0"&&1/l==-M?"-0":u}function na(l){if(l!=null){try{return Ku.call(l)}catch{}try{return l+""}catch{}}return""}function Rk(l,u){return mr(ze,function(m){var h="_."+m[0];u&m[1]&&!$u(l,h)&&l.push(h)}),l.sort()}function lC(l){if(l instanceof Ye)return l.clone();var u=new gr(l.__wrapped__,l.__chain__);return u.__actions__=Pn(l.__actions__),u.__index__=l.__index__,u.__values__=l.__values__,u}function Nk(l,u,m){(m?hn(l,u,m):u===n)?u=1:u=kt(xe(u),0);var h=l==null?0:l.length;if(!h||u<1)return[];for(var C=0,A=0,w=W(td(h/u));C<h;)w[A++]=hr(l,C,C+=u);return w}function vk(l){for(var u=-1,m=l==null?0:l.length,h=0,C=[];++u<m;){var A=l[u];A&&(C[h++]=A)}return C}function Ok(){var l=arguments.length;if(!l)return[];for(var u=W(l-1),m=arguments[0],h=l;h--;)u[h-1]=arguments[h];return Ki(De(m)?Pn(m):[m],Xt(u,1))}var Ak=ke(function(l,u){return At(l)?Fl(l,Xt(u,1,At,!0)):[]}),Ik=ke(function(l,u){var m=Sr(u);return At(m)&&(m=n),At(l)?Fl(l,Xt(u,1,At,!0),ye(m,2)):[]}),Dk=ke(function(l,u){var m=Sr(u);return At(m)&&(m=n),At(l)?Fl(l,Xt(u,1,At,!0),n,m):[]});function wk(l,u,m){var h=l==null?0:l.length;return h?(u=m||u===n?1:xe(u),hr(l,u<0?0:u,h)):[]}function xk(l,u,m){var h=l==null?0:l.length;return h?(u=m||u===n?1:xe(u),u=h-u,hr(l,0,u<0?0:u)):[]}function Mk(l,u){return l&&l.length?dd(l,ye(u,3),!0,!0):[]}function Lk(l,u){return l&&l.length?dd(l,ye(u,3),!0):[]}function kk(l,u,m,h){var C=l==null?0:l.length;return C?(m&&typeof m!="number"&&hn(l,u,m)&&(m=0,h=C),OL(l,u,m,h)):[]}function cC(l,u,m){var h=l==null?0:l.length;if(!h)return-1;var C=m==null?0:xe(m);return C<0&&(C=kt(h+C,0)),Vu(l,ye(u,3),C)}function uC(l,u,m){var h=l==null?0:l.length;if(!h)return-1;var C=h-1;return m!==n&&(C=xe(m),C=m<0?kt(h+C,0):on(C,h-1)),Vu(l,ye(u,3),C,!0)}function dC(l){var u=l==null?0:l.length;return u?Xt(l,1):[]}function Pk(l){var u=l==null?0:l.length;return u?Xt(l,M):[]}function Uk(l,u){var m=l==null?0:l.length;return m?(u=u===n?1:xe(u),Xt(l,u)):[]}function Fk(l){for(var u=-1,m=l==null?0:l.length,h={};++u<m;){var C=l[u];h[C[0]]=C[1]}return h}function pC(l){return l&&l.length?l[0]:n}function Bk(l,u,m){var h=l==null?0:l.length;if(!h)return-1;var C=m==null?0:xe(m);return C<0&&(C=kt(h+C,0)),Xa(l,u,C)}function Gk(l){var u=l==null?0:l.length;return u?hr(l,0,-1):[]}var Yk=ke(function(l){var u=ft(l,Pf);return u.length&&u[0]===l[0]?vf(u):[]}),Hk=ke( Line truncated
`;l.replace(ie,function(Ne,Fe,$e,er,Sn,tr){return $e||($e=er),j+=l.slice(Q,tr).replace(Rb,hM),Fe&&(L=!0,j+=`' +
__e(`+Fe+`) +
'`),Sn&&(F=!0,j+=`';
`+Sn+`;
__p += '`),$e&&(j+=`' +
((__t = (`+$e+`)) == null ? '' : __t) +
'`),Q=tr+Ne.length,Ne}),j+=`';
`;var Re=Qe.call(u,"variable")&&u.variable;if(!Re)j=`with (obj) {
`+j+`
}
`;else if(fb.test(Re))throw new Ae(s);j=(F?j.replace(JT,""):j).replace(eb,"$1").replace(tb,"$1;"),j="function("+(Re||"obj")+`) {
`+(Re?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(L?", __e = _.escape":"")+(F?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+j+`return __p
}`;var Me=GC(function(){return qe(A,Ee+"return "+j).apply(n,w)});if(Me.source=j,eg(Me))throw Me;return Me}function V1(l){return Ke(l).toLowerCase()}function z1(l){return Ke(l).toUpperCase()}function W1(l,u,m){if(l=Ke(l),l&&(m||u===n))return Qb(l);if(!l||!(u=Zn(u)))return l;var h=Lr(l),C=Lr(u),A=Xb(h,C),w=jb(h,C)+1;return eo(h,A,w).join("")}function q1(l,u,m){if(l=Ke(l),l&&(m||u===n))return l.slice(0,Jb(l)+1);if(!l||!(u=Zn(u)))return l;var h=Lr(l),C=jb(h,Lr(u))+1;return eo(h,0,C).join("")}function K1(l,u,m){if(l=Ke(l),l&&(m||u===n))return l.replace(Lu,"");if(!l||!(u=Zn(u)))return l;var h=Lr(l),C=Xb(h,Lr(u));return eo(h,C).join("")}function Q1(l,u){var m=H,h=ae;if(Et(u)){var C="separator"in u?u.separator:C;m="length"in u?xe(u.length):m,h="omission"in u?Zn(u.omission):h}l=Ke(l);var A=l.length;if(ja(l)){var w=Lr(l);A=w.length}if(m>=A)return l;var L=m-Za(h);if(L<1)return h;var F=w?eo(w,0,L).join(""):l.slice(0,L);if(C===n)return F+h;if(w&&(L+=F.length-L),tg(C)){if(l.slice(L).search(C)){var Q,X=F;for(C.global||(C=Ef(C.source,Ke(Wm.exec(C))+"g")),C.lastIndex=0;Q=C.exec(X);)var j=Q.index;F=F.slice(0,j===n?L:j)}}else if(l.indexOf(Zn(C),L)!=L){var ie=F.lastIndexOf(C);ie>-1&&(F=F.slice(0,ie))}return F+h}function X1(l){return l=Ke(l),l&&nb.test(l)?l.replace($m,NM):l}var j1=as(function(l,u,m){return l+(m?" ":"")+u.toUpperCase()}),ig=Yy("toUpperCase");function BC(l,u,m){return l=Ke(l),u=m?n:u,u===n?TM(l)?AM(l):dM(l):l.match(u)||[]}var GC=ke(function(l,u){try{return Xn(l,n,u)}catch(m){return eg(m)?m:new Ae(m)}}),Z1=bi(function(l,u){return mr(u,function(m){m=ti(m),Si(l,m,Zf(l[m],l))}),l});function J1(l){var u=l==null?0:l.length,m=ye();return l=u?ft(l,function(h){if(typeof h[1]!="function")throw new fr(a);return[m(h[0]),h[1]]}):[],ke(function(h){for(var C=-1;++C<u;){var A=l[C];if(Xn(A[0],this,h))return Xn(A[1],this,h)}})}function eU(l){return NL(Er(l,_))}function og(l){return function(){return l}}function tU(l,u){return l==null||l!==l?u:l}var nU=$y(),rU=$y(!0);function Bn(l){return l}function ag(l){return Sy(typeof l=="function"?l:Er(l,_))}function iU(l){return by(Er(l,_))}function oU(l,u){return yy(l,Er(u,_))}var aU=ke(function(l,u){return function(m){return Bl(m,l,u)}}),sU=ke(function(l,u){return function(m){return Bl(l,m,u)}});function sg(l,u,m){var h=Gt(u),C=ld(u,h);m==null&&!(Et(u)&&(C.length||!h.length))&&(m=u,u=l,l=this,C=ld(u,Gt(u)));var A=!(Et(m)&&"chain"in m)||!!m.chain,w=Ci(l);return mr(C,function(L){var F=u[L];l[L]=F,w&&(l.prototype[L]=function(){var Q=this.__chain__;if(A||Q){var X=l(this.__wrapped__),j=X.__actions__=Pn(this.__actions__);return j.push({func:F,args:arguments,thisArg:l}),X.__chain__=Q,X}return F.apply(l,Ki([this.value()],arguments))})}),l}function lU(){return Qt._===this&&(Qt._=LM),this}function lg(){}function cU(l){return l=xe(l),ke(function(u){return Cy(u,l)})}var uU=Bf(ft),dU=Bf(Vb),pU=Bf(uf);function YC(l){return Wf(l)?df(ti(l)):HL(l)}function _U(l){return function(u){return l==null?n:ea(l,u)}}var mU=zy(),fU=zy(!0);function cg(){return[]}function ug(){return!1}function gU(){return{}}function EU(){return""}function hU(){return!0}function SU(l,u){if(l=xe(l),l<1||l>D)return[];var m=Z,h=on(l,Z);u=ye(u),l-=Z;for(var C=mf(h,u);++m<l;)u(m);return C}function TU(l){return De(l)?ft(l,ti):Jn(l)?[l]:Pn(sC(Ke(l)))}function bU(l){var u=++xM;return Ke(l)+u}var yU=md(function(l,u){return l+u},0),CU=Gf("ceil"),RU=md(function(l,u){return l/u},1),NU=Gf("floor");function vU(l){return l&&l.length?sd(l,Bn,Nf):n}function OU(l,u){return l&&l.length?sd(l,ye(u,2),Nf):n}function AU(l){return qb(l,Bn)}function IU(l,u){return qb(l,ye(u,2))}function DU(l){return l&&l.length?sd(l,Bn,If):n}function wU(l,u){return l&&l.length?sd(l,ye(u,2),If):n}var xU=md(function(l,u){return l*u},1),MU=Gf("round"),LU=md(function(l,u){return l-u},0);function kU(l){return l&&l.length?_f(l,Bn):0}function PU(l,u){return l&&l.length?_f(l,ye(u,2)):0}return v.after=i0,v.ary=hC,v.assign=z0,v.assignIn=xC,v.assignInWith=Od,v.assignWith=W0,v.at=q0,v.before=SC,v.bind=Zf,v.bindAll=Z1,v.bindKey=TC,v.castArray=g0,v.chain=fC,v.chunk=Nk,v.compact=vk,v.concat=Ok,v.cond=J1,v.conforms=eU,v.constant=og,v.countBy=kP,v.create=K0,v.curry=bC,v.curryRight=yC,v.debounce=CC,v.defaults=Q0,v.defaultsDeep=X0,v.defer=o0,v.delay=a0,v.difference=Ak,v.differenceBy=Ik,v.differenceWith=Dk,v.drop=wk,v.dropRight=xk,v.dropRightWhile=Mk,v.dropWhile=Lk,v.fill=kk,v.filter=UP,v.flatMap=GP,v.flatMapDeep=YP,v.flatMapDepth=HP,v.flatten=dC,v.flattenDeep=Pk,v.flattenDepth=Uk,v.flip=s0,v.flow=nU,v.flowRight=rU,v.fromPairs=Fk,v.functions=r1,v.functionsIn=i1,v.groupBy=$P,v.initial=Gk,v.intersection=Yk,v.intersectionBy=Hk,v.intersectionWith=$k,v.invert=a1,v.invertBy=s1,v.invokeMap=zP,v.iteratee=ag,v.keyBy=WP,v.keys=Gt,v.keysIn=Fn,v.map=bd,v.mapKeys=c1,v.mapValues=u1,v.matches=iU,v.matchesProperty=oU,v.memoize=Cd,v.merge=d1,v.mergeWith=MC,v.method=aU,v.methodOf=sU,v.mixin=sg,v.negate=Rd,v.nthArg=cU,v.omit=p1,v.omitBy=_1,v.once=l0,v.orderBy=qP,v.over=uU,v.overArgs=c0,v.overEvery=dU,v.overSome=pU, Line truncated
`);return!o||!a?!1:e.chain().command(({tr:s})=>(s.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;const{state:t}=e,{selection:n,doc:r}=t,{$from:i,empty:o}=n;if(!o||i.parent.type!==this.type||!(i.parentOffset===i.parent.nodeSize-2))return!1;const s=i.after();return s===void 0||r.nodeAt(s)?!1:e.commands.exitCode()}}},addInputRules(){return[$h({find:QV,type:this.type,getAttributes:e=>({language:e[1]})}),$h({find:XV,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new pt({key:new at("codeBlockVSCodeHandler"),props:{handlePaste:(e,t)=>{if(!t.clipboardData||this.editor.isActive(this.type.name))return!1;const n=t.clipboardData.getData("text/plain"),r=t.clipboardData.getData("vscode-editor-data"),i=r?JSON.parse(r):void 0,o=i==null?void 0:i.mode;if(!n||!o)return!1;const{tr:a,schema:s}=e.state,c=s.text(n.replace(/\r\n?/g,`
`));return a.replaceSelectionWith(this.type.create({language:o},c)),a.selection.$from.parent.type!==this.type&&a.setSelection(Ie.near(a.doc.resolve(Math.max(0,a.selection.from-2)))),a.setMeta("paste",!0),e.dispatch(a),!0}}})]}});function ZV(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function gw(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&gw(n)}),e}let fv=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Ew(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function yo(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const JV="</span>",gv=e=>!!e.scope,ez=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};let tz=class{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Ew(t)}openNode(t){if(!gv(t))return;const n=ez(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){gv(t)&&(this.buffer+=JV)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}};const Ev=(e={})=>{const t={children:[]};return Object.assign(t,e),t};let nz=class hw{constructor(){this.rootNode=Ev(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Ev({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{hw._collapse(n)}))}},rz=class extends nz{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new tz(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function iu(e){return e?typeof e=="string"?e:e.source:null}function Sw(e){return Wa("(?=",e,")")}function iz(e){return Wa("(?:",e,")*")}function oz(e){return Wa("(?:",e,")?")}function Wa(...e){return e.map(n=>iu(n)).join("")}function az(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function RT(...e){return"("+(az(e).capture?"":"?:")+e.map(r=>iu(r)).join("|")+")"}function Tw(e){return new RegExp(e.toString()+"|").exec("").length-1}function sz(e,t){const n=e&&e.exec(t);return n&&n.index===0}const lz=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function NT(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let o=iu(r),a="";for(;o.length>0;){const s=lz.exec(o);if(!s){a+=o;break}a+=o.substring(0,s.index),o=o.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+i):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const cz=/\b\B/,bw="[a-zA-Z]\\w*",vT="[a-zA-Z_]\\w*",yw="\\b\\d+(\\.\\d+)?",Cw="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Rw="\\b(0b[01]+)",uz="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",dz=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Wa(t,/.*\b/,e.binary,/\b.*/)),yo({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},ou={begin:"\\\\[\\s\\S]",relevance:0},pz={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ou]},_z={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ou]},mz={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Fm=function(e,t,n={}){const r=yo({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=RT("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:Wa(/[ ] Line truncated
https://github.com/highlightjs/highlight.js/issues/2277`),Z=M,V=D),Y===void 0&&(Y=!0);const oe={code:V,language:Z};he("before:highlight",oe);const Oe=oe.result?oe.result:_(oe.language,oe.code,Y);return Oe.code=oe.code,he("after:highlight",Oe),Oe}function _(M,D,Y,V){const Z=Object.create(null);function oe(G,K){return G.keywords[K]}function Oe(){if(!te.keywords){ve.addText(Se);return}let G=0;te.keywordPatternRe.lastIndex=0;let K=te.keywordPatternRe.exec(Se),ne="";for(;K;){ne+=Se.substring(G,K.index);const pe=_t.case_insensitive?K[0].toLowerCase():K[0],Pe=oe(te,pe);if(Pe){const[mt,Vi]=Pe;if(ve.addText(ne),ne="",Z[pe]=(Z[pe]||0)+1,Z[pe]<=zz&&(gn+=Vi),mt.startsWith("_"))ne+=K[0];else{const zi=_t.classNameAliases[mt]||mt;Ce(K[0],zi)}}else ne+=K[0];G=te.keywordPatternRe.lastIndex,K=te.keywordPatternRe.exec(Se)}ne+=Se.substring(G),ve.addText(ne)}function ze(){if(Se==="")return;let G=null;if(typeof te.subLanguage=="string"){if(!t[te.subLanguage]){ve.addText(Se);return}G=_(te.subLanguage,Se,!0,pr[te.subLanguage]),pr[te.subLanguage]=G._top}else G=g(Se,te.subLanguage.length?te.subLanguage:null);te.relevance>0&&(gn+=G.relevance),ve.__addSublanguage(G._emitter,G.language)}function be(){te.subLanguage!=null?ze():Oe(),Se=""}function Ce(G,K){G!==""&&(ve.startScope(K),ve.addText(G),ve.endScope())}function yt(G,K){let ne=1;const pe=K.length-1;for(;ne<=pe;){if(!G._emit[ne]){ne++;continue}const Pe=_t.classNameAliases[G[ne]]||G[ne],mt=K[ne];Pe?Ce(mt,Pe):(Se=mt,Oe(),Se=""),ne++}}function ge(G,K){return G.scope&&typeof G.scope=="string"&&ve.openNode(_t.classNameAliases[G.scope]||G.scope),G.beginScope&&(G.beginScope._wrap?(Ce(Se,_t.classNameAliases[G.beginScope._wrap]||G.beginScope._wrap),Se=""):G.beginScope._multi&&(yt(G.beginScope,K),Se="")),te=Object.create(G,{parent:{value:te}}),te}function we(G,K,ne){let pe=sz(G.endRe,ne);if(pe){if(G["on:end"]){const Pe=new fv(G);G["on:end"](K,Pe),Pe.isMatchIgnored&&(pe=!1)}if(pe){for(;G.endsParent&&G.parent;)G=G.parent;return G}}if(G.endsWithParent)return we(G.parent,K,ne)}function xn(G){return te.matcher.regexIndex===0?(Se+=G[0],1):(Zr=!0,0)}function mn(G){const K=G[0],ne=G.rule,pe=new fv(ne),Pe=[ne.__beforeBegin,ne["on:begin"]];for(const mt of Pe)if(mt&&(mt(G,pe),pe.isMatchIgnored))return xn(K);return ne.skip?Se+=K:(ne.excludeBegin&&(Se+=K),be(),!ne.returnBegin&&!ne.excludeBegin&&(Se=K)),ge(ne,G),ne.returnBegin?0:K.length}function Mn(G){const K=G[0],ne=D.substring(G.index),pe=we(te,G,ne);if(!pe)return bv;const Pe=te;te.endScope&&te.endScope._wrap?(be(),Ce(K,te.endScope._wrap)):te.endScope&&te.endScope._multi?(be(),yt(te.endScope,G)):Pe.skip?Se+=K:(Pe.returnEnd||Pe.excludeEnd||(Se+=K),be(),Pe.excludeEnd&&(Se=K));do te.scope&&ve.closeNode(),!te.skip&&!te.subLanguage&&(gn+=te.relevance),te=te.parent;while(te!==pe.parent);return pe.starts&&ge(pe.starts,G),Pe.returnEnd?0:K.length}function et(){const G=[];for(let K=te;K!==_t;K=K.parent)K.scope&&G.unshift(K.scope);G.forEach(K=>ve.openNode(K))}let Ze={};function fn(G,K){const ne=K&&K[0];if(Se+=G,ne==null)return be(),0;if(Ze.type==="begin"&&K.type==="end"&&Ze.index===K.index&&ne===""){if(Se+=D.slice(K.index,K.index+1),!i){const pe=new Error(`0 width match regex (${M})`);throw pe.languageName=M,pe.badRule=Ze.rule,pe}return 1}if(Ze=K,K.type==="begin")return mn(K);if(K.type==="illegal"&&!Y){const pe=new Error('Illegal lexeme "'+ne+'" for mode "'+(te.scope||"<unnamed>")+'"');throw pe.mode=te,pe}else if(K.type==="end"){const pe=Mn(K);if(pe!==bv)return pe}if(K.type==="illegal"&&ne==="")return 1;if(kn>1e5&&kn>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Se+=ne,ne.length}const _t=z(M);if(!_t)throw Ia(o.replace("{}",M)),new Error('Unknown language: "'+M+'"');const Ln=Yz(_t);let Mr="",te=V||Ln;const pr={},ve=new s.__emitter(s);et();let Se="",gn=0,Bt=0,kn=0,Zr=!1;try{if(_t.__emitTokens)_t.__emitTokens(D,ve);else{for(te.matcher.considerAll();;){kn++,Zr?Zr=!1:te.matcher.considerAll(),te.matcher.lastIndex=Bt;const G=te.matcher.exec(D);if(!G)break;const K=D.substring(Bt,G.index),ne=fn(K,G);Bt=G.index+ne}fn(D.substring(Bt))}return ve.finalize(),Mr=ve.toHTML(),{language:M,value:Mr,relevance:gn,illegal:!1,_emitter:ve,_top:te}}catch(G){if(G.message&&G.message.includes("Illegal"))return{language:M,value:aE(D),illegal:!0,relevance:0,_illegalBy:{message:G.message,index:Bt,context:D.slice(Bt-100,Bt+100),mode:G.mode,resultSoFar:Mr},_emitter:ve};if(i)return{language:M,value:aE(D),illegal:!1,relevance:0,errorRaised:G,_emitter:ve,_top:te};throw G}}function f(M){const D={value:aE(M),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return D._emitter.addText(M),D}function g(M,D){D=D||s.languages||Object.keys(t);const Y=f(M),V=D.filter(z).filter(ae).map(be=>_(be,M,!1));V.unshift(Y);const Z=V.sort((be,Ce)=>{if(be.relevance!==Ce.relevance)return Ce.relevance-be.relevance;if(be.language&&Ce.language){if(z(be.language).supersetOf===Ce.language)return 1;if(z(Ce.language).supersetOf===be.language)return-1}return 0}),[oe,Oe]=Z, Line truncated
]*;`,relevance:0},{begin:"[vp][0-9]+"}]}}function LK(e){const t="[a-z][a-zA-Z0-9_]*",n={className:"string",begin:"\\$.{1}"},r={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"],keywords:["self","super","nil","true","false","thisContext"],contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:t+":",relevance:0},e.C_NUMBER_MODE,r,n,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,n,e.C_NUMBER_MODE,r]}]}}function kK(e){return{name:"SML (Standard ML)",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}function PK(e){const t={className:"variable",begin:/\b_+[a-zA-Z]\w*/},n={className:"title",begin:/[a-zA-Z][a-zA-Z_0-9]*_fnc_[a-zA-Z_0-9]+/},r={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]},i=["break","breakWith","breakOut","breakTo","case","catch","continue","continueWith","default","do","else","exit","exitWith","for","forEach","from","if","local","private","switch","step","then","throw","to","try","waitUntil","while","with"],o=["blufor","civilian","configNull","controlNull","displayNull","diaryRecordNull","east","endl","false","grpNull","independent","lineBreak","locationNull","nil","objNull","opfor","pi","resistance","scriptNull","sideAmbientLife","sideEmpty","sideEnemy","sideFriendly","sideLogic","sideUnknown","taskNull","teamMemberNull","true","west"],a=["abs","accTime","acos","action","actionIDs","actionKeys","actionKeysEx","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","actionParams","activateAddons","activatedAddons","activateKey","activeTitleEffectParams","add3DENConnection","add3DENEventHandler","add3DENLayer","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addBinocularItem","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addForce","addForceGeneratorRTD","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addonFiles","addOwnedMine","addPlayerScores","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addTorque","addUniform","addUserActionEventHandler","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponItem","addWeaponPool","addWeaponTurret","addWeaponWithAttachmentsCargo","addWeaponWithAttachmentsCargoGlobal","admin","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityCurveRTD","airDensityRTD","airplaneThrottle","airportSide","AISFinishHeal","alive","all3DENEntities","allActiveTitleEffects","allAddonsInfo","allAirports","allControls","allCurators","allCutLayers","allDead","allDeadMen","allDiaryRecords","allDiarySubjects","allDisplays","allEnv3DSoundSources","allGroups","allLODs","allMapMarkers","allMines","allMissionObjects","allObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowedService","allowFileOperations","allowFleeing","allowGetIn","allowService","allowSprint","allPlayers","allSimpleObjects","allSites","allTurrets","allUnits","allUnitsUAV","allUsers","allVariables","ambientTemperature","ammo","ammoOnPylon","and","animate","animateBay","animateDoor","animatePylon","animateSouLine truncated
]*?"'`},{begin:`"[^\r
"]*"`}]},{className:"built_in",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()"}]},e.COMMENT("^[ ]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}function BK(e){return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:["HEADER","ENDSEC","DATA"]},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}const GK=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),YK=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],HK=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],$K=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],VK=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],zK=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","backgrou Line truncated
(multipart)?`,end:`\\]
`},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}function KK(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}}function QK(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}function XK(e){const t=e.regex,n=/[a-zA-Z_][a-zA-Z0-9_]*/,r={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:t.concat(/\$/,t.optional(/::/),n,"(::",n,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[r]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r]}}function jK(e){const t=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}function ZK(e){const t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"symbol",begin:":[^\\]]+"},r={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},i={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[r,i,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT Line truncated
`},d]}}const U3=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),F3=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],B3=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],kw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Pw=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],G3=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","fon Line truncated
]`,g={scope:"string",variants:[d,c,p,_]},E={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},S=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],T=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],R={keyword:b,literal:(ue=>{const me=[];return ue.forEach(he=>{me.push(he),he.toLowerCase()===he?me.push(he.toUpperCase()):me.push(he.toLowerCase())}),me})(S),built_in:T},O=ue=>ue.map(me=>me.replace(/\|\d+$/,"")),I={variants:[{match:[/new/,t.concat(f,"+"),t.concat("(?!",O(T).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},x=t.concat(r,"\\b(?!\\()"),k={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),x],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),x],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},$={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},z={relevance:0,begin:/\(/,end:/\)/,keywords:R,contains:[$,o,k,e.C_BLOCK_COMMENT_MODE,g,E,I]},H={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",O(b).join("\\b|"),"|",O(T).join("\\b|"),"\\b)"),r,t.concat(f,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[z]};z.contains.push(H);const ae=[$,k,e.C_BLOCK_COMMENT_MODE,g,E,I],_e={begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...ae]},...ae,{scope:"meta",match:i}]};return{case_insensitive:!1,keywords:R,contains:[_e,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,H,k,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},I,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:R,contains:["self",o,k,e.C_BLOCK_COMMENT_MODE,g,E]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trai Line truncated
https://github.com/highlightjs/highlight.js/issues/2277`),Z=M,V=D),Y===void 0&&(Y=!0);const oe={code:V,language:Z};he("before:highlight",oe);const Oe=oe.result?oe.result:_(oe.language,oe.code,Y);return Oe.code=oe.code,he("after:highlight",Oe),Oe}function _(M,D,Y,V){const Z=Object.create(null);function oe(G,K){return G.keywords[K]}function Oe(){if(!te.keywords){ve.addText(Se);return}let G=0;te.keywordPatternRe.lastIndex=0;let K=te.keywordPatternRe.exec(Se),ne="";for(;K;){ne+=Se.substring(G,K.index);const pe=_t.case_insensitive?K[0].toLowerCase():K[0],Pe=oe(te,pe);if(Pe){const[mt,Vi]=Pe;if(ve.addText(ne),ne="",Z[pe]=(Z[pe]||0)+1,Z[pe]<=g4&&(gn+=Vi),mt.startsWith("_"))ne+=K[0];else{const zi=_t.classNameAliases[mt]||mt;Ce(K[0],zi)}}else ne+=K[0];G=te.keywordPatternRe.lastIndex,K=te.keywordPatternRe.exec(Se)}ne+=Se.substring(G),ve.addText(ne)}function ze(){if(Se==="")return;let G=null;if(typeof te.subLanguage=="string"){if(!t[te.subLanguage]){ve.addText(Se);return}G=_(te.subLanguage,Se,!0,pr[te.subLanguage]),pr[te.subLanguage]=G._top}else G=g(Se,te.subLanguage.length?te.subLanguage:null);te.relevance>0&&(gn+=G.relevance),ve.__addSublanguage(G._emitter,G.language)}function be(){te.subLanguage!=null?ze():Oe(),Se=""}function Ce(G,K){G!==""&&(ve.startScope(K),ve.addText(G),ve.endScope())}function yt(G,K){let ne=1;const pe=K.length-1;for(;ne<=pe;){if(!G._emit[ne]){ne++;continue}const Pe=_t.classNameAliases[G[ne]]||G[ne],mt=K[ne];Pe?Ce(mt,Pe):(Se=mt,Oe(),Se=""),ne++}}function ge(G,K){return G.scope&&typeof G.scope=="string"&&ve.openNode(_t.classNameAliases[G.scope]||G.scope),G.beginScope&&(G.beginScope._wrap?(Ce(Se,_t.classNameAliases[G.beginScope._wrap]||G.beginScope._wrap),Se=""):G.beginScope._multi&&(yt(G.beginScope,K),Se="")),te=Object.create(G,{parent:{value:te}}),te}function we(G,K,ne){let pe=xQ(G.endRe,ne);if(pe){if(G["on:end"]){const Pe=new Iv(G);G["on:end"](K,Pe),Pe.isMatchIgnored&&(pe=!1)}if(pe){for(;G.endsParent&&G.parent;)G=G.parent;return G}}if(G.endsWithParent)return we(G.parent,K,ne)}function xn(G){return te.matcher.regexIndex===0?(Se+=G[0],1):(Zr=!0,0)}function mn(G){const K=G[0],ne=G.rule,pe=new Iv(ne),Pe=[ne.__beforeBegin,ne["on:begin"]];for(const mt of Pe)if(mt&&(mt(G,pe),pe.isMatchIgnored))return xn(K);return ne.skip?Se+=K:(ne.excludeBegin&&(Se+=K),be(),!ne.returnBegin&&!ne.excludeBegin&&(Se=K)),ge(ne,G),ne.returnBegin?0:K.length}function Mn(G){const K=G[0],ne=D.substring(G.index),pe=we(te,G,ne);if(!pe)return kv;const Pe=te;te.endScope&&te.endScope._wrap?(be(),Ce(K,te.endScope._wrap)):te.endScope&&te.endScope._multi?(be(),yt(te.endScope,G)):Pe.skip?Se+=K:(Pe.returnEnd||Pe.excludeEnd||(Se+=K),be(),Pe.excludeEnd&&(Se=K));do te.scope&&ve.closeNode(),!te.skip&&!te.subLanguage&&(gn+=te.relevance),te=te.parent;while(te!==pe.parent);return pe.starts&&ge(pe.starts,G),Pe.returnEnd?0:K.length}function et(){const G=[];for(let K=te;K!==_t;K=K.parent)K.scope&&G.unshift(K.scope);G.forEach(K=>ve.openNode(K))}let Ze={};function fn(G,K){const ne=K&&K[0];if(Se+=G,ne==null)return be(),0;if(Ze.type==="begin"&&K.type==="end"&&Ze.index===K.index&&ne===""){if(Se+=D.slice(K.index,K.index+1),!i){const pe=new Error(`0 width match regex (${M})`);throw pe.languageName=M,pe.badRule=Ze.rule,pe}return 1}if(Ze=K,K.type==="begin")return mn(K);if(K.type==="illegal"&&!Y){const pe=new Error('Illegal lexeme "'+ne+'" for mode "'+(te.scope||"<unnamed>")+'"');throw pe.mode=te,pe}else if(K.type==="end"){const pe=Mn(K);if(pe!==kv)return pe}if(K.type==="illegal"&&ne==="")return 1;if(kn>1e5&&kn>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Se+=ne,ne.length}const _t=z(M);if(!_t)throw Da(o.replace("{}",M)),new Error('Unknown language: "'+M+'"');const Ln=p4(_t);let Mr="",te=V||Ln;const pr={},ve=new s.__emitter(s);et();let Se="",gn=0,Bt=0,kn=0,Zr=!1;try{if(_t.__emitTokens)_t.__emitTokens(D,ve);else{for(te.matcher.considerAll();;){kn++,Zr?Zr=!1:te.matcher.considerAll(),te.matcher.lastIndex=Bt;const G=te.matcher.exec(D);if(!G)break;const K=D.substring(Bt,G.index),ne=fn(K,G);Bt=G.index+ne}fn(D.substring(Bt))}return ve.finalize(),Mr=ve.toHTML(),{language:M,value:Mr,relevance:gn,illegal:!1,_emitter:ve,_top:te}}catch(G){if(G.message&&G.message.includes("Illegal"))return{language:M,value:dE(D),illegal:!0,relevance:0,_illegalBy:{message:G.message,index:Bt,context:D.slice(Bt-100,Bt+100),mode:G.mode,resultSoFar:Mr},_emitter:ve};if(i)return{language:M,value:dE(D),illegal:!1,relevance:0,errorRaised:G,_emitter:ve,_top:te};throw G}}function f(M){const D={value:dE(M),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return D._emitter.addText(M),D}function g(M,D){D=D||s.languages||Object.keys(t);const Y=f(M),V=D.filter(z).filter(ae).map(be=>_(be,M,!1));V.unshift(Y);const Z=V.sort((be,Ce)=>{if(be.relevance!==Ce.relevance)return Ce.relevance-be.relevance;if(be.language&&Ce.language){if(z(be.language).supersetOf===Ce.language)return 1;if(z(Ce.language).supersetOf===be.language)return-1}return 0}),[oe,Oe]=Z, Line truncated
`);return!r||!i?!1:!!e.chain().command(({tr:o})=>(o.delete(t.pos-2,t.pos),!0)).exitCode().run()}function D4(){if(this.options.codeMode)return!1;const{empty:e,$anchor:t}=this.editor.state.selection,n=t.pos===1;return!e||t.parent.type.name!==this.name?!1:n||!t.parent.textContent.length?!!this.editor.commands.clearNodes():!1}function w4({editor:e}){const t=e.state.selection.$from.parent.textContent.slice(0,e.state.selection.$from.parentOffset);return(t==null?void 0:t.split(`
`))||[]}const MT=["arduino","bash","c","cpp","csharp","css","diff","go","graphql","ini","java","javascript","json","kotlin","less","lua","makefile","markdown","objectivec","perl","php","php-template","plaintext","python","python-repl","r","ruby","rust","scss","shell","sql","swift","typescript","vbnet","wasm","xml","yaml","ipsphtml","ipscss"],x4=dt.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:e}){return["li",We(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),cu=x4.extend({parseHTML(){return[{tag:"li",getAttrs:e=>{var t;if(((t=e.childNodes)==null?void 0:t.length)>1){const n=document.createElement("div");n.innerHTML=e.innerHTML,e.innerHTML="",e.appendChild(n)}return null}}]}});function Vt(e,t="",n=!0){const r=i=>{t&&(i.message=t+": "+i.message),window.Debug[n?"warn":"error"](i)};try{const i=e();return i instanceof Promise?new Promise(o=>{i.catch(r).finally(()=>o(!1))}):!0}catch(i){return r(i),!1}}const Kn=OT.extend({addCommands(){var e;return{...(e=this.parent)==null?void 0:e.call(this)}},addAttributes(){var e;return{language:{default:this.options.defaultLanguage||((e=this.options.allowedLanguages)==null?void 0:e[0])||"plaintext",parseHTML:t=>{var r,i;const n=(r=(()=>{if(t.hasAttribute("language"))return t.getAttribute("language");for(const o of t.classList)if(o.match(/^language-([a-z0-9\-_]+)$/i))return o.match(/^language-([a-z0-9\-_]+)$/i)[1];for(const o of t.querySelectorAll("code")){if(o.hasAttribute("language"))return o.getAttribute("language");for(const a of o.classList)if(a.match(/^language-([a-z0-9\-_]+)$/i))return a.match(/^language-([a-z0-9\-_]+)$/i)[1]}})())==null?void 0:r.toLowerCase();return this.options.codeMode&&(!n||!MT.includes(n)||n!==this.options.defaultLanguage&&this.options.allowedLanguages&&!this.options.allowedLanguages.includes(n))?this.options.defaultLanguage||((i=this.options.allowedLanguages)==null?void 0:i[0])||"plaintext":n}}}},addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),codeMode:!1,allowedLanguages:null}},renderHTML({HTMLAttributes:e}){var n;const t=this.options.codeMode?this.editor.options.lastLang||((n=this.editor.options.allowedLanguages)==null?void 0:n[0])||"plaintext":e.language;return["pre",{spellcheck:"false",class:`${this.options.codeMode?"":"ipsCode "}language-${t}`,"data-language":sl[t]||t},["code",{},0]]},onUpdate({editor:e}){this.options.codeMode&&e.options.lastLang&&e.options.lastLang!==e.getAttributes(this).language&&e.chain().setCodeBlock({language:e.options.lastLang}).run()},addKeyboardShortcuts(){const e=this.editor;return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{var o;if(!e.state.selection.empty||((o=e.state.selection.$from.parent)==null?void 0:o.type.name)!==this.name)return!1;if(D4.call(this))return!0;if(!this.options.codeMode&&(!e.state.selection.$from.parent.attrs.language||["plaintext","bash","shell","zsh","sh"].includes(e.state.selection.$from.parent.attrs.language)))return!1;const n=e.state.selection.$from.parent.textContent.slice(0,e.state.selection.$from.parentOffset),r=e.state.selection.$from.parent.textContent.slice(e.state.selection.$from.parentOffset);if(n&&r){for(const a in Ht)if(n.endsWith(a)&&r.startsWith(Ht[a]))return e.chain().deleteRange({from:e.state.selection.from-a.length,to:e.state.selection.from+Ht[a].length}).setTextSelection(e.state.selection.from-a.length).focus().run()}const i=n.match(/(\t)[^\n]*(\n\t+)$/);return i?e.chain().deleteRange({from:e.state.selection.from-i[2].length,to:e.state.selection.from}).setTextSelection(e.state.selection.from-i[2].length).focus().run():!1},Enter:({editor:t})=>{var y,R,O,I,x,k,$,z,H,ae,_e;if(I4.call(this,{editor:t}))return!0;const{$from:r}=t.state.selection,{parent:i}=r;if(!t.state.selection.empty||(i==null?void 0:i.type.name)!==this.name||!this.options.codeMode&&(!i.attrs.language||["plaintext","bash","shell","zsh","sh"].includes(i.attrs.language)))return!1;const o=w4({editor:t});if(!o.length)return!1;const a=o[o.length-1],s=o[o.length-2];let c=((R=(y=a.match(/^\t*/))==null?void 0:y[0])==null?void 0:R.length)||0,d=!1;const p=i.attrs.language,_=["ipsphtml","xml","html","xhtml","html5"].includes(p),f=["ipscss","css","scss","sass","less"].includes(p),g=["plaintext","rtf","markdown","md","bbcode"].includes(p),E=_?/(<[^>/]*>)$/:/([{[(.:]|->)$/,S=_?/(<\/[^/>]*>)$/:/^\s*([}\])]+[,;]?)$/;let b=!1;if(!_&&!f&&!g&&a.match(/^\s+(\.|->)?[a-z0-9_-]/i))if(a.match(/^\s+(\.|->)/))b=!0,c--;else{let ue=1;for(;ue<o.length&&((x=(I=(O=o[o.length-1-ue])==null?void 0:O.match(/^\t*/))==null?void 0:I[0])==null?void 0:x.length)<=c;)ue++;(k=o[o.length-ue])!=null&&k.match(/(\.|->)\s*$/)&&(b=!0,c--)}let T=!1 Line truncated
`+" ".repeat(c);d?(ue-=a.length,he=a.replace(/^\t/,"")+he):T&&(me=`
`+(c>1?" ".repeat(c-1):""),he+=me);let se=this.editor.chain().insertContentAt({from:ue,to:t.state.selection.from},{type:"text",text:he});return me&&(se=se.setTextSelection(t.state.selection.from+he.length-me.length)),se.focus().run()}return!1},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown||this.options.codeMode)return!1;const{state:n}=t,{selection:r,doc:i}=n,{$from:o,empty:a}=r;if(!a||o.parent.type!==this.type||!(o.parentOffset===o.parent.nodeSize-2))return!1;const c=o.after();return c===void 0||i.nodeAt(c)?!1:!!t.commands.exitCode()},ArrowUp:M4.bind(this),Tab:op.bind(this,!1,{editor:e}),"Shift-Tab":op.bind(this,!0,{editor:e}),"Alt-Tab":op.bind(this,!1,{editor:e},!0),"Shift-Alt-Tab":op.bind(this,!0,{editor:e},!0)}},addProseMirrorPlugins(){var t;const e={};for(const n in Ht)e[Ht[n]]=n;return[...((t=this.parent)==null?void 0:t.call(this))||[],new pt({key:new at("ipsCodeModeSyntaxHelpers"),props:{handleKeyDown:(n,r)=>{var o;if(!(r instanceof KeyboardEvent)||r.metaKey||r.altKey)return;const i=this.editor;if(((o=r.key)==null?void 0:o.toLowerCase())in Ht)return r.key.toLowerCase()in e&&Pv({editor:i,opener:r.key.toLowerCase()})?!0:!!L4({editor:i,char:r.key.toLowerCase()});if(r.key.toLowerCase()in e)return!!Pv({editor:i,opener:e[r.key.toLowerCase()]})}}})]}});function M4({editor:e}){if(e.options.codeMode)return!1;const{$from:t,empty:n}=e.state.selection;if(t.nodeBefore||!n||t.parent.type!==this.type)return!1;let r=0,i;for(const a of[...t.path].reverse()){if(!Number.isInteger(a)&&(r++,r===2))break;i=a}return!r||!Number.isInteger(i)||i!==0||!(t.parentOffset===0)?!1:(e.chain().insertContentAt(t.before(),"<p>&nbsp;</p>",{updateSelection:!0}).run(),!0)}function op(e=!1,{editor:t=null},n=!1){var r,i,o,a;if((!t.state.selection.empty||e)&&t.isActive(this.name)&&(t.options.codeMode||[...t.state.selection.$from.path].reverse()[3]===[...t.state.selection.$to.path].reverse()[3]))return t.state.selection.empty&&e&&t.state.selection.$from.parentOffset===0||Vt(()=>{t.chain().command(({tr:s,chain:c})=>{var d,p,_,f;try{const{from:g,to:E}=t.state.selection,S=[...t.state.selection.$from.path].reverse()[3]+1;let b=g;if(b>[...t.state.selection.$from.path].reverse()[3]){for(;b>[...t.state.selection.$from.path].reverse()[3]&&!((d=s.doc.slice(b-1,b--).content.content[0])!=null&&d.textContent.startsWith(`
`)););b++}const T=((p=s.doc.slice(b,E).content.content[0])==null?void 0:p.textContent)||"",y=g-b,R=T.split(`
`),O=R.map(k=>e?k.replace(/^\t/,""):" "+k).join(`
`);let I=!1;try{e&&R.length>1&&R[R.length-1].match(/^\t/)&&((f=(_=s.doc.slice(E,E+1))==null?void 0:_.content.content[0])==null?void 0:f.textContent)===" "&&(I=!0)}catch{}s.insertText(O,b,E);const x={from:b+y,to:b+O.length};e&&T.startsWith(" ")?x.from--:e||x.from++,I&&x.to++,S>x.from&&(x.from=S),c().setTextSelection(x).focus().run()}catch{}return!0}).run()},"Something went wrong when modifying indents in a codeblock selection"),!0;if(!n&&t.isActive(cu.name))return!1;if(t.state.selection.empty){if(e){if(t.state.selection.$from.parentOffset>0){const s=t.state.doc.slice(t.state.selection.from-1,t.state.selection.from);if(((i=(r=s==null?void 0:s.content)==null?void 0:r.content[0])==null?void 0:i.textContent)===" "){const{from:c}=t.state.selection;return t.chain().command(({tr:d})=>(d.deleteRange(c-1,c),!0)).setTextSelection({from:c-1,to:c-1}).run(),!0}}if(t.state.selection.$from.parentOffset<t.state.selection.$from.parent.nodeSize-2){const s=t.state.doc.slice(t.state.selection.from,t.state.selection.from+1);if(((a=(o=s==null?void 0:s.content)==null?void 0:o.content[0])==null?void 0:a.textContent)===" "){const{from:c}=t.state.selection;return t.chain().command(({tr:d})=>(d.deleteRange(c,c+1),!0)).setTextSelection({from:c,to:c}).run(),!0}}}}else return!0;return t.chain().insertContent(" ").focus().run(),!0}function L4({editor:e,char:t}){var _,f,g;if(!(t in Ht))return!1;const{$from:n,$to:r}=e.state.selection,i=n.parent,o=r.parent;if(((_=i==null?void 0:i.type)==null?void 0:_.name)!==OT.name||i!==o)return!1;if(e.state.selection.empty)return e.chain().insertContent(`${t}${Ht[t]}`).setTextSelection(e.state.selection.from+t.length).focus().run();const a=i.textContent;let s=a.slice(n.parentOffset,r.parentOffset);if(!s)return!1;if(['"',"'","`"].includes(t)){const E=new RegExp(`(^|[^\\\\])\\${t}`,"g");s=s.replaceAll(E,`$1\\${t}`).replaceAll(/\n/g,"\\n")}let c="",d=0;if(s.match(/\n/)){const S=a.slice(0,n.parentOffset).split(`
`).pop(),b=a.slice(r.parentOffset).split(`
`).shift();let T=Math.max(0,((g=(f=S.match(/^\t*/))==null?void 0:f[0])==null?void 0:g.length)+1);S.match(/^\t*$/)&&b.match(/^\t+$/)&&(T+=b.match(/^\t+$/)[0].length),b.match(/^\s*$/)&&(s=s.replace(/^\s*?\n\s*(.?)/,"$1")),d=T+1;const y=" ".repeat(T),R=new RegExp(`\\n\\t{0,${T?T-1:0}}`,"g");if(s=s.replaceAll(R,`
${y}`),s=`${t}
${y}${s}
${y?y.slice(0,y.length-1):""}${Ht[t]}`,r.parentOffset<a.length)try{const O=a.slice(r.parentOffset,r.parentOffset+1);O!=null&&O.match(/\n/)||(c=`
`+(y?y.slice(0,y.length-1):""),s+=c)}catch{}}else s=`${t}${s}${Ht[t]}`;const p={from:e.state.selection.from+t.length+d,to:e.state.selection.from+s.length-Ht[t].length-c.length-(d?d-1:0)};return e.chain().insertContentAt({from:e.state.selection.from,to:e.state.selection.to},{type:"text",text:s}).setTextSelection(p).focus().run()}function Pv({editor:e,opener:t}){var o;if(!(t in Ht)||!e.state.selection.empty)return!1;const{$from:n}=e.state.selection,r=n.parent;if((r==null?void 0:r.type.name)!==OT.name)return!1;const i=(o=n.parent)==null?void 0:o.textContent;if(n.parentOffset<1||n.parentOffset>=i.length)return!1;try{const a=n.parentOffset;let s=i==null?void 0:i.slice(a,a+Ht[t].length);if(!s)return;if(s.startsWith(Ht[t]))return a>0&&['"',"'","`"].includes(t)&&(i==null?void 0:i[a-1])==="\\"?e.chain().insertContent({type:"text",text:Ht[t]}).focus().run():e.chain().setTextSelection(e.state.selection.from+Ht[t].length).focus().run()}catch{return!1}return!1}const Ht={"{":"}","[":"]","(":")","'":"'",'"':'"',"`":"`"},ic={};function dx(e,t,n=[]){var r;if(!((r=ic[e])!=null&&r.to)){let i=!1;if(e===t)i=[e];else if(e in Ro){const o=[e];if(t in Ro[e])o.push(t);else{let a;n=[...n,...o];for(const s in Ro[e])if(!(n.includes(s)||s===e)&&Ro[s]){const c=dx(s,t,n);Array.isArray(c)&&(!a||a.length>c.length)&&(a=c)}Array.isArray(a)&&o.splice(1,0,...a)}o.length&&o[o.length-1]===t&&(i=o)}e in ic||(ic[e]={}),ic[e][t]=i}return ic[e][t]}function k4(e,t,n){const r=dx(e,t);if(!Array.isArray(r))throw new RangeError(`Cannot convert ${e} to ${t} because there is not a known conversion pathway`);r.length===1&&e===pn.name&&n.chain().toggleHeading({level:n.level||1});for(let i=0;i<r.length-1;i++){const o=Ro[r[i]][r[i+1]](n);if(o!==void 0&&!o)throw new Error(`Could not convert ${r[i]} to ${r[i+1]}`)}return!0}function LT(e){const t=[...e.state.selection.$from.path].reverse()[2],n=t==null?void 0:t.type.name;return n===pn.name?[n,{level:t.attrs.level||1}]:[n||"",{}]}function Mp(e){var n;if(e[0]===pn.name)return`Heading ${((n=e[1])==null?void 0:n.level)||""}`;const t=e[0]in Zh?e[0]:Nt.name;return Zh[t]}function P4(e){if(e in Uv)return[Uv[e],{}];const t=Mp([pn.name,{}]);if(e.startsWith(t)){const n=parseInt(e.replace("Heading","").trim())||1;return[pn.name,{level:n}]}return[Nt.name,{}]}const Zh={[Hi.name]:"Ordered List",[Yo.name]:"Bullet List",[Kn.name]:"Code Block",[Nt.name]:"Paragraph"},Uv=Object.fromEntries([...Object.entries(Zh)].map(e=>e.reverse()));function U4(e){for(let t of pn.options.levels)if(e.isActive(pn.name,{level:t}))return{level:t};return null}function px(e){const t=LT(e);return t[0]in Ro?F4(...t).filter(n=>{var r,i;return(n[0]!==pn.name||!((r=e.options.restrictions)!=null&&r.has("heading")))&&!(n[0]===pn.name&&n[1].level===1&&((i=e.options.restrictions)!=null&&i.has("heading_1")))}):[]}const oc={};function F4(e,t={}){const n=JSON.stringify({name:e,attributes:t});if(!(n in oc)){const r=_x(e);oc[n]=[];for(const i of r)if(i===pn.name)for(let o=1;o<=6;o++)oc[n].push([pn.name,{level:o}]);else oc[n].push([i,{}])}return oc[n]}function _x(e,t){if(t=t||new Set,t.add(e),e in Ro)for(const n in Ro[e])t.has(n)||_x(n,t);return t}const Ro={[Nt.name]:{[Kn.name]:({chain:e})=>e().setCodeBlock(),[pn.name]:({chain:e,level:t=1})=>e().setHeading({level:t})},[Kn.name]:{[Nt.name]:({chain:e})=>e().toggleCodeBlock()},[pn.name]:{[Nt.name]:({chain:e,editor:t,level:n})=>{var r;return n=n||((r=U4(t))==null?void 0:r.level),n?e().toggleHeading({level:n}):!1}}};function B4({...e}){const{editor:t}=B.useContext(Ue),n=LT(t);return e.dropdownOptions=e.dropdownOptions||{},e.dropdownOptions.className=e.dropdownOptions.className||"",e.dropdownOptions.className=[...e.dropdownOptions.className.split(/\s+/),"ipsRichText"].join(" "),N.jsx(za,{current:N.jsx(N.Fragment,{children:N.jsx("i",{className:"fa-solid fa-paragraph"})}),currentValue:Mp(n),blank:N.jsx(Fv,{block:[Nt.title,{}]}),items:px(t).map(r=>[Mp(r),N.jsx(Fv,{block:r},Mp(r))]),onChange:r=>{const i=P4(r);t.chain().command(o=>k4(n[0],i[0],{...i[1]||{},...o})).focus().run()},...e,dropdownOptions:{...e.dropdownOptions,location:"se"}})}function Fv({block:e,style:t=!0}){if(e[0]===pn.name){const n=`h${e[1].level}`;return t?N.jsxs(n,{children:["Heading ",e[1].level]}):N.jsxs(N.Fragment,{children:["Heading ",e[1].level]})}return e[0]===Kn.name?t?N.jsx("code",{children:"Code Block"}):N.jsx(N.Fragment,{children:"Code Block"}):N.jsx(N.Fragment,{children:"Paragraph"})}const uu=Ft.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(e){return e!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sub",We(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),du=Ft.create({name:"superscript",addOptionsLine truncated
`,K4="️",Q4="‍";let sp=null,lp=null;function X4(e){e===void 0&&(e=[]);const t={};Hn.groups=t;const n=new Hn;sp==null&&(sp=$v(H4)),lp==null&&(lp=$v($4)),re(n,"'",H_),re(n,"{",Ic),re(n,"}",Dc),re(n,"[",O_),re(n,"]",A_),re(n,"(",I_),re(n,")",D_),re(n,"<",w_),re(n,">",x_),re(n,"(",M_),re(n,")",L_),re(n,"「",k_),re(n,"」",P_),re(n,"『",U_),re(n,"』",F_),re(n,"<",B_),re(n,">",G_),re(n,"&",Y_),re(n,"*",$_),re(n,"@",uo),re(n,"`",z_),re(n,"^",W_),re(n,":",go),re(n,",",UT),re(n,"$",q_),re(n,".",oi),re(n,"=",K_),re(n,"!",FT),re(n,"-",ai),re(n,"%",Q_),re(n,"|",X_),re(n,"+",j_),re(n,"#",Z_),re(n,"?",J_),re(n,'"',BT),re(n,"/",si),re(n,";",GT),re(n,"~",wc),re(n,"_",em),re(n,"\\",V_);const r=br(n,mE,kT,{[Jh]:!0});br(r,mE,r);const i=br(n,fs,Ai,{[eS]:!0});br(i,fs,i);const o=br(n,pE,rS,{[tS]:!0});br(o,fs),br(o,pE,o);const a=br(n,Yv,fx,{[Bv]:!0});re(n,Hv,PT,{[Bv]:!0}),re(a,Hv),br(a,Yv,a);const s=br(n,_E,gx,{[mx]:!0});br(s,_E,s),re(s,K4,s);const c=re(s,Q4);br(c,_E,s);const d=[[fs,i]],p=[[fs,null],[pE,o]];for(let _=0;_<sp.length;_++)ro(n,sp[_],iS,Ai,d);for(let _=0;_<lp.length;_++)ro(n,lp[_],oS,rS,p);Ta(iS,{tld:!0,ascii:!0},t),Ta(oS,{utld:!0,alpha:!0},t),ro(n,"file",kp,Ai,d),ro(n,"mailto",kp,Ai,d),ro(n,"http",Ts,Ai,d),ro(n,"https",Ts,Ai,d),ro(n,"ftp",Ts,Ai,d),ro(n,"ftps",Ts,Ai,d),Ta(kp,{scheme:!0,ascii:!0},t),Ta(Ts,{slashscheme:!0,ascii:!0},t),e=e.sort((_,f)=>_[0]>f[0]?1:-1);for(let _=0;_<e.length;_++){const f=e[_][0],E=e[_][1]?{[V4]:!0}:{[z4]:!0};f.indexOf("-")>=0?E[nS]=!0:fs.test(f)?mE.test(f)?E[Lp]=!0:E[eS]=!0:E[Jh]=!0,Gv(n,f,f,E)}return Gv(n,"localhost",pu,{ascii:!0}),n.jd=new Hn(tm),{start:n,tokens:Ya({groups:t},Ex)}}function j4(e,t){const n=Z4(t.replace(/[A-Z]/g,s=>s.toLowerCase())),r=n.length,i=[];let o=0,a=0;for(;a<r;){let s=e,c=null,d=0,p=null,_=-1,f=-1;for(;a<r&&(c=s.go(n[a]));)s=c,s.accepts()?(_=0,f=0,p=s):_>=0&&(_+=n[a].length,f++),d+=n[a].length,o+=n[a].length,a++;o-=_,a-=f,d-=_,i.push({t:p.t,v:t.slice(o-d,o),s:o-d,e:o})}return i}function Z4(e){const t=[],n=e.length;let r=0;for(;r<n;){let i=e.charCodeAt(r),o,a=i<55296||i>56319||r+1===n||(o=e.charCodeAt(r+1))<56320||o>57343?e[r]:e.slice(r,r+2);t.push(a),r+=a.length}return t}function ro(e,t,n,r,i){let o;const a=t.length;for(let s=0;s<a-1;s++){const c=t[s];e.j[c]?o=e.j[c]:(o=new Hn(r),o.jr=i.slice(),e.j[c]=o),e=o}return o=new Hn(n),o.jr=i.slice(),e.j[t[a-1]]=o,o}function $v(e){const t=[],n=[];let r=0,i="0123456789";for(;r<e.length;){let o=0;for(;i.indexOf(e[r+o])>=0;)o++;if(o>0){t.push(n.join(""));for(let a=parseInt(e.substring(r,r+o),10);a>0;a--)n.pop();r+=o}else n.push(e[r]),r++}return t}const ll={defaultProtocol:"http",events:null,format:Vv,formatHref:Vv,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Gm(e,t){t===void 0&&(t=null);let n=Ya({},ll);e&&(n=Ya(n,e instanceof Gm?e.o:e));const r=n.ignoreTags,i=[];for(let o=0;o<r.length;o++)i.push(r[o].toUpperCase());this.o=n,t&&(this.defaultRender=t),this.ignoreTags=i}Gm.prototype={o:ll,ignoreTags:[],defaultRender(e){return e},check(e){return this.get("validate",e.toString(),e)},get(e,t,n){const r=t!=null;let i=this.o[e];return i&&(typeof i=="object"?(i=n.t in i?i[n.t]:ll[e],typeof i=="function"&&r&&(i=i(t,n))):typeof i=="function"&&r&&(i=i(t,n.t,n)),i)},getObj(e,t,n){let r=this.o[e];return typeof r=="function"&&t!=null&&(r=r(t,n.t,n)),r},render(e){const t=e.render(this);return(this.get("render",null,e)||this.defaultRender)(t,e.t,e)}};function Vv(e){return e}var J4=Object.freeze({__proto__:null,defaults:ll,Options:Gm,assign:Ya});function hx(e,t){this.t="token",this.v=e,this.tk=t}hx.prototype={isLink:!1,toString(){return this.v},toHref(e){return this.toString()},toFormattedString(e){const t=this.toString(),n=e.get("truncate",t,this),r=e.get("format",t,this);return n&&r.length>n?r.substring(0,n)+"…":r},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return e===void 0&&(e=ll.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,n=this.toHref(e.get("defaultProtocol")),r=e.get("formatHref",n,this),i=e.get("tagName",n,t),o=this.toFormattedString(e),a={},s=e.get("className",n,t),c=e.get("target",n,t),d=e.get("rel",n,t),p=e.getObj("attributes",n,t),_=e.getObj("events",n,t);return a.href=r,s&&(a.class=s),c&&(a.target=c),d&&(a.rel=d),p&&Ya(a,p),{tagName:i,attributes:a,content:o,eventListeners:_}}};function Ym(e,t){class n extends hx{constructor(i,o){super(i,o),this.t=e}}for(const r in t)n.prototype[r]=t[r];return n.t=e,n}const zv=Ym("email",{isLink:!0,toHref(){return"mailto:Line truncated
1. Must only contain digits, lowercase ASCII letters or "-"
2. Cannot start or end with "-"
3. "-" cannot repeat`);ht.customSchemes.push([e,t])}function a5(){ht.scanner=X4(ht.customSchemes);for(let e=0;e<ht.tokenQueue.length;e++)ht.tokenQueue[e][1]({scanner:ht.scanner});ht.parser=t5(ht.scanner.tokens);for(let e=0;e<ht.pluginQueue.length;e++)ht.pluginQueue[e][1]({scanner:ht.scanner,parser:ht.parser});ht.initialized=!0}function Sx(e){return ht.initialized||a5(),n5(ht.parser.start,e,j4(ht.scanner.start,e))}function YT(e,t,n){if(t===void 0&&(t=null),n===void 0&&(n=null),t&&typeof t=="object"){if(n)throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);n=t,t=null}const r=new Gm(n),i=Sx(e),o=[];for(let a=0;a<i.length;a++){const s=i[a];s.isLink&&(!t||s.t===t)&&r.check(s)&&o.push(s.toFormattedObject(r))}return o}function s5(e){return e.length===1?e[0].isLink:e.length===3&&e[1].isLink?["()","[]"].includes(e[0].value+e[2].value):!1}function l5(e){return new pt({key:new at("autolink"),appendTransaction:(t,n,r)=>{const i=t.some(d=>d.docChanged)&&!n.doc.eq(r.doc),o=t.some(d=>d.getMeta("preventAutolink"));if(!i||o)return;const{tr:a}=r,s=O$(n.doc,[...t]);if(k$(s).forEach(({newRange:d})=>{const p=I$(r.doc,d,g=>g.isTextblock);let _,f;if(p.length>1?(_=p[0],f=r.doc.textBetween(_.pos,_.pos+_.node.nodeSize,void 0," ")):p.length&&r.doc.textBetween(d.from,d.to," "," ").endsWith(" ")&&(_=p[0],f=r.doc.textBetween(_.pos,d.to,void 0," ")),_&&f){const g=f.split(" ").filter(T=>T!=="");if(g.length<=0)return!1;const E=g[g.length-1],S=_.pos+f.lastIndexOf(E);if(!E)return!1;const b=Sx(E).map(T=>T.toObject(e.defaultProtocol));if(!s5(b))return!1;b.filter(T=>T.isLink).map(T=>({...T,from:S+T.start+1,to:S+T.end+1})).filter(T=>r.schema.marks.code?!r.doc.rangeHasMark(T.from,T.to,r.schema.marks.code):!0).filter(T=>e.validate(T.value)).forEach(T=>{yT(T.from,T.to,r.doc).some(y=>y.mark.type===e.type)||a.addMark(T.from,T.to,e.type.create({href:T.href}))})}}),!!a.steps.length)return a}})}function c5(e){return new pt({key:new at("handleClickLink"),props:{handleClick:(t,n,r)=>{var i,o;if(r.button!==0)return!1;let a=r.target;const s=[];for(;a.nodeName!=="DIV";)s.push(a),a=a.parentNode;if(!s.find(f=>f.nodeName==="A"))return!1;const c=bT(t.state,e.type.name),d=r.target,p=(i=d==null?void 0:d.href)!==null&&i!==void 0?i:c.href,_=(o=d==null?void 0:d.target)!==null&&o!==void 0?o:c.target;return d&&p?(window.open(p,_),!0):!1}}})}function u5(e){return new pt({key:new at("handlePasteLink"),props:{handlePaste:(t,n,r)=>{const{state:i}=t,{selection:o}=i,{empty:a}=o;if(a)return!1;let s="";r.content.forEach(d=>{s+=d.textContent});const c=YT(s,{defaultProtocol:e.defaultProtocol}).find(d=>d.isLink&&d.value===s);return!s||!c?!1:(e.editor.commands.setMark(e.type,{href:c.href}),!0)}}})}const d5=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g,p5=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i;function Kv(e){return!e||e.replace(d5,"").match(p5)}const ac=Ft.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.protocols.forEach(e=>{if(typeof e=="string"){qv(e);return}qv(e.scheme,e.optionalSlashes)})},onDestroy(){o5()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},validate:e=>!!e}},addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:"a[href]",getAttrs:e=>{const t=e.getAttribute("href");return!t||!Kv(t)?!1:{href:t}}}]},renderHTML({HTMLAttributes:e}){return Kv(e.href)?["a",We(this.options.HTMLAttributes,e),0]:["a",We(this.options.HTMLAttributes,{...e,href:""}),0]},addCommands(){return{setLink:e=>({chain:t})=>t().setMark(this.name,e).setMeta("preventAutolink",!0).run(),toggleLink:e=>({chain:t})=>t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run(),unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[Go({find:e=>{const t=[];if(e){const{validate:n}=this.options,r=YT(e).filter(i=>i.isLink&&n(i.value));r.length&&r.forEach(i=>t.push({text:i.value,data:{href:i.href},index:i.start}))}return t},type:this.type,getAttributes:e=>{var t;return{href:(t=e.data)===null||t===void 0?void 0:t.href}}})]},addProseMirrorPlugins(){const e=[];return this.options.autolink&&e.push(l5({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:this.options.validate})),this.options.openOnClick&&e.push(c5({type:this.type})),this.options.linkOnPaste&&e.push(u5({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type})),e}}),Qr=dt.create({name:"text",group:"inline"}),nt=ac.extend({addAttributes(){var e;return{...(e=this.parent)==null?void 0:e.call(this),tempid:{default:null}}},addKeyboardShortcuts(){var t;const e=n=>({ Line truncated
`},addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:n,editor:r})=>e.first([()=>e.exitCode(),()=>e.command(()=>{const{selection:i,storedMarks:o}=n;if(i.$from.parent.type.spec.isolating)return!1;const{keepMarks:a}=this.options,{splittableMarks:s}=r.extensionManager,c=o||i.$to.parentOffset&&i.$from.marks();return t().insertContent({type:this.name}).command(({tr:d,dispatch:p})=>{if(p&&c&&a){const _=c.filter(f=>s.includes(f.type.name));d.ensureMarks(_)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),Pp=dt.create({name:"doc",topNode:!0,content:"block+"}),Bx=vt.create({name:"ipsAutosave",addCommands(){return{clearAutosave:()=>({editor:e,chain:t})=>(e.options.autoSaveKey&&(window.ips.utils.db.remove("editorSave",e.options.autoSaveKey),t().hideMessage("autosave").run()),!0)}},onUpdate(){this.storage.updateCallback()},onCreate(){var e,t;if(this.storage.updateCallback=lr.debounce(()=>{var n;(n=this.editor)!=null&&n.options.autoSaveKey&&(this.editor.getHTML().trim()&&this.editor.getHTML()!=="<p></p>"?window.ips.utils.db.set("editorSave",this.editor.options.autoSaveKey,{content:this.editor.getHTML(),time:Math.round(Date.now()/1e3)}):this.editor.commands.clearAutosave(),this.editor.commands.hideMessage("autosave"))},500),(e=this.editor)!=null&&e.options.autoSaveKey){const n=window.ips.utils.db.get("editorSave",this.editor.options.autoSaveKey);if((t=n==null?void 0:n.content)!=null&&t.trim()&&(!n.time||Date.now()/1e3-86400*3<parseInt(n.time))){const r=new DOMParser().parseFromString(n.content,"text/html");if(!(r.body.innerText.trim().length||r.body.querySelector("iframe,img,video,audio,a,embed,.ipsEmoji,.ipsEmbeddedVideo,.ipsEmbeddedBrightcove,.ipsEmbeddedOther,.ipsEmbeddedPhoto")))return;this.storage.initial=this.editor.getHTML(),this.editor.chain().setContent(n.content).command(({tr:i,chain:o})=>(!i.docChanged||Gx(i.doc)?o().undo().hideMessage("autosave").run():o().showMessage("autosave").focus().run(),!0)).run()}}},addStorage(){return{initial:"",updateCallback:()=>{}}}});function Gx(e){var t,n,r;return e.textContent==="<p></p>"?!0:!((t=e.textContent)!=null&&t.trim().length||![Pp.name,Nt.name,Qr.name,gu.name].includes(e.type.name)||(r=(n=e.content)==null?void 0:n.content)!=null&&r.length&&!e.content.content.some(i=>!Gx(i)))}function I9(){const{editor:e}=B.useContext(Ue);return N.jsxs(N.Fragment,{children:["The content was restored from an automatically saved draft. Click to ",N.jsx("button",{className:"ipsEditor__autosave-clear",onClick:()=>e.chain().clearAutosave().setContent(e.storage[Bx.name].initial||"").focus().run(),children:"clear draft."})]})}function D9({positions:e="",href:t}){const{editor:n}=B.useContext(Ue),r=()=>{if(!e.length){n.commands.hideMessage("autoembed");return}let i=n.chain();for(const o of e)i=i.command(({tr:a,chain:s})=>s().insertContentAt({from:Math.max(0,a.mapping.map(o[0])),to:Math.min(a.doc.nodeSize-2,a.mapping.map(o[1]))},`<a href="${encodeURI(t)}" >${o[2]}</a>`));i.hideMessage("autoembed").focus().run()};return N.jsxs(N.Fragment,{children:["A URL was inserted as embedded content. Click to ",N.jsx("button",{className:"ipsEditor__autosave-clear",onClick:r,children:"insert as link"})," instead."]})}function lO({name:e}){const{editor:t}=B.useContext(Ue);return N.jsxs("div",{className:`ipsEditor__global-message ipsEditor__global-message--${e}`,children:[N.jsxs("div",{className:"ipsEditor__global-message-content",children:[N.jsx("i",{className:"fa-solid fa-circle-info"}),"  ",N.jsx(w9,{name:e})]}),N.jsx("button",{className:"ipsEditor__global-message-close",onClick:()=>t==null?void 0:t.commands.hideMessage(e),children:N.jsx("i",{className:"fa-solid fa-times-circle"})})]})}function w9({name:e}){const{messages:t}=B.useContext(lS),n=t.get(e);switch(e){case"autosave":return N.jsx(I9,{});case"autoembed":return N.jsx(D9,{...n});default:return typeof n=="string"&&n?N.jsx("span",{"data-ipseditorcustommessage":"true",dangerouslySetInnerHTML:{__html:n}}):N.jsx(N.Fragment,{children:"This is a global message!"})}}const lS=B.createContext({messages:new Map,addMessage(e,t=""){this.messages.set(e,t)},removeMessage(e){this.messages.has(e)&&this.messages.delete(e)}});function x9({children:e}){var c;const[t,n]=B.useState(()=>new Map),[r,i]=B.useState(!1),{editor:o}=B.useContext(Ue),a=B.useMemo(()=>({messages:t,addMessage:(d,p="")=>{if(!t.has(d)||t.get(d)!==p){t.set(d,p);const _=new Map;for(const[f,g]of t.entries())_.set(f,g);n(_)}},removeMessage:d=>{if(t.has(d)){t.delete(d);const p=new Map;for(const[_,f]of t.entries())p.set(_,f);n(p)}},onVisibilityChange(d=!1){d!==r&&i(d)},visible:r}),[t,n,r,i]);if(B.useEffect(()=>{!o.options.codeMode&&!o.options.simpleRichText&&o.can().registerMessageInterface(a)&&(o==null||o.commands.registerMessageInterface(a))},[a,o]),o.options.codeMode||o.options.simpleRichText)return N.jsx(N.Fragment,{children:e});const s=[...t.keys()];return o.options.messagesCLine truncated
`+t.message,window.Debug.error(t),gp=null}).finally(()=>{for(const t of EO)t(gp),EO.delete(t);e(gp)})})}const h6=vt.create({name:"ipsMessages",addCommands(){let e={_messages:new Map,addMessage(n,r=""){this._messages.set(n,r)},removeMessage(n){this._messages.delete(n)},get messages(){return this._messages},onVisibilityChange(n){t=n}},t=!1;return{showMessage:(n,r="")=>()=>{e==null||e.addMessage(n,r)},hideMessage:n=>()=>{e==null||e.removeMessage(n)},registerMessageInterface:n=>()=>{var i,o,a;if(Object.is(n,e))return!1;let r=!1;for(const s in n)if(!Object.is(n[s],e[s])){r=!0;break}if(!r)return!1;if(e.messages instanceof Map)for(const s of e.messages.keys())(o=(i=n==null?void 0:n.messages)==null?void 0:i.has)!=null&&o.call(i,s)&&n.messages.get(s)===e.messages.get(s)||n.addMessage(s,e.messages.get(s));(!("visible"in n)||n.visible!==t)&&((a=n.onVisibilityChange)==null||a.call(n,t)),e=n},fireVisibilityChange:n=>()=>{var r;t=!!n,(r=e==null?void 0:e.onVisibilityChange)==null||r.call(e,t)}}}}),S6=({key:e,editor:t,onPaste:n,onDrop:r,allowedMimeTypes:i})=>new pt({key:e||new at("fileHandler"),props:{handleDrop(o,a){var s;if(!r||!(!((s=a.dataTransfer)===null||s===void 0)&&s.files.length))return!1;const c=o.posAtCoords({left:a.clientX,top:a.clientY});let d=Array.from(a.dataTransfer.files);return i&&(d=d.filter(p=>i.includes(p.type))),d.length!==0&&(a.preventDefault(),a.stopPropagation(),r(t,d,(c==null?void 0:c.pos)||0),!0)},handlePaste(o,a){var s;if(!n||!(!((s=a.clipboardData)===null||s===void 0)&&s.files.length))return!1;let c=Array.from(a.clipboardData.files);const d=a.clipboardData.getData("text/html");return i&&(c=c.filter(p=>i.includes(p.type))),c.length!==0&&(a.preventDefault(),a.stopPropagation(),n(t,c,d),!(d.length>0))}}}),T6=vt.create({name:"fileHandler",addOptions:()=>({onPaste:void 0,onDrop:void 0,allowedMimeTypes:void 0}),addProseMirrorPlugins(){return[S6({key:new at(this.name),editor:this.editor,allowedMimeTypes:this.options.allowedMimeTypes,onDrop:this.options.onDrop,onPaste:this.options.onPaste})]}});function b6({mimeTypes:e,handler:t}){let n;Array.isArray(e)&&(n=new Set(e.map(i=>i.toLowerCase())));const r=i=>{const o=i instanceof DragEvent?i.dataTransfer:i.clipboardData;if(o.files.length){const a=[];for(const s of o.files)(!n||n.has(s.type.toLowerCase()))&&a.push(s);if(a.length)return t(a),!0}};return new pt({key:new at("ipsDataTransferFixer"),props:{handlePaste:(i,o)=>r(o),handleDrop:(i,o)=>r(o)}})}const y6=T6.extend({addCommands(){var e;return{...(e=this.parent)==null?void 0:e.call(this),injectAttachments:t=>({editor:n,chain:r})=>{var o;let i=r();for(const a of t){const s=Math.round(Math.random()*Math.pow(10,8));let c=!1;i=i.insertContent({type:ot.name,attrs:{attachmentType:"file",attachmentSrc:"",attachmentLink:"",fileId:s,attachmentTitle:"Uploading Attachment..."}}),(o=C6(n.options.postkey))==null||o.dispatchEvent(new R6({file:a,data:{ready:d=>{if(c)return;c=!0;const p=HT(n.$doc,s);p.length&&n.commands.command(({tr:_,chain:f})=>{let g=f();for(const{to:E,from:S}of p)g=g.insertContentAt({from:_.mapping.map(S),to:_.mapping.map(E)},d,{parseOptions:{preserveWhitespace:!1}});return!0})},error:d=>{c||(c=!0,d instanceof Error&&(d.message=`File upload failed:
${d.message}`,window.Debug.warn(d),n.commands.showMessage("file-attach","Couldn't insert one or more files pasted or dropped in the editor.")),n.commands.removeAttachment(s))}}}))}return i.run(),!0}}},addProseMirrorPlugins(){var e;return[b6({mimeTypes:this.options.allowedMimeTypes,handler:t=>this.options.onPaste(this.editor,t)}),...((e=this.parent)==null?void 0:e.call(this))||[]]}}).configure({onPaste(e,t){return e.commands.injectAttachments(t),!0},onDrop(e,t){return e.commands.injectAttachments(t),!0}});function C6(e){return!e||typeof e!="string"?null:document.querySelector(`[data-ipsuploader-postkey="${e}"]`)}class R6 extends Event{constructor(t){super("injectFile"),this.data=t}}const N6=["name","group","isInline","isBlock","isText","selectable","exitable","atom","addOptions","addKeyboardShortcuts","addAttributes","addGlobalAttributes","renderHTML","parseHTML","onCreate","onUpdate","onBeforeCreate","onFocus","onBlur","onBeforeCreate","onSelectionUpdate","onDestroy","onTransaction","priority","defaultOptions","addInputRules","marks","addNodeView","whitespace","defining","isolating","renderText"];function v6(e,t){var s,c,d;if(!e.ipsPlugins){e.ipsPlugins={buttons:{},extensions:[],nodes:[],marks:[]};return}e.ipsPlugins.buttons={},Array.isArray((s=e.ipsPlugins)==null?void 0:s.extensions)?a(e.ipsPlugins.extensions,vt):e.ipsPlugins.extensions=[],Array.isArray((c=e.ipsPlugins)==null?void 0:c.nodes)?a(e.ipsPlugins.nodes,dt):e.ipsPlugins.nodes=[],Array.isArray((d=e.ipsPlugins)==null?void 0:d.marks)?a(e.ipsPlugins.marks,Ft):e.ipsPlugins.marks=[],e.ipsPlugins.nestedToolbars={},e.pluginButtonKeys=new Set;const n=new Set(e.tools.toolbar);for(const p in e.ipsPlugins.buttons)for(const{before:_,after:f}of e.ipsPlugins.buttons[p].locations){let g,E=!1;if(typeof f=="string"&&f in oO){const S=oO[f];e.ipsPlugins.nestedToolbars[S]=e.ipsPlugins.nestedToolbars[S]||[...cl[S]],e.ipsPlugins.nestedToolbars[S].push(`custom:${p}`),E=!0}else if(typeof f=="string"&&n.has(f))g=e.tools.toolbar.indexOf(f)+1;else if(typeof _=="string"&&n.has(_))g=e.tools.toolbar.indexOf(_);else if(!_&&!f||_===null||f===null)g=e.tools.toolbar.length;else continue;e.pluginButtonKeys.add(`custom:${p}`),E||(n.add(`custom:${p}`),e.tools.toolbar.splice(g,0,`custom:${p}`))}function r(p){for(const _ of p.attributes)["class","style","id","src","title","rel","alt"].includes(_.name.toLowerCase())||p.removeAttribute(_.name);for(const _ of p.querySelectorAll(":scope > *"))r(_)}function i(p,_){var f;if(p.addButtons instanceof Function){const g=p.addButtons.bind(_)();if(typeof g!="object")throw new TypeError;const E=new DOMParser;for(const S in g){let{html:b,command:T,locations:y,element:R,isActive:O,isAvailable:I}=g[S];if(typeof b!="string"&&!(R instanceof HTMLElement)||!(T instanceof Function)||!Array.isArray(y))throw new TypeError;O!==void 0&&typeof O!="boolean"&&!(O instanceof Function)&&(window.Debug.warn(`Expected isActive to be a boolean or a Function, got a ${typeof O}. Casting to boolean.`),O=!!O),I!==void 0&&typeof I!="boolean"&&!(I instanceof Function)&&(window.Debug.warn(`Expected isAvailable to be a boolean or a Function, got a ${typeof I}. Casting to boolean.`),I=!!I);const x=[];for(const H of y)if(H===null)x.push({after:null,before:void 0});else if(typeof H=="object"){if(![void 0,null].includes(H.before)&&typeof H.before!="string"||![void 0,null].includes(H.after)&&typeof H.after!="string")throw new TypeError;x.push({after:H.after,before:H.before})}else typeof H=="string"?x.push({after:H,before:void 0}):x.push({after:void 0,before:void 0});y=x;const k=["script","link","style","pre","code","iframe","object","embed","noscript","video"];if(R instanceof Element)R.querySelectorAll(k.join(",")).forEach(H=>H.remove());else{const H=E.parseFromString(b,"text/html");if(!(H instanceof Document))throw new RangeError("The html passed in for the button is not readable");if(H.querySelectorAll(k.join(",")).forEach(ae=>ae.remove()),!(((f=H==null?void 0:H.body)==null?void 0:f.firstElementChild)instanceof HTMLElement)||!H.body.firstElementChild.innerHTML.length)throw new RangeError("The html passed in for the button is not readable");R=H.body.firstElementChild}if(r(R),k.includes(R.tagName.toLowerCase()))throw new RangeError(`The element of type ${R.tagName} cannot be used as a toolbar button`);const $=R.cloneNode(!0),z=`${p.name}_${S}`;e.ipsPlugins.buttons[z]={get element(){return $},set element(H){throw new Error("Cannot update the element of an ipsPlugin button!")},get command(){return T.bind(_)},set command(H){throw new Error("Cannot update the command of an ipsPlugin button!")},get isActive(){return O instanceof Function?O.bind(_):O},set isActive(H){throw new Error("Cannot update the isActive property of an ipsPlugin button!")},get isAvailable(){return I instanceof Function?I.bind(_):I},set isAvailable(H){throw new Error("Cannot update the isAvailable property of an ipsPlugin button!")},get locations(){return y},set locations(H){throw new Error("Cannot update properties Line truncated
${g.message}`,window.Debug.warn(g)}}}const OE=vt.create({name:"ipsHomeEnd",addKeyboardShortcuts(){return{Home:({editor:e})=>(Vt(()=>{var i,o,a;const{$from:t}=e.state.selection,n=t.pos-t.parentOffset;let r=t.pos;for(;r>n;){const s=e.state.doc.slice(r-1,r);if(((i=s.content.content[0])==null?void 0:i.textContent)===`
`||((a=(o=s.content.content[0])==null?void 0:o.type)==null?void 0:a.name)===gu.name)break;r--}e.chain().setTextSelection(r).focus().run()},"Something went wrong handling the 'Home' key press"),!0),End:({editor:e})=>(Vt(()=>{var i,o,a;const{$to:t}=e.state.selection,n=[...t.path].reverse()[3]+t.parent.nodeSize-1;let r=t.pos;for(;r<n;){const s=e.state.doc.slice(r,r+1);if(((i=s.content.content[0])==null?void 0:i.textContent)===`
`||((a=(o=s.content.content[0])==null?void 0:o.type)==null?void 0:a.name)===gu.name)break;r++}e.chain().setTextSelection(r).focus().run()},"Something went wrong handling the 'End' key press"),!0)}}}),O6=vt.create({name:"IPSSimpleRichText",addProseMirrorPlugins(){return[new pt({key:new at("ipsSimpleRichTextPlugin"),filterTransaction:e=>!(this.editor.options.lengthFunction instanceof Function&&typeof this.editor.options.maxLength=="number"&&this.editor.options.lengthFunction(TT(e.doc.content,this.editor.schema))>this.editor.options.maxLength),appendTransaction:(e,t,n)=>{const r=[];let i;const{from:o,to:a}=n.selection;n.doc.descendants((c,d)=>{var p,_;if(typeof c.textContent=="string"&&!c.textContent&&!c.isInline){const f=n.doc.resolve(d),g=A6(f,n.doc),E=I6(f,n.doc);if([o,a].some(S=>g.pos<S&&E.pos>S)){if(i===void 0&&e.some(S=>{var b;return(b=S.steps)==null?void 0:b.length})){let S=1,b=c;for(;(_=(p=b.content)==null?void 0:p.content)!=null&&_.length;)S++,b=b.content.content[0];i=S+d}return!1}return r.push([d,d+c.nodeSize]),!1}if(c.isInline||!c.content.content.length)return!1});const{tr:s}=n;for(const[c,d]of r.reverse())s.delete(c,d);if(i!==void 0){const c=Ie.atStart(n.doc).from,d=Ie.atEnd(n.doc).to,p=Ie.create(n.doc,bo(i,c,d));o===p.from&&o===a||s.setSelection(p)}return s}})]},addKeyboardShortcuts(){return{Enter:({editor:e})=>{const t=e.view.dom.closest("form");if(t){let n=t.querySelector('button:is([type="submit"], :not([type]))');n||(n=document.createElement("button"),n.setAttribute("type","button"),n.setAttribute("hidden",""),t.appendChild(n),setTimeout(()=>n.documentElement===document.documentElement&&n.remove(),200)),n.click()}return!0},"Shift-Enter":({editor:e})=>(e.isActive(cu.name)?e.commands.splitListItem(cu.name):e.commands.splitBlock(),!1)}},onCreate(){this.editor.view.dom.addEventListener("clear",e=>{var t;this.editor.commands.setContent(((t=e.detail)==null?void 0:t.content)||"")})}});function A6(e,t){var r,i;const n=[...e.path].reverse();for(;n.length>=3;){if(n[1]>0){let o=n[2].content.content[n[1]-1],a=0;for(;o;)o=(i=(r=o.content)==null?void 0:r.content)!=null&&i.length?o.content.content[o.content.content.length-1]:null,a++;return t.resolve(e.pos-a)}n.splice(0,3)}return t.resolve(0)}function I6(e,t){var r,i;const n=[...e.path].reverse();for(;n.length>=3;){if(n[1]<n[2].content.content.length-1){let o=n[2].content.content[n[1]+1],a=0;for(;o;)a++,o=(i=(r=o.content)==null?void 0:r.content)==null?void 0:i[0];return t.resolve(e.pos+n[2].content.content[n[1]].nodeSize+a)}n.splice(0,3)}return t.resolve(t.nodeSize-2)}const D6=e=>Ot({find:/--$/,replace:e??"—"}),w6=e=>Ot({find:/\.\.\.$/,replace:e??"…"}),x6=e=>Ot({find:/(?:^|[\s{[(<'"\u2018\u201C])(")$/,replace:e??"“"}),M6=e=>Ot({find:/"$/,replace:e??"”"}),L6=e=>Ot({find:/(?:^|[\s{[(<'"\u2018\u201C])(')$/,replace:e??"‘"}),k6=e=>Ot({find:/'$/,replace:e??"’"}),P6=e=>Ot({find:/<-$/,replace:e??"←"}),U6=e=>Ot({find:/->$/,replace:e??"→"}),F6=e=>Ot({find:/\(c\)$/,replace:e??"©"}),B6=e=>Ot({find:/\(tm\)$/,replace:e??"™"}),G6=e=>Ot({find:/\(sm\)$/,replace:e??"℠"}),Y6=e=>Ot({find:/\(r\)$/,replace:e??"®"}),H6=e=>Ot({find:/(?:^|\s)(1\/2)\s$/,replace:e??"½"}),$6=e=>Ot({find:/\+\/-$/,replace:e??"±"}),V6=e=>Ot({find:/!=$/,replace:e??"≠"}),z6=e=>Ot({find:/<<$/,replace:e??"«"}),W6=e=>Ot({find:/>>$/,replace:e??"»"}),q6=e=>Ot({find:/\d+\s?([*x])\s?\d+$/,replace:e??"×"}),K6=e=>Ot({find:/\^2$/,replace:e??"²"}),Q6=e=>Ot({find:/\^3$/,replace:e??"³"}),X6=e=>Ot({find:/(?:^|\s)(1\/4)\s$/,replace:e??"¼"}),j6=e=>Ot({find:/(?:^|\s)(3\/4)\s$/,replace:e??"¾"}),Z6=vt.create({name:"typography",addOptions(){return{closeDoubleQuote:"”",closeSingleQuote:"’",copyright:"©",ellipsis:"…",emDash:"—",laquo:"«",leftArrow:"←",multiplication:"×",notEqual:"≠",oneHalf:"½",oneQuarter:"¼",openDoubleQuote:"“",openSingleQuote:"‘",plusMinus:"±",raquo:"»",registeredTrademark:"®",rightArrow:"→",servicemark:"℠",superscriptThree:"³",superscriptTwo:"²",threeQuarters:"¾",trademark:"™"}},addInputRules(){const e=[];return this.options.emDash!==!1&&e.push(D6(this.options.emDash)),this.options.ellipsis!==!1&&e.push(w6(this.options.ellipsis)),this.options.openDoubleQuote!==!1&&e.push(x6(this.options.openDoubleQuote)),this.options.closeDoubleQuote!==!1&&e.push(M6(this.options.closeDoubleQuote)),this.options.openSingleQuote!==!1&&e.push(L6(this.options.openSingleQuote)),this.options.closeSingleQuote!==!1&&e.push(k6(this.options.closeSingleQuote)),this.options.leftArrow!==!1&&e.push(P6(this.options.leftArrow)),this.options.rightArrow!==!1&&e.push(U6(this.options.rightArrow)),this.options.copyright!==!1&&e.push(F6(this.options.copyright)),this.options.trademark!==!1&&e.push(B6(this.options.trademark)),this.options.servicemark!==!1&&e.push(G6(this.options.servicemark)),this.options.registeredTrademark!==!1&&e.push(Y6(this.options.registeredTrademark)),this.options.oneHalf!==!1&&e.push(H6(this.options.oneHalf)),this.options.plusMinus!==!1&&e.push($6(this.options Line truncated
`}}),Fx,J6].filter(T=>!!T);return window.navigator.platform==="MacIntel"&&t.push(OE),e.autoSaveKey&&t.push(Bx),e.postkey&&(t.push(y6),t.push(ot.configure({externalImages:!((f=e.restrictions)!=null&&f.has("external_image")),externalVideos:!((g=e.restrictions)!=null&&g.has("external_video")),float:!((E=e.restrictions)!=null&&E.has("float"))}))),(S=e.restrictions)!=null&&S.has("heading")||t.push(pn.configure({levels:(b=e.restrictions)!=null&&b.has("heading_1")?[2,3,4,5,6]:[1,2,3,4,5,6]})),t}async function hO(e,t){var n,r;if(e.pluginButtonKeys=new Set,e.simpleRichText?(delete e.codeMode,e.tools={toolbar:[...Ux]},e.react&&GV(e.react)):await A4(),e.restrictions&&Symbol.iterator in e.restrictions?e.restrictions=new Set(e.restrictions):delete e.restrictions,e.jQuery=e.jQuery||window.jQuery,e.editorProps={attributes:{class:e.codeMode?"":"ipsRichText"}},e.itemStates={},e.extensions=eX(e),!(e.messagesContainer instanceof Element)&&((n=t==null?void 0:t.closest(".ipsEditor"))!=null&&n.querySelector('[data-role="editor-messages-container"]'))&&(e.messagesContainer=(r=t==null?void 0:t.closest(".ipsEditor"))==null?void 0:r.querySelector('[data-role="editor-messages-container"]')),e.codeMode)return e.tools={toolbar:["codelanguage"]},e;if(e.simpleRichText||v6(e,e.extensions),e.stockrepliesenabled){const i=await qT();Object.keys(i).length?window.Debug.log("Loaded stock replies"):(e.stockrepliesenabled=!1,window.Debug.log("No stock replies, disabling the button"))}if(!e.codeMode){for(const i in e.tools)e.tools[i]=e.tools[i].filter(o=>o==="giphy"&&!e.giphyenabled||o==="stockreply"&&!e.stockrepliesenabled?!1:!(e.hidebuttons instanceof Array&&e.hidebuttons.includes(o)));e.parseOptions=e.parseOptions||{},e.parseOptions.preserveWhitespace=!1}return e.tools.toolbar&&e.tools.toolbar[0]!=="block"&&(e.tools.toolbar=["block",...e.tools.toolbar.filter(i=>i!=="block")]),e}let SO=!1;function tX(){if(!SO){for(const e of["click","focus","keydown","keyup"])document.addEventListener(e,t=>{var n,r,i;(r=(n=t.target)==null?void 0:n.closest)!=null&&r.call(n,".ipsEditor__toolbar-item--unavailable")&&(t.preventDefault(),t.stopPropagation(),(i=t.stopImmediatePropagation)==null||i.call(t))},{capture:!0});SO=!0}}setTimeout(()=>window.ips.createModule("ips.utils.tiptap",()=>{const e={tools:{toolbar:["block","insert","bold","italic","underline","size","color","link","icon","stockreply","giphy","clear","format"]},allowedIframeDomains:window.ips.getSetting("allowedIframeDomains")||[],restrictions:new Set};return document.dispatchEvent(new CustomEvent("ipsTiptapLoaded")),{editorInstance(t,n={}){const r=AE.createRoot(t);return tX(),new Promise(i=>{hO({...e,...n},t).then(o=>{r.render(N.jsx(ct.StrictMode,{children:N.jsx(M9,{resolve:a=>{i([a,r]),a.options.name&&setTimeout(()=>a.options.jQuery(a.view.dom.closest("[data-ipseditorv5]")).trigger("editorWidgetInitialized",{id:a.options.name}))},config:o})}))})})},allCodeLanguages:sl,async decorateSimpleRichTextConfig(t){return t.simpleRichText=!0,await hO(t)}}}));
@@ -45,7 +45,7 @@
"isDynamicEntry": true
},
"src/main.jsx": {
"file": "assets/main-mf6AQnai.js",
"file": "assets/main-CoHJ0uDc.js",
"name": "main",
"src": "src/main.jsx",
"isEntry": true,
@@ -340,8 +340,8 @@ class menu extends Controller
{
try
{
$row = Db::i()->select( '*', 'core_menu', [ 'id=?', Request::i()->parent ] )->first();
if( $row['extension'] == 'Menu' )
$parent = Db::i()->select( '*', 'core_menu', [ 'id=?', Request::i()->parent ] )->first();
if( $parent['parent'] )
{
continue;
}
@@ -352,7 +352,6 @@ class themes extends Controller
/* Create a default theme */
$theme = new Theme;
$theme->by_skin_gen = 0;
$theme->editor_skin = 'ips';
$theme->order = $max + 1;
$theme->save();
@@ -432,7 +431,6 @@ class themes extends Controller
if ( $xml->getAttribute('easy_mode') )
{
$set->by_skin_gen = 1;
$set->save();
}
@@ -0,0 +1,266 @@
<?php
/**
* @brief report
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @since 17 Sep 2024
*/
namespace IPS\core\modules\admin\moderation;
/* To prevent PHP errors (extending class does not exist) revealing path */
use IPS\Db;
use IPS\Dispatcher;
use IPS\Dispatcher\Controller;
use IPS\Helpers\Form;
use IPS\Helpers\Form\Number;
use IPS\Helpers\Form\Text;
use IPS\Helpers\Form\TextArea;
use IPS\Helpers\Form\YesNo;
use IPS\Http\Url;
use IPS\IPS;
use IPS\Member;
use IPS\Output;
use IPS\Request;
use IPS\Session;
use IPS\Settings;
use IPS\Theme;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* report
*/
class report extends Controller
{
/**
* @brief Has been CSRF-protected
*/
public static bool $csrfProtected = TRUE;
/**
* Execute
*
* @return void
*/
public function execute(): void
{
/* Add a button for settings */
Output::i()->sidebar['actions'] = array(
'automatic' => array(
'title' => 'manage_automatic_rules',
'icon' => 'bolt',
'link' => Url::internal( 'app=core&module=moderation&controller=reportedContent' )
),
'settings' => array(
'title' => 'reportedContent_types',
'icon' => 'cog',
'link' => Url::internal( 'app=core&module=moderation&controller=reportedContentTypes' )
)
);
Dispatcher::i()->checkAcpPermission( 'reportedContentTypes_manage' );
parent::execute();
}
/**
* Settings form
*
* @return void
*/
protected function manage()
{
Dispatcher::i()->checkAcpPermission( 'reportedContent_manage' );
/* Work out output */
Request::i()->tab = isset( Request::i()->tab ) ? Request::i()->tab : 'settings';
if ( $pos = mb_strpos( Request::i()->tab, '-' ) )
{
$tabMethod = '_manage' . IPS::mb_ucfirst( mb_substr( Request::i()->tab, 0, $pos ) );
$activeTabContents = $this->$tabMethod( mb_substr( Request::i()->tab, $pos + 1 ) );
}
else
{
$tabMethod = '_manage' . IPS::mb_ucfirst( Request::i()->tab );
$activeTabContents = $this->$tabMethod();
}
/* If this is an AJAX request, just return it */
if( Request::i()->isAjax() )
{
Output::i()->output = $activeTabContents;
return;
}
/* Build tab list */
$tabs = [
'settings' => 'menu__core_moderation_report',
'notifications' => 'report_author_notification_title'
];
/* Display */
Output::i()->title = Member::loggedIn()->language()->addToStack('menu__core_moderation_report');
Output::i()->output = Theme::i()->getTemplate( 'global' )->tabs( $tabs, Request::i()->tab, $activeTabContents, Url::internal( "app=core&module=moderation&controller=report" ) );
}
/**
* Manage settings
*
* @return string
*/
protected function _manageSettings(): string
{
$form = new Form;
/* Can guests report */
$guest = new Member;
$guestDisabled = false;
$guestSetting = Settings::i()->report_capture_guest_details;
if ( ! $guest->group['g_can_report'] )
{
$guestDisabled = true;
$guestSetting = false;
Member::loggedIn()->language()->words['report_capture_guest_details_warning'] = Member::loggedIn()->language()->addToStack( 'report_capture_guest_details__warning' );
}
$form->add( new YesNo( 'report_capture_guest_details', $guestSetting, FALSE, array( 'disabled' => $guestDisabled, 'togglesOn' => [ 'report_guest_details_name_mandatory', 'report_guest_details_store_days'] ), NULL, NULL, NULL, 'report_capture_guest_details' ) );
$form->add( new YesNo( 'report_guest_details_name_mandatory', Settings::i()->report_guest_details_name_mandatory, FALSE, array(), NULL, NULL, NULL, 'report_guest_details_name_mandatory' ) );
$form->add( new Number( 'report_guest_details_store_days', Settings::i()->report_guest_details_store_days, FALSE, array( 'unlimited' => -1, 'unlimitedLang' => 'report_guest_details_store_unlimited' ), NULL, NULL, Member::loggedIn()->language()->addToStack('days'), 'report_guest_details_store_days' ) );
$form->add( new YesNo( 'report_content_mandatory', Settings::i()->report_content_mandatory, FALSE, array(), NULL, NULL, NULL, 'report_content_mandatory' ) );
$form->add( new YesNo( 'automoderation_enabled', Settings::i()->automoderation_enabled, FALSE, array( 'togglesOn' => [ 'automoderation_report_again_mins' ] ), NULL, NULL, NULL, 'automoderation_enabled' ) );
$form->add( new Number( 'automoderation_report_again_mins', Settings::i()->automoderation_report_again_mins, FALSE, array(), NULL, NULL, Member::loggedIn()->language()->addToStack('automoderation_report_again_mins_suffix'), 'automoderation_report_again_mins' ) );
if ( $values = $form->values() )
{
$form->saveAsSettings();
Db::i()->update( 'core_tasks', array( 'enabled' => (int) $values['automoderation_enabled'] ), array( '`key`=?', 'automaticmoderation' ) );
Session::i()->log( 'acplog__automoderation_settings' );
Output::i()->redirect( Url::internal( 'app=core&module=moderation&controller=report&tab=settings' ), 'saved' );
}
return Theme::i()->getTemplate('forms')->blurb( 'reporting_content_blurb', true, true ) . $form;
}
/**
* @return string
*/
protected function _manageNotifications(): string
{
/* Init */
$table = new \IPS\Helpers\Table\Db( 'core_rc_author_notification_text', Url::internal( 'app=core&module=moderation&controller=report&tab=notifications' ) );
$table->include = array( 'title' );
$table->sortBy = $table->sortBy ?: 'title';
$table->sortDirection = $table->sortDirection ?: 'asc';
/* Row buttons */
$table->rowButtons = function( $row )
{
$return = array();
$return['edit'] = array(
'icon' => 'pencil',
'link' => Url::internal( 'app=core&module=moderation&controller=report&tab=notifications&do=notificationForm&id=' ) . $row['id'],
'title' => 'edit',
'data' => array( 'ipsDialog' => '', 'ipsDialog-title' => Member::loggedIn()->language()->addToStack('edit') )
);
$return['delete'] = array(
'icon' => 'times-circle',
'link' => Url::internal( 'app=core&module=moderation&controller=report&tab=notifications&do=notificationDelete&id=' ) . $row['id'],
'title' => 'delete',
'data' => array( 'delete' => '' )
);
return $return;
};
/* Add button */
$table->rootButtons = array(
'add' => array(
'icon' => 'plus',
'link' => \IPS\Http\Url::internal( 'app=core&module=moderation&controller=report&tab=notifications&do=notificationForm' ),
'title' => 'add',
'data' => array( 'ipsDialog' => '', 'ipsDialog-title' => \IPS\Member::loggedIn()->language()->addToStack('add') )
)
);
/* Display */
return Theme::i()->getTemplate('forms')->blurb( 'reporting_content_notifications_blurb', true, true ) . $table;
}
/**
* Report notification to author of content form
*
* @return void
*/
protected function notificationForm()
{
$current = NULL;
if ( Request::i()->id )
{
$current = Db::i()->select( '*', 'core_rc_author_notification_text', array( 'id=?', Request::i()->id ) )->first();
}
$form = new Form;
$form->add( new Text( 'report_notifications_title', ( $current ? $current['title'] : '' ), true ) );
$form->add( new TextArea( 'report_notifications_text', ( $current ? $current['text'] : '' ), true, [ 'rows' => 20 ] ) );
if ( $values = $form->values() )
{
$save = [
'title' => $values['report_notifications_title'],
'text' => $values['report_notifications_text']
];
if ( $current )
{
Db::i()->update( 'core_rc_author_notification_text', $save, array( 'id=?', $current['id'] ) );
Session::i()->log( 'acplog__report_author_notification_edited', array( $current['title'] => true ) );
}
else
{
Db::i()->insert( 'core_rc_author_notification_text', $save );
Session::i()->log( 'acplog__report_author_notification_created', array( $save['title'] => true ) );
}
Output::i()->redirect( Url::internal( 'app=core&module=moderation&controller=report&tab=notifications' ), 'saved' );
}
Output::i()->output .= Theme::i()->getTemplate( 'global' )->block( 'report_author_notification_title', $form, FALSE );
}
/**
* Report notification to author of content delete
*
* @return void
*/
protected function notificationDelete()
{
/* Make sure the user confirmed the deletion */
Request::i()->confirmedDelete();
try
{
$current = Db::i()->select( '*', 'core_rc_author_notification_text', array( 'id=?', Request::i()->id ) )->first();
Session::i()->log( 'acplog__report_author_notification_deleted', array( $current['title'] => true ) );
Db::i()->delete( 'core_rc_author_notification_text', array( 'id=?', Request::i()->id ) );
}
catch ( \UnderflowException $e ) { }
Output::i()->redirect( Url::internal( 'app=core&module=moderation&controller=report&tab=notifications' ), 'deleted' );
}
}
@@ -55,20 +55,8 @@ class reportedContent extends Controller
*/
public function execute() : void
{
/* Add a button for settings */
Output::i()->sidebar['actions'] = array(
'settings' => array(
'title' => 'reportedContent_settings',
'icon' => 'cog',
'link' => Url::internal( 'app=core&module=moderation&controller=reportedContent&do=settings' ),
'data' => array( 'ipsDialog' => '', 'ipsDialog-title' => Member::loggedIn()->language()->addToStack('reportedContent_settings') )
),
'types' => array(
'title' => 'reportedContent_types',
'icon' => 'cog',
'link' => Url::internal( 'app=core&module=moderation&controller=reportedContentTypes' )
)
);
Output::i()->breadcrumb[] = array( Url::internal( "app=core&module=moderation&controller=report" ), 'menu__core_moderation_report' );
Output::i()->breadcrumb[] = array( NULL, 'manage_automatic_rules' );
Output::i()->output = Theme::i()->getTemplate('forms')->blurb( 'automaticmoderation_blurb' );
@@ -80,32 +68,4 @@ class reportedContent extends Controller
Dispatcher::i()->checkAcpPermission( 'reportedContent_manage' );
parent::execute();
}
/**
* Profile Settings
*
* @return void
*/
protected function settings() : void
{
Dispatcher::i()->checkAcpPermission( 'reportedContent_manage' );
$form = new Form;
$form->add( new YesNo( 'automoderation_enabled', Settings::i()->automoderation_enabled, FALSE, array(), NULL, NULL, NULL, 'automoderation_enabled' ) );
$form->add( new Number( 'automoderation_report_again_mins', Settings::i()->automoderation_report_again_mins, FALSE, array(), NULL, NULL, Member::loggedIn()->language()->addToStack('automoderation_report_again_mins_suffix'), 'automoderation_report_again_mins' ) );
if ( $values = $form->values() )
{
$form->saveAsSettings();
Db::i()->update( 'core_tasks', array( 'enabled' => (int) $values['automoderation_enabled'] ), array( '`key`=?', 'automaticmoderation' ) );
Session::i()->log( 'acplog__automoderation_settings' );
Output::i()->redirect( Url::internal( 'app=core&module=moderation&controller=reportedContent' ), 'saved' );
}
Output::i()->title = Member::loggedIn()->language()->addToStack('reportedContent_settings');
Output::i()->output = Theme::i()->getTemplate('global')->block( 'reportedContent_settings', $form, FALSE );
}
}
@@ -49,8 +49,8 @@ class reportedContentTypes extends Controller
*/
public function execute() : void
{
Output::i()->breadcrumb[] = array( Url::internal( "app=core&module=moderation&controller=reportedContent" ), 'menu__core_moderation_reportedContent' );
Output::i()->breadcrumb[] = array( NULL, 'menu__core_moderation_reportedContentTypes' );
Output::i()->breadcrumb[] = array( Url::internal( "app=core&module=moderation&controller=reportedContent" ), 'menu__core_moderation_report' );
Output::i()->breadcrumb[] = array( NULL, 'reportedContent_types' );
if ( ! Request::i()->do )
{
@@ -226,6 +226,8 @@ class seo extends Controller
$form->add( new Codemirror( 'use_robotstxt_custom_editor', ( $value === 'custom' ? Settings::i()->robots_txt : '' ), FALSE, [], NULL, NULL, NULL, 'use_robotstxt_custom_editor' ) );
$form->add( new YesNo( 'seo_reduce_links', Settings::i()->seo_reduce_links, TRUE, [], NULL, NULL, NULL, 'seo_reduce_links' ) );
/* Are we saving? */
if ( $values = $form->values() )
{
@@ -327,7 +327,7 @@ class login extends Controller
public function getCsrfKey() : void
{
/* Don't cache the CSRF key */
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
Output::i()->json( [ 'key' => Session::i()->csrfKey ] );
}
@@ -221,7 +221,7 @@ class tag extends Controller
}
}
return Theme::i()->getTemplate( 'tags', 'core', 'front' )->overview( $items );
return Theme::i()->getTemplate( 'tags', 'core', 'front' )->overview( $items, $this->tag );
}
/**
@@ -372,9 +372,7 @@ class profile extends Controller
$visitors = $this->member->profileVisitors;
/* Get followers */
$followers = iterator_to_array(
$this->member->followers( ( Member::loggedIn()->isAdmin() OR Member::loggedIn()->member_id === $this->member->member_id ) ? \IPS\Content::FOLLOW_PUBLIC + \IPS\Content::FOLLOW_ANONYMOUS : \IPS\Content::FOLLOW_PUBLIC, array( 'immediate', 'daily', 'weekly', 'none' ), NULL, array( 0, 12 ) )
);
$followers = $this->member->followers( ( Member::loggedIn()->isAdmin() OR Member::loggedIn()->member_id === $this->member->member_id ) ? \IPS\Content::FOLLOW_PUBLIC + \IPS\Content::FOLLOW_ANONYMOUS : \IPS\Content::FOLLOW_PUBLIC, array( 'immediate', 'daily', 'weekly', 'none' ), NULL, array( 0, 12 ) );
/* Get solutions */
$solutions = Db::i()->select( 'COUNT(*)', 'core_solved_index', array( 'member_id=? AND type=? AND hidden=0', $this->member->member_id, 'solved' ) )->first();
@@ -430,7 +428,7 @@ class profile extends Controller
/* Output */
Output::i()->jsFiles = array_merge( Output::i()->jsFiles, Output::i()->js( 'front_profile.js', 'core' ) );
Output::i()->output = Theme::i()->getTemplate( 'profile' )->profile( $this->member, $mainContent, $visitors, $sidebarFields, $followers, $addWarningUrl, $solutions );
Output::i()->output = Theme::i()->getTemplate( 'profile' )->profile( $this->member, $mainContent, $visitors, $sidebarFields, ( is_numeric( $followers ) ? $followers : iterator_to_array( $followers ) ), $addWarningUrl, $solutions );
}
/**
@@ -70,9 +70,9 @@ class modcp extends Controller
}
}
}
/* Still here? */
Output::i()->error( 'page_not_found', '2C139/5', 404, '' );
Output::i()->error( 'page_not_found', '2C139/6', 404, '' );
}
/**
@@ -752,7 +752,7 @@ class ajax extends Controller
public function getCsrfKey() : void
{
/* Don't cache the CSRF key */
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
if ( isset( Request::i()->path ) )
{
@@ -37,7 +37,7 @@ class cookies extends Controller
{
parent::execute();
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
}
/**
@@ -59,7 +59,7 @@ class login extends Controller
*/
protected function manage() : void
{
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
foreach( Application::allExtensions( 'core', 'SSO', FALSE ) as $ext )
{
@@ -282,7 +282,7 @@ class login extends Controller
/* Otherwise show the reauthenticate form */
Output::i()->bodyClasses[] = 'ipsLayout_minimal';
Output::i()->sidebar['enabled'] = FALSE;
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
Output::i()->title = Member::loggedIn()->language()->addToStack('login');
Output::i()->output = Theme::i()->getTemplate( 'system' )->mergeSocialAccount( $handler, $member, $login, $error );
}
@@ -113,7 +113,7 @@ class register extends Controller
Output::i()->bodyClasses[] = 'ipsLayout_minimalNoHome';
}
Output::i()->sidebar['enabled'] = FALSE;
Output::i()->pageCaching = FALSE;
Output::setCacheTime( false );
Output::i()->linkTags['canonical'] = (string) Url::internal( 'app=core&module=system&controller=register', 'front', 'register' );
}
@@ -35,6 +35,7 @@ use const IMAGETYPE_GIF;
use const IMAGETYPE_JPEG;
use const IMAGETYPE_PNG;
use const IMAGETYPE_WEBP;
use const IMAGETYPE_AVIF;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
@@ -180,7 +181,7 @@ class themeeditor extends Controller
$fileExt = strtolower( pathinfo( $file['name'], PATHINFO_EXTENSION ) );
$imageAttributes = getimagesize( $file['tmp_name'] );
$logoHeightSetting = 'set__i-logo--he';
if ( $fileExt === 'svg' or in_array( $imageAttributes[2], [IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_WEBP] ) )
if ( $fileExt === 'svg' or in_array( $imageAttributes[2], [IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_WEBP, IMAGETYPE_AVIF] ) )
{
/* So we can use the File::create() obfuscation, but it will not re-add the file extension back on for SVG, so... */
$baseName = pathinfo( $file['name'], PATHINFO_FILENAME );
+10 -35
View File
@@ -163,6 +163,11 @@ class Upgrade
*/
public function step5() : bool|array
{
/* Kill null tags */
Db::i()->delete( 'core_tags', [ 'tag_text is null' ] );
Db::i()->delete( 'core_tags_perms', [ 'tag_perm_aap_lookup not in (?)', Db::i()->select( 'tag_aap_lookup', 'core_tags' ) ] );
Db::i()->delete( 'core_tags_cache', [ 'tag_cache_key not in (?)', Db::i()->select( 'tag_aai_lookup', 'core_tags' ) ] );
$tagsToKeep = [];
if( isset( $_SESSION['upgrade_options']['core']['200000']['open_tags'] ) )
{
@@ -170,7 +175,7 @@ class Upgrade
{
/* Get the top 25 tags */
$topTags = iterator_to_array(
Db::i()->select( 'count(tag_id) as total, tag_text', 'core_tags', null, 'total desc', array( 0, 25 ), 'tag_text' )
Db::i()->select( 'count(tag_id) as total, tag_text', 'core_tags', [ 'tag_text is not null' ], 'total desc', array( 0, 25 ), 'tag_text' )
->setKeyField( 'tag_text' )
->setValueField( 'total' )
);
@@ -180,7 +185,7 @@ class Upgrade
elseif( $_SESSION['upgrade_options']['core']['200000']['open_tags'] == 'all' )
{
$tagsToKeep = iterator_to_array(
Db::i()->select( 'distinct tag_text', 'core_tags' )
Db::i()->select( 'distinct tag_text', 'core_tags', [ 'tag_text is not null' ] )
);
}
}
@@ -188,7 +193,7 @@ class Upgrade
{
/* If we did not have this setting, then we have closed tagging, so we should convert all tags */
$tagsToKeep = iterator_to_array(
Db::i()->select( 'distinct tag_text', 'core_tags' )
Db::i()->select( 'distinct tag_text', 'core_tags', [ 'tag_text is not null' ] )
);
}
@@ -240,37 +245,7 @@ class Upgrade
return TRUE;
}
/*
* Fire background tasks to migrate lazy-load to native
*
* @return bool|array
*/
public function step6(): bool|array
{
foreach ( Content::routedClasses( FALSE, TRUE ) as $class )
{
if( isset( $class::$databaseColumnMap['content'] ) )
{
try
{
Task::queue( 'core', 'RebuildLazyLoad', array( 'class' => $class ), 3 );
}
catch( OutOfRangeException $ex ) { }
}
}
foreach( Application::allExtensions( 'core', 'EditorLocations', FALSE ) as $_key => $extension )
{
if( method_exists( $extension, 'rebuildLazyLoad' ) )
{
Task::queue( 'core', 'RebuildLazyLoadNonContent', array( 'extension' => $_key ), 3 );
}
}
return TRUE;
}
public function step7() : bool|array
public function step6() : bool|array
{
/* send a notification if custom ad locations are present */
@@ -308,7 +283,7 @@ class Upgrade
return true;
}
public function step8() : bool|array
public function step7() : bool|array
{
Task::queue( 'core', 'UpdateWidgetAreas', array(), 3 );
return TRUE;
@@ -0,0 +1,7 @@
{
"added": [],
"edited": [
"app=core&module=moderation&controller=reportedContentTypes"
],
"removed": []
}
@@ -0,0 +1,22 @@
{
"id": 5000030,
"name": "5.0.0 Beta 4",
"steps": {
"queries": true,
"lang": true,
"theme": true,
"themeeditor": true,
"javascript": true,
"emailTemplates": true,
"acpSearchKeywords": true,
"settings": true,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": true
},
"forceMainUpgrader": true,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,10 @@
{
"added": [
"notification_report_outcome",
"notification_report_content_author"
],
"edited": [
"_genericContent"
],
"removed": []
}
@@ -0,0 +1,23 @@
{
"files": {
"added": [
"global\/framework\/common\/utils\/ips.utils.lazyload.js"
],
"edited": [
"global\/admin\/controllers\/core\/ips.core.dynamicChart.js",
"global\/front\/controllers\/core\/ips.core.comment.js",
"global\/front\/controllers\/core\/ips.core.lightboxedImages.js",
"core\/front\/controllers\/modcp\/ips.modcp.reportToggle.js",
"core\/admin\/controllers\/streams\/ips.streams.form.js",
"core\/front\/controllers\/streams\/ips.streams.main.js",
"core\/front\/controllers\/widgets\/ips.widgets.manager.js",
"global\/framework\/templates\/ips.core.templates.js"
],
"removed": []
},
"orders": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,81 @@
{
"normal": {
"added": [
"menu__core_moderation_report",
"manage_automatic_rules",
"reporting_content_blurb",
"report_capture_guest_details",
"report_capture_guest_details_desc",
"report_guest_details_name_mandatory",
"report_guest_details_name_mandatory_desc",
"report_content_mandatory",
"report_content_mandatory_desc",
"mailsub__core_notification_report_outcome",
"report_outcome_email_blurb",
"report_outcome_email_prelude",
"notification__report_outcome",
"report_guest_details_store_days",
"report_guest_details_store_unlimited",
"report_capture_guest_details__warning",
"reporting_content_notifications_blurb",
"report_author_notification_title",
"acplog__report_author_notification_edited",
"acplog__report_author_notification_created",
"acplog__report_author_notification_deleted",
"report_notifications_title",
"report_notifications_text",
"report_notifications_title_desc",
"report_notifications_text_desc",
"modal_author__notification",
"modal_author_notification_desc",
"modal_author_notification_none",
"modal_author_notification_form_submit",
"mailsub__core_notification_report_content_author",
"report_message_placeholder_mandatory",
"filter_report_status_4",
"report_status_4",
"menu_report_status_4",
"report_guest_name",
"report_guest_email",
"report_modcp_change_submission_reason",
"report_type_change_log",
"report_type_changed",
"automaticmod_types_notify_complete",
"automaticmod_types_notify_complete_desc",
"automaticmod_types_notify_reject",
"automaticmod_types_notify_reject_desc",
"notifications__core_Moderation_reports",
"notifications__core_Moderation_reports_desc",
"report_toggle_status_confirm_title",
"report_status_changed",
"seo_reduce_links",
"seo_reduce_links_desc",
"cookie_theme_editor_vars_description",
"standard_emoji"
],
"edited": [
"r__reportedContent",
"r__reportedContentTypes",
"moderation_reporttypes_desc",
"report_status_3",
"menu_report_status_3"
],
"removed": [
"menu__core_moderation_reportedContentTypes"
]
},
"js": {
"added": [
"report_status_change_confirm",
"iconpicker_prompt",
"editor_insert_line_before",
"editor_insert_line_after",
"editor_add_box_title",
"editor_giphy_prompt"
],
"edited": [],
"removed": [
"reportStatusChanged"
]
}
}
@@ -0,0 +1,118 @@
{
"1": {
"method": "addColumn",
"params": [
"core_rc_reports",
{
"name": "guest_name",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"2": {
"method": "addColumn",
"params": [
"core_rc_reports",
{
"name": "guest_email",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"3": {
"method": "changeColumn",
"params": [
"core_rc_index",
"status",
{
"name": "status",
"type": "ENUM",
"length": 0,
"decimals": null,
"values": [
"1",
"2",
"3",
"4"
],
"allow_null": false,
"default": "1",
"comment": "1 = New report. 2 = Under Review. 3 = Complete. 4 = Closed.",
"unsigned": false,
"auto_increment": false
}
]
},
"4": {
"method": "createTable",
"params": [
{
"name": "core_rc_author_notification_text",
"columns": {
"id": {
"name": "id",
"type": "BIGINT",
"length": "20",
"unsigned": true,
"allow_null": false,
"default": null,
"auto_increment": true,
"comment": "ID Number"
},
"title": {
"name": "title",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": false,
"default": "",
"comment": "",
"unsigned": false,
"auto_increment": false
},
"text": {
"name": "text",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
},
"indexes": {
"PRIMARY": {
"type": "primary",
"name": "PRIMARY",
"columns": [
"id"
],
"length": [
null
]
}
}
}
]
}
}
@@ -0,0 +1,11 @@
{
"added": [
"report_capture_guest_details",
"report_content_mandatory",
"report_guest_details_name_mandatory",
"report_guest_details_store_days",
"seo_reduce_links"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,60 @@
{
"html": {
"added": [],
"edited": [
"front\/clubs\/directory",
"front\/clubs\/members",
"global\/editor\/image",
"global\/forms\/checkbox",
"front\/global\/comment",
"front\/global\/commentContainer",
"global\/global\/dynamicChart",
"front\/global\/mobileFooterBar",
"front\/global\/review",
"front\/global\/reviewContainer",
"front\/global\/sharemenu",
"front\/modcp\/approvalQueueItemWrapper",
"front\/modcp\/deletedRows",
"front\/modcp\/hiddenTableRow",
"front\/modcp\/hiddenTableRows",
"front\/modcp\/report",
"front\/modcp\/reportTableDescription",
"front\/modcp\/reportToggle",
"front\/modcp\/template",
"front\/modcp\/warnHovercard",
"front\/modcp\/warningRevoke",
"front\/profile\/profile",
"front\/search\/member",
"front\/streams\/stream",
"front\/system\/warningRow",
"front\/tags\/overview",
"front\/widgets\/tags"
],
"removed": [
"front\/forms\/statusPopupTemplate",
"front\/forms\/statusTemplate",
"front\/forms\/statusWidgetForm"
]
},
"css": {
"added": [],
"edited": [
"global\/framework\/3-badges.css",
"global\/framework\/3-buttons.css",
"global\/framework\/3-data-tables.css",
"global\/framework\/3-editor.css",
"global\/framework\/3-grid.css",
"global\/framework\/3-images.css",
"global\/framework\/3-inputs.css",
"global\/framework\/3-messages.css",
"front\/styles\/messaging.css",
"front\/styles\/profiles.css"
],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,116 @@
{
"categories": {
"added": [],
"edited": [
"lightDarkMode",
"logos",
"pageLayouts",
"typography",
"header",
"sidePanel",
"content",
"footer",
"mobileNavigation",
"navigationPanel",
"global",
"textLogo",
"imageLogoDesktop",
"imageLogoMobile",
"desktopHeader",
"mobileHeader",
"desktopFooter",
"body",
"contentBoxes",
"sidebar",
"avatars",
"buttons"
],
"removed": []
},
"settings": {
"added": [],
"edited": [
"set__i-default-scheme",
"set__i-logo-text",
"set__i-sidebar-width",
"i-primary-button--co",
"set__i-mobile-icons-location",
"set__logo-light",
"i-footer--co",
"set__mobile-logo-light",
"layout_global_view_mode",
"set__i-font-family",
"set__i-design-border",
"set__i-layout-width",
"set__i-sidebar-ui-header--he",
"set__i-position-logo",
"set__i-mobile-header--he",
"set__i-change-scheme",
"set__i-logo-slogan",
"i-primary-button--ba-co",
"set__i-mobile-footer-labels",
"set__logo-dark",
"i-footer--ba-co",
"set__mobile-logo-dark",
"set__i-design-radius",
"set__i-font-size",
"set__i-flip-sidebar",
"i-dashHeader--ba-co",
"set__i-position-navigation",
"i-headerMobile--ba-co",
"i-headerMobile--co",
"i-secondary-button--co",
"set__i-logo--fo-fa",
"set__i-position-user",
"i-dashHeader--co",
"set__i-avatar-radius",
"i-color_root",
"set__i-mobile-logo--he",
"set__i-design-shadow",
"i-mobileFooter--ba-co",
"set__i-logo--he",
"i-secondary-button--ba-co",
"set__i-logo--fo-we",
"i-navPanelLinkHover--co",
"set__i-position-breadcrumb",
"i-mobileFooter--co",
"i-color_soft",
"i-body--ba-co",
"set__i-link-panels",
"set__i-sidebar-ui-logo--he",
"i-button--bo-ra",
"set__i-desktop-logo--fo-si",
"set__i-sticky-sidebar",
"i-navPanelLinkActive--ba-co",
"set__i-position-search",
"i-mobileFooter-active--co",
"i-color_hard",
"i-box--ba-co",
"set__i-header-primary--he",
"set__i-sidebar-ui-logo--fo-si",
"i-box--bo-co",
"i-link--co",
"i-mobileFooter-active--ba-co",
"i-navPanel--ba-co",
"set__i-mobile-logo--fo-si",
"i-link-hover--co",
"i-navPanel--co",
"set__i-header-secondary--he",
"i-boxHeader--ba-co",
"i-boxHeader--co",
"set__i-user-content-font-size",
"i-navPanelLinkActive--co",
"set__i-nav-bar-icons",
"i-widget-header--ba-co",
"i-headerTop--ba-co",
"i-widget-header--co",
"i-headerTop--co",
"i-headerPrimary--ba-co",
"i-headerPrimary--co",
"i-headerSecondary--ba-co",
"i-headerSecondary--co",
"set__i-header-top--he"
],
"removed": []
}
}
@@ -0,0 +1,65 @@
<?php
/**
* @brief 5.0.0 Beta 4 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @since 04 Nov 2024
*/
namespace IPS\core\setup\upg_5000030;
use IPS\Application;
use IPS\Content;
use IPS\Task;
use OutOfRangeException;
use function defined;
use function method_exists;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 5.0.0 Beta 4 Upgrade Code
*/
class Upgrade
{
/**
* Fire background tasks to migrate lazy-load to native
*
* @return bool|array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1() : bool|array
{
foreach ( Content::routedClasses( FALSE, TRUE ) as $class )
{
if( isset( $class::$databaseColumnMap['content'] ) )
{
try
{
Task::queue( 'core', 'RebuildLazyLoad', array( 'class' => $class ), 3 );
}
catch( OutOfRangeException $ex ) { }
}
}
foreach( Application::allExtensions( 'core', 'EditorLocations', FALSE ) as $_key => $extension )
{
if( method_exists( $extension, 'rebuildLazyLoad' ) )
{
Task::queue( 'core', 'RebuildLazyLoadNonContent', array( 'extension' => $_key ), 3 );
}
}
return TRUE;
}
// You can create as many additional methods (step2, step3, etc.) as is necessary.
// Each step will be executed in a new HTTP request
}
+223 -15
View File
@@ -14,6 +14,7 @@ namespace IPS\core\Reports;
use Exception;
use InvalidArgumentException;
use IPS\Application;
use IPS\Content;
use IPS\Content\Comment;
use IPS\Content\Item;
@@ -21,10 +22,13 @@ use IPS\Content\ReadMarkers;
use IPS\core\Reports\Comment as ReportComment;
use IPS\DateTime;
use IPS\Db;
use IPS\Email;
use IPS\Http\Url;
use IPS\IPS;
use IPS\Log;
use IPS\Member;
use IPS\Node\Model;
use IPS\Notification;
use IPS\Session;
use IPS\Settings;
use IPS\Theme;
@@ -53,7 +57,14 @@ class Report extends Item
* @brief Const No type selected
*/
const TYPE_MESSAGE = 0;
/**
* @brief Const Reported content statuses
*/
const STATUS_NEW = 1;
const STATUS_OPEN = 2;
const STATUS_CLOSED = 3;
const STATUS_REJECTED = 4;
/* !\IPS\Patterns\ActiveRecord */
@@ -137,7 +148,210 @@ class Report extends Item
* @var bool
*/
public static bool $skipIndexNow = TRUE;
/**
* Get all the report types for this report index
*
* @return array
*/
public function getReportedTypes(): array
{
$reportedTypes = [];
$reportTypes = [];
foreach ( Types::roots() as $type )
{
$reportTypes[ $type->id ] = $type->_title;
}
foreach ( Db::i()->select( '*', 'core_rc_reports', ['rid=? and report_type > 0', $this->id] ) as $report )
{
if ( isset( $reportTypes[ $report['report_type'] ] ) )
{
$reportedTypes[ $report['report_type'] ] = $reportTypes[ $report['report_type'] ];
}
}
return $reportedTypes;
}
/**
* Set the status of the report
*
* @param int $status
* @param int $authorNotification
* @param null $member
* @return void
*/
public function changeStatus( int $status, int $authorNotification=0, $member=null ): void
{
$member = $member ?: Member::loggedIn();
$this->status = $status;
$this->save();
/* We only need to notify if there is an outcome */
if ( $status == static::STATUS_CLOSED or static::STATUS_REJECTED )
{
$forNotifications = [];
$forEmails = [];
/* Now go through all the individual reports and see if we need to notify anyone */
foreach ( Db::i()->select( '*', 'core_rc_reports', ['rid=?', $this->id] ) as $report )
{
if ( !$report['report_type'] )
{
/* We have not selected a reason, no nothing to worry about */
continue;
}
/* Get the report type object */
try
{
$reportType = Types::load( $report['report_type'] );
$reportMember = Member::load( $report['report_by'] );
}
catch ( \Exception $e )
{
continue;
}
if ( $report['report_by'] )
{
/* We have a member */
$forNotifications[$report['report_type']][] = [$reportMember, $reportType, $report];
}
else
{
if ( $report['guest_email'] )
{
/* We have an email */
$forEmails[$report['report_type']][] = [$reportType, $report];
}
}
}
/* Members */
foreach ( $forNotifications as $typeId => $data )
{
foreach ( $data as $reportData )
{
$reportMember = $reportData[0];
$reportType = $reportData[1];
$userReport = $reportData[2];
if ( $this->getReportOutcomeBlurb( $userReport['id'] ) )
{
$notification = new Notification( Application::load( 'core' ), 'report_outcome', $this, [$this, $reportType, $userReport], ['reportType' => $reportType->id, 'userReport' => $userReport] );
$notification->recipients->attach( $reportMember );
$notification->send();
Log::debug( "Sent notification to {$reportMember->name}", 'reports_notification' );
}
}
}
/* Guests */
foreach ( $forEmails as $typeId => $data )
{
foreach ( $data as $reportData )
{
$reportType = $reportData[0];
$guestEmail = $reportData[1]['guest_email'];
$userReport = $reportData[1];
if ( $guestEmail and $this->getReportOutcomeBlurb( $userReport['id'] ) )
{
Email::buildFromTemplate( 'core', 'notification_report_outcome', [$this, $reportType, $userReport], Email::TYPE_LIST )->send( $guestEmail );
}
}
}
/* Content author? */
if ( $authorNotification )
{
try
{
$class = $this->_data['class'];
$thing = $class::load( $this->_data['content_id'] );
$content = ( $thing instanceof Comment ) ? $thing->truncated() : $thing->mapped( 'title' );
if ( $thing->author() and $thing->author()->email )
{
$authorContent = static::getAuthorNotifications();
if ( isset( $authorContent[ $authorNotification ] ) )
{
$notificationContent = $authorContent[$authorNotification]['text'];
/* Substitutions */
$subs = [
'name' => $thing->author()->name,
'content' => trim( $content ),
'link' => (string) $thing->url(),
'reason' => implode( ', ', $this->getReportedTypes() )
];
foreach( $subs as $key => $value )
{
$notificationContent = str_replace( '{' . $key . '}', $value, $notificationContent );
}
Email::buildFromTemplate( 'core', 'notification_report_content_author', [$this, $thing, $notificationContent], Email::TYPE_LIST )->send( $thing->author()->email );
}
}
}
catch ( \Exception $e ) { }
}
}
/* Post a comment on the report */
$content = $member->language()->addToStack( 'update_report_status_content', FALSE, array( 'sprintf' => array( $member->language()->addToStack( 'report_status_' . $this->status ) ) ) );
$member->language()->parseOutputForDisplay( $content );
$comment = ReportComment::create( $this, $content, TRUE, NULL, NULL, $member, new DateTime );
$comment->save();
/* And add to the moderator log */
Session::i()->modLog( 'modlog__action_update_report_status', array( $this->url()->__toString() => FALSE ) );
}
/**
* Get the author notifications
*
* @return array
*/
public static function getAuthorNotifications(): array
{
$return = [];
foreach( \IPS\Db::i()->select( '*', 'core_rc_author_notification_text', [], 'title ASC' ) as $row )
{
$return[ $row['id'] ] = $row;
}
return $return;
}
/**
* Get the report outcome blurb
*
* @param int $userReportId
* @return string
*/
public function getReportOutcomeBlurb( int $userReportId ): string
{
try
{
$userReport = Db::i()->select( '*', 'core_rc_reports', array( 'id=?', $userReportId ) )->first();
$reportType = Types::load( $userReport['report_type'] );
return $this->status === static::STATUS_REJECTED ? $reportType->getRejectedNotificationText( Member::load( $userReport['report_by'] ) ) : $reportType->getCompletedNotificationText( Member::load( $userReport['report_by'] ) );
}
catch( \Exception $e )
{
return '';
}
}
/**
* Should posting this increment the poster's post count?
*
@@ -389,18 +603,7 @@ class Report extends Item
{
if ( mb_substr( $action, 0, -1 ) === 'report_status_' )
{
$this->status = mb_substr( $action, -1 );
$this->save();
/* Post a comment on the report */
$content = Member::loggedIn()->language()->addToStack( 'update_report_status_content', FALSE, array( 'sprintf' => array( Member::loggedIn()->language()->addToStack( 'report_status_' . $this->status ) ) ) );
Member::loggedIn()->language()->parseOutputForDisplay( $content );
$comment = ReportComment::create( $this, $content, true, null, null, Member::loggedIn(), new DateTime );
$comment->save();
/* And add to the moderator log */
Session::i()->modLog( 'modlog__action_update_report_status', array( $this->url()->__toString() => FALSE ) );
$this->changeStatus( (int) mb_substr( $action, -1 ) );
}
else
{
@@ -415,7 +618,7 @@ class Report extends Item
*/
public function customMultimodActions(): array
{
return array_diff( array( 'report_status_1', 'report_status_2', 'report_status_3', ), array( 'report_status_' . $this->status ) );
return array_diff( array( 'report_status_1', 'report_status_2', 'report_status_3', 'report_status_4'), array( 'report_status_' . $this->status ) );
}
/**
@@ -446,6 +649,11 @@ class Report extends Item
'action' => 'report_status_3',
'icon' => 'check-circle',
'label' => 'report_status_3'
),
array(
'action' => 'report_status_4',
'icon' => 'archive',
'label' => 'report_status_4'
)
)
)
+31 -3
View File
@@ -80,7 +80,30 @@ class Types extends Model
* @brief [Node] Title prefix. If specified, will look for a language key with "{$key}_title" as the key
*/
public static ?string $titleLangPrefix = 'automaticmod_types_';
/**
* Get the completed notification text (hits the DB to get the real value, not the hash key)
* @param Member|null $member
* @return string
*/
public function getCompletedNotificationText( \IPS\Member|null $member=null ): string
{
$member = $member ?: \IPS\Member::loggedIn();
return $member->language()->get( 'automaticmod_types_notify_complete_' . $this->id, 'core' );
}
/**
* Get the rejected notification text (hits the DB to get the real value, not the hash key)
* @param Member|null $member
* @return string
*/
public function getRejectedNotificationText( \IPS\Member|null $member=null ): string
{
$member = $member ?: \IPS\Member::loggedIn();
return $member->language()->get( 'automaticmod_types_notify_reject_' . $this->id, 'core' );
}
/**
* Form
*
@@ -90,6 +113,8 @@ class Types extends Model
public function form( Form &$form ) : void
{
$form->add( new Translatable( 'automaticmod_types_title', NULL, TRUE, array( 'app' => 'core', 'key' => ( $this->id ? 'automaticmod_types_' . $this->id : NULL ) ) ) );
$form->add( new Translatable( 'automaticmod_types_notify_complete', NULL, FALSE, array( 'textArea' => true, 'app' => 'core', 'key' => ( $this->id ? 'automaticmod_types_notify_complete_' . $this->id : NULL ) ) ) );
$form->add( new Translatable( 'automaticmod_types_notify_reject', NULL, FALSE, array( 'textArea' => true, 'app' => 'core', 'key' => ( $this->id ? 'automaticmod_types_notify_reject_' . $this->id : NULL ) ) ) );
}
/**
@@ -107,8 +132,11 @@ class Types extends Model
/* Save the title */
Lang::saveCustom( 'core', 'automaticmod_types_' . $this->id, $values['automaticmod_types_title'] );
unset( $values['automaticmod_types_title'] );
/* Save the notification text */
Lang::saveCustom( 'core', 'automaticmod_types_notify_complete_' . $this->id, $values['automaticmod_types_notify_complete'] );
Lang::saveCustom( 'core', 'automaticmod_types_notify_reject_' . $this->id, $values['automaticmod_types_notify_reject'] );
unset( $values['automaticmod_types_title'], $values['automaticmod_types_notify_complete'], $values['automaticmod_types_notify_reject'] );
return parent::formatFormValues( $values );
}
+6
View File
@@ -169,6 +169,12 @@ class cleanup extends Task
{
Db::i()->delete( 'core_statistics', array( "type IN('emails_sent','email_views','email_clicks') AND time < ?", DateTime::create()->sub( new DateInterval( 'P' . Settings::i()->prune_log_emailstats . 'D' ) )->getTimestamp() ) );
}
/* ...and guest details stored with reports */
if( Settings::i()->report_guest_details_store_days )
{
Db::i()->update( 'core_rc_reports', [ 'guest_name' => null, 'guest_email' => null ], array( 'date_reported < ?', DateTime::create()->sub( new DateInterval( 'P' . \IPS\Settings::i()->report_guest_details_store_days . 'D' ) )->getTimestamp() ) );
}
/* ...and geoip cache */
Db::i()->delete( 'core_geoip_cache', array( 'date < ?', DateTime::create()->sub( new DateInterval( 'P7D' ) )->getTimestamp() ) );